diff --git a/.travis.yml b/.travis.yml index 09cefa27b3..7474eba31d 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,5 +1,6 @@ -#pretending we're C because otherwise ruby will initialize, even with "language: dm". -language: c +language: generic +os: linux +dist: bionic env: global: @@ -12,10 +13,14 @@ cache: addons: apt: packages: - - libc6-i386 + - libc6:i386 - libgcc1:i386 - libstdc++6:i386 - - libssl-dev:i386 + - libssl1.1:i386 + - g++-7 + - g++-7-multilib + - gcc-multilib + - zlib1g:i386 before_install: - chmod -R +x ./tools/travis @@ -27,6 +32,7 @@ before_script: - shopt -s globstar script: + - ldd librust_g.so - ./tools/travis/compile_and_run.sh # Build-specific settings diff --git a/_build_dependencies.sh b/_build_dependencies.sh index 835e8f81c2..be33811c98 100644 --- a/_build_dependencies.sh +++ b/_build_dependencies.sh @@ -4,7 +4,7 @@ export SPACEMANDMM_TAG=suite-1.4 # For NanoUI + TGUI export NODE_VERSION=12 # For the scripts in tools -export PHP_VERSION=5.6 +export PHP_VERSION=7.2 # Byond Major export BYOND_MAJOR=513 # Byond Minor diff --git a/code/__defines/_compile_options.dm b/code/__defines/_compile_options.dm index b68300eeb2..5ac591042b 100644 --- a/code/__defines/_compile_options.dm +++ b/code/__defines/_compile_options.dm @@ -7,10 +7,6 @@ 2 for preloading absolutely everything; */ -#define RUST_G "rust_g" // If uncommented, we will use the rust-g (https://github.com/tgstation/rust-g) native library for fast - // logging. This requires you to have the rust_g.dll or rust_g (renamed from librust_g.so) installed in the root folder or BYOND/bin - // The define's value should be the name of library file. - // ZAS Compile Options //#define ZASDBG // Uncomment to turn on super detailed ZAS debugging that probably won't even compile. #define MULTIZAS // Uncomment to turn on Multi-Z ZAS Support! diff --git a/code/__defines/dcs/flags.dm b/code/__defines/dcs/flags.dm new file mode 100644 index 0000000000..128c9f1938 --- /dev/null +++ b/code/__defines/dcs/flags.dm @@ -0,0 +1,41 @@ +/// Return this from `/datum/component/Initialize` or `datum/component/OnTransfer` to have the component be deleted if it's applied to an incorrect type. +/// `parent` must not be modified if this is to be returned. +/// This will be noted in the runtime logs +#define COMPONENT_INCOMPATIBLE 1 +/// Returned in PostTransfer to prevent transfer, similar to `COMPONENT_INCOMPATIBLE` +#define COMPONENT_NOTRANSFER 2 + +/// Return value to cancel attaching +#define ELEMENT_INCOMPATIBLE 1 + +// /datum/element flags +/// Causes the detach proc to be called when the host object is being deleted +#define ELEMENT_DETACH (1 << 0) +/** + * Only elements created with the same arguments given after `id_arg_index` share an element instance + * The arguments are the same when the text and number values are the same and all other values have the same ref + */ +#define ELEMENT_BESPOKE (1 << 1) + +// How multiple components of the exact same type are handled in the same datum +/// old component is deleted (default) +#define COMPONENT_DUPE_HIGHLANDER 0 +/// duplicates allowed +#define COMPONENT_DUPE_ALLOWED 1 +/// new component is deleted +#define COMPONENT_DUPE_UNIQUE 2 +/// old component is given the initialization args of the new +#define COMPONENT_DUPE_UNIQUE_PASSARGS 4 +/// each component of the same type is consulted as to whether the duplicate should be allowed +#define COMPONENT_DUPE_SELECTIVE 5 + +//Redirection component init flags +#define REDIRECT_TRANSFER_WITH_TURF 1 + +//Arch +#define ARCH_PROB "probability" //Probability for each item +#define ARCH_MAXDROP "max_drop_amount" //each item's max drop amount + +//Ouch my toes! +#define CALTROP_BYPASS_SHOES 1 +#define CALTROP_IGNORE_WALKERS 2 diff --git a/code/__defines/dcs/helpers.dm b/code/__defines/dcs/helpers.dm new file mode 100644 index 0000000000..144e94f1fe --- /dev/null +++ b/code/__defines/dcs/helpers.dm @@ -0,0 +1,15 @@ +/// Used to trigger signals and call procs registered for that signal +/// The datum hosting the signal is automaticaly added as the first argument +/// Returns a bitfield gathered from all registered procs +/// Arguments given here are packaged in a list and given to _SendSignal +#define SEND_SIGNAL(target, sigtype, arguments...) ( !target.comp_lookup || !target.comp_lookup[sigtype] ? NONE : target._SendSignal(sigtype, list(target, ##arguments)) ) + +#define SEND_GLOBAL_SIGNAL(sigtype, arguments...) ( SEND_SIGNAL(SSdcs, sigtype, ##arguments) ) + +/// A wrapper for _AddElement that allows us to pretend we're using normal named arguments +#define AddElement(arguments...) _AddElement(list(##arguments)) +/// A wrapper for _RemoveElement that allows us to pretend we're using normal named arguments +#define RemoveElement(arguments...) _RemoveElement(list(##arguments)) + +/// A wrapper for _AddComponent that allows us to pretend we're using normal named arguments +#define AddComponent(arguments...) _AddComponent(list(##arguments)) diff --git a/code/__defines/dcs/signals.dm b/code/__defines/dcs/signals.dm new file mode 100644 index 0000000000..26b1d2d44a --- /dev/null +++ b/code/__defines/dcs/signals.dm @@ -0,0 +1,732 @@ +// All signals. Format: +// When the signal is called: (signal arguments) +// All signals send the source datum of the signal as the first argument + +// global signals +// These are signals which can be listened to by any component on any parent +// start global signals with "!", this used to be necessary but now it's just a formatting choice + +///from base of datum/controller/subsystem/mapping/proc/add_new_zlevel(): (list/args) +#define COMSIG_GLOB_NEW_Z "!new_z" +/// called after a successful var edit somewhere in the world: (list/args) +#define COMSIG_GLOB_VAR_EDIT "!var_edit" +/// called after an explosion happened : (epicenter, devastation_range, heavy_impact_range, light_impact_range, took, orig_dev_range, orig_heavy_range, orig_light_range) +#define COMSIG_GLOB_EXPLOSION "!explosion" +/// mob was created somewhere : (mob) +#define COMSIG_GLOB_MOB_CREATED "!mob_created" +/// mob died somewhere : (mob , gibbed) +#define COMSIG_GLOB_MOB_DEATH "!mob_death" +/// global living say plug - use sparingly: (mob/speaker , message) +#define COMSIG_GLOB_LIVING_SAY_SPECIAL "!say_special" +/// called by datum/cinematic/play() : (datum/cinematic/new_cinematic) +#define COMSIG_GLOB_PLAY_CINEMATIC "!play_cinematic" + #define COMPONENT_GLOB_BLOCK_CINEMATIC (1<<0) +/// ingame button pressed (/obj/machinery/button/button) +#define COMSIG_GLOB_BUTTON_PRESSED "!button_pressed" + +/// signals from globally accessible objects + +///from SSsun when the sun changes position : (azimuth) +#define COMSIG_SUN_MOVED "sun_moved" + +////////////////////////////////////////////////////////////////// + +// /datum signals +/// when a component is added to a datum: (/datum/component) +#define COMSIG_COMPONENT_ADDED "component_added" +/// before a component is removed from a datum because of RemoveComponent: (/datum/component) +#define COMSIG_COMPONENT_REMOVING "component_removing" +/// before a datum's Destroy() is called: (force), returning a nonzero value will cancel the qdel operation +#define COMSIG_PARENT_PREQDELETED "parent_preqdeleted" +/// just before a datum's Destroy() is called: (force), at this point none of the other components chose to interrupt qdel and Destroy will be called +#define COMSIG_PARENT_QDELETING "parent_qdeleting" +/// generic topic handler (usr, href_list) +#define COMSIG_TOPIC "handle_topic" + +/// fires on the target datum when an element is attached to it (/datum/element) +#define COMSIG_ELEMENT_ATTACH "element_attach" +/// fires on the target datum when an element is attached to it (/datum/element) +#define COMSIG_ELEMENT_DETACH "element_detach" + +// /atom signals +///from base of atom/proc/Initialize(): sent any time a new atom is created +#define COMSIG_ATOM_CREATED "atom_created" +//from SSatoms InitAtom - Only if the atom was not deleted or failed initialization +#define COMSIG_ATOM_AFTER_SUCCESSFUL_INITIALIZE "atom_init_success" +///from base of atom/attackby(): (/obj/item, /mob/living, params) +#define COMSIG_PARENT_ATTACKBY "atom_attackby" +///Return this in response if you don't want afterattack to be called + #define COMPONENT_NO_AFTERATTACK (1<<0) +///from base of atom/attack_hulk(): (/mob/living/carbon/human) +#define COMSIG_ATOM_HULK_ATTACK "hulk_attack" +///from base of atom/animal_attack(): (/mob/user) +#define COMSIG_ATOM_ATTACK_ANIMAL "attack_animal" +///from base of atom/examine(): (/mob) +#define COMSIG_PARENT_EXAMINE "atom_examine" +///from base of atom/get_examine_name(): (/mob, list/overrides) +#define COMSIG_ATOM_GET_EXAMINE_NAME "atom_examine_name" + //Positions for overrides list + #define EXAMINE_POSITION_ARTICLE (1<<0) + #define EXAMINE_POSITION_BEFORE (1<<1) + //End positions + #define COMPONENT_EXNAME_CHANGED (1<<0) +///from base of atom/update_icon(): () +#define COMSIG_ATOM_UPDATE_ICON "atom_update_icon" + #define COMSIG_ATOM_NO_UPDATE_ICON_STATE (1<<0) + #define COMSIG_ATOM_NO_UPDATE_OVERLAYS (1<<1) +///from base of atom/update_overlays(): (list/new_overlays) +#define COMSIG_ATOM_UPDATE_OVERLAYS "atom_update_overlays" +///from base of atom/update_icon(): (signalOut, did_anything) +#define COMSIG_ATOM_UPDATED_ICON "atom_updated_icon" +///from base of atom/Entered(): (atom/movable/entering, /atom) +#define COMSIG_ATOM_ENTERED "atom_entered" +///from base of atom/Exit(): (/atom/movable/exiting, /atom/newloc) +#define COMSIG_ATOM_EXIT "atom_exit" + #define COMPONENT_ATOM_BLOCK_EXIT (1<<0) +///from base of atom/Exited(): (atom/movable/exiting, atom/newloc) +#define COMSIG_ATOM_EXITED "atom_exited" +///from base of atom/Bumped(): (/atom/movable) +#define COMSIG_ATOM_BUMPED "atom_bumped" +///from base of atom/ex_act(): (severity, target) +#define COMSIG_ATOM_EX_ACT "atom_ex_act" +///from base of atom/emp_act(): (severity) +#define COMSIG_ATOM_EMP_ACT "atom_emp_act" +///from base of atom/fire_act(): (exposed_temperature, exposed_volume) +#define COMSIG_ATOM_FIRE_ACT "atom_fire_act" +///from base of atom/bullet_act(): (/obj/projectile, def_zone) +#define COMSIG_ATOM_BULLET_ACT "atom_bullet_act" +///from base of atom/blob_act(): (/obj/structure/blob) +#define COMSIG_ATOM_BLOB_ACT "atom_blob_act" +///from base of atom/acid_act(): (acidpwr, acid_volume) +#define COMSIG_ATOM_ACID_ACT "atom_acid_act" +///from base of atom/emag_act(): (/mob/user) +#define COMSIG_ATOM_EMAG_ACT "atom_emag_act" +///from base of atom/rad_act(intensity) +#define COMSIG_ATOM_RAD_ACT "atom_rad_act" +///from base of atom/narsie_act(): () +#define COMSIG_ATOM_NARSIE_ACT "atom_narsie_act" +///from base of atom/rcd_act(): (/mob, /obj/item/construction/rcd, passed_mode) +#define COMSIG_ATOM_RCD_ACT "atom_rcd_act" +///from base of atom/singularity_pull(): (S, current_size) +#define COMSIG_ATOM_SING_PULL "atom_sing_pull" +///from obj/machinery/bsa/full/proc/fire(): () +#define COMSIG_ATOM_BSA_BEAM "atom_bsa_beam_pass" + #define COMSIG_ATOM_BLOCKS_BSA_BEAM (1<<0) +///from base of atom/set_light(): (l_range, l_power, l_color) +#define COMSIG_ATOM_SET_LIGHT "atom_set_light" +///from base of atom/setDir(): (old_dir, new_dir) +#define COMSIG_ATOM_DIR_CHANGE "atom_dir_change" +///from base of atom/handle_atom_del(): (atom/deleted) +#define COMSIG_ATOM_CONTENTS_DEL "atom_contents_del" +///from base of atom/has_gravity(): (turf/location, list/forced_gravities) +#define COMSIG_ATOM_HAS_GRAVITY "atom_has_gravity" +///from proc/get_rad_contents(): () +#define COMSIG_ATOM_RAD_PROBE "atom_rad_probe" + #define COMPONENT_BLOCK_RADIATION (1<<0) +///from base of datum/radiation_wave/radiate(): (strength) +#define COMSIG_ATOM_RAD_CONTAMINATING "atom_rad_contam" + #define COMPONENT_BLOCK_CONTAMINATION (1<<0) +///from base of datum/radiation_wave/check_obstructions(): (datum/radiation_wave, width) +#define COMSIG_ATOM_RAD_WAVE_PASSING "atom_rad_wave_pass" + #define COMPONENT_RAD_WAVE_HANDLED (1<<0) +///from internal loop in atom/movable/proc/CanReach(): (list/next) +#define COMSIG_ATOM_CANREACH "atom_can_reach" + #define COMPONENT_BLOCK_REACH (1<<0) +///from base of atom/screwdriver_act(): (mob/living/user, obj/item/I) +#define COMSIG_ATOM_SCREWDRIVER_ACT "atom_screwdriver_act" +///from base of atom/wrench_act(): (mob/living/user, obj/item/I) +#define COMSIG_ATOM_WRENCH_ACT "atom_wrench_act" +///from base of atom/multitool_act(): (mob/living/user, obj/item/I) +#define COMSIG_ATOM_MULTITOOL_ACT "atom_multitool_act" +///from base of atom/welder_act(): (mob/living/user, obj/item/I) +#define COMSIG_ATOM_WELDER_ACT "atom_welder_act" +///from base of atom/wirecutter_act(): (mob/living/user, obj/item/I) +#define COMSIG_ATOM_WIRECUTTER_ACT "atom_wirecutter_act" +///from base of atom/crowbar_act(): (mob/living/user, obj/item/I) +#define COMSIG_ATOM_CROWBAR_ACT "atom_crowbar_act" +///from base of atom/analyser_act(): (mob/living/user, obj/item/I) +#define COMSIG_ATOM_ANALYSER_ACT "atom_analyser_act" + #define COMPONENT_BLOCK_TOOL_ATTACK (1<<0) +///called when teleporting into a protected turf: (channel, turf/origin) +#define COMSIG_ATOM_INTERCEPT_TELEPORT "intercept_teleport" + #define COMPONENT_BLOCK_TELEPORT (1<<0) +///called when an atom is added to the hearers on get_hearers_in_view(): (list/processing_list, list/hearers) +#define COMSIG_ATOM_HEARER_IN_VIEW "atom_hearer_in_view" +///called when an atom starts orbiting another atom: (atom) +#define COMSIG_ATOM_ORBIT_BEGIN "atom_orbit_begin" +///called when an atom stops orbiting another atom: (atom) +#define COMSIG_ATOM_ORBIT_STOP "atom_orbit_stop" +///////////////// +///from base of atom/attack_ghost(): (mob/dead/observer/ghost) +#define COMSIG_ATOM_ATTACK_GHOST "atom_attack_ghost" +///from base of atom/attack_hand(): (mob/user) +#define COMSIG_ATOM_ATTACK_HAND "atom_attack_hand" +///from base of atom/attack_paw(): (mob/user) +#define COMSIG_ATOM_ATTACK_PAW "atom_attack_paw" + #define COMPONENT_NO_ATTACK_HAND (1<<0) //works on all 3. +//This signal return value bitflags can be found in __DEFINES/misc.dm + +///called for each movable in a turf contents on /turf/zImpact(): (atom/movable/A, levels) +#define COMSIG_ATOM_INTERCEPT_Z_FALL "movable_intercept_z_impact" +///called on a movable (NOT living) when someone starts pulling it (atom/movable/puller, state, force) +#define COMSIG_ATOM_START_PULL "movable_start_pull" +///called on /living when someone starts pulling it (atom/movable/puller, state, force) +#define COMSIG_LIVING_START_PULL "living_start_pull" + +///////////////// + +///from base of area/Entered(): (/area) +#define COMSIG_ENTER_AREA "enter_area" +///from base of area/Exited(): (/area) +#define COMSIG_EXIT_AREA "exit_area" +///from base of atom/Click(): (location, control, params, mob/user) +#define COMSIG_CLICK "atom_click" +///from base of atom/ShiftClick(): (/mob) +#define COMSIG_CLICK_SHIFT "shift_click" + #define COMPONENT_ALLOW_EXAMINATE (1<<0) //Allows the user to examinate regardless of client.eye. +///from base of atom/CtrlClickOn(): (/mob) +#define COMSIG_CLICK_CTRL "ctrl_click" +///from base of atom/AltClick(): (/mob) +#define COMSIG_CLICK_ALT "alt_click" +///from base of atom/CtrlShiftClick(/mob) +#define COMSIG_CLICK_CTRL_SHIFT "ctrl_shift_click" +///from base of atom/MouseDrop(): (/atom/over, /mob/user) +#define COMSIG_MOUSEDROP_ONTO "mousedrop_onto" + #define COMPONENT_NO_MOUSEDROP (1<<0) +///from base of atom/MouseDrop_T: (/atom/from, /mob/user) +#define COMSIG_MOUSEDROPPED_ONTO "mousedropped_onto" + +// /area signals + +///from base of area/Entered(): (atom/movable/M) +#define COMSIG_AREA_ENTERED "area_entered" +///from base of area/Exited(): (atom/movable/M) +#define COMSIG_AREA_EXITED "area_exited" + +// /turf signals + +///from base of turf/ChangeTurf(): (path, list/new_baseturfs, flags, list/transferring_comps) +#define COMSIG_TURF_CHANGE "turf_change" +///from base of atom/has_gravity(): (atom/asker, list/forced_gravities) +#define COMSIG_TURF_HAS_GRAVITY "turf_has_gravity" +///from base of turf/New(): (turf/source, direction) +#define COMSIG_TURF_MULTIZ_NEW "turf_multiz_new" + +// /atom/movable signals + +///from base of atom/movable/Moved(): (/atom) +#define COMSIG_MOVABLE_PRE_MOVE "movable_pre_move" + #define COMPONENT_MOVABLE_BLOCK_PRE_MOVE (1<<0) +///from base of atom/movable/Moved(): (/atom, dir) +#define COMSIG_MOVABLE_MOVED "movable_moved" +///from base of atom/movable/Cross(): (/atom/movable) +#define COMSIG_MOVABLE_CROSS "movable_cross" +///from base of atom/movable/Crossed(): (/atom/movable) +#define COMSIG_MOVABLE_CROSSED "movable_crossed" +///when we cross over something (calling Crossed() on that atom) +#define COMSIG_CROSSED_MOVABLE "crossed_movable" +///from base of atom/movable/Uncross(): (/atom/movable) +#define COMSIG_MOVABLE_UNCROSS "movable_uncross" + #define COMPONENT_MOVABLE_BLOCK_UNCROSS (1<<0) +///from base of atom/movable/Uncrossed(): (/atom/movable) +#define COMSIG_MOVABLE_UNCROSSED "movable_uncrossed" +///from base of atom/movable/Bump(): (/atom) +#define COMSIG_MOVABLE_BUMP "movable_bump" +///from base of atom/movable/throw_impact(): (/atom/hit_atom, /datum/thrownthing/throwingdatum) +#define COMSIG_MOVABLE_IMPACT "movable_impact" + #define COMPONENT_MOVABLE_IMPACT_FLIP_HITPUSH (1<<0) //if true, flip if the impact will push what it hits + #define COMPONENT_MOVABLE_IMPACT_NEVERMIND (1<<1) //return true if you destroyed whatever it was you're impacting and there won't be anything for hitby() to run on +///from base of mob/living/hitby(): (mob/living/target, hit_zone) +#define COMSIG_MOVABLE_IMPACT_ZONE "item_impact_zone" +///from base of atom/movable/buckle_mob(): (mob, force) +#define COMSIG_MOVABLE_BUCKLE "buckle" +///from base of atom/movable/unbuckle_mob(): (mob, force) +#define COMSIG_MOVABLE_UNBUCKLE "unbuckle" +///from base of atom/movable/throw_at(): (list/args) +#define COMSIG_MOVABLE_PRE_THROW "movable_pre_throw" + #define COMPONENT_CANCEL_THROW (1<<0) +///from base of atom/movable/throw_at(): (datum/thrownthing, spin) +#define COMSIG_MOVABLE_POST_THROW "movable_post_throw" +///from base of atom/movable/onTransitZ(): (old_z, new_z) +#define COMSIG_MOVABLE_Z_CHANGED "movable_ztransit" +///called when the movable is placed in an unaccessible area, used for stationloving: () +#define COMSIG_MOVABLE_SECLUDED_LOCATION "movable_secluded" +///from base of atom/movable/Hear(): (proc args list(message, atom/movable/speaker, message_language, raw_message, radio_freq, list/spans, message_mode)) +#define COMSIG_MOVABLE_HEAR "movable_hear" + #define HEARING_MESSAGE 1 + #define HEARING_SPEAKER 2 +// #define HEARING_LANGUAGE 3 + #define HEARING_RAW_MESSAGE 4 + /* #define HEARING_RADIO_FREQ 5 + #define HEARING_SPANS 6 + #define HEARING_MESSAGE_MODE 7 */ + +///called when the movable is added to a disposal holder object for disposal movement: (obj/structure/disposalholder/holder, obj/machinery/disposal/source) +#define COMSIG_MOVABLE_DISPOSING "movable_disposing" + +// /mob signals + +///from base of /mob/Login(): () +#define COMSIG_MOB_LOGIN "mob_login" +///from base of /mob/Logout(): () +#define COMSIG_MOB_LOGOUT "mob_logout" +///from base of mob/death(): (gibbed) +#define COMSIG_MOB_DEATH "mob_death" +///from base of mob/set_stat(): (new_stat) +#define COMSIG_MOB_STATCHANGE "mob_statchange" +///from base of mob/clickon(): (atom/A, params) +#define COMSIG_MOB_CLICKON "mob_clickon" +///from base of mob/MiddleClickOn(): (atom/A) +#define COMSIG_MOB_MIDDLECLICKON "mob_middleclickon" +///from base of mob/AltClickOn(): (atom/A) +#define COMSIG_MOB_ALTCLICKON "mob_altclickon" + #define COMSIG_MOB_CANCEL_CLICKON (1<<0) + +///from base of obj/allowed(mob/M): (/obj) returns bool, if TRUE the mob has id access to the obj +#define COMSIG_MOB_ALLOWED "mob_allowed" +///from base of mob/anti_magic_check(): (mob/user, magic, holy, tinfoil, chargecost, self, protection_sources) +#define COMSIG_MOB_RECEIVE_MAGIC "mob_receive_magic" + #define COMPONENT_BLOCK_MAGIC (1<<0) +///from base of mob/create_mob_hud(): () +#define COMSIG_MOB_HUD_CREATED "mob_hud_created" +///from base of atom/attack_hand(): (mob/user) +#define COMSIG_MOB_ATTACK_HAND "mob_attack_hand" +///from base of /obj/item/attack(): (mob/M, mob/user) +#define COMSIG_MOB_ITEM_ATTACK "mob_item_attack" + #define COMPONENT_ITEM_NO_ATTACK (1<<0) +///from base of /mob/living/proc/apply_damage(): (damage, damagetype, def_zone) +#define COMSIG_MOB_APPLY_DAMGE "mob_apply_damage" +///from base of obj/item/afterattack(): (atom/target, mob/user, proximity_flag, click_parameters) +#define COMSIG_MOB_ITEM_AFTERATTACK "mob_item_afterattack" +///from base of obj/item/attack_qdeleted(): (atom/target, mob/user, proxiumity_flag, click_parameters) +#define COMSIG_MOB_ITEM_ATTACK_QDELETED "mob_item_attack_qdeleted" +///from base of mob/RangedAttack(): (atom/A, params) +#define COMSIG_MOB_ATTACK_RANGED "mob_attack_ranged" +///from base of /mob/throw_item(): (atom/target) +#define COMSIG_MOB_THROW "mob_throw" +///from base of /mob/verb/examinate(): (atom/target) +#define COMSIG_MOB_EXAMINATE "mob_examinate" +///from base of /mob/update_sight(): () +#define COMSIG_MOB_UPDATE_SIGHT "mob_update_sight" +////from /mob/living/say(): () +#define COMSIG_MOB_SAY "mob_say" + #define COMPONENT_UPPERCASE_SPEECH (1<<0) + // used to access COMSIG_MOB_SAY argslist + #define SPEECH_MESSAGE 1 + // #define SPEECH_BUBBLE_TYPE 2 + #define SPEECH_SPANS 3 + /* #define SPEECH_SANITIZE 4 + #define SPEECH_LANGUAGE 5 + #define SPEECH_IGNORE_SPAM 6 + #define SPEECH_FORCED 7 */ + +///from /mob/say_dead(): (mob/speaker, message) +#define COMSIG_MOB_DEADSAY "mob_deadsay" + #define MOB_DEADSAY_SIGNAL_INTERCEPT (1<<0) +///from /mob/living/emote(): () +#define COMSIG_MOB_EMOTE "mob_emote" +///from base of mob/swap_hand(): (obj/item) +#define COMSIG_MOB_SWAP_HANDS "mob_swap_hands" + #define COMPONENT_BLOCK_SWAP (1<<0) + +// /mob/living signals + +///from base of mob/living/resist() (/mob/living) +#define COMSIG_LIVING_RESIST "living_resist" +///from base of mob/living/IgniteMob() (/mob/living) +#define COMSIG_LIVING_IGNITED "living_ignite" +///from base of mob/living/ExtinguishMob() (/mob/living) +#define COMSIG_LIVING_EXTINGUISHED "living_extinguished" +///from base of mob/living/electrocute_act(): (shock_damage, source, siemens_coeff, flags) +#define COMSIG_LIVING_ELECTROCUTE_ACT "living_electrocute_act" +///sent when items with siemen coeff. of 0 block a shock: (power_source, source, siemens_coeff, dist_check) +#define COMSIG_LIVING_SHOCK_PREVENTED "living_shock_prevented" +///sent by stuff like stunbatons and tasers: () +#define COMSIG_LIVING_MINOR_SHOCK "living_minor_shock" +///from base of mob/living/revive() (full_heal, admin_revive) +#define COMSIG_LIVING_REVIVE "living_revive" +///from base of /mob/living/regenerate_limbs(): (noheal, excluded_limbs) +#define COMSIG_LIVING_REGENERATE_LIMBS "living_regen_limbs" +///from base of /obj/item/bodypart/proc/attach_limb(): (new_limb, special) allows you to fail limb attachment +#define COMSIG_LIVING_ATTACH_LIMB "living_attach_limb" + #define COMPONENT_NO_ATTACH (1<<0) +///sent from borg recharge stations: (amount, repairs) +#define COMSIG_PROCESS_BORGCHARGER_OCCUPANT "living_charge" +///sent when a mob/login() finishes: (client) +#define COMSIG_MOB_CLIENT_LOGIN "comsig_mob_client_login" +///sent from borg mobs to itself, for tools to catch an upcoming destroy() due to safe decon (rather than detonation) +#define COMSIG_BORG_SAFE_DECONSTRUCT "borg_safe_decon" + +//ALL OF THESE DO NOT TAKE INTO ACCOUNT WHETHER AMOUNT IS 0 OR LOWER AND ARE SENT REGARDLESS! + +///from base of mob/living/Stun() (amount, update, ignore) +#define COMSIG_LIVING_STATUS_STUN "living_stun" +///from base of mob/living/Knockdown() (amount, update, ignore) +#define COMSIG_LIVING_STATUS_KNOCKDOWN "living_knockdown" +///from base of mob/living/Paralyze() (amount, update, ignore) +#define COMSIG_LIVING_STATUS_PARALYZE "living_paralyze" +///from base of mob/living/Immobilize() (amount, update, ignore) +#define COMSIG_LIVING_STATUS_IMMOBILIZE "living_immobilize" +///from base of mob/living/Unconscious() (amount, update, ignore) +#define COMSIG_LIVING_STATUS_UNCONSCIOUS "living_unconscious" +///from base of mob/living/Sleeping() (amount, update, ignore) +#define COMSIG_LIVING_STATUS_SLEEP "living_sleeping" + #define COMPONENT_NO_STUN (1<<0) //For all of them +///from base of /mob/living/can_track(): (mob/user) +#define COMSIG_LIVING_CAN_TRACK "mob_cantrack" + #define COMPONENT_CANT_TRACK (1<<0) + +// /mob/living/carbon signals + +///from base of mob/living/carbon/soundbang_act(): (list(intensity)) +#define COMSIG_CARBON_SOUNDBANG "carbon_soundbang" +///from /item/organ/proc/Insert() (/obj/item/organ/) +#define COMSIG_CARBON_GAIN_ORGAN "carbon_gain_organ" +///from /item/organ/proc/Remove() (/obj/item/organ/) +#define COMSIG_CARBON_LOSE_ORGAN "carbon_lose_organ" +///from /mob/living/carbon/doUnEquip(obj/item/I, force, newloc, no_move, invdrop, silent) +#define COMSIG_CARBON_EQUIP_HAT "carbon_equip_hat" +///from /mob/living/carbon/doUnEquip(obj/item/I, force, newloc, no_move, invdrop, silent) +#define COMSIG_CARBON_UNEQUIP_HAT "carbon_unequip_hat" +///defined twice, in carbon and human's topics, fired when interacting with a valid embedded_object to pull it out (mob/living/carbon/target, /obj/item, /obj/item/bodypart/L) +#define COMSIG_CARBON_EMBED_RIP "item_embed_start_rip" +///called when removing a given item from a mob, from mob/living/carbon/remove_embedded_object(mob/living/carbon/target, /obj/item) +#define COMSIG_CARBON_EMBED_REMOVAL "item_embed_remove_safe" + +// /mob/living/simple_animal/hostile signals +#define COMSIG_HOSTILE_ATTACKINGTARGET "hostile_attackingtarget" + #define COMPONENT_HOSTILE_NO_ATTACK (1<<0) + +// /obj signals + +///from base of obj/deconstruct(): (disassembled) +#define COMSIG_OBJ_DECONSTRUCT "obj_deconstruct" +///called in /obj/structure/setAnchored(): (value) +#define COMSIG_OBJ_SETANCHORED "obj_setanchored" +///from base of code/game/machinery +#define COMSIG_OBJ_DEFAULT_UNFASTEN_WRENCH "obj_default_unfasten_wrench" +///from base of /turf/proc/levelupdate(). (intact) true to hide and false to unhide +#define COMSIG_OBJ_HIDE "obj_hide" +///called in /obj/update_icon() +#define COMSIG_OBJ_UPDATE_ICON "obj_update_icon" + +// /obj/machinery signals + +///from /obj/machinery/obj_break(damage_flag): (damage_flag) +#define COMSIG_MACHINERY_BROKEN "machinery_broken" +///from base power_change() when power is lost +#define COMSIG_MACHINERY_POWER_LOST "machinery_power_lost" +///from base power_change() when power is restored +#define COMSIG_MACHINERY_POWER_RESTORED "machinery_power_restored" + +// /obj/item signals + +///from base of obj/item/attack(): (/mob/living/target, /mob/living/user) +#define COMSIG_ITEM_ATTACK "item_attack" +///from base of obj/item/attack_self(): (/mob) +#define COMSIG_ITEM_ATTACK_SELF "item_attack_self" + #define COMPONENT_NO_INTERACT (1<<0) +///from base of obj/item/attack_obj(): (/obj, /mob) +#define COMSIG_ITEM_ATTACK_OBJ "item_attack_obj" + #define COMPONENT_NO_ATTACK_OBJ (1<<0) +///from base of obj/item/pre_attack(): (atom/target, mob/user, params) +#define COMSIG_ITEM_PRE_ATTACK "item_pre_attack" + #define COMPONENT_NO_ATTACK (1<<0) +///from base of obj/item/afterattack(): (atom/target, mob/user, params) +#define COMSIG_ITEM_AFTERATTACK "item_afterattack" +///from base of obj/item/attack_qdeleted(): (atom/target, mob/user, params) +#define COMSIG_ITEM_ATTACK_QDELETED "item_attack_qdeleted" +///from base of obj/item/equipped(): (/mob/equipper, slot) +#define COMSIG_ITEM_EQUIPPED "item_equip" +///from base of obj/item/dropped(): (mob/user) +#define COMSIG_ITEM_DROPPED "item_drop" +///from base of obj/item/pickup(): (/mob/taker) +#define COMSIG_ITEM_PICKUP "item_pickup" +///from base of mob/living/carbon/attacked_by(): (mob/living/carbon/target, mob/living/user, hit_zone) +#define COMSIG_ITEM_ATTACK_ZONE "item_attack_zone" +///return a truthy value to prevent ensouling, checked in /obj/effect/proc_holder/spell/targeted/lichdom/cast(): (mob/user) +#define COMSIG_ITEM_IMBUE_SOUL "item_imbue_soul" +///called before marking an object for retrieval, checked in /obj/effect/proc_holder/spell/targeted/summonitem/cast() : (mob/user) +#define COMSIG_ITEM_MARK_RETRIEVAL "item_mark_retrieval" + #define COMPONENT_BLOCK_MARK_RETRIEVAL (1<<0) +///from base of obj/item/hit_reaction(): (list/args) +#define COMSIG_ITEM_HIT_REACT "item_hit_react" +///called on item when crossed by something (): (/atom/movable, mob/living/crossed) +#define COMSIG_ITEM_WEARERCROSSED "wearer_crossed" +///called on item when microwaved (): (obj/machinery/microwave/M) +#define COMSIG_ITEM_MICROWAVE_ACT "microwave_act" +///from base of item/sharpener/attackby(): (amount, max) +#define COMSIG_ITEM_SHARPEN_ACT "sharpen_act" + #define COMPONENT_BLOCK_SHARPEN_APPLIED (1<<0) + #define COMPONENT_BLOCK_SHARPEN_BLOCKED (1<<1) + #define COMPONENT_BLOCK_SHARPEN_ALREADY (1<<2) + #define COMPONENT_BLOCK_SHARPEN_MAXED (1<<3) +///from base of [/obj/item/proc/tool_check_callback]: (mob/living/user) +#define COMSIG_TOOL_IN_USE "tool_in_use" +///from base of [/obj/item/proc/tool_start_check]: (mob/living/user) +#define COMSIG_TOOL_START_USE "tool_start_use" +///from [/obj/item/proc/disableEmbedding]: +#define COMSIG_ITEM_DISABLE_EMBED "item_disable_embed" +///from [/obj/effect/mine/proc/triggermine]: +#define COMSIG_MINE_TRIGGERED "minegoboom" + +// /obj/item signals for economy +///called when an item is sold by the exports subsystem +#define COMSIG_ITEM_SOLD "item_sold" +///called when a wrapped up structure is opened by hand +#define COMSIG_STRUCTURE_UNWRAPPED "structure_unwrapped" +#define COMSIG_ITEM_UNWRAPPED "item_unwrapped" +///called when a wrapped up item is opened by hand + #define COMSIG_ITEM_SPLIT_VALUE (1<<0) +///called when getting the item's exact ratio for cargo's profit. +#define COMSIG_ITEM_SPLIT_PROFIT "item_split_profits" +///called when getting the item's exact ratio for cargo's profit, without selling the item. +#define COMSIG_ITEM_SPLIT_PROFIT_DRY "item_split_profits_dry" + +// /obj/item/clothing signals + +///from base of obj/item/clothing/shoes/proc/step_action(): () +#define COMSIG_SHOES_STEP_ACTION "shoes_step_action" +///from base of /obj/item/clothing/suit/space/proc/toggle_spacesuit(): (obj/item/clothing/suit/space/suit) +#define COMSIG_SUIT_SPACE_TOGGLE "suit_space_toggle" + +// /obj/item/implant signals +///from base of /obj/item/implant/proc/activate(): () +#define COMSIG_IMPLANT_ACTIVATED "implant_activated" +///from base of /obj/item/implant/proc/implant(): (list/args) +#define COMSIG_IMPLANT_IMPLANTING "implant_implanting" + #define COMPONENT_STOP_IMPLANTING (1<<0) +///called on already installed implants when a new one is being added in /obj/item/implant/proc/implant(): (list/args, obj/item/implant/new_implant) +#define COMSIG_IMPLANT_OTHER "implant_other" + //#define COMPONENT_STOP_IMPLANTING (1<<0) //The name makes sense for both + #define COMPONENT_DELETE_NEW_IMPLANT (1<<1) + #define COMPONENT_DELETE_OLD_IMPLANT (1<<2) +///called on implants being implanted into someone with an uplink implant: (datum/component/uplink) +#define COMSIG_IMPLANT_EXISTING_UPLINK "implant_uplink_exists" + //This uses all return values of COMSIG_IMPLANT_OTHER + +// /obj/item/pda signals + +///called on pda when the user changes the ringtone: (mob/living/user, new_ringtone) +#define COMSIG_PDA_CHANGE_RINGTONE "pda_change_ringtone" + #define COMPONENT_STOP_RINGTONE_CHANGE (1<<0) +#define COMSIG_PDA_CHECK_DETONATE "pda_check_detonate" + #define COMPONENT_PDA_NO_DETONATE (1<<0) + +// /obj/item/radio signals + +///called from base of /obj/item/radio/proc/set_frequency(): (list/args) +#define COMSIG_RADIO_NEW_FREQUENCY "radio_new_frequency" + +// /obj/item/pen signals + +///called after rotation in /obj/item/pen/attack_self(): (rotation, mob/living/carbon/user) +#define COMSIG_PEN_ROTATED "pen_rotated" + +// /obj/item/gun signals + +///called in /obj/item/gun/process_fire (user, target, params, zone_override) +#define COMSIG_MOB_FIRED_GUN "mob_fired_gun" + +// /obj/item/grenade signals + +///called in /obj/item/gun/process_fire (user, target, params, zone_override) +#define COMSIG_GRENADE_PRIME "grenade_prime" +///called in /obj/item/gun/process_fire (user, target, params, zone_override) +#define COMSIG_GRENADE_ARMED "grenade_armed" + +// /obj/projectile signals (sent to the firer) + +///from base of /obj/projectile/proc/on_hit(): (atom/movable/firer, atom/target, Angle) +#define COMSIG_PROJECTILE_SELF_ON_HIT "projectile_self_on_hit" +///from base of /obj/projectile/proc/on_hit(): (atom/movable/firer, atom/target, Angle) +#define COMSIG_PROJECTILE_ON_HIT "projectile_on_hit" +///from base of /obj/projectile/proc/fire(): (obj/projectile, atom/original_target) +#define COMSIG_PROJECTILE_BEFORE_FIRE "projectile_before_fire" +///from the base of /obj/projectile/proc/fire(): () +#define COMSIG_PROJECTILE_FIRE "projectile_fire" +///sent to targets during the process_hit proc of projectiles +#define COMSIG_PROJECTILE_PREHIT "com_proj_prehit" +///sent to targets during the process_hit proc of projectiles +#define COMSIG_PROJECTILE_RANGE_OUT "projectile_range_out" +///sent when trying to force an embed (mainly for projectiles, only used in the embed element) +#define COMSIG_EMBED_TRY_FORCE "item_try_embed" + +///sent to targets during the process_hit proc of projectiles +#define COMSIG_PELLET_CLOUD_INIT "pellet_cloud_init" + +// /obj/mecha signals + +///sent from mecha action buttons to the mecha they're linked to +#define COMSIG_MECHA_ACTION_ACTIVATE "mecha_action_activate" + +// /mob/living/carbon/human signals + +///from mob/living/carbon/human/UnarmedAttack(): (atom/target, proximity) +#define COMSIG_HUMAN_EARLY_UNARMED_ATTACK "human_early_unarmed_attack" +///from mob/living/carbon/human/UnarmedAttack(): (atom/target, proximity) +#define COMSIG_HUMAN_MELEE_UNARMED_ATTACK "human_melee_unarmed_attack" +///from mob/living/carbon/human/UnarmedAttack(): (mob/living/carbon/human/attacker) +#define COMSIG_HUMAN_MELEE_UNARMED_ATTACKBY "human_melee_unarmed_attackby" +///Hit by successful disarm attack (mob/living/carbon/human/attacker,zone_targeted) +#define COMSIG_HUMAN_DISARM_HIT "human_disarm_hit" +///Whenever EquipRanked is called, called after job is set +#define COMSIG_JOB_RECEIVED "job_received" + +// /datum/species signals + +///from datum/species/on_species_gain(): (datum/species/new_species, datum/species/old_species) +#define COMSIG_SPECIES_GAIN "species_gain" +///from datum/species/on_species_loss(): (datum/species/lost_species) +#define COMSIG_SPECIES_LOSS "species_loss" + +// /datum/song signals + +///sent to the instrument when a song starts playing +#define COMSIG_SONG_START "song_start" +///sent to the instrument when a song stops playing +#define COMSIG_SONG_END "song_end" + +/*******Component Specific Signals*******/ +//Janitor + +///(): Returns bitflags of wet values. +#define COMSIG_TURF_IS_WET "check_turf_wet" +///(max_strength, immediate, duration_decrease = INFINITY): Returns bool. +#define COMSIG_TURF_MAKE_DRY "make_turf_try" +///called on an object to clean it of cleanables. Usualy with soap: (num/strength) +#define COMSIG_COMPONENT_CLEAN_ACT "clean_act" + +//Creamed + +///called when you wash your face at a sink: (num/strength) +#define COMSIG_COMPONENT_CLEAN_FACE_ACT "clean_face_act" + +//Food + +///from base of obj/item/reagent_containers/food/snacks/attack(): (mob/living/eater, mob/feeder) +#define COMSIG_FOOD_EATEN "food_eaten" + +//Gibs + +///from base of /obj/effect/decal/cleanable/blood/gibs/streak(): (list/directions, list/diseases) +#define COMSIG_GIBS_STREAK "gibs_streak" + +//Mood + +///called when you send a mood event from anywhere in the code. +#define COMSIG_ADD_MOOD_EVENT "add_mood" +///Mood event that only RnD members listen for +#define COMSIG_ADD_MOOD_EVENT_RND "RND_add_mood" +///called when you clear a mood event from anywhere in the code. +#define COMSIG_CLEAR_MOOD_EVENT "clear_mood" + +//NTnet + +///called on an object by its NTNET connection component on receive. (sending_id(number), sending_netname(text), data(datum/netdata)) +#define COMSIG_COMPONENT_NTNET_RECEIVE "ntnet_receive" + +//Nanites + +///() returns TRUE if nanites are found +#define COMSIG_HAS_NANITES "has_nanites" +///() returns TRUE if nanites have stealth +#define COMSIG_NANITE_IS_STEALTHY "nanite_is_stealthy" +///() deletes the nanite component +#define COMSIG_NANITE_DELETE "nanite_delete" +///(list/nanite_programs) - makes the input list a copy the nanites' program list +#define COMSIG_NANITE_GET_PROGRAMS "nanite_get_programs" +///(amount) Returns nanite amount +#define COMSIG_NANITE_GET_VOLUME "nanite_get_volume" +///(amount) Sets current nanite volume to the given amount +#define COMSIG_NANITE_SET_VOLUME "nanite_set_volume" +///(amount) Adjusts nanite volume by the given amount +#define COMSIG_NANITE_ADJUST_VOLUME "nanite_adjust" +///(amount) Sets maximum nanite volume to the given amount +#define COMSIG_NANITE_SET_MAX_VOLUME "nanite_set_max_volume" +///(amount(0-100)) Sets cloud ID to the given amount +#define COMSIG_NANITE_SET_CLOUD "nanite_set_cloud" +///(method) Modify cloud sync status. Method can be toggle, enable or disable +#define COMSIG_NANITE_SET_CLOUD_SYNC "nanite_set_cloud_sync" +///(amount) Sets safety threshold to the given amount +#define COMSIG_NANITE_SET_SAFETY "nanite_set_safety" +///(amount) Sets regeneration rate to the given amount +#define COMSIG_NANITE_SET_REGEN "nanite_set_regen" +///(code(1-9999)) Called when sending a nanite signal to a mob. +#define COMSIG_NANITE_SIGNAL "nanite_signal" +///(comm_code(1-9999), comm_message) Called when sending a nanite comm signal to a mob. +#define COMSIG_NANITE_COMM_SIGNAL "nanite_comm_signal" +///(mob/user, full_scan) - sends to chat a scan of the nanites to the user, returns TRUE if nanites are detected +#define COMSIG_NANITE_SCAN "nanite_scan" +///(list/data, scan_level) - adds nanite data to the given data list - made for ui_data procs +#define COMSIG_NANITE_UI_DATA "nanite_ui_data" +///(datum/nanite_program/new_program, datum/nanite_program/source_program) Called when adding a program to a nanite component +#define COMSIG_NANITE_ADD_PROGRAM "nanite_add_program" + ///Installation successful + #define COMPONENT_PROGRAM_INSTALLED (1<<0) + ///Installation failed, but there are still nanites + #define COMPONENT_PROGRAM_NOT_INSTALLED (1<<1) +///(datum/component/nanites, full_overwrite, copy_activation) Called to sync the target's nanites to a given nanite component +#define COMSIG_NANITE_SYNC "nanite_sync" + +// /datum/component/storage signals + +///() - returns bool. +#define COMSIG_CONTAINS_STORAGE "is_storage" +///(obj/item/inserting, mob/user, silent, force) - returns bool +#define COMSIG_TRY_STORAGE_INSERT "storage_try_insert" +///(mob/show_to, force) - returns bool. +#define COMSIG_TRY_STORAGE_SHOW "storage_show_to" +///(mob/hide_from) - returns bool +#define COMSIG_TRY_STORAGE_HIDE_FROM "storage_hide_from" +///returns bool +#define COMSIG_TRY_STORAGE_HIDE_ALL "storage_hide_all" +///(newstate) +#define COMSIG_TRY_STORAGE_SET_LOCKSTATE "storage_lock_set_state" +///() - returns bool. MUST CHECK IF STORAGE IS THERE FIRST! +#define COMSIG_IS_STORAGE_LOCKED "storage_get_lockstate" +///(type, atom/destination, amount = INFINITY, check_adjacent, force, mob/user, list/inserted) - returns bool - type can be a list of types. +#define COMSIG_TRY_STORAGE_TAKE_TYPE "storage_take_type" +///(type, amount = INFINITY, force = FALSE). Force will ignore max_items, and amount is normally clamped to max_items. +#define COMSIG_TRY_STORAGE_FILL_TYPE "storage_fill_type" +///(obj, new_loc, force = FALSE) - returns bool +#define COMSIG_TRY_STORAGE_TAKE "storage_take_obj" +///(loc) - returns bool - if loc is null it will dump at parent location. +#define COMSIG_TRY_STORAGE_QUICK_EMPTY "storage_quick_empty" +///(list/list_to_inject_results_into, recursively_search_inside_storages = TRUE) +#define COMSIG_TRY_STORAGE_RETURN_INVENTORY "storage_return_inventory" +///(obj/item/insertion_candidate, mob/user, silent) - returns bool +#define COMSIG_TRY_STORAGE_CAN_INSERT "storage_can_equip" + +// /datum/component/two_handed signals + +///from base of datum/component/two_handed/proc/wield(mob/living/carbon/user): (/mob/user) +#define COMSIG_TWOHANDED_WIELD "twohanded_wield" + #define COMPONENT_TWOHANDED_BLOCK_WIELD (1<<0) +///from base of datum/component/two_handed/proc/unwield(mob/living/carbon/user): (/mob/user) +#define COMSIG_TWOHANDED_UNWIELD "twohanded_unwield" + +// /datum/action signals + +///from base of datum/action/proc/Trigger(): (datum/action) +#define COMSIG_ACTION_TRIGGER "action_trigger" + #define COMPONENT_ACTION_BLOCK_TRIGGER (1<<0) + +//Xenobio hotkeys + +///from slime CtrlClickOn(): (/mob) +#define COMSIG_XENO_SLIME_CLICK_CTRL "xeno_slime_click_ctrl" +///from slime AltClickOn(): (/mob) +#define COMSIG_XENO_SLIME_CLICK_ALT "xeno_slime_click_alt" +///from slime ShiftClickOn(): (/mob) +#define COMSIG_XENO_SLIME_CLICK_SHIFT "xeno_slime_click_shift" +///from turf ShiftClickOn(): (/mob) +#define COMSIG_XENO_TURF_CLICK_SHIFT "xeno_turf_click_shift" +///from turf AltClickOn(): (/mob) +#define COMSIG_XENO_TURF_CLICK_CTRL "xeno_turf_click_alt" +///from monkey CtrlClickOn(): (/mob) +#define COMSIG_XENO_MONKEY_CLICK_CTRL "xeno_monkey_click_ctrl" + +///SSalarm signals +#define COMSIG_TRIGGERED_ALARM "ssalarm_triggered" +#define COMSIG_CANCELLED_ALARM "ssalarm_cancelled" diff --git a/code/__defines/misc.dm b/code/__defines/misc.dm index 3056e6a8a6..82b1eabc60 100644 --- a/code/__defines/misc.dm +++ b/code/__defines/misc.dm @@ -155,6 +155,8 @@ #define MAT_METALHYDROGEN "mhydrogen" #define MAT_OSMIUM "osmium" #define MAT_GRAPHITE "graphite" +#define MAT_LEATHER "leather" +#define MAT_CHITIN "chitin" #define SHARD_SHARD "shard" #define SHARD_SHRAPNEL "shrapnel" diff --git a/code/__defines/rust_g.dm b/code/__defines/rust_g.dm new file mode 100644 index 0000000000..9c9e2637ce --- /dev/null +++ b/code/__defines/rust_g.dm @@ -0,0 +1,103 @@ +// rust_g.dm - DM API for rust_g extension library +// +// To configure, create a `rust_g.config.dm` and set what you care about from +// the following options: +// +// #define RUST_G "path/to/rust_g" +// Override the .dll/.so detection logic with a fixed path or with detection +// logic of your own. +// +// #define RUSTG_OVERRIDE_BUILTINS +// Enable replacement rust-g functions for certain builtins. Off by default. + +#ifndef RUST_G +// Default automatic RUST_G detection. +// On Windows, looks in the standard places for `rust_g.dll`. +// On Linux, looks in `.`, `$LD_LIBRARY_PATH`, and `~/.byond/bin` for either of +// `librust_g.so` (preferred) or `rust_g` (old). + +/* This comment bypasses grep checks */ /var/__rust_g + +/proc/__detect_rust_g() + if (world.system_type == UNIX) + if (fexists("./librust_g.so")) + // No need for LD_LIBRARY_PATH badness. + return __rust_g = "./librust_g.so" + else if (fexists("./rust_g")) + // Old dumb filename. + return __rust_g = "./rust_g" + else if (fexists("[world.GetConfig("env", "HOME")]/.byond/bin/rust_g")) + // Old dumb filename in `~/.byond/bin`. + return __rust_g = "rust_g" + else + // It's not in the current directory, so try others + return __rust_g = "librust_g.so" + else + return __rust_g = "rust_g" + +#define RUST_G (__rust_g || __detect_rust_g()) +#endif + +#define RUSTG_JOB_NO_RESULTS_YET "NO RESULTS YET" +#define RUSTG_JOB_NO_SUCH_JOB "NO SUCH JOB" +#define RUSTG_JOB_ERROR "JOB PANICKED" + +#define rustg_dmi_strip_metadata(fname) call(RUST_G, "dmi_strip_metadata")(fname) +#define rustg_dmi_create_png(path, width, height, data) call(RUST_G, "dmi_create_png")(path, width, height, data) + +#define rustg_noise_get_at_coordinates(seed, x, y) call(RUST_G, "noise_get_at_coordinates")(seed, x, y) + +#define rustg_file_read(fname) call(RUST_G, "file_read")(fname) +#define rustg_file_exists(fname) call(RUST_G, "file_exists")(fname) +#define rustg_file_write(text, fname) call(RUST_G, "file_write")(text, fname) +#define rustg_file_append(text, fname) call(RUST_G, "file_append")(text, fname) + +#ifdef RUSTG_OVERRIDE_BUILTINS +#define file2text(fname) rustg_file_read("[fname]") +#define text2file(text, fname) rustg_file_append(text, "[fname]") +#endif + +#define rustg_git_revparse(rev) call(RUST_G, "rg_git_revparse")(rev) +#define rustg_git_commit_date(rev) call(RUST_G, "rg_git_commit_date")(rev) + +#define rustg_hash_string(algorithm, text) call(RUST_G, "hash_string")(algorithm, text) +#define rustg_hash_file(algorithm, fname) call(RUST_G, "hash_file")(algorithm, fname) + +#define RUSTG_HASH_MD5 "md5" +#define RUSTG_HASH_SHA1 "sha1" +#define RUSTG_HASH_SHA256 "sha256" +#define RUSTG_HASH_SHA512 "sha512" + +#ifdef RUSTG_OVERRIDE_BUILTINS +#define md5(thing) (isfile(thing) ? rustg_hash_file(RUSTG_HASH_MD5, "[thing]") : rustg_hash_string(RUSTG_HASH_MD5, thing)) +#endif + +#define rustg_json_is_valid(text) (call(RUST_G, "json_is_valid")(text) == "true") + +#define rustg_log_write(fname, text, format) call(RUST_G, "log_write")(fname, text, format) +/proc/rustg_log_close_all() return call(RUST_G, "log_close_all")() + +#define rustg_url_encode(text) call(RUST_G, "url_encode")(text) +#define rustg_url_decode(text) call(RUST_G, "url_decode")(text) + +#ifdef RUSTG_OVERRIDE_BUILTINS +#define url_encode(text) rustg_url_encode(text) +#define url_decode(text) rustg_url_decode(text) +#endif + +#define RUSTG_HTTP_METHOD_GET "get" +#define RUSTG_HTTP_METHOD_PUT "put" +#define RUSTG_HTTP_METHOD_DELETE "delete" +#define RUSTG_HTTP_METHOD_PATCH "patch" +#define RUSTG_HTTP_METHOD_HEAD "head" +#define RUSTG_HTTP_METHOD_POST "post" +#define rustg_http_request_blocking(method, url, body, headers) call(RUST_G, "http_request_blocking")(method, url, body, headers) +#define rustg_http_request_async(method, url, body, headers) call(RUST_G, "http_request_async")(method, url, body, headers) +#define rustg_http_check_request(req_id) call(RUST_G, "http_check_request")(req_id) + +#define rustg_sql_connect_pool(options) call(RUST_G, "sql_connect_pool")(options) +#define rustg_sql_query_async(handle, query, params) call(RUST_G, "sql_query_async")(handle, query, params) +#define rustg_sql_query_blocking(handle, query, params) call(RUST_G, "sql_query_blocking")(handle, query, params) +#define rustg_sql_connected(handle) call(RUST_G, "sql_connected")(handle) +#define rustg_sql_disconnect_pool(handle) call(RUST_G, "sql_disconnect_pool")(handle) +#define rustg_sql_check_query(job_id) call(RUST_G, "sql_check_query")("[job_id]") diff --git a/code/__defines/species_languages_vr.dm b/code/__defines/species_languages_vr.dm index 54362278d4..8909238db2 100644 --- a/code/__defines/species_languages_vr.dm +++ b/code/__defines/species_languages_vr.dm @@ -9,6 +9,7 @@ #define LANGUAGE_DAEMON "Daemon" #define LANGUAGE_ENOCHIAN "Enochian" #define LANGUAGE_VESPINAE "Vespinae" +#define LANGUAGE_SPACER "Spacer" #define LANGUAGE_CHIMPANZEE "Chimpanzee" #define LANGUAGE_NEAERA "Neaera" diff --git a/code/__defines/vv.dm b/code/__defines/vv.dm index e71d6e2f8f..70ae1ff035 100644 --- a/code/__defines/vv.dm +++ b/code/__defines/vv.dm @@ -50,6 +50,7 @@ #define VV_HK_EXPOSE "expose" #define VV_HK_CALLPROC "proc_call" #define VV_HK_MARK "mark" +#define VV_HK_ADDCOMPONENT "addcomponent" // /atom #define VV_HK_ATOM_EXPLODE "turf_explode" diff --git a/code/_helpers/logging.dm b/code/_helpers/logging.dm index 757555f037..3bef9b4f15 100644 --- a/code/_helpers/logging.dm +++ b/code/_helpers/logging.dm @@ -1,25 +1,17 @@ //print an error message to world.log -// Fall back to using old format if we are not using rust-g -#ifdef RUST_G - #define WRITE_LOG(log, text) call(RUST_G, "log_write")(log, text) -#else - #define WRITE_LOG(log, text) log << "\[[time_stamp()]][text]" -#endif +//This is an external call, "true" and "false" are how rust parses out booleans +#define WRITE_LOG(log, text) rustg_log_write(log, text, "true") +#define WRITE_LOG_NO_FORMAT(log, text) rustg_log_write(log, text, "false") /* For logging round startup. */ /proc/start_log(log) - #ifndef RUST_G - log = file(log) - #endif WRITE_LOG(log, "START: Starting up [log_path].") return log /* Close open log handles. This should be called as late as possible, and no logging should hapen after. */ /proc/shutdown_logging() - #ifdef RUST_G - call(RUST_G, "log_close_all")() - #endif + rustg_log_close_all() /proc/error(msg) to_world_log("## ERROR: [msg]") diff --git a/code/_helpers/sorts/comparators.dm b/code/_helpers/sorts/comparators.dm index f4a8c575c9..704042531a 100644 --- a/code/_helpers/sorts/comparators.dm +++ b/code/_helpers/sorts/comparators.dm @@ -61,4 +61,7 @@ /proc/cmp_recipe_complexity_dsc(datum/recipe/A, datum/recipe/B) var/a_score = LAZYLEN(A.items) + LAZYLEN(A.reagents) + LAZYLEN(A.fruit) var/b_score = LAZYLEN(B.items) + LAZYLEN(B.reagents) + LAZYLEN(B.fruit) - return b_score - a_score \ No newline at end of file + return b_score - a_score + +/proc/cmp_typepaths_asc(A, B) + return sorttext("[B]","[A]") \ No newline at end of file diff --git a/code/_helpers/type2type.dm b/code/_helpers/type2type.dm index 77019ab7b9..52dada1cf9 100644 --- a/code/_helpers/type2type.dm +++ b/code/_helpers/type2type.dm @@ -381,3 +381,19 @@ . += copytext(text, last_found, found) last_found = found + delim_len while (found) + +/proc/type2parent(child) + var/string_type = "[child]" + var/last_slash = findlasttext(string_type, "/") + if(last_slash == 1) + switch(child) + if(/datum) + return null + if(/obj || /mob) + return /atom/movable + if(/area || /turf) + return /atom + else + return /datum + + return text2path(copytext(string_type, 1, last_slash)) diff --git a/code/_helpers/unsorted.dm b/code/_helpers/unsorted.dm index eba949e02d..00ad3a0a58 100644 --- a/code/_helpers/unsorted.dm +++ b/code/_helpers/unsorted.dm @@ -1605,3 +1605,7 @@ GLOBAL_REAL_VAR(list/stack_trace_storage) // Third one is the text that will be clickable. /proc/href(href_src, list/href_params, href_text) return "[href_text]" + +/proc/CallAsync(datum/source, proctype, list/arguments) + set waitfor = FALSE + return call(source, proctype)(arglist(arguments)) \ No newline at end of file diff --git a/code/_onclick/click.dm b/code/_onclick/click.dm index 98f6023e7d..6a4579f191 100644 --- a/code/_onclick/click.dm +++ b/code/_onclick/click.dm @@ -114,11 +114,12 @@ trigger_aiming(TARGET_CAN_CLICK) return 1 - // VOREStation Addition Start: inbelly interaction + // VOREStation Addition Start: inbelly item interaction if(isbelly(loc) && (loc == A.loc)) if(W) - to_chat(src, "The firm confines prevent that kind of dexterity!") //Only hand-based interactions in bellies - return + var/resolved = W.resolve_attackby(A,src) + if(!resolved && A && W) + W.afterattack(A, src, 1, params) // 1: clicking something Adjacent else if(ismob(A)) // No instant mob attacking setClickCooldown(get_attack_speed()) diff --git a/code/_onclick/item_attack.dm b/code/_onclick/item_attack.dm index 8f34599fba..ddfe620570 100644 --- a/code/_onclick/item_attack.dm +++ b/code/_onclick/item_attack.dm @@ -21,6 +21,8 @@ avoid code duplication. This includes items that may sometimes act as a standard // Called when the item is in the active hand, and clicked; alternately, there is an 'activate held object' verb or you can hit pagedown. /obj/item/proc/attack_self(mob/user) + if(SEND_SIGNAL(src, COMSIG_ITEM_ATTACK_SELF, user) & COMPONENT_NO_INTERACT) + return return // Called at the start of resolve_attackby(), before the actual attack. @@ -35,10 +37,13 @@ avoid code duplication. This includes items that may sometimes act as a standard // No comment /atom/proc/attackby(obj/item/W, mob/user, var/attack_modifier, var/click_parameters) - return + if(SEND_SIGNAL(src, COMSIG_PARENT_ATTACKBY, W, user, click_parameters) & COMPONENT_NO_AFTERATTACK) + return TRUE + return FALSE /atom/movable/attackby(obj/item/W, mob/user, var/attack_modifier, var/click_parameters) - if(!(W.flags & NOBLUDGEON)) + . = ..() + if(!. && !(W.flags & NOBLUDGEON)) visible_message("[src] has been hit by [user] with [W].") /mob/living/attackby(obj/item/I, mob/user, var/attack_modifier, var/click_parameters) diff --git a/code/_onclick/observer_vr.dm b/code/_onclick/observer_vr.dm deleted file mode 100644 index b81ea955a4..0000000000 --- a/code/_onclick/observer_vr.dm +++ /dev/null @@ -1,21 +0,0 @@ -/obj/item/device/paicard/attack_ghost(mob/user as mob) - if(src.pai != null) //Have a person in them already? - user.examinate(src) - return - var/choice = input(user, "You sure you want to inhabit this PAI?") in list("Yes", "No") - var/pai_name = input(user, "Choose your character's name", "Character Name") as text - var/actual_pai_name = sanitize_name(pai_name) - var/pai_key - if (isnull(pai_name)) - return - if(choice == "Yes") - pai_key = user.key - else - return - var/turf/location = get_turf(src) - var/obj/item/device/paicard/card = new(location) - var/mob/living/silicon/pai/pai = new(card) - qdel(src) - pai.key = pai_key - card.setPersonality(pai) - pai.SetName(actual_pai_name) \ No newline at end of file diff --git a/code/controllers/subsystems/dcs.dm b/code/controllers/subsystems/dcs.dm new file mode 100644 index 0000000000..104c3eef31 --- /dev/null +++ b/code/controllers/subsystems/dcs.dm @@ -0,0 +1,54 @@ +PROCESSING_SUBSYSTEM_DEF(dcs) + name = "Datum Component System" + flags = SS_NO_INIT + wait = 1 SECONDS + + var/list/elements_by_type = list() + +/datum/controller/subsystem/processing/dcs/Recover() + comp_lookup = SSdcs.comp_lookup + +/datum/controller/subsystem/processing/dcs/proc/GetElement(list/arguments) + var/datum/element/eletype = arguments[1] + var/element_id = eletype + + if(!ispath(eletype, /datum/element)) + CRASH("Attempted to instantiate [eletype] as a /datum/element") + + if(initial(eletype.element_flags) & ELEMENT_BESPOKE) + element_id = GetIdFromArguments(arguments) + + . = elements_by_type[element_id] + if(.) + return + . = elements_by_type[element_id] = new eletype + +/**** + * Generates an id for bespoke elements when given the argument list + * Generating the id here is a bit complex because we need to support named arguments + * Named arguments can appear in any order and we need them to appear after ordered arguments + * We assume that no one will pass in a named argument with a value of null + **/ +/datum/controller/subsystem/processing/dcs/proc/GetIdFromArguments(list/arguments) + var/datum/element/eletype = arguments[1] + var/list/fullid = list("[eletype]") + var/list/named_arguments = list() + for(var/i in initial(eletype.id_arg_index) to length(arguments)) + var/key = arguments[i] + var/value + if(istext(key)) + value = arguments[key] + if(!(istext(key) || isnum(key))) + key = REF(key) + key = "[key]" // Key is stringified so numbers dont break things + if(!isnull(value)) + if(!(istext(value) || isnum(value))) + value = REF(value) + named_arguments["[key]"] = value + else + fullid += "[key]" + + if(length(named_arguments)) + named_arguments = sortList(named_arguments) + fullid += named_arguments + return list2params(fullid) diff --git a/code/controllers/subsystems/garbage.dm b/code/controllers/subsystems/garbage.dm index 9938fa20eb..5573b23ae8 100644 --- a/code/controllers/subsystems/garbage.dm +++ b/code/controllers/subsystems/garbage.dm @@ -284,9 +284,12 @@ SUBSYSTEM_DEF(garbage) if(isnull(D.gc_destroyed)) + if(SEND_SIGNAL(D, COMSIG_PARENT_PREQDELETED, force)) // Give the components a chance to prevent their parent from being deleted + return D.gc_destroyed = GC_CURRENTLY_BEING_QDELETED var/start_time = world.time var/start_tick = world.tick_usage + SEND_SIGNAL(D, COMSIG_PARENT_QDELETING, force) // Let the (remaining) components know about the result of Destroy var/hint = D.Destroy(force) // Let our friend know they're about to get fucked up. if(world.time != start_time) I.slept_destroy++ diff --git a/code/datums/components/README.md b/code/datums/components/README.md new file mode 100644 index 0000000000..03f7d3a587 --- /dev/null +++ b/code/datums/components/README.md @@ -0,0 +1,9 @@ +# Datum Component System (DCS) + +## Concept + +Loosely adapted from /vg/. This is an entity component system for adding behaviours to datums when inheritance doesn't quite cut it. By using signals and events instead of direct inheritance, you can inject behaviours without hacky overloads. It requires a different method of thinking, but is not hard to use correctly. If a behaviour can have application across more than one thing. Make it generic, make it a component. Atom/mob/obj event? Give it a signal, and forward it's arguments with a `SendSignal()` call. Now every component that want's to can also know about this happening. + +See [this thread](https://tgstation13.org/phpBB/viewtopic.php?f=5&t=22674) for an introduction to the system as a whole. + +### See/Define signals and their arguments in [__DEFINES\dcs\signals.dm](../../__DEFINES/dcs/signals.dm) diff --git a/code/datums/components/_component.dm b/code/datums/components/_component.dm new file mode 100644 index 0000000000..4ada8af23b --- /dev/null +++ b/code/datums/components/_component.dm @@ -0,0 +1,537 @@ +/** + * # Component + * + * The component datum + * + * A component should be a single standalone unit + * of functionality, that works by receiving signals from it's parent + * object to provide some single functionality (i.e a slippery component) + * that makes the object it's attached to cause people to slip over. + * Useful when you want shared behaviour independent of type inheritance + */ +/datum/component + /** + * Defines how duplicate existing components are handled when added to a datum + * + * See [COMPONENT_DUPE_*][COMPONENT_DUPE_ALLOWED] definitions for available options + */ + var/dupe_mode = COMPONENT_DUPE_HIGHLANDER + + /** + * The type to check for duplication + * + * `null` means exact match on `type` (default) + * + * Any other type means that and all subtypes + */ + var/dupe_type + + /// The datum this components belongs to + var/datum/parent + + /** + * Only set to true if you are able to properly transfer this component + * + * At a minimum [RegisterWithParent][/datum/component/proc/RegisterWithParent] and [UnregisterFromParent][/datum/component/proc/UnregisterFromParent] should be used + * + * Make sure you also implement [PostTransfer][/datum/component/proc/PostTransfer] for any post transfer handling + */ + var/can_transfer = FALSE + +/** + * Create a new component. + * + * Additional arguments are passed to [Initialize()][/datum/component/proc/Initialize] + * + * Arguments: + * * datum/P the parent datum this component reacts to signals from + */ +/datum/component/New(list/raw_args) + parent = raw_args[1] + var/list/arguments = raw_args.Copy(2) + if(Initialize(arglist(arguments)) == COMPONENT_INCOMPATIBLE) + stack_trace("Incompatible [type] assigned to a [parent.type]! args: [json_encode(arguments)]") + qdel(src, TRUE, TRUE) + return + + _JoinParent(parent) + +/** + * Called during component creation with the same arguments as in new excluding parent. + * + * Do not call `qdel(src)` from this function, `return COMPONENT_INCOMPATIBLE` instead + */ +/datum/component/proc/Initialize(...) + return + +/** + * Properly removes the component from `parent` and cleans up references + * + * Arguments: + * * force - makes it not check for and remove the component from the parent + * * silent - deletes the component without sending a [COMSIG_COMPONENT_REMOVING] signal + */ +/datum/component/Destroy(force=FALSE, silent=FALSE) + if(!force && parent) + _RemoveFromParent() + if(!silent) + SEND_SIGNAL(parent, COMSIG_COMPONENT_REMOVING, src) + parent = null + return ..() + +/** + * Internal proc to handle behaviour of components when joining a parent + */ +/datum/component/proc/_JoinParent() + var/datum/P = parent + //lazy init the parent's dc list + var/list/dc = P.datum_components + if(!dc) + P.datum_components = dc = list() + + //set up the typecache + var/our_type = type + for(var/I in _GetInverseTypeList(our_type)) + var/test = dc[I] + if(test) //already another component of this type here + var/list/components_of_type + if(!length(test)) + components_of_type = list(test) + dc[I] = components_of_type + else + components_of_type = test + if(I == our_type) //exact match, take priority + var/inserted = FALSE + for(var/J in 1 to components_of_type.len) + var/datum/component/C = components_of_type[J] + if(C.type != our_type) //but not over other exact matches + components_of_type.Insert(J, I) + inserted = TRUE + break + if(!inserted) + components_of_type += src + else //indirect match, back of the line with ya + components_of_type += src + else //only component of this type, no list + dc[I] = src + + RegisterWithParent() + +/** + * Internal proc to handle behaviour when being removed from a parent + */ +/datum/component/proc/_RemoveFromParent() + var/datum/P = parent + var/list/dc = P.datum_components + for(var/I in _GetInverseTypeList()) + var/list/components_of_type = dc[I] + if(length(components_of_type)) // + var/list/subtracted = components_of_type - src + if(subtracted.len == 1) //only 1 guy left + dc[I] = subtracted[1] //make him special + else + dc[I] = subtracted + else //just us + dc -= I + if(!dc.len) + P.datum_components = null + + UnregisterFromParent() + +/** + * Register the component with the parent object + * + * Use this proc to register with your parent object + * + * Overridable proc that's called when added to a new parent + */ +/datum/component/proc/RegisterWithParent() + return + +/** + * Unregister from our parent object + * + * Use this proc to unregister from your parent object + * + * Overridable proc that's called when removed from a parent + * * + */ +/datum/component/proc/UnregisterFromParent() + return + +/** + * Register to listen for a signal from the passed in target + * + * This sets up a listening relationship such that when the target object emits a signal + * the source datum this proc is called upon, will recieve a callback to the given proctype + * Return values from procs registered must be a bitfield + * + * Arguments: + * * datum/target The target to listen for signals from + * * sig_type_or_types Either a string signal name, or a list of signal names (strings) + * * proctype The proc to call back when the signal is emitted + * * override If a previous registration exists you must explicitly set this + */ +/datum/proc/RegisterSignal(datum/target, sig_type_or_types, proctype, override = FALSE) + if(QDELETED(src) || QDELETED(target)) + return + + var/list/procs = signal_procs + if(!procs) + signal_procs = procs = list() + if(!procs[target]) + procs[target] = list() + var/list/lookup = target.comp_lookup + if(!lookup) + target.comp_lookup = lookup = list() + + var/list/sig_types = islist(sig_type_or_types) ? sig_type_or_types : list(sig_type_or_types) + for(var/sig_type in sig_types) + if(!override && procs[target][sig_type]) + stack_trace("[sig_type] overridden. Use override = TRUE to suppress this warning") + + procs[target][sig_type] = proctype + + if(!lookup[sig_type]) // Nothing has registered here yet + lookup[sig_type] = src + else if(lookup[sig_type] == src) // We already registered here + continue + else if(!length(lookup[sig_type])) // One other thing registered here + lookup[sig_type] = list(lookup[sig_type]=TRUE) + lookup[sig_type][src] = TRUE + else // Many other things have registered here + lookup[sig_type][src] = TRUE + + signal_enabled = TRUE + +/** + * Stop listening to a given signal from target + * + * Breaks the relationship between target and source datum, removing the callback when the signal fires + * + * Doesn't care if a registration exists or not + * + * Arguments: + * * datum/target Datum to stop listening to signals from + * * sig_typeor_types Signal string key or list of signal keys to stop listening to specifically + */ +/datum/proc/UnregisterSignal(datum/target, sig_type_or_types) + var/list/lookup = target.comp_lookup + if(!signal_procs || !signal_procs[target] || !lookup) + return + if(!islist(sig_type_or_types)) + sig_type_or_types = list(sig_type_or_types) + for(var/sig in sig_type_or_types) + if(!signal_procs[target][sig]) + continue + switch(length(lookup[sig])) + if(2) + lookup[sig] = (lookup[sig]-src)[1] + if(1) + stack_trace("[target] ([target.type]) somehow has single length list inside comp_lookup") + if(src in lookup[sig]) + lookup -= sig + if(!length(lookup)) + target.comp_lookup = null + break + if(0) + lookup -= sig + if(!length(lookup)) + target.comp_lookup = null + break + else + lookup[sig] -= src + + signal_procs[target] -= sig_type_or_types + if(!signal_procs[target].len) + signal_procs -= target + +/** + * Called on a component when a component of the same type was added to the same parent + * + * See [/datum/component/var/dupe_mode] + * + * `C`'s type will always be the same of the called component + */ +/datum/component/proc/InheritComponent(datum/component/C, i_am_original) + return + + +/** + * Called on a component when a component of the same type was added to the same parent with [COMPONENT_DUPE_SELECTIVE] + * + * See [/datum/component/var/dupe_mode] + * + * `C`'s type will always be the same of the called component + * + * return TRUE if you are absorbing the component, otherwise FALSE if you are fine having it exist as a duplicate component + */ +/datum/component/proc/CheckDupeComponent(datum/component/C, ...) + return + + +/** + * Callback Just before this component is transferred + * + * Use this to do any special cleanup you might need to do before being deregged from an object + */ +/datum/component/proc/PreTransfer() + return + +/** + * Callback Just after a component is transferred + * + * Use this to do any special setup you need to do after being moved to a new object + * + * Do not call `qdel(src)` from this function, `return COMPONENT_INCOMPATIBLE` instead + */ +/datum/component/proc/PostTransfer() + return COMPONENT_INCOMPATIBLE //Do not support transfer by default as you must properly support it + +/** + * Internal proc to create a list of our type and all parent types + */ +/datum/component/proc/_GetInverseTypeList(our_type = type) + //we can do this one simple trick + var/current_type = parent_type + . = list(our_type, current_type) + //and since most components are root level + 1, this won't even have to run + while (current_type != /datum/component) + current_type = type2parent(current_type) + . += current_type + +/** + * Internal proc to handle most all of the signaling procedure + * + * Will runtime if used on datums with an empty component list + * + * Use the [SEND_SIGNAL] define instead + */ +/datum/proc/_SendSignal(sigtype, list/arguments) + var/target = comp_lookup[sigtype] + if(!length(target)) + var/datum/C = target + if(!C.signal_enabled) + return NONE + var/proctype = C.signal_procs[src][sigtype] + return NONE | CallAsync(C, proctype, arguments) + . = NONE + for(var/I in target) + var/datum/C = I + if(!C.signal_enabled) + continue + var/proctype = C.signal_procs[src][sigtype] + . |= CallAsync(C, proctype, arguments) + +// The type arg is casted so initial works, you shouldn't be passing a real instance into this +/** + * Return any component assigned to this datum of the given type + * + * This will throw an error if it's possible to have more than one component of that type on the parent + * + * Arguments: + * * datum/component/c_type The typepath of the component you want to get a reference to + */ +/datum/proc/GetComponent(datum/component/c_type) + // RETURN_TYPE(c_type) + if(initial(c_type.dupe_mode) == COMPONENT_DUPE_ALLOWED || initial(c_type.dupe_mode) == COMPONENT_DUPE_SELECTIVE) + stack_trace("GetComponent was called to get a component of which multiple copies could be on an object. This can easily break and should be changed. Type: \[[c_type]\]") + var/list/dc = datum_components + if(!dc) + return null + . = dc[c_type] + if(length(.)) + return .[1] + +// The type arg is casted so initial works, you shouldn't be passing a real instance into this +/** + * Return any component assigned to this datum of the exact given type + * + * This will throw an error if it's possible to have more than one component of that type on the parent + * + * Arguments: + * * datum/component/c_type The typepath of the component you want to get a reference to + */ +/datum/proc/GetExactComponent(datum/component/c_type) + // RETURN_TYPE(c_type) + if(initial(c_type.dupe_mode) == COMPONENT_DUPE_ALLOWED || initial(c_type.dupe_mode) == COMPONENT_DUPE_SELECTIVE) + stack_trace("GetComponent was called to get a component of which multiple copies could be on an object. This can easily break and should be changed. Type: \[[c_type]\]") + var/list/dc = datum_components + if(!dc) + return null + var/datum/component/C = dc[c_type] + if(C) + if(length(C)) + C = C[1] + if(C.type == c_type) + return C + return null + +/** + * Get all components of a given type that are attached to this datum + * + * Arguments: + * * c_type The component type path + */ +/datum/proc/GetComponents(c_type) + var/list/dc = datum_components + if(!dc) + return null + . = dc[c_type] + if(!length(.)) + return list(.) + +/** + * Creates an instance of `new_type` in the datum and attaches to it as parent + * + * Sends the [COMSIG_COMPONENT_ADDED] signal to the datum + * + * Returns the component that was created. Or the old component in a dupe situation where [COMPONENT_DUPE_UNIQUE] was set + * + * If this tries to add a component to an incompatible type, the component will be deleted and the result will be `null`. This is very unperformant, try not to do it + * + * Properly handles duplicate situations based on the `dupe_mode` var + */ +/datum/proc/_AddComponent(list/raw_args) + var/new_type = raw_args[1] + var/datum/component/nt = new_type + var/dm = initial(nt.dupe_mode) + var/dt = initial(nt.dupe_type) + + var/datum/component/old_comp + var/datum/component/new_comp + + if(ispath(nt)) + if(nt == /datum/component) + CRASH("[nt] attempted instantiation!") + else + new_comp = nt + nt = new_comp.type + + raw_args[1] = src + + if(dm != COMPONENT_DUPE_ALLOWED) + if(!dt) + old_comp = GetExactComponent(nt) + else + old_comp = GetComponent(dt) + if(old_comp) + switch(dm) + if(COMPONENT_DUPE_UNIQUE) + if(!new_comp) + new_comp = new nt(raw_args) + if(!QDELETED(new_comp)) + old_comp.InheritComponent(new_comp, TRUE) + QDEL_NULL(new_comp) + if(COMPONENT_DUPE_HIGHLANDER) + if(!new_comp) + new_comp = new nt(raw_args) + if(!QDELETED(new_comp)) + new_comp.InheritComponent(old_comp, FALSE) + QDEL_NULL(old_comp) + if(COMPONENT_DUPE_UNIQUE_PASSARGS) + if(!new_comp) + var/list/arguments = raw_args.Copy(2) + arguments.Insert(1, null, TRUE) + old_comp.InheritComponent(arglist(arguments)) + else + old_comp.InheritComponent(new_comp, TRUE) + if(COMPONENT_DUPE_SELECTIVE) + var/list/arguments = raw_args.Copy() + arguments[1] = new_comp + var/make_new_component = TRUE + for(var/i in GetComponents(new_type)) + var/datum/component/C = i + if(C.CheckDupeComponent(arglist(arguments))) + make_new_component = FALSE + QDEL_NULL(new_comp) + break + if(!new_comp && make_new_component) + new_comp = new nt(raw_args) + else if(!new_comp) + new_comp = new nt(raw_args) // There's a valid dupe mode but there's no old component, act like normal + else if(!new_comp) + new_comp = new nt(raw_args) // Dupes are allowed, act like normal + + if(!old_comp && !QDELETED(new_comp)) // Nothing related to duplicate components happened and the new component is healthy + SEND_SIGNAL(src, COMSIG_COMPONENT_ADDED, new_comp) + return new_comp + return old_comp + +/** + * Get existing component of type, or create it and return a reference to it + * + * Use this if the item needs to exist at the time of this call, but may not have been created before now + * + * Arguments: + * * component_type The typepath of the component to create or return + * * ... additional arguments to be passed when creating the component if it does not exist + */ +/datum/proc/LoadComponent(component_type, ...) + . = GetComponent(component_type) + if(!.) + return _AddComponent(args) + +/** + * Removes the component from parent, ends up with a null parent + */ +/datum/component/proc/RemoveComponent() + if(!parent) + return + var/datum/old_parent = parent + PreTransfer() + _RemoveFromParent() + parent = null + SEND_SIGNAL(old_parent, COMSIG_COMPONENT_REMOVING, src) + +/** + * Transfer this component to another parent + * + * Component is taken from source datum + * + * Arguments: + * * datum/component/target Target datum to transfer to + */ +/datum/proc/TakeComponent(datum/component/target) + if(!target || target.parent == src) + return + if(target.parent) + target.RemoveComponent() + target.parent = src + var/result = target.PostTransfer() + switch(result) + if(COMPONENT_INCOMPATIBLE) + var/c_type = target.type + qdel(target) + CRASH("Incompatible [c_type] transfer attempt to a [type]!") + + if(target == AddComponent(target)) + target._JoinParent() + +/** + * Transfer all components to target + * + * All components from source datum are taken + * + * Arguments: + * * /datum/target the target to move the components to + */ +/datum/proc/TransferComponents(datum/target) + var/list/dc = datum_components + if(!dc) + return + var/comps = dc[/datum/component] + if(islist(comps)) + for(var/datum/component/I in comps) + if(I.can_transfer) + target.TakeComponent(I) + else + var/datum/component/C = comps + if(C.can_transfer) + target.TakeComponent(comps) + +/** + * Return the object that is the host of any UI's that this component has + */ +/datum/component/tgui_host() + return parent diff --git a/code/datums/datum.dm b/code/datums/datum.dm index d806728f5d..1f9feeeacf 100644 --- a/code/datums/datum.dm +++ b/code/datums/datum.dm @@ -6,6 +6,10 @@ /datum var/gc_destroyed //Time when this object was destroyed. var/list/active_timers //for SStimer + var/list/datum_components //for /datum/components + var/list/comp_lookup + var/list/signal_procs + var/signal_enabled = FALSE var/weakref/weakref // Holder of weakref instance pointing to this datum var/datum_flags = NONE @@ -30,6 +34,38 @@ weakref = null // Clear this reference to ensure it's kept for as brief duration as possible. + //BEGIN: ECS SHIT + signal_enabled = FALSE + + var/list/dc = datum_components + if(dc) + var/all_components = dc[/datum/component] + if(length(all_components)) + for(var/I in all_components) + var/datum/component/C = I + qdel(C, FALSE, TRUE) + else + var/datum/component/C = all_components + qdel(C, FALSE, TRUE) + dc.Cut() + + var/list/lookup = comp_lookup + if(lookup) + for(var/sig in lookup) + var/list/comps = lookup[sig] + if(length(comps)) + for(var/i in comps) + var/datum/component/comp = i + comp.UnregisterSignal(src, sig) + else + var/datum/component/comp = comps + comp.UnregisterSignal(src, sig) + comp_lookup = lookup = null + + for(var/target in signal_procs) + UnregisterSignal(target, signal_procs[target]) + //END: ECS SHIT + tag = null SStgui.close_uis(src) return QDEL_HINT_QUEUE diff --git a/code/datums/datumvars.dm b/code/datums/datumvars.dm index aa28473fa3..95db63ff33 100644 --- a/code/datums/datumvars.dm +++ b/code/datums/datumvars.dm @@ -26,6 +26,7 @@ VV_DROPDOWN_OPTION(VV_HK_MARK, "Mark Object") VV_DROPDOWN_OPTION(VV_HK_DELETE, "Delete") VV_DROPDOWN_OPTION(VV_HK_EXPOSE, "Show VV To Player") + VV_DROPDOWN_OPTION(VV_HK_ADDCOMPONENT, "Add Component/Element") //This proc is only called if everything topic-wise is verified. The only verifications that should happen here is things like permission checks! //href_list is a reference, modifying it in these procs WILL change the rest of the proc in topic.dm of admin/view_variables! @@ -58,6 +59,34 @@ usr.client.mark_datum(src) IF_VV_OPTION(VV_HK_CALLPROC) usr.client.callproc_datum(src) + IF_VV_OPTION(VV_HK_ADDCOMPONENT) + if(!check_rights(NONE)) + return + var/list/names = list() + var/list/componentsubtypes = sortTim(subtypesof(/datum/component), /proc/cmp_typepaths_asc) + names += "---Components---" + names += componentsubtypes + names += "---Elements---" + names += sortTim(subtypesof(/datum/element), /proc/cmp_typepaths_asc) + var/result = input(usr, "Choose a component/element to add","better know what ur fuckin doin pal") as null|anything in names + if(!usr || !result || result == "---Components---" || result == "---Elements---") + return + if(QDELETED(src)) + to_chat(usr, "That thing doesn't exist anymore!", confidential = TRUE) + return + var/list/lst = usr.client.get_callproc_args() + if(!lst) + return + var/datumname = "error" + lst.Insert(1, result) + if(result in componentsubtypes) + datumname = "component" + _AddComponent(lst) + else + datumname = "element" + _AddElement(lst) + log_admin("[key_name(usr)] has added [result] [datumname] to [key_name(src)].") + message_admins("[key_name_admin(usr)] has added [result] [datumname] to [key_name_admin(src)].") /datum/proc/vv_get_header() . = list() diff --git a/code/datums/elements/_element.dm b/code/datums/elements/_element.dm new file mode 100644 index 0000000000..caf02b65b9 --- /dev/null +++ b/code/datums/elements/_element.dm @@ -0,0 +1,55 @@ +/** + * A holder for simple behaviour that can be attached to many different types + * + * Only one element of each type is instanced during game init. + * Otherwise acts basically like a lightweight component. + */ +/datum/element + /// Option flags for element behaviour + var/element_flags = NONE + /** + * The index of the first attach argument to consider for duplicate elements + * + * Is only used when flags contains [ELEMENT_BESPOKE] + * + * This is infinity so you must explicitly set this + */ + var/id_arg_index = INFINITY + +/// Activates the functionality defined by the element on the given target datum +/datum/element/proc/Attach(datum/target) + // SHOULD_CALL_PARENT(1) + if(type == /datum/element) + return ELEMENT_INCOMPATIBLE + SEND_SIGNAL(target, COMSIG_ELEMENT_ATTACH, src) + if(element_flags & ELEMENT_DETACH) + RegisterSignal(target, COMSIG_PARENT_QDELETING, .proc/Detach, override = TRUE) + +/// Deactivates the functionality defines by the element on the given datum +/datum/element/proc/Detach(datum/source, force) + SEND_SIGNAL(source, COMSIG_ELEMENT_DETACH, src) + // SHOULD_CALL_PARENT(1) + UnregisterSignal(source, COMSIG_PARENT_QDELETING) + +/datum/element/Destroy(force) + if(!force) + return QDEL_HINT_LETMELIVE + SSdcs.elements_by_type -= type + return ..() + +//DATUM PROCS + +/// Finds the singleton for the element type given and attaches it to src +/datum/proc/_AddElement(list/arguments) + var/datum/element/ele = SSdcs.GetElement(arguments) + arguments[1] = src + if(ele.Attach(arglist(arguments)) == ELEMENT_INCOMPATIBLE) + CRASH("Incompatible [arguments[1]] assigned to a [type]! args: [json_encode(args)]") + +/** + * Finds the singleton for the element type given and detaches it from src + * You only need additional arguments beyond the type if you're using [ELEMENT_BESPOKE] + */ +/datum/proc/_RemoveElement(list/arguments) + var/datum/element/ele = SSdcs.GetElement(arguments) + ele.Detach(src) diff --git a/code/datums/looping_sounds/item_sounds.dm b/code/datums/looping_sounds/item_sounds.dm index 4619acd3b5..855f4c5213 100644 --- a/code/datums/looping_sounds/item_sounds.dm +++ b/code/datums/looping_sounds/item_sounds.dm @@ -27,3 +27,19 @@ /datum/looping_sound/geiger/stop() . = ..() last_radiation = 0 + +/datum/looping_sound/small_motor + start_sound = 'sound/items/small_motor/motor_start_nopull.ogg' + start_length = 2 SECONDS + mid_sounds = list( + 'sound/items/small_motor/motor_idle.ogg', + 'sound/items/small_motor/motor_fast.ogg', + 'sound/items/small_motor/motor_faster.ogg' + ) + mid_length = 1.9 SECONDS //someone make this loop better please, i'm no good at sound. the clips should be 2 seconds exact but there's a gap if it's set to 2 + end_sound = 'sound/items/small_motor/motor_end.ogg' + var/speed = 1 + +/datum/looping_sound/small_motor/get_sound(starttime) + speed = clamp(speed, 1, 3) + return ..(starttime, mid_sounds[speed]) \ No newline at end of file diff --git a/code/datums/observation/moved.dm b/code/datums/observation/moved.dm index 311f9673f6..3cd61c1cc6 100644 --- a/code/datums/observation/moved.dm +++ b/code/datums/observation/moved.dm @@ -25,11 +25,6 @@ GLOBAL_DATUM_INIT(moved_event, /decl/observ/moved, new) /******************** * Movement Handling * ********************/ - -/atom/Entered(var/atom/movable/am, var/atom/old_loc) - . = ..() - GLOB.moved_event.raise_event(am, old_loc, am.loc) - /atom/movable/Entered(var/atom/movable/am, atom/old_loc) . = ..() if(GLOB.moved_event.has_listeners(am)) diff --git a/code/datums/supplypacks/engineering.dm b/code/datums/supplypacks/engineering.dm index 5d2bc99089..165c5fbfef 100644 --- a/code/datums/supplypacks/engineering.dm +++ b/code/datums/supplypacks/engineering.dm @@ -151,6 +151,13 @@ containername = "Singularity Generator crate" access = access_ce +/datum/supply_pack/eng/engine/tesla_gen + name = "Tesla Generator crate" + contains = list(/obj/machinery/the_singularitygen/tesla) + containertype = /obj/structure/closet/crate/secure/einstein + containername = "Tesla Generator crate" + access = access_ce + /datum/supply_pack/eng/engine/collector name = "Collector crate" contains = list(/obj/machinery/power/rad_collector = 3) diff --git a/code/game/area/Space Station 13 areas.dm b/code/game/area/Space Station 13 areas.dm index a12a80e6ec..5a06c3450b 100755 --- a/code/game/area/Space Station 13 areas.dm +++ b/code/game/area/Space Station 13 areas.dm @@ -358,6 +358,13 @@ NOTE: there are two lists of areas in the end of this file: centcom and station name = "\improper Thunderdome (Observer.)" icon_state = "purple" +/area/virtual_reality + name = "Virtual Reality" + icon_state = "Virtual_Reality" + dynamic_lighting = 0 + requires_power = 0 + flags = AREA_FLAG_IS_NOT_PERSISTENT + //ENEMY //names are used diff --git a/code/game/area/Space Station 13 areas_vr.dm b/code/game/area/Space Station 13 areas_vr.dm index 657568479e..d9a132cd4f 100644 --- a/code/game/area/Space Station 13 areas_vr.dm +++ b/code/game/area/Space Station 13 areas_vr.dm @@ -6,6 +6,12 @@ //Rouguelike Mining /area/asteroid/rogue + has_gravity = 0 + requires_power = 1 + always_unpowered = 1 + power_light = 0 + power_equip = 0 + power_environ = 0 var/asteroid_spawns = list() var/mob_spawns = list() var/shuttle_area //It would be neat if this were more dynamic, but eh. diff --git a/code/game/atoms.dm b/code/game/atoms.dm index b56db48dab..5ec5af0e6b 100644 --- a/code/game/atoms.dm +++ b/code/game/atoms.dm @@ -210,6 +210,7 @@ if(user.client?.prefs.examine_text_mode == EXAMINE_MODE_SWITCH_TO_PANEL) user.client.statpanel = "Examine" // Switch to stat panel + SEND_SIGNAL(src, COMSIG_PARENT_EXAMINE, user, output) return output // Don't make these call bicon or anything, these are what bicon uses. They need to return an icon. @@ -223,6 +224,7 @@ //called to set the atom's dir and used to add behaviour to dir-changes /atom/proc/set_dir(new_dir) + SEND_SIGNAL(src, COMSIG_ATOM_DIR_CHANGE, dir, new_dir) . = new_dir != dir dir = new_dir @@ -631,3 +633,17 @@ /atom/proc/speech_bubble(bubble_state = "", bubble_loc = src, list/bubble_recipients = list()) return + +/atom/Entered(atom/movable/AM, atom/old_loc) + . = ..() + GLOB.moved_event.raise_event(AM, old_loc, AM.loc) + SEND_SIGNAL(src, COMSIG_ATOM_ENTERED, AM, old_loc) + +/atom/Exit(atom/movable/AM, atom/new_loc) + . = ..() + if(SEND_SIGNAL(src, COMSIG_ATOM_EXIT, AM, new_loc) & COMPONENT_ATOM_BLOCK_EXIT) + return FALSE + +/atom/Exited(atom/movable/AM, atom/new_loc) + . = ..() + SEND_SIGNAL(src, COMSIG_ATOM_EXITED, AM, new_loc) \ No newline at end of file diff --git a/code/game/dna/dna2.dm b/code/game/dna/dna2.dm index 3ed52d317c..b3a183e9f9 100644 --- a/code/game/dna/dna2.dm +++ b/code/game/dna/dna2.dm @@ -304,8 +304,8 @@ var/global/list/datum/dna/gene/dna_genes[0] // Getter version of above. /datum/dna/proc/GetUIValueRange(var/block,var/maxvalue) if (block<=0) return 0 - var/value = GetUIValue(block) - return round(0.5 + (value / 4095) * maxvalue) + var/value = ((GetUIValue(block) / 4095) * maxvalue) + return round(0.5 + value) // Is the UI gene "on" or "off"? // For UI, this is simply a check of if the value is > 2050. @@ -390,8 +390,8 @@ var/global/list/datum/dna/gene/dna_genes[0] // Getter version of above. /datum/dna/proc/GetSEValueRange(var/block,var/maxvalue) if (block<=0) return 0 - var/value = GetSEValue(block) - return round(1 +(value / 4095)*maxvalue) + var/value = ((GetSEValue(block) / 4095) * maxvalue) + return round(0.5 + value) // Is the block "on" (1) or "off" (0)? (Un-assigned genes are always off.) /datum/dna/proc/GetSEState(var/block) diff --git a/code/game/dna/dna_modifier.dm b/code/game/dna/dna_modifier.dm index eb0ad7000c..908651abf9 100644 --- a/code/game/dna/dna_modifier.dm +++ b/code/game/dna/dna_modifier.dm @@ -331,7 +331,7 @@ connected = locate(/obj/machinery/dna_scannernew, get_step(src, dir)) if(connected) break - VARSET_IN(src, injector_ready, TRUE, 25 SECONDS) + VARSET_IN(src, injector_ready, TRUE, 25 SECONDS) /obj/machinery/computer/scan_consolenew/proc/all_dna_blocks(var/list/buffer) var/list/arr = list() diff --git a/code/game/jobs/job/assistant_vr.dm b/code/game/jobs/job/assistant_vr.dm index b3cf186d99..c775a79608 100644 --- a/code/game/jobs/job/assistant_vr.dm +++ b/code/game/jobs/job/assistant_vr.dm @@ -19,7 +19,7 @@ alt_titles = list("Intern" = /datum/alt_title/intern, "Apprentice Engineer" = /datum/alt_title/intern_eng, "Medical Intern" = /datum/alt_title/intern_med, - "Lab Assistant" = /datum/alt_title/intern_sci, + "Research Intern" = /datum/alt_title/intern_sci, "Security Cadet" = /datum/alt_title/intern_sec, "Jr. Cargo Tech" = /datum/alt_title/intern_crg, "Server" = /datum/alt_title/server) @@ -33,7 +33,7 @@ /datum/alt_title/intern_eng title = "Apprentice Engineer" title_blurb = "An Apprentice Engineer attempts to provide whatever the Engineering department needs. They are not proper Engineers, and are \ - often in training to become an Engineer. A Technical Assistant has no real authority." + often in training to become an Engineer. An Apprentice Engineer has no real authority." title_outfit = /decl/hierarchy/outfit/job/assistant/engineer /datum/alt_title/intern_med @@ -43,9 +43,9 @@ title_outfit = /decl/hierarchy/outfit/job/assistant/medic /datum/alt_title/intern_sci - title = "Lab Assistant" - title_blurb = "A Lab Assistant attempts to provide whatever the Research department needs. They are not proper Scientists, and are \ - often in training to become a Scientist. A Lab Assistant has no real authority." + title = "Research Intern" + title_blurb = "A Research Intern attempts to provide whatever the Research department needs. They are not proper Scientists, and are \ + often in training to become a Scientist. A Research Intern has no real authority." title_outfit = /decl/hierarchy/outfit/job/assistant/scientist /datum/alt_title/intern_sec @@ -65,11 +65,6 @@ title_blurb = "A Server helps out kitchen and diner staff with various tasks, primarily food delivery. A Server has no real authority." title_outfit = /decl/hierarchy/outfit/job/service/server - -////////////////////////////////// -// Visitor -////////////////////////////////// - /datum/job/intern/New() ..() if(config) @@ -82,11 +77,17 @@ else return list() + +////////////////////////////////// +// Visitor +////////////////////////////////// + /datum/job/assistant // Visitor title = USELESS_JOB supervisors = "nobody! You don't work here" job_description = "A Visitor is just there to visit the place. They have no real authority or responsibility." timeoff_factor = 0 + alt_titles = list("Guest" = /datum/alt_title/guest, "Traveler" = /datum/alt_title/traveler) /datum/job/assistant/New() ..() @@ -96,3 +97,9 @@ /datum/job/assistant/get_access() return list() + +/datum/alt_title/guest + title = "Guest" + +/datum/alt_title/traveler + title = "Traveler" diff --git a/code/game/jobs/job/captain_vr.dm b/code/game/jobs/job/captain_vr.dm index 4cf8da4183..d2b830ad7b 100644 --- a/code/game/jobs/job/captain_vr.dm +++ b/code/game/jobs/job/captain_vr.dm @@ -2,6 +2,14 @@ disallow_jobhop = TRUE pto_type = PTO_CIVILIAN dept_time_required = 80 //Pending something more complicated + alt_titles = list("Overseer"= /datum/alt_title/overseer, "Facility Director" = /datum/alt_title/facility_director, "Chief Supervisor" = /datum/alt_title/chief_supervisor) + +/datum/alt_title/facility_director + title = "Facility Director" + +/datum/alt_title/chief_supervisor + title = "Chief Supervisor" + /datum/job/hop disallow_jobhop = TRUE @@ -10,8 +18,8 @@ departments_managed = list(DEPARTMENT_CIVILIAN, DEPARTMENT_CARGO, DEPARTMENT_PLANET) dept_time_required = 60 - alt_titles = list("Crew Resources Officer" = /datum/alt_title/cro, - "Deputy Director" = /datum/alt_title/deputy_director) + alt_titles = list("Crew Resources Officer" = /datum/alt_title/cro, "Deputy Manager" = /datum/alt_title/deputy_manager, "Staff Manager" = /datum/alt_title/staff_manager, + "Facility Steward" = /datum/alt_title/facility_steward) access = list(access_security, access_sec_doors, access_brig, access_forensics_lockers, access_medical, access_engine, access_change_ids, access_ai_upload, access_eva, access_heads, @@ -26,9 +34,30 @@ access_chapel_office, access_library, access_research, access_mining, access_heads_vault, access_mining_station, access_hop, access_RC_announce, access_keycard_auth) -/datum/alt_title/deputy_director - title = "Deputy Director" +/datum/alt_title/deputy_manager + title = "Deputy Manager" + +/datum/alt_title/staff_manager + title = "Staff Manager" + +/datum/alt_title/facility_steward + title = "Facility Steward" + /datum/job/secretary disallow_jobhop = TRUE - pto_type = PTO_CIVILIAN \ No newline at end of file + pto_type = PTO_CIVILIAN + alt_titles = list("Command Liaison" = /datum/alt_title/command_liaison, "Bridge Secretary" = /datum/alt_title/bridge_secretary, + "Command Assistant" = /datum/alt_title/command_assistant, "Command Intern" = /datum/alt_title/command_intern) + +/datum/alt_title/command_liaison + title = "Command Liaison" + +/datum/alt_title/bridge_secretary + title = "Bridge Secretary" + +/datum/alt_title/command_assistant + title = "Command Assistant" + +/datum/alt_title/command_intern + title = "Command Intern" \ No newline at end of file diff --git a/code/game/jobs/job/civilian_vr.dm b/code/game/jobs/job/civilian_vr.dm index 4529c7c79a..beb4f477f8 100644 --- a/code/game/jobs/job/civilian_vr.dm +++ b/code/game/jobs/job/civilian_vr.dm @@ -1,34 +1,104 @@ /datum/job/bartender pto_type = PTO_CIVILIAN + alt_titles = list("Barkeeper" = /datum/alt_title/barkeeper, "Barmaid" = /datum/alt_title/barmaid, "Barista" = /datum/alt_title/barista, "Mixologist" = /datum/alt_title/mixologist) + +/datum/alt_title/barkeeper + title = "Barkeeper" + +/datum/alt_title/barmaid + title = "Barmaid" + +/datum/alt_title/mixologist + title = "Mixologist" + /datum/job/chef total_positions = 2 //IT TAKES A LOT TO MAKE A STEW spawn_positions = 2 //A PINCH OF SALT AND LAUGHTER, TOO pto_type = PTO_CIVILIAN + alt_titles = list("Sous-chef" = /datum/alt_title/souschef,"Cook" = /datum/alt_title/cook, "Kitchen Worker" = /datum/alt_title/kitchen_worker) + +/datum/alt_title/souschef + title = "Sous-chef" + +/datum/alt_title/kitchen_worker + title = "Kitchen Worker" + title_blurb = "A Kitchen Worker has the same duties, though they may be less experienced." + /datum/job/hydro spawn_positions = 2 pto_type = PTO_CIVILIAN + alt_titles = list("Hydroponicist" = /datum/alt_title/hydroponicist, "Cultivator" = /datum/alt_title/cultivator, "Farmer" = /datum/alt_title/farmer, + "Gardener" = /datum/alt_title/gardener, "Florist" = /datum/alt_title/florsit) + +/datum/alt_title/hydroponicist + title = "Hydroponicist" + +/datum/alt_title/cultivator + title = "Cultivator" + +/datum/alt_title/farmer + title = "Farmer" + +/datum/alt_title/florsit + title = "Florist" + title_blurb = "A Florist may be less professional than their counterparts, and are more likely to tend to the public gardens if they aren't needed elsewhere." + /datum/job/qm pto_type = PTO_CARGO dept_time_required = 20 + alt_titles = list("Supply Chief" = /datum/alt_title/supply_chief, "Logistics Manager" = /datum/alt_title/logistics_manager) + +/datum/alt_title/logistics_manager + title = "Logistics Manager" + /datum/job/cargo_tech total_positions = 3 spawn_positions = 3 pto_type = PTO_CARGO + alt_titles = list("Cargo Loader" = /datum/alt_title/cargo_loader, "Cargo Handler" = /datum/alt_title/cargo_handler, "Supply Courier" = /datum/alt_title/supply_courier, + "Disposals Sorter" = /datum/alt_title/disposal_sorter) + +/datum/alt_title/supply_courier + title = "Supply Courier" + title_blurb = "A Supply Courier is usually tasked with devlivering packages or cargo directly to whoever requires it." + +/datum/alt_title/cargo_loader + title = "Cargo Loader" + title_blurb = "A Cargo Loader is usually tasked with more menial labor within Supply department, such as loading and unloading supply shuttle." + +/datum/alt_title/cargo_handler + title = "Cargo Handler" + title_blurb = "A Cargo Loader is usually tasked with more menial labor within Supply department, such as loading and unloading supply shuttle." + +/datum/alt_title/disposal_sorter + title = "Disposals Sorter" + title_blurb = "A Disposals Sorter is usually tasked with operating disposals delivery system, sorting the trash and tagging parcels for delivery." + /datum/job/mining total_positions = 4 spawn_positions = 4 pto_type = PTO_CARGO + alt_titles = list("Deep Space Miner" = /datum/alt_title/deep_space_miner, "Drill Technician" = /datum/alt_title/drill_tech, "Prospector" = /datum/alt_title/prospector) + +/datum/alt_title/deep_space_miner + title = "Deep Space Miner" + title_blurb = "A Deep Space Miner specializes primarily in mining operations in zero-g environments, mostly in asteroid and debris fields." + +/datum/alt_title/prospector + title = "Prospector" + /datum/job/janitor //Lots of janitor substations on station. total_positions = 3 spawn_positions = 3 - alt_titles = list("Custodian" = /datum/alt_title/custodian, "Sanitation Technician" = /datum/alt_title/sanitation_tech, "Maid" = /datum/alt_title/maid) pto_type = PTO_CIVILIAN + alt_titles = list("Custodian" = /datum/alt_title/custodian, "Sanitation Technician" = /datum/alt_title/sanitation_tech, + "Maid" = /datum/alt_title/maid, "Garbage Collector" = /datum/alt_title/garbage_collector) /datum/alt_title/sanitation_tech title = "Sanitation Technician" @@ -36,26 +106,73 @@ /datum/alt_title/maid title = "Maid" +/datum/alt_title/garbage_collector + title = "Garbage Collector" + title_blurb = "A Garbage Collector keeps the station clean, though focuses moreso on collecting larger trash, with wet cleaning being secondary task." + + /datum/job/librarian total_positions = 2 spawn_positions = 2 - alt_titles = list("Journalist" = /datum/alt_title/journalist, "Writer" = /datum/alt_title/writer, "Historian" = /datum/alt_title/historian, "Professor" = /datum/alt_title/professor) + alt_titles = list("Journalist" = /datum/alt_title/journalist, "Reporter" = /datum/alt_title/reporter, "Writer" = /datum/alt_title/writer, + "Historian" = /datum/alt_title/historian, "Archivist" = /datum/alt_title/archivist, "Professor" = /datum/alt_title/professor, + "Academic" = /datum/alt_title/academic, "Philosopher" = /datum/alt_title/philosopher) pto_type = PTO_CIVILIAN +/datum/alt_title/reporter + title = "Reporter" + title_blurb = "The Reporter uses the Library as a base of operations, from which they can report the news and goings-on on the station with their camera." + /datum/alt_title/historian title = "Historian" title_blurb = "The Historian uses the Library as a base of operation to record any important events occuring on station." +/datum/alt_title/archivist + title = "Archivist" + title_blurb = "The Archivist uses the Library as a base of operation to record any important events occuring on station." + /datum/alt_title/professor title = "Professor" title_blurb = "The Professor uses the Library as a base of operations to share their vast knowledge with the crew." +/datum/alt_title/academic + title = "Academic" + title_blurb = "The Academic uses the Library as a base of operations to share their vast knowledge with the crew." + +/datum/alt_title/philosopher + title = "Philosopher" + title_blurb = "The Philosopher uses the Library as a base of operation to ruminate on nature of life and other great questions, and share their opinions with the crew." + + /datum/job/lawyer disallow_jobhop = TRUE pto_type = PTO_CIVILIAN + alt_titles = list("Internal Affairs Liaison" = /datum/alt_title/ia_liaison, "Internal Affairs Delegate" = /datum/alt_title/ia_delegate, + "Internal Affairs Investigator" = /datum/alt_title/ia_investigator) + +/datum/alt_title/ia_liaison + title = "Internal Affairs Liaison" + +/datum/alt_title/ia_delegate + title = "Internal Affairs Delegate" + +/datum/alt_title/ia_investigator + title = "Internal Affairs Investigator" + /datum/job/chaplain pto_type = PTO_CIVILIAN + alt_titles = list("Missionary" = /datum/alt_title/missionary, "Preacher" = /datum/alt_title/preacher, "Counselor" = /datum/alt_title/counselor, "Guru" = /datum/alt_title/guru) + +/datum/alt_title/guru + title = "Guru" + title_blurb = "The Guru primarily tries to offer spiritual guidance to those who come seeking it." + +/datum/alt_title/missionary + title = "Missionary" + +/datum/alt_title/preacher + title = "Preacher" @@ -79,17 +196,43 @@ outfit_type = /decl/hierarchy/outfit/job/assistant job_description = "An entertainer does just that, entertains! Put on plays, play music, sing songs, tell stories, or read your favorite fanfic." - alt_titles = list("Performer" = /datum/alt_title/performer, "Musician" = /datum/alt_title/musician, "Stagehand" = /datum/alt_title/stagehand) + alt_titles = list("Performer" = /datum/alt_title/performer, "Musician" = /datum/alt_title/musician, "Stagehand" = /datum/alt_title/stagehand, + "Actor" = /datum/alt_title/actor, "Dancer" = /datum/alt_title/dancer, "Singer" = /datum/alt_title/singer, + "Magician" = /datum/alt_title/magician, "Comedian" = /datum/alt_title/comedian, "Tragedian" = /datum/alt_title/tragedian) // Entertainer Alt Titles +/datum/alt_title/actor + title = "Actor" + title_blurb = "An Actor is someone who acts out a role! Whatever sort of character it is, get into it and impress people with power of comedy and tragedy!" + /datum/alt_title/performer title = "Performer" - title_blurb = "A Performer is someone who performs! Acting, dancing, wrestling, etc!" + title_blurb = "A Performer is someone who performs! Whatever sort of performance will come to your mind, the world's a stage!" /datum/alt_title/musician title = "Musician" - title_blurb = "A Musician is someone who makes music! Singing, playing instruments, slam poetry, it's your call!" + title_blurb = "A Musician is someone who makes music with a wide variety of musical instruments!" /datum/alt_title/stagehand title = "Stagehand" - title_blurb = "A Stagehand typically performs everything the rest of the entertainers don't. Operate lights, shutters, windows, or narrate through your voicebox!" \ No newline at end of file + title_blurb = "A Stagehand typically performs everything the rest of the entertainers don't. Operate lights, shutters, windows, or narrate through your voicebox!" + +/datum/alt_title/dancer + title = "Dancer" + title_blurb = "A Dancer is someone who impresses people through power of their own body! From waltz to breakdance, as long as crowd as cheering!" + +/datum/alt_title/singer + title = "Singer" + title_blurb = "A Singer is someone with gift of melodious voice! Impress people with your vocal range!" + +/datum/alt_title/magician + title = "Magician" + title_blurb = "A Magician is someone who awes those around them with impossible! Show off your repertoire of magic tricks, while keeping the secret hidden!" + +/datum/alt_title/comedian + title = "Comedian" + title_blurb = "A Comedian will focus on making people laugh with the power of wit! Telling jokes, stand-up comedy, you are here to make others smile!" + +/datum/alt_title/tragedian + title = "Tragedian" + title_blurb = "A Tragedian will focus on making people think about life and world around them! Life is a tragedy, and who's better to convey its emotions than you?" \ No newline at end of file diff --git a/code/game/jobs/job/engineering_vr.dm b/code/game/jobs/job/engineering_vr.dm index e0f106ac80..8799aa3905 100644 --- a/code/game/jobs/job/engineering_vr.dm +++ b/code/game/jobs/job/engineering_vr.dm @@ -12,10 +12,38 @@ access_teleporter, access_external_airlocks, access_atmospherics, access_emergency_storage, access_eva, access_heads, access_construction, access_ce, access_RC_announce, access_keycard_auth, access_tcomsat, access_ai_upload) + alt_titles = list("Head Engineer" = /datum/alt_title/head_engineer, "Foreman" = /datum/alt_title/foreman, "Maintenance Manager" = /datum/alt_title/maintenance_manager) + +/datum/alt_title/head_engineer + title = "Head Engineer" + +/datum/alt_title/foreman + title = "Foreman" + +/datum/alt_title/maintenance_manager + title = "Maintenance Manager" + /datum/job/engineer pto_type = PTO_ENGINEERING + alt_titles = list("Maintenance Technician" = /datum/alt_title/maint_tech, "Engine Technician" = /datum/alt_title/engine_tech, + "Electrician" = /datum/alt_title/electrician, "Construction Engineer" = /datum/alt_title/construction_engi) + +/datum/alt_title/construction_engi + title = "Construction Engineer" + title_blurb = "A Construction Engineer fulfills similar duties to other engineers, but usually occupies spare time with construction of extra facilities in dedicated areas or \ + as additions to station layout." + + /datum/job/atmos spawn_positions = 3 - pto_type = PTO_ENGINEERING \ No newline at end of file + pto_type = PTO_ENGINEERING + alt_titles = list("Atmospherics Maintainer" = /datum/alt_title/atmos_maint, "Disposals Technician" = /datum/alt_title/disposals_tech) + +/datum/alt_title/atmos_maint + title = "Atmospherics Maintainer" + +/datum/alt_title/disposals_tech + title = "Disposals Technician" + title_blurb = "A Disposals Technician is an Atmospheric Technician still and can fulfill all the same duties, although specializes more in disposals delivery system's operations and configurations." \ No newline at end of file diff --git a/code/game/jobs/job/exploration_vr.dm b/code/game/jobs/job/exploration_vr.dm index d555c531a2..0e6e003f7d 100644 --- a/code/game/jobs/job/exploration_vr.dm +++ b/code/game/jobs/job/exploration_vr.dm @@ -29,6 +29,8 @@ var/const/SAR =(1<<14) color = "#bab421" sorting_order = 2 // Same as cargo in importance. + + /datum/job/pathfinder title = "Pathfinder" flag = PATHFINDER @@ -50,9 +52,14 @@ var/const/SAR =(1<<14) minimal_access = list(access_eva, access_maint_tunnels, access_external_airlocks, access_pilot, access_explorer, access_gateway) outfit_type = /decl/hierarchy/outfit/job/pathfinder job_description = "The Pathfinder's job is to lead and manage expeditions, and is the primary authority on all off-station expeditions." + alt_titles = list("Expedition Lead" = /datum/alt_title/expedition_lead, "Exploration Manager" = /datum/alt_title/exploration_manager) + +/datum/alt_title/expedition_lead + title = "Expedition Lead" + +/datum/alt_title/exploration_manager + title = "Exploration Manager" -/datum/alt_title/pathfinder - title = "Pathfinder" /datum/job/pilot title = "Pilot" @@ -71,9 +78,15 @@ var/const/SAR =(1<<14) minimal_access = list(access_pilot) outfit_type = /decl/hierarchy/outfit/job/pilot job_description = "A Pilot flies the various shuttles in the Virgo-Erigone System." + alt_titles = list("Co-Pilot" = /datum/alt_title/co_pilot, "Navigator" = /datum/alt_title/navigator) + +/datum/alt_title/co_pilot + title = "Co-Pilot" + title_blurb = "A Co-Pilot is there primarily to assist main pilot as well as learn from them" + +/datum/alt_title/navigator + title = "Navigator" -/datum/alt_title/pilot - title = "Pilot" /datum/job/explorer title = "Explorer" @@ -91,9 +104,14 @@ var/const/SAR =(1<<14) minimal_access = list(access_explorer, access_external_airlocks, access_eva) outfit_type = /decl/hierarchy/outfit/job/explorer2 job_description = "An Explorer searches for interesting things, and returns them to the station." + alt_titles = list("Surveyor" = /datum/alt_title/surveyor, "Offsite Scout" = /datum/alt_title/offsite_scout) + +/datum/alt_title/surveyor + title = "Surveyor" + +/datum/alt_title/offsite_scout + title = "Offsite Scout" -/datum/alt_title/explorer - title = "Explorer" /datum/job/sar title = "Field Medic" @@ -112,24 +130,7 @@ var/const/SAR =(1<<14) minimal_access = list(access_medical, access_medical_equip, access_morgue, access_pilot) outfit_type = /decl/hierarchy/outfit/job/medical/sar job_description = "A Field medic works as the field doctor of expedition teams." + alt_titles = list("Expedition Medic" = /datum/alt_title/expedition_medic) -/datum/alt_title/field_medic - title = "Field Medic" - -/datum/job/offduty_exploration - title = "Off-duty Explorer" - latejoin_only = TRUE - timeoff_factor = -1 - total_positions = -1 - faction = "Station" - departments = list(DEPARTMENT_OFFDUTY) - supervisors = "nobody! Enjoy your time off" - selection_color = "#999440" - access = list(access_maint_tunnels, access_external_airlocks) - minimal_access = list(access_maint_tunnels, access_external_airlocks) - outfit_type = /decl/hierarchy/outfit/job/assistant/explorer - job_description = "Off-duty crew has no responsibilities or authority and is just there to spend their well-deserved time off." - pto_type = PTO_EXPLORATION - -/datum/alt_title/offduty_exp - title = "Off-duty Explorer" \ No newline at end of file +/datum/alt_title/expedition_medic + title = "Expedition Medic" diff --git a/code/game/jobs/job/medical_vr.dm b/code/game/jobs/job/medical_vr.dm index 72286ca880..2679137cf0 100644 --- a/code/game/jobs/job/medical_vr.dm +++ b/code/game/jobs/job/medical_vr.dm @@ -10,16 +10,71 @@ minimal_access = list(access_medical, access_medical_equip, access_morgue, access_genetics, access_heads, access_chemistry, access_virology, access_cmo, access_surgery, access_RC_announce, access_keycard_auth, access_psychiatrist, access_eva, access_external_airlocks, access_maint_tunnels) + alt_titles = list("Chief Physician" = /datum/alt_title/chief_physician, "Medical Director" = /datum/alt_title/medical_director, "Healthcare Manager" = /datum/alt_title/healthcare_manager) + +/datum/alt_title/chief_physician + title = "Chief Physician" + +/datum/alt_title/medical_director + title = "Medical Director" + +/datum/alt_title/healthcare_manager + title = "Healthcare Manager" + /datum/job/doctor spawn_positions = 5 pto_type = PTO_MEDICAL + alt_titles = list("Physician" = /datum/alt_title/physician, "Medical Practitioner" = /datum/alt_title/medical_practitioner, "Surgeon" = /datum/alt_title/surgeon, + "Emergency Physician" = /datum/alt_title/emergency_physician, "Nurse" = /datum/alt_title/nurse, "Orderly" = /datum/alt_title/orderly, + "Virologist" = /datum/alt_title/virologist) + + +/datum/alt_title/physician + title = "Physician" + +/datum/alt_title/medical_practitioner + title = "Medical Practitioner" + +/datum/alt_title/orderly + title = "Orderly" + title_blurb = "An Orderly acts as Medbay's general helping hand, assisting any doctor that might need some form of help, as well as handling manual \ + and dirty labor around the department." + title_outfit = /decl/hierarchy/outfit/job/medical/doctor/nurse + /datum/job/chemist pto_type = PTO_MEDICAL + alt_titles = list("Pharmacist" = /datum/alt_title/pharmacist, "Pharmacologist" = /datum/alt_title/pharmacologist) + +/datum/alt_title/pharmacologist + title = "Pharmacologist" + title_blurb = "A Pharmacologist focuses on the chemical needs of the Medical Department, primarily specializing in producing more advanced forms of medicine." + /datum/job/psychiatrist pto_type = PTO_MEDICAL + alt_titles = list("Psychologist" = /datum/alt_title/psychologist, "Psychoanalyst" = /datum/alt_title/psychoanalyst, "Psychotherapist" = /datum/alt_title/psychotherapist) + +/datum/alt_title/psychoanalyst + title = "Psychoanalyst" + title_blurb = "A Psychoanalyst provides mental health services to crew members in need, focusing more on therapy than medication. They may also be \ + called upon to determine whatever ails the mentally unwell, frequently under Security supervision." + title_outfit = /decl/hierarchy/outfit/job/medical/psychiatrist/psychologist + +/datum/alt_title/psychotherapist + title = "Psychotherapist" + title_blurb = "A Psychotherapist provides mental health services to crew members in need, focusing more on therapy than medication. They may also be \ + called upon to determine whatever ails the mentally unwell, frequently under Security supervision." + title_outfit = /decl/hierarchy/outfit/job/medical/psychiatrist/psychologist + /datum/job/paramedic - pto_type = PTO_MEDICAL \ No newline at end of file + pto_type = PTO_MEDICAL + alt_titles = list("Emergency Medical Technician" = /datum/alt_title/emt, "Medical Responder" = /datum/alt_title/medical_responder) + +/datum/alt_title/medical_responder + title = "Medical Responder" + title_blurb = "A Medical Responder is primarily concerned with the recovery of patients who are unable to make it to the Medical Department on their \ + own. They are capable of keeping a patient stabilized until they reach the hands of someone with more training." + title_outfit = /decl/hierarchy/outfit/job/medical/paramedic/emt \ No newline at end of file diff --git a/code/game/jobs/job/offduty_vr.dm b/code/game/jobs/job/offduty_vr.dm index 416543956c..9a1b5ce954 100644 --- a/code/game/jobs/job/offduty_vr.dm +++ b/code/game/jobs/job/offduty_vr.dm @@ -16,9 +16,7 @@ outfit_type = /decl/hierarchy/outfit/job/assistant/worker job_description = "Off-duty crew has no responsibilities or authority and is just there to spend their well-deserved time off." pto_type = PTO_CIVILIAN - -/datum/alt_title/offduty_civ - title = "Off-duty Worker" + economic_modifier = 2 /datum/job/offduty_cargo title = "Off-duty Cargo" @@ -34,9 +32,7 @@ outfit_type = /decl/hierarchy/outfit/job/assistant/cargo job_description = "Off-duty crew has no responsibilities or authority and is just there to spend their well-deserved time off." pto_type = PTO_CARGO - -/datum/alt_title/offduty_crg - title = "Off-duty Cargo" + economic_modifier = 2 /datum/job/offduty_engineering title = "Off-duty Engineer" @@ -52,9 +48,7 @@ outfit_type = /decl/hierarchy/outfit/job/assistant/engineer job_description = "Off-duty crew has no responsibilities or authority and is just there to spend their well-deserved time off." pto_type = PTO_ENGINEERING - -/datum/alt_title/offduty_eng - title = "Off-duty Engineer" + economic_modifier = 5 /datum/job/offduty_medical title = "Off-duty Medic" @@ -70,9 +64,7 @@ outfit_type = /decl/hierarchy/outfit/job/assistant/medic job_description = "Off-duty crew has no responsibilities or authority and is just there to spend their well-deserved time off." pto_type = PTO_MEDICAL - -/datum/alt_title/offduty_med - title = "Off-duty Medic" + economic_modifier = 5 /datum/job/offduty_science title = "Off-duty Scientist" @@ -88,9 +80,7 @@ outfit_type = /decl/hierarchy/outfit/job/assistant/scientist job_description = "Off-duty crew has no responsibilities or authority and is just there to spend their well-deserved time off." pto_type = PTO_SCIENCE - -/datum/alt_title/offduty_sci - title = "Off-duty Scientist" + economic_modifier = 5 /datum/job/offduty_security title = "Off-duty Officer" @@ -106,6 +96,20 @@ outfit_type = /decl/hierarchy/outfit/job/assistant/officer job_description = "Off-duty crew has no responsibilities or authority and is just there to spend their well-deserved time off." pto_type = PTO_SECURITY + economic_modifier = 4 -/datum/alt_title/offduty_sec - title = "Off-duty Officer" +/datum/job/offduty_exploration + title = "Off-duty Explorer" + latejoin_only = TRUE + timeoff_factor = -1 + total_positions = -1 + faction = "Station" + departments = list(DEPARTMENT_OFFDUTY) + supervisors = "nobody! Enjoy your time off" + selection_color = "#999440" + access = list(access_maint_tunnels, access_external_airlocks) + minimal_access = list(access_maint_tunnels, access_external_airlocks) + outfit_type = /decl/hierarchy/outfit/job/assistant/explorer + job_description = "Off-duty crew has no responsibilities or authority and is just there to spend their well-deserved time off." + pto_type = PTO_EXPLORATION + economic_modifier = 5 diff --git a/code/game/jobs/job/science.dm b/code/game/jobs/job/science.dm index d82ce3f148..e69fecaf9e 100644 --- a/code/game/jobs/job/science.dm +++ b/code/game/jobs/job/science.dm @@ -22,8 +22,7 @@ minimal_access = list(access_rd, access_heads, access_tox, access_genetics, access_morgue, access_tox_storage, access_teleporter, access_sec_doors, access_research, access_robotics, access_xenobiology, access_ai_upload, access_tech_storage, - access_RC_announce, access_keycard_auth, access_tcomsat, access_gateway, access_xenoarch, access_network, access_maint_tunnels) - alt_titles = list("Research Supervisor") + access_RC_announce, access_keycard_auth, access_tcomsat, access_gateway, access_xenoarch, access_network, access_maint_tunnels) //Yawn added "access_maint_tunnels" minimum_character_age = 25 minimal_player_age = 14 diff --git a/code/game/jobs/job/science_vr.dm b/code/game/jobs/job/science_vr.dm index 998f057340..b9096ddbc9 100644 --- a/code/game/jobs/job/science_vr.dm +++ b/code/game/jobs/job/science_vr.dm @@ -11,32 +11,79 @@ minimal_access = list(access_rd, access_heads, access_tox, access_genetics, access_morgue, access_tox_storage, access_teleporter, access_research, access_robotics, access_xenobiology, access_ai_upload, access_tech_storage, - access_RC_announce, access_keycard_auth, access_tcomsat, access_gateway, access_xenoarch, access_eva, access_network, - access_explorer, access_pathfinder, access_xenobotany) //YW Edit access_gateway, _explorer, _pathfinder, and _xenobotany + access_RC_announce, access_keycard_auth, access_tcomsat, access_xenoarch, access_eva, access_network, access_xenobotany, + access_explorer, access_pathfinder, access_xenobotany) //YW Edit access_gateway, _explorer, _pathfinder, and _xenobotany + alt_titles = list("Research Supervisor" = /datum/alt_title/research_supervisor, "Research Manager" = /datum/alt_title/research_manager, + "Head of Development" = /datum/alt_title/head_of_development,"Head Scientist" = /datum/alt_title/head_scientist) + +/datum/alt_title/research_manager + title = "Research Manager" + +/datum/alt_title/head_of_development + title = "Head of Development" + +/datum/alt_title/head_scientist + title = "Head Scientist" + /datum/job/scientist spawn_positions = 5 pto_type = PTO_SCIENCE - alt_titles = list("Xenoarchaeologist" = /datum/alt_title/xenoarch, "Anomalist" = /datum/alt_title/anomalist, \ - "Phoron Researcher" = /datum/alt_title/phoron_research, "Circuit Designer" = /datum/alt_title/circuit_designer) + alt_titles = list("Lab Assistant" = /datum/alt_title/lab_assistant, "Xenoarchaeologist" = /datum/alt_title/xenoarch, "Xenopaleontologist" = /datum/alt_title/xenopaleontologist, \ + "Anomalist" = /datum/alt_title/anomalist, "Phoron Researcher" = /datum/alt_title/phoron_research, "Gas Physicist" = /datum/alt_title/gas_physicist, \ + "Circuit Designer" = /datum/alt_title/circuit_designer, "Circuit Programmer" = /datum/alt_title/circuit_programmer) access = list(access_robotics, access_tox, access_tox_storage, access_research, access_xenobiology, access_xenoarch, access_xenobotany) minimal_access = list(access_tox, access_tox_storage, access_research, access_xenoarch) // Unchanged (for now?), mostly here for reference +/datum/alt_title/lab_assistant + title = "Lab Assistant" + title_blurb = "A Lab Assistant is a lower-level member of research staff, whose main purpose is to help scientists with their specialized work in more menial fashion, while also \ + learning the specializations in process." + +/datum/alt_title/xenopaleontologist + title = "Xenopaleontologist" + title_blurb = "A Xenopaleontologist enters digsites in search of fossils and other ancient remants of alien life. These digsites are frequently in vacuum or other inhospitable \ + locations, and as such a Xenopaleontologist should be prepared to handle hostile evironmental conditions." + +/datum/alt_title/gas_physicist + title = "Gas Physicist" + title_blurb = "A Gas Physicist is a specialist in various practical applications of gasses, but currently focuses their attention on phoron, and has knowledge of its practical uses and dangers. \ + Many Gas Physicists are interested in the combustability and explosive properties of gaseous phoron, as well as the specific hazards \ + of working with the substance in that state." /datum/alt_title/circuit_designer title = "Circuit Designer" title_blurb = "A Circuit Designer is a Scientist whose expertise is working with integrated circuits. They are familar with the workings and programming of those devices. \ They work to create various useful devices using the capabilities of integrated circuitry." +/datum/alt_title/circuit_programmer + title = "Circuit Programmer" + title_blurb = "A Circuit Programmer is a Scientist whose expertise is working with integrated circuits. They are familar with the workings and programming of those devices. \ + They work to create various useful devices using the capabilities of integrated circuitry." + + /datum/job/xenobiologist spawn_positions = 3 pto_type = PTO_SCIENCE + alt_titles = list("Xenozoologist" = /datum/alt_title/xenozoologist, "Xenoanthropologist" = /datum/alt_title/xenoanthropologist) + +/datum/alt_title/xenozoologist + title = "Xenozoologist" + +/datum/alt_title/xenoanthropologist + title = "Xenoanthropologist" + title_blurb = "Xenoanthropologist still heavily focuses their study on alien lifeforms, but their specialty leans more towards fellow sapient beings than simple animals." + /datum/job/roboticist total_positions = 3 pto_type = PTO_SCIENCE + alt_titles = list("Assembly Technician" = /datum/alt_title/assembly_tech, "Biomechanical Engineer" = /datum/alt_title/biomech, "Mechatronic Engineer" = /datum/alt_title/mech_tech) + +/datum/alt_title/assembly_tech + title = "Assembly Technician" ////////////////////////////////// // Xenobotanist @@ -61,3 +108,7 @@ outfit_type = /decl/hierarchy/outfit/job/science/xenobiologist job_description = "A Xenobotanist grows and cares for a variety of abnormal, custom made, and frequently dangerous plant life. When the products of these plants \ are both safe and beneficial to the station, they may choose to introduce it to the rest of the crew." + alt_titles = list("Xenoflorist" = /datum/alt_title/xenoflorist) + +/datum/alt_title/xenoflorist + title = "Xenoflorist" diff --git a/code/game/jobs/job/security_vr.dm b/code/game/jobs/job/security_vr.dm index 4f7604b937..e9b9017d9a 100644 --- a/code/game/jobs/job/security_vr.dm +++ b/code/game/jobs/job/security_vr.dm @@ -11,15 +11,47 @@ access_forensics_lockers, access_morgue, access_maint_tunnels, access_all_personal_lockers, access_construction, access_heads, access_hos, access_RC_announce, access_keycard_auth, access_external_airlocks) + alt_titles = list("Security Commander" = /datum/alt_title/sec_commander, "Chief of Security" = /datum/alt_title/sec_chief, "Security Manager" = /datum/alt_title/security_manager) + +/datum/alt_title/security_manager + title = "Security Manager" + /datum/job/warden pto_type = PTO_SECURITY dept_time_required = 20 + alt_titles = list("Brig Sentry" = /datum/alt_title/brig_sentry, "Armory Superintendent" = /datum/alt_title/armory_superintendent) + +/datum/alt_title/brig_sentry + title = "Brig Sentry" + +/datum/alt_title/armory_superintendent + title = "Armory Superintendent" + /datum/job/detective pto_type = PTO_SECURITY + alt_titles = list("Investigator" = /datum/alt_title/investigator, "Security Inspector" = /datum/alt_title/security_inspector, "Forensic Technician" = /datum/alt_title/forensic_tech) + +/datum/alt_title/investigator + title = "Investigator" + +/datum/alt_title/security_inspector + title = "Security Inspector" + /datum/job/officer total_positions = 5 spawn_positions = 5 - pto_type = PTO_SECURITY \ No newline at end of file + pto_type = PTO_SECURITY + alt_titles = list("Patrol Officer" = /datum/alt_title/patrol_officer, "Security Guard" = /datum/alt_title/security_guard, + "Security Deputy" = /datum/alt_title/security_guard, "Junior Officer" = /datum/alt_title/junior_officer) + +/datum/alt_title/patrol_officer + title = "Patrol Officer" + +/datum/alt_title/security_guard + title = "Security Guard" + +/datum/alt_title/security_deputy + title = "Security Deputy" \ No newline at end of file diff --git a/code/game/jobs/job/special_vr.dm b/code/game/jobs/job/special_vr.dm index 3df016f991..57f0e91d34 100644 --- a/code/game/jobs/job/special_vr.dm +++ b/code/game/jobs/job/special_vr.dm @@ -85,18 +85,18 @@ selection_color = "#515151" economic_modifier = 1 job_description = "A Clown is there to entertain the crew and keep high morale using various harmless pranks and ridiculous jokes!" - alt_titles = list("Clown" = /datum/alt_title/clown, "Jester" = /datum/alt_title/jester) whitelist_only = 1 latejoin_only = 1 outfit_type = /decl/hierarchy/outfit/job/clown pto_type = PTO_CIVILIAN - -/datum/alt_title/clown - title = "Clown" + alt_titles = list("Jester" = /datum/alt_title/jester, "Fool" = /datum/alt_title/fool) /datum/alt_title/jester title = "Jester" +/datum/alt_title/fool + title = "Fool" + /datum/job/clown/get_access() if(config.assistant_maint) return list(access_maint_tunnels, access_entertainment) @@ -115,17 +115,14 @@ selection_color = "#515151" economic_modifier = 1 job_description = "A Mime is there to entertain the crew and keep high morale using unbelievable performances and acting skills!" - alt_titles = list("Mime" = /datum/alt_title/mime, "Interpretive Dancer" = /datum/alt_title/interpretive_dancer) + alt_titles = list("Poseur" = /datum/alt_title/poseur) whitelist_only = 1 latejoin_only = 1 outfit_type = /decl/hierarchy/outfit/job/mime pto_type = PTO_CIVILIAN -/datum/alt_title/mime - title = "Mime" - -/datum/alt_title/interpretive_dancer - title = "Interpretive Dancer" +/datum/alt_title/poseur + title = "Poseur" /datum/job/mime/get_access() if(config.assistant_maint) diff --git a/code/game/jobs/job_controller.dm b/code/game/jobs/job_controller.dm index 3aec6c8c37..4e53589c2f 100644 --- a/code/game/jobs/job_controller.dm +++ b/code/game/jobs/job_controller.dm @@ -387,7 +387,7 @@ var/global/datum/controller/occupations/job_master if(job) //Equip custom gear loadout. - var/list/custom_equip_slots = list() //If more than one item takes the same slot, all after the first one spawn in storage. + var/list/custom_equip_slots = list() var/list/custom_equip_leftovers = list() if(H.client.prefs.gear && H.client.prefs.gear.len && !(job.mob_type & JOB_SILICON)) for(var/thing in H.client.prefs.gear) @@ -420,14 +420,15 @@ var/global/datum/controller/occupations/job_master I.implant_loadout(H) continue - // Try desperately (and sorta poorly) to equip the item + // Try desperately (and sorta poorly) to equip the item. Now with increased desperation! if(G.slot && !(G.slot in custom_equip_slots)) var/metadata = H.client.prefs.gear[G.display_name] if(G.slot == slot_wear_mask || G.slot == slot_wear_suit || G.slot == slot_head) custom_equip_leftovers += thing else if(H.equip_to_slot_or_del(G.spawn_item(H, metadata), G.slot)) to_chat(H, "Equipping you with \the [thing]!") - custom_equip_slots.Add(G.slot) + if(G.slot != slot_tie) + custom_equip_slots.Add(G.slot) else custom_equip_leftovers.Add(thing) else diff --git a/code/game/machinery/air_alarm.dm b/code/game/machinery/air_alarm.dm index d4e00e6c22..44c359bd86 100644 --- a/code/game/machinery/air_alarm.dm +++ b/code/game/machinery/air_alarm.dm @@ -29,8 +29,7 @@ desc = "Used to control various station atmospheric systems. The light indicates the current air status of the area." icon = 'icons/obj/monitors.dmi' //YW Edit, removed VR sprites icon_state = "alarm0" - plane = TURF_PLANE - layer = ABOVE_TURF_LAYER + layer = ABOVE_WINDOW_LAYER anchored = 1 use_power = USE_POWER_IDLE idle_power_usage = 80 diff --git a/code/game/machinery/buttons.dm b/code/game/machinery/buttons.dm index 0f209a1a99..d15ea493ec 100644 --- a/code/game/machinery/buttons.dm +++ b/code/game/machinery/buttons.dm @@ -2,8 +2,7 @@ name = "button" icon = 'icons/obj/objects.dmi' icon_state = "launcherbtt" -// plane = TURF_PLANE //Can't have them under tables, oh well. -// layer = ABOVE_TURF_LAYER + layer = ABOVE_WINDOW_LAYER desc = "A remote control switch for something." var/id = null var/active = 0 diff --git a/code/game/machinery/computer/arcade.dm b/code/game/machinery/computer/arcade.dm index 6921cf989c..7ff97c83e8 100644 --- a/code/game/machinery/computer/arcade.dm +++ b/code/game/machinery/computer/arcade.dm @@ -30,7 +30,7 @@ // If it's a generic arcade machine, pick a random arcade // circuit board for it and make the new machine if(!circuit) - var/choice = pick(typesof(/obj/item/weapon/circuitboard/arcade) - /obj/item/weapon/circuitboard/arcade) + var/choice = pick(subtypesof(/obj/item/weapon/circuitboard/arcade) - /obj/item/weapon/circuitboard/arcade/clawmachine) var/obj/item/weapon/circuitboard/CB = new choice() new CB.build_path(loc, CB) qdel(src) @@ -1072,3 +1072,250 @@ #undef ORION_STATUS_NORMAL #undef ORION_STATUS_GAMEOVER #undef ORION_STATUS_MARKET + +////////////////// +// Claw Machine // +////////////////// + +/obj/machinery/computer/arcade/clawmachine + name = "AlliCo Grab-a-Gift" + desc = "Show off your arcade skills for that special someone!" + icon_state = "clawmachine" + icon_keyboard = null + icon_screen = null + circuit = /obj/item/weapon/circuitboard/arcade/clawmachine + prizes = list(/obj/random/plushie) + var/wintick = 0 + var/winprob = 0 + var/instructions = "Insert 1 thaler or swipe a card to play!" + var/gameStatus = "CLAWMACHINE_NEW" + var/gamepaid = 0 + var/gameprice = 1 + var/winscreen = "" + +/// Payment +/obj/machinery/computer/arcade/clawmachine/attackby(obj/item/I as obj, mob/user as mob) + if(..()) + return + + if(gamepaid == 0 && vendor_account && !vendor_account.suspended) + var/paid = 0 + var/obj/item/weapon/card/id/W = I.GetID() + if(W) //for IDs and PDAs and wallets with IDs + paid = pay_with_card(W,I) + else if(istype(I, /obj/item/weapon/spacecash/ewallet)) + var/obj/item/weapon/spacecash/ewallet/C = I + paid = pay_with_ewallet(C) + else if(istype(I, /obj/item/weapon/spacecash)) + var/obj/item/weapon/spacecash/C = I + paid = pay_with_cash(C, user) + if(paid) + gamepaid = 1 + instructions = "Hit start to play!" + return + return + +////// Cash +/obj/machinery/computer/arcade/clawmachine/proc/pay_with_cash(var/obj/item/weapon/spacecash/cashmoney, mob/user) + if(!emagged) + if(gameprice > cashmoney.worth) + + // This is not a status display message, since it's something the character + // themselves is meant to see BEFORE putting the money in + to_chat(usr, "[bicon(cashmoney)] That is not enough money.") + return 0 + + if(istype(cashmoney, /obj/item/weapon/spacecash)) + + visible_message("\The [usr] inserts some cash into \the [src].") + cashmoney.worth -= gameprice + + if(cashmoney.worth <= 0) + usr.drop_from_inventory(cashmoney) + qdel(cashmoney) + else + cashmoney.update_icon() + + // Machine has no idea who paid with cash + credit_purchase("(cash)") + return 1 + if(emagged) + playsound(src, 'sound/arcade/steal.ogg', 50, 1, extrarange = -3, falloff = 0.1, ignore_walls = FALSE) + to_chat(user, "It doesn't seem to accept that! Seem you'll need to swipe a valid ID.") + + +///// Ewallet +/obj/machinery/computer/arcade/clawmachine/proc/pay_with_ewallet(var/obj/item/weapon/spacecash/ewallet/wallet) + if(!emagged) + visible_message("\The [usr] swipes \the [wallet] through \the [src].") + playsound(src, 'sound/machines/id_swipe.ogg', 50, 1) + if(gameprice > wallet.worth) + visible_message("Insufficient funds.") + return 0 + else + wallet.worth -= gameprice + credit_purchase("[wallet.owner_name] (chargecard)") + return 1 + if(emagged) + playsound(src, 'sound/arcade/steal.ogg', 50, 1, extrarange = -3, falloff = 0.1, ignore_walls = FALSE) + to_chat(usr, "It doesn't seem to accept that! Seem you'll need to swipe a valid ID.") + +///// ID +/obj/machinery/computer/arcade/clawmachine/proc/pay_with_card(var/obj/item/weapon/card/id/I, var/obj/item/ID_container) + if(I==ID_container || ID_container == null) + visible_message("\The [usr] swipes \the [I] through \the [src].") + else + visible_message("\The [usr] swipes \the [ID_container] through \the [src].") + playsound(src, 'sound/machines/id_swipe.ogg', 50, 1) + var/datum/money_account/customer_account = get_account(I.associated_account_number) + if(!customer_account) + visible_message("Error: Unable to access account. Please contact technical support if problem persists.") + return 0 + + if(customer_account.suspended) + visible_message("Unable to access account: account suspended.") + return 0 + + // Have the customer punch in the PIN before checking if there's enough money. Prevents people from figuring out acct is + // empty at high security levels + if(customer_account.security_level != 0) //If card requires pin authentication (ie seclevel 1 or 2) + var/attempt_pin = input("Enter pin code", "Vendor transaction") as num + customer_account = attempt_account_access(I.associated_account_number, attempt_pin, 2) + + if(!customer_account) + visible_message("Unable to access account: incorrect credentials.") + return 0 + + if(gameprice > customer_account.money) + visible_message("Insufficient funds in account.") + return 0 + else + // Okay to move the money at this point + if(emagged) + gameprice = customer_account.money + // debit money from the purchaser's account + customer_account.money -= gameprice + + // create entry in the purchaser's account log + var/datum/transaction/T = new() + T.target_name = "[vendor_account.owner_name] (via [name])" + T.purpose = "Purchase of arcade game([name])" + if(gameprice > 0) + T.amount = "([gameprice])" + else + T.amount = "[gameprice]" + T.source_terminal = name + T.date = current_date_string + T.time = stationtime2text() + customer_account.transaction_log.Add(T) + + // Give the vendor the money. We use the account owner name, which means + // that purchases made with stolen/borrowed card will look like the card + // owner made them + credit_purchase(customer_account.owner_name) + return 1 + +/// Add to vendor account + +/obj/machinery/computer/arcade/clawmachine/proc/credit_purchase(var/target as text) + vendor_account.money += gameprice + + var/datum/transaction/T = new() + T.target_name = target + T.purpose = "Purchase of arcade game([name])" + T.amount = "[gameprice]" + T.source_terminal = name + T.date = current_date_string + T.time = stationtime2text() + vendor_account.transaction_log.Add(T) + +/// End Payment + +/obj/machinery/computer/arcade/clawmachine/New() + ..() + +/obj/machinery/computer/arcade/clawmachine/attack_hand(mob/living/user) + if(..()) + return + tgui_interact(user) + +/// TGUI Stuff + +/obj/machinery/computer/arcade/clawmachine/tgui_interact(mob/user, ui_key = "main", datum/tgui/ui = null, force_open = 0, datum/tgui/master_ui = null, datum/tgui_state/state = GLOB.tgui_default_state) + ui = SStgui.try_update_ui(user, src, ui_key, ui, force_open) + if(!ui) + ui = new(user, src, ui_key, "ClawMachine", name, 300, 400, master_ui, state) + ui.autoupdate = TRUE + ui.open() + +/obj/machinery/computer/arcade/clawmachine/tgui_data(mob/user) + var/list/data = list() + + data["wintick"] = wintick + data["instructions"] = instructions + data["gameStatus"] = gameStatus + data["winscreen"] = winscreen + + return data + +/obj/machinery/computer/arcade/clawmachine/tgui_act(action, params) + if(..()) + return + + if(action == "newgame" && gamepaid == 0) + playsound(src, 'sound/arcade/steal.ogg', 50, 1, extrarange = -3, falloff = 0.1, ignore_walls = FALSE) + + if(action == "newgame" && gamepaid == 1) + gameStatus = "CLAWMACHINE_ON" + icon_state = "clawmachine_move" + instructions = "Guide the claw to the prize you want!" + wintick = 0 + + if(action == "return" && gameStatus == "CLAWMACHINE_END") + gameStatus = "CLAWMACHINE_NEW" + + if(action == "pointless" && wintick < 10) + wintick += 1 + + if(action == "pointless" && wintick >= 10) + instructions = "Insert 1 thaler or swipe a card to play!" + clawvend() + +/obj/machinery/computer/arcade/clawmachine/proc/clawvend() /// True to a real claw machine, it's NEARLY impossible to win. + winprob += 1 /// Yeah. + + if(prob(winprob)) /// YEAH. + if(!emagged) + prizevend() + winscreen = "You won!" + else if(emagged) + gameprice = 1 + emagged = 0 + winscreen = "You won...?" + var/obj/item/weapon/grenade/G = new /obj/item/weapon/grenade/explosive(get_turf(src)) /// YEAAAAAAAAAAAAAAAAAAH!!!!!!!!!! + G.activate() + G.throw_at(get_turf(usr),10,10) /// Play stupid games, win stupid prizes. + + playsound(src, 'sound/arcade/Ori_win.ogg', 50, 1, extrarange = -3, falloff = 0.1, ignore_walls = FALSE) + winprob = 0 + + else + playsound(src, 'sound/arcade/Ori_fail.ogg', 50, 1, extrarange = -3, falloff = 0.1, ignore_walls = FALSE) + winscreen = "Aw, shucks. Try again!" + wintick = 0 + gamepaid = 0 + icon_state = "clawmachine" + gameStatus = "CLAWMACHINE_END" + +/obj/machinery/computer/arcade/clawmachine/emag_act(mob/user) + if(!emagged) + to_chat(user, "You modify the claw of the machine. The next one is sure to win! You just have to pay...") + name = "AlliCo Snag-A-Prize" + desc = "Get some goodies, all for you!" + instructions = "Swipe a card to play!" + winprob = 100 + gamepaid = 0 + wintick = 0 + gameStatus = "CLAWMACHINE_NEW" + emagged = 1 + return 1 \ No newline at end of file diff --git a/code/game/machinery/computer/camera.dm b/code/game/machinery/computer/camera.dm index 29783c4c9c..f04aba5a25 100644 --- a/code/game/machinery/computer/camera.dm +++ b/code/game/machinery/computer/camera.dm @@ -59,8 +59,7 @@ name = "Telescreen" desc = "Used for watching an empty arena." icon_state = "wallframe" - plane = TURF_PLANE - layer = ABOVE_TURF_LAYER + layer = ABOVE_WINDOW_LAYER icon_keyboard = null icon_screen = null light_range_on = 0 diff --git a/code/game/machinery/computer/guestpass.dm b/code/game/machinery/computer/guestpass.dm index 40a0f03d8e..bd5ca6f964 100644 --- a/code/game/machinery/computer/guestpass.dm +++ b/code/game/machinery/computer/guestpass.dm @@ -79,8 +79,7 @@ name = "guest pass terminal" desc = "Used to print temporary passes for people. Handy!" icon_state = "guest" - plane = TURF_PLANE - layer = ABOVE_TURF_LAYER + layer = ABOVE_WINDOW_LAYER icon_keyboard = null icon_screen = "pass" density = 0 diff --git a/code/game/machinery/computer/medical.dm b/code/game/machinery/computer/medical.dm index f3c930fe78..adf53c80a8 100644 --- a/code/game/machinery/computer/medical.dm +++ b/code/game/machinery/computer/medical.dm @@ -137,7 +137,7 @@ fields[++fields.len] = FIELD("Name", active1.fields["name"], null) fields[++fields.len] = FIELD("ID", active1.fields["id"], null) fields[++fields.len] = FIELD("Sex", active1.fields["sex"], "sex") - fields[++fields.len] = FIELD("Age", active1.fields["age"], "age") + fields[++fields.len] = FIELD("Age", "[active1.fields["age"]]", "age") fields[++fields.len] = FIELD("Fingerprint", active1.fields["fingerprint"], "fingerprint") fields[++fields.len] = FIELD("Physical Status", active1.fields["p_stat"], "p_stat") fields[++fields.len] = FIELD("Mental Status", active1.fields["m_stat"], "m_stat") diff --git a/code/game/machinery/computer/security.dm b/code/game/machinery/computer/security.dm index b7c8ecc45b..0b6ab77d7a 100644 --- a/code/game/machinery/computer/security.dm +++ b/code/game/machinery/computer/security.dm @@ -148,7 +148,7 @@ fields[++fields.len] = FIELD("ID", active1.fields["id"], "id") fields[++fields.len] = FIELD("Entity Classification", active1.fields["brain_type"], "brain_type") fields[++fields.len] = FIELD("Sex", active1.fields["sex"], "sex") - fields[++fields.len] = FIELD("Age", active1.fields["age"], "age") + fields[++fields.len] = FIELD("Age", "[active1.fields["age"]]", "age") fields[++fields.len] = FIELD("Rank", active1.fields["rank"], "rank") fields[++fields.len] = FIELD("Fingerprint", active1.fields["fingerprint"], "fingerprint") fields[++fields.len] = FIELD("Physical Status", active1.fields["p_stat"], null) diff --git a/code/game/machinery/doors/airlock_control.dm b/code/game/machinery/doors/airlock_control.dm index 521f07cf67..4fa8a41901 100644 --- a/code/game/machinery/doors/airlock_control.dm +++ b/code/game/machinery/doors/airlock_control.dm @@ -148,6 +148,7 @@ obj/machinery/door/airlock/Destroy() obj/machinery/airlock_sensor icon = 'icons/obj/airlock_machines.dmi' icon_state = "airlock_sensor_off" + layer = ABOVE_WINDOW_LAYER name = "airlock sensor" desc = "Sends atmospheric readings to a nearby controller." @@ -233,6 +234,7 @@ obj/machinery/airlock_sensor/airlock_exterior/shuttle/return_air() obj/machinery/access_button icon = 'icons/obj/airlock_machines.dmi' icon_state = "access_button_standby" + layer = ABOVE_WINDOW_LAYER name = "access button" anchored = 1 diff --git a/code/game/machinery/doors/brigdoors.dm b/code/game/machinery/doors/brigdoors.dm index 9fa4945f5b..c9262675cf 100644 --- a/code/game/machinery/doors/brigdoors.dm +++ b/code/game/machinery/doors/brigdoors.dm @@ -22,6 +22,7 @@ name = "Door Timer" icon = 'icons/obj/status_display.dmi' icon_state = "frame" + layer = ABOVE_WINDOW_LAYER desc = "A remote control for a door." req_access = list(access_brig) anchored = 1.0 // can't pick it up diff --git a/code/game/machinery/embedded_controller/airlock_controllers.dm b/code/game/machinery/embedded_controller/airlock_controllers.dm index 262ffacf41..96a7e15aa0 100644 --- a/code/game/machinery/embedded_controller/airlock_controllers.dm +++ b/code/game/machinery/embedded_controller/airlock_controllers.dm @@ -15,6 +15,7 @@ var/list/dummy_terminals = list() var/cycle_to_external_air = 0 valid_actions = list("cycle_ext", "cycle_int", "force_ext", "force_int", "abort", "purge", "secure") + layer = ABOVE_WINDOW_LAYER /obj/machinery/embedded_controller/radio/airlock/Destroy() // TODO - Leshana - Implement dummy terminals diff --git a/code/game/machinery/fire_alarm.dm b/code/game/machinery/fire_alarm.dm index e80869e4d9..315d470432 100644 --- a/code/game/machinery/fire_alarm.dm +++ b/code/game/machinery/fire_alarm.dm @@ -6,8 +6,7 @@ FIRE ALARM desc = "\"Pull this in case of emergency\". Thus, keep pulling it forever." icon = 'icons/obj/monitors.dmi' icon_state = "fire0" - plane = TURF_PLANE - layer = ABOVE_TURF_LAYER + layer = ABOVE_WINDOW_LAYER var/detecting = 1.0 var/working = 1.0 var/time = 10.0 diff --git a/code/game/machinery/flasher.dm b/code/game/machinery/flasher.dm index 5aa42ff26a..cbd688b643 100644 --- a/code/game/machinery/flasher.dm +++ b/code/game/machinery/flasher.dm @@ -4,6 +4,7 @@ desc = "A wall-mounted flashbulb device." icon = 'icons/obj/stationobjs.dmi' icon_state = "mflash1" + layer = ABOVE_WINDOW_LAYER var/id = null var/range = 2 //this is roughly the size of brig cell var/disable = 0 diff --git a/code/game/machinery/igniter.dm b/code/game/machinery/igniter.dm index ee887db2f5..70a2e3ce4c 100755 --- a/code/game/machinery/igniter.dm +++ b/code/game/machinery/igniter.dm @@ -48,6 +48,7 @@ desc = "A wall-mounted ignition device." icon = 'icons/obj/stationobjs.dmi' icon_state = "migniter" + layer = ABOVE_WINDOW_LAYER var/id = null var/disable = 0 var/last_spark = 0 diff --git a/code/game/machinery/lightswitch.dm b/code/game/machinery/lightswitch.dm index 81efc0f42b..a208e6eefd 100644 --- a/code/game/machinery/lightswitch.dm +++ b/code/game/machinery/lightswitch.dm @@ -6,6 +6,7 @@ desc = "It turns lights on and off. What are you, simple?" icon = 'icons/obj/power_vr.dmi' // VOREStation Edit icon_state = "light1" + layer = ABOVE_WINDOW_LAYER anchored = 1.0 use_power = USE_POWER_IDLE idle_power_usage = 10 diff --git a/code/game/machinery/neonsign.dm b/code/game/machinery/neonsign.dm index bdaa3b62fd..742a810d4a 100644 --- a/code/game/machinery/neonsign.dm +++ b/code/game/machinery/neonsign.dm @@ -4,6 +4,7 @@ desc = "Small wall-mounted electronic sign" icon = 'icons/obj/neonsigns.dmi' icon_state = "sign_off" + layer = ABOVE_WINDOW_LAYER plane = MOB_PLANE use_power = USE_POWER_IDLE idle_power_usage = 2 diff --git a/code/game/machinery/newscaster.dm b/code/game/machinery/newscaster.dm index 7786baf208..c463a837d1 100644 --- a/code/game/machinery/newscaster.dm +++ b/code/game/machinery/newscaster.dm @@ -126,8 +126,7 @@ GLOBAL_LIST_BOILERPLATE(allCasters, /obj/machinery/newscaster) desc = "A standard newsfeed handler for use on commercial space stations. All the news you absolutely have no use for, in one place!" icon = 'icons/obj/terminals_vr.dmi' //VOREStation Edit icon_state = "newscaster_normal" - plane = TURF_PLANE - layer = ABOVE_TURF_LAYER + layer = ABOVE_WINDOW_LAYER var/isbroken = 0 //1 if someone banged it with something heavy var/ispowered = 1 //starts powered, changes with power_change() //var/list/datum/feed_channel/channel_list = list() //This list will contain the names of the feed channels. Each name will refer to a data region where the messages of the feed channels are stored. diff --git a/code/game/machinery/requests_console.dm b/code/game/machinery/requests_console.dm index 86b339e6d5..a24bc582b9 100644 --- a/code/game/machinery/requests_console.dm +++ b/code/game/machinery/requests_console.dm @@ -28,8 +28,7 @@ var/list/obj/machinery/requests_console/allConsoles = list() anchored = 1 icon = 'icons/obj/terminals_vr.dmi' //VOREStation Edit icon_state = "req_comp0" - plane = TURF_PLANE - layer = ABOVE_TURF_LAYER + layer = ABOVE_WINDOW_LAYER circuit = /obj/item/weapon/circuitboard/request var/department = "Unknown" //The list of all departments on the station (Determined from this variable on each unit) Set this to the same thing if you want several consoles in one department var/list/message_log = list() //List of all messages diff --git a/code/game/machinery/status_display.dm b/code/game/machinery/status_display.dm index 14b85a7861..949b8a4df6 100644 --- a/code/game/machinery/status_display.dm +++ b/code/game/machinery/status_display.dm @@ -13,7 +13,7 @@ icon = 'icons/obj/status_display.dmi' icon_state = "frame" plane = TURF_PLANE - layer = ABOVE_TURF_LAYER + layer = ABOVE_WINDOW_LAYER name = "status display" anchored = 1 density = 0 @@ -267,4 +267,4 @@ #undef FOND_SIZE #undef FONT_COLOR #undef FONT_STYLE -#undef SCROLL_SPEED \ No newline at end of file +#undef SCROLL_SPEED diff --git a/code/game/machinery/status_display_ai.dm b/code/game/machinery/status_display_ai.dm index d0764221ba..4a88b7248b 100644 --- a/code/game/machinery/status_display_ai.dm +++ b/code/game/machinery/status_display_ai.dm @@ -59,6 +59,7 @@ var/list/ai_status_emotions = list( /obj/machinery/ai_status_display icon = 'icons/obj/status_display.dmi' icon_state = "frame" + layer = ABOVE_WINDOW_LAYER name = "AI display" anchored = 1 density = 0 diff --git a/code/game/machinery/vending_machines.dm b/code/game/machinery/vending_machines.dm index 82c9eb0581..3ebb93289a 100644 --- a/code/game/machinery/vending_machines.dm +++ b/code/game/machinery/vending_machines.dm @@ -396,6 +396,7 @@ description_fluff = "NanoMed is NanoTrasen's medical science division, and provides almost all of the modern medbay essentials in-house at no extra charge. By using this vending machine, employees accept liability for products that may or may not be temporarily replaced by placebos or experimental treatments." product_ads = "Go save some lives!;The best stuff for your medbay.;Only the finest tools.;Natural chemicals!;This stuff saves lives.;Don't you want some?" icon_state = "wallmed" + layer = ABOVE_WINDOW_LAYER density = 0 //It is wall-mounted, and thus, not dense. --Superxpdude products = list(/obj/item/stack/medical/bruise_pack = 2, /obj/item/stack/medical/ointment = 2, @@ -413,6 +414,7 @@ desc = "A wall-mounted version of the NanoMed, containing only vital first aid equipment." description_fluff = "NanoMed is NanoTrasen's medical science division, and provides almost all of the modern medbay essentials in-house at no extra charge. By using this vending machine, employees accept liability for products that may or may not be temporarily replaced by placebos or experimental treatments." icon_state = "wallmed" + layer = ABOVE_WINDOW_LAYER density = 0 //It is wall-mounted, and thus, not dense. --Superxpdude products = list(/obj/item/weapon/reagent_containers/hypospray/autoinjector = 5, /obj/item/weapon/reagent_containers/syringe/antitoxin = 3, @@ -826,3 +828,53 @@ /obj/item/stack/cable_coil/random = 4) premium = list(/obj/item/weapon/storage/box/wormcan/deluxe = 1) contraband = list(/obj/item/weapon/storage/box/wormcan/deluxe = 1) + + +/obj/machinery/vending/virtual_autodrobe + name = "Virtual AutoDrobe" + desc = "A virtual vending machine for virtual avatar customization." + icon_state = "Theater" + product_slogans = "Dress for success!;Suited and booted!;It's show time!;Why leave style up to fate? Use AutoDrobe!" + products = list(/obj/item/weapon/storage/box/syndie_kit/chameleon = 20) + + +/obj/machinery/vending/deathmatch + name = "Annihilation Shop (Green)" + desc = "A virtual vending machine for virtual murder equipment. This one's for green team." + products = list(/obj/item/weapon/melee/energy/sword = 5, + /obj/item/weapon/melee/energy/axe = 5, + /obj/item/weapon/melee/baton/loaded = 5, + /obj/item/weapon/gun/energy/laser = 5, + /obj/item/weapon/gun/projectile/shotgun/pump/combat = 5, + /obj/item/ammo_magazine/clip/c12g/pellet = 40, + /obj/item/ammo_magazine/clip/c12g = 50, + /obj/item/weapon/storage/box/flashbangs = 2, + /obj/item/clothing/head/helmet/swat = 5, + /obj/item/clothing/suit/armor/vest = 5, + /obj/item/clothing/head/helmet/thunderdome = 5, + /obj/item/clothing/shoes/brown = 5, + /obj/item/clothing/suit/armor/tdome/green = 5, + /obj/item/clothing/under/color/green = 5, + /obj/item/weapon/reagent_containers/pill/adminordrazine = 10, + /obj/item/weapon/tool/crowbar = 1) + + +/obj/machinery/vending/deathmatch/red + name = "Annihilation Shop (Red)" + desc = "A virtual vending machine for virtual murder equipment. This one's for red team." + products = list(/obj/item/weapon/melee/energy/sword = 5, + /obj/item/weapon/melee/energy/axe = 5, + /obj/item/weapon/melee/baton/loaded = 5, + /obj/item/weapon/gun/energy/laser = 5, + /obj/item/weapon/gun/projectile/shotgun/pump/combat = 5, + /obj/item/ammo_magazine/clip/c12g/pellet = 40, + /obj/item/ammo_magazine/clip/c12g = 50, + /obj/item/weapon/storage/box/flashbangs = 2, + /obj/item/clothing/head/helmet/swat = 5, + /obj/item/clothing/suit/armor/vest = 5, + /obj/item/clothing/head/helmet/thunderdome = 5, + /obj/item/clothing/shoes/brown = 5, + /obj/item/clothing/suit/armor/tdome/red = 5, + /obj/item/clothing/under/color/red = 5, + /obj/item/weapon/reagent_containers/pill/adminordrazine = 10, + /obj/item/weapon/tool/crowbar = 1) diff --git a/code/game/machinery/vending_machines_vr.dm b/code/game/machinery/vending_machines_vr.dm index 7261f9f66b..d5cb68ad84 100644 --- a/code/game/machinery/vending_machines_vr.dm +++ b/code/game/machinery/vending_machines_vr.dm @@ -1334,3 +1334,3109 @@ /obj/machinery/vending/cola/soft icon = 'icons/obj/vending_vr.dmi' icon_state = "Cola_Machine" + +//Tweaked existing vendors +/obj/machinery/vending/hydroseeds/New() + products += list(/obj/item/seeds/shrinkshroom = 3,/obj/item/seeds/megashroom = 3) + ..() + +/obj/machinery/vending/security/New() + products += list(/obj/item/weapon/gun/energy/taser = 8,/obj/item/weapon/gun/energy/stunrevolver = 4, + /obj/item/weapon/reagent_containers/spray/pepper = 6,/obj/item/taperoll/police = 6, + /obj/item/clothing/glasses/omnihud/sec = 6) + ..() + +/obj/machinery/vending/tool/New() + products += list(/obj/item/weapon/reagent_containers/spray/windowsealant = 5) + ..() + +/obj/machinery/vending/engivend/New() + products += list(/obj/item/clothing/glasses/omnihud/eng = 6) + contraband += list(/obj/item/weapon/rms = 5) + ..() + +/obj/machinery/vending/medical/New() + products += list(/obj/item/weapon/storage/box/khcrystal = 4,/obj/item/weapon/backup_implanter = 3, + /obj/item/clothing/glasses/omnihud/med = 4, /obj/item/device/glasses_kit = 1, /obj/item/weapon/storage/quickdraw/syringe_case = 4) + ..() + +//I want this not just as part of the zoo. ;v +/obj/machinery/vending/food + name = "Food-O-Mat" + desc = "A technological marvel, supposedly able to cook or mix a large variety of food or drink." + icon_state = "hotfood" + products = list(/obj/item/weapon/tray = 8, + /obj/item/weapon/material/kitchen/utensil/fork = 6, + /obj/item/weapon/material/knife/plastic = 6, + /obj/item/weapon/material/kitchen/utensil/spoon = 6, + /obj/item/weapon/reagent_containers/food/snacks/tomatosoup = 8, + /obj/item/weapon/reagent_containers/food/snacks/mushroomsoup = 8, + /obj/item/weapon/reagent_containers/food/snacks/jellysandwich = 8, + /obj/item/weapon/reagent_containers/food/snacks/taco = 8, + /obj/item/weapon/reagent_containers/food/snacks/cheeseburger = 8, + /obj/item/weapon/reagent_containers/food/snacks/grilledcheese = 8, + /obj/item/weapon/reagent_containers/food/snacks/hotdog = 8, + /obj/item/weapon/reagent_containers/food/snacks/loadedbakedpotato = 8, + /obj/item/weapon/reagent_containers/food/snacks/omelette = 8, + /obj/item/weapon/reagent_containers/food/snacks/pastatomato = 8, + /obj/item/weapon/reagent_containers/food/snacks/tofuburger = 8, + /obj/item/weapon/reagent_containers/food/snacks/sliceable/pizza/mushroompizza = 2, + /obj/item/weapon/reagent_containers/food/snacks/sliceable/pizza/vegetablepizza = 2, + /obj/item/weapon/reagent_containers/food/snacks/sliceable/pizza/margherita = 2, + /obj/item/weapon/reagent_containers/food/snacks/sliceable/pizza/meatpizza = 2, + /obj/item/weapon/reagent_containers/food/snacks/waffles = 4, + /obj/item/weapon/reagent_containers/food/snacks/muffin = 4, + /obj/item/weapon/reagent_containers/food/snacks/appletart = 4, + /obj/item/weapon/reagent_containers/food/snacks/sliceable/applecake = 2, + /obj/item/weapon/reagent_containers/food/snacks/sliceable/bananabread = 2, + /obj/item/weapon/reagent_containers/food/snacks/sliceable/creamcheesebread = 2 + ) + contraband = list(/obj/item/weapon/reagent_containers/food/snacks/mysterysoup = 10) + vend_delay = 15 + +/obj/machinery/vending/food/arojoan //Fluff vendor for the lewd houseboat. + name = "Custom Food-O-Mat" + desc = "Do you think Joan cooks? Of course not. Lazy squirrel!" + products = list(/obj/item/weapon/tray = 6, + /obj/item/weapon/material/kitchen/utensil/fork = 6, + /obj/item/weapon/material/knife/plastic = 6, + /obj/item/weapon/material/kitchen/utensil/spoon = 6, + /obj/item/weapon/reagent_containers/food/snacks/hotandsoursoup = 3, + /obj/item/weapon/reagent_containers/food/snacks/kitsuneudon = 3, + /obj/item/weapon/reagent_containers/food/snacks/generalschicken = 3, + /obj/item/weapon/reagent_containers/food/snacks/sliceable/sushi = 2, + /obj/item/weapon/reagent_containers/food/snacks/jellysandwich = 3, + /obj/item/weapon/reagent_containers/food/snacks/grilledcheese = 3, + /obj/item/weapon/reagent_containers/food/snacks/hotdog = 3, + /obj/item/weapon/storage/box/wings = 2, + /obj/item/weapon/reagent_containers/food/snacks/loadedbakedpotato = 3, + /obj/item/weapon/reagent_containers/food/snacks/omelette = 3, + /obj/item/weapon/reagent_containers/food/snacks/waffles = 3, + /obj/item/weapon/reagent_containers/food/snacks/sliceable/pizza/mushroompizza = 1, + /obj/item/weapon/reagent_containers/food/snacks/sliceable/pizza/vegetablepizza = 1, + /obj/item/weapon/reagent_containers/food/snacks/appletart = 2, + /obj/item/weapon/reagent_containers/food/snacks/sliceable/applecake = 1, + /obj/item/weapon/reagent_containers/food/snacks/sliceable/bananabread = 2, + /obj/item/weapon/reagent_containers/food/snacks/sliceable/creamcheesebread = 2 + ) + contraband = list(/obj/item/weapon/reagent_containers/food/snacks/mysterysoup = 10) + vend_delay = 15 +/* For later, then +/obj/machinery/vending/weapon_machine + name = "Frozen Star Guns&Ammo" + desc = "A self-defense equipment vending machine. When you need to take care of that clown." + product_slogans = "The best defense is good offense!;Buy for your whole family today!;Nobody can outsmart bullet!;God created man - Frozen Star made them EQUAL!;Nobody can outsmart bullet!;Stupidity can be cured! By LEAD.;Dead kids can't bully your children!" + product_ads = "Stunning!;Take justice in your own hands!;LEADearship!" + icon = 'icons/obj/vending_vr.dmi' + icon_state = "weapon" + products = list(/obj/item/device/flash = 6,/obj/item/weapon/reagent_containers/spray/pepper = 6, /obj/item/weapon/gun/projectile/olivaw = 5, /obj/item/weapon/gun/projectile/giskard = 5, /obj/item/ammo_magazine/mg/cl32/rubber = 20) + contraband = list(/obj/item/weapon/reagent_containers/food/snacks/syndicake = 6) + prices = list(/obj/item/device/flash = 600,/obj/item/weapon/reagent_containers/spray/pepper = 800, /obj/item/weapon/gun/projectile/olivaw = 1600, /obj/item/weapon/gun/projectile/giskard = 1200, /obj/item/ammo_magazine/mg/cl32/rubber = 200) +*/ + +/obj/machinery/vending/fitness/New() + products += list(/obj/item/weapon/reagent_containers/food/snacks/liquidprotein = 8) + prices += list(/obj/item/weapon/reagent_containers/food/snacks/liquidprotein = 5) + ..() + +/obj/machinery/vending/blood + name = "Blood-Onator" + desc = "Freezer-vendor for storage and quick dispensing of blood packs" + product_ads = "The true life juice!;Vampire's choice!;Home-grown blood only!;Donate today, be saved tomorrow!;Approved by Zeng-Hu Pharmaceuticals Incorporated!; Curse you, Vey-Med artificial blood!" + icon = 'icons/obj/vending_vr.dmi' + icon_state = "blood" + vend_delay = 7 + idle_power_usage = 211 + req_access = list(access_medical) + products = list(/obj/item/weapon/reagent_containers/blood/prelabeled/APlus = 3,/obj/item/weapon/reagent_containers/blood/prelabeled/AMinus = 3, + /obj/item/weapon/reagent_containers/blood/prelabeled/BPlus = 3,/obj/item/weapon/reagent_containers/blood/prelabeled/BMinus = 3, + /obj/item/weapon/reagent_containers/blood/prelabeled/OPlus = 2,/obj/item/weapon/reagent_containers/blood/prelabeled/OMinus = 5, + /obj/item/weapon/reagent_containers/blood/empty = 5) + contraband = list(/obj/item/weapon/reagent_containers/glass/bottle/stoxin = 2) + req_log_access = access_cmo + has_logs = 1 + +/obj/machinery/vending/loadout + name = "Fingers and Toes" + desc = "A special vendor for gloves and shoes!" + product_ads = "Do you have fingers and toes? COVER THEM UP!;Show me your toes! Wait. NO DON'T! BUY NEW SHOES!;Don't leave prints, BUY SOME GLOVES!;Remember to check your shoes for micros! You don't have to let them out, but just check for them!;Fingers and Toes is not liable for micro entrapment or abuse under the feet of our patrons.!;This little piggy went WE WE WE all the way down to FINGERS AND TOES to pick up some sweet new gloves and shoes." + icon = 'icons/obj/vending_vr.dmi' + icon_state = "glovesnshoes" + products = list(/obj/item/clothing/gloves/evening = 5, + /obj/item/clothing/gloves/fingerless = 5, + /obj/item/clothing/gloves/black = 5, + /obj/item/clothing/gloves/blue = 5, + /obj/item/clothing/gloves/brown = 5, + /obj/item/clothing/gloves/color = 5, + /obj/item/clothing/gloves/green = 5, + /obj/item/clothing/gloves/grey = 5, + /obj/item/clothing/gloves/sterile/latex = 5, + /obj/item/clothing/gloves/light_brown = 5, + /obj/item/clothing/gloves/sterile/nitrile = 5, + /obj/item/clothing/gloves/orange = 5, + /obj/item/clothing/gloves/purple = 5, + /obj/item/clothing/gloves/red = 5, + /obj/item/clothing/gloves/fluff/siren = 5, + /obj/item/clothing/gloves/white = 5, + /obj/item/clothing/gloves/duty = 5, + /obj/item/clothing/shoes/athletic = 5, + /obj/item/clothing/shoes/boots/fluff/siren = 5, + /obj/item/clothing/shoes/slippers = 5, + /obj/item/clothing/shoes/boots/cowboy/classic = 5, + /obj/item/clothing/shoes/boots/cowboy = 5, + /obj/item/clothing/shoes/boots/duty = 5, + /obj/item/clothing/shoes/flats/white/color = 5, + /obj/item/clothing/shoes/flipflop = 5, + /obj/item/clothing/shoes/heels = 5, + /obj/item/clothing/shoes/hitops/black = 5, + /obj/item/clothing/shoes/hitops/blue = 5, + /obj/item/clothing/shoes/hitops/green = 5, + /obj/item/clothing/shoes/hitops/orange = 5, + /obj/item/clothing/shoes/hitops/purple = 5, + /obj/item/clothing/shoes/hitops/red = 5, + /obj/item/clothing/shoes/flats/white/color = 5, + /obj/item/clothing/shoes/hitops/yellow = 5, + /obj/item/clothing/shoes/boots/jackboots = 5, + /obj/item/clothing/shoes/boots/jungle = 5, + /obj/item/clothing/shoes/black/cuffs = 5, + /obj/item/clothing/shoes/black/cuffs/blue = 5, + /obj/item/clothing/shoes/black/cuffs/red = 5, + /obj/item/clothing/shoes/sandal = 5, + /obj/item/clothing/shoes/black = 5, + /obj/item/clothing/shoes/blue = 5, + /obj/item/clothing/shoes/brown = 5, + /obj/item/clothing/shoes/laceup = 5, + /obj/item/clothing/shoes/green = 5, + /obj/item/clothing/shoes/laceup/brown = 5, + /obj/item/clothing/shoes/orange = 5, + /obj/item/clothing/shoes/purple = 5, + /obj/item/clothing/shoes/red = 5, + /obj/item/clothing/shoes/white = 5, + /obj/item/clothing/shoes/yellow = 5, + /obj/item/clothing/shoes/skater = 5, + /obj/item/clothing/shoes/boots/cowboy/snakeskin = 5, + /obj/item/clothing/shoes/boots/jackboots/toeless = 5, + /obj/item/clothing/shoes/boots/workboots/toeless = 5, + /obj/item/clothing/shoes/boots/winter = 5, + /obj/item/clothing/shoes/boots/workboots = 5, + /obj/item/clothing/shoes/footwraps = 5) + prices = list(/obj/item/clothing/gloves/evening = 50, + /obj/item/clothing/gloves/fingerless = 50, + /obj/item/clothing/gloves/black = 50, + /obj/item/clothing/gloves/blue = 50, + /obj/item/clothing/gloves/brown = 50, + /obj/item/clothing/gloves/color = 50, + /obj/item/clothing/gloves/green = 50, + /obj/item/clothing/gloves/grey = 50, + /obj/item/clothing/gloves/sterile/latex = 100, + /obj/item/clothing/gloves/light_brown = 50, + /obj/item/clothing/gloves/sterile/nitrile = 100, + /obj/item/clothing/gloves/orange = 50, + /obj/item/clothing/gloves/purple = 50, + /obj/item/clothing/gloves/red = 50, + /obj/item/clothing/gloves/fluff/siren = 50, + /obj/item/clothing/gloves/white = 50, + /obj/item/clothing/gloves/duty = 150, + /obj/item/clothing/shoes/athletic = 50, + /obj/item/clothing/shoes/boots/fluff/siren = 50, + /obj/item/clothing/shoes/slippers = 50, + /obj/item/clothing/shoes/boots/cowboy/classic = 50, + /obj/item/clothing/shoes/boots/cowboy = 50, + /obj/item/clothing/shoes/boots/duty = 100, + /obj/item/clothing/shoes/flats/white/color = 50, + /obj/item/clothing/shoes/flipflop = 50, + /obj/item/clothing/shoes/heels = 50, + /obj/item/clothing/shoes/hitops/black = 50, + /obj/item/clothing/shoes/hitops/blue = 50, + /obj/item/clothing/shoes/hitops/green = 50, + /obj/item/clothing/shoes/hitops/orange = 50, + /obj/item/clothing/shoes/hitops/purple = 50, + /obj/item/clothing/shoes/hitops/red = 50, + /obj/item/clothing/shoes/flats/white/color = 50, + /obj/item/clothing/shoes/hitops/yellow = 50, + /obj/item/clothing/shoes/boots/jackboots = 50, + /obj/item/clothing/shoes/boots/jungle = 100, + /obj/item/clothing/shoes/black/cuffs = 50, + /obj/item/clothing/shoes/black/cuffs/blue = 50, + /obj/item/clothing/shoes/black/cuffs/red = 50, + /obj/item/clothing/shoes/sandal = 50, + /obj/item/clothing/shoes/black = 50, + /obj/item/clothing/shoes/blue = 50, + /obj/item/clothing/shoes/brown = 50, + /obj/item/clothing/shoes/laceup = 50, + /obj/item/clothing/shoes/green = 50, + /obj/item/clothing/shoes/laceup/brown = 50, + /obj/item/clothing/shoes/orange = 50, + /obj/item/clothing/shoes/purple = 50, + /obj/item/clothing/shoes/red = 50, + /obj/item/clothing/shoes/white = 50, + /obj/item/clothing/shoes/yellow = 50, + /obj/item/clothing/shoes/skater = 50, + /obj/item/clothing/shoes/boots/cowboy/snakeskin = 50, + /obj/item/clothing/shoes/boots/jackboots/toeless = 50, + /obj/item/clothing/shoes/boots/workboots/toeless = 50, + /obj/item/clothing/shoes/boots/winter = 50, + /obj/item/clothing/shoes/boots/workboots = 50, + /obj/item/clothing/shoes/footwraps = 50) + premium = list(/obj/item/clothing/gloves/rainbow = 1, + /obj/item/clothing/shoes/rainbow = 1,) + contraband = list(/obj/item/clothing/shoes/syndigaloshes = 1, + /obj/item/clothing/shoes/clown_shoes = 1) + +/obj/machinery/vending/loadout/uniform + name = "The Basics" + desc = "A vendor using compressed matter cartridges to store large amounts of basic station uniforms." + product_ads = "Don't get caught naked!;Pick up your uniform!;Using compressed matter cartridges and VERY ETHICAL labor practices, we bring you the uniforms you need!;No uniform? No problem!;We've got your covered!;The Basics is not responsible for being crushed under the amount of things inside our machines. DO NOT VEND IN EXCESS!!" + icon_state = "loadout" + vend_delay = 16 + products = list(/obj/item/device/pda = 50, + /obj/item/device/radio/headset = 50, + /obj/item/weapon/storage/backpack/ = 10, + /obj/item/weapon/storage/backpack/messenger = 10, + /obj/item/weapon/storage/backpack/satchel = 10, + /obj/item/clothing/under/color = 5, + /obj/item/clothing/under/color/aqua = 5, + /obj/item/clothing/under/color/black = 5, + /obj/item/clothing/under/color/blackjumpskirt = 5, + /obj/item/clothing/under/color/blue = 5, + /obj/item/clothing/under/color/brown = 5, + /obj/item/clothing/under/color/green = 5, + /obj/item/clothing/under/color/grey = 5, + /obj/item/clothing/under/color/orange = 5, + /obj/item/clothing/under/color/pink = 5, + /obj/item/clothing/under/color/red = 5, + /obj/item/clothing/under/color/white = 5, + /obj/item/clothing/under/color/yellow = 5, + /obj/item/clothing/shoes/black = 20, + /obj/item/clothing/shoes/white = 20) + prices = list() + +/obj/machinery/vending/loadout/accessory + name = "Looty Inc." + desc = "A special vendor for accessories." + product_ads = "Want shinies? We have the shinies.;Need that special something to complete your outfit? We have what you need!;Ditch that old dull dangly something you've got and pick up one of our shinies!;Bracelets, collars, scarfs rings and more! We have the fancy things you need!;Does your pet need a collar? We don't judge! Keep them in line with one of one of ours!;Top of the line materials! 'Hand crafted' goods!" + icon_state = "accessory" + vend_delay = 6 + products = list(/obj/item/clothing/accessory = 5, + /obj/item/clothing/accessory/armband/med/color = 10, + /obj/item/clothing/accessory/asymmetric = 5, + /obj/item/clothing/accessory/asymmetric/purple = 5, + /obj/item/clothing/accessory/asymmetric/green = 5, + /obj/item/clothing/accessory/bracelet = 5, + /obj/item/clothing/accessory/bracelet/material = 5, + /obj/item/clothing/accessory/bracelet/friendship = 5, + /obj/item/clothing/accessory/chaps = 5, + /obj/item/clothing/accessory/chaps/black = 5, + /obj/item/weapon/storage/briefcase/clutch = 1, + /obj/item/clothing/accessory/collar = 5, + /obj/item/clothing/accessory/collar/bell = 5, + /obj/item/clothing/accessory/collar/spike = 5, + /obj/item/clothing/accessory/collar/pink = 5, + /obj/item/clothing/accessory/collar/holo = 5, + /obj/item/clothing/accessory/collar/shock = 5, + /obj/item/weapon/storage/belt/fannypack = 1, + /obj/item/weapon/storage/belt/fannypack/white = 5, + /obj/item/clothing/accessory/fullcape = 5, + /obj/item/clothing/accessory/halfcape = 5, + /obj/item/clothing/accessory/hawaii = 5, + /obj/item/clothing/accessory/hawaii/random = 5, + /obj/item/clothing/accessory/locket = 5, + /obj/item/weapon/storage/backpack/purse = 1, + /obj/item/clothing/accessory/sash = 5, + /obj/item/clothing/accessory/scarf = 5, + /obj/item/clothing/accessory/scarf/red = 5, + /obj/item/clothing/accessory/scarf/darkblue = 5, + /obj/item/clothing/accessory/scarf/purple = 5, + /obj/item/clothing/accessory/scarf/yellow = 5, + /obj/item/clothing/accessory/scarf/orange = 5, + /obj/item/clothing/accessory/scarf/lightblue = 5, + /obj/item/clothing/accessory/scarf/white = 5, + /obj/item/clothing/accessory/scarf/black = 5, + /obj/item/clothing/accessory/scarf/zebra = 5, + /obj/item/clothing/accessory/scarf/christmas = 5, + /obj/item/clothing/accessory/scarf/stripedred = 5, + /obj/item/clothing/accessory/scarf/stripedgreen = 5, + /obj/item/clothing/accessory/scarf/stripedblue = 5, + /obj/item/clothing/accessory/jacket = 5, + /obj/item/clothing/accessory/jacket/checkered = 5, + /obj/item/clothing/accessory/jacket/burgundy = 5, + /obj/item/clothing/accessory/jacket/navy = 5, + /obj/item/clothing/accessory/jacket/charcoal = 5, + /obj/item/clothing/accessory/vest = 5, + /obj/item/clothing/accessory/sweater = 5, + /obj/item/clothing/accessory/sweater/pink = 5, + /obj/item/clothing/accessory/sweater/mint = 5, + /obj/item/clothing/accessory/sweater/blue = 5, + /obj/item/clothing/accessory/sweater/heart = 5, + /obj/item/clothing/accessory/sweater/nt = 5, + /obj/item/clothing/accessory/sweater/keyhole = 5, + /obj/item/clothing/accessory/sweater/winterneck = 5, + /obj/item/clothing/accessory/sweater/uglyxmas = 5, + /obj/item/clothing/accessory/sweater/flowersweater = 5, + /obj/item/clothing/accessory/sweater/redneck = 5, + /obj/item/clothing/accessory/tie = 5, + /obj/item/clothing/accessory/tie/horrible = 5, + /obj/item/clothing/accessory/tie/white = 5, + /obj/item/clothing/accessory/tie/navy = 5, + /obj/item/clothing/accessory/tie/yellow = 5, + /obj/item/clothing/accessory/tie/darkgreen = 5, + /obj/item/clothing/accessory/tie/black = 5, + /obj/item/clothing/accessory/tie/red_long = 5, + /obj/item/clothing/accessory/tie/red_clip = 5, + /obj/item/clothing/accessory/tie/blue_long = 5, + /obj/item/clothing/accessory/tie/blue_clip = 5, + /obj/item/clothing/accessory/tie/red = 5, + /obj/item/clothing/accessory/wcoat = 5, + /obj/item/clothing/accessory/wcoat/red = 5, + /obj/item/clothing/accessory/wcoat/grey = 5, + /obj/item/clothing/accessory/wcoat/brown = 5, + /obj/item/clothing/accessory/wcoat/gentleman = 5, + /obj/item/clothing/accessory/wcoat/swvest = 5, + /obj/item/clothing/accessory/wcoat/swvest/blue = 5, + /obj/item/clothing/accessory/wcoat/swvest/red = 5, + /obj/item/weapon/storage/wallet = 5, + /obj/item/weapon/storage/wallet/poly = 5, + /obj/item/weapon/storage/wallet/womens = 5, + /obj/item/weapon/lipstick = 5, + /obj/item/weapon/lipstick/purple = 5, + /obj/item/weapon/lipstick/jade = 5, + /obj/item/weapon/lipstick/black = 5, + /obj/item/clothing/ears/earmuffs = 5, + /obj/item/clothing/ears/earmuffs/headphones = 5, + /obj/item/clothing/ears/earring/stud = 5, + /obj/item/clothing/ears/earring/dangle = 5, + /obj/item/clothing/gloves/ring/mariner = 5, + /obj/item/clothing/gloves/ring/engagement = 5, + /obj/item/clothing/gloves/ring/seal/signet = 5, + /obj/item/clothing/gloves/ring/seal/mason = 5, + /obj/item/clothing/gloves/ring/material/plastic = 5, + /obj/item/clothing/gloves/ring/material/steel = 5, + /obj/item/clothing/gloves/ring/material/gold = 5, + /obj/item/clothing/glasses/eyepatch = 5, + /obj/item/clothing/glasses/gglasses = 5, + /obj/item/clothing/glasses/regular/hipster = 5, + /obj/item/clothing/glasses/rimless = 5, + /obj/item/clothing/glasses/thin = 5, + /obj/item/clothing/glasses/monocle = 5, + /obj/item/clothing/glasses/goggles = 5, + /obj/item/clothing/glasses/fluff/spiffygogs = 5, + /obj/item/clothing/glasses/fakesunglasses = 5, + /obj/item/clothing/glasses/fakesunglasses/aviator = 5, + /obj/item/clothing/mask/bandana/blue = 5, + /obj/item/clothing/mask/bandana/gold = 5, + /obj/item/clothing/mask/bandana/green = 5, + /obj/item/clothing/mask/bandana/red = 5, + /obj/item/clothing/mask/surgical = 5) + prices = list(/obj/item/clothing/accessory = 50, + /obj/item/clothing/accessory/armband/med/color = 50, + /obj/item/clothing/accessory/asymmetric = 50, + /obj/item/clothing/accessory/asymmetric/purple = 50, + /obj/item/clothing/accessory/asymmetric/green = 50, + /obj/item/clothing/accessory/bracelet = 50, + /obj/item/clothing/accessory/bracelet/material = 50, + /obj/item/clothing/accessory/bracelet/friendship = 50, + /obj/item/clothing/accessory/chaps = 50, + /obj/item/clothing/accessory/chaps/black = 50, + /obj/item/weapon/storage/briefcase/clutch = 50, + /obj/item/clothing/accessory/collar = 50, + /obj/item/clothing/accessory/collar/bell = 50, + /obj/item/clothing/accessory/collar/spike = 50, + /obj/item/clothing/accessory/collar/pink = 50, + /obj/item/clothing/accessory/collar/holo = 50, + /obj/item/clothing/accessory/collar/shock = 50, + /obj/item/weapon/storage/belt/fannypack = 50, + /obj/item/weapon/storage/belt/fannypack/white = 50, + /obj/item/clothing/accessory/fullcape = 50, + /obj/item/clothing/accessory/halfcape = 50, + /obj/item/clothing/accessory/hawaii = 50, + /obj/item/clothing/accessory/hawaii/random = 50, + /obj/item/clothing/accessory/locket = 50, + /obj/item/weapon/storage/backpack/purse = 50, + /obj/item/clothing/accessory/sash = 50, + /obj/item/clothing/accessory/scarf = 5, + /obj/item/clothing/accessory/scarf/red = 50, + /obj/item/clothing/accessory/scarf/darkblue = 50, + /obj/item/clothing/accessory/scarf/purple = 50, + /obj/item/clothing/accessory/scarf/yellow = 100, + /obj/item/clothing/accessory/scarf/orange = 50, + /obj/item/clothing/accessory/scarf/lightblue = 50, + /obj/item/clothing/accessory/scarf/white = 50, + /obj/item/clothing/accessory/scarf/black = 50, + /obj/item/clothing/accessory/scarf/zebra = 50, + /obj/item/clothing/accessory/scarf/christmas = 50, + /obj/item/clothing/accessory/scarf/stripedred = 50, + /obj/item/clothing/accessory/scarf/stripedgreen = 50, + /obj/item/clothing/accessory/scarf/stripedblue = 50, + /obj/item/clothing/accessory/jacket = 50, + /obj/item/clothing/accessory/jacket/checkered = 50, + /obj/item/clothing/accessory/jacket/burgundy = 50, + /obj/item/clothing/accessory/jacket/navy = 50, + /obj/item/clothing/accessory/jacket/charcoal = 50, + /obj/item/clothing/accessory/vest = 50, + /obj/item/clothing/accessory/sweater = 50, + /obj/item/clothing/accessory/sweater/pink = 50, + /obj/item/clothing/accessory/sweater/mint = 50, + /obj/item/clothing/accessory/sweater/blue = 50, + /obj/item/clothing/accessory/sweater/heart = 50, + /obj/item/clothing/accessory/sweater/nt = 5, + /obj/item/clothing/accessory/sweater/keyhole = 50, + /obj/item/clothing/accessory/sweater/winterneck = 50, + /obj/item/clothing/accessory/sweater/uglyxmas = 5, + /obj/item/clothing/accessory/sweater/flowersweater = 50, + /obj/item/clothing/accessory/sweater/redneck = 50, + /obj/item/clothing/accessory/tie = 50, + /obj/item/clothing/accessory/tie/horrible = 50, + /obj/item/clothing/accessory/tie/white = 50, + /obj/item/clothing/accessory/tie/navy = 50, + /obj/item/clothing/accessory/tie/yellow = 50, + /obj/item/clothing/accessory/tie/darkgreen = 50, + /obj/item/clothing/accessory/tie/black = 50, + /obj/item/clothing/accessory/tie/red_long = 50, + /obj/item/clothing/accessory/tie/red_clip = 50, + /obj/item/clothing/accessory/tie/blue_long = 50, + /obj/item/clothing/accessory/tie/blue_clip = 50, + /obj/item/clothing/accessory/tie/red = 50, + /obj/item/clothing/accessory/wcoat = 50, + /obj/item/clothing/accessory/wcoat/red = 50, + /obj/item/clothing/accessory/wcoat/grey = 50, + /obj/item/clothing/accessory/wcoat/brown = 50, + /obj/item/clothing/accessory/wcoat/gentleman = 50, + /obj/item/clothing/accessory/wcoat/swvest = 50, + /obj/item/clothing/accessory/wcoat/swvest/blue = 50, + /obj/item/clothing/accessory/wcoat/swvest/red = 50, + /obj/item/weapon/storage/wallet = 50, + /obj/item/weapon/storage/wallet/poly = 50, + /obj/item/weapon/storage/wallet/womens = 50, + /obj/item/weapon/lipstick = 50, + /obj/item/weapon/lipstick/purple = 50, + /obj/item/weapon/lipstick/jade = 50, + /obj/item/weapon/lipstick/black = 50, + /obj/item/clothing/ears/earmuffs = 50, + /obj/item/clothing/ears/earmuffs/headphones = 50, + /obj/item/clothing/ears/earring/stud = 50, + /obj/item/clothing/ears/earring/dangle = 50, + /obj/item/clothing/gloves/ring/mariner = 50, + /obj/item/clothing/gloves/ring/engagement = 50, + /obj/item/clothing/gloves/ring/seal/signet = 50, + /obj/item/clothing/gloves/ring/seal/mason = 50, + /obj/item/clothing/gloves/ring/material/plastic = 50, + /obj/item/clothing/gloves/ring/material/steel = 50, + /obj/item/clothing/gloves/ring/material/gold = 100, + /obj/item/clothing/glasses/eyepatch = 50, + /obj/item/clothing/glasses/gglasses = 50, + /obj/item/clothing/glasses/regular/hipster = 50, + /obj/item/clothing/glasses/rimless = 50, + /obj/item/clothing/glasses/thin = 50, + /obj/item/clothing/glasses/monocle = 50, + /obj/item/clothing/glasses/goggles = 50, + /obj/item/clothing/glasses/fluff/spiffygogs = 50, + /obj/item/clothing/glasses/fakesunglasses = 50, + /obj/item/clothing/glasses/fakesunglasses/aviator = 50, + /obj/item/clothing/mask/bandana/blue = 50, + /obj/item/clothing/mask/bandana/gold = 50, + /obj/item/clothing/mask/bandana/green = 50, + /obj/item/clothing/mask/bandana/red = 50, + /obj/item/clothing/mask/surgical = 50) + premium = list(/obj/item/weapon/bedsheet/rainbow = 1) + contraband = list(/obj/item/clothing/mask/gas/clown_hat = 1) + +/obj/machinery/vending/loadout/clothing + name = "General Jump" + desc = "A special vendor using compressed matter cartridges to store large amounts of clothing." + product_ads = "Tired of your grey jumpsuit? Spruce yourself up!;We have the outfit for you!;Don't let that grey jumpsuit get you down, get a ROBUST outfit right now!;Using compressed matter catridges and VERY ETHICAL labor practices to bring YOU the clothing you crave!;Are you sure you want to go to work in THAT?;All of our wares have a whole TWO pockets!" + icon_state = "clothing" + vend_delay = 16 + products = list(/obj/item/clothing/under/bathrobe = 5, + /obj/item/clothing/under/dress/black_corset = 5, + /obj/item/clothing/under/blazer = 5, + /obj/item/clothing/under/blazer/skirt = 5, + /obj/item/clothing/under/cheongsam = 5, + /obj/item/clothing/under/cheongsam/red = 5, + /obj/item/clothing/under/cheongsam/blue = 5, + /obj/item/clothing/under/cheongsam/black = 5, + /obj/item/clothing/under/cheongsam/darkred = 5, + /obj/item/clothing/under/cheongsam/green = 5, + /obj/item/clothing/under/cheongsam/purple = 5, + /obj/item/clothing/under/cheongsam/darkblue = 5, + /obj/item/clothing/under/croptop = 5, + /obj/item/clothing/under/croptop/red = 5, + /obj/item/clothing/under/croptop/grey = 5, + /obj/item/clothing/under/cuttop = 5, + /obj/item/clothing/under/cuttop/red = 5, + /obj/item/clothing/under/suit_jacket/female/skirt = 5, + /obj/item/clothing/under/dress/dress_fire = 5, + /obj/item/clothing/under/dress/flamenco = 5, + /obj/item/clothing/under/dress/flower_dress = 5, + /obj/item/clothing/under/fluff/gnshorts = 5, + /obj/item/clothing/under/color = 5, + /obj/item/clothing/under/color/aqua = 5, + /obj/item/clothing/under/color/black = 5, + /obj/item/clothing/under/color/blackf = 5, + /obj/item/clothing/under/color/blackjumpskirt = 5, + /obj/item/clothing/under/color/blue = 5, + /obj/item/clothing/under/color/brown = 5, + /obj/item/clothing/under/color/darkblue = 5, + /obj/item/clothing/under/color/darkred = 5, + /obj/item/clothing/under/color/green = 5, + /obj/item/clothing/under/color/grey = 5, + /obj/item/clothing/under/color/lightblue = 5, + /obj/item/clothing/under/color/lightbrown = 5, + /obj/item/clothing/under/color/lightgreen = 5, + /obj/item/clothing/under/color/lightpurple = 5, + /obj/item/clothing/under/color/lightred = 5, + /obj/item/clothing/under/color/orange = 5, + /obj/item/clothing/under/color/pink = 5, + /obj/item/clothing/under/color/prison = 5, + /obj/item/clothing/under/color/ranger = 5, + /obj/item/clothing/under/color/red = 5, + /obj/item/clothing/under/color/white = 5, + /obj/item/clothing/under/color/yellow = 5, + /obj/item/clothing/under/color/yellowgreen = 5, + /obj/item/clothing/under/aether = 5, + /obj/item/clothing/under/focal = 5, + /obj/item/clothing/under/hephaestus = 5, + /obj/item/clothing/under/wardt = 5, + /obj/item/clothing/under/kilt = 5, + /obj/item/clothing/under/fluff/latexmaid = 5, + /obj/item/clothing/under/dress/lilacdress = 5, + /obj/item/clothing/under/dress/white2 = 5, + /obj/item/clothing/under/dress/white4 = 5, + /obj/item/clothing/under/dress/maid = 5, + /obj/item/clothing/under/dress/maid/sexy = 5, + /obj/item/clothing/under/dress/maid/janitor = 5, + /obj/item/clothing/under/moderncoat = 5, + /obj/item/clothing/under/permit = 5, + /obj/item/clothing/under/oldwoman = 5, + /obj/item/clothing/under/frontier = 5, + /obj/item/clothing/under/mbill = 5, + /obj/item/clothing/under/pants/baggy/ = 5, + /obj/item/clothing/under/pants/baggy/classicjeans = 5, + /obj/item/clothing/under/pants/baggy/mustangjeans = 5, + /obj/item/clothing/under/pants/baggy/blackjeans = 5, + /obj/item/clothing/under/pants/baggy/greyjeans = 5, + /obj/item/clothing/under/pants/baggy/youngfolksjeans = 5, + /obj/item/clothing/under/pants/baggy/white = 5, + /obj/item/clothing/under/pants/baggy/red = 5, + /obj/item/clothing/under/pants/baggy/black = 5, + /obj/item/clothing/under/pants/baggy/tan = 5, + /obj/item/clothing/under/pants/baggy/track = 5, + /obj/item/clothing/under/pants/baggy/khaki = 5, + /obj/item/clothing/under/pants/baggy/camo = 5, + /obj/item/clothing/under/pants/utility/ = 5, + /obj/item/clothing/under/pants/utility/orange = 5, + /obj/item/clothing/under/pants/utility/blue = 5, + /obj/item/clothing/under/pants/utility/white = 5, + /obj/item/clothing/under/pants/utility/red = 5, + /obj/item/clothing/under/pants/chaps = 5, + /obj/item/clothing/under/pants/chaps/black = 5, + /obj/item/clothing/under/pants/track = 5, + /obj/item/clothing/under/pants/track/red = 5, + /obj/item/clothing/under/pants/track/white = 5, + /obj/item/clothing/under/pants/track/green = 5, + /obj/item/clothing/under/pants/track/blue = 5, + /obj/item/clothing/under/pants/yogapants = 5, + /obj/item/clothing/under/ascetic = 5, + /obj/item/clothing/under/dress/white3 = 5, + /obj/item/clothing/under/skirt/pleated = 5, + /obj/item/clothing/under/dress/darkred = 5, + /obj/item/clothing/under/dress/redeveninggown = 5, + /obj/item/clothing/under/dress/red_swept_dress = 5, + /obj/item/clothing/under/dress/sailordress = 5, + /obj/item/clothing/under/dress/sari = 5, + /obj/item/clothing/under/dress/sari/green = 5, + /obj/item/clothing/under/dress/qipao = 5, + /obj/item/clothing/under/dress/qipao/red = 5, + /obj/item/clothing/under/dress/qipao/white = 5, + /obj/item/clothing/under/shorts/red = 5, + /obj/item/clothing/under/shorts/green = 5, + /obj/item/clothing/under/shorts/blue = 5, + /obj/item/clothing/under/shorts/black = 5, + /obj/item/clothing/under/shorts/grey = 5, + /obj/item/clothing/under/shorts/white = 5, + /obj/item/clothing/under/shorts/jeans = 5, + /obj/item/clothing/under/shorts/jeans/ = 5, + /obj/item/clothing/under/shorts/jeans/classic = 5, + /obj/item/clothing/under/shorts/jeans/mustang = 5, + /obj/item/clothing/under/shorts/jeans/youngfolks = 5, + /obj/item/clothing/under/shorts/jeans/black = 5, + /obj/item/clothing/under/shorts/jeans/grey = 5, + /obj/item/clothing/under/shorts/khaki/ = 5, + /obj/item/clothing/under/skirt/loincloth = 5, + /obj/item/clothing/under/skirt/khaki = 5, + /obj/item/clothing/under/skirt/blue = 5, + /obj/item/clothing/under/skirt/red = 5, + /obj/item/clothing/under/skirt/denim = 5, + /obj/item/clothing/under/skirt/pleated = 5, + /obj/item/clothing/under/skirt/outfit/plaid_blue = 5, + /obj/item/clothing/under/skirt/outfit/plaid_red = 5, + /obj/item/clothing/under/skirt/outfit/plaid_purple = 5, + /obj/item/clothing/under/overalls/sleek = 5, + /obj/item/clothing/under/sl_suit = 5, + /obj/item/clothing/under/gentlesuit = 5, + /obj/item/clothing/under/gentlesuit/skirt = 5, + /obj/item/clothing/under/suit_jacket = 5, + /obj/item/clothing/under/suit_jacket/really_black/skirt = 5, + /obj/item/clothing/under/suit_jacket/really_black = 5, + /obj/item/clothing/under/suit_jacket/female/skirt = 5, + /obj/item/clothing/under/suit_jacket/female/ = 5, + /obj/item/clothing/under/suit_jacket/red = 5, + /obj/item/clothing/under/suit_jacket/red/skirt = 5, + /obj/item/clothing/under/suit_jacket/charcoal = 5, + /obj/item/clothing/under/suit_jacket/charcoal/skirt = 5, + /obj/item/clothing/under/suit_jacket/navy = 5, + /obj/item/clothing/under/suit_jacket/navy/skirt = 5, + /obj/item/clothing/under/suit_jacket/burgundy = 5, + /obj/item/clothing/under/suit_jacket/burgundy/skirt = 5, + /obj/item/clothing/under/suit_jacket/checkered = 5, + /obj/item/clothing/under/suit_jacket/checkered/skirt = 5, + /obj/item/clothing/under/suit_jacket/tan = 5, + /obj/item/clothing/under/suit_jacket/tan/skirt = 5, + /obj/item/clothing/under/scratch = 5, + /obj/item/clothing/under/scratch/skirt = 5, + /obj/item/clothing/under/sundress = 5, + /obj/item/clothing/under/sundress_white = 5, + /obj/item/clothing/under/rank/psych/turtleneck/sweater = 5, + /obj/item/weapon/storage/box/fluff/swimsuit = 5, + /obj/item/weapon/storage/box/fluff/swimsuit/blue = 5, + /obj/item/weapon/storage/box/fluff/swimsuit/purple = 5, + /obj/item/weapon/storage/box/fluff/swimsuit/green = 5, + /obj/item/weapon/storage/box/fluff/swimsuit/red = 5, + /obj/item/weapon/storage/box/fluff/swimsuit/white = 5, + /obj/item/weapon/storage/box/fluff/swimsuit/earth = 5, + /obj/item/weapon/storage/box/fluff/swimsuit/engineering = 5, + /obj/item/weapon/storage/box/fluff/swimsuit/science = 5, + /obj/item/weapon/storage/box/fluff/swimsuit/security = 5, + /obj/item/weapon/storage/box/fluff/swimsuit/medical = 5, + /obj/item/clothing/under/utility = 5, + /obj/item/clothing/under/utility/grey = 5, + /obj/item/clothing/under/utility/blue = 5, + /obj/item/clothing/under/fluff/v_nanovest = 5, + /obj/item/clothing/under/dress/westernbustle = 5, + /obj/item/clothing/under/wedding/bride_white = 5, + /obj/item/weapon/storage/backpack/ = 5, + /obj/item/weapon/storage/backpack/messenger = 5, + /obj/item/weapon/storage/backpack/satchel = 5) + prices = list(/obj/item/clothing/under/bathrobe = 50, + /obj/item/clothing/under/dress/black_corset = 50, + /obj/item/clothing/under/blazer = 50, + /obj/item/clothing/under/blazer/skirt = 50, + /obj/item/clothing/under/cheongsam = 50, + /obj/item/clothing/under/cheongsam/red = 50, + /obj/item/clothing/under/cheongsam/blue = 50, + /obj/item/clothing/under/cheongsam/black = 50, + /obj/item/clothing/under/cheongsam/darkred = 50, + /obj/item/clothing/under/cheongsam/green = 50, + /obj/item/clothing/under/cheongsam/purple = 50, + /obj/item/clothing/under/cheongsam/darkblue = 50, + /obj/item/clothing/under/croptop = 50, + /obj/item/clothing/under/croptop/red = 50, + /obj/item/clothing/under/croptop/grey = 50, + /obj/item/clothing/under/cuttop = 50, + /obj/item/clothing/under/cuttop/red = 50, + /obj/item/clothing/under/suit_jacket/female/skirt = 50, + /obj/item/clothing/under/dress/dress_fire = 50, + /obj/item/clothing/under/dress/flamenco = 50, + /obj/item/clothing/under/dress/flower_dress = 50, + /obj/item/clothing/under/fluff/gnshorts = 50, + /obj/item/clothing/under/color = 50, + /obj/item/clothing/under/color/aqua = 50, + /obj/item/clothing/under/color/black = 50, + /obj/item/clothing/under/color/blackf = 50, + /obj/item/clothing/under/color/blackjumpskirt = 50, + /obj/item/clothing/under/color/blue = 50, + /obj/item/clothing/under/color/brown = 50, + /obj/item/clothing/under/color/darkblue = 50, + /obj/item/clothing/under/color/darkred = 50, + /obj/item/clothing/under/color/green = 50, + /obj/item/clothing/under/color/grey = 50, + /obj/item/clothing/under/color/lightblue = 50, + /obj/item/clothing/under/color/lightbrown = 50, + /obj/item/clothing/under/color/lightgreen = 50, + /obj/item/clothing/under/color/lightpurple = 50, + /obj/item/clothing/under/color/lightred = 50, + /obj/item/clothing/under/color/orange = 50, + /obj/item/clothing/under/color/pink = 50, + /obj/item/clothing/under/color/prison = 50, + /obj/item/clothing/under/color/ranger = 50, + /obj/item/clothing/under/color/red = 50, + /obj/item/clothing/under/color/white = 50, + /obj/item/clothing/under/color/yellow = 50, + /obj/item/clothing/under/color/yellowgreen = 50, + /obj/item/clothing/under/aether = 50, + /obj/item/clothing/under/focal = 50, + /obj/item/clothing/under/hephaestus = 50, + /obj/item/clothing/under/wardt = 50, + /obj/item/clothing/under/kilt = 50, + /obj/item/clothing/under/fluff/latexmaid = 50, + /obj/item/clothing/under/dress/lilacdress = 50, + /obj/item/clothing/under/dress/white2 = 50, + /obj/item/clothing/under/dress/white4 = 50, + /obj/item/clothing/under/dress/maid = 50, + /obj/item/clothing/under/dress/maid/sexy = 50, + /obj/item/clothing/under/dress/maid/janitor = 50, + /obj/item/clothing/under/moderncoat = 50, + /obj/item/clothing/under/permit = 50, + /obj/item/clothing/under/oldwoman = 50, + /obj/item/clothing/under/frontier = 50, + /obj/item/clothing/under/mbill = 50, + /obj/item/clothing/under/pants/baggy/ = 50, + /obj/item/clothing/under/pants/baggy/classicjeans = 50, + /obj/item/clothing/under/pants/baggy/mustangjeans = 50, + /obj/item/clothing/under/pants/baggy/blackjeans = 50, + /obj/item/clothing/under/pants/baggy/greyjeans = 50, + /obj/item/clothing/under/pants/baggy/youngfolksjeans = 50, + /obj/item/clothing/under/pants/baggy/white = 50, + /obj/item/clothing/under/pants/baggy/red = 50, + /obj/item/clothing/under/pants/baggy/black = 50, + /obj/item/clothing/under/pants/baggy/tan = 50, + /obj/item/clothing/under/pants/baggy/track = 50, + /obj/item/clothing/under/pants/baggy/khaki = 50, + /obj/item/clothing/under/pants/baggy/camo = 50, + /obj/item/clothing/under/pants/utility/ = 50, + /obj/item/clothing/under/pants/utility/orange = 50, + /obj/item/clothing/under/pants/utility/blue = 50, + /obj/item/clothing/under/pants/utility/white = 50, + /obj/item/clothing/under/pants/utility/red = 50, + /obj/item/clothing/under/pants/chaps = 50, + /obj/item/clothing/under/pants/chaps/black = 50, + /obj/item/clothing/under/pants/track = 50, + /obj/item/clothing/under/pants/track/red = 50, + /obj/item/clothing/under/pants/track/white = 50, + /obj/item/clothing/under/pants/track/green = 50, + /obj/item/clothing/under/pants/track/blue = 50, + /obj/item/clothing/under/pants/yogapants = 50, + /obj/item/clothing/under/ascetic = 50, + /obj/item/clothing/under/dress/white3 = 50, + /obj/item/clothing/under/skirt/pleated = 50, + /obj/item/clothing/under/dress/darkred = 50, + /obj/item/clothing/under/dress/redeveninggown = 50, + /obj/item/clothing/under/dress/red_swept_dress = 50, + /obj/item/clothing/under/dress/sailordress = 50, + /obj/item/clothing/under/dress/sari = 50, + /obj/item/clothing/under/dress/sari/green = 50, + /obj/item/clothing/under/dress/qipao = 50, + /obj/item/clothing/under/dress/qipao/red = 50, + /obj/item/clothing/under/dress/qipao/white = 50, + /obj/item/clothing/under/shorts/red = 50, + /obj/item/clothing/under/shorts/green = 50, + /obj/item/clothing/under/shorts/blue = 50, + /obj/item/clothing/under/shorts/black = 50, + /obj/item/clothing/under/shorts/grey = 50, + /obj/item/clothing/under/shorts/white = 50, + /obj/item/clothing/under/shorts/jeans = 50, + /obj/item/clothing/under/shorts/jeans/ = 50, + /obj/item/clothing/under/shorts/jeans/classic = 50, + /obj/item/clothing/under/shorts/jeans/mustang = 50, + /obj/item/clothing/under/shorts/jeans/youngfolks = 50, + /obj/item/clothing/under/shorts/jeans/black = 50, + /obj/item/clothing/under/shorts/jeans/grey = 50, + /obj/item/clothing/under/shorts/khaki/ = 50, + /obj/item/clothing/under/skirt/loincloth = 50, + /obj/item/clothing/under/skirt/khaki = 50, + /obj/item/clothing/under/skirt/blue = 50, + /obj/item/clothing/under/skirt/red = 50, + /obj/item/clothing/under/skirt/denim = 50, + /obj/item/clothing/under/skirt/pleated = 50, + /obj/item/clothing/under/skirt/outfit/plaid_blue = 50, + /obj/item/clothing/under/skirt/outfit/plaid_red = 50, + /obj/item/clothing/under/skirt/outfit/plaid_purple = 50, + /obj/item/clothing/under/overalls/sleek = 50, + /obj/item/clothing/under/sl_suit = 50, + /obj/item/clothing/under/gentlesuit = 50, + /obj/item/clothing/under/gentlesuit/skirt = 50, + /obj/item/clothing/under/suit_jacket = 50, + /obj/item/clothing/under/suit_jacket/really_black/skirt = 50, + /obj/item/clothing/under/suit_jacket/really_black = 50, + /obj/item/clothing/under/suit_jacket/female/skirt = 50, + /obj/item/clothing/under/suit_jacket/female/ = 50, + /obj/item/clothing/under/suit_jacket/red = 50, + /obj/item/clothing/under/suit_jacket/red/skirt = 50, + /obj/item/clothing/under/suit_jacket/charcoal = 50, + /obj/item/clothing/under/suit_jacket/charcoal/skirt = 50, + /obj/item/clothing/under/suit_jacket/navy = 50, + /obj/item/clothing/under/suit_jacket/navy/skirt = 50, + /obj/item/clothing/under/suit_jacket/burgundy = 50, + /obj/item/clothing/under/suit_jacket/burgundy/skirt = 50, + /obj/item/clothing/under/suit_jacket/checkered = 50, + /obj/item/clothing/under/suit_jacket/checkered/skirt = 50, + /obj/item/clothing/under/suit_jacket/tan = 50, + /obj/item/clothing/under/suit_jacket/tan/skirt = 50, + /obj/item/clothing/under/scratch = 50, + /obj/item/clothing/under/scratch/skirt = 50, + /obj/item/clothing/under/sundress = 50, + /obj/item/clothing/under/sundress_white = 50, + /obj/item/clothing/under/rank/psych/turtleneck/sweater = 50, + /obj/item/weapon/storage/box/fluff/swimsuit = 50, + /obj/item/weapon/storage/box/fluff/swimsuit/blue = 50, + /obj/item/weapon/storage/box/fluff/swimsuit/purple = 50, + /obj/item/weapon/storage/box/fluff/swimsuit/green = 50, + /obj/item/weapon/storage/box/fluff/swimsuit/red = 50, + /obj/item/weapon/storage/box/fluff/swimsuit/white = 50, + /obj/item/weapon/storage/box/fluff/swimsuit/earth = 50, + /obj/item/weapon/storage/box/fluff/swimsuit/engineering = 50, + /obj/item/weapon/storage/box/fluff/swimsuit/science = 50, + /obj/item/weapon/storage/box/fluff/swimsuit/security = 50, + /obj/item/weapon/storage/box/fluff/swimsuit/medical = 50, + /obj/item/clothing/under/utility = 50, + /obj/item/clothing/under/utility/grey = 50, + /obj/item/clothing/under/utility/blue = 50, + /obj/item/clothing/under/fluff/v_nanovest = 50, + /obj/item/clothing/under/dress/westernbustle = 50, + /obj/item/clothing/under/wedding/bride_white = 50, + /obj/item/weapon/storage/backpack/ = 50, + /obj/item/weapon/storage/backpack/messenger = 50, + /obj/item/weapon/storage/backpack/satchel = 50) + premium = list(/obj/item/clothing/under/color/rainbow = 1) + contraband = list(/obj/item/clothing/under/rank/clown = 1) + +/obj/machinery/vending/loadout/gadget + name = "Chips Co." + desc = "A special vendor for devices and gadgets." + product_ads = "You can't RESIST our great deals!;Feeling disconnected? We have a gadget for you!;You know you have the capacity to buy our capacitors!;FILL THAT HOLE IN YOUR HEART WITH OUR PLASTIC DISTRACTIONS!!!;Devices for everyone! Chips Co.!;ROBUST INVENTORY, GREAT PRICES! ;DON'T FORGET THE oyPAD 13s PRO! ON SALE NOW, ONLY ONE THOUSAND THALERS!" + icon_state = "gadgets" + vend_delay = 11 + products = list(/obj/item/clothing/suit/circuitry = 1, + /obj/item/clothing/head/circuitry = 1, + /obj/item/clothing/shoes/circuitry = 1, + /obj/item/clothing/gloves/circuitry = 1, + /obj/item/clothing/under/circuitry = 1, + /obj/item/clothing/glasses/circuitry = 1, + /obj/item/clothing/ears/circuitry = 1, + /obj/item/device/text_to_speech = 5, + /obj/item/device/paicard = 5, + /obj/item/device/communicator = 10, + /obj/item/device/communicator/watch = 10, + /obj/item/device/radio = 10, + /obj/item/device/camera = 5, + /obj/item/device/taperecorder = 5, + /obj/item/modular_computer/tablet/preset/custom_loadout/cheap = 5, + /obj/item/device/pda = 10, + /obj/item/device/radio/headset = 10, + /obj/item/device/flashlight = 5, + /obj/item/device/laser_pointer = 3, + /obj/item/clothing/glasses/omnihud = 10) + prices = list(/obj/item/clothing/suit/circuitry = 100, + /obj/item/clothing/head/circuitry = 100, + /obj/item/clothing/shoes/circuitry = 100, + /obj/item/clothing/gloves/circuitry = 100, + /obj/item/clothing/under/circuitry = 100, + /obj/item/clothing/glasses/circuitry = 100, + /obj/item/clothing/ears/circuitry = 100, + /obj/item/device/text_to_speech = 300, + /obj/item/device/paicard = 100, + /obj/item/device/communicator = 100, + /obj/item/device/communicator/watch = 100, + /obj/item/device/radio = 100, + /obj/item/device/camera = 100, + /obj/item/device/taperecorder = 100, + /obj/item/modular_computer/tablet/preset/custom_loadout/cheap = 1000, + /obj/item/device/pda = 50, + /obj/item/device/radio/headset = 50, + /obj/item/device/flashlight = 100, + /obj/item/device/laser_pointer = 200, + /obj/item/clothing/glasses/omnihud = 100) + premium = list(/obj/item/device/perfect_tele/one_beacon = 1) + contraband = list(/obj/item/weapon/disk/nifsoft/compliance = 1) + +/obj/machinery/vending/loadout/loadout_misc + name = "Bits and Bobs" + desc = "A special vendor for things and also stuff!" + product_ads = "You never know when you might need an umbrella.;Hey kid... want some cardemon cards?;Miscellaneous for your miscellaneous heart.;Who's bob? Wouldn't you like to know.;I'm sorry there's no grappling hooks in our umbrellas.;We sell things AND stuff." + icon_state = "loadout_misc" + products = list(/obj/item/weapon/cane = 5, + /obj/item/weapon/pack/cardemon = 25, + /obj/item/weapon/deck/holder = 5, + /obj/item/weapon/deck/cah = 5, + /obj/item/weapon/deck/cah/black = 5, + /obj/item/weapon/deck/tarot = 5, + /obj/item/weapon/deck/cards = 5, + /obj/item/weapon/pack/spaceball = 10, + /obj/item/weapon/storage/pill_bottle/dice = 5, + /obj/item/weapon/storage/pill_bottle/dice_nerd = 5, + /obj/item/weapon/melee/umbrella/random = 10) + prices = list(/obj/item/weapon/cane = 100, + /obj/item/weapon/pack/cardemon = 100, + /obj/item/weapon/deck/holder = 100, + /obj/item/weapon/deck/cah = 100, + /obj/item/weapon/deck/cah/black = 100, + /obj/item/weapon/deck/tarot = 100, + /obj/item/weapon/deck/cards = 100, + /obj/item/weapon/pack/spaceball = 100, + /obj/item/weapon/storage/pill_bottle/dice = 100, + /obj/item/weapon/storage/pill_bottle/dice_nerd = 100, + /obj/item/weapon/melee/umbrella/random = 100) + premium = list(/obj/item/toy/bosunwhistle = 1) + contraband = list(/obj/item/toy/katana = 1) + +/obj/machinery/vending/loadout/overwear + name = "Big D's Best" + desc = "A special vendor using compressed matter cartridges to store large amounts of overwear!" + product_ads = "Dress your best! It's what big D would want.;Overwear for all occasions!;Big D has what you need if what you need is some form of jacket!;Need a new hoodie? Bid D has you covered.;Big D says you need a new suit!;Big D smiles when he sees you in one of his coats!" + icon_state = "suit" + vend_delay = 16 + products = list(/obj/item/clothing/suit/storage/apron = 5, + /obj/item/clothing/suit/storage/flannel/aqua = 5, + /obj/item/clothing/suit/storage/toggle/bomber = 5, + /obj/item/clothing/suit/storage/bomber/alt = 5, + /obj/item/clothing/suit/storage/flannel/brown = 5, + /obj/item/clothing/suit/storage/toggle/cardigan = 5, + /obj/item/clothing/accessory/poncho/roles/cloak/custom = 5, + /obj/item/clothing/suit/storage/duster = 5, + /obj/item/clothing/suit/storage/toggle/denim_jacket = 5, + /obj/item/clothing/suit/storage/toggle/denim_jacket/nanotrasen = 5, + /obj/item/clothing/suit/storage/toggle/denim_jacket/sleeveless = 5, + /obj/item/clothing/suit/storage/toggle/denim_jacket/nanotrasen/sleeveless = 5, + /obj/item/clothing/suit/storage/fluff/gntop = 5, + /obj/item/clothing/suit/greatcoat = 5, + /obj/item/clothing/suit/storage/flannel = 5, + /obj/item/clothing/suit/storage/greyjacket = 5, + /obj/item/clothing/suit/storage/hazardvest = 5, + /obj/item/clothing/suit/storage/toggle/hoodie/black = 5, + /obj/item/clothing/suit/storage/toggle/hoodie/red = 5, + /obj/item/clothing/suit/storage/toggle/hoodie/blue = 5, + /obj/item/clothing/suit/storage/toggle/hoodie/green = 5, + /obj/item/clothing/suit/storage/toggle/hoodie/orange = 5, + /obj/item/clothing/suit/storage/toggle/hoodie/yellow = 5, + /obj/item/clothing/suit/storage/toggle/hoodie/cti = 5, + /obj/item/clothing/suit/storage/toggle/hoodie/mu = 5, + /obj/item/clothing/suit/storage/toggle/hoodie/nt = 5, + /obj/item/clothing/suit/storage/toggle/hoodie/smw = 5, + /obj/item/clothing/suit/storage/toggle/hoodie/nrti = 5, + /obj/item/clothing/suit/storage/fluff/jacket/field = 5, + /obj/item/clothing/suit/storage/fluff/jacket/air_cavalry = 5, + /obj/item/clothing/suit/storage/fluff/jacket/air_force = 5, + /obj/item/clothing/suit/storage/fluff/jacket/navy = 5, + /obj/item/clothing/suit/storage/fluff/jacket/special_forces = 5, + /obj/item/clothing/suit/kamishimo = 5, + /obj/item/clothing/suit/kimono = 5, + /obj/item/clothing/suit/storage/toggle/labcoat = 5, + /obj/item/clothing/suit/storage/toggle/labcoat/blue = 5, + /obj/item/clothing/suit/storage/toggle/labcoat/blue_edge = 5, + /obj/item/clothing/suit/storage/toggle/labcoat/green = 5, + /obj/item/clothing/suit/storage/toggle/labcoat/orange = 5, + /obj/item/clothing/suit/storage/toggle/labcoat/pink = 5, + /obj/item/clothing/suit/storage/toggle/labcoat/red = 5, + /obj/item/clothing/suit/storage/toggle/labcoat/yellow = 5, + /obj/item/clothing/suit/leathercoat = 5, + /obj/item/clothing/suit/storage/toggle/leather_jacket = 5, + /obj/item/clothing/suit/storage/leather_jacket_alt = 5, + /obj/item/clothing/suit/storage/toggle/brown_jacket = 5, + /obj/item/clothing/suit/storage/toggle/leather_jacket/nanotrasen = 5, + /obj/item/clothing/suit/storage/toggle/brown_jacket/nanotrasen = 5, + /obj/item/clothing/suit/storage/toggle/leather_jacket/sleeveless = 5, + /obj/item/clothing/suit/storage/toggle/brown_jacket/sleeveless = 5, + /obj/item/clothing/suit/storage/toggle/leather_jacket/nanotrasen/sleeveless = 5, + /obj/item/clothing/suit/storage/toggle/brown_jacket/nanotrasen/sleeveless = 5, + /obj/item/clothing/suit/storage/miljacket = 5, + /obj/item/clothing/suit/storage/miljacket/alt = 5, + /obj/item/clothing/suit/storage/miljacket/green = 5, + /obj/item/clothing/suit/storage/apron/overalls = 5, + /obj/item/clothing/suit/storage/toggle/peacoat = 5, + /obj/item/clothing/accessory/poncho = 5, + /obj/item/clothing/accessory/poncho/green = 5, + /obj/item/clothing/accessory/poncho/red = 5, + /obj/item/clothing/accessory/poncho/purple = 5, + /obj/item/clothing/accessory/poncho/blue = 5, + /obj/item/clothing/suit/jacket/puffer = 5, + /obj/item/clothing/suit/jacket/puffer/vest = 5, + /obj/item/clothing/suit/storage/flannel/red = 5, + /obj/item/clothing/suit/unathi/robe = 5, + /obj/item/clothing/suit/storage/snowsuit = 5, + /obj/item/clothing/suit/storage/toggle/internalaffairs = 5, + /obj/item/clothing/suit/storage/toggle/lawyer/bluejacket = 5, + /obj/item/clothing/suit/storage/toggle/lawyer/purpjacket = 5, + /obj/item/clothing/suit/suspenders = 5, + /obj/item/clothing/suit/storage/toggle/track = 5, + /obj/item/clothing/suit/storage/toggle/track/blue = 5, + /obj/item/clothing/suit/storage/toggle/track/green = 5, + /obj/item/clothing/suit/storage/toggle/track/red = 5, + /obj/item/clothing/suit/storage/toggle/track/white = 5, + /obj/item/clothing/suit/storage/trench = 5, + /obj/item/clothing/suit/storage/trench/grey = 5, + /obj/item/clothing/suit/varsity = 5, + /obj/item/clothing/suit/varsity/red = 5, + /obj/item/clothing/suit/varsity/purple = 5, + /obj/item/clothing/suit/varsity/green = 5, + /obj/item/clothing/suit/varsity/blue = 5, + /obj/item/clothing/suit/varsity/brown = 5, + /obj/item/clothing/suit/storage/hooded/wintercoat = 5, + /obj/item/clothing/suit/storage/seromi/cloak/standard/white_grey = 5) + prices = list(/obj/item/clothing/suit/storage/apron = 100, + /obj/item/clothing/suit/storage/flannel/aqua = 100, + /obj/item/clothing/suit/storage/toggle/bomber = 100, + /obj/item/clothing/suit/storage/bomber/alt = 100, + /obj/item/clothing/suit/storage/flannel/brown = 100, + /obj/item/clothing/suit/storage/toggle/cardigan = 100, + /obj/item/clothing/accessory/poncho/roles/cloak/custom = 100, + /obj/item/clothing/suit/storage/duster = 100, + /obj/item/clothing/suit/storage/toggle/denim_jacket = 100, + /obj/item/clothing/suit/storage/toggle/denim_jacket/nanotrasen = 100, + /obj/item/clothing/suit/storage/toggle/denim_jacket/sleeveless = 100, + /obj/item/clothing/suit/storage/toggle/denim_jacket/nanotrasen/sleeveless = 100, + /obj/item/clothing/suit/storage/fluff/gntop = 100, + /obj/item/clothing/suit/greatcoat = 100, + /obj/item/clothing/suit/storage/flannel = 100, + /obj/item/clothing/suit/storage/greyjacket = 100, + /obj/item/clothing/suit/storage/hazardvest = 100, + /obj/item/clothing/suit/storage/toggle/hoodie/black = 100, + /obj/item/clothing/suit/storage/toggle/hoodie/red = 100, + /obj/item/clothing/suit/storage/toggle/hoodie/blue = 100, + /obj/item/clothing/suit/storage/toggle/hoodie/green = 100, + /obj/item/clothing/suit/storage/toggle/hoodie/orange = 100, + /obj/item/clothing/suit/storage/toggle/hoodie/yellow = 100, + /obj/item/clothing/suit/storage/toggle/hoodie/cti = 100, + /obj/item/clothing/suit/storage/toggle/hoodie/mu = 100, + /obj/item/clothing/suit/storage/toggle/hoodie/nt = 100, + /obj/item/clothing/suit/storage/toggle/hoodie/smw = 100, + /obj/item/clothing/suit/storage/toggle/hoodie/nrti = 100, + /obj/item/clothing/suit/storage/fluff/jacket/field = 100, + /obj/item/clothing/suit/storage/fluff/jacket/air_cavalry = 100, + /obj/item/clothing/suit/storage/fluff/jacket/air_force = 100, + /obj/item/clothing/suit/storage/fluff/jacket/navy = 100, + /obj/item/clothing/suit/storage/fluff/jacket/special_forces = 100, + /obj/item/clothing/suit/kamishimo = 100, + /obj/item/clothing/suit/kimono = 100, + /obj/item/clothing/suit/storage/toggle/labcoat = 100, + /obj/item/clothing/suit/storage/toggle/labcoat/blue = 100, + /obj/item/clothing/suit/storage/toggle/labcoat/blue_edge = 100, + /obj/item/clothing/suit/storage/toggle/labcoat/green = 100, + /obj/item/clothing/suit/storage/toggle/labcoat/orange = 100, + /obj/item/clothing/suit/storage/toggle/labcoat/pink = 100, + /obj/item/clothing/suit/storage/toggle/labcoat/red = 100, + /obj/item/clothing/suit/storage/toggle/labcoat/yellow = 100, + /obj/item/clothing/suit/leathercoat = 100, + /obj/item/clothing/suit/storage/toggle/leather_jacket = 100, + /obj/item/clothing/suit/storage/leather_jacket_alt = 100, + /obj/item/clothing/suit/storage/toggle/brown_jacket = 100, + /obj/item/clothing/suit/storage/toggle/leather_jacket/nanotrasen = 100, + /obj/item/clothing/suit/storage/toggle/brown_jacket/nanotrasen = 100, + /obj/item/clothing/suit/storage/toggle/leather_jacket/sleeveless = 100, + /obj/item/clothing/suit/storage/toggle/brown_jacket/sleeveless = 100, + /obj/item/clothing/suit/storage/toggle/leather_jacket/nanotrasen/sleeveless = 100, + /obj/item/clothing/suit/storage/toggle/brown_jacket/nanotrasen/sleeveless = 100, + /obj/item/clothing/suit/storage/miljacket = 100, + /obj/item/clothing/suit/storage/miljacket/alt = 100, + /obj/item/clothing/suit/storage/miljacket/green = 100, + /obj/item/clothing/suit/storage/apron/overalls = 100, + /obj/item/clothing/suit/storage/toggle/peacoat = 100, + /obj/item/clothing/accessory/poncho = 100, + /obj/item/clothing/accessory/poncho/green = 100, + /obj/item/clothing/accessory/poncho/red = 100, + /obj/item/clothing/accessory/poncho/purple = 100, + /obj/item/clothing/accessory/poncho/blue = 100, + /obj/item/clothing/suit/jacket/puffer = 100, + /obj/item/clothing/suit/jacket/puffer/vest = 100, + /obj/item/clothing/suit/storage/flannel/red = 100, + /obj/item/clothing/suit/unathi/robe = 100, + /obj/item/clothing/suit/storage/snowsuit = 100, + /obj/item/clothing/suit/storage/toggle/internalaffairs = 100, + /obj/item/clothing/suit/storage/toggle/lawyer/bluejacket = 100, + /obj/item/clothing/suit/storage/toggle/lawyer/purpjacket = 100, + /obj/item/clothing/suit/suspenders = 100, + /obj/item/clothing/suit/storage/toggle/track = 100, + /obj/item/clothing/suit/storage/toggle/track/blue = 100, + /obj/item/clothing/suit/storage/toggle/track/green = 100, + /obj/item/clothing/suit/storage/toggle/track/red = 100, + /obj/item/clothing/suit/storage/toggle/track/white = 100, + /obj/item/clothing/suit/storage/trench = 100, + /obj/item/clothing/suit/storage/trench/grey = 100, + /obj/item/clothing/suit/varsity = 100, + /obj/item/clothing/suit/varsity/red = 100, + /obj/item/clothing/suit/varsity/purple = 100, + /obj/item/clothing/suit/varsity/green = 100, + /obj/item/clothing/suit/varsity/blue = 100, + /obj/item/clothing/suit/varsity/brown = 100, + /obj/item/clothing/suit/storage/hooded/wintercoat = 100, + /obj/item/clothing/suit/storage/seromi/cloak/standard/white_grey = 100) + premium = list(/obj/item/clothing/suit/imperium_monk = 3) + contraband = list(/obj/item/toy/katana = 1) + +/obj/machinery/vending/loadout/costume + name = "Thespian's Delight" + desc = "Sometimes nerds need costumes!" + product_ads = "Don't let your art be stifled!;Remember, practice makes perfect!;Break a leg!;Don't make me get the cane!;Thespian's Delight entering stage right!;Costumes for your acting needs!" + icon = 'icons/obj/vending.dmi' + icon_state = "theater" + products = list(/obj/item/clothing/suit/storage/hooded/carp_costume = 3, + /obj/item/clothing/suit/storage/hooded/carp_costume = 3, + /obj/item/clothing/suit/chickensuit = 3, + /obj/item/clothing/head/chicken = 3, + /obj/item/clothing/head/helmet/gladiator = 3, + /obj/item/clothing/under/gladiator = 3, + /obj/item/clothing/suit/storage/toggle/labcoat/mad = 3, + /obj/item/clothing/under/gimmick/rank/captain/suit = 3, + /obj/item/clothing/glasses/gglasses = 3, + /obj/item/clothing/head/flatcap = 3, + /obj/item/clothing/shoes/boots/jackboots = 3, + /obj/item/clothing/under/schoolgirl = 3, + /obj/item/clothing/head/kitty = 3, + /obj/item/clothing/glasses/sunglasses/blindfold = 3, + /obj/item/clothing/head/beret = 3, + /obj/item/clothing/under/skirt = 3, + /obj/item/clothing/under/suit_jacket = 3, + /obj/item/clothing/head/that = 3, + /obj/item/clothing/accessory/wcoat = 3, + /obj/item/clothing/under/scratch = 3, + /obj/item/clothing/shoes/white = 3, + /obj/item/clothing/gloves/white = 3, + /obj/item/clothing/under/kilt = 3, + /obj/item/clothing/glasses/monocle = 3, + /obj/item/clothing/under/sl_suit = 3, + /obj/item/clothing/mask/fakemoustache = 3, + /obj/item/weapon/cane = 3, + /obj/item/clothing/head/bowler = 3, + /obj/item/clothing/head/plaguedoctorhat = 3, + /obj/item/clothing/suit/bio_suit/plaguedoctorsuit = 3, + /obj/item/clothing/mask/gas/plaguedoctor/fluff = 3, + /obj/item/clothing/under/owl = 3, + /obj/item/clothing/mask/gas/owl_mask = 3, + /obj/item/clothing/under/waiter = 3, + /obj/item/clothing/suit/storage/apron = 3, + /obj/item/clothing/under/pirate = 3, + /obj/item/clothing/head/pirate = 3, + /obj/item/clothing/suit/pirate = 3, + /obj/item/clothing/glasses/eyepatch = 3, + /obj/item/clothing/head/ushanka = 3, + /obj/item/clothing/under/soviet = 3, + /obj/item/clothing/suit/imperium_monk = 1, + /obj/item/clothing/suit/holidaypriest = 3, + /obj/item/clothing/head/witchwig = 3, + /obj/item/clothing/under/sundress = 3, + /obj/item/weapon/staff/broom = 3, + /obj/item/clothing/suit/wizrobe/fake = 3, + /obj/item/clothing/head/wizard/fake = 3, + /obj/item/weapon/staff = 3, + /obj/item/clothing/mask/gas/sexyclown = 3, + /obj/item/clothing/under/sexyclown = 3, + /obj/item/clothing/mask/gas/sexymime = 3, + /obj/item/clothing/under/sexymime = 3, + /obj/item/clothing/suit/storage/hooded/knight_costume = 3, + /obj/item/clothing/suit/storage/hooded/knight_costume/galahad = 3, + /obj/item/clothing/suit/storage/hooded/knight_costume/lancelot = 3, + /obj/item/clothing/suit/storage/hooded/knight_costume/robin = 3, + /obj/item/clothing/suit/armor/combat/crusader_costume = 3, + /obj/item/clothing/suit/armor/combat/crusader_costume/bedevere = 3, + /obj/item/clothing/head/helmet/combat/crusader_costume = 3, + /obj/item/clothing/head/helmet/combat/bedevere_costume = 3, + /obj/item/clothing/gloves/combat/knight_costume = 3, + /obj/item/clothing/gloves/combat/knight_costume/brown = 3, + /obj/item/clothing/shoes/knight_costume = 3, + /obj/item/clothing/shoes/knight_costume/black = 3) + prices = list(/obj/item/clothing/suit/storage/hooded/carp_costume = 200, + /obj/item/clothing/suit/storage/hooded/carp_costume = 200, + /obj/item/clothing/suit/chickensuit = 200, + /obj/item/clothing/head/chicken = 200, + /obj/item/clothing/head/helmet/gladiator = 300, + /obj/item/clothing/under/gladiator = 500, + /obj/item/clothing/suit/storage/toggle/labcoat/mad = 200, + /obj/item/clothing/under/gimmick/rank/captain/suit = 200, + /obj/item/clothing/glasses/gglasses = 200, + /obj/item/clothing/head/flatcap = 200, + /obj/item/clothing/shoes/boots/jackboots = 200, + /obj/item/clothing/under/schoolgirl = 200, + /obj/item/clothing/head/kitty = 200, + /obj/item/clothing/glasses/sunglasses/blindfold = 200, + /obj/item/clothing/head/beret = 200, + /obj/item/clothing/under/skirt = 200, + /obj/item/clothing/under/suit_jacket = 200, + /obj/item/clothing/head/that = 200, + /obj/item/clothing/accessory/wcoat = 200, + /obj/item/clothing/under/scratch = 200, + /obj/item/clothing/shoes/white = 200, + /obj/item/clothing/gloves/white = 200, + /obj/item/clothing/under/kilt = 200, + /obj/item/clothing/glasses/monocle = 400, + /obj/item/clothing/under/sl_suit = 200, + /obj/item/clothing/mask/fakemoustache = 200, + /obj/item/weapon/cane = 300, + /obj/item/clothing/head/bowler = 200, + /obj/item/clothing/head/plaguedoctorhat = 300, + /obj/item/clothing/suit/bio_suit/plaguedoctorsuit = 300, + /obj/item/clothing/mask/gas/plaguedoctor/fluff = 600, + /obj/item/clothing/under/owl = 400, + /obj/item/clothing/mask/gas/owl_mask = 400, + /obj/item/clothing/under/waiter = 100, + /obj/item/clothing/suit/storage/apron = 200, + /obj/item/clothing/under/pirate = 300, + /obj/item/clothing/head/pirate = 400, + /obj/item/clothing/suit/pirate = 600, + /obj/item/clothing/glasses/eyepatch = 200, + /obj/item/clothing/head/ushanka = 200, + /obj/item/clothing/under/soviet = 200, + /obj/item/clothing/suit/imperium_monk = 2000, + /obj/item/clothing/suit/holidaypriest = 200, + /obj/item/clothing/head/witchwig = 200, + /obj/item/clothing/under/sundress = 50, + /obj/item/weapon/staff/broom = 400, + /obj/item/clothing/suit/wizrobe/fake = 200, + /obj/item/clothing/head/wizard/fake = 200, + /obj/item/weapon/staff = 400, + /obj/item/clothing/mask/gas/sexyclown = 600, + /obj/item/clothing/under/sexyclown = 200, + /obj/item/clothing/mask/gas/sexymime = 600, + /obj/item/clothing/under/sexymime = 200, + /obj/item/clothing/suit/storage/hooded/knight_costume = 200, + /obj/item/clothing/suit/storage/hooded/knight_costume/galahad = 200, + /obj/item/clothing/suit/storage/hooded/knight_costume/lancelot = 200, + /obj/item/clothing/suit/storage/hooded/knight_costume/robin = 200, + /obj/item/clothing/suit/armor/combat/crusader_costume = 200, + /obj/item/clothing/suit/armor/combat/crusader_costume/bedevere = 200, + /obj/item/clothing/head/helmet/combat/crusader_costume = 200, + /obj/item/clothing/head/helmet/combat/bedevere_costume = 200, + /obj/item/clothing/gloves/combat/knight_costume = 200, + /obj/item/clothing/gloves/combat/knight_costume/brown = 200, + /obj/item/clothing/shoes/knight_costume = 200, + /obj/item/clothing/shoes/knight_costume/black = 200) + premium = list(/obj/item/clothing/suit/imperium_monk = 3, + /obj/item/clothing/suit/barding/agatha = 2, + /obj/item/clothing/suit/barding/alt_agatha = 2, + /obj/item/clothing/suit/barding/mason = 2, + /obj/item/clothing/suit/drake_cloak = 2) + contraband = list(/obj/item/clothing/head/syndicatefake = 1, + /obj/item/clothing/suit/syndicatefake = 1) + +/obj/machinery/vending/entertainer + name = "Thespian's Delight" + desc = "Sometimes nerds need costumes!" + product_ads = "Don't let your art be stifled!;Remember, practice makes perfect!;Break a leg!;Don't make me get the cane!;Thespian's Delight entering stage right!;Costumes for your acting needs!" + icon = 'icons/obj/vending.dmi' + icon_state = "theater" + products = list(/obj/item/device/radio/headset = 5, + /obj/item/weapon/storage/backpack/ = 5, + /obj/item/weapon/storage/backpack/messenger = 5, + /obj/item/weapon/storage/backpack/satchel = 5, + /obj/item/clothing/under/color = 5, + /obj/item/clothing/under/color/aqua = 5, + /obj/item/clothing/under/color/black = 5, + /obj/item/clothing/under/color/blackjumpskirt = 5, + /obj/item/clothing/under/color/blue = 5, + /obj/item/clothing/under/color/brown = 5, + /obj/item/clothing/under/color/green = 5, + /obj/item/clothing/under/color/grey = 5, + /obj/item/clothing/under/color/orange = 5, + /obj/item/clothing/under/color/pink = 5, + /obj/item/clothing/under/color/red = 5, + /obj/item/clothing/under/color/white = 5, + /obj/item/clothing/under/color/yellow = 5, + /obj/item/clothing/shoes/black = 5, + /obj/item/clothing/shoes/white = 5, + /obj/item/clothing/suit/storage/hooded/carp_costume = 3, + /obj/item/clothing/suit/storage/hooded/carp_costume = 3, + /obj/item/clothing/suit/chickensuit = 3, + /obj/item/clothing/head/chicken = 3, + /obj/item/clothing/head/helmet/gladiator = 3, + /obj/item/clothing/under/gladiator = 3, + /obj/item/clothing/suit/storage/toggle/labcoat/mad = 3, + /obj/item/clothing/under/gimmick/rank/captain/suit = 3, + /obj/item/clothing/glasses/gglasses = 3, + /obj/item/clothing/head/flatcap = 3, + /obj/item/clothing/shoes/boots/jackboots = 3, + /obj/item/clothing/under/schoolgirl = 3, + /obj/item/clothing/head/kitty = 3, + /obj/item/clothing/glasses/sunglasses/blindfold = 3, + /obj/item/clothing/head/beret = 3, + /obj/item/clothing/under/skirt = 3, + /obj/item/clothing/under/suit_jacket = 3, + /obj/item/clothing/head/that = 3, + /obj/item/clothing/accessory/wcoat = 3, + /obj/item/clothing/under/scratch = 3, + /obj/item/clothing/shoes/white = 3, + /obj/item/clothing/gloves/white = 3, + /obj/item/clothing/under/kilt = 3, + /obj/item/clothing/glasses/monocle = 3, + /obj/item/clothing/under/sl_suit = 3, + /obj/item/clothing/mask/fakemoustache = 3, + /obj/item/weapon/cane = 3, + /obj/item/clothing/head/bowler = 3, + /obj/item/clothing/head/plaguedoctorhat = 3, + /obj/item/clothing/suit/bio_suit/plaguedoctorsuit = 3, + /obj/item/clothing/mask/gas/plaguedoctor/fluff = 3, + /obj/item/clothing/under/owl = 3, + /obj/item/clothing/mask/gas/owl_mask = 3, + /obj/item/clothing/under/waiter = 3, + /obj/item/clothing/suit/storage/apron = 3, + /obj/item/clothing/under/pirate = 3, + /obj/item/clothing/head/pirate = 3, + /obj/item/clothing/suit/pirate = 3, + /obj/item/clothing/glasses/eyepatch = 3, + /obj/item/clothing/head/ushanka = 3, + /obj/item/clothing/under/soviet = 3, + /obj/item/clothing/suit/imperium_monk = 1, + /obj/item/clothing/suit/holidaypriest = 3, + /obj/item/clothing/head/witchwig = 3, + /obj/item/clothing/under/sundress = 3, + /obj/item/weapon/staff/broom = 3, + /obj/item/clothing/suit/wizrobe/fake = 3, + /obj/item/clothing/head/wizard/fake = 3, + /obj/item/weapon/staff = 3, + /obj/item/clothing/mask/gas/sexyclown = 3, + /obj/item/clothing/under/sexyclown = 3, + /obj/item/clothing/mask/gas/sexymime = 3, + /obj/item/clothing/under/sexymime = 3, + /obj/item/clothing/suit/storage/hooded/knight_costume = 3, + /obj/item/clothing/suit/storage/hooded/knight_costume/galahad = 3, + /obj/item/clothing/suit/storage/hooded/knight_costume/lancelot = 3, + /obj/item/clothing/suit/storage/hooded/knight_costume/robin = 3, + /obj/item/clothing/suit/armor/combat/crusader_costume = 3, + /obj/item/clothing/suit/armor/combat/crusader_costume/bedevere = 3, + /obj/item/clothing/head/helmet/combat/crusader_costume = 3, + /obj/item/clothing/head/helmet/combat/bedevere_costume = 3, + /obj/item/clothing/gloves/combat/knight_costume = 3, + /obj/item/clothing/gloves/combat/knight_costume/brown = 3, + /obj/item/clothing/shoes/knight_costume = 3, + /obj/item/clothing/shoes/knight_costume/black = 3) + + +/obj/machinery/vending/event //FOR FACILITATING AND EQUIPPING EVENTS, DO NOT PLACE ON THE NORMAL MAP// + name = "Fingers and Toes" + desc = "A special vendor for gloves and shoes!" + product_ads = "Do you have fingers and toes? COVER THEM UP!;Show me your toes! Wait. NO DON'T! BUY NEW SHOES!;Don't leave prints, BUY SOME GLOVES!;Remember to check your shoes for micros! You don't have to let them out, but just check for them!;Fingers and Toes is not liable for micro entrapment or abuse under the feet of our patrons.!;This little piggy went WE WE WE all the way down to FINGERS AND TOES to pick up some sweet new gloves and shoes." + icon = 'icons/obj/vending_vr.dmi' + icon_state = "glovesnshoes" + products = list(/obj/item/clothing/gloves/evening = 10, + /obj/item/clothing/gloves/fingerless = 10, + /obj/item/clothing/gloves/black = 10, + /obj/item/clothing/gloves/blue = 10, + /obj/item/clothing/gloves/brown = 10, + /obj/item/clothing/gloves/color = 10, + /obj/item/clothing/gloves/green = 10, + /obj/item/clothing/gloves/grey = 10, + /obj/item/clothing/gloves/sterile/latex = 10, + /obj/item/clothing/gloves/light_brown = 10, + /obj/item/clothing/gloves/sterile/nitrile = 10, + /obj/item/clothing/gloves/orange = 10, + /obj/item/clothing/gloves/purple = 10, + /obj/item/clothing/gloves/red = 10, + /obj/item/clothing/gloves/fluff/siren = 10, + /obj/item/clothing/gloves/white = 10, + /obj/item/clothing/gloves/duty = 10, + /obj/item/clothing/shoes/athletic = 10, + /obj/item/clothing/shoes/boots/fluff/siren = 10, + /obj/item/clothing/shoes/slippers = 10, + /obj/item/clothing/shoes/boots/cowboy/classic = 10, + /obj/item/clothing/shoes/boots/cowboy = 10, + /obj/item/clothing/shoes/boots/duty = 10, + /obj/item/clothing/shoes/flats/white/color = 10, + /obj/item/clothing/shoes/flipflop = 10, + /obj/item/clothing/shoes/heels = 10, + /obj/item/clothing/shoes/hitops/black = 10, + /obj/item/clothing/shoes/hitops/blue = 10, + /obj/item/clothing/shoes/hitops/green = 10, + /obj/item/clothing/shoes/hitops/orange = 10, + /obj/item/clothing/shoes/hitops/purple = 10, + /obj/item/clothing/shoes/hitops/red = 10, + /obj/item/clothing/shoes/flats/white/color = 10, + /obj/item/clothing/shoes/hitops/yellow = 10, + /obj/item/clothing/shoes/boots/jackboots = 10, + /obj/item/clothing/shoes/boots/jungle = 10, + /obj/item/clothing/shoes/black/cuffs = 10, + /obj/item/clothing/shoes/black/cuffs/blue = 10, + /obj/item/clothing/shoes/black/cuffs/red = 10, + /obj/item/clothing/shoes/sandal = 10, + /obj/item/clothing/shoes/black = 10, + /obj/item/clothing/shoes/blue = 10, + /obj/item/clothing/shoes/brown = 10, + /obj/item/clothing/shoes/laceup = 10, + /obj/item/clothing/shoes/green = 10, + /obj/item/clothing/shoes/laceup/brown = 10, + /obj/item/clothing/shoes/orange = 10, + /obj/item/clothing/shoes/purple = 10, + /obj/item/clothing/shoes/red = 10, + /obj/item/clothing/shoes/white = 10, + /obj/item/clothing/shoes/yellow = 10, + /obj/item/clothing/shoes/skater = 10, + /obj/item/clothing/shoes/boots/cowboy/snakeskin = 10, + /obj/item/clothing/shoes/boots/jackboots/toeless = 10, + /obj/item/clothing/shoes/boots/workboots/toeless = 10, + /obj/item/clothing/shoes/boots/winter = 10, + /obj/item/clothing/shoes/boots/workboots = 10, + /obj/item/clothing/shoes/footwraps = 10, + /obj/item/clothing/gloves/rainbow = 10, + /obj/item/clothing/shoes/rainbow = 10, + /obj/item/clothing/shoes/syndigaloshes = 10, + /obj/item/clothing/shoes/clown_shoes = 10) + +/obj/machinery/vending/event/uniform //FOR FACILITATING AND EQUIPPING EVENTS, DO NOT PLACE ON THE NORMAL MAP// + name = "The Basics" + desc = "A vendor using compressed matter cartridges to store large amounts of basic station uniforms." + product_ads = "Don't get caught naked!;Pick up your uniform!;Using compressed matter cartridges and VERY ETHICAL labor practices, we bring you the uniforms you need!;No uniform? No problem!;We've got your covered!;The Basics is not responsible for being crushed under the amount of things inside our machines. DO NOT VEND IN EXCESS!!" + icon_state = "loadout" + vend_delay = 16 + products = list(/obj/item/device/pda = 50, + /obj/item/device/radio/headset = 50, + /obj/item/device/radio = 50, + /obj/item/weapon/storage/backpack/ = 10, + /obj/item/weapon/storage/backpack/messenger = 10, + /obj/item/weapon/storage/backpack/satchel = 10, + /obj/item/clothing/under/color = 10, + /obj/item/clothing/under/color/aqua = 10, + /obj/item/clothing/under/color/black = 10, + /obj/item/clothing/under/color/blackjumpskirt = 10, + /obj/item/clothing/under/color/blue = 10, + /obj/item/clothing/under/color/brown = 10, + /obj/item/clothing/under/color/green = 10, + /obj/item/clothing/under/color/grey = 10, + /obj/item/clothing/under/color/orange = 10, + /obj/item/clothing/under/color/pink = 10, + /obj/item/clothing/under/color/red = 10, + /obj/item/clothing/under/color/white = 10, + /obj/item/clothing/under/color/yellow = 10, + /obj/item/clothing/shoes/black = 20, + /obj/item/clothing/shoes/white = 20) + prices = list() + +/obj/machinery/vending/event/accessory //FOR FACILITATING AND EQUIPPING EVENTS, DO NOT PLACE ON THE NORMAL MAP// + name = "Looty Inc." + desc = "A special vendor for accessories." + product_ads = "Want shinies? We have the shinies.;Need that special something to complete your outfit? We have what you need!;Ditch that old dull dangly something you've got and pick up one of our shinies!;Bracelets, collars, scarfs rings and more! We have the fancy things you need!;Does your pet need a collar? We don't judge! Keep them in line with one of one of ours!;Top of the line materials! 'Hand crafted' goods!" + icon_state = "accessory" + vend_delay = 6 + products = list(/obj/item/clothing/accessory = 5, + /obj/item/clothing/accessory/armband/med/color = 10, + /obj/item/clothing/accessory/asymmetric = 5, + /obj/item/clothing/accessory/asymmetric/purple = 5, + /obj/item/clothing/accessory/asymmetric/green = 5, + /obj/item/clothing/accessory/bracelet = 5, + /obj/item/clothing/accessory/bracelet/material = 5, + /obj/item/clothing/accessory/bracelet/friendship = 5, + /obj/item/clothing/accessory/chaps = 5, + /obj/item/clothing/accessory/chaps/black = 5, + /obj/item/weapon/storage/briefcase/clutch = 1, + /obj/item/clothing/accessory/collar = 5, + /obj/item/clothing/accessory/collar/bell = 5, + /obj/item/clothing/accessory/collar/spike = 5, + /obj/item/clothing/accessory/collar/pink = 5, + /obj/item/clothing/accessory/collar/holo = 5, + /obj/item/clothing/accessory/collar/shock = 5, + /obj/item/weapon/storage/belt/fannypack = 1, + /obj/item/weapon/storage/belt/fannypack/white = 5, + /obj/item/clothing/accessory/fullcape = 5, + /obj/item/clothing/accessory/halfcape = 5, + /obj/item/clothing/accessory/hawaii = 5, + /obj/item/clothing/accessory/hawaii/random = 5, + /obj/item/clothing/accessory/locket = 5, + /obj/item/weapon/storage/backpack/purse = 1, + /obj/item/clothing/accessory/sash = 5, + /obj/item/clothing/accessory/scarf = 5, + /obj/item/clothing/accessory/scarf/red = 5, + /obj/item/clothing/accessory/scarf/darkblue = 5, + /obj/item/clothing/accessory/scarf/purple = 5, + /obj/item/clothing/accessory/scarf/yellow = 5, + /obj/item/clothing/accessory/scarf/orange = 5, + /obj/item/clothing/accessory/scarf/lightblue = 5, + /obj/item/clothing/accessory/scarf/white = 5, + /obj/item/clothing/accessory/scarf/black = 5, + /obj/item/clothing/accessory/scarf/zebra = 5, + /obj/item/clothing/accessory/scarf/christmas = 5, + /obj/item/clothing/accessory/scarf/stripedred = 5, + /obj/item/clothing/accessory/scarf/stripedgreen = 5, + /obj/item/clothing/accessory/scarf/stripedblue = 5, + /obj/item/clothing/accessory/jacket = 5, + /obj/item/clothing/accessory/jacket/checkered = 5, + /obj/item/clothing/accessory/jacket/burgundy = 5, + /obj/item/clothing/accessory/jacket/navy = 5, + /obj/item/clothing/accessory/jacket/charcoal = 5, + /obj/item/clothing/accessory/vest = 5, + /obj/item/clothing/accessory/sweater = 5, + /obj/item/clothing/accessory/sweater/pink = 5, + /obj/item/clothing/accessory/sweater/mint = 5, + /obj/item/clothing/accessory/sweater/blue = 5, + /obj/item/clothing/accessory/sweater/heart = 5, + /obj/item/clothing/accessory/sweater/nt = 5, + /obj/item/clothing/accessory/sweater/keyhole = 5, + /obj/item/clothing/accessory/sweater/winterneck = 5, + /obj/item/clothing/accessory/sweater/uglyxmas = 5, + /obj/item/clothing/accessory/sweater/flowersweater = 5, + /obj/item/clothing/accessory/sweater/redneck = 5, + /obj/item/clothing/accessory/tie = 5, + /obj/item/clothing/accessory/tie/horrible = 5, + /obj/item/clothing/accessory/tie/white = 5, + /obj/item/clothing/accessory/tie/navy = 5, + /obj/item/clothing/accessory/tie/yellow = 5, + /obj/item/clothing/accessory/tie/darkgreen = 5, + /obj/item/clothing/accessory/tie/black = 5, + /obj/item/clothing/accessory/tie/red_long = 5, + /obj/item/clothing/accessory/tie/red_clip = 5, + /obj/item/clothing/accessory/tie/blue_long = 5, + /obj/item/clothing/accessory/tie/blue_clip = 5, + /obj/item/clothing/accessory/tie/red = 5, + /obj/item/clothing/accessory/wcoat = 5, + /obj/item/clothing/accessory/wcoat/red = 5, + /obj/item/clothing/accessory/wcoat/grey = 5, + /obj/item/clothing/accessory/wcoat/brown = 5, + /obj/item/clothing/accessory/wcoat/gentleman = 5, + /obj/item/clothing/accessory/wcoat/swvest = 5, + /obj/item/clothing/accessory/wcoat/swvest/blue = 5, + /obj/item/clothing/accessory/wcoat/swvest/red = 5, + /obj/item/weapon/storage/wallet = 5, + /obj/item/weapon/storage/wallet/poly = 5, + /obj/item/weapon/storage/wallet/womens = 5, + /obj/item/weapon/lipstick = 5, + /obj/item/weapon/lipstick/purple = 5, + /obj/item/weapon/lipstick/jade = 5, + /obj/item/weapon/lipstick/black = 5, + /obj/item/clothing/ears/earmuffs = 5, + /obj/item/clothing/ears/earmuffs/headphones = 5, + /obj/item/clothing/ears/earring/stud = 5, + /obj/item/clothing/ears/earring/dangle = 5, + /obj/item/clothing/gloves/ring/mariner = 5, + /obj/item/clothing/gloves/ring/engagement = 5, + /obj/item/clothing/gloves/ring/seal/signet = 5, + /obj/item/clothing/gloves/ring/seal/mason = 5, + /obj/item/clothing/gloves/ring/material/plastic = 5, + /obj/item/clothing/gloves/ring/material/steel = 5, + /obj/item/clothing/gloves/ring/material/gold = 5, + /obj/item/clothing/glasses/eyepatch = 5, + /obj/item/clothing/glasses/gglasses = 5, + /obj/item/clothing/glasses/regular/hipster = 5, + /obj/item/clothing/glasses/rimless = 5, + /obj/item/clothing/glasses/thin = 5, + /obj/item/clothing/glasses/monocle = 5, + /obj/item/clothing/glasses/goggles = 5, + /obj/item/clothing/glasses/fluff/spiffygogs = 5, + /obj/item/clothing/glasses/fakesunglasses = 5, + /obj/item/clothing/glasses/fakesunglasses/aviator = 5, + /obj/item/clothing/mask/bandana/blue = 5, + /obj/item/clothing/mask/bandana/gold = 5, + /obj/item/clothing/mask/bandana/green = 5, + /obj/item/clothing/mask/bandana/red = 5, + /obj/item/clothing/mask/surgical = 5, + /obj/item/weapon/bedsheet/rainbow = 1, + /obj/item/clothing/mask/gas/clown_hat = 1) + +/obj/machinery/vending/event/clothing //FOR FACILITATING AND EQUIPPING EVENTS, DO NOT PLACE ON THE NORMAL MAP// + name = "General Jump" + desc = "A special vendor using compressed matter cartridges to store large amounts of clothing." + product_ads = "Tired of your grey jumpsuit? Spruce yourself up!;We have the outfit for you!;Don't let that grey jumpsuit get you down, get a ROBUST outfit right now!;Using compressed matter catridges and VERY ETHICAL labor practices to bring YOU the clothing you crave!;Are you sure you want to go to work in THAT?;All of our wares have a whole TWO pockets!" + icon_state = "clothing" + vend_delay = 16 + products = list(/obj/item/clothing/under/bathrobe = 5, + /obj/item/clothing/under/dress/black_corset = 5, + /obj/item/clothing/under/blazer = 5, + /obj/item/clothing/under/blazer/skirt = 5, + /obj/item/clothing/under/cheongsam = 5, + /obj/item/clothing/under/cheongsam/red = 5, + /obj/item/clothing/under/cheongsam/blue = 5, + /obj/item/clothing/under/cheongsam/black = 5, + /obj/item/clothing/under/cheongsam/darkred = 5, + /obj/item/clothing/under/cheongsam/green = 5, + /obj/item/clothing/under/cheongsam/purple = 5, + /obj/item/clothing/under/cheongsam/darkblue = 5, + /obj/item/clothing/under/croptop = 5, + /obj/item/clothing/under/croptop/red = 5, + /obj/item/clothing/under/croptop/grey = 5, + /obj/item/clothing/under/cuttop = 5, + /obj/item/clothing/under/cuttop/red = 5, + /obj/item/clothing/under/suit_jacket/female/skirt = 5, + /obj/item/clothing/under/dress/dress_fire = 5, + /obj/item/clothing/under/dress/flamenco = 5, + /obj/item/clothing/under/dress/flower_dress = 5, + /obj/item/clothing/under/fluff/gnshorts = 5, + /obj/item/clothing/under/color = 5, + /obj/item/clothing/under/color/aqua = 5, + /obj/item/clothing/under/color/black = 5, + /obj/item/clothing/under/color/blackf = 5, + /obj/item/clothing/under/color/blackjumpskirt = 5, + /obj/item/clothing/under/color/blue = 5, + /obj/item/clothing/under/color/brown = 5, + /obj/item/clothing/under/color/darkblue = 5, + /obj/item/clothing/under/color/darkred = 5, + /obj/item/clothing/under/color/green = 5, + /obj/item/clothing/under/color/grey = 5, + /obj/item/clothing/under/color/lightblue = 5, + /obj/item/clothing/under/color/lightbrown = 5, + /obj/item/clothing/under/color/lightgreen = 5, + /obj/item/clothing/under/color/lightpurple = 5, + /obj/item/clothing/under/color/lightred = 5, + /obj/item/clothing/under/color/orange = 5, + /obj/item/clothing/under/color/pink = 5, + /obj/item/clothing/under/color/prison = 5, + /obj/item/clothing/under/color/ranger = 5, + /obj/item/clothing/under/color/red = 5, + /obj/item/clothing/under/color/white = 5, + /obj/item/clothing/under/color/yellow = 5, + /obj/item/clothing/under/color/yellowgreen = 5, + /obj/item/clothing/under/aether = 5, + /obj/item/clothing/under/focal = 5, + /obj/item/clothing/under/hephaestus = 5, + /obj/item/clothing/under/wardt = 5, + /obj/item/clothing/under/kilt = 5, + /obj/item/clothing/under/fluff/latexmaid = 5, + /obj/item/clothing/under/dress/lilacdress = 5, + /obj/item/clothing/under/dress/white2 = 5, + /obj/item/clothing/under/dress/white4 = 5, + /obj/item/clothing/under/dress/maid = 5, + /obj/item/clothing/under/dress/maid/sexy = 5, + /obj/item/clothing/under/dress/maid/janitor = 5, + /obj/item/clothing/under/moderncoat = 5, + /obj/item/clothing/under/permit = 5, + /obj/item/clothing/under/oldwoman = 5, + /obj/item/clothing/under/frontier = 5, + /obj/item/clothing/under/mbill = 5, + /obj/item/clothing/under/pants/baggy/ = 5, + /obj/item/clothing/under/pants/baggy/classicjeans = 5, + /obj/item/clothing/under/pants/baggy/mustangjeans = 5, + /obj/item/clothing/under/pants/baggy/blackjeans = 5, + /obj/item/clothing/under/pants/baggy/greyjeans = 5, + /obj/item/clothing/under/pants/baggy/youngfolksjeans = 5, + /obj/item/clothing/under/pants/baggy/white = 5, + /obj/item/clothing/under/pants/baggy/red = 5, + /obj/item/clothing/under/pants/baggy/black = 5, + /obj/item/clothing/under/pants/baggy/tan = 5, + /obj/item/clothing/under/pants/baggy/track = 5, + /obj/item/clothing/under/pants/baggy/khaki = 5, + /obj/item/clothing/under/pants/baggy/camo = 5, + /obj/item/clothing/under/pants/utility/ = 5, + /obj/item/clothing/under/pants/utility/orange = 5, + /obj/item/clothing/under/pants/utility/blue = 5, + /obj/item/clothing/under/pants/utility/white = 5, + /obj/item/clothing/under/pants/utility/red = 5, + /obj/item/clothing/under/pants/chaps = 5, + /obj/item/clothing/under/pants/chaps/black = 5, + /obj/item/clothing/under/pants/track = 5, + /obj/item/clothing/under/pants/track/red = 5, + /obj/item/clothing/under/pants/track/white = 5, + /obj/item/clothing/under/pants/track/green = 5, + /obj/item/clothing/under/pants/track/blue = 5, + /obj/item/clothing/under/pants/yogapants = 5, + /obj/item/clothing/under/ascetic = 5, + /obj/item/clothing/under/dress/white3 = 5, + /obj/item/clothing/under/skirt/pleated = 5, + /obj/item/clothing/under/dress/darkred = 5, + /obj/item/clothing/under/dress/redeveninggown = 5, + /obj/item/clothing/under/dress/red_swept_dress = 5, + /obj/item/clothing/under/dress/sailordress = 5, + /obj/item/clothing/under/dress/sari = 5, + /obj/item/clothing/under/dress/sari/green = 5, + /obj/item/clothing/under/dress/qipao = 5, + /obj/item/clothing/under/dress/qipao/red = 5, + /obj/item/clothing/under/dress/qipao/white = 5, + /obj/item/clothing/under/shorts/red = 5, + /obj/item/clothing/under/shorts/green = 5, + /obj/item/clothing/under/shorts/blue = 5, + /obj/item/clothing/under/shorts/black = 5, + /obj/item/clothing/under/shorts/grey = 5, + /obj/item/clothing/under/shorts/white = 5, + /obj/item/clothing/under/shorts/jeans = 5, + /obj/item/clothing/under/shorts/jeans/ = 5, + /obj/item/clothing/under/shorts/jeans/classic = 5, + /obj/item/clothing/under/shorts/jeans/mustang = 5, + /obj/item/clothing/under/shorts/jeans/youngfolks = 5, + /obj/item/clothing/under/shorts/jeans/black = 5, + /obj/item/clothing/under/shorts/jeans/grey = 5, + /obj/item/clothing/under/shorts/khaki/ = 5, + /obj/item/clothing/under/skirt/loincloth = 5, + /obj/item/clothing/under/skirt/khaki = 5, + /obj/item/clothing/under/skirt/blue = 5, + /obj/item/clothing/under/skirt/red = 5, + /obj/item/clothing/under/skirt/denim = 5, + /obj/item/clothing/under/skirt/pleated = 5, + /obj/item/clothing/under/skirt/outfit/plaid_blue = 5, + /obj/item/clothing/under/skirt/outfit/plaid_red = 5, + /obj/item/clothing/under/skirt/outfit/plaid_purple = 5, + /obj/item/clothing/under/overalls/sleek = 5, + /obj/item/clothing/under/sl_suit = 5, + /obj/item/clothing/under/gentlesuit = 5, + /obj/item/clothing/under/gentlesuit/skirt = 5, + /obj/item/clothing/under/suit_jacket = 5, + /obj/item/clothing/under/suit_jacket/really_black/skirt = 5, + /obj/item/clothing/under/suit_jacket/really_black = 5, + /obj/item/clothing/under/suit_jacket/female/skirt = 5, + /obj/item/clothing/under/suit_jacket/female/ = 5, + /obj/item/clothing/under/suit_jacket/red = 5, + /obj/item/clothing/under/suit_jacket/red/skirt = 5, + /obj/item/clothing/under/suit_jacket/charcoal = 5, + /obj/item/clothing/under/suit_jacket/charcoal/skirt = 5, + /obj/item/clothing/under/suit_jacket/navy = 5, + /obj/item/clothing/under/suit_jacket/navy/skirt = 5, + /obj/item/clothing/under/suit_jacket/burgundy = 5, + /obj/item/clothing/under/suit_jacket/burgundy/skirt = 5, + /obj/item/clothing/under/suit_jacket/checkered = 5, + /obj/item/clothing/under/suit_jacket/checkered/skirt = 5, + /obj/item/clothing/under/suit_jacket/tan = 5, + /obj/item/clothing/under/suit_jacket/tan/skirt = 5, + /obj/item/clothing/under/scratch = 5, + /obj/item/clothing/under/scratch/skirt = 5, + /obj/item/clothing/under/sundress = 5, + /obj/item/clothing/under/sundress_white = 5, + /obj/item/clothing/under/rank/psych/turtleneck/sweater = 5, + /obj/item/weapon/storage/box/fluff/swimsuit = 5, + /obj/item/weapon/storage/box/fluff/swimsuit/blue = 5, + /obj/item/weapon/storage/box/fluff/swimsuit/purple = 5, + /obj/item/weapon/storage/box/fluff/swimsuit/green = 5, + /obj/item/weapon/storage/box/fluff/swimsuit/red = 5, + /obj/item/weapon/storage/box/fluff/swimsuit/white = 5, + /obj/item/weapon/storage/box/fluff/swimsuit/earth = 5, + /obj/item/weapon/storage/box/fluff/swimsuit/engineering = 5, + /obj/item/weapon/storage/box/fluff/swimsuit/science = 5, + /obj/item/weapon/storage/box/fluff/swimsuit/security = 5, + /obj/item/weapon/storage/box/fluff/swimsuit/medical = 5, + /obj/item/clothing/under/utility = 5, + /obj/item/clothing/under/utility/grey = 5, + /obj/item/clothing/under/utility/blue = 5, + /obj/item/clothing/under/fluff/v_nanovest = 5, + /obj/item/clothing/under/dress/westernbustle = 5, + /obj/item/clothing/under/wedding/bride_white = 5, + /obj/item/weapon/storage/backpack/ = 5, + /obj/item/weapon/storage/backpack/messenger = 5, + /obj/item/weapon/storage/backpack/satchel = 5, + /obj/item/clothing/under/rank/trek/command = 5, + /obj/item/clothing/under/rank/trek/command/next = 5, + /obj/item/clothing/under/rank/trek/command/ds9 = 5, + /obj/item/clothing/under/rank/trek/command/voy = 5, + /obj/item/clothing/under/rank/trek/command/ent = 5, + /obj/item/clothing/under/rank/trek/engsec = 5, + /obj/item/clothing/under/rank/trek/engsec/next = 5, + /obj/item/clothing/under/rank/trek/engsec/ds9 = 5, + /obj/item/clothing/under/rank/trek/engsec/voy = 5, + /obj/item/clothing/under/rank/trek/engsec/ent = 5, + /obj/item/clothing/under/rank/trek/medsci = 5, + /obj/item/clothing/under/rank/trek/medsci/next = 5, + /obj/item/clothing/under/rank/trek/medsci/ds9 = 5, + /obj/item/clothing/under/rank/trek/medsci/voy = 5, + /obj/item/clothing/under/rank/trek/medsci/ent = 5, + /obj/item/clothing/under/rank/khi/cmd = 5, + /obj/item/clothing/under/rank/khi/eng = 5, + /obj/item/clothing/under/rank/khi/med = 5, + /obj/item/clothing/under/rank/khi/sci = 5, + /obj/item/clothing/under/rank/khi/sec = 5, + /obj/item/clothing/under/rank/atmospheric_technician/skirt = 5, + /obj/item/clothing/under/rank/bartender = 5, + /obj/item/clothing/under/rank/bartender/skirt = 5, + /obj/item/clothing/under/rank/captain = 5, + /obj/item/clothing/under/rank/cargo/skirt = 5, + /obj/item/clothing/under/rank/cargo/jeans = 5, + /obj/item/clothing/under/rank/cargo/jeans/female = 5, + /obj/item/clothing/under/rank/cargotech/skirt = 5, + /obj/item/clothing/under/rank/cargotech/jeans = 5, + /obj/item/clothing/under/rank/cargotech/jeans/female = 5, + /obj/item/clothing/under/rank/centcom = 5, + /obj/item/clothing/under/rank/centcom_captain = 5, + /obj/item/clothing/under/rank/centcom_officer = 5, + /obj/item/clothing/under/rank/chaplain = 5, + /obj/item/clothing/under/rank/chef = 5, + /obj/item/clothing/under/rank/chemist/skirt = 5, + /obj/item/clothing/under/rank/chemist_new = 5, + /obj/item/clothing/under/rank/chief_engineer/skirt = 5, + /obj/item/clothing/under/rank/chief_medical_officer/skirt = 5, + /obj/item/clothing/under/rank/clown = 5, + /obj/item/clothing/under/rank/dispatch = 5, + /obj/item/clothing/under/rank/engineer/skirt = 5, + /obj/item/clothing/under/rank/engineer/turtleneck = 5, + /obj/item/clothing/under/rank/geneticist/skirt = 5, + /obj/item/clothing/under/rank/geneticist_new = 5, + /obj/item/clothing/under/rank/head_of_personnel = 5, + /obj/item/clothing/under/rank/head_of_personnel_whimsy = 5, + /obj/item/clothing/under/rank/head_of_security/skirt = 5, + /obj/item/clothing/under/rank/head_of_security/corp = 5, + /obj/item/clothing/under/rank/head_of_security/jensen = 5, + /obj/item/clothing/under/rank/head_of_security/navyblue = 5, + /obj/item/clothing/under/rank/hydroponics = 5, + /obj/item/clothing/under/rank/internalaffairs = 5, + /obj/item/clothing/under/rank/internalaffairs/skirt = 5, + /obj/item/clothing/under/rank/janitor = 5, + /obj/item/clothing/under/rank/mailman = 5, + /obj/item/clothing/under/rank/medical/skirt = 5, + /obj/item/clothing/under/rank/medical/paramedic = 5, + /obj/item/clothing/under/rank/medical/scrubs = 5, + /obj/item/clothing/under/rank/medical/scrubs/black = 5, + /obj/item/clothing/under/rank/medical/scrubs/green = 5, + /obj/item/clothing/under/rank/medical/scrubs/navyblue = 5, + /obj/item/clothing/under/rank/medical/scrubs/purple = 5, + /obj/item/clothing/under/rank/medical/turtleneck = 5, + /obj/item/clothing/under/rank/miner = 5, + /obj/item/clothing/under/rank/nurse = 5, + /obj/item/clothing/under/rank/nursesuit = 5, + /obj/item/clothing/under/rank/orderly = 5, + /obj/item/clothing/under/rank/pilot1 = 5, + /obj/item/clothing/under/rank/pilot2 = 5, + /obj/item/clothing/under/rank/psych/turtleneck/sweater = 5, + /obj/item/clothing/under/rank/research_director = 5, + /obj/item/clothing/under/rank/research_director/dress_rd = 5, + /obj/item/clothing/under/rank/research_director/rdalt = 5, + /obj/item/clothing/under/rank/roboticist/skirt = 5, + /obj/item/clothing/under/rank/scientist/skirt = 5, + /obj/item/clothing/under/rank/scientist_new = 5, + /obj/item/clothing/under/rank/security/skirt = 5, + /obj/item/clothing/under/rank/security/corp = 5, + /obj/item/clothing/under/rank/security/navyblue = 5, + /obj/item/clothing/under/rank/security/skirt = 5, + /obj/item/clothing/under/rank/security/turtleneck = 5, + /obj/item/clothing/under/rank/security2 = 5, + /obj/item/clothing/under/rank/vice = 5, + /obj/item/clothing/under/rank/virologist/skirt = 5, + /obj/item/clothing/under/rank/virologist_new = 5, + /obj/item/clothing/under/rank/warden/skirt = 5, + /obj/item/clothing/under/rank/warden/corp = 5, + /obj/item/clothing/under/rank/warden/navyblue = 5, + /obj/item/clothing/under/redcoat = 5, + /obj/item/clothing/under/redpyjamas = 5, + /obj/item/clothing/under/rippedpunk = 5, + /obj/item/clothing/under/color/rainbow = 1, + /obj/item/clothing/under/rank/clown = 1) + +/obj/machinery/vending/event/gadget //FOR FACILITATING AND EQUIPPING EVENTS, DO NOT PLACE ON THE NORMAL MAP// + name = "Chips Co." + desc = "A special vendor for devices and gadgets." + product_ads = "You can't RESIST our great deals!;Feeling disconnected? We have a gadget for you!;You know you have the capacity to buy our capacitors!;FILL THAT HOLE IN YOUR HEART WITH OUR PLASTIC DISTRACTIONS!!!;Devices for everyone! Chips Co.!;ROBUST INVENTORY, GREAT PRICES! ;DON'T FORGET THE oyPAD 13s PRO! ON SALE NOW, ONLY ONE THOUSAND THALERS!" + icon_state = "gadgets" + vend_delay = 11 + products = list(/obj/item/clothing/suit/circuitry = 1, + /obj/item/clothing/head/circuitry = 1, + /obj/item/clothing/shoes/circuitry = 1, + /obj/item/clothing/gloves/circuitry = 1, + /obj/item/clothing/under/circuitry = 1, + /obj/item/clothing/glasses/circuitry = 1, + /obj/item/clothing/ears/circuitry = 1, + /obj/item/device/text_to_speech = 5, + /obj/item/device/paicard = 5, + /obj/item/device/communicator = 10, + /obj/item/device/communicator/watch = 10, + /obj/item/device/radio = 10, + /obj/item/device/camera = 5, + /obj/item/device/taperecorder = 5, + /obj/item/modular_computer/tablet/preset/custom_loadout/cheap = 5, + /obj/item/device/pda = 10, + /obj/item/device/radio/headset = 10, + /obj/item/device/flashlight = 5, + /obj/item/device/laser_pointer = 3, + /obj/item/clothing/glasses/omnihud = 10, + /obj/item/device/perfect_tele/one_beacon = 1, + /obj/item/weapon/disk/nifsoft/compliance = 1, + /obj/item/device/perfect_tele/alien = 10) + +/obj/machinery/vending/event/loadout_misc //FOR FACILITATING AND EQUIPPING EVENTS, DO NOT PLACE ON THE NORMAL MAP// + name = "Bits and Bobs" + desc = "A special vendor for things and also stuff!" + product_ads = "You never know when you might need an umbrella.;Hey kid... want some cardemon cards?;Miscellaneous for your miscellaneous heart.;Who's bob? Wouldn't you like to know.;I'm sorry there's no grappling hooks in our umbrellas.;We sell things AND stuff." + icon_state = "loadout_misc" + products = list(/obj/item/weapon/cane = 5, + /obj/item/weapon/pack/cardemon = 25, + /obj/item/weapon/deck/holder = 5, + /obj/item/weapon/deck/cah = 5, + /obj/item/weapon/deck/cah/black = 5, + /obj/item/weapon/deck/tarot = 5, + /obj/item/weapon/deck/cards = 5, + /obj/item/weapon/pack/spaceball = 10, + /obj/item/weapon/storage/pill_bottle/dice = 5, + /obj/item/weapon/storage/pill_bottle/dice_nerd = 5, + /obj/item/weapon/melee/umbrella/random = 10, + /obj/item/toy/bosunwhistle = 1, + /obj/item/toy/katana = 1, + /obj/item/weapon/storage/belt/utility/full = 10, + /obj/item/weapon/storage/belt/utility/chief/full = 5, + /obj/item/weapon/storage/belt/utility/alien/full = 5, + /obj/item/weapon/storage/bible = 5, + /obj/item/weapon/pickaxe/drill = 5, + /obj/item/weapon/pickaxe/diamonddrill = 5, + /obj/item/weapon/pickaxe/gold = 5, + /obj/item/weapon/pickaxe/diamond = 5, + /obj/item/weapon/melee/chainofcommand = 5, + /obj/item/weapon/melee/baton/cattleprod = 5, + /obj/item/weapon/melee/baton/loaded = 5, + /obj/item/weapon/melee/classic_baton = 5, + /obj/item/weapon/melee/energy/axe = 5, + /obj/item/weapon/melee/energy/axe/charge/loaded = 5, + /obj/item/weapon/melee/energy/blade = 5, + /obj/item/weapon/melee/energy/spear = 5, + /obj/item/weapon/melee/energy/sword/charge/loaded = 5, + /obj/item/weapon/melee/energy/sword/green = 5, + /obj/item/weapon/melee/energy/sword/blue = 5, + /obj/item/weapon/melee/energy/sword/purple = 5, + /obj/item/weapon/melee/energy/sword/red = 5, + /obj/item/weapon/melee/energy/sword/white = 5, + /obj/item/weapon/melee/energy/sword/pirate = 5, + /obj/item/weapon/melee/energy/sword/ionic_rapier = 5, + /obj/item/weapon/melee/energy/sword/ionic_rapier/lance = 5, + /obj/item/weapon/melee/energy/sword/imperial = 5, + /obj/item/weapon/melee/telebaton = 5) + + +/obj/machinery/vending/event/overwear //FOR FACILITATING AND EQUIPPING EVENTS, DO NOT PLACE ON THE NORMAL MAP// + name = "Big D's Best" + desc = "A special vendor using compressed matter cartridges to store large amounts of overwear!" + product_ads = "Dress your best! It's what big D would want.;Overwear for all occasions!;Big D has what you need if what you need is some form of jacket!;Need a new hoodie? Bid D has you covered.;Big D says you need a new suit!;Big D smiles when he sees you in one of his coats!" + icon_state = "suit" + vend_delay = 16 + products = list(/obj/item/clothing/suit/storage/apron = 5, + /obj/item/clothing/suit/storage/flannel/aqua = 5, + /obj/item/clothing/suit/storage/toggle/bomber = 5, + /obj/item/clothing/suit/storage/bomber/alt = 5, + /obj/item/clothing/suit/storage/flannel/brown = 5, + /obj/item/clothing/suit/storage/toggle/cardigan = 5, + /obj/item/clothing/accessory/poncho/roles/cloak/custom = 5, + /obj/item/clothing/suit/storage/duster = 5, + /obj/item/clothing/suit/storage/toggle/denim_jacket = 5, + /obj/item/clothing/suit/storage/toggle/denim_jacket/nanotrasen = 5, + /obj/item/clothing/suit/storage/toggle/denim_jacket/sleeveless = 5, + /obj/item/clothing/suit/storage/toggle/denim_jacket/nanotrasen/sleeveless = 5, + /obj/item/clothing/suit/storage/fluff/gntop = 5, + /obj/item/clothing/suit/greatcoat = 5, + /obj/item/clothing/suit/storage/flannel = 5, + /obj/item/clothing/suit/storage/greyjacket = 5, + /obj/item/clothing/suit/storage/hazardvest = 5, + /obj/item/clothing/suit/storage/toggle/hoodie/black = 5, + /obj/item/clothing/suit/storage/toggle/hoodie/red = 5, + /obj/item/clothing/suit/storage/toggle/hoodie/blue = 5, + /obj/item/clothing/suit/storage/toggle/hoodie/green = 5, + /obj/item/clothing/suit/storage/toggle/hoodie/orange = 5, + /obj/item/clothing/suit/storage/toggle/hoodie/yellow = 5, + /obj/item/clothing/suit/storage/toggle/hoodie/cti = 5, + /obj/item/clothing/suit/storage/toggle/hoodie/mu = 5, + /obj/item/clothing/suit/storage/toggle/hoodie/nt = 5, + /obj/item/clothing/suit/storage/toggle/hoodie/smw = 5, + /obj/item/clothing/suit/storage/toggle/hoodie/nrti = 5, + /obj/item/clothing/suit/storage/fluff/jacket/field = 5, + /obj/item/clothing/suit/storage/fluff/jacket/air_cavalry = 5, + /obj/item/clothing/suit/storage/fluff/jacket/air_force = 5, + /obj/item/clothing/suit/storage/fluff/jacket/navy = 5, + /obj/item/clothing/suit/storage/fluff/jacket/special_forces = 5, + /obj/item/clothing/suit/kamishimo = 5, + /obj/item/clothing/suit/kimono = 5, + /obj/item/clothing/suit/storage/toggle/labcoat = 5, + /obj/item/clothing/suit/storage/toggle/labcoat/blue = 5, + /obj/item/clothing/suit/storage/toggle/labcoat/blue_edge = 5, + /obj/item/clothing/suit/storage/toggle/labcoat/green = 5, + /obj/item/clothing/suit/storage/toggle/labcoat/orange = 5, + /obj/item/clothing/suit/storage/toggle/labcoat/pink = 5, + /obj/item/clothing/suit/storage/toggle/labcoat/red = 5, + /obj/item/clothing/suit/storage/toggle/labcoat/yellow = 5, + /obj/item/clothing/suit/leathercoat = 5, + /obj/item/clothing/suit/storage/toggle/leather_jacket = 5, + /obj/item/clothing/suit/storage/leather_jacket_alt = 5, + /obj/item/clothing/suit/storage/toggle/brown_jacket = 5, + /obj/item/clothing/suit/storage/toggle/leather_jacket/nanotrasen = 5, + /obj/item/clothing/suit/storage/toggle/brown_jacket/nanotrasen = 5, + /obj/item/clothing/suit/storage/toggle/leather_jacket/sleeveless = 5, + /obj/item/clothing/suit/storage/toggle/brown_jacket/sleeveless = 5, + /obj/item/clothing/suit/storage/toggle/leather_jacket/nanotrasen/sleeveless = 5, + /obj/item/clothing/suit/storage/toggle/brown_jacket/nanotrasen/sleeveless = 5, + /obj/item/clothing/suit/storage/miljacket = 5, + /obj/item/clothing/suit/storage/miljacket/alt = 5, + /obj/item/clothing/suit/storage/miljacket/green = 5, + /obj/item/clothing/suit/storage/apron/overalls = 5, + /obj/item/clothing/suit/storage/toggle/peacoat = 5, + /obj/item/clothing/accessory/poncho = 5, + /obj/item/clothing/accessory/poncho/green = 5, + /obj/item/clothing/accessory/poncho/red = 5, + /obj/item/clothing/accessory/poncho/purple = 5, + /obj/item/clothing/accessory/poncho/blue = 5, + /obj/item/clothing/suit/jacket/puffer = 5, + /obj/item/clothing/suit/jacket/puffer/vest = 5, + /obj/item/clothing/suit/storage/flannel/red = 5, + /obj/item/clothing/suit/unathi/robe = 5, + /obj/item/clothing/suit/storage/snowsuit = 5, + /obj/item/clothing/suit/storage/toggle/internalaffairs = 5, + /obj/item/clothing/suit/storage/toggle/lawyer/bluejacket = 5, + /obj/item/clothing/suit/storage/toggle/lawyer/purpjacket = 5, + /obj/item/clothing/suit/suspenders = 5, + /obj/item/clothing/suit/storage/toggle/track = 5, + /obj/item/clothing/suit/storage/toggle/track/blue = 5, + /obj/item/clothing/suit/storage/toggle/track/green = 5, + /obj/item/clothing/suit/storage/toggle/track/red = 5, + /obj/item/clothing/suit/storage/toggle/track/white = 5, + /obj/item/clothing/suit/storage/trench = 5, + /obj/item/clothing/suit/storage/trench/grey = 5, + /obj/item/clothing/suit/varsity = 5, + /obj/item/clothing/suit/varsity/red = 5, + /obj/item/clothing/suit/varsity/purple = 5, + /obj/item/clothing/suit/varsity/green = 5, + /obj/item/clothing/suit/varsity/blue = 5, + /obj/item/clothing/suit/varsity/brown = 5, + /obj/item/clothing/suit/storage/hooded/wintercoat = 5, + /obj/item/clothing/suit/storage/seromi/cloak/standard/white_grey = 5, + /obj/item/clothing/suit/imperium_monk = 3, + /obj/item/clothing/head/helmet/space/void/engineering = 5, + /obj/item/clothing/suit/space/void/engineering = 5, + /obj/item/clothing/head/helmet/space/void/engineering/hazmat = 5, + /obj/item/clothing/suit/space/void/engineering/hazmat = 5, + /obj/item/clothing/head/helmet/space/void/engineering/construction = 5, + /obj/item/clothing/suit/space/void/engineering/construction = 5, + /obj/item/clothing/head/helmet/space/void/engineering/salvage = 5, + /obj/item/clothing/suit/space/void/engineering/salvage = 5, + /obj/item/clothing/head/helmet/space/void/mining = 5, + /obj/item/clothing/suit/space/void/mining = 5, + /obj/item/clothing/head/helmet/space/void/medical = 5, + /obj/item/clothing/suit/space/void/medical = 5, + /obj/item/clothing/head/helmet/space/void/medical/emt = 5, + /obj/item/clothing/suit/space/void/medical/emt = 5, + /obj/item/clothing/head/helmet/space/void/medical/bio = 5, + /obj/item/clothing/suit/space/void/medical/bio = 5, + /obj/item/clothing/head/helmet/space/void/security = 5, + /obj/item/clothing/suit/space/void/security = 5, + /obj/item/clothing/head/helmet/space/void/security/riot = 5, + /obj/item/clothing/suit/space/void/security/riot = 5, + /obj/item/clothing/head/helmet/space/void/atmos = 5, + /obj/item/clothing/suit/space/void/atmos = 5, + /obj/item/clothing/head/helmet/space/void/exploration = 5, + /obj/item/clothing/suit/space/void/exploration = 5, + /obj/item/clothing/head/helmet/space/void/pilot = 5, + /obj/item/clothing/suit/space/void/pilot = 5, + /obj/item/clothing/head/helmet/space/void/syndicate_contract = 5, + /obj/item/clothing/suit/space/void/syndicate_contract = 5, + /obj/item/clothing/suit/space/rig = 5, + /obj/item/clothing/suit/space/rig/advsuit = 5, + /obj/item/clothing/suit/space/rig/breacher = 5, + /obj/item/clothing/suit/space/rig/light = 5, + /obj/item/clothing/suit/space/rig/light/hacker = 5, + /obj/item/clothing/suit/space/rig/light/ninja = 5, + /obj/item/clothing/suit/space/rig/military = 5 + ) + +/obj/machinery/vending/event/costume //FOR FACILITATING AND EQUIPPING EVENTS, DO NOT PLACE ON THE NORMAL MAP// + name = "Thespian's Delight" + desc = "Sometimes nerds need costumes!" + product_ads = "Don't let your art be stifled!;Remember, practice makes perfect!;Break a leg!;Don't make me get the cane!;Thespian's Delight entering stage right!;Costumes for your acting needs!" + icon = 'icons/obj/vending.dmi' + icon_state = "theater" + products = list(/obj/item/clothing/suit/storage/hooded/carp_costume = 3, + /obj/item/clothing/suit/storage/hooded/carp_costume = 3, + /obj/item/clothing/suit/chickensuit = 3, + /obj/item/clothing/head/chicken = 3, + /obj/item/clothing/head/helmet/gladiator = 3, + /obj/item/clothing/under/gladiator = 3, + /obj/item/clothing/suit/storage/toggle/labcoat/mad = 3, + /obj/item/clothing/under/gimmick/rank/captain/suit = 3, + /obj/item/clothing/glasses/gglasses = 3, + /obj/item/clothing/head/flatcap = 3, + /obj/item/clothing/shoes/boots/jackboots = 3, + /obj/item/clothing/under/schoolgirl = 3, + /obj/item/clothing/head/kitty = 3, + /obj/item/clothing/glasses/sunglasses/blindfold = 3, + /obj/item/clothing/head/beret = 3, + /obj/item/clothing/under/skirt = 3, + /obj/item/clothing/under/suit_jacket = 3, + /obj/item/clothing/head/that = 3, + /obj/item/clothing/accessory/wcoat = 3, + /obj/item/clothing/under/scratch = 3, + /obj/item/clothing/shoes/white = 3, + /obj/item/clothing/gloves/white = 3, + /obj/item/clothing/under/kilt = 3, + /obj/item/clothing/glasses/monocle = 3, + /obj/item/clothing/under/sl_suit = 3, + /obj/item/clothing/mask/fakemoustache = 3, + /obj/item/weapon/cane = 3, + /obj/item/clothing/head/bowler = 3, + /obj/item/clothing/head/plaguedoctorhat = 3, + /obj/item/clothing/suit/bio_suit/plaguedoctorsuit = 3, + /obj/item/clothing/mask/gas/plaguedoctor/fluff = 3, + /obj/item/clothing/under/owl = 3, + /obj/item/clothing/mask/gas/owl_mask = 3, + /obj/item/clothing/under/waiter = 3, + /obj/item/clothing/suit/storage/apron = 3, + /obj/item/clothing/under/pirate = 3, + /obj/item/clothing/head/pirate = 3, + /obj/item/clothing/suit/pirate = 3, + /obj/item/clothing/glasses/eyepatch = 3, + /obj/item/clothing/head/ushanka = 3, + /obj/item/clothing/under/soviet = 3, + /obj/item/clothing/suit/imperium_monk = 1, + /obj/item/clothing/suit/holidaypriest = 3, + /obj/item/clothing/head/witchwig = 3, + /obj/item/clothing/under/sundress = 3, + /obj/item/weapon/staff/broom = 3, + /obj/item/clothing/suit/wizrobe/fake = 3, + /obj/item/clothing/head/wizard/fake = 3, + /obj/item/weapon/staff = 3, + /obj/item/clothing/mask/gas/sexyclown = 3, + /obj/item/clothing/under/sexyclown = 3, + /obj/item/clothing/mask/gas/sexymime = 3, + /obj/item/clothing/under/sexymime = 3, + /obj/item/clothing/suit/storage/hooded/knight_costume = 3, + /obj/item/clothing/suit/storage/hooded/knight_costume/galahad = 3, + /obj/item/clothing/suit/storage/hooded/knight_costume/lancelot = 3, + /obj/item/clothing/suit/storage/hooded/knight_costume/robin = 3, + /obj/item/clothing/suit/armor/combat/crusader_costume = 3, + /obj/item/clothing/suit/armor/combat/crusader_costume/bedevere = 3, + /obj/item/clothing/head/helmet/combat/crusader_costume = 3, + /obj/item/clothing/head/helmet/combat/bedevere_costume = 3, + /obj/item/clothing/gloves/combat/knight_costume = 3, + /obj/item/clothing/gloves/combat/knight_costume/brown = 3, + /obj/item/clothing/shoes/knight_costume = 3, + /obj/item/clothing/shoes/knight_costume/black = 3, + /obj/item/clothing/suit/imperium_monk = 3, + /obj/item/clothing/suit/barding/agatha = 2, + /obj/item/clothing/suit/barding/alt_agatha = 2, + /obj/item/clothing/suit/barding/mason = 2, + /obj/item/clothing/suit/drake_cloak = 2, + /obj/item/clothing/head/syndicatefake = 1, + /obj/item/clothing/suit/syndicatefake = 1 + ) + + +/obj/machinery/vending/event/food //FOR FACILITATING/OUTFITTING EVENTS, DO NOT PUT THESE ON THE MAP// + name = "Dog Food" + desc = "Food made by dogs!" + product_ads = "EAT FOOD!!!;Awooooooooooooooo!~;Made by actual dogs!;Now with twenty percent more taste!!!" + icon = 'icons/obj/vending.dmi' + icon_state = "fridge_food" + products = list(/obj/item/weapon/tray = 50, + /obj/item/weapon/material/kitchen/utensil/fork = 50, + /obj/item/weapon/material/knife/plastic = 50, + /obj/item/weapon/material/kitchen/utensil/spoon = 50, + /obj/item/weapon/tray = 50, + /obj/item/weapon/material/kitchen/utensil/fork = 50, + /obj/item/weapon/material/knife/plastic = 50, + /obj/item/weapon/storage/mre = 10, + /obj/item/weapon/storage/mre/menu2 = 10, + /obj/item/weapon/storage/mre/menu3 = 10, + /obj/item/weapon/storage/mre/menu4 = 10, + /obj/item/weapon/storage/mre/menu5 = 10, + /obj/item/weapon/storage/mre/menu6 = 10, + /obj/item/weapon/storage/mre/menu7 = 10, + /obj/item/weapon/storage/mre/menu8 = 10, + /obj/item/weapon/storage/mre/menu9 = 10, + /obj/item/weapon/storage/mre/menu10 = 10, + /obj/item/weapon/reagent_containers/food/snacks/aesirsalad = 10, + /obj/item/weapon/reagent_containers/food/snacks/applepie = 10, + /obj/item/weapon/reagent_containers/food/snacks/appletart = 10, + /obj/item/weapon/reagent_containers/food/snacks/bacon = 10, + /obj/item/weapon/reagent_containers/food/snacks/bacon_and_eggs = 10, + /obj/item/weapon/reagent_containers/food/snacks/bacon_flatbread = 10, + /obj/item/weapon/reagent_containers/food/snacks/bacon_stick = 10, + /obj/item/weapon/reagent_containers/food/snacks/bagelplain = 10, + /obj/item/weapon/reagent_containers/food/snacks/bagelcheese = 10, + /obj/item/weapon/reagent_containers/food/snacks/bageleverything = 10, + /obj/item/weapon/reagent_containers/food/snacks/bagelpoppy = 10, + /obj/item/weapon/reagent_containers/food/snacks/bagelraisin = 10, + /obj/item/weapon/reagent_containers/food/snacks/bagelsunflower = 10, + /obj/item/weapon/reagent_containers/food/snacks/bageltwo = 10, + /obj/item/weapon/reagent_containers/food/snacks/baguette = 10, + /obj/item/weapon/reagent_containers/food/snacks/bangersandmash = 10, + /obj/item/weapon/reagent_containers/food/snacks/beans = 10, + /obj/item/weapon/reagent_containers/food/snacks/bearburger = 10, + /obj/item/weapon/reagent_containers/food/snacks/bearchili = 10, + /obj/item/weapon/reagent_containers/food/snacks/bearstew = 10, + /obj/item/weapon/reagent_containers/food/snacks/beetsoup = 10, + /obj/item/weapon/reagent_containers/food/snacks/benedict = 10, + /obj/item/weapon/reagent_containers/food/snacks/berryclafoutis/berry = 10, + /obj/item/weapon/reagent_containers/food/snacks/berrymuffin/berry = 10, + /obj/item/weapon/reagent_containers/food/snacks/bibimbap = 10, + /obj/item/weapon/reagent_containers/food/snacks/bigbiteburger = 10, + /obj/item/weapon/reagent_containers/food/snacks/blackpudding = 10, + /obj/item/weapon/reagent_containers/food/snacks/bloodsoup = 10, + /obj/item/weapon/reagent_containers/food/snacks/blt = 10, + /obj/item/weapon/reagent_containers/food/snacks/boiledegg = 10, + /obj/item/weapon/reagent_containers/food/snacks/boiledrice = 10, + /obj/item/weapon/reagent_containers/food/snacks/boiledspagetti = 10, + /obj/item/weapon/reagent_containers/food/snacks/breakfast_wrap = 10, + /obj/item/weapon/reagent_containers/food/snacks/browniesslice = 10, + /obj/item/weapon/reagent_containers/food/snacks/browniesslice/filled = 10, + /obj/item/weapon/reagent_containers/food/snacks/bugball = 10, + /obj/item/weapon/reagent_containers/food/snacks/bun = 10, + /obj/item/weapon/reagent_containers/food/snacks/bunbun = 10, + /obj/item/weapon/reagent_containers/food/snacks/burger/bacon = 10, + /obj/item/weapon/reagent_containers/food/snacks/burrito = 10, + /obj/item/weapon/reagent_containers/food/snacks/burrito_cheese = 10, + /obj/item/weapon/reagent_containers/food/snacks/burrito_vegan = 10, + /obj/item/weapon/reagent_containers/food/snacks/burrito_spicy = 10, + /obj/item/weapon/reagent_containers/food/snacks/burrito_cheese_spicy = 10, + /obj/item/weapon/reagent_containers/food/snacks/burrito_mystery = 10, + /obj/item/weapon/reagent_containers/food/snacks/burrito_hell = 10, + /obj/item/weapon/reagent_containers/food/snacks/candiedapple = 10, + /obj/item/weapon/reagent_containers/food/snacks/candy = 10, + /obj/item/weapon/reagent_containers/food/snacks/candy/donor = 10, + /obj/item/weapon/reagent_containers/food/snacks/candy/gummy = 10, + /obj/item/weapon/reagent_containers/food/snacks/candy/proteinbar = 10, + /obj/item/weapon/reagent_containers/food/snacks/candy_corn = 10, + /obj/item/weapon/reagent_containers/food/snacks/carrotfries = 10, + /obj/item/weapon/reagent_containers/food/snacks/cb01 = 10, + /obj/item/weapon/reagent_containers/food/snacks/cb02 = 10, + /obj/item/weapon/reagent_containers/food/snacks/cb03 = 10, + /obj/item/weapon/reagent_containers/food/snacks/cb04 = 10, + /obj/item/weapon/reagent_containers/food/snacks/cb05 = 10, + /obj/item/weapon/reagent_containers/food/snacks/cb06 = 10, + /obj/item/weapon/reagent_containers/food/snacks/cb07 = 10, + /obj/item/weapon/reagent_containers/food/snacks/cb08 = 10, + /obj/item/weapon/reagent_containers/food/snacks/cb09 = 10, + /obj/item/weapon/reagent_containers/food/snacks/cb10 = 10, + /obj/item/weapon/reagent_containers/food/snacks/chawanmushi = 10, + /obj/item/weapon/reagent_containers/food/snacks/cheese_cracker = 10, + /obj/item/weapon/reagent_containers/food/snacks/cheeseburger = 10, + /obj/item/weapon/reagent_containers/food/snacks/cheeseburrito = 10, + /obj/item/weapon/reagent_containers/food/snacks/cheesenachos = 10, + /obj/item/weapon/reagent_containers/food/snacks/cheesewedge = 10, + /obj/item/weapon/reagent_containers/food/snacks/cheesiehonkers = 10, + /obj/item/weapon/reagent_containers/food/snacks/cheesyfries = 10, + /obj/item/weapon/reagent_containers/food/snacks/cheesymash = 10, + /obj/item/weapon/reagent_containers/food/snacks/cherrypie = 10, + /obj/item/weapon/reagent_containers/food/snacks/chickenfillet = 10, + /obj/item/weapon/reagent_containers/food/snacks/chickenkatsu = 10, + /obj/item/weapon/reagent_containers/food/snacks/chickenmomo = 10, + /obj/item/weapon/reagent_containers/food/snacks/chickenwing = 10, + /obj/item/weapon/reagent_containers/food/snacks/chilicheesefries = 10, + /obj/item/weapon/reagent_containers/food/snacks/chilied_eggs = 10, + /obj/item/weapon/reagent_containers/food/snacks/chip = 10, + /obj/item/weapon/reagent_containers/food/snacks/chip/cheese = 10, + /obj/item/weapon/reagent_containers/food/snacks/chip/guac = 10, + /obj/item/weapon/reagent_containers/food/snacks/chip/salsa = 10, + /obj/item/weapon/reagent_containers/food/snacks/chip/nacho = 10, + /obj/item/weapon/reagent_containers/food/snacks/chip/nacho/cheese = 10, + /obj/item/weapon/reagent_containers/food/snacks/chip/nacho/guac = 10, + /obj/item/weapon/reagent_containers/food/snacks/chip/nacho/salsa = 10, + /obj/item/weapon/reagent_containers/food/snacks/chipplate = 10, + /obj/item/weapon/reagent_containers/food/snacks/chipplate/nachos = 10, + /obj/item/weapon/reagent_containers/food/snacks/chips = 10, + /obj/item/weapon/reagent_containers/food/snacks/chips/bbq = 10, + /obj/item/weapon/reagent_containers/food/snacks/chocolatebar = 10, + /obj/item/weapon/reagent_containers/food/snacks/chocolateegg = 10, + /obj/item/weapon/reagent_containers/food/snacks/chocolatepiece = 10, + /obj/item/weapon/reagent_containers/food/snacks/chocolatepiece/truffle = 10, + /obj/item/weapon/reagent_containers/food/snacks/chocolatepiece/white = 10, + /obj/item/weapon/reagent_containers/food/snacks/clownburger = 10, + /obj/item/weapon/reagent_containers/food/snacks/clownstears = 10, + /obj/item/weapon/reagent_containers/food/snacks/coldchili = 10, + /obj/item/weapon/reagent_containers/food/snacks/cookie = 10, + /obj/item/weapon/reagent_containers/food/snacks/cookiesnack = 10, + /obj/item/weapon/reagent_containers/food/snacks/corn_dog = 10, + /obj/item/weapon/reagent_containers/food/snacks/cosmicbrowniesslice = 10, + /obj/item/weapon/reagent_containers/food/snacks/cosmicbrowniesslice/filled = 10, + /obj/item/weapon/reagent_containers/food/snacks/crab_legs = 10, + /obj/item/weapon/reagent_containers/food/snacks/crabmeat = 10, + /obj/item/weapon/reagent_containers/food/snacks/cracker = 10, + /obj/item/weapon/reagent_containers/food/snacks/croissant = 10, + /obj/item/weapon/reagent_containers/food/snacks/csandwich = 10, + /obj/item/weapon/reagent_containers/food/snacks/cubancarp = 10, + /obj/item/weapon/reagent_containers/food/snacks/cubannachos = 10, + /obj/item/weapon/reagent_containers/food/snacks/cube = 10, + /obj/item/weapon/reagent_containers/food/snacks/cube/nutriment = 10, + /obj/item/weapon/reagent_containers/food/snacks/cube/protein = 10, + /obj/item/weapon/reagent_containers/food/snacks/curryrice = 10, + /obj/item/weapon/reagent_containers/food/snacks/custardbun = 10, + /obj/item/weapon/reagent_containers/food/snacks/cutlet = 10, + /obj/item/weapon/reagent_containers/food/snacks/cuttlefishcooked = 10, + /obj/item/weapon/reagent_containers/food/snacks/devilledegg = 10, + /obj/item/weapon/reagent_containers/food/snacks/dionaroast = 10, + /obj/item/weapon/reagent_containers/food/snacks/dip = 10, + /obj/item/weapon/reagent_containers/food/snacks/dip/guac = 10, + /obj/item/weapon/reagent_containers/food/snacks/dip/salsa = 10, + /obj/item/weapon/reagent_containers/food/snacks/donerkebab = 10, + /obj/item/weapon/reagent_containers/food/snacks/donkpocket = 10, + /obj/item/weapon/reagent_containers/food/snacks/donkpocket/sinpocket = 10, + /obj/item/weapon/reagent_containers/food/snacks/donut = 10, + /obj/item/weapon/reagent_containers/food/snacks/donut/cherryjelly = 10, + /obj/item/weapon/reagent_containers/food/snacks/donut/jelly = 10, + /obj/item/weapon/reagent_containers/food/snacks/donut/normal = 10, + /obj/item/weapon/reagent_containers/food/snacks/egg_pancake = 10, + /obj/item/weapon/reagent_containers/food/snacks/eggbowl = 10, + /obj/item/weapon/reagent_containers/food/snacks/eggplantparm = 10, + /obj/item/weapon/reagent_containers/food/snacks/eggroll = 10, + /obj/item/weapon/reagent_containers/food/snacks/enchiladas = 10, + /obj/item/weapon/reagent_containers/food/snacks/father_breakfast = 10, + /obj/item/weapon/reagent_containers/food/snacks/fish_taco = 10, + /obj/item/weapon/reagent_containers/food/snacks/fishandchips = 10, + /obj/item/weapon/reagent_containers/food/snacks/fishburger = 10, + /obj/item/weapon/reagent_containers/food/snacks/fishfingers = 10, + /obj/item/weapon/reagent_containers/food/snacks/flatbread = 10, + /obj/item/weapon/reagent_containers/food/snacks/flowerchildsalad = 10, + /obj/item/weapon/reagent_containers/food/snacks/fortunecookie = 10, + /obj/item/weapon/reagent_containers/food/snacks/friedegg = 10, + /obj/item/weapon/reagent_containers/food/snacks/friedmushroom = 10, + /obj/item/weapon/reagent_containers/food/snacks/friedrice = 10, + /obj/item/weapon/reagent_containers/food/snacks/fries = 10, + /obj/item/weapon/reagent_containers/food/snacks/fruitbar = 10, + /obj/item/weapon/reagent_containers/food/snacks/fruitsalad = 10, + /obj/item/weapon/reagent_containers/food/snacks/fuegoburrito = 10, + /obj/item/weapon/reagent_containers/food/snacks/funnelcake = 10, + /obj/item/weapon/reagent_containers/food/snacks/generalschicken = 10, + /obj/item/weapon/reagent_containers/food/snacks/ghostburger = 10, + /obj/item/weapon/reagent_containers/food/snacks/ghostmuffin = 10, + /obj/item/weapon/reagent_containers/food/snacks/ghostmuffin/berry = 10, + /obj/item/weapon/reagent_containers/food/snacks/goulash = 10, + /obj/item/weapon/reagent_containers/food/snacks/greencurry = 10, + /obj/item/weapon/reagent_containers/food/snacks/grilled_carp_slice = 10, + /obj/item/weapon/reagent_containers/food/snacks/grilledcheese = 10, + /obj/item/weapon/reagent_containers/food/snacks/hatchling_suprise = 10, + /obj/item/weapon/reagent_containers/food/snacks/honeybun = 10, + /obj/item/weapon/reagent_containers/food/snacks/honeytoast = 10, + /obj/item/weapon/reagent_containers/food/snacks/honeytoast = 10, + /obj/item/weapon/reagent_containers/food/snacks/hotchili = 10, + /obj/item/weapon/reagent_containers/food/snacks/hotdog = 10, + /obj/item/weapon/reagent_containers/food/snacks/icecream = 10, + /obj/item/weapon/reagent_containers/food/snacks/icecreamsandwich = 10, + /obj/item/weapon/reagent_containers/food/snacks/jalapeno_poppers = 10, + /obj/item/weapon/reagent_containers/food/snacks/jelliedtoast = 10, + /obj/item/weapon/reagent_containers/food/snacks/jelliedtoast/cherry = 10, + /obj/item/weapon/reagent_containers/food/snacks/jellyburger = 10, + /obj/item/weapon/reagent_containers/food/snacks/jellyburger/cherry = 10, + /obj/item/weapon/reagent_containers/food/snacks/jellysandwich = 10, + /obj/item/weapon/reagent_containers/food/snacks/jellysandwich/cherry = 10, + /obj/item/weapon/reagent_containers/food/snacks/jellysandwich/peanutbutter = 10, + /obj/item/weapon/reagent_containers/food/snacks/kabob = 10, + /obj/item/weapon/reagent_containers/food/snacks/keylimepieslice = 10, + /obj/item/weapon/reagent_containers/food/snacks/keylimepieslice/filled = 10, + /obj/item/weapon/reagent_containers/food/snacks/kitsuneudon = 10, + /obj/item/weapon/reagent_containers/food/snacks/kudzudonburi = 10, + /obj/item/weapon/reagent_containers/food/snacks/lasagna = 10, + /obj/item/weapon/reagent_containers/food/snacks/liquidfood = 10, + /obj/item/weapon/reagent_containers/food/snacks/liquidprotein = 10, + /obj/item/weapon/reagent_containers/food/snacks/liquidvitamin = 10, + /obj/item/weapon/reagent_containers/food/snacks/loadedbakedpotato = 10, + /obj/item/weapon/reagent_containers/food/snacks/lobstercooked = 10, + /obj/item/weapon/reagent_containers/food/snacks/lomein = 10, + /obj/item/weapon/reagent_containers/food/snacks/macncheese = 10, + /obj/item/weapon/reagent_containers/food/snacks/makaroni = 10, + /obj/item/weapon/reagent_containers/food/snacks/mammi = 10, + /obj/item/weapon/reagent_containers/food/snacks/mashedpotato = 10, + /obj/item/weapon/reagent_containers/food/snacks/meat_pocket = 10, + /obj/item/weapon/reagent_containers/food/snacks/meatball = 10, + /obj/item/weapon/reagent_containers/food/snacks/meatballsoup = 10, + /obj/item/weapon/reagent_containers/food/snacks/meatballspagetti = 10, + /obj/item/weapon/reagent_containers/food/snacks/meatbun = 10, + /obj/item/weapon/reagent_containers/food/snacks/meatburrito = 10, + /obj/item/weapon/reagent_containers/food/snacks/meatcube = 10, + /obj/item/weapon/reagent_containers/food/snacks/meatpie = 10, + /obj/item/weapon/reagent_containers/food/snacks/meatsteak = 10, + /obj/item/weapon/reagent_containers/food/snacks/microchips = 10, + /obj/item/weapon/reagent_containers/food/snacks/milosoup = 10, + /obj/item/weapon/reagent_containers/food/snacks/mimeburger = 10, + /obj/item/weapon/reagent_containers/food/snacks/mint = 10, + /obj/item/weapon/reagent_containers/food/snacks/monkeyburger = 10, + /obj/item/weapon/reagent_containers/food/snacks/monkfishcooked = 10, + /obj/item/weapon/reagent_containers/food/snacks/mouseburger = 10, + /obj/item/weapon/reagent_containers/food/snacks/muffin = 10, + /obj/item/weapon/reagent_containers/food/snacks/mushroomsoup = 10, + /obj/item/weapon/reagent_containers/food/snacks/mysterysoup = 10, + /obj/item/weapon/reagent_containers/food/snacks/nachos = 10, + /obj/item/weapon/reagent_containers/food/snacks/nettlesoup = 10, + /obj/item/weapon/reagent_containers/food/snacks/no_raisin = 10, + /obj/item/weapon/reagent_containers/food/snacks/nt_muffin = 10, + /obj/item/weapon/reagent_containers/food/snacks/nugget = 10, + /obj/item/weapon/reagent_containers/food/snacks/nutrimentslab = 10, + /obj/item/weapon/reagent_containers/food/snacks/omelette = 10, + /obj/item/weapon/reagent_containers/food/snacks/onionrings = 10, + /obj/item/weapon/reagent_containers/food/snacks/onionsoup = 10, + /obj/item/weapon/reagent_containers/food/snacks/ovenchips = 10, + /obj/item/weapon/reagent_containers/food/snacks/pancakes = 10, + /obj/item/weapon/reagent_containers/food/snacks/pastatomato = 10, + /obj/item/weapon/reagent_containers/food/snacks/pie = 10, + /obj/item/weapon/reagent_containers/food/snacks/piginblanket = 10, + /obj/item/weapon/reagent_containers/food/snacks/pillbug = 10, + /obj/item/weapon/reagent_containers/food/snacks/pineapple_ring = 10, + /obj/item/weapon/reagent_containers/food/snacks/pineappleslice = 10, + /obj/item/weapon/reagent_containers/food/snacks/pineappleslice/filled = 10, + /obj/item/weapon/reagent_containers/food/snacks/pisanggoreng = 10, + /obj/item/weapon/reagent_containers/food/snacks/pistachios = 10, + /obj/item/weapon/reagent_containers/food/snacks/pizzacrunchslice = 10, + /obj/item/weapon/reagent_containers/food/snacks/plump_pie = 10, + /obj/item/weapon/reagent_containers/food/snacks/plumphelmetbiscuit = 10, + /obj/item/weapon/reagent_containers/food/snacks/poachedegg = 10, + /obj/item/weapon/reagent_containers/food/snacks/popcorn = 10, + /obj/item/weapon/reagent_containers/food/snacks/poppypretzel = 10, + /obj/item/weapon/reagent_containers/food/snacks/porkbowl = 10, + /obj/item/weapon/reagent_containers/food/snacks/proteinslab = 10, + /obj/item/weapon/reagent_containers/food/snacks/quicheslice = 10, + /obj/item/weapon/reagent_containers/food/snacks/quicheslice/filled = 10, + /obj/item/weapon/reagent_containers/food/snacks/red_sun_special = 10, + /obj/item/weapon/reagent_containers/food/snacks/redcurry = 10, + /obj/item/weapon/reagent_containers/food/snacks/ribplate = 10, + /obj/item/weapon/reagent_containers/food/snacks/ricepudding = 10, + /obj/item/weapon/reagent_containers/food/snacks/risotto = 10, + /obj/item/weapon/reagent_containers/food/snacks/risottoballs = 10, + /obj/item/weapon/reagent_containers/food/snacks/riztizkzi_sea = 10, + /obj/item/weapon/reagent_containers/food/snacks/roastbeef = 10, + /obj/item/weapon/reagent_containers/food/snacks/roastedpeanuts = 10, + /obj/item/weapon/reagent_containers/food/snacks/roastedsunflower = 10, + /obj/item/weapon/reagent_containers/food/snacks/rosesalad = 10, + /obj/item/weapon/reagent_containers/food/snacks/sandwich = 10, + /obj/item/weapon/reagent_containers/food/snacks/sashimi = 10, + /obj/item/weapon/reagent_containers/food/snacks/sausage = 10, + /obj/item/weapon/reagent_containers/food/snacks/sausage/battered = 10, + /obj/item/weapon/reagent_containers/food/snacks/semki = 10, + /obj/item/weapon/reagent_containers/food/snacks/sharkmeatcooked = 10, + /obj/item/weapon/reagent_containers/food/snacks/sharkmeatcubes = 10, + /obj/item/weapon/reagent_containers/food/snacks/sharkmeatdip = 10, + /obj/item/weapon/reagent_containers/food/snacks/siffruit = 10, + /obj/item/weapon/reagent_containers/food/snacks/skrellsnacks = 10, + /obj/item/weapon/reagent_containers/food/snacks/slice/applecake = 10, + /obj/item/weapon/reagent_containers/food/snacks/slice/bananabread = 10, + /obj/item/weapon/reagent_containers/food/snacks/slice/birthdaycake = 10, + /obj/item/weapon/reagent_containers/food/snacks/slice/bread = 10, + /obj/item/weapon/reagent_containers/food/snacks/slice/carrotcake = 10, + /obj/item/weapon/reagent_containers/food/snacks/slice/cheesecake = 10, + /obj/item/weapon/reagent_containers/food/snacks/slice/chocolatecake = 10, + /obj/item/weapon/reagent_containers/food/snacks/slice/creamcheesebread = 10, + /obj/item/weapon/reagent_containers/food/snacks/slice/lemoncake = 10, + /obj/item/weapon/reagent_containers/food/snacks/slice/limecake = 10, + /obj/item/weapon/reagent_containers/food/snacks/slice/margherita = 10, + /obj/item/weapon/reagent_containers/food/snacks/slice/meatbread = 10, + /obj/item/weapon/reagent_containers/food/snacks/slice/meatpizza = 10, + /obj/item/weapon/reagent_containers/food/snacks/slice/mushroompizza = 10, + /obj/item/weapon/reagent_containers/food/snacks/slice/orangecake = 10, + /obj/item/weapon/reagent_containers/food/snacks/slice/peanutcake = 10, + /obj/item/weapon/reagent_containers/food/snacks/slice/pineapple = 10, + /obj/item/weapon/reagent_containers/food/snacks/slice/plaincake = 10, + /obj/item/weapon/reagent_containers/food/snacks/slice/pumpkinpie = 10, + /obj/item/weapon/reagent_containers/food/snacks/slice/tofubread = 10, + /obj/item/weapon/reagent_containers/food/snacks/slice/vegetablepizza = 10, + /obj/item/weapon/reagent_containers/food/snacks/sliceable/applecake = 10, + /obj/item/weapon/reagent_containers/food/snacks/sliceable/bananabread = 10, + /obj/item/weapon/reagent_containers/food/snacks/sliceable/birthdaycake = 10, + /obj/item/weapon/reagent_containers/food/snacks/sliceable/bread = 10, + /obj/item/weapon/reagent_containers/food/snacks/sliceable/brownies = 10, + /obj/item/weapon/reagent_containers/food/snacks/sliceable/carrotcake = 10, + /obj/item/weapon/reagent_containers/food/snacks/sliceable/cheesecake = 10, + /obj/item/weapon/reagent_containers/food/snacks/sliceable/cheesewheel = 10, + /obj/item/weapon/reagent_containers/food/snacks/sliceable/chocolatecake = 10, + /obj/item/weapon/reagent_containers/food/snacks/sliceable/creamcheesebread = 10, + /obj/item/weapon/reagent_containers/food/snacks/sliceable/grilled_carp = 10, + /obj/item/weapon/reagent_containers/food/snacks/sliceable/keylimepie = 10, + /obj/item/weapon/reagent_containers/food/snacks/sliceable/lemoncake = 10, + /obj/item/weapon/reagent_containers/food/snacks/sliceable/limecake = 10, + /obj/item/weapon/reagent_containers/food/snacks/sliceable/meatbread = 10, + /obj/item/weapon/reagent_containers/food/snacks/sliceable/orangecake = 10, + /obj/item/weapon/reagent_containers/food/snacks/sliceable/peanutcake = 10, + /obj/item/weapon/reagent_containers/food/snacks/sliceable/pizza/crunch = 10, + /obj/item/weapon/reagent_containers/food/snacks/sliceable/pizza/margherita = 10, + /obj/item/weapon/reagent_containers/food/snacks/sliceable/pizza/meatpizza = 10, + /obj/item/weapon/reagent_containers/food/snacks/sliceable/pizza/mushroompizza = 10, + /obj/item/weapon/reagent_containers/food/snacks/sliceable/pizza/pineapple = 10, + /obj/item/weapon/reagent_containers/food/snacks/sliceable/pizza/vegetablepizza = 10, + /obj/item/weapon/reagent_containers/food/snacks/sliceable/plaincake = 10, + /obj/item/weapon/reagent_containers/food/snacks/sliceable/pumpkinpie = 10, + /obj/item/weapon/reagent_containers/food/snacks/sliceable/quiche = 10, + /obj/item/weapon/reagent_containers/food/snacks/sliceable/sushi = 10, + /obj/item/weapon/reagent_containers/food/snacks/sliceable/tofubread = 10, + /obj/item/weapon/reagent_containers/food/snacks/slime = 10, + /obj/item/weapon/reagent_containers/food/snacks/sosjerky = 10, + /obj/item/weapon/reagent_containers/food/snacks/soup/onion = 10, + /obj/item/weapon/reagent_containers/food/snacks/soydope = 10, + /obj/item/weapon/reagent_containers/food/snacks/soylentgreen = 10, + /obj/item/weapon/reagent_containers/food/snacks/soylenviridians = 10, + /obj/item/weapon/reagent_containers/food/snacks/spacetwinkie = 10, + /obj/item/weapon/reagent_containers/food/snacks/spesslaw = 10, + /obj/item/weapon/reagent_containers/food/snacks/spreads = 10, + /obj/item/weapon/reagent_containers/food/snacks/spreads/butter = 10, + /obj/item/weapon/reagent_containers/food/snacks/stew = 10, + /obj/item/weapon/reagent_containers/food/snacks/stewedsoymeat = 10, + /obj/item/weapon/reagent_containers/food/snacks/stuffed_meatball = 10, + /obj/item/weapon/reagent_containers/food/snacks/stuffing = 10, + /obj/item/weapon/reagent_containers/food/snacks/sugarcookie = 10, + /obj/item/weapon/reagent_containers/food/snacks/superbiteburger = 10, + /obj/item/weapon/reagent_containers/food/snacks/sweet_and_sour = 10, + /obj/item/weapon/reagent_containers/food/snacks/syndicake = 10, + /obj/item/weapon/reagent_containers/food/snacks/taco = 10, + /obj/item/weapon/reagent_containers/food/snacks/tastybread = 10, + /obj/item/weapon/reagent_containers/food/snacks/toastedsandwich = 10, + /obj/item/weapon/reagent_containers/food/snacks/tofu = 10, + /obj/item/weapon/reagent_containers/food/snacks/tofuburger = 10, + /obj/item/weapon/reagent_containers/food/snacks/tofukabob = 10, + /obj/item/weapon/reagent_containers/food/snacks/tofupie = 10, + /obj/item/weapon/reagent_containers/food/snacks/tofurkey = 10, + /obj/item/weapon/reagent_containers/food/snacks/tomatomeat = 10, + /obj/item/weapon/reagent_containers/food/snacks/tomatosoup = 10, + /obj/item/weapon/reagent_containers/food/snacks/tossedsalad = 10, + /obj/item/weapon/reagent_containers/food/snacks/truffle = 10, + /obj/item/weapon/reagent_containers/food/snacks/truffle/random = 10, + /obj/item/weapon/reagent_containers/food/snacks/tuna = 10, + /obj/item/weapon/reagent_containers/food/snacks/twobread = 10, + /obj/item/weapon/reagent_containers/food/snacks/unajerky = 10, + /obj/item/weapon/reagent_containers/food/snacks/validsalad = 10, + /obj/item/weapon/reagent_containers/food/snacks/vegetablesoup = 10, + /obj/item/weapon/reagent_containers/food/snacks/veggiemomo = 10, + /obj/item/weapon/reagent_containers/food/snacks/waffles = 10, + /obj/item/weapon/reagent_containers/food/snacks/watermelonslice = 10, + /obj/item/weapon/reagent_containers/food/snacks/wingfangchu = 10, + /obj/item/weapon/reagent_containers/food/snacks/wishsoup = 10, + /obj/item/weapon/reagent_containers/food/snacks/yellowcurry = 10, + /obj/item/weapon/reagent_containers/food/snacks/zestfish = 10, + /obj/item/weapon/reagent_containers/food/snacks/amanita_pie = 10, + /obj/item/weapon/reagent_containers/food/snacks/amanitajelly = 10, + /obj/item/weapon/reagent_containers/food/snacks/badrecipe = 10, + /obj/item/weapon/reagent_containers/food/snacks/berryclafoutis/poison = 10, + /obj/item/weapon/reagent_containers/food/snacks/berrymuffin/poison = 10, + /obj/item/weapon/reagent_containers/food/snacks/boiledslimecore = 10, + /obj/item/weapon/reagent_containers/food/snacks/brainburger = 10, + /obj/item/weapon/reagent_containers/food/snacks/chaoscakeslice = 10, + /obj/item/weapon/reagent_containers/food/snacks/donut/chaos = 10, + /obj/item/weapon/reagent_containers/food/snacks/donut/poisonberry = 10, + /obj/item/weapon/reagent_containers/food/snacks/donut/slimejelly = 10, + /obj/item/weapon/reagent_containers/food/snacks/ghostmuffin/poison = 10, + /obj/item/weapon/reagent_containers/food/snacks/hotdog/old = 10, + /obj/item/weapon/reagent_containers/food/snacks/hugemushroomslice = 10, + /obj/item/weapon/reagent_containers/food/snacks/human/burger = 10, + /obj/item/weapon/reagent_containers/food/snacks/human/kabob = 10, + /obj/item/weapon/reagent_containers/food/snacks/jelliedtoast/slime = 10, + /obj/item/weapon/reagent_containers/food/snacks/jellyburger/slime/ = 10, + /obj/item/weapon/reagent_containers/food/snacks/jellysandwich/slime = 10, + /obj/item/weapon/reagent_containers/food/snacks/mint/admints = 10, + /obj/item/weapon/reagent_containers/food/snacks/organ = 10, + /obj/item/weapon/reagent_containers/food/snacks/reishicup = 10, + /obj/item/weapon/reagent_containers/food/snacks/roburger = 10, + /obj/item/weapon/reagent_containers/food/snacks/roburgerbig = 10, + /obj/item/weapon/reagent_containers/food/snacks/rofflewaffles = 10, + /obj/item/weapon/reagent_containers/food/snacks/slice/braincake = 10, + /obj/item/weapon/reagent_containers/food/snacks/slice/xenomeatbread = 10, + /obj/item/weapon/reagent_containers/food/snacks/sliceable/cosmicbrownies = 10, + /obj/item/weapon/reagent_containers/food/snacks/sliceable/pizza/oldpizza = 10, + /obj/item/weapon/reagent_containers/food/snacks/sliceable/xenomeatbread = 10, + /obj/item/weapon/reagent_containers/food/snacks/slimesoup = 10, + /obj/item/weapon/reagent_containers/food/snacks/snakesnack = 10, + /obj/item/weapon/reagent_containers/food/snacks/spacylibertyduff = 10, + /obj/item/weapon/reagent_containers/food/snacks/spellburger = 10, + /obj/item/weapon/reagent_containers/food/snacks/worm = 10, + /obj/item/weapon/reagent_containers/food/snacks/wormdeluxe = 10, + /obj/item/weapon/reagent_containers/food/snacks/wormsickly = 10, + /obj/item/weapon/reagent_containers/food/snacks/xemeatpie = 10, + /obj/item/weapon/reagent_containers/food/snacks/xenoburger = 10, + /obj/item/weapon/reagent_containers/food/snacks/bearmeat = 10, + /obj/item/weapon/reagent_containers/food/snacks/carpmeat = 10, + /obj/item/weapon/reagent_containers/food/snacks/carpmeat/fish = 10, + /obj/item/weapon/reagent_containers/food/snacks/carpmeat/fish/sharkmeat = 10, + /obj/item/weapon/reagent_containers/food/snacks/carpmeat/sif = 10, + /obj/item/weapon/reagent_containers/food/snacks/carpmeat/sif/murkfish = 10, + /obj/item/weapon/reagent_containers/food/snacks/cuttlefish = 10, + /obj/item/weapon/reagent_containers/food/snacks/egg = 10, + /obj/item/weapon/reagent_containers/food/snacks/egg/blue = 10, + /obj/item/weapon/reagent_containers/food/snacks/egg/green = 10, + /obj/item/weapon/reagent_containers/food/snacks/egg/mime = 10, + /obj/item/weapon/reagent_containers/food/snacks/egg/orange = 10, + /obj/item/weapon/reagent_containers/food/snacks/egg/purple = 10, + /obj/item/weapon/reagent_containers/food/snacks/egg/rainbow = 10, + /obj/item/weapon/reagent_containers/food/snacks/egg/red = 10, + /obj/item/weapon/reagent_containers/food/snacks/egg/yellow = 10, + /obj/item/weapon/reagent_containers/food/snacks/lobster = 10, + /obj/item/weapon/reagent_containers/food/snacks/meat/grubmeat = 10, + /obj/item/weapon/reagent_containers/food/snacks/meat/chicken = 10, + /obj/item/weapon/reagent_containers/food/snacks/meat/corgi = 10, + /obj/item/weapon/reagent_containers/food/snacks/meat/crab = 10, + /obj/item/weapon/reagent_containers/food/snacks/meat/fox = 10, + /obj/item/weapon/reagent_containers/food/snacks/meat/grubmeat = 10, + /obj/item/weapon/reagent_containers/food/snacks/meat/human = 10, + /obj/item/weapon/reagent_containers/food/snacks/meat/monkey = 10, + /obj/item/weapon/reagent_containers/food/snacks/meat/syntiflesh = 10, + /obj/item/weapon/reagent_containers/food/snacks/meat/worm = 10, + /obj/item/weapon/reagent_containers/food/snacks/monkeycube = 10, + /obj/item/weapon/reagent_containers/food/snacks/monkeycube/farwacube = 10, + /obj/item/weapon/reagent_containers/food/snacks/monkeycube/neaeracube = 10, + /obj/item/weapon/reagent_containers/food/snacks/monkeycube/sarucube = 10, + /obj/item/weapon/reagent_containers/food/snacks/monkeycube/sobakacube = 10, + /obj/item/weapon/reagent_containers/food/snacks/monkeycube/sparracube = 10, + /obj/item/weapon/reagent_containers/food/snacks/monkeycube/stokcube = 10, + /obj/item/weapon/reagent_containers/food/snacks/monkeycube/wolpincube = 10, + /obj/item/weapon/reagent_containers/food/snacks/monkeykabob = 10, + /obj/item/weapon/reagent_containers/food/snacks/monkeysdelight = 10, + /obj/item/weapon/reagent_containers/food/snacks/monkfishfillet = 10, + /obj/item/weapon/reagent_containers/food/snacks/pineapple_ring = 10, + /obj/item/weapon/reagent_containers/food/snacks/rawbacon = 10, + /obj/item/weapon/reagent_containers/food/snacks/rawsunflower = 10, + /obj/item/weapon/reagent_containers/food/snacks/sharkmeat = 10, + /obj/item/weapon/reagent_containers/food/snacks/sliceable/birthdaycake = 10, + /obj/item/weapon/reagent_containers/food/snacks/sliceable/cheesewheel = 10, + /obj/item/weapon/reagent_containers/food/snacks/sliceable/monkfish = 10, + /obj/item/weapon/reagent_containers/food/snacks/sliceable/monkfishremains = 10, + /obj/item/weapon/reagent_containers/food/snacks/sliceable/sharkchunk = 10, + /obj/item/weapon/reagent_containers/food/snacks/spagetti = 10, + /obj/item/weapon/reagent_containers/food/snacks/xenomeat = 10, + /obj/item/weapon/reagent_containers/food/snacks/xenomeat/spidermeat = 10) + vend_delay = 15 + +/obj/machinery/vending/event/food/safe //FOR FACILITATING/OUTFITTING EVENTS, DO NOT PUT THESE ON THE MAP// + name = "Dog Food" + desc = "Food made by dogs!" + product_ads = "EAT FOOD!!!;Awooooooooooooooo!~;Made by actual dogs!;Now with twenty percent more taste!!!" + icon = 'icons/obj/vending.dmi' + icon_state = "fridge_food" + products = list(/obj/item/weapon/tray = 50, + /obj/item/weapon/material/kitchen/utensil/fork = 50, + /obj/item/weapon/material/knife/plastic = 50, + /obj/item/weapon/material/kitchen/utensil/spoon = 50, + /obj/item/weapon/storage/mre = 10, + /obj/item/weapon/storage/mre/menu2 = 10, + /obj/item/weapon/storage/mre/menu3 = 10, + /obj/item/weapon/storage/mre/menu4 = 10, + /obj/item/weapon/storage/mre/menu5 = 10, + /obj/item/weapon/storage/mre/menu6 = 10, + /obj/item/weapon/storage/mre/menu7 = 10, + /obj/item/weapon/storage/mre/menu8 = 10, + /obj/item/weapon/storage/mre/menu9 = 10, + /obj/item/weapon/storage/mre/menu10 = 10, + /obj/item/weapon/reagent_containers/food/snacks/aesirsalad = 10, + /obj/item/weapon/reagent_containers/food/snacks/applepie = 10, + /obj/item/weapon/reagent_containers/food/snacks/appletart = 10, + /obj/item/weapon/reagent_containers/food/snacks/bacon = 10, + /obj/item/weapon/reagent_containers/food/snacks/bacon_and_eggs = 10, + /obj/item/weapon/reagent_containers/food/snacks/bacon_flatbread = 10, + /obj/item/weapon/reagent_containers/food/snacks/bacon_stick = 10, + /obj/item/weapon/reagent_containers/food/snacks/bagelplain = 10, + /obj/item/weapon/reagent_containers/food/snacks/bagelcheese = 10, + /obj/item/weapon/reagent_containers/food/snacks/bageleverything = 10, + /obj/item/weapon/reagent_containers/food/snacks/bagelpoppy = 10, + /obj/item/weapon/reagent_containers/food/snacks/bagelraisin = 10, + /obj/item/weapon/reagent_containers/food/snacks/bagelsunflower = 10, + /obj/item/weapon/reagent_containers/food/snacks/bageltwo = 10, + /obj/item/weapon/reagent_containers/food/snacks/baguette = 10, + /obj/item/weapon/reagent_containers/food/snacks/bangersandmash = 10, + /obj/item/weapon/reagent_containers/food/snacks/beans = 10, + /obj/item/weapon/reagent_containers/food/snacks/bearburger = 10, + /obj/item/weapon/reagent_containers/food/snacks/bearchili = 10, + /obj/item/weapon/reagent_containers/food/snacks/bearstew = 10, + /obj/item/weapon/reagent_containers/food/snacks/beetsoup = 10, + /obj/item/weapon/reagent_containers/food/snacks/benedict = 10, + /obj/item/weapon/reagent_containers/food/snacks/berryclafoutis/berry = 10, + /obj/item/weapon/reagent_containers/food/snacks/berrymuffin/berry = 10, + /obj/item/weapon/reagent_containers/food/snacks/bibimbap = 10, + /obj/item/weapon/reagent_containers/food/snacks/bigbiteburger = 10, + /obj/item/weapon/reagent_containers/food/snacks/blackpudding = 10, + /obj/item/weapon/reagent_containers/food/snacks/bloodsoup = 10, + /obj/item/weapon/reagent_containers/food/snacks/blt = 10, + /obj/item/weapon/reagent_containers/food/snacks/boiledegg = 10, + /obj/item/weapon/reagent_containers/food/snacks/boiledrice = 10, + /obj/item/weapon/reagent_containers/food/snacks/boiledspagetti = 10, + /obj/item/weapon/reagent_containers/food/snacks/breakfast_wrap = 10, + /obj/item/weapon/reagent_containers/food/snacks/browniesslice = 10, + /obj/item/weapon/reagent_containers/food/snacks/browniesslice/filled = 10, + /obj/item/weapon/reagent_containers/food/snacks/bugball = 10, + /obj/item/weapon/reagent_containers/food/snacks/bun = 10, + /obj/item/weapon/reagent_containers/food/snacks/bunbun = 10, + /obj/item/weapon/reagent_containers/food/snacks/burger/bacon = 10, + /obj/item/weapon/reagent_containers/food/snacks/burrito = 10, + /obj/item/weapon/reagent_containers/food/snacks/burrito_cheese = 10, + /obj/item/weapon/reagent_containers/food/snacks/burrito_vegan = 10, + /obj/item/weapon/reagent_containers/food/snacks/burrito_spicy = 10, + /obj/item/weapon/reagent_containers/food/snacks/burrito_cheese_spicy = 10, + /obj/item/weapon/reagent_containers/food/snacks/burrito_mystery = 10, + /obj/item/weapon/reagent_containers/food/snacks/burrito_hell = 10, + /obj/item/weapon/reagent_containers/food/snacks/candiedapple = 10, + /obj/item/weapon/reagent_containers/food/snacks/candy = 10, + /obj/item/weapon/reagent_containers/food/snacks/candy/donor = 10, + /obj/item/weapon/reagent_containers/food/snacks/candy/gummy = 10, + /obj/item/weapon/reagent_containers/food/snacks/candy/proteinbar = 10, + /obj/item/weapon/reagent_containers/food/snacks/candy_corn = 10, + /obj/item/weapon/reagent_containers/food/snacks/carrotfries = 10, + /obj/item/weapon/reagent_containers/food/snacks/cb01 = 10, + /obj/item/weapon/reagent_containers/food/snacks/cb02 = 10, + /obj/item/weapon/reagent_containers/food/snacks/cb03 = 10, + /obj/item/weapon/reagent_containers/food/snacks/cb04 = 10, + /obj/item/weapon/reagent_containers/food/snacks/cb05 = 10, + /obj/item/weapon/reagent_containers/food/snacks/cb06 = 10, + /obj/item/weapon/reagent_containers/food/snacks/cb07 = 10, + /obj/item/weapon/reagent_containers/food/snacks/cb08 = 10, + /obj/item/weapon/reagent_containers/food/snacks/cb09 = 10, + /obj/item/weapon/reagent_containers/food/snacks/cb10 = 10, + /obj/item/weapon/reagent_containers/food/snacks/chawanmushi = 10, + /obj/item/weapon/reagent_containers/food/snacks/cheese_cracker = 10, + /obj/item/weapon/reagent_containers/food/snacks/cheeseburger = 10, + /obj/item/weapon/reagent_containers/food/snacks/cheeseburrito = 10, + /obj/item/weapon/reagent_containers/food/snacks/cheesenachos = 10, + /obj/item/weapon/reagent_containers/food/snacks/cheesewedge = 10, + /obj/item/weapon/reagent_containers/food/snacks/cheesiehonkers = 10, + /obj/item/weapon/reagent_containers/food/snacks/cheesyfries = 10, + /obj/item/weapon/reagent_containers/food/snacks/cheesymash = 10, + /obj/item/weapon/reagent_containers/food/snacks/cherrypie = 10, + /obj/item/weapon/reagent_containers/food/snacks/chickenfillet = 10, + /obj/item/weapon/reagent_containers/food/snacks/chickenkatsu = 10, + /obj/item/weapon/reagent_containers/food/snacks/chickenmomo = 10, + /obj/item/weapon/reagent_containers/food/snacks/chickenwing = 10, + /obj/item/weapon/reagent_containers/food/snacks/chilicheesefries = 10, + /obj/item/weapon/reagent_containers/food/snacks/chilied_eggs = 10, + /obj/item/weapon/reagent_containers/food/snacks/chip = 10, + /obj/item/weapon/reagent_containers/food/snacks/chip/cheese = 10, + /obj/item/weapon/reagent_containers/food/snacks/chip/guac = 10, + /obj/item/weapon/reagent_containers/food/snacks/chip/salsa = 10, + /obj/item/weapon/reagent_containers/food/snacks/chip/nacho = 10, + /obj/item/weapon/reagent_containers/food/snacks/chip/nacho/cheese = 10, + /obj/item/weapon/reagent_containers/food/snacks/chip/nacho/guac = 10, + /obj/item/weapon/reagent_containers/food/snacks/chip/nacho/salsa = 10, + /obj/item/weapon/reagent_containers/food/snacks/chipplate = 10, + /obj/item/weapon/reagent_containers/food/snacks/chipplate/nachos = 10, + /obj/item/weapon/reagent_containers/food/snacks/chips = 10, + /obj/item/weapon/reagent_containers/food/snacks/chips/bbq = 10, + /obj/item/weapon/reagent_containers/food/snacks/chocolatebar = 10, + /obj/item/weapon/reagent_containers/food/snacks/chocolateegg = 10, + /obj/item/weapon/reagent_containers/food/snacks/chocolatepiece = 10, + /obj/item/weapon/reagent_containers/food/snacks/chocolatepiece/truffle = 10, + /obj/item/weapon/reagent_containers/food/snacks/chocolatepiece/white = 10, + /obj/item/weapon/reagent_containers/food/snacks/clownburger = 10, + /obj/item/weapon/reagent_containers/food/snacks/clownstears = 10, + /obj/item/weapon/reagent_containers/food/snacks/coldchili = 10, + /obj/item/weapon/reagent_containers/food/snacks/cookie = 10, + /obj/item/weapon/reagent_containers/food/snacks/cookiesnack = 10, + /obj/item/weapon/reagent_containers/food/snacks/corn_dog = 10, + /obj/item/weapon/reagent_containers/food/snacks/cosmicbrowniesslice = 10, + /obj/item/weapon/reagent_containers/food/snacks/cosmicbrowniesslice/filled = 10, + /obj/item/weapon/reagent_containers/food/snacks/crab_legs = 10, + /obj/item/weapon/reagent_containers/food/snacks/crabmeat = 10, + /obj/item/weapon/reagent_containers/food/snacks/cracker = 10, + /obj/item/weapon/reagent_containers/food/snacks/croissant = 10, + /obj/item/weapon/reagent_containers/food/snacks/csandwich = 10, + /obj/item/weapon/reagent_containers/food/snacks/cubancarp = 10, + /obj/item/weapon/reagent_containers/food/snacks/cubannachos = 10, + /obj/item/weapon/reagent_containers/food/snacks/cube = 10, + /obj/item/weapon/reagent_containers/food/snacks/cube/nutriment = 10, + /obj/item/weapon/reagent_containers/food/snacks/cube/protein = 10, + /obj/item/weapon/reagent_containers/food/snacks/curryrice = 10, + /obj/item/weapon/reagent_containers/food/snacks/custardbun = 10, + /obj/item/weapon/reagent_containers/food/snacks/cutlet = 10, + /obj/item/weapon/reagent_containers/food/snacks/cuttlefishcooked = 10, + /obj/item/weapon/reagent_containers/food/snacks/devilledegg = 10, + /obj/item/weapon/reagent_containers/food/snacks/dionaroast = 10, + /obj/item/weapon/reagent_containers/food/snacks/dip = 10, + /obj/item/weapon/reagent_containers/food/snacks/dip/guac = 10, + /obj/item/weapon/reagent_containers/food/snacks/dip/salsa = 10, + /obj/item/weapon/reagent_containers/food/snacks/donerkebab = 10, + /obj/item/weapon/reagent_containers/food/snacks/donkpocket = 10, + /obj/item/weapon/reagent_containers/food/snacks/donkpocket/sinpocket = 10, + /obj/item/weapon/reagent_containers/food/snacks/donut = 10, + /obj/item/weapon/reagent_containers/food/snacks/donut/cherryjelly = 10, + /obj/item/weapon/reagent_containers/food/snacks/donut/jelly = 10, + /obj/item/weapon/reagent_containers/food/snacks/donut/normal = 10, + /obj/item/weapon/reagent_containers/food/snacks/egg_pancake = 10, + /obj/item/weapon/reagent_containers/food/snacks/eggbowl = 10, + /obj/item/weapon/reagent_containers/food/snacks/eggplantparm = 10, + /obj/item/weapon/reagent_containers/food/snacks/eggroll = 10, + /obj/item/weapon/reagent_containers/food/snacks/enchiladas = 10, + /obj/item/weapon/reagent_containers/food/snacks/father_breakfast = 10, + /obj/item/weapon/reagent_containers/food/snacks/fish_taco = 10, + /obj/item/weapon/reagent_containers/food/snacks/fishandchips = 10, + /obj/item/weapon/reagent_containers/food/snacks/fishburger = 10, + /obj/item/weapon/reagent_containers/food/snacks/fishfingers = 10, + /obj/item/weapon/reagent_containers/food/snacks/flatbread = 10, + /obj/item/weapon/reagent_containers/food/snacks/flowerchildsalad = 10, + /obj/item/weapon/reagent_containers/food/snacks/fortunecookie = 10, + /obj/item/weapon/reagent_containers/food/snacks/friedegg = 10, + /obj/item/weapon/reagent_containers/food/snacks/friedmushroom = 10, + /obj/item/weapon/reagent_containers/food/snacks/friedrice = 10, + /obj/item/weapon/reagent_containers/food/snacks/fries = 10, + /obj/item/weapon/reagent_containers/food/snacks/fruitbar = 10, + /obj/item/weapon/reagent_containers/food/snacks/fruitsalad = 10, + /obj/item/weapon/reagent_containers/food/snacks/fuegoburrito = 10, + /obj/item/weapon/reagent_containers/food/snacks/funnelcake = 10, + /obj/item/weapon/reagent_containers/food/snacks/generalschicken = 10, + /obj/item/weapon/reagent_containers/food/snacks/ghostburger = 10, + /obj/item/weapon/reagent_containers/food/snacks/ghostmuffin = 10, + /obj/item/weapon/reagent_containers/food/snacks/ghostmuffin/berry = 10, + /obj/item/weapon/reagent_containers/food/snacks/goulash = 10, + /obj/item/weapon/reagent_containers/food/snacks/greencurry = 10, + /obj/item/weapon/reagent_containers/food/snacks/grilled_carp_slice = 10, + /obj/item/weapon/reagent_containers/food/snacks/grilledcheese = 10, + /obj/item/weapon/reagent_containers/food/snacks/hatchling_suprise = 10, + /obj/item/weapon/reagent_containers/food/snacks/honeybun = 10, + /obj/item/weapon/reagent_containers/food/snacks/honeytoast = 10, + /obj/item/weapon/reagent_containers/food/snacks/honeytoast = 10, + /obj/item/weapon/reagent_containers/food/snacks/hotchili = 10, + /obj/item/weapon/reagent_containers/food/snacks/hotdog = 10, + /obj/item/weapon/reagent_containers/food/snacks/icecream = 10, + /obj/item/weapon/reagent_containers/food/snacks/icecreamsandwich = 10, + /obj/item/weapon/reagent_containers/food/snacks/jalapeno_poppers = 10, + /obj/item/weapon/reagent_containers/food/snacks/jelliedtoast = 10, + /obj/item/weapon/reagent_containers/food/snacks/jelliedtoast/cherry = 10, + /obj/item/weapon/reagent_containers/food/snacks/jellyburger = 10, + /obj/item/weapon/reagent_containers/food/snacks/jellyburger/cherry = 10, + /obj/item/weapon/reagent_containers/food/snacks/jellysandwich = 10, + /obj/item/weapon/reagent_containers/food/snacks/jellysandwich/cherry = 10, + /obj/item/weapon/reagent_containers/food/snacks/jellysandwich/peanutbutter = 10, + /obj/item/weapon/reagent_containers/food/snacks/kabob = 10, + /obj/item/weapon/reagent_containers/food/snacks/keylimepieslice = 10, + /obj/item/weapon/reagent_containers/food/snacks/keylimepieslice/filled = 10, + /obj/item/weapon/reagent_containers/food/snacks/kitsuneudon = 10, + /obj/item/weapon/reagent_containers/food/snacks/kudzudonburi = 10, + /obj/item/weapon/reagent_containers/food/snacks/lasagna = 10, + /obj/item/weapon/reagent_containers/food/snacks/liquidfood = 10, + /obj/item/weapon/reagent_containers/food/snacks/liquidprotein = 10, + /obj/item/weapon/reagent_containers/food/snacks/liquidvitamin = 10, + /obj/item/weapon/reagent_containers/food/snacks/loadedbakedpotato = 10, + /obj/item/weapon/reagent_containers/food/snacks/lobstercooked = 10, + /obj/item/weapon/reagent_containers/food/snacks/lomein = 10, + /obj/item/weapon/reagent_containers/food/snacks/macncheese = 10, + /obj/item/weapon/reagent_containers/food/snacks/makaroni = 10, + /obj/item/weapon/reagent_containers/food/snacks/mammi = 10, + /obj/item/weapon/reagent_containers/food/snacks/mashedpotato = 10, + /obj/item/weapon/reagent_containers/food/snacks/meat_pocket = 10, + /obj/item/weapon/reagent_containers/food/snacks/meatball = 10, + /obj/item/weapon/reagent_containers/food/snacks/meatballsoup = 10, + /obj/item/weapon/reagent_containers/food/snacks/meatballspagetti = 10, + /obj/item/weapon/reagent_containers/food/snacks/meatbun = 10, + /obj/item/weapon/reagent_containers/food/snacks/meatburrito = 10, + /obj/item/weapon/reagent_containers/food/snacks/meatcube = 10, + /obj/item/weapon/reagent_containers/food/snacks/meatpie = 10, + /obj/item/weapon/reagent_containers/food/snacks/meatsteak = 10, + /obj/item/weapon/reagent_containers/food/snacks/microchips = 10, + /obj/item/weapon/reagent_containers/food/snacks/milosoup = 10, + /obj/item/weapon/reagent_containers/food/snacks/mimeburger = 10, + /obj/item/weapon/reagent_containers/food/snacks/mint = 10, + /obj/item/weapon/reagent_containers/food/snacks/monkeyburger = 10, + /obj/item/weapon/reagent_containers/food/snacks/monkfishcooked = 10, + /obj/item/weapon/reagent_containers/food/snacks/mouseburger = 10, + /obj/item/weapon/reagent_containers/food/snacks/muffin = 10, + /obj/item/weapon/reagent_containers/food/snacks/mushroomsoup = 10, + /obj/item/weapon/reagent_containers/food/snacks/mysterysoup = 10, + /obj/item/weapon/reagent_containers/food/snacks/nachos = 10, + /obj/item/weapon/reagent_containers/food/snacks/nettlesoup = 10, + /obj/item/weapon/reagent_containers/food/snacks/no_raisin = 10, + /obj/item/weapon/reagent_containers/food/snacks/nt_muffin = 10, + /obj/item/weapon/reagent_containers/food/snacks/nugget = 10, + /obj/item/weapon/reagent_containers/food/snacks/nutrimentslab = 10, + /obj/item/weapon/reagent_containers/food/snacks/omelette = 10, + /obj/item/weapon/reagent_containers/food/snacks/onionrings = 10, + /obj/item/weapon/reagent_containers/food/snacks/onionsoup = 10, + /obj/item/weapon/reagent_containers/food/snacks/ovenchips = 10, + /obj/item/weapon/reagent_containers/food/snacks/pancakes = 10, + /obj/item/weapon/reagent_containers/food/snacks/pastatomato = 10, + /obj/item/weapon/reagent_containers/food/snacks/pie = 10, + /obj/item/weapon/reagent_containers/food/snacks/piginblanket = 10, + /obj/item/weapon/reagent_containers/food/snacks/pillbug = 10, + /obj/item/weapon/reagent_containers/food/snacks/pineapple_ring = 10, + /obj/item/weapon/reagent_containers/food/snacks/pineappleslice = 10, + /obj/item/weapon/reagent_containers/food/snacks/pineappleslice/filled = 10, + /obj/item/weapon/reagent_containers/food/snacks/pisanggoreng = 10, + /obj/item/weapon/reagent_containers/food/snacks/pistachios = 10, + /obj/item/weapon/reagent_containers/food/snacks/pizzacrunchslice = 10, + /obj/item/weapon/reagent_containers/food/snacks/plump_pie = 10, + /obj/item/weapon/reagent_containers/food/snacks/plumphelmetbiscuit = 10, + /obj/item/weapon/reagent_containers/food/snacks/poachedegg = 10, + /obj/item/weapon/reagent_containers/food/snacks/popcorn = 10, + /obj/item/weapon/reagent_containers/food/snacks/poppypretzel = 10, + /obj/item/weapon/reagent_containers/food/snacks/porkbowl = 10, + /obj/item/weapon/reagent_containers/food/snacks/proteinslab = 10, + /obj/item/weapon/reagent_containers/food/snacks/quicheslice = 10, + /obj/item/weapon/reagent_containers/food/snacks/quicheslice/filled = 10, + /obj/item/weapon/reagent_containers/food/snacks/red_sun_special = 10, + /obj/item/weapon/reagent_containers/food/snacks/redcurry = 10, + /obj/item/weapon/reagent_containers/food/snacks/ribplate = 10, + /obj/item/weapon/reagent_containers/food/snacks/ricepudding = 10, + /obj/item/weapon/reagent_containers/food/snacks/risotto = 10, + /obj/item/weapon/reagent_containers/food/snacks/risottoballs = 10, + /obj/item/weapon/reagent_containers/food/snacks/riztizkzi_sea = 10, + /obj/item/weapon/reagent_containers/food/snacks/roastbeef = 10, + /obj/item/weapon/reagent_containers/food/snacks/roastedpeanuts = 10, + /obj/item/weapon/reagent_containers/food/snacks/roastedsunflower = 10, + /obj/item/weapon/reagent_containers/food/snacks/rosesalad = 10, + /obj/item/weapon/reagent_containers/food/snacks/sandwich = 10, + /obj/item/weapon/reagent_containers/food/snacks/sashimi = 10, + /obj/item/weapon/reagent_containers/food/snacks/sausage = 10, + /obj/item/weapon/reagent_containers/food/snacks/sausage/battered = 10, + /obj/item/weapon/reagent_containers/food/snacks/semki = 10, + /obj/item/weapon/reagent_containers/food/snacks/sharkmeatcooked = 10, + /obj/item/weapon/reagent_containers/food/snacks/sharkmeatcubes = 10, + /obj/item/weapon/reagent_containers/food/snacks/sharkmeatdip = 10, + /obj/item/weapon/reagent_containers/food/snacks/siffruit = 10, + /obj/item/weapon/reagent_containers/food/snacks/skrellsnacks = 10, + /obj/item/weapon/reagent_containers/food/snacks/slice/applecake = 10, + /obj/item/weapon/reagent_containers/food/snacks/slice/bananabread = 10, + /obj/item/weapon/reagent_containers/food/snacks/slice/birthdaycake = 10, + /obj/item/weapon/reagent_containers/food/snacks/slice/bread = 10, + /obj/item/weapon/reagent_containers/food/snacks/slice/carrotcake = 10, + /obj/item/weapon/reagent_containers/food/snacks/slice/cheesecake = 10, + /obj/item/weapon/reagent_containers/food/snacks/slice/chocolatecake = 10, + /obj/item/weapon/reagent_containers/food/snacks/slice/creamcheesebread = 10, + /obj/item/weapon/reagent_containers/food/snacks/slice/lemoncake = 10, + /obj/item/weapon/reagent_containers/food/snacks/slice/limecake = 10, + /obj/item/weapon/reagent_containers/food/snacks/slice/margherita = 10, + /obj/item/weapon/reagent_containers/food/snacks/slice/meatbread = 10, + /obj/item/weapon/reagent_containers/food/snacks/slice/meatpizza = 10, + /obj/item/weapon/reagent_containers/food/snacks/slice/mushroompizza = 10, + /obj/item/weapon/reagent_containers/food/snacks/slice/orangecake = 10, + /obj/item/weapon/reagent_containers/food/snacks/slice/peanutcake = 10, + /obj/item/weapon/reagent_containers/food/snacks/slice/pineapple = 10, + /obj/item/weapon/reagent_containers/food/snacks/slice/plaincake = 10, + /obj/item/weapon/reagent_containers/food/snacks/slice/pumpkinpie = 10, + /obj/item/weapon/reagent_containers/food/snacks/slice/tofubread = 10, + /obj/item/weapon/reagent_containers/food/snacks/slice/vegetablepizza = 10, + /obj/item/weapon/reagent_containers/food/snacks/sliceable/applecake = 10, + /obj/item/weapon/reagent_containers/food/snacks/sliceable/bananabread = 10, + /obj/item/weapon/reagent_containers/food/snacks/sliceable/birthdaycake = 10, + /obj/item/weapon/reagent_containers/food/snacks/sliceable/bread = 10, + /obj/item/weapon/reagent_containers/food/snacks/sliceable/brownies = 10, + /obj/item/weapon/reagent_containers/food/snacks/sliceable/carrotcake = 10, + /obj/item/weapon/reagent_containers/food/snacks/sliceable/cheesecake = 10, + /obj/item/weapon/reagent_containers/food/snacks/sliceable/cheesewheel = 10, + /obj/item/weapon/reagent_containers/food/snacks/sliceable/chocolatecake = 10, + /obj/item/weapon/reagent_containers/food/snacks/sliceable/creamcheesebread = 10, + /obj/item/weapon/reagent_containers/food/snacks/sliceable/grilled_carp = 10, + /obj/item/weapon/reagent_containers/food/snacks/sliceable/keylimepie = 10, + /obj/item/weapon/reagent_containers/food/snacks/sliceable/lemoncake = 10, + /obj/item/weapon/reagent_containers/food/snacks/sliceable/limecake = 10, + /obj/item/weapon/reagent_containers/food/snacks/sliceable/meatbread = 10, + /obj/item/weapon/reagent_containers/food/snacks/sliceable/orangecake = 10, + /obj/item/weapon/reagent_containers/food/snacks/sliceable/peanutcake = 10, + /obj/item/weapon/reagent_containers/food/snacks/sliceable/pizza/crunch = 10, + /obj/item/weapon/reagent_containers/food/snacks/sliceable/pizza/margherita = 10, + /obj/item/weapon/reagent_containers/food/snacks/sliceable/pizza/meatpizza = 10, + /obj/item/weapon/reagent_containers/food/snacks/sliceable/pizza/mushroompizza = 10, + /obj/item/weapon/reagent_containers/food/snacks/sliceable/pizza/pineapple = 10, + /obj/item/weapon/reagent_containers/food/snacks/sliceable/pizza/vegetablepizza = 10, + /obj/item/weapon/reagent_containers/food/snacks/sliceable/plaincake = 10, + /obj/item/weapon/reagent_containers/food/snacks/sliceable/pumpkinpie = 10, + /obj/item/weapon/reagent_containers/food/snacks/sliceable/quiche = 10, + /obj/item/weapon/reagent_containers/food/snacks/sliceable/sushi = 10, + /obj/item/weapon/reagent_containers/food/snacks/sliceable/tofubread = 10, + /obj/item/weapon/reagent_containers/food/snacks/slime = 10, + /obj/item/weapon/reagent_containers/food/snacks/sosjerky = 10, + /obj/item/weapon/reagent_containers/food/snacks/soup/onion = 10, + /obj/item/weapon/reagent_containers/food/snacks/soydope = 10, + /obj/item/weapon/reagent_containers/food/snacks/soylentgreen = 10, + /obj/item/weapon/reagent_containers/food/snacks/soylenviridians = 10, + /obj/item/weapon/reagent_containers/food/snacks/spacetwinkie = 10, + /obj/item/weapon/reagent_containers/food/snacks/spesslaw = 10, + /obj/item/weapon/reagent_containers/food/snacks/spreads = 10, + /obj/item/weapon/reagent_containers/food/snacks/spreads/butter = 10, + /obj/item/weapon/reagent_containers/food/snacks/stew = 10, + /obj/item/weapon/reagent_containers/food/snacks/stewedsoymeat = 10, + /obj/item/weapon/reagent_containers/food/snacks/stuffed_meatball = 10, + /obj/item/weapon/reagent_containers/food/snacks/stuffing = 10, + /obj/item/weapon/reagent_containers/food/snacks/sugarcookie = 10, + /obj/item/weapon/reagent_containers/food/snacks/superbiteburger = 10, + /obj/item/weapon/reagent_containers/food/snacks/sweet_and_sour = 10, + /obj/item/weapon/reagent_containers/food/snacks/syndicake = 10, + /obj/item/weapon/reagent_containers/food/snacks/taco = 10, + /obj/item/weapon/reagent_containers/food/snacks/tastybread = 10, + /obj/item/weapon/reagent_containers/food/snacks/toastedsandwich = 10, + /obj/item/weapon/reagent_containers/food/snacks/tofu = 10, + /obj/item/weapon/reagent_containers/food/snacks/tofuburger = 10, + /obj/item/weapon/reagent_containers/food/snacks/tofukabob = 10, + /obj/item/weapon/reagent_containers/food/snacks/tofupie = 10, + /obj/item/weapon/reagent_containers/food/snacks/tofurkey = 10, + /obj/item/weapon/reagent_containers/food/snacks/tomatomeat = 10, + /obj/item/weapon/reagent_containers/food/snacks/tomatosoup = 10, + /obj/item/weapon/reagent_containers/food/snacks/tossedsalad = 10, + /obj/item/weapon/reagent_containers/food/snacks/truffle = 10, + /obj/item/weapon/reagent_containers/food/snacks/truffle/random = 10, + /obj/item/weapon/reagent_containers/food/snacks/tuna = 10, + /obj/item/weapon/reagent_containers/food/snacks/twobread = 10, + /obj/item/weapon/reagent_containers/food/snacks/unajerky = 10, + /obj/item/weapon/reagent_containers/food/snacks/validsalad = 10, + /obj/item/weapon/reagent_containers/food/snacks/vegetablesoup = 10, + /obj/item/weapon/reagent_containers/food/snacks/veggiemomo = 10, + /obj/item/weapon/reagent_containers/food/snacks/waffles = 10, + /obj/item/weapon/reagent_containers/food/snacks/watermelonslice = 10, + /obj/item/weapon/reagent_containers/food/snacks/wingfangchu = 10, + /obj/item/weapon/reagent_containers/food/snacks/wishsoup = 10, + /obj/item/weapon/reagent_containers/food/snacks/yellowcurry = 10, + /obj/item/weapon/reagent_containers/food/snacks/zestfish = 10) + vend_delay = 15 + +/obj/machinery/vending/event/food/ingredients //FOR FACILITATING/OUTFITTING EVENTS, DO NOT PUT THESE ON THE MAP// + name = "Food Ingredients" + desc = "Food made by dogs!" + product_ads = "EAT FOOD!!!;Awooooooooooooooo!~;Made by actual dogs!;Now with twenty percent more taste!!!" + icon = 'icons/obj/vending.dmi' + icon_state = "fridge_food" + products = list(/obj/item/weapon/reagent_containers/food/snacks/bearmeat = 10, + /obj/item/weapon/reagent_containers/food/snacks/carpmeat = 10, + /obj/item/weapon/reagent_containers/food/snacks/carpmeat/fish = 10, + /obj/item/weapon/reagent_containers/food/snacks/carpmeat/fish/sharkmeat = 10, + /obj/item/weapon/reagent_containers/food/snacks/carpmeat/sif = 10, + /obj/item/weapon/reagent_containers/food/snacks/carpmeat/sif/murkfish = 10, + /obj/item/weapon/reagent_containers/food/snacks/cuttlefish = 10, + /obj/item/weapon/reagent_containers/food/snacks/egg = 10, + /obj/item/weapon/reagent_containers/food/snacks/egg/blue = 10, + /obj/item/weapon/reagent_containers/food/snacks/egg/green = 10, + /obj/item/weapon/reagent_containers/food/snacks/egg/mime = 10, + /obj/item/weapon/reagent_containers/food/snacks/egg/orange = 10, + /obj/item/weapon/reagent_containers/food/snacks/egg/purple = 10, + /obj/item/weapon/reagent_containers/food/snacks/egg/rainbow = 10, + /obj/item/weapon/reagent_containers/food/snacks/egg/red = 10, + /obj/item/weapon/reagent_containers/food/snacks/egg/yellow = 10, + /obj/item/weapon/reagent_containers/food/snacks/lobster = 10, + /obj/item/weapon/reagent_containers/food/snacks/meat/grubmeat = 10, + /obj/item/weapon/reagent_containers/food/snacks/meat/chicken = 10, + /obj/item/weapon/reagent_containers/food/snacks/meat/corgi = 10, + /obj/item/weapon/reagent_containers/food/snacks/meat/crab = 10, + /obj/item/weapon/reagent_containers/food/snacks/meat/fox = 10, + /obj/item/weapon/reagent_containers/food/snacks/meat/grubmeat = 10, + /obj/item/weapon/reagent_containers/food/snacks/meat/human = 10, + /obj/item/weapon/reagent_containers/food/snacks/meat/monkey = 10, + /obj/item/weapon/reagent_containers/food/snacks/meat/syntiflesh = 10, + /obj/item/weapon/reagent_containers/food/snacks/meat/worm = 10, + /obj/item/weapon/reagent_containers/food/snacks/monkeycube = 10, + /obj/item/weapon/reagent_containers/food/snacks/monkeycube/farwacube = 10, + /obj/item/weapon/reagent_containers/food/snacks/monkeycube/neaeracube = 10, + /obj/item/weapon/reagent_containers/food/snacks/monkeycube/sarucube = 10, + /obj/item/weapon/reagent_containers/food/snacks/monkeycube/sobakacube = 10, + /obj/item/weapon/reagent_containers/food/snacks/monkeycube/sparracube = 10, + /obj/item/weapon/reagent_containers/food/snacks/monkeycube/stokcube = 10, + /obj/item/weapon/reagent_containers/food/snacks/monkeycube/wolpincube = 10, + /obj/item/weapon/reagent_containers/food/snacks/monkeykabob = 10, + /obj/item/weapon/reagent_containers/food/snacks/monkeysdelight = 10, + /obj/item/weapon/reagent_containers/food/snacks/monkfishfillet = 10, + /obj/item/weapon/reagent_containers/food/snacks/pineapple_ring = 10, + /obj/item/weapon/reagent_containers/food/snacks/rawbacon = 10, + /obj/item/weapon/reagent_containers/food/snacks/rawsunflower = 10, + /obj/item/weapon/reagent_containers/food/snacks/sharkmeat = 10, + /obj/item/weapon/reagent_containers/food/snacks/sliceable/birthdaycake = 10, + /obj/item/weapon/reagent_containers/food/snacks/sliceable/cheesewheel = 10, + /obj/item/weapon/reagent_containers/food/snacks/sliceable/monkfish = 10, + /obj/item/weapon/reagent_containers/food/snacks/sliceable/monkfishremains = 10, + /obj/item/weapon/reagent_containers/food/snacks/sliceable/sharkchunk = 10, + /obj/item/weapon/reagent_containers/food/snacks/spagetti = 10, + /obj/item/weapon/reagent_containers/food/snacks/xenomeat = 10, + /obj/item/weapon/reagent_containers/food/snacks/xenomeat/spidermeat = 10) + vend_delay = 15 + +//TFF 19/12/19 - Brig version of a seed storage vendor +/obj/machinery/seed_storage/brig + name = "Prisoners' food seed storage" + starting_seeds = list( + /obj/item/seeds/appleseed = 3, + /obj/item/seeds/bananaseed = 3, + /obj/item/seeds/berryseed = 3, + /obj/item/seeds/cabbageseed = 3, + /obj/item/seeds/carrotseed = 3, + /obj/item/seeds/celery = 3, + /obj/item/seeds/chantermycelium = 3, + /obj/item/seeds/cherryseed = 3, + /obj/item/seeds/chiliseed = 3, + /obj/item/seeds/cocoapodseed = 3, + /obj/item/seeds/cornseed = 3, + /obj/item/seeds/durian = 3, + /obj/item/seeds/eggplantseed = 3, + /obj/item/seeds/grapeseed = 3, + /obj/item/seeds/grassseed = 3, + /obj/item/seeds/replicapod = 3, + /obj/item/seeds/lavenderseed = 3, + /obj/item/seeds/lemonseed = 3, + /obj/item/seeds/lettuce = 3, + /obj/item/seeds/limeseed = 3, + /obj/item/seeds/mtearseed = 2, + /obj/item/seeds/orangeseed = 3, + /obj/item/seeds/onionseed = 3, + /obj/item/seeds/peanutseed = 3, + /obj/item/seeds/plumpmycelium = 3, + /obj/item/seeds/poppyseed = 3, + /obj/item/seeds/potatoseed = 3, + /obj/item/seeds/pumpkinseed = 3, + /obj/item/seeds/rhubarb = 3, + /obj/item/seeds/riceseed = 3, + /obj/item/seeds/rose = 3, + /obj/item/seeds/soyaseed = 3, + /obj/item/seeds/spineapple = 3, + /obj/item/seeds/sugarcaneseed = 3, + /obj/item/seeds/sunflowerseed = 3, + /obj/item/seeds/shandseed = 2, + /obj/item/seeds/tobaccoseed = 3, + /obj/item/seeds/tomatoseed = 3, + /obj/item/seeds/towermycelium = 3, + /obj/item/seeds/vanilla = 3, + /obj/item/seeds/watermelonseed = 3, + /obj/item/seeds/wheatseed = 3, + /obj/item/seeds/whitebeetseed = 3, + /obj/item/seeds/wabback = 2) + +/obj/machinery/vending/hydronutrients/brig + name = "Brig NutriMax" + desc = "A plant nutrients vendor. Seems some items aren't included." + products = list(/obj/item/weapon/reagent_containers/glass/bottle/eznutrient = 6,/obj/item/weapon/reagent_containers/glass/bottle/left4zed = 4,/obj/item/weapon/reagent_containers/glass/bottle/robustharvest = 3,/obj/item/weapon/plantspray/pests = 20, + /obj/item/weapon/reagent_containers/glass/beaker = 4,/obj/item/weapon/storage/bag/plants = 5) + premium = list(/obj/item/weapon/reagent_containers/glass/bottle/ammonia = 10,/obj/item/weapon/reagent_containers/glass/bottle/diethylamine = 5) + +/obj/machinery/vending/emergencyfood + name = "Food Cube Dispenser" + desc = "An ominous machine dispensing food cubes. It will keep you fed, but at what cost?" + icon = 'icons/obj/vending_vr.dmi' + icon_state = "foodcube" + product_ads = "Afraid to starve?;Starvation is not an option!;Add water before consumption.;Let me take care of you.;Dire circumstances call for food cubes, do not let the taste deter you." + products = list(/obj/item/weapon/storage/box/wings/tray = 5, + /obj/item/weapon/reagent_containers/food/drinks/cans/waterbottle = 10) + contraband = list(/obj/item/weapon/storage/box/wings/tray = 5) + +/obj/machinery/vending/emergencyfood/filled + products = list(/obj/item/weapon/storage/box/wings/tray = 40) + contraband = list(/obj/item/weapon/storage/box/wings/tray = 20) + +/obj/machinery/vending/cola + icon_state = "Soda_Machine" + +/obj/machinery/vending/cola/soft + icon = 'icons/obj/vending_vr.dmi' + icon_state = "Cola_Machine" diff --git a/code/game/machinery/washing_machine.dm b/code/game/machinery/washing_machine.dm index 2cd581c9f1..c48f98fc33 100644 --- a/code/game/machinery/washing_machine.dm +++ b/code/game/machinery/washing_machine.dm @@ -32,7 +32,7 @@ /obj/machinery/washing_machine/Initialize() . = ..() default_apply_parts() - + /obj/machinery/washing_machine/AltClick() start() @@ -67,9 +67,14 @@ //Tanning! for(var/obj/item/stack/hairlesshide/HH in washing) - var/obj/item/stack/wetleather/WL = new(src) - WL.amount = HH.amount - qdel(HH) + var/obj/item/stack/WL = new HH.wet_type(src) + if(istype(WL)) + WL.amount = HH.amount + washing -= HH + HH.forceMove(get_turf(src)) + HH.use(HH.amount) + + washing += WL if(locate(/mob,washing)) state = 7 @@ -130,7 +135,7 @@ to_chat(user, "You can't fit \the [W] inside.") return - else if(istype(W, /obj/item/clothing) || istype(W, /obj/item/weapon/bedsheet)) + else if(istype(W, /obj/item/clothing) || istype(W, /obj/item/weapon/bedsheet) || istype(W, /obj/item/stack/hairlesshide)) if(washing.len < 5) if(state in list(1, 3)) user.drop_item() diff --git a/code/game/mecha/combat/fighter.dm b/code/game/mecha/combat/fighter.dm index 9d0fd7cfbf..bf176f6a69 100644 --- a/code/game/mecha/combat/fighter.dm +++ b/code/game/mecha/combat/fighter.dm @@ -13,6 +13,8 @@ icon_state = "" initial_icon = "" + dir_in = null //Don't reset direction when empty + step_in = 2 //Fast health = 400 diff --git a/code/game/objects/items/devices/paicard.dm b/code/game/objects/items/devices/paicard.dm index 77e463c0d0..c3850ad0dd 100644 --- a/code/game/objects/items/devices/paicard.dm +++ b/code/game/objects/items/devices/paicard.dm @@ -33,23 +33,29 @@ GLOBAL_LIST_BOILERPLATE(all_pai_cards, /obj/item/device/paicard) QDEL_NULL(radio) return ..() -/obj/item/device/paicard/attack_ghost(mob/observer/dead/user) - if(istype(user) && user.can_admin_interact()) - switch(alert(user, "Would you like to become a pAI by force? (Admin)", "pAI Creation", "Yes", "No")) - if("Yes") - // Copied from paiController/Topic - var/mob/living/silicon/pai/pai = new(src) - pai.name = user.name - pai.real_name = pai.name - pai.key = user.key +// VOREStation Edit - Allow everyone to become a pAI +/obj/item/device/paicard/attack_ghost(mob/user as mob) + if(pai != null) //Have a person in them already? + return ..() - setPersonality(pai) - looking_for_personality = FALSE + var/choice = input(user, "You sure you want to inhabit this PAI?") in list("Yes", "No") + if(choice == "No") + return ..() - if(pai.mind) - update_antag_icons(pai.mind) + var/pai_name = input(user, "Choose your character's name", "Character Name") as text + var/actual_pai_name = sanitize_name(pai_name) + if(isnull(actual_pai_name)) + return ..() + + var/turf/location = get_turf(src) + var/obj/item/device/paicard/card = new(location) + var/mob/living/silicon/pai/new_pai = new(card) + qdel(src) + new_pai.key = user.key + card.setPersonality(new_pai) + new_pai.SetName(actual_pai_name) return ..() - +// VOREStation Edit End /obj/item/device/paicard/attack_self(mob/user) if (!in_range(src, user)) diff --git a/code/game/objects/items/devices/radio/intercom.dm b/code/game/objects/items/devices/radio/intercom.dm index 05be57c265..b122b590ad 100644 --- a/code/game/objects/items/devices/radio/intercom.dm +++ b/code/game/objects/items/devices/radio/intercom.dm @@ -3,8 +3,7 @@ desc = "Talk through this." icon = 'icons/obj/radio_vr.dmi' //VOREStation Edit - New Icon icon_state = "intercom" - plane = TURF_PLANE - layer = ABOVE_TURF_LAYER + layer = ABOVE_WINDOW_LAYER anchored = 1 w_class = ITEMSIZE_LARGE canhear_range = 7 //VOREStation Edit diff --git a/code/game/objects/items/devices/uplink.dm b/code/game/objects/items/devices/uplink.dm index 5b6e55290e..c4069be3ed 100644 --- a/code/game/objects/items/devices/uplink.dm +++ b/code/game/objects/items/devices/uplink.dm @@ -112,6 +112,7 @@ GLOBAL_LIST_BOILERPLATE(world_uplinks, /obj/item/device/uplink) /obj/item/device/uplink/hidden/tgui_interact(mob/user, datum/tgui/ui, datum/tgui/parent_ui) if(!active) toggle() + uses = user.mind.tcrystals ui = SStgui.try_update_ui(user, src, ui) if(!ui) ui = new(user, src, "Uplink", "Remote Uplink") diff --git a/code/game/objects/items/stacks/sheets/leather.dm b/code/game/objects/items/stacks/sheets/leather.dm index 8bf366268a..54bc1e2fce 100644 --- a/code/game/objects/items/stacks/sheets/leather.dm +++ b/code/game/objects/items/stacks/sheets/leather.dm @@ -1,70 +1,75 @@ +/obj/item/stack/animalhide + name = "hide" + desc = "The hide of some creature." + icon_state = "sheet-hide" + drop_sound = 'sound/items/drop/cloth.ogg' + pickup_sound = 'sound/items/pickup/cloth.ogg' + amount = 1 + stacktype = "hide" + no_variants = TRUE + + var/process_type = /obj/item/stack/hairlesshide + /obj/item/stack/animalhide/human - name = "human skin" - desc = "The by-product of human farming." - singular_name = "human skin piece" + name = "skin" + desc = "The by-product of sapient farming." + singular_name = "skin piece" icon_state = "sheet-hide" no_variants = FALSE drop_sound = 'sound/items/drop/leather.ogg' pickup_sound = 'sound/items/pickup/leather.ogg' - -/obj/item/stack/animalhide/human - amount = 50 + amount = 1 + stacktype = "hide-human" /obj/item/stack/animalhide/corgi name = "corgi hide" desc = "The by-product of corgi farming." singular_name = "corgi hide piece" icon_state = "sheet-corgi" - -/obj/item/stack/animalhide/corgi - amount = 50 + amount = 1 + stacktype = "hide-corgi" /obj/item/stack/animalhide/cat name = "cat hide" desc = "The by-product of cat farming." singular_name = "cat hide piece" icon_state = "sheet-cat" - -/obj/item/stack/animalhide/cat - amount = 50 + amount = 1 + stacktype = "hide-cat" /obj/item/stack/animalhide/monkey name = "monkey hide" desc = "The by-product of monkey farming." singular_name = "monkey hide piece" icon_state = "sheet-monkey" - -/obj/item/stack/animalhide/monkey - amount = 50 + amount = 1 + stacktype = "hide-monkey" /obj/item/stack/animalhide/lizard name = "lizard skin" desc = "Sssssss..." singular_name = "lizard skin piece" icon_state = "sheet-lizard" - -/obj/item/stack/animalhide/lizard - amount = 50 + amount = 1 + stacktype = "hide-lizard" /obj/item/stack/animalhide/xeno name = "alien hide" desc = "The skin of a terrible creature." singular_name = "alien hide piece" icon_state = "sheet-xeno" - -/obj/item/stack/animalhide/xeno - amount = 50 + amount = 1 + stacktype = "hide-xeno" //don't see anywhere else to put these, maybe together they could be used to make the xenos suit? /obj/item/stack/xenochitin name = "alien chitin" desc = "A piece of the hide of a terrible creature." - singular_name = "alien hide piece" + singular_name = "alien chitin piece" icon = 'icons/mob/alien.dmi' icon_state = "chitin" - -/obj/item/stack/xenochitin - amount = 50 + amount = 1 + stacktype = "hide-chitin" /obj/item/xenos_claw name = "alien claw" @@ -84,9 +89,22 @@ singular_name = "hairless hide piece" icon_state = "sheet-hairlesshide" no_variants = FALSE + amount = 1 + stacktype = "hairlesshide" + var/cleaning = FALSE // Can we be water_acted, or are we busy? To prevent accidental hide duplication and the collapse of causality. -/obj/item/stack/hairlesshide - amount = 50 + var/wet_type = /obj/item/stack/wetleather + +/obj/item/stack/hairlesshide/water_act(var/wateramount) + ..() + cleaning = TRUE + while(amount > 0 && wateramount > 0) + use(1) + wateramount-- + new wet_type(get_turf(src)) + cleaning = FALSE + + return /obj/item/stack/wetleather name = "wet leather" @@ -96,29 +114,28 @@ var/wetness = 30 //Reduced when exposed to high temperautres var/drying_threshold_temperature = 500 //Kelvin to start drying no_variants = FALSE + amount = 1 + stacktype = "wetleather" -/obj/item/stack/wetleather - amount = 50 + var/dry_type = /obj/item/stack/material/leather //Step one - dehairing. /obj/item/stack/animalhide/attackby(obj/item/weapon/W as obj, mob/user as mob) - if( istype(W, /obj/item/weapon/material/knife) || \ - istype(W, /obj/item/weapon/material/twohanded/fireaxe) || \ - istype(W, /obj/item/weapon/material/knife/machete/hatchet) ) - + if(has_edge(W) || is_sharp(W)) //visible message on mobs is defined as visible_message(var/message, var/self_message, var/blind_message) usr.visible_message("\The [usr] starts cutting hair off \the [src]", "You start cutting the hair off \the [src]", "You hear the sound of a knife rubbing against flesh") if(do_after(user,50)) to_chat(usr, "You cut the hair from this [src.singular_name]") //Try locating an exisitng stack on the tile and add to there if possible for(var/obj/item/stack/hairlesshide/HS in usr.loc) - if(HS.amount < 50) + if(HS.amount < 50 && istype(HS, process_type)) HS.amount++ src.use(1) - break + return //If it gets to here it means it did not find a suitable stack on the tile. - var/obj/item/stack/hairlesshide/HS = new(usr.loc) - HS.amount = 1 + var/obj/item/stack/HS = new process_type(usr.loc) + if(istype(HS)) + HS.amount = 1 src.use(1) else ..() @@ -132,15 +149,20 @@ if(exposed_temperature >= drying_threshold_temperature) wetness-- if(wetness == 0) - //Try locating an exisitng stack on the tile and add to there if possible - for(var/obj/item/stack/material/leather/HS in src.loc) - if(HS.amount < 50) - HS.amount++ - src.use(1) - wetness = initial(wetness) - break - //If it gets to here it means it did not find a suitable stack on the tile. - var/obj/item/stack/material/leather/HS = new(src.loc) - HS.amount = 1 + dry() + +/obj/item/stack/wetleather/proc/dry() + //Try locating an exisitng stack on the tile and add to there if possible + for(var/obj/item/stack/material/leather/HS in src.loc) + if(HS.amount < 50) + HS.amount++ wetness = initial(wetness) src.use(1) + return + //If it gets to here it means it did not find a suitable stack on the tile. + var/obj/item/stack/HS = new dry_type(src.loc) + + if(istype(HS)) + HS.amount = 1 + wetness = initial(wetness) + src.use(1) diff --git a/code/game/objects/items/stacks/stack.dm b/code/game/objects/items/stacks/stack.dm index 6e35e74974..5fa718564f 100644 --- a/code/game/objects/items/stacks/stack.dm +++ b/code/game/objects/items/stacks/stack.dm @@ -59,7 +59,7 @@ /obj/item/stack/examine(mob/user) . = ..() - + if(Adjacent(user)) if(!uses_charge) . += "There are [src.amount] [src.singular_name]\s in the stack." @@ -380,17 +380,17 @@ var/use_material var/pass_color - New(title, result_type, req_amount = 1, res_amount = 1, max_res_amount = 1, time = 0, one_per_turf = 0, on_floor = 0, supplied_material = null, pass_stack_color) - src.title = title - src.result_type = result_type - src.req_amount = req_amount - src.res_amount = res_amount - src.max_res_amount = max_res_amount - src.time = time - src.one_per_turf = one_per_turf - src.on_floor = on_floor - src.use_material = supplied_material - src.pass_color = pass_stack_color +/datum/stack_recipe/New(title, result_type, req_amount = 1, res_amount = 1, max_res_amount = 1, time = 0, one_per_turf = 0, on_floor = 0, supplied_material = null, pass_stack_color) + src.title = title + src.result_type = result_type + src.req_amount = req_amount + src.res_amount = res_amount + src.max_res_amount = max_res_amount + src.time = time + src.one_per_turf = one_per_turf + src.on_floor = on_floor + src.use_material = supplied_material + src.pass_color = pass_stack_color /* * Recipe list datum diff --git a/code/game/objects/items/stacks/tiles/fifty_spawner_tiles.dm b/code/game/objects/items/stacks/tiles/fifty_spawner_tiles.dm index 99eba1931c..098926f535 100644 --- a/code/game/objects/items/stacks/tiles/fifty_spawner_tiles.dm +++ b/code/game/objects/items/stacks/tiles/fifty_spawner_tiles.dm @@ -4,6 +4,10 @@ name = "stack of grass" type_to_spawn = /obj/item/stack/tile/grass +/obj/fiftyspawner/grass/sif + name = "stack of sifgrass" + type_to_spawn = /obj/item/stack/tile/grass/sif + /obj/fiftyspawner/wood name = "stack of wood" type_to_spawn = /obj/item/stack/tile/wood diff --git a/code/game/objects/items/stacks/tiles/tile_types.dm b/code/game/objects/items/stacks/tiles/tile_types.dm index 7e81e0115c..bf50db2188 100644 --- a/code/game/objects/items/stacks/tiles/tile_types.dm +++ b/code/game/objects/items/stacks/tiles/tile_types.dm @@ -41,6 +41,12 @@ no_variants = FALSE drop_sound = 'sound/items/drop/herb.ogg' pickup_sound = 'sound/items/pickup/herb.ogg' + +/obj/item/stack/tile/grass/sif + name = "sivian grass tile" + singular_name = "sivian grass floor tile" + desc = "A patch of grass like those that decorate the plains of Sif." + /* * Wood */ diff --git a/code/game/objects/items/toys/toys.dm b/code/game/objects/items/toys/toys.dm index 0433d9041d..4391901918 100644 --- a/code/game/objects/items/toys/toys.dm +++ b/code/game/objects/items/toys/toys.dm @@ -114,6 +114,18 @@ w_class = ITEMSIZE_LARGE drop_sound = 'sound/items/drop/rubber.ogg' +/obj/item/toy/colorballoon /// To color it, VV the 'color' var with a hex color code with the # included. + name = "balloon" + desc = "It's a plain little balloon. Comes in many colors!" + throwforce = 0 + throw_speed = 4 + throw_range = 20 + force = 0 + icon = 'icons/obj/weapons.dmi' + icon_state = "colorballoon" + w_class = ITEMSIZE_LARGE + drop_sound = 'sound/items/drop/rubber.ogg' + /* * Fake telebeacon */ @@ -1438,4 +1450,36 @@ name = "purple king" desc = "A large king piece for playing chess. It's made of a purple-colored glass." description_info = "The King can move exactly one square horizontally, vertically, or diagonally. If your opponent captures this piece, you lose." - icon_state = "b-king" \ No newline at end of file + icon_state = "b-king" + +/// Balloon structures + +/obj/structure/balloon + name = "generic balloon" + desc = "A generic balloon. How boring." + icon = 'icons/obj/toy.dmi' + icon_state = "ghostballoon" + anchored = 0 + density = 0 + +/obj/structure/balloon/attack_hand(mob/user) + user.setClickCooldown(DEFAULT_ATTACK_COOLDOWN) + + if(user.a_intent == I_HELP) + user.visible_message("\The [user] pokes [src]!","You poke [src]!") + else if (user.a_intent == I_HURT) + user.visible_message("\The [user] punches [src]!","You punch [src]!") + else if (user.a_intent == I_GRAB) + user.visible_message("\The [user] attempts to pop [src]!","You attempt to pop [src]!") + else + user.visible_message("\The [user] lightly bats the [src].","You lightly bat the [src].") + +/obj/structure/balloon/bat + name = "giant bat balloon" + desc = "A large balloon in the shape of a spooky bat with orange eyes." + icon_state = "batballoon" + +/obj/structure/balloon/ghost + name = "giant ghost balloon" + desc = "Oh no, it's a ghost! Oh wait, it's just a balloon. Phew!" + icon_state = "ghostballoon" \ No newline at end of file diff --git a/code/game/objects/items/weapons/circuitboards/computer/computer.dm b/code/game/objects/items/weapons/circuitboards/computer/computer.dm index 91b09022a5..9948edea42 100644 --- a/code/game/objects/items/weapons/circuitboards/computer/computer.dm +++ b/code/game/objects/items/weapons/circuitboards/computer/computer.dm @@ -101,6 +101,11 @@ build_path = /obj/machinery/computer/arcade/orion_trail origin_tech = list(TECH_DATA = 1) +/obj/item/weapon/circuitboard/arcade/clawmachine + name = T_BOARD("grab-a-gift arcade machine") + build_path = /obj/machinery/computer/arcade/clawmachine + origin_tech = list(TECH_DATA = 1) + /obj/item/weapon/circuitboard/turbine_control name = T_BOARD("turbine control console") build_path = /obj/machinery/computer/turbine_computer diff --git a/code/game/objects/items/weapons/material/shards.dm b/code/game/objects/items/weapons/material/shards.dm index 19eaf7f776..cbf03b4535 100644 --- a/code/game/objects/items/weapons/material/shards.dm +++ b/code/game/objects/items/weapons/material/shards.dm @@ -152,4 +152,4 @@ ..(loc, "steel") /obj/item/weapon/material/shard/phoron/New(loc) - ..(loc, "phglass") + ..(loc, "borosilicate glass") diff --git a/code/game/objects/items/weapons/shields_vr.dm b/code/game/objects/items/weapons/shields_vr.dm index acaa4a58fd..a9bce1d548 100644 --- a/code/game/objects/items/weapons/shields_vr.dm +++ b/code/game/objects/items/weapons/shields_vr.dm @@ -79,6 +79,15 @@ desc = "A shield issued to exploration teams to help protect them when advancing into the unknown. It is lighter and cheaper but less protective than some of its counterparts. It has a flashlight straight in the middle to help draw attention. This one is POURPEL" icon_state = "explorer_shield_P" +/obj/item/weapon/shield/riot/explorer/attackby(obj/item/weapon/W as obj, mob/user as mob) + if(istype(W, /obj/item/weapon/material/knife/machete)) + if(cooldown < world.time - 25) + user.visible_message("[user] bashes [src] with [W]!") + playsound(src, 'sound/effects/shieldbash.ogg', 50, 1) + cooldown = world.time + else + ..() + /obj/item/weapon/shield/riot/explorer/purple/update_icon() if(on) icon_state = "explorer_shield_P_lighted" diff --git a/code/game/objects/items/weapons/storage/secure.dm b/code/game/objects/items/weapons/storage/secure.dm index 034e37ff8e..7519525dd2 100644 --- a/code/game/objects/items/weapons/storage/secure.dm +++ b/code/game/objects/items/weapons/storage/secure.dm @@ -178,6 +178,7 @@ desc = "It doesn't seem all that secure. Oh well, it'll do." icon = 'icons/obj/storage.dmi' icon_state = "safe" + layer = ABOVE_WINDOW_LAYER icon_opened = "safe0" icon_locking = "safeb" icon_sparking = "safespark" diff --git a/code/game/objects/items/weapons/tools/weldingtool.dm b/code/game/objects/items/weapons/tools/weldingtool.dm index 52bd1e330a..276ad92d59 100644 --- a/code/game/objects/items/weapons/tools/weldingtool.dm +++ b/code/game/objects/items/weapons/tools/weldingtool.dm @@ -349,9 +349,11 @@ to_chat(user, "You go blind!") user.Blind(5) user.eye_blurry = 5 - user.disabilities |= NEARSIGHTED - spawn(100) - user.disabilities &= ~NEARSIGHTED + // Don't cure being nearsighted + if(!(H.disabilities & NEARSIGHTED)) + user.disabilities |= NEARSIGHTED + spawn(100) + user.disabilities &= ~NEARSIGHTED return /obj/item/weapon/weldingtool/is_hot() diff --git a/code/game/objects/structures/bonfire.dm b/code/game/objects/structures/bonfire.dm index af52c59b71..3da06fa226 100644 --- a/code/game/objects/structures/bonfire.dm +++ b/code/game/objects/structures/bonfire.dm @@ -240,6 +240,16 @@ removed.add_thermal_energy(heat_transfer) + for(var/mob/living/L in view(3, src)) + L.add_modifier(/datum/modifier/endothermic, 10 SECONDS, null, TRUE) + + for(var/obj/item/stack/wetleather/WL in view(2, src)) + if(WL.wetness >= 0) + WL.dry() + continue + + WL.wetness = max(0, WL.wetness - rand(1, 4)) + env.merge(removed) /obj/structure/bonfire/fire_act(datum/gas_mixture/air, exposed_temperature, exposed_volume) diff --git a/code/game/objects/structures/crates_lockers/_closets_appearance_definitions.dm b/code/game/objects/structures/crates_lockers/_closets_appearance_definitions.dm index b90a7961e2..9075c87272 100644 --- a/code/game/objects/structures/crates_lockers/_closets_appearance_definitions.dm +++ b/code/game/objects/structures/crates_lockers/_closets_appearance_definitions.dm @@ -1380,6 +1380,36 @@ "glass" = COLOR_WHITE ) +// Wall cabinets +/decl/closet_appearance/wall_double + base_icon = 'icons/obj/closets/bases/wall_double.dmi' + decal_icon = 'icons/obj/closets/decals/wall_double.dmi' + decals = list( + "vent" + ) + extra_decals = null + +/decl/closet_appearance/wall_double/kitchen + decals = null + color = COLOR_OFF_WHITE + +/decl/closet_appearance/wall_double/medical + decals = null + color = COLOR_OFF_WHITE + extra_decals = list( + "stripe_outer" = COLOR_BLUE_GRAY, + "stripe_inner" = COLOR_OFF_WHITE, + "cross" = COLOR_BLUE_GRAY + ) + +/decl/closet_appearance/wall_double/fire_safety + color = COLOR_RED_LIGHT + decals = null + extra_decals = list( + "stripes" = COLOR_OFF_WHITE, + "glass" = COLOR_WHITE + ) + // Carts /decl/closet_appearance/cart color = COLOR_GRAY20 diff --git a/code/game/objects/structures/crates_lockers/closets/walllocker.dm b/code/game/objects/structures/crates_lockers/closets/walllocker.dm index 82afaa33ff..e395507702 100644 --- a/code/game/objects/structures/crates_lockers/closets/walllocker.dm +++ b/code/game/objects/structures/crates_lockers/closets/walllocker.dm @@ -10,7 +10,7 @@ anchored = 1 store_mobs = 0 -//spawns endless (3 sets) amounts of breathmask, emergency oxy tank and crowbar +//spawns 2 sets of breathmask, emergency oxy tank and crowbar /obj/structure/closet/walllocker/emerglocker name = "emergency locker" @@ -54,3 +54,130 @@ /obj/structure/closet/walllocker/emerglocker/east pixel_x = 32 dir = EAST + +//VOREStation Add Start +/obj/structure/closet/walllocker/medical + name = "first-aid closet" + desc = "It's wall-mounted storage unit for first aid supplies." + closet_appearance = /decl/closet_appearance/wall/medical + +/obj/structure/closet/walllocker/medical/north + pixel_y = 32 + dir = SOUTH + +/obj/structure/closet/walllocker/medical/south + pixel_y = -32 + dir = NORTH + +/obj/structure/closet/walllocker/medical/west + pixel_x = -32 + dir = WEST + +/obj/structure/closet/walllocker/medical/east + pixel_x = 32 + dir = EAST +//VOREStation Add End + +//double-size "cabinet" lockers, from Killian +/obj/structure/closet/walllocker_double + desc = "A wall mounted storage cabinet." + name = "Wall Cabinet" + icon = 'icons/obj/closets/bases/wall_double.dmi' + closet_appearance = /decl/closet_appearance/wall_double + density = 0 + anchored = 1 + plane = TURF_PLANE + layer = ABOVE_TURF_LAYER + +/obj/structure/closet/walllocker_double/north + pixel_y = 32 + dir = SOUTH + +/obj/structure/closet/walllocker_double/south + pixel_y = -32 + dir = NORTH + +/obj/structure/closet/walllocker_double/west + pixel_x = -32 + dir = WEST + +/obj/structure/closet/walllocker_double/east + pixel_x = 32 + dir = EAST + +/obj/structure/closet/walllocker_double/kitchen + desc = "A wall mounted storage cabinet, for the kitchen. Now where's the flour gone..?" + name = "Kitchen Cabinet" + icon = 'icons/obj/closets/bases/wall_double.dmi' + closet_appearance = /decl/closet_appearance/wall_double/kitchen + density = 0 + anchored = 1 + +/obj/structure/closet/walllocker_double/kitchen/north + pixel_y = 32 + dir = SOUTH + +/obj/structure/closet/walllocker_double/kitchen/south + pixel_y = -32 + dir = NORTH + +/obj/structure/closet/walllocker_double/kitchen/west + pixel_x = -32 + dir = WEST + +/obj/structure/closet/walllocker_double/kitchen/east + pixel_x = 32 + dir = EAST + +/obj/structure/closet/walllocker_double/medical + name = "Medical Cabinet" + desc = "A wall mounted medical supply cabinet. Probably full of drugs!" //not actually full of drugs, sorry! + closet_appearance = /decl/closet_appearance/wall_double/medical + +/obj/structure/closet/walllocker_double/medical/north + pixel_y = 32 + dir = SOUTH + +/obj/structure/closet/walllocker_double/medical/south + pixel_y = -32 + dir = NORTH + +/obj/structure/closet/walllocker_double/medical/west + pixel_x = -32 + dir = WEST + +/obj/structure/closet/walllocker_double/medical/east + pixel_x = 32 + dir = EAST + +/obj/structure/closet/walllocker_double/hydrant + name = "fire-safety closet" + desc = "It's a storage cabinet packed with fire-fighting supplies." + closet_appearance = /decl/closet_appearance/wall_double/fire_safety + anchored = 1 + density = 0 + wall_mounted = 1 + + starts_with = list( + /obj/item/clothing/suit/fire/firefighter, + /obj/item/clothing/mask/gas, + /obj/item/device/flashlight, + /obj/item/weapon/tank/oxygen/red, + /obj/item/weapon/extinguisher, + /obj/item/clothing/head/hardhat/red) + +/obj/structure/closet/walllocker_double/hydrant/north + pixel_y = 32 + dir = SOUTH + +/obj/structure/closet/walllocker_double/hydrant/south + pixel_y = -32 + dir = NORTH + +/obj/structure/closet/walllocker_double/hydrant/west + pixel_x = -32 + dir = WEST + +/obj/structure/closet/walllocker_double/hydrant/east + pixel_x = 32 + dir = EAST diff --git a/code/game/objects/structures/extinguisher.dm b/code/game/objects/structures/extinguisher.dm index ed3669247a..a5717bdf6e 100644 --- a/code/game/objects/structures/extinguisher.dm +++ b/code/game/objects/structures/extinguisher.dm @@ -3,8 +3,7 @@ desc = "A small wall mounted cabinet designed to hold a fire extinguisher." icon = 'icons/obj/closet.dmi' icon_state = "extinguisher_closed" - plane = TURF_PLANE - layer = ABOVE_TURF_LAYER + layer = ABOVE_WINDOW_LAYER anchored = 1 density = 0 var/obj/item/weapon/extinguisher/has_extinguisher diff --git a/code/game/objects/structures/fireaxe.dm b/code/game/objects/structures/fireaxe.dm index 2e2251fabe..bccdcf56c3 100644 --- a/code/game/objects/structures/fireaxe.dm +++ b/code/game/objects/structures/fireaxe.dm @@ -5,6 +5,7 @@ var/obj/item/weapon/material/twohanded/fireaxe/fireaxe icon = 'icons/obj/closet.dmi' //Not bothering to move icons out for now. But its dumb still. icon_state = "fireaxe1000" + layer = ABOVE_WINDOW_LAYER anchored = 1 density = 0 var/open = 0 diff --git a/code/game/objects/structures/flora/flora.dm b/code/game/objects/structures/flora/flora.dm index b4bad46142..cc5c5b510f 100644 --- a/code/game/objects/structures/flora/flora.dm +++ b/code/game/objects/structures/flora/flora.dm @@ -235,7 +235,7 @@ /obj/structure/flora/pottedplant/attackby(obj/item/I, mob/user) if(issilicon(user)) return // Don't try to put modules in here, you're a borg. TODO: Inventory refactor to not be ass. - + if(stored_item) to_chat(user, "[I] won't fit in. There already appears to be something in here...") return @@ -494,3 +494,47 @@ /obj/structure/flora/sif/tendrils/get_harvestable_desc() return "\The [src] seems to be growing over something." + +/datum/category_item/catalogue/flora/frostbelle + name = "Sivian Flora - Frostbelle" + desc = "A rare plant native to Sif, with very peculiar growing requirements. Rarely seen outside of their original habitat,\ + or the homes of the wealthy, the plant's unique vein structure is actually used to carry the plant's reproductive material \ + to forming buds, the petals of which secrete the luminescent sap containing the pollen at the time of blooming. Certain \ + horticulturists have found ways of halting this process prior to the secretion of the sap, leaving the flower's petals \ + bright, at the cost of making that bud sterile." + value = CATALOGUER_REWARD_HARD + +/obj/structure/flora/sif/frostbelle + name = "gnarly shrub" + desc = "A stocky plant with fins bearing luminescent veins along its branches." + icon_state = "grass" + randomize_size = TRUE + catalogue_data = list(/datum/category_item/catalogue/flora/frostbelle) + + harvest_tool = /obj/item/weapon/material/knife + max_harvests = 2 + min_harvests = -4 + harvest_loot = list( + /obj/item/weapon/reagent_containers/food/snacks/frostbelle = 1 + ) + + var/variantnum = null + +/obj/structure/flora/sif/frostbelle/Initialize() + . = ..() + + variantnum = rand(1,3) + + update_icon() + +/obj/structure/flora/sif/frostbelle/update_icon() + ..() + + if(max_harvests > 0 && harvest_count < max_harvests) + icon_state = "[initial(icon_state)][variantnum]" + + else + icon_state = initial(icon_state) + +/obj/structure/flora/sif/frostbelle/get_harvestable_desc() + return "\The [src] seems to be budding." diff --git a/code/game/objects/structures/flora/flora_vr.dm b/code/game/objects/structures/flora/flora_vr.dm index 2e27319770..b7f722324c 100644 --- a/code/game/objects/structures/flora/flora_vr.dm +++ b/code/game/objects/structures/flora/flora_vr.dm @@ -36,3 +36,66 @@ /obj/structure/flora/pumpkin/carved/owo desc = "A fat, freshly picked pumpkin. This one has a face carved into it! This one has large, round eyes and a squiggly, cat-like smiling mouth. Its pleasantly surprised expression seems to suggest that the pumpkin has noticed something about you." icon_state = "decor-jackolantern-owo" + +// Various decorá +/obj/structure/flora/log1 + name = "waterlogged trunk" + icon = 'icons/obj/flora/amayastuff.dmi' + desc = "A part of a felled tree. Moss is growing across it." + icon_state = "log1" + +/obj/structure/flora/log2 + name = "driftwood" + icon = 'icons/obj/flora/amayastuff.dmi' + desc = "Driftwood carelessly lost in the water." + icon_state = "log2" + +/obj/structure/flora/lily1 + name = "red flowered lilypads" + icon = 'icons/obj/flora/amayastuff.dmi' + desc = "A bunch of lilypads. A beautiful red flower grows in the middle of them." + icon_state = "lilypad1" + +/obj/structure/flora/lily2 + name = "yellow flowered lilypads" + icon = 'icons/obj/flora/amayastuff.dmi' + desc = "A few lilypads. A sunny yellow flower stems from the water and from between the lilypads." + icon_state = "lilypad2" + +/obj/structure/flora/lily3 + name = "lilypads" + icon = 'icons/obj/flora/amayastuff.dmi' + desc = "A group of flowerless lilypads." + icon_state = "lilypad3" + +/obj/structure/flora/smallbould + name = "small boulder" + icon = 'icons/obj/flora/amayastuff.dmi' + desc = "A small boulder, with its top smothered with moss." + icon_state = "smallerboulder" + +/obj/structure/flora/bboulder1 + name = "large boulder" + icon = 'icons/obj/flora/amayastuff.dmi' + desc = "Small stones sit beside this large boulder. Moss grows on the top of each of them." + icon_state = "bigboulder1" + density = 1 + +/obj/structure/flora/bboulder2 + name = "jagged large boulder" + icon = 'icons/obj/flora/amayastuff.dmi' + desc = "This boulder has had plates broken off it. Moss grows in the cracks and across the top." + icon_state = "bigboulder2" + density = 1 + +/obj/structure/flora/rocks1 + name = "rocks" + icon = 'icons/obj/flora/amayastuff.dmi' + desc = "A bunch of mossy rocks." + icon_state = "rocks1" + +/obj/structure/flora/rocks2 + name = "rocks" + icon = 'icons/obj/flora/amayastuff.dmi' + desc = "A bunch of mossy rocks." + icon_state = "rocks2" \ No newline at end of file diff --git a/code/game/objects/structures/lattice.dm b/code/game/objects/structures/lattice.dm index 295aa9239c..b8597d6d29 100644 --- a/code/game/objects/structures/lattice.dm +++ b/code/game/objects/structures/lattice.dm @@ -11,12 +11,12 @@ /obj/structure/lattice/Initialize() . = ..() - if(!(istype(src.loc, /turf/space) || istype(src.loc, /turf/simulated/open) || istype(src.loc, /turf/simulated/mineral))) + if(!(istype(src.loc, /turf/space) || istype(src.loc, /turf/simulated/open) || istype(src.loc, /turf/simulated/mineral) || istype(src.loc, /turf/simulated/shuttle/plating/airless/carry))) return INITIALIZE_HINT_QDEL for(var/obj/structure/lattice/LAT in src.loc) if(LAT != src) - crash_with("Found multiple lattices at '[log_info_line(loc)]'") + log_debug("Found multiple lattices at '[log_info_line(loc)]'") //VOREStation Edit, why was this a runtime, it's harmless return INITIALIZE_HINT_QDEL icon = 'icons/obj/smoothlattice.dmi' icon_state = "latticeblank" diff --git a/code/game/objects/structures/mirror.dm b/code/game/objects/structures/mirror.dm index 1473c8fe90..2af3c3ccce 100644 --- a/code/game/objects/structures/mirror.dm +++ b/code/game/objects/structures/mirror.dm @@ -4,6 +4,7 @@ desc = "A SalonPro Nano-Mirror(TM) brand mirror! The leading technology in hair salon products, utilizing nano-machinery to style your hair just right." icon = 'icons/obj/watercloset.dmi' icon_state = "mirror" + layer = ABOVE_WINDOW_LAYER density = 0 anchored = 1 var/shattered = 0 diff --git a/code/game/objects/structures/trash_pile_vr.dm b/code/game/objects/structures/trash_pile_vr.dm index 8d2126c289..c8e5dcd8b1 100644 --- a/code/game/objects/structures/trash_pile_vr.dm +++ b/code/game/objects/structures/trash_pile_vr.dm @@ -252,6 +252,7 @@ prob(1);/obj/item/weapon/material/knife/tacknife, prob(1);/obj/item/weapon/storage/box/survival/space, prob(1);/obj/item/weapon/storage/secure/briefcase/trashmoney, + prob(1);/obj/item/device/survivalcapsule/popcabin, prob(1);/obj/item/weapon/reagent_containers/syringe/steroid) var/obj/item/I = new path() diff --git a/code/game/trader_visit_vr.dm b/code/game/trader_visit_vr.dm index 81b9b3adcd..14de3f9bc5 100644 --- a/code/game/trader_visit_vr.dm +++ b/code/game/trader_visit_vr.dm @@ -3,7 +3,7 @@ GLOBAL_VAR(trader_loaded) /proc/consider_trader_load() if(!GLOB.trader_loaded) GLOB.trader_loaded = TRUE - var/datum/map_template/MT = SSmapping.map_templates["Special Area - Trader"] + var/datum/map_template/MT = SSmapping.map_templates["Special Area - Salamander Trader"] //was: "Special Area - Trader" if(!istype(MT)) error("Trader is not a valid map template!") else diff --git a/code/game/turfs/flooring/flooring.dm b/code/game/turfs/flooring/flooring.dm index 12aa7fbcaa..08133f1b72 100644 --- a/code/game/turfs/flooring/flooring.dm +++ b/code/game/turfs/flooring/flooring.dm @@ -146,6 +146,7 @@ var/list/flooring_types flags = TURF_REMOVE_SHOVEL icon = 'icons/turf/outdoors.dmi' icon_base = "grass_sif" + build_type = /obj/item/stack/tile/grass/sif has_base_range = 1 /decl/flooring/water diff --git a/code/game/turfs/simulated/floor_types_vr.dm b/code/game/turfs/simulated/floor_types_vr.dm index 78e417fdc1..efd7c4cc4a 100644 --- a/code/game/turfs/simulated/floor_types_vr.dm +++ b/code/game/turfs/simulated/floor_types_vr.dm @@ -43,6 +43,35 @@ icon_state = "floor" set_light(0,0,"#ffffff") +/turf/simulated/shuttle/plating/airless/carry/attackby(obj/item/C, mob/user) //this is gross + if (istype(C, /obj/item/stack/rods)) + var/obj/structure/lattice/L = locate(/obj/structure/lattice, src) + if(L) + return + var/obj/item/stack/rods/R = C + if (R.use(1)) + to_chat(user, "Constructing support lattice ...") + playsound(src, 'sound/weapons/Genhit.ogg', 50, 1) + new/obj/structure/lattice(src) + return + + if (istype(C, /obj/item/stack/tile/floor)) + var/obj/structure/lattice/L = locate(/obj/structure/lattice, src) + if(L) + var/obj/item/stack/tile/floor/S = C + if (S.get_amount() < 1) + return + qdel(L) + playsound(src, 'sound/weapons/Genhit.ogg', 50, 1) + S.use(1) + ChangeTurf(/turf/simulated/floor/airless) + return + else + to_chat(user, "The plating is going to need some support.") + +/turf/simulated/shuttle/plating/airless/carry/is_solid_structure() + return locate(/obj/structure/lattice, src) + /turf/simulated/floor/gorefloor name = "infected tile" desc = "Slick, sickly-squirming meat has grown in and out of cracks once empty. It pulsates intermittently, and with every beat, blood seeps out of pores." @@ -53,4 +82,4 @@ name = "putrid mass" desc = "It is entirely made of sick, gurgling flesh. It is releasing a sickly odour." icon_state = "bloodfloor_2" - icon = 'icons/goonstation/turf/meatland.dmi' \ No newline at end of file + icon = 'icons/goonstation/turf/meatland.dmi' diff --git a/code/game/turfs/simulated/outdoors/grass.dm b/code/game/turfs/simulated/outdoors/grass.dm index 4909b14c20..5c764a97da 100644 --- a/code/game/turfs/simulated/outdoors/grass.dm +++ b/code/game/turfs/simulated/outdoors/grass.dm @@ -87,5 +87,10 @@ var/list/grass_types = list( icon_state = "grass_sif_dark0" edge_blending_priority = 5 tree_chance = 10 - grass_chance = 0 + grass_chance = 1 + grass_types = list( + /obj/structure/flora/sif/frostbelle = 1, + /obj/structure/flora/sif/eyes = 5, + /obj/structure/flora/sif/tendrils = 30 + ) diff --git a/code/game/verbs/ooc.dm b/code/game/verbs/ooc.dm index b599c1fa6f..de4a2c7166 100644 --- a/code/game/verbs/ooc.dm +++ b/code/game/verbs/ooc.dm @@ -34,11 +34,6 @@ log_admin("[key_name(src)] has attempted to advertise in OOC: [msg]") message_admins("[key_name_admin(src)] has attempted to advertise in OOC: [msg]") return - //VOREStation Add - No talking during voting - if(SSvote && SSvote.mode) - to_chat(src, "OOC is not allowed during voting.") - return - //VOREStation Add End if(findtext(msg, "discord.gg") && !config.allow_discord_links) to_chat(src, "Advertising discords is not allowed.") log_admin("[key_name(src)] has attempted to advertise a discord server in OOC: [msg]") diff --git a/code/modules/asset_cache/asset_list.dm b/code/modules/asset_cache/asset_list.dm index 5cc16d06bc..4ce9dcf6fc 100644 --- a/code/modules/asset_cache/asset_list.dm +++ b/code/modules/asset_cache/asset_list.dm @@ -119,18 +119,14 @@ GLOBAL_LIST_EMPTY(asset_datums) if (size[SPRSZ_STRIPPED]) continue - #ifdef RUST_G // save flattened version var/fname = "data/spritesheets/[name]_[size_id].png" fcopy(size[SPRSZ_ICON], fname) - var/error = call(RUST_G, "dmi_strip_metadata")(fname) + var/error = rustg_dmi_strip_metadata(fname) if(length(error)) stack_trace("Failed to strip [name]_[size_id].png: [error]") size[SPRSZ_STRIPPED] = icon(fname) fdel(fname) - #else - #warn It looks like you don't have RUST_G enabled. Without RUST_G, the RPD icons will not function, so it strongly recommended you reenable it. - #endif /datum/asset/spritesheet/proc/generate_css() var/list/out = list() diff --git a/code/modules/client/preference_setup/loadout/loadout_accessories_vr.dm b/code/modules/client/preference_setup/loadout/loadout_accessories_vr.dm index 5d0ede01c0..b80bfdbe08 100644 --- a/code/modules/client/preference_setup/loadout/loadout_accessories_vr.dm +++ b/code/modules/client/preference_setup/loadout/loadout_accessories_vr.dm @@ -8,7 +8,7 @@ /datum/gear/choker/New() ..() - gear_tweaks = list(gear_tweak_free_color_choice) + gear_tweaks += gear_tweak_free_color_choice /datum/gear/collar display_name = "collar, silver" @@ -18,7 +18,7 @@ /datum/gear/collar/New() ..() - gear_tweaks = list(gear_tweak_collar_tag) + gear_tweaks += gear_tweak_collar_tag /datum/gear/collar/golden display_name = "collar, golden" @@ -106,4 +106,4 @@ /datum/gear/accessory/flops/New() ..() - gear_tweaks = list(gear_tweak_free_color_choice) + gear_tweaks += gear_tweak_free_color_choice diff --git a/code/modules/client/preference_setup/loadout/loadout_fluffitems_vr.dm b/code/modules/client/preference_setup/loadout/loadout_fluffitems_vr.dm index f56331bcbc..4213aed60c 100644 --- a/code/modules/client/preference_setup/loadout/loadout_fluffitems_vr.dm +++ b/code/modules/client/preference_setup/loadout/loadout_fluffitems_vr.dm @@ -25,7 +25,7 @@ /datum/gear/fluff/collar/New() ..() - gear_tweaks = list(gear_tweak_collar_tag) + gear_tweaks += gear_tweak_collar_tag // 0-9 CKEYS /datum/gear/fluff/malady_crop @@ -66,6 +66,12 @@ ckeywhitelist = list("argobargsoup") character_name = list("Lynn Shady") +/datum/gear/fluff/felina_witchhat + path = /obj/item/clothing/head/wizard/marisa/fake + display_name = "Felina's Witch Hat" + ckeywhitelist = list("argobargsoup") + character_name = list("Felina Belliger") + /datum/gear/fluff/aronai_ccmeduniform path = /obj/item/clothing/under/solgov/utility/sifguard/officer/medical display_name = "centcom medical uniform" @@ -732,6 +738,13 @@ character_name = list("Tiemli Kroto") allowed_roles = list("Roboticist") +/datum/gear/fluff/clara_flask + path = /obj/item/weapon/reagent_containers/food/drinks/glass2/fluff/claraflask + display_name = "Clara's Vacuum Flask" + ckeywhitelist = list("rboys2") + character_name = list("Clara Mali") + cost = 1 + // S CKEYS /datum/gear/fluff/brynhild_medal path = /obj/item/clothing/accessory/medal/silver/valor diff --git a/code/modules/client/preference_setup/loadout/loadout_gloves_vr.dm b/code/modules/client/preference_setup/loadout/loadout_gloves_vr.dm index c6c51f5bbd..269f9e7aa9 100644 --- a/code/modules/client/preference_setup/loadout/loadout_gloves_vr.dm +++ b/code/modules/client/preference_setup/loadout/loadout_gloves_vr.dm @@ -12,7 +12,7 @@ /datum/gear/gloves/colored/New() ..() - gear_tweaks = list(gear_tweak_free_color_choice) + gear_tweaks += gear_tweak_free_color_choice /datum/gear/gloves/latex/colorable @@ -21,7 +21,7 @@ /datum/gear/gloves/latex/colorable/New() ..() - gear_tweaks = list(gear_tweak_free_color_choice) + gear_tweaks += gear_tweak_free_color_choice /datum/gear/gloves/siren display_name = "gloves, Siren" diff --git a/code/modules/client/preference_setup/loadout/loadout_head.dm b/code/modules/client/preference_setup/loadout/loadout_head.dm index e29b7d0a22..14f78b6e91 100644 --- a/code/modules/client/preference_setup/loadout/loadout_head.dm +++ b/code/modules/client/preference_setup/loadout/loadout_head.dm @@ -383,3 +383,7 @@ /datum/gear/head/rose_crown display_name = "rose crown" path = /obj/item/clothing/head/rose_crown + +/datum/gear/head/blackngoldheaddress + display_name = "black and gold headdress" + path = /obj/item/clothing/head/blackngoldheaddress \ No newline at end of file diff --git a/code/modules/client/preference_setup/loadout/loadout_head_vr.dm b/code/modules/client/preference_setup/loadout/loadout_head_vr.dm index 41214cbd67..ce6ada61ab 100644 --- a/code/modules/client/preference_setup/loadout/loadout_head_vr.dm +++ b/code/modules/client/preference_setup/loadout/loadout_head_vr.dm @@ -12,7 +12,7 @@ /datum/gear/head/headbando/New() ..() - gear_tweaks = list(gear_tweak_free_color_choice) + gear_tweaks += gear_tweak_free_color_choice //Detective alternative /datum/gear/head/detective_alt diff --git a/code/modules/client/preference_setup/loadout/loadout_suit_vr.dm b/code/modules/client/preference_setup/loadout/loadout_suit_vr.dm index 3dc33eb9b3..b9cae2ddd0 100644 --- a/code/modules/client/preference_setup/loadout/loadout_suit_vr.dm +++ b/code/modules/client/preference_setup/loadout/loadout_suit_vr.dm @@ -16,7 +16,7 @@ /datum/gear/suit/labcoat_colorable/New() ..() - gear_tweaks = list(gear_tweak_free_color_choice) + gear_tweaks += gear_tweak_free_color_choice /datum/gear/suit/jacket_modular display_name = "jacket, modular" diff --git a/code/modules/client/preference_setup/loadout/loadout_uniform.dm b/code/modules/client/preference_setup/loadout/loadout_uniform.dm index 71c6f96140..806ce0f42b 100644 --- a/code/modules/client/preference_setup/loadout/loadout_uniform.dm +++ b/code/modules/client/preference_setup/loadout/loadout_uniform.dm @@ -588,4 +588,60 @@ /datum/gear/uniform/cyberpunkharness display_name = "cyberpunk strapped harness" - path = /obj/item/clothing/under/cyberpunkharness \ No newline at end of file + path = /obj/item/clothing/under/cyberpunkharness + +/datum/gear/uniform/whitegown + display_name = "white gown" + path = /obj/item/clothing/under/wedding/whitegown + +/datum/gear/uniform/floofdress + display_name = "floofy dress" + path = /obj/item/clothing/under/wedding/floofdress + +/datum/gear/uniform/floofdress/New() + ..() + gear_tweaks += gear_tweak_free_color_choice + +/datum/gear/uniform/blackngold + display_name = "black and gold gown" + path = /obj/item/clothing/under/blackngold + +/datum/gear/uniform/sheerblue + display_name = "sheer blue dress" + path = /obj/item/clothing/under/sheerblue + +/datum/gear/uniform/disheveled + display_name = "disheveled suit" + path = /obj/item/clothing/under/disheveled + +/datum/gear/uniform/orangedress + display_name = "orange dress" + path = /obj/item/clothing/under/dress/dress_orange + +/datum/gear/uniform/sundress_pink + display_name = "pink sundress" + path = /obj/item/clothing/under/dress/sundress_pink + +/datum/gear/uniform/sundress_white + display_name = "white sundress" + path = /obj/item/clothing/under/dress/sundress_white + +/datum/gear/uniform/sundress_pinkbow + display_name = "bowed pink sundress" + path = /obj/item/clothing/under/dress/sundress_pinkbow + +/datum/gear/uniform/sundress_blue + display_name = "long blue sundress" + path = /obj/item/clothing/under/dress/sundress_blue + +/datum/gear/uniform/sundress_pinkshort + display_name = "short pink sundress" + path = /obj/item/clothing/under/dress/sundress_pinkshort + +/datum/gear/uniform/twopiece + display_name = "two-piece dress" + path = /obj/item/clothing/under/dress/twopiece + +/datum/gear/uniform/gothic2 + display_name = "lacey gothic dress" + path = /obj/item/clothing/under/dress/gothic2 \ No newline at end of file diff --git a/code/modules/client/preferences_factions.dm b/code/modules/client/preferences_factions.dm index 4371cdf860..00294d3a3e 100644 --- a/code/modules/client/preferences_factions.dm +++ b/code/modules/client/preferences_factions.dm @@ -13,6 +13,7 @@ var/global/list/seen_religions = list() seen_religions |= M.client.prefs.religion*/ return +// VOREStation Edits Start var/global/list/citizenship_choices = list( "Earth", "Mars", @@ -20,11 +21,19 @@ var/global/list/citizenship_choices = list( "Binma", "Moghes", "Meralar", - "Qerr'balak" + "Qerr'balak", + "Virgo 3b Colony", + "Virgo 4 NT Compound", + "Venus", + "Tiamat", + "An-Tahk-Et" ) var/global/list/home_system_choices = list( + "Virgo-Erigone", "Sol", + "Proxima Centauri", + "Procyon", "Vir", "Nyx", "Tau Ceti", @@ -33,8 +42,12 @@ var/global/list/home_system_choices = list( "Rarkajar" ) + var/global/list/faction_choices = list( - "Sol Central", + "Commonwealth of Sol-Procyon", + "United Fyrds", + "Elysian Colonies", + "Ares Confederation", "Vey Med", "Einstein Engines", "Free Trade Union", @@ -48,6 +61,7 @@ var/global/list/faction_choices = list( "Morpheus Cyberkinetics", "Xion Manufacturing Group" ) +// VOREStation Edits Stop var/global/list/antag_faction_choices = list() //Should be populated after brainstorming. Leaving as blank in case brainstorming does not occur. @@ -75,5 +89,7 @@ var/global/list/religion_choices = list( "Xilar Qall", "Tajr-kii Rarkajar", "Agnosticism", - "Deism" + "Deism", + "Neo-Moreauism", + "Orthodox Moreauism" ) \ No newline at end of file diff --git a/code/modules/clothing/clothing.dm b/code/modules/clothing/clothing.dm index caf6d395f1..4b230053d9 100644 --- a/code/modules/clothing/clothing.dm +++ b/code/modules/clothing/clothing.dm @@ -735,6 +735,7 @@ armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0) slot_flags = SLOT_OCLOTHING var/blood_overlay_type = "suit" + blood_sprite_state = "suitblood" //Defaults to the suit's blood overlay, so that some blood renders instead of no blood. siemens_coefficient = 0.9 w_class = ITEMSIZE_NORMAL preserve_item = 1 diff --git a/code/modules/clothing/clothing_icons.dm b/code/modules/clothing/clothing_icons.dm index 33e1da6000..2d4f00c665 100644 --- a/code/modules/clothing/clothing_icons.dm +++ b/code/modules/clothing/clothing_icons.dm @@ -29,6 +29,7 @@ /obj/item/clothing/suit/apply_blood(var/image/standing) if(blood_DNA && blood_sprite_state && ishuman(loc)) var/mob/living/carbon/human/H = loc - var/image/bloodsies = image(icon = H.species.get_blood_mask(H), icon_state = "[blood_overlay_type]blood") + blood_sprite_state = "[blood_overlay_type]blood" + var/image/bloodsies = image(icon = H.species.get_blood_mask(H), icon_state = blood_sprite_state) bloodsies.color = blood_color standing.add_overlay(bloodsies) diff --git a/code/modules/clothing/head/misc.dm b/code/modules/clothing/head/misc.dm index dff571c50f..dab5e97075 100644 --- a/code/modules/clothing/head/misc.dm +++ b/code/modules/clothing/head/misc.dm @@ -445,3 +445,10 @@ desc = "A gold-lined white cowl. It gives off uncomfortable cult vibes, but fancy." icon_state = "whitecowl" body_parts_covered = 0 + +/obj/item/clothing/head/blackngoldheaddress + name = "black and gold headdress" + desc = "An odd looking headdress that covers the eyes." + icon_state = "blackngoldheaddress" + flags_inv = HIDEEYES + body_parts_covered = HEAD|EYES diff --git a/code/modules/clothing/shoes/magboots.dm b/code/modules/clothing/shoes/magboots.dm index cb736737c6..bdf2be889d 100644 --- a/code/modules/clothing/shoes/magboots.dm +++ b/code/modules/clothing/shoes/magboots.dm @@ -2,7 +2,7 @@ desc = "Magnetic boots, often used during extravehicular activity to ensure the user remains safely attached to the vehicle. They're large enough to be worn over other footwear." name = "magboots" icon_state = "magboots0" - item_flags = PHORONGUARD + flags = PHORONGUARD item_state_slots = list(slot_r_hand_str = "magboots", slot_l_hand_str = "magboots") species_restricted = null center_of_mass = list("x" = 17,"y" = 12) diff --git a/code/modules/clothing/spacesuits/rig/rig.dm b/code/modules/clothing/spacesuits/rig/rig.dm index cd65478a05..9606205cc4 100644 --- a/code/modules/clothing/spacesuits/rig/rig.dm +++ b/code/modules/clothing/spacesuits/rig/rig.dm @@ -11,6 +11,7 @@ name = "hardsuit control module" icon = 'icons/obj/rig_modules.dmi' desc = "A back-mounted hardsuit deployment and control mechanism." + flags = PHORONGUARD slot_flags = SLOT_BACK req_one_access = list() req_access = list() diff --git a/code/modules/clothing/spacesuits/rig/rig_pieces.dm b/code/modules/clothing/spacesuits/rig/rig_pieces.dm index 82caf79deb..8ae8ca3674 100644 --- a/code/modules/clothing/spacesuits/rig/rig_pieces.dm +++ b/code/modules/clothing/spacesuits/rig/rig_pieces.dm @@ -23,7 +23,8 @@ /obj/item/clothing/gloves/gauntlets/rig name = "gauntlets" - item_flags = THICKMATERIAL|PHORONGUARD + flags = PHORONGUARD + item_flags = THICKMATERIAL body_parts_covered = HANDS heat_protection = HANDS cold_protection = HANDS diff --git a/code/modules/clothing/spacesuits/rig/rig_tgui.dm b/code/modules/clothing/spacesuits/rig/rig_tgui.dm index 5fc1e17380..7f34fe11b8 100644 --- a/code/modules/clothing/spacesuits/rig/rig_tgui.dm +++ b/code/modules/clothing/spacesuits/rig/rig_tgui.dm @@ -98,12 +98,13 @@ if(module.charges && module.charges.len) module_data["charges"] = list() - var/datum/rig_charge/selected = module.charges[module.charge_selected] + var/datum/rig_charge/selected = module.charges["[module.charge_selected]"] + module_data["realchargetype"] = module.charge_selected module_data["chargetype"] = selected ? "[selected.display_name]" : "none" for(var/chargetype in module.charges) var/datum/rig_charge/charge = module.charges[chargetype] - module_data["charges"] += list(list("caption" = "[chargetype] ([charge.charges])", "index" = "[chargetype]")) + module_data["charges"] += list(list("caption" = "[charge.display_name] ([charge.charges])", "index" = "[chargetype]")) module_list += list(module_data) i++ diff --git a/code/modules/clothing/suits/armor.dm b/code/modules/clothing/suits/armor.dm index 7fb4df785e..20f33104ca 100644 --- a/code/modules/clothing/suits/armor.dm +++ b/code/modules/clothing/suits/armor.dm @@ -278,6 +278,7 @@ name = "armor vest" desc = "A simple kevlar plate carrier." icon_state = "kvest" + blood_overlay_type = "armor" item_state_slots = list(slot_r_hand_str = "armor", slot_l_hand_str = "armor") armor = list(melee = 40, bullet = 30, laser = 30, energy = 10, bomb = 10, bio = 0, rad = 0) allowed = list(/obj/item/weapon/gun,/obj/item/weapon/reagent_containers/spray/pepper,/obj/item/ammo_magazine,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/handcuffs,/obj/item/device/flashlight/maglight,/obj/item/clothing/head/helmet) @@ -311,6 +312,7 @@ name = "Warden's jacket" desc = "An armoured jacket with silver rank pips and livery." icon_state = "warden_jacket" + blood_overlay_type = "suit" body_parts_covered = UPPER_TORSO|LOWER_TORSO|ARMS|LEGS flags_inv = HIDETIE|HIDEHOLSTER @@ -332,6 +334,7 @@ name = "armored coat" desc = "A greatcoat enhanced with a special alloy for some protection and style." icon_state = "hos" + blood_overlay_type = "suit" body_parts_covered = UPPER_TORSO|LOWER_TORSO|ARMS|LEGS flags_inv = HIDETIE|HIDEHOLSTER diff --git a/code/modules/clothing/suits/armor_vr.dm b/code/modules/clothing/suits/armor_vr.dm index a5d95a6296..3bf51fb97f 100644 --- a/code/modules/clothing/suits/armor_vr.dm +++ b/code/modules/clothing/suits/armor_vr.dm @@ -17,7 +17,7 @@ desc = "An armored vest that protects against some damage. It appears to be created for a wolf-taur." species_restricted = null //Species restricted since all it cares about is a taur half icon = 'icons/mob/taursuits_wolf_vr.dmi' - icon_state = "heavy_wolf_armor" + icon_state = "wolf_item" item_state = "heavy_wolf_armor" mob_can_equip(var/mob/living/carbon/human/H, slot, disable_warning = 0) if(..()) @@ -86,7 +86,7 @@ icon = 'icons/obj/clothing/suits_vr.dmi' icon_override = 'icons/mob/suit_vr.dmi' -// Armor Versions Here +// Armor Versions Here /obj/item/clothing/suit/armor/combat/crusader name = "crusader armor" desc = "ye olde knight, risen again." @@ -96,7 +96,7 @@ body_parts_covered = UPPER_TORSO|LOWER_TORSO armor = list(melee = 80, bullet = 50, laser = 10, energy = 0, bomb = 0, bio = 0, rad = 0) siemens_coefficient = 2 - + /obj/item/clothing/suit/armor/combat/crusader/bedevere name = "bedevere's armor" desc = "ye olde knight, risen again." @@ -113,7 +113,7 @@ body_parts_covered = UPPER_TORSO|LOWER_TORSO armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0) siemens_coefficient = 1 - + /obj/item/clothing/suit/armor/combat/crusader_costume/bedevere name = "bedevere's costume armor" desc = "ye olde knight, risen again." diff --git a/code/modules/clothing/under/jobs/medsci.dm b/code/modules/clothing/under/jobs/medsci.dm index 44fae55c92..744c2a55c2 100644 --- a/code/modules/clothing/under/jobs/medsci.dm +++ b/code/modules/clothing/under/jobs/medsci.dm @@ -159,6 +159,12 @@ icon_state = "scrubsnavyblue" item_state_slots = list(slot_r_hand_str = "blue", slot_l_hand_str = "blue") +/obj/item/clothing/under/rank/medical/scrubs/white + name = "scrubs" + desc = "It's made of a special fiber that provides minor protection against biohazards" + icon_state = "scrubs" + item_state_slots = list(slot_r_hand_str = "white", slot_l_hand_str = "white") + /obj/item/clothing/under/rank/psych desc = "A basic white jumpsuit. It has turqouise markings that denote the wearer as a psychiatrist." name = "psychiatrist's jumpsuit" diff --git a/code/modules/clothing/under/miscellaneous.dm b/code/modules/clothing/under/miscellaneous.dm index 1d4ba551d9..fdc73151b0 100644 --- a/code/modules/clothing/under/miscellaneous.dm +++ b/code/modules/clothing/under/miscellaneous.dm @@ -603,12 +603,25 @@ obj/item/clothing/under/dress/yellowswoop flags_inv = HIDESHOES body_parts_covered = UPPER_TORSO|LOWER_TORSO +/obj/item/clothing/under/wedding/floofdress + name = "floofy dress" + desc = "A lovely floofed out dress for formal occasions. Comes in many colors!" + icon_state = "floofdress" + flags_inv = HIDESHOES + index = 1 + +/obj/item/clothing/under/wedding/whitegown + name = "white gown" + desc = "A elegant white gown with accents of sheer mesh." + icon_state = "whitegown" + index = 1 + /* Uniforms and such */ /obj/item/clothing/under/sundress - name = "sundress" + name = "flowery white sundress" desc = "Makes you want to frolic in a field of daisies." icon_state = "sundress" body_parts_covered = UPPER_TORSO|LOWER_TORSO @@ -619,6 +632,47 @@ Uniforms and such icon_state = "sundress_white" body_parts_covered = UPPER_TORSO|LOWER_TORSO +/obj/item/clothing/under/dress/sundress_pink + name = "pink stripied sundress" + desc = "A cute pink sundress." + icon_state = "pinksun" + body_parts_covered = UPPER_TORSO|LOWER_TORSO + +/obj/item/clothing/under/dress/sundress_white + name = "white sundress" + desc = "A white sundress, it's short." + icon_state = "whitesun" + body_parts_covered = UPPER_TORSO|LOWER_TORSO + +/obj/item/clothing/under/dress/sundress_pinkbow + name = "bowed pink sundress" + desc = "A cute pink sundress with a bow." + icon_state = "bowsun" + body_parts_covered = UPPER_TORSO|LOWER_TORSO + +/obj/item/clothing/under/dress/sundress_blue + name = "long blue sundress" + desc = "A long blue sun dress with white frills towards the bottom." + icon_state = "bluesun" + body_parts_covered = UPPER_TORSO|LOWER_TORSO|LEGS + +/obj/item/clothing/under/dress/sundress_pinkshort + name = "short pink sundress" + desc = "A very short pink sundress, it's more like a chemise." + icon_state = "shortpink" + body_parts_covered = UPPER_TORSO|LOWER_TORSO + +/obj/item/clothing/under/dress/twopiece + name = "two-piece dress" + desc = "A fancy two-piece dress, the pieces are sewn together." + icon_state = "twopiece" + body_parts_covered = UPPER_TORSO|LOWER_TORSO + +/obj/item/clothing/under/dress/gothic2 + name = "lacey gothic dress" + desc = "An elegant gothic dress with lace decorations." + icon_state = "gothic2" + /obj/item/clothing/under/captainformal name = "site manager's formal uniform" desc = "A Site Manager's formal-wear, for special occasions." @@ -816,6 +870,24 @@ Uniforms and such icon_state = "cyberhell" index = 1 +/obj/item/clothing/under/blackngold + name = "black and gold gown" + desc = "A black and gold gown. You get the impression this is typically worn for religious purposes." + icon_state = "blackngold" + index = 1 + +/obj/item/clothing/under/sheerblue + name = "sheer blue dress" + desc = "An entirely sheer blue dress. Best worn with something underneath!" + icon_state = "sheerblue" + index = 1 + +/obj/item/clothing/under/disheveled + name = "disheveled suit" + desc = "What might pass as well maintained formal attire. If you're blind." + icon_state = "disheveled" + index = 1 + /* * swimsuit */ diff --git a/code/modules/food/drinkingglass/metaglass_vr.dm b/code/modules/food/drinkingglass/metaglass_vr.dm index 887c752ba6..a718acf86d 100644 --- a/code/modules/food/drinkingglass/metaglass_vr.dm +++ b/code/modules/food/drinkingglass/metaglass_vr.dm @@ -123,6 +123,31 @@ glass_center_of_mass = list("x"=16, "y"=9) glass_icon_file = 'icons/obj/drinks_vr.dmi' +/datum/reagent/ethanol/originalsin + glass_icon_state = "originalsinglass" + glass_center_of_mass = list("x"=16, "y"=9) + glass_icon_file = 'icons/obj/drinks_vr.dmi' + +/datum/reagent/ethanol/whiskeysour + glass_icon_state = "whiskeysourglass" + glass_center_of_mass = list("x"=16, "y"=9) + glass_icon_file = 'icons/obj/drinks_vr.dmi' + +/datum/reagent/ethanol/newyorksour + glass_icon_state = "newyorksourglass" + glass_center_of_mass = list("x"=16, "y"=9) + glass_icon_file = 'icons/obj/drinks_vr.dmi' + +/datum/reagent/ethanol/mudslide + glass_icon_state = "mudslideglass" + glass_center_of_mass = list("x"=16, "y"=9) + glass_icon_file = 'icons/obj/drinks_vr.dmi' + +/datum/reagent/ethanol/windgarita + glass_icon_state = "windgaritaglass" + glass_center_of_mass = list("x"=16, "y"=9) + glass_icon_file = 'icons/obj/drinks_vr.dmi' + /datum/reagent/drink/soda/kiraspecial glass_icon_file = 'icons/obj/drinks_vr.dmi' diff --git a/code/modules/food/food/snacks.dm b/code/modules/food/food/snacks.dm index ad30c244f2..f5ca36f229 100644 --- a/code/modules/food/food/snacks.dm +++ b/code/modules/food/food/snacks.dm @@ -4039,6 +4039,40 @@ /obj/item/weapon/reagent_containers/food/snacks/rawsunflower/Initialize() . = ..() +/obj/item/weapon/reagent_containers/food/snacks/frostbelle + name = "frostbelle bud" + desc = "A frostbelle flower from Sif. Its petals shimmer with an inner light." + icon = 'icons/obj/food_ingredients.dmi' + icon_state = "frostbelle" + bitesize = 1 + nutriment_amt = 1 + nutriment_desc = list("another world" = 2) + catalogue_data = list(/datum/category_item/catalogue/flora/frostbelle) + filling_color = "#5dadcf" + +/obj/item/weapon/reagent_containers/food/snacks/frostbelle/Initialize() + . = ..() + set_light(1, 1, "#5dadcf") + + reagents.add_reagent("oxycodone", 1) + reagents.add_reagent("sifsap", 5) + reagents.add_reagent("space_drugs", 5) + +/obj/item/weapon/reagent_containers/food/snacks/bellefritter + name = "frostbelle fritters" + desc = "Frostbelles, prepared traditionally." + icon = 'icons/obj/food_syn.dmi' + icon_state = "bellefritter" + filling_color = "#5dadcf" + center_of_mass = list("x"=16, "y"=12) + do_coating_prefix = 0 + +/obj/item/weapon/reagent_containers/food/snacks/bellefritter/Initialize() + . = ..() + reagents.add_reagent("batter", 10) + reagents.add_reagent("sugar", 5) + bitesize = 2 + /obj/item/weapon/reagent_containers/food/snacks/roastedsunflower name = "sunflower seeds" desc = "Sunflower seeds!" diff --git a/code/modules/food/kitchen/gibber.dm b/code/modules/food/kitchen/gibber.dm index 1fca845091..6402a432ae 100644 --- a/code/modules/food/kitchen/gibber.dm +++ b/code/modules/food/kitchen/gibber.dm @@ -188,18 +188,13 @@ update_icon() var/slab_name = occupant.name - var/slab_count = 3 - var/slab_type = /obj/item/weapon/reagent_containers/food/snacks/meat + var/slab_count = 2 + occupant.meat_amount + var/slab_type = occupant.meat_type ? occupant.meat_type : /obj/item/weapon/reagent_containers/food/snacks/meat var/slab_nutrition = src.occupant.nutrition / 15 - // Some mobs have specific meat item types. - if(istype(src.occupant,/mob/living/simple_mob)) - var/mob/living/simple_mob/critter = src.occupant - if(critter.meat_amount) - slab_count = critter.meat_amount - if(critter.meat_type) - slab_type = critter.meat_type - else if(istype(src.occupant,/mob/living/carbon/human)) + var/list/byproducts = occupant?.butchery_loot?.Copy() + + if(istype(src.occupant,/mob/living/carbon/human)) var/mob/living/carbon/human/H = occupant slab_name = src.occupant.real_name slab_type = H.isSynthetic() ? /obj/item/stack/material/steel : H.species.meat_type @@ -209,7 +204,8 @@ slab_nutrition *= 0.5 slab_nutrition /= slab_count - for(var/i=1 to slab_count) + while(slab_count) + slab_count-- var/obj/item/weapon/reagent_containers/food/snacks/meat/new_meat = new slab_type(src, rand(3,8)) if(istype(new_meat)) new_meat.name = "[slab_name] [new_meat.name]" @@ -222,17 +218,26 @@ src.occupant.ghostize() spawn(gib_time) - - operating = 0 occupant.gib() occupant = null - playsound(src, 'sound/effects/splat.ogg', 50, 1) operating = 0 + if(LAZYLEN(byproducts)) + for(var/path in byproducts) + while(byproducts[path]) + if(prob(min(90,30 * byproducts[path]))) + new path(src) + + byproducts[path] -= 1 + for (var/obj/thing in contents) - // There's a chance that the gibber will fail to destroy some evidence. + // There's a chance that the gibber will fail to destroy or butcher some evidence. if(istype(thing,/obj/item/organ) && prob(80)) - qdel(thing) + var/obj/item/organ/OR = thing + if(OR.can_butcher(src)) + OR.butcher(src, null, src) // Butcher it, and add it to our list of things to launch. + else + qdel(thing) continue thing.forceMove(get_turf(thing)) // Drop it onto the turf for throwing. thing.throw_at(get_edge_target_turf(src,gib_throw_dir),rand(0,3),emagged ? 100 : 50) // Being pelted with bits of meat and bone would hurt. diff --git a/code/modules/food/kitchen/smartfridge.dm b/code/modules/food/kitchen/smartfridge.dm index 7184b2f68c..d776e45296 100644 --- a/code/modules/food/kitchen/smartfridge.dm +++ b/code/modules/food/kitchen/smartfridge.dm @@ -137,6 +137,10 @@ var/obj/item/weapon/reagent_containers/food/snacks/S = O if (S.dried_type) return 1 + + if(istype(O, /obj/item/stack/wetleather)) + return 1 + return 0 /obj/machinery/smartfridge/drying_rack/process() @@ -180,6 +184,17 @@ new D(get_turf(src)) qdel(S) return + + for(var/obj/item/stack/wetleather/WL in I.instances) + if(!WL.wetness) + if(WL.amount == 1) + WL.forceMove(get_turf(src)) + I.instances -= WL + WL.dry() + break + + WL.wetness = max(0, WL.wetness - rand(1, 3)) + return /obj/machinery/smartfridge/process() diff --git a/code/modules/food/recipe.dm b/code/modules/food/recipe.dm index 8c7f1092bd..dae450d310 100644 --- a/code/modules/food/recipe.dm +++ b/code/modules/food/recipe.dm @@ -208,7 +208,7 @@ var/obj/item/I = locate(i) in container if (I && I.reagents) I.reagents.trans_to_holder(buffer,I.reagents.total_volume) - qdel(I) + qdel(I) //Find fruits if (fruit && fruit.len) diff --git a/code/modules/food/recipe_dump.dm b/code/modules/food/recipe_dump.dm index 45f4c3e4ae..df0e6874aa 100644 --- a/code/modules/food/recipe_dump.dm +++ b/code/modules/food/recipe_dump.dm @@ -12,7 +12,8 @@ var/datum/chemical_reaction/drinks/CR = new path() drink_recipes[path] = list("Result" = CR.name, "ResAmt" = CR.result_amount, - "Reagents" = CR.required_reagents) + "Reagents" = CR.required_reagents, + "Catalysts" = CR.catalysts) qdel(CR) //////////////////////// FOOD @@ -30,8 +31,10 @@ "Result" = "[res.name]", "ResAmt" = "1", "Reagents" = R.reagents, + "Catalysts" = list(), "Fruit" = R.fruit, "Ingredients" = R.items, + "Coating" = R.coating, "Appliance" = R.appliance, "Image" = result_icon ) @@ -45,6 +48,7 @@ food_recipes[path] = list("Result" = CR.name, "ResAmt" = CR.result_amount, "Reagents" = CR.required_reagents, + "Catalysts" = CR.catalysts, "Fruit" = list(), "Ingredients" = list(), "Image" = null) @@ -54,8 +58,11 @@ //Items needs further processing into human-readability. for(var/Rp in food_recipes) var/working_ing_list = list() + food_recipes[Rp]["has_coatable_items"] = FALSE for(var/I in food_recipes[Rp]["Ingredients"]) var/atom/ing = new I() + if(istype(ing, /obj/item/weapon/reagent_containers/food/snacks)) // only subtypes of this have a coating variable and are checked for it (fruit are a subtype of this, so there's a check for them too later) + food_recipes[Rp]["has_coatable_items"] = TRUE //So now we add something like "Bread" = 3 if(ing.name in working_ing_list) @@ -64,6 +71,8 @@ else working_ing_list[ing.name] = 1 + if(LAZYLEN(food_recipes[Rp]["Fruit"])) + food_recipes[Rp]["has_coatable_items"] = TRUE food_recipes[Rp]["Ingredients"] = working_ing_list //Reagents can be resolved to nicer names as well @@ -77,6 +86,15 @@ var/amt = food_recipes[Rp]["Reagents"][rid] food_recipes[Rp]["Reagents"] -= rid food_recipes[Rp]["Reagents"][R_name] = amt + for(var/rid in food_recipes[Rp]["Catalysts"]) + var/datum/reagent/Rd = SSchemistry.chemical_reagents[rid] + if(!Rd) // Leaving this here in the event that if rd is ever invalid or there's a recipe issue, it'll be skipped and recipe dumps can still be ran. + log_runtime(EXCEPTION("Food \"[Rp]\" had an invalid RID: \"[rid]\"! Check your reagents list for a missing or mistyped reagent!")) + continue // This allows the dump to still continue, and it will skip the invalid recipes. + var/R_name = Rd.name + var/amt = food_recipes[Rp]["Catalysts"][rid] + food_recipes[Rp]["Catalysts"] -= rid + food_recipes[Rp]["Catalysts"][R_name] = amt for(var/Rp in drink_recipes) for(var/rid in drink_recipes[Rp]["Reagents"]) var/datum/reagent/Rd = SSchemistry.chemical_reagents[rid] @@ -87,6 +105,15 @@ var/amt = drink_recipes[Rp]["Reagents"][rid] drink_recipes[Rp]["Reagents"] -= rid drink_recipes[Rp]["Reagents"][R_name] = amt + for(var/rid in drink_recipes[Rp]["Catalysts"]) + var/datum/reagent/Rd = SSchemistry.chemical_reagents[rid] + if(!Rd) // Leaving this here in the event that if rd is ever invalid or there's a recipe issue, it'll be skipped and recipe dumps can still be ran. + log_runtime(EXCEPTION("Food \"[Rp]\" had an invalid RID: \"[rid]\"! Check your reagents list for a missing or mistyped reagent!")) + continue // This allows the dump to still continue, and it will skip the invalid recipes. + var/R_name = Rd.name + var/amt = drink_recipes[Rp]["Catalysts"][rid] + drink_recipes[Rp]["Catalysts"] -= rid + drink_recipes[Rp]["Catalysts"][R_name] = amt //We can also change the appliance to its proper name. for(var/Rp in food_recipes) @@ -174,6 +201,20 @@ if(pretty_ing != "") html += "
  • Ingredients: [pretty_ing]
  • " + //Coating + if(!food_recipes[Rp]["has_coatable_items"]) + html += "
  • Coating: N/A, no coatable items
  • " + // css can be used to style or hide these depending on the class. This has two classes + // coating and coating_not_applicable, which can each have styles applied. + else if(food_recipes[Rp]["Coating"] == -1) + html += "
  • Coating: Optionally, any coating
  • " + else if(isnull(food_recipes[Rp]["Coating"])) + html += "
  • Coating: Must be uncoated
  • " + else + var/coatingtype = food_recipes[Rp]["Coating"] + var/datum/reagent/coating = new coatingtype() + html += "
  • Coating: [coating.name]
  • " + //For each fruit var/pretty_fru = "" count = 0 @@ -192,6 +233,15 @@ if(pretty_rea != "") html += "
  • Mix in: [pretty_rea]
  • " + //For each catalyst + var/pretty_cat = "" + count = 0 + for(var/cat in food_recipes[Rp]["Catalysts"]) + pretty_cat += "[count == 0 ? "" : ", "][food_recipes[Rp]["Catalysts"][cat]]u [cat]" + count++ + if(pretty_cat != "") + html += "
  • Catalysts: [pretty_cat]
  • " + //Close ingredients html += "" //Close this row @@ -230,6 +280,15 @@ if(pretty_rea != "") html += "
  • Mix together: [pretty_rea]
  • " + //For each catalyst + var/pretty_cat = "" + count = 0 + for(var/cat in drink_recipes[Rp]["Catalysts"]) + pretty_cat += "[count == 0 ? "" : ", "][drink_recipes[Rp]["Catalysts"][cat]]u [cat]" + count++ + if(pretty_cat != "") + html += "
  • Catalysts: [pretty_cat]
  • " + html += "
  • Makes [drink_recipes[Rp]["ResAmt"]]u
  • " //Close reagents diff --git a/code/modules/food/recipes_fryer.dm b/code/modules/food/recipes_fryer.dm index a5a3fee6e7..1d739ec69d 100644 --- a/code/modules/food/recipes_fryer.dm +++ b/code/modules/food/recipes_fryer.dm @@ -27,6 +27,11 @@ reagent_mix = RECIPE_REAGENT_REPLACE //Simplify end product result = /obj/item/weapon/reagent_containers/food/snacks/risottoballs +/datum/recipe/bellefritter + appliance = FRYER + reagents = list("sugar" = 5, "batter" = 10) + items = list(/obj/item/weapon/reagent_containers/food/snacks/frostbelle) + result = /obj/item/weapon/reagent_containers/food/snacks/bellefritter //Meaty Recipes //==================== @@ -93,7 +98,7 @@ ) result = /obj/item/weapon/reagent_containers/food/snacks/donut/jelly result_quantity = 2 - + /datum/recipe/jellydonut/poisonberry reagents = list("poisonberryjuice" = 5, "sugar" = 5) items = list( diff --git a/code/modules/holodeck/HolodeckObjects.dm b/code/modules/holodeck/HolodeckObjects.dm index 849b1a5a6e..4766f5c1ef 100644 --- a/code/modules/holodeck/HolodeckObjects.dm +++ b/code/modules/holodeck/HolodeckObjects.dm @@ -406,6 +406,7 @@ datum/unarmed_attack/holopugilism/unarmed_override(var/mob/living/carbon/human/u 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 diff --git a/code/modules/holomap/station_holomap.dm b/code/modules/holomap/station_holomap.dm index 39a1c30452..9556477f50 100644 --- a/code/modules/holomap/station_holomap.dm +++ b/code/modules/holomap/station_holomap.dm @@ -6,6 +6,7 @@ desc = "A virtual map of the surrounding station." icon = 'icons/obj/machines/stationmap.dmi' icon_state = "station_map" + layer = ABOVE_WINDOW_LAYER anchored = 1 density = 0 use_power = USE_POWER_IDLE @@ -19,9 +20,6 @@ var/light_range_on = 2 light_color = "#64C864" - plane = TURF_PLANE - layer = ABOVE_TURF_LAYER - var/mob/watching_mob = null var/image/small_station_map = null var/image/floor_markings = null diff --git a/code/modules/library/lib_machines.dm b/code/modules/library/lib_machines.dm index 17eee1149c..9a226b836d 100644 --- a/code/modules/library/lib_machines.dm +++ b/code/modules/library/lib_machines.dm @@ -173,14 +173,14 @@ datum/borrowbook // Datum used to keep track of who has borrowed what when and f var/dat = "Book Inventory Management\n" // switch(screenstate) if(0) - // Main Menu + // Main Menu //VOREStation Edit start dat += {"1. View General Inventory
    2. View Checked Out Inventory
    3. Check out a Book
    - 4. Connect to Internal Archive
    //VOREStation Edit + 4. Connect to Internal Archive
    5. Upload New Title to Archive
    6. Print a Bible
    - 8. Access External Archive
    "} //VOREStation Edit + 8. Access External Archive
    "} //VOREStation Edit end if(src.emagged) dat += "7. Access the Forbidden Lore Vault
    " if(src.arcanecheckout) diff --git a/code/modules/materials/material_recipes.dm b/code/modules/materials/material_recipes.dm index ff567c55f4..57bf6b9b7d 100644 --- a/code/modules/materials/material_recipes.dm +++ b/code/modules/materials/material_recipes.dm @@ -248,3 +248,24 @@ recipes += new/datum/stack_recipe("[display_name] net", /obj/item/weapon/material/fishing_net, 10, time = 5 SECONDS, supplied_material = "[name]", pass_stack_color = TRUE) recipes += new/datum/stack_recipe("[display_name] membrane", /obj/effect/alien/resin/membrane, 1, time = 2 SECONDS, pass_stack_color = TRUE) recipes += new/datum/stack_recipe("[display_name] node", /obj/effect/alien/weeds/node, 1, time = 4 SECONDS) + +/datum/material/leather/generate_recipes() + recipes = list() + recipes += new/datum/stack_recipe("bedsheet", /obj/item/weapon/bedsheet, 10, time = 30 SECONDS, pass_stack_color = TRUE) + recipes += new/datum/stack_recipe("uniform", /obj/item/clothing/under/color/white, 8, time = 15 SECONDS, pass_stack_color = TRUE) + recipes += new/datum/stack_recipe("foot wraps", /obj/item/clothing/shoes/footwraps, 2, time = 5 SECONDS, pass_stack_color = TRUE) + recipes += new/datum/stack_recipe("gloves", /obj/item/clothing/gloves/white, 2, time = 5 SECONDS, pass_stack_color = TRUE) + recipes += new/datum/stack_recipe("wig", /obj/item/clothing/head/powdered_wig, 4, time = 10 SECONDS, pass_stack_color = TRUE) + recipes += new/datum/stack_recipe("philosopher's wig", /obj/item/clothing/head/philosopher_wig, 50, time = 2 MINUTES, pass_stack_color = TRUE) + recipes += new/datum/stack_recipe("taqiyah", /obj/item/clothing/head/taqiyah, 3, time = 6 SECONDS, pass_stack_color = TRUE) + recipes += new/datum/stack_recipe("turban", /obj/item/clothing/head/turban, 3, time = 6 SECONDS, pass_stack_color = TRUE) + recipes += new/datum/stack_recipe("hijab", /obj/item/clothing/head/hijab, 3, time = 6 SECONDS, pass_stack_color = TRUE) + recipes += new/datum/stack_recipe("kippa", /obj/item/clothing/head/kippa, 3, time = 6 SECONDS, pass_stack_color = TRUE) + recipes += new/datum/stack_recipe("scarf", /obj/item/clothing/accessory/scarf/white, 4, time = 5 SECONDS, pass_stack_color = TRUE) + recipes += new/datum/stack_recipe("baggy pants", /obj/item/clothing/under/pants/baggy/white, 8, time = 10 SECONDS, pass_stack_color = TRUE) + recipes += new/datum/stack_recipe("belt pouch", /obj/item/weapon/storage/belt/fannypack/white, 25, time = 1 MINUTE, pass_stack_color = TRUE) + recipes += new/datum/stack_recipe("crude [display_name] bandage", /obj/item/stack/medical/crude_pack, 1, time = 2 SECONDS, pass_stack_color = TRUE) + recipes += new/datum/stack_recipe("[display_name] net", /obj/item/weapon/material/fishing_net, 10, time = 5 SECONDS, supplied_material = "[name]", pass_stack_color = TRUE) + recipes += new/datum/stack_recipe("[display_name] ring", /obj/item/clothing/gloves/ring/material, 1, on_floor = 1, supplied_material = "[name]", pass_stack_color = TRUE) + recipes += new/datum/stack_recipe("[display_name] bracelet", /obj/item/clothing/accessory/bracelet/material, 1, on_floor = 1, supplied_material = "[name]", pass_stack_color = TRUE) + recipes += new/datum/stack_recipe("[display_name] armor plate", /obj/item/weapon/material/armor_plating, 1, time = 20, on_floor = 1, supplied_material = "[name]", pass_stack_color = TRUE) diff --git a/code/modules/materials/material_sheets.dm b/code/modules/materials/material_sheets.dm index 6eb7b990e8..2a17e05d36 100644 --- a/code/modules/materials/material_sheets.dm +++ b/code/modules/materials/material_sheets.dm @@ -444,7 +444,18 @@ name = "leather" desc = "The by-product of mob grinding." icon_state = "sheet-leather" - default_type = "leather" + default_type = MAT_LEATHER + no_variants = FALSE + pass_color = TRUE + strict_color_stacking = TRUE + drop_sound = 'sound/items/drop/leather.ogg' + pickup_sound = 'sound/items/pickup/leather.ogg' + +/obj/item/stack/material/chitin + name = "chitin" + desc = "The by-product of mob grinding." + icon_state = "chitin" + default_type = MAT_CHITIN no_variants = FALSE pass_color = TRUE strict_color_stacking = TRUE diff --git a/code/modules/materials/materials.dm b/code/modules/materials/materials.dm index 8171f24579..6465d41fbb 100644 --- a/code/modules/materials/materials.dm +++ b/code/modules/materials/materials.dm @@ -1008,6 +1008,7 @@ var/list/name_to_material flags = MATERIAL_PADDING conductive = 0 pass_stack_colors = TRUE + supply_conversion_value = 2 /datum/material/cult name = "cult" @@ -1033,16 +1034,32 @@ var/list/name_to_material /datum/material/cult/reinf/place_dismantled_product(var/turf/target) new /obj/effect/decal/remains/human(target) +/datum/material/chitin + name = MAT_CHITIN + icon_colour = "#8d6653" + stack_type = /obj/item/stack/material/chitin + stack_origin_tech = list(TECH_MATERIAL = 3, TECH_BIO = 4) + icon_base = "solid" + icon_reinf = "reinf_mesh" + integrity = 60 + ignition_point = T0C+400 + melting_point = T0C+500 + protectiveness = 25 + conductive = 0 + supply_conversion_value = 4 + //TODO PLACEHOLDERS: /datum/material/leather - name = "leather" + name = MAT_LEATHER icon_colour = "#5C4831" - stack_origin_tech = list(TECH_MATERIAL = 2) + stack_type = /obj/item/stack/material/leather + stack_origin_tech = list(TECH_MATERIAL = 2, TECH_BIO = 2) flags = MATERIAL_PADDING ignition_point = T0C+300 melting_point = T0C+300 protectiveness = 3 // 13% conductive = 0 + supply_conversion_value = 3 /datum/material/carpet name = "carpet" diff --git a/code/modules/mining/machine_processing.dm b/code/modules/mining/machine_processing.dm index 32d47681c3..da315f2493 100644 --- a/code/modules/mining/machine_processing.dm +++ b/code/modules/mining/machine_processing.dm @@ -8,6 +8,7 @@ name = "production machine console" icon = 'icons/obj/machines/mining_machines_vr.dmi' // VOREStation Edit icon_state = "console" + layer = ABOVE_WINDOW_LAYER density = TRUE anchored = TRUE diff --git a/code/modules/mining/machine_stacking.dm b/code/modules/mining/machine_stacking.dm index c1d6c4ee4c..fdabc49e7d 100644 --- a/code/modules/mining/machine_stacking.dm +++ b/code/modules/mining/machine_stacking.dm @@ -4,6 +4,7 @@ name = "stacking machine console" icon = 'icons/obj/machines/mining_machines_vr.dmi' // VOREStation Edit icon_state = "console" + layer = ABOVE_WINDOW_LAYER density = 1 anchored = 1 var/obj/machinery/mineral/stacking_machine/machine = null diff --git a/code/modules/mining/ore_redemption_machine/equipment_vendor.dm b/code/modules/mining/ore_redemption_machine/equipment_vendor.dm index 0ab8381002..234d88334e 100644 --- a/code/modules/mining/ore_redemption_machine/equipment_vendor.dm +++ b/code/modules/mining/ore_redemption_machine/equipment_vendor.dm @@ -17,7 +17,51 @@ var/icon_vend = "adh-tool-vend" circuit = /obj/item/weapon/circuitboard/mining_equipment_vendor var/obj/item/weapon/card/id/inserted_id - var/list/prize_list // Initialized just below! (if you're wondering why - check CONTRIBUTING.md, look for: "hidden" init proc) + var/list/prize_list = list( + new /datum/data/mining_equipment("1 Marker Beacon", /obj/item/stack/marker_beacon, 10), + new /datum/data/mining_equipment("10 Marker Beacons", /obj/item/stack/marker_beacon/ten, 100), + new /datum/data/mining_equipment("30 Marker Beacons", /obj/item/stack/marker_beacon/thirty, 300), + new /datum/data/mining_equipment("Whiskey", /obj/item/weapon/reagent_containers/food/drinks/bottle/whiskey, 125), + new /datum/data/mining_equipment("Absinthe", /obj/item/weapon/reagent_containers/food/drinks/bottle/absinthe, 125), + new /datum/data/mining_equipment("Cigar", /obj/item/clothing/mask/smokable/cigarette/cigar/havana, 150), + new /datum/data/mining_equipment("Soap", /obj/item/weapon/soap/nanotrasen, 200), + new /datum/data/mining_equipment("Laser Pointer", /obj/item/device/laser_pointer, 900), + new /datum/data/mining_equipment("Geiger Counter", /obj/item/device/geiger, 750), + new /datum/data/mining_equipment("Plush Toy", /obj/random/plushie, 300), + new /datum/data/mining_equipment("Umbrella", /obj/item/weapon/melee/umbrella/random, 200), +// new /datum/data/mining_equipment("Fulton Beacon", /obj/item/fulton_core, 500), + new /datum/data/mining_equipment("Point Transfer Card", /obj/item/weapon/card/mining_point_card, 500), +// new /datum/data/mining_equipment("Fulton Pack", /obj/item/extraction_pack, 1200), +// new /datum/data/mining_equipment("Silver Pickaxe", /obj/item/weapon/pickaxe/silver, 1200), +// new /datum/data/mining_equipment("Diamond Pickaxe", /obj/item/weapon/pickaxe/diamond, 2000), + new /datum/data/mining_equipment("Fishing Net", /obj/item/weapon/material/fishing_net, 500), + new /datum/data/mining_equipment("Titanium Fishing Rod", /obj/item/weapon/material/fishing_rod/modern, 1000), +// new /datum/data/mining_equipment("Space Cash", /obj/item/weapon/spacecash/c1000, 2000), + new /datum/data/mining_equipment("Industrial Hardsuit - Control Module", /obj/item/weapon/rig/industrial, 10000), + new /datum/data/mining_equipment("Industrial Hardsuit - Plasma Cutter", /obj/item/rig_module/device/plasmacutter, 800), + new /datum/data/mining_equipment("Industrial Hardsuit - Drill", /obj/item/rig_module/device/drill, 5000), + new /datum/data/mining_equipment("Industrial Hardsuit - Ore Scanner", /obj/item/rig_module/device/orescanner, 1000), + new /datum/data/mining_equipment("Industrial Hardsuit - Advanced Optics", /obj/item/rig_module/vision/mining, 1250), + new /datum/data/mining_equipment("Industrial Hardsuit - Maneuvering Jets", /obj/item/rig_module/maneuvering_jets, 1250), + new /datum/data/mining_equipment("Hardsuit - Intelligence Storage", /obj/item/rig_module/ai_container, 2500), + new /datum/data/mining_equipment("Hardsuit - Smoke Bomb Deployer", /obj/item/rig_module/grenade_launcher/smoke, 2000), + new /datum/data/mining_equipment("Industrial Equipment - Phoron Bore", /obj/item/weapon/gun/magnetic/matfed/phoronbore/loaded, 3000), + new /datum/data/mining_equipment("Industrial Equipment - Sheet-Snatcher",/obj/item/weapon/storage/bag/sheetsnatcher, 500), new /datum/data/mining_equipment("Digital Tablet - Standard", /obj/item/modular_computer/tablet/preset/custom_loadout/standard, 500), + new /datum/data/mining_equipment("Digital Tablet - Advanced", /obj/item/modular_computer/tablet/preset/custom_loadout/advanced, 1000), + new /datum/data/mining_equipment("Fine Excavation Kit - Chisels",/obj/item/weapon/storage/excavation, 500), + new /datum/data/mining_equipment("Fine Excavation Kit - Measuring Tape",/obj/item/device/measuring_tape, 125), + new /datum/data/mining_equipment("Fine Excavation Kit - Hand Pick",/obj/item/weapon/pickaxe/hand, 375), + new /datum/data/mining_equipment("Explosive Excavation Kit - Plastic Charge",/obj/item/weapon/plastique/seismic, 1500), + new /datum/data/mining_equipment("Injector (L) - Glucose",/obj/item/weapon/reagent_containers/hypospray/autoinjector/biginjector/glucose, 500), + new /datum/data/mining_equipment("Injector (L) - Panacea",/obj/item/weapon/reagent_containers/hypospray/autoinjector/biginjector/purity, 500), + new /datum/data/mining_equipment("Injector (L) - Trauma",/obj/item/weapon/reagent_containers/hypospray/autoinjector/biginjector/brute, 500), + new /datum/data/mining_equipment("Nanopaste Tube", /obj/item/stack/nanopaste, 1000), + new /datum/data/mining_equipment("Defense Equipment - Phase Pistol",/obj/item/weapon/gun/energy/phasegun/pistol, 400), + new /datum/data/mining_equipment("Defense Equipment - Smoke Bomb",/obj/item/weapon/grenade/smokebomb, 100), + new /datum/data/mining_equipment("Defense Equipment - Razor Drone Deployer",/obj/item/weapon/grenade/spawnergrenade/manhacks/station, 1000), + new /datum/data/mining_equipment("Defense Equipment - Sentry Drone Deployer",/obj/item/weapon/grenade/spawnergrenade/ward, 1500), + new /datum/data/mining_equipment("Defense Equipment - Steel Machete", /obj/item/weapon/material/knife/machete, 500) + ) var/dirty_items = FALSE // Used to refresh the static/redundant data in case the machine gets VV'd /datum/data/mining_equipment @@ -91,7 +135,7 @@ EQUIPMENT("Fine Excavation Kit - Measuring Tape", /obj/item/device/measuring_tape, 125), EQUIPMENT("Fine Excavation Kit - Hand Pick", /obj/item/weapon/pickaxe/hand, 375), EQUIPMENT("Explosive Excavation Kit - Plastic Charge",/obj/item/weapon/plastique/seismic/locked, 1500), - EQUIPMENT("Industrial Equipment - Phoron Bore", /obj/item/weapon/gun/magnetic/matfed, 3000), + EQUIPMENT("Industrial Equipment - Phoron Bore", /obj/item/weapon/gun/magnetic/matfed/phoronbore/loaded, 3000), EQUIPMENT("Industrial Equipment - Inducer", /obj/item/weapon/inducer, 900), EQUIPMENT("Industrial Equipment - Sheet-Snatcher", /obj/item/weapon/storage/bag/sheetsnatcher, 500), ) diff --git a/code/modules/mining/ore_redemption_machine/survey_vendor.dm b/code/modules/mining/ore_redemption_machine/survey_vendor.dm index eaf5667094..9956084c11 100644 --- a/code/modules/mining/ore_redemption_machine/survey_vendor.dm +++ b/code/modules/mining/ore_redemption_machine/survey_vendor.dm @@ -8,6 +8,40 @@ circuit = /obj/item/weapon/circuitboard/exploration_equipment_vendor icon_deny = "exploration-deny" //VOREStation Edit icon_vend = "exploration-vend" //VOREStation Add + prize_list = list( + new /datum/data/mining_equipment("1 Marker Beacon", /obj/item/stack/marker_beacon, 1), + new /datum/data/mining_equipment("10 Marker Beacons", /obj/item/stack/marker_beacon/ten, 10), + new /datum/data/mining_equipment("30 Marker Beacons", /obj/item/stack/marker_beacon/thirty, 30), + new /datum/data/mining_equipment("Whiskey", /obj/item/weapon/reagent_containers/food/drinks/bottle/whiskey, 120), + new /datum/data/mining_equipment("Absinthe", /obj/item/weapon/reagent_containers/food/drinks/bottle/absinthe, 120), + new /datum/data/mining_equipment("Cigar", /obj/item/clothing/mask/smokable/cigarette/cigar/havana, 15), + new /datum/data/mining_equipment("Soap", /obj/item/weapon/soap/nanotrasen, 20), + new /datum/data/mining_equipment("Laser Pointer", /obj/item/device/laser_pointer, 90), + new /datum/data/mining_equipment("Geiger Counter", /obj/item/device/geiger, 75), + new /datum/data/mining_equipment("Plush Toy", /obj/random/plushie, 30), + new /datum/data/mining_equipment("Umbrella", /obj/item/weapon/melee/umbrella/random, 10), + new /datum/data/mining_equipment("Extraction Equipment - Fulton Beacon", /obj/item/fulton_core, 100), + new /datum/data/mining_equipment("Extraction Equipment - Fulton Pack", /obj/item/extraction_pack, 50), + new /datum/data/mining_equipment("Point Transfer Card", /obj/item/weapon/card/mining_point_card/survey, 50), + new /datum/data/mining_equipment("Fishing Net", /obj/item/weapon/material/fishing_net, 50), + new /datum/data/mining_equipment("Titanium Fishing Rod", /obj/item/weapon/material/fishing_rod/modern, 50), + new /datum/data/mining_equipment("Direct Payment - 1000", /obj/item/weapon/spacecash/c1000, 500), + new /datum/data/mining_equipment("Industrial Equipment - Phoron Bore", /obj/item/weapon/gun/magnetic/matfed/phoronbore/loaded, 500), + new /datum/data/mining_equipment("Survey Tools - Shovel", /obj/item/weapon/shovel, 20), + new /datum/data/mining_equipment("Survey Tools - Mechanical Trap", /obj/item/weapon/beartrap, 30), + new /datum/data/mining_equipment("Digital Tablet - Standard", /obj/item/modular_computer/tablet/preset/custom_loadout/standard, 100), + new /datum/data/mining_equipment("Digital Tablet - Advanced", /obj/item/modular_computer/tablet/preset/custom_loadout/advanced, 300), + new /datum/data/mining_equipment("Injector (L) - Glucose",/obj/item/weapon/reagent_containers/hypospray/autoinjector/biginjector/glucose, 30), + new /datum/data/mining_equipment("Injector (L) - Panacea",/obj/item/weapon/reagent_containers/hypospray/autoinjector/biginjector/purity, 30), + new /datum/data/mining_equipment("Injector (L) - Trauma",/obj/item/weapon/reagent_containers/hypospray/autoinjector/biginjector/brute, 50), + new /datum/data/mining_equipment("Nanopaste Tube", /obj/item/stack/nanopaste, 50), + new /datum/data/mining_equipment("Defense Equipment - Phase Pistol",/obj/item/weapon/gun/energy/phasegun/pistol, 15), + new /datum/data/mining_equipment("Defense Equipment - Smoke Bomb",/obj/item/weapon/grenade/smokebomb, 50), + new /datum/data/mining_equipment("Defense Equipment - Razor Drone Deployer",/obj/item/weapon/grenade/spawnergrenade/manhacks/station, 50), + new /datum/data/mining_equipment("Defense Equipment - Sentry Drone Deployer",/obj/item/weapon/grenade/spawnergrenade/ward, 100), + new /datum/data/mining_equipment("Defense Equipment - Steel Machete", /obj/item/weapon/material/knife/machete, 50), + new /datum/data/mining_equipment("Survival Equipment - Insulated Poncho", /obj/random/thermalponcho, 75) + ) /obj/machinery/mineral/equipment_vendor/survey/Initialize(mapload) . = ..() @@ -54,7 +88,7 @@ EQUIPMENT("Cigar", /obj/item/clothing/mask/smokable/cigarette/cigar/havana, 15), EQUIPMENT("Digital Tablet - Standard", /obj/item/modular_computer/tablet/preset/custom_loadout/standard, 50), EQUIPMENT("Digital Tablet - Advanced", /obj/item/modular_computer/tablet/preset/custom_loadout/advanced, 100), - EQUIPMENT("Industrial Equipment - Phoron Bore", /obj/item/weapon/gun/magnetic/matfed, 300), + EQUIPMENT("Industrial Equipment - Phoron Bore", /obj/item/weapon/gun/magnetic/matfed/phoronbore/loaded, 300), EQUIPMENT("Industrial Equipment - Inducer", /obj/item/weapon/inducer, 90), EQUIPMENT("Laser Pointer", /obj/item/device/laser_pointer, 90), EQUIPMENT("Luxury Shelter Capsule", /obj/item/device/survivalcapsule/luxury, 310), diff --git a/code/modules/mining/shelter_atoms_vr.dm b/code/modules/mining/shelter_atoms_vr.dm index 8d080c64cd..b9929c7678 100644 --- a/code/modules/mining/shelter_atoms_vr.dm +++ b/code/modules/mining/shelter_atoms_vr.dm @@ -119,6 +119,11 @@ GLOBAL_LIST_EMPTY(unique_deployable) unique_id = "shelter_5" is_ship = TRUE +/obj/item/device/survivalcapsule/popcabin + name = "pop-out cabin shelter capsule" + desc = "A cozy cabin; crammed into a survival capsule." + template_id = "shelter_cab" + /obj/item/device/survivalcapsule/dropship name = "dropship surfluid shelter capsule" desc = "A military dropship in a capsule. Contains everything an assault squad would need, minus the squad itself. This capsule is significantly larger than most. There's a license for use printed on the bottom." diff --git a/code/modules/mining/shelters_vr.dm b/code/modules/mining/shelters_vr.dm index abaee7d609..b5e6419240 100644 --- a/code/modules/mining/shelters_vr.dm +++ b/code/modules/mining/shelters_vr.dm @@ -96,6 +96,12 @@ for escaping a dying ship as soon as possible." mappath = "maps/offmap_vr/om_ships/shelter_5.dmm" +/datum/map_template/shelter/cabin + name = "Shelter Cabin" + shelter_id = "shelter_cab" + description = "A small cabin; turned into a shelter capsule. Includes dorm amenities, and a nice dinner." + mappath = "maps/submaps/shelters/shelter_cab.dmm" + /datum/map_template/shelter/zeta name = "Shelter Zeta" shelter_id = "shelter_zeta" diff --git a/code/modules/mob/language/station_vr.dm b/code/modules/mob/language/station_vr.dm index 025543807d..f9bfecb6e6 100644 --- a/code/modules/mob/language/station_vr.dm +++ b/code/modules/mob/language/station_vr.dm @@ -134,6 +134,16 @@ "roar", "hyaa", "ma", "ha", "ya", "shi", "yo", "go" ) +/datum/language/spacer + name = LANGUAGE_SPACER + desc = "A rough pidgin-language comprised of Tradeband, Gutter, and Sol Common used by various space-born communities unique to Humanity." + key = "J" + syllables = list( + "ada", "zir", "bian", "ach", "usk", "ado", "ich", "cuan", "iga", "qing", "le", "que", "ki", "qaf", "dei", "eta" + ) + colour = "spacer" + machine_understands = TRUE + /datum/language/unathi flags = 0 /datum/language/tajaran diff --git a/code/modules/mob/living/bot/SLed209bot.dm b/code/modules/mob/living/bot/SLed209bot.dm index fa17b05696..c4fd4b2767 100644 --- a/code/modules/mob/living/bot/SLed209bot.dm +++ b/code/modules/mob/living/bot/SLed209bot.dm @@ -21,6 +21,7 @@ xeno_harm_strength = 9 req_one_access = list(access_research, access_robotics) botcard_access = list(access_research, access_robotics, access_xenobiology, access_xenoarch, access_tox, access_tox_storage, access_maint_tunnels) + retaliates = FALSE var/xeno_stun_strength = 6 /mob/living/bot/secbot/ed209/slime/update_icons() diff --git a/code/modules/mob/living/bot/secbot.dm b/code/modules/mob/living/bot/secbot.dm index 77ee3409ce..583b2d7af6 100644 --- a/code/modules/mob/living/bot/secbot.dm +++ b/code/modules/mob/living/bot/secbot.dm @@ -23,6 +23,7 @@ var/declare_arrests = FALSE // If true, announces arrests over sechuds. var/threat = 0 // How much of a threat something is. Set upon acquiring a target. var/attacked = FALSE // If true, gives the bot enough threat assessment to attack immediately. + var/retaliates = TRUE //If this type of secbot should retaliate at all - so that slime securitrons don't go ballistic the second they get glomped. var/is_ranged = FALSE var/awaiting_surrender = 0 @@ -63,6 +64,7 @@ desc = "A little security robot, with a slime baton subsituted for the regular one." default_icon_state = "slimesecbot" stun_strength = 10 // Slimebatons aren't meant for humans. + retaliates = FALSE // No, you're not allowed to beat the slimes to death just because they scratched you. xeno_harm_strength = 9 // Weaker than regular slimesky but they can stun. baton_glow = "#33CCFF" @@ -193,7 +195,7 @@ ..() /mob/living/bot/secbot/proc/react_to_attack(mob/attacker) - if(!on) // We don't want it to react if it's off + if(!on || !retaliates) // We don't want it to react if it's off or doesn't care return if(!target) diff --git a/code/modules/mob/living/butchering.dm b/code/modules/mob/living/butchering.dm new file mode 100644 index 0000000000..514475e2a2 --- /dev/null +++ b/code/modules/mob/living/butchering.dm @@ -0,0 +1,66 @@ + + +/mob/living + var/meat_amount = 0 // How much meat to drop from this mob when butchered + var/obj/meat_type // The meat object to drop + + var/gib_on_butchery = FALSE + + var/list/butchery_loot // Associated list, path = number. + +// Harvest an animal's delicious byproducts +/mob/living/proc/harvest(var/mob/user, var/obj/item/I) + if(meat_type && meat_amount>0 && (stat == DEAD)) + while(meat_amount > 0 && do_after(user, 0.5 SECONDS * (mob_size / 10), src)) + var/obj/item/meat = new meat_type(get_turf(src)) + meat.name = "[src.name] [meat.name]" + new /obj/effect/decal/cleanable/blood/splatter(get_turf(src)) + meat_amount-- + + if(!meat_amount) + handle_butcher(user, I) + +/mob/living/proc/can_butcher(var/mob/user, var/obj/item/I) // Override for special butchering checks. + if(((meat_type && meat_amount) || LAZYLEN(butchery_loot)) && stat == DEAD) + return TRUE + + return FALSE + +/mob/living/proc/handle_butcher(var/mob/user, var/obj/item/I) + if(!user || do_after(user, 2 SECONDS * mob_size / 10, src)) + if(LAZYLEN(butchery_loot)) + if(LAZYLEN(butchery_loot)) + for(var/path in butchery_loot) + while(butchery_loot[path]) + butchery_loot[path] -= 1 + var/obj/item/loot = new path(get_turf(src)) + loot.pixel_x = rand(-12, 12) + loot.pixel_y = rand(-12, 12) + + butchery_loot.Cut() + butchery_loot = null + + if(LAZYLEN(organs)) + organs_by_name.Cut() + + for(var/obj/item/organ/OR in organs) + OR.removed() + organs -= OR + + if(LAZYLEN(internal_organs)) + internal_organs_by_name.Cut() + + for(var/obj/item/organ/OR in internal_organs) + OR.removed() + internal_organs -= OR + + if(!ckey) + if(issmall(src)) + user?.visible_message("[user] chops up \the [src]!") + new /obj/effect/decal/cleanable/blood/splatter(get_turf(src)) + if(gib_on_butchery) + qdel(src) + else + user?.visible_message("[user] butchers \the [src] messily!") + if(gib_on_butchery) + gib() diff --git a/code/modules/mob/living/carbon/carbon_defines.dm b/code/modules/mob/living/carbon/carbon_defines.dm index 1112b4e49c..07cd72fce9 100644 --- a/code/modules/mob/living/carbon/carbon_defines.dm +++ b/code/modules/mob/living/carbon/carbon_defines.dm @@ -1,4 +1,4 @@ -/mob/living/carbon/ +/mob/living/carbon gender = MALE var/datum/species/species //Contains icon generation and language information, set during New(). var/list/stomach_contents = list() diff --git a/code/modules/mob/living/carbon/human/emote_vr.dm b/code/modules/mob/living/carbon/human/emote_vr.dm index 5848289b95..7554692aa1 100644 --- a/code/modules/mob/living/carbon/human/emote_vr.dm +++ b/code/modules/mob/living/carbon/human/emote_vr.dm @@ -267,3 +267,17 @@ set desc = "Switch tail layer on top." tail_alt = !tail_alt update_tail_showing() + +/mob/living/carbon/human/verb/hide_wings_vr() + set name = "Show/Hide wings" + set category = "IC" + set desc = "Hide your wings, or show them if you already hid them." + wings_hidden = !wings_hidden + update_wing_showing() + var/message = "" + if(!wings_hidden) + message = "reveals their wings!" + else + message = "hides their wings." + visible_message("[src] [message]") + diff --git a/code/modules/mob/living/carbon/human/human_attackhand.dm b/code/modules/mob/living/carbon/human/human_attackhand.dm index c77c9a8ce3..c1eec6f8d4 100644 --- a/code/modules/mob/living/carbon/human/human_attackhand.dm +++ b/code/modules/mob/living/carbon/human/human_attackhand.dm @@ -1,3 +1,6 @@ +/mob/living/carbon/human + var/datum/unarmed_attack/default_attack + /mob/living/carbon/human/proc/get_unarmed_attack(var/mob/living/carbon/human/target, var/hit_zone) // VOREStation Edit - Begin if(nif && nif.flag_check(NIF_C_HARDCLAWS,NIF_FLAGS_COMBAT)){return unarmed_hardclaws} @@ -16,6 +19,12 @@ if(soft_type) return soft_type return G.special_attack + if(src.default_attack && src.default_attack.is_usable(src, target, hit_zone)) + if(pulling_punches) + var/datum/unarmed_attack/soft_type = src.default_attack.get_sparring_variant() + if(soft_type) + return soft_type + return src.default_attack for(var/datum/unarmed_attack/u_attack in species.unarmed_attacks) if(u_attack.is_usable(src, target, hit_zone)) if(pulling_punches) @@ -447,3 +456,37 @@ user.visible_message("\The [user] stops applying pressure to [src]'s [organ.name]!", "You stop applying pressure to [src]'s [organ.name]!") return TRUE + +/mob/living/carbon/human/verb/check_attacks() + set name = "Check Attacks" + set category = "IC" + set src = usr + + var/dat = "Known Attacks

    " + + if(default_attack) + dat += "Current default attack: [default_attack.attack_name] - reset

    " + + for(var/datum/unarmed_attack/u_attack in species.unarmed_attacks) + if(u_attack == default_attack) + dat += "Primarily [u_attack.attack_name] - default - reset


    " + else + dat += "Primarily [u_attack.attack_name] - set default


    " + + src << browse(dat, "window=checkattack") + +/mob/living/carbon/human/Topic(href, href_list) + if(href_list["default_attk"]) + if(href_list["default_attk"] == "reset_attk") + set_default_attack(null) + else + var/datum/unarmed_attack/u_attack = locate(href_list["default_attk"]) + if(u_attack && (u_attack in species.unarmed_attacks)) + set_default_attack(u_attack) + check_attacks() + return 1 + else + return ..() + +/mob/living/carbon/human/proc/set_default_attack(var/datum/unarmed_attack/u_attack) + default_attack = u_attack diff --git a/code/modules/mob/living/carbon/human/human_damage.dm b/code/modules/mob/living/carbon/human/human_damage.dm index b8343ad694..50b3c9b053 100644 --- a/code/modules/mob/living/carbon/human/human_damage.dm +++ b/code/modules/mob/living/carbon/human/human_damage.dm @@ -288,7 +288,7 @@ oxyloss = 0 else ..() - + /mob/living/carbon/human/adjustHalLoss(var/amount) if(species.flags & NO_PAIN) halloss = 0 @@ -439,13 +439,14 @@ This function restores all organs. return 0 return - +/* /mob/living/carbon/human/proc/get_organ(var/zone) if(!zone) zone = BP_TORSO else if (zone in list( O_EYES, O_MOUTH )) zone = BP_HEAD return organs_by_name[zone] +*/ /mob/living/carbon/human/apply_damage(var/damage = 0, var/damagetype = BRUTE, var/def_zone = null, var/blocked = 0, var/soaked = 0, var/sharp = 0, var/edge = 0, var/obj/used_weapon = null) if(Debug2) diff --git a/code/modules/mob/living/carbon/human/human_defines.dm b/code/modules/mob/living/carbon/human/human_defines.dm index dcde2ac30b..208e1e1ffc 100644 --- a/code/modules/mob/living/carbon/human/human_defines.dm +++ b/code/modules/mob/living/carbon/human/human_defines.dm @@ -44,7 +44,7 @@ var/age = 30 //Player's age (pure fluff) var/b_type = "A+" //Player's bloodtype - var/datum/robolimb/synthetic //If they are a synthetic (aka synthetic torso) + var/datum/robolimb/synthetic //If they are a synthetic (aka synthetic torso). Also holds the datum for the type of robolimb. var/list/all_underwear = list() var/list/all_underwear_metadata = list() @@ -85,7 +85,6 @@ var/special_voice = "" // For changing our voice. Used by a symptom. var/last_dam = -1 //Used for determining if we need to process all organs or just some or even none. - var/list/bad_external_organs = list()// organs we check until they are good. var/xylophone = 0 //For the spoooooooky xylophone cooldown @@ -118,3 +117,4 @@ var/obj/machinery/machine_visual //machine that is currently applying visual effects to this mob. Only used for camera monitors currently. inventory_panel_type = /datum/inventory_panel/human + butchery_loot = list(/obj/item/stack/animalhide/human = 1) diff --git a/code/modules/mob/living/carbon/human/human_defines_vr.dm b/code/modules/mob/living/carbon/human/human_defines_vr.dm index 9316b90e88..3a52565d08 100644 --- a/code/modules/mob/living/carbon/human/human_defines_vr.dm +++ b/code/modules/mob/living/carbon/human/human_defines_vr.dm @@ -9,6 +9,7 @@ var/impersonate_bodytype //For impersonating a bodytype var/ability_flags = 0 //Shadekin abilities/potentially other species-based? var/sensorpref = 5 //Suit sensor loadout pref + var/wings_hidden = FALSE /mob/living/carbon/human/proc/shadekin_get_energy() var/datum/species/shadekin/SK = species @@ -48,4 +49,4 @@ if(!istype(SK)) return 0 - SK.set_energy(src, SK.get_energy(src) + amount) \ No newline at end of file + SK.set_energy(src, SK.get_energy(src) + amount) diff --git a/code/modules/mob/living/carbon/human/human_organs.dm b/code/modules/mob/living/carbon/human/human_organs.dm index 96005d7407..59d3576485 100644 --- a/code/modules/mob/living/carbon/human/human_organs.dm +++ b/code/modules/mob/living/carbon/human/human_organs.dm @@ -5,6 +5,7 @@ update_icons_body() //Body handles eyes update_eyes() //For floating eyes only +/* /mob/living/carbon/var/list/internal_organs = list() /mob/living/carbon/human/var/list/organs = list() /mob/living/carbon/human/var/list/organs_by_name = list() // map organ names to organs @@ -13,6 +14,7 @@ /mob/living/carbon/human/proc/get_bodypart_name(var/zone) var/obj/item/organ/external/E = get_organ(zone) if(E) . = E.name +*/ /mob/living/carbon/human/proc/recheck_bad_external_organs() var/damage_this_tick = getToxLoss() diff --git a/code/modules/mob/living/carbon/human/species/species_attack.dm b/code/modules/mob/living/carbon/human/species/species_attack.dm index 3a5c358720..2755255252 100644 --- a/code/modules/mob/living/carbon/human/species/species_attack.dm +++ b/code/modules/mob/living/carbon/human/species/species_attack.dm @@ -1,4 +1,5 @@ /datum/unarmed_attack/bite/sharp //eye teeth + attack_name = "sharp bite" attack_verb = list("bit", "chomped on") attack_sound = 'sound/weapons/bite.ogg' shredding = 0 @@ -6,12 +7,14 @@ edge = 1 /datum/unarmed_attack/diona + attack_name = "tendrils" attack_verb = list("lashed", "bludgeoned") attack_noun = list("tendril") eye_attack_text = "a tendril" eye_attack_text_victim = "a tendril" /datum/unarmed_attack/claws + attack_name = "claws" attack_verb = list("scratched", "clawed", "slashed") attack_noun = list("claws") eye_attack_text = "claws" @@ -54,6 +57,7 @@ if(5) user.visible_message("[user] tears [T.his] [pick(attack_noun)] [pick("deep into", "into", "across")] [target]'s [affecting.name]!") /datum/unarmed_attack/claws/strong + attack_name = "strong claws" attack_verb = list("slashed") damage = 5 shredding = 1 @@ -67,6 +71,7 @@ damage = 15 /datum/unarmed_attack/bite/strong + attack_name = "strong bite" attack_verb = list("mauled") damage = 8 shredding = 1 @@ -75,6 +80,7 @@ damage = 10 /datum/unarmed_attack/slime_glomp + attack_name = "glomp" attack_verb = list("glomped") attack_noun = list("body") damage = 2 @@ -84,6 +90,7 @@ user.apply_stored_shock_to(target) /datum/unarmed_attack/stomp/weak + attack_name = "weak stomp" attack_verb = list("jumped on") /datum/unarmed_attack/stomp/weak/get_unarmed_damage() diff --git a/code/modules/mob/living/carbon/human/species/station/seromi.dm b/code/modules/mob/living/carbon/human/species/station/seromi.dm index 53a137f2be..6d091e1682 100644 --- a/code/modules/mob/living/carbon/human/species/station/seromi.dm +++ b/code/modules/mob/living/carbon/human/species/station/seromi.dm @@ -69,6 +69,8 @@ swap_flags = MONKEY|SLIME|SIMPLE_ANIMAL push_flags = MONKEY|SLIME|SIMPLE_ANIMAL|ALIEN + body_temperature = 270 + cold_level_1 = 180 //Default 260 cold_level_2 = 130 //Default 200 cold_level_3 = 70 //Default 120 @@ -129,8 +131,8 @@ ) unarmed_types = list( - /datum/unarmed_attack/bite/sharp, /datum/unarmed_attack/claws, + /datum/unarmed_attack/bite/sharp, /datum/unarmed_attack/stomp/weak ) @@ -241,4 +243,4 @@ if(!(H.sdisabilities & DEAF) && !H.ear_deaf) return SEE_SELF|SEE_MOBS else - return SEE_SELF \ No newline at end of file + return SEE_SELF diff --git a/code/modules/mob/living/carbon/human/species/station/station.dm b/code/modules/mob/living/carbon/human/species/station/station.dm index 208ff6d9a9..06829fe7f5 100644 --- a/code/modules/mob/living/carbon/human/species/station/station.dm +++ b/code/modules/mob/living/carbon/human/species/station/station.dm @@ -198,7 +198,7 @@ home worlds and speak a variety of languages, especially Siik and Akhani." catalogue_data = list(/datum/category_item/catalogue/fauna/tajaran) - body_temperature = 320.15 //Even more cold resistant, even more flammable + body_temperature = 280.15 //Even more cold resistant, even more flammable cold_level_1 = 200 //Default 260 cold_level_2 = 140 //Default 200 @@ -235,7 +235,7 @@ "Your overheated skin itches." ) - cold_discomfort_level = 275 + cold_discomfort_level = 215 has_organ = list( //No appendix. O_HEART = /obj/item/organ/internal/heart, diff --git a/code/modules/mob/living/carbon/human/species/station/traits_vr/positive.dm b/code/modules/mob/living/carbon/human/species/station/traits_vr/positive.dm index 87ee6b048b..f2c72bf8e8 100644 --- a/code/modules/mob/living/carbon/human/species/station/traits_vr/positive.dm +++ b/code/modules/mob/living/carbon/human/species/station/traits_vr/positive.dm @@ -94,6 +94,12 @@ cost = 2 var_changes = list("unarmed_types" = list(/datum/unarmed_attack/stomp, /datum/unarmed_attack/kick, /datum/unarmed_attack/claws, /datum/unarmed_attack/bite/sharp, /datum/unarmed_attack/bite/sharp/numbing)) +/datum/trait/fangs + name = "Numbing Fangs" + desc = "Provides fangs that makes the person bit unable to feel their body or pain." + cost = 1 + var_changes = list("unarmed_types" = list(/datum/unarmed_attack/stomp, /datum/unarmed_attack/kick, /datum/unarmed_attack/punch, /datum/unarmed_attack/bite/sharp/numbing)) + /datum/trait/minor_brute_resist name = "Minor Brute Resist" desc = "Adds 10% resistance to brute damage sources." diff --git a/code/modules/mob/living/carbon/human/unarmed_attack.dm b/code/modules/mob/living/carbon/human/unarmed_attack.dm index 2f15a4ba49..4e3facb09c 100644 --- a/code/modules/mob/living/carbon/human/unarmed_attack.dm +++ b/code/modules/mob/living/carbon/human/unarmed_attack.dm @@ -2,6 +2,7 @@ var/global/list/sparring_attack_cache = list() //Species unarmed attacks /datum/unarmed_attack + var/attack_name = "fist" var/attack_verb = list("attack") // Empty hand hurt intent verb. var/attack_noun = list("fist") var/damage = 0 // Extra empty hand attack damage. @@ -109,6 +110,7 @@ var/global/list/sparring_attack_cache = list() return FALSE //return true if the unarmed override prevents further attacks /datum/unarmed_attack/bite + attack_name = "bite" attack_verb = list("bit") attack_sound = 'sound/weapons/bite.ogg' shredding = 0 @@ -127,6 +129,7 @@ var/global/list/sparring_attack_cache = list() return TRUE /datum/unarmed_attack/punch + attack_name = "punch" attack_verb = list("punched") attack_noun = list("fist") eye_attack_text = "fingers" @@ -181,6 +184,7 @@ var/global/list/sparring_attack_cache = list() user.visible_message("[user] [pick("punched", "threw a punch against", "struck", "slammed [TU.his] [pick(attack_noun)] into")] [target]'s [organ]!") //why do we have a separate set of verbs for lying targets? /datum/unarmed_attack/kick + attack_name = "kick" attack_verb = list("kicked", "kicked", "kicked", "kneed") attack_noun = list("kick", "kick", "kick", "knee strike") attack_sound = "swing_hit" @@ -224,6 +228,7 @@ var/global/list/sparring_attack_cache = list() if(5) user.visible_message("[user] landed a strong [pick(attack_noun)] against [target]'s [organ]!") /datum/unarmed_attack/stomp + attack_name = "stomp" attack_verb = null attack_noun = list("stomp") attack_sound = "swing_hit" @@ -269,6 +274,7 @@ var/global/list/sparring_attack_cache = list() if(5) user.visible_message("[pick("[user] landed a powerful stomp on", "[user] stomped down hard on", "[user] slammed [TU.his] [shoes ? copytext(shoes.name, 1, -1) : "foot"] down hard onto")] [target]'s [organ]!") //Devastated lol. No. We want to say that the stomp was powerful or forceful, not that it /wrought devastation/ /datum/unarmed_attack/light_strike + attack_name = "light hit" attack_noun = list("tap","light strike") attack_verb = list("tapped", "lightly struck") damage = 3 diff --git a/code/modules/mob/living/carbon/human/update_icons.dm b/code/modules/mob/living/carbon/human/update_icons.dm index 24f06a43b4..06429d02f3 100644 --- a/code/modules/mob/living/carbon/human/update_icons.dm +++ b/code/modules/mob/living/carbon/human/update_icons.dm @@ -151,7 +151,10 @@ var/global/list/damage_icon_parts = list() //see UpdateDamageIcon() if(lying && !species.prone_icon) //Only rotate them if we're not drawing a specific icon for being prone. M.Turn(90) M.Scale(desired_scale_x, desired_scale_y) - M.Translate(1,-6) + if(species.icon_height == 64)//VOREStation Edit + M.Translate(13,-22) + else + M.Translate(1,-6) layer = MOB_LAYER -0.01 // Fix for a byond bug where turf entry order no longer matters else M.Scale(desired_scale_x, desired_scale_y) diff --git a/code/modules/mob/living/carbon/human/update_icons_vr.dm b/code/modules/mob/living/carbon/human/update_icons_vr.dm index 45a5690ae6..d05f8afa22 100644 --- a/code/modules/mob/living/carbon/human/update_icons_vr.dm +++ b/code/modules/mob/living/carbon/human/update_icons_vr.dm @@ -3,13 +3,13 @@ return //If you are FBP with wing style and didn't set a custom one - if(synthetic && synthetic.includes_wing && !wing_style) + if((synthetic && synthetic.includes_wing && !wing_style) && !wings_hidden) var/icon/wing_s = new/icon("icon" = synthetic.icon, "icon_state" = "wing") //I dunno. If synths have some custom wing? wing_s.Blend(rgb(src.r_skin, src.g_skin, src.b_skin), species.color_mult ? ICON_MULTIPLY : ICON_ADD) return image(wing_s) //If you have custom wings selected - if(wing_style && !(wear_suit && wear_suit.flags_inv & HIDETAIL)) + if((wing_style && !(wear_suit && wear_suit.flags_inv & HIDETAIL)) && !wings_hidden) var/icon/wing_s = new/icon("icon" = wing_style.icon, "icon_state" = flapping && wing_style.ani_state ? wing_style.ani_state : wing_style.icon_state) if(wing_style.do_colouration) wing_s.Blend(rgb(src.r_wing, src.g_wing, src.b_wing), wing_style.color_blend_mode) diff --git a/code/modules/mob/living/living.dm b/code/modules/mob/living/living.dm index 68f993412a..75179e2a3a 100644 --- a/code/modules/mob/living/living.dm +++ b/code/modules/mob/living/living.dm @@ -31,9 +31,25 @@ nest = null if(buckled) buckled.unbuckle_mob(src, TRUE) + qdel(selected_image) QDEL_NULL(vorePanel) //VOREStation Add QDEL_LIST_NULL(vore_organs) //VOREStation Add + + if(LAZYLEN(organs)) + organs_by_name.Cut() + while(organs.len) + var/obj/item/OR = organs[1] + organs -= OR + qdel(OR) + + if(LAZYLEN(internal_organs)) + internal_organs_by_name.Cut() + while(internal_organs.len) + var/obj/item/OR = internal_organs[1] + internal_organs -= OR + qdel(OR) + return ..() //mob verbs are faster than object verbs. See mob/verb/examine. @@ -924,6 +940,12 @@ default behaviour is: /mob/living/Moved(var/atom/oldloc, direct, forced, movetime) . = ..() handle_footstep(loc) + // Begin VOREstation edit + if(is_shifted) + is_shifted = FALSE + pixel_x = 0 + pixel_y = 0 + // End VOREstation edit if(pulling) // we were pulling a thing and didn't lose it during our move. var/pull_dir = get_dir(src, pulling) @@ -1461,4 +1483,4 @@ default behaviour is: // Tries to turn off things that let you see through walls, like mesons. // Each mob does vision a bit differently so this is just for inheritence and also so overrided procs can make the vision apply instantly if they call `..()`. /mob/living/proc/disable_spoiler_vision() - handle_vision() \ No newline at end of file + handle_vision() diff --git a/code/modules/mob/living/living_defines.dm b/code/modules/mob/living/living_defines.dm index 319dff87f8..4238a56080 100644 --- a/code/modules/mob/living/living_defines.dm +++ b/code/modules/mob/living/living_defines.dm @@ -74,4 +74,4 @@ var/image/selected_image = null // Used for buildmode AI control stuff. var/inventory_panel_type = /datum/inventory_panel - var/datum/inventory_panel/inventory_panel \ No newline at end of file + var/datum/inventory_panel/inventory_panel diff --git a/code/modules/mob/living/organs.dm b/code/modules/mob/living/organs.dm new file mode 100644 index 0000000000..d0489bcf6f --- /dev/null +++ b/code/modules/mob/living/organs.dm @@ -0,0 +1,28 @@ +/mob/living + var/list/internal_organs = list() + var/list/organs = list() + var/list/organs_by_name = list() // map organ names to organs + var/list/internal_organs_by_name = list() // so internal organs have less ickiness too + var/list/bad_external_organs = list()// organs we check until they are good. + +/mob/living/proc/get_bodypart_name(var/zone) + var/obj/item/organ/external/E = get_organ(zone) + if(E) . = E.name + +/mob/living/proc/get_organ(var/zone) + if(!zone) + zone = BP_TORSO + else if (zone in list( O_EYES, O_MOUTH )) + zone = BP_HEAD + return organs_by_name[zone] + +/mob/living/gib() + for(var/obj/item/organ/I in internal_organs) + I.removed() + if(isturf(I?.loc)) // Some organs qdel themselves or other things when removed + I.throw_at(get_edge_target_turf(src,pick(alldirs)),rand(1,3),30) + + for(var/obj/item/organ/external/E in src.organs) + E.droplimb(0,DROPLIMB_EDGE,1) + + ..() diff --git a/code/modules/mob/living/say.dm b/code/modules/mob/living/say.dm index 18bdb281b2..c6a3eac1ef 100644 --- a/code/modules/mob/living/say.dm +++ b/code/modules/mob/living/say.dm @@ -17,7 +17,7 @@ var/list/department_radio_keys = list( ":v" = "Service", ".v" = "Service", ":p" = "AI Private", ".p" = "AI Private", ":y" = "Explorer", ".y" = "Explorer", - ":t" = "Talon", ".t" = "Talon", //VOREStation Add, + ":a" = "Talon", ".a" = "Talon", //VOREStation Add, ":R" = "right ear", ".R" = "right ear", ":L" = "left ear", ".L" = "left ear", @@ -36,7 +36,7 @@ var/list/department_radio_keys = list( ":V" = "Service", ".V" = "Service", ":P" = "AI Private", ".P" = "AI Private", ":Y" = "Explorer", ".Y" = "Explorer", - ":T" = "Talon", ".T" = "Talon", //VOREStation Add, + ":A" = "Talon", ".A" = "Talon", //VOREStation Add, //kinda localization -- rastaf0 //same keys as above, but on russian keyboard layout. This file uses cp1251 as encoding. diff --git a/code/modules/mob/living/silicon/robot/dogborg/dog_modules_vr.dm b/code/modules/mob/living/silicon/robot/dogborg/dog_modules_vr.dm index 95c14bc195..a68746c33d 100644 --- a/code/modules/mob/living/silicon/robot/dogborg/dog_modules_vr.dm +++ b/code/modules/mob/living/silicon/robot/dogborg/dog_modules_vr.dm @@ -145,6 +145,7 @@ name = "MediHound hypospray" desc = "An advanced chemical synthesizer and injection system utilizing carrier's reserves, designed for heavy-duty medical equipment." charge_cost = 10 + reagent_ids = list("inaprovaline", "dexalin", "bicaridine", "kelotane", "anti_toxin", "spaceacillin", "paracetamol") var/datum/matter_synth/water = null /obj/item/weapon/reagent_containers/borghypo/hound/process() //Recharges in smaller steps and uses the water reserves as well. @@ -252,7 +253,7 @@ to_chat(user, "You finish off \the [target.name], and gain some charge!") var/mob/living/silicon/robot/R = user var/obj/item/weapon/cell/C = target - R.cell.charge += C.maxcharge / 3 + R.cell.charge += C.charge / 3 water.use_charge(5) qdel(target) return diff --git a/code/modules/mob/living/silicon/robot/dogborg/dog_sleeper_vr.dm b/code/modules/mob/living/silicon/robot/dogborg/dog_sleeper_vr.dm index 3ce9a40447..b754b3fda3 100644 --- a/code/modules/mob/living/silicon/robot/dogborg/dog_sleeper_vr.dm +++ b/code/modules/mob/living/silicon/robot/dogborg/dog_sleeper_vr.dm @@ -39,6 +39,7 @@ var/datum/matter_synth/water = null var/digest_brute = 2 var/digest_burn = 3 + var/digest_multiplier = 1 var/recycles = FALSE var/medsensor = TRUE //Does belly sprite come with patient ok/dead light? @@ -541,8 +542,8 @@ else var/old_brute = T.getBruteLoss() var/old_burn = T.getFireLoss() - T.adjustBruteLoss(digest_brute) - T.adjustFireLoss(digest_burn) + T.adjustBruteLoss(digest_brute * digest_multiplier) + T.adjustFireLoss(digest_burn * digest_multiplier) var/actual_brute = T.getBruteLoss() - old_brute var/actual_burn = T.getFireLoss() - old_burn var/damage_gain = actual_brute + actual_burn @@ -716,6 +717,6 @@ desc = "A mounted survival unit with fuel processor." icon_state = "sleeperc" injection_chems = list("glucose","inaprovaline","tricordrazine") - max_item_count = 1 + max_item_count = 10 -#undef SLEEPER_INJECT_COST \ No newline at end of file +#undef SLEEPER_INJECT_COST 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 d6f5acfb3d..bd608ca006 100644 --- a/code/modules/mob/living/silicon/robot/drone/drone_items.dm +++ b/code/modules/mob/living/silicon/robot/drone/drone_items.dm @@ -219,7 +219,8 @@ /obj/item/mecha_parts/part, /obj/item/mecha_parts/micro/part, //VOREStation Edit: Allow construction of micromechs, /obj/item/mecha_parts/mecha_equipment, - /obj/item/mecha_parts/mecha_tracking + /obj/item/mecha_parts/mecha_tracking, + /obj/item/mecha_parts/component ) /obj/item/weapon/gripper/no_use //Used when you want to hold and put items in other things, but not able to 'use' the item diff --git a/code/modules/mob/living/simple_mob/appearance.dm b/code/modules/mob/living/simple_mob/appearance.dm index 14f09e9057..106c565a31 100644 --- a/code/modules/mob/living/simple_mob/appearance.dm +++ b/code/modules/mob/living/simple_mob/appearance.dm @@ -71,6 +71,5 @@ /mob/living/simple_mob/proc/remove_eyes() cut_overlay(eye_layer) - /mob/living/simple_mob/gib() - ..(icon_gib,1,icon) // we need to specify where the gib animation is stored \ No newline at end of file + ..(icon_gib,1,icon) // we need to specify where the gib animation is stored diff --git a/code/modules/mob/living/simple_mob/butchering.dm b/code/modules/mob/living/simple_mob/butchering.dm new file mode 100644 index 0000000000..c03c6b8015 --- /dev/null +++ b/code/modules/mob/living/simple_mob/butchering.dm @@ -0,0 +1,8 @@ +/mob/living/simple_mob + gib_on_butchery = TRUE + +/mob/living/simple_mob/can_butcher(var/mob/user, var/obj/item/I) // Override for special butchering checks. + . = ..() + + if(. && (!is_sharp(I) || !has_edge(I))) + return FALSE diff --git a/code/modules/mob/living/simple_mob/defense.dm b/code/modules/mob/living/simple_mob/defense.dm index 1a301b8bfd..b17274bd2f 100644 --- a/code/modules/mob/living/simple_mob/defense.dm +++ b/code/modules/mob/living/simple_mob/defense.dm @@ -68,9 +68,9 @@ else var/datum/gender/T = gender_datums[src.get_visible_gender()] to_chat(user, "\The [src] is dead, medical items won't bring [T.him] back to life.") // the gender lookup is somewhat overkill, but it functions identically to the obsolete gender macros and future-proofs this code - if(meat_type && (stat == DEAD)) //if the animal has a meat, and if it is dead. - if(istype(O, /obj/item/weapon/material/knife)) - harvest(user) + if(can_butcher(user, O)) //if the animal can be butchered, do so and return. It's likely to be gibbed. + harvest(user, O) + return if(user.a_intent == I_HELP && harvest_tool && istype(O, harvest_tool) && stat != DEAD) if(world.time > (harvest_recent + harvest_cooldown)) diff --git a/code/modules/mob/living/simple_mob/harvesting.dm b/code/modules/mob/living/simple_mob/harvesting.dm index 95de747fee..e9439fab99 100644 --- a/code/modules/mob/living/simple_mob/harvesting.dm +++ b/code/modules/mob/living/simple_mob/harvesting.dm @@ -17,7 +17,7 @@ /mob/living/simple_mob/examine(mob/user) . = ..() - if(user && harvest_tool && (get_dist(user, src) <= 3)) + if(stat != DEAD && user && harvest_tool && (get_dist(user, src) <= 3)) . += "\The [src] can be [harvest_verb] with a [initial(harvest_tool.name)] every [round(harvest_cooldown, 0.1)] minutes." var/time_to_harvest = (harvest_recent + harvest_cooldown) - world.time if(time_to_harvest > 0) diff --git a/code/modules/mob/living/simple_mob/life.dm b/code/modules/mob/living/simple_mob/life.dm index 781589dad1..493a68e43b 100644 --- a/code/modules/mob/living/simple_mob/life.dm +++ b/code/modules/mob/living/simple_mob/life.dm @@ -14,6 +14,8 @@ handle_special() + handle_guts() + return TRUE @@ -94,7 +96,7 @@ throw_alert("oxy", /obj/screen/alert/too_much_oxy) else clear_alert("oxy") - + if(min_tox && Environment.gas["phoron"] < min_tox) atmos_unsuitable = 2 throw_alert("tox_in_air", /obj/screen/alert/not_enough_tox) @@ -137,6 +139,12 @@ else adjustOxyLoss(-unsuitable_atoms_damage) +/mob/living/simple_mob/proc/handle_guts() + for(var/obj/item/organ/OR in internal_organs) + OR.process() + + for(var/obj/item/organ/OR in organs) + OR.process() /mob/living/simple_mob/proc/handle_supernatural() if(purge) diff --git a/code/modules/mob/living/simple_mob/simple_mob.dm b/code/modules/mob/living/simple_mob/simple_mob.dm index f3bf4543db..4d178b4ece 100644 --- a/code/modules/mob/living/simple_mob/simple_mob.dm +++ b/code/modules/mob/living/simple_mob/simple_mob.dm @@ -57,8 +57,6 @@ var/response_harm = "tries to hurt" // If clicked on harm intent var/list/friends = list() // Mobs on this list wont get attacked regardless of faction status. var/harm_intent_damage = 3 // How much an unarmed harm click does to this mob. - var/meat_amount = 0 // How much meat to drop from this mob when butchered - var/obj/meat_type // The meat object to drop var/list/loot_list = list() // The list of lootable objects to drop, with "/path = prob%" structure var/obj/item/weapon/card/id/myid// An ID card if they have one to give them access to stuff. @@ -158,6 +156,10 @@ // don't process me if there's nobody around to see it low_priority = TRUE + // Used for if the mob can drop limbs. Overrides species dmi. + var/limb_icon + // Used for if the mob can drop limbs. Overrides the icon cache key, so it doesn't keep remaking the icon needlessly. + var/limb_icon_key /mob/living/simple_mob/Initialize() verbs -= /mob/verb/observe @@ -170,8 +172,31 @@ if(has_eye_glow) add_eyes() - return ..() + if(LAZYLEN(organs)) + for(var/path in organs) + if(ispath(path)) + var/obj/item/organ/external/neworg = new path(src) + neworg.name = "[name] [neworg.name]" + neworg.meat_type = meat_type + + if(limb_icon) + neworg.force_icon = limb_icon + neworg.force_icon_key = limb_icon_key + + organs |= neworg + organs -= path + + if(LAZYLEN(internal_organs)) + for(var/path in internal_organs) + if(ispath(path)) + var/obj/item/organ/neworg = new path(src) + neworg.name = "[name] [neworg.name]" + neworg.meat_type = meat_type + internal_organs |= neworg + internal_organs -= path + + return ..() /mob/living/simple_mob/Destroy() default_language = null @@ -190,7 +215,6 @@ update_icon() ..() - //Client attached /mob/living/simple_mob/Login() . = ..() @@ -269,27 +293,6 @@ /mob/living/simple_mob/get_speech_ending(verb, var/ending) return verb - -// Harvest an animal's delicious byproducts -/mob/living/simple_mob/proc/harvest(var/mob/user, var/invisible) - var/actual_meat_amount = max(1,(meat_amount/2)) - var/attacker_name = user.name - if(invisible) - attacker_name = "someone" - - if(meat_type && actual_meat_amount>0 && (stat == DEAD)) - for(var/i=0;i[attacker_name] chops up \the [src]!") - new/obj/effect/decal/cleanable/blood/splatter(get_turf(src)) - qdel(src) - else - user.visible_message("[attacker_name] butchers \the [src] messily!") - gib() - - /mob/living/simple_mob/is_sentient() return mob_class & MOB_CLASS_HUMANOID|MOB_CLASS_ANIMAL|MOB_CLASS_SLIME // Update this if needed. diff --git a/code/modules/mob/living/simple_mob/subtypes/animal/animal.dm b/code/modules/mob/living/simple_mob/subtypes/animal/animal.dm index e41d5ae66b..56194f13bb 100644 --- a/code/modules/mob/living/simple_mob/subtypes/animal/animal.dm +++ b/code/modules/mob/living/simple_mob/subtypes/animal/animal.dm @@ -6,4 +6,17 @@ response_disarm = "shoos" response_harm = "hits" - ai_holder_type = /datum/ai_holder/simple_mob/melee \ No newline at end of file + ai_holder_type = /datum/ai_holder/simple_mob/melee + + internal_organs = list(\ + /obj/item/organ/internal/brain,\ + /obj/item/organ/internal/heart,\ + /obj/item/organ/internal/liver,\ + /obj/item/organ/internal/stomach,\ + /obj/item/organ/internal/intestine,\ + /obj/item/organ/internal/lungs\ + ) + + butchery_loot = list(\ + /obj/item/stack/animalhide = 3\ + ) diff --git a/code/modules/mob/living/simple_mob/subtypes/animal/giant_spider/_giant_spider.dm b/code/modules/mob/living/simple_mob/subtypes/animal/giant_spider/_giant_spider.dm index f0c47be7f8..c0c44250a8 100644 --- a/code/modules/mob/living/simple_mob/subtypes/animal/giant_spider/_giant_spider.dm +++ b/code/modules/mob/living/simple_mob/subtypes/animal/giant_spider/_giant_spider.dm @@ -110,6 +110,10 @@ var/poison_chance = 10 // Chance for injection to occur. var/poison_per_bite = 5 // Amount added per injection. + butchery_loot = list(\ + /obj/item/stack/material/chitin = 1\ + ) + /mob/living/simple_mob/animal/giant_spider/apply_melee_effects(var/atom/A) if(isliving(A)) var/mob/living/L = A diff --git a/code/modules/mob/living/simple_mob/subtypes/mechanical/hivebot/ranged_damage_vr.dm b/code/modules/mob/living/simple_mob/subtypes/mechanical/hivebot/ranged_damage_vr.dm index 3ac368a7ee..31c9cdf10f 100644 --- a/code/modules/mob/living/simple_mob/subtypes/mechanical/hivebot/ranged_damage_vr.dm +++ b/code/modules/mob/living/simple_mob/subtypes/mechanical/hivebot/ranged_damage_vr.dm @@ -1,4 +1,4 @@ -/datum/category_item/catalogue/technology/drone/hivebot/laser // Hivebot Scanner Data - This is for Laser Hivebots +/datum/category_item/catalogue/technology/drone/hivebot/rapidfire // Hivebot Scanner Data - This is for Rapidfire Hivebots name = "Drone - Rapidfire Hivebot" desc = "A drone that walks on several legs, with yellow/gold armor plating. It appears to have some sort of \ rifle, built for high-rate fire. Other than that, it has similar yellowish color \ diff --git a/code/modules/mob/living/simple_mob/subtypes/mechanical/hivebot/support_vr.dm b/code/modules/mob/living/simple_mob/subtypes/mechanical/hivebot/support_vr.dm index 0003b78124..434ce659e8 100644 --- a/code/modules/mob/living/simple_mob/subtypes/mechanical/hivebot/support_vr.dm +++ b/code/modules/mob/living/simple_mob/subtypes/mechanical/hivebot/support_vr.dm @@ -5,7 +5,7 @@ to the other hivebots. Other than that, it has similar yellowish color to regular hivebots." value = CATALOGUER_REWARD_HARD -/datum/category_item/catalogue/technology/drone/hivebot/logistics // Hivebot Scanner Data - This is for Commander Hivebots +/datum/category_item/catalogue/technology/drone/hivebot/logistics // Hivebot Scanner Data - This is for Logistics Hivebots name = "Drone - Logistics Hivebot" desc = "A drone that walks on several legs, with yellow/gold armor plating. It appears to have some sort of \ ballistic weapon. It also appears to have supply deploying bays, and internal fabs to repair and buff their allies' special capabilities. \ diff --git a/code/modules/mob/living/simple_mob/subtypes/vore/lamia.dm b/code/modules/mob/living/simple_mob/subtypes/vore/lamia.dm new file mode 100644 index 0000000000..c2e984864c --- /dev/null +++ b/code/modules/mob/living/simple_mob/subtypes/vore/lamia.dm @@ -0,0 +1,304 @@ +/mob/living/simple_mob/vore/lamia + name = "purple lamia" + desc = "Combination snake-human. This one is purple." + + icon = 'icons/mob/vore_lamia.dmi' + icon_state = "ffta" + icon_living = "ffta" + icon_rest = "ffta_rest" + icon_dead = "ffta_dead" + + harm_intent_damage = 5 + melee_damage_lower = 0 + melee_damage_upper = 0 + + response_help = "pets" + response_disarm = "gently baps" + response_harm = "hits" + + health = 60 + maxHealth = 60 + + old_x = -16 + old_y = 0 + default_pixel_x = -16 + pixel_x = -16 + pixel_y = 0 + + // Vore tags + vore_active = 1 + vore_capacity = 1 + vore_bump_emote = "coils their tail around" + vore_icons = 0 + // Default stomach + vore_stomach_name = "upper stomach" + vore_stomach_flavor = "You've ended up inside of the lamia's human stomach. It's pretty much identical to any human stomach, but the valve leading deeper is much bigger." + + // Meaningful stats + vore_default_mode = DM_HOLD + vore_digest_chance = 0 + vore_pounce_chance = 65 + vore_bump_chance = 50 + vore_standing_too = TRUE + vore_escape_chance = 25 + + // Special lamia vore tags + var/vore_upper_transfer_chance = 50 + var/vore_tail_digest_chance = 25 + var/vore_tail_absorb_chance = 0 + var/vore_tail_transfer_chance = 50 + + say_list_type = /datum/say_list/lamia + ai_holder_type = /datum/ai_holder/simple_mob/passive + +/mob/living/simple_mob/vore/lamia/update_fullness() + var/new_fullness = 0 + // We only want to count our upper_stomach towards capacity + for(var/belly in vore_organs) + var/obj/belly/B = belly + if(B.name == "upper stomach") + for(var/mob/living/M in B) + new_fullness += M.size_multiplier + new_fullness /= size_multiplier + new_fullness = round(new_fullness, 1) + vore_fullness = min(vore_capacity, new_fullness) + +/mob/living/simple_mob/vore/lamia/update_icon() + . = ..() + + if(vore_active) + // Icon_state for fullness is as such if they are CONSCIOUS: + // [icon_living]_vore_[upper_shows]_[tail_shows] + // So copper_vore_1_1 is a full upper stomach *and* tail stomach + // And copper_vore_1_0 is full upper stomach, but empty tail stomach + // For unconscious: [icon_rest]_vore_[upper]_[tail] + // For dead, it doesn't show. + var/upper_shows = FALSE + var/tail_shows = FALSE + + for(var/belly in vore_organs) + var/obj/belly/B = belly + if(!(B.name in list("upper stomach", "tail stomach"))) + continue + var/belly_fullness = 0 + for(var/mob/living/M in B) + belly_fullness += M.size_multiplier + belly_fullness /= size_multiplier + belly_fullness = round(belly_fullness, 1) + + if(belly_fullness) + if(B.name == "upper stomach") + upper_shows = TRUE + else if(B.name == "tail stomach") + tail_shows = TRUE + + if(upper_shows || tail_shows) + if((stat == CONSCIOUS) && (!icon_rest || !resting || !incapacitated(INCAPACITATION_DISABLED))) + icon_state = "[icon_living]_vore_[upper_shows]_[tail_shows]" + else if(stat >= DEAD) + icon_state = icon_dead + else if(((stat == UNCONSCIOUS) || resting || incapacitated(INCAPACITATION_DISABLED) ) && icon_rest) + icon_state = "[icon_rest]_vore_[upper_shows]_[tail_shows]" + +/mob/living/simple_mob/vore/lamia/init_vore() + . = ..() + var/obj/belly/B = vore_selected + + B.transferchance = vore_upper_transfer_chance + B.transferlocation = "tail stomach" + + var/obj/belly/tail = new /obj/belly(src) + tail.immutable = TRUE + tail.name = "tail stomach" + tail.desc = "You slide out into the narrow, constricting tube of flesh that is the lamia's snake half, heated walls and strong muscles all around clinging to your form with every slither." + tail.digest_mode = vore_default_mode + tail.mode_flags = vore_default_flags + tail.item_digest_mode = vore_default_item_mode + tail.contaminates = vore_default_contaminates + tail.contamination_flavor = vore_default_contamination_flavor + tail.contamination_color = vore_default_contamination_color + tail.escapable = TRUE // needed for transferchance + tail.escapechance = 0 // No directly escaping a tail, gotta squirm back out. + tail.digestchance = vore_tail_digest_chance + tail.absorbchance = vore_tail_absorb_chance + tail.transferchance = vore_tail_transfer_chance + tail.transferlocation = "upper stomach" + tail.human_prey_swallow_time = swallowTime + tail.nonhuman_prey_swallow_time = swallowTime + tail.vore_verb = "stuff" + tail.emote_lists[DM_HOLD] = B.emote_lists[DM_HOLD].Copy() + tail.emote_lists[DM_DIGEST] = B.emote_lists[DM_DIGEST].Copy() + +// FFTA Bra +/mob/living/simple_mob/vore/lamia/bra + desc = "Combination snake-human. This one is purple. They're wearing a bra." + icon_state = "ffta_bra" + icon_living = "ffta_bra" + icon_rest = "ffta_bra_rest" + icon_dead = "ffta_bra_dead" + +// Albino +/mob/living/simple_mob/vore/lamia/albino + name = "albino lamia" + desc = "Combination snake-human. This one is albino." + icon_state = "albino" + icon_living = "albino" + icon_rest = "albino_rest" + icon_dead = "albino_dead" + +/mob/living/simple_mob/vore/lamia/albino/bra + desc = "Combination snake-human. This one is albino. They're wearing a bra." + icon_state = "albino_bra" + icon_living = "albino_bra" + icon_rest = "albino_bra_rest" + icon_dead = "albino_bra_dead" + +/mob/living/simple_mob/vore/lamia/albino/shirt + desc = "Combination snake-human. This one is albino. They're wearing a shirt." + icon_state = "albino_shirt" + icon_living = "albino_shirt" + icon_rest = "albino_shirt_rest" + icon_dead = "albino_shirt_dead" + +// Cobra +/mob/living/simple_mob/vore/lamia/cobra + name = "cobra lamia" + desc = "Combination snake-human. This one looks like a cobra." + icon_state = "cobra" + icon_living = "cobra" + icon_rest = "cobra_rest" + icon_dead = "cobra_dead" + +/mob/living/simple_mob/vore/lamia/cobra/bra + desc = "Combination snake-human. This one looks like a cobra. They're wearing a bra." + icon_state = "cobra_bra" + icon_living = "cobra_bra" + icon_rest = "cobra_bra_rest" + icon_dead = "cobra_bra_dead" + +/mob/living/simple_mob/vore/lamia/cobra/shirt + desc = "Combination snake-human. This one looks like a cobra. They're wearing a shirt." + icon_state = "cobra_shirt" + icon_living = "cobra_shirt" + icon_rest = "cobra_shirt_rest" + icon_dead = "cobra_shirt_dead" + +// Copper +/mob/living/simple_mob/vore/lamia/copper + name = "copper lamia" + desc = "Combination snake-human. This one is copper." + icon_state = "copper" + icon_living = "copper" + icon_rest = "copper_rest" + icon_dead = "copper_dead" + +/mob/living/simple_mob/vore/lamia/copper/bra + desc = "Combination snake-human. This one is copper. They're wearing a bra." + icon_state = "copper_bra" + icon_living = "copper_bra" + icon_rest = "copper_bra_rest" + icon_dead = "copper_bra_dead" + +/mob/living/simple_mob/vore/lamia/copper/shirt + desc = "Combination snake-human. This one is copper. They're wearing a shirt." + icon_state = "copper_shirt" + icon_living = "copper_shirt" + icon_rest = "copper_shirt_rest" + icon_dead = "copper_shirt_dead" + +// Green +/mob/living/simple_mob/vore/lamia/green + name = "green lamia" + desc = "Combination snake-human. This one is green." + icon_state = "green" + icon_living = "green" + icon_rest = "green_rest" + icon_dead = "green_dead" + +/mob/living/simple_mob/vore/lamia/green/bra + desc = "Combination snake-human. This one is green. They're wearing a bra." + icon_state = "green_bra" + icon_living = "green_bra" + icon_rest = "green_bra_rest" + icon_dead = "green_bra_dead" + +/mob/living/simple_mob/vore/lamia/green/shirt + desc = "Combination snake-human. This one is green. They're wearing a shirt." + icon_state = "green_shirt" + icon_living = "green_shirt" + icon_rest = "green_shirt_rest" + icon_dead = "green_shirt_dead" + +// Zebra +/mob/living/simple_mob/vore/lamia/zebra + name = "zebra lamia" + desc = "Combination snake-human. This one has a zebra pattern." + icon_state = "zebra" + icon_living = "zebra" + icon_rest = "zebra_rest" + icon_dead = "zebra_dead" + +/mob/living/simple_mob/vore/lamia/zebra/bra + desc = "Combination snake-human. This one has a zebra pattern. They're wearing a bra." + icon_state = "zebra_bra" + icon_living = "zebra_bra" + icon_rest = "zebra_bra_rest" + icon_dead = "zebra_bra_dead" + +/mob/living/simple_mob/vore/lamia/zebra/shirt + desc = "Combination snake-human. This one has a zebra pattern. They're wearing a shirt." + icon_state = "zebra_shirt" + icon_living = "zebra_shirt" + icon_rest = "zebra_shirt_rest" + icon_dead = "zebra_shirt_dead" + +GLOBAL_LIST_INIT(valid_random_lamias, list( + /mob/living/simple_mob/vore/lamia, + /mob/living/simple_mob/vore/lamia/bra, + /mob/living/simple_mob/vore/lamia/albino, + /mob/living/simple_mob/vore/lamia/albino/bra, + /mob/living/simple_mob/vore/lamia/albino/shirt, + /mob/living/simple_mob/vore/lamia/cobra, + /mob/living/simple_mob/vore/lamia/cobra/bra, + /mob/living/simple_mob/vore/lamia/cobra/shirt, + /mob/living/simple_mob/vore/lamia/copper, + /mob/living/simple_mob/vore/lamia/copper/bra, + /mob/living/simple_mob/vore/lamia/copper/shirt, + /mob/living/simple_mob/vore/lamia/green, + /mob/living/simple_mob/vore/lamia/green/bra, + /mob/living/simple_mob/vore/lamia/green/shirt, + /mob/living/simple_mob/vore/lamia/zebra, + /mob/living/simple_mob/vore/lamia/zebra/bra, + /mob/living/simple_mob/vore/lamia/zebra/shirt, +)) + +/mob/living/simple_mob/vore/lamia/random +/mob/living/simple_mob/vore/lamia/random/New() + var/mob/living/simple_mob/vore/lamia/new_attrs = pick(GLOB.valid_random_lamias) + + name = initial(new_attrs.name) + desc = initial(new_attrs.desc) + + icon_state = initial(new_attrs.icon_state) + icon_living = initial(new_attrs.icon_living) + icon_rest = initial(new_attrs.icon_rest) + icon_dead = initial(new_attrs.icon_dead) + + vore_default_mode = initial(new_attrs.vore_default_mode) + vore_digest_chance = initial(new_attrs.vore_digest_chance) + vore_pounce_chance = initial(new_attrs.vore_pounce_chance) + vore_bump_chance = initial(new_attrs.vore_bump_chance) + vore_standing_too = initial(new_attrs.vore_standing_too) + vore_escape_chance = initial(new_attrs.vore_escape_chance) + + vore_upper_transfer_chance = initial(new_attrs.vore_upper_transfer_chance) + vore_tail_digest_chance = initial(new_attrs.vore_tail_digest_chance) + vore_tail_absorb_chance = initial(new_attrs.vore_tail_absorb_chance) + vore_tail_transfer_chance = initial(new_attrs.vore_tail_transfer_chance) + + . = ..() + +/datum/say_list/lamia + speak = list("Sss...","Sss!","Hiss!","HSSSSS") + emote_hear = list("hisses","slithers") + emote_see = list("shakes her head","coils","stretches","slithers") diff --git a/code/modules/mob/mob.dm b/code/modules/mob/mob.dm index 4d9a2e774a..ea09b6a25a 100644 --- a/code/modules/mob/mob.dm +++ b/code/modules/mob/mob.dm @@ -222,16 +222,24 @@ if(istype(A, /obj/effect/decal/point)) return 0 - var/tile = get_turf(A) + var/turf/tile = get_turf(A) if (!tile) return 0 - var/obj/P = new /obj/effect/decal/point(tile) - P.invisibility = invisibility - P.plane = plane - spawn (20) - if(P) - qdel(P) // qdel + var/turf/our_tile = get_turf(src) + var/obj/visual = new /obj/effect/decal/point(our_tile) + visual.invisibility = invisibility + visual.plane = plane + + animate(visual, + pixel_x = (tile.x - our_tile.x) * world.icon_size + A.pixel_x, + pixel_y = (tile.y - our_tile.y) * world.icon_size + A.pixel_y, + time = 1.7, + easing = EASE_OUT) + + spawn(20) + if(visual) + qdel(visual) // qdel face_atom(A) return 1 @@ -1014,6 +1022,40 @@ mob/proc/yank_out_object() set hidden = 1 set_face_dir(client.client_dir(WEST)) +// Begin VOREstation edit +/mob/verb/shiftnorth() + set hidden = TRUE + if(!canface()) + return FALSE + if(pixel_y <= 16) + pixel_y++ + is_shifted = TRUE + +/mob/verb/shiftsouth() + set hidden = TRUE + if(!canface()) + return FALSE + if(pixel_y >= -16) + pixel_y-- + is_shifted = TRUE + +/mob/verb/shiftwest() + set hidden = TRUE + if(!canface()) + return FALSE + if(pixel_x >= -16) + pixel_x-- + is_shifted = TRUE + +mob/verb/shifteast() + set hidden = TRUE + if(!canface()) + return FALSE + if(pixel_x <= 16) + pixel_x++ + is_shifted = TRUE +// End VOREstation edit + /mob/proc/adjustEarDamage() return diff --git a/code/modules/mob/mob_defines.dm b/code/modules/mob/mob_defines.dm index c5066adb7c..daf9ab6d89 100644 --- a/code/modules/mob/mob_defines.dm +++ b/code/modules/mob/mob_defines.dm @@ -83,6 +83,7 @@ var/resting = 0 //Carbon var/lying = 0 var/lying_prev = 0 + var/is_shifted = FALSE // VoreStation Edit; pixel shifting var/canmove = 1 //Allows mobs to move through dense areas without restriction. For instance, in space or out of holder objects. var/incorporeal_move = 0 //0 is off, 1 is normal, 2 is for ninjas. diff --git a/code/modules/mob/new_player/preferences_setup.dm b/code/modules/mob/new_player/preferences_setup.dm index ff68a02eac..953f4d01ac 100644 --- a/code/modules/mob/new_player/preferences_setup.dm +++ b/code/modules/mob/new_player/preferences_setup.dm @@ -220,7 +220,7 @@ break if((equip_preview_mob & EQUIP_PREVIEW_LOADOUT) && !(previewJob && (equip_preview_mob & EQUIP_PREVIEW_JOB) && (previewJob.type == /datum/job/ai || previewJob.type == /datum/job/cyborg))) - var/list/equipped_slots = list() //If more than one item takes the same slot only spawn the first + var/list/equipped_slots = list() for(var/thing in gear) var/datum/gear/G = gear_datums[thing] if(G) @@ -243,7 +243,8 @@ if(G.slot && !(G.slot in equipped_slots)) var/metadata = gear[G.display_name] if(mannequin.equip_to_slot_or_del(G.spawn_item(mannequin, metadata), G.slot)) - equipped_slots += G.slot + if(G.slot != slot_tie) + equipped_slots += G.slot if((equip_preview_mob & EQUIP_PREVIEW_JOB) && previewJob) mannequin.job = previewJob.title diff --git a/code/modules/mob/new_player/sprite_accessories.dm b/code/modules/mob/new_player/sprite_accessories.dm index 19fdbb8d0f..74578c8e9a 100644 --- a/code/modules/mob/new_player/sprite_accessories.dm +++ b/code/modules/mob/new_player/sprite_accessories.dm @@ -1427,10 +1427,15 @@ var/body_parts = list() //A list of bodyparts this covers, in organ_tag defines //Reminder: BP_L_FOOT,BP_R_FOOT,BP_L_LEG,BP_R_LEG,BP_L_ARM,BP_R_ARM,BP_L_HAND,BP_R_HAND,BP_TORSO,BP_GROIN,BP_HEAD -/datum/sprite_accessory/marking/tat_heart - name = "Tattoo (Heart, Torso)" - icon_state = "tat_heart" - body_parts = list(BP_TORSO) +/datum/sprite_accessory/marking/tat_rheart + name = "Tattoo (Heart, R. Arm)" + icon_state = "tat_rheart" + body_parts = list(BP_R_ARM) + +/datum/sprite_accessory/marking/tat_lheart + name = "Tattoo (Heart, L. Arm)" + icon_state = "tat_lheart" + body_parts = list(BP_L_ARM) /datum/sprite_accessory/marking/tat_hive name = "Tattoo (Hive, Back)" diff --git a/code/modules/mob/new_player/sprite_accessories_vr.dm b/code/modules/mob/new_player/sprite_accessories_vr.dm index 720b72fa18..223f6c9cb9 100644 --- a/code/modules/mob/new_player/sprite_accessories_vr.dm +++ b/code/modules/mob/new_player/sprite_accessories_vr.dm @@ -697,6 +697,11 @@ icon_state = "eyes_sergal" body_parts = list(BP_HEAD) + closedeyes + name = "Closed Eyes" + icon_state = "eyes_closed" + body_parts = list(BP_HEAD) + brows name = "Eyebrows" icon_state = "brows" @@ -1179,4 +1184,10 @@ bee_stripes name = "bee stripes" icon_state = "beestripes" - body_parts = list(BP_TORSO,BP_GROIN) \ No newline at end of file + body_parts = list(BP_TORSO,BP_GROIN) + + vas_toes + name = "Bug Paws (Vasilissan)" + icon_state = "vas_toes" + color_blend_mode = ICON_MULTIPLY + body_parts = list(BP_L_FOOT,BP_R_FOOT) \ No newline at end of file diff --git a/code/modules/mob/say.dm b/code/modules/mob/say.dm index 7a8f2412f2..52e843a9ee 100644 --- a/code/modules/mob/say.dm +++ b/code/modules/mob/say.dm @@ -14,7 +14,7 @@ set_typing_indicator(FALSE) usr.say(message) -/mob/verb/me_verb(message as text) +/mob/verb/me_verb(message as message) set name = "Me" set category = "IC" diff --git a/code/modules/mob/say_vr.dm b/code/modules/mob/say_vr.dm index 05642705a1..4f48a4adf4 100644 --- a/code/modules/mob/say_vr.dm +++ b/code/modules/mob/say_vr.dm @@ -2,7 +2,7 @@ ////////////////////SUBTLE COMMAND//////////////////// ////////////////////////////////////////////////////// -/mob/verb/me_verb_subtle(message as text) //This would normally go in say.dm +/mob/verb/me_verb_subtle(message as message) //This would normally go in say.dm set name = "Subtle" set category = "IC" set desc = "Emote to nearby people (and your pred/prey)" diff --git a/code/modules/modular_computers/computers/subtypes/dev_telescreen.dm b/code/modules/modular_computers/computers/subtypes/dev_telescreen.dm index 1f88ed6cb2..f56683451e 100644 --- a/code/modules/modular_computers/computers/subtypes/dev_telescreen.dm +++ b/code/modules/modular_computers/computers/subtypes/dev_telescreen.dm @@ -3,6 +3,7 @@ desc = "A wall-mounted touchscreen computer." icon = 'icons/obj/modular_telescreen.dmi' icon_state = "telescreen" + layer = ABOVE_WINDOW_LAYER icon_state_unpowered = "telescreen" icon_state_menu = "menu" icon_state_screensaver = "standby" diff --git a/code/modules/nifsoft/software/14_commlink.dm b/code/modules/nifsoft/software/14_commlink.dm index 26539f20f2..34e36f6527 100644 --- a/code/modules/nifsoft/software/14_commlink.dm +++ b/code/modules/nifsoft/software/14_commlink.dm @@ -43,7 +43,6 @@ ..() nif = newloc nifsoft = soft - QDEL_NULL(camera) //Not supported on internal one. /obj/item/device/communicator/commlink/Destroy() if(nif) diff --git a/code/modules/nifsoft/software/15_misc.dm b/code/modules/nifsoft/software/15_misc.dm index 7cdd364b16..bd0975269d 100644 --- a/code/modules/nifsoft/software/15_misc.dm +++ b/code/modules/nifsoft/software/15_misc.dm @@ -127,7 +127,7 @@ /datum/nifsoft/sizechange/activate() if((. = ..())) - var/new_size = input("Put the desired size (25-200%)", "Set Size", 200) as num + var/new_size = input("Put the desired size (25-200%)", "Set Size", 200) as num|null if (!ISINRANGE(new_size,25,200)) to_chat(nif.human,"The safety features of the NIF Program prevent you from choosing this size.") diff --git a/code/modules/organs/internal/augment.dm b/code/modules/organs/internal/augment.dm index 569b5dda44..da8ee8d577 100644 --- a/code/modules/organs/internal/augment.dm +++ b/code/modules/organs/internal/augment.dm @@ -14,6 +14,8 @@ target_parent_classes = list() // Is the parent supposed to be organic, robotic, assisted? forgiving_class = TRUE // Will the organ give its verbs when it isn't a perfect match? I.E., assisted in organic, synthetic in organic. + butcherable = FALSE + var/obj/item/integrated_object // Objects held by the organ, used for re-usable, deployable things. var/integrated_object_type // Object type the organ will spawn. var/target_slot = null diff --git a/code/modules/organs/internal/brain.dm b/code/modules/organs/internal/brain.dm index 0412ab1470..30c539bbde 100644 --- a/code/modules/organs/internal/brain.dm +++ b/code/modules/organs/internal/brain.dm @@ -83,8 +83,11 @@ GLOBAL_LIST_BOILERPLATE(all_brain_organs, /obj/item/organ/internal/brain) health = config.default_brain_health defib_timer = (config.defib_timer MINUTES) / 2 spawn(5) - if(brainmob && brainmob.client) - brainmob.client.screen.len = null //clear the hud + if(brainmob) + butcherable = FALSE + + if(brainmob.client) + brainmob.client.screen.len = null //clear the hud /obj/item/organ/internal/brain/Destroy() QDEL_NULL(brainmob) @@ -96,9 +99,11 @@ GLOBAL_LIST_BOILERPLATE(all_brain_organs, /obj/item/organ/internal/brain) brainmob = new(src) brainmob.name = H.real_name brainmob.real_name = H.real_name - brainmob.dna = H.dna.Clone() - brainmob.timeofhostdeath = H.timeofdeath - brainmob.ooc_notes = H.ooc_notes //VOREStation Edit + + if(istype(H)) + brainmob.dna = H.dna.Clone() + brainmob.timeofhostdeath = H.timeofdeath + brainmob.ooc_notes = H.ooc_notes //VOREStation Edit // Copy modifiers. for(var/datum/modifier/M in H.modifiers) @@ -125,13 +130,13 @@ GLOBAL_LIST_BOILERPLATE(all_brain_organs, /obj/item/organ/internal/brain) if(name == initial(name)) name = "\the [owner.real_name]'s [initial(name)]" - var/mob/living/simple_mob/animal/borer/borer = owner.has_brain_worms() + var/mob/living/simple_mob/animal/borer/borer = owner?.has_brain_worms() if(borer) borer.detatch() //Should remove borer if the brain is removed - RR var/obj/item/organ/internal/brain/B = src - if(istype(B) && istype(owner)) + if(istype(B) && owner) B.transfer_identity(owner) ..() diff --git a/code/modules/organs/internal/liver.dm b/code/modules/organs/internal/liver.dm index 1fcfac93bb..c23467466a 100644 --- a/code/modules/organs/internal/liver.dm +++ b/code/modules/organs/internal/liver.dm @@ -8,7 +8,7 @@ /obj/item/organ/internal/liver/process() ..() - if(!owner) return + if(!iscarbon(owner)) return if(owner.life_tick % PROCESS_ACCURACY == 0) diff --git a/code/modules/organs/internal/robotic/robotic.dm b/code/modules/organs/internal/robotic/robotic.dm index 7a40ab8101..71414af1ae 100644 --- a/code/modules/organs/internal/robotic/robotic.dm +++ b/code/modules/organs/internal/robotic/robotic.dm @@ -9,3 +9,4 @@ decays = FALSE // Ditto. Rust takes a while. robotic = ORGAN_ROBOT + butcherable = FALSE diff --git a/code/modules/organs/organ.dm b/code/modules/organs/organ.dm index 2d3f68a40c..c60420d359 100644 --- a/code/modules/organs/organ.dm +++ b/code/modules/organs/organ.dm @@ -44,6 +44,9 @@ var/list/organ_cache = list() var/list/target_parent_classes = list() // Is the parent supposed to be organic, robotic, assisted? var/forgiving_class = TRUE // Will the organ give its verbs when it isn't a perfect match? I.E., assisted in organic, synthetic in organic. + var/butcherable = TRUE + var/meat_type // What does butchering, if possible, make? + /obj/item/organ/Destroy() handle_organ_mod_special(TRUE) @@ -59,21 +62,42 @@ var/list/organ_cache = list() /obj/item/organ/proc/update_health() return -/obj/item/organ/New(var/mob/living/carbon/holder, var/internal) +/obj/item/organ/New(var/mob/living/holder, var/internal) ..(holder) create_reagents(5) - if(!max_damage) - max_damage = min_broken_damage * 2 - if(istype(holder)) + + if(isliving(holder)) src.owner = holder src.w_class = max(src.w_class + mob_size_difference(holder.mob_size, MOB_MEDIUM), 1) //smaller mobs have smaller organs. + if(internal) + if(!LAZYLEN(holder.internal_organs)) + holder.internal_organs = list() + if(!LAZYLEN(holder.internal_organs_by_name)) + holder.internal_organs_by_name = list() + + holder.internal_organs |= src + holder.internal_organs_by_name[organ_tag] = src + + else + if(!LAZYLEN(holder.organs)) + holder.organs = list() + if(!LAZYLEN(holder.organs_by_name)) + holder.organs_by_name = list() + + holder.internal_organs |= src + holder.internal_organs_by_name[organ_tag] = src + + if(!max_damage) + max_damage = min_broken_damage * 2 + if(iscarbon(holder)) + var/mob/living/carbon/C = holder species = GLOB.all_species[SPECIES_HUMAN] if(holder.dna) - dna = holder.dna.Clone() - species = holder.species //VOREStation Edit - For custom species + dna = C.dna.Clone() + species = C.species //VOREStation Edit - For custom species else log_debug("[src] at [loc] spawned without a proper DNA.") - var/mob/living/carbon/human/H = holder + var/mob/living/carbon/human/H = C if(istype(H)) if(internal) var/obj/item/organ/external/E = H.get_organ(parent_organ) @@ -81,18 +105,32 @@ var/list/organ_cache = list() if(E.internal_organs == null) E.internal_organs = list() E.internal_organs |= src - H.internal_organs_by_name[organ_tag] = src if(dna) if(!blood_DNA) blood_DNA = list() blood_DNA[dna.unique_enzymes] = dna.b_type - if(internal) - holder.internal_organs |= src else species = GLOB.all_species["Human"] handle_organ_mod_special() +/obj/item/organ/Initialize() + ..() + + if(owner) + if(!meat_type) + if(owner.isSynthetic()) + meat_type = /obj/item/stack/material/steel + else if(ishuman(owner)) + var/mob/living/carbon/human/H = owner + meat_type = H?.species?.meat_type + + if(!meat_type) + if(owner.meat_type) + meat_type = owner.meat_type + else + meat_type = /obj/item/weapon/reagent_containers/food/snacks/meat + /obj/item/organ/proc/set_dna(var/datum/dna/new_dna) if(new_dna) dna = new_dna.Clone() @@ -134,7 +172,7 @@ var/list/organ_cache = list() handle_organ_proc_special() //Process infections - if(robotic >= ORGAN_ROBOT || (owner && owner.species && (owner.species.flags & IS_PLANT || (owner.species.flags & NO_INFECT)))) + if(robotic >= ORGAN_ROBOT || (istype(owner) && (owner.species && (owner.species.flags & (IS_PLANT | NO_INFECT))))) germ_level = 0 return @@ -152,7 +190,7 @@ var/list/organ_cache = list() if(germ_level >= INFECTION_LEVEL_THREE) die() - else if(owner && owner.bodytemperature >= 170) //cryo stops germs from moving and doing their bad stuffs + else if(owner && owner?.bodytemperature >= 170) //cryo stops germs from moving and doing their bad stuffs //** Handle antibiotics and curing infections handle_antibiotics() handle_rejection() @@ -170,7 +208,7 @@ var/list/organ_cache = list() germ_level = 0 return 0 - var/antibiotics = owner.chem_effects[CE_ANTIBIOTIC] || 0 + var/antibiotics = iscarbon(owner) ? owner.chem_effects[CE_ANTIBIOTIC] || 0 : 0 var/infection_damage = 0 @@ -203,10 +241,12 @@ var/list/organ_cache = list() //Level 1 qualifies for specific organ processing effects if(germ_level >= INFECTION_LEVEL_ONE) - . = 1 - var/fever_temperature = owner.species.heat_discomfort_level * 1.10 //Heat discomfort level plus 10% - if(owner.bodytemperature < fever_temperature) - owner.bodytemperature += min(0.2,(fever_temperature - owner.bodytemperature) / 10) //Will usually climb by 0.2, else 10% of the difference if less + . = 1 //Organ qualifies for effect-specific processing + //var/fever_temperature = (owner.species.heat_level_1 - owner.species.body_temperature - 5)* min(germ_level/INFECTION_LEVEL_TWO, 1) + owner.species.body_temperature + //owner.bodytemperature += between(0, (fever_temperature - T20C)/BODYTEMP_COLD_DIVISOR + 1, fever_temperature - owner.bodytemperature) + var/fever_temperature = owner?.species.heat_discomfort_level * 1.10 //Heat discomfort level plus 10% + if(owner?.bodytemperature < fever_temperature) + owner?.bodytemperature += min(0.2,(fever_temperature - owner?.bodytemperature) / 10) //Will usually climb by 0.2, else 10% of the difference if less //Level two qualifies for further processing effects if (germ_level >= INFECTION_LEVEL_TWO) @@ -269,19 +309,20 @@ var/list/organ_cache = list() //Germs /obj/item/organ/proc/handle_antibiotics() - var/antibiotics = owner.chem_effects[CE_ANTIBIOTIC] || 0 + if(istype(owner)) + var/antibiotics = owner.chem_effects[CE_ANTIBIOTIC] || 0 - if (!germ_level || antibiotics < ANTIBIO_NORM) - return + if (!germ_level || antibiotics < ANTIBIO_NORM) + return - if (germ_level < INFECTION_LEVEL_ONE) - germ_level = 0 //cure instantly - else if (germ_level < INFECTION_LEVEL_TWO) - adjust_germ_level(-antibiotics*4) //at germ_level < 500, this should cure the infection in a minute - else if (germ_level < INFECTION_LEVEL_THREE) - adjust_germ_level(-antibiotics*2) //at germ_level < 1000, this will cure the infection in 5 minutes - else - adjust_germ_level(-antibiotics) // You waited this long to get treated, you don't really deserve this organ + if (germ_level < INFECTION_LEVEL_ONE) + germ_level = 0 //cure instantly + else if (germ_level < INFECTION_LEVEL_TWO) + adjust_germ_level(-antibiotics*4) //at germ_level < 500, this should cure the infection in a minute + else if (germ_level < INFECTION_LEVEL_THREE) + adjust_germ_level(-antibiotics*2) //at germ_level < 1000, this will cure the infection in 5 minutes + else + adjust_germ_level(-antibiotics) // You waited this long to get treated, you don't really deserve this organ //Adds autopsy data for used_weapon. /obj/item/organ/proc/add_autopsy_data(var/used_weapon, var/damage) @@ -304,7 +345,7 @@ var/list/organ_cache = list() //only show this if the organ is not robotic if(owner && parent_organ && amount > 0) - var/obj/item/organ/external/parent = owner.get_organ(parent_organ) + var/obj/item/organ/external/parent = owner?.get_organ(parent_organ) if(parent && !silent) owner.custom_pain("Something inside your [parent.name] hurts a lot.", amount) @@ -322,6 +363,7 @@ var/list/organ_cache = list() robotic = ORGAN_ASSISTED min_bruised_damage = 15 min_broken_damage = 35 + butcherable = FALSE /obj/item/organ/proc/digitize() //Used to make the circuit-brain. On this level in the event more circuit-organs are added/tweaks are wanted. robotize() @@ -341,31 +383,30 @@ var/list/organ_cache = list() take_damage(rand(1,3)) /obj/item/organ/proc/removed(var/mob/living/user) + if(owner) + owner.internal_organs_by_name[organ_tag] = null + owner.internal_organs_by_name -= organ_tag + owner.internal_organs_by_name -= null + owner.internal_organs -= src - if(!istype(owner)) - return + var/obj/item/organ/external/affected = owner.get_organ(parent_organ) + if(affected) affected.internal_organs -= src - owner.internal_organs_by_name[organ_tag] = null - owner.internal_organs_by_name -= organ_tag - owner.internal_organs_by_name -= null - owner.internal_organs -= src + forceMove(owner.drop_location()) + START_PROCESSING(SSobj, src) + rejecting = null - var/obj/item/organ/external/affected = owner.get_organ(parent_organ) - if(affected) affected.internal_organs -= src + if(istype(owner)) + var/datum/reagent/blood/organ_blood = locate(/datum/reagent/blood) in reagents.reagent_list + if(!organ_blood || !organ_blood.data["blood_DNA"]) + owner.vessel.trans_to(src, 5, 1, 1) - forceMove(owner.drop_location()) - START_PROCESSING(SSobj, src) - rejecting = null - var/datum/reagent/blood/organ_blood = locate(/datum/reagent/blood) in reagents.reagent_list - if(!organ_blood || !organ_blood.data["blood_DNA"]) - owner.vessel.trans_to(src, 5, 1, 1) - - if(owner && vital) - if(user) - add_attack_logs(user, owner, "Removed vital organ [src.name]") - if(owner.stat != DEAD) - owner.can_defib = 0 - owner.death() + if(owner && vital) + if(user) + add_attack_logs(user, owner, "Removed vital organ [src.name]") + if(owner.stat != DEAD) + owner.can_defib = 0 + owner.death() handle_organ_mod_special(TRUE) @@ -379,13 +420,13 @@ var/list/organ_cache = list() var/datum/reagent/blood/transplant_blood = locate(/datum/reagent/blood) in reagents.reagent_list transplant_data = list() if(!transplant_blood) - transplant_data["species"] = target.species.name - transplant_data["blood_type"] = target.dna.b_type - transplant_data["blood_DNA"] = target.dna.unique_enzymes + transplant_data["species"] = target?.species.name + transplant_data["blood_type"] = target?.dna.b_type + transplant_data["blood_DNA"] = target?.dna.unique_enzymes else - transplant_data["species"] = transplant_blood.data["species"] - transplant_data["blood_type"] = transplant_blood.data["blood_type"] - transplant_data["blood_DNA"] = transplant_blood.data["blood_DNA"] + transplant_data["species"] = transplant_blood?.data["species"] + transplant_data["blood_type"] = transplant_blood?.data["blood_type"] + transplant_data["blood_DNA"] = transplant_blood?.data["blood_DNA"] owner = target loc = owner @@ -428,6 +469,46 @@ var/list/organ_cache = list() bitten(user) return +/obj/item/organ/attackby(obj/item/weapon/W as obj, mob/user as mob) + if(can_butcher(W, user)) + butcher(W, user) + return + + return ..() + +/obj/item/organ/proc/can_butcher(var/obj/item/O, var/mob/living/user) + if(butcherable && meat_type) + + if(istype(O, /obj/machinery/gibber)) // The great equalizer. + return TRUE + + if(robotic >= ORGAN_ROBOT) + if(O.is_screwdriver()) + return TRUE + + else + if(is_sharp(O) && has_edge(O)) + return TRUE + + return FALSE + +/obj/item/organ/proc/butcher(var/obj/item/O, var/mob/living/user, var/atom/newtarget) + if(robotic >= ORGAN_ROBOT) + user?.visible_message("[user] disassembles \the [src].") + + else + user?.visible_message("[user] butchers \the [src].") + + if(!newtarget) + newtarget = get_turf(src) + + var/obj/item/newmeat = new meat_type(newtarget) + + if(istype(newmeat, /obj/item/weapon/reagent_containers/food/snacks/meat)) + newmeat.name = "[src.name] [newmeat.name]" // "liver meat" "heart meat", etc. + + qdel(src) + /obj/item/organ/proc/organ_can_feel_pain() if(species.flags & NO_PAIN) return 0 diff --git a/code/modules/organs/organ_external.dm b/code/modules/organs/organ_external.dm index 7e954df0eb..c9617afe11 100644 --- a/code/modules/organs/organ_external.dm +++ b/code/modules/organs/organ_external.dm @@ -33,7 +33,8 @@ var/body_part = null // Part flag var/icon_position = 0 // Used in mob overlay layering calculations. var/model // Used when caching robolimb icons. - var/force_icon // Used to force override of species-specific limb icons (for prosthetics). + var/force_icon // Used to force override of species-specific limb icons (for prosthetics). Also used for any limbs chopped from a simple mob, and then attached to humans. + var/force_icon_key // Used to force the override of the icon-key generated using the species. Must be used in tandem with the above. var/icon/mob_icon // Cached icon for use in mob overlays. var/gendered_icon = 0 // Whether or not the icon state appends a gender. var/s_tone // Skin tone. @@ -96,7 +97,7 @@ qdel(splinted) splinted = null - if(owner) + if(istype(owner)) owner.organs -= src owner.organs_by_name[organ_tag] = null owner.organs_by_name -= organ_tag @@ -198,7 +199,7 @@ return dislocated = 1 - if(owner) + if(istype(owner)) owner.verbs |= /mob/living/carbon/human/proc/relocate /obj/item/organ/external/proc/relocate() @@ -206,7 +207,7 @@ return dislocated = 0 - if(owner) + if(istype(owner)) owner.shock_stage += 20 //check to see if we still need the verb @@ -220,7 +221,7 @@ /obj/item/organ/external/New(var/mob/living/carbon/holder) ..(holder, 0) - if(owner) + if(istype(owner)) replaced(owner) sync_colour_to_human(owner) spawn(1) @@ -884,11 +885,11 @@ Note that amputating the affected organ does in fact remove the infection from t var/mob/living/carbon/human/victim = owner //Keep a reference for post-removed(). var/obj/item/organ/external/parent_organ = parent - var/use_flesh_colour = species.get_flesh_colour(owner) - var/use_blood_colour = species.get_blood_colour(owner) + var/use_flesh_colour = species?.get_flesh_colour(owner) ? species.get_flesh_colour(owner) : "#C80000" + var/use_blood_colour = species?.get_blood_colour(owner) ? species.get_blood_colour(owner) : "#C80000" removed(null, ignore_children) - victim.traumatic_shock += 60 + victim?.traumatic_shock += 60 if(parent_organ) var/datum/wound/lost_limb/W = new (src, disintegrate, clean) @@ -904,9 +905,12 @@ Note that amputating the affected organ does in fact remove the infection from t stump.update_damages() spawn(1) - victim.updatehealth() - victim.UpdateDamageIcon() - victim.update_icons_body() + if(istype(victim)) + victim.updatehealth() + victim.UpdateDamageIcon() + victim.update_icons_body() + else + victim.update_icons() dir = 2 var/atom/droploc = victim.drop_location() @@ -1231,7 +1235,7 @@ Note that amputating the affected organ does in fact remove the infection from t organ.loc = src // Remove parent references - parent.children -= src + parent?.children -= src parent = null release_restraints(victim) diff --git a/code/modules/organs/organ_icon.dm b/code/modules/organs/organ_icon.dm index a5be7341fc..1fda536c93 100644 --- a/code/modules/organs/organ_icon.dm +++ b/code/modules/organs/organ_icon.dm @@ -58,7 +58,7 @@ var/global/list/limb_icon_cache = list() cut_overlays() //Every 'addon' below requires information from species - if(!owner || !owner.species) + if(!iscarbon(owner) || !owner.species) return //Eye color/icon @@ -135,7 +135,10 @@ var/global/list/limb_icon_cache = list() if(owner && owner.gender == FEMALE) gender = "f" - icon_cache_key = "[icon_name]_[species ? species.get_bodytype() : SPECIES_HUMAN]" //VOREStation Edit + if(!force_icon_key) + icon_cache_key = "[icon_name]_[species ? species.get_bodytype() : SPECIES_HUMAN]" //VOREStation Edit + else + icon_cache_key = "[icon_name]_[force_icon_key]" if(force_icon) mob_icon = new /icon(force_icon, "[icon_name][gendered_icon ? "_[gender]" : ""]") diff --git a/code/modules/organs/subtypes/machine.dm b/code/modules/organs/subtypes/machine.dm index 8624a71453..01b0abdc61 100644 --- a/code/modules/organs/subtypes/machine.dm +++ b/code/modules/organs/subtypes/machine.dm @@ -38,6 +38,7 @@ var/brain_type = /obj/item/device/mmi var/obj/item/device/mmi/stored_mmi robotic = ORGAN_ASSISTED + butcherable = FALSE /obj/item/organ/internal/mmi_holder/Destroy() if(stored_mmi && (stored_mmi.loc == src)) diff --git a/code/modules/organs/subtypes/standard.dm b/code/modules/organs/subtypes/standard.dm index bb4a9c7a13..1ebd92106c 100644 --- a/code/modules/organs/subtypes/standard.dm +++ b/code/modules/organs/subtypes/standard.dm @@ -282,14 +282,15 @@ /obj/item/organ/external/head/removed() if(owner) - name = "[owner.real_name]'s head" - owner.drop_from_inventory(owner.glasses) - owner.drop_from_inventory(owner.head) - owner.drop_from_inventory(owner.l_ear) - owner.drop_from_inventory(owner.r_ear) - owner.drop_from_inventory(owner.wear_mask) - spawn(1) - owner.update_hair() + if(iscarbon(owner)) + name = "[owner.real_name]'s head" + owner.drop_from_inventory(owner.glasses) + owner.drop_from_inventory(owner.head) + owner.drop_from_inventory(owner.l_ear) + owner.drop_from_inventory(owner.r_ear) + owner.drop_from_inventory(owner.wear_mask) + spawn(1) + owner.update_hair() get_icon() ..() diff --git a/code/modules/overmap/ships/computers/helm.dm b/code/modules/overmap/ships/computers/helm.dm index 1c231fc4e0..16a44332cb 100644 --- a/code/modules/overmap/ships/computers/helm.dm +++ b/code/modules/overmap/ships/computers/helm.dm @@ -274,6 +274,7 @@ GLOBAL_LIST_EMPTY(all_waypoints) /obj/machinery/computer/ship/navigation/telescreen //little hacky but it's only used on one ship so it should be okay icon_state = "tele_nav" + layer = ABOVE_WINDOW_LAYER icon_keyboard = null icon_screen = null circuit = /obj/item/weapon/circuitboard/nav/tele diff --git a/code/modules/overmap/spacetravel.dm b/code/modules/overmap/spacetravel.dm index 658ae729a4..8bae95434a 100644 --- a/code/modules/overmap/spacetravel.dm +++ b/code/modules/overmap/spacetravel.dm @@ -73,8 +73,9 @@ proc/get_deepspace(x,y) /mob/lost_in_space() return isnull(client) -/mob/living/carbon/human/lost_in_space() - return isnull(client) && !key && stat == DEAD +/mob/living/lost_in_space() + return FALSE + // return isnull(client) && !key && stat == DEAD // Allows bodies that players have ghosted from to be deleted - Ater proc/overmap_spacetravel(var/turf/space/T, var/atom/movable/A) if (!T || !A) diff --git a/code/modules/pda/ai.dm b/code/modules/pda/ai.dm index 9072eef96e..10a04effb3 100644 --- a/code/modules/pda/ai.dm +++ b/code/modules/pda/ai.dm @@ -26,7 +26,7 @@ set name = "Use PDA" set src in usr - if(!can_use()) + if(!can_use(usr)) return tgui_interact(usr) diff --git a/code/modules/pda/messenger.dm b/code/modules/pda/messenger.dm index 38360e127a..a902bec3aa 100644 --- a/code/modules/pda/messenger.dm +++ b/code/modules/pda/messenger.dm @@ -109,7 +109,7 @@ // Specifically here for the chat message. /datum/data/pda/app/messenger/Topic(href, href_list) - if(!pda.can_use()) + if(!pda.can_use(usr)) return unnotify() @@ -140,7 +140,7 @@ if(last_text && world.time < last_text + 5) return - if(!pda.can_use()) + if(!pda.can_use(usr)) return last_text = world.time diff --git a/code/modules/pda/pda.dm b/code/modules/pda/pda.dm index 3c9b03ce1e..2c3b368730 100644 --- a/code/modules/pda/pda.dm +++ b/code/modules/pda/pda.dm @@ -147,16 +147,8 @@ var/global/list/obj/item/device/pda/PDAs = list() log_debug("Invalid switch for PDA, defaulting to old PDA icons. [pdachoice] chosen.") start_program(find_program(/datum/data/pda/app/main_menu)) -/obj/item/device/pda/proc/can_use() - if(!ismob(loc)) - return FALSE - - var/mob/M = loc - if(M.incapacitated(INCAPACITATION_ALL)) - return FALSE - if(src in M.contents) - return TRUE - return FALSE +/obj/item/device/pda/proc/can_use(mob/user) + return (tgui_status(user, GLOB.tgui_inventory_state) == STATUS_INTERACTIVE) /obj/item/device/pda/GetAccess() if(id) @@ -169,7 +161,7 @@ var/global/list/obj/item/device/pda/PDAs = list() /obj/item/device/pda/MouseDrop(obj/over_object as obj, src_location, over_location) var/mob/M = usr - if((!istype(over_object, /obj/screen)) && can_use()) + if((!istype(over_object, /obj/screen)) && can_use(usr)) return attack_self(M) return diff --git a/code/modules/pda/pda_tgui.dm b/code/modules/pda/pda_tgui.dm index 0d70b6db02..6d57a6c25e 100644 --- a/code/modules/pda/pda_tgui.dm +++ b/code/modules/pda/pda_tgui.dm @@ -2,11 +2,6 @@ /obj/item/device/pda/tgui_state(mob/user) return GLOB.tgui_inventory_state -/obj/item/device/pda/tgui_status(mob/user, datum/tgui_state/state) - . = ..() - if(!can_use()) - . = min(., STATUS_UPDATE) - /obj/item/device/pda/tgui_interact(mob/user, datum/tgui/ui, datum/tgui/parent_ui) ui = SStgui.try_update_ui(user, src, ui) if(!ui) @@ -50,6 +45,7 @@ data["idLink"] = (id ? text("[id.registered_name], [id.assignment]") : "--------") data["useRetro"] = retro_mode + data["touch_silent"] = touch_silent data["cartridge_name"] = cartridge ? cartridge.name : "" data["stationTime"] = stationtime2text() //worldtime2stationtime(world.time) // Aaa which fucking one is canonical there's SO MANY @@ -68,12 +64,6 @@ if(..()) return TRUE - if(!can_use()) - usr.unset_machine() - if(ui) - ui.close() - return FALSE - add_fingerprint(usr) usr.set_machine(src) @@ -113,6 +103,8 @@ id_check(usr, 1) if("Retro") retro_mode = !retro_mode + if("TouchSounds") + touch_silent = !touch_silent if("Ringtone") return set_ringtone() else diff --git a/code/modules/persistence/noticeboard.dm b/code/modules/persistence/noticeboard.dm index 046972ee36..c37e084ce8 100644 --- a/code/modules/persistence/noticeboard.dm +++ b/code/modules/persistence/noticeboard.dm @@ -3,6 +3,7 @@ desc = "A board for pinning important notices upon." icon = 'icons/obj/stationobjs.dmi' icon_state = "nboard00" + layer = ABOVE_WINDOW_LAYER density = 0 anchored = 1 var/list/notices diff --git a/code/modules/power/apc.dm b/code/modules/power/apc.dm index 2ce2758090..868e3e4349 100644 --- a/code/modules/power/apc.dm +++ b/code/modules/power/apc.dm @@ -80,8 +80,7 @@ GLOBAL_LIST_EMPTY(apcs) desc = "A control terminal for the area electrical systems." icon = 'icons/obj/power.dmi' icon_state = "apc0" - plane = TURF_PLANE - layer = ABOVE_TURF_LAYER + layer = ABOVE_WINDOW_LAYER anchored = 1 use_power = USE_POWER_OFF clicksound = "switch" diff --git a/code/modules/power/batteryrack_vr.dm b/code/modules/power/batteryrack_vr.dm index 69a2cb5330..8cc2b2c636 100644 --- a/code/modules/power/batteryrack_vr.dm +++ b/code/modules/power/batteryrack_vr.dm @@ -1,3 +1,15 @@ +/obj/machinery/power/smes/batteryrack/mapped + var/cell_type = /obj/item/weapon/cell/apc + var/cell_number = 3 + +/obj/machinery/power/smes/batteryrack/mapped/Initialize() + . = ..() + for(var/i = 1 to cell_number) + if(i > max_cells) + break + var/obj/item/weapon/cell/newcell = new cell_type(src.loc) + insert_cell(newcell) + /obj/item/weapon/module/power_control/attackby(var/obj/item/I, var/mob/user) if(I.is_multitool()) to_chat(user, SPAN_NOTICE("You begin tweaking the power control circuits to support a power cell rack.")) diff --git a/code/modules/power/singularity/containment_field.dm b/code/modules/power/singularity/containment_field.dm index 996847b13b..c3927ec2bd 100644 --- a/code/modules/power/singularity/containment_field.dm +++ b/code/modules/power/singularity/containment_field.dm @@ -12,11 +12,19 @@ light_range = 4 var/obj/machinery/field_generator/FG1 = null var/obj/machinery/field_generator/FG2 = null + var/list/shockdirs var/hasShocked = 0 //Used to add a delay between shocks. In some cases this used to crash servers by spawning hundreds of sparks every second. /obj/machinery/containment_field/Initialize() + . = ..() + shockdirs = list(turn(dir,90),turn(dir,-90)) sense_proximity(callback = .HasProximity) +/obj/machinery/containment_field/set_dir(new_dir) + . = ..() + if(.) + shockdirs = list(turn(dir,90),turn(dir,-90)) + /obj/machinery/containment_field/Destroy() unsense_proximity(callback = .HasProximity) if(FG1 && !FG1.clean_up) @@ -36,11 +44,17 @@ /obj/machinery/containment_field/ex_act(severity) return 0 +/obj/machinery/containment_field/Crossed(mob/living/L) + if(!istype(L) || L.incorporeal_move) + return + shock(L) + /obj/machinery/containment_field/HasProximity(turf/T, atom/movable/AM, old_loc) - if(istype(AM,/mob/living/silicon) && prob(40)) - shock(AM) - return 1 - if(istype(AM,/mob/living/carbon) && prob(50)) + if(!istype(AM, /mob/living) || AM:incorporeal_move) + return 0 + if(!(get_dir(src,AM) in shockdirs)) + return 0 + if(issilicon(AM) ? prob(40) : prob(50)) shock(AM) return 1 return 0 diff --git a/code/modules/power/singularity/field_generator.dm b/code/modules/power/singularity/field_generator.dm index 763dd32ca8..6112da7b00 100644 --- a/code/modules/power/singularity/field_generator.dm +++ b/code/modules/power/singularity/field_generator.dm @@ -285,11 +285,10 @@ field_generator power level display var/field_dir = get_dir(T,get_step(G.loc, NSEW)) T = get_step(T, NSEW) if(!locate(/obj/machinery/containment_field) in T) - var/obj/machinery/containment_field/CF = new/obj/machinery/containment_field() + var/obj/machinery/containment_field/CF = new/obj/machinery/containment_field(T) CF.set_master(src,G) fields += CF G.fields += CF - CF.loc = T CF.set_dir(field_dir) var/listcheck = 0 for(var/obj/machinery/field_generator/FG in connected_gens) diff --git a/code/modules/power/solar.dm b/code/modules/power/solar.dm index 325ff928e1..ec059bc5f4 100644 --- a/code/modules/power/solar.dm +++ b/code/modules/power/solar.dm @@ -24,13 +24,16 @@ GLOBAL_LIST_EMPTY(solars_list) var/ndir = SOUTH // target dir var/turn_angle = 0 var/obj/machinery/power/solar_control/control = null + var/glass_type = /obj/item/stack/material/glass /obj/machinery/power/solar/drain_power() return -1 -/obj/machinery/power/solar/Initialize(mapload, obj/item/solar_assembly/S) +/obj/machinery/power/solar/Initialize(mapload, glass_type) . = ..() - Make(S) + if(glass_type == /obj/item/stack/material/glass/reinforced) //if the panel is in reinforced glass + health *= 2 + update_icon() connect_to_network() /obj/machinery/power/solar/Destroy() @@ -50,28 +53,16 @@ GLOBAL_LIST_EMPTY(solars_list) control.connected_panels.Remove(src) control = null -/obj/machinery/power/solar/proc/Make(var/obj/item/solar_assembly/S) - if(!S) - S = new /obj/item/solar_assembly(src) - S.glass_type = /obj/item/stack/material/glass - S.anchored = TRUE - S.loc = src - if(S.glass_type == /obj/item/stack/material/glass/reinforced) //if the panel is in reinforced glass - health *= 2 //this need to be placed here, because panels already on the map don't have an assembly linked to - update_icon() - - - /obj/machinery/power/solar/attackby(obj/item/weapon/W, mob/user) if(W.is_crowbar()) playsound(src, 'sound/machines/click.ogg', 50, 1) user.visible_message("[user] begins to take the glass off the solar panel.") if(do_after(user, 50)) - var/obj/item/solar_assembly/S = locate() in src - if(S) - S.loc = src.loc - S.give_glass() + var/obj/item/solar_assembly/S = new(loc) + S.anchored = TRUE + var/obj/item/stack/glass = new glass_type(loc) + glass.amount = 2 playsound(src, 'sound/items/Deconstruct.ogg', 50, 1) user.visible_message("[user] takes the glass off the solar panel.") qdel(src) @@ -169,8 +160,8 @@ GLOBAL_LIST_EMPTY(solars_list) return -/obj/machinery/power/solar/fake/New(var/turf/loc, var/obj/item/solar_assembly/S) - ..(loc, S, 0) +/obj/machinery/power/solar/fake/New(var/turf/loc, var/glass_type) + ..(loc, glass_type, 0) /obj/machinery/power/solar/fake/process() . = PROCESS_KILL @@ -213,20 +204,11 @@ GLOBAL_LIST_EMPTY(solars_list) w_class = ITEMSIZE_LARGE // Pretty big! anchored = 0 var/tracker = 0 - var/glass_type = null /obj/item/solar_assembly/attack_hand(var/mob/user) if(!anchored || !isturf(loc)) // You can't pick it up ..() -// Give back the glass type we were supplied with -/obj/item/solar_assembly/proc/give_glass() - if(glass_type) - var/obj/item/stack/material/S = new glass_type(src.loc) - S.amount = 2 - glass_type = null - - /obj/item/solar_assembly/attackby(var/obj/item/weapon/W, var/mob/user) if (!isturf(loc)) return 0 @@ -246,15 +228,12 @@ GLOBAL_LIST_EMPTY(solars_list) if(istype(W, /obj/item/stack/material) && (W.get_material_name() == "glass" || W.get_material_name() == "rglass")) var/obj/item/stack/material/S = W if(S.use(2)) - glass_type = W.type playsound(src, 'sound/machines/click.ogg', 50, 1) user.visible_message("[user] places the glass on the solar assembly.") if(tracker) - new /obj/machinery/power/tracker(get_turf(src), src) - for(var/obj/item/solar_assembly/A in loc) - qdel(A) + new /obj/machinery/power/tracker(get_turf(src), W.type) else - new /obj/machinery/power/solar(get_turf(src), src) + new /obj/machinery/power/solar(get_turf(src), W.type) qdel(src) else to_chat(user, "You need two sheets of glass to put them into a solar panel.") diff --git a/code/modules/power/tesla/energy_ball.dm b/code/modules/power/tesla/energy_ball.dm index 899e553b10..e3ccafa4cc 100644 --- a/code/modules/power/tesla/energy_ball.dm +++ b/code/modules/power/tesla/energy_ball.dm @@ -87,7 +87,7 @@ forceMove(T) set_dir(move_dir) for(var/mob/living/carbon/C in loc) - dust_mobs(C) + dust_mob(C) sleep(1) // So movement is smooth /obj/singularity/energy_ball/proc/handle_energy() @@ -112,7 +112,7 @@ var/Orchiectomy_target = pick(orbiting_balls) qdel(Orchiectomy_target) - else if(orbiting_balls.len) + else dissipate() //sing code has a much better system. /obj/singularity/energy_ball/proc/new_mini_ball() @@ -129,43 +129,38 @@ EB.orbit(src, orbitsize, pick(FALSE, TRUE), rand(10, 25), pick(3, 4, 5, 6, 36)) +/obj/singularity/energy_ball/attack_hand(mob/user) + dust_mob(user) + return 1 /obj/singularity/energy_ball/Bump(atom/A) - dust_mobs(A) + dust_mob(A) /obj/singularity/energy_ball/Bumped(atom/movable/AM) - dust_mobs(AM) + dust_mob(AM) /obj/singularity/energy_ball/orbit(obj/singularity/energy_ball/target) if (istype(target)) target.orbiting_balls += src //TODO-LESH-DEL global.poi_list -= src - target.dissipate_strength = target.orbiting_balls.len + target.dissipate_strength = target.orbiting_balls.len + 1 . = ..() /obj/singularity/energy_ball/stop_orbit() if (orbiting && istype(orbiting.orbiting, /obj/singularity/energy_ball)) var/obj/singularity/energy_ball/orbitingball = orbiting.orbiting orbitingball.orbiting_balls -= src - orbitingball.dissipate_strength = orbitingball.orbiting_balls.len + orbitingball.dissipate_strength = orbitingball.orbiting_balls.len + 1 ..() if (!loc && !QDELETED(src)) qdel(src) -/obj/singularity/energy_ball/proc/dust_mobs(atom/A) - if(isliving(A)) - var/mob/living/L = A - if(L.incorporeal_move) - return - if(!iscarbon(A)) +/obj/singularity/energy_ball/proc/dust_mob(mob/living/L) + if(!istype(L) || L.incorporeal_move) return - for(var/obj/machinery/power/grounding_rod/GR in orange(src, 2)) - if(GR.anchored) - return - var/mob/living/carbon/C = A - // C.dust() - Changing to do fatal elecrocution instead - C.electrocute_act(500, src, def_zone = BP_TORSO) + // L.dust() - Changing to do fatal elecrocution instead + L.electrocute_act(500, src, def_zone = BP_TORSO) /proc/tesla_zap(atom/source, zap_range = 3, power, explosive = FALSE, stun_mobs = TRUE) if(!source) // Some mobs and maybe some objects delete themselves when they die. diff --git a/code/modules/power/tracker.dm b/code/modules/power/tracker.dm index 0e2cc7cbf8..c03d7db3b6 100644 --- a/code/modules/power/tracker.dm +++ b/code/modules/power/tracker.dm @@ -11,14 +11,15 @@ anchored = 1 density = 1 use_power = USE_POWER_OFF + var/glass_type = /obj/item/stack/material/glass var/id = 0 var/sun_angle = 0 // sun angle as set by sun datum var/obj/machinery/power/solar_control/control = null -/obj/machinery/power/tracker/New(var/turf/loc, var/obj/item/solar_assembly/S) - ..(loc) - Make(S) +/obj/machinery/power/tracker/Initialize(mapload, glass_type) + . = ..() + update_icon() connect_to_network() /obj/machinery/power/tracker/Destroy() @@ -38,15 +39,6 @@ control.connected_tracker = null control = null -/obj/machinery/power/tracker/proc/Make(var/obj/item/solar_assembly/S) - if(!S) - S = new /obj/item/solar_assembly(src) - S.glass_type = /obj/item/stack/material/glass - S.tracker = 1 - S.anchored = 1 - S.loc = src - update_icon() - //updates the tracker icon and the facing angle for the control computer /obj/machinery/power/tracker/proc/set_angle(var/angle) sun_angle = angle @@ -63,10 +55,11 @@ playsound(src, 'sound/machines/click.ogg', 50, 1) user.visible_message("[user] begins to take the glass off the solar tracker.") if(do_after(user, 50)) - var/obj/item/solar_assembly/S = locate() in src - if(S) - S.loc = src.loc - S.give_glass() + var/obj/item/solar_assembly/S = new(loc) + S.tracker = TRUE + S.anchored = TRUE + var/obj/item/stack/glass = new glass_type(loc) + glass.amount = 2 playsound(src, 'sound/items/Deconstruct.ogg', 50, 1) user.visible_message("[user] takes the glass off the tracker.") qdel(src) diff --git a/code/modules/projectiles/guns/magnetic/bore.dm b/code/modules/projectiles/guns/magnetic/bore.dm index 0594e2abb3..d70439a440 100644 --- a/code/modules/projectiles/guns/magnetic/bore.dm +++ b/code/modules/projectiles/guns/magnetic/bore.dm @@ -1,27 +1,24 @@ /obj/item/weapon/gun/magnetic/matfed - name = "portable phoron bore" - desc = "A large man-portable tunnel bore, using phorogenic plasma blasts. Point away from user." - description_fluff = "An aging Grayson Manufactories mining tool used for rapidly digging through rock. Mass production was discontinued when many of the devices were stolen and used to break into a high security facility by Boiling Point drones." - description_antag = "This device is exceptional at breaking down walls, though it is incredibly loud when doing so." - description_info = "The projectile of this tool will travel six tiles before dissipating, excavating mineral walls as it does so. It can be reloaded with phoron sheets." - - icon_state = "bore" - item_state = "bore" - wielded_item_state = "bore-wielded" - one_handed_penalty = 5 - - projectile_type = /obj/item/projectile/bullet/magnetic/bore - - gun_unreliable = 0 - power_cost = 750 - load_type = /obj/item/stack/material + load_type = list(/obj/item/stack/material, /obj/item/weapon/ore) var/mat_storage = 0 // How much material is stored inside? Input in multiples of 2000 as per auto/protolathe. var/max_mat_storage = 8000 // How much material can be stored inside? var/mat_cost = 500 // How much material is used per-shot? - var/ammo_material = MAT_PHORON + var/ammo_material + var/obj/item/weapon/stock_parts/manipulator/manipulator // Installed manipulator. Mostly for Phoron Bore, higher rating == less mats consumed upon firing. Set to a path to spawn with one of that type. var/loading = FALSE +/obj/item/weapon/gun/magnetic/matfed/Initialize() + . = ..() + if(ispath(manipulator)) + manipulator = new manipulator(src) + if(manipulator) + mat_cost = initial(mat_cost) / (2*manipulator.rating) + +/obj/item/weapon/gun/magnetic/matfed/Destroy() + QDEL_NULL(manipulator) + . = ..() + /obj/item/weapon/gun/magnetic/matfed/examine(mob/user) . = ..() var/ammotext = show_ammo() @@ -46,6 +43,7 @@ overlays = overlays_to_add ..() + /obj/item/weapon/gun/magnetic/matfed/attack_hand(var/mob/user) // It doesn't keep a loaded item inside. if(user.get_inactive_hand() == src) var/obj/item/removing @@ -55,7 +53,6 @@ cell = null if(removing) - removing.forceMove(get_turf(src)) user.put_in_hands(removing) user.visible_message("\The [user] removes \the [removing] from \the [src].") playsound(src, 'sound/machines/click.ogg', 10, 1) @@ -77,91 +74,170 @@ /obj/item/weapon/gun/magnetic/matfed/attackby(var/obj/item/thing, var/mob/user) if(removable_components) - if(istype(thing, /obj/item/weapon/cell)) - if(cell) - to_chat(user, "\The [src] already has \a [cell] installed.") - return - cell = thing - user.drop_from_inventory(cell) - cell.forceMove(src) - playsound(src, 'sound/machines/click.ogg', 10, 1) - user.visible_message("\The [user] slots \the [cell] into \the [src].") - update_icon() - return if(thing.is_crowbar()) if(!manipulator) to_chat(user, "\The [src] has no manipulator installed.") return - manipulator.forceMove(get_turf(src)) user.put_in_hands(manipulator) user.visible_message("\The [user] levers \the [manipulator] from \the [src].") - playsound(src, 'sound/items/Crowbar.ogg', 50, 1) + playsound(src, thing.usesound, 50, 1) + mat_cost = initial(mat_cost) manipulator = null update_icon() return - if(thing.is_screwdriver()) - if(!capacitor) - to_chat(user, "\The [src] has no capacitor installed.") - return - capacitor.forceMove(get_turf(src)) - user.put_in_hands(capacitor) - user.visible_message("\The [user] unscrews \the [capacitor] from \the [src].") - playsound(src, 'sound/items/Screwdriver.ogg', 50, 1) - capacitor = null - update_icon() - return - - if(istype(thing, /obj/item/weapon/stock_parts/capacitor)) - if(capacitor) - to_chat(user, "\The [src] already has \a [capacitor] installed.") - return - capacitor = thing - user.drop_from_inventory(capacitor) - capacitor.forceMove(src) - playsound(src, 'sound/machines/click.ogg', 10, 1) - power_per_tick = (power_cost*0.15) * capacitor.rating - user.visible_message("\The [user] slots \the [capacitor] into \the [src].") - update_icon() - return if(istype(thing, /obj/item/weapon/stock_parts/manipulator)) if(manipulator) to_chat(user, "\The [src] already has \a [manipulator] installed.") return manipulator = thing - user.drop_from_inventory(manipulator) - manipulator.forceMove(src) + user.drop_from_inventory(manipulator, src) playsound(src, 'sound/machines/click.ogg', 10,1) - mat_cost = initial(mat_cost) % (2*manipulator.rating) + mat_cost = initial(mat_cost) / (2*manipulator.rating) user.visible_message("\The [user] slots \the [manipulator] into \the [src].") update_icon() return - if(istype(thing, load_type)) - loading = TRUE + if(is_type_in_list(thing, load_type)) var/obj/item/stack/material/M = thing - if(!M.material || M.material.name != ammo_material) - return + if(istype(M)) //stack + if(!M.material || M.material.name != ammo_material || loading) + return - if(mat_storage + 2000 > max_mat_storage) - to_chat(user, "\The [src] cannot hold more [ammo_material].") - return + if(mat_storage + SHEET_MATERIAL_AMOUNT > max_mat_storage) + to_chat(user, "\The [src] cannot hold more [ammo_material].") + return - var/can_hold_val = 0 - while(can_hold_val < round(max_mat_storage / 2000)) - if(mat_storage + 2000 <= max_mat_storage && do_after(user,1.5 SECONDS)) + var/can_hold_val = 0 + loading = TRUE + while(mat_storage + SHEET_MATERIAL_AMOUNT <= max_mat_storage && do_after(user,1.5 SECONDS)) can_hold_val ++ - mat_storage += 2000 + mat_storage += SHEET_MATERIAL_AMOUNT playsound(src, 'sound/effects/phasein.ogg', 15, 1) - else - loading = FALSE - break - M.use(can_hold_val) + M.use(can_hold_val) + loading = FALSE + + else //ore + if(M.material != ammo_material) + return + + if(mat_storage + (SHEET_MATERIAL_AMOUNT/2*0.8) > max_mat_storage) + to_chat(user, "\The [src] cannot hold more [ammo_material].") + return + + qdel(M) + mat_storage += (SHEET_MATERIAL_AMOUNT/2*0.8) //two plasma ores needed per sheet, some inefficiency for not using refined product + user.visible_message("\The [user] loads \the [src] with \the [M].") playsound(src, 'sound/weapons/flipblade.ogg', 50, 1) update_icon() return + . = ..() + +#define GEN_STARTING -1 +#define GEN_OFF 0 +#define GEN_IDLE 1 +#define GEN_ACTIVE 2 + +/obj/item/weapon/gun/magnetic/matfed/phoronbore + name = "portable phoron bore" + desc = "A large man-portable tunnel bore, using phorogenic plasma blasts. Point away from user." + description_fluff = "An aging Grayson Manufactories mining tool used for rapidly digging through rock. Mass production was discontinued when many of the devices were stolen and used to break into a high security facility by Boiling Point drones." + description_antag = "This device is exceptional at breaking down walls, though it is incredibly loud when doing so." + description_info = "The projectile of this tool will travel six tiles before dissipating, excavating mineral walls as it does so. It can be reloaded with phoron sheets or ore, and has a togglable generator that can recharge the power cell using stored phoron." + + icon_state = "bore" + item_state = "bore" + wielded_item_state = "bore-wielded" + one_handed_penalty = 5 + + projectile_type = /obj/item/projectile/bullet/magnetic/bore + + gun_unreliable = 0 + power_cost = 100 + ammo_material = MAT_PHORON + + action_button_name = "Toggle internal generator" + + var/generator_state = GEN_OFF + var/datum/looping_sound/small_motor/soundloop + var/time_started //to keep the soundloop from being "stopped" too soon and playing indefinitely + +/obj/item/weapon/gun/magnetic/matfed/phoronbore/Initialize() + . = ..() + soundloop = new(list(src), 0) + +/obj/item/weapon/gun/magnetic/matfed/phoronbore/Destroy() + QDEL_NULL(soundloop) + . = ..() + +/obj/item/weapon/gun/magnetic/matfed/phoronbore/ui_action_click() + toggle_generator(usr) + +/obj/item/weapon/gun/magnetic/matfed/phoronbore/process() + if(generator_state && !mat_storage) + audible_message(SPAN_NOTICE("\The [src] goes quiet."),SPAN_NOTICE("A motor noise cuts out.")) + soundloop.stop() + generator_state = GEN_OFF + + else if(generator_state > GEN_OFF) + if(generator_state == GEN_IDLE && (cell?.percent() < 80 || (!cell && capacitor && capacitor.charge/capacitor.max_charge < 0.8))) + generator_state = GEN_ACTIVE + else if(generator_state == GEN_ACTIVE && (!cell || cell.fully_charged()) && (!capacitor || capacitor.charge == capacitor.max_charge)) + generator_state = GEN_IDLE + soundloop.speed = generator_state + generator_generate() + + if(capacitor) + if(cell) + if(capacitor.charge < capacitor.max_charge && cell.checked_use(power_per_tick)) + capacitor.charge(power_per_tick) + else if(!generator_state) + capacitor.use(capacitor.charge * 0.05) + + update_state() + +/obj/item/weapon/gun/magnetic/matfed/phoronbore/proc/generator_generate() + var/fuel_used = generator_state == GEN_IDLE ? 5 : 25 + var/power_made = fuel_used * 800 * CELLRATE //20kW when active, same power as a pacman on setting one, but less efficient because compact and portable + if(cell) + cell.give(power_made) + else if(capacitor) + capacitor.charge(power_made) + mat_storage = max(mat_storage - fuel_used, 0) + var/turf/T = get_turf(src) + if(T) + T.assume_gas("carbon_dioxide", fuel_used * 0.01, T0C+200) + +/obj/item/weapon/gun/magnetic/matfed/phoronbore/proc/toggle_generator(mob/living/user) + if(!generator_state && !mat_storage) + to_chat(user, SPAN_NOTICE("\The [src] has no fuel!")) + return + + else if(!generator_state) + generator_state = GEN_STARTING + var/pull = (!cell || cell.charge < 100) ? rand(1,4) : 0 + while(pull) + playsound(src, 'sound/items/small_motor/motor_pull_attempt.ogg', 100) + if(!do_after(user, 2 SECONDS, src)) + generator_state = GEN_OFF + return + pull-- + soundloop.start() + time_started = world.time + cell?.use(100) + audible_message(SPAN_NOTICE("\The [src] starts chugging."),SPAN_NOTICE("A motor noise starts up.")) + generator_state = GEN_IDLE + + else if(generator_state > GEN_OFF && time_started + 3 SECONDS < world.time) + soundloop.stop() + audible_message(SPAN_NOTICE("\The [src] goes quiet."),SPAN_NOTICE("A motor noise cuts out.")) + generator_state = GEN_OFF + +/obj/item/weapon/gun/magnetic/matfed/phoronbore/loaded + cell = /obj/item/weapon/cell/apc + capacitor = /obj/item/weapon/stock_parts/capacitor diff --git a/code/modules/projectiles/guns/magnetic/magnetic.dm b/code/modules/projectiles/guns/magnetic/magnetic.dm index bbdcc29936..1b13bd8f8c 100644 --- a/code/modules/projectiles/guns/magnetic/magnetic.dm +++ b/code/modules/projectiles/guns/magnetic/magnetic.dm @@ -17,7 +17,6 @@ var/obj/item/weapon/cell/cell // Currently installed powercell. var/obj/item/weapon/stock_parts/capacitor/capacitor // Installed capacitor. Higher rating == faster charge between shots. Set to a path to spawn with one of that type. - var/obj/item/weapon/stock_parts/manipulator/manipulator // Installed manipulator. Mostly for Phoron Bore, higher rating == less mats consumed upon firing. Set to a path to spawn with one of that type. var/removable_components = TRUE // Whether or not the gun can be dismantled. var/gun_unreliable = 15 // Percentage chance of detonating in your hands. @@ -38,16 +37,14 @@ if(ispath(capacitor)) capacitor = new capacitor(src) capacitor.charge = capacitor.max_charge - if(ispath(manipulator)) - manipulator = new manipulator(src) if(ispath(loaded)) loaded = new loaded(src) - + START_PROCESSING(SSobj, src) - + if(capacitor) power_per_tick = (power_cost*0.15) * capacitor.rating - + update_icon() /obj/item/weapon/gun/magnetic/Destroy() @@ -55,7 +52,6 @@ QDEL_NULL(cell) QDEL_NULL(loaded) QDEL_NULL(capacitor) - QDEL_NULL(manipulator) . = ..() /obj/item/weapon/gun/magnetic/get_cell() @@ -68,7 +64,7 @@ capacitor.charge(power_per_tick) else capacitor.use(capacitor.charge * 0.05) - + update_state() // May update icon, only if things changed. /obj/item/weapon/gun/magnetic/proc/update_state() @@ -80,7 +76,7 @@ newstate |= ICON_CELL if(capacitor) newstate |= ICON_CAP - + // Functional state if(!cell || !capacitor) newstate |= ICON_BAD @@ -88,7 +84,7 @@ newstate |= ICON_CHARGE else newstate |= ICON_READY - + // Ammo indicator if(loaded) newstate |= ICON_LOADED @@ -99,7 +95,7 @@ needs_update = TRUE state = newstate - + if(needs_update) update_icon() @@ -153,8 +149,7 @@ to_chat(user, "\The [src] already has \a [cell] installed.") return cell = thing - user.drop_from_inventory(cell) - cell.forceMove(src) + user.drop_from_inventory(cell, src) playsound(src, 'sound/machines/click.ogg', 10, 1) user.visible_message("\The [user] slots \the [cell] into \the [src].") update_icon() @@ -164,10 +159,9 @@ if(!capacitor) to_chat(user, "\The [src] has no capacitor installed.") return - capacitor.forceMove(get_turf(src)) user.put_in_hands(capacitor) user.visible_message("\The [user] unscrews \the [capacitor] from \the [src].") - playsound(src, 'sound/items/Screwdriver.ogg', 50, 1) + playsound(src, thing.usesound, 50, 1) capacitor = null update_icon() return @@ -177,8 +171,7 @@ to_chat(user, "\The [src] already has \a [capacitor] installed.") return capacitor = thing - user.drop_from_inventory(capacitor) - capacitor.forceMove(src) + user.drop_from_inventory(capacitor, src) playsound(src, 'sound/machines/click.ogg', 10, 1) power_per_tick = (power_cost*0.15) * capacitor.rating user.visible_message("\The [user] slots \the [capacitor] into \the [src].") diff --git a/code/modules/projectiles/projectile/magnetic.dm b/code/modules/projectiles/projectile/magnetic.dm index c79afc76ca..0293ea1383 100644 --- a/code/modules/projectiles/projectile/magnetic.dm +++ b/code/modules/projectiles/projectile/magnetic.dm @@ -162,6 +162,9 @@ irradiate = 20 range = 6 +/obj/item/projectile/bullet/magnetic/bore/get_structure_damage() + return damage * 3 //made for boring holes + /obj/item/projectile/bullet/magnetic/bore/Bump(atom/A, forced=0) if(istype(A, /turf/simulated/mineral)) var/turf/simulated/mineral/MI = A @@ -171,7 +174,6 @@ return 0 else if(istype(A, /turf/simulated/wall) || istype(A, /turf/simulated/shuttle/wall)) // Cause a loud, but relatively minor explosion on the wall it hits. explosion(A, -1, -1, 1, 3) - qdel(src) - return 1 + return ..() else ..() diff --git a/code/modules/radiation/radiation.dm b/code/modules/radiation/radiation.dm index cb701027d8..c467183cb5 100644 --- a/code/modules/radiation/radiation.dm +++ b/code/modules/radiation/radiation.dm @@ -45,7 +45,11 @@ /turf/simulated/wall/calc_rad_resistance() SSradiation.resistance_cache[src] = (length(contents) + 1) - cached_rad_resistance = (density ? (material.weight + material.radiation_resistance) / config.radiation_material_resistance_divisor : 0) + var/temp_rad_resistance + temp_rad_resistance += material.weight + material.radiation_resistance + if(reinf_material) + temp_rad_resistance += reinf_material.weight + reinf_material.radiation_resistance + cached_rad_resistance = (density ? (temp_rad_resistance) / config.radiation_material_resistance_divisor : 0) return /turf/simulated/mineral/calc_rad_resistance() diff --git a/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Food-Drinks_vr.dm b/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Food-Drinks_vr.dm index 0d6957ae1d..d1a165af09 100644 --- a/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Food-Drinks_vr.dm +++ b/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Food-Drinks_vr.dm @@ -78,6 +78,50 @@ glass_name = "Pink Moo" glass_desc = "A very familiar looking drink. ...moo?" +/datum/reagent/ethanol/originalsin + name = "Original Sin" + id = "originalsin" + description = "Angel Ichor, entirely transformed by one drop of apple juice" + taste_description = "the apple Eve gave to Adam" + color = "#99CC35" + strength = 17 + + glass_name = "Original Sin" + glass_desc = "A drink so fine, you may just risk eternal damnation!" + +/datum/reagent/ethanol/newyorksour + name = "New York Sour" + id = "newyorksour" + description = "Whiskey sour, with a layer of wine and egg white." + taste_description = "refreshing lemoned whiskey, smoothed with wine" + color = "#FFBF3C" + strength = 17 + + glass_name = "New York Sour" + glass_desc = "A carefully poured three layered drink" + +/datum/reagent/ethanol/windgarita + name = "WND-Garita" + id = "windgarita" + description = "A highly questionable combination of margarita and Space Mountain Wind" + taste_description = "like sin, and some tequilia" + color = "#90D93D" + strength = 15 + + glass_name = "WND-Garita" + glass_desc = "Who the hell comes up with these drinks?!" + +/datum/reagent/ethanol/mudslide + name = "Mudslide" + id = "mudslide" + description = "Vodka, Kahlua and Irish Cream together at last." + taste_description = "a mocha milkshake, with a splash of vodka." + color = "#8B6338" + strength = 13 + + glass_name = "Mudslide" + glass_desc = "A richly coloured drink, comes with a chocolate garnish!" + /datum/reagent/ethanol/monstertamer/affect_ingest(var/mob/living/carbon/M, var/alien, var/removed) ..() diff --git a/code/modules/reagents/Chemistry-Recipes_vr.dm b/code/modules/reagents/Chemistry-Recipes_vr.dm index bf0e614489..dc4ec6222a 100644 --- a/code/modules/reagents/Chemistry-Recipes_vr.dm +++ b/code/modules/reagents/Chemistry-Recipes_vr.dm @@ -77,7 +77,7 @@ /datum/chemical_reaction/foam/softdrink required_reagents = list("cola" = 1, "mint" = 1) - + /datum/chemical_reaction/firefightingfoam //TODO: Make it so we can add this to the foam tanks to refill them name = "Firefighting Foam" id = "firefighting foam" @@ -85,6 +85,15 @@ required_reagents = list("water" = 1) catalysts = list("fluorine" = 10) result_amount = 1 + +/datum/chemical_reaction/firefightingfoamqol //Please don't abuse this and make us remove it. Seriously. + name = "Firefighting Foam EZ" + id = "firefighting foam ez" + result = "firefoam" + required_reagents = list("water" = 1) + catalysts = list("firefoam" = 5) + inhibitors = list("fluorine" = 0.01) + result_amount = 1 /////////////////////////////////////////////////////////////////////////////////// /// Vore Drugs @@ -290,6 +299,35 @@ required_reagents = list("blackrussian" = 2, "berryshake" = 1) result_amount = 3 +/datum/chemical_reaction/drinks/originalsin + name = "Original Sin" + id = "originalsin" + result = "originalsin" + required_reagents = list("holywine" = 1) + catalysts = list("applejuice" = 1) + result_amount = 1 + +/datum/chemical_reaction/drinks/windgarita + name = "WND-Garita" + id = "windgarita" + result = "windgarita" + required_reagents = list("margarita" = 3, "spacemountainwind" = 2, "melonliquor" = 1) + result_amount = 6 + +/datum/chemical_reaction/drinks/newyorksour + name = "New York Sour" + id = "newyorksour" + result = "newyorksour" + required_reagents = list("whiskeysour" = 3, "wine" = 2, "egg" = 1) + result_amount = 6 + +/datum/chemical_reaction/drinks/mudslide + name = "Mudslide" + id = "mudslide" + result = "mudslide" + required_reagents = list("blackrussian" = 1, "irishcream" = 1) + result_amount = 2 + /////////////////////////////////////////////////////////////////////////////////// /// Reagent colonies. /datum/chemical_reaction/meatcolony diff --git a/code/modules/rogueminer_vr/zonemaster.dm b/code/modules/rogueminer_vr/zonemaster.dm index 2c0839fc95..ffca74bb34 100644 --- a/code/modules/rogueminer_vr/zonemaster.dm +++ b/code/modules/rogueminer_vr/zonemaster.dm @@ -127,6 +127,8 @@ rm_controller.dbg("ZM(pa): The asteroid has [A.map.len] X-lists.") + var/list/changedturfs = list() + for(var/Ix=1, Ix <= A.map.len, Ix++) var/list/curr_x = A.map[Ix] rm_controller.dbg("ZM(pa): Now doing X:[Ix] which has [curr_x.len] Y-lists.") @@ -153,15 +155,17 @@ rm_controller.dbg("ZM(pa): Replacing [P.type] with [T].") var/turf/newturf = P.ChangeTurf(T) + changedturfs += newturf switch(newturf.type) if(/turf/simulated/mineral/vacuum) place_resources(newturf) - newturf.update_icon(1) else //Anything not a turf rm_controller.dbg("ZM(pa): Creating [T].") new T(spot) + for(var/turf/T in changedturfs) + T.update_icon(1) /datum/rogue/zonemaster/proc/place_resources(var/turf/simulated/mineral/M) #define XENOARCH_SPAWN_CHANCE 0.3 diff --git a/code/modules/security levels/keycard authentication.dm b/code/modules/security levels/keycard authentication.dm index 707bd3ccd9..8956e9e3c8 100644 --- a/code/modules/security levels/keycard authentication.dm +++ b/code/modules/security levels/keycard authentication.dm @@ -3,6 +3,7 @@ desc = "This device is used to trigger station functions, which require more than one ID card to authenticate." icon = 'icons/obj/monitors.dmi' icon_state = "auth_off" + layer = ABOVE_WINDOW_LAYER circuit = /obj/item/weapon/circuitboard/keycard_auth var/active = 0 //This gets set to 1 on all devices except the one where the initial request was made. var/event = "" diff --git a/code/modules/tgui/modules/communications.dm b/code/modules/tgui/modules/communications.dm index 1af2a003cc..7166a3db61 100644 --- a/code/modules/tgui/modules/communications.dm +++ b/code/modules/tgui/modules/communications.dm @@ -104,9 +104,10 @@ "line_2" = (stat_msg2 ? stat_msg2 : "-----"), "presets" = list( - list("name" = "blank", "label" = "Clear", "desc" = "Blank slate"), - list("name" = "shuttle", "label" = "Shuttle ETA", "desc" = "Display how much time is left."), - list("name" = "message", "label" = "Message", "desc" = "A custom message.") + list("name" = "blank", "label" = "Clear", "desc" = "Blank slate."), + list("name" = "time", "label" = "Station Time", "desc" = "The current time according to the station's clock."), + list("name" = "shuttle", "label" = "Tram ETA", "desc" = "Display how much time is left."), //VOREStation Edit - Shuttle ETA -> Tram ETA because we use trams + list("name" = "message", "label" = "Message", "desc" = "A custom message.") ), ) @@ -248,7 +249,7 @@ to_chat(usr, "Security measures prevent you from changing the alert level.") return - if(check_access(usr, access_captain)) + if(is_authenticated(usr)) change_security_level(text2num(params["level"])) else to_chat(usr, "You are not authorized to do this.") diff --git a/code/modules/turbolift/turbolift_console_vr.dm b/code/modules/turbolift/turbolift_console_vr.dm new file mode 100644 index 0000000000..a02730c08d --- /dev/null +++ b/code/modules/turbolift/turbolift_console_vr.dm @@ -0,0 +1,7 @@ +// TFF 6/10/20 - Just a little thing to prevent the button + // and console from being destroyed by explosions. +/obj/structure/lift/button/ex_act() + return + +/obj/structure/lift/panel/ex_act() + return \ No newline at end of file diff --git a/code/modules/vchat/vchat_client.dm b/code/modules/vchat/vchat_client.dm index 6890f0ba4c..f5b6613cdf 100644 --- a/code/modules/vchat/vchat_client.dm +++ b/code/modules/vchat/vchat_client.dm @@ -397,22 +397,22 @@ var/to_chat_src to_chat(src, "Error: Your chat log is already being prepared. Please wait until it's been downloaded before trying to export it again.") return - o_file = file(o_file) - // Write the CSS file to the log - o_file << "" + var/text_blob = "" // Write the messages to the log for(var/list/result in results) - o_file << "[result["message"]]
    " + text_blob += "[result["message"]]
    " CHECK_TICK - o_file << "" + text_blob += "" + + rustg_file_write(text_blob, o_file) // Send the log to the client - src << ftp(o_file, "log_[time2text(world.timeofday, "YYYY_MM_DD_(hh_mm)")].html") + src << ftp(file(o_file), "log_[time2text(world.timeofday, "YYYY_MM_DD_(hh_mm)")].html") // clean up the file on our end spawn(10 SECONDS) diff --git a/code/modules/virus2/isolator.dm b/code/modules/virus2/isolator.dm index ff5e6dbcfe..d4053e8e52 100644 --- a/code/modules/virus2/isolator.dm +++ b/code/modules/virus2/isolator.dm @@ -73,7 +73,7 @@ var/mob/living/carbon/human/D = B.data["donor"] pathogen_pool.Add(list(list(\ - "name" = "[D.get_species()] [B.name]", \ + "name" = "[istype(D) ? "[D.get_species()] " : ""][B.name]", \ "dna" = B.data["blood_DNA"], \ "unique_id" = V.uniqueID, \ "reference" = "\ref[V]", \ diff --git a/code/modules/vore/appearance/sprite_accessories_taur_vr.dm b/code/modules/vore/appearance/sprite_accessories_taur_vr.dm index 4257afa1d6..e2c3a86b9d 100644 --- a/code/modules/vore/appearance/sprite_accessories_taur_vr.dm +++ b/code/modules/vore/appearance/sprite_accessories_taur_vr.dm @@ -68,8 +68,13 @@ var/mob/living/carbon/human/H = M if(isTaurTail(H.tail_style)) - to_chat(src,"Too many legs. TOO MANY LEGS!!") - return FALSE + var/datum/sprite_accessory/tail/taur/ridertype = H.tail_style + if(ridertype.can_ride) + if(istype(ridertype, /datum/sprite_accessory/tail/taur/naga) || istype(ridertype, /datum/sprite_accessory/tail/taur/slug)) + to_chat(src,"Too few legs. TOO FEW LEGS!!") + return FALSE + to_chat(src,"Too many legs. TOO MANY LEGS!!") + return FALSE . = ..() if(.) @@ -190,18 +195,18 @@ extra_overlay = "fatwolf_markings" //icon_sprite_tag = "fatwolf2c" -/datum/sprite_accessory/tail/taur/wolf/skunk - name = "Skunk (Taur)" - icon_state = "skunk_s" - extra_overlay = "skunk_markings" - icon_sprite_tag = "skunk" - /datum/sprite_accessory/tail/taur/wolf/synthwolf name = "SynthWolf dual-color (Taur)" icon_state = "synthwolf_s" extra_overlay = "synthwolf_markings" //icon_sprite_tag = "synthwolf" +/datum/sprite_accessory/tail/taur/skunk + name = "Skunk (Taur)" + icon_state = "skunk_s" + extra_overlay = "skunk_markings" + icon_sprite_tag = "skunk" + /datum/sprite_accessory/tail/taur/naga name = "Naga (Taur)" icon_state = "naga_s" diff --git a/code/modules/vore/eating/belly_obj_vr.dm b/code/modules/vore/eating/belly_obj_vr.dm index fab6af6fca..247995a7e3 100644 --- a/code/modules/vore/eating/belly_obj_vr.dm +++ b/code/modules/vore/eating/belly_obj_vr.dm @@ -338,6 +338,8 @@ prey.forceMove(src) owner.updateVRPanel() + if(isanimal(owner)) + owner.update_icon() for(var/mob/living/M in contents) M.updateVRPanel() @@ -506,6 +508,8 @@ //Update owner owner.updateVRPanel() + if(isanimal(owner)) + owner.update_icon() //Digest a single item //Receives a return value from digest_act that's how much nutrition @@ -675,6 +679,8 @@ I.gurgle_contaminate(target.contents, target.contamination_flavor, target.contamination_color) items_preserved -= content owner.updateVRPanel() + if(isanimal(owner)) + owner.update_icon() for(var/mob/living/M in contents) M.updateVRPanel() diff --git a/code/modules/vore/eating/bellymodes_vr.dm b/code/modules/vore/eating/bellymodes_vr.dm index e9b31904f9..d5eaeb4d25 100644 --- a/code/modules/vore/eating/bellymodes_vr.dm +++ b/code/modules/vore/eating/bellymodes_vr.dm @@ -230,4 +230,6 @@ if(M.client) M.updateVRPanel() if(owner.client) - owner.updateVRPanel() \ No newline at end of file + owner.updateVRPanel() + if(isanimal(owner)) + owner.update_icon() \ No newline at end of file diff --git a/code/modules/vore/eating/digest_act_vr.dm b/code/modules/vore/eating/digest_act_vr.dm index df59ffb35d..d5ec12ee85 100644 --- a/code/modules/vore/eating/digest_act_vr.dm +++ b/code/modules/vore/eating/digest_act_vr.dm @@ -28,7 +28,7 @@ if(g_damage > digest_stage) g_damage = digest_stage digest_stage -= g_damage - else + if(digest_stage <= 0) for(var/obj/item/O in contents) if(istype(O,/obj/item/weapon/storage/internal)) //Dump contents from dummy pockets. for(var/obj/item/SO in O) @@ -38,6 +38,8 @@ else if(item_storage) O.forceMove(item_storage) qdel(src) + if(g_damage > w_class) + return w_class return g_damage ///////////// diff --git a/code/modules/vore/eating/vore_vr.dm b/code/modules/vore/eating/vore_vr.dm index 9ca0ddf045..449d8cd336 100644 --- a/code/modules/vore/eating/vore_vr.dm +++ b/code/modules/vore/eating/vore_vr.dm @@ -187,14 +187,8 @@ V::::::V V::::::VO:::::::OOO:::::::ORR:::::R R:::::REE::::::EEEEEE return FALSE //Write it out -#ifdef RUST_G - call(RUST_G, "file_write")(json_to_file, path) -#else - // Fall back to using old format if we are not using rust-g - if(fexists(path)) - fdel(path) //Byond only supports APPENDING to files, not replacing. - text2file(json_to_file, path) -#endif + rustg_file_write(json_to_file, path) + if(!fexists(path)) log_debug("Saving: [path] failed file write") return FALSE diff --git a/code/modules/vore/fluffstuff/custom_items_vr.dm b/code/modules/vore/fluffstuff/custom_items_vr.dm index 483d041297..b2d82a7066 100644 --- a/code/modules/vore/fluffstuff/custom_items_vr.dm +++ b/code/modules/vore/fluffstuff/custom_items_vr.dm @@ -1283,4 +1283,25 @@ overlay_icon = 'icons/obj/modular_laptop.dmi' icon_state_unpowered = "shadowlaptop-open" icon_state = "shadowlaptop-open" - icon_state_closed = "shadowlaptop-closed" \ No newline at end of file + icon_state_closed = "shadowlaptop-closed" + +//Rboys2 - Clara Mali +/obj/item/weapon/reagent_containers/food/drinks/glass2/fluff/claraflask + name = "Clara's Vacuum Flask" + desc = "A rose gold vacuum flask." + base_name = "Clara's Vacuum Flask" + base_icon = "claraflask" + icon = 'icons/vore/custom_items_vr.dmi' + center_of_mass = list("x" = 15,"y" = 4) + filling_states = list(15, 30, 50, 60, 80, 100) + volume = 60 + +/obj/item/weapon/reagent_containers/food/drinks/glass2/fluff/claraflask/Initialize() + . = ..() + reagents.add_reagent("tea", 40) + reagents.add_reagent("milk", 20) + +/obj/item/weapon/reagent_containers/food/drinks/glass2/fluff/claraflask/update_icon() + ..() + name = initial(name) + desc = initial(desc) \ No newline at end of file diff --git a/code/modules/xenoarcheaology/finds/find_spawning.dm b/code/modules/xenoarcheaology/finds/find_spawning.dm index 27fd388c5f..b121724219 100644 --- a/code/modules/xenoarcheaology/finds/find_spawning.dm +++ b/code/modules/xenoarcheaology/finds/find_spawning.dm @@ -551,7 +551,9 @@ var/obj/item/weapon/reagent_containers/syringe/S = new_item S.volume = 30 - S.reagents.maximum_volume = 30 + //If S hasn't initialized yet, S.reagents will be null. + //However, in that case Initialize will set the maximum volume to the volume for us, so we don't need to do anything. + S.reagents?.maximum_volume = 30 item_type = new_item.name diff --git a/code/stylesheet.dm b/code/stylesheet.dm index 504472e334..fdd63290e7 100644 --- a/code/stylesheet.dm +++ b/code/stylesheet.dm @@ -111,6 +111,7 @@ h1.alert, h2.alert {color: #000000;} .say_quote {font-family: Georgia, Verdana, sans-serif;} .terminus {font-family: "Times New Roman", Times, serif, sans-serif} .interface {color: #330033;} +.spacer {color: #9c660b;} .psionic {color: #993399;} /*YWedit*/ BIG IMG.icon {width: 32px; height: 32px;} diff --git a/code/world.dm b/code/world.dm index 1c43ce6132..8e76fd11d7 100644 --- a/code/world.dm +++ b/code/world.dm @@ -5,3 +5,4 @@ area = /area/space view = "15x15" cache_lifespan = 7 + fps = 20 // If this isnt hard-defined, anything relying on this variable before world load will cry a lot diff --git a/config/alienwhitelist.txt b/config/alienwhitelist.txt index fa189b4b0b..3c32be398c 100644 --- a/config/alienwhitelist.txt +++ b/config/alienwhitelist.txt @@ -2,28 +2,32 @@ some~user - Species admiraldragon - Vox aetherelemental - Daemon +alphaprime1 - Protean +amarewolf - Xenochimera arandomalien - Xenochimera arokha - Protean aruis - Diona aruis - Xenochimera -amarewolf - Xenochimera azmodan412 - Xenochimera -alphaprime1 - Protean bothnevarbackwards - Diona bricker98 - Protean -crossexonar - Protean -chillyfang - Black-Eyed Shadekin cgr - Protean +chargae - Protean +chillyfang - Black-Eyed Shadekin +crossexonar - Protean +detectivegoogle - Protean draycu - Vox flaktual - Vox -funnyman2003 - Xenochimera flurriee - Protean +funnyman2003 - Xenochimera hawkerthegreat - Vox hollifex - Diona inuzari - Diona jademanique - Xenochimera -ktccd - Diona khanivore - Protean +killjaden - Protean +ktccd - Diona +magpiemayhem - Vox mewchild - Diona mewchild - Vox mrsebbi - Xenochimera @@ -34,22 +38,25 @@ oreganovulgaris - Xenochimera paradoxspace - Xenochimera pearlprophet - Protean phoenixx0 - Vox +radiantaurora - Protean rapidvalj - Vox rapidvalj - Common Skrellian rapidvalj - High Skrellian rikaru19xjenkins - Xenochimera rixunie - Diona -rykkastormheart - Xenochimera rubyflamewing - Protean -radiantaurora - Protean +rykkastormheart - Xenochimera ryumi - Protean +scoutisafolflol - Xenochimera seiga - Vox sepulchre - Vox +sharplight - Protean silvertalismen - Diona silvertalismen - Vox silvertalismen - Xenochimera +skylarks - Black-Eyed Shadekin +stackerrobot - Protean storesund97 - Protean -sharplight - Protean tastypred - Black-Eyed Shadekin tastypred - Xenochimera tastypred - Protean @@ -64,4 +71,3 @@ xioen - Xenochimera xonkon - Protean zalvine - Shadekin Empathy zammyman215 - Vox -stackerrobot - Protean diff --git a/html/changelogs/Meghan Rossi - borosilicate shard fix.yml b/html/changelogs/Meghan Rossi - borosilicate shard fix.yml new file mode 100644 index 0000000000..491d3380aa --- /dev/null +++ b/html/changelogs/Meghan Rossi - borosilicate shard fix.yml @@ -0,0 +1,4 @@ +author: Meghan-Rossi +delete-after: True +changes: + - bugfix: "Fixed borosilicate glass not producing shards in most situations." \ No newline at end of file diff --git a/html/changelogs/Meghan Rossi - fix infinite ratburgers.yml b/html/changelogs/Meghan Rossi - fix infinite ratburgers.yml new file mode 100644 index 0000000000..5932db7e4c --- /dev/null +++ b/html/changelogs/Meghan Rossi - fix infinite ratburgers.yml @@ -0,0 +1,4 @@ +author: Meghan-Rossi +delete-after: True +changes: + - bugfix: "Cooking a mouse into a mouseburger now uses up the mouse." \ No newline at end of file diff --git a/html/changelogs/Meghan Rossi - isolator fix.yml b/html/changelogs/Meghan Rossi - isolator fix.yml new file mode 100644 index 0000000000..4801a45890 --- /dev/null +++ b/html/changelogs/Meghan Rossi - isolator fix.yml @@ -0,0 +1,4 @@ +author: Meghan-Rossi +delete-after: True +changes: + - bugfix: "Blood from artifacts will no longer break the pathogenic isolator." \ No newline at end of file diff --git a/html/changelogs/Meghan Rossi - poiareas.yml b/html/changelogs/Meghan Rossi - poiareas.yml new file mode 100644 index 0000000000..2b845c8d26 --- /dev/null +++ b/html/changelogs/Meghan Rossi - poiareas.yml @@ -0,0 +1,4 @@ +author: Meghan-Rossi +delete-after: True +changes: + - bugfix: "Fixed some mountain POIs sometimes overlapping in odd ways" \ No newline at end of file diff --git a/html/changelogs/Meghan Rossi - tesla dissipation.yml b/html/changelogs/Meghan Rossi - tesla dissipation.yml new file mode 100644 index 0000000000..2ee721ad9a --- /dev/null +++ b/html/changelogs/Meghan Rossi - tesla dissipation.yml @@ -0,0 +1,4 @@ +author: Meghan-Rossi +delete-after: True +changes: + - tweak: "The tesla energy ball will now eventually disappear if not kept charged with the particle accelerator" \ No newline at end of file diff --git a/html/changelogs/Meghan Rossi - the_teslagen.yml b/html/changelogs/Meghan Rossi - the_teslagen.yml new file mode 100644 index 0000000000..ee59d5663e --- /dev/null +++ b/html/changelogs/Meghan Rossi - the_teslagen.yml @@ -0,0 +1,4 @@ +author: Meghan-Rossi +delete-after: True +changes: + - rscadd: "The Tesla Generator is now available from cargo. Coils and grounding rods for it may be printed on the protolathe and autolathe, respectively." \ No newline at end of file diff --git a/html/changelogs/Meghan Rossi - wall machine layering.yml b/html/changelogs/Meghan Rossi - wall machine layering.yml new file mode 100644 index 0000000000..1e3f903681 --- /dev/null +++ b/html/changelogs/Meghan Rossi - wall machine layering.yml @@ -0,0 +1,4 @@ +author: Meghan-Rossi +delete-after: True +changes: + - bugfix: "If you place wall-mounted machines such as status displays on a window, they will no longer be hidden underneath the window." \ No newline at end of file diff --git a/html/changelogs/Runa Dacino - Exosuit gripper tweak.yml b/html/changelogs/Runa Dacino - Exosuit gripper tweak.yml new file mode 100644 index 0000000000..fc17d241d0 --- /dev/null +++ b/html/changelogs/Runa Dacino - Exosuit gripper tweak.yml @@ -0,0 +1,37 @@ +################################ +# Example Changelog File +# +# Note: This file, and files beginning with ".", and files that don't end in ".yml" will not be read. If you change this file, you will look really dumb. +# +# Your changelog will be merged with a master changelog. (New stuff added only, and only on the date entry for the day it was merged.) +# When it is, any changes listed below will disappear. +# +# Valid Prefixes: +# bugfix +# wip (For works in progress) +# tweak +# soundadd +# sounddel +# rscadd (general adding of nice things) +# rscdel (general deleting of nice things) +# imageadd +# imagedel +# maptweak +# spellcheck (typo fixes) +# experiment +################################# + +# Your name. +author: N3X15 + +# Optional: Remove this file after generating master changelog. Useful for PR changelogs that won't get used again. +delete-after: True + +# Any changes you've made. See valid prefix list above. +# INDENT WITH TWO SPACES. NOT TABS. SPACES. +# SCREW THIS UP AND IT WON'T WORK. +# Also, all entries are changed into a single [] after a master changelog generation. Just remove the brackets when you add new entries. +# Please surround your changes in double quotes ("), as certain characters otherwise screws up compiling. The quotes will not show up in the changelog. +changes: + - rscadd: "Enabled research borgs equipped with 'exosuit gripper' to be able to replace internal exosuit parts like actuators, to upgrade or to repair" + diff --git a/html/changelogs/Woodrat - Vote.yml b/html/changelogs/Woodrat - Vote.yml new file mode 100644 index 0000000000..78317ec750 --- /dev/null +++ b/html/changelogs/Woodrat - Vote.yml @@ -0,0 +1,36 @@ +################################ +# Example Changelog File +# +# Note: This file, and files beginning with ".", and files that don't end in ".yml" will not be read. If you change this file, you will look really dumb. +# +# Your changelog will be merged with a master changelog. (New stuff added only, and only on the date entry for the day it was merged.) +# When it is, any changes listed below will disappear. +# +# Valid Prefixes: +# bugfix +# wip (For works in progress) +# tweak +# soundadd +# sounddel +# rscadd (general adding of nice things) +# rscdel (general deleting of nice things) +# imageadd +# imagedel +# maptweak +# spellcheck (typo fixes) +# experiment +################################# + +# Your name. +author: Woodrat + +# Optional: Remove this file after generating master changelog. Useful for PR changelogs that won't get used again. +delete-after: True + +# Any changes you've made. See valid prefix list above. +# INDENT WITH TWO SPACES. NOT TABS. SPACES. +# SCREW THIS UP AND IT WON'T WORK. +# Also, all entries are changed into a single [] after a master changelog generation. Just remove the brackets when you add new entries. +# Please surround your changes in double quotes ("), as certain characters otherwise screws up compiling. The quotes will not show up in the changelog. +changes: + - tweak: "Changes vote notification sound to that of World Server in order to help people realize there is a vote occurring." diff --git a/html/changelogs/mechoid - butchery.yml b/html/changelogs/mechoid - butchery.yml new file mode 100644 index 0000000000..433bf787e7 --- /dev/null +++ b/html/changelogs/mechoid - butchery.yml @@ -0,0 +1,37 @@ +################################ +# Example Changelog File +# +# Note: This file, and files beginning with ".", and files that don't end in ".yml" will not be read. If you change this file, you will look really dumb. +# +# Your changelog will be merged with a master changelog. (New stuff added only, and only on the date entry for the day it was merged.) +# When it is, any changes listed below will disappear. +# +# Valid Prefixes: +# bugfix +# wip (For works in progress) +# tweak +# soundadd +# sounddel +# rscadd (general adding of nice things) +# rscdel (general deleting of nice things) +# imageadd +# imagedel +# maptweak +# spellcheck (typo fixes) +# experiment +################################# + +# Your name. +author: Mechoid + +# Optional: Remove this file after generating master changelog. Useful for PR changelogs that won't get used again. +delete-after: True + +# Any changes you've made. See valid prefix list above. +# INDENT WITH TWO SPACES. NOT TABS. SPACES. +# SCREW THIS UP AND IT WON'T WORK. +# Also, all entries are changed into a single [] after a master changelog generation. Just remove the brackets when you add new entries. +# Please surround your changes in double quotes ("), as certain characters otherwise screws up compiling. The quotes will not show up in the changelog. +changes: + - rscadd: "Animals can be butchered for organs and hide. Requires scraping (sharp), washing (water or washing machine), and then drying (bonfire or drying rack)." + - rscadd: "Organs can be butchered for meat, named "[organ] meat". Heart meat, liver meat, etc. Brains from player mobs cannot be butchered." diff --git a/icons/effects/lighting_overlay.dmi b/icons/effects/lighting_overlay.dmi index bc3d25204c..80807db1e6 100644 Binary files a/icons/effects/lighting_overlay.dmi and b/icons/effects/lighting_overlay.dmi differ diff --git a/icons/mecha/fighters64x64.dmi b/icons/mecha/fighters64x64.dmi index 7240417552..6025a94c86 100644 Binary files a/icons/mecha/fighters64x64.dmi and b/icons/mecha/fighters64x64.dmi differ diff --git a/icons/mob/feet.dmi b/icons/mob/feet.dmi index 2d26351b98..585b658f99 100644 Binary files a/icons/mob/feet.dmi and b/icons/mob/feet.dmi differ diff --git a/icons/mob/head.dmi b/icons/mob/head.dmi index d2be45594c..69842406d4 100644 Binary files a/icons/mob/head.dmi and b/icons/mob/head.dmi differ diff --git a/icons/mob/human_races/markings.dmi b/icons/mob/human_races/markings.dmi index 46ed122c8f..f9f91da90b 100644 Binary files a/icons/mob/human_races/markings.dmi and b/icons/mob/human_races/markings.dmi differ diff --git a/icons/mob/human_races/markings_vr.dmi b/icons/mob/human_races/markings_vr.dmi index 873d455872..673ba8deb6 100644 Binary files a/icons/mob/human_races/markings_vr.dmi and b/icons/mob/human_races/markings_vr.dmi differ diff --git a/icons/mob/species/seromi/uniform.dmi b/icons/mob/species/seromi/uniform.dmi index 88408e1f58..aab4dcfe06 100644 Binary files a/icons/mob/species/seromi/uniform.dmi and b/icons/mob/species/seromi/uniform.dmi differ diff --git a/icons/mob/taursuits_wolf_vr.dmi b/icons/mob/taursuits_wolf_vr.dmi index 0f638ea6d3..140e6de426 100644 Binary files a/icons/mob/taursuits_wolf_vr.dmi and b/icons/mob/taursuits_wolf_vr.dmi differ diff --git a/icons/mob/uniform_1.dmi b/icons/mob/uniform_1.dmi index 20749c8afc..27a67cb2ca 100644 Binary files a/icons/mob/uniform_1.dmi and b/icons/mob/uniform_1.dmi differ diff --git a/icons/mob/vore_lamia.dmi b/icons/mob/vore_lamia.dmi new file mode 100644 index 0000000000..d062b473fc Binary files /dev/null and b/icons/mob/vore_lamia.dmi differ diff --git a/icons/mob/widerobot_vr.dmi b/icons/mob/widerobot_vr.dmi index 33381425cd..620a150254 100644 Binary files a/icons/mob/widerobot_vr.dmi and b/icons/mob/widerobot_vr.dmi differ diff --git a/icons/obj/butchery.dmi b/icons/obj/butchery.dmi new file mode 100644 index 0000000000..eef08d1aa7 Binary files /dev/null and b/icons/obj/butchery.dmi differ diff --git a/icons/obj/closets/bases/wall_double.dmi b/icons/obj/closets/bases/wall_double.dmi new file mode 100644 index 0000000000..e6b1a39271 Binary files /dev/null and b/icons/obj/closets/bases/wall_double.dmi differ diff --git a/icons/obj/closets/decals/large_crate.dmi b/icons/obj/closets/decals/large_crate.dmi index 2a9ff64380..4ced8d4f28 100644 Binary files a/icons/obj/closets/decals/large_crate.dmi and b/icons/obj/closets/decals/large_crate.dmi differ diff --git a/icons/obj/closets/decals/wall.dmi b/icons/obj/closets/decals/wall.dmi index 8d34c97d1a..8e5edd8148 100644 Binary files a/icons/obj/closets/decals/wall.dmi and b/icons/obj/closets/decals/wall.dmi differ diff --git a/icons/obj/closets/decals/wall_double.dmi b/icons/obj/closets/decals/wall_double.dmi new file mode 100644 index 0000000000..3649cd44ec Binary files /dev/null and b/icons/obj/closets/decals/wall_double.dmi differ diff --git a/icons/obj/clothing/hats.dmi b/icons/obj/clothing/hats.dmi index 6f8f14c6a2..8be6774832 100644 Binary files a/icons/obj/clothing/hats.dmi and b/icons/obj/clothing/hats.dmi differ diff --git a/icons/obj/clothing/uniforms.dmi b/icons/obj/clothing/uniforms.dmi index 7b397d3ead..473b6614e6 100644 Binary files a/icons/obj/clothing/uniforms.dmi and b/icons/obj/clothing/uniforms.dmi differ diff --git a/icons/obj/clothing/uniforms_1.dmi b/icons/obj/clothing/uniforms_1.dmi index 32a55ec9c2..eba7fa299f 100644 Binary files a/icons/obj/clothing/uniforms_1.dmi and b/icons/obj/clothing/uniforms_1.dmi differ diff --git a/icons/obj/drinks_vr.dmi b/icons/obj/drinks_vr.dmi index 0f383a823f..280bf84cbd 100644 Binary files a/icons/obj/drinks_vr.dmi and b/icons/obj/drinks_vr.dmi differ diff --git a/icons/obj/flora/amayastuff.dmi b/icons/obj/flora/amayastuff.dmi new file mode 100644 index 0000000000..ed5196cd86 Binary files /dev/null and b/icons/obj/flora/amayastuff.dmi differ diff --git a/icons/obj/flora/sifflora.dmi b/icons/obj/flora/sifflora.dmi index 654ca02db9..ae29d4c0f4 100644 Binary files a/icons/obj/flora/sifflora.dmi and b/icons/obj/flora/sifflora.dmi differ diff --git a/icons/obj/food_ingredients.dmi b/icons/obj/food_ingredients.dmi index 0dd553ec94..4795180c2f 100644 Binary files a/icons/obj/food_ingredients.dmi and b/icons/obj/food_ingredients.dmi differ diff --git a/icons/obj/food_syn.dmi b/icons/obj/food_syn.dmi index 1104d4ddbf..f186b53089 100644 Binary files a/icons/obj/food_syn.dmi and b/icons/obj/food_syn.dmi differ diff --git a/icons/obj/toy.dmi b/icons/obj/toy.dmi index 21b649006c..33f220896e 100644 Binary files a/icons/obj/toy.dmi and b/icons/obj/toy.dmi differ diff --git a/icons/obj/weapons.dmi b/icons/obj/weapons.dmi index 24e8f9f541..dae925d5d9 100644 Binary files a/icons/obj/weapons.dmi and b/icons/obj/weapons.dmi differ diff --git a/icons/turf/areas.dmi b/icons/turf/areas.dmi index 72a49c07c7..b83b49c93a 100644 Binary files a/icons/turf/areas.dmi and b/icons/turf/areas.dmi differ diff --git a/icons/turf/areas_vr_talon.dmi b/icons/turf/areas_vr_talon.dmi new file mode 100644 index 0000000000..0878adbfea Binary files /dev/null and b/icons/turf/areas_vr_talon.dmi differ diff --git a/icons/vore/custom_items_vr.dmi b/icons/vore/custom_items_vr.dmi index 4b4f56ebc3..4856d6c311 100644 Binary files a/icons/vore/custom_items_vr.dmi and b/icons/vore/custom_items_vr.dmi differ diff --git a/interface/skin.dmf b/interface/skin.dmf index 4c9af52e3b..2d2c42800d 100644 --- a/interface/skin.dmf +++ b/interface/skin.dmf @@ -53,6 +53,18 @@ macro "borghotkeymode" elem name = "SOUTH+REP" command = ".movedown" + elem + name = "CTRL+SHIFT+NORTH" + command = "shiftnorth" + elem + name = "CTRL+SHIFT+SOUTH" + command = "shiftsouth" + elem + name = "CTRL+SHIFT+WEST" + command = "shiftwest" + elem + name = "CTRL+SHIFT+EAST" + command = "shifteast" elem name = "INSERT" command = "a-intent right" @@ -274,6 +286,18 @@ macro "macro" elem name = "SOUTH+REP" command = ".movedown" + elem + name = "CTRL+SHIFT+NORTH" + command = "shiftnorth" + elem + name = "CTRL+SHIFT+SOUTH" + command = "shiftsouth" + elem + name = "CTRL+SHIFT+WEST" + command = "shiftwest" + elem + name = "CTRL+SHIFT+EAST" + command = "shifteast" elem name = "INSERT" command = "a-intent right" @@ -441,6 +465,18 @@ macro "hotkeymode" elem name = "SOUTH+REP" command = ".movedown" + elem + name = "CTRL+SHIFT+NORTH" + command = "shiftnorth" + elem + name = "CTRL+SHIFT+SOUTH" + command = "shiftsouth" + elem + name = "CTRL+SHIFT+WEST" + command = "shiftwest" + elem + name = "CTRL+SHIFT+EAST" + command = "shifteast" elem name = "INSERT" command = "a-intent right" @@ -680,6 +716,18 @@ macro "borgmacro" elem name = "SOUTH+REP" command = ".movedown" + elem + name = "CTRL+SHIFT+NORTH" + command = "shiftnorth" + elem + name = "CTRL+SHIFT+SOUTH" + command = "shiftsouth" + elem + name = "CTRL+SHIFT+WEST" + command = "shiftwest" + elem + name = "CTRL+SHIFT+EAST" + command = "shifteast" elem name = "INSERT" command = "a-intent right" @@ -1225,6 +1273,7 @@ window "mapwindow" saved-params = "icon-size" 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; } .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;} .kidan {color: #664205;} .slime {color: #0077AA;} .drask {color: #a3d4eb;} .vulpkanin {color: #B97A57;} .abductor {color: #800080; font-style: italic;} .his_grace { color: #15D512; } .hypnophrase { color: #0d0d0d; font-weight: bold; } .yell { font-weight: bold; }" window "outputwindow" elem "outputwindow" diff --git a/librust_g.so b/librust_g.so new file mode 100644 index 0000000000..3247fb19af Binary files /dev/null and b/librust_g.so differ diff --git a/maps/expedition_vr/space/_debrisfield.dm b/maps/expedition_vr/space/_debrisfield.dm index 7b06a3bfcc..e8ffd87a0b 100644 --- a/maps/expedition_vr/space/_debrisfield.dm +++ b/maps/expedition_vr/space/_debrisfield.dm @@ -50,28 +50,167 @@ icon = 'icons/turf/areas_vr.dmi' icon_state = "dark" -/area/tether_away/debrisfield/explored +/area/tether_away/debrisfield/shuttle_buffer //For space around shuttle landmarks to keep submaps from generating to block them icon_state = "debrisexplored" + name = "\improper Space" + requires_power = 1 + always_unpowered = 1 + dynamic_lighting = 0 + has_gravity = 0 + power_light = 0 + power_equip = 0 + power_environ = 0 + ambience = AMBIENCE_SPACE + flags = AREA_FLAG_IS_NOT_PERSISTENT -/area/tether_away/debrisfield/unexplored +/area/submap/debrisfield + icon = 'icons/turf/areas_vr.dmi' icon_state = "debrisunexplored" -/area/tether_away/debrisfield/derelict +/area/submap/debrisfield/derelict icon_state = "debrisexplored" forced_ambience = list('sound/ambience/tension/tension.ogg', 'sound/ambience/tension/horror.ogg') //TFF 26/12/19 - Sub-areas for the APCs. -/area/tether_away/debrisfield/derelict/ai_access_port + +/area/submap/debrisfield/derelict/ai_access_port name = "POI - Abandoned Derelict AI Acess Port" -/area/tether_away/debrisfield/derelict/ai_access_starboard +/area/submap/debrisfield/derelict/ai_access_starboard name = "POI - Abandoned Derelict AI Access Starboard" -/area/tether_away/debrisfield/derelict/ai_chamber +/area/submap/debrisfield/derelict/ai_chamber name = "POI - Abandoned Derelict AI Chamber" -/area/tether_away/debrisfield/derelict/bridge +/area/submap/debrisfield/derelict/bridge name = "POI - Abandoned Derelict Bridge" -/area/tether_away/debrisfield/derelict/interior - name = "POI - Abandoned Derelict Interior" \ No newline at end of file +/area/submap/debrisfield/derelict/interior + name = "POI - Abandoned Derelict Interior" + +/area/submap/debrisfield/foodstand + name = "POI - Foodstand" + +/area/submap/debrisfield/sci_overrun + name = "POI - Overrun Science Ship" + requires_power = 0 + +/area/submap/debrisfield/old_sat + name = "POI - Old Satellite" + +/area/submap/debrisfield/old_tele + name = "POI - Old Teleporter" + +/area/submap/debrisfield/mining_drone_ship + name = "POI - Disabled Mining Drone" + requires_power = 0 + +/area/submap/debrisfield/mining_outpost + name = "POI - Destroyed Mining Outpost" + +/area/submap/debrisfield/tinyshuttle + secret_name = 0 + +/area/submap/debrisfield/tinyshuttle/crew + name = "Crew Bay" + +/area/submap/debrisfield/tinyshuttle/bridge + name = "Bridge" + +/area/submap/debrisfield/tinyshuttle/hangar + name = "Hangar" + has_gravity = 0 + +/area/submap/debrisfield/tinyshuttle/engine + name = "Systems Bay" + +/datum/shuttle/autodock/overmap/tinycarrier + name = "Debris Carrier" + warmup_time = 0 + current_location = "debris_field_carrier_start" + docking_controller_tag = "debris_carrier_docker" + shuttle_area = list(/area/submap/debrisfield/tinyshuttle/crew, /area/submap/debrisfield/tinyshuttle/bridge, /area/submap/debrisfield/tinyshuttle/hangar, /area/submap/debrisfield/tinyshuttle/engine) + fuel_consumption = 3 + defer_initialisation = TRUE + move_direction = WEST + +/obj/effect/shuttle_landmark/shuttle_initializer/tinycarrier + name = "Debris Field" + base_area = /area/space + base_turf = /turf/space + landmark_tag = "debris_field_carrier_start" + shuttle_type = /datum/shuttle/autodock/overmap/tinycarrier + +/obj/effect/shuttle_landmark/shuttle_initializer/tinycarrier/Initialize() + var/obj/effect/overmap/visitable/O = get_overmap_sector(get_z(src)) //make this into general system some other time + LAZYINITLIST(O.initial_restricted_waypoints) + O.initial_restricted_waypoints["Debris Carrier"] = list(landmark_tag) + . = ..() + +/obj/effect/overmap/visitable/ship/landable/tinycarrier + scanner_name = "TBD" + scanner_desc = "TBD" + vessel_mass = 12000 + vessel_size = SHIP_SIZE_SMALL + shuttle = "Debris Carrier" + +/obj/effect/overmap/visitable/ship/landable/tinycarrier/Initialize() + . = ..() + var/datum/lore/organization/O = loremaster.organizations[/datum/lore/organization/other/sysdef] + var/newname = "SDV [pick(O.ship_names)]" + scanner_name = newname + scanner_desc = {"\[i\]Registration\[/i\]: [newname] +\[i\]Class\[/i\]: Light Escort Carrier +\[i\]Transponder\[/i\]: Transmitting (MIL), Weak Signal +\[b\]Notice\[/b\]: Registration Expired"} + rename_areas(newname) + +/obj/effect/overmap/visitable/ship/landable/tinycarrier/proc/rename_areas(newname) + if(!SSshuttles.subsystem_initialized) + spawn(300) + rename_areas(newname) + return + var/datum/shuttle/S = SSshuttles.shuttles[shuttle] + for(var/area/A in S.shuttle_area) + A.name = "[newname] [initial(A.name)]" + if(A.apc) + A.apc.name = "[A.name] APC" + A.air_vent_names = list() + A.air_scrub_names = list() + A.air_vent_info = list() + A.air_scrub_info = list() + for(var/obj/machinery/alarm/AA in A) + AA.name = "[A.name] Air Alarm" + +/obj/machinery/computer/shuttle_control/explore/tinycarrier + shuttle_tag = "Debris Carrier" + req_one_access = list() + +/obj/mecha/combat/fighter/baron/loaded/busted + starting_components = list(/obj/item/mecha_parts/component/hull/lightweight,/obj/item/mecha_parts/component/actuator/hispeed,/obj/item/mecha_parts/component/armor,/obj/item/mecha_parts/component/gas,/obj/item/mecha_parts/component/electrical/high_current) + +/obj/mecha/combat/fighter/baron/loaded/busted/Initialize() + . = ..() + health = round(rand(50,120)) + cell?.charge = 0 + for(var/slot in internal_components) + var/obj/item/mecha_parts/component/comp = internal_components[slot] + if(!istype(comp)) + continue + comp.adjust_integrity(-(round(rand(comp.max_integrity - 10, 0)))) + + setInternalDamage(MECHA_INT_SHORT_CIRCUIT) + +/obj/structure/fuel_port/empty_tank/Initialize() + . = ..() + var/obj/item/weapon/tank/phoron/T = locate() in src + if(T) + T.air_contents.remove(T.air_contents.total_moles) + +/area/submap/debrisfield/misc_debris //for random bits of debris that should use dynamic lights + requires_power = 1 + always_unpowered = 1 + has_gravity = 0 + power_light = 0 + power_equip = 0 + power_environ = 0 diff --git a/maps/expedition_vr/space/_fueldepot.dm b/maps/expedition_vr/space/_fueldepot.dm index 4ec3236dd0..1f3241aee7 100644 --- a/maps/expedition_vr/space/_fueldepot.dm +++ b/maps/expedition_vr/space/_fueldepot.dm @@ -35,4 +35,10 @@ /turf/simulated/floor/tiled/techmaint/airless oxygen = 0 nitrogen = 0 - temperature = TCMB \ No newline at end of file + temperature = TCMB + +/obj/machinery/atmospherics/pipe/tank/phoron/full + start_pressure = 15000 + +/obj/machinery/atmospherics/pipe/tank/air/full + start_pressure = 15000 diff --git a/maps/expedition_vr/space/debrisfield.dmm b/maps/expedition_vr/space/debrisfield.dmm index fd72f30720..55d00b93ec 100644 --- a/maps/expedition_vr/space/debrisfield.dmm +++ b/maps/expedition_vr/space/debrisfield.dmm @@ -1,35 +1,32 @@ //MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE "a" = ( -/turf/space, -/area/tether_away/debrisfield/unexplored) -"b" = ( -/turf/space, -/area/tether_away/debrisfield/explored) -"c" = ( /obj/effect/overmap/visitable/sector/debrisfield, /turf/space, -/area/tether_away/debrisfield/explored) -"h" = ( -/turf/space, /area/space) -"N" = ( +"b" = ( /obj/effect/shuttle_landmark{ - base_area = /area/tether_away/debrisfield/explored; + base_area = /area/tether_away/debrisfield/shuttle_buffer; base_turf = /turf/space; landmark_tag = "debrisfield_nw"; name = "North West" }, /turf/space, -/area/tether_away/debrisfield/explored) -"Z" = ( +/area/tether_away/debrisfield/shuttle_buffer) +"c" = ( /obj/effect/shuttle_landmark{ - base_area = /area/tether_away/debrisfield/explored; + base_area = /area/tether_away/debrisfield/shuttle_buffer; base_turf = /turf/space; landmark_tag = "debrisfield_se"; name = "South East" }, /turf/space, -/area/tether_away/debrisfield/explored) +/area/tether_away/debrisfield/shuttle_buffer) +"d" = ( +/turf/space, +/area/tether_away/debrisfield/shuttle_buffer) +"h" = ( +/turf/space, +/area/space) (1,1,1) = {" h @@ -175,19598 +172,19598 @@ h "} (2,1,1) = {" h -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -c +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +a h "} (3,1,1) = {" h -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h h "} (4,1,1) = {" h -b -b -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -b -b +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h h "} (5,1,1) = {" h -b -b -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -b -b +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h h "} (6,1,1) = {" h -b -b -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -b -b +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h h "} (7,1,1) = {" h -b -b -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -b -b +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h h "} (8,1,1) = {" h -b -b -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -b -b +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h h "} (9,1,1) = {" h -b -b -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -b -b +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h h "} (10,1,1) = {" h -b -b -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -b -b +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h h "} (11,1,1) = {" h -b -b -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -b -b +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h h "} (12,1,1) = {" h -b -b -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -b -b +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h h "} (13,1,1) = {" h -b -b -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -b -b +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h h "} (14,1,1) = {" h -b -b -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -b -b +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h h "} (15,1,1) = {" h -b -b -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -b -b +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h h "} (16,1,1) = {" h -b -b -a -a -a -a -a -a -a -a -a -a -a -a -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -b -b +h +h +h +h +h +h +h +h +h +h +h +h +h +h +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h h "} (17,1,1) = {" h -b -b -a -a -a -a -a -a -a -a -a -a -a -a -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -b -b +h +h +h +h +h +h +h +h +h +h +h +h +h +h +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h h "} (18,1,1) = {" h -b -b -a -a -a -a -a -a -a -a -a -a -a -a -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -b -b +h +h +h +h +h +h +h +h +h +h +h +h +h +h +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h h "} (19,1,1) = {" h -b -b -a -a -a -a -a -a -a -a -a -a -a -a -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -b -b +h +h +h +h +h +h +h +h +h +h +h +h +h +h +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h h "} (20,1,1) = {" h -b -b -a -a -a -a -a -a -a -a -a -a -a -a -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -b -b +h +h +h +h +h +h +h +h +h +h +h +h +h +h +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h h "} (21,1,1) = {" h -b -b -a -a -a -a -a -a -a -a -a -a -a -a -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -b -b +h +h +h +h +h +h +h +h +h +h +h +h +h +h +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h h "} (22,1,1) = {" h -b -b -a -a -a -a -a -a -a -a -a -a -a -a -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -b -b +h +h +h +h +h +h +h +h +h +h +h +h +h +h +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h h "} (23,1,1) = {" h -b -b -a -a -a -a -a -a -a -a -a -a -a -a -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -b -b +h +h +h +h +h +h +h +h +h +h +h +h +h +h +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h h "} (24,1,1) = {" h -b -b -a -a -a -a -a -a -a -a -a -a -a -a -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -b -b +h +h +h +h +h +h +h +h +h +h +h +h +h +h +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h h "} (25,1,1) = {" h -b -b -a -a -a -a -a -a -a -a -a -a -a -a -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -b -b +h +h +h +h +h +h +h +h +h +h +h +h +h +h +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h h "} (26,1,1) = {" h -b -b -a -a -a -a -a -a -a -a -a -a -a -a -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -b -b +h +h +h +h +h +h +h +h +h +h +h +h +h +h +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h h "} (27,1,1) = {" h -b -b -a -a -a -a -a -a -a -a -a -a -a -a -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -b -b +h +h +h +h +h +h +h +h +h +h +h +h +h +h +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h h "} (28,1,1) = {" h -b -b -a -a -a -a -a -a -a -a -a -a -a -a -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -b -b +h +h +h +h +h +h +h +h +h +h +h +h +h +h +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h h "} (29,1,1) = {" h -b -b -a -a -a -a -a -a -a -a -a -a -a -a -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -b -b +h +h +h +h +h +h +h +h +h +h +h +h +h +h +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h h "} (30,1,1) = {" h -b -b -a -a -a -a -a -a -a -a -a -a -a -a -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -b -b +h +h +h +h +h +h +h +h +h +h +h +h +h +h +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h h "} (31,1,1) = {" h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d b -b -a -a -a -a -a -a -a -a -a -a -a -a -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -N -b -b -b -b -b -b -b -b -b -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -b -b +d +d +d +d +d +d +d +d +d +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h h "} (32,1,1) = {" h -b -b -a -a -a -a -a -a -a -a -a -a -a -a -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -b -b +h +h +h +h +h +h +h +h +h +h +h +h +h +h +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h h "} (33,1,1) = {" h -b -b -a -a -a -a -a -a -a -a -a -a -a -a -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -b -b +h +h +h +h +h +h +h +h +h +h +h +h +h +h +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h h "} (34,1,1) = {" h -b -b -a -a -a -a -a -a -a -a -a -a -a -a -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -b -b +h +h +h +h +h +h +h +h +h +h +h +h +h +h +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h h "} (35,1,1) = {" h -b -b -a -a -a -a -a -a -a -a -a -a -a -a -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -b -b +h +h +h +h +h +h +h +h +h +h +h +h +h +h +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h h "} (36,1,1) = {" h -b -b -a -a -a -a -a -a -a -a -a -a -a -a -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -b -b +h +h +h +h +h +h +h +h +h +h +h +h +h +h +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h h "} (37,1,1) = {" h -b -b -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -b -b +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h h "} (38,1,1) = {" h -b -b -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -b -b +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h h "} (39,1,1) = {" h -b -b -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -b -b +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h h "} (40,1,1) = {" h -b -b -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -b -b +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h h "} (41,1,1) = {" h -b -b -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -b -b +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h h "} (42,1,1) = {" h -b -b -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -b -b +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h h "} (43,1,1) = {" h -b -b -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -b -b +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h h "} (44,1,1) = {" h -b -b -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -b -b +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h h "} (45,1,1) = {" h -b -b -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -b -b +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h h "} (46,1,1) = {" h -b -b -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -b -b +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h h "} (47,1,1) = {" h -b -b -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -b -b +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h h "} (48,1,1) = {" h -b -b -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -b -b +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h h "} (49,1,1) = {" h -b -b -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -b -b +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h h "} (50,1,1) = {" h -b -b -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -b -b +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h h "} (51,1,1) = {" h -b -b -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -b -b +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h h "} (52,1,1) = {" h -b -b -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -b -b +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h h "} (53,1,1) = {" h -b -b -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -b -b +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h h "} (54,1,1) = {" h -b -b -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -b -b +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h h "} (55,1,1) = {" h -b -b -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -b -b +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h h "} (56,1,1) = {" h -b -b -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -b -b +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h h "} (57,1,1) = {" h -b -b -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -b -b +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h h "} (58,1,1) = {" h -b -b -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -b -b +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h h "} (59,1,1) = {" h -b -b -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -b -b +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h h "} (60,1,1) = {" h -b -b -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -b -b +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h h "} (61,1,1) = {" h -b -b -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -b -b +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h h "} (62,1,1) = {" h -b -b -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -b -b +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h h "} (63,1,1) = {" h -b -b -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -b -b +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h h "} (64,1,1) = {" h -b -b -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -b -b +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h h "} (65,1,1) = {" h -b -b -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -b -b +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h h "} (66,1,1) = {" h -b -b -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -b -b +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h h "} (67,1,1) = {" h -b -b -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -b -b +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h h "} (68,1,1) = {" h -b -b -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -b -b +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h h "} (69,1,1) = {" h -b -b -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -b -b +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h h "} (70,1,1) = {" h -b -b -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -b -b +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h h "} (71,1,1) = {" h -b -b -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -b -b +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h h "} (72,1,1) = {" h -b -b -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -b -b +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h h "} (73,1,1) = {" h -b -b -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -b -b +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h h "} (74,1,1) = {" h -b -b -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -b -b +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h h "} (75,1,1) = {" h -b -b -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -b -b +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h h "} (76,1,1) = {" h -b -b -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -b -b +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h h "} (77,1,1) = {" h -b -b -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -b -b +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h h "} (78,1,1) = {" h -b -b -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -b -b +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h h "} (79,1,1) = {" h -b -b -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -b -b +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h h "} (80,1,1) = {" h -b -b -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -b -b +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h h "} (81,1,1) = {" h -b -b -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -b -b +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h h "} (82,1,1) = {" h -b -b -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -b -b +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h h "} (83,1,1) = {" h -b -b -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -b -b +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h h "} (84,1,1) = {" h -b -b -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -b -b +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h h "} (85,1,1) = {" h -b -b -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -b -b +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h h "} (86,1,1) = {" h -b -b -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -b -b +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h h "} (87,1,1) = {" h -b -b -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -b -b +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h h "} (88,1,1) = {" h -b -b -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -b -b +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h h "} (89,1,1) = {" h -b -b -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -b -b +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h h "} (90,1,1) = {" h -b -b -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -b -b +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h h "} (91,1,1) = {" h -b -b -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -b -b +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h h "} (92,1,1) = {" h -b -b -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -b -b +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h h "} (93,1,1) = {" h -b -b -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -b -b +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h h "} (94,1,1) = {" h -b -b -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -b -b +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h h "} (95,1,1) = {" h -b -b -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -b -b +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h h "} (96,1,1) = {" h -b -b -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -b -b +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h h "} (97,1,1) = {" h -b -b -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -b -b +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h h "} (98,1,1) = {" h -b -b -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -b -b +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h h "} (99,1,1) = {" h -b -b -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -b -b +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h h "} (100,1,1) = {" h -b -b -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -b -b +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h h "} (101,1,1) = {" h -b -b -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -b -b +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h h "} (102,1,1) = {" h -b -b -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -b -b +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h h "} (103,1,1) = {" h -b -b -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -b -b +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h h "} (104,1,1) = {" h -b -b -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -b -b +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h h "} (105,1,1) = {" h -b -b -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -b -b +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h h "} (106,1,1) = {" h -b -b -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -b -b +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h h "} (107,1,1) = {" h -b -b -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -b -b +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h h "} (108,1,1) = {" h -b -b -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -b -b +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h h "} (109,1,1) = {" h -b -b -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -b -b +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h h "} (110,1,1) = {" h -b -b -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -a -a -a -a -b -b +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +h +h +h +h +h +h h "} (111,1,1) = {" h -b -b -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -a -a -a -a -b -b +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +h +h +h +h +h +h h "} (112,1,1) = {" h -b -b -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -a -a -a -a -b -b +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +h +h +h +h +h +h h "} (113,1,1) = {" h -b -b -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -a -a -a -a -b -b +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +h +h +h +h +h +h h "} (114,1,1) = {" h -b -b -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -a -a -a -a -b -b +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +h +h +h +h +h +h h "} (115,1,1) = {" h -b -b -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -a -a -a -a -b -b +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +h +h +h +h +h +h h "} (116,1,1) = {" h -b -b -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -a -a -a -a -b -b +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +h +h +h +h +h +h h "} (117,1,1) = {" h -b -b -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -a -a -a -a -b -b +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +h +h +h +h +h +h h "} (118,1,1) = {" h -b -b -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -a -a -a -a -b -b +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +h +h +h +h +h +h h "} (119,1,1) = {" h -b -b -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -a -a -a -a -b -b +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +h +h +h +h +h +h h "} (120,1,1) = {" h -b -b -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -a -a -a -a -b -b +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +h +h +h +h +h +h h "} (121,1,1) = {" h -b -b -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -a -a -a -a -b -b +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +h +h +h +h +h +h h "} (122,1,1) = {" h -b -b -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -a -a -a -a -b -b +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +h +h +h +h +h +h h "} (123,1,1) = {" h -b -b -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -a -a -a -a -b -b +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +h +h +h +h +h +h h "} (124,1,1) = {" h -b -b -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -a -a -a -a -b -b +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +h +h +h +h +h +h h "} (125,1,1) = {" h -b -b -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -Z -b -b -b -b -b -b -b -b -b -a -a -a -a -b -b +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +c +d +d +d +d +d +d +d +d +d +h +h +h +h +h +h h "} (126,1,1) = {" h -b -b -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -a -a -a -a -b -b +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +h +h +h +h +h +h h "} (127,1,1) = {" h -b -b -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -a -a -a -a -b -b +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +h +h +h +h +h +h h "} (128,1,1) = {" h -b -b -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -a -a -a -a -b -b +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +h +h +h +h +h +h h "} (129,1,1) = {" h -b -b -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -a -a -a -a -b -b +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +h +h +h +h +h +h h "} (130,1,1) = {" h -b -b -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -a -a -a -a -b -b +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +h +h +h +h +h +h h "} (131,1,1) = {" h -b -b -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -b -b +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h h "} (132,1,1) = {" h -b -b -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -b -b +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h h "} (133,1,1) = {" h -b -b -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -b -b +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h h "} (134,1,1) = {" h -b -b -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -b -b +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h h "} (135,1,1) = {" h -b -b -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -b -b +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h h "} (136,1,1) = {" h -b -b -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -b -b +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h h "} (137,1,1) = {" h -b -b -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -b -b +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h h "} (138,1,1) = {" h -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h h "} (139,1,1) = {" h -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h h "} (140,1,1) = {" diff --git a/maps/expedition_vr/space/fueldepot.dmm b/maps/expedition_vr/space/fueldepot.dmm index 86e6cee6c0..381d051574 100644 --- a/maps/expedition_vr/space/fueldepot.dmm +++ b/maps/expedition_vr/space/fueldepot.dmm @@ -644,7 +644,7 @@ /turf/simulated/shuttle/plating/airless, /area/tether_away/fueldepot) "bo" = ( -/obj/machinery/atmospherics/pipe/tank/phoron, +/obj/machinery/atmospherics/pipe/tank/phoron/full, /obj/effect/floor_decal/industrial/outline/red, /turf/simulated/floor/tiled/techmaint/airless, /area/tether_away/fueldepot) @@ -1124,7 +1124,7 @@ /turf/simulated/shuttle/plating/airless, /area/tether_away/fueldepot) "cn" = ( -/obj/machinery/atmospherics/pipe/tank/air{ +/obj/machinery/atmospherics/pipe/tank/air/full{ icon_state = "air_map"; dir = 1 }, diff --git a/maps/offmap_vr/om_ships/gecko_cr.dmm b/maps/offmap_vr/om_ships/gecko_cr.dmm index 5d2dab7401..3bc59b8e4f 100644 --- a/maps/offmap_vr/om_ships/gecko_cr.dmm +++ b/maps/offmap_vr/om_ships/gecko_cr.dmm @@ -63,7 +63,9 @@ /turf/simulated/floor/plating, /area/shuttle/gecko_cr_engineering) "bJ" = ( -/obj/machinery/door/airlock/hatch, +/obj/machinery/door/airlock/hatch{ + req_one_access = list() + }, /obj/machinery/atmospherics/pipe/simple/hidden/supply, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /obj/machinery/door/firedoor/glass, @@ -177,8 +179,10 @@ opacity = 0 }, /obj/machinery/door/firedoor/glass, -/obj/machinery/door/airlock/hatch, /obj/structure/catwalk, +/obj/machinery/door/airlock/hatch{ + req_one_access = list() + }, /turf/simulated/floor/plating, /area/shuttle/gecko_cr_engineering) "eD" = ( @@ -499,12 +503,14 @@ /turf/simulated/floor/plating, /area/shuttle/gecko_cr_cockpit) "kU" = ( -/obj/machinery/door/airlock/hatch, /obj/machinery/door/firedoor/glass, /obj/machinery/atmospherics/pipe/simple/hidden/fuel{ dir = 4 }, /obj/structure/catwalk, +/obj/machinery/door/airlock/hatch{ + req_one_access = list() + }, /turf/simulated/floor/plating, /area/shuttle/gecko_cr_engineering) "lg" = ( @@ -814,7 +820,6 @@ /turf/simulated/floor/tiled/techmaint, /area/shuttle/gecko_cr_cockpit) "qh" = ( -/obj/machinery/door/airlock/hatch, /obj/machinery/door/blast/regular{ density = 0; dir = 4; @@ -824,6 +829,9 @@ opacity = 0 }, /obj/machinery/door/firedoor/glass, +/obj/machinery/door/airlock/hatch{ + req_one_access = list() + }, /turf/simulated/floor/tiled/techmaint, /area/shuttle/gecko_cr) "qx" = ( @@ -1401,8 +1409,10 @@ /turf/simulated/floor/plating, /area/shuttle/gecko_cr) "Br" = ( -/obj/machinery/door/airlock/hatch, /obj/machinery/door/firedoor/glass, +/obj/machinery/door/airlock/hatch{ + req_one_access = list() + }, /turf/simulated/floor/plating, /area/shuttle/gecko_cr_cockpit) "BH" = ( @@ -1480,6 +1490,15 @@ }, /turf/simulated/floor/plating, /area/shuttle/gecko_cr_engineering) +"Cs" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/machinery/door/firedoor/glass, +/obj/machinery/door/airlock/hatch{ + req_one_access = list() + }, +/turf/simulated/floor/tiled/techmaint, +/area/shuttle/gecko_cr_cockpit) "Ct" = ( /obj/effect/floor_decal/industrial/warning/corner, /obj/machinery/airlock_sensor{ @@ -1901,7 +1920,9 @@ /turf/simulated/floor/tiled/techmaint, /area/shuttle/gecko_cr_cockpit) "JE" = ( -/obj/machinery/computer/ship/helm, +/obj/machinery/computer/ship/helm{ + req_one_access = list() + }, /turf/simulated/floor/tiled/techfloor, /area/shuttle/gecko_cr_cockpit) "JL" = ( @@ -1962,7 +1983,6 @@ /turf/simulated/floor/tiled/techfloor, /area/shuttle/gecko_cr_cockpit) "KA" = ( -/obj/machinery/door/airlock/hatch, /obj/machinery/atmospherics/pipe/simple/hidden/supply, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /obj/machinery/door/firedoor/glass, @@ -1971,6 +1991,9 @@ d2 = 2; icon_state = "1-2" }, +/obj/machinery/door/airlock/hatch{ + req_one_access = list() + }, /turf/simulated/floor/tiled/techmaint, /area/shuttle/gecko_cr_cockpit) "KS" = ( @@ -2223,7 +2246,6 @@ /turf/simulated/floor/tiled/techmaint, /area/shuttle/gecko_cr_cockpit) "OJ" = ( -/obj/machinery/door/airlock/hatch, /obj/machinery/door/firedoor/glass, /obj/machinery/door/blast/regular{ density = 0; @@ -2233,6 +2255,9 @@ name = "Blast Shields"; opacity = 0 }, +/obj/machinery/door/airlock/hatch{ + req_one_access = list() + }, /turf/simulated/floor/plating, /area/shuttle/gecko_cr) "ON" = ( @@ -2459,7 +2484,6 @@ /turf/simulated/floor/plating, /area/shuttle/gecko_cr) "RB" = ( -/obj/machinery/door/airlock/hatch, /obj/machinery/atmospherics/pipe/simple/hidden/supply, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /obj/structure/cable{ @@ -2476,6 +2500,9 @@ opacity = 0 }, /obj/machinery/door/firedoor/glass, +/obj/machinery/door/airlock/hatch{ + req_one_access = list() + }, /turf/simulated/floor/tiled/techmaint, /area/shuttle/gecko_cr) "RG" = ( @@ -2848,7 +2875,6 @@ /turf/simulated/floor/tiled/techfloor, /area/shuttle/gecko_cr_engineering) "Xs" = ( -/obj/machinery/door/airlock/hatch, /obj/machinery/door/firedoor/glass, /obj/machinery/door/blast/regular{ density = 0; @@ -2858,6 +2884,9 @@ name = "Blast Shields"; opacity = 0 }, +/obj/machinery/door/airlock/hatch{ + req_one_access = list() + }, /turf/simulated/floor/tiled/techfloor, /area/shuttle/gecko_cr_engineering) "XJ" = ( @@ -3432,7 +3461,7 @@ Mf zE Gs fe -bJ +Cs dS jT kI @@ -3690,7 +3719,7 @@ HJ Iz XU mY -bJ +Cs Ct NE Jn diff --git a/maps/offmap_vr/om_ships/gecko_cr_wreck.dmm b/maps/offmap_vr/om_ships/gecko_cr_wreck.dmm index 1e1616251f..d2b574efa3 100644 --- a/maps/offmap_vr/om_ships/gecko_cr_wreck.dmm +++ b/maps/offmap_vr/om_ships/gecko_cr_wreck.dmm @@ -66,10 +66,12 @@ /turf/simulated/floor/airless, /area/shuttle/gecko_cr_engineering_wreck) "bJ" = ( -/obj/machinery/door/airlock/hatch, /obj/machinery/atmospherics/pipe/simple/hidden/supply, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /obj/machinery/door/firedoor/glass, +/obj/machinery/door/airlock/hatch{ + req_one_access = list() + }, /turf/simulated/floor/tiled/techmaint, /area/shuttle/gecko_cr_cockpit_wreck) "bL" = ( @@ -477,7 +479,7 @@ icon_state = "door_open"; opacity = 0 }, -/turf/simulated/floor/tiled/techmaint, +/turf/simulated/floor/airless, /area/shuttle/gecko_cr_cockpit_wreck) "kn" = ( /obj/effect/floor_decal/industrial/warning{ @@ -838,13 +840,15 @@ /turf/simulated/floor/tiled/techmaint, /area/shuttle/gecko_cr_cockpit_wreck) "qh" = ( -/obj/machinery/door/airlock/hatch, /obj/machinery/door/blast/regular{ dir = 4; id = "gecko_wreck_cr_blast"; name = "Blast Shields" }, /obj/machinery/door/firedoor/glass, +/obj/machinery/door/airlock/hatch{ + req_one_access = list() + }, /turf/simulated/floor/tiled/techmaint, /area/shuttle/gecko_cr_wreck) "qx" = ( @@ -1352,8 +1356,10 @@ /turf/simulated/floor/airless, /area/shuttle/gecko_cr_wreck) "Br" = ( -/obj/machinery/door/airlock/hatch, /obj/machinery/door/firedoor/glass, +/obj/machinery/door/airlock/hatch{ + req_one_access = list() + }, /turf/simulated/floor/plating, /area/shuttle/gecko_cr_cockpit_wreck) "BC" = ( @@ -1818,7 +1824,9 @@ /turf/simulated/floor/tiled/techmaint, /area/shuttle/gecko_cr_cockpit_wreck) "JE" = ( -/obj/machinery/computer/ship/helm, +/obj/machinery/computer/ship/helm{ + req_one_access = list() + }, /turf/simulated/floor/tiled/techfloor, /area/shuttle/gecko_cr_cockpit_wreck) "JL" = ( @@ -1879,7 +1887,6 @@ }, /area/shuttle/gecko_cr_cockpit_wreck) "KA" = ( -/obj/machinery/door/airlock/hatch, /obj/machinery/atmospherics/pipe/simple/hidden/supply, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /obj/machinery/door/firedoor/glass, @@ -1888,6 +1895,9 @@ d2 = 2; icon_state = "1-2" }, +/obj/machinery/door/airlock/hatch{ + req_one_access = list() + }, /turf/simulated/floor/tiled/techmaint, /area/shuttle/gecko_cr_cockpit_wreck) "KS" = ( @@ -2044,12 +2054,14 @@ /turf/simulated/floor/tiled/techmaint, /area/shuttle/gecko_cr_cockpit_wreck) "NG" = ( -/obj/machinery/door/airlock/hatch, /obj/machinery/door/firedoor/glass, /obj/machinery/atmospherics/pipe/simple/hidden/fuel{ dir = 4 }, /obj/structure/catwalk, +/obj/machinery/door/airlock/hatch{ + req_one_access = list() + }, /turf/simulated/floor/airless, /area/shuttle/gecko_cr_engineering_wreck) "NI" = ( @@ -2232,13 +2244,15 @@ /turf/simulated/floor/reinforced/airless, /area/shuttle/gecko_cr_wreck) "Pv" = ( -/obj/machinery/door/airlock/hatch, /obj/machinery/door/firedoor/glass, /obj/machinery/door/blast/regular{ dir = 4; id = "gecko_wreck_cr_blast"; name = "Blast Shields" }, +/obj/machinery/door/airlock/hatch{ + req_one_access = list() + }, /turf/simulated/floor/plating, /area/shuttle/gecko_cr_wreck) "Px" = ( @@ -2410,7 +2424,6 @@ /turf/simulated/floor/airless, /area/shuttle/gecko_cr_wreck) "RB" = ( -/obj/machinery/door/airlock/hatch, /obj/machinery/atmospherics/pipe/simple/hidden/supply, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /obj/structure/cable{ @@ -2424,6 +2437,9 @@ name = "Blast Shields" }, /obj/machinery/door/firedoor/glass, +/obj/machinery/door/airlock/hatch{ + req_one_access = list() + }, /turf/simulated/floor/tiled/techfloor{ nitrogen = 0; oxygen = 0 @@ -2797,8 +2813,10 @@ }, /area/shuttle/gecko_cr_engineering_wreck) "Xs" = ( -/obj/machinery/door/airlock/hatch, /obj/machinery/door/firedoor/glass, +/obj/machinery/door/airlock/hatch{ + req_one_access = list() + }, /turf/simulated/floor/tiled/techfloor{ nitrogen = 0; oxygen = 0 @@ -2891,7 +2909,7 @@ opacity = 0 }, /obj/structure/grille/broken, -/turf/simulated/floor/plating, +/turf/simulated/floor/airless, /area/shuttle/gecko_cr_cockpit_wreck) "Zb" = ( /obj/machinery/atmospherics/pipe/simple/hidden/fuel{ @@ -2951,8 +2969,10 @@ name = "Blast Shields" }, /obj/machinery/door/firedoor/glass, -/obj/machinery/door/airlock/hatch, /obj/structure/catwalk, +/obj/machinery/door/airlock/hatch{ + req_one_access = list() + }, /turf/simulated/floor/airless, /area/shuttle/gecko_cr_engineering_wreck) "Zs" = ( diff --git a/maps/offmap_vr/om_ships/gecko_sh.dmm b/maps/offmap_vr/om_ships/gecko_sh.dmm index c50673fe9a..c2a0dbec4e 100644 --- a/maps/offmap_vr/om_ships/gecko_sh.dmm +++ b/maps/offmap_vr/om_ships/gecko_sh.dmm @@ -237,8 +237,10 @@ opacity = 0 }, /obj/machinery/door/firedoor/glass, -/obj/machinery/door/airlock/hatch, /obj/structure/catwalk, +/obj/machinery/door/airlock/hatch{ + req_one_access = list() + }, /turf/simulated/floor/plating, /area/shuttle/gecko_sh_engineering) "ec" = ( @@ -289,10 +291,12 @@ /turf/simulated/floor/tiled/techmaint, /area/shuttle/gecko_sh_cockpit) "eP" = ( -/obj/machinery/door/airlock/hatch, /obj/machinery/atmospherics/pipe/simple/hidden/supply, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /obj/machinery/door/firedoor/glass, +/obj/machinery/door/airlock/hatch{ + req_one_access = list() + }, /turf/simulated/floor/tiled/techmaint, /area/shuttle/gecko_sh) "fe" = ( @@ -500,7 +504,6 @@ /turf/simulated/floor/tiled/techmaint, /area/shuttle/gecko_sh) "kJ" = ( -/obj/machinery/door/airlock/hatch, /obj/machinery/door/firedoor/glass, /obj/machinery/atmospherics/pipe/simple/hidden/fuel{ dir = 4 @@ -513,15 +516,20 @@ opacity = 0 }, /obj/structure/catwalk, +/obj/machinery/door/airlock/hatch{ + req_one_access = list() + }, /turf/simulated/floor/plating, /area/shuttle/gecko_sh_engineering) "kU" = ( -/obj/machinery/door/airlock/hatch, /obj/machinery/door/firedoor/glass, /obj/machinery/atmospherics/pipe/simple/hidden/fuel{ dir = 4 }, /obj/structure/catwalk, +/obj/machinery/door/airlock/hatch{ + req_one_access = list() + }, /turf/simulated/floor/plating, /area/shuttle/gecko_sh_engineering) "lh" = ( @@ -738,8 +746,10 @@ /turf/simulated/wall/rshull, /area/shuttle/gecko_sh) "qh" = ( -/obj/machinery/door/airlock/hatch, /obj/machinery/door/firedoor/glass, +/obj/machinery/door/airlock/hatch{ + req_one_access = list() + }, /turf/simulated/floor/tiled/techmaint, /area/shuttle/gecko_sh) "qx" = ( @@ -860,7 +870,6 @@ /turf/simulated/floor/tiled/techfloor, /area/shuttle/gecko_sh) "rY" = ( -/obj/machinery/door/airlock/hatch, /obj/machinery/door/firedoor/glass, /obj/machinery/door/blast/regular{ density = 0; @@ -870,6 +879,9 @@ opacity = 0 }, /obj/machinery/door/firedoor/glass, +/obj/machinery/door/airlock/hatch{ + req_one_access = list() + }, /turf/simulated/floor/plating, /area/shuttle/gecko_sh) "sB" = ( @@ -897,7 +909,6 @@ /turf/simulated/floor/plating, /area/shuttle/gecko_sh_engineering) "sS" = ( -/obj/machinery/door/airlock/hatch, /obj/machinery/door/blast/regular{ density = 0; dir = 4; @@ -907,6 +918,9 @@ opacity = 0 }, /obj/machinery/door/firedoor/glass, +/obj/machinery/door/airlock/hatch{ + req_one_access = list() + }, /turf/simulated/floor/plating, /area/shuttle/gecko_sh) "te" = ( @@ -925,7 +939,6 @@ /turf/simulated/floor/plating, /area/shuttle/gecko_sh) "tM" = ( -/obj/machinery/door/airlock/hatch, /obj/machinery/door/blast/regular{ density = 0; dir = 4; @@ -935,6 +948,9 @@ opacity = 0 }, /obj/machinery/door/firedoor/glass, +/obj/machinery/door/airlock/hatch{ + req_one_access = list() + }, /turf/simulated/floor/plating, /area/shuttle/gecko_sh_engineering) "tP" = ( @@ -1079,7 +1095,6 @@ /turf/simulated/floor/tiled/techfloor, /area/shuttle/gecko_sh) "xc" = ( -/obj/machinery/door/airlock/hatch, /obj/machinery/atmospherics/pipe/simple/hidden/supply, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /obj/machinery/door/firedoor/glass, @@ -1088,6 +1103,9 @@ d2 = 2; icon_state = "1-2" }, +/obj/machinery/door/airlock/hatch{ + req_one_access = list() + }, /turf/simulated/floor/tiled/techmaint, /area/shuttle/gecko_sh) "xd" = ( @@ -1307,7 +1325,6 @@ /turf/simulated/floor/tiled/techfloor, /area/shuttle/gecko_sh) "Br" = ( -/obj/machinery/door/airlock/hatch, /obj/machinery/door/firedoor/glass, /obj/machinery/door/blast/regular{ density = 0; @@ -1316,6 +1333,9 @@ name = "Blast Shields"; opacity = 0 }, +/obj/machinery/door/airlock/hatch{ + req_one_access = list() + }, /turf/simulated/floor/plating, /area/shuttle/gecko_sh) "Bz" = ( @@ -1811,7 +1831,9 @@ /turf/simulated/floor/tiled/techmaint, /area/shuttle/gecko_sh) "JE" = ( -/obj/machinery/computer/ship/helm, +/obj/machinery/computer/ship/helm{ + req_one_access = list() + }, /turf/simulated/floor/tiled/techfloor, /area/shuttle/gecko_sh_cockpit) "Kn" = ( @@ -1856,10 +1878,12 @@ /turf/simulated/floor/plating, /area/shuttle/gecko_sh_engineering) "Lc" = ( -/obj/machinery/door/airlock/hatch, /obj/machinery/atmospherics/pipe/simple/hidden/supply, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /obj/machinery/door/firedoor/glass, +/obj/machinery/door/airlock/hatch{ + req_one_access = list() + }, /turf/simulated/floor/tiled/techmaint, /area/shuttle/gecko_sh_cockpit) "Lf" = ( @@ -2257,7 +2281,6 @@ /turf/simulated/floor/tiled/techmaint, /area/shuttle/gecko_sh) "RB" = ( -/obj/machinery/door/airlock/hatch, /obj/machinery/atmospherics/pipe/simple/hidden/supply, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /obj/structure/cable{ @@ -2266,6 +2289,9 @@ icon_state = "1-2" }, /obj/machinery/door/firedoor/glass, +/obj/machinery/door/airlock/hatch{ + req_one_access = list() + }, /turf/simulated/floor/tiled/techmaint, /area/shuttle/gecko_sh_engineering) "RG" = ( @@ -2560,7 +2586,6 @@ /turf/simulated/floor/tiled/techfloor, /area/shuttle/gecko_sh_engineering) "Xs" = ( -/obj/machinery/door/airlock/hatch, /obj/machinery/door/firedoor/glass, /obj/machinery/door/blast/regular{ density = 0; @@ -2570,6 +2595,9 @@ name = "Blast Shields"; opacity = 0 }, +/obj/machinery/door/airlock/hatch{ + req_one_access = list() + }, /turf/simulated/floor/tiled/techfloor, /area/shuttle/gecko_sh_engineering) "XJ" = ( diff --git a/maps/offmap_vr/om_ships/mackerel_hc.dmm b/maps/offmap_vr/om_ships/mackerel_hc.dmm index 63ff651cda..2bc1ccf030 100644 --- a/maps/offmap_vr/om_ships/mackerel_hc.dmm +++ b/maps/offmap_vr/om_ships/mackerel_hc.dmm @@ -63,7 +63,9 @@ /turf/simulated/floor/tiled/techfloor, /area/shuttle/mackerel_hc) "cv" = ( -/obj/machinery/computer/ship/helm, +/obj/machinery/computer/ship/helm{ + req_one_access = list() + }, /turf/simulated/floor/tiled/techmaint, /area/shuttle/mackerel_hc) "cD" = ( @@ -300,7 +302,10 @@ /turf/simulated/floor/tiled/techfloor, /area/shuttle/mackerel_hc) "uR" = ( -/obj/machinery/door/airlock/hatch, +/obj/machinery/door/airlock/hatch{ + req_one_access = list() + }, +/obj/machinery/door/firedoor/glass, /turf/simulated/floor/tiled/techmaint, /area/shuttle/mackerel_hc) "we" = ( @@ -371,13 +376,15 @@ /turf/simulated/floor/plating, /area/shuttle/mackerel_hc) "BN" = ( -/obj/machinery/door/airlock/hatch, /obj/machinery/door/firedoor/glass, /obj/structure/cable{ d1 = 1; d2 = 2; icon_state = "1-2" }, +/obj/machinery/door/airlock/hatch{ + req_one_access = list() + }, /turf/simulated/floor/tiled/techmaint, /area/shuttle/mackerel_hc) "BP" = ( diff --git a/maps/offmap_vr/om_ships/mackerel_hc_skel.dmm b/maps/offmap_vr/om_ships/mackerel_hc_skel.dmm index 83a9170b7a..0fd66f642e 100644 --- a/maps/offmap_vr/om_ships/mackerel_hc_skel.dmm +++ b/maps/offmap_vr/om_ships/mackerel_hc_skel.dmm @@ -69,7 +69,9 @@ /turf/simulated/floor/plating, /area/shuttle/mackerel_hc_skel_eng) "cv" = ( -/obj/machinery/computer/ship/helm, +/obj/machinery/computer/ship/helm{ + req_one_access = list() + }, /turf/simulated/floor/tiled/techmaint, /area/shuttle/mackerel_hc_skel_cockpit) "cD" = ( @@ -411,7 +413,6 @@ /turf/simulated/floor/plating, /area/shuttle/mackerel_hc_skel) "uR" = ( -/obj/machinery/door/airlock/hatch, /obj/structure/cable{ d1 = 1; d2 = 2; @@ -428,6 +429,9 @@ d2 = 8; icon_state = "2-8" }, +/obj/machinery/door/airlock/hatch{ + req_one_access = list() + }, /turf/simulated/floor/tiled/techmaint, /area/shuttle/mackerel_hc_skel_cockpit) "we" = ( @@ -503,13 +507,15 @@ /turf/simulated/floor/plating, /area/shuttle/mackerel_hc_skel) "BN" = ( -/obj/machinery/door/airlock/hatch, /obj/machinery/door/firedoor/glass, /obj/structure/cable{ d1 = 1; d2 = 2; icon_state = "1-2" }, +/obj/machinery/door/airlock/hatch{ + req_one_access = list() + }, /turf/simulated/floor/tiled/techmaint, /area/shuttle/mackerel_hc_skel_eng) "BP" = ( diff --git a/maps/offmap_vr/om_ships/mackerel_lc.dmm b/maps/offmap_vr/om_ships/mackerel_lc.dmm index b1d65389bb..03d853964d 100644 --- a/maps/offmap_vr/om_ships/mackerel_lc.dmm +++ b/maps/offmap_vr/om_ships/mackerel_lc.dmm @@ -22,7 +22,9 @@ /turf/simulated/floor/plating, /area/shuttle/mackerel_lc) "bw" = ( -/obj/machinery/computer/ship/helm, +/obj/machinery/computer/ship/helm{ + req_one_access = list() + }, /turf/simulated/floor/tiled/techmaint, /area/shuttle/mackerel_lc) "bI" = ( @@ -43,13 +45,15 @@ /turf/simulated/floor/tiled/techmaint, /area/shuttle/mackerel_lc) "cg" = ( -/obj/machinery/door/airlock/hatch, /obj/machinery/door/firedoor/glass, /obj/structure/cable{ d1 = 1; d2 = 2; icon_state = "1-2" }, +/obj/machinery/door/airlock/hatch{ + req_one_access = list() + }, /turf/simulated/floor/tiled/techmaint, /area/shuttle/mackerel_lc) "cv" = ( @@ -314,7 +318,10 @@ /turf/simulated/floor/tiled/techfloor, /area/shuttle/mackerel_lc) "ug" = ( -/obj/machinery/door/airlock/hatch, +/obj/machinery/door/firedoor/glass, +/obj/machinery/door/airlock/hatch{ + req_one_access = list() + }, /turf/simulated/floor/tiled/techmaint, /area/shuttle/mackerel_lc) "um" = ( diff --git a/maps/offmap_vr/om_ships/mackerel_lc_wreck.dmm b/maps/offmap_vr/om_ships/mackerel_lc_wreck.dmm index fa1ccb1128..418b6a416a 100644 --- a/maps/offmap_vr/om_ships/mackerel_lc_wreck.dmm +++ b/maps/offmap_vr/om_ships/mackerel_lc_wreck.dmm @@ -26,7 +26,9 @@ /turf/simulated/floor/airless, /area/shuttle/mackerel_lc_wreck) "bw" = ( -/obj/machinery/computer/ship/helm, +/obj/machinery/computer/ship/helm{ + req_one_access = list() + }, /turf/simulated/floor/tiled/techmaint/airless, /area/shuttle/mackerel_lc_wreck) "bI" = ( @@ -54,13 +56,15 @@ /turf/simulated/floor/airless, /area/shuttle/mackerel_lc_wreck) "cg" = ( -/obj/machinery/door/airlock/hatch, /obj/machinery/door/firedoor/glass, /obj/structure/cable{ d1 = 1; d2 = 2; icon_state = "1-2" }, +/obj/machinery/door/airlock/hatch{ + req_one_access = list() + }, /turf/simulated/floor/tiled/techmaint, /area/shuttle/mackerel_lc_wreck) "cv" = ( @@ -329,8 +333,10 @@ /turf/simulated/floor/tiled/techfloor, /area/shuttle/mackerel_lc_wreck) "ug" = ( -/obj/machinery/door/airlock/hatch, /obj/machinery/door/firedoor/glass, +/obj/machinery/door/airlock/hatch{ + req_one_access = list() + }, /turf/simulated/floor/tiled/techmaint, /area/shuttle/mackerel_lc_wreck) "um" = ( diff --git a/maps/offmap_vr/om_ships/mackerel_sh.dmm b/maps/offmap_vr/om_ships/mackerel_sh.dmm index de0c58a95c..7511ece7da 100644 --- a/maps/offmap_vr/om_ships/mackerel_sh.dmm +++ b/maps/offmap_vr/om_ships/mackerel_sh.dmm @@ -22,7 +22,9 @@ /turf/simulated/floor/plating, /area/shuttle/mackerel_sh) "bw" = ( -/obj/machinery/computer/ship/helm, +/obj/machinery/computer/ship/helm{ + req_one_access = list() + }, /turf/simulated/floor/tiled/techmaint, /area/shuttle/mackerel_sh) "bI" = ( @@ -43,13 +45,15 @@ /turf/simulated/floor/tiled/techmaint, /area/shuttle/mackerel_sh) "cg" = ( -/obj/machinery/door/airlock/hatch, /obj/machinery/door/firedoor/glass, /obj/structure/cable{ d1 = 1; d2 = 2; icon_state = "1-2" }, +/obj/machinery/door/airlock/hatch{ + req_one_access = list() + }, /turf/simulated/floor/tiled/techmaint, /area/shuttle/mackerel_sh) "cv" = ( @@ -324,7 +328,10 @@ /turf/simulated/floor/tiled/techfloor, /area/shuttle/mackerel_sh) "ug" = ( -/obj/machinery/door/airlock/hatch, +/obj/machinery/door/airlock/hatch{ + req_one_access = list() + }, +/obj/machinery/door/firedoor/glass, /turf/simulated/floor/tiled/techmaint, /area/shuttle/mackerel_sh) "um" = ( diff --git a/maps/offmap_vr/om_ships/salamander.dm b/maps/offmap_vr/om_ships/salamander.dm new file mode 100644 index 0000000000..8dbd5d53c3 --- /dev/null +++ b/maps/offmap_vr/om_ships/salamander.dm @@ -0,0 +1,211 @@ +// Compile in the map for CI testing if we're testing compileability of all the maps +#if MAP_TEST +#include "salamander.dmm" +#endif + +// Map template for spawning the shuttle +/datum/map_template/om_ships/salamander + name = "OM Ship - Salamander Corvette" + desc = "A medium multirole spacecraft." + mappath = 'salamander.dmm' + annihilate = TRUE + +// Map template for spawning the shuttle +/datum/map_template/om_ships/salamander_wreck + name = "OM Ship - Salamander Corvette Wreckage" + desc = "A medium multirole spacecraft, or at least what's left of it." + mappath = 'salamander_wreck.dmm' + annihilate = TRUE + +// The shuttle's area(s) +/area/shuttle/salamander + name = "\improper Salamander Cabin" + icon = 'icons/turf/areas_vr_talon.dmi' + icon_state = "gray" + requires_power = 1 + has_gravity = 0 + +/area/shuttle/salamander_engineering + name = "\improper Salamander Engineering" + icon = 'icons/turf/areas_vr_talon.dmi' + icon_state = "yellow" + requires_power = 1 + has_gravity = 0 + +/area/shuttle/salamander_cockpit + name = "\improper Salamander Cockpit" + icon = 'icons/turf/areas_vr_talon.dmi' + icon_state = "blue" + requires_power = 1 + has_gravity = 0 + +/area/shuttle/salamander_q1 + name = "\improper Salamander Quarters 1" + icon = 'icons/turf/areas_vr_talon.dmi' + icon_state = "gray-p" + requires_power = 1 + has_gravity = 0 + +/area/shuttle/salamander_q2 + name = "\improper Salamander Quarters 2" + icon = 'icons/turf/areas_vr_talon.dmi' + icon_state = "gray-p" + requires_power = 1 + has_gravity = 0 + +/area/shuttle/salamander_galley + name = "\improper Salamander Galley" + icon = 'icons/turf/areas_vr_talon.dmi' + icon_state = "dark-s" + requires_power = 1 + has_gravity = 0 + +/area/shuttle/salamander_head + name = "\improper Salamander Head" + icon = 'icons/turf/areas_vr_talon.dmi' + icon_state = "dark-p" + requires_power = 1 + has_gravity = 0 + +/area/shuttle/salamander_wreck + name = "\improper Wrecked Salamander Cabin" + icon = 'icons/turf/areas_vr_talon.dmi' + icon_state = "gray" + requires_power = 1 + has_gravity = 0 + +/area/shuttle/salamander_wreck_engineering + name = "\improper Wrecked Salamander Engineering" + icon = 'icons/turf/areas_vr_talon.dmi' + icon_state = "yellow" + requires_power = 1 + has_gravity = 0 + +/area/shuttle/salamander_wreck_cockpit + name = "\improper Wrecked Salamander Cockpit" + icon = 'icons/turf/areas_vr_talon.dmi' + icon_state = "blue" + requires_power = 1 + has_gravity = 0 + +/area/shuttle/salamander_wreck_q1 + name = "\improper Wrecked Salamander Quarters 1" + icon = 'icons/turf/areas_vr_talon.dmi' + icon_state = "gray-p" + requires_power = 1 + has_gravity = 0 + +/area/shuttle/salamander_wreck_q2 + name = "\improper Wrecked Salamander Quarters 2" + icon = 'icons/turf/areas_vr_talon.dmi' + icon_state = "gray-p" + requires_power = 1 + has_gravity = 0 + +/area/shuttle/salamander_wreck_galley + name = "\improper Wrecked Salamander Galley" + icon = 'icons/turf/areas_vr_talon.dmi' + icon_state = "dark-s" + requires_power = 1 + has_gravity = 0 + +/area/shuttle/salamander_wreck_head + name = "\improper Wrecked Salamander Head" + icon = 'icons/turf/areas_vr_talon.dmi' + icon_state = "dark-p" + requires_power = 1 + has_gravity = 0 + +// The shuttle's 'shuttle' computer +/obj/machinery/computer/shuttle_control/explore/salamander + name = "short jump console" + shuttle_tag = "Salamander" + req_one_access = list() + +// The shuttle's 'shuttle' computer +/obj/machinery/computer/shuttle_control/explore/salamander_wreck + name = "short jump console" + shuttle_tag = "Salamander Wreckage" + req_one_access = list() + +// The 'shuttle' +/datum/shuttle/autodock/overmap/salamander + name = "Salamander" + current_location = "omship_spawn_salamander" + docking_controller_tag = "salamander_docking" + shuttle_area = list(/area/shuttle/salamander,/area/shuttle/salamander_cockpit,/area/shuttle/salamander_engineering,/area/shuttle/salamander_q1,/area/shuttle/salamander_q2,/area/shuttle/salamander_galley,/area/shuttle/salamander_head) + defer_initialisation = TRUE //We're not loaded until an admin does it + fuel_consumption = 5 + ceiling_type = /turf/simulated/floor/reinforced/airless + +// A shuttle lateloader landmark +/obj/effect/shuttle_landmark/shuttle_initializer/salamander + name = "ITV Salamander" + base_area = /area/space + base_turf = /turf/space + landmark_tag = "omship_spawn_salamander" + shuttle_type = /datum/shuttle/autodock/overmap/salamander + +// The 'ship' +/obj/effect/overmap/visitable/ship/landable/salamander + scanner_name = "Salamander-class Corvette" + scanner_desc = @{"[i]Registration[/i]: ITV Independence +[i]Class[/i]: Corvette +[i]Transponder[/i]: Transmitting (CIV), non-hostile +[b]Notice[/b]: Multirole independent vessel"} + color = "#00AA00" //green, because money + vessel_mass = 4500 + vessel_size = SHIP_SIZE_LARGE + fore_dir = EAST + shuttle = "Salamander" + +// The 'shuttle' +/datum/shuttle/autodock/overmap/salamander_wreck + name = "Salamander Wreckage" + current_location = "omship_spawn_salamander_wreck" + docking_controller_tag = "salamander_docking_wreck" + shuttle_area = list(/area/shuttle/salamander_wreck,/area/shuttle/salamander_wreck_cockpit,/area/shuttle/salamander_wreck_engineering,/area/shuttle/salamander_wreck_q1,/area/shuttle/salamander_wreck_q2,/area/shuttle/salamander_wreck_galley,/area/shuttle/salamander_wreck_head) + defer_initialisation = TRUE //We're not loaded until an admin does it + fuel_consumption = 5 + ceiling_type = /turf/simulated/floor/reinforced/airless + +// A shuttle lateloader landmark +/obj/effect/shuttle_landmark/shuttle_initializer/salamander_wreck + name = "ITV Unity" + base_area = /area/space + base_turf = /turf/space + landmark_tag = "omship_spawn_salamander_wreck" + shuttle_type = /datum/shuttle/autodock/overmap/salamander_wreck + +// The 'ship' +/obj/effect/overmap/visitable/ship/landable/salamander_wreck + scanner_name = "Wrecked Salamander-class Corvette" + scanner_desc = @{"[i]Registration[/i]: ITV Unity +[i]Class[/i]: Corvette +[i]Transponder[/i]: Not Transmitting +[b]Notice[/b]: Damage to hull is consistent with intentional scuttling procedures, no distress call logged"} + color = "#008800" //green, because money + vessel_mass = 4500 + vessel_size = SHIP_SIZE_LARGE + fore_dir = EAST + shuttle = "Salamander Wreckage" + +/obj/item/weapon/paper/unity_notice + name = "hastily-scrawled missive" + info = {"The writing on this scrap of paper is barely legible. Whoever wrote it was clearly in a hurry.
    \ +
    \ +to who(m)ever finds this,
    \ +whatever they tell (told?) you, this kinda job is never worth the pay
    \ +i swear they packed some bullshit amongst the rest of the cargo when we werent looking
    \ +like they wanted us to get caught by port authorities or something!
    \ +so we are bailing on the whole contract, captains orders
    \ +dont bother looking for that 'bullshit' i mentioned, we made sure nobody is gonna find it
    \ +sent it out into the black
    \ +or maybe the sun
    \ +one of the two
    \ +
    \ +stay safe out there and always double check who you sign with
    \ +
    \ +rest of the cargo is covered by insurance anyway, so help yourself/ves i guess
    \ +
    \ +-M"} \ No newline at end of file diff --git a/maps/offmap_vr/om_ships/salamander.dmm b/maps/offmap_vr/om_ships/salamander.dmm new file mode 100644 index 0000000000..933058d6c6 --- /dev/null +++ b/maps/offmap_vr/om_ships/salamander.dmm @@ -0,0 +1,2638 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"ab" = ( +/obj/machinery/door/airlock/glass_external/public, +/obj/effect/map_helper/airlock/door/ext_door, +/obj/machinery/atmospherics/pipe/simple/hidden/fuel, +/turf/simulated/floor/tiled/techmaint, +/area/shuttle/salamander) +"aK" = ( +/obj/machinery/door/airlock/glass_external/public, +/obj/effect/map_helper/airlock/door/ext_door, +/obj/effect/map_helper/airlock/sensor/ext_sensor, +/obj/machinery/airlock_sensor/airlock_exterior/shuttle{ + dir = 1; + pixel_x = 24; + pixel_y = 11 + }, +/turf/simulated/floor/tiled/techmaint, +/area/shuttle/salamander) +"aL" = ( +/obj/effect/shuttle_landmark/shuttle_initializer/salamander, +/obj/effect/overmap/visitable/ship/landable/salamander, +/obj/machinery/atmospherics/pipe/simple/hidden{ + dir = 6 + }, +/obj/machinery/embedded_controller/radio/airlock/docking_port_multi{ + dir = 4; + id_tag = "salamander_docking_port"; + name = "Port Airlock Control"; + pixel_x = -22; + req_one_access = list(160) + }, +/obj/machinery/light{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/fuel, +/turf/simulated/floor/tiled/techmaint, +/area/shuttle/salamander) +"bk" = ( +/obj/machinery/power/pointdefense{ + id_tag = "salamander_pd" + }, +/turf/simulated/floor/plating, +/area/shuttle/salamander_q2) +"br" = ( +/obj/structure/window/reinforced/tinted, +/obj/structure/toilet{ + dir = 4 + }, +/turf/simulated/floor/tiled/techfloor, +/area/shuttle/salamander_head) +"bu" = ( +/obj/effect/map_helper/airlock/sensor/chamber_sensor, +/obj/machinery/atmospherics/pipe/manifold/hidden, +/obj/machinery/airlock_sensor{ + dir = 4; + pixel_x = -21; + req_one_access = list(160) + }, +/obj/machinery/atmospherics/pipe/simple/hidden/fuel, +/turf/simulated/floor/tiled/techmaint, +/area/shuttle/salamander) +"bA" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/turf/simulated/floor/plating, +/area/shuttle/salamander_engineering) +"bH" = ( +/obj/structure/closet/crate, +/turf/simulated/floor/plating, +/area/shuttle/salamander_engineering) +"bI" = ( +/obj/structure/bed/chair/bay/chair, +/obj/structure/handrail, +/obj/machinery/power/apc{ + dir = 1; + name = "north bump"; + pixel_y = 24 + }, +/obj/structure/cable{ + d2 = 4; + icon_state = "0-4" + }, +/obj/machinery/atmospherics/unary/vent_scrubber/on{ + dir = 4 + }, +/obj/structure/closet/autolok_wall{ + dir = 8; + pixel_x = -32 + }, +/turf/simulated/floor/tiled/techfloor, +/area/shuttle/salamander_galley) +"bK" = ( +/obj/machinery/atmospherics/portables_connector, +/obj/effect/floor_decal/industrial/outline/blue, +/obj/machinery/portable_atmospherics/canister/air, +/turf/simulated/floor/plating, +/area/shuttle/salamander_engineering) +"bL" = ( +/obj/machinery/door/firedoor/glass, +/obj/machinery/door/airlock/hatch{ + req_one_access = list(160) + }, +/turf/simulated/floor/tiled/techmaint, +/area/shuttle/salamander) +"bN" = ( +/obj/machinery/atmospherics/unary/vent_pump/on, +/obj/machinery/alarm/alarms_hidden{ + pixel_y = 26 + }, +/obj/machinery/light{ + dir = 1 + }, +/turf/simulated/floor/tiled/techfloor, +/area/shuttle/salamander_head) +"bP" = ( +/obj/structure/sink{ + dir = 4; + pixel_x = 11 + }, +/obj/structure/mirror{ + dir = 4; + pixel_x = 28 + }, +/obj/machinery/light_switch{ + pixel_y = 23 + }, +/turf/simulated/floor/tiled/techfloor, +/area/shuttle/salamander_head) +"bY" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/fuel{ + dir = 4 + }, +/turf/simulated/floor/tiled/techmaint, +/area/shuttle/salamander_engineering) +"ci" = ( +/obj/machinery/door/firedoor/glass, +/obj/structure/grille, +/obj/structure/window/reinforced/full, +/obj/structure/window/reinforced, +/obj/structure/window/reinforced{ + dir = 1 + }, +/turf/simulated/floor/plating, +/area/shuttle/salamander_q2) +"cq" = ( +/obj/structure/handrail{ + dir = 1 + }, +/obj/machinery/power/apc{ + name = "south bump"; + pixel_y = -24 + }, +/obj/structure/cable{ + d2 = 4; + icon_state = "0-4" + }, +/obj/machinery/atmospherics/unary/vent_scrubber/on{ + dir = 4 + }, +/obj/structure/closet/autolok_wall{ + dir = 8; + pixel_x = -32 + }, +/turf/simulated/floor/tiled/techfloor, +/area/shuttle/salamander_head) +"cC" = ( +/obj/machinery/shower{ + dir = 1 + }, +/obj/structure/curtain/open/shower, +/obj/structure/window/reinforced/tinted{ + dir = 8 + }, +/turf/simulated/floor/tiled/techfloor, +/area/shuttle/salamander_head) +"cX" = ( +/obj/machinery/door/airlock/glass_external/public, +/obj/effect/map_helper/airlock/door/int_door, +/obj/machinery/atmospherics/pipe/simple/hidden/fuel, +/turf/simulated/floor/tiled/techmaint, +/area/shuttle/salamander) +"cY" = ( +/obj/structure/fitness/weightlifter, +/obj/machinery/light{ + dir = 1 + }, +/turf/simulated/floor/tiled/techfloor, +/area/shuttle/salamander_q2) +"dj" = ( +/turf/simulated/floor/plating, +/area/shuttle/salamander_engineering) +"dm" = ( +/obj/machinery/light{ + dir = 1 + }, +/turf/simulated/floor/plating, +/area/shuttle/salamander_engineering) +"dn" = ( +/obj/machinery/door/firedoor/glass, +/obj/structure/grille, +/obj/structure/window/reinforced/full, +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/fuel{ + dir = 4 + }, +/turf/simulated/floor/plating, +/area/shuttle/salamander_engineering) +"dO" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 10 + }, +/turf/simulated/floor/tiled/techfloor, +/area/shuttle/salamander_head) +"dT" = ( +/obj/machinery/atmospherics/pipe/manifold/hidden/fuel{ + dir = 1 + }, +/turf/simulated/floor/plating, +/area/shuttle/salamander_engineering) +"ee" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/fuel{ + dir = 10 + }, +/turf/simulated/floor/plating, +/area/shuttle/salamander_engineering) +"eg" = ( +/obj/machinery/atmospherics/pipe/simple/visible{ + dir = 5 + }, +/turf/simulated/floor/plating, +/area/shuttle/salamander_engineering) +"ey" = ( +/obj/machinery/atmospherics/pipe/manifold/visible{ + dir = 4 + }, +/turf/simulated/floor/plating, +/area/shuttle/salamander_engineering) +"eB" = ( +/obj/machinery/alarm/alarms_hidden{ + dir = 4; + pixel_x = -26 + }, +/obj/machinery/light{ + dir = 8 + }, +/turf/simulated/floor/tiled/techmaint, +/area/shuttle/salamander) +"eG" = ( +/obj/machinery/atmospherics/unary/vent_pump/on, +/turf/simulated/floor/tiled/techfloor, +/area/shuttle/salamander_q2) +"eJ" = ( +/obj/effect/map_helper/airlock/sensor/int_sensor, +/obj/machinery/airlock_sensor{ + dir = 8; + pixel_x = 21; + req_one_access = list(160) + }, +/obj/structure/handrail{ + dir = 8 + }, +/turf/simulated/floor/tiled/techmaint, +/area/shuttle/salamander) +"eP" = ( +/obj/machinery/door/firedoor/glass, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/machinery/door/airlock/voidcraft{ + req_one_access = list(160) + }, +/turf/simulated/floor/tiled/techmaint, +/area/shuttle/salamander_head) +"fh" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 8 + }, +/obj/item/clothing/shoes/boots/workboots, +/obj/item/clothing/gloves/duty, +/obj/item/clothing/under/utility, +/obj/item/clothing/ears/earmuffs, +/obj/item/clothing/head/soft/black, +/obj/structure/closet/walllocker_double/north{ + name = "Uniform Locker" + }, +/turf/simulated/floor/tiled/techmaint, +/area/shuttle/salamander) +"fn" = ( +/obj/machinery/atmospherics/unary/engine/bigger{ + dir = 4 + }, +/turf/simulated/floor/plating, +/area/shuttle/salamander_engineering) +"fB" = ( +/obj/machinery/light, +/turf/simulated/floor/plating, +/area/shuttle/salamander_engineering) +"fC" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/fuel{ + dir = 9 + }, +/turf/simulated/floor/plating, +/area/shuttle/salamander_engineering) +"fD" = ( +/obj/machinery/atmospherics/binary/pump/fuel{ + dir = 1 + }, +/turf/simulated/floor/plating, +/area/shuttle/salamander_engineering) +"fE" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/railing/grey{ + dir = 8 + }, +/turf/simulated/floor/tiled/techfloor, +/area/shuttle/salamander_engineering) +"fG" = ( +/obj/structure/handrail{ + dir = 4 + }, +/obj/structure/closet/autolok_wall{ + dir = 8; + pixel_x = -32 + }, +/turf/simulated/floor/tiled/techmaint, +/area/shuttle/salamander) +"fP" = ( +/obj/effect/floor_decal/industrial/warning{ + dir = 10 + }, +/obj/machinery/atmospherics/unary/vent_pump/on, +/obj/structure/railing/grey, +/turf/simulated/floor/tiled/techfloor, +/area/shuttle/salamander) +"fR" = ( +/obj/effect/floor_decal/industrial/warning{ + dir = 6 + }, +/obj/structure/railing/grey{ + dir = 4 + }, +/turf/simulated/floor/tiled/techfloor, +/area/shuttle/salamander) +"fX" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/fuel, +/turf/simulated/floor/tiled/techmaint, +/area/shuttle/salamander) +"fZ" = ( +/obj/item/device/suit_cooling_unit, +/obj/item/weapon/tank/air, +/obj/item/clothing/suit/space/void/refurb, +/obj/item/clothing/head/helmet/space/void/refurb, +/obj/structure/handrail, +/obj/machinery/atmospherics/unary/vent_pump/on, +/obj/structure/closet/walllocker_double/north{ + name = "Voidsuit Locker" + }, +/turf/simulated/floor/tiled/techfloor, +/area/shuttle/salamander) +"gl" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 10 + }, +/turf/simulated/floor/tiled/techfloor, +/area/shuttle/salamander_q2) +"gv" = ( +/obj/machinery/power/apc{ + dir = 8; + name = "west bump"; + pixel_x = -28 + }, +/obj/structure/cable{ + d2 = 2; + icon_state = "0-2" + }, +/obj/structure/handrail, +/obj/machinery/light{ + dir = 8 + }, +/obj/structure/closet/autolok_wall{ + pixel_y = 32 + }, +/obj/structure/railing/grey{ + dir = 4 + }, +/obj/structure/bed/chair/bay/comfy{ + dir = 4 + }, +/turf/simulated/floor/tiled/techmaint, +/area/shuttle/salamander_cockpit) +"gC" = ( +/obj/machinery/atmospherics/unary/vent_pump/on, +/turf/simulated/floor/tiled/techfloor, +/area/shuttle/salamander_cockpit) +"gD" = ( +/obj/effect/floor_decal/industrial/outline/yellow, +/obj/structure/railing/grey{ + dir = 1 + }, +/obj/machinery/atmospherics/portables_connector/fuel{ + dir = 4 + }, +/obj/machinery/portable_atmospherics/canister/phoron{ + start_pressure = 8000.25 + }, +/turf/simulated/floor/plating, +/area/shuttle/salamander_engineering) +"gL" = ( +/obj/machinery/atmospherics/pipe/manifold/hidden/supply, +/obj/structure/catwalk, +/obj/machinery/atmospherics/pipe/simple/hidden/fuel{ + dir = 4 + }, +/turf/simulated/floor/plating, +/area/shuttle/salamander_engineering) +"gM" = ( +/obj/machinery/door/firedoor/glass, +/obj/structure/grille, +/obj/structure/window/reinforced/full, +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/structure/window/reinforced{ + dir = 4 + }, +/turf/simulated/floor/plating, +/area/shuttle/salamander_cockpit) +"hh" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/fuel{ + dir = 9 + }, +/turf/simulated/floor/tiled/techmaint, +/area/shuttle/salamander) +"hn" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 8 + }, +/obj/machinery/light{ + dir = 1 + }, +/obj/item/clothing/shoes/boots/workboots, +/obj/item/clothing/gloves/duty, +/obj/item/clothing/under/utility, +/obj/item/clothing/ears/earmuffs, +/obj/item/clothing/head/soft/black, +/obj/structure/closet/walllocker_double/north{ + name = "Uniform Locker" + }, +/turf/simulated/floor/tiled/techmaint, +/area/shuttle/salamander) +"hp" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold4w/hidden/supply, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/turf/simulated/floor/tiled/techmaint, +/area/shuttle/salamander) +"hr" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 9 + }, +/turf/simulated/floor/tiled/techmaint, +/area/shuttle/salamander_cockpit) +"hC" = ( +/obj/effect/floor_decal/industrial/outline/yellow, +/obj/structure/railing/grey, +/obj/machinery/atmospherics/pipe/tank/phoron{ + dir = 4 + }, +/turf/simulated/floor/plating, +/area/shuttle/salamander_engineering) +"hO" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/obj/machinery/door/window/brigdoor/westleft{ + req_access = list(); + req_one_access = list(160) + }, +/turf/simulated/floor/tiled/techmaint, +/area/shuttle/salamander) +"if" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 6 + }, +/obj/structure/catwalk, +/obj/structure/railing/grey, +/obj/machinery/computer/ship/engines{ + dir = 4; + req_one_access = list(160) + }, +/turf/simulated/floor/plating, +/area/shuttle/salamander_engineering) +"ii" = ( +/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ + dir = 1 + }, +/obj/structure/catwalk, +/turf/simulated/floor/plating, +/area/shuttle/salamander_engineering) +"im" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/turf/simulated/floor/tiled/techfloor, +/area/shuttle/salamander_engineering) +"is" = ( +/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/scrubbers{ + dir = 4 + }, +/turf/simulated/floor/tiled/techmaint, +/area/shuttle/salamander_engineering) +"iC" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/turf/simulated/floor/tiled/techmaint, +/area/shuttle/salamander) +"iJ" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/turf/simulated/floor/tiled/techmaint, +/area/shuttle/salamander) +"iK" = ( +/obj/machinery/atmospherics/unary/vent_scrubber/on, +/turf/simulated/floor/tiled/techmaint, +/area/shuttle/salamander) +"iL" = ( +/obj/machinery/door/window/brigdoor/eastleft{ + req_access = list(); + req_one_access = list(160) + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/fuel{ + dir = 4 + }, +/turf/simulated/floor/tiled/techmaint, +/area/shuttle/salamander) +"iS" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/turf/simulated/floor/tiled/techmaint, +/area/shuttle/salamander) +"iW" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ + dir = 1 + }, +/turf/simulated/floor/tiled/techmaint, +/area/shuttle/salamander) +"jl" = ( +/obj/machinery/door/firedoor/glass, +/obj/structure/grille, +/obj/structure/window/reinforced/full, +/obj/structure/window/reinforced{ + dir = 1 + }, +/turf/simulated/floor/plating, +/area/shuttle/salamander_cockpit) +"jq" = ( +/obj/effect/floor_decal/industrial/warning{ + dir = 4 + }, +/obj/structure/handrail{ + dir = 1 + }, +/obj/random/contraband/nofail, +/obj/random/contraband/nofail, +/obj/random/contraband/nofail, +/obj/random/contraband/nofail, +/obj/random/contraband/nofail, +/obj/random/contraband/nofail, +/obj/random/contraband/nofail, +/obj/random/contraband/nofail, +/obj/random/contraband/nofail, +/obj/random/cigarettes, +/obj/random/drinkbottle, +/obj/random/drinkbottle, +/obj/random/snack, +/obj/structure/closet/walllocker_double/south{ + name = "Storage Locker" + }, +/turf/simulated/floor/tiled/techfloor, +/area/shuttle/salamander) +"jT" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/manifold4w/hidden/scrubbers, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 1 + }, +/obj/effect/catwalk_plated, +/turf/simulated/floor/plating, +/area/shuttle/salamander) +"jV" = ( +/obj/machinery/door/airlock/multi_tile/glass{ + dir = 2; + req_one_access = list(160) + }, +/obj/machinery/door/firedoor/multi_tile{ + dir = 1 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/turf/simulated/floor/tiled/techmaint, +/area/shuttle/salamander_cockpit) +"ks" = ( +/turf/simulated/floor/tiled/techmaint, +/area/shuttle/salamander_cockpit) +"kx" = ( +/obj/machinery/atmospherics/binary/pump/fuel, +/turf/simulated/floor/plating, +/area/shuttle/salamander_engineering) +"kK" = ( +/obj/machinery/atmospherics/unary/vent_scrubber/on{ + dir = 1 + }, +/turf/simulated/floor/plating, +/area/shuttle/salamander_engineering) +"kL" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/handrail{ + dir = 8 + }, +/obj/structure/closet/autolok_wall{ + dir = 4; + pixel_x = 32 + }, +/turf/simulated/floor/tiled/techfloor, +/area/shuttle/salamander_engineering) +"kU" = ( +/obj/machinery/suit_cycler/vintage/omni, +/obj/machinery/light{ + dir = 1 + }, +/obj/structure/railing/grey{ + dir = 8 + }, +/turf/simulated/floor/tiled/techfloor, +/area/shuttle/salamander) +"kZ" = ( +/obj/effect/floor_decal/industrial/warning{ + dir = 9 + }, +/obj/machinery/atmospherics/unary/vent_pump/on{ + dir = 1 + }, +/obj/structure/railing/grey{ + dir = 1 + }, +/turf/simulated/floor/tiled/techfloor, +/area/shuttle/salamander) +"lc" = ( +/obj/effect/floor_decal/industrial/warning{ + dir = 5 + }, +/obj/structure/railing/grey{ + dir = 4 + }, +/turf/simulated/floor/tiled/techfloor, +/area/shuttle/salamander) +"ld" = ( +/obj/machinery/door/firedoor/glass, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/machinery/door/airlock/voidcraft{ + req_one_access = list(160) + }, +/turf/simulated/floor/tiled/techmaint, +/area/shuttle/salamander_q2) +"ll" = ( +/obj/structure/handrail{ + dir = 1 + }, +/obj/machinery/alarm/alarms_hidden{ + dir = 4; + pixel_x = -26 + }, +/obj/machinery/atmospherics/unary/vent_scrubber/on{ + dir = 1 + }, +/obj/machinery/light{ + dir = 8 + }, +/obj/structure/closet/autolok_wall{ + dir = 1; + pixel_y = -32 + }, +/obj/structure/railing/grey{ + dir = 4 + }, +/obj/structure/bed/chair/bay/comfy{ + dir = 4 + }, +/turf/simulated/floor/tiled/techmaint, +/area/shuttle/salamander_cockpit) +"lo" = ( +/obj/machinery/computer/ship/engines{ + dir = 1; + req_one_access = list(160) + }, +/turf/simulated/floor/tiled/techfloor, +/area/shuttle/salamander_cockpit) +"lt" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/fuel{ + dir = 4 + }, +/obj/machinery/door/firedoor/glass, +/obj/structure/grille, +/obj/structure/window/reinforced/full, +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/structure/window/reinforced{ + dir = 8 + }, +/turf/simulated/floor/plating, +/area/shuttle/salamander_engineering) +"lw" = ( +/obj/machinery/atmospherics/portables_connector, +/obj/machinery/portable_atmospherics/canister/air/airlock, +/obj/effect/floor_decal/industrial/outline, +/turf/simulated/floor/plating, +/area/shuttle/salamander) +"lC" = ( +/obj/machinery/atmospherics/pipe/manifold/hidden/fuel, +/turf/simulated/floor/plating, +/area/shuttle/salamander_engineering) +"lK" = ( +/obj/machinery/atmospherics/pipe/simple/visible{ + dir = 6 + }, +/turf/simulated/floor/plating, +/area/shuttle/salamander_engineering) +"lV" = ( +/obj/machinery/power/terminal{ + dir = 4 + }, +/obj/structure/cable, +/obj/structure/railing/grey{ + dir = 8 + }, +/obj/item/weapon/tank/phoron/pressurized, +/obj/item/weapon/tank/phoron/pressurized, +/obj/structure/closet/walllocker{ + dir = 1; + name = "Spare Fuel"; + pixel_y = -32 + }, +/obj/item/weapon/tool/crowbar/red, +/obj/item/stack/material/tritium{ + amount = 25 + }, +/obj/machinery/light, +/turf/simulated/floor/tiled/techfloor, +/area/shuttle/salamander_engineering) +"ma" = ( +/obj/structure/cable, +/obj/machinery/power/smes/buildable/point_of_interest, +/turf/simulated/floor/tiled/techfloor, +/area/shuttle/salamander_engineering) +"mg" = ( +/obj/machinery/door/airlock/glass_external/public, +/obj/effect/map_helper/airlock/door/ext_door, +/obj/effect/map_helper/airlock/sensor/ext_sensor, +/obj/machinery/airlock_sensor/airlock_exterior/shuttle{ + pixel_x = 24; + pixel_y = -11 + }, +/turf/simulated/floor/tiled/techmaint, +/area/shuttle/salamander) +"mm" = ( +/obj/machinery/light{ + dir = 8 + }, +/turf/simulated/floor/tiled/techmaint, +/area/shuttle/salamander) +"mE" = ( +/obj/effect/floor_decal/industrial/warning{ + dir = 8 + }, +/obj/structure/handrail{ + dir = 1 + }, +/obj/random/medical, +/obj/random/medical, +/obj/random/medical, +/obj/random/medical, +/obj/random/medical, +/obj/random/contraband/nofail, +/obj/random/contraband/nofail, +/obj/random/cigarettes, +/obj/random/drinkbottle, +/obj/random/drinkbottle, +/obj/random/snack, +/obj/structure/closet/walllocker_double/south{ + name = "Storage Locker" + }, +/turf/simulated/floor/tiled/techfloor, +/area/shuttle/salamander) +"mJ" = ( +/obj/structure/handrail{ + dir = 1 + }, +/obj/random/medical, +/obj/random/medical, +/obj/random/medical, +/obj/random/medical, +/obj/random/medical, +/obj/random/contraband/nofail, +/obj/random/contraband/nofail, +/obj/random/cigarettes, +/obj/random/drinkbottle, +/obj/random/drinkbottle, +/obj/random/snack, +/obj/structure/closet/walllocker_double/south{ + name = "Storage Locker" + }, +/turf/simulated/floor/tiled/techfloor, +/area/shuttle/salamander) +"mO" = ( +/obj/machinery/light, +/obj/random/firstaid, +/obj/random/firstaid, +/obj/random/firstaid, +/obj/random/firstaid, +/obj/random/firstaid, +/obj/random/contraband/nofail, +/obj/random/contraband/nofail, +/obj/random/cigarettes, +/obj/random/drinkbottle, +/obj/random/drinkbottle, +/obj/random/snack, +/obj/structure/closet/walllocker_double/south{ + name = "Storage Locker" + }, +/turf/simulated/floor/tiled/techfloor, +/area/shuttle/salamander) +"mR" = ( +/turf/simulated/wall/shull, +/area/shuttle/salamander_galley) +"mY" = ( +/obj/machinery/computer/ship/sensors{ + req_one_access = list(160) + }, +/turf/simulated/floor/tiled/techfloor, +/area/shuttle/salamander_cockpit) +"nB" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 9 + }, +/turf/simulated/floor/tiled/techfloor, +/area/shuttle/salamander_q2) +"nE" = ( +/obj/machinery/atmospherics/unary/vent_pump/on, +/turf/simulated/floor/plating, +/area/shuttle/salamander_engineering) +"nH" = ( +/turf/simulated/wall/shull, +/area/shuttle/salamander_cockpit) +"nP" = ( +/obj/machinery/light/small, +/turf/simulated/floor/plating, +/area/shuttle/salamander_engineering) +"nX" = ( +/obj/structure/closet/crate{ + dir = 8 + }, +/turf/simulated/floor/plating, +/area/shuttle/salamander_engineering) +"oa" = ( +/obj/machinery/atmospherics/portables_connector{ + dir = 1 + }, +/obj/effect/floor_decal/industrial/outline/red, +/obj/machinery/portable_atmospherics/canister/empty, +/turf/simulated/floor/plating, +/area/shuttle/salamander_engineering) +"oc" = ( +/obj/machinery/door/airlock/hatch{ + req_one_access = list(160) + }, +/obj/machinery/door/firedoor/glass, +/turf/simulated/floor/tiled/techmaint, +/area/shuttle/salamander) +"oe" = ( +/obj/machinery/door/airlock/glass_external/public, +/obj/effect/map_helper/airlock/door/int_door, +/turf/simulated/floor/tiled/techmaint, +/area/shuttle/salamander) +"oi" = ( +/obj/structure/closet/secure_closet/freezer/fridge, +/obj/item/weapon/storage/box/donkpockets, +/obj/item/weapon/storage/box/donkpockets, +/obj/random/snack, +/obj/random/snack, +/obj/random/snack, +/obj/random/snack, +/obj/random/snack, +/obj/random/snack, +/obj/random/snack, +/turf/simulated/floor/tiled/techfloor, +/area/shuttle/salamander_galley) +"ot" = ( +/obj/machinery/door/firedoor/glass, +/obj/structure/grille, +/obj/structure/window/reinforced/full, +/turf/simulated/floor/plating, +/area/shuttle/salamander_cockpit) +"oC" = ( +/obj/machinery/pointdefense_control{ + id_tag = "salamander_pd"; + name = "salamander defense control"; + req_one_access = list(160) + }, +/turf/simulated/floor/tiled/techfloor, +/area/shuttle/salamander_cockpit) +"oF" = ( +/obj/structure/bed/pod, +/obj/item/weapon/bedsheet/blue, +/obj/machinery/light_switch{ + dir = 4; + pixel_x = 22 + }, +/obj/effect/landmark/late_antag/trader, +/turf/simulated/floor/tiled/techfloor, +/area/shuttle/salamander_q2) +"oI" = ( +/obj/structure/closet/autolok_wall{ + pixel_y = 32 + }, +/turf/simulated/floor/plating, +/area/shuttle/salamander) +"oL" = ( +/obj/machinery/atmospherics/pipe/manifold/hidden/supply, +/turf/simulated/floor/tiled/techmaint, +/area/shuttle/salamander) +"pf" = ( +/obj/structure/handrail, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 8 + }, +/obj/machinery/light_switch{ + pixel_y = 23 + }, +/turf/simulated/floor/tiled/techmaint, +/area/shuttle/salamander) +"px" = ( +/obj/machinery/atmospherics/pipe/manifold/visible{ + dir = 1 + }, +/obj/structure/catwalk, +/obj/machinery/light/small{ + dir = 1 + }, +/turf/simulated/floor/plating, +/area/shuttle/salamander) +"pG" = ( +/obj/machinery/door/blast/shutters{ + density = 0; + dir = 4; + icon_state = "shutter0"; + id = "trade"; + name = "Shop Shutters"; + opacity = 0 + }, +/obj/structure/table/steel_reinforced, +/obj/machinery/door/window/brigdoor/eastleft{ + layer = 2.9; + open_layer = 2.9; + req_access = list(); + req_one_access = list(160) + }, +/turf/simulated/floor/tiled/techmaint, +/area/shuttle/salamander) +"pH" = ( +/obj/machinery/atmospherics/unary/vent_pump{ + dir = 8 + }, +/obj/effect/map_helper/airlock/atmos/chamber_pump, +/obj/structure/closet/walllocker/emerglocker/east, +/turf/simulated/floor/tiled/techmaint, +/area/shuttle/salamander) +"qg" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/turf/simulated/floor/tiled/techmaint, +/area/shuttle/salamander) +"qh" = ( +/obj/machinery/computer/shuttle_control/explore/salamander{ + dir = 8; + req_one_access = list(160) + }, +/turf/simulated/floor/tiled/techfloor, +/area/shuttle/salamander_cockpit) +"qn" = ( +/obj/structure/bed/chair/bay/chair, +/obj/structure/handrail, +/obj/machinery/power/apc{ + dir = 1; + name = "north bump"; + pixel_y = 24 + }, +/obj/structure/cable{ + d2 = 4; + icon_state = "0-4" + }, +/obj/machinery/atmospherics/unary/vent_scrubber/on{ + dir = 4 + }, +/obj/structure/closet/autolok_wall{ + dir = 8; + pixel_x = -32 + }, +/turf/simulated/floor/tiled/techfloor, +/area/shuttle/salamander_q2) +"qu" = ( +/obj/structure/table/steel, +/obj/machinery/light_switch{ + dir = 8; + pixel_x = -22 + }, +/obj/random/pizzabox, +/obj/structure/closet/walllocker_double/kitchen/south, +/turf/simulated/floor/tiled/techfloor, +/area/shuttle/salamander_galley) +"qx" = ( +/obj/machinery/light/small, +/turf/simulated/floor/plating, +/area/shuttle/salamander) +"qE" = ( +/obj/structure/handrail{ + dir = 1 + }, +/obj/structure/catwalk, +/turf/simulated/floor/plating, +/area/shuttle/salamander) +"qM" = ( +/obj/structure/closet/crate{ + dir = 8 + }, +/obj/random/multiple/voidsuit/vintage, +/turf/simulated/floor/plating, +/area/shuttle/salamander) +"qQ" = ( +/obj/structure/closet/crate{ + dir = 8 + }, +/obj/random/material/refined, +/obj/random/material/refined, +/obj/random/toolbox, +/turf/simulated/floor/plating, +/area/shuttle/salamander) +"ri" = ( +/obj/machinery/atmospherics/portables_connector{ + dir = 1 + }, +/obj/machinery/portable_atmospherics/canister/air/airlock, +/obj/effect/floor_decal/industrial/outline, +/turf/simulated/floor/plating, +/area/shuttle/salamander) +"rj" = ( +/obj/machinery/door/firedoor/glass, +/obj/structure/grille, +/obj/structure/window/reinforced/full, +/obj/structure/window/reinforced{ + dir = 4 + }, +/turf/simulated/floor/plating, +/area/shuttle/salamander_cockpit) +"rt" = ( +/obj/structure/bed/chair/bay/chair{ + dir = 4 + }, +/obj/machinery/button/remote/blast_door{ + id = "trade"; + name = "Shop Shutters"; + pixel_y = -26; + req_access = list(160) + }, +/turf/simulated/floor/tiled/techmaint, +/area/shuttle/salamander) +"rw" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold4w/hidden/scrubbers, +/turf/simulated/floor/tiled/techmaint, +/area/shuttle/salamander) +"ry" = ( +/obj/machinery/door/window/brigdoor/eastright{ + req_access = list(); + req_one_access = list(160) + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/simulated/floor/tiled/techmaint, +/area/shuttle/salamander) +"sb" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/fuel{ + dir = 4 + }, +/turf/simulated/floor/tiled/techmaint, +/area/shuttle/salamander_engineering) +"tA" = ( +/obj/machinery/power/pointdefense{ + id_tag = "salamander_pd" + }, +/turf/simulated/floor/plating, +/area/shuttle/salamander_engineering) +"ur" = ( +/obj/machinery/door/firedoor/glass, +/obj/structure/grille, +/obj/structure/window/reinforced/full, +/obj/structure/window/reinforced, +/obj/structure/window/reinforced{ + dir = 4 + }, +/turf/simulated/floor/plating, +/area/shuttle/salamander_cockpit) +"vi" = ( +/obj/structure/table/steel, +/obj/machinery/microwave/advanced, +/obj/machinery/alarm/alarms_hidden{ + dir = 8; + pixel_x = 26 + }, +/obj/machinery/light, +/turf/simulated/floor/tiled/techfloor, +/area/shuttle/salamander_galley) +"vI" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 8 + }, +/turf/simulated/floor/tiled/techmaint, +/area/shuttle/salamander_cockpit) +"wF" = ( +/obj/machinery/atmospherics/pipe/simple/visible{ + dir = 6 + }, +/obj/structure/catwalk, +/turf/simulated/floor/plating, +/area/shuttle/salamander) +"xL" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/obj/item/clothing/shoes/boots/workboots, +/obj/item/clothing/gloves/duty, +/obj/item/clothing/under/utility, +/obj/item/clothing/ears/earmuffs, +/obj/item/clothing/head/soft/black, +/obj/structure/closet/walllocker_double/south{ + name = "Uniform Locker" + }, +/turf/simulated/floor/tiled/techmaint, +/area/shuttle/salamander) +"yv" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/obj/machinery/light, +/obj/item/clothing/shoes/boots/workboots, +/obj/item/clothing/gloves/duty, +/obj/item/clothing/under/utility, +/obj/item/clothing/ears/earmuffs, +/obj/item/clothing/head/soft/black, +/obj/structure/closet/walllocker_double/south{ + name = "Uniform Locker" + }, +/turf/simulated/floor/tiled/techmaint, +/area/shuttle/salamander) +"zO" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/fuel{ + dir = 4 + }, +/turf/simulated/floor/tiled/techfloor, +/area/shuttle/salamander_engineering) +"zQ" = ( +/obj/machinery/atmospherics/unary/vent_pump/on{ + dir = 1 + }, +/turf/simulated/floor/tiled/techfloor, +/area/shuttle/salamander_q2) +"AD" = ( +/obj/machinery/atmospherics/pipe/manifold4w/hidden/fuel, +/obj/structure/catwalk, +/turf/simulated/floor/plating, +/area/shuttle/salamander_engineering) +"AN" = ( +/obj/structure/handrail{ + dir = 1 + }, +/obj/machinery/power/apc{ + name = "south bump"; + pixel_y = -24 + }, +/obj/structure/cable{ + d2 = 4; + icon_state = "0-4" + }, +/obj/machinery/atmospherics/unary/vent_scrubber/on{ + dir = 4 + }, +/obj/structure/closet/autolok_wall{ + dir = 8; + pixel_x = -32 + }, +/turf/simulated/floor/tiled/techfloor, +/area/shuttle/salamander_q2) +"Bf" = ( +/obj/machinery/light{ + dir = 1 + }, +/obj/random/tech_supply/component/nofail, +/obj/random/tech_supply/component/nofail, +/obj/random/tech_supply/component/nofail, +/obj/random/tech_supply/component/nofail, +/obj/random/tech_supply/component/nofail, +/obj/random/contraband/nofail, +/obj/random/contraband/nofail, +/obj/random/powercell, +/obj/random/powercell, +/obj/random/drinksoft, +/obj/random/drinksoft, +/obj/random/snack, +/obj/structure/closet/walllocker_double/north{ + name = "Storage Locker" + }, +/turf/simulated/floor/tiled/techfloor, +/area/shuttle/salamander) +"BW" = ( +/obj/machinery/atmospherics/pipe/manifold4w/hidden/supply, +/obj/machinery/atmospherics/pipe/simple/hidden/fuel{ + dir = 4 + }, +/turf/simulated/floor/tiled/techmaint, +/area/shuttle/salamander) +"Df" = ( +/obj/machinery/atmospherics/pipe/manifold/hidden/fuel{ + dir = 4 + }, +/obj/structure/catwalk, +/turf/simulated/floor/plating, +/area/shuttle/salamander_engineering) +"DB" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 8 + }, +/turf/simulated/floor/tiled/techmaint, +/area/shuttle/salamander_cockpit) +"DK" = ( +/obj/machinery/atmospherics/pipe/simple/hidden{ + dir = 4 + }, +/turf/simulated/wall/shull, +/area/shuttle/salamander) +"DM" = ( +/obj/machinery/door/firedoor/glass, +/obj/structure/grille, +/obj/structure/window/reinforced/full, +/obj/structure/window/reinforced, +/obj/structure/window/reinforced{ + dir = 1 + }, +/turf/simulated/floor/plating, +/area/shuttle/salamander_galley) +"ES" = ( +/obj/structure/closet/crate, +/obj/random/material/refined, +/obj/random/material/refined, +/obj/random/toolbox, +/turf/simulated/floor/plating, +/area/shuttle/salamander) +"Fu" = ( +/obj/machinery/atmospherics/pipe/simple/hidden{ + dir = 5 + }, +/obj/machinery/embedded_controller/radio/airlock/docking_port_multi{ + dir = 4; + id_tag = "salamander_docking_star"; + name = "Starboard Airlock Control"; + pixel_x = -22; + req_one_access = list(160) + }, +/obj/machinery/light{ + dir = 8 + }, +/turf/simulated/floor/tiled/techmaint, +/area/shuttle/salamander) +"FL" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/fuel{ + dir = 4 + }, +/turf/simulated/floor/tiled/techmaint, +/area/shuttle/salamander) +"Gj" = ( +/obj/machinery/door/firedoor/glass, +/obj/structure/grille, +/obj/structure/window/reinforced/full, +/obj/structure/window/reinforced, +/turf/simulated/floor/plating, +/area/shuttle/salamander_cockpit) +"HG" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/handrail{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/turf/simulated/floor/tiled/techmaint, +/area/shuttle/salamander) +"HR" = ( +/obj/machinery/shipsensors{ + dir = 4 + }, +/obj/machinery/light{ + dir = 1 + }, +/turf/simulated/floor/plating, +/area/shuttle/salamander_cockpit) +"IL" = ( +/obj/item/device/suit_cooling_unit, +/obj/item/weapon/tank/air, +/obj/item/clothing/suit/space/void/refurb, +/obj/item/clothing/head/helmet/space/void/refurb, +/obj/structure/handrail{ + dir = 1 + }, +/obj/machinery/atmospherics/unary/vent_scrubber/on{ + dir = 1 + }, +/obj/structure/closet/walllocker_double/south{ + name = "Voidsuit Locker" + }, +/turf/simulated/floor/tiled/techfloor, +/area/shuttle/salamander) +"IQ" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 10 + }, +/turf/simulated/floor/tiled/techmaint, +/area/shuttle/salamander_cockpit) +"IR" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 8 + }, +/turf/simulated/floor/tiled/techmaint, +/area/shuttle/salamander) +"Jq" = ( +/obj/machinery/computer/ship/helm{ + dir = 8; + req_one_access = list(160) + }, +/turf/simulated/floor/tiled/techfloor, +/area/shuttle/salamander_cockpit) +"Kn" = ( +/obj/structure/table/steel_reinforced, +/obj/machinery/door/blast/shutters{ + density = 0; + dir = 4; + icon_state = "shutter0"; + id = "trade"; + name = "Shop Shutters"; + opacity = 0 + }, +/obj/structure/railing/grey, +/obj/structure/window/reinforced, +/obj/machinery/door/window/brigdoor/eastright{ + layer = 2.9; + open_layer = 2.9; + req_access = list(); + req_one_access = list(160) + }, +/turf/simulated/floor/tiled/techmaint, +/area/shuttle/salamander) +"Kw" = ( +/obj/effect/map_helper/airlock/sensor/chamber_sensor, +/obj/machinery/atmospherics/pipe/manifold/hidden{ + dir = 1 + }, +/obj/machinery/airlock_sensor{ + dir = 4; + pixel_x = -21; + req_one_access = list(160) + }, +/turf/simulated/floor/tiled/techmaint, +/area/shuttle/salamander) +"KX" = ( +/obj/structure/handrail, +/obj/random/tech_supply/nofail, +/obj/random/tech_supply/nofail, +/obj/random/tech_supply/nofail, +/obj/random/tech_supply/nofail, +/obj/random/tech_supply/nofail, +/obj/random/contraband/nofail, +/obj/random/contraband/nofail, +/obj/random/powercell, +/obj/random/powercell, +/obj/random/drinksoft, +/obj/random/drinksoft, +/obj/random/snack, +/obj/structure/closet/walllocker_double/north{ + name = "Storage Locker" + }, +/turf/simulated/floor/tiled/techfloor, +/area/shuttle/salamander) +"Lf" = ( +/obj/effect/floor_decal/industrial/warning, +/turf/simulated/floor/tiled/techfloor, +/area/shuttle/salamander) +"LU" = ( +/obj/structure/closet/crate, +/obj/random/multiple/voidsuit/vintage, +/turf/simulated/floor/plating, +/area/shuttle/salamander) +"No" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 9 + }, +/turf/simulated/floor/tiled/techfloor, +/area/shuttle/salamander_galley) +"NR" = ( +/obj/structure/bed/chair/bay/chair{ + dir = 4 + }, +/obj/machinery/button/remote/blast_door{ + dir = 1; + id = "trade"; + name = "Shop Shutters"; + pixel_y = 26; + req_access = list(160) + }, +/turf/simulated/floor/tiled/techmaint, +/area/shuttle/salamander) +"OI" = ( +/obj/machinery/door/blast/shutters{ + density = 0; + dir = 4; + icon_state = "shutter0"; + id = "trade"; + name = "Shop Shutters"; + opacity = 0 + }, +/obj/structure/table/steel_reinforced, +/obj/machinery/door/window/brigdoor/eastright{ + layer = 2.9; + open_layer = 2.9; + req_access = list(); + req_one_access = list(160) + }, +/turf/simulated/floor/tiled/techmaint, +/area/shuttle/salamander) +"ON" = ( +/obj/effect/floor_decal/industrial/warning{ + dir = 1 + }, +/turf/simulated/floor/tiled/techfloor, +/area/shuttle/salamander) +"OU" = ( +/obj/structure/bed/chair/bay/comfy{ + dir = 4 + }, +/turf/simulated/floor/tiled/techmaint, +/area/shuttle/salamander_cockpit) +"Pc" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/turf/simulated/floor/plating, +/area/shuttle/salamander) +"Pk" = ( +/obj/machinery/atmospherics/unary/vent_scrubber/on{ + dir = 1 + }, +/turf/simulated/floor/tiled/techmaint, +/area/shuttle/salamander) +"PN" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/fuel{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/turf/simulated/floor/tiled/techmaint, +/area/shuttle/salamander) +"Qn" = ( +/turf/simulated/floor/tiled/techmaint, +/area/shuttle/salamander) +"Qq" = ( +/obj/machinery/door/firedoor/glass, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/machinery/door/airlock/voidcraft{ + req_one_access = list(160) + }, +/turf/simulated/floor/tiled/techmaint, +/area/shuttle/salamander_galley) +"Rd" = ( +/obj/effect/floor_decal/industrial/warning{ + dir = 4 + }, +/obj/structure/handrail, +/obj/random/tech_supply/component/nofail, +/obj/random/tech_supply/component/nofail, +/obj/random/tech_supply/component/nofail, +/obj/random/tech_supply/component/nofail, +/obj/random/tech_supply/component/nofail, +/obj/random/contraband/nofail, +/obj/random/contraband/nofail, +/obj/random/powercell, +/obj/random/powercell, +/obj/random/drinksoft, +/obj/random/drinksoft, +/obj/random/snack, +/obj/structure/closet/walllocker_double/north{ + name = "Storage Locker" + }, +/turf/simulated/floor/tiled/techfloor, +/area/shuttle/salamander) +"RO" = ( +/obj/structure/bed/pod, +/obj/item/weapon/bedsheet/blue, +/obj/machinery/alarm/alarms_hidden{ + dir = 8; + pixel_x = 26 + }, +/obj/effect/landmark/late_antag/trader, +/turf/simulated/floor/tiled/techfloor, +/area/shuttle/salamander_q2) +"RU" = ( +/obj/machinery/atmospherics/unary/vent_pump/on{ + dir = 1 + }, +/turf/simulated/floor/tiled/techfloor, +/area/shuttle/salamander_galley) +"Sb" = ( +/obj/structure/table/steel_reinforced, +/obj/machinery/door/blast/shutters{ + density = 0; + dir = 4; + icon_state = "shutter0"; + id = "trade"; + name = "Shop Shutters"; + opacity = 0 + }, +/obj/structure/railing/grey{ + dir = 1 + }, +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/machinery/door/window/brigdoor/eastleft{ + layer = 2.9; + open_layer = 2.9; + req_access = list(); + req_one_access = list(160) + }, +/turf/simulated/floor/tiled/techmaint, +/area/shuttle/salamander) +"Sp" = ( +/obj/structure/table/steel, +/obj/machinery/light, +/turf/simulated/floor/tiled/techfloor, +/area/shuttle/salamander_q2) +"Td" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/structure/railing/grey{ + dir = 8 + }, +/obj/structure/fuel_port/heavy{ + pixel_y = 28 + }, +/obj/structure/table/steel, +/obj/machinery/light{ + dir = 1 + }, +/turf/simulated/floor/tiled/techfloor, +/area/shuttle/salamander_engineering) +"Tg" = ( +/turf/simulated/wall/shull, +/area/shuttle/salamander_head) +"Tl" = ( +/obj/item/device/suit_cooling_unit, +/obj/item/weapon/tank/air, +/obj/item/clothing/suit/space/void/refurb, +/obj/item/clothing/head/helmet/space/void/refurb, +/obj/structure/railing/grey{ + dir = 8 + }, +/obj/structure/handrail{ + dir = 1 + }, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/effect/floor_decal/industrial/warning{ + dir = 8 + }, +/obj/structure/closet/walllocker_double/south{ + name = "Voidsuit Locker" + }, +/turf/simulated/floor/tiled/techfloor, +/area/shuttle/salamander) +"TG" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 8 + }, +/obj/machinery/door/window/brigdoor/westright{ + req_access = list(); + req_one_access = list(160) + }, +/turf/simulated/floor/tiled/techmaint, +/area/shuttle/salamander) +"UT" = ( +/obj/machinery/door/airlock/glass_external/public, +/obj/effect/map_helper/airlock/door/ext_door, +/turf/simulated/floor/tiled/techmaint, +/area/shuttle/salamander) +"Vh" = ( +/obj/structure/cable{ + d2 = 2; + icon_state = "0-2" + }, +/obj/machinery/power/apc{ + dir = 4; + name = "east bump"; + pixel_x = 24 + }, +/obj/structure/handrail{ + dir = 8 + }, +/turf/simulated/floor/tiled/techfloor, +/area/shuttle/salamander_engineering) +"Vs" = ( +/obj/structure/catwalk, +/turf/simulated/floor/plating, +/area/shuttle/salamander) +"Vz" = ( +/turf/simulated/wall/shull, +/area/shuttle/salamander_q2) +"VK" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 5 + }, +/obj/structure/catwalk, +/obj/structure/railing/grey{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/fuel{ + dir = 4 + }, +/turf/simulated/floor/plating, +/area/shuttle/salamander_engineering) +"VT" = ( +/turf/simulated/wall/shull, +/area/shuttle/salamander) +"VW" = ( +/obj/machinery/atmospherics/pipe/simple/visible{ + dir = 5 + }, +/obj/structure/catwalk, +/turf/simulated/floor/plating, +/area/shuttle/salamander) +"Wj" = ( +/turf/simulated/wall/shull, +/area/shuttle/salamander_engineering) +"Wv" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/universal, +/turf/simulated/floor/plating, +/area/shuttle/salamander_engineering) +"WN" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/door/airlock/multi_tile/metal{ + dir = 2; + name = "Salamander Engineering Bay"; + req_one_access = list(160) + }, +/obj/machinery/door/firedoor/multi_tile{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/turf/simulated/floor/tiled/techmaint, +/area/shuttle/salamander_engineering) +"WP" = ( +/turf/template_noop, +/area/template_noop) +"WW" = ( +/obj/structure/closet/crate{ + dir = 1 + }, +/obj/random/multiple/voidsuit/vintage, +/turf/simulated/floor/plating, +/area/shuttle/salamander) +"Xc" = ( +/obj/item/device/suit_cooling_unit, +/obj/item/weapon/tank/air, +/obj/item/clothing/suit/space/void/refurb, +/obj/item/clothing/head/helmet/space/void/refurb, +/obj/structure/railing/grey{ + dir = 8 + }, +/obj/structure/handrail, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/effect/floor_decal/industrial/warning{ + dir = 8 + }, +/obj/structure/closet/walllocker_double/north{ + name = "Voidsuit Locker" + }, +/turf/simulated/floor/tiled/techfloor, +/area/shuttle/salamander) +"Xn" = ( +/obj/effect/floor_decal/industrial/warning{ + dir = 8 + }, +/obj/structure/handrail, +/obj/random/tech_supply/nofail, +/obj/random/tech_supply/nofail, +/obj/random/tech_supply/nofail, +/obj/random/tech_supply/nofail, +/obj/random/tech_supply/nofail, +/obj/random/contraband/nofail, +/obj/random/contraband/nofail, +/obj/random/powercell, +/obj/random/powercell, +/obj/random/drinksoft, +/obj/random/drinksoft, +/obj/random/snack, +/obj/structure/closet/walllocker_double/north{ + name = "Storage Locker" + }, +/turf/simulated/floor/tiled/techfloor, +/area/shuttle/salamander) +"Xr" = ( +/obj/machinery/atmospherics/pipe/manifold/visible, +/obj/structure/catwalk, +/obj/machinery/light/small, +/turf/simulated/floor/plating, +/area/shuttle/salamander) +"Xs" = ( +/obj/machinery/power/port_gen/pacman/mrs{ + anchored = 1 + }, +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/obj/machinery/alarm/alarms_hidden{ + pixel_y = 26 + }, +/obj/machinery/light_switch{ + dir = 4; + pixel_x = 22 + }, +/turf/simulated/floor/tiled/techfloor, +/area/shuttle/salamander_engineering) +"XJ" = ( +/obj/structure/handrail, +/obj/structure/catwalk, +/turf/simulated/floor/plating, +/area/shuttle/salamander) +"ZK" = ( +/obj/structure/closet/autolok_wall{ + dir = 1; + pixel_y = -32 + }, +/turf/simulated/floor/plating, +/area/shuttle/salamander) +"ZU" = ( +/obj/machinery/embedded_controller/radio/docking_port_multi{ + child_names_txt = "Port Airlock Control;Starboard Airlock Control"; + child_tags_txt = "salamander_docking_port;salamander_docking_star"; + dir = 1; + id_tag = "salamander_docking"; + name = "Salamander Master Docking Controller"; + pixel_y = -22 + }, +/obj/machinery/power/apc{ + dir = 4; + name = "east bump"; + pixel_x = 24 + }, +/obj/structure/cable, +/obj/machinery/light, +/obj/structure/railing/grey{ + dir = 8 + }, +/turf/simulated/floor/tiled/techfloor, +/area/shuttle/salamander) + +(1,1,1) = {" +WP +WP +WP +WP +WP +WP +WP +WP +WP +WP +WP +WP +WP +WP +WP +WP +"} +(2,1,1) = {" +WP +WP +WP +WP +Wj +dj +fn +Wj +Wj +dj +fn +Wj +WP +WP +WP +WP +"} +(3,1,1) = {" +WP +WP +WP +Wj +Wj +dm +fB +Wj +Wj +dm +fB +Wj +Wj +WP +WP +WP +"} +(4,1,1) = {" +WP +WP +WP +Wj +Wj +dn +dn +Wj +Wj +dn +lt +Wj +Wj +WP +WP +WP +"} +(5,1,1) = {" +WP +WP +WP +Wj +bA +dT +fC +gD +hC +ee +lC +nP +Wj +WP +WP +WP +"} +(6,1,1) = {" +WP +WP +WP +Wj +bH +ee +fD +AD +Df +kx +fC +nX +Wj +WP +WP +WP +"} +(7,1,1) = {" +WP +WP +WP +Wj +bK +eg +nE +VK +if +kK +lK +oa +Wj +WP +WP +WP +"} +(8,1,1) = {" +WP +WP +tA +Wj +bK +ey +Wv +gL +ii +Wv +ey +oa +Wj +tA +WP +WP +"} +(9,1,1) = {" +WP +WP +VT +VT +Wj +Td +fE +zO +im +fE +lV +Wj +VT +VT +WP +WP +"} +(10,1,1) = {" +WP +VT +VT +WW +Wj +Xs +Vh +bY +is +kL +ma +Wj +WW +VT +VT +WP +"} +(11,1,1) = {" +WP +VT +Pc +ZK +Wj +Wj +Wj +sb +WN +Wj +Wj +Wj +oI +qx +VT +WP +"} +(12,1,1) = {" +WP +VT +XJ +Vs +bL +eB +fG +FL +iC +fG +mm +oc +Vs +qE +VT +WP +"} +(13,1,1) = {" +WP +VT +LU +Vs +VT +Xn +fP +BW +iJ +kZ +mE +VT +Vs +qM +VT +WP +"} +(14,1,1) = {" +WP +VT +ES +Vs +VT +KX +Lf +FL +iC +ON +mJ +VT +Vs +qQ +VT +WP +"} +(15,1,1) = {" +WP +VT +ES +Vs +VT +Bf +Lf +FL +iC +ON +mO +VT +Vs +qQ +VT +WP +"} +(16,1,1) = {" +WP +VT +lw +VW +VT +Rd +fR +FL +iC +lc +jq +VT +wF +ri +VT +WP +"} +(17,1,1) = {" +WP +VT +lw +Xr +VT +NR +iK +PN +rw +Pk +rt +VT +px +ri +VT +WP +"} +(18,1,1) = {" +WP +VT +VT +DK +VT +pG +Kn +iL +ry +Sb +OI +VT +DK +VT +VT +WP +"} +(19,1,1) = {" +WP +ab +aL +bu +cX +fX +fX +hh +iC +Qn +Qn +oe +Kw +Fu +UT +WP +"} +(20,1,1) = {" +WP +aK +pH +pH +oe +eJ +Qn +IR +iC +Qn +eJ +oe +pH +pH +mg +WP +"} +(21,1,1) = {" +WP +VT +VT +VT +VT +VT +Xc +TG +hO +Tl +VT +VT +VT +VT +VT +WP +"} +(22,1,1) = {" +WP +WP +Tg +br +cq +Tg +fZ +oL +iW +IL +mR +bI +qu +mR +WP +WP +"} +(23,1,1) = {" +WP +WP +Tg +bN +dO +eP +iS +hp +jT +iS +Qq +No +RU +DM +WP +WP +"} +(24,1,1) = {" +WP +WP +Tg +bP +cC +Tg +kU +IR +qg +ZU +mR +oi +vi +mR +WP +WP +"} +(25,1,1) = {" +WP +WP +Tg +Tg +Tg +Tg +VT +pf +HG +VT +mR +mR +mR +mR +WP +WP +"} +(26,1,1) = {" +WP +WP +bk +Vz +cY +AN +Vz +hn +yv +Vz +qn +Sp +Vz +bk +WP +WP +"} +(27,1,1) = {" +WP +WP +WP +ci +eG +gl +ld +hp +jT +ld +nB +zQ +ci +WP +WP +WP +"} +(28,1,1) = {" +WP +WP +WP +Vz +oF +RO +Vz +fh +xL +Vz +RO +oF +Vz +WP +WP +WP +"} +(29,1,1) = {" +WP +WP +WP +Vz +Vz +Vz +Vz +DB +jV +Vz +Vz +Vz +Vz +WP +WP +WP +"} +(30,1,1) = {" +WP +WP +WP +WP +WP +nH +gv +vI +IQ +ll +nH +HR +WP +WP +WP +WP +"} +(31,1,1) = {" +WP +WP +WP +WP +WP +jl +gC +hr +ks +oC +Gj +WP +WP +WP +WP +WP +"} +(32,1,1) = {" +WP +WP +WP +WP +WP +jl +mY +OU +OU +lo +Gj +WP +WP +WP +WP +WP +"} +(33,1,1) = {" +WP +WP +WP +WP +WP +gM +ot +qh +Jq +ot +ur +WP +WP +WP +WP +WP +"} +(34,1,1) = {" +WP +WP +WP +WP +WP +WP +gM +rj +rj +ur +WP +WP +WP +WP +WP +WP +"} +(35,1,1) = {" +WP +WP +WP +WP +WP +WP +WP +WP +WP +WP +WP +WP +WP +WP +WP +WP +"} diff --git a/maps/offmap_vr/om_ships/salamander_wreck.dmm b/maps/offmap_vr/om_ships/salamander_wreck.dmm new file mode 100644 index 0000000000..537f37aeb1 --- /dev/null +++ b/maps/offmap_vr/om_ships/salamander_wreck.dmm @@ -0,0 +1,2688 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"ab" = ( +/obj/machinery/door/airlock/glass_external/public, +/obj/effect/map_helper/airlock/door/ext_door, +/obj/machinery/atmospherics/pipe/simple/hidden/fuel, +/turf/simulated/floor/tiled/techmaint, +/area/shuttle/salamander_wreck) +"aK" = ( +/obj/machinery/door/airlock/glass_external/public, +/obj/effect/map_helper/airlock/door/ext_door, +/obj/effect/map_helper/airlock/sensor/ext_sensor, +/obj/machinery/airlock_sensor/airlock_exterior/shuttle{ + dir = 1; + pixel_x = 24; + pixel_y = 11 + }, +/turf/simulated/floor/tiled/techmaint, +/area/shuttle/salamander_wreck) +"aL" = ( +/obj/effect/shuttle_landmark/shuttle_initializer/salamander_wreck, +/obj/effect/overmap/visitable/ship/landable/salamander_wreck, +/obj/machinery/atmospherics/pipe/simple/hidden{ + dir = 6 + }, +/obj/machinery/embedded_controller/radio/airlock/docking_port_multi{ + dir = 4; + id_tag = "salamander_wreck_docking_port"; + name = "Port Airlock Control"; + pixel_x = -22 + }, +/obj/machinery/light{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/fuel, +/turf/simulated/floor/tiled/techmaint, +/area/shuttle/salamander_wreck) +"bk" = ( +/obj/machinery/power/pointdefense{ + id_tag = "salamander_wreck_pd" + }, +/turf/simulated/floor/airless, +/area/shuttle/salamander_wreck_q2) +"br" = ( +/obj/structure/window/reinforced/tinted, +/obj/structure/toilet{ + dir = 4 + }, +/turf/simulated/floor/tiled/techfloor{ + nitrogen = 0; + oxygen = 0 + }, +/area/shuttle/salamander_wreck_head) +"bu" = ( +/obj/effect/map_helper/airlock/sensor/chamber_sensor, +/obj/machinery/atmospherics/pipe/manifold/hidden, +/obj/machinery/airlock_sensor{ + dir = 4; + pixel_x = -21 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/fuel, +/turf/simulated/floor/tiled/techmaint, +/area/shuttle/salamander_wreck) +"bI" = ( +/obj/structure/handrail, +/obj/structure/cable{ + d2 = 4; + icon_state = "0-4" + }, +/obj/machinery/atmospherics/unary/vent_scrubber/on{ + dir = 4 + }, +/obj/structure/closet/autolok_wall{ + dir = 8; + pixel_x = -32 + }, +/obj/machinery/power/apc{ + dir = 1; + name = "north bump"; + pixel_y = 24; + start_charge = 0 + }, +/obj/structure/bed/chair/bay/chair{ + dir = 4 + }, +/turf/simulated/floor/tiled/techfloor{ + nitrogen = 0; + oxygen = 0 + }, +/area/shuttle/salamander_wreck_galley) +"bK" = ( +/obj/machinery/atmospherics/portables_connector, +/obj/effect/floor_decal/industrial/outline/blue, +/obj/machinery/portable_atmospherics/canister/air, +/turf/simulated/floor/airless, +/area/shuttle/salamander_wreck_engineering) +"bL" = ( +/obj/machinery/door/firedoor/glass, +/obj/machinery/door/airlock/hatch{ + req_one_access = list() + }, +/turf/simulated/floor/tiled/techmaint, +/area/shuttle/salamander_wreck) +"bN" = ( +/obj/machinery/atmospherics/unary/vent_pump/on, +/obj/machinery/alarm/alarms_hidden{ + pixel_y = 26 + }, +/obj/machinery/light/flicker{ + dir = 1 + }, +/turf/simulated/floor/tiled/techfloor{ + nitrogen = 0; + oxygen = 0 + }, +/area/shuttle/salamander_wreck_head) +"bP" = ( +/obj/structure/sink{ + dir = 4; + pixel_x = 11 + }, +/obj/structure/mirror{ + dir = 4; + pixel_x = 28 + }, +/obj/machinery/light_switch{ + pixel_y = 23 + }, +/turf/simulated/floor/tiled/techfloor{ + nitrogen = 0; + oxygen = 0 + }, +/area/shuttle/salamander_wreck_head) +"bY" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/fuel{ + dir = 4 + }, +/turf/simulated/floor/tiled/techmaint/airless, +/area/shuttle/salamander_wreck_engineering) +"ci" = ( +/obj/machinery/door/firedoor/glass, +/obj/structure/grille, +/obj/structure/window/reinforced/full, +/obj/structure/window/reinforced, +/obj/structure/window/reinforced{ + dir = 1 + }, +/turf/simulated/floor/plating, +/area/shuttle/salamander_wreck_q2) +"cq" = ( +/obj/structure/handrail{ + dir = 1 + }, +/obj/structure/cable{ + d2 = 4; + icon_state = "0-4" + }, +/obj/machinery/atmospherics/unary/vent_scrubber/on{ + dir = 4 + }, +/obj/structure/closet/autolok_wall{ + dir = 8; + pixel_x = -32 + }, +/obj/machinery/power/apc{ + name = "south bump"; + pixel_y = -24; + start_charge = 0 + }, +/turf/simulated/floor/tiled/techfloor{ + nitrogen = 0; + oxygen = 0 + }, +/area/shuttle/salamander_wreck_head) +"cC" = ( +/obj/machinery/shower{ + dir = 1 + }, +/obj/structure/curtain/open/shower, +/obj/structure/window/reinforced/tinted{ + dir = 8 + }, +/turf/simulated/floor/tiled/techfloor{ + nitrogen = 0; + oxygen = 0 + }, +/area/shuttle/salamander_wreck_head) +"cX" = ( +/obj/machinery/door/airlock/glass_external/public, +/obj/effect/map_helper/airlock/door/int_door, +/obj/machinery/atmospherics/pipe/simple/hidden/fuel, +/turf/simulated/floor/tiled/techmaint, +/area/shuttle/salamander_wreck) +"cY" = ( +/obj/structure/fitness/weightlifter, +/obj/machinery/light{ + dir = 1 + }, +/turf/simulated/floor/tiled/techfloor{ + nitrogen = 0; + oxygen = 0 + }, +/area/shuttle/salamander_wreck_q2) +"dm" = ( +/obj/machinery/light{ + dir = 1 + }, +/turf/simulated/floor/airless, +/area/shuttle/salamander_wreck_engineering) +"dn" = ( +/obj/machinery/door/firedoor/glass, +/obj/structure/grille, +/obj/structure/window/reinforced/full, +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/fuel{ + dir = 4 + }, +/turf/simulated/floor/airless, +/area/shuttle/salamander_wreck_engineering) +"dO" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 10 + }, +/turf/simulated/floor/tiled/techfloor{ + nitrogen = 0; + oxygen = 0 + }, +/area/shuttle/salamander_wreck_head) +"dT" = ( +/obj/machinery/atmospherics/pipe/manifold/hidden/fuel{ + dir = 1 + }, +/turf/simulated/floor/airless, +/area/shuttle/salamander_wreck_engineering) +"ee" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/fuel{ + dir = 10 + }, +/turf/simulated/floor/airless, +/area/shuttle/salamander_wreck_engineering) +"eg" = ( +/obj/machinery/atmospherics/pipe/simple/visible{ + dir = 5 + }, +/turf/simulated/floor/airless, +/area/shuttle/salamander_wreck_engineering) +"ey" = ( +/obj/machinery/atmospherics/pipe/manifold/visible{ + dir = 4 + }, +/turf/simulated/floor/airless, +/area/shuttle/salamander_wreck_engineering) +"eB" = ( +/obj/machinery/alarm/alarms_hidden{ + dir = 4; + pixel_x = -26 + }, +/obj/machinery/light/flicker{ + dir = 8 + }, +/turf/simulated/floor/tiled/techmaint/airless, +/area/shuttle/salamander_wreck) +"eG" = ( +/obj/machinery/atmospherics/unary/vent_pump/on, +/turf/simulated/floor/tiled/techfloor{ + nitrogen = 0; + oxygen = 0 + }, +/area/shuttle/salamander_wreck_q2) +"eJ" = ( +/obj/effect/map_helper/airlock/sensor/int_sensor, +/obj/machinery/airlock_sensor{ + dir = 8; + pixel_x = 21 + }, +/obj/structure/handrail{ + dir = 8 + }, +/turf/simulated/floor/tiled/techmaint/airless, +/area/shuttle/salamander_wreck) +"eP" = ( +/obj/machinery/door/firedoor/glass, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/machinery/door/airlock/voidcraft{ + density = 0; + icon_state = "door_open" + }, +/turf/simulated/floor/tiled/techmaint/airless, +/area/shuttle/salamander_wreck_head) +"fh" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 8 + }, +/obj/item/stack/cable_coil, +/obj/structure/closet/walllocker_double/north{ + name = "Uniform Locker" + }, +/turf/simulated/floor/tiled/techmaint/airless, +/area/shuttle/salamander_wreck) +"fn" = ( +/obj/machinery/atmospherics/unary/engine/bigger{ + dir = 4 + }, +/turf/simulated/floor/airless, +/area/shuttle/salamander_wreck_engineering) +"fB" = ( +/obj/machinery/light, +/turf/simulated/floor/airless, +/area/shuttle/salamander_wreck_engineering) +"fD" = ( +/obj/machinery/atmospherics/binary/pump/fuel{ + dir = 1 + }, +/turf/simulated/floor/airless, +/area/shuttle/salamander_wreck_engineering) +"fE" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/railing/grey{ + dir = 8 + }, +/turf/simulated/floor/tiled/techfloor{ + nitrogen = 0; + oxygen = 0 + }, +/area/shuttle/salamander_wreck_engineering) +"fG" = ( +/obj/structure/handrail{ + dir = 4 + }, +/obj/structure/closet/autolok_wall{ + dir = 8; + pixel_x = -32 + }, +/turf/simulated/floor/tiled/techmaint/airless, +/area/shuttle/salamander_wreck) +"fP" = ( +/obj/effect/floor_decal/industrial/warning{ + dir = 10 + }, +/obj/machinery/atmospherics/unary/vent_pump/on, +/obj/structure/railing/grey, +/obj/random/empty_or_lootable_crate, +/turf/simulated/floor/tiled/techfloor{ + nitrogen = 0; + oxygen = 0 + }, +/area/shuttle/salamander_wreck) +"fR" = ( +/obj/effect/floor_decal/industrial/warning{ + dir = 6 + }, +/obj/structure/railing/grey{ + dir = 4 + }, +/obj/random/empty_or_lootable_crate, +/turf/simulated/floor/tiled/techfloor{ + nitrogen = 0; + oxygen = 0 + }, +/area/shuttle/salamander_wreck) +"fX" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/fuel, +/turf/simulated/floor/tiled/techmaint/airless, +/area/shuttle/salamander_wreck) +"fZ" = ( +/obj/structure/handrail, +/obj/machinery/atmospherics/unary/vent_pump/on, +/obj/structure/closet/walllocker_double/north{ + name = "Voidsuit Locker" + }, +/turf/simulated/floor/tiled/techfloor{ + nitrogen = 0; + oxygen = 0 + }, +/area/shuttle/salamander_wreck) +"gl" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 10 + }, +/turf/simulated/floor/tiled/techfloor{ + nitrogen = 0; + oxygen = 0 + }, +/area/shuttle/salamander_wreck_q2) +"gv" = ( +/obj/structure/cable{ + d2 = 2; + icon_state = "0-2" + }, +/obj/structure/handrail, +/obj/machinery/light{ + dir = 8 + }, +/obj/structure/closet/autolok_wall{ + pixel_y = 32 + }, +/obj/structure/railing/grey{ + dir = 4 + }, +/obj/structure/bed/chair/bay/comfy{ + dir = 4 + }, +/obj/machinery/power/apc{ + dir = 8; + name = "west bump"; + pixel_x = -28; + start_charge = 0 + }, +/turf/simulated/floor/tiled/techmaint/airless, +/area/shuttle/salamander_wreck_cockpit) +"gC" = ( +/obj/machinery/atmospherics/unary/vent_pump/on, +/turf/simulated/floor/tiled/techfloor{ + nitrogen = 0; + oxygen = 0 + }, +/area/shuttle/salamander_wreck_cockpit) +"gD" = ( +/obj/effect/floor_decal/industrial/outline/yellow, +/obj/structure/railing/grey{ + dir = 1 + }, +/obj/machinery/atmospherics/portables_connector/fuel{ + dir = 4 + }, +/turf/simulated/floor/airless, +/area/shuttle/salamander_wreck_engineering) +"gL" = ( +/obj/machinery/atmospherics/pipe/manifold/hidden/supply, +/obj/structure/catwalk, +/obj/machinery/atmospherics/pipe/simple/hidden/fuel{ + dir = 4 + }, +/turf/simulated/floor/airless, +/area/shuttle/salamander_wreck_engineering) +"gM" = ( +/obj/machinery/door/firedoor/glass, +/obj/structure/grille, +/obj/structure/window/reinforced/full, +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/structure/window/reinforced{ + dir = 4 + }, +/turf/simulated/floor/plating, +/area/shuttle/salamander_wreck_cockpit) +"hh" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/fuel{ + dir = 9 + }, +/turf/simulated/floor/tiled/techmaint/airless, +/area/shuttle/salamander_wreck) +"hn" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 8 + }, +/obj/machinery/light{ + dir = 1 + }, +/obj/item/weapon/circuitboard/smes, +/obj/structure/closet/walllocker_double/north{ + name = "Uniform Locker" + }, +/turf/simulated/floor/tiled/techmaint/airless, +/area/shuttle/salamander_wreck) +"hp" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold4w/hidden/supply, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/turf/simulated/floor/tiled/techmaint/airless, +/area/shuttle/salamander_wreck) +"hr" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 9 + }, +/turf/simulated/floor/tiled/techmaint/airless, +/area/shuttle/salamander_wreck_cockpit) +"hC" = ( +/obj/effect/floor_decal/industrial/outline/yellow, +/obj/structure/railing/grey, +/obj/machinery/atmospherics/pipe/tank/phoron{ + dir = 4; + start_pressure = 0 + }, +/turf/simulated/floor/airless, +/area/shuttle/salamander_wreck_engineering) +"hK" = ( +/obj/structure/bed/chair/bay/chair, +/turf/simulated/floor/tiled/techmaint/airless, +/area/shuttle/salamander_wreck_cockpit) +"hO" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/obj/machinery/door/window/brigdoor/westleft{ + density = 0; + icon_state = "leftsecureopen"; + req_access = list() + }, +/turf/simulated/floor/tiled/techmaint/airless, +/area/shuttle/salamander_wreck) +"if" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 6 + }, +/obj/structure/catwalk, +/obj/structure/railing/grey, +/obj/machinery/computer/ship/engines{ + dir = 4 + }, +/turf/simulated/floor/airless, +/area/shuttle/salamander_wreck_engineering) +"ii" = ( +/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ + dir = 1 + }, +/obj/structure/catwalk, +/turf/simulated/floor/airless, +/area/shuttle/salamander_wreck_engineering) +"im" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/turf/simulated/floor/tiled/techfloor{ + nitrogen = 0; + oxygen = 0 + }, +/area/shuttle/salamander_wreck_engineering) +"is" = ( +/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/scrubbers{ + dir = 4 + }, +/turf/simulated/floor/tiled/techmaint/airless, +/area/shuttle/salamander_wreck_engineering) +"iC" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/turf/simulated/floor/tiled/techmaint/airless, +/area/shuttle/salamander_wreck) +"iJ" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/turf/simulated/floor/tiled/techmaint/airless, +/area/shuttle/salamander_wreck) +"iK" = ( +/obj/machinery/atmospherics/unary/vent_scrubber/on, +/turf/simulated/floor/tiled/techmaint/airless, +/area/shuttle/salamander_wreck) +"iL" = ( +/obj/machinery/door/window/brigdoor/eastleft{ + density = 0; + icon_state = "leftsecureopen"; + req_access = list() + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/fuel{ + dir = 4 + }, +/turf/simulated/floor/tiled/techmaint/airless, +/area/shuttle/salamander_wreck) +"iS" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/turf/simulated/floor/tiled/techmaint/airless, +/area/shuttle/salamander_wreck) +"iW" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ + dir = 1 + }, +/turf/simulated/floor/tiled/techmaint/airless, +/area/shuttle/salamander_wreck) +"jl" = ( +/obj/machinery/door/firedoor/glass, +/obj/structure/grille, +/obj/structure/window/reinforced/full, +/obj/structure/window/reinforced{ + dir = 1 + }, +/turf/simulated/floor/plating, +/area/shuttle/salamander_wreck_cockpit) +"jq" = ( +/obj/effect/floor_decal/industrial/warning{ + dir = 4 + }, +/obj/structure/handrail{ + dir = 1 + }, +/obj/random/empty_or_lootable_crate, +/obj/structure/closet/walllocker_double/south{ + name = "Storage Locker" + }, +/turf/simulated/floor/tiled/techfloor{ + nitrogen = 0; + oxygen = 0 + }, +/area/shuttle/salamander_wreck) +"jT" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/manifold4w/hidden/scrubbers, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 1 + }, +/obj/effect/catwalk_plated, +/turf/simulated/floor/airless, +/area/shuttle/salamander_wreck) +"jV" = ( +/obj/machinery/door/airlock/multi_tile/glass{ + density = 0; + dir = 2; + icon_state = "door_open" + }, +/obj/machinery/door/firedoor/multi_tile{ + dir = 1 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/turf/simulated/floor/tiled/techmaint/airless, +/area/shuttle/salamander_wreck_cockpit) +"ks" = ( +/turf/simulated/floor/tiled/techmaint/airless, +/area/shuttle/salamander_wreck_cockpit) +"kx" = ( +/obj/machinery/atmospherics/binary/pump/fuel, +/turf/simulated/floor/airless, +/area/shuttle/salamander_wreck_engineering) +"kK" = ( +/obj/machinery/atmospherics/unary/vent_scrubber/on{ + dir = 1 + }, +/turf/simulated/floor/airless, +/area/shuttle/salamander_wreck_engineering) +"kL" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/handrail{ + dir = 8 + }, +/obj/structure/closet/autolok_wall{ + dir = 4; + pixel_x = 32 + }, +/turf/simulated/floor/tiled/techfloor{ + nitrogen = 0; + oxygen = 0 + }, +/area/shuttle/salamander_wreck_engineering) +"kU" = ( +/obj/machinery/suit_cycler/vintage/omni, +/obj/machinery/light{ + dir = 1 + }, +/obj/structure/railing/grey{ + dir = 8 + }, +/turf/simulated/floor/tiled/techfloor{ + nitrogen = 0; + oxygen = 0 + }, +/area/shuttle/salamander_wreck) +"kZ" = ( +/obj/effect/floor_decal/industrial/warning{ + dir = 9 + }, +/obj/machinery/atmospherics/unary/vent_pump/on{ + dir = 1 + }, +/obj/structure/railing/grey{ + dir = 1 + }, +/obj/random/empty_or_lootable_crate, +/turf/simulated/floor/tiled/techfloor{ + nitrogen = 0; + oxygen = 0 + }, +/area/shuttle/salamander_wreck) +"lc" = ( +/obj/effect/floor_decal/industrial/warning{ + dir = 5 + }, +/obj/structure/railing/grey{ + dir = 4 + }, +/obj/random/empty_or_lootable_crate, +/turf/simulated/floor/tiled/techfloor{ + nitrogen = 0; + oxygen = 0 + }, +/area/shuttle/salamander_wreck) +"ld" = ( +/obj/machinery/door/firedoor/glass, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/machinery/door/airlock/voidcraft{ + density = 0; + icon_state = "door_open" + }, +/turf/simulated/floor/tiled/techmaint/airless, +/area/shuttle/salamander_wreck_q2) +"ll" = ( +/obj/structure/handrail{ + dir = 1 + }, +/obj/machinery/alarm/alarms_hidden{ + dir = 4; + pixel_x = -26 + }, +/obj/machinery/atmospherics/unary/vent_scrubber/on{ + dir = 1 + }, +/obj/structure/closet/autolok_wall{ + dir = 1; + pixel_y = -32 + }, +/obj/structure/railing/grey{ + dir = 4 + }, +/obj/structure/bed/chair/bay/comfy{ + dir = 4 + }, +/obj/machinery/light/flicker{ + dir = 8 + }, +/turf/simulated/floor/tiled/techmaint/airless, +/area/shuttle/salamander_wreck_cockpit) +"lo" = ( +/obj/machinery/computer/ship/engines{ + dir = 1 + }, +/turf/simulated/floor/tiled/techfloor{ + nitrogen = 0; + oxygen = 0 + }, +/area/shuttle/salamander_wreck_cockpit) +"lt" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/fuel{ + dir = 4 + }, +/obj/machinery/door/firedoor/glass, +/obj/structure/grille, +/obj/structure/window/reinforced/full, +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/structure/window/reinforced{ + dir = 8 + }, +/turf/simulated/floor/airless, +/area/shuttle/salamander_wreck_engineering) +"lw" = ( +/obj/machinery/atmospherics/portables_connector, +/obj/effect/floor_decal/industrial/outline, +/turf/simulated/floor/airless, +/area/shuttle/salamander_wreck) +"lK" = ( +/obj/machinery/atmospherics/pipe/simple/visible{ + dir = 6 + }, +/turf/simulated/floor/airless, +/area/shuttle/salamander_wreck_engineering) +"lV" = ( +/obj/machinery/power/terminal{ + dir = 4 + }, +/obj/structure/cable, +/obj/structure/railing/grey{ + dir = 8 + }, +/obj/structure/closet/walllocker{ + dir = 1; + name = "Spare Fuel"; + pixel_y = -32 + }, +/obj/item/weapon/tool/crowbar/red, +/obj/machinery/light, +/turf/simulated/floor/tiled/techfloor{ + nitrogen = 0; + oxygen = 0 + }, +/area/shuttle/salamander_wreck_engineering) +"ma" = ( +/obj/structure/cable, +/obj/structure/frame, +/turf/simulated/floor/tiled/techfloor{ + nitrogen = 0; + oxygen = 0 + }, +/area/shuttle/salamander_wreck_engineering) +"mg" = ( +/obj/effect/map_helper/airlock/door/ext_door, +/obj/effect/map_helper/airlock/sensor/ext_sensor, +/obj/machinery/airlock_sensor/airlock_exterior/shuttle{ + pixel_x = 24; + pixel_y = -11 + }, +/obj/machinery/door/airlock/glass_external/public{ + density = 0; + icon_state = "door_open" + }, +/turf/simulated/floor/tiled/techmaint/airless, +/area/shuttle/salamander_wreck) +"mm" = ( +/obj/machinery/light{ + dir = 8 + }, +/turf/simulated/floor/tiled/techmaint/airless, +/area/shuttle/salamander_wreck) +"mE" = ( +/obj/effect/floor_decal/industrial/warning{ + dir = 8 + }, +/obj/structure/handrail{ + dir = 1 + }, +/obj/random/empty_or_lootable_crate, +/obj/structure/closet/walllocker_double/south{ + name = "Storage Locker" + }, +/turf/simulated/floor/tiled/techfloor{ + nitrogen = 0; + oxygen = 0 + }, +/area/shuttle/salamander_wreck) +"mJ" = ( +/obj/structure/handrail{ + dir = 1 + }, +/obj/random/empty_or_lootable_crate, +/obj/item/weapon/smes_coil, +/obj/structure/closet/walllocker_double/south{ + name = "Storage Locker" + }, +/turf/simulated/floor/tiled/techfloor{ + nitrogen = 0; + oxygen = 0 + }, +/area/shuttle/salamander_wreck) +"mO" = ( +/obj/random/empty_or_lootable_crate, +/obj/machinery/light/flicker, +/obj/structure/closet/walllocker_double/south{ + name = "Storage Locker" + }, +/turf/simulated/floor/tiled/techfloor{ + nitrogen = 0; + oxygen = 0 + }, +/area/shuttle/salamander_wreck) +"mR" = ( +/turf/simulated/wall/shull, +/area/shuttle/salamander_wreck_galley) +"mY" = ( +/obj/machinery/computer/ship/sensors, +/turf/simulated/floor/tiled/techfloor{ + nitrogen = 0; + oxygen = 0 + }, +/area/shuttle/salamander_wreck_cockpit) +"nB" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 9 + }, +/turf/simulated/floor/tiled/techfloor{ + nitrogen = 0; + oxygen = 0 + }, +/area/shuttle/salamander_wreck_q2) +"nE" = ( +/obj/machinery/atmospherics/unary/vent_pump/on, +/turf/simulated/floor/airless, +/area/shuttle/salamander_wreck_engineering) +"nH" = ( +/turf/simulated/wall/shull, +/area/shuttle/salamander_wreck_cockpit) +"nP" = ( +/turf/simulated/floor/airless, +/area/shuttle/salamander_wreck_engineering) +"nX" = ( +/obj/random/empty_or_lootable_crate, +/turf/simulated/floor/airless, +/area/shuttle/salamander_wreck_engineering) +"oa" = ( +/obj/machinery/atmospherics/portables_connector{ + dir = 1 + }, +/obj/effect/floor_decal/industrial/outline/red, +/obj/machinery/portable_atmospherics/canister/empty, +/turf/simulated/floor/airless, +/area/shuttle/salamander_wreck_engineering) +"oc" = ( +/obj/machinery/door/airlock/hatch{ + req_one_access = list() + }, +/obj/machinery/door/firedoor/glass, +/turf/simulated/floor/tiled/techmaint, +/area/shuttle/salamander_wreck) +"oe" = ( +/obj/machinery/door/airlock/glass_external/public, +/obj/effect/map_helper/airlock/door/int_door, +/turf/simulated/floor/tiled/techmaint, +/area/shuttle/salamander_wreck) +"oi" = ( +/obj/structure/closet/secure_closet/freezer/fridge, +/obj/item/weapon/storage/box/donkpockets, +/obj/item/weapon/storage/box/donkpockets, +/obj/random/snack, +/obj/random/snack, +/obj/random/snack, +/obj/random/snack, +/obj/random/snack, +/turf/simulated/floor/tiled/techfloor{ + nitrogen = 0; + oxygen = 0 + }, +/area/shuttle/salamander_wreck_galley) +"ot" = ( +/obj/machinery/door/firedoor/glass, +/obj/structure/grille, +/obj/structure/window/reinforced/full, +/turf/simulated/floor/plating, +/area/shuttle/salamander_wreck_cockpit) +"oC" = ( +/obj/machinery/pointdefense_control{ + id_tag = "salamander_wreck_pd"; + name = "salamander defense control" + }, +/turf/simulated/floor/tiled/techfloor{ + nitrogen = 0; + oxygen = 0 + }, +/area/shuttle/salamander_wreck_cockpit) +"oF" = ( +/obj/structure/bed/pod, +/obj/item/weapon/bedsheet/blue, +/obj/machinery/light_switch{ + dir = 4; + pixel_x = 22 + }, +/turf/simulated/floor/tiled/techfloor{ + nitrogen = 0; + oxygen = 0 + }, +/area/shuttle/salamander_wreck_q2) +"oI" = ( +/obj/structure/closet/autolok_wall{ + pixel_y = 32 + }, +/turf/simulated/floor/plating, +/area/shuttle/salamander_wreck) +"oL" = ( +/obj/machinery/atmospherics/pipe/manifold/hidden/supply, +/turf/simulated/floor/tiled/techmaint/airless, +/area/shuttle/salamander_wreck) +"pf" = ( +/obj/structure/handrail, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 8 + }, +/obj/machinery/light_switch{ + pixel_y = 23 + }, +/turf/simulated/floor/tiled/techmaint/airless, +/area/shuttle/salamander_wreck) +"px" = ( +/obj/machinery/atmospherics/pipe/manifold/visible{ + dir = 1 + }, +/obj/structure/catwalk, +/obj/machinery/light/small{ + dir = 1 + }, +/turf/simulated/floor/plating, +/area/shuttle/salamander_wreck) +"pG" = ( +/obj/machinery/door/blast/shutters{ + density = 0; + dir = 4; + icon_state = "shutter0"; + id = "trade"; + name = "Shop Shutters"; + opacity = 0 + }, +/obj/structure/table/steel_reinforced, +/obj/machinery/door/window/brigdoor/eastleft{ + layer = 2.9; + open_layer = 2.9; + req_access = list() + }, +/turf/simulated/floor/tiled/techmaint/airless, +/area/shuttle/salamander_wreck) +"pH" = ( +/obj/machinery/atmospherics/unary/vent_pump{ + dir = 8 + }, +/obj/effect/map_helper/airlock/atmos/chamber_pump, +/obj/structure/closet/walllocker/emerglocker/east, +/turf/simulated/floor/tiled/techmaint, +/area/shuttle/salamander_wreck) +"qg" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/turf/simulated/floor/tiled/techmaint/airless, +/area/shuttle/salamander_wreck) +"qh" = ( +/obj/machinery/computer/shuttle_control/explore/salamander_wreck{ + dir = 8 + }, +/turf/simulated/floor/tiled/techfloor{ + nitrogen = 0; + oxygen = 0 + }, +/area/shuttle/salamander_wreck_cockpit) +"qn" = ( +/obj/structure/handrail, +/obj/structure/cable{ + d2 = 4; + icon_state = "0-4" + }, +/obj/machinery/atmospherics/unary/vent_scrubber/on{ + dir = 4 + }, +/obj/structure/closet/autolok_wall{ + dir = 8; + pixel_x = -32 + }, +/obj/machinery/power/apc{ + dir = 1; + name = "north bump"; + pixel_y = 24; + start_charge = 0 + }, +/obj/structure/bed/chair/bay/chair{ + dir = 4 + }, +/turf/simulated/floor/tiled/techfloor{ + nitrogen = 0; + oxygen = 0 + }, +/area/shuttle/salamander_wreck_q2) +"qu" = ( +/obj/structure/table/steel, +/obj/machinery/light_switch{ + dir = 8; + pixel_x = -22 + }, +/obj/structure/closet/walllocker_double/kitchen/south, +/turf/simulated/floor/tiled/techfloor{ + nitrogen = 0; + oxygen = 0 + }, +/area/shuttle/salamander_wreck_galley) +"qx" = ( +/obj/machinery/light/small/flicker, +/turf/simulated/floor/plating, +/area/shuttle/salamander_wreck) +"qE" = ( +/obj/structure/handrail{ + dir = 1 + }, +/obj/structure/catwalk, +/turf/simulated/floor/plating, +/area/shuttle/salamander_wreck) +"qQ" = ( +/obj/random/empty_or_lootable_crate, +/turf/simulated/floor/plating, +/area/shuttle/salamander_wreck) +"ri" = ( +/obj/machinery/atmospherics/portables_connector{ + dir = 1 + }, +/obj/effect/floor_decal/industrial/outline, +/turf/simulated/floor/plating, +/area/shuttle/salamander_wreck) +"rj" = ( +/obj/machinery/door/firedoor/glass, +/obj/structure/grille, +/obj/structure/window/reinforced/full, +/obj/structure/window/reinforced{ + dir = 4 + }, +/turf/simulated/floor/plating, +/area/shuttle/salamander_wreck_cockpit) +"rt" = ( +/obj/machinery/button/remote/blast_door{ + id = "trade"; + name = "Shop Shutters"; + pixel_y = -26 + }, +/obj/structure/bed/chair/bay/chair{ + dir = 1 + }, +/turf/simulated/floor/tiled/techmaint/airless, +/area/shuttle/salamander_wreck) +"rw" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold4w/hidden/scrubbers, +/turf/simulated/floor/tiled/techmaint/airless, +/area/shuttle/salamander_wreck) +"ry" = ( +/obj/machinery/door/window/brigdoor/eastright{ + density = 0; + icon_state = "rightsecureopen"; + req_access = list() + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/simulated/floor/tiled/techmaint/airless, +/area/shuttle/salamander_wreck) +"sb" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/fuel{ + dir = 4 + }, +/turf/simulated/floor/tiled/techmaint/airless, +/area/shuttle/salamander_wreck_engineering) +"tA" = ( +/obj/machinery/power/pointdefense{ + id_tag = "salamander_wreck_pd" + }, +/turf/simulated/floor/airless, +/area/shuttle/salamander_wreck_engineering) +"tL" = ( +/obj/structure/girder, +/turf/simulated/floor/airless, +/area/shuttle/salamander_wreck_engineering) +"ur" = ( +/obj/machinery/door/firedoor/glass, +/obj/structure/grille, +/obj/structure/window/reinforced/full, +/obj/structure/window/reinforced, +/obj/structure/window/reinforced{ + dir = 4 + }, +/turf/simulated/floor/plating, +/area/shuttle/salamander_wreck_cockpit) +"vi" = ( +/obj/structure/table/steel, +/obj/machinery/microwave/advanced, +/obj/machinery/alarm/alarms_hidden{ + dir = 8; + pixel_x = 26 + }, +/obj/machinery/light, +/turf/simulated/floor/tiled/techfloor{ + nitrogen = 0; + oxygen = 0 + }, +/area/shuttle/salamander_wreck_galley) +"vI" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 8 + }, +/turf/simulated/floor/tiled/techmaint/airless, +/area/shuttle/salamander_wreck_cockpit) +"wF" = ( +/obj/machinery/atmospherics/pipe/simple/visible{ + dir = 6 + }, +/obj/structure/catwalk, +/turf/simulated/floor/plating, +/area/shuttle/salamander_wreck) +"xL" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/obj/item/weapon/tank/phoron/pressurized, +/obj/structure/closet/walllocker_double/south{ + name = "Uniform Locker" + }, +/turf/simulated/floor/tiled/techmaint/airless, +/area/shuttle/salamander_wreck) +"yv" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/obj/machinery/light/flicker, +/obj/structure/closet/walllocker_double/south{ + name = "Uniform Locker" + }, +/turf/simulated/floor/tiled/techmaint/airless, +/area/shuttle/salamander_wreck) +"zO" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/fuel{ + dir = 4 + }, +/turf/simulated/floor/tiled/techfloor{ + nitrogen = 0; + oxygen = 0 + }, +/area/shuttle/salamander_wreck_engineering) +"zQ" = ( +/obj/machinery/atmospherics/unary/vent_pump/on{ + dir = 1 + }, +/turf/simulated/floor/tiled/techfloor{ + nitrogen = 0; + oxygen = 0 + }, +/area/shuttle/salamander_wreck_q2) +"AD" = ( +/obj/machinery/atmospherics/pipe/manifold4w/hidden/fuel, +/obj/structure/catwalk, +/turf/simulated/floor/airless, +/area/shuttle/salamander_wreck_engineering) +"AN" = ( +/obj/structure/handrail{ + dir = 1 + }, +/obj/structure/cable{ + d2 = 4; + icon_state = "0-4" + }, +/obj/machinery/atmospherics/unary/vent_scrubber/on{ + dir = 4 + }, +/obj/structure/closet/autolok_wall{ + dir = 8; + pixel_x = -32 + }, +/obj/machinery/power/apc{ + name = "south bump"; + pixel_y = -24; + start_charge = 0 + }, +/turf/simulated/floor/tiled/techfloor{ + nitrogen = 0; + oxygen = 0 + }, +/area/shuttle/salamander_wreck_q2) +"Bf" = ( +/obj/machinery/light{ + dir = 1 + }, +/obj/random/empty_or_lootable_crate, +/obj/structure/closet/walllocker_double/north{ + name = "Storage Locker" + }, +/turf/simulated/floor/tiled/techfloor{ + nitrogen = 0; + oxygen = 0 + }, +/area/shuttle/salamander_wreck) +"BE" = ( +/obj/effect/map_helper/airlock/door/int_door, +/obj/machinery/door/airlock/glass_external/public{ + density = 0; + icon_state = "door_open" + }, +/turf/simulated/floor/tiled/techmaint/airless, +/area/shuttle/salamander_wreck) +"BG" = ( +/obj/structure/lattice, +/obj/structure/grille/broken, +/turf/template_noop, +/area/shuttle/salamander_wreck) +"BW" = ( +/obj/machinery/atmospherics/pipe/manifold4w/hidden/supply, +/obj/machinery/atmospherics/pipe/simple/hidden/fuel{ + dir = 4 + }, +/turf/simulated/floor/tiled/techmaint/airless, +/area/shuttle/salamander_wreck) +"Df" = ( +/obj/machinery/atmospherics/pipe/manifold/hidden/fuel{ + dir = 4 + }, +/obj/structure/catwalk, +/turf/simulated/floor/airless, +/area/shuttle/salamander_wreck_engineering) +"DB" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 8 + }, +/turf/simulated/floor/tiled/techmaint/airless, +/area/shuttle/salamander_wreck_cockpit) +"DK" = ( +/obj/machinery/atmospherics/pipe/simple/hidden{ + dir = 4 + }, +/turf/simulated/wall/shull, +/area/shuttle/salamander_wreck) +"DM" = ( +/obj/machinery/door/firedoor/glass, +/obj/structure/grille, +/obj/structure/window/reinforced/full, +/obj/structure/window/reinforced, +/obj/structure/window/reinforced{ + dir = 1 + }, +/turf/simulated/floor/plating, +/area/shuttle/salamander_wreck_galley) +"Fu" = ( +/obj/machinery/atmospherics/pipe/simple/hidden{ + dir = 5 + }, +/obj/machinery/embedded_controller/radio/airlock/docking_port_multi{ + dir = 4; + id_tag = "salamander_wreck_docking_star"; + name = "Starboard Airlock Control"; + pixel_x = -22 + }, +/obj/machinery/light{ + dir = 8 + }, +/turf/simulated/floor/tiled/techmaint/airless, +/area/shuttle/salamander_wreck) +"FL" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/fuel{ + dir = 4 + }, +/turf/simulated/floor/tiled/techmaint/airless, +/area/shuttle/salamander_wreck) +"Gj" = ( +/obj/machinery/door/firedoor/glass, +/obj/structure/grille, +/obj/structure/window/reinforced/full, +/obj/structure/window/reinforced, +/turf/simulated/floor/plating, +/area/shuttle/salamander_wreck_cockpit) +"HG" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/handrail{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/turf/simulated/floor/tiled/techmaint/airless, +/area/shuttle/salamander_wreck) +"HQ" = ( +/obj/structure/catwalk, +/turf/simulated/floor/airless, +/area/shuttle/salamander_wreck) +"HR" = ( +/obj/machinery/shipsensors{ + dir = 4 + }, +/obj/machinery/light{ + dir = 1 + }, +/turf/simulated/floor/airless, +/area/shuttle/salamander_wreck_cockpit) +"Il" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/fuel{ + dir = 9 + }, +/turf/simulated/floor/airless, +/area/shuttle/salamander_wreck_engineering) +"IL" = ( +/obj/structure/handrail{ + dir = 1 + }, +/obj/machinery/atmospherics/unary/vent_scrubber/on{ + dir = 1 + }, +/obj/structure/closet/walllocker_double/south{ + name = "Voidsuit Locker" + }, +/turf/simulated/floor/tiled/techfloor{ + nitrogen = 0; + oxygen = 0 + }, +/area/shuttle/salamander_wreck) +"IQ" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 10 + }, +/turf/simulated/floor/tiled/techmaint/airless, +/area/shuttle/salamander_wreck_cockpit) +"IR" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 8 + }, +/turf/simulated/floor/tiled/techmaint/airless, +/area/shuttle/salamander_wreck) +"Jq" = ( +/obj/machinery/computer/ship/helm{ + dir = 8; + req_one_access = list() + }, +/turf/simulated/floor/tiled/techfloor{ + nitrogen = 0; + oxygen = 0 + }, +/area/shuttle/salamander_wreck_cockpit) +"Kn" = ( +/obj/structure/table/steel_reinforced, +/obj/machinery/door/blast/shutters{ + density = 0; + dir = 4; + icon_state = "shutter0"; + id = "trade"; + name = "Shop Shutters"; + opacity = 0 + }, +/obj/structure/railing/grey, +/obj/structure/window/reinforced, +/obj/machinery/door/window/brigdoor/eastright{ + layer = 2.9; + open_layer = 2.9; + req_access = list() + }, +/turf/simulated/floor/tiled/techmaint/airless, +/area/shuttle/salamander_wreck) +"Kw" = ( +/obj/effect/map_helper/airlock/sensor/chamber_sensor, +/obj/machinery/atmospherics/pipe/manifold/hidden{ + dir = 1 + }, +/obj/machinery/airlock_sensor{ + dir = 4; + pixel_x = -21 + }, +/turf/simulated/floor/tiled/techmaint/airless, +/area/shuttle/salamander_wreck) +"KX" = ( +/obj/structure/handrail, +/obj/random/empty_or_lootable_crate, +/obj/structure/closet/walllocker_double/north{ + name = "Storage Locker" + }, +/turf/simulated/floor/tiled/techfloor{ + nitrogen = 0; + oxygen = 0 + }, +/area/shuttle/salamander_wreck) +"Lf" = ( +/obj/effect/floor_decal/industrial/warning, +/obj/random/empty_or_lootable_crate, +/turf/simulated/floor/tiled/techfloor{ + nitrogen = 0; + oxygen = 0 + }, +/area/shuttle/salamander_wreck) +"LJ" = ( +/obj/structure/lattice, +/turf/template_noop, +/area/shuttle/salamander_wreck_engineering) +"No" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 9 + }, +/turf/simulated/floor/tiled/techfloor{ + nitrogen = 0; + oxygen = 0 + }, +/area/shuttle/salamander_wreck_galley) +"NR" = ( +/obj/machinery/button/remote/blast_door{ + dir = 1; + id = "trade"; + name = "Shop Shutters"; + pixel_y = 26 + }, +/obj/structure/bed/chair/bay/chair, +/turf/simulated/floor/tiled/techmaint/airless, +/area/shuttle/salamander_wreck) +"OI" = ( +/obj/machinery/door/blast/shutters{ + density = 0; + dir = 4; + icon_state = "shutter0"; + id = "trade"; + name = "Shop Shutters"; + opacity = 0 + }, +/obj/structure/table/steel_reinforced, +/obj/machinery/door/window/brigdoor/eastright{ + layer = 2.9; + open_layer = 2.9; + req_access = list() + }, +/turf/simulated/floor/tiled/techmaint/airless, +/area/shuttle/salamander_wreck) +"ON" = ( +/obj/effect/floor_decal/industrial/warning{ + dir = 1 + }, +/obj/random/empty_or_lootable_crate, +/turf/simulated/floor/tiled/techfloor{ + nitrogen = 0; + oxygen = 0 + }, +/area/shuttle/salamander_wreck) +"OU" = ( +/obj/structure/bed/chair/bay/comfy{ + dir = 4 + }, +/turf/simulated/floor/tiled/techmaint/airless, +/area/shuttle/salamander_wreck_cockpit) +"Pc" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/turf/simulated/floor/airless, +/area/shuttle/salamander_wreck) +"Pk" = ( +/obj/machinery/atmospherics/unary/vent_scrubber/on{ + dir = 1 + }, +/turf/simulated/floor/tiled/techmaint/airless, +/area/shuttle/salamander_wreck) +"Ps" = ( +/obj/structure/girder, +/turf/simulated/floor/airless, +/area/shuttle/salamander_wreck) +"PN" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/fuel{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/turf/simulated/floor/tiled/techmaint/airless, +/area/shuttle/salamander_wreck) +"Qn" = ( +/turf/simulated/floor/tiled/techmaint/airless, +/area/shuttle/salamander_wreck) +"Qq" = ( +/obj/machinery/door/firedoor/glass, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/machinery/door/airlock/voidcraft{ + density = 0; + icon_state = "door_open" + }, +/turf/simulated/floor/tiled/techmaint/airless, +/area/shuttle/salamander_wreck_galley) +"Rb" = ( +/obj/machinery/atmospherics/unary/vent_pump{ + dir = 8 + }, +/obj/effect/map_helper/airlock/atmos/chamber_pump, +/obj/structure/closet/walllocker/emerglocker/east, +/turf/simulated/floor/tiled/techmaint/airless, +/area/shuttle/salamander_wreck) +"Rd" = ( +/obj/effect/floor_decal/industrial/warning{ + dir = 4 + }, +/obj/structure/handrail, +/obj/random/empty_or_lootable_crate, +/obj/item/weapon/smes_coil, +/obj/structure/closet/walllocker_double/north{ + name = "Storage Locker" + }, +/turf/simulated/floor/tiled/techfloor{ + nitrogen = 0; + oxygen = 0 + }, +/area/shuttle/salamander_wreck) +"RO" = ( +/obj/structure/bed/pod, +/obj/item/weapon/bedsheet/blue, +/obj/machinery/alarm/alarms_hidden{ + dir = 8; + pixel_x = 26 + }, +/turf/simulated/floor/tiled/techfloor{ + nitrogen = 0; + oxygen = 0 + }, +/area/shuttle/salamander_wreck_q2) +"RU" = ( +/obj/machinery/atmospherics/unary/vent_pump/on{ + dir = 1 + }, +/turf/simulated/floor/tiled/techfloor{ + nitrogen = 0; + oxygen = 0 + }, +/area/shuttle/salamander_wreck_galley) +"Sb" = ( +/obj/structure/table/steel_reinforced, +/obj/machinery/door/blast/shutters{ + density = 0; + dir = 4; + icon_state = "shutter0"; + id = "trade"; + name = "Shop Shutters"; + opacity = 0 + }, +/obj/structure/railing/grey{ + dir = 1 + }, +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/machinery/door/window/brigdoor/eastleft{ + layer = 2.9; + open_layer = 2.9; + req_access = list() + }, +/turf/simulated/floor/tiled/techmaint/airless, +/area/shuttle/salamander_wreck) +"Sp" = ( +/obj/structure/table/steel, +/obj/machinery/light, +/obj/item/weapon/paper/unity_notice, +/turf/simulated/floor/tiled/techfloor{ + nitrogen = 0; + oxygen = 0 + }, +/area/shuttle/salamander_wreck_q2) +"Td" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/structure/railing/grey{ + dir = 8 + }, +/obj/structure/table/steel, +/obj/structure/fuel_port/empty{ + pixel_y = 28 + }, +/obj/machinery/light/flicker{ + dir = 1 + }, +/obj/item/weapon/smes_coil, +/turf/simulated/floor/tiled/techfloor{ + nitrogen = 0; + oxygen = 0 + }, +/area/shuttle/salamander_wreck_engineering) +"Tg" = ( +/turf/simulated/wall/shull, +/area/shuttle/salamander_wreck_head) +"Tl" = ( +/obj/structure/railing/grey{ + dir = 8 + }, +/obj/structure/handrail{ + dir = 1 + }, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/effect/floor_decal/industrial/warning{ + dir = 8 + }, +/obj/structure/closet/walllocker_double/south{ + name = "Voidsuit Locker" + }, +/turf/simulated/floor/tiled/techfloor{ + nitrogen = 0; + oxygen = 0 + }, +/area/shuttle/salamander_wreck) +"TG" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 8 + }, +/obj/machinery/door/window/brigdoor/westright{ + density = 0; + icon_state = "rightsecureopen"; + req_access = list() + }, +/turf/simulated/floor/tiled/techmaint/airless, +/area/shuttle/salamander_wreck) +"UT" = ( +/obj/machinery/door/airlock/glass_external/public{ + density = 0; + icon_state = "door_open" + }, +/obj/effect/map_helper/airlock/door/ext_door, +/turf/simulated/floor/tiled/techmaint/airless, +/area/shuttle/salamander_wreck) +"Vh" = ( +/obj/structure/cable{ + d2 = 2; + icon_state = "0-2" + }, +/obj/structure/handrail{ + dir = 8 + }, +/obj/machinery/power/apc{ + dir = 4; + name = "east bump"; + pixel_x = 24; + start_charge = 0 + }, +/turf/simulated/floor/tiled/techfloor{ + nitrogen = 0; + oxygen = 0 + }, +/area/shuttle/salamander_wreck_engineering) +"Vs" = ( +/obj/structure/catwalk, +/turf/simulated/floor/plating, +/area/shuttle/salamander_wreck) +"Vz" = ( +/turf/simulated/wall/shull, +/area/shuttle/salamander_wreck_q2) +"VK" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 5 + }, +/obj/structure/catwalk, +/obj/structure/railing/grey{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/fuel{ + dir = 4 + }, +/turf/simulated/floor/airless, +/area/shuttle/salamander_wreck_engineering) +"VT" = ( +/turf/simulated/wall/shull, +/area/shuttle/salamander_wreck) +"VW" = ( +/obj/machinery/atmospherics/pipe/simple/visible{ + dir = 5 + }, +/obj/structure/catwalk, +/turf/simulated/floor/airless, +/area/shuttle/salamander_wreck) +"Wj" = ( +/turf/simulated/wall/shull, +/area/shuttle/salamander_wreck_engineering) +"Wv" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/universal, +/turf/simulated/floor/airless, +/area/shuttle/salamander_wreck_engineering) +"WN" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/door/airlock/multi_tile/metal{ + density = 0; + dir = 2; + icon_state = "door_open"; + name = "Salamander Engineering Bay"; + opacity = 0 + }, +/obj/machinery/door/firedoor/multi_tile{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/turf/simulated/floor/tiled/techmaint/airless, +/area/shuttle/salamander_wreck_engineering) +"WP" = ( +/turf/template_noop, +/area/template_noop) +"WW" = ( +/obj/random/empty_or_lootable_crate, +/turf/simulated/floor/airless, +/area/shuttle/salamander_wreck) +"Xc" = ( +/obj/structure/railing/grey{ + dir = 8 + }, +/obj/structure/handrail, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/effect/floor_decal/industrial/warning{ + dir = 8 + }, +/obj/structure/closet/walllocker_double/north{ + name = "Voidsuit Locker" + }, +/turf/simulated/floor/tiled/techfloor{ + nitrogen = 0; + oxygen = 0 + }, +/area/shuttle/salamander_wreck) +"Xn" = ( +/obj/effect/floor_decal/industrial/warning{ + dir = 8 + }, +/obj/structure/handrail, +/obj/random/empty_or_lootable_crate, +/obj/structure/closet/walllocker_double/north{ + name = "Storage Locker" + }, +/turf/simulated/floor/tiled/techfloor{ + nitrogen = 0; + oxygen = 0 + }, +/area/shuttle/salamander_wreck) +"Xr" = ( +/obj/machinery/atmospherics/pipe/manifold/visible, +/obj/structure/catwalk, +/obj/machinery/light/small/flicker, +/turf/simulated/floor/airless, +/area/shuttle/salamander_wreck) +"Xs" = ( +/obj/machinery/power/port_gen/pacman/mrs{ + anchored = 1 + }, +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/obj/machinery/alarm/alarms_hidden{ + pixel_y = 26 + }, +/obj/machinery/light_switch{ + dir = 4; + pixel_x = 22 + }, +/turf/simulated/floor/tiled/techfloor{ + nitrogen = 0; + oxygen = 0 + }, +/area/shuttle/salamander_wreck_engineering) +"XJ" = ( +/obj/structure/handrail, +/obj/structure/catwalk, +/turf/simulated/floor/airless, +/area/shuttle/salamander_wreck) +"ZK" = ( +/obj/structure/closet/autolok_wall{ + dir = 1; + pixel_y = -32 + }, +/turf/simulated/floor/airless, +/area/shuttle/salamander_wreck) +"ZU" = ( +/obj/machinery/embedded_controller/radio/docking_port_multi{ + child_names_txt = "Port Airlock Control;Starboard Airlock Control"; + child_tags_txt = "salamander_wreck_docking_port;salamander_wreck_docking_star"; + dir = 1; + id_tag = "salamander_docking"; + name = "Salamander Master Docking Controller"; + pixel_y = -22 + }, +/obj/structure/cable, +/obj/machinery/light, +/obj/structure/railing/grey{ + dir = 8 + }, +/obj/machinery/power/apc{ + dir = 4; + name = "east bump"; + pixel_x = 24; + start_charge = 0 + }, +/turf/simulated/floor/tiled/techfloor{ + nitrogen = 0; + oxygen = 0 + }, +/area/shuttle/salamander_wreck) + +(1,1,1) = {" +WP +WP +WP +WP +WP +WP +WP +WP +WP +WP +WP +WP +WP +WP +WP +WP +"} +(2,1,1) = {" +WP +WP +WP +WP +Wj +nP +fn +Wj +Wj +nP +fn +Wj +WP +WP +WP +WP +"} +(3,1,1) = {" +WP +WP +WP +Wj +Wj +dm +fB +Wj +Wj +dm +fB +Wj +Wj +WP +WP +WP +"} +(4,1,1) = {" +WP +WP +WP +tL +Wj +dn +dn +Wj +Wj +dn +lt +Wj +LJ +WP +WP +WP +"} +(5,1,1) = {" +WP +WP +WP +nP +nP +dT +nP +gD +hC +ee +nP +nP +LJ +WP +WP +WP +"} +(6,1,1) = {" +WP +WP +WP +tL +nX +ee +fD +AD +Df +kx +Il +nX +LJ +WP +WP +WP +"} +(7,1,1) = {" +WP +WP +WP +Wj +bK +eg +nE +VK +if +kK +lK +oa +Wj +WP +WP +WP +"} +(8,1,1) = {" +WP +WP +tA +Wj +bK +ey +Wv +gL +ii +Wv +ey +oa +Wj +tA +WP +WP +"} +(9,1,1) = {" +WP +WP +VT +VT +Wj +Td +fE +zO +im +fE +lV +Wj +VT +VT +WP +WP +"} +(10,1,1) = {" +WP +VT +VT +WW +Wj +Xs +Vh +bY +is +kL +ma +Wj +qQ +VT +VT +WP +"} +(11,1,1) = {" +WP +VT +Pc +ZK +Wj +Wj +Wj +sb +WN +Wj +Wj +Wj +oI +qx +VT +WP +"} +(12,1,1) = {" +WP +VT +XJ +HQ +bL +eB +fG +FL +iC +fG +mm +oc +Vs +qE +VT +WP +"} +(13,1,1) = {" +WP +BG +WW +HQ +VT +Xn +fP +BW +iJ +kZ +mE +VT +Vs +qQ +VT +WP +"} +(14,1,1) = {" +WP +BG +WW +HQ +VT +KX +Lf +FL +iC +ON +mJ +VT +Vs +qQ +VT +WP +"} +(15,1,1) = {" +WP +BG +WW +HQ +VT +Bf +Lf +FL +iC +ON +mO +VT +Vs +qQ +VT +WP +"} +(16,1,1) = {" +WP +Ps +lw +VW +VT +Rd +fR +FL +iC +lc +jq +VT +wF +ri +VT +WP +"} +(17,1,1) = {" +WP +VT +lw +Xr +VT +NR +iK +PN +rw +Pk +rt +VT +px +ri +VT +WP +"} +(18,1,1) = {" +WP +VT +VT +DK +VT +pG +Kn +iL +ry +Sb +OI +VT +DK +VT +VT +WP +"} +(19,1,1) = {" +WP +ab +aL +bu +cX +fX +fX +hh +iC +Qn +Qn +BE +Kw +Fu +UT +WP +"} +(20,1,1) = {" +WP +aK +pH +pH +oe +eJ +Qn +IR +iC +Qn +eJ +BE +Rb +Rb +mg +WP +"} +(21,1,1) = {" +WP +VT +VT +VT +VT +VT +Xc +TG +hO +Tl +VT +VT +VT +VT +VT +WP +"} +(22,1,1) = {" +WP +WP +Tg +br +cq +Tg +fZ +oL +iW +IL +mR +bI +qu +mR +WP +WP +"} +(23,1,1) = {" +WP +WP +Tg +bN +dO +eP +iS +hp +jT +iS +Qq +No +RU +DM +WP +WP +"} +(24,1,1) = {" +WP +WP +Tg +bP +cC +Tg +kU +IR +qg +ZU +mR +oi +vi +mR +WP +WP +"} +(25,1,1) = {" +WP +WP +Tg +Tg +Tg +Tg +VT +pf +HG +VT +mR +mR +mR +mR +WP +WP +"} +(26,1,1) = {" +WP +WP +bk +Vz +cY +AN +Vz +hn +yv +Vz +qn +Sp +Vz +bk +WP +WP +"} +(27,1,1) = {" +WP +WP +WP +ci +eG +gl +ld +hp +jT +ld +nB +zQ +ci +WP +WP +WP +"} +(28,1,1) = {" +WP +WP +WP +Vz +oF +RO +Vz +fh +xL +Vz +RO +oF +Vz +WP +WP +WP +"} +(29,1,1) = {" +WP +WP +WP +Vz +Vz +Vz +Vz +DB +jV +Vz +Vz +Vz +Vz +WP +WP +WP +"} +(30,1,1) = {" +WP +WP +WP +WP +WP +nH +gv +vI +IQ +ll +nH +HR +WP +WP +WP +WP +"} +(31,1,1) = {" +WP +WP +WP +WP +WP +jl +gC +hr +ks +oC +Gj +WP +WP +WP +WP +WP +"} +(32,1,1) = {" +WP +WP +WP +WP +WP +jl +mY +OU +hK +lo +Gj +WP +WP +WP +WP +WP +"} +(33,1,1) = {" +WP +WP +WP +WP +WP +gM +ot +qh +Jq +ot +ur +WP +WP +WP +WP +WP +"} +(34,1,1) = {" +WP +WP +WP +WP +WP +WP +gM +rj +rj +ur +WP +WP +WP +WP +WP +WP +"} +(35,1,1) = {" +WP +WP +WP +WP +WP +WP +WP +WP +WP +WP +WP +WP +WP +WP +WP +WP +"} diff --git a/maps/offmap_vr/talon/talon.dm b/maps/offmap_vr/talon/talon.dm index b11afb614f..45c5d28dc8 100644 --- a/maps/offmap_vr/talon/talon.dm +++ b/maps/offmap_vr/talon/talon.dm @@ -404,7 +404,7 @@ Once in open space, consider disabling nonessential power-consuming electronics /datum/tgui_module/camera/ntos/talon_ship name = "Talon Ship Camera Monitor" -/datum/tgui_module/camera/ntos/New(host) +/datum/tgui_module/camera/ntos/talon_ship/New(host) . = ..(host, list(NETWORK_TALON_SHIP, NETWORK_THUNDER)) /datum/tgui_module/camera/ntos/talon_helmet diff --git a/maps/offmap_vr/talon/talon1.dmm b/maps/offmap_vr/talon/talon1.dmm index b63d7c156e..b194f0220a 100644 --- a/maps/offmap_vr/talon/talon1.dmm +++ b/maps/offmap_vr/talon/talon1.dmm @@ -53,8 +53,7 @@ "ah" = ( /obj/effect/floor_decal/industrial/outline/grey, /obj/machinery/atmospherics/portables_connector/aux{ - dir = 4; - icon_state = "map_connector-aux" + dir = 4 }, /obj/machinery/portable_atmospherics/canister/air/airlock, /turf/simulated/floor/tiled/eris/steel/gray_perforated, @@ -69,8 +68,7 @@ /area/talon/deckone/bridge) "aj" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4; - icon_state = "intact-scrubbers" + dir = 4 }, /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 @@ -96,8 +94,7 @@ /obj/item/weapon/pen, /obj/machinery/alarm/talon{ dir = 8; - pixel_x = 22; - pixel_y = 0 + pixel_x = 22 }, /turf/simulated/floor/tiled/eris/steel, /area/talon/deckone/brig) @@ -122,8 +119,7 @@ /area/talon/maintenance/deckone_port) "an" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4; - icon_state = "intact-scrubbers" + dir = 4 }, /obj/structure/cable/green{ d1 = 1; @@ -150,8 +146,7 @@ /area/talon/maintenance/deckone_port) "aq" = ( /obj/machinery/camera/network/talon{ - dir = 9; - icon_state = "camera" + dir = 9 }, /obj/machinery/disposal, /obj/structure/disposalpipe/trunk{ @@ -196,16 +191,14 @@ }, /obj/machinery/alarm/talon{ dir = 8; - pixel_x = 22; - pixel_y = 0 + pixel_x = 22 }, /turf/simulated/floor/tiled/eris/dark/brown_perforated, /area/talon/deckone/port_eng) "au" = ( /obj/effect/floor_decal/industrial/outline/grey, /obj/machinery/atmospherics/portables_connector/aux{ - dir = 8; - icon_state = "map_connector-aux" + dir = 8 }, /obj/machinery/portable_atmospherics/canister/air/airlock, /turf/simulated/floor/tiled/eris/steel/gray_perforated, @@ -223,6 +216,9 @@ }, /obj/structure/table/standard, /obj/machinery/chemical_dispenser/full, +/obj/machinery/light{ + dir = 4 + }, /turf/simulated/floor/tiled/eris/white/bluecorner, /area/talon/deckone/medical) "ax" = ( @@ -241,8 +237,7 @@ icon_state = "1-2" }, /obj/machinery/light/small{ - dir = 4; - pixel_y = 0 + dir = 4 }, /turf/simulated/floor/plating/eris/under, /area/talon/maintenance/deckone_port) @@ -254,8 +249,7 @@ icon_state = "1-2" }, /obj/machinery/light/small{ - dir = 8; - pixel_x = 0 + dir = 8 }, /turf/simulated/floor/plating/eris/under, /area/talon/maintenance/deckone_starboard) @@ -322,35 +316,32 @@ "aG" = ( /obj/structure/catwalk, /obj/machinery/atmospherics/pipe/simple/heat_exchanging/junction{ - dir = 8; - icon_state = "intact" + dir = 8 }, /obj/machinery/atmospherics/pipe/simple/heat_exchanging/junction{ - dir = 8; - icon_state = "intact" + dir = 8 }, /obj/structure/handrail{ dir = 8 }, -/turf/space, +/turf/simulated/floor/plating/eris/under, /area/talon/maintenance/deckone_port_fore_wing) "aH" = ( /obj/structure/catwalk, /obj/machinery/atmospherics/pipe/simple/heat_exchanging/junction{ - dir = 4; - icon_state = "intact" + dir = 4 }, /obj/structure/handrail{ dir = 4 }, -/turf/space, +/turf/simulated/floor/plating/eris/under, /area/talon/maintenance/deckone_starboard_fore_wing) "aI" = ( /obj/structure/catwalk, /obj/structure/sign/warning/moving_parts{ pixel_x = 30 }, -/turf/space, +/turf/simulated/floor/plating/eris/under, /area/talon/maintenance/deckone_port_fore_wing) "aJ" = ( /obj/structure/table/rack/shelf/steel, @@ -404,7 +395,6 @@ "aQ" = ( /obj/machinery/computer/ship/engines{ dir = 8; - icon_state = "computer"; req_one_access = list(301) }, /turf/simulated/floor/tiled/eris/dark/cyancorner, @@ -417,7 +407,7 @@ /obj/structure/sign/warning/moving_parts{ pixel_x = -30 }, -/turf/space, +/turf/simulated/floor/plating/eris/under, /area/talon/maintenance/deckone_starboard_fore_wing) "aT" = ( /obj/structure/catwalk, @@ -426,7 +416,7 @@ d2 = 8; icon_state = "4-8" }, -/turf/space, +/turf/simulated/floor/plating/eris/under, /area/talon/maintenance/deckone_port_fore_wing) "aU" = ( /obj/structure/catwalk, @@ -434,14 +424,13 @@ dir = 1; icon_state = "4-8" }, -/turf/space, +/turf/simulated/floor/plating/eris/under, /area/talon/maintenance/deckone_starboard_fore_wing) "aV" = ( /obj/machinery/atmospherics/pipe/simple/hidden/aux, /obj/structure/catwalk, /obj/machinery/light/small{ - dir = 4; - pixel_y = 0 + dir = 4 }, /turf/simulated/floor/plating/eris/under, /area/talon/maintenance/deckone_port) @@ -467,11 +456,11 @@ /area/talon/deckone/armory) "aZ" = ( /obj/structure/catwalk, -/turf/space, +/turf/simulated/floor/plating/eris/under, /area/talon/maintenance/deckone_port_fore_wing) "ba" = ( /obj/structure/catwalk, -/turf/space, +/turf/simulated/floor/plating/eris/under, /area/talon/maintenance/deckone_starboard_fore_wing) "bb" = ( /obj/machinery/atmospherics/unary/vent_scrubber/on{ @@ -487,14 +476,14 @@ /obj/structure/handrail{ dir = 8 }, -/turf/space, +/turf/simulated/floor/plating/eris/under, /area/talon/maintenance/deckone_port_aft_wing) "bd" = ( /obj/structure/catwalk, /obj/structure/handrail{ dir = 4 }, -/turf/space, +/turf/simulated/floor/plating/eris/under, /area/talon/maintenance/deckone_starboard_aft_wing) "be" = ( /obj/machinery/atmospherics/pipe/simple/hidden/supply, @@ -517,8 +506,7 @@ dir = 4 }, /obj/structure/disposalpipe/segment{ - dir = 4; - icon_state = "pipe-s" + dir = 4 }, /turf/simulated/floor/tiled/eris/steel, /area/talon/deckone/brig) @@ -539,11 +527,15 @@ /obj/item/device/robotanalyzer{ pixel_y = -8 }, +/obj/machinery/alarm/talon{ + dir = 8; + pixel_x = 22 + }, /turf/simulated/floor/tiled/eris/white/bluecorner, /area/talon/deckone/medical) "bi" = ( /obj/structure/catwalk, -/turf/space, +/turf/simulated/floor/plating/eris/under, /area/talon/maintenance/deckone_port_aft_wing) "bj" = ( /obj/structure/window/reinforced, @@ -558,7 +550,7 @@ /area/talon/maintenance/deckone_starboard) "bl" = ( /obj/structure/catwalk, -/turf/space, +/turf/simulated/floor/plating/eris/under, /area/talon/maintenance/deckone_starboard_aft_wing) "bm" = ( /obj/structure/catwalk, @@ -567,7 +559,7 @@ d2 = 8; icon_state = "4-8" }, -/turf/space, +/turf/simulated/floor/plating/eris/under, /area/talon/maintenance/deckone_port_aft_wing) "bn" = ( /obj/structure/catwalk, @@ -576,23 +568,21 @@ d2 = 8; icon_state = "4-8" }, -/turf/space, +/turf/simulated/floor/plating/eris/under, /area/talon/maintenance/deckone_starboard_aft_wing) "bo" = ( /obj/machinery/light/small{ - dir = 4; - pixel_y = 0 + dir = 4 }, /obj/structure/catwalk, -/turf/space, +/turf/simulated/floor/plating/eris/under, /area/talon/maintenance/deckone_port) "bp" = ( /obj/machinery/light/small{ - dir = 8; - pixel_y = 0 + dir = 8 }, /obj/structure/catwalk, -/turf/space, +/turf/simulated/floor/plating/eris/under, /area/talon/maintenance/deckone_starboard) "bq" = ( /obj/machinery/airlock_sensor{ @@ -603,12 +593,10 @@ /obj/effect/map_helper/airlock/atmos/chamber_pump, /obj/effect/map_helper/airlock/sensor/chamber_sensor, /obj/machinery/light/small{ - dir = 1; - icon_state = "bulb1" + dir = 1 }, /obj/machinery/atmospherics/unary/vent_pump/high_volume/aux{ - dir = 4; - icon_state = "map_vent_aux" + dir = 4 }, /turf/simulated/floor/tiled/eris/dark/gray_perforated, /area/shuttle/talonboat) @@ -634,8 +622,7 @@ }, /obj/effect/map_helper/airlock/atmos/chamber_pump, /obj/machinery/atmospherics/unary/vent_pump/high_volume/aux{ - dir = 8; - icon_state = "map_vent_aux" + dir = 8 }, /turf/simulated/floor/tiled/eris/dark/gray_perforated, /area/shuttle/talonboat) @@ -645,8 +632,7 @@ /area/talon/deckone/central_hallway) "bu" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4; - icon_state = "intact-scrubbers" + dir = 4 }, /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 @@ -677,8 +663,7 @@ /area/talon/maintenance/deckone_starboard) "bw" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4; - icon_state = "intact-scrubbers" + dir = 4 }, /turf/simulated/floor/tiled/eris/dark/brown_perforated, /area/talon/deckone/port_eng) @@ -691,12 +676,11 @@ }, /obj/effect/map_helper/airlock/sensor/ext_sensor, /obj/structure/catwalk, -/turf/space, +/turf/simulated/floor/plating/eris/under, /area/talon/maintenance/deckone_port) "by" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4; - icon_state = "intact-scrubbers" + dir = 4 }, /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 @@ -721,7 +705,7 @@ }, /obj/effect/map_helper/airlock/sensor/ext_sensor, /obj/structure/catwalk, -/turf/space, +/turf/simulated/floor/plating/eris/under, /area/talon/maintenance/deckone_starboard) "bA" = ( /obj/structure/catwalk, @@ -729,10 +713,9 @@ pixel_x = 30 }, /obj/machinery/camera/network/talon{ - dir = 8; - icon_state = "camera" + dir = 8 }, -/turf/space, +/turf/simulated/floor/plating/eris/under, /area/talon/maintenance/deckone_port) "bB" = ( /obj/structure/catwalk, @@ -740,20 +723,15 @@ pixel_x = -30 }, /obj/machinery/camera/network/talon{ - dir = 4; - icon_state = "camera" + dir = 4 }, -/turf/space, +/turf/simulated/floor/plating/eris/under, /area/talon/maintenance/deckone_starboard) "bC" = ( -/obj/structure/table/rack, -/obj/item/weapon/storage/box/bodybags, -/obj/item/roller, -/obj/item/roller{ - pixel_y = 8 - }, -/turf/simulated/floor/tiled/eris/white/bluecorner, -/area/talon/deckone/medical) +/obj/structure/catwalk, +/obj/structure/loot_pile/maint/technical, +/turf/simulated/floor/plating/eris/under, +/area/talon/maintenance/deckone_starboard) "bD" = ( /obj/machinery/atmospherics/unary/vent_pump/on{ dir = 4 @@ -804,8 +782,7 @@ dir = 4 }, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4; - icon_state = "intact-scrubbers" + dir = 4 }, /obj/structure/cable/green{ d1 = 4; @@ -813,8 +790,7 @@ icon_state = "4-8" }, /obj/structure/disposalpipe/segment{ - dir = 4; - icon_state = "pipe-s" + dir = 4 }, /obj/machinery/computer/guestpass{ pixel_y = 30 @@ -868,12 +844,8 @@ /turf/simulated/floor/tiled/eris/dark/orangecorner, /area/talon/deckone/secure_storage) "bM" = ( -/obj/structure/closet/secure_closet/chemical{ - req_access = list(301) - }, -/obj/item/weapon/reagent_containers/spray/cleaner{ - desc = "Someone has crossed out the 'Space' from Space Cleaner and written in Chemistry. Scrawled on the back is, 'Okay, whoever filled this with polytrinic acid, it was only funny the first time. It was hard enough replacing the CMO's first cat!'"; - name = "Chemistry Cleaner" +/obj/machinery/light/small{ + dir = 8 }, /turf/simulated/floor/tiled/eris/white/bluecorner, /area/talon/deckone/medical) @@ -885,7 +857,6 @@ alarms_hidden = 1; dir = 1; name = "north bump"; - pixel_x = 0; pixel_y = 28 }, /obj/structure/mopbucket, @@ -920,8 +891,7 @@ dir = 4 }, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4; - icon_state = "intact-scrubbers" + dir = 4 }, /obj/structure/cable/green{ d1 = 4; @@ -929,8 +899,7 @@ icon_state = "4-8" }, /obj/structure/disposalpipe/segment{ - dir = 4; - icon_state = "pipe-s" + dir = 4 }, /obj/machinery/door/firedoor/glass{ dir = 2 @@ -982,9 +951,7 @@ "bW" = ( /obj/structure/table/steel, /obj/machinery/light{ - dir = 8; - icon_state = "tube1"; - pixel_y = 0 + dir = 8 }, /obj/machinery/button/remote/blast_door{ dir = 8; @@ -1053,8 +1020,7 @@ /obj/machinery/atmospherics/pipe/simple/hidden/aux, /obj/structure/catwalk, /obj/machinery/light/small{ - dir = 8; - pixel_x = 0 + dir = 8 }, /turf/simulated/floor/plating/eris/under, /area/talon/maintenance/deckone_starboard) @@ -1071,8 +1037,7 @@ dir = 4 }, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4; - icon_state = "intact-scrubbers" + dir = 4 }, /obj/structure/cable/green{ d1 = 4; @@ -1085,8 +1050,7 @@ }, /obj/machinery/door/firedoor/glass/talon, /obj/structure/disposalpipe/segment{ - dir = 4; - icon_state = "pipe-s" + dir = 4 }, /turf/simulated/floor/tiled/eris/techmaint_panels, /area/talon/deckone/workroom) @@ -1209,8 +1173,7 @@ /area/talon/deckone/central_hallway) "cs" = ( /obj/structure/closet/hydrant{ - pixel_x = -32; - pixel_y = 0 + pixel_x = -32 }, /turf/simulated/floor/tiled/eris/dark/brown_platform, /area/talon/deckone/port_eng_store) @@ -1230,13 +1193,8 @@ icon_state = "2-8" }, /obj/machinery/alarm/talon{ - alarm_id = "anomaly_testing"; - breach_detection = 0; dir = 8; - frequency = 1439; - pixel_x = 22; - pixel_y = 0; - report_danger_level = 0 + pixel_x = 22 }, /turf/simulated/floor/plating/eris/under, /area/talon/maintenance/deckone_port) @@ -1257,9 +1215,7 @@ }, /obj/machinery/alarm/talon{ dir = 4; - icon_state = "alarm0"; - pixel_x = -22; - pixel_y = 0 + pixel_x = -22 }, /turf/simulated/floor/plating/eris/under, /area/talon/maintenance/deckone_starboard) @@ -1271,12 +1227,10 @@ }, /obj/structure/cable/green{ d2 = 8; - dir = 2; icon_state = "0-8" }, /obj/machinery/camera/network/talon{ - dir = 10; - icon_state = "camera" + dir = 10 }, /turf/simulated/floor/tiled/eris/white/gray_platform, /area/talon/deckone/bridge_hallway) @@ -1309,8 +1263,7 @@ /area/talon/maintenance/deckone_starboard) "cC" = ( /obj/structure/disposalpipe/segment{ - dir = 4; - icon_state = "pipe-s" + dir = 4 }, /turf/simulated/floor/tiled/eris/white/golden, /area/talon/deckone/bridge) @@ -1327,8 +1280,7 @@ /obj/machinery/atmospherics/pipe/manifold/hidden/supply, /obj/effect/floor_decal/emblem/talon_big, /obj/machinery/camera/network/talon{ - dir = 10; - icon_state = "camera" + dir = 10 }, /turf/simulated/floor/tiled/steel_grid, /area/talon/deckone/central_hallway) @@ -1340,8 +1292,7 @@ dir = 9 }, /obj/structure/disposalpipe/segment{ - dir = 4; - icon_state = "pipe-s" + dir = 4 }, /obj/machinery/firealarm{ dir = 1; @@ -1351,14 +1302,12 @@ /area/talon/deckone/central_hallway) "cH" = ( /obj/machinery/atmospherics/pipe/simple/hidden/aux{ - dir = 10; - icon_state = "intact-aux" + dir = 10 }, /obj/structure/catwalk, /obj/machinery/alarm/talon{ dir = 8; - pixel_x = 22; - pixel_y = 0 + pixel_x = 22 }, /turf/simulated/floor/plating/eris/under, /area/talon/maintenance/deckone_port) @@ -1375,15 +1324,12 @@ /area/talon/deckone/armory) "cJ" = ( /obj/machinery/atmospherics/pipe/simple/hidden/aux{ - dir = 6; - icon_state = "intact-aux" + dir = 6 }, /obj/structure/catwalk, /obj/machinery/alarm/talon{ dir = 4; - icon_state = "alarm0"; - pixel_x = -22; - pixel_y = 0 + pixel_x = -22 }, /turf/simulated/floor/plating/eris/under, /area/talon/maintenance/deckone_starboard) @@ -1400,8 +1346,7 @@ /area/talon/deckone/bridge_hallway) "cL" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4; - icon_state = "intact-scrubbers" + dir = 4 }, /obj/machinery/atmospherics/pipe/manifold/hidden/supply{ dir = 1 @@ -1410,17 +1355,14 @@ icon_state = "2-4" }, /obj/structure/disposalpipe/segment{ - dir = 4; - icon_state = "pipe-s" + dir = 4 }, /turf/simulated/floor/tiled/eris/steel, /area/talon/deckone/brig) "cM" = ( /obj/structure/closet/crate/solar, /obj/machinery/firealarm{ - dir = 2; layer = 3.3; - pixel_x = 0; pixel_y = 26 }, /turf/simulated/floor/tiled/eris/dark/brown_platform, @@ -1434,8 +1376,7 @@ /area/talon/deckone/port_eng_store) "cO" = ( /obj/machinery/atmospherics/pipe/simple/hidden/aux{ - dir = 9; - icon_state = "intact-aux" + dir = 9 }, /obj/machinery/atmospherics/pipe/manifold/hidden/supply{ dir = 8 @@ -1454,25 +1395,22 @@ dir = 10 }, /obj/machinery/light_switch{ - dir = 2; name = "light switch "; pixel_x = -12; pixel_y = 26 }, /obj/machinery/atmospherics/pipe/cap/hidden{ - dir = 4; - icon_state = "cap" - }, -/obj/structure/cable/green{ - dir = 1; - icon_state = "0-4" + dir = 4 }, /obj/machinery/power/apc/talon{ dir = 1; name = "north bump"; - pixel_x = 0; pixel_y = 28 }, +/obj/structure/cable/green{ + d2 = 8; + icon_state = "0-8" + }, /turf/simulated/floor/tiled/eris/dark/brown_perforated, /area/talon/deckone/port_eng) "cQ" = ( @@ -1489,14 +1427,12 @@ dir = 6 }, /obj/machinery/light_switch{ - dir = 2; name = "light switch "; pixel_x = 12; pixel_y = 26 }, /obj/machinery/atmospherics/pipe/cap/hidden{ - dir = 8; - icon_state = "cap" + dir = 8 }, /obj/structure/cable/green{ icon_state = "0-4" @@ -1504,15 +1440,13 @@ /obj/machinery/power/apc/talon{ dir = 1; name = "north bump"; - pixel_x = 0; pixel_y = 28 }, /turf/simulated/floor/tiled/eris/dark/brown_perforated, /area/talon/deckone/starboard_eng) "cT" = ( /obj/machinery/atmospherics/pipe/simple/hidden/aux{ - dir = 5; - icon_state = "intact-aux" + dir = 5 }, /obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ dir = 4 @@ -1535,13 +1469,11 @@ "cV" = ( /obj/structure/cable/green, /obj/machinery/power/apc/talon{ - dir = 2; name = "south bump"; pixel_y = -24 }, /obj/machinery/light_switch{ dir = 4; - icon_state = "light1"; pixel_x = -24 }, /turf/simulated/floor/tiled/eris/dark/cyancorner, @@ -1559,7 +1491,6 @@ /area/talon/deckone/starboard_eng) "cX" = ( /obj/machinery/atmospherics/unary/heater{ - anchored = 1; dir = 4 }, /turf/simulated/floor/tiled/eris/dark/brown_perforated, @@ -1569,12 +1500,9 @@ /area/talon/deckone/starboard_eng) "cZ" = ( /obj/machinery/light{ - dir = 8; - icon_state = "tube1"; - pixel_y = 0 + dir = 8 }, /obj/machinery/atmospherics/unary/freezer{ - anchored = 1; dir = 4 }, /turf/simulated/floor/tiled/eris/dark/brown_perforated, @@ -1607,10 +1535,6 @@ "dd" = ( /obj/structure/table/standard, /obj/machinery/reagentgrinder, -/obj/structure/closet/medical_wall{ - pixel_x = 0; - pixel_y = 32 - }, /turf/simulated/floor/tiled/eris/white/bluecorner, /area/talon/deckone/medical) "de" = ( @@ -1621,23 +1545,10 @@ /turf/simulated/floor/tiled/eris/white/bluecorner, /area/talon/deckone/medical) "df" = ( -/obj/machinery/light/small{ - dir = 4; - pixel_y = 0 - }, -/obj/structure/closet/crate/medical{ - name = "first-aid kits" - }, -/obj/item/weapon/storage/firstaid/toxin, -/obj/item/weapon/storage/firstaid/toxin, -/obj/item/weapon/storage/firstaid/o2, -/obj/item/weapon/storage/firstaid/o2, -/obj/item/weapon/storage/firstaid/fire, -/obj/item/weapon/storage/firstaid/fire, -/obj/item/weapon/storage/firstaid/adv, -/obj/item/weapon/storage/firstaid/adv, -/turf/simulated/floor/tiled/eris/white/bluecorner, -/area/talon/deckone/medical) +/obj/structure/catwalk, +/obj/structure/barricade, +/turf/simulated/floor/plating/eris/under, +/area/talon/maintenance/deckone_starboard) "dg" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /obj/structure/cable/green{ @@ -1666,8 +1577,7 @@ /area/talon/deckone/starboard_eng) "dB" = ( /obj/item/modular_computer/console/preset/talon{ - dir = 8; - icon_state = "console" + dir = 8 }, /turf/simulated/floor/tiled/eris/dark/cyancorner, /area/talon/deckone/bridge) @@ -1697,16 +1607,13 @@ "dP" = ( /obj/structure/catwalk, /obj/machinery/light/small{ - dir = 4; - pixel_y = 0 + dir = 4 }, /turf/simulated/floor/plating/eris/under, /area/talon/maintenance/deckone_port) "dQ" = ( /obj/machinery/light{ - dir = 8; - icon_state = "tube1"; - pixel_y = 0 + dir = 8 }, /turf/simulated/floor/tiled/eris/dark/danger, /area/talon/deckone/secure_storage) @@ -1716,6 +1623,10 @@ }, /turf/simulated/floor/tiled/eris/dark/brown_platform, /area/talon/deckone/port_eng_store) +"dS" = ( +/obj/machinery/atmospherics/unary/vent_scrubber/on, +/turf/simulated/floor/tiled/eris/white/bluecorner, +/area/talon/deckone/medical) "dU" = ( /obj/structure/cable/green{ d1 = 1; @@ -1736,8 +1647,7 @@ dir = 5 }, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 5; - icon_state = "intact-scrubbers" + dir = 5 }, /obj/structure/cable/green{ d1 = 1; @@ -1760,11 +1670,7 @@ pixel_x = 2; pixel_y = 5 }, -/obj/machinery/alarm/talon{ - dir = 1; - icon_state = "alarm0"; - pixel_y = -22 - }, +/obj/structure/closet/walllocker/medical/south, /turf/simulated/floor/tiled/eris/white/bluecorner, /area/talon/deckone/medical) "en" = ( @@ -1778,8 +1684,7 @@ dir = 4 }, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4; - icon_state = "intact-scrubbers" + dir = 4 }, /obj/machinery/door/window/brigdoor/eastleft{ dir = 8; @@ -1812,8 +1717,7 @@ dir = 4 }, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4; - icon_state = "intact-scrubbers" + dir = 4 }, /obj/structure/cable/green{ d1 = 4; @@ -1825,8 +1729,7 @@ req_one_access = list(301) }, /obj/structure/disposalpipe/segment{ - dir = 4; - icon_state = "pipe-s" + dir = 4 }, /turf/simulated/floor/tiled/eris/techmaint_panels, /area/talon/deckone/brig) @@ -1870,8 +1773,7 @@ /area/talon/deckone/brig) "fi" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4; - icon_state = "intact-scrubbers" + dir = 4 }, /turf/simulated/floor/tiled/eris/dark/brown_perforated, /area/talon/deckone/starboard_eng) @@ -1934,8 +1836,7 @@ /area/talon/deckone/workroom) "gg" = ( /obj/machinery/atmospherics/pipe/simple/hidden/aux{ - dir = 5; - icon_state = "intact-aux" + dir = 5 }, /obj/structure/catwalk, /turf/simulated/floor/plating/eris/under, @@ -1996,8 +1897,7 @@ /area/talon/deckone/starboard_eng_store) "ho" = ( /obj/machinery/atmospherics/pipe/simple/hidden/aux{ - dir = 4; - icon_state = "intact-aux" + dir = 4 }, /turf/simulated/floor/tiled/eris/steel, /area/talon/deckone/central_hallway) @@ -2011,13 +1911,9 @@ /turf/simulated/floor/tiled/eris/white/gray_platform, /area/shuttle/talonboat) "hv" = ( -/obj/structure/catwalk, -/obj/machinery/light/small{ - dir = 8; - pixel_x = 0 - }, -/turf/simulated/floor/plating/eris/under, -/area/talon/maintenance/deckone_starboard) +/obj/machinery/suit_cycler/vintage/tmedic, +/turf/simulated/floor/tiled/eris/white/bluecorner, +/area/talon/deckone/medical) "hD" = ( /obj/machinery/autolathe, /turf/simulated/floor/tiled/eris/steel/gray_perforated, @@ -2027,8 +1923,7 @@ pixel_y = 30 }, /obj/machinery/atmospherics/pipe/manifold/hidden{ - dir = 1; - icon_state = "map" + dir = 1 }, /turf/simulated/floor/tiled/eris/dark/brown_perforated, /area/talon/deckone/starboard_eng) @@ -2039,8 +1934,7 @@ "id" = ( /obj/machinery/disposal, /obj/structure/disposalpipe/trunk{ - dir = 4; - icon_state = "pipe-t" + dir = 4 }, /turf/simulated/floor/tiled/eris/steel, /area/talon/deckone/central_hallway) @@ -2050,8 +1944,7 @@ /area/talon/deckone/armory) "ij" = ( /obj/machinery/atmospherics/pipe/simple/hidden/aux{ - dir = 4; - icon_state = "intact-aux" + dir = 4 }, /obj/machinery/door/airlock/maintenance/common, /obj/machinery/door/firedoor/glass/talon, @@ -2066,32 +1959,31 @@ icon_state = "1-2" }, /obj/machinery/light/small{ - dir = 8; - pixel_x = 0 + dir = 8 }, /obj/structure/disposalpipe/segment, /turf/simulated/floor/tiled/eris/steel, /area/talon/deckone/bridge_hallway) "iq" = ( /obj/machinery/light/small{ - dir = 8; - pixel_y = 0 + dir = 8 }, /turf/simulated/floor/tiled/eris/dark/orangecorner, /area/talon/deckone/brig) "ir" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4; - icon_state = "intact-scrubbers" + dir = 4 }, /obj/machinery/atmospherics/pipe/cap/hidden{ - dir = 1; - icon_state = "cap" + dir = 1 }, /turf/simulated/floor/tiled/eris/dark/brown_perforated, /area/talon/deckone/port_eng) "it" = ( /obj/machinery/optable, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, /turf/simulated/floor/tiled/eris/white/bluecorner, /area/talon/deckone/medical) "ix" = ( @@ -2124,8 +2016,7 @@ /area/talon/deckone/brig) "iE" = ( /obj/machinery/atmospherics/pipe/simple/hidden/aux{ - dir = 4; - icon_state = "intact-aux" + dir = 4 }, /obj/machinery/airlock_sensor{ dir = 4; @@ -2142,19 +2033,17 @@ /area/talon/deckone/starboard_eng) "iN" = ( /obj/structure/ladder/up, -/turf/simulated/floor/tiled/steel_grid, +/turf/simulated/floor/tiled/eris/steel, /area/talon/deckone/central_hallway) "iP" = ( /turf/simulated/floor/tiled/eris/white/gray_platform, /area/talon/deckone/bridge_hallway) "iR" = ( /obj/machinery/atmospherics/pipe/simple/hidden/fuel{ - dir = 10; - icon_state = "intact-fuel" + dir = 10 }, /obj/structure/extinguisher_cabinet{ dir = 8; - icon_state = "extinguisher_closed"; pixel_x = 30 }, /turf/simulated/floor/tiled/eris/dark/brown_perforated, @@ -2178,12 +2067,10 @@ /area/talon/deckone/brig) "jb" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4; - icon_state = "intact-scrubbers" + dir = 4 }, /obj/machinery/atmospherics/pipe/cap/hidden{ - dir = 1; - icon_state = "cap" + dir = 1 }, /turf/simulated/floor/tiled/eris/dark/brown_perforated, /area/talon/deckone/starboard_eng) @@ -2207,7 +2094,6 @@ "jB" = ( /obj/structure/cable/green, /obj/machinery/power/apc/talon{ - cell_type = /obj/item/weapon/cell/apc; dir = 8; name = "west bump"; pixel_x = -28 @@ -2218,7 +2104,6 @@ }, /obj/machinery/firealarm{ dir = 1; - pixel_x = 0; pixel_y = -25 }, /obj/machinery/recharger, @@ -2226,8 +2111,7 @@ /area/talon/deckone/medical) "jD" = ( /obj/effect/floor_decal/emblem/talon_big{ - dir = 8; - icon_state = "talon_big" + dir = 8 }, /turf/simulated/floor/tiled/steel_grid, /area/talon/deckone/central_hallway) @@ -2253,50 +2137,43 @@ /area/talon/deckone/starboard_eng) "jZ" = ( /obj/machinery/atmospherics/pipe/manifold/hidden/fuel{ - dir = 8; - icon_state = "map-fuel" + dir = 8 }, /turf/simulated/wall/rshull, /area/talon/deckone/port_eng) "kb" = ( /obj/machinery/atmospherics/pipe/simple/hidden/fuel{ - dir = 4; - icon_state = "intact-fuel" + dir = 4 }, /turf/simulated/wall/rshull, /area/talon/deckone/port_eng) "kc" = ( /obj/machinery/atmospherics/pipe/simple/hidden/fuel{ - dir = 10; - icon_state = "intact-fuel" + dir = 10 }, /turf/simulated/wall/rshull, /area/talon/deckone/port_eng) "kd" = ( /obj/machinery/atmospherics/pipe/simple/hidden/fuel{ - dir = 6; - icon_state = "intact-fuel" + dir = 6 }, /turf/simulated/wall/rshull, /area/talon/deckone/starboard_eng) "ke" = ( /obj/machinery/atmospherics/pipe/manifold/hidden/fuel{ - dir = 1; - icon_state = "map-fuel" + dir = 1 }, /turf/simulated/wall/rshull, /area/talon/deckone/starboard_eng) "kf" = ( /obj/machinery/atmospherics/pipe/simple/hidden/fuel{ - dir = 4; - icon_state = "intact-fuel" + dir = 4 }, /turf/simulated/wall/rshull, /area/talon/deckone/starboard_eng) "kg" = ( /obj/machinery/atmospherics/pipe/simple/hidden/fuel{ - dir = 9; - icon_state = "intact-fuel" + dir = 9 }, /turf/simulated/wall/rshull, /area/talon/deckone/starboard_eng) @@ -2450,8 +2327,7 @@ dir = 4 }, /obj/structure/disposalpipe/segment{ - dir = 4; - icon_state = "pipe-s" + dir = 4 }, /turf/simulated/floor/tiled/eris/steel, /area/talon/deckone/central_hallway) @@ -2476,34 +2352,26 @@ /area/talon/maintenance/deckone_port_aft_wing) "lM" = ( /obj/machinery/atmospherics/pipe/manifold/hidden{ - dir = 8; - icon_state = "map" + dir = 8 }, /turf/simulated/floor/tiled/eris/dark/brown_perforated, /area/talon/deckone/port_eng) "mb" = ( /obj/structure/cable/green, /obj/machinery/power/apc/talon{ - cell_type = /obj/item/weapon/cell/apc; dir = 8; name = "west bump"; pixel_x = -28 }, /obj/machinery/alarm/talon{ - alarm_id = "anomaly_testing"; - breach_detection = 0; dir = 8; - frequency = 1439; - pixel_x = 22; - pixel_y = 0; - report_danger_level = 0 + pixel_x = 22 }, /turf/simulated/floor/tiled/eris/steel, /area/talon/deckone/central_hallway) "me" = ( /obj/machinery/camera/network/talon{ - dir = 9; - icon_state = "camera" + dir = 9 }, /obj/structure/table/standard, /turf/simulated/floor/tiled/eris/white/gray_platform, @@ -2573,8 +2441,7 @@ /area/talon/deckone/central_hallway) "mF" = ( /obj/machinery/atmospherics/pipe/simple/hidden/aux{ - dir = 4; - icon_state = "intact-aux" + dir = 4 }, /obj/effect/map_helper/airlock/door/int_door, /obj/machinery/door/airlock/glass_external{ @@ -2590,7 +2457,6 @@ /obj/machinery/power/apc/talon{ dir = 1; name = "north bump"; - pixel_x = 0; pixel_y = 28 }, /obj/structure/catwalk, @@ -2599,9 +2465,7 @@ "mO" = ( /obj/machinery/alarm/talon{ dir = 4; - icon_state = "alarm0"; - pixel_x = -22; - pixel_y = 0 + pixel_x = -22 }, /obj/structure/catwalk, /turf/simulated/floor/plating/eris/under, @@ -2618,8 +2482,7 @@ }, /obj/machinery/portable_atmospherics/canister/air/airlock, /obj/machinery/atmospherics/portables_connector/aux{ - dir = 4; - icon_state = "map_connector-aux" + dir = 4 }, /turf/simulated/floor/tiled/eris/white/gray_platform, /area/shuttle/talonboat) @@ -2642,8 +2505,7 @@ /area/talon/deckone/central_hallway) "nu" = ( /obj/effect/floor_decal/emblem/talon_big{ - dir = 5; - icon_state = "talon_big" + dir = 5 }, /turf/simulated/floor/tiled/steel_grid, /area/talon/deckone/central_hallway) @@ -2672,15 +2534,13 @@ /obj/machinery/atmospherics/binary/pump/fuel, /obj/effect/floor_decal/industrial/outline/red, /obj/machinery/camera/network/talon{ - dir = 9; - icon_state = "camera" + dir = 9 }, /turf/simulated/floor/tiled/eris/dark/brown_perforated, /area/talon/deckone/starboard_eng) "ob" = ( /obj/machinery/camera/network/talon{ - dir = 9; - icon_state = "camera" + dir = 9 }, /turf/simulated/floor/tiled/eris/steel, /area/talon/deckone/central_hallway) @@ -2735,8 +2595,7 @@ /area/talon/deckone/bridge_hallway) "oS" = ( /obj/structure/bed/chair/bay/comfy/yellow{ - dir = 1; - icon_state = "bay_comfychair_preview" + dir = 1 }, /turf/simulated/floor/tiled/eris/dark/cyancorner, /area/talon/deckone/bridge) @@ -2749,15 +2608,13 @@ /area/talon/maintenance/deckone_starboard) "oV" = ( /obj/effect/floor_decal/emblem/talon_big{ - dir = 4; - icon_state = "talon_big" + dir = 4 }, /turf/simulated/floor/tiled/steel_grid, /area/talon/deckone/central_hallway) "pc" = ( /obj/machinery/atmospherics/pipe/simple/heat_exchanging{ - dir = 6; - icon_state = "intact" + dir = 6 }, /turf/simulated/floor/hull/airless, /area/talon/maintenance/deckone_starboard_fore_wing) @@ -2790,12 +2647,10 @@ icon_state = "1-2" }, /obj/structure/bed/chair/bay/chair{ - dir = 8; - icon_state = "bay_chair_preview" + dir = 8 }, /obj/machinery/camera/network/talon{ - dir = 9; - icon_state = "camera" + dir = 9 }, /turf/simulated/floor/tiled/eris/steel, /area/talon/deckone/brig) @@ -2814,8 +2669,7 @@ /obj/machinery/atmospherics/binary/pump/fuel, /obj/effect/floor_decal/industrial/outline/red, /obj/machinery/camera/network/talon{ - dir = 4; - icon_state = "camera" + dir = 4 }, /turf/simulated/floor/tiled/eris/dark/brown_perforated, /area/talon/deckone/port_eng) @@ -2853,7 +2707,6 @@ icon_state = "0-4" }, /obj/machinery/power/apc/talon{ - dir = 2; name = "south bump"; pixel_y = -24 }, @@ -2888,7 +2741,6 @@ /obj/machinery/power/apc/talon{ dir = 1; name = "north bump"; - pixel_x = 0; pixel_y = 28 }, /turf/simulated/floor/tiled/eris/dark/orangecorner, @@ -2910,30 +2762,28 @@ /area/talon/maintenance/deckone_port_aft_wing) "qp" = ( /obj/machinery/atmospherics/pipe/simple/hidden/fuel{ - dir = 6; - icon_state = "intact-fuel" + dir = 6 }, /turf/simulated/floor/tiled/eris/dark/brown_perforated, /area/talon/deckone/port_eng) "qz" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /obj/structure/cable/green{ d1 = 1; d2 = 2; icon_state = "1-2" }, -/obj/machinery/light{ - dir = 8; - icon_state = "tube1"; - pixel_y = 0 - }, /obj/structure/sign/warning/nosmoking_1{ pixel_x = -26 }, /obj/machinery/disposal, /obj/structure/disposalpipe/trunk{ - dir = 1; - icon_state = "pipe-t" + dir = 1 + }, +/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ + dir = 8 + }, +/obj/machinery/light{ + dir = 8 }, /turf/simulated/floor/tiled/eris/white/bluecorner, /area/talon/deckone/medical) @@ -2944,8 +2794,7 @@ "qB" = ( /obj/machinery/alarm/talon{ dir = 4; - pixel_x = -35; - pixel_y = 0 + pixel_x = -22 }, /turf/simulated/floor/tiled/eris/white/bluecorner, /area/talon/deckone/medical) @@ -2968,8 +2817,7 @@ /area/talon/deckone/port_solar) "qR" = ( /obj/machinery/atmospherics/portables_connector/fuel{ - dir = 1; - icon_state = "map_connector-fuel" + dir = 1 }, /obj/effect/floor_decal/industrial/outline/red, /obj/machinery/portable_atmospherics/canister/phoron, @@ -2977,8 +2825,7 @@ /area/talon/deckone/starboard_eng) "rm" = ( /obj/effect/floor_decal/industrial/warning/dust/corner{ - dir = 1; - icon_state = "warningcorner_dust" + dir = 1 }, /turf/simulated/floor/hull/airless, /area/talon/maintenance/deckone_starboard_aft_wing) @@ -2994,8 +2841,7 @@ icon_state = "2-8" }, /obj/structure/disposalpipe/segment{ - dir = 4; - icon_state = "pipe-s" + dir = 4 }, /turf/simulated/floor/tiled/eris/steel/cargo, /area/talon/deckone/workroom) @@ -3022,9 +2868,7 @@ /area/talon/deckone/workroom) "sa" = ( /obj/machinery/firealarm{ - dir = 2; layer = 3.3; - pixel_x = 0; pixel_y = 26 }, /turf/simulated/floor/tiled/eris/steel, @@ -3076,9 +2920,7 @@ /area/talon/maintenance/deckone_port) "sz" = ( /obj/machinery/light{ - dir = 8; - icon_state = "tube1"; - pixel_y = 0 + dir = 8 }, /turf/simulated/floor/tiled/eris/steel, /area/talon/deckone/central_hallway) @@ -3191,8 +3033,7 @@ /area/talon/deckone/central_hallway) "tw" = ( /obj/item/modular_computer/console/preset/talon{ - dir = 4; - icon_state = "console" + dir = 4 }, /turf/simulated/floor/tiled/eris/dark/cyancorner, /area/talon/deckone/bridge) @@ -3222,15 +3063,13 @@ /area/talon/deckone/brig) "tZ" = ( /obj/machinery/atmospherics/pipe/simple/heat_exchanging{ - dir = 8; - icon_state = "intact" + dir = 8 }, /turf/simulated/floor/hull/airless, /area/talon/maintenance/deckone_port_fore_wing) "uj" = ( /obj/machinery/power/solar_control{ - dir = 8; - icon_state = "solar" + dir = 8 }, /obj/structure/cable/yellow, /turf/simulated/floor/tiled/eris/dark/cyancorner, @@ -3299,7 +3138,6 @@ "uN" = ( /obj/structure/extinguisher_cabinet{ dir = 1; - icon_state = "extinguisher_closed"; pixel_y = 32 }, /turf/simulated/floor/tiled/eris/steel/gray_perforated, @@ -3309,8 +3147,7 @@ dir = 4 }, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4; - icon_state = "intact-scrubbers" + dir = 4 }, /obj/structure/cable/green{ d1 = 4; @@ -3323,22 +3160,19 @@ icon_state = "2-8" }, /obj/structure/disposalpipe/segment{ - dir = 4; - icon_state = "pipe-s" + dir = 4 }, /turf/simulated/floor/tiled/eris/steel, /area/talon/deckone/central_hallway) "vb" = ( /obj/structure/bed/chair/bay/chair{ - dir = 8; - icon_state = "bay_chair_preview" + dir = 8 }, /turf/simulated/floor/tiled/eris/dark/orangecorner, /area/talon/deckone/brig) "vf" = ( /obj/machinery/atmospherics/pipe/simple/heat_exchanging{ - dir = 5; - icon_state = "intact" + dir = 5 }, /turf/simulated/floor/hull/airless, /area/talon/maintenance/deckone_starboard_fore_wing) @@ -3421,8 +3255,7 @@ /area/talon/deckone/bridge) "wD" = ( /obj/machinery/power/terminal{ - dir = 8; - icon_state = "term" + dir = 8 }, /obj/structure/cable/yellow{ d2 = 4; @@ -3467,8 +3300,7 @@ /area/talon/maintenance/deckone_starboard) "xm" = ( /obj/machinery/power/solar_control{ - dir = 4; - icon_state = "solar" + dir = 4 }, /obj/structure/cable/yellow, /turf/simulated/floor/tiled/eris/dark/cyancorner, @@ -3484,8 +3316,7 @@ /area/shuttle/talonboat) "xv" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 5; - icon_state = "intact-scrubbers" + dir = 5 }, /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 @@ -3507,13 +3338,17 @@ /turf/simulated/floor/tiled/eris/dark/orangecorner, /area/talon/deckone/secure_storage) "xE" = ( -/obj/structure/catwalk, -/obj/machinery/light/small{ - dir = 1; - icon_state = "bulb1" - }, -/turf/simulated/floor/plating/eris/under, -/area/talon/maintenance/deckone_port) +/obj/item/weapon/storage/firstaid/toxin, +/obj/item/weapon/storage/firstaid/toxin, +/obj/item/weapon/storage/firstaid/o2, +/obj/item/weapon/storage/firstaid/o2, +/obj/item/weapon/storage/firstaid/fire, +/obj/item/weapon/storage/firstaid/fire, +/obj/item/weapon/storage/firstaid/adv, +/obj/item/weapon/storage/firstaid/adv, +/obj/structure/closet/walllocker/medical/east, +/turf/simulated/floor/tiled/eris/white/bluecorner, +/area/talon/deckone/medical) "xH" = ( /obj/machinery/chem_master, /turf/simulated/floor/tiled/eris/white/bluecorner, @@ -3541,8 +3376,7 @@ /obj/effect/map_helper/airlock/atmos/chamber_pump, /obj/effect/map_helper/airlock/sensor/chamber_sensor, /obj/machinery/atmospherics/unary/vent_pump/high_volume/aux{ - dir = 8; - icon_state = "map_vent_aux" + dir = 8 }, /turf/simulated/floor/plating/eris/under, /area/talon/maintenance/deckone_starboard) @@ -3557,8 +3391,7 @@ /area/talon/maintenance/deckone_starboard_aft_wing) "yf" = ( /obj/machinery/atmospherics/pipe/manifold/hidden{ - dir = 4; - icon_state = "map" + dir = 4 }, /turf/simulated/floor/tiled/eris/dark/brown_perforated, /area/talon/deckone/starboard_eng) @@ -3575,8 +3408,7 @@ icon_state = "1-4" }, /obj/structure/disposalpipe/segment{ - dir = 4; - icon_state = "pipe-s" + dir = 4 }, /turf/simulated/floor/tiled/eris/steel, /area/talon/deckone/central_hallway) @@ -3606,8 +3438,7 @@ }, /obj/effect/map_helper/airlock/sensor/int_sensor, /obj/machinery/atmospherics/pipe/simple/hidden/aux{ - dir = 10; - icon_state = "intact-aux" + dir = 10 }, /turf/simulated/floor/tiled/eris/white/gray_platform, /area/shuttle/talonboat) @@ -3619,8 +3450,7 @@ /area/talon/maintenance/deckone_starboard_fore_wing) "yB" = ( /obj/machinery/atmospherics/pipe/zpipe/up/scrubbers{ - dir = 8; - icon_state = "up-scrubbers" + dir = 8 }, /obj/structure/disposalpipe/up{ dir = 8 @@ -3651,8 +3481,7 @@ /area/talon/deckone/starboard_solar) "yO" = ( /obj/effect/floor_decal/industrial/warning/dust/corner{ - dir = 1; - icon_state = "warningcorner_dust" + dir = 1 }, /turf/simulated/floor/hull/airless, /area/talon/maintenance/deckone_starboard_fore_wing) @@ -3689,15 +3518,13 @@ /obj/machinery/power/apc/talon{ dir = 1; name = "north bump"; - pixel_x = 0; pixel_y = 28 }, /turf/simulated/floor/tiled/eris/white/orangecorner, /area/talon/deckone/armory) "zy" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4; - icon_state = "intact-scrubbers" + dir = 4 }, /turf/simulated/floor/tiled/eris/white/golden, /area/talon/deckone/bridge) @@ -3740,8 +3567,7 @@ /area/talon/deckone/starboard_solar) "Ar" = ( /obj/machinery/atmospherics/pipe/simple/hidden/aux{ - dir = 4; - icon_state = "intact-aux" + dir = 4 }, /obj/machinery/airlock_sensor{ dir = 8; @@ -3756,20 +3582,17 @@ "At" = ( /obj/machinery/alarm/talon{ dir = 8; - pixel_x = 22; - pixel_y = 0 + pixel_x = 22 }, /obj/structure/catwalk, /turf/simulated/floor/plating/eris/under, /area/talon/maintenance/deckone_port) "Ay" = ( /obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 9; - pixel_y = 0 + dir = 9 }, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4; - icon_state = "intact-scrubbers" + dir = 4 }, /obj/structure/cable/green{ d1 = 4; @@ -3777,8 +3600,7 @@ icon_state = "4-8" }, /obj/structure/disposalpipe/segment{ - dir = 4; - icon_state = "pipe-s" + dir = 4 }, /turf/simulated/floor/tiled/eris/steel/cargo, /area/talon/deckone/workroom) @@ -3787,8 +3609,7 @@ dir = 9 }, /obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 9; - pixel_y = 0 + dir = 9 }, /turf/simulated/floor/tiled/eris/steel, /area/talon/deckone/brig) @@ -3822,7 +3643,6 @@ "AQ" = ( /obj/machinery/firealarm{ dir = 1; - pixel_x = 0; pixel_y = -25 }, /turf/simulated/floor/tiled/eris/steel/gray_perforated, @@ -3848,8 +3668,7 @@ /area/talon/maintenance/deckone_port_fore_wing) "Bh" = ( /obj/machinery/atmospherics/pipe/simple/heat_exchanging{ - dir = 4; - icon_state = "intact" + dir = 4 }, /turf/simulated/floor/hull/airless, /area/talon/maintenance/deckone_port_fore_wing) @@ -3884,7 +3703,6 @@ "Bu" = ( /obj/structure/extinguisher_cabinet{ dir = 1; - icon_state = "extinguisher_closed"; pixel_y = 32 }, /turf/simulated/floor/tiled/eris/steel, @@ -3940,15 +3758,13 @@ /area/talon/deckone/central_hallway) "CC" = ( /obj/item/modular_computer/console/preset/talon{ - dir = 1; - icon_state = "console" + dir = 1 }, /turf/simulated/floor/tiled/eris/steel/cargo, /area/talon/deckone/workroom) "CP" = ( /obj/machinery/atmospherics/pipe/simple/heat_exchanging{ - dir = 4; - icon_state = "intact" + dir = 4 }, /turf/simulated/floor/hull/airless, /area/talon/maintenance/deckone_starboard_fore_wing) @@ -3966,19 +3782,16 @@ /area/talon/deckone/central_hallway) "CU" = ( /obj/machinery/atmospherics/pipe/simple/heat_exchanging{ - dir = 9; - icon_state = "intact" + dir = 9 }, /turf/simulated/floor/hull/airless, /area/talon/maintenance/deckone_starboard_fore_wing) "CW" = ( /obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 9; - pixel_y = 0 + dir = 9 }, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 5; - icon_state = "intact-scrubbers" + dir = 5 }, /turf/simulated/floor/tiled/eris/dark/brown_perforated, /area/talon/deckone/port_eng) @@ -3993,8 +3806,7 @@ /area/talon/maintenance/deckone_port_aft_wing) "Dl" = ( /obj/machinery/atmospherics/pipe/simple/heat_exchanging{ - dir = 10; - icon_state = "intact" + dir = 10 }, /turf/simulated/floor/hull/airless, /area/talon/maintenance/deckone_starboard_fore_wing) @@ -4005,19 +3817,16 @@ /area/talon/maintenance/deckone_port) "Do" = ( /obj/machinery/atmospherics/pipe/simple/heat_exchanging{ - dir = 5; - icon_state = "intact" + dir = 5 }, /turf/simulated/floor/hull/airless, /area/talon/maintenance/deckone_port_fore_wing) "Dr" = ( /obj/machinery/atmospherics/pipe/simple/heat_exchanging{ - dir = 6; - icon_state = "intact" + dir = 6 }, /obj/effect/floor_decal/industrial/warning/dust/corner{ - dir = 1; - icon_state = "warningcorner_dust" + dir = 1 }, /turf/simulated/floor/hull/airless, /area/talon/maintenance/deckone_port_fore_wing) @@ -4092,20 +3901,27 @@ /area/talon/deckone/central_hallway) "Ec" = ( /obj/machinery/atmospherics/pipe/simple/heat_exchanging{ - dir = 9; - icon_state = "intact" + dir = 9 }, /obj/effect/floor_decal/industrial/warning/dust/corner, /turf/simulated/floor/hull/airless, /area/talon/maintenance/deckone_starboard_fore_wing) "Ee" = ( /obj/machinery/atmospherics/pipe/simple/hidden/aux{ - dir = 9; - icon_state = "intact-aux" + dir = 9 }, /obj/structure/catwalk, /turf/simulated/floor/plating/eris/under, /area/talon/maintenance/deckone_starboard) +"Ej" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/turf/simulated/floor/tiled/eris/white/bluecorner, +/area/talon/deckone/medical) "Eo" = ( /obj/effect/floor_decal/industrial/warning/dust/corner, /turf/simulated/floor/hull/airless, @@ -4124,8 +3940,7 @@ /area/talon/deckone/armory) "Ex" = ( /obj/machinery/atmospherics/pipe/simple/hidden/aux{ - dir = 10; - icon_state = "intact-aux" + dir = 10 }, /obj/machinery/atmospherics/pipe/simple/hidden/supply, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, @@ -4154,8 +3969,7 @@ /area/talon/maintenance/deckone_starboard_fore_wing) "EM" = ( /obj/machinery/atmospherics/pipe/simple/heat_exchanging{ - dir = 10; - icon_state = "intact" + dir = 10 }, /obj/effect/floor_decal/industrial/warning/dust/corner{ dir = 4 @@ -4216,8 +4030,7 @@ /area/talon/deckone/armory) "Fs" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4; - icon_state = "intact-scrubbers" + dir = 4 }, /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 @@ -4232,15 +4045,13 @@ req_one_access = list(301) }, /obj/structure/disposalpipe/segment{ - dir = 4; - icon_state = "pipe-s" + dir = 4 }, /turf/simulated/floor/tiled/eris/techmaint_panels, /area/talon/deckone/medical) "Fw" = ( /obj/machinery/atmospherics/portables_connector/fuel{ - dir = 1; - icon_state = "map_connector-fuel" + dir = 1 }, /obj/effect/floor_decal/industrial/outline/red, /obj/machinery/portable_atmospherics/canister/phoron, @@ -4265,8 +4076,7 @@ req_one_access = list(301) }, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4; - icon_state = "intact-scrubbers" + dir = 4 }, /turf/simulated/floor/tiled/eris/dark/cyancorner, /area/talon/deckone/bridge) @@ -4293,15 +4103,13 @@ /area/talon/deckone/central_hallway) "Gq" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4; - icon_state = "intact-scrubbers" + dir = 4 }, /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 }, /obj/structure/disposalpipe/segment{ - dir = 4; - icon_state = "pipe-s" + dir = 4 }, /turf/simulated/floor/tiled/eris/steel, /area/talon/deckone/brig) @@ -4317,8 +4125,7 @@ /area/talon/deckone/workroom) "Gw" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4; - icon_state = "intact-scrubbers" + dir = 4 }, /obj/structure/cable/green{ d1 = 4; @@ -4326,15 +4133,13 @@ icon_state = "4-8" }, /obj/structure/disposalpipe/segment{ - dir = 4; - icon_state = "pipe-s" + dir = 4 }, /turf/simulated/floor/tiled/eris/steel/cargo, /area/talon/deckone/workroom) "GC" = ( /obj/machinery/atmospherics/portables_connector/fuel{ - dir = 1; - icon_state = "map_connector-fuel" + dir = 1 }, /obj/effect/floor_decal/industrial/outline/red, /obj/machinery/portable_atmospherics/canister/phoron, @@ -4365,8 +4170,7 @@ /area/talon/deckone/medical) "GL" = ( /obj/machinery/atmospherics/pipe/simple/heat_exchanging{ - dir = 1; - icon_state = "intact" + dir = 1 }, /obj/structure/cable/green{ d1 = 4; @@ -4410,8 +4214,7 @@ dir = 4 }, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4; - icon_state = "intact-scrubbers" + dir = 4 }, /obj/structure/cable/green{ d1 = 4; @@ -4422,8 +4225,7 @@ icon_state = "1-8" }, /obj/structure/disposalpipe/segment{ - dir = 4; - icon_state = "pipe-s" + dir = 4 }, /turf/simulated/floor/tiled/eris/steel, /area/talon/deckone/central_hallway) @@ -4453,8 +4255,7 @@ /area/talon/deckone/bridge) "Id" = ( /obj/machinery/atmospherics/pipe/simple/hidden/aux{ - dir = 6; - icon_state = "intact-aux" + dir = 6 }, /obj/machinery/atmospherics/pipe/simple/hidden/supply, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, @@ -4468,12 +4269,10 @@ /area/talon/deckone/central_hallway) "Ie" = ( /obj/machinery/atmospherics/pipe/simple/hidden/fuel{ - dir = 6; - icon_state = "intact-fuel" + dir = 6 }, /obj/structure/extinguisher_cabinet{ dir = 4; - icon_state = "extinguisher_closed"; pixel_x = -30 }, /turf/simulated/floor/tiled/eris/dark/brown_perforated, @@ -4498,8 +4297,7 @@ /area/talon/deckone/bridge_hallway) "Ij" = ( /obj/machinery/atmospherics/pipe/simple/heat_exchanging{ - dir = 9; - icon_state = "intact" + dir = 9 }, /turf/simulated/floor/hull/airless, /area/talon/maintenance/deckone_port_fore_wing) @@ -4522,8 +4320,7 @@ /obj/machinery/atmospherics/pipe/simple/hidden/supply, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /obj/effect/floor_decal/emblem/talon_big{ - dir = 1; - icon_state = "talon_big" + dir = 1 }, /turf/simulated/floor/tiled/steel_grid, /area/talon/deckone/central_hallway) @@ -4535,8 +4332,7 @@ }, /obj/structure/bed/chair/office/light, /obj/structure/disposalpipe/segment{ - dir = 4; - icon_state = "pipe-s" + dir = 4 }, /turf/simulated/floor/tiled/eris/steel/cargo, /area/talon/deckone/workroom) @@ -4553,9 +4349,7 @@ "IO" = ( /obj/machinery/alarm/talon{ dir = 4; - icon_state = "alarm0"; - pixel_x = -22; - pixel_y = 0 + pixel_x = -22 }, /obj/machinery/atmospherics/unary/vent_scrubber/on{ dir = 4 @@ -4610,8 +4404,7 @@ /area/talon/deckone/central_hallway) "JB" = ( /obj/machinery/atmospherics/pipe/simple/heat_exchanging{ - dir = 1; - icon_state = "intact" + dir = 1 }, /obj/structure/cable/green{ dir = 1; @@ -4627,7 +4420,6 @@ /obj/machinery/power/apc/talon{ dir = 1; name = "north bump"; - pixel_x = 0; pixel_y = 28 }, /obj/structure/catwalk, @@ -4713,21 +4505,18 @@ /turf/simulated/floor/plating/eris/under, /area/talon/maintenance/deckone_port) "Ka" = ( -/obj/structure/catwalk, -/obj/machinery/light/small{ - dir = 1; - icon_state = "bulb1" +/obj/machinery/door/airlock/maintenance/medical{ + req_one_access = list(301) }, +/obj/machinery/door/firedoor/glass/talon, /turf/simulated/floor/plating/eris/under, -/area/talon/maintenance/deckone_starboard) +/area/talon/deckone/medical) "Kc" = ( /obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 9; - pixel_y = 0 + dir = 9 }, /obj/structure/disposalpipe/segment{ - dir = 4; - icon_state = "pipe-s" + dir = 4 }, /turf/simulated/floor/tiled/eris/steel, /area/talon/deckone/central_hallway) @@ -4748,8 +4537,7 @@ icon_state = "4-8" }, /obj/effect/floor_decal/industrial/warning/dust/corner{ - dir = 1; - icon_state = "warningcorner_dust" + dir = 1 }, /turf/simulated/floor/hull/airless, /area/talon/maintenance/deckone_port_aft_wing) @@ -4796,12 +4584,10 @@ }, /obj/structure/sign/directions/bridge{ dir = 1; - icon_state = "direction_bridge"; pixel_y = 41 }, /obj/structure/disposalpipe/segment{ - dir = 4; - icon_state = "pipe-s" + dir = 4 }, /turf/simulated/floor/tiled/eris/steel, /area/talon/deckone/central_hallway) @@ -4885,8 +4671,7 @@ /area/talon/deckone/central_hallway) "LC" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 5; - icon_state = "intact-scrubbers" + dir = 5 }, /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 6 @@ -4919,8 +4704,7 @@ /area/talon/maintenance/deckone_port) "LW" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4; - icon_state = "intact-scrubbers" + dir = 4 }, /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 @@ -4939,8 +4723,7 @@ /area/talon/deckone/central_hallway) "LZ" = ( /obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 9; - pixel_y = 0 + dir = 9 }, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 9 @@ -4993,8 +4776,7 @@ /area/talon/deckone/brig) "MB" = ( /obj/structure/disposalpipe/segment{ - dir = 4; - icon_state = "pipe-s" + dir = 4 }, /turf/simulated/floor/tiled/eris/steel, /area/talon/deckone/central_hallway) @@ -5010,8 +4792,7 @@ dir = 4 }, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4; - icon_state = "intact-scrubbers" + dir = 4 }, /obj/structure/cable/green{ d1 = 4; @@ -5019,8 +4800,7 @@ icon_state = "4-8" }, /obj/structure/disposalpipe/segment{ - dir = 4; - icon_state = "pipe-s" + dir = 4 }, /turf/simulated/floor/tiled/eris/steel, /area/talon/deckone/central_hallway) @@ -5038,8 +4818,7 @@ /obj/effect/map_helper/airlock/atmos/chamber_pump, /obj/effect/map_helper/airlock/sensor/chamber_sensor, /obj/machinery/atmospherics/unary/vent_pump/high_volume/aux{ - dir = 4; - icon_state = "map_vent_aux" + dir = 4 }, /turf/simulated/floor/plating/eris/under, /area/talon/maintenance/deckone_port) @@ -5117,7 +4896,6 @@ "Ns" = ( /obj/structure/cable/green, /obj/machinery/power/apc/talon{ - dir = 2; name = "south bump"; pixel_y = -24 }, @@ -5151,13 +4929,18 @@ /area/talon/maintenance/deckone_port) "Nz" = ( /obj/machinery/computer/ship/navigation{ - dir = 4; - icon_state = "computer" + dir = 4 }, /turf/simulated/floor/tiled/eris/dark/cyancorner, /area/talon/deckone/bridge) "NG" = ( -/obj/machinery/suit_cycler/vintage/tmedic, +/obj/structure/closet/secure_closet/chemical{ + req_access = list(301) + }, +/obj/item/weapon/reagent_containers/spray/cleaner{ + desc = "Someone has crossed out the 'Space' from Space Cleaner and written in Chemistry. Scrawled on the back is, 'Okay, whoever filled this with polytrinic acid, it was only funny the first time. It was hard enough replacing the CMO's first cat!'"; + name = "Chemistry Cleaner" + }, /turf/simulated/floor/tiled/eris/white/bluecorner, /area/talon/deckone/medical) "NP" = ( @@ -5171,8 +4954,7 @@ /area/talon/maintenance/deckone_starboard) "Os" = ( /obj/structure/bed/chair/bay/comfy/red{ - dir = 4; - icon_state = "bay_comfychair_preview" + dir = 4 }, /turf/simulated/floor/tiled/eris/dark/cyancorner, /area/talon/deckone/bridge) @@ -5180,16 +4962,14 @@ /obj/machinery/atmospherics/pipe/simple/hidden/aux, /obj/machinery/alarm/talon{ dir = 8; - pixel_x = 22; - pixel_y = 0 + pixel_x = 22 }, /obj/structure/catwalk, /turf/simulated/floor/plating/eris/under, /area/talon/maintenance/deckone_port) "OJ" = ( /obj/machinery/computer/shuttle_control/explore/talonboat{ - dir = 4; - icon_state = "computer" + dir = 4 }, /turf/simulated/floor/tiled/eris/steel, /area/talon/deckone/central_hallway) @@ -5240,8 +5020,7 @@ /area/talon/maintenance/deckone_starboard) "Py" = ( /obj/machinery/atmospherics/portables_connector/fuel{ - dir = 1; - icon_state = "map_connector-fuel" + dir = 1 }, /obj/effect/floor_decal/industrial/outline/red, /obj/machinery/portable_atmospherics/canister/phoron, @@ -5259,8 +5038,7 @@ /area/talon/deckone/central_hallway) "PF" = ( /obj/machinery/atmospherics/pipe/simple/hidden/aux{ - dir = 4; - icon_state = "intact-aux" + dir = 4 }, /obj/effect/map_helper/airlock/door/int_door, /obj/machinery/door/airlock/glass_external{ @@ -5278,7 +5056,6 @@ }, /obj/structure/extinguisher_cabinet{ dir = 4; - icon_state = "extinguisher_closed"; pixel_x = -30 }, /turf/simulated/floor/tiled/eris/steel, @@ -5298,15 +5075,13 @@ /area/talon/maintenance/deckone_port) "Qg" = ( /obj/machinery/atmospherics/pipe/simple/hidden/fuel{ - dir = 10; - icon_state = "intact-fuel" + dir = 10 }, /turf/simulated/floor/tiled/eris/dark/brown_perforated, /area/talon/deckone/starboard_eng) "Qx" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4; - icon_state = "intact-scrubbers" + dir = 4 }, /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 @@ -5318,7 +5093,6 @@ }, /obj/structure/extinguisher_cabinet{ dir = 1; - icon_state = "extinguisher_closed"; pixel_y = 32 }, /obj/machinery/door/firedoor/glass{ @@ -5415,15 +5189,28 @@ alarms_hidden = 1; dir = 1; name = "north bump"; - pixel_x = 0; pixel_y = 28 }, /turf/simulated/floor/tiled/eris/dark/brown_platform, /area/talon/deckone/starboard_eng_store) +"So" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/turf/simulated/floor/tiled/eris/white/bluecorner, +/area/talon/deckone/medical) +"Ss" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 10 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 9 + }, +/turf/simulated/floor/tiled/eris/white/bluecorner, +/area/talon/deckone/medical) "SD" = ( /obj/effect/floor_decal/emblem/talon_big{ - dir = 9; - icon_state = "talon_big" + dir = 9 }, /turf/simulated/floor/tiled/steel_grid, /area/talon/deckone/central_hallway) @@ -5436,7 +5223,6 @@ /area/talon/deckone/brig) "SF" = ( /obj/machinery/firealarm{ - dir = 2; layer = 3.3; pixel_x = 4; pixel_y = 26 @@ -5475,7 +5261,6 @@ "SS" = ( /obj/structure/cable/green, /obj/machinery/power/apc/talon{ - dir = 2; name = "south bump"; pixel_y = -24 }, @@ -5550,8 +5335,7 @@ /area/talon/maintenance/deckone_starboard) "TD" = ( /obj/machinery/atmospherics/pipe/simple/heat_exchanging{ - dir = 5; - icon_state = "intact" + dir = 5 }, /obj/effect/floor_decal/industrial/warning/dust/corner{ dir = 8 @@ -5575,9 +5359,7 @@ /obj/machinery/atmospherics/pipe/simple/hidden/aux, /obj/machinery/alarm/talon{ dir = 4; - icon_state = "alarm0"; - pixel_x = -22; - pixel_y = 0 + pixel_x = -22 }, /obj/structure/catwalk, /turf/simulated/floor/plating/eris/under, @@ -5607,22 +5389,17 @@ "Uq" = ( /obj/machinery/alarm/talon{ dir = 4; - icon_state = "alarm0"; - pixel_x = -22; - pixel_y = 0 + pixel_x = -22 }, /turf/simulated/floor/tiled/eris/steel, /area/talon/deckone/central_hallway) "Ur" = ( /obj/machinery/light{ - dir = 8; - icon_state = "tube1"; - pixel_y = 0 + dir = 8 }, /obj/machinery/disposal, /obj/structure/disposalpipe/trunk{ - dir = 4; - icon_state = "pipe-t" + dir = 4 }, /turf/simulated/floor/tiled/eris/white/gray_platform, /area/talon/deckone/bridge_hallway) @@ -5648,21 +5425,18 @@ dir = 4 }, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4; - icon_state = "intact-scrubbers" + dir = 4 }, /obj/effect/floor_decal/emblem/talon_big{ - dir = 6; - icon_state = "talon_big" + dir = 6 }, /turf/simulated/floor/tiled/steel_grid, /area/talon/deckone/central_hallway) "UG" = ( -/obj/machinery/door/airlock/maintenance/medical{ - req_one_access = list(301) +/obj/machinery/light/small{ + dir = 4 }, -/obj/machinery/door/firedoor/glass/talon, -/turf/simulated/floor/plating/eris/under, +/turf/simulated/floor/tiled/eris/white/bluecorner, /area/talon/deckone/medical) "UI" = ( /obj/structure/cable/green{ @@ -5703,10 +5477,14 @@ /turf/simulated/floor/tiled/eris/white, /area/talon/deckone/bridge_hallway) "UQ" = ( -/obj/structure/catwalk, -/obj/structure/loot_pile/maint/technical, -/turf/simulated/floor/plating/eris/under, -/area/talon/maintenance/deckone_starboard) +/obj/item/weapon/storage/box/bodybags, +/obj/item/roller, +/obj/item/roller{ + pixel_y = 8 + }, +/obj/structure/table/standard, +/turf/simulated/floor/tiled/eris/white/bluecorner, +/area/talon/deckone/medical) "UT" = ( /obj/effect/floor_decal/industrial/hatch/yellow, /obj/machinery/door/blast/regular{ @@ -5731,8 +5509,7 @@ /area/talon/maintenance/deckone_starboard_fore_wing) "UV" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4; - icon_state = "intact-scrubbers" + dir = 4 }, /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 @@ -5763,19 +5540,16 @@ dir = 4 }, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4; - icon_state = "intact-scrubbers" + dir = 4 }, /obj/effect/floor_decal/emblem/talon_big{ - dir = 10; - icon_state = "talon_big" + dir = 10 }, /turf/simulated/floor/tiled/steel_grid, /area/talon/deckone/central_hallway) "Vf" = ( /obj/machinery/atmospherics/pipe/simple/heat_exchanging{ - dir = 10; - icon_state = "intact" + dir = 10 }, /turf/simulated/floor/hull/airless, /area/talon/maintenance/deckone_port_fore_wing) @@ -5846,8 +5620,7 @@ /area/talon/maintenance/deckone_starboard) "VU" = ( /obj/structure/disposalpipe/segment{ - dir = 4; - icon_state = "pipe-s" + dir = 4 }, /turf/simulated/floor/tiled/eris/dark/cyancorner, /area/talon/deckone/bridge) @@ -5888,8 +5661,7 @@ /area/talon/deckone/central_hallway) "WA" = ( /obj/machinery/atmospherics/pipe/manifold/hidden/fuel{ - dir = 1; - icon_state = "map-fuel" + dir = 1 }, /turf/simulated/floor/tiled/eris/dark/brown_perforated, /area/talon/deckone/starboard_eng) @@ -5922,8 +5694,7 @@ icon_state = "4-8" }, /obj/structure/disposalpipe/segment{ - dir = 4; - icon_state = "pipe-s" + dir = 4 }, /turf/simulated/floor/tiled/eris/steel/cargo, /area/talon/deckone/workroom) @@ -5932,17 +5703,27 @@ req_one_access = list(301) }, /obj/machinery/door/firedoor/glass/talon, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, /turf/simulated/floor/tiled/eris/white/bluecorner, /area/talon/deckone/medical) "Xa" = ( /obj/item/modular_computer/console/preset/talon{ - dir = 4; - icon_state = "console" + dir = 4 }, /turf/simulated/floor/tiled/eris/steel, /area/talon/deckone/brig) "Xd" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/hidden/supply{ + dir = 8 + }, /turf/simulated/floor/tiled/eris/white/bluecorner, /area/talon/deckone/medical) "Xe" = ( @@ -5965,15 +5746,13 @@ /area/talon/maintenance/deckone_starboard_aft_wing) "XC" = ( /obj/structure/disposalpipe/segment{ - dir = 4; - icon_state = "pipe-s" + dir = 4 }, /turf/simulated/floor/tiled/eris/dark/monofloor, /area/talon/deckone/central_hallway) "XG" = ( /obj/machinery/light_switch{ dir = 4; - icon_state = "light1"; pixel_x = -24 }, /obj/structure/sink{ @@ -5989,6 +5768,12 @@ /obj/machinery/portable_atmospherics/canister/air, /turf/simulated/floor/tiled/eris/dark/brown_perforated, /area/talon/deckone/port_eng) +"XT" = ( +/obj/machinery/atmospherics/unary/vent_pump/on{ + dir = 1 + }, +/turf/simulated/floor/tiled/eris/white/bluecorner, +/area/talon/deckone/medical) "XV" = ( /obj/effect/map_helper/airlock/door/int_door, /obj/machinery/atmospherics/pipe/simple/hidden/aux, @@ -6034,15 +5819,13 @@ /area/talon/deckone/central_hallway) "Yh" = ( /obj/structure/bed/chair/bay/comfy/brown{ - dir = 1; - icon_state = "bay_comfychair_preview" + dir = 1 }, /turf/simulated/floor/tiled/eris/dark/cyancorner, /area/talon/deckone/bridge) "Ym" = ( /obj/machinery/light/small{ - dir = 1; - icon_state = "bulb1" + dir = 1 }, /obj/structure/toilet, /obj/machinery/door/window/brigdoor/eastleft{ @@ -6068,8 +5851,7 @@ /area/talon/deckone/starboard_eng) "YI" = ( /obj/machinery/atmospherics/pipe/manifold/hidden/fuel{ - dir = 1; - icon_state = "map-fuel" + dir = 1 }, /turf/simulated/floor/tiled/eris/dark/brown_perforated, /area/talon/deckone/port_eng) @@ -6084,15 +5866,13 @@ "YM" = ( /obj/structure/bed/chair/bay/comfy/blue{ dir = 8; - icon_state = "bay_comfychair_preview"; name = "doctor's seat" }, /turf/simulated/floor/tiled/eris/dark/cyancorner, /area/talon/deckone/bridge) "YO" = ( /obj/structure/bed/chair/bay/chair{ - dir = 1; - icon_state = "bay_chair_preview" + dir = 1 }, /turf/simulated/floor/tiled/eris/steel/techfloor_grid, /area/shuttle/talonboat) @@ -6102,8 +5882,7 @@ pixel_y = -25 }, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4; - icon_state = "intact-scrubbers" + dir = 4 }, /turf/simulated/floor/tiled/eris/dark/cyancorner, /area/talon/deckone/bridge) @@ -6130,15 +5909,13 @@ pixel_y = 30 }, /obj/machinery/atmospherics/pipe/manifold/hidden{ - dir = 1; - icon_state = "map" + dir = 1 }, /turf/simulated/floor/tiled/eris/dark/brown_perforated, /area/talon/deckone/port_eng) "Zq" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4; - icon_state = "intact-scrubbers" + dir = 4 }, /obj/machinery/atmospherics/pipe/manifold/hidden/supply{ dir = 1 @@ -6149,8 +5926,7 @@ icon_state = "4-8" }, /obj/structure/disposalpipe/segment{ - dir = 4; - icon_state = "pipe-s" + dir = 4 }, /obj/effect/catwalk_plated, /turf/simulated/floor/plating/eris/under, @@ -6173,7 +5949,6 @@ "ZA" = ( /obj/machinery/alarm/talon{ dir = 1; - icon_state = "alarm0"; pixel_y = -22 }, /turf/simulated/floor/tiled/eris/dark/brown_perforated, @@ -6189,7 +5964,6 @@ /obj/machinery/atmospherics/unary/vent_scrubber/on, /obj/machinery/light_switch{ dir = 4; - icon_state = "light1"; pixel_x = -24 }, /obj/machinery/recharger/wallcharger{ @@ -6200,8 +5974,7 @@ /area/talon/deckone/armory) "ZR" = ( /obj/machinery/atmospherics/pipe/simple/heat_exchanging{ - dir = 6; - icon_state = "intact" + dir = 6 }, /turf/simulated/floor/hull/airless, /area/talon/maintenance/deckone_port_fore_wing) @@ -6213,8 +5986,7 @@ /obj/machinery/light, /obj/machinery/disposal, /obj/structure/disposalpipe/trunk{ - dir = 1; - icon_state = "pipe-t" + dir = 1 }, /turf/simulated/floor/tiled/eris/steel/cargo, /area/talon/deckone/workroom) @@ -14820,7 +14592,7 @@ iY tm ID dH -xE +LU gU db PO @@ -16799,7 +16571,7 @@ Kc Bn Gb FA -Gb +So Gb Gb ce @@ -17083,7 +16855,7 @@ Nm dO dd FA -Gb +So Gb ek dO @@ -17376,7 +17148,7 @@ Nu wh ZW fJ -Ka +VT ci gW Yo @@ -17509,7 +17281,7 @@ qA dO NG bM -Gb +Ej qB bf dO @@ -17650,9 +17422,9 @@ co qA dO de -df -Gb -bC +dS +Ss +XT ct dO Gt @@ -17791,11 +17563,11 @@ co co Nm dO -dO -dO +hv +xE +Gb UG -dO -dO +UQ dO fJ rn @@ -17929,16 +17701,16 @@ xk qA aO mO +bC +df qA -qA -qA -qA -hv -qA -qA -Of -UQ -qA +dO +dO +dO +Ka +dO +dO +dO cJ Dz Dz @@ -18075,7 +17847,7 @@ sL sL sL sL -sL +az sL TC qA diff --git a/maps/offmap_vr/talon/talon2.dmm b/maps/offmap_vr/talon/talon2.dmm index c32cb4bfa1..207a914142 100644 --- a/maps/offmap_vr/talon/talon2.dmm +++ b/maps/offmap_vr/talon/talon2.dmm @@ -14,8 +14,7 @@ }, /obj/machinery/alarm/talon{ dir = 8; - pixel_x = 22; - pixel_y = 0 + pixel_x = 22 }, /turf/simulated/floor/carpet, /area/talon/decktwo/eng_room) @@ -39,8 +38,7 @@ }, /obj/machinery/alarm/talon{ dir = 8; - pixel_x = 22; - pixel_y = 0 + pixel_x = 22 }, /turf/simulated/floor/carpet, /area/talon/decktwo/med_room) @@ -54,9 +52,7 @@ "aj" = ( /obj/structure/railing, /obj/machinery/light{ - dir = 8; - icon_state = "tube1"; - pixel_y = 0 + dir = 8 }, /turf/simulated/open, /area/talon/decktwo/bridge_upper) @@ -74,8 +70,7 @@ /obj/machinery/portable_atmospherics/powered/scrubber, /obj/machinery/alarm/talon{ dir = 8; - pixel_x = 22; - pixel_y = 0 + pixel_x = 22 }, /turf/simulated/floor/tiled/techfloor/grid, /area/talon/decktwo/lifeboat) @@ -87,8 +82,7 @@ }, /obj/machinery/alarm/talon{ dir = 8; - pixel_x = 22; - pixel_y = 0 + pixel_x = 22 }, /turf/simulated/floor/tiled/eris/steel, /area/talon/decktwo/central_hallway) @@ -111,8 +105,7 @@ /area/talon/decktwo/cap_room) "aq" = ( /obj/machinery/atmospherics/portables_connector/aux{ - dir = 1; - icon_state = "map_connector-aux" + dir = 1 }, /obj/machinery/portable_atmospherics/canister/air/airlock, /turf/simulated/floor/plating/eris/under, @@ -171,9 +164,7 @@ "aA" = ( /obj/structure/table/woodentable, /obj/machinery/firealarm{ - dir = 2; layer = 3.3; - pixel_x = 0; pixel_y = 26 }, /turf/simulated/floor/carpet/blucarpet, @@ -185,9 +176,7 @@ icon_state = "1-2" }, /obj/machinery/light{ - dir = 8; - icon_state = "tube1"; - pixel_y = 0 + dir = 8 }, /obj/structure/disposalpipe/segment, /turf/simulated/floor/tiled/eris/steel, @@ -233,8 +222,7 @@ icon_state = "1-2" }, /obj/machinery/light/small{ - dir = 4; - pixel_y = 0 + dir = 4 }, /turf/simulated/floor/plating/eris/under, /area/talon/maintenance/decktwo_port) @@ -253,8 +241,7 @@ /area/talon/decktwo/cap_room) "aL" = ( /obj/machinery/light/small{ - dir = 1; - icon_state = "bulb1" + dir = 1 }, /obj/structure/closet/secure_closet/talon_captain, /obj/item/device/radio/off{ @@ -274,8 +261,7 @@ /obj/machinery/atmospherics/pipe/simple/hidden/supply, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /obj/machinery/atm{ - pixel_x = 32; - step_x = 0 + pixel_x = 32 }, /turf/simulated/floor/tiled/eris/steel, /area/talon/decktwo/central_hallway) @@ -301,9 +287,7 @@ "aP" = ( /obj/machinery/alarm/talon{ dir = 4; - icon_state = "alarm0"; - pixel_x = -22; - pixel_y = 0 + pixel_x = -22 }, /obj/structure/table/standard, /turf/simulated/floor/wood, @@ -319,8 +303,7 @@ /area/talon/maintenance/decktwo_solars) "aS" = ( /obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 9; - pixel_y = 0 + dir = 9 }, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 9 @@ -338,8 +321,7 @@ /area/talon/decktwo/bar) "aU" = ( /obj/machinery/vending/dinnerware{ - dir = 1; - icon_state = "dinnerware" + dir = 1 }, /turf/simulated/floor/tiled/eris/steel/gray_perforated, /area/talon/decktwo/bar) @@ -358,8 +340,7 @@ /area/talon/decktwo/cap_room) "aX" = ( /obj/structure/bed/chair/bay/chair{ - dir = 1; - icon_state = "bay_chair_preview" + dir = 1 }, /turf/simulated/floor/wood, /area/talon/decktwo/bar) @@ -376,13 +357,10 @@ }, /obj/machinery/alarm/talon{ dir = 4; - icon_state = "alarm0"; - pixel_x = -22; - pixel_y = 0 + pixel_x = -22 }, /obj/structure/table/standard, /obj/structure/closet/hydrant{ - pixel_x = 0; pixel_y = 32; starts_with = list(/obj/item/clothing/suit/fire/firefighter = 2, /obj/item/clothing/mask/gas = 2, /obj/item/device/flashlight = 2, /obj/item/weapon/tank/oxygen/red = 2, /obj/item/weapon/extinguisher = 2, /obj/item/clothing/head/hardhat/red = 2) }, @@ -416,8 +394,7 @@ dir = 6 }, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4; - icon_state = "intact-scrubbers" + dir = 4 }, /obj/structure/cable/green{ icon_state = "4-8" @@ -434,8 +411,7 @@ dir = 4 }, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4; - icon_state = "intact-scrubbers" + dir = 4 }, /obj/structure/cable/green{ icon_state = "4-8" @@ -488,8 +464,7 @@ dir = 4 }, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4; - icon_state = "intact-scrubbers" + dir = 4 }, /obj/machinery/door/firedoor/glass/talon, /obj/machinery/door/airlock/command{ @@ -510,8 +485,7 @@ icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4; - icon_state = "intact-scrubbers" + dir = 4 }, /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 @@ -612,8 +586,7 @@ /area/talon/decktwo/med_room) "bu" = ( /obj/machinery/light/small{ - dir = 8; - pixel_x = 0 + dir = 8 }, /turf/simulated/floor/wood, /area/talon/decktwo/cap_room) @@ -641,14 +614,12 @@ icon_state = "0-2" }, /obj/machinery/power/apc/talon{ - cell_type = /obj/item/weapon/cell/apc; dir = 8; name = "west bump"; pixel_x = -28 }, /obj/structure/bed/chair/bay/chair{ - dir = 1; - icon_state = "bay_chair_preview" + dir = 1 }, /turf/simulated/floor/wood, /area/talon/decktwo/bar) @@ -678,7 +649,6 @@ /area/talon/decktwo/sec_room) "bA" = ( /obj/machinery/power/apc/talon{ - cell_type = /obj/item/weapon/cell/apc; dir = 8; name = "west bump"; pixel_x = -28 @@ -693,9 +663,7 @@ "bB" = ( /obj/machinery/alarm/talon{ dir = 4; - icon_state = "alarm0"; - pixel_x = -22; - pixel_y = 0 + pixel_x = -22 }, /turf/simulated/floor/wood, /area/talon/decktwo/cap_room) @@ -715,8 +683,7 @@ /area/talon/decktwo/cap_room) "bF" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4; - icon_state = "intact-scrubbers" + dir = 4 }, /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 @@ -726,8 +693,7 @@ pixel_y = -24 }, /obj/structure/disposalpipe/segment{ - dir = 4; - icon_state = "pipe-s" + dir = 4 }, /turf/simulated/floor/tiled/eris/steel, /area/talon/decktwo/central_hallway) @@ -784,8 +750,7 @@ /obj/structure/catwalk, /obj/machinery/alarm/talon{ dir = 4; - pixel_x = -24; - pixel_y = 0 + pixel_x = -24 }, /turf/simulated/floor/plating/eris/under, /area/talon/maintenance/decktwo_starboard) @@ -810,15 +775,13 @@ /obj/structure/catwalk, /obj/machinery/alarm/talon{ dir = 4; - pixel_x = -24; - pixel_y = 0 + pixel_x = -24 }, /turf/simulated/floor/plating/eris/under, /area/talon/maintenance/decktwo_starboard) "bP" = ( /obj/structure/extinguisher_cabinet{ dir = 8; - icon_state = "extinguisher_closed"; pixel_x = 30 }, /obj/structure/disposalpipe/segment{ @@ -847,13 +810,11 @@ /area/talon/maintenance/decktwo_port) "bT" = ( /obj/machinery/atmospherics/pipe/simple/visible/scrubbers{ - dir = 10; - icon_state = "intact-scrubbers" + dir = 10 }, /obj/structure/catwalk, /obj/machinery/light/small{ - dir = 4; - pixel_y = 0 + dir = 4 }, /turf/simulated/floor/plating/eris/under, /area/talon/maintenance/decktwo_aft) @@ -863,8 +824,7 @@ }, /obj/structure/catwalk, /obj/machinery/atmospherics/pipe/simple/visible/aux{ - dir = 6; - icon_state = "intact-aux" + dir = 6 }, /obj/machinery/alarm/talon{ pixel_y = 22 @@ -876,8 +836,7 @@ icon_state = "1-8" }, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4; - icon_state = "intact-scrubbers" + dir = 4 }, /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 @@ -890,23 +849,20 @@ /area/talon/decktwo/bar) "bW" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4; - icon_state = "intact-scrubbers" + dir = 4 }, /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 }, /obj/machinery/oxygen_pump{ dir = 1; - icon_state = "oxygen_tank"; pixel_y = -30 }, /turf/simulated/floor/wood, /area/talon/decktwo/bar) "bX" = ( /obj/machinery/atmospherics/pipe/simple/visible/scrubbers{ - dir = 4; - icon_state = "intact-scrubbers" + dir = 4 }, /obj/structure/cable/green{ d1 = 4; @@ -1020,7 +976,6 @@ /area/talon/maintenance/decktwo_starboard) "cs" = ( /obj/structure/cable/heavyduty{ - dir = 2; icon_state = "0-4" }, /obj/structure/cable/yellow{ @@ -1055,8 +1010,7 @@ "cA" = ( /obj/structure/railing, /obj/structure/railing{ - dir = 4; - icon_state = "railing0" + dir = 4 }, /turf/simulated/open, /area/talon/decktwo/central_hallway) @@ -1100,30 +1054,25 @@ "cP" = ( /obj/machinery/alarm/talon{ dir = 4; - icon_state = "alarm0"; - pixel_x = -22; - pixel_y = 0 + pixel_x = -22 }, /obj/structure/disposalpipe/segment, /turf/simulated/floor/tiled/eris/steel, /area/talon/decktwo/central_hallway) "cR" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4; - icon_state = "intact-scrubbers" + dir = 4 }, /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 }, /obj/structure/cable/green, /obj/machinery/power/apc/talon{ - dir = 2; name = "south bump"; pixel_y = -24 }, /obj/structure/disposalpipe/segment{ - dir = 4; - icon_state = "pipe-s" + dir = 4 }, /turf/simulated/floor/tiled/eris/steel, /area/talon/decktwo/central_hallway) @@ -1203,7 +1152,6 @@ icon_state = "0-2" }, /obj/machinery/power/apc/talon{ - cell_type = /obj/item/weapon/cell/apc; dir = 8; name = "west bump"; pixel_x = -28 @@ -1228,9 +1176,7 @@ "dT" = ( /obj/machinery/alarm/talon{ dir = 4; - icon_state = "alarm0"; - pixel_x = -22; - pixel_y = 0 + pixel_x = -22 }, /obj/effect/landmark/start{ name = "Talon Pilot" @@ -1267,8 +1213,7 @@ icon_state = "1-2" }, /obj/machinery/light/small{ - dir = 8; - pixel_y = 0 + dir = 8 }, /obj/machinery/suit_cycler/vintage/tengi, /turf/simulated/floor/wood, @@ -1291,8 +1236,7 @@ /area/talon/decktwo/tech) "ef" = ( /obj/machinery/camera/network/talon{ - dir = 9; - icon_state = "camera" + dir = 9 }, /obj/machinery/pointdefense_control{ id_tag = "talon_pd" @@ -1301,8 +1245,7 @@ /area/talon/decktwo/tech) "eg" = ( /obj/machinery/light/small{ - dir = 8; - pixel_x = 0 + dir = 8 }, /obj/machinery/suit_cycler/vintage/tpilot, /turf/simulated/floor/wood, @@ -1396,8 +1339,7 @@ /area/talon/decktwo/lifeboat) "eQ" = ( /obj/machinery/atmospherics/pipe/simple/visible/scrubbers{ - dir = 10; - icon_state = "intact-scrubbers" + dir = 10 }, /obj/structure/catwalk, /turf/simulated/floor/plating/eris/under, @@ -1468,7 +1410,6 @@ icon_state = "0-2" }, /obj/machinery/power/apc/talon{ - cell_type = /obj/item/weapon/cell/apc; dir = 8; name = "west bump"; pixel_x = -28 @@ -1494,9 +1435,7 @@ "fr" = ( /obj/machinery/alarm/talon{ dir = 4; - icon_state = "alarm0"; - pixel_x = -22; - pixel_y = 0 + pixel_x = -22 }, /obj/effect/landmark/start{ name = "Talon Guard" @@ -1537,7 +1476,6 @@ }, /obj/machinery/light_switch{ dir = 4; - icon_state = "light1"; pixel_x = -24 }, /turf/simulated/floor/wood, @@ -1547,8 +1485,7 @@ /area/talon/decktwo/med_room) "fB" = ( /obj/machinery/light/small{ - dir = 4; - pixel_y = 0 + dir = 4 }, /obj/machinery/suit_cycler/vintage/tmedic, /turf/simulated/floor/wood, @@ -1562,8 +1499,7 @@ /area/talon/decktwo/lifeboat) "fF" = ( /obj/machinery/light/small{ - dir = 8; - pixel_x = 0 + dir = 8 }, /obj/machinery/suit_cycler/vintage/tguard, /turf/simulated/floor/wood, @@ -1656,8 +1592,7 @@ /area/talon/maintenance/decktwo_aft) "go" = ( /obj/structure/railing{ - dir = 4; - icon_state = "railing0" + dir = 4 }, /turf/simulated/open, /area/talon/maintenance/decktwo_aft) @@ -1684,8 +1619,7 @@ /area/talon/maintenance/decktwo_aft) "gD" = ( /obj/structure/railing{ - dir = 4; - icon_state = "railing0" + dir = 4 }, /obj/structure/railing{ dir = 1 @@ -1705,8 +1639,7 @@ /area/talon/maintenance/decktwo_aft) "gL" = ( /obj/structure/railing{ - dir = 4; - icon_state = "railing0" + dir = 4 }, /obj/structure/lattice, /turf/simulated/open, @@ -1721,8 +1654,7 @@ }, /obj/effect/map_helper/airlock/sensor/int_sensor, /obj/machinery/atmospherics/pipe/simple/visible/aux{ - dir = 10; - icon_state = "intact-aux" + dir = 10 }, /turf/simulated/floor/plating/eris/under, /area/talon/maintenance/decktwo_aft) @@ -1730,14 +1662,6 @@ /obj/structure/railing, /turf/simulated/open, /area/talon/maintenance/decktwo_aft) -"gU" = ( -/obj/structure/railing, -/obj/structure/railing{ - dir = 4; - icon_state = "railing0" - }, -/turf/simulated/open, -/area/talon/maintenance/decktwo_aft) "gV" = ( /obj/structure/railing, /obj/structure/railing{ @@ -1760,8 +1684,7 @@ dir = 1 }, /obj/structure/railing{ - dir = 4; - icon_state = "railing0" + dir = 4 }, /turf/simulated/open, /area/talon/maintenance/decktwo_aft) @@ -1790,8 +1713,7 @@ /area/talon/maintenance/decktwo_aft) "hz" = ( /obj/structure/railing{ - dir = 4; - icon_state = "railing0" + dir = 4 }, /obj/structure/railing, /turf/simulated/open, @@ -1799,8 +1721,7 @@ "hE" = ( /obj/structure/lattice, /obj/machinery/atmospherics/pipe/zpipe/down/supply{ - dir = 4; - icon_state = "down-supply" + dir = 4 }, /obj/machinery/door/firedoor/glass/talon, /turf/simulated/open, @@ -1808,8 +1729,7 @@ "hF" = ( /obj/structure/lattice, /obj/machinery/atmospherics/pipe/zpipe/down/scrubbers{ - dir = 8; - icon_state = "down-scrubbers" + dir = 8 }, /obj/machinery/door/firedoor/glass/talon, /obj/structure/disposalpipe/down{ @@ -1860,8 +1780,7 @@ /area/talon/maintenance/decktwo_aft) "ik" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4; - icon_state = "intact-scrubbers" + dir = 4 }, /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 @@ -1897,29 +1816,24 @@ }, /obj/effect/floor_decal/industrial/outline/yellow, /obj/effect/floor_decal/industrial/warning/dust/corner{ - dir = 1; - icon_state = "warningcorner_dust" + dir = 1 }, /turf/simulated/floor/reinforced/airless, /area/talon/maintenance/decktwo_solars) "iw" = ( /obj/machinery/atmospherics/pipe/simple/visible/scrubbers{ - dir = 4; - icon_state = "intact-scrubbers" + dir = 4 }, /obj/structure/catwalk, /turf/simulated/floor/plating/eris/under, /area/talon/maintenance/decktwo_aft) "ix" = ( /obj/machinery/light{ - dir = 8; - icon_state = "tube1"; - pixel_y = 0 + dir = 8 }, /obj/machinery/disposal, /obj/structure/disposalpipe/trunk{ - dir = 1; - icon_state = "pipe-t" + dir = 1 }, /turf/simulated/floor/tiled/eris/steel, /area/talon/decktwo/central_hallway) @@ -1958,8 +1872,7 @@ /area/talon/decktwo/tech) "iV" = ( /obj/machinery/computer/ship/engines{ - dir = 1; - icon_state = "computer" + dir = 1 }, /turf/simulated/floor/tiled/eris/dark/violetcorener, /area/talon/decktwo/tech) @@ -1972,11 +1885,9 @@ "jz" = ( /obj/structure/cable/green{ d2 = 8; - dir = 2; icon_state = "0-8" }, /obj/machinery/power/apc/talon{ - dir = 2; name = "south bump"; pixel_y = -28; req_access = list(67) @@ -2011,8 +1922,7 @@ }, /obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers, /obj/structure/disposalpipe/segment{ - dir = 4; - icon_state = "pipe-s" + dir = 4 }, /turf/simulated/floor/tiled/eris/steel, /area/talon/decktwo/central_hallway) @@ -2024,8 +1934,7 @@ dir = 6 }, /obj/structure/disposalpipe/segment{ - dir = 4; - icon_state = "pipe-s" + dir = 4 }, /turf/simulated/floor/tiled/eris/steel, /area/talon/decktwo/central_hallway) @@ -2066,8 +1975,7 @@ }, /obj/structure/catwalk, /obj/machinery/light/small{ - dir = 4; - pixel_y = 0 + dir = 4 }, /turf/simulated/floor/plating/eris/under, /area/talon/maintenance/decktwo_port) @@ -2163,8 +2071,7 @@ /obj/machinery/atmospherics/pipe/simple/hidden/supply, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /obj/machinery/camera/network/talon{ - dir = 9; - icon_state = "camera" + dir = 9 }, /turf/simulated/floor/tiled/eris/steel, /area/talon/decktwo/central_hallway) @@ -2180,8 +2087,7 @@ "mD" = ( /obj/machinery/atmospherics/pipe/simple/hidden/supply, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 5; - icon_state = "intact-scrubbers" + dir = 5 }, /turf/simulated/floor/tiled/eris/steel, /area/talon/decktwo/central_hallway) @@ -2209,16 +2115,14 @@ icon_state = "pipe-j2" }, /obj/machinery/atmospherics/pipe/simple/visible/scrubbers{ - dir = 4; - icon_state = "intact-scrubbers" + dir = 4 }, /obj/structure/window/reinforced, /turf/simulated/floor/plating/eris/under, /area/talon/maintenance/decktwo_aft) "mR" = ( /obj/machinery/atmospherics/pipe/simple/visible/scrubbers{ - dir = 4; - icon_state = "intact-scrubbers" + dir = 4 }, /obj/structure/cable/green{ d1 = 4; @@ -2295,9 +2199,7 @@ icon_state = "1-2" }, /obj/machinery/light{ - dir = 8; - icon_state = "tube1"; - pixel_y = 0 + dir = 8 }, /obj/structure/disposalpipe/segment, /turf/simulated/floor/tiled/eris/steel, @@ -2391,8 +2293,7 @@ icon_state = "1-2" }, /obj/structure/disposalpipe/segment{ - dir = 4; - icon_state = "pipe-s" + dir = 4 }, /turf/simulated/floor/wood, /area/talon/decktwo/bar) @@ -2415,15 +2316,13 @@ /area/talon/maintenance/decktwo_aft) "qi" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4; - icon_state = "intact-scrubbers" + dir = 4 }, /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 }, /obj/structure/disposalpipe/segment{ - dir = 4; - icon_state = "pipe-s" + dir = 4 }, /turf/simulated/floor/tiled/eris/steel, /area/talon/decktwo/central_hallway) @@ -2439,7 +2338,6 @@ /obj/machinery/atmospherics/pipe/simple/hidden/supply, /obj/structure/sign/directions/roomnum{ dir = 4; - icon_state = "roomnum"; pixel_x = 32; pixel_y = -9 }, @@ -2459,23 +2357,20 @@ "rb" = ( /obj/structure/disposalpipe/trunk, /obj/machinery/disposal/deliveryChute{ - dir = 4; - icon_state = "intake" + dir = 4 }, /obj/effect/floor_decal/rust/steel_decals_rusted1{ dir = 8 }, /obj/effect/floor_decal/rust/steel_decals_rusted1{ - dir = 4; - icon_state = "steel_decals_rusted1" + dir = 4 }, /turf/simulated/floor/tiled/techmaint, /area/talon/maintenance/decktwo_aft) "re" = ( /obj/structure/catwalk, /obj/machinery/atmospherics/pipe/simple/visible/aux{ - dir = 6; - icon_state = "intact-aux" + dir = 6 }, /turf/simulated/floor/plating/eris/under, /area/talon/maintenance/decktwo_aft) @@ -2500,13 +2395,11 @@ /area/talon/decktwo/central_hallway) "rH" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4; - icon_state = "intact-scrubbers" + dir = 4 }, /obj/machinery/atmospherics/pipe/manifold/hidden/supply, /obj/structure/disposalpipe/segment{ - dir = 4; - icon_state = "pipe-s" + dir = 4 }, /turf/simulated/floor/tiled/eris/steel, /area/talon/decktwo/central_hallway) @@ -2539,8 +2432,7 @@ /area/talon/decktwo/bar) "sm" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4; - icon_state = "intact-scrubbers" + dir = 4 }, /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 @@ -2579,8 +2471,7 @@ }, /obj/machinery/door/airlock/maintenance/common, /obj/machinery/atmospherics/pipe/simple/visible/aux{ - dir = 4; - icon_state = "intact-aux" + dir = 4 }, /turf/simulated/floor/plating/eris/under, /area/talon/maintenance/decktwo_aft) @@ -2607,8 +2498,7 @@ "sQ" = ( /obj/structure/catwalk, /obj/machinery/light/small{ - dir = 4; - pixel_y = 0 + dir = 4 }, /obj/structure/cable/green{ d1 = 1; @@ -2661,8 +2551,7 @@ }, /obj/structure/catwalk, /obj/machinery/atmospherics/pipe/simple/visible/aux{ - dir = 10; - icon_state = "intact-aux" + dir = 10 }, /turf/simulated/floor/plating/eris/under, /area/talon/maintenance/decktwo_aft) @@ -2687,8 +2576,7 @@ /area/talon/decktwo/lifeboat) "uz" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4; - icon_state = "intact-scrubbers" + dir = 4 }, /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 @@ -2728,8 +2616,7 @@ "uM" = ( /obj/item/weapon/stool/baystool/padded, /obj/machinery/camera/network/talon{ - dir = 6; - icon_state = "camera" + dir = 6 }, /turf/simulated/floor/tiled/eris/cafe, /area/talon/decktwo/bar) @@ -2762,7 +2649,6 @@ "vj" = ( /obj/machinery/conveyor{ dir = 8; - icon_state = "conveyor0"; id = "talontrash" }, /obj/machinery/door/blast/regular{ @@ -2776,22 +2662,19 @@ dir = 4 }, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4; - icon_state = "intact-scrubbers" + dir = 4 }, /obj/structure/sign/directions/evac{ pixel_y = -38 }, /obj/structure/disposalpipe/segment{ - dir = 4; - icon_state = "pipe-s" + dir = 4 }, /turf/simulated/floor/tiled/eris/steel, /area/talon/decktwo/central_hallway) "vB" = ( /obj/structure/disposalpipe/segment{ - dir = 4; - icon_state = "pipe-s" + dir = 4 }, /turf/simulated/floor/wood, /area/talon/decktwo/bar) @@ -2826,8 +2709,7 @@ dir = 4 }, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4; - icon_state = "intact-scrubbers" + dir = 4 }, /turf/simulated/floor/tiled/eris/steel, /area/talon/decktwo/central_hallway) @@ -2850,15 +2732,13 @@ /area/talon/maintenance/decktwo_solars) "wW" = ( /obj/structure/disposalpipe/segment{ - dir = 4; - icon_state = "pipe-s" + dir = 4 }, /turf/simulated/wall/rshull, /area/talon/maintenance/decktwo_aft) "wZ" = ( /obj/structure/disposalpipe/trunk{ - dir = 4; - icon_state = "pipe-t" + dir = 4 }, /obj/structure/disposaloutlet, /turf/simulated/floor/plating/eris/under/airless, @@ -2879,8 +2759,7 @@ /area/talon/maintenance/decktwo_solars) "xi" = ( /obj/machinery/computer/shuttle_control/explore/talon_lifeboat{ - dir = 4; - icon_state = "computer" + dir = 4 }, /turf/simulated/floor/tiled/techfloor/grid, /area/talon/decktwo/lifeboat) @@ -2940,12 +2819,10 @@ /area/talon/decktwo/bridge_upper) "yF" = ( /obj/structure/disposalpipe/trunk{ - dir = 1; - icon_state = "pipe-t" + dir = 1 }, /obj/structure/disposaloutlet{ - dir = 8; - icon_state = "outlet" + dir = 8 }, /obj/structure/window/reinforced{ dir = 4 @@ -2954,8 +2831,7 @@ dir = 8 }, /obj/effect/floor_decal/rust/steel_decals_rusted1{ - dir = 4; - icon_state = "steel_decals_rusted1" + dir = 4 }, /turf/simulated/floor/tiled/techmaint, /area/talon/maintenance/decktwo_aft) @@ -3034,8 +2910,7 @@ "zW" = ( /obj/structure/catwalk, /obj/machinery/atmospherics/pipe/simple/visible/aux{ - dir = 5; - icon_state = "intact-aux" + dir = 5 }, /turf/simulated/floor/plating/eris/under, /area/talon/maintenance/decktwo_aft) @@ -3061,7 +2936,6 @@ "As" = ( /obj/structure/bed/chair/bay/comfy/blue{ dir = 1; - icon_state = "bay_comfychair_preview"; pixel_y = 5 }, /turf/simulated/floor/tiled/eris/dark/cyancorner, @@ -3098,9 +2972,7 @@ "AD" = ( /obj/machinery/alarm/talon{ dir = 4; - icon_state = "alarm0"; - pixel_x = -22; - pixel_y = 0 + pixel_x = -22 }, /turf/simulated/floor/tiled/eris/dark/cyancorner, /area/talon/decktwo/bridge_upper) @@ -3126,15 +2998,13 @@ "AX" = ( /obj/structure/catwalk, /obj/machinery/light/small{ - dir = 8; - pixel_x = 0 + dir = 8 }, /turf/simulated/floor/plating/eris/under, /area/talon/maintenance/decktwo_starboard) "Bb" = ( /obj/machinery/atmospherics/pipe/simple/visible/scrubbers{ - dir = 4; - icon_state = "intact-scrubbers" + dir = 4 }, /obj/structure/cable/green{ d1 = 4; @@ -3174,7 +3044,6 @@ /obj/machinery/atmospherics/pipe/simple/hidden/supply, /obj/machinery/oxygen_pump{ dir = 8; - icon_state = "oxygen_tank"; pixel_x = -30 }, /obj/structure/disposalpipe/segment, @@ -3182,8 +3051,7 @@ /area/talon/decktwo/central_hallway) "Cg" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4; - icon_state = "intact-scrubbers" + dir = 4 }, /obj/machinery/light/small{ dir = 1 @@ -3316,9 +3184,7 @@ /area/talon/decktwo/bar) "Dr" = ( /obj/machinery/light{ - dir = 8; - icon_state = "tube1"; - pixel_y = 0 + dir = 8 }, /turf/simulated/floor/tiled/eris/steel, /area/talon/decktwo/central_hallway) @@ -3336,8 +3202,7 @@ icon_state = "2-4" }, /obj/machinery/camera/network/talon{ - dir = 6; - icon_state = "camera" + dir = 6 }, /obj/structure/disposalpipe/segment, /turf/simulated/floor/hull/airless, @@ -3355,7 +3220,6 @@ "EA" = ( /obj/machinery/conveyor{ dir = 8; - icon_state = "conveyor0"; id = "talontrash" }, /turf/simulated/floor/tiled/techmaint, @@ -3376,7 +3240,6 @@ "Fu" = ( /obj/structure/extinguisher_cabinet{ dir = 4; - icon_state = "extinguisher_closed"; pixel_x = -30 }, /obj/structure/disposalpipe/segment, @@ -3384,8 +3247,7 @@ /area/talon/decktwo/central_hallway) "FA" = ( /obj/machinery/atmospherics/pipe/simple/visible/scrubbers{ - dir = 4; - icon_state = "intact-scrubbers" + dir = 4 }, /obj/structure/cable/green{ d1 = 4; @@ -3444,27 +3306,23 @@ "Gi" = ( /obj/machinery/disposal, /obj/structure/disposalpipe/trunk{ - dir = 4; - icon_state = "pipe-t" + dir = 4 }, /turf/simulated/floor/tiled/eris/steel, /area/talon/decktwo/central_hallway) "Gm" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4; - icon_state = "intact-scrubbers" + dir = 4 }, /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 }, /obj/machinery/oxygen_pump{ dir = 1; - icon_state = "oxygen_tank"; pixel_y = -30 }, /obj/structure/disposalpipe/segment{ - dir = 4; - icon_state = "pipe-s" + dir = 4 }, /turf/simulated/floor/tiled/eris/steel, /area/talon/decktwo/central_hallway) @@ -3493,8 +3351,7 @@ /obj/machinery/door/airlock/maintenance/common, /obj/machinery/door/firedoor/glass/talon, /obj/structure/disposalpipe/segment{ - dir = 4; - icon_state = "pipe-s" + dir = 4 }, /turf/simulated/floor/plating/eris/under, /area/talon/maintenance/decktwo_starboard) @@ -3621,8 +3478,7 @@ }, /obj/structure/catwalk, /obj/machinery/light/small{ - dir = 8; - pixel_x = 0 + dir = 8 }, /turf/simulated/floor/plating/eris/under, /area/talon/maintenance/decktwo_aft) @@ -3637,8 +3493,7 @@ /area/talon/decktwo/central_hallway) "IX" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4; - icon_state = "intact-scrubbers" + dir = 4 }, /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 @@ -3647,8 +3502,7 @@ pixel_y = -31 }, /obj/structure/disposalpipe/segment{ - dir = 4; - icon_state = "pipe-s" + dir = 4 }, /turf/simulated/floor/tiled/eris/steel, /area/talon/decktwo/central_hallway) @@ -3666,20 +3520,17 @@ /area/talon/decktwo/central_hallway) "Jh" = ( /obj/machinery/atmospherics/pipe/simple/visible/scrubbers{ - dir = 4; - icon_state = "intact-scrubbers" + dir = 4 }, /obj/structure/catwalk, /obj/structure/sign/securearea{ - pixel_x = 0; pixel_y = 30 }, /turf/simulated/floor/plating/eris/under, /area/talon/maintenance/decktwo_aft) "Jo" = ( /obj/machinery/camera/network/talon{ - dir = 4; - icon_state = "camera" + dir = 4 }, /obj/item/weapon/paper/talon_lifeboat, /obj/structure/table/steel, @@ -3688,8 +3539,7 @@ "Ju" = ( /obj/structure/catwalk, /obj/machinery/atmospherics/pipe/simple/visible/aux{ - dir = 9; - icon_state = "intact-aux" + dir = 9 }, /obj/machinery/firealarm{ dir = 1; @@ -3699,12 +3549,10 @@ /area/talon/maintenance/decktwo_aft) "JF" = ( /obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 9; - pixel_y = 0 + dir = 9 }, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 5; - icon_state = "intact-scrubbers" + dir = 5 }, /obj/structure/cable/green{ d1 = 1; @@ -3730,8 +3578,7 @@ /area/talon/decktwo/central_hallway) "KE" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4; - icon_state = "intact-scrubbers" + dir = 4 }, /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 @@ -3751,8 +3598,7 @@ /area/talon/decktwo/med_room) "KR" = ( /obj/machinery/chemical_dispenser/bar_alc/full{ - dir = 8; - icon_state = "booze_dispenser" + dir = 8 }, /obj/structure/table/marble, /obj/structure/cable/green{ @@ -3813,8 +3659,7 @@ }, /obj/structure/catwalk, /obj/machinery/light/small{ - dir = 8; - pixel_x = 0 + dir = 8 }, /turf/simulated/floor/plating/eris/under, /area/talon/maintenance/decktwo_starboard) @@ -3891,7 +3736,6 @@ }, /obj/structure/extinguisher_cabinet{ dir = 8; - icon_state = "extinguisher_closed"; pixel_x = 30 }, /turf/simulated/floor/tiled/eris/steel, @@ -3904,8 +3748,7 @@ "Nm" = ( /obj/machinery/door/firedoor/glass/talon, /obj/structure/disposalpipe/segment{ - dir = 4; - icon_state = "pipe-s" + dir = 4 }, /turf/simulated/floor/tiled/eris/techmaint_panels, /area/talon/decktwo/bar) @@ -3914,8 +3757,7 @@ dir = 8 }, /obj/machinery/light/small{ - dir = 4; - pixel_y = 0 + dir = 4 }, /obj/machinery/portable_atmospherics/powered/pump/filled, /turf/simulated/floor/tiled/techfloor/grid, @@ -3933,7 +3775,6 @@ /obj/machinery/atmospherics/pipe/simple/hidden/supply, /obj/machinery/oxygen_pump{ dir = 4; - icon_state = "oxygen_tank"; pixel_x = 30 }, /turf/simulated/floor/tiled/eris/steel, @@ -3956,8 +3797,7 @@ icon_state = "pipe-c" }, /obj/machinery/atmospherics/pipe/simple/visible/scrubbers{ - dir = 10; - icon_state = "intact-scrubbers" + dir = 10 }, /turf/simulated/floor/plating/eris/under, /area/talon/maintenance/decktwo_aft) @@ -3968,8 +3808,7 @@ icon_state = "4-8" }, /obj/machinery/camera/network/talon{ - dir = 10; - icon_state = "camera" + dir = 10 }, /turf/simulated/floor/tiled/eris/dark/cyancorner, /area/talon/decktwo/bridge_upper) @@ -3995,7 +3834,6 @@ /area/talon/decktwo/central_hallway) "Ou" = ( /obj/structure/cable/heavyduty{ - dir = 2; icon_state = "0-4" }, /turf/simulated/floor/hull/airless, @@ -4033,7 +3871,6 @@ /obj/machinery/atmospherics/pipe/simple/hidden/supply, /obj/structure/sign/directions/roomnum{ dir = 1; - icon_state = "roomnum"; pixel_x = -31; pixel_y = -9 }, @@ -4050,7 +3887,6 @@ /obj/structure/catwalk, /obj/structure/cable/green{ d2 = 8; - dir = 2; icon_state = "0-8" }, /obj/machinery/power/apc/talon{ @@ -4078,8 +3914,7 @@ icon_state = "4-8" }, /obj/effect/floor_decal/industrial/warning/dust/corner{ - dir = 1; - icon_state = "warningcorner_dust" + dir = 1 }, /turf/simulated/floor/hull/airless, /area/talon/maintenance/decktwo_solars) @@ -4098,8 +3933,7 @@ pixel_y = 32 }, /obj/machinery/light/small{ - dir = 4; - pixel_y = 0 + dir = 4 }, /turf/simulated/floor/tiled/eris/white, /area/talon/decktwo/central_hallway) @@ -4126,7 +3960,6 @@ /obj/structure/catwalk, /obj/structure/cable/green{ d2 = 8; - dir = 2; icon_state = "0-8" }, /obj/machinery/power/apc/talon{ @@ -4220,15 +4053,13 @@ /area/talon/decktwo/tech) "RQ" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4; - icon_state = "intact-scrubbers" + dir = 4 }, /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 }, /obj/structure/disposalpipe/segment{ - dir = 4; - icon_state = "pipe-s" + dir = 4 }, /obj/machinery/door/firedoor/glass{ dir = 2 @@ -4263,8 +4094,7 @@ icon_state = "1-2" }, /obj/machinery/camera/network/talon{ - dir = 9; - icon_state = "camera" + dir = 9 }, /turf/simulated/floor/tiled/eris/steel, /area/talon/decktwo/central_hallway) @@ -4351,8 +4181,7 @@ /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /obj/machinery/atmospherics/pipe/simple/hidden/supply, /obj/structure/disposalpipe/segment{ - dir = 4; - icon_state = "pipe-s" + dir = 4 }, /turf/simulated/floor/wood, /area/talon/decktwo/bar) @@ -4383,7 +4212,6 @@ /area/talon/maintenance/decktwo_aft) "Us" = ( /obj/structure/cable/heavyduty{ - dir = 2; icon_state = "0-4" }, /obj/structure/cable/yellow{ @@ -4401,7 +4229,6 @@ "Uv" = ( /obj/structure/cable/heavyduty, /obj/structure/cable/heavyduty{ - dir = 2; icon_state = "0-4" }, /obj/structure/cable/heavyduty{ @@ -4415,8 +4242,7 @@ /area/talon/maintenance/decktwo_solars) "UJ" = ( /obj/machinery/camera/network/talon{ - dir = 4; - icon_state = "camera" + dir = 4 }, /obj/structure/disposalpipe/segment, /turf/simulated/floor/tiled/eris/steel, @@ -4427,7 +4253,6 @@ }, /obj/structure/extinguisher_cabinet{ dir = 4; - icon_state = "extinguisher_closed"; pixel_x = -30 }, /obj/structure/disposalpipe/segment, @@ -4487,8 +4312,7 @@ "Vz" = ( /obj/structure/catwalk, /obj/machinery/atmospherics/pipe/simple/visible/aux{ - dir = 4; - icon_state = "intact-aux" + dir = 4 }, /turf/simulated/floor/plating/eris/under, /area/talon/maintenance/decktwo_aft) @@ -4675,15 +4499,13 @@ dir = 4 }, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4; - icon_state = "intact-scrubbers" + dir = 4 }, /obj/structure/sign/department/shield{ pixel_y = -31 }, /obj/structure/disposalpipe/segment{ - dir = 4; - icon_state = "pipe-s" + dir = 4 }, /turf/simulated/floor/tiled/eris/steel, /area/talon/decktwo/central_hallway) @@ -4692,7 +4514,6 @@ /obj/machinery/atmospherics/pipe/simple/hidden/supply, /obj/structure/sign/directions/roomnum{ dir = 8; - icon_state = "roomnum"; pixel_x = 32; pixel_y = -9 }, @@ -4700,8 +4521,7 @@ /area/talon/decktwo/central_hallway) "YE" = ( /obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 9; - pixel_y = 0 + dir = 9 }, /turf/simulated/floor/tiled/eris/steel, /area/talon/decktwo/central_hallway) @@ -14220,7 +14040,7 @@ go go go go -gU +hX WG gC gn @@ -14788,7 +14608,7 @@ Jh gD gL go -gU +hX mm gC gT diff --git a/maps/offmap_vr/talon/talon_areas.dm b/maps/offmap_vr/talon/talon_areas.dm index 36aee1dd2e..848ce2ae99 100644 --- a/maps/offmap_vr/talon/talon_areas.dm +++ b/maps/offmap_vr/talon/talon_areas.dm @@ -1,73 +1,109 @@ +/area/talon + name = "\improper ITV Talon" + icon = 'icons/turf/areas_vr_talon.dmi' + icon_state = "dark" + /area/talon/maintenance/deckone_port name = "\improper Deck One - Port Maintenance" + icon_state = "dark-p" /area/talon/maintenance/deckone_starboard name = "\improper Deck One - Starboard Maintenance" + icon_state = "dark-s" /area/talon/maintenance/deckone_port_aft_wing name = "\improper Deck One - Aft Port Wing" + icon_state = "gray-p" /area/talon/maintenance/deckone_starboard_aft_wing name = "\improper Deck One - Aft Starboard Wing" + icon_state = "gray-s" /area/talon/maintenance/deckone_port_fore_wing name = "\improper Deck One - Fore Port Wing" + icon_state = "gray-p" /area/talon/maintenance/deckone_starboard_fore_wing name = "\improper Deck One - Fore Starboard Wing" + icon_state = "gray-s" /area/talon/maintenance/decktwo_port name = "\improper Deck Two - Port Maintenance" + icon_state = "dark-p" /area/talon/maintenance/decktwo_starboard name = "\improper Deck Two - Starboard Maintenance" + icon_state = "dark-s" /area/talon/maintenance/decktwo_aft name = "\improper Deck Two - Aft Maintenance" + icon_state = "dark-a" /area/talon/maintenance/decktwo_solars name = "\improper Deck Two - Ext Solars" - + icon_state = "yellow" /area/talon/deckone/central_hallway name = "\improper Deck One - Central Hallway" + icon_state = "gray-c" /area/talon/deckone/bridge_hallway name = "\improper Deck One - Bridge Hallway" + icon_state = "gray" /area/talon/deckone/medical name = "\improper Deck One - Medical" + icon_state = "green" /area/talon/deckone/workroom name = "\improper Deck One - Workroom" /area/talon/deckone/brig name = "\improper Deck One - Brig" + icon_state = "red" /area/talon/deckone/port_eng name = "\improper Deck One - Port Engineering" + icon_state = "yellow-p" /area/talon/deckone/port_eng_store name = "\improper Deck One - Port Eng. Storage" + icon_state = "yellow-p" /area/talon/deckone/starboard_eng name = "\improper Deck One - Starboard Engineering" + icon_state = "yellow-s" /area/talon/deckone/starboard_eng_store name = "\improper Deck One - Starboard Eng. Storage" + icon_state = "yellow-s" /area/talon/deckone/armory name = "\improper Deck One - Armory" + icon_state = "red" /area/talon/deckone/secure_storage name = "\improper Deck One - Secure Storage" + icon_state = "red" /area/talon/deckone/bridge name = "\improper Deck One - Bridge" + icon_state = "blue" /area/talon/deckone/port_solar name = "\improper Deck One - Port Solar Control" + icon_state = "yellow-p" /area/talon/deckone/starboard_solar name = "\improper Deck One - Starboard Solar Control" + icon_state = "yellow-s" /area/talon/decktwo/central_hallway name = "\improper Deck Two - Central Hallway" + icon_state = "gray-c" /area/talon/decktwo/pilot_room name = "\improper Deck Two - Pilot Cabin" + icon_state = "gray" /area/talon/decktwo/med_room name = "\improper Deck Two - Doctor Cabin" + icon_state = "green" /area/talon/decktwo/eng_room name = "\improper Deck Two - Engineer Cabin" + icon_state = "yellow" /area/talon/decktwo/sec_room name = "\improper Deck Two - Guard Cabin" + icon_state = "red" /area/talon/decktwo/cap_room name = "\improper Deck Two - Captain Cabin" + icon_state = "blue" /area/talon/decktwo/bar name = "\improper Deck Two - Bar" /area/talon/decktwo/tech name = "\improper Deck Two - Tech Room" + icon_state = "yellow" /area/talon/decktwo/lifeboat name = "\improper Deck Two - Lifeboat" + icon_state = "purple" /area/talon/decktwo/bridge_upper - name = "\improper Deck Two - Upper Bridge" \ No newline at end of file + name = "\improper Deck Two - Upper Bridge" + icon_state = "blue" \ No newline at end of file diff --git a/maps/southern_cross/southern_cross-6.dmm b/maps/southern_cross/southern_cross-6.dmm index abd4450a36..35d4c81656 100644 --- a/maps/southern_cross/southern_cross-6.dmm +++ b/maps/southern_cross/southern_cross-6.dmm @@ -2319,39 +2319,64 @@ "SE" = (/obj/effect/floor_decal/sign/small_g,/turf/simulated/floor/holofloor/wood,/area/holodeck/source_chess) "SF" = (/obj/effect/floor_decal/sign/small_f,/turf/simulated/floor/holofloor/wood,/area/holodeck/source_chess) "SG" = (/obj/effect/floor_decal/sign/small_h,/turf/simulated/floor/holofloor/wood,/area/holodeck/source_chess) - +"SH" = (/turf/unsimulated/wall,/area/virtual_reality) +"SI" = (/obj/machinery/vending/deathmatch/red,/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/virtual_reality) +"SJ" = (/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/virtual_reality) +"SK" = (/turf/unsimulated/floor{icon_state = "dark"},/area/virtual_reality) +"SL" = (/obj/machinery/door/airlock{icon = 'icons/obj/doors/Dooruranium.dmi'; name = "Spawn"},/turf/unsimulated/floor{icon_state = "dark"},/area/virtual_reality) +"SM" = (/obj/effect/landmark/virtual_reality{name = "Thunderdome (Red Team)"},/turf/unsimulated/floor{icon_state = "dark"},/area/virtual_reality) +"SN" = (/obj/structure/table/standard,/obj/machinery/recharger{pixel_y = 4},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/virtual_reality) +"SO" = (/obj/structure/morgue/crematorium{desc = "qdel"; id = "vr_thunderdome"; name = "Object Deletorinator"},/turf/unsimulated/floor{icon_state = "dark"},/area/virtual_reality) +"SP" = (/obj/machinery/computer/pod{desc = "A control panel used to open and close Spawn Kill Prevention barriers."; dir = 1; id = "spawnred"; name = "Spawn Kill Prevention"; title = "Spawn Kill Prevention"},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/virtual_reality) +"SQ" = (/obj/machinery/mech_recharger,/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/virtual_reality) +"SR" = (/obj/machinery/door/airlock{icon = 'icons/obj/doors/Dooruranium.dmi'; name = "Object Deletion"},/turf/unsimulated/floor{icon_state = "dark"},/area/virtual_reality) +"SS" = (/obj/structure/table/steel_reinforced,/obj/machinery/button/crematorium{desc = "Used to delete objects totally not by burning them."; id = "vr_thunderdome"; name = "DEL"; req_access = newlist()},/turf/unsimulated/floor{icon_state = "dark"},/area/virtual_reality) +"ST" = (/obj/machinery/door/airlock/multi_tile/metal,/obj/machinery/door/blast/regular{id = "spawnred"; name = "Red Team Spawn"},/turf/unsimulated/floor{icon_state = "steel_dirty"},/area/virtual_reality) +"SU" = (/obj/machinery/door/blast/regular{id = "spawnred"; name = "Red Team Spawn"},/turf/unsimulated/floor{icon_state = "steel_dirty"},/area/virtual_reality) +"SV" = (/turf/unsimulated/floor{icon_state = "steel_dirty"},/area/virtual_reality) +"SW" = (/obj/structure/table/steel,/turf/unsimulated/floor{icon_state = "steel_dirty"},/area/virtual_reality) +"SX" = (/obj/structure/table/steel,/obj/random/energy,/turf/unsimulated/floor{icon_state = "steel_dirty"},/area/virtual_reality) +"SY" = (/obj/item/weapon/gun/magic/firestaff,/turf/unsimulated/floor{icon_state = "steel_dirty"},/area/virtual_reality) +"SZ" = (/obj/random/energy,/turf/unsimulated/floor{icon_state = "steel_dirty"},/area/virtual_reality) +"Ta" = (/obj/machinery/door/airlock/multi_tile/metal,/obj/machinery/door/blast/regular{id = "spawngreen"; name = "Green Team Spawn"},/turf/unsimulated/floor{icon_state = "steel_dirty"},/area/virtual_reality) +"Tb" = (/obj/machinery/door/blast/regular{id = "spawngreen"; name = "Green Team Spawn"},/turf/unsimulated/floor{icon_state = "steel_dirty"},/area/virtual_reality) +"Td" = (/obj/machinery/vending/deathmatch,/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/virtual_reality) +"Te" = (/obj/machinery/computer/pod{desc = "A control panel used to open and close Spawn Kill Prevention barriers."; id = "spawngreen"; name = "Spawn Kill Prevention"; title = "Spawn Kill Prevention"},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/virtual_reality) +"Tf" = (/obj/machinery/door/airlock{icon = 'icons/obj/doors/Dooruranium.dmi'},/turf/unsimulated/floor{icon_state = "dark"},/area/virtual_reality) +"Tg" = (/obj/effect/landmark/virtual_reality{name = "Thunderdome (Green Team)"},/turf/unsimulated/floor{icon_state = "dark"},/area/virtual_reality) + (1,1,1) = {" aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabacacacacacacacacacacabacacacacacacacacacacabacacacacacacacacacacabacacacacacacacacacacabacacacacacacacacacacabacacacacacacacacacacabacacacacacacacacacacabacacacacacacacacacacabaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadRURURURURURURURURURUagaeaeaeafaeaeaeaeaeaeagahaiahaiahahaiahaiahagbkbkbkbkbkbkaOaLaAajagananclalalalalalalalagaoaoaoaoaoaoaoaoaoaoagapapapapapapapapapapagavauambAbxbxbxbxbxbDawaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadRWRVRYRXSaRZScSbSdRUagaeaeaeaeaeaeaeaeaxaeagaiazayazayazayazayahagbkbkbkbkbkbkaOaLaAakagananctaBaBaBaBaBaBaBagaoaDaoaoaoaoaoaoaDaoagapapapapapapapapapapagavauambBaFaFaFaFaFbCawaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadSfSeSgSeSgSeSgSeSgRUagaeaxaeaeaeaeaeaeaeaeagatayaHaCaIaCaIaKazahagbkaVbmaWbmaXaOaLaAakagananaJalaPalaBaQaZaYagaoaoaoaoaoaoaoaoaoaoagapapapapapapapapapapagavavaRbBaFaFaFaFaFbCawaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadSiShSjShSjShSjShSjRUagaeaeaeaeaeafaeaeaeaeagaUbabbaSaTaTaUaNazaiagbcbrbqbvbqbsaOaLaAakagaManbdbebfbHbgclbhbiagaoaoaoaDaoaoaDaoaoaoagapapapapapapapapapapagavauambBaFaFaFaFaFbCawaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadSkSjShSjShSjShSjShRUagaeaeafaeaeaeafaeaeaeagaUaUaUaUbjbjaUaNayahagblbrbqbvbqbsaOaLaAakagananbnbobobobpclbtbNagaoaoaoaoaoaoaoaoaoaoagapapapapapapapapapapagavauamcacbcbcbcbcbccawaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadSlShSjShSjShSjShSjRUagaeaeaeaeaeaeaeaeaeaeagaUaUaUaUbjbjaUbGazaiagblbrbqbvbqbsaOaLaAakagananbubybzbybwclbtbNagaoaoaoaoaoaoaoaoaoaoagapapapapapapapapapapagavauamaqarararararasawaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadSmSjShSjShSjShSjShRUagaeaeaeaeaeaxaeaeaeafagaUbEbFaSaTaTaUaNayaiagbIbrbqbvbqbsaOaLaAakagaManbObQbzbQbRclbtbNagaoaoaoaDaoaoaDaoaoaoagapapapapapapapapapapagavauamaEaFaFaFaFaFaGawaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadSoSnSpSnSpSnSpSnSpRUagaeaeaxaeaeaeaeaeaeaeagbVaybJbKbLbKbLbMazahagbkbUbSbWbSbXaOaLaAakagananbYbzbzbzbNclbtbNagaoaoaoaoaoaoaoaoaoaoagapapapapapapapapapapagavavbZaEaFaFaFaFaFaGawaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadSrSqStSsSvSuSxSwSyRUagaeaeaeaeaeaeaeaeaeaeagaiazayazayazayazazaiagbkbkbkbkbkbkaOaLaAakagananbObQbzbQbRclbtbNagaoaDaoaoaoaoaoaoaDaoagapapapapapapapapapapagavauamaEaFaFaFaFaFaGawaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadRUSzSBSASDSCSFSESGRUagafaeaeaeaxaeaeaeaeaxagahaiahaiahahaiahaiahagbTbkbkbkbkbkaOaLaAakaganancncrbPcrcsclcBcuagaoaoaoaoaoaoaoaoaoaoagapapapapapapapapapapagavauamcIcKcKcKcKcKcOawaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabeeeeeeeeeeeeeeeeeeeeabcdcdcdcdcdcdcdcdcdcdabcdcdcdcdcdcdcdcdcdcdabcdcdcdcdcdcdcdcdcdcdabcecececececececececeabcecececececececececeabcecececececececececeabcecececececececececeabaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadcfcfcfcfcfcfcfcfcfcfagcgcgcgcgcgcgcgcgcgcgagchcicicicicicicicichagcpcocCdxdydxcDdzdydzagcqcqcqcqcqcqcqcqcqcqagcwcvcRdfdgdgdgdgdgeaagcxcxcycycycycycycycyawaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadcfcfcfczcfcfcfcfczcfagcgcAcgcgcgcgcAcgcgcgagdkdkdkdkdkdkdociciciagcpcocCdFcFdFcFdGcFdGagcqcqcHcqcqcqcqcqcqcqagcwcvcRdpcJcJcJcJcJduagcycycycycLcLcLcycycyawaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadcfcfcfcfcfcfcfcfcfcfagcgcgcgcgcgcgcgcgcMcgagcWdwdAdBdAdhcVciciciagcpcpdCdFcFdydydycFdGagcqcqcqcqcqcqcPcQcqcqagcwcwdHdpcJcJcJcJcJduagcycycycScTcTcTcycycyawaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadcfczcfcfcfcfczcfcfcfagcgcgcUcgcMcgcgcgcgcgagcXdIdndvdndMcVcNdOciagcpcocCdFcFcFcFcFcFdGagcqcqcqcqcYcqcqcqcqcqagcwcvcRdpcJcJcJcJcJduagcycLcZdadbdbdcddcLcyawaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadcfcfcfcfcfcfcfcfcfcfagcgcgcgdecgcgcgcgdecgagcWdIdndvdndMcVcNdQciagcpcocCdXdNdNdNdNdNdZagcqcqcqcqcqcqcqdmcqcqagcwcvcRdTdUdUdUdUdUdVagcycLcZdqdrdsdtddcLcyawaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadcfcfcfcfcfcfcfcfcfcfagcgcgcgcgcgcgcgcgcgcgagcWdIdndvdndMcVcNdQciagcpcocCcjckckdYckckcmagcqcqcqcqcqcqcqcqcqcqagcwcvcRebecececececgYagcycLcZdqdDdEdtddcLcyawaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadcfcfcfczcfcfcfcfczcfagcgcgcgcgcAcgcUcgcgcAagcXdIdndvdndMcVcNhjciagcpcocCcEcFcFcFcFcFcGagdPdPdPdPdPdPdPdPdPdPagcwcvcRihcJcJcJcJcJjyagcycLcZdcdJdJdKddcLcyawaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadcfcfcfcfcfcfcfcfcfcfagdLcgcgcgcgdLcgcgcgcgagcWjzjAkXjAkYcVciciciagcpcpkZcEcFdjdjdjcFcGagdWdWdWdWdWdWdWdWdWdWagcwcwlrihcJcJcJcJcJjyagcycycydRdRdRdScycycyawaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadcfczcfcfcfcfczcfcfcfagcgdecgcUcgcgdecgcUcgagRrRrRrRrRrRrRtciciciagcpcocCcEcFcEcFcGcFcGagdWdWdWdWdWdWdWdWdWdWagcwcvcRihcJcJcJcJcJjyagcycycycLcLcLcycycycyawaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadcfcfcfcfcfcfcfcfcfcfagcgcgcgcgdLcgcgcgcgdLagchcicicicicicicicichagcpcocCdidjdilKdldjdlagdWdWdWdWdWdWdWdWdWdWagcwcvcRqbqyqyqyqyqyvzagcycycycycycycycyededawaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabeeeeeeeeeeeeeeeeeeeeabeeeeeeeeeeeeeeeeeeeeabeeeeeeeeeeeeeeeeeeeeabeeeeeeeeeeeeeeeeeeeeabeeeeeeeeeeeeeeeeeeeeabeeeeeeeeeeeeeeeeeeeeabeeeeeeeeeeeeeeeeeeeeabaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahRhRhRhRhRhRhRhRhRhRhRhRhRhRhRhRhRhRhRaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahRjtjtjtjtjtjtjtjtjtjtjtjtjtjtjtjtjthRaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahRjtjtjtjtjtjtjtjtjtjtjtjtjtjtjtjtjthRaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahRjtjtjtjtjtjtjtjtjtjtjtjtjtjtjtjtjthRaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahRjtjtjtjtjtjtjtjtjtjtjtjtjtjtjtjtjthRaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahRjtjtjtjtjtjtjtjtjtjtjtjtjtjtjtjtjthRaaaa +aaaaaaaaaaSHSHSHSHSHSHSHSHSHSHSHSHSHSHSHSHSHSHSHaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabacacacacacacacacacacabacacacacacacacacacacabacacacacacacacacacacabacacacacacacacacacacabacacacacacacacacacacabacacacacacacacacacacabacacacacacacacacacacabacacacacacacacacacacabaaaa +aaaaaaaaaaSHSISJSJSJSJSJSJSJSJSJSJSJSJSLSKSKSMSHaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadRURURURURURURURURURUagaeaeaeafaeaeaeaeaeaeagahaiahaiahahaiahaiahagbkbkbkbkbkbkaOaLaAajagananclalalalalalalalagaoaoaoaoaoaoaoaoaoaoagapapapapapapapapapapagavauambAbxbxbxbxbxbDawaaaa +aaaaaaaaaaSHSISJSJSJSJSJSNSNSJSJSJSJSISHSKSKSKSHaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadRWRVRYRXSaRZScSbSdRUagaeaeaeaeaeaeaeaeaxaeagaiazayazayazayazayahagbkbkbkbkbkbkaOaLaAakagananctaBaBaBaBaBaBaBagaoaDaoaoaoaoaoaoaDaoagapapapapapapapapapapagavauambBaFaFaFaFaFbCawaaaa +aaaaaaaaaaSHSISJSJSJSJSJSNSNSJSJSJSJSISHSHSHSHSHSHSHaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadSfSeSgSeSgSeSgSeSgRUagaeaxaeaeaeaeaeaeaeaeagatayaHaCaIaCaIaKazahagbkaVbmaWbmaXaOaLaAakagananaJalaPalaBaQaZaYagaoaoaoaoaoaoaoaoaoaoagapapapapapapapapapapagavavaRbBaFaFaFaFaFbCawaaaa +aaaaaaaaaaSHSISJSJSJSJSJSJSJSJSJSJSJSISHSOSKSOSKSSSHaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadSiShSjShSjShSjShSjRUagaeaeaeaeaeafaeaeaeaeagaUbabbaSaTaTaUaNazaiagbcbrbqbvbqbsaOaLaAakagaManbdbebfbHbgclbhbiagaoaoaoaDaoaoaDaoaoaoagapapapapapapapapapapagavauambBaFaFaFaFaFbCawaaaa +aaaaaaaaaaSHSISJSJSJSJSJSPSJSQSJSJSJSJSRSKSKSKSKSKSHaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadSkSjShSjShSjShSjShRUagaeaeafaeaeaeafaeaeaeagaUaUaUaUbjbjaUaNayahagblbrbqbvbqbsaOaLaAakagananbnbobobobpclbtbNagaoaoaoaoaoaoaoaoaoaoagapapapapapapapapapapagavauamcacbcbcbcbcbccawaaaa +aaaaaaaaaaSHSHSHSTSUSTSUSHSHSHSHSHSHSHSHSHSHSHSHSHSHSHSHaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadSlShSjShSjShSjShSjRUagaeaeaeaeaeaeaeaeaeaeagaUaUaUaUbjbjaUbGazaiagblbrbqbvbqbsaOaLaAakagananbubybzbybwclbtbNagaoaoaoaoaoaoaoaoaoaoagapapapapapapapapapapagavauamaqarararararasawaaaa +aaaaaaaaaaSHSVSVSVSVSVSVSVSVSVSVSVSVSVSVSVSVSVSVSVSVSVSHaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadSmSjShSjShSjShSjShRUagaeaeaeaeaeaxaeaeaeafagaUbEbFaSaTaTaUaNayaiagbIbrbqbvbqbsaOaLaAakagaManbObQbzbQbRclbtbNagaoaoaoaDaoaoaDaoaoaoagapapapapapapapapapapagavauamaEaFaFaFaFaFaGawaaaa +aaaaaaaaaaSHSVSVSVSVSVSVSVSVSVSVSVSVSVSVSVSVSVSVSVSVSVSHaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadSoSnSpSnSpSnSpSnSpRUagaeaeaxaeaeaeaeaeaeaeagbVaybJbKbLbKbLbMazahagbkbUbSbWbSbXaOaLaAakagananbYbzbzbzbNclbtbNagaoaoaoaoaoaoaoaoaoaoagapapapapapapapapapapagavavbZaEaFaFaFaFaFaGawaaaa +aaaaaaaaaaSHSVSVSVSVSVSVSVSVSVSVSVSVSVSVSVSVSVSVSVSVSVSHaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadSrSqStSsSvSuSxSwSyRUagaeaeaeaeaeaeaeaeaeaeagaiazayazayazayazazaiagbkbkbkbkbkbkaOaLaAakagananbObQbzbQbRclbtbNagaoaDaoaoaoaoaoaoaDaoagapapapapapapapapapapagavauamaEaFaFaFaFaFaGawaaaa +aaaaaaaaaaSHSVSWSWSWSWSWSWSVSVSVSVSVSVSWSWSXSWSWSVSVSVSHaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadRUSzSBSASDSCSFSESGRUagafaeaeaeaxaeaeaeaeaxagahaiahaiahahaiahaiahagbTbkbkbkbkbkaOaLaAakaganancncrbPcrcsclcBcuagaoaoaoaoaoaoaoaoaoaoagapapapapapapapapapapagavauamcIcKcKcKcKcKcOawaaaa +aaaaaaaaaaSHSVSVSVSVSVSVSVSVSVSVSVSVSVSVSVSVSVSVSVSWSWSHaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabeeeeeeeeeeeeeeeeeeeeabcdcdcdcdcdcdcdcdcdcdabcdcdcdcdcdcdcdcdcdcdabcdcdcdcdcdcdcdcdcdcdabcecececececececececeabcecececececececececeabcecececececececececeabcecececececececececeabaaaa +aaaaaaaaaaSHSVSVSVSVSVSVSVSVSVSVSVSVSVSVSVSVSVSVSVSVSVSHaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadcfcfcfcfcfcfcfcfcfcfagcgcgcgcgcgcgcgcgcgcgagchcicicicicicicicichagcpcocCdxdydxcDdzdydzagcqcqcqcqcqcqcqcqcqcqagcwcvcRdfdgdgdgdgdgeaagcxcxcycycycycycycycyawaaaa +aaaaaaaaaaSHSVSWSVSVSVSVSVSVSWSWSWSVSVSVSVSVSVSVSWSVSVSHaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadcfcfcfczcfcfcfcfczcfagcgcAcgcgcgcgcAcgcgcgagdkdkdkdkdkdkdociciciagcpcocCdFcFdFcFdGcFdGagcqcqcHcqcqcqcqcqcqcqagcwcvcRdpcJcJcJcJcJduagcycycycycLcLcLcycycyawaaaa +aaaaaaaaaaSHSVSWSVSVSVSVSVSVSWSYSWSVSVSVSVSVSVSVSWSZSVSHaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadcfcfcfcfcfcfcfcfcfcfagcgcgcgcgcgcgcgcgcMcgagcWdwdAdBdAdhcVciciciagcpcpdCdFcFdydydycFdGagcqcqcqcqcqcqcPcQcqcqagcwcwdHdpcJcJcJcJcJduagcycycycScTcTcTcycycyawaaaa +aaaaaaaaaaSHSVSWSVSVSVSVSVSVSWSWSWSVSVSVSVSVSVSVSWSVSVSHaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadcfczcfcfcfcfczcfcfcfagcgcgcUcgcMcgcgcgcgcgagcXdIdndvdndMcVcNdOciagcpcocCdFcFcFcFcFcFdGagcqcqcqcqcYcqcqcqcqcqagcwcvcRdpcJcJcJcJcJduagcycLcZdadbdbdcddcLcyawaaaa +aaaaaaaaaaSHSVSVSVSVSVSVSVSVSVSVSVSVSVSVSVSVSVSVSVSVSVSHaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadcfcfcfcfcfcfcfcfcfcfagcgcgcgdecgcgcgcgdecgagcWdIdndvdndMcVcNdQciagcpcocCdXdNdNdNdNdNdZagcqcqcqcqcqcqcqdmcqcqagcwcvcRdTdUdUdUdUdUdVagcycLcZdqdrdsdtddcLcyawaaaa +aaaaaaaaaaSHSVSVSVSVSVSVSVSVSVSVSVSVSVSVSVSVSVSVSVSWSWSHaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadcfcfcfcfcfcfcfcfcfcfagcgcgcgcgcgcgcgcgcgcgagcWdIdndvdndMcVcNdQciagcpcocCcjckckdYckckcmagcqcqcqcqcqcqcqcqcqcqagcwcvcRebecececececgYagcycLcZdqdDdEdtddcLcyawaaaa +aaaaaaaaaaSHSVSWSWSWSWSWSWSVSVSVSVSVSVSWSWSXSWSWSVSVSVSHaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadcfcfcfczcfcfcfcfczcfagcgcgcgcgcAcgcUcgcgcAagcXdIdndvdndMcVcNhjciagcpcocCcEcFcFcFcFcFcGagdPdPdPdPdPdPdPdPdPdPagcwcvcRihcJcJcJcJcJjyagcycLcZdcdJdJdKddcLcyawaaaa +aaaaaaaaaaSHSVSVSVSVSVSVSVSVSVSVSVSVSVSVSVSVSVSVSVSVSVSHaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadcfcfcfcfcfcfcfcfcfcfagdLcgcgcgcgdLcgcgcgcgagcWjzjAkXjAkYcVciciciagcpcpkZcEcFdjdjdjcFcGagdWdWdWdWdWdWdWdWdWdWagcwcwlrihcJcJcJcJcJjyagcycycydRdRdRdScycycyawaaaa +aaaaaaaaaaSHSVSVSVSVSVSVSVSVSVSVSVSVSVSVSVSVSVSVSVSVSVSHaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadcfczcfcfcfcfczcfcfcfagcgdecgcUcgcgdecgcUcgagRrRrRrRrRrRrRtciciciagcpcocCcEcFcEcFcGcFcGagdWdWdWdWdWdWdWdWdWdWagcwcvcRihcJcJcJcJcJjyagcycycycLcLcLcycycycyawaaaa +aaaaaaaaaaSHSVSVSVSVSVSVSVSVSVSVSVSVSVSVSVSVSVSVSVSVSVSHaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadcfcfcfcfcfcfcfcfcfcfagcgcgcgcgdLcgcgcgcgdLagchcicicicicicicicichagcpcocCdidjdilKdldjdlagdWdWdWdWdWdWdWdWdWdWagcwcvcRqbqyqyqyqyqyvzagcycycycycycycycyededawaaaa +aaaaaaaaaaSHSHSHTaTbTaTbSHSHSHSHSHSHSHSHSHSHSHSHSHSHSHSHaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabeeeeeeeeeeeeeeeeeeeeabeeeeeeeeeeeeeeeeeeeeabeeeeeeeeeeeeeeeeeeeeabeeeeeeeeeeeeeeeeeeeeabeeeeeeeeeeeeeeeeeeeeabeeeeeeeeeeeeeeeeeeeeabeeeeeeeeeeeeeeeeeeeeabaaaa +aaaaaaaaaaSHTdSJSJSJSJSJTeSJSQSJSJSJSJTfSKSKSKSKSKSHaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahRhRhRhRhRhRhRhRhRhRhRhRhRhRhRhRhRhRhRaaaa +aaaaaaaaaaSHTdSJSJSJSJSJSJSJSJSJSJSJTdSHSOSKSOSKSSSHaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahRjtjtjtjtjtjtjtjtjtjtjtjtjtjtjtjtjthRaaaa +aaaaaaaaaaSHTdSJSJSJSJSJSNSNSJSJSJSJTdSHSHSHSHSHSHSHaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahRjtjtjtjtjtjtjtjtjtjtjtjtjtjtjtjtjthRaaaa +aaaaaaaaaaSHTdSJSJSJSJSJSNSNSJSJSJSJTdSHSKSKSKSHaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahRjtjtjtjtjtjtjtjtjtjtjtjtjtjtjtjtjthRaaaa +aaaaaaaaaaSHTdSJSJSJSJSJSJSJSJSJSJSJSJSRSKSKTgSHaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahRjtjtjtjtjtjtjtjtjtjtjtjtjtjtjtjtjthRaaaa +aaaaaaaaaaSHSHSHSHSHSHSHSHSHSHSHSHSHSHSHSHSHSHSHaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahRjtjtjtjtjtjtjtjtjtjtjtjtjtjtjtjtjthRaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahRjtjtjtjtjtjtjtjtjtjtjtjtjtjtjtjtjthRaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahRjtjtjtjtjtjtjtjtjtjtjtjtjtjtjtjtjthRaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahRjtjtjtjtjtjtjtjtjtjtjtjtjtjtjtjtjthRaaaa diff --git a/maps/submaps/admin_use_vr/ert.dmm b/maps/submaps/admin_use_vr/ert.dmm index ce4c104a66..46719dc7d4 100644 --- a/maps/submaps/admin_use_vr/ert.dmm +++ b/maps/submaps/admin_use_vr/ert.dmm @@ -79,17 +79,11 @@ /turf/simulated/floor/tiled/techfloor, /area/ship/ert/dock_port) "an" = ( -/obj/structure/table/rack/steel, -/obj/item/device/suit_cooling_unit, -/obj/item/device/suit_cooling_unit, -/obj/item/device/suit_cooling_unit, -/obj/item/device/suit_cooling_unit, -/obj/item/device/suit_cooling_unit, -/obj/item/device/suit_cooling_unit, /obj/machinery/light/no_nightshift{ dir = 1 }, /obj/effect/floor_decal/industrial/outline/grey, +/obj/structure/dispenser/oxygen, /turf/simulated/floor/tiled/techfloor, /area/ship/ert/barracks) "ao" = ( @@ -158,13 +152,13 @@ "aQ" = ( /obj/structure/table/steel_reinforced, /obj/item/weapon/storage/firstaid/surgery, -/obj/item/stack/nanopaste/advanced, /obj/machinery/light/no_nightshift{ dir = 8 }, /obj/item/weapon/surgical/bone_clamp, /obj/item/weapon/surgical/scalpel/manager, /obj/item/weapon/surgical/circular_saw/manager, +/obj/item/stack/nanopaste, /turf/simulated/floor/tiled/white, /area/ship/ert/med_surg) "aV" = ( @@ -173,10 +167,6 @@ }, /turf/simulated/floor/reinforced/airless, /area/ship/ert/eng_storage) -"bg" = ( -/turf/space, -/turf/space, -/area/space) "bp" = ( /obj/machinery/atmospherics/pipe/simple/visible/universal, /turf/simulated/floor/tiled/techfloor, @@ -219,6 +209,10 @@ /obj/item/device/suit_cooling_unit, /obj/item/device/suit_cooling_unit, /obj/item/device/suit_cooling_unit, +/obj/item/device/suit_cooling_unit, +/obj/item/device/suit_cooling_unit, +/obj/item/device/suit_cooling_unit, +/obj/item/device/suit_cooling_unit, /turf/simulated/floor/tiled/techfloor, /area/ship/ert/barracks) "bJ" = ( @@ -641,10 +635,11 @@ }, /turf/simulated/floor/tiled/techfloor, /area/ship/ert/dock_star) +"fw" = ( +/turf/simulated/floor/tiled/techmaint, +/area/space) "fx" = ( /obj/structure/table/steel_reinforced, -/obj/item/rig_module/rescue_pharm, -/obj/item/rig_module/sprinter, /obj/item/rig_module/sprinter, /obj/machinery/light/no_nightshift{ dir = 8 @@ -657,7 +652,6 @@ pixel_x = -23 }, /obj/item/rig_module/sprinter, -/obj/item/rig_module/sprinter, /obj/item/rig_module/rescue_pharm, /turf/simulated/floor/tiled/techfloor, /area/ship/ert/mech_bay) @@ -666,7 +660,6 @@ /obj/item/rig_module/mounted, /obj/item/rig_module/mounted/egun, /obj/item/rig_module/mounted/egun, -/obj/item/rig_module/mounted, /obj/item/rig_module/mounted/egun, /obj/item/rig_module/mounted/egun, /turf/simulated/floor/tiled/techfloor, @@ -689,10 +682,6 @@ /obj/item/rig_module/device/rcd, /obj/item/rig_module/device/plasmacutter, /obj/item/rig_module/device/plasmacutter, -/obj/item/rig_module/device/rcd, -/obj/item/rig_module/device/rcd, -/obj/item/rig_module/device/plasmacutter, -/obj/item/rig_module/device/plasmacutter, /turf/simulated/floor/tiled/techfloor, /area/ship/ert/mech_bay) "fZ" = ( @@ -770,10 +759,6 @@ /obj/item/weapon/shield/riot, /obj/item/weapon/shield/riot, /obj/item/weapon/shield/riot, -/obj/item/weapon/cell/device/weapon/recharge, -/obj/item/weapon/cell/device/weapon/recharge, -/obj/item/weapon/cell/device/weapon/recharge, -/obj/item/weapon/cell/device/weapon/recharge, /obj/effect/floor_decal/industrial/outline/grey, /obj/machinery/recharger/wallcharger{ pixel_x = -23; @@ -1259,6 +1244,10 @@ /obj/item/weapon/plastique, /obj/item/weapon/plastique, /obj/effect/floor_decal/industrial/outline/red, +/obj/item/weapon/plastique, +/obj/item/weapon/plastique, +/obj/item/weapon/plastique, +/obj/item/weapon/plastique, /turf/simulated/floor/tiled/techmaint, /area/ship/ert/armoury_dl) "kG" = ( @@ -1356,6 +1345,7 @@ starts_with = list(/obj/item/weapon/tool/prybar/red,/obj/item/clothing/glasses/goggles,/obj/item/weapon/reagent_containers/hypospray/autoinjector,/obj/item/stack/medical/bruise_pack,/obj/item/device/flashlight/glowstick,/obj/item/weapon/reagent_containers/food/snacks/candy/proteinbar,/obj/item/clothing/mask/breath,/obj/item/weapon/tank/emergency/oxygen/engi) }, /obj/effect/floor_decal/industrial/outline/grey, +/obj/item/modular_computer/laptop/preset/custom_loadout/elite, /turf/simulated/floor/tiled/techfloor, /area/ship/ert/barracks) "lx" = ( @@ -1652,10 +1642,6 @@ /obj/structure/table/rack/steel, /obj/item/weapon/gun/energy/xray, /obj/item/weapon/gun/energy/xray, -/obj/item/weapon/cell/device/weapon/recharge, -/obj/item/weapon/cell/device/weapon/recharge, -/obj/item/weapon/cell/device/weapon/recharge, -/obj/item/weapon/cell/device/weapon/recharge, /obj/machinery/light/no_nightshift, /obj/machinery/firealarm/alarms_hidden{ dir = 1; @@ -1980,13 +1966,16 @@ /area/ship/ert/barracks) "oX" = ( /obj/structure/table/rack/steel, -/obj/item/weapon/storage/backpack/ert/engineer, -/obj/item/weapon/storage/backpack/ert/engineer, -/obj/item/weapon/storage/backpack/ert/engineer, -/obj/item/clothing/suit/space/void/responseteam/engineer, -/obj/item/clothing/suit/space/void/responseteam/engineer, -/obj/item/clothing/suit/space/void/responseteam/engineer, /obj/effect/floor_decal/industrial/outline/grey, +/obj/item/clothing/gloves/yellow, +/obj/item/clothing/gloves/yellow, +/obj/item/clothing/gloves/yellow, +/obj/item/weapon/storage/backpack/ert/engineer, +/obj/item/weapon/storage/backpack/ert/engineer, +/obj/item/weapon/storage/backpack/ert/engineer, +/obj/item/clothing/suit/space/void/responseteam/engineer, +/obj/item/clothing/suit/space/void/responseteam/engineer, +/obj/item/clothing/suit/space/void/responseteam/engineer, /turf/simulated/floor/tiled/techfloor, /area/ship/ert/barracks) "pa" = ( @@ -2071,10 +2060,12 @@ /area/ship/ert/med_surg) "pq" = ( /obj/structure/table/steel_reinforced, -/obj/item/weapon/storage/box/syringes, -/obj/item/weapon/storage/box/syringes, -/obj/item/weapon/storage/box/bodybags, -/obj/item/weapon/storage/box/bodybags, +/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/simulated/floor/tiled/techfloor, /area/ship/ert/med) "pt" = ( @@ -2147,23 +2138,13 @@ /area/ship/ert/barracks) "pI" = ( /obj/structure/table/rack/steel, -/obj/item/weapon/gun/projectile/automatic/sts35, -/obj/item/weapon/gun/projectile/automatic/sts35, -/obj/item/weapon/gun/projectile/automatic/sts35, -/obj/item/weapon/gun/projectile/automatic/sts35, -/obj/item/ammo_magazine/m545/ext, -/obj/item/ammo_magazine/m545/ext, -/obj/item/ammo_magazine/m545/ext, -/obj/item/ammo_magazine/m545/ext, -/obj/item/ammo_magazine/m545/ext, -/obj/item/ammo_magazine/m545/ext, -/obj/item/ammo_magazine/m545/ext, -/obj/item/ammo_magazine/m545/ext, -/obj/item/ammo_magazine/m545/ap/ext, -/obj/item/ammo_magazine/m545/ap/ext, -/obj/item/ammo_magazine/m545/ap/ext, -/obj/item/ammo_magazine/m545/ap/ext, /obj/effect/floor_decal/industrial/outline/grey, +/obj/item/weapon/gun/energy/pulse_rifle, +/obj/item/weapon/gun/energy/pulse_rifle, +/obj/item/weapon/gun/energy/pulse_rifle, +/obj/item/weapon/gun/energy/pulse_rifle, +/obj/item/weapon/gun/energy/pulse_rifle, +/obj/item/weapon/gun/energy/pulse_rifle, /turf/simulated/floor/tiled/techfloor, /area/ship/ert/armoury_dl) "pK" = ( @@ -2214,8 +2195,6 @@ /obj/structure/table/rack/steel, /obj/item/weapon/gun/energy/plasmastun, /obj/item/weapon/gun/energy/plasmastun, -/obj/item/weapon/cell/device/weapon/recharge, -/obj/item/weapon/cell/device/weapon/recharge, /obj/effect/floor_decal/industrial/outline/grey, /turf/simulated/floor/tiled/techfloor, /area/ship/ert/armoury_dl) @@ -2536,6 +2515,7 @@ }, /obj/machinery/light/no_nightshift, /obj/effect/floor_decal/industrial/outline/grey, +/obj/item/modular_computer/laptop/preset/custom_loadout/elite, /turf/simulated/floor/tiled/techfloor, /area/ship/ert/barracks) "sA" = ( @@ -2573,8 +2553,6 @@ /obj/item/clothing/glasses/graviton, /obj/item/clothing/glasses/graviton, /obj/item/clothing/glasses/graviton, -/obj/item/clothing/glasses/graviton, -/obj/item/clothing/glasses/graviton, /obj/effect/floor_decal/industrial/outline/grey, /turf/simulated/floor/tiled/techfloor, /area/ship/ert/barracks) @@ -2653,7 +2631,7 @@ /turf/simulated/floor/tiled/techmaint, /area/ship/ert/hangar) "tb" = ( -/obj/machinery/telecomms/allinone/talon, +/obj/machinery/telecomms/allinone, /turf/simulated/floor/tiled/techfloor, /area/ship/ert/teleporter) "tg" = ( @@ -2989,12 +2967,6 @@ /obj/item/weapon/gun/energy/gun, /obj/item/weapon/gun/energy/gun, /obj/item/weapon/gun/energy/gun, -/obj/item/weapon/cell/device/weapon/recharge, -/obj/item/weapon/cell/device/weapon/recharge, -/obj/item/weapon/cell/device/weapon/recharge, -/obj/item/weapon/cell/device/weapon/recharge, -/obj/item/weapon/cell/device/weapon/recharge, -/obj/item/weapon/cell/device/weapon/recharge, /obj/item/weapon/gun/energy/gun, /obj/item/weapon/gun/energy/gun, /obj/effect/floor_decal/industrial/outline/grey, @@ -3025,14 +2997,12 @@ "wt" = ( /obj/structure/table/steel_reinforced, /obj/item/weapon/storage/firstaid/bonemed, -/obj/item/weapon/storage/firstaid/bonemed, /obj/item/weapon/storage/firstaid/clotting, -/obj/item/weapon/storage/firstaid/clotting, -/obj/item/weapon/storage/pill_bottle/sleevingcure/full, -/obj/item/weapon/storage/pill_bottle/sleevingcure/full, /obj/effect/floor_decal/corner/yellow{ dir = 1 }, +/obj/item/weapon/storage/firstaid/combat, +/obj/item/weapon/storage/firstaid/combat, /turf/simulated/floor/tiled/techfloor, /area/ship/ert/med) "wO" = ( @@ -3081,33 +3051,52 @@ /area/ship/ert/bridge) "xg" = ( /obj/structure/table/rack/steel, -/obj/item/weapon/storage/box/anti_photons, -/obj/item/weapon/storage/box/anti_photons, /obj/effect/floor_decal/industrial/outline/grey, +/obj/item/weapon/gun/energy/gun/nuclear, +/obj/item/weapon/gun/energy/gun/nuclear, +/obj/item/weapon/gun/energy/gun/nuclear, +/obj/item/weapon/gun/energy/gun/nuclear, +/obj/item/weapon/gun/energy/gun/nuclear, +/obj/item/weapon/gun/energy/gun/nuclear, /turf/simulated/floor/tiled/techfloor, /area/ship/ert/armoury_st) "xh" = ( /obj/structure/table/rack/steel, -/obj/item/weapon/storage/box/smokes, -/obj/item/weapon/storage/box/smokes, /obj/machinery/light_switch{ pixel_y = 23 }, /obj/effect/floor_decal/industrial/outline/grey, +/obj/item/weapon/gun/projectile/p92x/large/preban, +/obj/item/weapon/gun/projectile/p92x/large/preban, +/obj/item/weapon/gun/projectile/p92x/large/preban, +/obj/item/weapon/gun/projectile/p92x/large/preban, +/obj/item/weapon/gun/projectile/p92x/large/preban, +/obj/item/weapon/gun/projectile/p92x/large/preban, +/obj/item/ammo_magazine/m9mm/large/preban, +/obj/item/ammo_magazine/m9mm/large/preban, +/obj/item/ammo_magazine/m9mm/large/preban, +/obj/item/ammo_magazine/m9mm/large/preban, +/obj/item/ammo_magazine/m9mm/large/preban, +/obj/item/ammo_magazine/m9mm/large/preban, +/obj/item/ammo_magazine/m9mm/large/preban, +/obj/item/ammo_magazine/m9mm/large/preban, +/obj/item/ammo_magazine/m9mm/large/preban, +/obj/item/ammo_magazine/m9mm/large/preban, +/obj/item/ammo_magazine/m9mm/large/preban, +/obj/item/ammo_magazine/m9mm/large/preban, /turf/simulated/floor/tiled/techfloor, /area/ship/ert/armoury_st) "xi" = ( -/obj/item/weapon/storage/box/teargas, -/obj/item/weapon/storage/box/teargas, /obj/structure/table/rack/steel, /obj/effect/floor_decal/industrial/outline/grey, -/turf/simulated/floor/tiled/techfloor, -/area/ship/ert/armoury_st) -"xr" = ( -/obj/structure/table/rack/steel, -/obj/item/weapon/storage/box/empslite, -/obj/item/weapon/storage/box/empslite, -/obj/effect/floor_decal/industrial/outline/grey, +/obj/item/weapon/gun/projectile/automatic/sts35, +/obj/item/weapon/gun/projectile/automatic/sts35, +/obj/item/ammo_magazine/m545, +/obj/item/ammo_magazine/m545, +/obj/item/ammo_magazine/m545, +/obj/item/ammo_magazine/m545, +/obj/item/ammo_magazine/m545, +/obj/item/ammo_magazine/m545, /turf/simulated/floor/tiled/techfloor, /area/ship/ert/armoury_st) "xt" = ( @@ -3121,22 +3110,20 @@ pixel_y = 26 }, /obj/effect/floor_decal/industrial/outline/grey, +/obj/item/weapon/storage/box/flashbangs, +/obj/item/weapon/storage/box/smokes, +/obj/item/weapon/storage/box/smokes, +/obj/item/weapon/storage/box/teargas, +/obj/item/weapon/storage/box/empslite, +/obj/item/weapon/storage/box/empslite, /turf/simulated/floor/tiled/techfloor, /area/ship/ert/armoury_st) "xv" = ( /obj/structure/table/rack/steel, /obj/item/weapon/gun/energy/ionrifle/pistol, /obj/item/weapon/gun/energy/ionrifle/pistol, -/obj/item/weapon/cell/device/weapon/recharge, -/obj/item/weapon/cell/device/weapon/recharge, -/obj/item/weapon/cell/device/weapon/recharge, -/obj/item/weapon/cell/device/weapon/recharge, /obj/item/weapon/gun/energy/ionrifle, /obj/item/weapon/gun/energy/ionrifle, -/obj/item/weapon/cell/device/weapon/recharge, -/obj/item/weapon/cell/device/weapon/recharge, -/obj/item/weapon/cell/device/weapon/recharge, -/obj/item/weapon/cell/device/weapon/recharge, /obj/machinery/power/apc/hyper{ alarms_hidden = 1; dir = 4; @@ -3158,8 +3145,6 @@ /obj/structure/closet/medical_wall{ pixel_x = 32 }, -/obj/item/weapon/storage/firstaid/clotting, -/obj/item/weapon/storage/firstaid/bonemed, /obj/item/weapon/storage/firstaid/adv, /obj/item/weapon/storage/firstaid/adv, /obj/item/weapon/storage/firstaid/fire, @@ -3168,8 +3153,6 @@ /obj/item/weapon/storage/firstaid/o2, /obj/item/weapon/storage/firstaid/toxin, /obj/item/weapon/storage/firstaid/toxin, -/obj/item/weapon/storage/firstaid/combat, -/obj/item/weapon/storage/firstaid/combat, /turf/simulated/floor/tiled/techfloor, /area/ship/ert/med) "xA" = ( @@ -4024,6 +4007,8 @@ /obj/item/weapon/surgical/scalpel/manager, /obj/item/weapon/surgical/circular_saw/manager, /obj/item/weapon/surgical/circular_saw/manager, +/obj/item/stack/nanopaste, +/obj/item/stack/nanopaste, /turf/simulated/floor/tiled/techfloor, /area/ship/ert/med) "DN" = ( @@ -4055,6 +4040,10 @@ icon_state = "0-2" }, /obj/effect/floor_decal/industrial/outline, +/obj/item/weapon/extinguisher/mini, +/obj/item/weapon/extinguisher/mini, +/obj/item/weapon/extinguisher/mini, +/obj/item/weapon/extinguisher/mini, /turf/simulated/floor/tiled/techfloor, /area/ship/ert/med) "DS" = ( @@ -4200,8 +4189,6 @@ /obj/structure/closet/crate/medical, /obj/item/weapon/storage/box/autoinjectors, /obj/item/weapon/storage/box/beakers, -/obj/item/device/defib_kit/compact/combat/loaded, -/obj/item/device/defib_kit/compact/combat/loaded, /obj/item/weapon/storage/box/bodybags, /obj/item/weapon/storage/box/bodybags{ pixel_x = 2; @@ -4211,6 +4198,8 @@ /obj/item/weapon/storage/box/freezer, /obj/item/weapon/storage/box/masks, /obj/effect/floor_decal/industrial/outline, +/obj/item/weapon/storage/box/bodybags, +/obj/item/weapon/storage/box/bodybags, /turf/simulated/floor/tiled/techfloor, /area/ship/ert/med) "Fd" = ( @@ -4359,7 +4348,36 @@ /obj/machinery/atmospherics/unary/vent_pump/on{ dir = 1 }, -/obj/item/weapon/paper/ert_armory_cells, +/obj/item/weapon/cell/device/weapon, +/obj/item/weapon/cell/device/weapon, +/obj/item/weapon/cell/device/weapon, +/obj/item/weapon/cell/device/weapon, +/obj/item/weapon/cell/device/weapon, +/obj/item/weapon/cell/device/weapon, +/obj/item/weapon/cell/device/weapon, +/obj/item/weapon/cell/device/weapon, +/obj/item/weapon/cell/device/weapon, +/obj/item/weapon/cell/device/weapon, +/obj/item/weapon/cell/device/weapon, +/obj/item/weapon/cell/device/weapon, +/obj/item/weapon/cell/device/weapon, +/obj/item/weapon/cell/device/weapon, +/obj/item/weapon/cell/device/weapon, +/obj/item/weapon/cell/device/weapon, +/obj/item/weapon/cell/device/weapon, +/obj/item/weapon/cell/device/weapon, +/obj/item/weapon/cell/device/weapon, +/obj/item/weapon/cell/device/weapon, +/obj/item/weapon/cell/device/weapon, +/obj/item/weapon/cell/device/weapon, +/obj/item/weapon/cell/device/weapon, +/obj/item/weapon/cell/device/weapon, +/obj/item/weapon/cell/device/weapon, +/obj/item/weapon/cell/device/weapon, +/obj/item/weapon/cell/device/weapon, +/obj/item/weapon/cell/device/weapon, +/obj/item/weapon/cell/device/weapon, +/obj/item/weapon/cell/device/weapon, /turf/simulated/floor/tiled/techmaint, /area/ship/ert/armoury_st) "FY" = ( @@ -4406,6 +4424,7 @@ dir = 1 }, /obj/effect/floor_decal/industrial/outline/grey, +/obj/item/modular_computer/laptop/preset/custom_loadout/elite, /turf/simulated/floor/tiled/techfloor, /area/ship/ert/barracks) "GI" = ( @@ -4528,16 +4547,8 @@ /obj/structure/table/rack/steel, /obj/item/weapon/gun/energy/gun/burst, /obj/item/weapon/gun/energy/gun/burst, -/obj/item/weapon/cell/device/weapon/recharge, -/obj/item/weapon/cell/device/weapon/recharge, -/obj/item/weapon/cell/device/weapon/recharge, -/obj/item/weapon/cell/device/weapon/recharge, /obj/item/weapon/gun/energy/lasershotgun, /obj/item/weapon/gun/energy/lasershotgun, -/obj/item/weapon/cell/device/weapon/recharge, -/obj/item/weapon/cell/device/weapon/recharge, -/obj/item/weapon/cell/device/weapon/recharge, -/obj/item/weapon/cell/device/weapon/recharge, /obj/effect/floor_decal/industrial/outline/grey, /obj/machinery/recharger/wallcharger{ pixel_x = -23; @@ -4566,10 +4577,6 @@ /obj/item/weapon/storage/pill_bottle/iron, /obj/item/weapon/storage/pill_bottle/iron, /obj/item/weapon/storage/pill_bottle/sleevingcure/full, -/obj/item/weapon/extinguisher/mini, -/obj/item/weapon/extinguisher/mini, -/obj/item/weapon/extinguisher/mini, -/obj/item/weapon/extinguisher/mini, /obj/item/weapon/storage/box/syringes, /obj/item/weapon/storage/box/syringes{ pixel_x = 2; @@ -4955,18 +4962,26 @@ /area/ship/ert/engine) "JZ" = ( /obj/structure/table/rack/steel, -/obj/item/weapon/gun/energy/laser, -/obj/item/weapon/gun/energy/laser, -/obj/item/weapon/cell/device/weapon/recharge, -/obj/item/weapon/cell/device/weapon/recharge, -/obj/item/weapon/cell/device/weapon/recharge, -/obj/item/weapon/cell/device/weapon/recharge, /obj/machinery/light/no_nightshift, /obj/machinery/alarm/alarms_hidden{ dir = 1; pixel_y = -26 }, /obj/effect/floor_decal/industrial/outline/grey, +/obj/item/weapon/gun/projectile/automatic/z8, +/obj/item/weapon/gun/projectile/automatic/z8, +/obj/item/ammo_magazine/m762, +/obj/item/ammo_magazine/m762, +/obj/item/ammo_magazine/m762, +/obj/item/ammo_magazine/m762, +/obj/item/ammo_magazine/m762, +/obj/item/ammo_magazine/m762, +/obj/item/ammo_magazine/m762, +/obj/item/ammo_magazine/m762, +/obj/item/ammo_magazine/m762/ap, +/obj/item/ammo_magazine/m762/ap, +/obj/item/ammo_magazine/m762/ap, +/obj/item/ammo_magazine/m762/ap, /turf/simulated/floor/tiled/techfloor, /area/ship/ert/armoury_dl) "Kb" = ( @@ -5209,18 +5224,12 @@ /obj/item/weapon/gun/energy/gun/martin{ battery_lock = 0 }, -/obj/item/weapon/cell/device/weapon/recharge, -/obj/item/weapon/cell/device/weapon/recharge, -/obj/item/weapon/cell/device/weapon/recharge, -/obj/item/weapon/cell/device/weapon/recharge, /obj/item/weapon/gun/energy/gun/martin{ battery_lock = 0 }, /obj/item/weapon/gun/energy/gun/martin{ battery_lock = 0 }, -/obj/item/weapon/cell/device/weapon/recharge, -/obj/item/weapon/cell/device/weapon/recharge, /obj/effect/floor_decal/industrial/outline/grey, /turf/simulated/floor/tiled/techfloor, /area/ship/ert/armoury_st) @@ -5264,9 +5273,11 @@ }, /obj/item/weapon/gun/energy/laser, /obj/item/weapon/gun/energy/laser, -/obj/item/weapon/cell/device/weapon/recharge, -/obj/item/weapon/cell/device/weapon/recharge, /obj/effect/floor_decal/industrial/outline/grey, +/obj/item/weapon/gun/energy/laser, +/obj/item/weapon/gun/energy/laser, +/obj/item/weapon/gun/energy/laser, +/obj/item/weapon/gun/energy/laser, /turf/simulated/floor/tiled/techfloor, /area/ship/ert/armoury_st) "LH" = ( @@ -5295,7 +5306,7 @@ }, /obj/machinery/atmospherics/unary/vent_pump/on, /obj/machinery/button/remote/blast_door{ - desc = "[OOC] DO NOT TOUCH THIS BUTTON WITHOUT THE EXPLICIT PERMISSION OF AN ADMINISTRATOR."; + desc = "\[OOC] DO NOT TOUCH THIS BUTTON WITHOUT THE EXPLICIT PERMISSION OF AN ADMINISTRATOR."; dir = 1; id = "NRV_DELTA"; name = "DELTA ACCESS CONTROL"; @@ -5324,10 +5335,6 @@ /obj/item/weapon/gun/energy/taser, /obj/item/weapon/gun/energy/taser, /obj/item/weapon/gun/energy/taser, -/obj/item/weapon/cell/device/weapon/recharge, -/obj/item/weapon/cell/device/weapon/recharge, -/obj/item/weapon/cell/device/weapon/recharge, -/obj/item/weapon/cell/device/weapon/recharge, /obj/effect/floor_decal/industrial/outline/grey, /turf/simulated/floor/tiled/techfloor, /area/ship/ert/armoury_st) @@ -5356,14 +5363,10 @@ "Mt" = ( /obj/structure/table/rack/steel, /obj/item/weapon/gun/energy/netgun, -/obj/item/weapon/gun/energy/netgun, -/obj/item/weapon/gun/energy/netgun, -/obj/item/weapon/gun/energy/netgun, -/obj/item/weapon/cell/device/weapon/recharge, -/obj/item/weapon/cell/device/weapon/recharge, -/obj/item/weapon/cell/device/weapon/recharge, -/obj/item/weapon/cell/device/weapon/recharge, /obj/effect/floor_decal/industrial/outline/grey, +/obj/item/weapon/gun/energy/sniperrifle{ + battery_lock = 0 + }, /turf/simulated/floor/tiled/techfloor, /area/ship/ert/armoury_st) "Mv" = ( @@ -5445,18 +5448,18 @@ /area/shuttle/ert_ship_boat) "MX" = ( /obj/structure/table/steel_reinforced, -/obj/item/weapon/storage/belt/utility/full, -/obj/item/weapon/storage/belt/utility/full, -/obj/item/weapon/storage/belt/utility/full, -/obj/item/weapon/storage/belt/utility/full, -/obj/item/weapon/storage/belt/utility/full, -/obj/item/weapon/storage/belt/utility/full, /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/item/weapon/storage/belt/utility/chief/full, +/obj/item/weapon/storage/belt/utility/chief/full, +/obj/item/weapon/storage/belt/utility/chief/full, +/obj/item/weapon/storage/belt/utility/chief/full, +/obj/item/weapon/storage/belt/utility/chief/full, +/obj/item/weapon/storage/belt/utility/chief/full, /turf/simulated/floor/tiled/techfloor, /area/ship/ert/barracks) "MZ" = ( @@ -5793,10 +5796,6 @@ /obj/item/weapon/gun/energy/sniperrifle{ battery_lock = 0 }, -/obj/item/weapon/cell/device/weapon/recharge, -/obj/item/weapon/cell/device/weapon/recharge, -/obj/item/weapon/cell/device/weapon/recharge, -/obj/item/weapon/cell/device/weapon/recharge, /obj/effect/floor_decal/industrial/outline/grey, /turf/simulated/floor/tiled/techfloor, /area/ship/ert/armoury_dl) @@ -6133,6 +6132,7 @@ "QY" = ( /obj/structure/table/rack, /obj/item/weapon/rig/ert, +/obj/item/weapon/cell/slime, /turf/simulated/floor/wood, /area/ship/ert/commander) "QZ" = ( @@ -6423,6 +6423,8 @@ pixel_y = 26 }, /obj/effect/floor_decal/industrial/outline, +/obj/item/weapon/reagent_containers/hypospray, +/obj/item/weapon/reagent_containers/hypospray, /turf/simulated/floor/tiled/techfloor, /area/ship/ert/med) "SZ" = ( @@ -6701,17 +6703,11 @@ /area/ship/ert/teleporter) "Wl" = ( /obj/structure/table/steel_reinforced, -/obj/item/stack/nanopaste, -/obj/item/stack/nanopaste, -/obj/item/stack/nanopaste, -/obj/item/stack/nanopaste, -/obj/item/stack/nanopaste, -/obj/item/stack/nanopaste, -/obj/item/stack/nanopaste, -/obj/item/stack/nanopaste, /obj/machinery/light/no_nightshift{ dir = 1 }, +/obj/item/device/defib_kit/compact/combat/loaded, +/obj/item/device/defib_kit/compact/combat/loaded, /turf/simulated/floor/tiled/techfloor, /area/ship/ert/med) "Wq" = ( @@ -12948,10 +12944,10 @@ yz yz yz yz -bg -bg -bg -bg +yz +yz +yz +yz yz yz yz @@ -13225,10 +13221,6 @@ yz yz yz yz -bg -bg -bg -bg yz yz yz @@ -13239,10 +13231,14 @@ yz yz yz yz -bg -bg -bg -bg +yz +yz +yz +yz +yz +yz +yz +yz yz yz yz @@ -18147,7 +18143,7 @@ ip mV pa tH -xr +xi BU GK FR @@ -18433,7 +18429,7 @@ pn tH xv Ce -FR +fw FR Mt Pl diff --git a/maps/submaps/pois_vr/debris_field/_templates.dm b/maps/submaps/pois_vr/debris_field/_templates.dm index df7319d02b..87ebdc54ec 100644 --- a/maps/submaps/pois_vr/debris_field/_templates.dm +++ b/maps/submaps/pois_vr/debris_field/_templates.dm @@ -18,6 +18,41 @@ mappath = 'asteroids3.dmm' cost = 2 +/datum/map_template/debrisfield/asteroids4 + name = "Asteroids 4" + mappath = 'asteroids4.dmm' + cost = 2 + +/datum/map_template/debrisfield/asteroids5 + name = "Asteroids 5" + mappath = 'asteroids5.dmm' + cost = 2 + +/datum/map_template/debrisfield/asteroids6 + name = "Asteroids 6" + mappath = 'asteroids6.dmm' + cost = 2 + +/datum/map_template/debrisfield/asteroids7 + name = "Asteroids 7" + mappath = 'asteroids7.dmm' + cost = 2 + +/datum/map_template/debrisfield/asteroids8 + name = "Asteroids 8" + mappath = 'asteroids8.dmm' + cost = 2 + +/datum/map_template/debrisfield/asteroids9 + name = "Asteroids 9" + mappath = 'asteroids9.dmm' + cost = 2 + +/datum/map_template/debrisfield/asteroids10 + name = "Asteroids 10" + mappath = 'asteroids10.dmm' + cost = 2 + /datum/map_template/debrisfield/carp_asteroids1 name = "Carp Asteroids 1" mappath = 'carp_asteroids1.dmm' @@ -38,6 +73,21 @@ mappath = 'carp_asteroids4.dmm' cost = 5 +/datum/map_template/debrisfield/carp_asteroids5 + name = "Carp Asteroids 5" + mappath = 'carp_asteroids5.dmm' + cost = 5 + +/datum/map_template/debrisfield/carp_asteroids6 + name = "Carp Asteroids 6" + mappath = 'carp_asteroids6.dmm' + cost = 5 + +/datum/map_template/debrisfield/carp_asteroids7 + name = "Carp Asteroids 7" + mappath = 'carp_asteroids7.dmm' + cost = 5 + /datum/map_template/debrisfield/foodstand name = "Food Stand" mappath = 'foodstand.dmm' @@ -74,6 +124,76 @@ mappath = 'debris6.dmm' cost = 2 +/datum/map_template/debrisfield/debris7 + name = "Debris 7" + mappath = 'debris7.dmm' + cost = 2 + +/datum/map_template/debrisfield/debris8 + name = "Debris 8" + mappath = 'debris8.dmm' + cost = 2 + +/datum/map_template/debrisfield/debris9 + name = "Debris 9" + mappath = 'debris9.dmm' + cost = 2 + +/datum/map_template/debrisfield/debris10 + name = "Debris 10" + mappath = 'debris10.dmm' + cost = 2 + +/datum/map_template/debrisfield/debris11 + name = "Debris 11" + mappath = 'debris11.dmm' + cost = 2 + +/datum/map_template/debrisfield/debris12 + name = "Debris 12" + mappath = 'debris12.dmm' + cost = 2 + +/datum/map_template/debrisfield/debris13 + name = "Debris 13" + mappath = 'debris13.dmm' + cost = 2 + +/datum/map_template/debrisfield/debris14 + name = "Debris 14" + mappath = 'debris14.dmm' + cost = 2 + +/datum/map_template/debrisfield/escape_pod + name = "Ancient Escape Pod" + mappath = 'escape_pod.dmm' + cost = 5 + allow_duplicates = FALSE + +/datum/map_template/debrisfield/old_satellite + name = "Old Satellite" + mappath = 'old_satellite.dmm' + cost = 10 + allow_duplicates = FALSE + +/datum/map_template/debrisfield/old_teleporter + name = "Old Teleporter" + mappath = 'old_teleporter.dmm' + cost = 10 + allow_duplicates = FALSE + +/datum/map_template/debrisfield/old_mining_outpost + name = "Old Drone Mining Outpost" + mappath = 'mining_drones.dmm' + cost = 20 + allow_duplicates = FALSE + +/datum/map_template/debrisfield/ship_mining_drone + name = "Disabled Mining Drone Ship" + mappath = 'ship_mining_drone.dmm' + cost = 35 + allow_duplicates = FALSE + /datum/map_template/debrisfield/ship_sup_exploded name = "Exploded Cargo Ship" mappath = 'ship_sup_exploded.dmm' @@ -98,6 +218,12 @@ cost = 30 allow_duplicates = FALSE +/datum/map_template/debrisfield/tinycarrier + name = "Disabled Tiny Carrier" + mappath = 'tinycarrier.dmm' + cost = 30 + allow_duplicates = FALSE + /datum/map_template/debrisfield/alien_massive_derelict name = "Alien Derelict" mappath = 'derelict.dmm' @@ -112,6 +238,13 @@ allow_duplicates = FALSE discard_prob = 25 +/datum/map_template/debrisfield/gutted_mackerel + name = "Wrecked Salamander" + mappath = 'maps/offmap_vr/om_ships/salamander_wreck.dmm' + cost = 35 + allow_duplicates = FALSE + discard_prob = 34 + /datum/map_template/debrisfield/ruined_gecko name = "Ruined Gecko CR" mappath = 'maps/offmap_vr/om_ships/gecko_cr_wreck.dmm' diff --git a/maps/submaps/pois_vr/debris_field/asteroids1.dmm b/maps/submaps/pois_vr/debris_field/asteroids1.dmm index 0bdaf44d13..664fa1c50e 100644 --- a/maps/submaps/pois_vr/debris_field/asteroids1.dmm +++ b/maps/submaps/pois_vr/debris_field/asteroids1.dmm @@ -1,10 +1,16 @@ //MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE "a" = ( /turf/simulated/mineral/vacuum, -/area/tether_away/debrisfield/explored) +/area/space) "b" = ( /turf/template_noop, -/area/tether_away/debrisfield/explored) +/area/space) +"c" = ( +/turf/template_noop, +/area/tether_away/debrisfield/shuttle_buffer) +"d" = ( +/turf/simulated/mineral/vacuum, +/area/tether_away/debrisfield/shuttle_buffer) (1,1,1) = {" a @@ -31,77 +37,77 @@ b (3,1,1) = {" b b -b -b -b -a -a +c +c +c +d +d a b "} (4,1,1) = {" b b -a -b -b -b -a +d +c +c +c +d b b "} (5,1,1) = {" b a -a -a -b -b -b +d +d +c +c +c b b "} (6,1,1) = {" b a -a -a -a -b -b +d +d +d +c +c b b "} (7,1,1) = {" a a -a -a -a -a -b +d +d +d +d +c b a "} (8,1,1) = {" a a -a -a -a -a -b +d +d +d +d +c a a "} (9,1,1) = {" b a -a -a -a -a -b +d +d +d +d +c b b "} diff --git a/maps/submaps/pois_vr/debris_field/asteroids10.dmm b/maps/submaps/pois_vr/debris_field/asteroids10.dmm new file mode 100644 index 0000000000..31bbdc50a3 --- /dev/null +++ b/maps/submaps/pois_vr/debris_field/asteroids10.dmm @@ -0,0 +1,238 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"a" = ( +/turf/template_noop, +/area/space) +"b" = ( +/turf/simulated/mineral/vacuum, +/area/space) +"c" = ( +/turf/template_noop, +/area/tether_away/debrisfield/shuttle_buffer) +"d" = ( +/turf/simulated/mineral/vacuum, +/area/tether_away/debrisfield/shuttle_buffer) + +(1,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +b +b +"} +(2,1,1) = {" +a +a +a +a +a +a +a +a +a +a +b +b +b +b +"} +(3,1,1) = {" +a +a +a +a +a +a +a +a +a +b +b +b +a +a +"} +(4,1,1) = {" +a +a +a +c +c +c +c +d +c +c +d +b +a +a +"} +(5,1,1) = {" +a +a +a +c +c +c +c +c +c +c +c +a +a +a +"} +(6,1,1) = {" +a +a +a +d +c +c +d +d +d +c +c +b +a +a +"} +(7,1,1) = {" +a +b +b +d +c +c +c +d +d +c +c +b +b +a +"} +(8,1,1) = {" +a +b +b +d +c +c +c +c +c +c +c +b +a +a +"} +(9,1,1) = {" +a +b +b +d +d +c +c +c +d +d +c +a +a +a +"} +(10,1,1) = {" +a +a +b +d +d +c +c +c +d +d +d +a +a +a +"} +(11,1,1) = {" +a +a +b +d +d +c +c +c +d +d +c +a +a +a +"} +(12,1,1) = {" +a +a +a +b +a +a +a +a +b +a +a +a +a +a +"} +(13,1,1) = {" +a +a +a +a +a +b +b +a +a +a +a +a +a +a +"} +(14,1,1) = {" +a +a +a +a +a +b +b +a +a +a +a +a +a +a +"} diff --git a/maps/submaps/pois_vr/debris_field/asteroids2.dmm b/maps/submaps/pois_vr/debris_field/asteroids2.dmm index 77631496cc..ef40ad205c 100644 --- a/maps/submaps/pois_vr/debris_field/asteroids2.dmm +++ b/maps/submaps/pois_vr/debris_field/asteroids2.dmm @@ -1,10 +1,16 @@ //MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE "a" = ( /turf/template_noop, -/area/tether_away/debrisfield/explored) +/area/space) "b" = ( /turf/simulated/mineral/vacuum, -/area/tether_away/debrisfield/explored) +/area/space) +"c" = ( +/turf/template_noop, +/area/tether_away/debrisfield/shuttle_buffer) +"d" = ( +/turf/simulated/mineral/vacuum, +/area/tether_away/debrisfield/shuttle_buffer) (1,1,1) = {" a @@ -39,60 +45,60 @@ a (3,1,1) = {" a a -a -a -a -a -a -a -a -a -a +c +c +c +c +c +c +c +c +c a a "} (4,1,1) = {" a b -b -a -a -a -a -a -b -b -a +d +c +c +c +c +c +d +d +c a a "} (5,1,1) = {" b b -b -b -a -a -a -a -b -b -b +d +d +c +c +c +c +d +d +d a a "} (6,1,1) = {" b b -b -b -a -a -a -b -b -b -b +d +d +c +c +c +d +d +d +d b a "} diff --git a/maps/submaps/pois_vr/debris_field/asteroids3.dmm b/maps/submaps/pois_vr/debris_field/asteroids3.dmm index ea91de7838..f255bf81cd 100644 --- a/maps/submaps/pois_vr/debris_field/asteroids3.dmm +++ b/maps/submaps/pois_vr/debris_field/asteroids3.dmm @@ -1,10 +1,16 @@ //MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE "a" = ( /turf/simulated/mineral/vacuum, -/area/tether_away/debrisfield/explored) +/area/space) "b" = ( /turf/template_noop, -/area/tether_away/debrisfield/explored) +/area/space) +"c" = ( +/turf/template_noop, +/area/tether_away/debrisfield/shuttle_buffer) +"d" = ( +/turf/simulated/mineral/vacuum, +/area/tether_away/debrisfield/shuttle_buffer) (1,1,1) = {" a @@ -31,55 +37,55 @@ a (3,1,1) = {" a b -b -a -a -a -a +c +d +d +d +d a a "} (4,1,1) = {" b b -b -b -a -a -a +c +c +d +d +d a b "} (5,1,1) = {" b b -b -b -b -a -a +c +c +c +d +d a b "} (6,1,1) = {" b a -a -b -b -b -a +d +c +c +c +d b b "} (7,1,1) = {" a a -a -a -b -b -b +d +d +c +c +c b a "} diff --git a/maps/submaps/pois_vr/debris_field/asteroids4.dmm b/maps/submaps/pois_vr/debris_field/asteroids4.dmm new file mode 100644 index 0000000000..4d93d69719 --- /dev/null +++ b/maps/submaps/pois_vr/debris_field/asteroids4.dmm @@ -0,0 +1,134 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"a" = ( +/turf/template_noop, +/area/space) +"b" = ( +/turf/simulated/mineral/vacuum, +/area/space) +"c" = ( +/turf/simulated/mineral/vacuum, +/area/tether_away/debrisfield/shuttle_buffer) +"d" = ( +/turf/template_noop, +/area/tether_away/debrisfield/shuttle_buffer) + +(1,1,1) = {" +a +a +a +b +a +a +a +a +a +a +"} +(2,1,1) = {" +a +b +b +b +a +a +a +a +a +a +"} +(3,1,1) = {" +b +b +c +c +c +d +d +d +a +a +"} +(4,1,1) = {" +a +b +c +c +c +c +d +d +a +a +"} +(5,1,1) = {" +a +a +d +d +c +c +c +d +a +a +"} +(6,1,1) = {" +a +a +d +d +d +c +d +d +a +a +"} +(7,1,1) = {" +a +a +d +d +c +c +d +c +b +a +"} +(8,1,1) = {" +a +a +d +d +d +c +c +c +b +b +"} +(9,1,1) = {" +a +a +a +a +a +a +b +b +b +a +"} +(10,1,1) = {" +a +a +a +a +a +a +a +b +a +a +"} diff --git a/maps/submaps/pois_vr/debris_field/asteroids5.dmm b/maps/submaps/pois_vr/debris_field/asteroids5.dmm new file mode 100644 index 0000000000..24ac373349 --- /dev/null +++ b/maps/submaps/pois_vr/debris_field/asteroids5.dmm @@ -0,0 +1,126 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"a" = ( +/turf/template_noop, +/area/space) +"b" = ( +/turf/simulated/mineral/vacuum, +/area/space) +"c" = ( +/turf/template_noop, +/area/tether_away/debrisfield/shuttle_buffer) +"d" = ( +/turf/simulated/mineral/vacuum, +/area/tether_away/debrisfield/shuttle_buffer) + +(1,1,1) = {" +a +a +a +b +b +a +"} +(2,1,1) = {" +a +a +b +b +b +a +"} +(3,1,1) = {" +a +a +c +d +b +b +"} +(4,1,1) = {" +a +a +c +c +a +a +"} +(5,1,1) = {" +a +a +c +c +a +a +"} +(6,1,1) = {" +a +a +c +c +a +a +"} +(7,1,1) = {" +b +b +c +c +a +a +"} +(8,1,1) = {" +b +b +c +c +a +a +"} +(9,1,1) = {" +a +b +d +c +a +a +"} +(10,1,1) = {" +a +a +c +c +a +a +"} +(11,1,1) = {" +a +a +c +c +a +a +"} +(12,1,1) = {" +a +a +c +d +b +a +"} +(13,1,1) = {" +a +a +a +b +b +b +"} +(14,1,1) = {" +a +a +b +b +b +b +"} diff --git a/maps/submaps/pois_vr/debris_field/asteroids6.dmm b/maps/submaps/pois_vr/debris_field/asteroids6.dmm new file mode 100644 index 0000000000..0a99b2ce83 --- /dev/null +++ b/maps/submaps/pois_vr/debris_field/asteroids6.dmm @@ -0,0 +1,98 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"a" = ( +/turf/template_noop, +/area/space) +"b" = ( +/turf/simulated/mineral/vacuum, +/area/space) +"c" = ( +/turf/simulated/mineral/vacuum, +/area/tether_away/debrisfield/shuttle_buffer) +"d" = ( +/turf/template_noop, +/area/tether_away/debrisfield/shuttle_buffer) + +(1,1,1) = {" +a +b +a +a +"} +(2,1,1) = {" +b +b +b +b +"} +(3,1,1) = {" +b +c +c +b +"} +(4,1,1) = {" +a +d +c +a +"} +(5,1,1) = {" +a +d +d +a +"} +(6,1,1) = {" +a +d +d +a +"} +(7,1,1) = {" +a +d +d +a +"} +(8,1,1) = {" +b +c +d +a +"} +(9,1,1) = {" +b +c +c +a +"} +(10,1,1) = {" +a +c +d +a +"} +(11,1,1) = {" +a +d +d +a +"} +(12,1,1) = {" +a +d +d +a +"} +(13,1,1) = {" +a +a +b +a +"} +(14,1,1) = {" +a +a +b +a +"} diff --git a/maps/submaps/pois_vr/debris_field/asteroids7.dmm b/maps/submaps/pois_vr/debris_field/asteroids7.dmm new file mode 100644 index 0000000000..eee9a24999 --- /dev/null +++ b/maps/submaps/pois_vr/debris_field/asteroids7.dmm @@ -0,0 +1,112 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"a" = ( +/turf/template_noop, +/area/space) +"b" = ( +/turf/simulated/mineral/vacuum, +/area/space) +"c" = ( +/turf/template_noop, +/area/tether_away/debrisfield/shuttle_buffer) +"d" = ( +/turf/simulated/mineral/vacuum, +/area/tether_away/debrisfield/shuttle_buffer) + +(1,1,1) = {" +a +a +a +b +b +a +a +a +a +a +a +a +"} +(2,1,1) = {" +a +a +a +a +a +a +b +b +a +a +a +a +"} +(3,1,1) = {" +a +a +c +d +c +c +d +d +c +c +a +a +"} +(4,1,1) = {" +a +a +c +d +d +c +c +c +c +c +a +a +"} +(5,1,1) = {" +b +b +c +d +d +c +c +c +c +d +b +a +"} +(6,1,1) = {" +b +a +a +a +a +a +a +a +b +b +b +b +"} +(7,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +b +"} diff --git a/maps/submaps/pois_vr/debris_field/asteroids8.dmm b/maps/submaps/pois_vr/debris_field/asteroids8.dmm new file mode 100644 index 0000000000..c8fe4c14b8 --- /dev/null +++ b/maps/submaps/pois_vr/debris_field/asteroids8.dmm @@ -0,0 +1,126 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"a" = ( +/turf/space, +/area/space) +"b" = ( +/turf/simulated/mineral/vacuum, +/area/space) +"c" = ( +/turf/space, +/area/tether_away/debrisfield/shuttle_buffer) +"d" = ( +/turf/simulated/mineral/vacuum, +/area/tether_away/debrisfield/shuttle_buffer) + +(1,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(2,1,1) = {" +a +a +a +a +a +a +a +a +b +a +a +b +b +a +"} +(3,1,1) = {" +b +b +c +c +c +c +c +c +d +d +d +d +b +a +"} +(4,1,1) = {" +b +b +d +d +c +c +d +c +c +c +c +c +a +a +"} +(5,1,1) = {" +a +b +c +d +d +d +d +d +c +c +c +c +a +a +"} +(6,1,1) = {" +a +a +a +b +b +b +a +a +a +a +a +b +b +a +"} +(7,1,1) = {" +a +a +b +b +a +a +a +a +a +a +a +a +a +a +"} diff --git a/maps/submaps/pois_vr/debris_field/asteroids9.dmm b/maps/submaps/pois_vr/debris_field/asteroids9.dmm new file mode 100644 index 0000000000..76e775a041 --- /dev/null +++ b/maps/submaps/pois_vr/debris_field/asteroids9.dmm @@ -0,0 +1,302 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"a" = ( +/turf/template_noop, +/area/space) +"b" = ( +/turf/simulated/mineral/vacuum, +/area/space) +"c" = ( +/turf/template_noop, +/area/tether_away/debrisfield/shuttle_buffer) +"d" = ( +/turf/simulated/mineral/vacuum, +/area/tether_away/debrisfield/shuttle_buffer) + +(1,1,1) = {" +b +b +b +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(2,1,1) = {" +a +b +b +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(3,1,1) = {" +a +b +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(4,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(5,1,1) = {" +a +a +a +a +c +d +c +c +c +c +c +b +b +a +a +a +"} +(6,1,1) = {" +a +a +a +a +c +d +d +d +c +c +c +b +b +b +a +a +"} +(7,1,1) = {" +a +b +a +a +c +d +d +d +c +c +c +b +b +b +b +a +"} +(8,1,1) = {" +a +b +b +a +c +c +c +c +c +c +c +a +a +b +b +a +"} +(9,1,1) = {" +a +b +a +a +c +c +c +c +c +c +c +a +a +a +a +a +"} +(10,1,1) = {" +a +a +a +a +c +c +c +d +c +c +c +a +a +a +a +a +"} +(11,1,1) = {" +a +a +a +b +d +d +c +c +c +c +d +b +b +a +a +a +"} +(12,1,1) = {" +a +a +a +a +d +d +c +c +c +c +d +b +b +b +a +a +"} +(13,1,1) = {" +a +a +a +a +a +a +a +a +b +a +a +b +b +b +a +a +"} +(14,1,1) = {" +a +a +a +a +a +a +a +a +b +a +a +a +a +a +a +a +"} +(15,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +b +a +"} +(16,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +b +b +b +b +"} diff --git a/maps/submaps/pois_vr/debris_field/carp_asteroids1.dmm b/maps/submaps/pois_vr/debris_field/carp_asteroids1.dmm index 985271c59b..4f88bef644 100644 --- a/maps/submaps/pois_vr/debris_field/carp_asteroids1.dmm +++ b/maps/submaps/pois_vr/debris_field/carp_asteroids1.dmm @@ -1,14 +1,20 @@ //MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE "a" = ( /turf/template_noop, -/area/tether_away/debrisfield/explored) +/area/space) "b" = ( /turf/simulated/mineral/vacuum, -/area/tether_away/debrisfield/explored) +/area/space) "c" = ( +/turf/simulated/mineral/vacuum, +/area/tether_away/debrisfield/shuttle_buffer) +"d" = ( +/turf/template_noop, +/area/tether_away/debrisfield/shuttle_buffer) +"e" = ( /obj/tether_away_spawner/debrisfield/carp, /turf/template_noop, -/area/tether_away/debrisfield/explored) +/area/tether_away/debrisfield/shuttle_buffer) (1,1,1) = {" a @@ -39,91 +45,91 @@ a (3,1,1) = {" a a -b -b -b -b -a -a -b +c +c +c +c +d +d +c b b "} (4,1,1) = {" a a -a -b -a -a -a -b -b +d +c +d +d +d +c +c b b "} (5,1,1) = {" a a -a -a -a -a -a -b -b +d +d +d +d +d +c +c b b "} (6,1,1) = {" a b -b -a -a c -a -b -b +d +d +e +d +c +c b b "} (7,1,1) = {" b b -b -b -a -a -a -a -b +c +c +d +d +d +d +c b a "} (8,1,1) = {" b b -b -b -a -a -a -a -a +c +c +d +d +d +d +d a a "} (9,1,1) = {" b b -b -a -a -b -b -a -a +c +d +d +c +c +d +d a a "} diff --git a/maps/submaps/pois_vr/debris_field/carp_asteroids2.dmm b/maps/submaps/pois_vr/debris_field/carp_asteroids2.dmm index 4231265275..4598540df7 100644 --- a/maps/submaps/pois_vr/debris_field/carp_asteroids2.dmm +++ b/maps/submaps/pois_vr/debris_field/carp_asteroids2.dmm @@ -1,14 +1,20 @@ //MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE "a" = ( /turf/simulated/mineral/vacuum, -/area/tether_away/debrisfield/explored) +/area/space) "b" = ( /turf/template_noop, -/area/tether_away/debrisfield/explored) +/area/space) "c" = ( /obj/tether_away_spawner/debrisfield/carp, /turf/template_noop, -/area/tether_away/debrisfield/explored) +/area/tether_away/debrisfield/shuttle_buffer) +"d" = ( +/turf/simulated/mineral/vacuum, +/area/tether_away/debrisfield/shuttle_buffer) +"e" = ( +/turf/template_noop, +/area/tether_away/debrisfield/shuttle_buffer) (1,1,1) = {" a @@ -31,81 +37,81 @@ a (3,1,1) = {" a a -a -b -b +d +e +e b b "} (4,1,1) = {" b b -b -b -b +e +e +e c b "} (5,1,1) = {" b b -a -a -b +d +d +e b b "} (6,1,1) = {" b a -a -a -a +d +d +d b b "} (7,1,1) = {" b a -a -a -a +d +d +d b b "} (8,1,1) = {" b c -a -a -b +d +d +e b b "} (9,1,1) = {" b b -a -b -b +d +e +e b b "} (10,1,1) = {" b b -b -b -b +e +e +e b b "} (11,1,1) = {" b b -b -b -a +e +e +d a b "} diff --git a/maps/submaps/pois_vr/debris_field/carp_asteroids3.dmm b/maps/submaps/pois_vr/debris_field/carp_asteroids3.dmm index c6de2a9657..07c7c46a5e 100644 --- a/maps/submaps/pois_vr/debris_field/carp_asteroids3.dmm +++ b/maps/submaps/pois_vr/debris_field/carp_asteroids3.dmm @@ -1,14 +1,20 @@ //MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE "a" = ( /turf/template_noop, -/area/tether_away/debrisfield/explored) +/area/space) "b" = ( /turf/simulated/mineral/vacuum, -/area/tether_away/debrisfield/explored) +/area/space) "c" = ( /obj/tether_away_spawner/debrisfield/carp, /turf/template_noop, -/area/tether_away/debrisfield/explored) +/area/tether_away/debrisfield/shuttle_buffer) +"d" = ( +/turf/template_noop, +/area/tether_away/debrisfield/shuttle_buffer) +"e" = ( +/turf/simulated/mineral/vacuum, +/area/tether_away/debrisfield/shuttle_buffer) (1,1,1) = {" a @@ -43,90 +49,90 @@ a (3,1,1) = {" a a -a -b -b -b -a -a -b -b -b +d +e +e +e +d +d +e +e +e b a "} (4,1,1) = {" a a -b -b -b -b -b -a -a -b -b +e +e +e +e +e +d +d +e +e a a "} (5,1,1) = {" a b -b -b -b -b -b -b -a -a -a +e +e +e +e +e +e +d +d +d a a "} (6,1,1) = {" a b -b -b -b -b -b -b -a -a -a +e +e +e +e +e +e +d +d +d a a "} (7,1,1) = {" b b -b -b -b -b -b -b -a -a -a +e +e +e +e +e +e +d +d +d a a "} (8,1,1) = {" b b -b -b -b -b -b -a -a -a -a +e +e +e +e +e +d +d +d +d a b "} diff --git a/maps/submaps/pois_vr/debris_field/carp_asteroids4.dmm b/maps/submaps/pois_vr/debris_field/carp_asteroids4.dmm index e4ebbe5b4d..1661c2d06d 100644 --- a/maps/submaps/pois_vr/debris_field/carp_asteroids4.dmm +++ b/maps/submaps/pois_vr/debris_field/carp_asteroids4.dmm @@ -1,14 +1,20 @@ //MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE "a" = ( /turf/template_noop, -/area/tether_away/debrisfield/explored) +/area/space) "b" = ( /turf/simulated/mineral/vacuum, -/area/tether_away/debrisfield/explored) +/area/space) "c" = ( +/turf/simulated/mineral/vacuum, +/area/tether_away/debrisfield/shuttle_buffer) +"d" = ( +/turf/template_noop, +/area/tether_away/debrisfield/shuttle_buffer) +"e" = ( /obj/tether_away_spawner/debrisfield/carp/hard, /turf/template_noop, -/area/tether_away/debrisfield/explored) +/area/tether_away/debrisfield/shuttle_buffer) (1,1,1) = {" a @@ -33,70 +39,70 @@ b (3,1,1) = {" b b -b -b -a -b +c +c +d +c b b "} (4,1,1) = {" b b -b -a -a -a +c +d +d +d b b "} (5,1,1) = {" a b -a -a -c -a +d +d +e +d a a "} (6,1,1) = {" a a -a -a -a -a +d +d +d +d a a "} (7,1,1) = {" a a -b -b -b -a +c +c +c +d a a "} (8,1,1) = {" a b -b -b -b -b +c +c +c +c b a "} (9,1,1) = {" a b -b -b -b -b +c +c +c +c b a "} diff --git a/maps/submaps/pois_vr/debris_field/carp_asteroids5.dmm b/maps/submaps/pois_vr/debris_field/carp_asteroids5.dmm new file mode 100644 index 0000000000..171680ee86 --- /dev/null +++ b/maps/submaps/pois_vr/debris_field/carp_asteroids5.dmm @@ -0,0 +1,178 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"a" = ( +/turf/template_noop, +/area/space) +"b" = ( +/turf/simulated/mineral/vacuum, +/area/space) +"c" = ( +/turf/template_noop, +/area/tether_away/debrisfield/shuttle_buffer) +"d" = ( +/turf/simulated/mineral/floor/vacuum, +/area/submap/debrisfield/misc_debris) +"e" = ( +/turf/simulated/mineral/vacuum, +/area/submap/debrisfield/misc_debris) +"f" = ( +/obj/tether_away_spawner/debrisfield/carp, +/turf/simulated/mineral/floor/vacuum, +/area/submap/debrisfield/misc_debris) +"g" = ( +/turf/simulated/mineral/vacuum, +/area/tether_away/debrisfield/shuttle_buffer) + +(1,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +"} +(2,1,1) = {" +a +a +a +a +a +a +a +b +a +a +a +a +"} +(3,1,1) = {" +a +b +c +c +c +g +g +g +g +c +a +a +"} +(4,1,1) = {" +a +a +c +c +g +g +e +g +g +g +a +a +"} +(5,1,1) = {" +a +a +c +c +g +d +d +f +g +g +a +a +"} +(6,1,1) = {" +a +a +c +c +d +d +d +f +g +g +a +a +"} +(7,1,1) = {" +a +a +c +c +g +g +e +d +g +c +a +a +"} +(8,1,1) = {" +a +a +g +c +c +g +e +g +g +g +b +a +"} +(9,1,1) = {" +a +a +g +g +c +g +g +g +g +g +a +a +"} +(10,1,1) = {" +a +a +a +a +a +a +a +a +b +a +a +a +"} +(11,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +"} diff --git a/maps/submaps/pois_vr/debris_field/carp_asteroids6.dmm b/maps/submaps/pois_vr/debris_field/carp_asteroids6.dmm new file mode 100644 index 0000000000..614615d371 --- /dev/null +++ b/maps/submaps/pois_vr/debris_field/carp_asteroids6.dmm @@ -0,0 +1,242 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"a" = ( +/turf/template_noop, +/area/space) +"b" = ( +/turf/simulated/mineral/vacuum, +/area/space) +"c" = ( +/turf/template_noop, +/area/tether_away/debrisfield/shuttle_buffer) +"d" = ( +/turf/simulated/mineral/vacuum, +/area/tether_away/debrisfield/shuttle_buffer) +"e" = ( +/obj/tether_away_spawner/debrisfield/carp, +/turf/template_noop, +/area/tether_away/debrisfield/shuttle_buffer) + +(1,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(2,1,1) = {" +a +a +a +a +b +a +b +b +b +b +a +a +a +a +"} +(3,1,1) = {" +a +a +c +d +d +d +d +d +d +d +d +d +b +a +"} +(4,1,1) = {" +a +a +d +d +d +d +d +d +d +d +d +d +a +a +"} +(5,1,1) = {" +a +a +d +d +d +d +d +d +d +d +d +c +a +a +"} +(6,1,1) = {" +a +a +c +d +c +c +c +d +d +c +c +c +a +a +"} +(7,1,1) = {" +a +a +c +c +c +c +c +c +c +c +c +c +a +a +"} +(8,1,1) = {" +a +a +c +c +c +c +c +c +c +c +c +a +a +a +"} +(9,1,1) = {" +a +a +c +c +d +c +c +c +c +c +e +a +a +a +"} +(10,1,1) = {" +a +a +d +d +d +c +c +c +c +c +a +a +a +a +"} +(11,1,1) = {" +a +a +d +d +d +d +c +c +c +a +a +a +a +a +"} +(12,1,1) = {" +a +a +c +d +d +d +d +c +a +a +a +a +a +a +"} +(13,1,1) = {" +a +a +a +a +a +b +a +a +a +a +a +a +a +a +"} +(14,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} diff --git a/maps/submaps/pois_vr/debris_field/carp_asteroids7.dmm b/maps/submaps/pois_vr/debris_field/carp_asteroids7.dmm new file mode 100644 index 0000000000..a79e64cd24 --- /dev/null +++ b/maps/submaps/pois_vr/debris_field/carp_asteroids7.dmm @@ -0,0 +1,216 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"a" = ( +/turf/template_noop, +/area/space) +"b" = ( +/turf/simulated/mineral/vacuum, +/area/space) +"c" = ( +/turf/template_noop, +/area/tether_away/debrisfield/shuttle_buffer) +"d" = ( +/turf/simulated/mineral/floor/vacuum, +/area/tether_away/debrisfield/shuttle_buffer) +"e" = ( +/turf/simulated/mineral/vacuum, +/area/tether_away/debrisfield/shuttle_buffer) +"f" = ( +/obj/tether_away_spawner/debrisfield/carp/hard, +/turf/simulated/mineral/floor/vacuum, +/area/tether_away/debrisfield/shuttle_buffer) + +(1,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(2,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(3,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(4,1,1) = {" +a +a +a +c +c +c +c +c +e +c +a +a +a +"} +(5,1,1) = {" +a +a +a +c +c +c +c +e +e +e +b +a +a +"} +(6,1,1) = {" +a +a +a +c +c +d +d +e +e +e +b +a +a +"} +(7,1,1) = {" +a +a +b +d +e +d +f +d +e +e +a +a +a +"} +(8,1,1) = {" +a +b +b +e +e +e +d +c +c +e +a +a +a +"} +(9,1,1) = {" +a +b +b +e +e +c +c +c +c +c +a +a +a +"} +(10,1,1) = {" +a +a +a +e +c +c +c +c +c +c +a +a +a +"} +(11,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(12,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(13,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +"} diff --git a/maps/submaps/pois_vr/debris_field/debris1.dmm b/maps/submaps/pois_vr/debris_field/debris1.dmm index 2c9339ae2d..4d9f58a460 100644 --- a/maps/submaps/pois_vr/debris_field/debris1.dmm +++ b/maps/submaps/pois_vr/debris_field/debris1.dmm @@ -2,17 +2,20 @@ "a" = ( /obj/structure/lattice, /turf/space, -/area/tether_away/debrisfield/explored) +/area/space) "b" = ( /turf/template_noop, -/area/tether_away/debrisfield/explored) +/area/space) "c" = ( /turf/simulated/floor/airless, -/area/tether_away/debrisfield/explored) +/area/space) "d" = ( /obj/structure/girder, /turf/simulated/floor/airless, -/area/tether_away/debrisfield/explored) +/area/space) +"e" = ( +/turf/simulated/floor/airless, +/area/tether_away/debrisfield/shuttle_buffer) (1,1,1) = {" a @@ -25,16 +28,16 @@ c (2,1,1) = {" a a -c -c +e +e c b "} (3,1,1) = {" a a -c -c +e +e b b "} diff --git a/maps/submaps/pois_vr/debris_field/debris10.dmm b/maps/submaps/pois_vr/debris_field/debris10.dmm new file mode 100644 index 0000000000..994f8b2328 --- /dev/null +++ b/maps/submaps/pois_vr/debris_field/debris10.dmm @@ -0,0 +1,45 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"a" = ( +/obj/structure/girder, +/turf/simulated/floor/airless, +/area/space) +"b" = ( +/obj/item/weapon/material/shard, +/turf/simulated/floor/airless, +/area/space) +"c" = ( +/turf/template_noop, +/area/space) +"d" = ( +/obj/structure/grille/broken, +/obj/item/weapon/material/shard, +/turf/simulated/floor/airless, +/area/space) +"e" = ( +/obj/item/stack/rods, +/turf/simulated/floor/airless, +/area/tether_away/debrisfield/shuttle_buffer) +"f" = ( +/obj/structure/lattice, +/turf/space, +/area/space) +"g" = ( +/obj/structure/grille, +/turf/simulated/floor/airless, +/area/space) + +(1,1,1) = {" +a +d +g +"} +(2,1,1) = {" +b +e +f +"} +(3,1,1) = {" +c +f +c +"} diff --git a/maps/submaps/pois_vr/debris_field/debris11.dmm b/maps/submaps/pois_vr/debris_field/debris11.dmm new file mode 100644 index 0000000000..8fca42f1de --- /dev/null +++ b/maps/submaps/pois_vr/debris_field/debris11.dmm @@ -0,0 +1,53 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"a" = ( +/obj/structure/lattice, +/turf/template_noop, +/area/space) +"b" = ( +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, +/turf/simulated/floor/airless, +/area/space) +"c" = ( +/obj/structure/disposalpipe/broken{ + dir = 8; + icon_state = "pipe-b" + }, +/obj/structure/lattice, +/turf/template_noop, +/area/space) +"d" = ( +/turf/simulated/floor/airless, +/area/space) +"e" = ( +/obj/structure/disposalpipe/segment, +/obj/random/junk, +/turf/simulated/floor/airless, +/area/tether_away/debrisfield/shuttle_buffer) +"f" = ( +/obj/structure/disposalpipe/broken{ + dir = 1 + }, +/turf/simulated/floor/airless, +/area/space) +"g" = ( +/turf/template_noop, +/area/space) + +(1,1,1) = {" +a +d +a +"} +(2,1,1) = {" +b +e +f +"} +(3,1,1) = {" +c +a +g +"} diff --git a/maps/submaps/pois_vr/debris_field/debris12.dmm b/maps/submaps/pois_vr/debris_field/debris12.dmm new file mode 100644 index 0000000000..b4547ac851 --- /dev/null +++ b/maps/submaps/pois_vr/debris_field/debris12.dmm @@ -0,0 +1,43 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"a" = ( +/obj/machinery/atmospherics/pipe/simple/heat_exchanging{ + dir = 6 + }, +/obj/structure/lattice, +/turf/template_noop, +/area/space) +"b" = ( +/obj/machinery/atmospherics/pipe/simple/heat_exchanging{ + dir = 10 + }, +/turf/simulated/floor/reinforced/airless{ + name = "reinforced floor" + }, +/area/space) +"c" = ( +/obj/machinery/atmospherics/pipe/simple/heat_exchanging, +/turf/simulated/floor/reinforced/airless{ + name = "reinforced floor" + }, +/area/space) +"d" = ( +/obj/machinery/atmospherics/pipe/simple/heat_exchanging, +/turf/template_noop, +/area/space) +"e" = ( +/obj/machinery/atmospherics/pipe/simple/heat_exchanging, +/turf/simulated/floor/reinforced/airless{ + name = "reinforced floor" + }, +/area/tether_away/debrisfield/shuttle_buffer) + +(1,1,1) = {" +a +e +c +"} +(2,1,1) = {" +b +e +d +"} diff --git a/maps/submaps/pois_vr/debris_field/debris13.dmm b/maps/submaps/pois_vr/debris_field/debris13.dmm new file mode 100644 index 0000000000..a093739382 --- /dev/null +++ b/maps/submaps/pois_vr/debris_field/debris13.dmm @@ -0,0 +1,78 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"a" = ( +/turf/template_noop, +/area/space) +"b" = ( +/turf/simulated/wall/shull, +/area/tether_away/debrisfield/shuttle_buffer) +"c" = ( +/obj/item/stack/rods, +/turf/template_noop, +/area/space) +"d" = ( +/obj/machinery/atmospherics/pipe/simple/visible{ + dir = 6 + }, +/turf/simulated/floor/airless, +/area/tether_away/debrisfield/shuttle_buffer) +"e" = ( +/obj/machinery/atmospherics/unary/engine{ + dir = 8 + }, +/turf/simulated/floor/airless, +/area/tether_away/debrisfield/shuttle_buffer) +"f" = ( +/obj/structure/lattice, +/turf/template_noop, +/area/space) +"g" = ( +/obj/structure/girder, +/turf/simulated/floor/airless, +/area/tether_away/debrisfield/shuttle_buffer) +"h" = ( +/obj/machinery/atmospherics/pipe/manifold/visible{ + dir = 8 + }, +/turf/simulated/floor/airless, +/area/tether_away/debrisfield/shuttle_buffer) +"i" = ( +/turf/simulated/floor/airless, +/area/tether_away/debrisfield/shuttle_buffer) +"j" = ( +/obj/structure/lattice, +/obj/item/weapon/material/shard/shrapnel, +/turf/template_noop, +/area/space) +"k" = ( +/obj/item/weapon/material/shard/shrapnel, +/turf/template_noop, +/area/space) + +(1,1,1) = {" +a +c +f +f +a +"} +(2,1,1) = {" +b +b +g +i +k +"} +(3,1,1) = {" +b +d +h +i +f +"} +(4,1,1) = {" +b +e +i +j +a +"} diff --git a/maps/submaps/pois_vr/debris_field/debris14.dmm b/maps/submaps/pois_vr/debris_field/debris14.dmm new file mode 100644 index 0000000000..91a5ef114a --- /dev/null +++ b/maps/submaps/pois_vr/debris_field/debris14.dmm @@ -0,0 +1,80 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"a" = ( +/obj/item/weapon/material/shard/shrapnel, +/obj/machinery/firealarm/alarms_hidden{ + dir = 4; + pixel_x = -24 + }, +/turf/simulated/floor/airless, +/area/tether_away/debrisfield/shuttle_buffer) +"b" = ( +/obj/structure/girder, +/turf/simulated/floor/airless, +/area/tether_away/debrisfield/shuttle_buffer) +"c" = ( +/turf/template_noop, +/area/tether_away/debrisfield/shuttle_buffer) +"d" = ( +/turf/simulated/floor/airless, +/area/tether_away/debrisfield/shuttle_buffer) +"e" = ( +/obj/structure/lattice, +/turf/space, +/area/space) +"f" = ( +/obj/item/stack/rods, +/turf/simulated/floor/airless, +/area/tether_away/debrisfield/shuttle_buffer) +"g" = ( +/obj/structure/lattice, +/obj/item/stack/rods, +/turf/space, +/area/tether_away/debrisfield/shuttle_buffer) +"h" = ( +/obj/structure/lattice, +/obj/structure/lattice, +/turf/space, +/area/tether_away/debrisfield/shuttle_buffer) +"i" = ( +/obj/item/weapon/material/shard/shrapnel, +/turf/simulated/floor/airless, +/area/tether_away/debrisfield/shuttle_buffer) +"j" = ( +/obj/structure/lattice, +/turf/space, +/area/tether_away/debrisfield/shuttle_buffer) +"k" = ( +/turf/template_noop, +/area/space) +"l" = ( +/turf/simulated/wall, +/area/tether_away/debrisfield/shuttle_buffer) + +(1,1,1) = {" +b +l +j +j +e +"} +(2,1,1) = {" +c +a +f +j +k +"} +(3,1,1) = {" +i +d +d +j +k +"} +(4,1,1) = {" +k +j +g +h +k +"} diff --git a/maps/submaps/pois_vr/debris_field/debris2.dmm b/maps/submaps/pois_vr/debris_field/debris2.dmm index 9acdf06e44..d6be7bc91e 100644 --- a/maps/submaps/pois_vr/debris_field/debris2.dmm +++ b/maps/submaps/pois_vr/debris_field/debris2.dmm @@ -1,14 +1,21 @@ //MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE "a" = ( -/turf/space, -/area/tether_away/debrisfield/explored) +/turf/template_noop, +/area/space) "b" = ( /obj/structure/lattice, /turf/space, -/area/tether_away/debrisfield/explored) +/area/space) "c" = ( /turf/simulated/floor/airless, -/area/tether_away/debrisfield/explored) +/area/space) +"d" = ( +/obj/structure/lattice, +/turf/space, +/area/tether_away/debrisfield/shuttle_buffer) +"e" = ( +/turf/simulated/floor/airless, +/area/tether_away/debrisfield/shuttle_buffer) (1,1,1) = {" a @@ -17,17 +24,17 @@ c "} (2,1,1) = {" a -b +d c "} (3,1,1) = {" a -c +e a "} (4,1,1) = {" b -c +e a "} (5,1,1) = {" diff --git a/maps/submaps/pois_vr/debris_field/debris3.dmm b/maps/submaps/pois_vr/debris_field/debris3.dmm index 0af46a2910..edf2239745 100644 --- a/maps/submaps/pois_vr/debris_field/debris3.dmm +++ b/maps/submaps/pois_vr/debris_field/debris3.dmm @@ -1,18 +1,25 @@ //MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE "a" = ( -/turf/space, -/area/tether_away/debrisfield/explored) +/turf/template_noop, +/area/space) "b" = ( /obj/structure/lattice, /turf/space, -/area/tether_away/debrisfield/explored) +/area/space) "c" = ( /turf/simulated/floor/airless, -/area/tether_away/debrisfield/explored) +/area/space) "d" = ( /obj/structure/girder, /turf/simulated/floor/airless, -/area/tether_away/debrisfield/explored) +/area/space) +"e" = ( +/obj/structure/lattice, +/turf/space, +/area/tether_away/debrisfield/shuttle_buffer) +"f" = ( +/turf/simulated/floor/airless, +/area/tether_away/debrisfield/shuttle_buffer) (1,1,1) = {" a @@ -25,16 +32,16 @@ d (2,1,1) = {" a b -b -c +e +f c c "} (3,1,1) = {" b c -b -b +e +e b c "} diff --git a/maps/submaps/pois_vr/debris_field/debris4.dmm b/maps/submaps/pois_vr/debris_field/debris4.dmm index 3623fa21da..212ae1a678 100644 --- a/maps/submaps/pois_vr/debris_field/debris4.dmm +++ b/maps/submaps/pois_vr/debris_field/debris4.dmm @@ -1,24 +1,27 @@ //MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE "a" = ( -/turf/space, -/area/tether_away/debrisfield/explored) +/turf/template_noop, +/area/space) "b" = ( /obj/structure/lattice, /turf/space, -/area/tether_away/debrisfield/explored) +/area/space) "c" = ( /obj/structure/girder, /turf/simulated/floor/airless, -/area/tether_away/debrisfield/explored) +/area/space) "d" = ( /turf/simulated/shuttle/wall, -/area/tether_away/debrisfield/explored) +/area/space) "e" = ( /turf/simulated/floor/airless, -/area/tether_away/debrisfield/explored) +/area/space) "f" = ( /turf/simulated/shuttle/floor/white/airless, -/area/tether_away/debrisfield/explored) +/area/tether_away/debrisfield/shuttle_buffer) +"g" = ( +/turf/simulated/floor/airless, +/area/tether_away/debrisfield/shuttle_buffer) (1,1,1) = {" a @@ -44,7 +47,7 @@ b (4,1,1) = {" a d -e +g b a "} diff --git a/maps/submaps/pois_vr/debris_field/debris5.dmm b/maps/submaps/pois_vr/debris_field/debris5.dmm index 7a3fe532fa..440dfe1296 100644 --- a/maps/submaps/pois_vr/debris_field/debris5.dmm +++ b/maps/submaps/pois_vr/debris_field/debris5.dmm @@ -1,6 +1,6 @@ //MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE "a" = ( -/turf/space, +/turf/template_noop, /area/space) "b" = ( /obj/structure/lattice, @@ -8,10 +8,13 @@ /area/space) "c" = ( /turf/simulated/floor/airless, -/area/space) +/area/tether_away/debrisfield/shuttle_buffer) "d" = ( /turf/simulated/shuttle/wall/dark, /area/space) +"e" = ( +/turf/simulated/shuttle/wall/dark, +/area/tether_away/debrisfield/shuttle_buffer) (1,1,1) = {" a @@ -27,8 +30,8 @@ d "} (3,1,1) = {" a -d -d +e +e b "} (4,1,1) = {" diff --git a/maps/submaps/pois_vr/debris_field/debris6.dmm b/maps/submaps/pois_vr/debris_field/debris6.dmm index 9381921db8..41df44de21 100644 --- a/maps/submaps/pois_vr/debris_field/debris6.dmm +++ b/maps/submaps/pois_vr/debris_field/debris6.dmm @@ -1,24 +1,28 @@ //MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE "a" = ( +/obj/structure/lattice, /turf/space, -/area/space) +/area/tether_away/debrisfield/shuttle_buffer) "b" = ( /obj/structure/lattice, /turf/space, /area/space) +"c" = ( +/turf/template_noop, +/area/space) (1,1,1) = {" b b -a +c "} (2,1,1) = {" b -b +a b "} (3,1,1) = {" b b -a +c "} diff --git a/maps/submaps/pois_vr/debris_field/debris7.dmm b/maps/submaps/pois_vr/debris_field/debris7.dmm new file mode 100644 index 0000000000..103f67bf68 --- /dev/null +++ b/maps/submaps/pois_vr/debris_field/debris7.dmm @@ -0,0 +1,107 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"a" = ( +/turf/template_noop, +/area/space) +"b" = ( +/turf/simulated/wall/dshull, +/area/space) +"c" = ( +/obj/structure/lattice, +/obj/item/stack/cable_coil/cut, +/turf/space, +/area/space) +"d" = ( +/turf/simulated/floor/airless, +/area/space) +"e" = ( +/turf/simulated/floor/airless, +/area/tether_away/debrisfield/shuttle_buffer) +"f" = ( +/obj/structure/lattice, +/turf/space, +/area/tether_away/debrisfield/shuttle_buffer) +"g" = ( +/obj/structure/lattice, +/turf/space, +/area/space) +"h" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/simulated/floor/airless, +/area/tether_away/debrisfield/shuttle_buffer) +"i" = ( +/obj/structure/lattice, +/obj/item/stack/cable_coil/cut, +/turf/space, +/area/tether_away/debrisfield/shuttle_buffer) +"j" = ( +/turf/template_noop, +/area/tether_away/debrisfield/shuttle_buffer) + +(1,1,1) = {" +a +a +a +a +b +b +b +b +b +"} +(2,1,1) = {" +b +b +b +b +b +d +d +d +a +"} +(3,1,1) = {" +a +c +e +e +e +e +e +a +a +"} +(4,1,1) = {" +a +a +f +h +h +i +j +a +a +"} +(5,1,1) = {" +a +a +g +g +g +a +a +a +a +"} +(6,1,1) = {" +a +a +a +g +a +a +a +a +a +"} diff --git a/maps/submaps/pois_vr/debris_field/debris8.dmm b/maps/submaps/pois_vr/debris_field/debris8.dmm new file mode 100644 index 0000000000..7e21a82345 --- /dev/null +++ b/maps/submaps/pois_vr/debris_field/debris8.dmm @@ -0,0 +1,121 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"a" = ( +/turf/template_noop, +/area/space) +"b" = ( +/turf/template_noop, +/area/tether_away/debrisfield/shuttle_buffer) +"c" = ( +/turf/simulated/floor/hull/airless, +/area/tether_away/debrisfield/shuttle_buffer) +"d" = ( +/obj/machinery/power/pointdefense{ + dir = 4 + }, +/turf/simulated/floor/hull/airless, +/area/tether_away/debrisfield/shuttle_buffer) +"e" = ( +/obj/structure/lattice, +/turf/space, +/area/space) +"f" = ( +/obj/structure/lattice, +/turf/space, +/area/tether_away/debrisfield/shuttle_buffer) + +(1,1,1) = {" +a +a +a +a +a +a +a +a +a +a +"} +(2,1,1) = {" +a +a +a +a +a +e +a +e +a +a +"} +(3,1,1) = {" +a +a +b +c +c +c +c +f +e +a +"} +(4,1,1) = {" +a +a +c +c +d +c +c +c +e +a +"} +(5,1,1) = {" +a +a +b +c +c +c +c +f +e +a +"} +(6,1,1) = {" +a +a +b +b +b +f +f +b +a +a +"} +(7,1,1) = {" +a +a +a +a +a +e +a +a +a +a +"} +(8,1,1) = {" +a +a +a +a +a +a +a +a +a +a +"} diff --git a/maps/submaps/pois_vr/debris_field/debris9.dmm b/maps/submaps/pois_vr/debris_field/debris9.dmm new file mode 100644 index 0000000000..fa45426b2a --- /dev/null +++ b/maps/submaps/pois_vr/debris_field/debris9.dmm @@ -0,0 +1,82 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"a" = ( +/turf/template_noop, +/area/space) +"b" = ( +/obj/structure/lattice, +/turf/space, +/area/space) +"c" = ( +/turf/simulated/floor/airless, +/area/space) +"d" = ( +/turf/simulated/wall/lead, +/area/space) +"e" = ( +/turf/simulated/mineral/vacuum, +/area/space) +"f" = ( +/obj/structure/closet/crate/radiation, +/turf/simulated/floor/airless, +/area/tether_away/debrisfield/shuttle_buffer) +"g" = ( +/obj/structure/table/rack, +/turf/simulated/floor/airless, +/area/tether_away/debrisfield/shuttle_buffer) +"h" = ( +/turf/simulated/wall/lead, +/area/tether_away/debrisfield/shuttle_buffer) +"i" = ( +/obj/structure/sign/warning/radioactive, +/turf/simulated/wall/lead, +/area/tether_away/debrisfield/shuttle_buffer) + +(1,1,1) = {" +a +b +d +a +a +"} +(2,1,1) = {" +a +f +h +a +a +"} +(3,1,1) = {" +a +g +h +a +a +"} +(4,1,1) = {" +b +c +i +a +a +"} +(5,1,1) = {" +b +c +h +e +a +"} +(6,1,1) = {" +a +c +e +e +a +"} +(7,1,1) = {" +a +b +e +e +a +"} diff --git a/maps/submaps/pois_vr/debris_field/derelict.dmm b/maps/submaps/pois_vr/debris_field/derelict.dmm index afc4719860..c1dcd09022 100644 --- a/maps/submaps/pois_vr/debris_field/derelict.dmm +++ b/maps/submaps/pois_vr/debris_field/derelict.dmm @@ -1,7 +1,7 @@ //MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE "aa" = ( -/turf/space, -/area/tether_away/debrisfield/explored) +/turf/template_noop, +/area/space) "ab" = ( /obj/structure/window/reinforced/full, /obj/structure/window/reinforced{ @@ -13,7 +13,7 @@ }, /obj/structure/grille, /turf/simulated/floor/plating, -/area/tether_away/debrisfield/derelict/bridge) +/area/submap/debrisfield/derelict/bridge) "ac" = ( /obj/structure/window/reinforced/full, /obj/structure/window/reinforced{ @@ -22,7 +22,7 @@ /obj/structure/window/reinforced, /obj/structure/grille, /turf/simulated/floor/plating, -/area/tether_away/debrisfield/derelict/bridge) +/area/submap/debrisfield/derelict/bridge) "ad" = ( /obj/structure/window/reinforced/full, /obj/structure/window/reinforced{ @@ -33,7 +33,7 @@ }, /obj/structure/grille, /turf/simulated/floor/plating, -/area/tether_away/debrisfield/derelict/bridge) +/area/submap/debrisfield/derelict/bridge) "ae" = ( /obj/structure/window/reinforced/full, /obj/structure/window/reinforced{ @@ -45,23 +45,23 @@ }, /obj/structure/grille, /turf/simulated/floor/plating, -/area/tether_away/debrisfield/derelict/bridge) +/area/submap/debrisfield/derelict/bridge) "af" = ( /obj/structure/prop/alien/computer/camera, /turf/simulated/floor/tiled/techfloor, -/area/tether_away/debrisfield/derelict/bridge) +/area/submap/debrisfield/derelict/bridge) "ag" = ( /obj/structure/prop/alien/computer, /turf/simulated/floor/tiled/techfloor, -/area/tether_away/debrisfield/derelict/bridge) +/area/submap/debrisfield/derelict/bridge) "ah" = ( /obj/structure/prop/alien/dispenser, /turf/simulated/floor/tiled/techfloor, -/area/tether_away/debrisfield/derelict/bridge) +/area/submap/debrisfield/derelict/bridge) "ai" = ( /obj/structure/prop/alien/computer/camera/flipped, /turf/simulated/floor/tiled/techfloor, -/area/tether_away/debrisfield/derelict/bridge) +/area/submap/debrisfield/derelict/bridge) "aj" = ( /obj/structure/window/reinforced/full, /obj/structure/window/reinforced{ @@ -72,14 +72,14 @@ }, /obj/structure/grille, /turf/simulated/floor/plating, -/area/tether_away/debrisfield/derelict/bridge) +/area/submap/debrisfield/derelict/bridge) "ak" = ( /turf/simulated/floor/tiled/techfloor, -/area/tether_away/debrisfield/derelict/bridge) +/area/submap/debrisfield/derelict/bridge) "al" = ( /obj/tether_away_spawner/debrisfield/derelict, /turf/simulated/floor/tiled/techfloor, -/area/tether_away/debrisfield/derelict/bridge) +/area/submap/debrisfield/derelict/bridge) "am" = ( /obj/structure/cable{ icon_state = "0-4" @@ -91,26 +91,26 @@ pixel_y = -24 }, /turf/simulated/floor/tiled/techfloor, -/area/tether_away/debrisfield/derelict/bridge) +/area/submap/debrisfield/derelict/bridge) "an" = ( /obj/structure/cable{ icon_state = "2-8" }, /turf/simulated/floor/tiled/techfloor, -/area/tether_away/debrisfield/derelict/bridge) +/area/submap/debrisfield/derelict/bridge) "ao" = ( /turf/simulated/wall/r_wall, -/area/tether_away/debrisfield/derelict/interior) +/area/submap/debrisfield/derelict/interior) "ap" = ( /turf/simulated/wall/r_wall, -/area/tether_away/debrisfield/derelict/bridge) +/area/submap/debrisfield/derelict/bridge) "aq" = ( /obj/machinery/door/airlock/alien/locked, /turf/simulated/floor/tiled/techfloor, -/area/tether_away/debrisfield/derelict/bridge) +/area/submap/debrisfield/derelict/bridge) "ar" = ( /turf/simulated/wall, -/area/tether_away/debrisfield/derelict/bridge) +/area/submap/debrisfield/derelict/bridge) "as" = ( /obj/structure/cable{ d1 = 1; @@ -119,20 +119,20 @@ pixel_y = 0 }, /turf/simulated/wall, -/area/tether_away/debrisfield/derelict/bridge) +/area/submap/debrisfield/derelict/bridge) "at" = ( /turf/simulated/floor/tiled/monotile, -/area/tether_away/debrisfield/derelict/interior) +/area/submap/debrisfield/derelict/interior) "au" = ( /obj/effect/decal/remains/human, /turf/simulated/floor/tiled/monotile, -/area/tether_away/debrisfield/derelict/interior) +/area/submap/debrisfield/derelict/interior) "av" = ( /turf/simulated/wall, -/area/tether_away/debrisfield/derelict/interior) +/area/submap/debrisfield/derelict/interior) "aw" = ( /turf/simulated/floor/tiled/steel_dirty, -/area/tether_away/debrisfield/derelict/interior) +/area/submap/debrisfield/derelict/interior) "ax" = ( /obj/tether_away_spawner/debrisfield/derelict/corrupt_maint_swarm, /obj/structure/cable{ @@ -141,7 +141,7 @@ icon_state = "2-4" }, /turf/simulated/floor/bluegrid, -/area/tether_away/debrisfield/derelict/interior) +/area/submap/debrisfield/derelict/interior) "ay" = ( /obj/structure/cable, /obj/structure/cable{ @@ -159,11 +159,11 @@ }, /obj/machinery/power/rtg/abductor/built, /turf/simulated/floor/bluegrid, -/area/tether_away/debrisfield/derelict/interior) +/area/submap/debrisfield/derelict/interior) "az" = ( /obj/tether_away_spawner/debrisfield/derelict/corrupt_maint_swarm, /turf/simulated/floor/tiled/monotile, -/area/tether_away/debrisfield/derelict/interior) +/area/submap/debrisfield/derelict/interior) "aA" = ( /obj/structure/cable{ d1 = 1; @@ -173,7 +173,7 @@ }, /obj/item/weapon/grenade/empgrenade, /turf/simulated/floor/bluegrid, -/area/tether_away/debrisfield/derelict/interior) +/area/submap/debrisfield/derelict/interior) "aB" = ( /obj/tether_away_spawner/debrisfield/derelict/corrupt_maint_swarm, /obj/structure/cable{ @@ -183,7 +183,7 @@ pixel_y = 0 }, /turf/simulated/floor/bluegrid, -/area/tether_away/debrisfield/derelict/interior) +/area/submap/debrisfield/derelict/interior) "aC" = ( /obj/structure/cable{ d1 = 1; @@ -192,11 +192,11 @@ pixel_y = 0 }, /turf/simulated/floor/bluegrid, -/area/tether_away/debrisfield/derelict/interior) +/area/submap/debrisfield/derelict/interior) "aD" = ( /obj/machinery/door/airlock/alien, /turf/simulated/floor/tiled/dark, -/area/tether_away/debrisfield/derelict/interior) +/area/submap/debrisfield/derelict/interior) "aE" = ( /obj/machinery/door/airlock/alien, /obj/structure/cable{ @@ -206,14 +206,14 @@ pixel_y = 0 }, /turf/simulated/floor/tiled/dark, -/area/tether_away/debrisfield/derelict/interior) +/area/submap/debrisfield/derelict/interior) "aF" = ( /turf/simulated/floor/tiled/dark, -/area/tether_away/debrisfield/derelict/interior) +/area/submap/debrisfield/derelict/interior) "aG" = ( /obj/machinery/door/airlock/alien, /turf/simulated/floor/tiled/steel_dirty, -/area/tether_away/debrisfield/derelict/interior) +/area/submap/debrisfield/derelict/interior) "aH" = ( /obj/structure/cable{ d1 = 1; @@ -222,18 +222,18 @@ pixel_y = 0 }, /turf/simulated/floor/tiled/steel_dirty, -/area/tether_away/debrisfield/derelict/interior) +/area/submap/debrisfield/derelict/interior) "aI" = ( /obj/structure/old_roboprinter, /turf/simulated/floor/tiled/monotile, -/area/tether_away/debrisfield/derelict/interior) +/area/submap/debrisfield/derelict/interior) "aJ" = ( /obj/structure/shuttle/engine/heater, /turf/simulated/floor/reinforced/airless, -/area/tether_away/debrisfield/derelict/interior) +/area/submap/debrisfield/derelict/interior) "aK" = ( /turf/space, -/area/tether_away/debrisfield/derelict) +/area/space) "aL" = ( /obj/structure/cable{ d2 = 2; @@ -246,7 +246,7 @@ }, /obj/machinery/power/rtg/abductor/built, /turf/simulated/floor/reinforced, -/area/tether_away/debrisfield/derelict/interior) +/area/submap/debrisfield/derelict/interior) "aM" = ( /obj/structure/cable{ icon_state = "0-4" @@ -257,7 +257,7 @@ }, /obj/machinery/power/rtg/abductor/built, /turf/simulated/floor/reinforced, -/area/tether_away/debrisfield/derelict/interior) +/area/submap/debrisfield/derelict/interior) "aN" = ( /obj/random/humanoidremains, /obj/structure/cable{ @@ -267,101 +267,109 @@ pixel_y = 0 }, /turf/simulated/floor/tiled/steel_dirty, -/area/tether_away/debrisfield/derelict/interior) +/area/submap/debrisfield/derelict/interior) "aO" = ( /obj/machinery/porta_turret/alien{ faction = "derelict"; use_power = 0 }, /turf/space, -/area/tether_away/debrisfield/derelict/interior) +/area/submap/debrisfield/derelict/interior) "aP" = ( /obj/structure/shuttle/engine/propulsion{ icon_state = "burst_l"; dir = 8 }, /turf/space, -/area/tether_away/debrisfield/derelict/interior) +/area/submap/debrisfield/derelict/interior) "aQ" = ( /obj/structure/shuttle/engine/propulsion{ icon_state = "burst_l"; dir = 4 }, /turf/space, -/area/tether_away/debrisfield/derelict/interior) +/area/submap/debrisfield/derelict/interior) "aR" = ( /turf/simulated/floor/plating, -/area/tether_away/debrisfield/derelict/interior) +/area/submap/debrisfield/derelict/interior) "aS" = ( /obj/effect/decal/mecha_wreckage/gygax/adv, /turf/simulated/floor/plating, -/area/tether_away/debrisfield/derelict/interior) +/area/submap/debrisfield/derelict/interior) "aT" = ( /obj/effect/map_effect/interval/effect_emitter/sparks/frequent, /obj/effect/map_effect/interval/effect_emitter/smoke, /obj/machinery/door/airlock/alien, /turf/simulated/floor/plating, -/area/tether_away/debrisfield/derelict/interior) +/area/submap/debrisfield/derelict/interior) "aU" = ( /obj/effect/map_effect/interval/effect_emitter/sparks/frequent, /obj/structure/door_assembly/door_assembly_alien, /turf/simulated/floor/plating, -/area/tether_away/debrisfield/derelict/interior) +/area/submap/debrisfield/derelict/interior) "aV" = ( /obj/machinery/door/airlock/alien, /turf/simulated/floor/plating, -/area/tether_away/debrisfield/derelict/interior) +/area/submap/debrisfield/derelict/interior) "aW" = ( /obj/random/tool/alien, /turf/simulated/floor/tiled/dark, -/area/tether_away/debrisfield/derelict/interior) +/area/submap/debrisfield/derelict/interior) "aX" = ( /obj/random/energy, /turf/simulated/floor/tiled/dark, -/area/tether_away/debrisfield/derelict/interior) +/area/submap/debrisfield/derelict/interior) "aY" = ( /obj/random/humanoidremains, /turf/simulated/floor/tiled/dark, -/area/tether_away/debrisfield/derelict/interior) +/area/submap/debrisfield/derelict/interior) "aZ" = ( /mob/living/simple_mob/mechanical/infectionbot{ faction = "derelict" }, /turf/simulated/floor/tiled/dark, -/area/tether_away/debrisfield/derelict/interior) +/area/submap/debrisfield/derelict/interior) "ba" = ( /obj/random/humanoidremains, /obj/item/weapon/gun/energy/ionrifle, /turf/simulated/floor/tiled/steel_ridged, -/area/tether_away/debrisfield/derelict/interior) +/area/submap/debrisfield/derelict/interior) "bb" = ( /turf/simulated/floor/tiled/steel_ridged, -/area/tether_away/debrisfield/derelict/interior) +/area/submap/debrisfield/derelict/interior) "bc" = ( /obj/machinery/bomb_tester, /turf/simulated/floor/tiled/steel_ridged, -/area/tether_away/debrisfield/derelict/interior) +/area/submap/debrisfield/derelict/interior) "bd" = ( /obj/structure/shuttle/engine/propulsion{ icon_state = "burst_l"; dir = 1 }, /turf/space, -/area/tether_away/debrisfield/derelict/interior) +/area/space) "be" = ( /obj/structure/prop/alien/computer/camera, /turf/simulated/floor/reinforced, -/area/tether_away/debrisfield/derelict/interior) +/area/submap/debrisfield/derelict/interior) +"bf" = ( +/obj/structure/catwalk, +/turf/space, +/area/space) +"bg" = ( +/obj/item/weapon/gun/energy/ionrifle, +/turf/space, +/area/space) "bh" = ( /obj/structure/prop/alien/computer/camera/flipped, /obj/structure/cable{ icon_state = "2-8" }, /turf/simulated/floor/reinforced, -/area/tether_away/debrisfield/derelict/interior) +/area/submap/debrisfield/derelict/interior) "bi" = ( /turf/simulated/floor/reinforced, -/area/tether_away/debrisfield/derelict/interior) +/area/submap/debrisfield/derelict/interior) "bj" = ( /obj/structure/cable{ d1 = 1; @@ -370,24 +378,24 @@ pixel_y = 0 }, /turf/simulated/floor/reinforced, -/area/tether_away/debrisfield/derelict/interior) +/area/submap/debrisfield/derelict/interior) "bk" = ( /turf/simulated/floor/tiled/steel_grid, -/area/tether_away/debrisfield/derelict/interior) +/area/submap/debrisfield/derelict/interior) "bl" = ( /obj/machinery/transhuman/resleever, /turf/simulated/floor/tiled/steel_grid, -/area/tether_away/debrisfield/derelict/interior) +/area/submap/debrisfield/derelict/interior) "bm" = ( /obj/machinery/artifact, /turf/simulated/floor/tiled/dark, -/area/tether_away/debrisfield/derelict/interior) +/area/submap/debrisfield/derelict/interior) "bn" = ( /mob/living/simple_mob/mechanical/infectionbot{ faction = "derelict" }, /turf/simulated/floor/tiled/steel_grid, -/area/tether_away/debrisfield/derelict/interior) +/area/submap/debrisfield/derelict/interior) "bo" = ( /obj/structure/cable{ d1 = 2; @@ -395,7 +403,7 @@ icon_state = "2-4" }, /turf/simulated/floor/reinforced, -/area/tether_away/debrisfield/derelict/interior) +/area/submap/debrisfield/derelict/interior) "bp" = ( /obj/structure/cable{ d1 = 4; @@ -403,7 +411,7 @@ icon_state = "4-8" }, /turf/simulated/floor/reinforced, -/area/tether_away/debrisfield/derelict/interior) +/area/submap/debrisfield/derelict/interior) "bq" = ( /obj/structure/cable{ d1 = 1; @@ -411,11 +419,11 @@ icon_state = "1-8" }, /turf/simulated/floor/reinforced, -/area/tether_away/debrisfield/derelict/interior) +/area/submap/debrisfield/derelict/interior) "br" = ( /obj/tether_away_spawner/debrisfield/derelict, /turf/simulated/floor/reinforced, -/area/tether_away/debrisfield/derelict/interior) +/area/submap/debrisfield/derelict/interior) "bs" = ( /obj/structure/cable{ d1 = 1; @@ -424,7 +432,7 @@ pixel_y = 0 }, /turf/simulated/wall, -/area/tether_away/debrisfield/derelict/interior) +/area/submap/debrisfield/derelict/interior) "bt" = ( /obj/structure/cable{ d1 = 1; @@ -439,30 +447,30 @@ pixel_y = 0 }, /turf/simulated/floor/tiled/steel_dirty, -/area/tether_away/debrisfield/derelict/interior) +/area/submap/debrisfield/derelict/interior) "bu" = ( /obj/machinery/transhuman/synthprinter, /turf/simulated/floor/tiled/steel_grid, -/area/tether_away/debrisfield/derelict/interior) +/area/submap/debrisfield/derelict/interior) "bv" = ( /obj/tether_away_spawner/debrisfield/derelict/mech_wizard, /turf/simulated/floor/tiled/steel_grid, -/area/tether_away/debrisfield/derelict/interior) +/area/submap/debrisfield/derelict/interior) "bw" = ( /obj/machinery/vr_sleeper/alien, /turf/simulated/floor/tiled/dark, -/area/tether_away/debrisfield/derelict/interior) +/area/submap/debrisfield/derelict/interior) "bx" = ( /obj/tether_away_spawner/debrisfield/derelict/corrupt_maint_swarm, /mob/living/simple_mob/mechanical/corrupt_maint_drone{ faction = "derelict" }, /turf/simulated/floor/tiled/steel_grid, -/area/tether_away/debrisfield/derelict/interior) +/area/submap/debrisfield/derelict/interior) "by" = ( /obj/effect/decal/remains/human, /turf/simulated/floor/tiled/steel_grid, -/area/tether_away/debrisfield/derelict/interior) +/area/submap/debrisfield/derelict/interior) "bz" = ( /obj/structure/cable{ d1 = 1; @@ -470,29 +478,29 @@ icon_state = "1-4" }, /turf/simulated/floor/reinforced, -/area/tether_away/debrisfield/derelict/interior) +/area/submap/debrisfield/derelict/interior) "bA" = ( /obj/structure/cable{ icon_state = "2-8" }, /turf/simulated/floor/reinforced, -/area/tether_away/debrisfield/derelict/interior) +/area/submap/debrisfield/derelict/interior) "bB" = ( /obj/tether_away_spawner/debrisfield/derelict, /turf/simulated/floor/tiled/steel_grid, -/area/tether_away/debrisfield/derelict/interior) +/area/submap/debrisfield/derelict/interior) "bC" = ( /obj/structure/old_roboprinter, /turf/simulated/floor/tiled/steel_grid, -/area/tether_away/debrisfield/derelict/interior) +/area/submap/debrisfield/derelict/interior) "bD" = ( /obj/structure/loot_pile/surface/alien/engineering, /turf/simulated/floor/tiled/steel_ridged, -/area/tether_away/debrisfield/derelict/interior) +/area/submap/debrisfield/derelict/interior) "bE" = ( /obj/structure/old_roboprinter, /turf/simulated/floor/reinforced, -/area/tether_away/debrisfield/derelict/interior) +/area/submap/debrisfield/derelict/interior) "bF" = ( /obj/tether_away_spawner/debrisfield/derelict/corrupt_maint_swarm, /obj/structure/cable{ @@ -501,33 +509,33 @@ icon_state = "1-4" }, /turf/simulated/floor/reinforced, -/area/tether_away/debrisfield/derelict/interior) +/area/submap/debrisfield/derelict/interior) "bG" = ( /obj/structure/cable{ icon_state = "4-8" }, /turf/simulated/floor/reinforced, -/area/tether_away/debrisfield/derelict/interior) +/area/submap/debrisfield/derelict/interior) "bH" = ( /obj/machinery/door/airlock/alien, /obj/structure/cable{ icon_state = "4-8" }, /turf/simulated/floor/reinforced, -/area/tether_away/debrisfield/derelict/interior) +/area/submap/debrisfield/derelict/interior) "bI" = ( /obj/machinery/door/airlock/alien, /obj/structure/cable{ icon_state = "4-8" }, /turf/simulated/floor/tiled/steel_dirty, -/area/tether_away/debrisfield/derelict/interior) +/area/submap/debrisfield/derelict/interior) "bJ" = ( /obj/structure/cable{ icon_state = "4-8" }, /turf/simulated/floor/tiled/steel_dirty, -/area/tether_away/debrisfield/derelict/interior) +/area/submap/debrisfield/derelict/interior) "bK" = ( /obj/structure/cable{ icon_state = "2-8" @@ -539,7 +547,7 @@ icon_state = "1-8" }, /turf/simulated/floor/tiled/steel_dirty, -/area/tether_away/debrisfield/derelict/interior) +/area/submap/debrisfield/derelict/interior) "bL" = ( /obj/structure/cable{ d1 = 2; @@ -555,7 +563,7 @@ icon_state = "1-4" }, /turf/simulated/floor/tiled/steel_dirty, -/area/tether_away/debrisfield/derelict/interior) +/area/submap/debrisfield/derelict/interior) "bM" = ( /obj/effect/map_effect/interval/effect_emitter/sparks/frequent, /obj/structure/door_assembly/door_assembly_alien, @@ -565,7 +573,7 @@ icon_state = "4-8" }, /turf/simulated/floor/tiled/steel_dirty, -/area/tether_away/debrisfield/derelict/interior) +/area/submap/debrisfield/derelict/interior) "bN" = ( /obj/structure/cable{ d1 = 4; @@ -573,10 +581,13 @@ icon_state = "4-8" }, /turf/simulated/floor/tiled/steel_dirty, -/area/tether_away/debrisfield/derelict/interior) +/area/submap/debrisfield/derelict/interior) "bO" = ( -/turf/template_noop, -/area/tether_away/debrisfield/explored) +/obj/item/weapon/grenade/empgrenade, +/obj/item/weapon/grenade/empgrenade, +/obj/item/weapon/grenade/empgrenade, +/turf/space, +/area/space) "bP" = ( /obj/random/humanoidremains, /obj/structure/cable{ @@ -585,7 +596,7 @@ icon_state = "4-8" }, /turf/simulated/floor/tiled/steel_dirty, -/area/tether_away/debrisfield/derelict/interior) +/area/submap/debrisfield/derelict/interior) "bQ" = ( /obj/machinery/door/airlock/alien, /obj/structure/cable{ @@ -594,10 +605,11 @@ icon_state = "4-8" }, /turf/simulated/floor/tiled/steel_dirty, -/area/tether_away/debrisfield/derelict/interior) +/area/submap/debrisfield/derelict/interior) "bR" = ( -/turf/template_noop, -/area/tether_away/debrisfield/unexplored) +/obj/structure/shuttle/engine/propulsion, +/turf/space, +/area/submap/debrisfield/derelict/interior) "bS" = ( /obj/machinery/door/airlock/alien, /obj/structure/cable{ @@ -606,15 +618,15 @@ icon_state = "4-8" }, /turf/simulated/floor/reinforced, -/area/tether_away/debrisfield/derelict/interior) +/area/submap/debrisfield/derelict/interior) "bT" = ( /obj/tether_away_spawner/debrisfield/derelict/corrupt_maint_swarm, /turf/simulated/floor/reinforced, -/area/tether_away/debrisfield/derelict/interior) +/area/submap/debrisfield/derelict/interior) "bU" = ( /obj/machinery/door/airlock/alien, /turf/simulated/floor/reinforced, -/area/tether_away/debrisfield/derelict/interior) +/area/submap/debrisfield/derelict/interior) "bV" = ( /obj/item/xenos_claw, /obj/structure/cable{ @@ -624,25 +636,25 @@ pixel_y = 0 }, /turf/simulated/floor/tiled/steel_dirty, -/area/tether_away/debrisfield/derelict/interior) +/area/submap/debrisfield/derelict/interior) "bW" = ( /obj/structure/old_roboprinter, /turf/simulated/floor/tiled/dark, -/area/tether_away/debrisfield/derelict/interior) +/area/submap/debrisfield/derelict/interior) "bX" = ( /obj/tether_away_spawner/debrisfield/derelict/corrupt_maint_swarm, /mob/living/simple_mob/mechanical/corrupt_maint_drone{ faction = "derelict" }, /turf/simulated/floor/tiled/dark, -/area/tether_away/debrisfield/derelict/interior) +/area/submap/debrisfield/derelict/interior) "bY" = ( /obj/machinery/porta_turret/alien{ faction = "derelict"; use_power = 0 }, /turf/simulated/floor/tiled/dark, -/area/tether_away/debrisfield/derelict/interior) +/area/submap/debrisfield/derelict/interior) "bZ" = ( /obj/structure/cable{ d1 = 1; @@ -656,7 +668,7 @@ icon_state = "1-4" }, /turf/simulated/floor/tiled/steel_dirty, -/area/tether_away/debrisfield/derelict/interior) +/area/submap/debrisfield/derelict/interior) "ca" = ( /obj/structure/cable{ d1 = 1; @@ -670,14 +682,14 @@ icon_state = "1-8" }, /turf/simulated/floor/tiled/steel_dirty, -/area/tether_away/debrisfield/derelict/interior) +/area/submap/debrisfield/derelict/interior) "cb" = ( /turf/simulated/floor/tiled/white, -/area/tether_away/debrisfield/derelict/interior) +/area/submap/debrisfield/derelict/interior) "cc" = ( /obj/machinery/implantchair, /turf/simulated/floor/tiled/white, -/area/tether_away/debrisfield/derelict/interior) +/area/submap/debrisfield/derelict/interior) "cd" = ( /obj/structure/cable{ d1 = 2; @@ -685,42 +697,42 @@ icon_state = "2-4" }, /turf/simulated/floor/tiled/dark, -/area/tether_away/debrisfield/derelict/interior) +/area/submap/debrisfield/derelict/interior) "ce" = ( /obj/machinery/door/airlock/alien, /obj/structure/cable{ icon_state = "4-8" }, /turf/simulated/floor/tiled/dark, -/area/tether_away/debrisfield/derelict/interior) +/area/submap/debrisfield/derelict/interior) "cf" = ( /obj/structure/cable{ icon_state = "2-8" }, /turf/simulated/floor/tiled/dark, -/area/tether_away/debrisfield/derelict/interior) +/area/submap/debrisfield/derelict/interior) "cg" = ( /obj/structure/cable{ icon_state = "4-8" }, /turf/simulated/floor/tiled/dark, -/area/tether_away/debrisfield/derelict/interior) +/area/submap/debrisfield/derelict/interior) "ch" = ( /obj/structure/cable{ icon_state = "2-8" }, /turf/simulated/floor/tiled/white, -/area/tether_away/debrisfield/derelict/interior) +/area/submap/debrisfield/derelict/interior) "ci" = ( /mob/living/simple_mob/mechanical/infectionbot{ faction = "derelict" }, /turf/simulated/floor/tiled/white, -/area/tether_away/debrisfield/derelict/interior) +/area/submap/debrisfield/derelict/interior) "cj" = ( /obj/machinery/dna_scannernew, /turf/simulated/floor/tiled/white, -/area/tether_away/debrisfield/derelict/interior) +/area/submap/debrisfield/derelict/interior) "ck" = ( /obj/structure/cable{ d1 = 1; @@ -729,7 +741,7 @@ pixel_y = 0 }, /turf/simulated/floor/tiled/dark, -/area/tether_away/debrisfield/derelict/interior) +/area/submap/debrisfield/derelict/interior) "cl" = ( /obj/structure/cable{ d1 = 1; @@ -737,7 +749,7 @@ icon_state = "1-4" }, /turf/simulated/floor/tiled/dark, -/area/tether_away/debrisfield/derelict/interior) +/area/submap/debrisfield/derelict/interior) "cm" = ( /obj/structure/cable{ d1 = 1; @@ -746,12 +758,12 @@ pixel_y = 0 }, /turf/simulated/floor/tiled/white, -/area/tether_away/debrisfield/derelict/interior) +/area/submap/debrisfield/derelict/interior) "cn" = ( /obj/machinery/optable, /obj/random/humanoidremains, /turf/simulated/floor/tiled/white, -/area/tether_away/debrisfield/derelict/interior) +/area/submap/debrisfield/derelict/interior) "co" = ( /obj/machinery/door/airlock/alien, /obj/structure/cable{ @@ -761,15 +773,15 @@ pixel_y = 0 }, /turf/simulated/floor/tiled/steel_dirty, -/area/tether_away/debrisfield/derelict/interior) +/area/submap/debrisfield/derelict/interior) "cp" = ( /obj/random/humanoidremains, /turf/simulated/floor/tiled/white, -/area/tether_away/debrisfield/derelict/interior) +/area/submap/debrisfield/derelict/interior) "cq" = ( /obj/structure/prop/prism, /turf/simulated/floor/tiled/dark, -/area/tether_away/debrisfield/derelict/interior) +/area/submap/debrisfield/derelict/interior) "cr" = ( /obj/structure/cable{ d1 = 1; @@ -781,7 +793,7 @@ icon_state = "1-8" }, /turf/simulated/floor/tiled/dark, -/area/tether_away/debrisfield/derelict/interior) +/area/submap/debrisfield/derelict/interior) "cs" = ( /obj/structure/cable, /obj/machinery/power/apc{ @@ -791,20 +803,20 @@ pixel_y = -24 }, /turf/simulated/floor/tiled/dark, -/area/tether_away/debrisfield/derelict/interior) +/area/submap/debrisfield/derelict/interior) "ct" = ( /obj/structure/cable{ icon_state = "1-8" }, /turf/simulated/floor/tiled/dark, -/area/tether_away/debrisfield/derelict/interior) +/area/submap/debrisfield/derelict/interior) "cu" = ( /obj/machinery/replicator, /turf/simulated/floor/tiled/neutral, -/area/tether_away/debrisfield/derelict/interior) +/area/submap/debrisfield/derelict/interior) "cv" = ( /turf/simulated/floor/tiled/neutral, -/area/tether_away/debrisfield/derelict/interior) +/area/submap/debrisfield/derelict/interior) "cw" = ( /obj/structure/cable{ d1 = 1; @@ -813,7 +825,7 @@ pixel_y = 0 }, /turf/simulated/floor/tiled/neutral, -/area/tether_away/debrisfield/derelict/interior) +/area/submap/debrisfield/derelict/interior) "cx" = ( /obj/structure/cable{ d1 = 2; @@ -821,7 +833,7 @@ icon_state = "2-4" }, /turf/simulated/floor/tiled/neutral, -/area/tether_away/debrisfield/derelict/interior) +/area/submap/debrisfield/derelict/interior) "cy" = ( /obj/structure/cable{ d1 = 4; @@ -829,7 +841,7 @@ icon_state = "4-8" }, /turf/simulated/floor/tiled/neutral, -/area/tether_away/debrisfield/derelict/interior) +/area/submap/debrisfield/derelict/interior) "cz" = ( /obj/structure/cable{ d1 = 1; @@ -837,18 +849,11 @@ icon_state = "1-8" }, /turf/simulated/floor/tiled/neutral, -/area/tether_away/debrisfield/derelict/interior) -"cA" = ( -/obj/structure/catwalk, -/turf/space, -/area/tether_away/debrisfield/derelict/interior) -"cB" = ( -/turf/space, -/area/tether_away/debrisfield/derelict/interior) +/area/submap/debrisfield/derelict/interior) "cC" = ( /obj/tether_away_spawner/debrisfield/derelict/corrupt_maint_swarm, /turf/simulated/floor/tiled/steel_ridged, -/area/tether_away/debrisfield/derelict/interior) +/area/submap/debrisfield/derelict/interior) "cD" = ( /obj/structure/cable{ d1 = 4; @@ -856,25 +861,25 @@ icon_state = "4-8" }, /turf/simulated/floor/tiled/dark, -/area/tether_away/debrisfield/derelict/interior) +/area/submap/debrisfield/derelict/interior) "cE" = ( /obj/random/humanoidremains, /obj/structure/cable{ icon_state = "2-8" }, /turf/simulated/floor/tiled/dark, -/area/tether_away/debrisfield/derelict/interior) +/area/submap/debrisfield/derelict/interior) "cF" = ( /obj/effect/alien/egg, /obj/effect/alien/weeds, /turf/simulated/floor/tiled/dark, -/area/tether_away/debrisfield/derelict/interior) +/area/submap/debrisfield/derelict/interior) "cG" = ( /turf/simulated/wall/r_wall, -/area/tether_away/debrisfield/derelict/ai_access_port) +/area/submap/debrisfield/derelict/ai_access_port) "cH" = ( /turf/simulated/wall, -/area/tether_away/debrisfield/derelict/ai_access_port) +/area/submap/debrisfield/derelict/ai_access_port) "cI" = ( /obj/machinery/door/airlock/alien, /obj/structure/cable{ @@ -884,19 +889,15 @@ pixel_y = 0 }, /turf/simulated/floor/tiled/dark, -/area/tether_away/debrisfield/derelict/ai_access_port) +/area/submap/debrisfield/derelict/ai_access_port) "cJ" = ( /obj/machinery/door/airlock/alien, /turf/simulated/floor/tiled/dark, -/area/tether_away/debrisfield/derelict/ai_access_port) -"cK" = ( -/obj/item/weapon/gun/energy/ionrifle, -/turf/space, -/area/tether_away/debrisfield/derelict/interior) +/area/submap/debrisfield/derelict/ai_access_port) "cM" = ( /obj/structure/prop/alien/pod, /turf/simulated/floor/tiled/dark, -/area/tether_away/debrisfield/derelict/ai_access_port) +/area/submap/debrisfield/derelict/ai_access_port) "cN" = ( /obj/structure/cable{ d1 = 1; @@ -905,42 +906,32 @@ pixel_y = 0 }, /turf/simulated/floor/tiled/dark, -/area/tether_away/debrisfield/derelict/ai_access_port) +/area/submap/debrisfield/derelict/ai_access_port) "cO" = ( /turf/simulated/floor/tiled/dark, -/area/tether_away/debrisfield/derelict/ai_access_port) +/area/submap/debrisfield/derelict/ai_access_port) "cP" = ( /obj/structure/loot_pile/surface/alien/medical, /turf/simulated/floor/tiled/steel_ridged, -/area/tether_away/debrisfield/derelict/interior) -"cQ" = ( -/obj/item/weapon/grenade/empgrenade, -/obj/item/weapon/grenade/empgrenade, -/obj/item/weapon/grenade/empgrenade, -/turf/space, -/area/tether_away/debrisfield/derelict/interior) +/area/submap/debrisfield/derelict/interior) "cR" = ( /obj/structure/ghost_pod/manual/lost_drone/dogborg, /turf/simulated/floor/tiled/dark, -/area/tether_away/debrisfield/derelict/interior) -"cS" = ( -/obj/structure/shuttle/engine/propulsion, -/turf/space, -/area/tether_away/debrisfield/derelict/interior) +/area/submap/debrisfield/derelict/interior) "cT" = ( /turf/simulated/floor/plating, -/area/tether_away/debrisfield/derelict/ai_access_port) +/area/submap/debrisfield/derelict/ai_access_port) "cU" = ( /obj/machinery/door/airlock/alien/locked, /turf/simulated/floor/plating, -/area/tether_away/debrisfield/derelict/ai_access_port) +/area/submap/debrisfield/derelict/ai_access_port) "cV" = ( /obj/machinery/door/airlock/alien/locked, /turf/simulated/floor/plating, -/area/tether_away/debrisfield/derelict/interior) +/area/submap/debrisfield/derelict/interior) "cW" = ( /turf/simulated/wall, -/area/tether_away/debrisfield/derelict/ai_access_starboard) +/area/submap/debrisfield/derelict/ai_access_starboard) "cX" = ( /obj/machinery/door/airlock/alien, /obj/structure/cable{ @@ -950,10 +941,10 @@ pixel_y = 0 }, /turf/simulated/floor/tiled/dark, -/area/tether_away/debrisfield/derelict/ai_access_starboard) +/area/submap/debrisfield/derelict/ai_access_starboard) "cY" = ( /turf/simulated/wall/r_wall, -/area/tether_away/debrisfield/derelict/ai_access_starboard) +/area/submap/debrisfield/derelict/ai_access_starboard) "cZ" = ( /obj/random/humanoidremains, /obj/structure/cable{ @@ -963,7 +954,7 @@ pixel_y = 0 }, /turf/simulated/floor/tiled/dark, -/area/tether_away/debrisfield/derelict/ai_access_port) +/area/submap/debrisfield/derelict/ai_access_port) "da" = ( /obj/structure/cable{ d1 = 1; @@ -972,10 +963,10 @@ pixel_y = 0 }, /turf/simulated/floor/plating, -/area/tether_away/debrisfield/derelict/ai_access_starboard) +/area/submap/debrisfield/derelict/ai_access_starboard) "db" = ( /turf/simulated/floor/plating, -/area/tether_away/debrisfield/derelict/ai_access_starboard) +/area/submap/debrisfield/derelict/ai_access_starboard) "dc" = ( /obj/structure/cable{ d1 = 1; @@ -983,7 +974,7 @@ icon_state = "1-4" }, /turf/simulated/floor/tiled/dark, -/area/tether_away/debrisfield/derelict/ai_access_port) +/area/submap/debrisfield/derelict/ai_access_port) "dd" = ( /obj/structure/cable{ icon_state = "0-8" @@ -995,7 +986,7 @@ pixel_x = 28 }, /turf/simulated/floor/tiled/dark, -/area/tether_away/debrisfield/derelict/ai_access_port) +/area/submap/debrisfield/derelict/ai_access_port) "de" = ( /obj/structure/cable{ d1 = 1; @@ -1009,13 +1000,13 @@ icon_state = "1-4" }, /turf/simulated/floor/plating, -/area/tether_away/debrisfield/derelict/ai_access_starboard) +/area/submap/debrisfield/derelict/ai_access_starboard) "df" = ( /obj/structure/cable{ icon_state = "4-8" }, /turf/simulated/floor/plating, -/area/tether_away/debrisfield/derelict/ai_access_starboard) +/area/submap/debrisfield/derelict/ai_access_starboard) "dg" = ( /obj/structure/cable{ d2 = 8; @@ -1028,22 +1019,22 @@ pixel_x = 28 }, /turf/simulated/floor/plating, -/area/tether_away/debrisfield/derelict/ai_access_starboard) +/area/submap/debrisfield/derelict/ai_access_starboard) "dh" = ( /obj/tether_away_spawner/debrisfield/derelict/corrupt_maint_swarm, /turf/simulated/floor/tiled/dark, -/area/tether_away/debrisfield/derelict/ai_access_port) +/area/submap/debrisfield/derelict/ai_access_port) "di" = ( /obj/structure/ghost_pod/manual/lost_drone/dogborg, /turf/simulated/floor/plating, -/area/tether_away/debrisfield/derelict/ai_access_port) +/area/submap/debrisfield/derelict/ai_access_port) "dj" = ( /obj/tether_away_spawner/debrisfield/derelict/mech_wizard, /turf/simulated/floor/plating, -/area/tether_away/debrisfield/derelict/ai_access_starboard) +/area/submap/debrisfield/derelict/ai_access_starboard) "dk" = ( /turf/simulated/wall/r_wall, -/area/tether_away/debrisfield/derelict/ai_chamber) +/area/submap/debrisfield/derelict/ai_chamber) "dl" = ( /obj/machinery/door/airlock/hatch{ icon_state = "door_locked"; @@ -1053,7 +1044,7 @@ req_access = list(16) }, /turf/simulated/floor/plating, -/area/tether_away/debrisfield/derelict/ai_chamber) +/area/submap/debrisfield/derelict/ai_chamber) "dm" = ( /obj/machinery/door/airlock/hatch{ icon_state = "door_locked"; @@ -1069,13 +1060,13 @@ pixel_y = 0 }, /turf/simulated/floor/plating, -/area/tether_away/debrisfield/derelict/ai_chamber) +/area/submap/debrisfield/derelict/ai_chamber) "dn" = ( /turf/simulated/floor/plating, -/area/tether_away/debrisfield/derelict/ai_chamber) +/area/submap/debrisfield/derelict/ai_chamber) "do" = ( /turf/simulated/floor/greengrid, -/area/tether_away/debrisfield/derelict/ai_chamber) +/area/submap/debrisfield/derelict/ai_chamber) "dp" = ( /obj/structure/cable{ icon_state = "0-4" @@ -1088,7 +1079,7 @@ pixel_y = 24 }, /turf/simulated/floor/greengrid, -/area/tether_away/debrisfield/derelict/ai_chamber) +/area/submap/debrisfield/derelict/ai_chamber) "dq" = ( /obj/structure/cable{ d1 = 4; @@ -1096,94 +1087,69 @@ icon_state = "4-8" }, /turf/simulated/floor/plating, -/area/tether_away/debrisfield/derelict/ai_chamber) +/area/submap/debrisfield/derelict/ai_chamber) "dr" = ( /obj/structure/cable{ icon_state = "1-8" }, /turf/simulated/floor/plating, -/area/tether_away/debrisfield/derelict/ai_chamber) +/area/submap/debrisfield/derelict/ai_chamber) "ds" = ( /obj/machinery/porta_turret/alien{ faction = "derelict"; use_power = 0 }, /turf/simulated/floor/plating, -/area/tether_away/debrisfield/derelict/ai_chamber) +/area/submap/debrisfield/derelict/ai_chamber) "dt" = ( /obj/structure/prop/prism, /turf/simulated/floor/greengrid, -/area/tether_away/debrisfield/derelict/ai_chamber) +/area/submap/debrisfield/derelict/ai_chamber) "du" = ( /obj/structure/prop/blackbox/xenofrigate, /turf/simulated/floor/greengrid, -/area/tether_away/debrisfield/derelict/ai_chamber) +/area/submap/debrisfield/derelict/ai_chamber) "dv" = ( /obj/machinery/porta_turret/alien{ faction = "derelict"; use_power = 0 }, /turf/simulated/floor/greengrid, -/area/tether_away/debrisfield/derelict/ai_chamber) +/area/submap/debrisfield/derelict/ai_chamber) "dw" = ( /obj/structure/prop/fake_ai, /turf/simulated/floor/greengrid, -/area/tether_away/debrisfield/derelict/ai_chamber) +/area/submap/debrisfield/derelict/ai_chamber) "dx" = ( /obj/structure/ghost_pod/manual/lost_drone/dogborg, /turf/simulated/floor/tiled/dark, -/area/tether_away/debrisfield/derelict/ai_access_port) +/area/submap/debrisfield/derelict/ai_access_port) "dF" = ( /obj/structure/salvageable/server, /turf/simulated/floor/greengrid, -/area/tether_away/debrisfield/derelict/ai_chamber) +/area/submap/debrisfield/derelict/ai_chamber) "oS" = ( /obj/structure/salvageable/server, /turf/simulated/floor/tiled/monotile, -/area/tether_away/debrisfield/derelict/interior) +/area/submap/debrisfield/derelict/interior) "tR" = ( /obj/structure/salvageable/computer, /turf/simulated/floor/tiled/dark, -/area/tether_away/debrisfield/derelict/interior) +/area/submap/debrisfield/derelict/interior) "HB" = ( /obj/structure/salvageable/implant_container, /turf/simulated/floor/tiled/white, -/area/tether_away/debrisfield/derelict/interior) +/area/submap/debrisfield/derelict/interior) "QE" = ( /obj/structure/salvageable/autolathe, /turf/simulated/floor/tiled/steel_grid, -/area/tether_away/debrisfield/derelict/interior) +/area/submap/debrisfield/derelict/interior) "ZJ" = ( /obj/structure/salvageable/personal, /turf/simulated/floor/tiled/monotile, -/area/tether_away/debrisfield/derelict/interior) +/area/submap/debrisfield/derelict/interior) (1,1,1) = {" -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR aa aa aa @@ -1209,6 +1175,43 @@ aa aa aa aa +aK +aK +aK +aK +aK +aK +aK +aK +aK +aK +aK +aK +aK +aK +aK +aK +aK +aK +aK +aK +aK +aK +aK +aK +aK +aK +aK +aK +aK +aK +aK +aK +aK +aK +aK +aK +aK aa aa aa @@ -1219,49 +1222,37 @@ aa aa aa aa -aa -aa -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR "} (2,1,1) = {" -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR aa aa aa aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aK +aK +aK +aK bd ao ao @@ -1293,48 +1284,48 @@ ao ao ao ao +aK +aK +aa +aa +aa +aa +aa +aa +aa +aa aa aa -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR "} (3,1,1) = {" -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR aa aa aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aK +aK +aK ao ao ao @@ -1365,48 +1356,48 @@ bi bi ao aJ -cS -cB +bR +aK +aK +aK +aa +aa +aa +aa +aa +aa +aa +aa aa aa -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR "} (4,1,1) = {" -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aK ao ao ao @@ -1440,47 +1431,47 @@ bi bi ao aJ -cS +bR +aK +aK +aa +aa +aa +aa +aa +aa +aa +aa aa aa -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR "} (5,1,1) = {" -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aK ao ao ao @@ -1514,49 +1505,49 @@ bi bi ao aJ -cS +bR +aK +aK +aa +aa +aa +aa +aa +aa +aa +aa aa aa -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR "} (6,1,1) = {" -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR aa aa aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aK +aK +aK ao ao ao @@ -1587,51 +1578,51 @@ bi bi ao aJ -cS -cB +bR +aK +aK +aK +aa +aa +aa +aa +aa +aa +aa +aa aa aa -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR "} (7,1,1) = {" -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR aa aa aa aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aK +aK +aK +aK bd ao ao @@ -1663,45 +1654,20 @@ ao ao ao ao +aK +aK +aa +aa +aa +aa +aa +aa +aa +aa aa aa -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR "} (8,1,1) = {" -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR aa aa aa @@ -1716,10 +1682,54 @@ aa aa aa aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aK +aK +aK +aK +aK +aK +aK +aK +aK +aK +aK +aK +aK +aK ao bG bi ao +aK +aK +aK +aK +aK +aK +aK +aK +aK +aK +aK +aK +aK +aK +aK +aK +aK +aK +aK aa aa aa @@ -1730,52 +1740,8 @@ aa aa aa aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR "} (9,1,1) = {" -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR aa aa aa @@ -1790,10 +1756,54 @@ aa aa aa aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aK +aK +aK +aK +aK +aK +aK +aK +aK +aK +aK +aK +aK +aK ao bG bi ao +aK +aK +aK +aK +aK +aK +aK +aK +aK +aK +aK +aK +aK +aK +aK +aK +aK +aK +aK aa aa aa @@ -1804,52 +1814,8 @@ aa aa aa aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR "} (10,1,1) = {" -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR aa aa aa @@ -1863,12 +1829,55 @@ aa aa aa aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aK +aK +aK +aK +aK +aK +aK +aK +aK +aK +aK +aK +aK ao ao bG bi ao ao +aK +aK +aK +aK +aK +aK +aK +aK +aK +aK +aK +aK +aK +aK +aK +aK +aK +aK aa aa aa @@ -1879,51 +1888,8 @@ aa aa aa aa -aa -aa -aa -aa -aa -aa -aa -aa -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR "} (11,1,1) = {" -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR aa aa aa @@ -1936,6 +1902,31 @@ aa aa aa aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aK +aK +aK +aK +aK +aK +aK +aK +aK +aK +aK +aK ao ao ao @@ -1944,6 +1935,26 @@ bi ao ao ao +aK +aK +aK +aK +aK +aK +aK +aK +aK +aK +aK +aK +aK +aK +aK +aK +aK +aK +aK +aK aa aa aa @@ -1951,55 +1962,35 @@ aa aa aa aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -bO -bO -bO -bO -bO -bO -bO "} (12,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +aK +aK +aK +aK +aK +aK +aK +aK +aK +aK +aK +aK +aK +aK +aK +aK +aK +aK +aK +aK +aK +aK +aK +aK +aK +aK +aK ao ao ao @@ -2036,43 +2027,43 @@ cG cG cG dk +aK +aK +aa +aa +aa +aa +aa aa aa -bO -bO -bO -bO -bO -bO -bO "} (13,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +aK +aK +aK +aK +aK +aK +aK +aK +aK +aK +aK +aK +aK +aK +aK +aK +aK +aK +aK +aK +aK +aK +aK +aK +aK +aK ao ao ba @@ -2111,22 +2102,22 @@ cO dh dk dk +aK +aK +aa +aa +aa +aa aa aa -bO -bO -bO -bO -bO -bO "} (14,1,1) = {" -aa -aa -aa -aa -aa -aa +aK +aK +aK +aK +aK +aK ao ao ao @@ -2138,15 +2129,15 @@ ao ao ao ao -aa -aa -aa -aa -aa -aa -aa -aa -aa +aK +aK +aK +aK +aK +aK +aK +aK +aK ao ao bb @@ -2186,21 +2177,21 @@ cH dk dk dk +aK +aK +aa +aa +aa aa aa -bO -bO -bO -bO -bO "} (15,1,1) = {" -aa -aa -aa -aa -aa -aa +aK +aK +aK +aK +aK +aK ao at at @@ -2212,15 +2203,15 @@ at at at ao -aa -aa -aa -aa -aa -aa -aa -aa -aa +aK +aK +aK +aK +aK +aK +aK +aK +aK ao aF aF @@ -2261,20 +2252,20 @@ dl dn dk dk +aK +aK +aa +aa aa aa -bO -bO -bO -bO "} (16,1,1) = {" -aa -aa -aa -aa -aa -aa +aK +aK +aK +aK +aK +aK ao at at @@ -2286,15 +2277,15 @@ av av at ao -aa -aa -aa -aa -aa -aa -aa -aa -aa +aK +aK +aK +aK +aK +aK +aK +aK +aK ao aF av @@ -2336,19 +2327,19 @@ dn dn dk dk +aK +aK +aa aa aa -bO -bO -bO "} (17,1,1) = {" -aa -aa -aa -aa -aa -aa +aK +aK +aK +aK +aK +aK ao au at @@ -2360,15 +2351,15 @@ av ZJ at ao -aa -aa -aa +aK +aK +aK av aT av -aa -aa -aa +aK +aK +aK ao aF aF @@ -2411,18 +2402,18 @@ dn ds dk dk +aK +aK aa aa -bO -bO "} (18,1,1) = {" -aa -aa -aa -aa -aa -aa +aK +aK +aK +aK +aK +aK ao oS az @@ -2434,15 +2425,15 @@ av au az ao -aa -aa +aK +aK aP av aR av aP -aa -aa +aK +aK ao aW aF @@ -2486,12 +2477,12 @@ do dv dk dk +aK +aK aa -aa -bO "} (19,1,1) = {" -aa +aK ab ae ae @@ -2508,15 +2499,15 @@ av av av ao -aa -aa +aK +aK av av aU av av -aa -aa +aK +aK ao av av @@ -2561,11 +2552,11 @@ do dv dk dk -aa -aa +aK +aK "} (20,1,1) = {" -aa +aK ac af ak @@ -2616,17 +2607,17 @@ aF cq bY ao -cA -cA -cA -cA -cA -cA -cA -cA -cA -cA -cA +bf +bf +bf +bf +bf +bf +bf +bf +bf +bf +bf dk do do @@ -2636,10 +2627,10 @@ do dv dk dk -aa +aK "} (21,1,1) = {" -aa +aK ac ag ak @@ -2690,17 +2681,17 @@ ck cl aF ao -cA -cB -cB -cB -cB -cB -cB -cB -cB -cB -cA +bf +aK +aK +aK +aK +aK +aK +aK +aK +aK +bf dk do do @@ -2710,10 +2701,10 @@ do do dv dk -aa +aK "} (22,1,1) = {" -aa +aK ac ah ak @@ -2764,17 +2755,17 @@ av cg aF ao -cA -cB -cB -cB -cB -cB -cB -cB -cB -cB -cA +bf +aK +aK +aK +aK +aK +aK +aK +aK +aK +bf dk dF do @@ -2784,10 +2775,10 @@ do do do dk -aa +aK "} (23,1,1) = {" -aa +aK ac ag ak @@ -2838,17 +2829,17 @@ co cr cs ao -cA -cB -cB -cB -cK -cQ -cQ -cB -cB -cB -cA +bf +aK +aK +aK +bg +bO +bO +aK +aK +aK +bf dk dF do @@ -2858,10 +2849,10 @@ do do dv dk -aa +aK "} (24,1,1) = {" -aa +aK ac ag ak @@ -2912,17 +2903,17 @@ co ck cl ao -cA -cB -cB -cB -cB -cQ -cQ -cB -cB -cB -cA +bf +aK +aK +aK +aK +bO +bO +aK +aK +aK +bf dk dF do @@ -2932,10 +2923,10 @@ do do dv dk -aa +aK "} (25,1,1) = {" -aa +aK ac ah ak @@ -2986,17 +2977,17 @@ av aY cg ao -cA -cB -cB -cB -cB -cB -cB -cB -cB -cB -cA +bf +aK +aK +aK +aK +aK +aK +aK +aK +aK +bf dk dF do @@ -3006,10 +2997,10 @@ do do do dk -aa +aK "} (26,1,1) = {" -aa +aK ac ag ak @@ -3060,17 +3051,17 @@ ck ck ct ao -cA -cB -cB -cB -cB -cB -cB -cB -cB -cB -cA +bf +aK +aK +aK +aK +aK +aK +aK +aK +aK +bf dk do do @@ -3080,10 +3071,10 @@ do do dv dk -aa +aK "} (27,1,1) = {" -aa +aK ac ai ak @@ -3100,15 +3091,15 @@ aw aw aw ao -aa -aa +aK +aK av aR aR aR av -aa -aa +aK +aK ao aZ aF @@ -3134,17 +3125,17 @@ aF cq bY ao -cA -cA -cA -cA -cA -cA -cA -cA -cA -cA -cA +bf +bf +bf +bf +bf +bf +bf +bf +bf +bf +bf dk do do @@ -3154,10 +3145,10 @@ do dv dk dk -aa +aK "} (28,1,1) = {" -aa +aK ad aj aj @@ -3174,15 +3165,15 @@ av av av ao -aa -aa +aK +aK av av aV av av -aa -aa +aK +aK ao av av @@ -3227,16 +3218,16 @@ do dv dk dk -aa -aa +aK +aK "} (29,1,1) = {" -aa -aa -aa -aa -aa -aa +aK +aK +aK +aK +aK +aK ao au at @@ -3248,15 +3239,15 @@ av aI aI ao -aa -aa +aK +aK aQ av aR av aQ -aa -aa +aK +aK ao aW aF @@ -3300,17 +3291,17 @@ do dv dk dk +aK +aK aa -aa -bO "} (30,1,1) = {" -aa -aa -aa -aa -aa -aa +aK +aK +aK +aK +aK +aK ao at at @@ -3322,15 +3313,15 @@ av at at ao -aa -aa -aa +aK +aK +aK av aV av -aa -aa -aa +aK +aK +aK ao aF aF @@ -3373,18 +3364,18 @@ dn ds dk dk +aK +aK aa aa -bO -bO "} (31,1,1) = {" -aa -aa -aa -aa -aa -aa +aK +aK +aK +aK +aK +aK ao at at @@ -3396,15 +3387,15 @@ av az az ao -aa -aa -aa -aa -aa -aa -aa -aa -aa +aK +aK +aK +aK +aK +aK +aK +aK +aK ao aF aF @@ -3446,19 +3437,19 @@ dq dn dk dk +aK +aK +aa aa aa -bO -bO -bO "} (32,1,1) = {" -aa -aa -aa -aa -aa -aa +aK +aK +aK +aK +aK +aK ao at at @@ -3470,15 +3461,15 @@ at at at ao -aa -aa -aa -aa -aa -aa -aa -aa -aa +aK +aK +aK +aK +aK +aK +aK +aK +aK ao aF aF @@ -3519,20 +3510,20 @@ dm dr dk dk +aK +aK +aa +aa aa aa -bO -bO -bO -bO "} (33,1,1) = {" -aa -aa -aa -aa -aa -aa +aK +aK +aK +aK +aK +aK ao ao ao @@ -3544,15 +3535,15 @@ ao ao ao ao -aa -aa -aa -aa -aa -aa -aa -aa -aa +aK +aK +aK +aK +aK +aK +aK +aK +aK ao ao bb @@ -3592,41 +3583,41 @@ db dk dk dk +aK +aK +aa +aa +aa aa aa -bO -bO -bO -bO -bO "} (34,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +aK +aK +aK +aK +aK +aK +aK +aK +aK +aK +aK +aK +aK +aK +aK +aK +aK +aK +aK +aK +aK +aK +aK +aK +aK +aK ao ao bc @@ -3665,43 +3656,43 @@ dg dj dk dk +aK +aK +aa +aa +aa +aa aa aa -bO -bO -bO -bO -bO -bO "} (35,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +aK +aK +aK +aK +aK +aK +aK +aK +aK +aK +aK +aK +aK +aK +aK +aK +aK +aK +aK +aK +aK +aK +aK +aK +aK +aK +aK ao ao ao @@ -3738,42 +3729,17 @@ cY cY cY dk +aK +aK +aa +aa +aa +aa +aa aa aa -bO -bO -bO -bO -bO -bO -bO "} (36,1,1) = {" -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR aa aa aa @@ -3786,6 +3752,31 @@ aa aa aa aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aK +aK +aK +aK +aK +aK +aK +aK +aK +aK +aK +aK ao ao ao @@ -3794,6 +3785,25 @@ bi ao ao ao +aK +aK +aK +aK +aK +aK +aK +aK +aK +aK +aK +aK +aK +aK +aK +aK +aK +aK +aK aa aa aa @@ -3802,52 +3812,8 @@ aa aa aa aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -bO -bO -bO -bO -bO -bO -bO -bO "} (37,1,1) = {" -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR aa aa aa @@ -3861,12 +3827,55 @@ aa aa aa aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aK +aK +aK +aK +aK +aK +aK +aK +aK +aK +aK +aK +aK ao ao bp bi ao ao +aK +aK +aK +aK +aK +aK +aK +aK +aK +aK +aK +aK +aK +aK +aK +aK +aK +aK aa aa aa @@ -3877,51 +3886,8 @@ aa aa aa aa -aa -aa -aa -aa -aa -aa -aa -aa -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR "} (38,1,1) = {" -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR aa aa aa @@ -3936,10 +3902,54 @@ aa aa aa aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aK +aK +aK +aK +aK +aK +aK +aK +aK +aK +aK +aK +aK +aK ao bp bi ao +aK +aK +aK +aK +aK +aK +aK +aK +aK +aK +aK +aK +aK +aK +aK +aK +aK +aK +aK aa aa aa @@ -3950,52 +3960,8 @@ aa aa aa aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR "} (39,1,1) = {" -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR aa aa aa @@ -4010,10 +3976,54 @@ aa aa aa aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aK +aK +aK +aK +aK +aK +aK +aK +aK +aK +aK +aK +aK +aK ao bp bi ao +aK +aK +aK +aK +aK +aK +aK +aK +aK +aK +aK +aK +aK +aK +aK +aK +aK +aK +aK aa aa aa @@ -4024,56 +4034,37 @@ aa aa aa aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR "} (40,1,1) = {" -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR aa aa aa aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aK +aK +aK +aK bd ao ao @@ -4105,48 +4096,48 @@ ao ao ao ao +aK +aK +aa +aa +aa +aa +aa +aa +aa +aa aa aa -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR "} (41,1,1) = {" -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR aa aa aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aK +aK +aK ao ao ao @@ -4177,48 +4168,48 @@ bi bi ao aJ -cS -cB +bR +aK +aK +aK +aa +aa +aa +aa +aa +aa +aa +aa aa aa -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR "} (42,1,1) = {" -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aK ao ao ao @@ -4252,47 +4243,47 @@ bi bi ao aJ -cS +bR +aK +aK +aa +aa +aa +aa +aa +aa +aa +aa aa aa -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR "} (43,1,1) = {" -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aK ao ao ao @@ -4326,49 +4317,49 @@ bi bi ao aJ -cS +bR +aK +aK +aa +aa +aa +aa +aa +aa +aa +aa aa aa -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR "} (44,1,1) = {" -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR aa aa aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aK +aK +aK ao ao ao @@ -4399,51 +4390,51 @@ av bi ao aJ -cS -cB +bR +aK +aK +aK +aa +aa +aa +aa +aa +aa +aa +aa aa aa -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR "} (45,1,1) = {" -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR aa aa aa aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aK +aK +aK +aK bd ao ao @@ -4475,45 +4466,20 @@ ao ao ao ao +aK +aK +aa +aa +aa +aa +aa +aa +aa +aa aa aa -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR "} (46,1,1) = {" -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR aa aa aa @@ -4539,6 +4505,43 @@ aa aa aa aa +aK +aK +aK +aK +aK +aK +aK +aK +aK +aK +aK +aK +aK +aK +aK +aK +aK +aK +aK +aK +aK +aK +aK +aK +aK +aK +aK +aK +aK +aK +aK +aK +aK +aK +aK +aK +aK aa aa aa @@ -4549,16 +4552,4 @@ aa aa aa aa -aa -aa -bR -bR -bR -bR -bR -bR -bR -bR -bR -bR "} diff --git a/maps/submaps/pois_vr/debris_field/escape_pod.dmm b/maps/submaps/pois_vr/debris_field/escape_pod.dmm new file mode 100644 index 0000000000..18468e697e --- /dev/null +++ b/maps/submaps/pois_vr/debris_field/escape_pod.dmm @@ -0,0 +1,63 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"a" = ( +/obj/structure/shuttle/engine/propulsion{ + dir = 8; + pixel_x = -16 + }, +/turf/simulated/shuttle/wall/hard_corner, +/area/submap/debrisfield/misc_debris) +"b" = ( +/turf/simulated/shuttle/wall, +/area/submap/debrisfield/misc_debris) +"c" = ( +/obj/machinery/door/unpowered/shuttle, +/turf/simulated/shuttle/floor/airless, +/area/submap/debrisfield/misc_debris) +"d" = ( +/obj/structure/bed/chair/bay/shuttle{ + dir = 4 + }, +/obj/effect/decal/remains/human, +/obj/item/weapon/bananapeel{ + layer = 2.5 + }, +/turf/simulated/shuttle/floor/airless, +/area/submap/debrisfield/misc_debris) +"e" = ( +/obj/structure/bed/chair/bay/shuttle{ + dir = 4 + }, +/obj/effect/decal/remains/tajaran, +/obj/item/device/radio/intercom{ + dir = 1; + pixel_y = 24; + req_access = list() + }, +/turf/simulated/shuttle/floor/airless, +/area/submap/debrisfield/misc_debris) +"f" = ( +/obj/structure/shuttle/window, +/obj/structure/grille, +/turf/simulated/floor/airless, +/area/submap/debrisfield/misc_debris) + +(1,1,1) = {" +a +c +a +"} +(2,1,1) = {" +b +d +b +"} +(3,1,1) = {" +b +e +b +"} +(4,1,1) = {" +b +f +b +"} diff --git a/maps/submaps/pois_vr/debris_field/foodstand.dmm b/maps/submaps/pois_vr/debris_field/foodstand.dmm index a035bb4b3a..40efa5aff3 100644 --- a/maps/submaps/pois_vr/debris_field/foodstand.dmm +++ b/maps/submaps/pois_vr/debris_field/foodstand.dmm @@ -1,23 +1,23 @@ //MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE "a" = ( /turf/template_noop, -/area/tether_away/debrisfield/explored) +/area/space) "b" = ( /turf/simulated/mineral/vacuum, -/area/tether_away/debrisfield/explored) +/area/submap/debrisfield/foodstand) "c" = ( /turf/simulated/mineral/floor/vacuum, -/area/tether_away/debrisfield/explored) +/area/submap/debrisfield/foodstand) "d" = ( /turf/simulated/wall/wood, -/area/tether_away/debrisfield/explored) +/area/submap/debrisfield/foodstand) "e" = ( /obj/structure/closet/secure_closet/freezer/meat, /obj/item/weapon/reagent_containers/food/snacks/carpmeat, /obj/item/weapon/reagent_containers/food/snacks/carpmeat, /obj/item/weapon/reagent_containers/food/snacks/carpmeat, /turf/simulated/floor/wood, -/area/tether_away/debrisfield/explored) +/area/submap/debrisfield/foodstand) "f" = ( /obj/structure/table/woodentable, /obj/item/weapon/reagent_containers/food/condiment/coldsauce, @@ -25,19 +25,19 @@ /obj/item/weapon/reagent_containers/food/condiment/hotsauce, /obj/item/weapon/reagent_containers/food/condiment/soysauce, /turf/simulated/floor/wood, -/area/tether_away/debrisfield/explored) +/area/submap/debrisfield/foodstand) "g" = ( /obj/structure/table/woodentable, /obj/machinery/microwave, /turf/simulated/floor/wood, -/area/tether_away/debrisfield/explored) +/area/submap/debrisfield/foodstand) "h" = ( /obj/structure/simple_door/wood, /turf/simulated/floor/wood, -/area/tether_away/debrisfield/explored) +/area/submap/debrisfield/foodstand) "i" = ( /turf/simulated/floor/wood, -/area/tether_away/debrisfield/explored) +/area/submap/debrisfield/foodstand) "j" = ( /obj/structure/closet/crate/freezer, /obj/item/weapon/reagent_containers/food/snacks/taco, @@ -48,23 +48,23 @@ /obj/item/weapon/reagent_containers/food/snacks/cheeseburrito, /obj/item/weapon/reagent_containers/food/snacks/cheeseburrito, /turf/simulated/floor/wood, -/area/tether_away/debrisfield/explored) +/area/submap/debrisfield/foodstand) "k" = ( /obj/structure/table/woodentable, -/turf/simulated/floor/wood, -/area/tether_away/debrisfield/explored) -"l" = ( -/obj/structure/table/woodentable, -/obj/item/weapon/reagent_containers/food/snacks/taco, -/turf/simulated/floor/wood, -/area/tether_away/debrisfield/explored) -"m" = ( -/obj/structure/table/woodentable, /obj/machinery/cash_register{ dir = 1 }, /turf/simulated/floor/wood, -/area/tether_away/debrisfield/explored) +/area/submap/debrisfield/foodstand) +"l" = ( +/obj/structure/table/woodentable, +/obj/item/weapon/reagent_containers/food/snacks/taco, +/turf/simulated/floor/wood, +/area/submap/debrisfield/foodstand) +"m" = ( +/obj/structure/table/woodentable, +/turf/simulated/floor/wood, +/area/submap/debrisfield/foodstand) (1,1,1) = {" a @@ -121,7 +121,7 @@ a (5,1,1) = {" b b -b +c c d d @@ -133,22 +133,22 @@ a "} (6,1,1) = {" b -b +c c c d e i -m +k c c c "} (7,1,1) = {" -a b c c +c d f i @@ -165,7 +165,7 @@ c d g j -k +m c c c diff --git a/maps/submaps/pois_vr/debris_field/mining_drones.dmm b/maps/submaps/pois_vr/debris_field/mining_drones.dmm new file mode 100644 index 0000000000..57fee61a6f --- /dev/null +++ b/maps/submaps/pois_vr/debris_field/mining_drones.dmm @@ -0,0 +1,409 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"a" = ( +/turf/space, +/area/space) +"b" = ( +/turf/simulated/mineral/vacuum, +/area/space) +"c" = ( +/mob/living/simple_mob/mechanical/mining_drone{ + faction = "poi_mining_drones" + }, +/turf/simulated/floor/airless, +/area/submap/debrisfield/mining_outpost) +"d" = ( +/obj/machinery/power/rtg, +/obj/structure/cable{ + d2 = 2; + icon_state = "0-2" + }, +/turf/simulated/floor/airless, +/area/submap/debrisfield/mining_outpost) +"e" = ( +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/machinery/power/smes/batteryrack/mapped{ + input_attempt = 1; + mode = 3; + output_attempt = 1 + }, +/turf/simulated/floor/tiled/airless, +/area/submap/debrisfield/mining_outpost) +"f" = ( +/turf/simulated/floor/airless, +/area/submap/debrisfield/mining_outpost) +"g" = ( +/turf/simulated/wall, +/area/submap/debrisfield/mining_outpost) +"h" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/simulated/wall, +/area/submap/debrisfield/mining_outpost) +"i" = ( +/obj/item/stack/material/steel, +/turf/space, +/area/space) +"j" = ( +/obj/structure/girder, +/turf/simulated/floor/airless, +/area/submap/debrisfield/mining_outpost) +"k" = ( +/turf/simulated/mineral/vacuum, +/area/submap/debrisfield/mining_outpost) +"l" = ( +/obj/structure/ore_box, +/turf/simulated/floor/airless, +/area/submap/debrisfield/mining_outpost) +"m" = ( +/obj/structure/cable, +/obj/machinery/power/terminal{ + dir = 4 + }, +/turf/simulated/floor/tiled/airless, +/area/submap/debrisfield/mining_outpost) +"n" = ( +/obj/machinery/porta_turret/stationary/syndie{ + faction = "poi_mining_drones"; + icon_state = "turret_cover_industrial"; + turret_type = "industrial" + }, +/obj/effect/map_effect/perma_light, +/turf/simulated/floor/airless, +/area/submap/debrisfield/mining_outpost) +"o" = ( +/obj/machinery/power/apc/alarms_hidden{ + dir = 1; + pixel_y = 24 + }, +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/turf/simulated/floor/tiled/airless, +/area/submap/debrisfield/mining_outpost) +"p" = ( +/obj/item/weapon/material/shard, +/turf/space, +/area/space) +"q" = ( +/obj/structure/sign/poster{ + pixel_y = 32; + poster_type = "/datum/poster/bay_50" + }, +/turf/simulated/floor/airless, +/area/submap/debrisfield/mining_outpost) +"r" = ( +/obj/random/multiple/underdark/ores, +/obj/structure/closet/syndicate/resources{ + name = "storage locker" + }, +/turf/simulated/floor/tiled/airless, +/area/submap/debrisfield/mining_outpost) +"s" = ( +/obj/structure/bed/chair{ + dir = 4 + }, +/obj/effect/floor_decal/rust/steel_decals_rusted2{ + dir = 1 + }, +/turf/simulated/floor/airless, +/area/submap/debrisfield/mining_outpost) +"t" = ( +/obj/item/modular_computer/console/preset/civilian{ + dir = 8 + }, +/turf/simulated/floor/tiled/asteroid_steel/airless, +/area/submap/debrisfield/mining_outpost) +"u" = ( +/obj/item/weapon/ore, +/obj/effect/floor_decal/asteroid, +/turf/simulated/floor/tiled/asteroid_steel/airless, +/area/submap/debrisfield/mining_outpost) +"v" = ( +/turf/template_noop, +/area/space) +"w" = ( +/obj/item/weapon/material/shard, +/obj/structure/grille/broken, +/obj/item/stack/rods, +/turf/simulated/floor/airless, +/area/submap/debrisfield/mining_outpost) +"x" = ( +/obj/structure/grille, +/obj/structure/window/reinforced, +/turf/simulated/floor/airless, +/area/submap/debrisfield/mining_outpost) +"y" = ( +/obj/machinery/conveyor, +/turf/simulated/floor/airless, +/area/submap/debrisfield/mining_outpost) +"z" = ( +/obj/machinery/light/small/emergency{ + auto_flicker = 1; + dir = 8 + }, +/turf/simulated/floor/tiled/airless, +/area/submap/debrisfield/mining_outpost) +"A" = ( +/obj/effect/floor_decal/rust, +/turf/simulated/floor/tiled/airless, +/area/submap/debrisfield/mining_outpost) +"B" = ( +/obj/structure/lattice, +/turf/space, +/area/space) +"C" = ( +/turf/simulated/floor/tiled/airless, +/area/submap/debrisfield/mining_outpost) +"D" = ( +/obj/item/weapon/material/shard, +/obj/effect/floor_decal/steeldecal/steel_decals_central5{ + dir = 4 + }, +/turf/simulated/floor/tiled/airless, +/area/submap/debrisfield/mining_outpost) +"E" = ( +/obj/machinery/door/airlock/external/glass{ + density = 0; + health = 0; + icon_state = "door_open"; + stat = 1 + }, +/turf/simulated/floor/airless, +/area/submap/debrisfield/mining_outpost) +"F" = ( +/obj/machinery/door/airlock/external/glass/bolted, +/turf/simulated/floor/airless, +/area/submap/debrisfield/mining_outpost) +"G" = ( +/obj/random/unidentified_medicine/old_medicine, +/obj/random/unidentified_medicine/old_medicine, +/obj/random/unidentified_medicine/old_medicine, +/obj/random/unidentified_medicine/old_medicine, +/obj/random/unidentified_medicine/old_medicine, +/obj/random/unidentified_medicine/old_medicine, +/obj/random/unidentified_medicine/old_medicine, +/obj/random/unidentified_medicine/old_medicine, +/obj/structure/closet/medical_wall{ + dir = 2; + pixel_y = -24 + }, +/obj/item/stack/medical/bruise_pack, +/obj/item/stack/medical/ointment, +/obj/item/weapon/storage/mre/random, +/obj/effect/floor_decal/rust/part_rusted3, +/turf/simulated/floor/tiled/airless, +/area/submap/debrisfield/mining_outpost) +"H" = ( +/obj/structure/closet/syndicate/resources{ + name = "storage locker" + }, +/turf/simulated/floor/tiled/airless, +/area/submap/debrisfield/mining_outpost) +"I" = ( +/obj/item/weapon/storage/toolbox/syndicate, +/obj/structure/table/rack/steel, +/turf/simulated/floor/tiled/airless, +/area/submap/debrisfield/mining_outpost) +"J" = ( +/obj/machinery/light_switch{ + pixel_y = -24 + }, +/obj/effect/floor_decal/rust, +/turf/simulated/floor/tiled/airless, +/area/submap/debrisfield/mining_outpost) +"L" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/full, +/turf/simulated/floor/airless, +/area/submap/debrisfield/mining_outpost) +"M" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/full, +/obj/structure/window/reinforced, +/turf/simulated/floor/airless, +/area/submap/debrisfield/mining_outpost) +"N" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/full, +/obj/structure/window/reinforced, +/obj/structure/window/reinforced{ + dir = 4 + }, +/turf/simulated/floor/airless, +/area/submap/debrisfield/mining_outpost) +"O" = ( +/obj/machinery/mineral/input, +/turf/simulated/floor/airless, +/area/submap/debrisfield/mining_outpost) +"R" = ( +/obj/machinery/mineral/processing_unit, +/turf/simulated/floor/airless, +/area/submap/debrisfield/mining_outpost) +"S" = ( +/obj/machinery/conveyor{ + dir = 4 + }, +/obj/machinery/mineral/output, +/turf/simulated/floor/airless, +/area/submap/debrisfield/mining_outpost) +"T" = ( +/obj/machinery/conveyor{ + dir = 4 + }, +/obj/structure/plasticflaps/mining, +/turf/simulated/floor/airless, +/area/submap/debrisfield/mining_outpost) +"U" = ( +/obj/machinery/conveyor{ + dir = 5 + }, +/turf/simulated/floor/airless, +/area/submap/debrisfield/mining_outpost) + +(1,1,1) = {" +v +a +B +f +c +f +c +f +f +"} +(2,1,1) = {" +v +f +f +l +y +y +y +O +g +"} +(3,1,1) = {" +v +f +g +g +g +g +g +R +g +"} +(4,1,1) = {" +v +d +h +m +z +r +g +S +g +"} +(5,1,1) = {" +v +B +g +e +A +H +g +T +g +"} +(6,1,1) = {" +v +B +g +o +C +C +f +U +g +"} +(7,1,1) = {" +v +i +g +q +C +I +g +g +g +"} +(8,1,1) = {" +v +a +j +s +C +J +g +a +B +"} +(9,1,1) = {" +i +b +k +t +C +C +M +B +n +"} +(10,1,1) = {" +b +b +k +u +D +G +g +a +a +"} +(11,1,1) = {" +b +b +k +k +E +L +g +v +v +"} +(12,1,1) = {" +v +b +b +w +f +M +v +v +v +"} +(13,1,1) = {" +v +v +p +x +F +N +v +v +v +"} diff --git a/maps/submaps/pois_vr/debris_field/old_satellite.dmm b/maps/submaps/pois_vr/debris_field/old_satellite.dmm new file mode 100644 index 0000000000..eda87facc6 --- /dev/null +++ b/maps/submaps/pois_vr/debris_field/old_satellite.dmm @@ -0,0 +1,224 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"a" = ( +/turf/template_noop, +/area/space) +"b" = ( +/obj/structure/lattice, +/turf/space, +/area/space) +"c" = ( +/obj/machinery/doppler_array, +/obj/structure/lattice, +/turf/space, +/area/submap/debrisfield/old_sat) +"d" = ( +/obj/structure/window/phoronbasic{ + dir = 1 + }, +/obj/structure/window/phoronbasic{ + dir = 8 + }, +/turf/simulated/floor/airless, +/area/submap/debrisfield/old_sat) +"e" = ( +/obj/structure/window/phoronbasic{ + dir = 1 + }, +/obj/structure/salvageable/server, +/turf/simulated/floor/bluegrid/airless, +/area/submap/debrisfield/old_sat) +"f" = ( +/obj/structure/window/phoronbasic{ + dir = 1 + }, +/obj/structure/window/phoronbasic{ + dir = 4 + }, +/obj/random/tech_supply/component, +/turf/simulated/floor/airless, +/area/submap/debrisfield/old_sat) +"g" = ( +/obj/item/weapon/material/shard, +/turf/template_noop, +/area/space) +"h" = ( +/obj/structure/cable{ + d2 = 4; + icon_state = "0-4" + }, +/obj/machinery/power/solar/fake{ + adir = 135 + }, +/turf/simulated/floor/airless, +/area/submap/debrisfield/old_sat) +"i" = ( +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/structure/cable{ + d2 = 4; + icon_state = "0-4" + }, +/obj/machinery/power/solar/fake{ + adir = 135 + }, +/turf/simulated/floor/airless, +/area/submap/debrisfield/old_sat) +"j" = ( +/obj/structure/window/phoronbasic{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/random/tech_supply/component, +/turf/simulated/floor/airless, +/area/submap/debrisfield/old_sat) +"k" = ( +/obj/structure/AIcore{ + anchored = 1; + icon_state = "3"; + state = 3 + }, +/obj/structure/cable{ + d2 = 4; + icon_state = "0-4" + }, +/obj/structure/cable{ + icon_state = "0-8" + }, +/turf/simulated/floor/bluegrid/airless, +/area/submap/debrisfield/old_sat) +"l" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/random/tech_supply/component, +/turf/simulated/floor/airless, +/area/submap/debrisfield/old_sat) +"m" = ( +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/machinery/power/solar/fake{ + stat = 1 + }, +/turf/simulated/floor/airless, +/area/submap/debrisfield/old_sat) +"n" = ( +/obj/structure/window/phoronbasic{ + dir = 8 + }, +/obj/structure/window/phoronbasic, +/turf/simulated/floor/airless, +/area/submap/debrisfield/old_sat) +"o" = ( +/obj/structure/lattice, +/obj/item/weapon/material/shard, +/turf/space, +/area/space) +"p" = ( +/obj/structure/window/phoronbasic, +/obj/machinery/telecomms/broadcaster, +/turf/simulated/floor/bluegrid/airless, +/area/submap/debrisfield/old_sat) +"q" = ( +/obj/item/weapon/material/shard/phoron, +/obj/item/weapon/ore/iron, +/obj/random/tech_supply/component, +/turf/simulated/floor/airless, +/area/submap/debrisfield/old_sat) +"r" = ( +/obj/item/weapon/ore/iron, +/obj/item/weapon/ore/iron, +/turf/template_noop, +/area/space) +"s" = ( +/obj/item/weapon/ore/glass, +/turf/template_noop, +/area/space) +"t" = ( +/obj/item/stack/cable_coil/cut, +/turf/template_noop, +/area/space) + +(1,1,1) = {" +a +a +a +h +a +a +"} +(2,1,1) = {" +a +a +a +i +a +a +"} +(3,1,1) = {" +a +a +a +i +a +a +"} +(4,1,1) = {" +a +c +d +j +n +a +"} +(5,1,1) = {" +a +a +e +k +p +a +"} +(6,1,1) = {" +b +b +f +l +q +a +"} +(7,1,1) = {" +a +a +t +m +r +s +"} +(8,1,1) = {" +a +a +a +o +t +a +"} +(9,1,1) = {" +a +a +g +t +s +a +"} +(10,1,1) = {" +a +a +a +a +g +a +"} diff --git a/maps/submaps/pois_vr/debris_field/old_teleporter.dmm b/maps/submaps/pois_vr/debris_field/old_teleporter.dmm new file mode 100644 index 0000000000..c0d8c77ca8 --- /dev/null +++ b/maps/submaps/pois_vr/debris_field/old_teleporter.dmm @@ -0,0 +1,267 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"a" = ( +/turf/template_noop, +/area/space) +"b" = ( +/turf/simulated/wall/r_wall, +/area/submap/debrisfield/old_tele) +"c" = ( +/obj/structure/frame/computer, +/turf/simulated/floor/airless, +/area/submap/debrisfield/old_tele) +"d" = ( +/obj/machinery/teleport/station{ + icon = 'icons/obj/stationobjs.dmi' + }, +/turf/simulated/floor/airless, +/area/submap/debrisfield/old_tele) +"e" = ( +/obj/machinery/teleport/hub{ + icon = 'icons/obj/stationobjs.dmi' + }, +/turf/simulated/floor/airless, +/area/submap/debrisfield/old_tele) +"f" = ( +/obj/machinery/power/apc/alarms_hidden{ + cell_type = null; + coverlocked = 0; + dir = 1; + locked = 0; + opened = 1; + pixel_y = 24 + }, +/obj/structure/cable{ + d2 = 2; + icon_state = "0-2" + }, +/turf/simulated/floor/airless, +/area/submap/debrisfield/old_tele) +"g" = ( +/obj/item/weapon/material/shard, +/turf/simulated/floor/airless, +/area/submap/debrisfield/old_tele) +"h" = ( +/turf/simulated/floor/airless, +/area/submap/debrisfield/old_tele) +"i" = ( +/obj/structure/table/rack, +/obj/item/clothing/gloves/fyellow, +/turf/simulated/floor/airless, +/area/submap/debrisfield/old_tele) +"j" = ( +/obj/structure/lattice, +/turf/space, +/area/space) +"k" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/simulated/floor/airless, +/area/submap/debrisfield/old_tele) +"l" = ( +/obj/machinery/door/airlock/external, +/turf/simulated/floor/airless, +/area/submap/debrisfield/old_tele) +"m" = ( +/obj/item/weapon/storage/toolbox/mechanical, +/turf/simulated/floor/airless, +/area/submap/debrisfield/old_tele) +"n" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/turf/simulated/floor/airless, +/area/submap/debrisfield/old_tele) +"o" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/simulated/floor/airless, +/area/submap/debrisfield/old_tele) +"p" = ( +/obj/structure/lattice, +/obj/item/stack/cable_coil/cut, +/turf/space, +/area/submap/debrisfield/old_tele) +"q" = ( +/obj/structure/closet/malf/suits, +/turf/simulated/floor/airless, +/area/submap/debrisfield/old_tele) +"r" = ( +/obj/structure/lattice, +/turf/space, +/area/submap/debrisfield/old_tele) +"s" = ( +/turf/space, +/area/submap/debrisfield/old_tele) +"t" = ( +/obj/item/stack/cable_coil/cut, +/turf/simulated/floor/airless, +/area/submap/debrisfield/old_tele) +"u" = ( +/obj/structure/girder, +/turf/simulated/floor/airless, +/area/submap/debrisfield/old_tele) +"v" = ( +/obj/structure/lattice, +/turf/template_noop, +/area/space) + +(1,1,1) = {" +a +a +a +v +a +a +a +v +a +a +a +"} +(2,1,1) = {" +a +a +a +v +a +a +a +v +a +a +a +"} +(3,1,1) = {" +a +a +j +j +a +a +a +j +j +a +a +"} +(4,1,1) = {" +a +a +j +b +b +l +b +b +j +a +a +"} +(5,1,1) = {" +a +a +b +b +h +h +h +b +b +a +a +"} +(6,1,1) = {" +a +b +b +f +k +k +n +h +b +b +j +"} +(7,1,1) = {" +a +b +c +g +h +m +o +r +t +b +a +"} +(8,1,1) = {" +a +b +d +h +h +h +p +s +r +u +a +"} +(9,1,1) = {" +j +b +e +h +h +g +h +p +h +b +j +"} +(10,1,1) = {" +j +b +b +i +h +h +h +h +b +b +j +"} +(11,1,1) = {" +a +a +b +b +h +h +q +b +b +a +a +"} +(12,1,1) = {" +a +a +j +b +b +b +b +b +a +a +a +"} diff --git a/maps/submaps/pois_vr/debris_field/oldshuttle.dmm b/maps/submaps/pois_vr/debris_field/oldshuttle.dmm index f44d8e4ace..7c9eefd8f1 100644 --- a/maps/submaps/pois_vr/debris_field/oldshuttle.dmm +++ b/maps/submaps/pois_vr/debris_field/oldshuttle.dmm @@ -1,63 +1,92 @@ //MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE "aa" = ( /turf/space, -/area/tether_away/debrisfield/explored) +/area/space) "ab" = ( /obj/item/weapon/material/twohanded/spear, /turf/space, -/area/tether_away/debrisfield/explored) +/area/space) "ac" = ( -/turf/simulated/shuttle/wall/voidcraft, -/area/tether_away/debrisfield/explored) -"ad" = ( -/turf/simulated/shuttle/floor/black/airless, -/area/tether_away/debrisfield/explored) -"ae" = ( -/obj/structure/table/steel, -/obj/item/clothing/head/pilot, -/turf/simulated/shuttle/floor/black/airless, -/area/tether_away/debrisfield/explored) -"af" = ( -/turf/simulated/shuttle/wall/voidcraft/hard_corner, -/area/tether_away/debrisfield/explored) -"ag" = ( -/obj/structure/frame/computer, -/turf/simulated/shuttle/floor/black/airless, -/area/tether_away/debrisfield/explored) -"ah" = ( -/obj/structure/bed/chair/comfy/blue{ - icon_state = "comfychair_preview"; - dir = 1 - }, -/turf/simulated/shuttle/floor/black/airless, -/area/tether_away/debrisfield/explored) -"ai" = ( /obj/structure/grille, /obj/structure/window/reinforced/full, /obj/structure/window/reinforced{ dir = 1 }, /turf/simulated/shuttle/plating/airless, -/area/tether_away/debrisfield/explored) -"aj" = ( +/area/submap/debrisfield/misc_debris) +"ad" = ( +/turf/simulated/shuttle/wall/voidcraft, +/area/submap/debrisfield/misc_debris) +"ae" = ( /obj/item/weapon/material/shard, /obj/item/weapon/material/shard, /obj/structure/grille/broken, /turf/simulated/shuttle/plating/airless, -/area/tether_away/debrisfield/explored) +/area/submap/debrisfield/misc_debris) +"ag" = ( +/obj/structure/lattice, +/turf/space, +/area/submap/debrisfield/misc_debris) +"ah" = ( +/turf/space, +/area/submap/debrisfield/misc_debris) +"ai" = ( +/turf/simulated/shuttle/floor/black/airless, +/area/submap/debrisfield/misc_debris) +"aj" = ( +/obj/structure/table/steel, +/obj/item/clothing/head/pilot, +/obj/random/unidentified_medicine/drug_den, +/turf/simulated/shuttle/floor/black/airless, +/area/submap/debrisfield/misc_debris) "ak" = ( +/turf/simulated/shuttle/wall/voidcraft/hard_corner, +/area/submap/debrisfield/misc_debris) +"al" = ( +/obj/structure/table/steel, +/obj/item/clothing/head/pilot, +/turf/simulated/shuttle/floor/black/airless, +/area/submap/debrisfield/misc_debris) +"am" = ( +/obj/structure/frame/computer, +/turf/simulated/shuttle/floor/black/airless, +/area/submap/debrisfield/misc_debris) +"an" = ( +/obj/tether_away_spawner/debrisfield/carp/hard, +/turf/space, +/area/submap/debrisfield/misc_debris) +"ao" = ( +/obj/structure/bed/chair/comfy/blue{ + icon_state = "comfychair_preview"; + dir = 1 + }, +/turf/simulated/shuttle/floor/black/airless, +/area/submap/debrisfield/misc_debris) +"ap" = ( /obj/machinery/light{ dir = 1 }, /obj/structure/table/rack/shelf, /obj/item/device/suit_cooling_unit, /turf/simulated/shuttle/floor/black/airless, -/area/tether_away/debrisfield/explored) -"al" = ( -/obj/structure/lattice, -/turf/space, -/area/tether_away/debrisfield/explored) -"am" = ( +/area/submap/debrisfield/misc_debris) +"aq" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/full, +/obj/structure/window/reinforced{ + dir = 4 + }, +/turf/simulated/shuttle/plating/airless, +/area/submap/debrisfield/misc_debris) +"ar" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/full, +/obj/structure/window/reinforced{ + dir = 8 + }, +/turf/simulated/shuttle/plating/airless, +/area/submap/debrisfield/misc_debris) +"as" = ( /obj/machinery/light{ dir = 1 }, @@ -69,16 +98,17 @@ /obj/item/clothing/suit/space/void/pilot, /obj/item/clothing/head/helmet/space/void/pilot, /turf/simulated/shuttle/floor/black/airless, -/area/tether_away/debrisfield/explored) -"an" = ( +/area/submap/debrisfield/misc_debris) +"at" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/full, +/turf/simulated/shuttle/plating/airless, +/area/submap/debrisfield/misc_debris) +"au" = ( /obj/machinery/door/airlock/voidcraft, /turf/simulated/shuttle/floor/black/airless, -/area/tether_away/debrisfield/explored) -"ao" = ( -/obj/effect/floor_decal/industrial/outline/blue, -/turf/simulated/shuttle/floor/darkred/airless, -/area/tether_away/debrisfield/explored) -"ap" = ( +/area/submap/debrisfield/misc_debris) +"av" = ( /obj/structure/table/rack/shelf, /obj/item/clothing/mask/breath, /obj/item/clothing/mask/breath, @@ -89,12 +119,12 @@ /obj/item/weapon/tank/emergency/oxygen/engi, /obj/item/weapon/tank/emergency/oxygen/engi, /turf/simulated/shuttle/floor/black/airless, -/area/tether_away/debrisfield/explored) -"aq" = ( +/area/submap/debrisfield/misc_debris) +"aw" = ( /obj/structure/bed/chair/shuttle, /turf/simulated/shuttle/floor/black/airless, -/area/tether_away/debrisfield/explored) -"ar" = ( +/area/submap/debrisfield/misc_debris) +"ax" = ( /obj/machinery/light{ icon_state = "tube1"; dir = 8 @@ -103,8 +133,8 @@ pixel_x = -32 }, /turf/simulated/shuttle/floor/black/airless, -/area/tether_away/debrisfield/explored) -"as" = ( +/area/submap/debrisfield/misc_debris) +"ay" = ( /obj/machinery/light{ icon_state = "tube1"; dir = 4 @@ -113,49 +143,45 @@ pixel_x = 32 }, /turf/simulated/shuttle/floor/black/airless, -/area/tether_away/debrisfield/explored) -"at" = ( +/area/submap/debrisfield/misc_debris) +"az" = ( /obj/machinery/sleeper{ dir = 8 }, /turf/simulated/shuttle/floor/black/airless, -/area/tether_away/debrisfield/explored) -"au" = ( +/area/submap/debrisfield/misc_debris) +"aA" = ( /obj/machinery/sleep_console, /turf/simulated/shuttle/floor/black/airless, -/area/tether_away/debrisfield/explored) -"av" = ( +/area/submap/debrisfield/misc_debris) +"aB" = ( /obj/structure/bed/chair/shuttle{ dir = 1 }, /turf/simulated/shuttle/floor/black/airless, -/area/tether_away/debrisfield/explored) -"aw" = ( +/area/submap/debrisfield/misc_debris) +"aC" = ( /obj/effect/floor_decal/industrial/outline/red, /turf/simulated/shuttle/floor/darkred/airless, -/area/tether_away/debrisfield/explored) -"ax" = ( +/area/submap/debrisfield/misc_debris) +"aD" = ( /obj/effect/floor_decal/industrial/outline/yellow, /obj/machinery/space_heater, /turf/simulated/shuttle/floor/darkred/airless, -/area/tether_away/debrisfield/explored) -"ay" = ( -/obj/structure/table/steel, -/obj/item/clothing/head/pilot, -/obj/random/unidentified_medicine/drug_den, -/turf/simulated/shuttle/floor/black/airless, -/area/tether_away/debrisfield/explored) -"az" = ( -/obj/structure/closet/crate/medical, -/obj/random/unidentified_medicine/old_medicine, -/obj/random/unidentified_medicine/old_medicine, -/obj/random/unidentified_medicine/old_medicine, -/obj/random/unidentified_medicine/fresh_medicine, -/obj/random/unidentified_medicine/fresh_medicine, -/obj/random/unidentified_medicine/combat_medicine, +/area/submap/debrisfield/misc_debris) +"aE" = ( +/obj/effect/floor_decal/industrial/outline/blue, /turf/simulated/shuttle/floor/darkred/airless, -/area/tether_away/debrisfield/explored) -"aA" = ( +/area/submap/debrisfield/misc_debris) +"aF" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/full, +/obj/machinery/atmospherics/pipe/simple/visible/yellow{ + dir = 6 + }, +/turf/simulated/shuttle/plating/airless, +/area/submap/debrisfield/misc_debris) +"aG" = ( /obj/effect/floor_decal/industrial/warning{ icon_state = "warning"; dir = 9 @@ -166,21 +192,15 @@ id_tag = "expshuttle_docker_pump_out_internal" }, /turf/simulated/shuttle/floor/black/airless, -/area/tether_away/debrisfield/explored) -"aB" = ( +/area/submap/debrisfield/misc_debris) +"aH" = ( /obj/effect/floor_decal/industrial/warning{ icon_state = "warning"; dir = 1 }, /turf/simulated/shuttle/floor/black/airless, -/area/tether_away/debrisfield/explored) -"aC" = ( -/obj/machinery/atmospherics/pipe/simple/visible/cyan{ - dir = 10 - }, -/turf/simulated/shuttle/wall/voidcraft, -/area/tether_away/debrisfield/explored) -"aD" = ( +/area/submap/debrisfield/misc_debris) +"aI" = ( /obj/effect/floor_decal/industrial/warning{ dir = 5 }, @@ -190,15 +210,21 @@ id_tag = "expshuttle_vent" }, /turf/simulated/shuttle/floor/black/airless, -/area/tether_away/debrisfield/explored) -"aE" = ( +/area/submap/debrisfield/misc_debris) +"aJ" = ( +/obj/machinery/atmospherics/pipe/simple/visible/cyan{ + dir = 10 + }, +/turf/simulated/shuttle/wall/voidcraft, +/area/submap/debrisfield/misc_debris) +"aK" = ( /obj/machinery/atmospherics/pipe/manifold/visible/yellow{ dir = 8 }, /obj/machinery/door/airlock/voidcraft/vertical, /turf/simulated/shuttle/floor/black/airless, -/area/tether_away/debrisfield/explored) -"aF" = ( +/area/submap/debrisfield/misc_debris) +"aL" = ( /obj/effect/floor_decal/industrial/warning{ icon_state = "warning"; dir = 8 @@ -209,8 +235,8 @@ id_tag = "expshuttle_docker_pump_out_internal" }, /turf/simulated/shuttle/floor/black/airless, -/area/tether_away/debrisfield/explored) -"aG" = ( +/area/submap/debrisfield/misc_debris) +"aM" = ( /obj/effect/floor_decal/industrial/warning{ icon_state = "warning"; dir = 4 @@ -221,28 +247,28 @@ id_tag = "expshuttle_vent" }, /turf/simulated/shuttle/floor/black/airless, -/area/tether_away/debrisfield/explored) -"aH" = ( +/area/submap/debrisfield/misc_debris) +"aN" = ( /obj/machinery/atmospherics/pipe/manifold/visible/cyan{ dir = 4 }, /obj/machinery/door/airlock/voidcraft/vertical, /turf/simulated/shuttle/floor/black/airless, -/area/tether_away/debrisfield/explored) -"aI" = ( -/obj/machinery/atmospherics/pipe/manifold/visible/yellow{ - dir = 8 - }, -/turf/simulated/shuttle/wall/voidcraft, -/area/tether_away/debrisfield/explored) -"aJ" = ( +/area/submap/debrisfield/misc_debris) +"aO" = ( /obj/effect/floor_decal/industrial/warning{ icon_state = "warning"; dir = 8 }, /turf/simulated/shuttle/floor/black/airless, -/area/tether_away/debrisfield/explored) -"aK" = ( +/area/submap/debrisfield/misc_debris) +"aP" = ( +/obj/machinery/atmospherics/pipe/manifold/visible/yellow{ + dir = 8 + }, +/turf/simulated/shuttle/wall/voidcraft, +/area/submap/debrisfield/misc_debris) +"aQ" = ( /obj/effect/floor_decal/industrial/warning{ dir = 10 }, @@ -252,22 +278,12 @@ id_tag = "expshuttle_docker_pump_out_internal" }, /turf/simulated/shuttle/floor/black/airless, -/area/tether_away/debrisfield/explored) -"aL" = ( +/area/submap/debrisfield/misc_debris) +"aR" = ( /obj/effect/floor_decal/industrial/warning, /turf/simulated/shuttle/floor/black/airless, -/area/tether_away/debrisfield/explored) -"aM" = ( -/obj/machinery/atmospherics/pipe/manifold/visible/cyan{ - dir = 4 - }, -/turf/simulated/shuttle/wall/voidcraft, -/area/tether_away/debrisfield/explored) -"aN" = ( -/obj/machinery/door/airlock/voidcraft/vertical, -/turf/simulated/shuttle/floor/black, -/area/tether_away/debrisfield/explored) -"aO" = ( +/area/submap/debrisfield/misc_debris) +"aS" = ( /obj/effect/floor_decal/industrial/warning{ dir = 6 }, @@ -281,39 +297,57 @@ id_tag = "expshuttle_vent" }, /turf/simulated/shuttle/floor/black/airless, -/area/tether_away/debrisfield/explored) -"aP" = ( -/obj/machinery/atmospherics/pipe/simple/visible/yellow{ - dir = 10 +/area/submap/debrisfield/misc_debris) +"aT" = ( +/obj/machinery/atmospherics/pipe/manifold/visible/cyan{ + dir = 4 }, -/turf/simulated/shuttle/wall/voidcraft/hard_corner, -/area/tether_away/debrisfield/explored) -"aQ" = ( +/turf/simulated/shuttle/wall/voidcraft, +/area/submap/debrisfield/misc_debris) +"aU" = ( +/obj/machinery/door/airlock/voidcraft/vertical, +/turf/simulated/shuttle/floor/black, +/area/submap/debrisfield/misc_debris) +"aV" = ( /obj/effect/floor_decal/industrial/warning/corner{ icon_state = "warningcorner"; dir = 1 }, /turf/simulated/shuttle/floor/black/airless, -/area/tether_away/debrisfield/explored) -"aR" = ( +/area/submap/debrisfield/misc_debris) +"aW" = ( +/obj/machinery/atmospherics/pipe/simple/visible/yellow{ + dir = 10 + }, +/turf/simulated/shuttle/wall/voidcraft/hard_corner, +/area/submap/debrisfield/misc_debris) +"aX" = ( /obj/machinery/atmospherics/pipe/tank/air{ dir = 4 }, /turf/simulated/shuttle/floor/darkred/airless, -/area/tether_away/debrisfield/explored) -"aS" = ( -/obj/machinery/atmospherics/pipe/simple/visible/cyan{ - dir = 9 - }, -/turf/simulated/shuttle/wall/voidcraft, -/area/tether_away/debrisfield/explored) -"aT" = ( +/area/submap/debrisfield/misc_debris) +"aY" = ( /obj/machinery/atmospherics/pipe/simple/visible/cyan{ dir = 4 }, /turf/simulated/shuttle/floor/darkred/airless, -/area/tether_away/debrisfield/explored) -"aU" = ( +/area/submap/debrisfield/misc_debris) +"aZ" = ( +/obj/machinery/atmospherics/pipe/simple/visible/cyan{ + dir = 9 + }, +/turf/simulated/shuttle/wall/voidcraft, +/area/submap/debrisfield/misc_debris) +"ba" = ( +/obj/machinery/light, +/obj/effect/floor_decal/industrial/warning/corner, +/obj/effect/floor_decal/industrial/warning/corner{ + dir = 8 + }, +/turf/simulated/shuttle/floor/black/airless, +/area/submap/debrisfield/misc_debris) +"bb" = ( /obj/machinery/atmospherics/unary/vent_pump/high_volume/wall_mounted{ dir = 1; frequency = 1380; @@ -321,64 +355,18 @@ power_rating = 20000 }, /turf/simulated/shuttle/wall/voidcraft, -/area/tether_away/debrisfield/explored) -"aV" = ( -/obj/machinery/light, -/obj/effect/floor_decal/industrial/warning/corner, -/obj/effect/floor_decal/industrial/warning/corner{ - dir = 8 - }, -/turf/simulated/shuttle/floor/black/airless, -/area/tether_away/debrisfield/explored) -"aW" = ( -/obj/tether_away_spawner/debrisfield/carp/hard, -/turf/space, -/area/tether_away/debrisfield/explored) -"aX" = ( -/obj/structure/shuttle/engine/propulsion, -/turf/simulated/shuttle/plating/airless, -/area/tether_away/debrisfield/explored) -"aY" = ( -/obj/machinery/door/airlock/multi_tile/metal, -/turf/simulated/shuttle/floor/black/airless, -/area/tether_away/debrisfield/explored) -"aZ" = ( -/turf/simulated/mineral/floor/vacuum, -/area/tether_away/debrisfield/explored) -"ba" = ( -/obj/effect/immovablerod, -/turf/simulated/mineral/floor/vacuum, -/area/tether_away/debrisfield/explored) -"bb" = ( -/obj/structure/grille, -/obj/structure/window/reinforced/full, -/obj/structure/window/reinforced{ - dir = 4 - }, -/turf/simulated/shuttle/plating/airless, -/area/tether_away/debrisfield/explored) +/area/submap/debrisfield/misc_debris) "bc" = ( -/obj/structure/grille, -/obj/structure/window/reinforced/full, -/obj/structure/window/reinforced{ - dir = 8 - }, -/turf/simulated/shuttle/plating/airless, -/area/tether_away/debrisfield/explored) +/obj/structure/closet/crate/medical, +/obj/random/unidentified_medicine/old_medicine, +/obj/random/unidentified_medicine/old_medicine, +/obj/random/unidentified_medicine/old_medicine, +/obj/random/unidentified_medicine/fresh_medicine, +/obj/random/unidentified_medicine/fresh_medicine, +/obj/random/unidentified_medicine/combat_medicine, +/turf/simulated/shuttle/floor/darkred/airless, +/area/submap/debrisfield/misc_debris) "bd" = ( -/obj/structure/grille, -/obj/structure/window/reinforced/full, -/turf/simulated/shuttle/plating/airless, -/area/tether_away/debrisfield/explored) -"be" = ( -/obj/structure/grille, -/obj/structure/window/reinforced/full, -/obj/machinery/atmospherics/pipe/simple/visible/yellow{ - dir = 6 - }, -/turf/simulated/shuttle/plating/airless, -/area/tether_away/debrisfield/explored) -"bg" = ( /obj/item/weapon/storage/mre/random, /obj/item/weapon/storage/mre/random, /obj/item/weapon/storage/mre/random, @@ -387,493 +375,395 @@ /obj/item/weapon/storage/mre/random, /obj/structure/closet/crate, /turf/simulated/shuttle/floor/darkred/airless, -/area/tether_away/debrisfield/explored) -"bh" = ( +/area/submap/debrisfield/misc_debris) +"be" = ( /obj/tether_away_spawner/debrisfield/carp, /turf/space, -/area/tether_away/debrisfield/explored) +/area/space) +"bf" = ( +/turf/template_noop, +/area/space) +"bg" = ( +/obj/structure/lattice, +/turf/space, +/area/tether_away/debrisfield/shuttle_buffer) +"bh" = ( +/turf/space, +/area/tether_away/debrisfield/shuttle_buffer) "bi" = ( +/obj/machinery/door/airlock/multi_tile/metal, +/turf/simulated/shuttle/floor/black/airless, +/area/submap/debrisfield/misc_debris) +"bj" = ( +/obj/structure/shuttle/engine/propulsion, +/turf/simulated/shuttle/plating/airless, +/area/submap/debrisfield/misc_debris) +"bk" = ( +/turf/simulated/mineral/floor/vacuum, +/area/tether_away/debrisfield/shuttle_buffer) +"bl" = ( +/obj/effect/immovablerod, +/turf/simulated/mineral/floor/vacuum, +/area/tether_away/debrisfield/shuttle_buffer) +"bm" = ( /obj/structure/loot_pile/mecha/durand, /turf/simulated/mineral/floor/vacuum, -/area/tether_away/debrisfield/explored) +/area/tether_away/debrisfield/shuttle_buffer) (1,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +bf +bf +bf +bf +bf +bf +bf +bf +ad +ad +bf +bf +bf +bf +bf +bf +bf +bf +bf "} (2,1,1) = {" +ab aa -aa -aa -aa -aa -aa -aa -aa -aa -ac -ac -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +ad +ar +ad +ar +ad +ad +ad +aC +ah +ag +aU +ad +ad +ak +bj +bf +bf "} (3,1,1) = {" aa -ab -aa -ac +ad +ak +as +ad +ai +ax +az +ad +aD +ah +ah +aH +aR bc -ac -bc -ac -ac -ac -aw -aa -al -aN -ac -ac -af -aX -aa -aa -aa -aa +ad +bj +bf +bf "} (4,1,1) = {" -aa -aa +bf ac -af -am -ac -ad -ar -at -ac -ax -aa -aa -aB -aL -az -ac -aX -aa -aa -aa -aa -"} -(5,1,1) = {" -aa -aa -ai -ae -ad -ac -ap -ad -au -ac -ao al -al -aB -aL -bg -ac -aX -aa -aa -aa -aa -"} -(6,1,1) = {" -aa -aa ai -ag -ah -bd -aq ad av -aa -aa -al -aa -aB -aV -af -ac -aa -aa -aa -aa -aa -"} -(7,1,1) = {" -aa -aa -aj -ad -ad -an -ad -ad -ad -aa -aa -bd -aJ -aQ -aL -aY -aa -aa -bh -aa -aa -aa -"} -(8,1,1) = {" -aa -aa -al -aa -aa -al -aa -al -al -aa -aa -an -ad -ad -aL -ad -aa -aa -aa -aa -aa -aa -"} -(9,1,1) = {" -aa -aa -aa -aW -aa -aa -aa -aa -aa -aa -aa -aa -al -aa -aa -al -aa -aa -aa -aa -aa -aa -"} -(10,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -al -aa -aa -aa -aa -aa -aa -"} -(11,1,1) = {" -aa -aa -al -al -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aZ -ba -aa -aa -"} -(12,1,1) = {" -aa ai +aA ad -ah +aE +ag +ag +aH +aR bd -aa ad +bj +bf +bf +"} +(5,1,1) = {" +bf +ac +am +ao +at +aw +ai +aB +ah +ah +ag +ah +aH +ba +ak ad -aa -aa -aa -aa -al -aa -aa -aa -aa -aa -aa +bf +bf +bf +"} +(6,1,1) = {" +bf +ae +ai +ai +au +ai +ai +ai +ah +ah +at +aO +aV +aR bi aa aa -"} -(13,1,1) = {" -aa -ai -ay -ad -ac -aa -aq -al -al -al -aa -al -al -aa -al -aa -aa -aa -aa -aa -aa -aa -"} -(14,1,1) = {" -aa -ac -af -ak -ac -aa -al -al -av -ac be -aE -aI -aI -aU -aa -aa -aa -aa -aa -aa -aa +bf "} -(15,1,1) = {" +(7,1,1) = {" +bf +ag +ah +ah +ag +ah +ag +ag +ah +ah +au +ai +ai +aR +ai aa aa -ac -bb -ac -aa -aa -ad -av -ac -aA -aF -aK -aP -aU aa +bf +"} +(8,1,1) = {" +bf +ah +an +ah +ah +ah +ah +ah +ah +ah +ah +ag +ah +ah +bg bh aa aa -aa -aa -aa +bf "} -(16,1,1) = {" -aa -aa -aa -aa -aa -aa -aq -as -av +(9,1,1) = {" +bf +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +bg +bh +bh +bh +bh +"} +(10,1,1) = {" +bf +ag +ag +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +bh +bh +bh +bk +bl +"} +(11,1,1) = {" ac +ai +ao +at +ah +ai +ai +ah +ah +ah +ah +ag +ah +ah +bh +bh +bh +bh +bm +"} +(12,1,1) = {" +ac +aj +ai +ad +ah +aw +ag +ag +ag +ah +ag +ag +ah +ag +bh +bh +aa +aa +bf +"} +(13,1,1) = {" +ad +ak +ap +ad +ah +ag +ag aB ad -aL -aR -ac -aX -aa -aa -aa -aa -aa -aa -"} -(17,1,1) = {" -aa -aa -aa -aa -aa -aa +aF +aK +aP +aP bb -ac -ac -ac -aD -aG -aO -aT -ac -aX -aa -aa -aa -aa aa aa +bf +bf +bf "} -(18,1,1) = {" +(14,1,1) = {" +bf +ad +aq +ad +ah +ah +ai +aB +ad +aG +aL +aQ +aW +bb aa -aa -aa -aa -aa -aa -aa -aa -aa -ac -aC +be +bf +bf +bf +"} +(15,1,1) = {" +bf +bf +bf +bf +bf +aw +ay +aB +ad aH +ai +aR +aX +ad +bj +bf +bf +bf +bf +"} +(16,1,1) = {" +bf +bf +bf +bf +bf +aq +ad +ad +ad +aI aM aS -af -aX -aa -aa -aa -aa -aa -aa +aY +ad +bj +bf +bf +bf +bf "} -(19,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(20,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +(17,1,1) = {" +bf +bf +bf +bf +bf +bf +bf +bf +ad +aJ +aN +aT +aZ +ak +bj +bf +bf +bf +bf "} diff --git a/maps/submaps/pois_vr/debris_field/ship_med_crashed.dmm b/maps/submaps/pois_vr/debris_field/ship_med_crashed.dmm index b0ae668a84..f47ee1ea03 100644 --- a/maps/submaps/pois_vr/debris_field/ship_med_crashed.dmm +++ b/maps/submaps/pois_vr/debris_field/ship_med_crashed.dmm @@ -1,184 +1,187 @@ //MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE "a" = ( /turf/template_noop, -/area/tether_away/debrisfield/explored) +/area/space) "b" = ( /turf/simulated/mineral/vacuum, -/area/tether_away/debrisfield/explored) +/area/space) "c" = ( -/turf/simulated/shuttle/wall, -/area/tether_away/debrisfield/explored) +/obj/tether_away_spawner/debrisfield/carp, +/turf/template_noop, +/area/tether_away/debrisfield/shuttle_buffer) "d" = ( -/turf/simulated/mineral/floor/vacuum, -/area/tether_away/debrisfield/explored) +/turf/simulated/mineral/vacuum, +/area/submap/debrisfield/misc_debris) "e" = ( +/turf/simulated/shuttle/wall, +/area/submap/debrisfield/misc_debris) +"f" = ( /obj/structure/shuttle/window, /obj/structure/grille, /turf/simulated/shuttle/plating/airless, -/area/tether_away/debrisfield/explored) -"f" = ( -/turf/simulated/shuttle/floor/airless, -/area/tether_away/debrisfield/explored) +/area/submap/debrisfield/misc_debris) "g" = ( /obj/effect/decal/cleanable/generic, /turf/simulated/mineral/floor/vacuum, -/area/tether_away/debrisfield/explored) +/area/submap/debrisfield/misc_debris) "h" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/salvageable/personal, /turf/simulated/shuttle/plating/airless, -/area/tether_away/debrisfield/explored) +/area/submap/debrisfield/misc_debris) "i" = ( /obj/structure/salvageable/implant_container, /turf/simulated/shuttle/floor/airless, -/area/tether_away/debrisfield/explored) +/area/submap/debrisfield/misc_debris) "j" = ( +/turf/simulated/shuttle/floor/airless, +/area/submap/debrisfield/misc_debris) +"k" = ( /obj/structure/closet/secure_closet/sar{ name = "sar locker"; req_access = list() }, /turf/simulated/shuttle/floor/airless, -/area/tether_away/debrisfield/explored) -"k" = ( +/area/submap/debrisfield/misc_debris) +"l" = ( /obj/structure/shuttle/engine/propulsion{ dir = 4 }, /turf/simulated/shuttle/plating/airless, -/area/tether_away/debrisfield/explored) -"l" = ( +/area/submap/debrisfield/misc_debris) +"m" = ( +/obj/item/weapon/material/shard/shrapnel, +/turf/simulated/mineral/floor/vacuum, +/area/submap/debrisfield/misc_debris) +"n" = ( /obj/effect/decal/cleanable/dirt, /mob/living/bot/medbot{ name = "Dr. Crusty" }, /turf/simulated/shuttle/plating/airless, -/area/tether_away/debrisfield/explored) -"m" = ( +/area/submap/debrisfield/misc_debris) +"o" = ( /obj/structure/table/standard, /obj/random/unidentified_medicine/fresh_medicine, /obj/random/unidentified_medicine/fresh_medicine, /obj/random/unidentified_medicine/old_medicine, /turf/simulated/shuttle/floor/airless, -/area/tether_away/debrisfield/explored) -"n" = ( +/area/submap/debrisfield/misc_debris) +"p" = ( +/obj/item/stack/material/steel, +/turf/simulated/mineral/floor/vacuum, +/area/submap/debrisfield/misc_debris) +"q" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/generic, /turf/simulated/shuttle/plating/airless, -/area/tether_away/debrisfield/explored) -"o" = ( +/area/submap/debrisfield/misc_debris) +"r" = ( +/obj/effect/decal/cleanable/dirt, +/obj/random/firstaid, +/turf/simulated/shuttle/plating/airless, +/area/submap/debrisfield/misc_debris) +"s" = ( /obj/structure/table/standard, /obj/random/unidentified_medicine/fresh_medicine, /obj/random/unidentified_medicine/fresh_medicine, /obj/random/unidentified_medicine/viral, /turf/simulated/shuttle/floor/airless, -/area/tether_away/debrisfield/explored) -"p" = ( +/area/submap/debrisfield/misc_debris) +"t" = ( /obj/structure/closet/secure_closet/medical3{ name = "medical locker"; req_access = list() }, /turf/simulated/shuttle/floor/airless, -/area/tether_away/debrisfield/explored) -"q" = ( +/area/submap/debrisfield/misc_debris) +"u" = ( +/obj/item/stack/rods, +/turf/simulated/mineral/floor/vacuum, +/area/submap/debrisfield/misc_debris) +"v" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/molten_item, /turf/simulated/shuttle/plating/airless, -/area/tether_away/debrisfield/explored) -"r" = ( +/area/submap/debrisfield/misc_debris) +"w" = ( +/obj/effect/decal/cleanable/dirt, +/turf/simulated/shuttle/wall, +/area/submap/debrisfield/misc_debris) +"x" = ( +/turf/simulated/shuttle/wall/hard_corner, +/area/submap/debrisfield/misc_debris) +"y" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/blood/oil, /turf/simulated/shuttle/plating/airless, -/area/tether_away/debrisfield/explored) -"s" = ( +/area/submap/debrisfield/misc_debris) +"z" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/remains/posi, /turf/simulated/shuttle/plating/airless, -/area/tether_away/debrisfield/explored) -"t" = ( +/area/submap/debrisfield/misc_debris) +"A" = ( /obj/machinery/door/unpowered/shuttle, /turf/simulated/shuttle/floor/airless, -/area/tether_away/debrisfield/explored) -"u" = ( +/area/submap/debrisfield/misc_debris) +"B" = ( +/obj/effect/decal/cleanable/dirt, +/obj/item/stack/material/steel, +/turf/simulated/shuttle/plating/airless, +/area/submap/debrisfield/misc_debris) +"C" = ( +/obj/effect/decal/cleanable/dirt, +/obj/item/weapon/storage/firstaid/adv, +/turf/simulated/shuttle/plating/airless, +/area/submap/debrisfield/misc_debris) +"D" = ( +/obj/effect/decal/cleanable/dirt, +/obj/item/stack/rods, +/turf/simulated/shuttle/plating/airless, +/area/submap/debrisfield/misc_debris) +"E" = ( /obj/structure/closet/emcloset, /turf/simulated/shuttle/floor/airless, -/area/tether_away/debrisfield/explored) -"v" = ( +/area/submap/debrisfield/misc_debris) +"F" = ( /obj/structure/table/rack, /turf/simulated/shuttle/floor/airless, -/area/tether_away/debrisfield/explored) -"w" = ( +/area/submap/debrisfield/misc_debris) +"G" = ( +/turf/simulated/mineral/floor/vacuum, +/area/submap/debrisfield/misc_debris) +"H" = ( +/obj/effect/decal/cleanable/dirt, +/obj/item/weapon/material/shard/shrapnel, +/turf/simulated/shuttle/plating/airless, +/area/submap/debrisfield/misc_debris) +"I" = ( /obj/effect/decal/cleanable/generic, /turf/simulated/shuttle/floor/airless, -/area/tether_away/debrisfield/explored) -"x" = ( +/area/submap/debrisfield/misc_debris) +"J" = ( +/obj/item/weapon/material/shard/shrapnel, +/turf/simulated/shuttle/floor/airless, +/area/submap/debrisfield/misc_debris) +"K" = ( /obj/structure/dispenser/oxygen{ oxygentanks = 7 }, /turf/simulated/shuttle/floor/airless, -/area/tether_away/debrisfield/explored) -"y" = ( +/area/submap/debrisfield/misc_debris) +"L" = ( /obj/effect/decal/cleanable/blood/oil, /turf/simulated/shuttle/floor/airless, -/area/tether_away/debrisfield/explored) -"z" = ( +/area/submap/debrisfield/misc_debris) +"M" = ( /obj/structure/salvageable/data, /turf/simulated/shuttle/floor/airless, -/area/tether_away/debrisfield/explored) -"A" = ( +/area/submap/debrisfield/misc_debris) +"N" = ( /obj/machinery/suit_cycler/medical, /turf/simulated/shuttle/floor/airless, -/area/tether_away/debrisfield/explored) -"C" = ( -/obj/effect/decal/cleanable/dirt, -/obj/random/firstaid, -/turf/simulated/shuttle/plating/airless, -/area/tether_away/debrisfield/explored) -"D" = ( -/obj/effect/decal/cleanable/dirt, -/obj/item/weapon/storage/firstaid/adv, -/turf/simulated/shuttle/plating/airless, -/area/tether_away/debrisfield/explored) -"E" = ( -/obj/item/weapon/material/shard/shrapnel, -/turf/simulated/mineral/floor/vacuum, -/area/tether_away/debrisfield/explored) -"F" = ( -/obj/item/stack/material/steel, -/turf/simulated/mineral/floor/vacuum, -/area/tether_away/debrisfield/explored) -"G" = ( -/obj/item/stack/rods, -/turf/simulated/mineral/floor/vacuum, -/area/tether_away/debrisfield/explored) -"H" = ( -/obj/effect/decal/cleanable/dirt, -/obj/item/stack/material/steel, -/turf/simulated/shuttle/plating/airless, -/area/tether_away/debrisfield/explored) -"I" = ( -/obj/effect/decal/cleanable/dirt, -/obj/item/stack/rods, -/turf/simulated/shuttle/plating/airless, -/area/tether_away/debrisfield/explored) -"J" = ( -/obj/effect/decal/cleanable/dirt, -/obj/item/weapon/material/shard/shrapnel, -/turf/simulated/shuttle/plating/airless, -/area/tether_away/debrisfield/explored) -"K" = ( -/obj/item/weapon/material/shard/shrapnel, -/turf/simulated/shuttle/floor/airless, -/area/tether_away/debrisfield/explored) -"L" = ( -/obj/tether_away_spawner/debrisfield/carp, -/turf/template_noop, -/area/tether_away/debrisfield/explored) -"M" = ( -/turf/simulated/shuttle/wall/hard_corner, -/area/tether_away/debrisfield/explored) -"Q" = ( -/obj/effect/decal/cleanable/dirt, -/turf/simulated/shuttle/wall, -/area/tether_away/debrisfield/explored) +/area/submap/debrisfield/misc_debris) (1,1,1) = {" a @@ -187,16 +190,14 @@ a a a a -a -a -a -a -a -a -a -a -a -a +b +b +b +b +b +b +b +b a a a @@ -206,239 +207,217 @@ a a a a -a -a -a -a b b b b +d +d +d +d +d +d b b b b a -a -a -a -a "} (3,1,1) = {" a -a -a -a b b b +d +d +d +d +d +d +d +d +d +d +d +d b b -b -b -b -b -b -b -b -b -b -a -a "} (4,1,1) = {" -a -a b b +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -a "} (5,1,1) = {" -a b +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -a "} (6,1,1) = {" -a b +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -a "} (7,1,1) = {" -a b +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -a "} (8,1,1) = {" -a b +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -a "} (9,1,1) = {" -a b +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -a "} (10,1,1) = {" -a b +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -a "} (11,1,1) = {" -a +b +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d b b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -a "} (12,1,1) = {" -a -b -b -b -b -b -b -b -b -b -b -b -b -b b b +d +d +d +d +p +u +m +m +u +G +d +d b b b @@ -448,41 +427,37 @@ a a b b +e +g +m +q +v +y +B +C +H +g +e b -b -b -b -F -G -E -E -G -d -b -b -b -b -b +a a a "} (14,1,1) = {" a a -b -b -c -g -E +a +e +h n -q r -H +w +z +q D -J -g -c -b +I +L +e a a a @@ -492,19 +467,17 @@ a a a a -a -c -h -l -C -Q -s -n -I -w -y -c -a +e +e +e +e +x +j +j +j +J +M +e a a a @@ -514,19 +487,17 @@ a a a a -a -c -c -c -c -M -f -f -f -K -z -c -a +e +i +o +s +e +j +j +e +e +e +e a a a @@ -536,19 +507,17 @@ a a a a -a -c -i -m -o -c -f -f -c -c -c -c -a +e +j +j +j +j +j +j +E +K +N +e a a a @@ -558,19 +527,17 @@ a a a a -a -c f +j +j +j +e +j +j +j +j +j f -f -f -f -f -u -x -A -c -a a a a @@ -580,19 +547,17 @@ a a a a -a +f +j +j +j e +j +j +j +j +j f -f -f -c -f -f -f -f -f -e -a a a a @@ -602,19 +567,17 @@ a a a a -a e -f -f -f -c -f -f -f -f -f +k +k +t +e +A +e +F +F +F e -a a a a @@ -624,109 +587,39 @@ a a a a -a -c +e +e +e +e +e j -j -p -c -t -c -v -v -v -c -a +e +e +e +e +e a a a a "} (22,1,1) = {" -a -a -a -a -c -c -c -c -c -f -c -c -c -c c a a +e +l +l +l +x +A +x +l +l +l +e a a a -"} -(23,1,1) = {" -a -L -a -a -c -k -k -k -M -t -M -k -k -k -c -a -a -a -L -a -"} -(24,1,1) = {" -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -"} -(25,1,1) = {" -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a +c "} diff --git a/maps/submaps/pois_vr/debris_field/ship_mining_drone.dmm b/maps/submaps/pois_vr/debris_field/ship_mining_drone.dmm new file mode 100644 index 0000000000..bb029e9daa --- /dev/null +++ b/maps/submaps/pois_vr/debris_field/ship_mining_drone.dmm @@ -0,0 +1,752 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"aa" = ( +/turf/template_noop, +/area/space) +"ab" = ( +/turf/simulated/wall/rthull, +/area/submap/debrisfield/mining_drone_ship) +"ac" = ( +/obj/structure/window/plastitanium/full, +/obj/structure/window/plastitanium{ + dir = 1 + }, +/turf/simulated/floor/airless, +/area/submap/debrisfield/mining_drone_ship) +"ad" = ( +/obj/machinery/power/emitter/gyrotron/anchored{ + active = 1; + desc = "A heavy beam emitter modified for use in breaking apart ore-rich asteroids."; + dir = 1; + locked = 1; + mega_energy = 0.2; + name = "modified emitter"; + rate = 5; + req_access = list(-1) + }, +/obj/structure/cable/yellow{ + d2 = 2; + icon_state = "0-2" + }, +/turf/simulated/floor/airless, +/area/submap/debrisfield/mining_drone_ship) +"ae" = ( +/turf/simulated/mineral/vacuum, +/area/submap/debrisfield/mining_drone_ship) +"af" = ( +/obj/structure/cable/yellow{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/simulated/floor/airless, +/area/submap/debrisfield/mining_drone_ship) +"ag" = ( +/obj/structure/girder/reinforced, +/turf/simulated/floor/airless, +/area/submap/debrisfield/mining_drone_ship) +"ah" = ( +/obj/structure/prop{ + desc = "An array of conventional power storage units, for when the added charge longivity and cost of a SMES unit is unneded or impractical."; + icon = 'icons/obj/power.dmi'; + icon_state = "gridchecker_off"; + name = "capacitor bank" + }, +/obj/structure/cable/yellow{ + d2 = 4; + icon_state = "0-4" + }, +/turf/simulated/floor/airless, +/area/submap/debrisfield/mining_drone_ship) +"ai" = ( +/obj/structure/cable/yellow{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/obj/structure/cable/yellow{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/simulated/floor/airless, +/area/submap/debrisfield/mining_drone_ship) +"aj" = ( +/obj/machinery/door/blast/regular/open{ + dir = 4; + id = "drone_toggle" + }, +/obj/machinery/conveyor{ + operating = 1 + }, +/turf/simulated/floor/airless, +/area/submap/debrisfield/mining_drone_ship) +"ak" = ( +/obj/structure/prop{ + desc = "There are a number of what seem to be error messages on these screens, none intelligible."; + icon = 'icons/obj/mainframe.dmi'; + icon_state = "leftb"; + name = "console" + }, +/turf/simulated/floor/airless, +/area/submap/debrisfield/mining_drone_ship) +"al" = ( +/obj/structure/prop{ + desc = "This isn't going to be fixable."; + icon = 'icons/obj/mainframe.dmi'; + icon_state = "aimainframeb"; + name = "broken console" + }, +/obj/effect/map_effect/interval/effect_emitter/sparks, +/turf/simulated/floor/airless, +/area/submap/debrisfield/mining_drone_ship) +"am" = ( +/turf/simulated/mineral/vacuum, +/area/space) +"an" = ( +/turf/simulated/floor/airless, +/area/submap/debrisfield/mining_drone_ship) +"ao" = ( +/obj/machinery/conveyor{ + operating = 1 + }, +/turf/simulated/floor/airless, +/area/submap/debrisfield/mining_drone_ship) +"ap" = ( +/obj/structure/cable/yellow{ + d2 = 2; + icon_state = "0-2" + }, +/obj/machinery/power/terminal{ + dir = 8 + }, +/turf/simulated/floor/airless, +/area/submap/debrisfield/mining_drone_ship) +"aq" = ( +/mob/living/simple_mob/mechanical/hivebot/swarm, +/turf/simulated/floor/airless, +/area/submap/debrisfield/mining_drone_ship) +"ar" = ( +/obj/machinery/power/rtg/fake_gen{ + desc = "An array of conventional power storage units, for when the added charge longivity and cost of a SMES unit is unneded or impractical."; + icon = 'icons/obj/power.dmi'; + icon_state = "gridchecker_off"; + name = "capacitor bank"; + power_gen = 12000 + }, +/obj/structure/cable/yellow{ + d2 = 4; + icon_state = "0-4" + }, +/turf/simulated/floor/airless, +/area/submap/debrisfield/mining_drone_ship) +"as" = ( +/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/airless, +/area/submap/debrisfield/mining_drone_ship) +"at" = ( +/obj/structure/cable/yellow{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/simulated/floor/airless, +/area/submap/debrisfield/mining_drone_ship) +"au" = ( +/obj/machinery/door/blast/regular{ + id = "miner_poi_toggle" + }, +/obj/structure/catwalk, +/obj/structure/cable/yellow{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/simulated/floor/airless, +/area/submap/debrisfield/mining_drone_ship) +"av" = ( +/obj/machinery/conveyor{ + operating = 1 + }, +/obj/structure/catwalk, +/obj/structure/cable/yellow{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + plane = -45 + }, +/turf/simulated/floor/airless, +/area/submap/debrisfield/mining_drone_ship) +"aw" = ( +/obj/structure/cable/yellow{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/turf/simulated/floor/airless, +/area/submap/debrisfield/mining_drone_ship) +"ax" = ( +/obj/machinery/button/remote/blast_door{ + id = "miner_poi_toggle"; + name = "Power Compartment Access"; + pixel_y = -24 + }, +/turf/simulated/floor/airless, +/area/submap/debrisfield/mining_drone_ship) +"ay" = ( +/obj/machinery/door/airlock/maintenance_hatch, +/turf/simulated/wall/rthull, +/area/submap/debrisfield/mining_drone_ship) +"az" = ( +/obj/machinery/door/blast/regular/open{ + dir = 4; + id = "miner_poi_toggle" + }, +/obj/machinery/conveyor{ + operating = 1 + }, +/turf/simulated/floor/airless, +/area/submap/debrisfield/mining_drone_ship) +"aA" = ( +/obj/item/weapon/ore/gold, +/obj/item/weapon/ore/gold, +/turf/simulated/floor/airless, +/area/submap/debrisfield/mining_drone_ship) +"aB" = ( +/obj/item/weapon/ore, +/obj/item/weapon/ore/gold, +/obj/item/weapon/ore/iron, +/obj/item/weapon/ore, +/turf/simulated/floor/airless, +/area/submap/debrisfield/mining_drone_ship) +"aC" = ( +/obj/item/weapon/ore/diamond, +/obj/item/weapon/ore/gold, +/obj/item/weapon/ore/iron, +/obj/item/weapon/ore/iron, +/obj/item/weapon/ore/diamond, +/obj/machinery/artifact, +/turf/simulated/floor/airless, +/area/submap/debrisfield/mining_drone_ship) +"aD" = ( +/obj/item/weapon/ore/diamond, +/obj/item/weapon/ore/diamond, +/obj/item/weapon/ore/silver, +/obj/item/weapon/ore/silver, +/obj/item/weapon/ore/phoron, +/turf/simulated/floor/airless, +/area/submap/debrisfield/mining_drone_ship) +"aE" = ( +/obj/item/weapon/ore/diamond, +/obj/item/weapon/ore/diamond, +/obj/item/weapon/ore/iron, +/obj/item/weapon/ore/diamond, +/obj/item/weapon/ore/silver, +/obj/item/weapon/ore/silver, +/obj/item/weapon/ore/iron, +/turf/simulated/floor/airless, +/area/submap/debrisfield/mining_drone_ship) +"aF" = ( +/obj/item/weapon/ore/diamond, +/obj/item/weapon/ore/diamond, +/obj/item/weapon/ore/gold, +/obj/item/weapon/ore/iron, +/obj/item/weapon/ore/diamond, +/obj/item/weapon/ore/diamond, +/obj/item/weapon/ore/silver, +/obj/item/weapon/ore/coal, +/obj/item/weapon/ore/phoron, +/turf/simulated/floor/airless, +/area/submap/debrisfield/mining_drone_ship) +"aG" = ( +/obj/item/weapon/ore/diamond, +/obj/item/weapon/ore/diamond, +/obj/item/weapon/ore/gold, +/obj/item/weapon/ore/gold, +/obj/item/weapon/ore/iron, +/obj/item/weapon/ore/iron, +/obj/item/weapon/ore/diamond, +/obj/item/weapon/ore/silver, +/obj/item/weapon/ore/silver, +/obj/item/weapon/ore/coal, +/obj/item/weapon/ore/iron, +/obj/item/weapon/ore/iron, +/obj/item/weapon/ore/gold, +/turf/simulated/floor/airless, +/area/submap/debrisfield/mining_drone_ship) +"aH" = ( +/obj/item/weapon/ore/diamond, +/obj/item/weapon/ore/gold, +/obj/item/weapon/ore/silver, +/obj/item/weapon/ore/silver, +/obj/item/weapon/ore/iron, +/obj/item/weapon/ore/iron, +/obj/item/weapon/ore/phoron, +/turf/simulated/floor/airless, +/area/submap/debrisfield/mining_drone_ship) +"aI" = ( +/obj/item/weapon/ore/diamond, +/obj/item/weapon/ore/iron, +/mob/living/simple_mob/mechanical/hivebot/support/commander, +/turf/simulated/floor/airless, +/area/submap/debrisfield/mining_drone_ship) +"aJ" = ( +/obj/item/weapon/ore/diamond, +/obj/item/weapon/ore/diamond, +/obj/item/weapon/ore/gold, +/obj/item/weapon/ore/gold, +/obj/item/weapon/ore/iron, +/obj/item/weapon/ore/silver, +/obj/item/weapon/ore/silver, +/obj/item/weapon/ore/iron, +/obj/item/weapon/ore/gold, +/obj/item/weapon/ore/phoron, +/turf/simulated/floor/airless, +/area/submap/debrisfield/mining_drone_ship) +"aK" = ( +/obj/item/weapon/ore/diamond, +/obj/item/weapon/ore/diamond, +/obj/item/weapon/ore/diamond, +/obj/item/weapon/ore/diamond, +/obj/item/weapon/ore/diamond, +/obj/item/weapon/ore/gold, +/obj/item/weapon/ore/iron, +/obj/item/weapon/ore/iron, +/obj/item/weapon/ore/iron, +/obj/item/weapon/ore/iron, +/obj/item/weapon/ore/diamond, +/obj/item/weapon/ore/silver, +/obj/item/weapon/ore/silver, +/obj/item/weapon/ore/silver, +/obj/item/weapon/ore/coal, +/obj/item/weapon/ore/gold, +/obj/item/weapon/ore/iron, +/obj/item/weapon/ore/phoron, +/obj/item/weapon/ore/phoron, +/obj/item/weapon/ore/phoron, +/obj/item/weapon/ore/phoron, +/turf/simulated/floor/airless, +/area/submap/debrisfield/mining_drone_ship) +"aL" = ( +/obj/item/weapon/ore/diamond, +/obj/item/weapon/ore/diamond, +/obj/item/weapon/ore/diamond, +/obj/item/weapon/ore/diamond, +/obj/item/weapon/ore/diamond, +/obj/item/weapon/ore/diamond, +/obj/item/weapon/ore/gold, +/obj/item/weapon/ore/gold, +/obj/item/weapon/ore/gold, +/obj/item/weapon/ore/gold, +/obj/item/weapon/ore/iron, +/obj/item/weapon/ore/iron, +/obj/item/weapon/ore/iron, +/obj/item/weapon/ore/iron, +/obj/item/weapon/ore/diamond, +/obj/item/weapon/ore/silver, +/obj/item/weapon/ore/silver, +/obj/item/weapon/ore/silver, +/obj/item/weapon/ore/iron, +/obj/item/weapon/ore/iron, +/obj/item/weapon/ore/phoron, +/turf/simulated/floor/airless, +/area/submap/debrisfield/mining_drone_ship) +"aM" = ( +/obj/item/weapon/ore, +/obj/item/weapon/ore/diamond, +/obj/item/weapon/ore/diamond, +/obj/item/weapon/ore/diamond, +/obj/item/weapon/ore/gold, +/obj/item/weapon/ore/gold, +/obj/item/weapon/ore/gold, +/obj/item/weapon/ore/iron, +/obj/item/weapon/ore/iron, +/obj/item/weapon/ore/iron, +/obj/item/weapon/ore/iron, +/obj/item/weapon/ore/iron, +/obj/item/weapon/ore/iron, +/obj/item/weapon/ore/diamond, +/obj/item/weapon/ore/diamond, +/obj/item/weapon/ore/diamond, +/obj/item/weapon/ore/silver, +/obj/item/weapon/ore/silver, +/obj/item/weapon/ore/coal, +/obj/item/weapon/ore/coal, +/obj/item/weapon/ore/diamond, +/obj/item/weapon/ore/iron, +/obj/item/weapon/ore/gold, +/obj/item/weapon/ore/phoron, +/obj/item/weapon/ore/phoron, +/obj/item/weapon/ore, +/turf/simulated/floor/airless, +/area/submap/debrisfield/mining_drone_ship) +"aN" = ( +/obj/item/weapon/ore/diamond, +/obj/item/weapon/ore/diamond, +/obj/item/weapon/ore/diamond, +/obj/item/weapon/ore/gold, +/obj/item/weapon/ore/gold, +/obj/item/weapon/ore/gold, +/obj/item/weapon/ore/gold, +/obj/item/weapon/ore/iron, +/obj/item/weapon/ore/iron, +/obj/item/weapon/ore/iron, +/obj/item/weapon/ore/iron, +/obj/item/weapon/ore/diamond, +/obj/item/weapon/ore/diamond, +/obj/item/weapon/ore/diamond, +/obj/item/weapon/ore/diamond, +/obj/item/weapon/ore/silver, +/obj/item/weapon/ore/diamond, +/obj/item/weapon/ore/diamond, +/obj/item/weapon/ore/iron, +/obj/item/weapon/ore/iron, +/obj/item/weapon/ore/phoron, +/obj/item/weapon/ore/phoron, +/turf/simulated/floor/airless, +/area/submap/debrisfield/mining_drone_ship) +"aO" = ( +/obj/item/weapon/ore, +/obj/item/weapon/ore/diamond, +/obj/item/weapon/ore/diamond, +/obj/item/weapon/ore/diamond, +/obj/item/weapon/ore/gold, +/obj/item/weapon/ore/gold, +/obj/item/weapon/ore/gold, +/obj/item/weapon/ore/gold, +/obj/item/weapon/ore/iron, +/obj/item/weapon/ore/iron, +/obj/item/weapon/ore/iron, +/obj/item/weapon/ore/iron, +/obj/item/weapon/ore/diamond, +/obj/item/weapon/ore/diamond, +/obj/item/weapon/ore/silver, +/obj/item/weapon/ore/silver, +/obj/item/weapon/ore/silver, +/obj/item/weapon/ore/diamond, +/obj/item/weapon/ore/iron, +/obj/item/weapon/ore/gold, +/obj/item/weapon/ore/phoron, +/obj/item/weapon/ore/phoron, +/obj/item/weapon/ore/phoron, +/obj/item/weapon/ore/phoron, +/turf/simulated/floor/airless, +/area/submap/debrisfield/mining_drone_ship) +"aP" = ( +/obj/item/weapon/ore/diamond, +/obj/item/weapon/ore/diamond, +/obj/item/weapon/ore/diamond, +/obj/item/weapon/ore/diamond, +/obj/item/weapon/ore/diamond, +/obj/item/weapon/ore/gold, +/obj/item/weapon/ore/gold, +/obj/item/weapon/ore/iron, +/obj/item/weapon/ore/iron, +/obj/item/weapon/ore/silver, +/obj/item/weapon/ore/silver, +/obj/item/weapon/ore/silver, +/obj/item/weapon/ore/iron, +/obj/item/weapon/ore/iron, +/obj/item/weapon/ore, +/turf/simulated/floor/airless, +/area/submap/debrisfield/mining_drone_ship) +"aQ" = ( +/obj/item/weapon/ore/gold, +/obj/item/weapon/ore/iron, +/obj/structure/mob_spawner{ + density = 1; + desc = "A bizarre mess of robotic limbs, glowing microrefineries, and nanoassemblers gradually converting the pile of raw materials into active hivebots."; + destructible = 1; + icon = 'icons/obj/recycling.dmi'; + icon_state = "grinder-b1"; + name = "hivebot assembler"; + simultaneous_spawns = 6; + spawn_delay = 300; + spawn_types = list(/mob/living/simple_mob/mechanical/hivebot/swarm = 200, /mob/living/simple_mob/mechanical/hivebot/ranged_damage/basic = 50, /mob/living/simple_mob/mechanical/hivebot/ranged_damage/laser = 25, /mob/living/simple_mob/mechanical/hivebot/ranged_damage/ion = 10, /mob/living/simple_mob/mechanical/hivebot/tank/meatshield = 10) + }, +/turf/simulated/floor/airless, +/area/submap/debrisfield/mining_drone_ship) +"aR" = ( +/obj/structure/shuttle/engine/heater{ + pixel_y = 8 + }, +/turf/space, +/area/submap/debrisfield/mining_drone_ship) +"aS" = ( +/obj/item/weapon/ore/gold, +/turf/simulated/floor/airless, +/area/submap/debrisfield/mining_drone_ship) +"aT" = ( +/obj/item/weapon/ore, +/obj/item/weapon/ore/diamond, +/obj/item/weapon/ore/diamond, +/obj/item/weapon/ore/diamond, +/obj/item/weapon/ore/gold, +/obj/item/weapon/ore/gold, +/obj/item/weapon/ore/iron, +/obj/item/weapon/ore/diamond, +/obj/item/weapon/ore/diamond, +/obj/item/weapon/ore/iron, +/obj/item/weapon/ore/iron, +/turf/simulated/floor/airless, +/area/submap/debrisfield/mining_drone_ship) +"aU" = ( +/obj/item/weapon/ore/diamond, +/obj/item/weapon/ore/diamond, +/obj/item/weapon/ore/diamond, +/obj/item/weapon/ore/gold, +/obj/item/weapon/ore/gold, +/obj/item/weapon/ore/iron, +/obj/item/weapon/ore/iron, +/obj/item/weapon/ore/diamond, +/obj/item/weapon/ore/coal, +/obj/item/weapon/ore/iron, +/obj/item/weapon/ore, +/turf/simulated/floor/airless, +/area/submap/debrisfield/mining_drone_ship) +"aV" = ( +/obj/item/weapon/ore/diamond, +/obj/item/weapon/ore/gold, +/obj/item/weapon/ore/gold, +/obj/item/weapon/ore/iron, +/obj/item/weapon/ore/iron, +/obj/item/weapon/ore/diamond, +/obj/item/weapon/ore/diamond, +/obj/item/weapon/ore/diamond, +/obj/item/weapon/ore/diamond, +/obj/item/weapon/ore/phoron, +/obj/item/weapon/ore/phoron, +/obj/machinery/light/poi, +/turf/simulated/floor/airless, +/area/submap/debrisfield/mining_drone_ship) +"aW" = ( +/obj/item/weapon/ore, +/obj/item/weapon/ore/diamond, +/obj/item/weapon/ore/diamond, +/obj/item/weapon/ore/diamond, +/obj/item/weapon/ore/gold, +/obj/item/weapon/ore/iron, +/obj/item/weapon/ore/diamond, +/obj/item/weapon/ore/diamond, +/obj/item/weapon/ore/diamond, +/obj/item/weapon/ore/silver, +/obj/item/weapon/ore/iron, +/obj/item/weapon/ore/phoron, +/turf/simulated/floor/airless, +/area/submap/debrisfield/mining_drone_ship) +"aX" = ( +/obj/item/weapon/ore/diamond, +/obj/item/weapon/ore/diamond, +/obj/item/weapon/ore/diamond, +/obj/item/weapon/ore/gold, +/obj/item/weapon/ore/silver, +/obj/item/weapon/ore/iron, +/turf/simulated/floor/airless, +/area/submap/debrisfield/mining_drone_ship) +"aY" = ( +/obj/item/weapon/ore/diamond, +/obj/item/weapon/ore/iron, +/turf/simulated/floor/airless, +/area/submap/debrisfield/mining_drone_ship) +"aZ" = ( +/obj/structure/shuttle/engine/propulsion{ + pixel_y = 8 + }, +/turf/space, +/area/submap/debrisfield/mining_drone_ship) +"ba" = ( +/obj/structure/prop{ + desc = "An array of conventional power storage units, for when the added charge longivity and cost of a SMES unit is unneded or impractical."; + icon = 'icons/obj/power.dmi'; + icon_state = "gridchecker_off"; + name = "capacitor bank" + }, +/obj/structure/cable/yellow{ + d2 = 4; + icon_state = "0-4" + }, +/obj/machinery/light/small/poi{ + dir = 8 + }, +/turf/simulated/floor/airless, +/area/submap/debrisfield/mining_drone_ship) +"bb" = ( +/obj/machinery/light/small/flicker{ + dir = 4 + }, +/turf/simulated/floor/airless, +/area/submap/debrisfield/mining_drone_ship) + +(1,1,1) = {" +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +ab +aR +aZ +"} +(2,1,1) = {" +aa +ab +ab +ab +ah +ba +ar +ab +aA +aA +ab +ab +aa +"} +(3,1,1) = {" +aa +ac +ad +af +ai +ai +as +ab +aB +aJ +aS +ab +aa +"} +(4,1,1) = {" +aa +ab +ab +ab +ab +an +at +ab +aC +aK +aT +ab +aa +"} +(5,1,1) = {" +aa +aa +aa +aa +ab +ab +au +ab +aD +aL +aU +ab +aa +"} +(6,1,1) = {" +aa +aa +aa +aa +aj +ao +av +az +aE +aM +aV +ab +aa +"} +(7,1,1) = {" +aa +am +aa +aa +ab +ab +au +ab +aF +aN +aW +ab +aa +"} +(8,1,1) = {" +am +am +am +ab +ab +ap +aw +ab +aG +aO +aX +ab +aa +"} +(9,1,1) = {" +am +am +ae +ag +ak +aq +ax +ab +aH +aP +aY +ab +aa +"} +(10,1,1) = {" +am +am +ae +ae +al +bb +an +ab +aI +aQ +ab +ab +aa +"} +(11,1,1) = {" +aa +am +am +ab +ab +ab +ay +ab +ab +ab +ab +aR +aZ +"} diff --git a/maps/submaps/pois_vr/debris_field/ship_sci_overrun.dmm b/maps/submaps/pois_vr/debris_field/ship_sci_overrun.dmm index 9d0965fe15..4ba3847968 100644 --- a/maps/submaps/pois_vr/debris_field/ship_sci_overrun.dmm +++ b/maps/submaps/pois_vr/debris_field/ship_sci_overrun.dmm @@ -1,182 +1,194 @@ //MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE "aa" = ( /turf/template_noop, -/area/tether_away/debrisfield/explored) +/area/space) "ab" = ( /turf/simulated/wall/thull, -/area/tether_away/debrisfield/explored) +/area/submap/debrisfield/sci_overrun) "ac" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/full, /turf/simulated/floor/airless, -/area/tether_away/debrisfield/explored) +/area/submap/debrisfield/sci_overrun) "ad" = ( -/turf/simulated/floor/tiled/white/airless, -/area/tether_away/debrisfield/explored) -"ae" = ( -/obj/machinery/portable_atmospherics/hydroponics, -/turf/simulated/floor/tiled/white/airless, -/area/tether_away/debrisfield/explored) -"af" = ( -/obj/machinery/botany/editor, -/turf/simulated/floor/tiled/white/airless, -/area/tether_away/debrisfield/explored) -"ag" = ( -/obj/machinery/vending/hydronutrients, -/turf/simulated/floor/tiled/white/airless, -/area/tether_away/debrisfield/explored) -"ah" = ( -/obj/machinery/seed_extractor, -/turf/simulated/floor/tiled/white/airless, -/area/tether_away/debrisfield/explored) -"ai" = ( -/obj/machinery/seed_storage/xenobotany, -/turf/simulated/floor/tiled/white/airless, -/area/tether_away/debrisfield/explored) -"aj" = ( -/obj/machinery/botany/extractor, -/turf/simulated/floor/tiled/white/airless, -/area/tether_away/debrisfield/explored) -"ak" = ( -/obj/item/seeds/killertomatoseed, -/turf/simulated/floor/tiled/white/airless, -/area/tether_away/debrisfield/explored) -"al" = ( -/obj/structure/railing, -/turf/simulated/floor/tiled/white/airless, -/area/tether_away/debrisfield/explored) -"am" = ( -/obj/structure/railing{ - dir = 4 - }, -/turf/simulated/floor/tiled/white/airless, -/area/tether_away/debrisfield/explored) -"an" = ( -/obj/structure/reagent_dispensers/watertank/high, -/turf/simulated/floor/tiled/white/airless, -/area/tether_away/debrisfield/explored) -"ao" = ( -/obj/structure/railing{ +/obj/structure/shuttle/engine/propulsion{ dir = 8 }, -/turf/simulated/floor/tiled/white/airless, -/area/tether_away/debrisfield/explored) -"ap" = ( +/turf/simulated/floor/airless, +/area/submap/debrisfield/sci_overrun) +"ae" = ( /obj/structure/table/rack, -/obj/item/weapon/shovel/spade, -/obj/item/weapon/shovel/spade, -/obj/item/weapon/material/minihoe, -/obj/item/weapon/material/minihoe, -/obj/item/weapon/material/knife/machete/hatchet, -/obj/item/weapon/material/knife/machete/hatchet, -/obj/item/weapon/reagent_containers/glass/bucket, -/obj/item/weapon/reagent_containers/glass/bucket, -/obj/item/device/analyzer/plant_analyzer, -/obj/item/device/analyzer/plant_analyzer, +/obj/random/tool, +/obj/random/tool, +/obj/random/tool, +/turf/simulated/floor/airless, +/area/submap/debrisfield/sci_overrun) +"af" = ( +/turf/simulated/floor/airless, +/area/submap/debrisfield/sci_overrun) +"ag" = ( /turf/simulated/floor/tiled/white/airless, -/area/tether_away/debrisfield/explored) -"aq" = ( -/obj/structure/railing{ - dir = 1 +/area/submap/debrisfield/sci_overrun) +"ah" = ( +/obj/structure/closet/secure_closet/scientist{ + name = "scientist locker"; + req_access = list(0) }, /turf/simulated/floor/tiled/white/airless, -/area/tether_away/debrisfield/explored) +/area/submap/debrisfield/sci_overrun) +"ai" = ( +/obj/structure/bed, +/obj/item/weapon/bedsheet/blue, +/turf/simulated/floor/tiled/white/airless, +/area/submap/debrisfield/sci_overrun) +"aj" = ( +/obj/machinery/portable_atmospherics/hydroponics, +/turf/simulated/floor/tiled/white/airless, +/area/submap/debrisfield/sci_overrun) +"ak" = ( +/obj/machinery/botany/editor, +/turf/simulated/floor/tiled/white/airless, +/area/submap/debrisfield/sci_overrun) +"al" = ( +/obj/machinery/vending/hydronutrients, +/turf/simulated/floor/tiled/white/airless, +/area/submap/debrisfield/sci_overrun) +"am" = ( +/obj/machinery/seed_extractor, +/turf/simulated/floor/tiled/white/airless, +/area/submap/debrisfield/sci_overrun) +"an" = ( +/obj/machinery/seed_storage/xenobotany, +/turf/simulated/floor/tiled/white/airless, +/area/submap/debrisfield/sci_overrun) +"ao" = ( +/obj/machinery/botany/extractor, +/turf/simulated/floor/tiled/white/airless, +/area/submap/debrisfield/sci_overrun) +"ap" = ( +/obj/item/weapon/reagent_containers/spray/plantbgone, +/turf/simulated/floor/tiled/white/airless, +/area/submap/debrisfield/sci_overrun) +"aq" = ( +/obj/item/seeds/killertomatoseed, +/turf/simulated/floor/tiled/white/airless, +/area/submap/debrisfield/sci_overrun) "ar" = ( /mob/living/simple_mob/tomato/space, /turf/simulated/floor/tiled/white/airless, -/area/tether_away/debrisfield/explored) +/area/submap/debrisfield/sci_overrun) "as" = ( -/obj/structure/table/rack, -/obj/random/tool, -/obj/random/tool, -/obj/random/tool, -/turf/simulated/floor/airless, -/area/tether_away/debrisfield/explored) +/obj/structure/railing, +/turf/simulated/floor/tiled/white/airless, +/area/submap/debrisfield/sci_overrun) "at" = ( -/obj/machinery/door/airlock/science{ - req_one_access = list(0) - }, +/obj/item/weapon/reagent_containers/spray/chemsprayer, /turf/simulated/floor/tiled/white/airless, -/area/tether_away/debrisfield/explored) +/area/submap/debrisfield/sci_overrun) "au" = ( -/obj/item/clothing/head/collectable/slime, -/turf/simulated/floor/tiled/white/airless, -/area/tether_away/debrisfield/explored) +/obj/structure/salvageable/autolathe, +/turf/simulated/floor/airless, +/area/submap/debrisfield/sci_overrun) "av" = ( -/obj/structure/sign/hydro, -/turf/simulated/wall/thull, -/area/tether_away/debrisfield/explored) -"aw" = ( -/obj/structure/closet/firecloset, -/turf/simulated/floor/tiled/white/airless, -/area/tether_away/debrisfield/explored) -"ax" = ( /obj/machinery/door/airlock/maintenance/rnd{ name = "Research Airlock"; req_one_access = list(0) }, /turf/simulated/floor/airless, -/area/tether_away/debrisfield/explored) +/area/submap/debrisfield/sci_overrun) +"aw" = ( +/obj/structure/bed, +/obj/item/weapon/bedsheet/green, +/turf/simulated/floor/tiled/white/airless, +/area/submap/debrisfield/sci_overrun) +"ax" = ( +/obj/structure/railing{ + dir = 4 + }, +/turf/simulated/floor/tiled/white/airless, +/area/submap/debrisfield/sci_overrun) "ay" = ( -/obj/structure/sign/xenobio, -/turf/simulated/wall/thull, -/area/tether_away/debrisfield/explored) +/obj/structure/reagent_dispensers/watertank/high, +/turf/simulated/floor/tiled/white/airless, +/area/submap/debrisfield/sci_overrun) "az" = ( -/obj/item/device/slime_scanner, -/obj/item/device/slime_scanner, -/obj/structure/table/reinforced, +/obj/structure/railing{ + dir = 8 + }, /turf/simulated/floor/tiled/white/airless, -/area/tether_away/debrisfield/explored) +/area/submap/debrisfield/sci_overrun) "aA" = ( -/obj/structure/table/reinforced, -/obj/item/weapon/gun/energy/taser/xeno, -/obj/item/weapon/melee/baton/slime/loaded, -/turf/simulated/floor/tiled/white/airless, -/area/tether_away/debrisfield/explored) -"aB" = ( -/obj/structure/table/reinforced, -/turf/simulated/floor/tiled/white/airless, -/area/tether_away/debrisfield/explored) -"aC" = ( -/obj/structure/table/reinforced, -/obj/item/weapon/reagent_containers/food/snacks/monkeycube, -/obj/item/weapon/reagent_containers/food/snacks/monkeycube/farwacube, -/obj/item/weapon/reagent_containers/food/snacks/monkeycube/neaeracube, -/obj/item/weapon/reagent_containers/food/snacks/monkeycube/sarucube, -/obj/item/weapon/reagent_containers/food/snacks/monkeycube/sobakacube, -/obj/item/weapon/reagent_containers/food/snacks/monkeycube/sparracube, -/obj/item/weapon/reagent_containers/food/snacks/monkeycube/stokcube, -/obj/item/weapon/reagent_containers/food/snacks/monkeycube/wolpincube, -/turf/simulated/floor/tiled/white/airless, -/area/tether_away/debrisfield/explored) -"aD" = ( -/obj/machinery/processor, -/obj/item/slime_extract/dark_blue, -/turf/simulated/floor/tiled/white/airless, -/area/tether_away/debrisfield/explored) -"aE" = ( -/obj/structure/grille, -/obj/structure/window/reinforced/full, -/turf/simulated/floor/airless, -/area/tether_away/debrisfield/explored) -"aF" = ( -/obj/item/weapon/reagent_containers/spray/plantbgone, -/turf/simulated/floor/tiled/white/airless, -/area/tether_away/debrisfield/explored) -"aG" = ( -/obj/item/weapon/reagent_containers/spray/chemsprayer, -/turf/simulated/floor/tiled/white/airless, -/area/tether_away/debrisfield/explored) -"aH" = ( -/obj/tether_away_spawner/debrisfield/carp, -/turf/template_noop, -/area/tether_away/debrisfield/explored) -"aI" = ( /obj/effect/decal/remains, /obj/item/clothing/under/rank/hydroponics, /obj/item/clothing/suit/storage/toggle/labcoat/green, /obj/item/clothing/head/greenbandana, /turf/simulated/floor/tiled/white/airless, -/area/tether_away/debrisfield/explored) +/area/submap/debrisfield/sci_overrun) +"aB" = ( +/obj/structure/table/rack, +/obj/item/weapon/shovel/spade, +/obj/item/weapon/shovel/spade, +/obj/item/weapon/material/minihoe, +/obj/item/weapon/material/minihoe, +/obj/item/weapon/material/knife/machete/hatchet, +/obj/item/weapon/material/knife/machete/hatchet, +/obj/item/weapon/reagent_containers/glass/bucket, +/obj/item/weapon/reagent_containers/glass/bucket, +/obj/item/device/analyzer/plant_analyzer, +/obj/item/device/analyzer/plant_analyzer, +/turf/simulated/floor/tiled/white/airless, +/area/submap/debrisfield/sci_overrun) +"aC" = ( +/obj/structure/table/rack, +/obj/random/firstaid, +/obj/random/firstaid, +/turf/simulated/floor/airless, +/area/submap/debrisfield/sci_overrun) +"aD" = ( +/mob/living/simple_mob/slime/feral/dark_blue, +/turf/simulated/floor/airless, +/area/submap/debrisfield/sci_overrun) +"aE" = ( +/obj/machinery/door/airlock/science{ + req_one_access = list(0) + }, +/turf/simulated/floor/tiled/white/airless, +/area/submap/debrisfield/sci_overrun) +"aF" = ( +/obj/item/clothing/head/collectable/slime, +/turf/simulated/floor/tiled/white/airless, +/area/submap/debrisfield/sci_overrun) +"aG" = ( +/obj/structure/railing{ + dir = 1 + }, +/turf/simulated/floor/tiled/white/airless, +/area/submap/debrisfield/sci_overrun) +"aH" = ( +/obj/tether_away_spawner/debrisfield/carp, +/turf/template_noop, +/area/tether_away/debrisfield/shuttle_buffer) +"aI" = ( +/obj/structure/table/rack, +/obj/random/unidentified_medicine/scientific, +/obj/random/unidentified_medicine/scientific, +/obj/random/unidentified_medicine/scientific, +/obj/random/unidentified_medicine/scientific, +/turf/simulated/floor/airless, +/area/submap/debrisfield/sci_overrun) "aJ" = ( +/obj/structure/sink{ + dir = 8; + pixel_x = -12 + }, +/turf/simulated/floor/tiled/white/airless, +/area/submap/debrisfield/sci_overrun) +"aK" = ( +/obj/structure/bed, +/obj/item/weapon/bedsheet/rd, +/turf/simulated/floor/tiled/white/airless, +/area/submap/debrisfield/sci_overrun) +"aL" = ( /obj/structure/table/rack, /obj/item/slime_extract/rainbow, /obj/structure/window/reinforced{ @@ -187,8 +199,12 @@ }, /obj/structure/window/reinforced, /turf/simulated/floor/tiled/white/airless, -/area/tether_away/debrisfield/explored) -"aK" = ( +/area/submap/debrisfield/sci_overrun) +"aM" = ( +/obj/structure/sign/hydro, +/turf/simulated/wall/thull, +/area/submap/debrisfield/sci_overrun) +"aN" = ( /obj/item/weapon/gun/energy/temperature, /obj/structure/table/rack, /obj/structure/window/reinforced, @@ -199,25 +215,52 @@ dir = 4 }, /turf/simulated/floor/tiled/white/airless, -/area/tether_away/debrisfield/explored) -"aL" = ( +/area/submap/debrisfield/sci_overrun) +"aO" = ( /obj/structure/window/reinforced/full, /obj/structure/grille, /turf/simulated/floor/airless, -/area/tether_away/debrisfield/explored) -"aM" = ( +/area/submap/debrisfield/sci_overrun) +"aP" = ( +/obj/item/weapon/tool/prybar/red, +/turf/simulated/floor/airless, +/area/submap/debrisfield/sci_overrun) +"aQ" = ( +/obj/structure/closet/emcloset, +/turf/simulated/floor/tiled/white/airless, +/area/submap/debrisfield/sci_overrun) +"aR" = ( +/obj/structure/closet/firecloset, +/turf/simulated/floor/tiled/white/airless, +/area/submap/debrisfield/sci_overrun) +"aS" = ( /obj/machinery/computer/shuttle{ dir = 8 }, /turf/simulated/floor/tiled/white/airless, -/area/tether_away/debrisfield/explored) -"aN" = ( +/area/submap/debrisfield/sci_overrun) +"aT" = ( +/obj/machinery/door/unpowered/shuttle, +/turf/simulated/floor/tiled/white/airless, +/area/submap/debrisfield/sci_overrun) +"aU" = ( +/obj/machinery/door/airlock/command{ + name = "Research Airlock"; + req_one_access = list(0) + }, +/turf/simulated/floor/tiled/white/airless, +/area/submap/debrisfield/sci_overrun) +"aV" = ( /obj/structure/bed/chair/comfy/purp{ dir = 4 }, /turf/simulated/floor/tiled/white/airless, -/area/tether_away/debrisfield/explored) -"aO" = ( +/area/submap/debrisfield/sci_overrun) +"aW" = ( +/obj/structure/sign/xenobio, +/turf/simulated/wall/thull, +/area/submap/debrisfield/sci_overrun) +"aX" = ( /obj/item/weapon/gun/energy/decloner, /obj/structure/table/rack, /obj/structure/window/reinforced, @@ -228,35 +271,60 @@ dir = 4 }, /turf/simulated/floor/tiled/white/airless, -/area/tether_away/debrisfield/explored) -"aP" = ( +/area/submap/debrisfield/sci_overrun) +"aY" = ( +/obj/item/clothing/suit/storage/toggle/labcoat/purple, +/turf/simulated/floor/tiled/white/airless, +/area/submap/debrisfield/sci_overrun) +"aZ" = ( +/obj/structure/closet/crate, +/obj/item/stack/material/uranium{ + amount = 11 + }, +/turf/simulated/floor/airless, +/area/submap/debrisfield/sci_overrun) +"ba" = ( +/obj/structure/closet/crate, +/turf/simulated/floor/airless, +/area/submap/debrisfield/sci_overrun) +"bb" = ( /obj/structure/filingcabinet/filingcabinet, /turf/simulated/floor/tiled/white/airless, -/area/tether_away/debrisfield/explored) -"aQ" = ( +/area/submap/debrisfield/sci_overrun) +"bc" = ( /obj/structure/table/reinforced, /obj/item/stack/material/phoron{ amount = 10 }, /obj/item/device/flashlight/pen, /turf/simulated/floor/tiled/white/airless, -/area/tether_away/debrisfield/explored) -"aR" = ( +/area/submap/debrisfield/sci_overrun) +"bd" = ( /obj/structure/table/reinforced, /obj/item/weapon/paper_bin, /obj/item/weapon/pen/blue, /turf/simulated/floor/tiled/white/airless, -/area/tether_away/debrisfield/explored) -"aS" = ( +/area/submap/debrisfield/sci_overrun) +"be" = ( /obj/structure/table/reinforced, /obj/item/weapon/folder/white, /turf/simulated/floor/tiled/white/airless, -/area/tether_away/debrisfield/explored) -"aT" = ( -/mob/living/simple_mob/slime/feral/dark_blue, +/area/submap/debrisfield/sci_overrun) +"bf" = ( +/obj/structure/table/reinforced, /turf/simulated/floor/tiled/white/airless, -/area/tether_away/debrisfield/explored) -"aU" = ( +/area/submap/debrisfield/sci_overrun) +"bg" = ( +/obj/structure/salvageable/machine, +/turf/simulated/floor/tiled/white/airless, +/area/submap/debrisfield/sci_overrun) +"bh" = ( +/obj/item/device/slime_scanner, +/obj/item/device/slime_scanner, +/obj/structure/table/reinforced, +/turf/simulated/floor/tiled/white/airless, +/area/submap/debrisfield/sci_overrun) +"bi" = ( /obj/structure/table/rack, /obj/structure/window/reinforced{ dir = 4 @@ -267,111 +335,38 @@ /obj/item/weapon/material/shard, /obj/item/clothing/mask/breath, /turf/simulated/floor/tiled/white/airless, -/area/tether_away/debrisfield/explored) -"aV" = ( +/area/submap/debrisfield/sci_overrun) +"bj" = ( /obj/structure/bed/chair/office/light{ dir = 1 }, /turf/simulated/floor/tiled/white/airless, -/area/tether_away/debrisfield/explored) -"aW" = ( -/obj/item/weapon/airlock_electronics, -/turf/simulated/floor/tiled/white/airless, -/area/tether_away/debrisfield/explored) -"aX" = ( -/obj/item/weapon/material/shard, -/turf/simulated/floor/tiled/white/airless, -/area/tether_away/debrisfield/explored) -"aY" = ( -/obj/structure/closet/emcloset, -/turf/simulated/floor/tiled/white/airless, -/area/tether_away/debrisfield/explored) -"aZ" = ( -/obj/machinery/door/unpowered/shuttle, -/turf/simulated/floor/tiled/white/airless, -/area/tether_away/debrisfield/explored) -"ba" = ( -/obj/item/clothing/suit/storage/toggle/labcoat/purple, -/turf/simulated/floor/tiled/white/airless, -/area/tether_away/debrisfield/explored) -"bb" = ( +/area/submap/debrisfield/sci_overrun) +"bk" = ( /obj/effect/decal/remains, /obj/item/clothing/under/rank/scientist, /obj/item/clothing/suit/storage/toggle/labcoat/blue, /turf/simulated/floor/tiled/white/airless, -/area/tether_away/debrisfield/explored) -"bc" = ( -/obj/structure/closet/secure_closet/scientist{ - name = "scientist locker"; - req_access = list(0) - }, -/turf/simulated/floor/tiled/white/airless, -/area/tether_away/debrisfield/explored) -"bd" = ( -/obj/structure/bed, -/obj/item/weapon/bedsheet/blue, -/turf/simulated/floor/tiled/white/airless, -/area/tether_away/debrisfield/explored) -"be" = ( -/obj/structure/bed, -/obj/item/weapon/bedsheet/green, -/turf/simulated/floor/tiled/white/airless, -/area/tether_away/debrisfield/explored) -"bf" = ( -/obj/structure/bed, -/obj/item/weapon/bedsheet/rd, -/turf/simulated/floor/tiled/white/airless, -/area/tether_away/debrisfield/explored) -"bg" = ( -/obj/structure/sink{ - dir = 8; - pixel_x = -12 - }, -/turf/simulated/floor/tiled/white/airless, -/area/tether_away/debrisfield/explored) -"bh" = ( -/obj/structure/shuttle/engine/propulsion{ - dir = 8 - }, -/turf/simulated/floor/airless, -/area/tether_away/debrisfield/explored) -"bi" = ( -/obj/structure/table/rack, -/obj/random/firstaid, -/obj/random/firstaid, -/turf/simulated/floor/airless, -/area/tether_away/debrisfield/explored) -"bj" = ( -/obj/structure/table/rack, -/obj/random/unidentified_medicine/scientific, -/obj/random/unidentified_medicine/scientific, -/obj/random/unidentified_medicine/scientific, -/obj/random/unidentified_medicine/scientific, -/turf/simulated/floor/airless, -/area/tether_away/debrisfield/explored) -"bk" = ( -/obj/machinery/door/airlock/command{ - name = "Research Airlock"; - req_one_access = list(0) - }, -/turf/simulated/floor/tiled/white/airless, -/area/tether_away/debrisfield/explored) +/area/submap/debrisfield/sci_overrun) "bl" = ( -/obj/structure/closet/crate, -/obj/item/stack/material/uranium{ - amount = 11 - }, -/turf/simulated/floor/airless, -/area/tether_away/debrisfield/explored) +/obj/structure/table/reinforced, +/obj/item/weapon/gun/energy/taser/xeno, +/obj/item/weapon/melee/baton/slime/loaded, +/turf/simulated/floor/tiled/white/airless, +/area/submap/debrisfield/sci_overrun) "bm" = ( -/obj/structure/closet/crate, -/turf/simulated/floor/airless, -/area/tether_away/debrisfield/explored) +/obj/item/weapon/airlock_electronics, +/turf/simulated/floor/tiled/white/airless, +/area/submap/debrisfield/sci_overrun) "bn" = ( -/obj/machinery/power/port_gen/pacman/super, -/turf/simulated/floor/airless, -/area/tether_away/debrisfield/explored) +/mob/living/simple_mob/slime/feral/dark_blue, +/turf/simulated/floor/tiled/white/airless, +/area/submap/debrisfield/sci_overrun) "bo" = ( +/obj/item/weapon/material/shard, +/turf/simulated/floor/tiled/white/airless, +/area/submap/debrisfield/sci_overrun) +"bp" = ( /obj/structure/table/reinforced, /obj/random/slimecore, /obj/random/slimecore, @@ -379,699 +374,554 @@ /obj/random/slimecore, /obj/random/slimecore, /turf/simulated/floor/tiled/white/airless, -/area/tether_away/debrisfield/explored) -"bp" = ( -/obj/item/weapon/tool/prybar/red, -/turf/simulated/floor/airless, -/area/tether_away/debrisfield/explored) +/area/submap/debrisfield/sci_overrun) "bq" = ( -/mob/living/simple_mob/slime/feral/dark_blue, -/turf/simulated/floor/airless, -/area/tether_away/debrisfield/explored) -"rR" = ( -/obj/structure/salvageable/autolathe, -/turf/simulated/floor/airless, -/area/tether_away/debrisfield/explored) -"Hf" = ( -/obj/structure/salvageable/machine, +/obj/structure/table/reinforced, +/obj/item/weapon/reagent_containers/food/snacks/monkeycube, +/obj/item/weapon/reagent_containers/food/snacks/monkeycube/farwacube, +/obj/item/weapon/reagent_containers/food/snacks/monkeycube/neaeracube, +/obj/item/weapon/reagent_containers/food/snacks/monkeycube/sarucube, +/obj/item/weapon/reagent_containers/food/snacks/monkeycube/sobakacube, +/obj/item/weapon/reagent_containers/food/snacks/monkeycube/sparracube, +/obj/item/weapon/reagent_containers/food/snacks/monkeycube/stokcube, +/obj/item/weapon/reagent_containers/food/snacks/monkeycube/wolpincube, /turf/simulated/floor/tiled/white/airless, -/area/tether_away/debrisfield/explored) -"Ow" = ( +/area/submap/debrisfield/sci_overrun) +"br" = ( +/obj/machinery/power/port_gen/pacman/super, +/turf/simulated/floor/airless, +/area/submap/debrisfield/sci_overrun) +"bs" = ( /obj/structure/salvageable/implant_container, /turf/simulated/floor/tiled/white/airless, -/area/tether_away/debrisfield/explored) +/area/submap/debrisfield/sci_overrun) +"bt" = ( +/obj/machinery/processor, +/obj/item/slime_extract/dark_blue, +/turf/simulated/floor/tiled/white/airless, +/area/submap/debrisfield/sci_overrun) (1,1,1) = {" +ab +ad +ad +ab +ab +ad +ad +ab aa aa aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +ab +ad +ad +ab +ab +ad +ad +ab "} (2,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(3,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(4,1,1) = {" -aa -aa -aa ab -bh -bh ab ab -bh -bh ab -aa -aa -aa ab -bh -bh ab ab -bh -bh -ab -aa -aa -aa -"} -(5,1,1) = {" -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -bp -ac -ac -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -"} -(6,1,1) = {" -aa -aa -aa -ab -as -as -rR -ac -bi -bj -ab -ab -aZ -ab -ab -bl -ac -ac -ac -ac -bm -ab -aa -aa -aa -"} -(7,1,1) = {" -aa -aa -aa -ab -ac -ac -ac -ac -bq -ac -ab -aY -ad -aY -ab -bm -ac -ac -ac -ac -bn -ab -aa -aa -aa -"} -(8,1,1) = {" -aa -aa -aa -ab -ab -ab -ax -ab -ab -ab -ab -ab -aZ -ab -ab -ab -ab -ab -ax -ab -ab -ab -aa -aa -aa -"} -(9,1,1) = {" -aa -aa -aa -ab -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ab -aa -aa -aa -"} -(10,1,1) = {" -aa -aa -aa -ab -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ab -aa -aa -aa -"} -(11,1,1) = {" -aa -aa -aa -ab -ab -ab -ab -ab -at -ab -ab -ad -ad -ad -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -"} -(12,1,1) = {" -aa -aa -aa -ab -bc -bc -bc -ad -ad -bg -ab -ad -ad -ad ab aP -ad -ad +af +af +ab +ab +ab +ab +ab +ab ab -ad -ad ab -aa -aa -aa "} -(13,1,1) = {" -aa -aa -aa -aE -ad -ad -ad -ad +(3,1,1) = {" +ab +ae +ae au -ad -ab -ad -ad -ad -ab -aQ -ad -aW -aX -ad -ad -ab -aa -aa -aa -"} -(14,1,1) = {" -aa -aa -aa -aE -ad -ad -ad -ad -ad -ad -ab -ad -ad -ad -ab -aR -aV -ad +af +aC +aI ab ab -ab -ab -aa -aa -aa -"} -(15,1,1) = {" -aa -aa -aa -ab -bd -ad -be -ad -ad -bf -ab -ad -ad -ad -ab -aS -ad -ad -ab -ad -ad -ab -aa -aa -aa -"} -(16,1,1) = {" -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ad -ad -ad -ab -aB -ad aT -aX -ad -ad ab -aa -aa -aa +ab +aZ +af +af +af +af +ba +ab "} -(17,1,1) = {" -aa -aa -aa -ab -ae -ae -ae -ae -ae -ae -ab -ad -ad -ad -ab -Hf -ad -ad -ab -ab -ab -ab -aa -aa -aa -"} -(18,1,1) = {" -aa -aa -aa -ab -ad -ak -ad -ad -ar -ad -ab -ad -ad -ad -ab -Hf -ad -aX -ab -ad -ad -ab -aa -aa -aa -"} -(19,1,1) = {" -aa -aa -aa +(4,1,1) = {" ab af -ar -ad -ad -ad -ad +af +af +af +aD +af ab -ad -ad -ad +aQ +ag +aQ ab -ad -ad -aW -ad -ad -ad +ba +af +af +af +af +br ab -aa -aa -aa "} -(20,1,1) = {" -aa -aa -aa +(5,1,1) = {" +ab +ab +ab +av +ab +ab +ab +ab +ab +aT +ab +ab +ab +ab +ab +av +ab +ab +ab +"} +(6,1,1) = {" ab ag -ad -am -am -ad -ar -av -ad -ad -ad +ag +ag +ag +ag +ag +ag +ag +ag +ag +ag +ag +ag +ag +ag +ag +ag ab -ad -ad -ad -ab -ab -ab -ab -aa -aa -aa "} -(21,1,1) = {" -aa -aa -aa +(7,1,1) = {" +ab +ag +ag +ag +ag +ag +ag +ag +ag +ag +ag +ag +ag +ag +ag +ag +ag +ag +ab +"} +(8,1,1) = {" +ab +ab +ab +ab +ab +aE +ab +ab +ag +ag +ag +ab +ab +ab +ab +ab +ab +ab +ab +"} +(9,1,1) = {" ab ah -al -an -ap -aq -ad -at -ad -ad -ad +ah +ah +ag +ag +aJ ab -ad -ad -ad -aw -aw -aw +ag +ag +ag +ab +bb +ag +ag +ab +ag +ag ab -aa -aa -aa "} -(22,1,1) = {" -aa -aa -aa +(10,1,1) = {" +ac +ag +ag +ag +ag +aF +ag +ab +ag +ag +ag +ab +bc +ag +bm +bo +ag +ag +ab +"} +(11,1,1) = {" +ac +ag +ag +ag +ag +ag +ag +ab +ag +ag +ag +ab +bd +bj +ag +ab +ab +ab +ab +"} +(12,1,1) = {" ab ai -ad -ao -ao -ad -ad +ag +aw +ag +ag +aK ab -ad -ad -ad -ay -ad -bb -ad -ad -ad -ad +ag +ag +ag +ab +be +ag +ag +ab +ag +ag ab -aa -aa -aa "} -(23,1,1) = {" -aa -aa -aa +(13,1,1) = {" +ab +ab +ab +ab +ab +ab +ab +ab +ag +ag +ag +ab +bf +ag +bn +bo +ag +ag +ab +"} +(14,1,1) = {" ab aj -aF +aj +aj +aj +aj +aj +ab +ag +ag +ag +ab +bg +ag +ag +ab +ab +ab +ab +"} +(15,1,1) = {" +ab +ag +aq +ag +ag ar -ad -ad -ad +ag ab -ad -ad -ad +ag +ag +ag +ab +bg +ag +bo +ab +ag +ag +ab +"} +(16,1,1) = {" +ab +ak +ar +ag +ag +ag +ag +ab +ag +ag +ag +ab +ag +ag +bm +ag +ag +ag +ab +"} +(17,1,1) = {" +ab +al +ag +ax +ax +ag +ar +aM +ag +ag +ag +ab +ag +ag +ag +ab +ab +ab +ab +"} +(18,1,1) = {" +ab +am +as +ay +aB +aG +ag +aE +ag +ag +ag +ab +ag +ag +ag +aR +aR +aR +ab +"} +(19,1,1) = {" +ab +an +ag +az +az +ag +ag +ab +ag +ag +ag +aW +ag +bk +ag +ag +ag +ag +ab +"} +(20,1,1) = {" +ab +ao +ap +ar +ag +ag +ag +ab +ag +ag +ag +aE +ag +ag +ag +ag +ag +bs +ab +"} +(21,1,1) = {" +ab +ap at -ad -ad -ad -ad -ad -Ow +aA +ag +ar +aq +ab +ag +ag +ag +ab +ag +ag +ag +ag +ag +ag +ab +"} +(22,1,1) = {" +ab +aj +aj +aj +aj +aj +aj +ab +aR +ag +aR +ab +bh +bl +bp +bp +bq +bt +ab +"} +(23,1,1) = {" +ab +ab +ab +ab +ab +ab +ab +ab +ab +aU +ab +ab +ab +ab +ab +ab +ab +ab ab -aa -aa -aa "} (24,1,1) = {" aa aa aa +aa +aa ab -aF -aG -aI -ad -ar -ak -ab -ad -ad -ad -ab -ad -ad -ad -ad -ad -ad +ag +aN +ag +ag +ag +aX +ag ab aa aa aa +aa +aa "} (25,1,1) = {" aa aa aa -ab -ae -ae -ae -ae -ae -ae -ab -aw -ad -aw -ab -az -aA -bo -bo -aC -aD -ab +aa +aa +ac +ag +ag +ag +ag +ag +ag +ag +ac +aa +aa aa aa aa @@ -1080,25 +930,19 @@ aa aa aa aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -bk -ab -ab -ab -ab -ab -ab -ab -ab -ab +aa +aa +ac +aL +ag +ag +aV +ag +aY +bi +ac +aa +aa aa aa aa @@ -1106,29 +950,23 @@ aa (27,1,1) = {" aa aa -aa -aa -aa -aa +aH aa aa ab -ad -aK -ad -ad -ad -aO -ad +ag +ag +aS +aS +aS +ag +ag ab aa aa aa aa aa -aa -aa -aa "} (28,1,1) = {" aa @@ -1136,129 +974,15 @@ aa aa aa aa -aa -aa -aa -aE -ad -ad -ad -ad -ad -ad -ad -aE -aa -aa -aa -aa -aa -aa -aa -aa -"} -(29,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aE -aJ -ad -ad -aN -ad -ba -aU -aE -aa -aa -aa -aa -aa -aa -aa -aa -"} -(30,1,1) = {" -aa -aa -aa -aa -aa -aH -aa -aa -ab -ad -ad -aM -aM -aM -ad -ad -ab -aa -aa -aa -aa -aa -aa -aa -aa -"} -(31,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -aL -aE -aE -aE -aE -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -"} -(32,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +ab +ab +aO +ac +ac +ac +ac +ab +ab aa aa aa diff --git a/maps/submaps/pois_vr/debris_field/ship_sup_exploded.dmm b/maps/submaps/pois_vr/debris_field/ship_sup_exploded.dmm index 21b9216c43..09ce52b84c 100644 --- a/maps/submaps/pois_vr/debris_field/ship_sup_exploded.dmm +++ b/maps/submaps/pois_vr/debris_field/ship_sup_exploded.dmm @@ -1,17 +1,46 @@ //MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE "aa" = ( /turf/template_noop, -/area/tether_away/debrisfield/explored) +/area/space) "ab" = ( /turf/simulated/shuttle/wall, -/area/tether_away/debrisfield/explored) +/area/submap/debrisfield/misc_debris) "ac" = ( /obj/structure/shuttle/engine/propulsion{ dir = 1 }, /turf/simulated/shuttle/plating/airless, -/area/tether_away/debrisfield/explored) +/area/submap/debrisfield/misc_debris) "ad" = ( +/turf/template_noop, +/area/submap/debrisfield/misc_debris) +"ae" = ( +/turf/simulated/shuttle/wall/hard_corner, +/area/submap/debrisfield/misc_debris) +"af" = ( +/obj/structure/girder, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/shuttle/plating/airless, +/area/submap/debrisfield/misc_debris) +"ag" = ( +/obj/structure/closet/crate/trashcart, +/turf/template_noop, +/area/submap/debrisfield/misc_debris) +"ah" = ( +/obj/effect/decal/cleanable/dirt, +/turf/simulated/shuttle/plating/airless, +/area/submap/debrisfield/misc_debris) +"ai" = ( +/obj/structure/lattice, +/obj/structure/girder/displaced, +/turf/template_noop, +/area/submap/debrisfield/misc_debris) +"aj" = ( +/obj/structure/girder/displaced, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/shuttle/plating/airless, +/area/submap/debrisfield/misc_debris) +"ak" = ( /obj/structure/closet/crate/secure/engineering, /obj/item/weapon/tool/screwdriver/power, /obj/item/weapon/tool/crowbar/power, @@ -19,186 +48,182 @@ /obj/item/weapon/tool/crowbar/power, /obj/effect/decal/cleanable/dirt, /turf/simulated/shuttle/plating/airless, -/area/tether_away/debrisfield/explored) -"ae" = ( -/obj/structure/closet/crate/trashcart, -/turf/template_noop, -/area/tether_away/debrisfield/explored) -"af" = ( -/obj/structure/lattice, -/obj/structure/girder/displaced, -/turf/template_noop, -/area/tether_away/debrisfield/explored) -"ag" = ( -/obj/effect/decal/cleanable/dirt, -/turf/simulated/shuttle/plating/airless, -/area/tether_away/debrisfield/explored) -"ah" = ( -/obj/structure/lattice, -/turf/template_noop, -/area/tether_away/debrisfield/explored) -"ai" = ( -/turf/simulated/shuttle/plating/airless, -/area/tether_away/debrisfield/explored) -"aj" = ( -/turf/simulated/shuttle/floor/white/airless, -/area/tether_away/debrisfield/explored) -"ak" = ( -/obj/effect/decal/cleanable/dirt, -/obj/item/weapon/material/shard/shrapnel, -/turf/simulated/shuttle/plating/airless, -/area/tether_away/debrisfield/explored) +/area/submap/debrisfield/misc_debris) "al" = ( -/obj/structure/ghost_pod/manual/lost_drone/dogborg, -/turf/simulated/shuttle/floor/airless, -/area/tether_away/debrisfield/explored) -"am" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/blood/oil, /turf/simulated/shuttle/plating/airless, -/area/tether_away/debrisfield/explored) -"an" = ( -/obj/structure/girder/displaced, +/area/submap/debrisfield/misc_debris) +"am" = ( +/obj/structure/lattice, /turf/template_noop, -/area/tether_away/debrisfield/explored) -"ao" = ( -/obj/structure/girder/displaced, -/turf/simulated/shuttle/floor/white/airless, -/area/tether_away/debrisfield/explored) -"ap" = ( +/area/submap/debrisfield/misc_debris) +"an" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/generic, /turf/simulated/shuttle/plating/airless, -/area/tether_away/debrisfield/explored) -"aq" = ( +/area/submap/debrisfield/misc_debris) +"ao" = ( /obj/item/stack/material/steel, /obj/effect/decal/cleanable/dirt, /turf/simulated/shuttle/plating/airless, -/area/tether_away/debrisfield/explored) +/area/submap/debrisfield/misc_debris) +"ap" = ( +/turf/simulated/shuttle/floor/airless, +/area/submap/debrisfield/misc_debris) +"aq" = ( +/obj/structure/salvageable/bliss, +/turf/simulated/shuttle/floor/airless, +/area/submap/debrisfield/misc_debris) "ar" = ( -/obj/item/inflatable/torn, -/turf/simulated/shuttle/floor/white/airless, -/area/tether_away/debrisfield/explored) -"as" = ( -/obj/structure/shuttle/window, -/obj/structure/grille, -/turf/simulated/shuttle/plating/airless, -/area/tether_away/debrisfield/explored) -"at" = ( -/obj/item/inflatable/door/torn, -/turf/simulated/shuttle/floor/white/airless, -/area/tether_away/debrisfield/explored) -"au" = ( -/obj/structure/inflatable, -/turf/simulated/shuttle/floor/white/airless, -/area/tether_away/debrisfield/explored) -"av" = ( -/obj/structure/door_assembly/door_assembly_com, -/turf/simulated/shuttle/floor/white/airless, -/area/tether_away/debrisfield/explored) -"aw" = ( -/obj/structure/lattice, -/obj/item/stack/material/steel, -/turf/template_noop, -/area/tether_away/debrisfield/explored) -"ax" = ( /obj/structure/lattice, /obj/item/stack/material/steel, /obj/item/weapon/material/shard/shrapnel, /turf/template_noop, -/area/tether_away/debrisfield/explored) -"ay" = ( -/obj/item/stack/rods, +/area/submap/debrisfield/misc_debris) +"as" = ( +/obj/effect/decal/cleanable/dirt, +/obj/item/weapon/material/shard/shrapnel, +/turf/simulated/shuttle/plating/airless, +/area/submap/debrisfield/misc_debris) +"at" = ( +/obj/structure/lattice, +/obj/item/weapon/material/shard/shrapnel, /turf/template_noop, -/area/tether_away/debrisfield/explored) -"az" = ( -/obj/structure/girder, -/turf/simulated/shuttle/floor/white/airless, -/area/tether_away/debrisfield/explored) -"aA" = ( -/turf/simulated/shuttle/floor/airless, -/area/tether_away/debrisfield/explored) -"aB" = ( -/obj/structure/girder, -/obj/effect/decal/cleanable/dirt, -/turf/simulated/shuttle/plating/airless, -/area/tether_away/debrisfield/explored) -"aD" = ( -/obj/structure/girder/displaced, -/obj/effect/decal/cleanable/dirt, -/turf/simulated/shuttle/plating/airless, -/area/tether_away/debrisfield/explored) -"aE" = ( +/area/submap/debrisfield/misc_debris) +"au" = ( +/obj/structure/lattice, +/obj/item/stack/material/steel, +/turf/template_noop, +/area/submap/debrisfield/misc_debris) +"av" = ( +/obj/item/weapon/material/shard/shrapnel, +/turf/template_noop, +/area/submap/debrisfield/misc_debris) +"aw" = ( /obj/structure/lattice, /obj/effect/decal/cleanable/molten_item, +/obj/item/weapon/material/shard/shrapnel, /turf/template_noop, -/area/tether_away/debrisfield/explored) -"aF" = ( +/area/submap/debrisfield/misc_debris) +"ax" = ( /obj/structure/closet/crate/secure/engineering, /obj/item/weapon/weldingtool/experimental, /obj/item/weapon/weldingtool/electric, /obj/item/weapon/weldingtool/electric, /turf/template_noop, -/area/tether_away/debrisfield/explored) -"aG" = ( -/obj/item/weapon/material/shard/shrapnel, +/area/submap/debrisfield/misc_debris) +"ay" = ( +/obj/item/stack/rods, /turf/template_noop, -/area/tether_away/debrisfield/explored) -"aH" = ( +/area/submap/debrisfield/misc_debris) +"az" = ( +/obj/structure/girder/displaced, +/turf/template_noop, +/area/submap/debrisfield/misc_debris) +"aA" = ( +/obj/structure/lattice, +/obj/effect/decal/cleanable/molten_item, +/turf/template_noop, +/area/submap/debrisfield/misc_debris) +"aB" = ( /obj/structure/lattice, /obj/structure/closet/crate/secure/engineering, /obj/fiftyspawner/plasteel, /turf/template_noop, -/area/tether_away/debrisfield/explored) -"aJ" = ( +/area/submap/debrisfield/misc_debris) +"aC" = ( +/turf/simulated/shuttle/floor/white/airless, +/area/submap/debrisfield/misc_debris) +"aD" = ( +/obj/structure/girder/displaced, +/turf/simulated/shuttle/floor/white/airless, +/area/submap/debrisfield/misc_debris) +"aE" = ( +/obj/structure/ghost_pod/manual/lost_drone/dogborg, +/turf/simulated/shuttle/floor/airless, +/area/submap/debrisfield/misc_debris) +"aF" = ( /obj/structure/grille, /obj/item/weapon/material/shard, /obj/effect/decal/cleanable/dirt, /turf/simulated/shuttle/plating/airless, -/area/tether_away/debrisfield/explored) -"aK" = ( +/area/submap/debrisfield/misc_debris) +"aG" = ( /obj/item/weapon/material/shard, /obj/effect/decal/cleanable/dirt, /turf/simulated/shuttle/plating/airless, -/area/tether_away/debrisfield/explored) -"aL" = ( +/area/submap/debrisfield/misc_debris) +"aH" = ( +/turf/simulated/shuttle/plating/airless, +/area/submap/debrisfield/misc_debris) +"aI" = ( +/obj/item/inflatable/torn, +/turf/simulated/shuttle/floor/white/airless, +/area/submap/debrisfield/misc_debris) +"aJ" = ( +/obj/structure/shuttle/window, +/obj/structure/grille, +/turf/simulated/shuttle/plating/airless, +/area/submap/debrisfield/misc_debris) +"aK" = ( /obj/item/inflatable/torn, /obj/effect/decal/remains, /obj/item/clothing/under/rank/cargotech, /obj/item/clothing/head/soft, /turf/simulated/shuttle/floor/white/airless, -/area/tether_away/debrisfield/explored) +/area/submap/debrisfield/misc_debris) +"aL" = ( +/obj/item/inflatable/door/torn, +/turf/simulated/shuttle/floor/white/airless, +/area/submap/debrisfield/misc_debris) "aM" = ( +/obj/structure/inflatable, +/turf/simulated/shuttle/floor/white/airless, +/area/submap/debrisfield/misc_debris) +"aN" = ( +/obj/structure/girder, +/turf/simulated/shuttle/floor/white/airless, +/area/submap/debrisfield/misc_debris) +"aO" = ( /obj/structure/closet/secure_closet/cargotech{ name = "cargotech locker"; req_access = list() }, /turf/simulated/shuttle/floor/airless, -/area/tether_away/debrisfield/explored) -"aN" = ( +/area/submap/debrisfield/misc_debris) +"aP" = ( /obj/structure/closet/emcloset, /turf/simulated/shuttle/floor/airless, -/area/tether_away/debrisfield/explored) -"aO" = ( +/area/submap/debrisfield/misc_debris) +"aQ" = ( +/obj/structure/salvageable/server, +/turf/simulated/shuttle/floor/white/airless, +/area/submap/debrisfield/misc_debris) +"aR" = ( /obj/item/inflatable/door/torn, /obj/effect/decal/remains, /obj/item/clothing/under/rank/cargotech, /obj/item/clothing/head/soft, /turf/simulated/shuttle/floor/white/airless, -/area/tether_away/debrisfield/explored) -"aP" = ( +/area/submap/debrisfield/misc_debris) +"aS" = ( +/obj/structure/door_assembly/door_assembly_com, +/turf/simulated/shuttle/floor/white/airless, +/area/submap/debrisfield/misc_debris) +"aT" = ( /obj/machinery/computer/shuttle{ dir = 4 }, /turf/simulated/shuttle/floor/airless, -/area/tether_away/debrisfield/explored) -"aQ" = ( +/area/submap/debrisfield/misc_debris) +"aU" = ( /obj/structure/bed/chair{ dir = 8 }, /turf/simulated/shuttle/floor/white/airless, -/area/tether_away/debrisfield/explored) -"aR" = ( +/area/submap/debrisfield/misc_debris) +"aV" = ( /obj/structure/closet/secure_closet/quartermaster{ name = "quartermaster locker"; req_access = list() @@ -206,519 +231,398 @@ /obj/item/clothing/under/mbill, /obj/item/clothing/head/soft/mbill, /turf/simulated/shuttle/floor/white/airless, -/area/tether_away/debrisfield/explored) -"aS" = ( +/area/submap/debrisfield/misc_debris) +"aW" = ( /obj/structure/closet/crate/secure/bin, /turf/simulated/shuttle/floor/white/airless, -/area/tether_away/debrisfield/explored) -"aT" = ( +/area/submap/debrisfield/misc_debris) +"aX" = ( /obj/structure/closet/emcloset, /turf/simulated/shuttle/floor/white/airless, -/area/tether_away/debrisfield/explored) -"aU" = ( +/area/submap/debrisfield/misc_debris) +"aY" = ( /obj/structure/bed/chair{ dir = 4 }, /turf/simulated/shuttle/floor/white/airless, -/area/tether_away/debrisfield/explored) -"aV" = ( +/area/submap/debrisfield/misc_debris) +"aZ" = ( /obj/machinery/computer/shuttle{ dir = 8 }, /turf/simulated/shuttle/floor/airless, -/area/tether_away/debrisfield/explored) -"aW" = ( +/area/submap/debrisfield/misc_debris) +"ba" = ( +/obj/structure/salvageable/data, +/turf/simulated/shuttle/floor/airless, +/area/submap/debrisfield/misc_debris) +"bb" = ( /obj/effect/decal/remains, /obj/item/clothing/under/mbill, /obj/item/clothing/head/soft/mbill, /turf/simulated/shuttle/floor/white/airless, -/area/tether_away/debrisfield/explored) -"aX" = ( +/area/submap/debrisfield/misc_debris) +"bc" = ( /obj/structure/bed/chair, /turf/simulated/shuttle/floor/airless, -/area/tether_away/debrisfield/explored) -"aY" = ( +/area/submap/debrisfield/misc_debris) +"bd" = ( /obj/structure/bed/chair/comfy/teal, /turf/simulated/shuttle/floor/white/airless, -/area/tether_away/debrisfield/explored) -"aZ" = ( +/area/submap/debrisfield/misc_debris) +"be" = ( /obj/machinery/computer/shuttle{ dir = 1 }, /turf/simulated/shuttle/floor/airless, -/area/tether_away/debrisfield/explored) -"bb" = ( -/obj/structure/lattice, -/obj/item/weapon/material/shard/shrapnel, -/turf/template_noop, -/area/tether_away/debrisfield/explored) -"bc" = ( -/obj/structure/lattice, -/obj/effect/decal/cleanable/molten_item, -/obj/item/weapon/material/shard/shrapnel, -/turf/template_noop, -/area/tether_away/debrisfield/explored) -"bd" = ( -/turf/simulated/shuttle/wall/hard_corner, -/area/tether_away/debrisfield/explored) -"jq" = ( -/obj/structure/salvageable/data, -/turf/simulated/shuttle/floor/airless, -/area/tether_away/debrisfield/explored) -"KY" = ( -/obj/structure/salvageable/server, -/turf/simulated/shuttle/floor/white/airless, -/area/tether_away/debrisfield/explored) -"Mm" = ( -/obj/structure/salvageable/bliss, -/turf/simulated/shuttle/floor/airless, -/area/tether_away/debrisfield/explored) +/area/submap/debrisfield/misc_debris) (1,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +ab +ab +ab +ab +ah +as +ad +ad +ad +am +at +am +am +af +aF +aJ +ab +ab +aJ +aJ +ab aa aa aa aa "} (2,1,1) = {" -aa -ab -ab -ab -ab -ag +ac +ae +ah ak -aa -aa -aa -ah -bb -ah -ah -aB -aJ -as +al +at +ad +ad +am +am +am +am +am +an +aG +ap +aP +ab +aT +aT ab ab -as -as -ab -aa -aa -aa aa aa aa "} (3,1,1) = {" -aa -ac -bd -ag ad +af +ah +al am -bb -aa -aa -ah -ah -ah -ah -ah -ap -aK -aA -aN +au +aw +ad +ad +ad +ad +aB +am +am +aH +aC +aQ ab -aP -aP +aU +aU +ba ab ab aa aa -aa -aa -aa "} (4,1,1) = {" -aa -aa -aB -ag +ad +ad +ai +ad +ad +ad +ad +ad +ad +av +ad +ay am ah -aw -bc -aa -aa -aa -aa -aH -ah -ah -ai -aj -KY -ab -aQ -aQ -jq +af ab ab -aa -aa -aa -aa +ab +aC +aC +aC +ba +ab +aJ +ab "} (5,1,1) = {" -aa -aa -aa -af -aa -aa -aa -aa -aa -aa -aG -aa -ay +ad +ac +ae +al +am +ad +au +ad +ad +ad +ad +at +am ah -ag -aB +ah +aI +aM ab -ab -ab -aj -aj -aj -jq -ab -as -ab -aa -aa +aV +aC +aC +aC +bc +be +aJ "} (6,1,1) = {" -aa -aa -ac -bd -am -ah -aa -aw -aa -aa -aa -aa -bb -ah +ad ag -ag -ar -au ab -aR -aj -aj -aj -aX -aZ -as -aa -aa +al +ar +am +am +ad +ad +az +am +am +al +ah +aI +aK +aM +ab +aC +aC +aC +aC +aC +be +aJ "} (7,1,1) = {" -aa -aa -ae -ab +ad +ad +aj +am +ad +ad +ad +ad +ad +ad +am am -ax ah -ah -aa -aa an -ah -ah -am -ag -ar +aC aL -au -ab -aj -aj -aj -aj -aj -aZ -as -aa -aa +aR +aS +aC +aC +aC +bb +bd +be +aJ "} (8,1,1) = {" -aa -aa -aa -aD -ah -aa -aa -aa -aa -aa -aa +ad +ad +ab +am +am +ad +ad +ad +ad +ad +am ah ah -ag -ap -aj -at -aO -av -aj -aj -aj +aC +aI +aM +aM +ab aW -aY -aZ -as -aa -aa +aC +aC +aC +aC +be +aJ "} (9,1,1) = {" -aa -aa -aa +ad +ac ab +an +am +av +ax +ad +ad +av +aA +an ah -ah -aa -aa -aa -aa -aa -ah -ag -ag -aj -ar -au -au +aD +aC +aI +aM ab -aS -aj -aj -aj -aj -aZ -as -aa -aa +aX +aC +aC +aC +bc +be +aJ "} (10,1,1) = {" -aa -aa +ad ac ab -ap -ah -aG -aF -aa -aa -aG -aE -ap -ag ao -aj -ar -au +ah +at +ad +ad +ad +av +ah +ao +ah +aD +aC +aN +ab +ab +aC +aC +aC +ba +ab +aJ ab -aT -aj -aj -aj -aX -aZ -as -aa -aa "} (11,1,1) = {" -aa -aa +ad ac ab -aq -ag -bb -aa -aa -aa -aG -ag -aq -ag -ao +ap aj -az +am +ad +ay +ad +ah +ah +ah ab +aC +aC +aC +aC ab -aj -aj -aj -jq +aY +aY +ba ab -as ab aa aa "} (12,1,1) = {" -aa -aa +ad ac ab -aA -aD +aq +ap ah -aa -ay -aa -ag -ag -ag +ah +am +am +ah +ah +al ab -aj -aj -aj -aj +aE +ap +aO +aO ab -aU -aU -jq +aZ +aZ ab ab aa aa aa -aa "} (13,1,1) = {" -aa -aa -ac +ad ab -Mm -aA -ag -ag +ae +af +af +aj ah ah -ag -ag -am -ab -al -aA -aM -aM -ab -aV -aV +af +af +af ab ab -aa -aa -aa -aa -aa -"} -(14,1,1) = {" -aa -aa -ab -bd -aB -aB -aD -ag -ag -aB -aB -aB -ab -ab -ab -as -as -ab -ab -as -as -ab -aa -aa -aa -aa -aa -aa -"} -(15,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +ab +aJ +aJ +ab +ab +aJ +aJ +ab aa aa aa diff --git a/maps/submaps/pois_vr/debris_field/tinycarrier.dmm b/maps/submaps/pois_vr/debris_field/tinycarrier.dmm new file mode 100644 index 0000000000..e59de77bb7 --- /dev/null +++ b/maps/submaps/pois_vr/debris_field/tinycarrier.dmm @@ -0,0 +1,1510 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"aa" = ( +/turf/space, +/area/space) +"ab" = ( +/obj/machinery/porta_turret/industrial/military{ + auto_repair = 0; + dir = 8; + icon_state = "destroyed_target_prism_industrial"; + stat = 1 + }, +/obj/structure/lattice, +/obj/structure/cable/green{ + icon_state = "0-2" + }, +/turf/simulated/shuttle/plating/airless/carry, +/area/submap/debrisfield/tinyshuttle/bridge) +"ac" = ( +/obj/structure/lattice, +/obj/structure/cable/green{ + icon_state = "1-2" + }, +/turf/simulated/shuttle/plating/airless/carry, +/area/submap/debrisfield/tinyshuttle/bridge) +"ad" = ( +/turf/simulated/wall/thull, +/area/submap/debrisfield/tinyshuttle/crew) +"ae" = ( +/obj/structure/window/titanium/full, +/obj/structure/window/titanium{ + dir = 1 + }, +/obj/machinery/door/firedoor/glass, +/obj/machinery/door/blast/regular/open{ + dir = 4; + id = "tinycarrier_bridge" + }, +/obj/structure/grille, +/turf/simulated/floor/plating, +/area/submap/debrisfield/tinyshuttle/crew) +"af" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/machinery/door/airlock/external, +/obj/effect/map_helper/airlock/door/ext_door, +/turf/simulated/floor/tiled/monofloor, +/area/submap/debrisfield/tinyshuttle/crew) +"ag" = ( +/obj/structure/lattice, +/turf/simulated/shuttle/plating/airless/carry, +/area/submap/debrisfield/tinyshuttle/bridge) +"ah" = ( +/obj/machinery/atmospherics/unary/engine{ + dir = 8 + }, +/turf/space, +/turf/simulated/shuttle/plating/airless/carry, +/area/submap/debrisfield/tinyshuttle/engine) +"ai" = ( +/obj/machinery/airlock_sensor/airlock_exterior/shuttle{ + dir = 9; + pixel_x = -4; + pixel_y = 8 + }, +/obj/effect/map_helper/airlock/sensor/ext_sensor, +/turf/simulated/wall/thull, +/area/submap/debrisfield/tinyshuttle/crew) +"aj" = ( +/obj/machinery/suit_storage_unit/standard_unit, +/obj/effect/floor_decal/corner/brown/full{ + dir = 8 + }, +/turf/simulated/floor/tiled, +/area/submap/debrisfield/tinyshuttle/crew) +"ak" = ( +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/effect/floor_decal/corner/brown/full{ + dir = 1 + }, +/turf/simulated/floor/tiled, +/area/submap/debrisfield/tinyshuttle/crew) +"al" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/door/airlock/glass_external/public, +/obj/effect/map_helper/airlock/door/int_door, +/turf/simulated/floor/tiled/monofloor{ + dir = 4 + }, +/area/submap/debrisfield/tinyshuttle/crew) +"am" = ( +/obj/machinery/atmospherics/unary/vent_pump/high_volume{ + dir = 4; + id_tag = "temp" + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/machinery/embedded_controller/radio/airlock/docking_port{ + dir = 8; + frequency = 1380; + id_tag = "debris_carrier_docker"; + pixel_x = 24; + pixel_y = -6 + }, +/obj/effect/shuttle_landmark/shuttle_initializer/tinycarrier, +/obj/machinery/airlock_sensor{ + pixel_x = 26; + pixel_y = 6 + }, +/obj/effect/map_helper/airlock/atmos/chamber_pump, +/obj/effect/map_helper/airlock/sensor/chamber_sensor, +/obj/effect/overmap/visitable/ship/landable/tinycarrier, +/turf/simulated/floor/tiled/monotile, +/area/submap/debrisfield/tinyshuttle/crew) +"an" = ( +/obj/machinery/atmospherics/pipe/simple/hidden{ + dir = 8 + }, +/turf/simulated/wall/thull, +/area/submap/debrisfield/tinyshuttle/crew) +"ao" = ( +/turf/simulated/wall/thull, +/area/submap/debrisfield/tinyshuttle/bridge) +"ap" = ( +/obj/structure/cable/green{ + icon_state = "1-2" + }, +/obj/structure/grille, +/obj/structure/window/titanium/full, +/obj/structure/window/titanium{ + dir = 1 + }, +/obj/machinery/door/blast/regular/open{ + dir = 4; + id = "tinycarrier_bridge" + }, +/turf/simulated/floor/plating, +/area/submap/debrisfield/tinyshuttle/bridge) +"aq" = ( +/obj/structure/girder, +/turf/simulated/floor/airless, +/area/submap/debrisfield/tinyshuttle/bridge) +"ar" = ( +/obj/machinery/portable_atmospherics/canister/air/airlock, +/obj/machinery/atmospherics/portables_connector{ + dir = 8 + }, +/obj/machinery/door/window{ + dir = 2; + name = "Airlock Canister Access" + }, +/turf/simulated/floor/tiled, +/area/submap/debrisfield/tinyshuttle/crew) +"as" = ( +/obj/machinery/suit_storage_unit/standard_unit, +/obj/effect/floor_decal/corner/brown{ + dir = 9 + }, +/turf/simulated/floor/tiled, +/area/submap/debrisfield/tinyshuttle/crew) +"at" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/machinery/airlock_sensor/airlock_interior{ + dir = 8; + pixel_x = 24; + pixel_y = 0 + }, +/obj/effect/map_helper/airlock/sensor/int_sensor, +/obj/effect/floor_decal/corner/brown{ + dir = 6 + }, +/turf/simulated/floor/tiled, +/area/submap/debrisfield/tinyshuttle/crew) +"au" = ( +/obj/structure/grille, +/obj/structure/window/titanium/full, +/obj/structure/window/titanium{ + dir = 8 + }, +/obj/machinery/door/firedoor/glass, +/obj/machinery/door/blast/regular/open{ + id = "tinycarrier_bridge" + }, +/turf/simulated/floor/plating, +/area/submap/debrisfield/tinyshuttle/bridge) +"av" = ( +/obj/structure/cable/green{ + icon_state = "1-6" + }, +/obj/effect/floor_decal/corner/black/border{ + dir = 6 + }, +/turf/simulated/floor/bluegrid/airless, +/area/submap/debrisfield/tinyshuttle/bridge) +"aw" = ( +/obj/machinery/computer/ship/engines, +/obj/machinery/light{ + dir = 1 + }, +/obj/effect/floor_decal/corner/blue/full{ + dir = 8 + }, +/turf/simulated/floor/tiled/airless, +/area/submap/debrisfield/tinyshuttle/bridge) +"ax" = ( +/obj/machinery/computer/shuttle_control/explore/tinycarrier, +/obj/effect/floor_decal/corner/blue{ + dir = 5; + icon_state = "corner_white" + }, +/turf/simulated/floor/tiled/airless{ + broken = 1 + }, +/area/submap/debrisfield/tinyshuttle/bridge) +"ay" = ( +/obj/machinery/alarm/alarms_hidden{ + dir = 8; + pixel_x = 24; + req_one_access = list() + }, +/obj/effect/decal/cleanable/generic, +/obj/machinery/atmospherics/unary/vent_scrubber, +/obj/effect/floor_decal/corner/blue/full{ + dir = 1 + }, +/turf/simulated/floor/tiled/airless{ + broken = 2 + }, +/area/submap/debrisfield/tinyshuttle/bridge) +"az" = ( +/obj/structure/grille, +/obj/structure/window/titanium/full, +/turf/simulated/floor/plating, +/area/submap/debrisfield/tinyshuttle/crew) +"aA" = ( +/obj/item/modular_computer/laptop/preset/custom_loadout/rugged, +/obj/structure/table/steel, +/obj/effect/floor_decal/corner/brown/full{ + dir = 8 + }, +/turf/simulated/floor/tiled, +/area/submap/debrisfield/tinyshuttle/crew) +"aB" = ( +/obj/item/clothing/head/service, +/obj/item/clothing/head/service, +/obj/item/clothing/under/solgov/utility/fleet/combat, +/obj/item/clothing/under/solgov/utility/fleet/combat, +/obj/item/clothing/suit/storage/solgov/service/fleet, +/obj/item/clothing/suit/storage/solgov/service/fleet, +/obj/structure/closet/wardrobe/black{ + starts_with = list() + }, +/obj/effect/floor_decal/corner/brown/full{ + dir = 1 + }, +/obj/item/clothing/shoes/boots/duty, +/obj/item/clothing/shoes/boots/duty, +/turf/simulated/floor/tiled, +/area/submap/debrisfield/tinyshuttle/crew) +"aC" = ( +/obj/machinery/light_switch{ + dir = 4; + pixel_x = -28; + pixel_y = 0 + }, +/obj/effect/floor_decal/corner/brown{ + dir = 9 + }, +/turf/simulated/floor/tiled, +/area/submap/debrisfield/tinyshuttle/crew) +"aD" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/effect/floor_decal/corner/brown{ + dir = 4 + }, +/turf/simulated/floor/tiled, +/area/submap/debrisfield/tinyshuttle/crew) +"aE" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/floor_decal/corner/brown{ + dir = 5 + }, +/obj/structure/handrail, +/turf/simulated/floor/tiled, +/area/submap/debrisfield/tinyshuttle/crew) +"aF" = ( +/obj/effect/floor_decal/corner/brown{ + dir = 5 + }, +/turf/simulated/floor/tiled, +/area/submap/debrisfield/tinyshuttle/crew) +"aG" = ( +/obj/machinery/power/apc{ + dir = 1; + name = "north bump"; + pixel_x = 0; + pixel_y = 24 + }, +/obj/structure/cable/green{ + icon_state = "0-2" + }, +/obj/effect/floor_decal/corner/brown{ + dir = 5 + }, +/turf/simulated/floor/tiled, +/area/submap/debrisfield/tinyshuttle/crew) +"aH" = ( +/obj/effect/floor_decal/corner/blue/full{ + dir = 8 + }, +/obj/machinery/computer/ship/helm{ + dir = 4; + req_one_access = list() + }, +/turf/simulated/floor/tiled/airless, +/area/submap/debrisfield/tinyshuttle/bridge) +"aI" = ( +/obj/structure/cable/green{ + icon_state = "4-9" + }, +/obj/structure/cable/green{ + icon_state = "4-10" + }, +/obj/structure/bed/chair/shuttle{ + dir = 8 + }, +/obj/effect/floor_decal/corner/blue{ + dir = 1; + icon_state = "corner_white" + }, +/turf/simulated/floor/tiled/airless, +/area/submap/debrisfield/tinyshuttle/bridge) +"aJ" = ( +/obj/machinery/atmospherics/unary/vent_pump{ + dir = 4 + }, +/obj/structure/cable/green{ + dir = 1; + icon_state = "4-8" + }, +/turf/simulated/floor/tiled/airless, +/area/submap/debrisfield/tinyshuttle/bridge) +"aK" = ( +/obj/structure/cable/green{ + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/hidden{ + dir = 8 + }, +/obj/structure/cable/green{ + dir = 1; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 5; + icon_state = "intact-scrubbers" + }, +/obj/effect/floor_decal/corner/blue{ + dir = 6 + }, +/turf/simulated/floor/tiled/airless, +/area/submap/debrisfield/tinyshuttle/bridge) +"aL" = ( +/obj/structure/bed/chair{ + dir = 1 + }, +/obj/effect/floor_decal/corner/brown{ + dir = 1 + }, +/turf/simulated/floor/tiled, +/area/submap/debrisfield/tinyshuttle/crew) +"aM" = ( +/obj/item/trash/coffee, +/turf/simulated/floor/tiled, +/area/submap/debrisfield/tinyshuttle/crew) +"aN" = ( +/obj/structure/prop{ + desc = "A man-sized pod for entering suspended animation. This one is room temperature."; + dir = 8; + icon = 'icons/obj/Cryogenic2_vr.dmi'; + icon_state = "cryopod_0"; + name = "cryogenic freezer" + }, +/obj/effect/floor_decal/corner/brown/full{ + dir = 1 + }, +/turf/simulated/floor/tiled, +/area/submap/debrisfield/tinyshuttle/crew) +"aO" = ( +/obj/structure/cable/green{ + dir = 1; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/hidden{ + dir = 8 + }, +/obj/machinery/door/airlock/hatch{ + req_one_access = list() + }, +/obj/machinery/door/firedoor/glass, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 8 + }, +/turf/simulated/floor/tiled/airless, +/area/submap/debrisfield/tinyshuttle/crew) +"aP" = ( +/obj/structure/cable/green{ + icon_state = "6-8" + }, +/obj/machinery/atmospherics/pipe/simple/hidden{ + dir = 10; + icon_state = "intact" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 10 + }, +/obj/effect/floor_decal/corner/brown{ + dir = 9 + }, +/turf/simulated/floor/tiled, +/area/submap/debrisfield/tinyshuttle/crew) +"aQ" = ( +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/machinery/atmospherics/unary/vent_pump/on{ + dir = 4 + }, +/turf/simulated/floor/tiled, +/area/submap/debrisfield/tinyshuttle/crew) +"aR" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/hidden{ + dir = 10; + icon_state = "intact" + }, +/turf/simulated/floor/tiled, +/area/submap/debrisfield/tinyshuttle/crew) +"aS" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/unary/vent_scrubber/on, +/turf/simulated/floor/tiled, +/area/submap/debrisfield/tinyshuttle/crew) +"aT" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable/green{ + icon_state = "1-2" + }, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/tiled, +/area/submap/debrisfield/tinyshuttle/crew) +"aU" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/fuel{ + dir = 6; + icon_state = "intact-fuel" + }, +/turf/simulated/wall/thull, +/area/submap/debrisfield/tinyshuttle/engine) +"aV" = ( +/obj/machinery/porta_turret/industrial/military{ + auto_repair = 0; + dir = 10; + icon_state = "destroyed_target_prism_industrial"; + stat = 1 + }, +/obj/structure/lattice, +/obj/structure/cable/green, +/turf/simulated/shuttle/plating/airless/carry, +/area/submap/debrisfield/tinyshuttle/bridge) +"aW" = ( +/obj/machinery/computer/ship/sensors{ + icon_state = "computer"; + dir = 4 + }, +/obj/structure/cable/green{ + icon_state = "2-5" + }, +/obj/effect/floor_decal/corner/blue/full, +/turf/simulated/floor/tiled/airless, +/area/submap/debrisfield/tinyshuttle/bridge) +"aX" = ( +/obj/structure/table/steel_reinforced, +/obj/machinery/button/remote/blast_door{ + id = "tinycarrier_bridge"; + name = "Bridge Blast Doors"; + pixel_x = -6; + pixel_y = 4 + }, +/obj/machinery/button/remote/blast_door{ + id = "tinycarrier_hangar"; + name = "Hangar Blast Doors"; + pixel_x = 6; + pixel_y = 4 + }, +/obj/machinery/button/remote/blast_door{ + id = "tinycarrier_sensors"; + name = "Sensor Shroud"; + pixel_y = -24 + }, +/obj/effect/floor_decal/corner/blue{ + dir = 10; + icon_state = "corner_white" + }, +/turf/simulated/floor/tiled/airless, +/area/submap/debrisfield/tinyshuttle/bridge) +"aY" = ( +/obj/machinery/turretid/lethal{ + pixel_x = 0; + pixel_y = 4; + req_access = list() + }, +/obj/structure/table/steel_reinforced, +/obj/effect/floor_decal/corner/blue{ + dir = 10; + icon_state = "corner_white" + }, +/turf/simulated/floor/tiled/airless, +/area/submap/debrisfield/tinyshuttle/bridge) +"aZ" = ( +/obj/machinery/power/apc{ + dir = 4; + name = "east bump"; + pixel_x = 28 + }, +/obj/structure/cable/green, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light_switch{ + dir = 1; + pixel_x = 22; + pixel_y = -24 + }, +/obj/effect/floor_decal/corner/blue/full{ + dir = 4; + icon_state = "corner_white_full" + }, +/turf/simulated/floor/tiled/airless, +/area/submap/debrisfield/tinyshuttle/bridge) +"ba" = ( +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/hidden{ + dir = 6; + icon_state = "intact" + }, +/turf/simulated/floor/tiled, +/area/submap/debrisfield/tinyshuttle/crew) +"bb" = ( +/obj/machinery/atmospherics/unary/vent_pump/on{ + dir = 8 + }, +/turf/simulated/floor/tiled, +/area/submap/debrisfield/tinyshuttle/crew) +"bc" = ( +/obj/machinery/sleeper{ + controls_inside = 1; + dir = 8 + }, +/obj/machinery/light{ + dir = 4 + }, +/obj/effect/floor_decal/corner/brown{ + dir = 6 + }, +/turf/simulated/floor/tiled, +/area/submap/debrisfield/tinyshuttle/crew) +"bd" = ( +/obj/machinery/atmospherics/pipe/simple/hidden{ + dir = 5; + icon_state = "intact" + }, +/obj/structure/closet/secure_closet/guncabinet/sidearm{ + anchored = 1; + starts_with = list() + }, +/obj/item/weapon/gun/projectile/p92x/large, +/obj/item/weapon/gun/projectile/p92x/large, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 5; + icon_state = "intact-scrubbers" + }, +/obj/effect/floor_decal/corner/brown/full, +/obj/item/ammo_magazine/m9mm/large, +/obj/item/ammo_magazine/m9mm/large, +/obj/item/ammo_magazine/m9mm/large, +/obj/item/ammo_magazine/m9mm/large, +/turf/simulated/floor/tiled, +/area/submap/debrisfield/tinyshuttle/crew) +"be" = ( +/obj/structure/cable/green{ + icon_state = "4-9" + }, +/obj/machinery/atmospherics/pipe/simple/hidden{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 8 + }, +/obj/effect/floor_decal/corner/brown{ + dir = 10 + }, +/turf/simulated/floor/tiled, +/area/submap/debrisfield/tinyshuttle/crew) +"bf" = ( +/obj/structure/cable/green{ + dir = 1; + icon_state = "4-8" + }, +/obj/structure/cable/green{ + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/manifold4w/hidden, +/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ + dir = 1 + }, +/obj/effect/floor_decal/corner/brown{ + dir = 10 + }, +/turf/simulated/floor/tiled, +/area/submap/debrisfield/tinyshuttle/crew) +"bg" = ( +/obj/structure/cable/green{ + dir = 1; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/hidden{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers, +/obj/effect/floor_decal/corner/brown{ + dir = 10 + }, +/obj/machinery/light, +/turf/simulated/floor/tiled, +/area/submap/debrisfield/tinyshuttle/crew) +"bh" = ( +/obj/machinery/atmospherics/pipe/manifold/hidden/fuel{ + dir = 8; + icon_state = "map-fuel" + }, +/turf/simulated/wall/thull, +/area/submap/debrisfield/tinyshuttle/engine) +"bi" = ( +/turf/simulated/wall/thull, +/area/submap/debrisfield/tinyshuttle/hangar) +"bj" = ( +/obj/structure/cable/green{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/hidden, +/obj/machinery/door/airlock/hatch{ + req_one_access = list() + }, +/obj/machinery/door/firedoor/glass, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 1 + }, +/turf/simulated/floor/tiled/techmaint/airless, +/area/submap/debrisfield/tinyshuttle/hangar) +"bk" = ( +/turf/simulated/wall/thull, +/area/submap/debrisfield/tinyshuttle/engine) +"bl" = ( +/obj/structure/cable/green{ + icon_state = "6-8" + }, +/obj/structure/cable/green{ + icon_state = "1-6" + }, +/obj/machinery/atmospherics/pipe/simple/hidden{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 8 + }, +/obj/effect/floor_decal/corner/brown{ + dir = 10 + }, +/obj/machinery/alarm/alarms_hidden{ + dir = 1; + pixel_y = -24 + }, +/turf/simulated/floor/tiled, +/area/submap/debrisfield/tinyshuttle/crew) +"bm" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/machinery/atmospherics/pipe/manifold/hidden{ + dir = 4; + icon_state = "map" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 10 + }, +/obj/effect/floor_decal/corner/brown{ + dir = 10 + }, +/turf/simulated/floor/tiled, +/area/submap/debrisfield/tinyshuttle/crew) +"bn" = ( +/obj/effect/floor_decal/industrial/warning/cee{ + dir = 8 + }, +/obj/machinery/shipsensors{ + dir = 8; + use_power = 0 + }, +/turf/simulated/floor/greengrid/airless, +/area/submap/debrisfield/tinyshuttle/bridge) +"bo" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/structure/cable/green{ + icon_state = "9-10" + }, +/obj/machinery/atmospherics/pipe/simple/hidden, +/obj/machinery/door/airlock/hatch{ + req_one_access = list() + }, +/obj/machinery/door/firedoor/glass, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/turf/simulated/floor/tiled/airless, +/area/submap/debrisfield/tinyshuttle/engine) +"bp" = ( +/obj/effect/floor_decal/industrial/warning{ + dir = 4 + }, +/obj/machinery/door/blast/regular{ + id = "tinycarrier_sensors" + }, +/turf/simulated/floor/airless, +/area/submap/debrisfield/tinyshuttle/bridge) +"bq" = ( +/obj/structure/cable/green{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/hidden, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 9 + }, +/obj/item/clothing/shoes/magboots, +/turf/simulated/floor/tiled/techmaint/airless, +/area/submap/debrisfield/tinyshuttle/hangar) +"br" = ( +/obj/machinery/mecha_part_fabricator{ + req_access = list() + }, +/obj/machinery/light{ + dir = 1 + }, +/turf/simulated/floor/tiled/techmaint/airless, +/area/submap/debrisfield/tinyshuttle/hangar) +"bs" = ( +/obj/structure/extinguisher_cabinet{ + dir = 1; + icon_state = "extinguisher_closed"; + pixel_y = 32 + }, +/obj/structure/table/steel, +/obj/machinery/atmospherics/unary/vent_scrubber{ + dir = 4 + }, +/obj/item/weapon/tool/crowbar, +/obj/item/weapon/tool/wrench, +/obj/item/weapon/tool/screwdriver{ + pixel_y = 8 + }, +/turf/simulated/floor/tiled/techmaint/airless, +/area/submap/debrisfield/tinyshuttle/hangar) +"bt" = ( +/obj/structure/cable/green{ + icon_state = "5-6" + }, +/obj/structure/extinguisher_cabinet{ + dir = 4; + icon_state = "extinguisher_closed"; + pixel_x = -30 + }, +/obj/machinery/atmospherics/portables_connector{ + dir = 4 + }, +/obj/machinery/portable_atmospherics/canister/air, +/obj/effect/floor_decal/corner/orange/full{ + dir = 8 + }, +/turf/simulated/floor/tiled/steel, +/area/submap/debrisfield/tinyshuttle/engine) +"bu" = ( +/obj/machinery/power/smes/buildable/outpost_substation{ + charge = 3e+006; + input_attempt = 1; + input_level = 200000 + }, +/obj/structure/cable/green{ + icon_state = "0-2" + }, +/turf/simulated/floor/tiled/steel, +/area/submap/debrisfield/tinyshuttle/engine) +"bv" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/fuel, +/turf/simulated/wall/thull, +/area/submap/debrisfield/tinyshuttle/engine) +"bw" = ( +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/manifold/hidden{ + dir = 4; + icon_state = "map" + }, +/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ + dir = 8 + }, +/obj/effect/floor_decal/corner/orange{ + dir = 5 + }, +/turf/simulated/floor/tiled/steel, +/area/submap/debrisfield/tinyshuttle/engine) +"bx" = ( +/obj/structure/grille, +/obj/structure/window/titanium/full, +/obj/structure/window/titanium{ + dir = 8 + }, +/obj/machinery/door/firedoor/glass, +/obj/machinery/door/blast/regular/open{ + id = "tinycarrier_bridge" + }, +/obj/structure/window/titanium{ + dir = 1 + }, +/turf/simulated/floor/plating, +/area/submap/debrisfield/tinyshuttle/bridge) +"by" = ( +/obj/machinery/atmospherics/unary/vent_pump{ + dir = 4 + }, +/obj/effect/floor_decal/industrial/warning/dust, +/turf/simulated/floor/tiled/techmaint/airless, +/area/submap/debrisfield/tinyshuttle/hangar) +"bz" = ( +/obj/structure/handrail{ + dir = 8 + }, +/obj/structure/cable/green{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/hidden{ + dir = 9; + icon_state = "intact" + }, +/obj/machinery/light_switch{ + dir = 8; + pixel_x = 26; + pixel_y = 8 + }, +/obj/effect/floor_decal/industrial/warning/dust, +/turf/simulated/floor/tiled/techmaint/airless, +/area/submap/debrisfield/tinyshuttle/hangar) +"bA" = ( +/obj/structure/handrail{ + dir = 4 + }, +/obj/effect/floor_decal/industrial/warning/dust, +/turf/simulated/floor/tiled/techmaint/airless, +/area/submap/debrisfield/tinyshuttle/hangar) +"bB" = ( +/obj/structure/table/rack/steel, +/obj/item/weapon/storage/toolbox/mechanical{ + starts_with = list(/obj/item/weapon/tool/screwdriver,/obj/item/weapon/tool/wrench,/obj/item/weapon/tool/crowbar,/obj/item/device/analyzer,/obj/item/weapon/tool/wirecutters) + }, +/obj/item/device/t_scanner, +/obj/effect/floor_decal/corner/orange{ + dir = 9 + }, +/turf/simulated/floor/tiled/steel, +/area/submap/debrisfield/tinyshuttle/engine) +"bC" = ( +/obj/machinery/power/terminal{ + dir = 4 + }, +/obj/machinery/power/port_gen/pacman{ + anchored = 1 + }, +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 10 + }, +/obj/effect/floor_decal/corner/orange/full{ + dir = 1 + }, +/obj/machinery/light{ + dir = 1 + }, +/turf/simulated/floor/tiled/steel, +/area/submap/debrisfield/tinyshuttle/engine) +"bD" = ( +/obj/structure/cable/green{ + icon_state = "4-9" + }, +/obj/machinery/atmospherics/pipe/simple/hidden, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 5; + icon_state = "intact-scrubbers" + }, +/turf/simulated/floor/tiled/steel_ridged, +/area/submap/debrisfield/tinyshuttle/engine) +"bE" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/fuel, +/obj/machinery/atmospherics/pipe/simple/hidden/universal{ + dir = 8 + }, +/turf/simulated/wall/thull, +/area/submap/debrisfield/tinyshuttle/engine) +"bF" = ( +/obj/structure/cable/green{ + icon_state = "1-2" + }, +/obj/structure/grille, +/obj/structure/window/titanium/full, +/obj/structure/window/titanium, +/obj/machinery/door/blast/regular/open{ + dir = 4; + id = "tinycarrier_bridge" + }, +/turf/simulated/floor/plating, +/area/submap/debrisfield/tinyshuttle/bridge) +"bG" = ( +/obj/item/clothing/shoes/magboots, +/turf/simulated/floor/reinforced/airless, +/area/submap/debrisfield/tinyshuttle/hangar) +"bH" = ( +/turf/simulated/floor/reinforced/airless, +/area/submap/debrisfield/tinyshuttle/hangar) +"bI" = ( +/obj/machinery/power/apc{ + dir = 4; + name = "east bump"; + pixel_x = 28 + }, +/obj/structure/cable/green, +/turf/simulated/floor/reinforced/airless, +/area/submap/debrisfield/tinyshuttle/hangar) +"bJ" = ( +/obj/structure/cable/green{ + dir = 1; + icon_state = "4-8" + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 5; + icon_state = "intact-scrubbers" + }, +/obj/machinery/atmospherics/unary/vent_scrubber/on{ + dir = 8 + }, +/obj/effect/floor_decal/corner/orange{ + dir = 4 + }, +/turf/simulated/floor/tiled/steel_ridged, +/area/submap/debrisfield/tinyshuttle/engine) +"bK" = ( +/obj/machinery/atmospherics/portables_connector/fuel{ + icon_state = "map_connector-fuel"; + dir = 4 + }, +/obj/effect/floor_decal/corner/orange{ + dir = 9 + }, +/obj/effect/decal/cleanable/liquid_fuel, +/turf/simulated/floor/tiled/steel_dirty, +/area/submap/debrisfield/tinyshuttle/engine) +"bL" = ( +/obj/machinery/atmospherics/unary/vent_pump/on{ + dir = 8 + }, +/turf/simulated/floor/tiled/steel_ridged, +/area/submap/debrisfield/tinyshuttle/engine) +"bM" = ( +/obj/machinery/power/apc{ + dir = 4; + name = "east bump"; + pixel_x = 28 + }, +/obj/structure/cable/green{ + icon_state = "1-8" + }, +/obj/structure/cable/green, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 8 + }, +/obj/effect/floor_decal/corner/orange/full{ + dir = 1 + }, +/turf/simulated/floor/tiled/steel, +/area/submap/debrisfield/tinyshuttle/engine) +"bN" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/fuel{ + dir = 10; + icon_state = "intact-fuel" + }, +/obj/machinery/atmospherics/pipe/simple/hidden{ + dir = 5; + icon_state = "intact" + }, +/obj/effect/decal/cleanable/liquid_fuel, +/obj/item/device/multitool, +/turf/simulated/floor/tiled/steel_ridged, +/area/submap/debrisfield/tinyshuttle/engine) +"bO" = ( +/obj/machinery/alarm/alarms_hidden{ + dir = 8; + pixel_x = 24; + req_one_access = list() + }, +/turf/simulated/floor/reinforced/airless, +/area/submap/debrisfield/tinyshuttle/hangar) +"bP" = ( +/obj/structure/fans/hardlight, +/obj/machinery/door/blast/regular{ + id = "tinycarrier_hangar" + }, +/turf/simulated/floor/reinforced/airless, +/area/submap/debrisfield/tinyshuttle/hangar) +"bQ" = ( +/obj/structure/handrail{ + dir = 8 + }, +/obj/effect/floor_decal/corner/orange{ + dir = 6 + }, +/turf/simulated/floor/tiled/steel, +/area/submap/debrisfield/tinyshuttle/engine) +"bR" = ( +/obj/machinery/atmospherics/portables_connector/fuel{ + icon_state = "map_connector-fuel"; + dir = 4 + }, +/obj/machinery/portable_atmospherics/canister/empty/phoron{ + destroyed = 1; + health = 0; + icon_state = "orangeps-1" + }, +/obj/effect/decal/cleanable/liquid_fuel, +/obj/effect/floor_decal/corner/orange/full, +/turf/simulated/floor/tiled/steel_dirty, +/area/submap/debrisfield/tinyshuttle/engine) +"bS" = ( +/obj/machinery/atmospherics/pipe/manifold/hidden/fuel, +/obj/machinery/firealarm/alarms_hidden{ + dir = 1; + pixel_y = -24 + }, +/obj/effect/decal/cleanable/liquid_fuel, +/obj/effect/floor_decal/corner/orange{ + dir = 10 + }, +/turf/simulated/floor/tiled/steel_dirty, +/area/submap/debrisfield/tinyshuttle/engine) +"bT" = ( +/obj/machinery/atmospherics/pipe/manifold4w/hidden/fuel, +/turf/simulated/wall/thull, +/area/submap/debrisfield/tinyshuttle/engine) +"bU" = ( +/obj/structure/lattice, +/obj/machinery/atmospherics/pipe/vent{ + dir = 8 + }, +/turf/simulated/shuttle/plating/airless/carry, +/area/submap/debrisfield/tinyshuttle/engine) +"bV" = ( +/obj/machinery/firealarm/alarms_hidden{ + dir = 8; + pixel_x = 24 + }, +/turf/simulated/floor/reinforced/airless, +/area/submap/debrisfield/tinyshuttle/hangar) +"bW" = ( +/obj/mecha/combat/fighter/baron/loaded/busted{ + dir = 8; + dir_in = 8 + }, +/turf/simulated/floor/reinforced/airless, +/area/submap/debrisfield/tinyshuttle/hangar) +"bX" = ( +/obj/machinery/mech_recharger, +/turf/simulated/floor/reinforced/airless, +/area/submap/debrisfield/tinyshuttle/hangar) +"bY" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/fuel{ + dir = 5; + icon_state = "intact-fuel" + }, +/turf/simulated/wall/thull, +/area/submap/debrisfield/tinyshuttle/engine) +"bZ" = ( +/obj/machinery/mech_recharger, +/obj/machinery/light, +/turf/simulated/floor/reinforced/airless, +/area/submap/debrisfield/tinyshuttle/hangar) +"ca" = ( +/obj/effect/decal/cleanable/blood/gibs/robot, +/turf/simulated/floor/reinforced/airless, +/area/submap/debrisfield/tinyshuttle/hangar) +"cb" = ( +/turf/space, +/turf/simulated/shuttle/plating/airless/carry, +/area/submap/debrisfield/tinyshuttle/hangar) +"cc" = ( +/obj/structure/lattice, +/turf/simulated/shuttle/plating/airless/carry, +/area/submap/debrisfield/tinyshuttle/hangar) +"cd" = ( +/obj/structure/loot_pile/surface/drone{ + density = 1; + dir = 8; + icon = 'icons/mob/animal_vr64x64.dmi'; + icon_state = "drone"; + pixel_x = -16; + pixel_y = -16 + }, +/turf/simulated/floor/reinforced/airless, +/area/submap/debrisfield/tinyshuttle/hangar) +"ce" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/fuel{ + dir = 8; + icon_state = "intact-fuel" + }, +/obj/machinery/meter, +/obj/machinery/light_switch{ + dir = 1; + on = 0; + pixel_x = -10; + pixel_y = -24 + }, +/obj/effect/floor_decal/corner/orange/full{ + dir = 4 + }, +/obj/structure/fuel_port/empty_tank{ + pixel_x = 26 + }, +/turf/simulated/floor/tiled/steel_dirty, +/area/submap/debrisfield/tinyshuttle/engine) +"cf" = ( +/obj/item/weapon/material/shard/titaniumglass, +/turf/space, +/turf/simulated/shuttle/plating/airless/carry, +/area/submap/debrisfield/tinyshuttle/hangar) +"cg" = ( +/obj/structure/girder, +/turf/simulated/floor/airless, +/area/submap/debrisfield/tinyshuttle/hangar) +"ch" = ( +/obj/machinery/atmospherics/binary/pump/fuel{ + icon_state = "map_off-fuel"; + dir = 4 + }, +/obj/machinery/alarm/alarms_hidden{ + dir = 1; + pixel_y = -24 + }, +/obj/item/weapon/weldingtool/electric, +/obj/effect/floor_decal/corner/orange{ + dir = 10 + }, +/turf/simulated/floor/tiled/steel_dirty, +/area/submap/debrisfield/tinyshuttle/engine) +"ci" = ( +/obj/structure/lattice, +/mob/living/simple_mob/mechanical/combat_drone/lesser, +/turf/space, +/turf/simulated/shuttle/plating/airless/carry, +/area/submap/debrisfield/tinyshuttle/hangar) +"cj" = ( +/obj/effect/floor_decal/corner/brown{ + dir = 10 + }, +/turf/simulated/floor/tiled, +/area/submap/debrisfield/tinyshuttle/crew) +"ck" = ( +/obj/structure/prop{ + desc = "A man-sized pod for entering suspended animation. This one is room temperature."; + dir = 8; + icon = 'icons/obj/Cryogenic2_vr.dmi'; + icon_state = "cryopod_0"; + name = "cryogenic freezer" + }, +/obj/effect/floor_decal/corner/brown/full{ + dir = 4 + }, +/turf/simulated/floor/tiled, +/area/submap/debrisfield/tinyshuttle/crew) +"cl" = ( +/obj/effect/decal/mecha_wreckage/baron, +/turf/space, +/turf/simulated/shuttle/plating/airless/carry, +/area/submap/debrisfield/tinyshuttle/hangar) +"cm" = ( +/obj/structure/lattice, +/obj/item/weapon/material/shard/titaniumglass, +/turf/simulated/shuttle/plating/airless/carry, +/area/submap/debrisfield/tinyshuttle/hangar) + +(1,1,1) = {" +aa +aa +ao +bx +au +au +ao +aa +aa +aa +aa +aa +aa +aa +aa +"} +(2,1,1) = {" +ab +ac +ap +av +aH +aW +bF +ac +aV +aa +aa +aa +aa +aa +aa +"} +(3,1,1) = {" +aa +aa +ao +aw +aI +aX +ao +aa +aa +aa +aa +aa +aa +aa +aa +"} +(4,1,1) = {" +aa +aa +aq +ax +aJ +aY +ao +bp +ao +aa +aa +aa +aa +aa +aa +"} +(5,1,1) = {" +aa +ag +aq +ay +aK +aZ +ao +bn +ao +bi +bP +bP +bi +bi +aa +"} +(6,1,1) = {" +ad +ad +ad +ad +aO +ad +bi +bi +bi +bG +bH +bH +bH +bi +bi +"} +(7,1,1) = {" +ad +aj +as +aC +aP +bd +bi +br +bA +bW +bH +bX +bH +bZ +bi +"} +(8,1,1) = {" +ae +ak +at +aD +aQ +be +bi +bs +by +bH +bH +bH +bH +ca +cm +"} +(9,1,1) = {" +ad +al +ad +aE +aR +bf +bj +bq +bz +bI +bO +bV +bH +cc +cl +"} +(10,1,1) = {" +af +am +az +aF +aS +bg +bk +bk +bk +bk +bk +bk +cc +cb +cb +"} +(11,1,1) = {" +ai +an +ad +aG +aT +bl +bk +bt +bB +bK +bR +bk +cc +cf +cb +"} +(12,1,1) = {" +ad +ar +aA +aL +ba +bm +bo +bw +bD +bN +bS +bk +cc +ci +cf +"} +(13,1,1) = {" +ad +ad +aB +aM +bb +cj +bk +bC +bJ +bL +ch +bk +bH +cc +cb +"} +(14,1,1) = {" +aa +ad +ad +aN +bc +ck +bk +bu +bM +bQ +ce +bi +cd +bH +cc +"} +(15,1,1) = {" +aa +aa +ad +ad +aU +bh +bh +bv +bE +bv +bT +bh +bY +bi +cg +"} +(16,1,1) = {" +aa +aa +aa +ad +ah +ah +ah +bk +bU +bk +ah +ah +ah +bi +aa +"} diff --git a/maps/submaps/shelters/shelter_cab.dmm b/maps/submaps/shelters/shelter_cab.dmm new file mode 100644 index 0000000000..829f7cb588 --- /dev/null +++ b/maps/submaps/shelters/shelter_cab.dmm @@ -0,0 +1,203 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"a" = ( +/turf/simulated/shuttle/wall/voidcraft/survival, +/area/survivalpod) +"b" = ( +/obj/structure/bed/chair/comfy/brown{ + dir = 4 + }, +/turf/simulated/floor/wood, +/area/survivalpod) +"f" = ( +/obj/structure/table/woodentable, +/obj/item/weapon/reagent_containers/food/drinks/bottle/wine, +/obj/item/weapon/reagent_containers/food/drinks/drinkingglass{ + pixel_x = 4 + }, +/obj/item/weapon/reagent_containers/food/drinks/drinkingglass{ + pixel_x = -4 + }, +/turf/simulated/floor/wood, +/area/survivalpod) +"m" = ( +/obj/structure/table/woodentable, +/obj/machinery/status_display{ + pixel_y = 32 + }, +/obj/item/weapon/reagent_containers/food/snacks/pastatomato, +/obj/item/weapon/reagent_containers/food/snacks/pastatomato, +/turf/simulated/floor/wood, +/area/survivalpod) +"u" = ( +/obj/structure/bed/double/padded, +/obj/item/weapon/bedsheet/browndouble, +/turf/simulated/floor/wood, +/area/survivalpod) +"v" = ( +/obj/structure/window/reinforced/survival_pod{ + dir = 8 + }, +/obj/machinery/washing_machine, +/turf/simulated/floor/tiled/white, +/area/survivalpod) +"w" = ( +/obj/machinery/door/airlock/voidcraft/survival_pod{ + destroy_hits = 100; + glass = 0; + id_tag = "shelter_gamma" + }, +/obj/effect/floor_decal/industrial/danger/full, +/obj/structure/fans/tiny, +/turf/simulated/shuttle/floor/voidcraft, +/area/survivalpod) +"x" = ( +/obj/structure/bed/chair/comfy/brown{ + dir = 8 + }, +/obj/machinery/light{ + dir = 1 + }, +/turf/simulated/floor/wood, +/area/survivalpod) +"z" = ( +/obj/structure/sink{ + dir = 4; + pixel_x = 11 + }, +/obj/structure/mirror{ + dir = 4; + pixel_x = 24 + }, +/obj/structure/window/reinforced/survival_pod{ + dir = 1 + }, +/turf/simulated/floor/tiled/white, +/area/survivalpod) +"F" = ( +/obj/machinery/door/window/survival_pod{ + dir = 8 + }, +/obj/machinery/door/window/survival_pod{ + dir = 1 + }, +/turf/simulated/floor/tiled/white, +/area/survivalpod) +"M" = ( +/obj/machinery/light{ + dir = 4 + }, +/obj/structure/closet/secure_closet/personal, +/obj/item/weapon/towel/random, +/turf/simulated/floor/wood, +/area/survivalpod) +"N" = ( +/obj/structure/table/woodentable, +/obj/item/weapon/storage/box/donkpockets, +/obj/item/weapon/storage/box/donkpockets{ + pixel_x = 3; + pixel_y = -3 + }, +/obj/machinery/button/remote/airlock/survival_pod{ + dir = 10; + id = "shelter_gamma"; + pixel_y = -24 + }, +/turf/simulated/floor/wood, +/area/survivalpod) +"P" = ( +/obj/structure/bed/chair/comfy/brown{ + dir = 8 + }, +/turf/simulated/floor/wood, +/area/survivalpod) +"Q" = ( +/obj/machinery/shower{ + dir = 1 + }, +/obj/structure/curtain, +/obj/random/soap, +/turf/simulated/floor/tiled/white, +/area/survivalpod) +"R" = ( +/obj/structure/table/woodentable, +/obj/item/toy/plushie/kitten, +/turf/simulated/floor/wood, +/area/survivalpod) +"S" = ( +/turf/simulated/floor/wood, +/area/survivalpod) +"V" = ( +/obj/machinery/light{ + dir = 8 + }, +/turf/simulated/floor/wood, +/area/survivalpod) +"W" = ( +/obj/structure/table/woodentable, +/obj/machinery/microwave, +/turf/simulated/floor/wood, +/area/survivalpod) + +(1,1,1) = {" +a +a +a +a +a +a +a +"} +(2,1,1) = {" +a +b +b +V +S +W +a +"} +(3,1,1) = {" +a +m +f +S +S +N +a +"} +(4,1,1) = {" +a +x +P +S +S +S +w +"} +(5,1,1) = {" +a +S +S +S +F +v +a +"} +(6,1,1) = {" +a +R +u +M +z +Q +a +"} +(7,1,1) = {" +a +a +a +a +a +a +a +"} diff --git a/maps/submaps/surface_submaps/mountains/Cliff1.dmm b/maps/submaps/surface_submaps/mountains/Cliff1.dmm index 2b6f57b9f1..1897f0ab17 100644 --- a/maps/submaps/surface_submaps/mountains/Cliff1.dmm +++ b/maps/submaps/surface_submaps/mountains/Cliff1.dmm @@ -1,23 +1,25 @@ "a" = (/turf/template_noop,/area/template_noop) "b" = (/turf/simulated/mineral/floor/ignore_mapgen,/area/template_noop) -"c" = (/obj/item/weapon/ore,/turf/simulated/mineral/floor/ignore_mapgen,/area/template_noop) -"d" = (/obj/random/outcrop,/turf/simulated/mineral/floor/ignore_mapgen,/area/template_noop) -"e" = (/obj/structure/cliff/automatic/corner,/turf/simulated/mineral/floor/ignore_mapgen,/area/template_noop) -"f" = (/obj/structure/cliff/automatic{icon_state = "cliffbuilder"; dir = 5},/turf/simulated/mineral/floor/ignore_mapgen,/area/template_noop) -"g" = (/obj/structure/cliff/automatic{icon_state = "cliffbuilder"; dir = 9},/turf/simulated/mineral/floor/ignore_mapgen,/area/template_noop) -"h" = (/obj/structure/cliff/automatic,/turf/simulated/mineral/floor/ignore_mapgen,/area/template_noop) -"i" = (/obj/structure/cliff/automatic/corner{icon_state = "cliffbuilder-corner"; dir = 9},/turf/simulated/mineral/floor/ignore_mapgen,/area/template_noop) -"j" = (/obj/random/humanoidremains{spawn_nothing_percentage = 70},/turf/simulated/mineral/floor/ignore_mapgen,/area/template_noop) +"c" = (/obj/item/weapon/ore,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/ore_cliff) +"d" = (/obj/random/outcrop,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/ore_cliff) +"e" = (/obj/structure/cliff/automatic/corner,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/ore_cliff) +"f" = (/obj/structure/cliff/automatic{icon_state = "cliffbuilder"; dir = 5},/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/ore_cliff) +"g" = (/obj/structure/cliff/automatic{icon_state = "cliffbuilder"; dir = 9},/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/ore_cliff) +"h" = (/obj/structure/cliff/automatic,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/ore_cliff) +"i" = (/obj/structure/cliff/automatic/corner{icon_state = "cliffbuilder-corner"; dir = 9},/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/ore_cliff) +"j" = (/obj/random/humanoidremains{spawn_nothing_percentage = 70},/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/ore_cliff) +"k" = (/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/ore_cliff) (1,1,1) = {" aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa abbbbabbbbbbbaabbbbbbbbaaabbaa -aabcbbbdbcbbbbbbdbbcdbbbbcbbaa -aabefcbbbbbdbbcbbbbbbcghhhibaa -aabcehhfbbbbbbbbbcghhhibbbcbaa -aaajbbbehfbcbghhhhibbbcjbbbaaa -aaaaabbcbehhhibbbbbbcbbbbaaaaa -aaaaaaacbbbjbbcbbcbbbaaaaaaaaa +aakckkbdbcbbbbbbdbbcdbbkkckkaa +aakefckkkbbdbbcbbbkkkcghhhikaa +aakcehhfkkkkkkkkkcghhhikkkckaa +aaajkkkehfkckghhhhikkkcjbbbaaa +aaaaabkckehhhikkkkkkcbbbbaaaaa +aaaaaaackkkjkkcbbcbbbaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa "} + diff --git a/maps/submaps/surface_submaps/mountains/Geyser1.dmm b/maps/submaps/surface_submaps/mountains/Geyser1.dmm index 32a4bb18d0..c61b3d11a1 100644 --- a/maps/submaps/surface_submaps/mountains/Geyser1.dmm +++ b/maps/submaps/surface_submaps/mountains/Geyser1.dmm @@ -1,10 +1,10 @@ "a" = (/turf/template_noop,/area/template_noop) -"b" = (/turf/simulated/floor/outdoors/rocks/caves,/area/template_noop) -"c" = (/obj/random/turf/lava,/turf/simulated/floor/outdoors/rocks/caves,/area/template_noop) -"d" = (/obj/random/outcrop,/obj/random/turf/lava,/turf/simulated/floor/outdoors/rocks/caves,/area/template_noop) -"e" = (/obj/random/outcrop,/turf/simulated/floor/outdoors/rocks/caves,/area/template_noop) -"f" = (/obj/effect/map_effect/interval/effect_emitter/steam,/obj/effect/map_effect/interval/effect_emitter/smoke/mist{interval_upper_bound = 600},/obj/effect/map_effect/interval/effect_emitter/smoke/bad{interval_lower_bound = 100; interval_upper_bound = 3000},/obj/effect/map_effect/interval/screen_shaker{interval_upper_bound = 600},/turf/simulated/floor/water/deep{outdoors = 0},/area/template_noop) -"g" = (/obj/random/turf/lava,/obj/random/outcrop,/turf/simulated/floor/outdoors/rocks/caves,/area/template_noop) +"b" = (/turf/simulated/floor/outdoors/rocks/caves,/area/submap/geyser_1) +"c" = (/obj/random/turf/lava,/turf/simulated/floor/outdoors/rocks/caves,/area/submap/geyser_1) +"d" = (/obj/random/outcrop,/obj/random/turf/lava,/turf/simulated/floor/outdoors/rocks/caves,/area/submap/geyser_1) +"e" = (/obj/random/outcrop,/turf/simulated/floor/outdoors/rocks/caves,/area/submap/geyser_1) +"f" = (/obj/effect/map_effect/interval/effect_emitter/steam,/obj/effect/map_effect/interval/effect_emitter/smoke/mist{interval_upper_bound = 600},/obj/effect/map_effect/interval/effect_emitter/smoke/bad{interval_lower_bound = 100; interval_upper_bound = 3000},/obj/effect/map_effect/interval/screen_shaker{interval_upper_bound = 600},/turf/simulated/floor/water/deep{outdoors = 0},/area/submap/geyser_1) +"g" = (/obj/random/turf/lava,/obj/random/outcrop,/turf/simulated/floor/outdoors/rocks/caves,/area/submap/geyser_1) (1,1,1) = {" accbdca diff --git a/maps/submaps/surface_submaps/mountains/Geyser2.dmm b/maps/submaps/surface_submaps/mountains/Geyser2.dmm index ddc99e4eb4..339736597f 100644 --- a/maps/submaps/surface_submaps/mountains/Geyser2.dmm +++ b/maps/submaps/surface_submaps/mountains/Geyser2.dmm @@ -1,16 +1,16 @@ "a" = (/turf/template_noop,/area/template_noop) -"b" = (/obj/random/turf/lava,/turf/simulated/floor/outdoors/rocks/caves,/area/template_noop) -"c" = (/turf/simulated/floor/outdoors/rocks/caves,/area/template_noop) -"d" = (/obj/structure/fence/corner{icon_state = "corner"; dir = 9},/turf/simulated/floor/outdoors/rocks/caves,/area/template_noop) -"e" = (/obj/structure/fence{icon_state = "straight"; dir = 8},/turf/simulated/floor/outdoors/rocks/caves,/area/template_noop) -"f" = (/obj/structure/fence/corner{icon_state = "corner"; dir = 5},/turf/simulated/floor/outdoors/rocks/caves,/area/template_noop) -"g" = (/obj/structure/fence/cut/large,/turf/simulated/floor/outdoors/rocks/caves,/area/template_noop) -"h" = (/mob/living/simple_mob/mechanical/viscerator,/turf/simulated/floor/outdoors/rocks/caves,/area/template_noop) -"i" = (/obj/structure/fence,/turf/simulated/floor/outdoors/rocks/caves,/area/template_noop) -"j" = (/obj/structure/fence/corner{icon_state = "corner"; dir = 10},/turf/simulated/floor/outdoors/rocks/caves,/area/template_noop) -"k" = (/obj/structure/fence/door/locked,/turf/simulated/floor/outdoors/rocks/caves,/area/template_noop) -"l" = (/obj/structure/fence/corner{icon_state = "corner"; dir = 6},/turf/simulated/floor/outdoors/rocks/caves,/area/template_noop) -"m" = (/obj/effect/map_effect/interval/effect_emitter/steam,/obj/effect/map_effect/interval/effect_emitter/smoke/mist{interval_upper_bound = 600},/obj/effect/map_effect/interval/effect_emitter/smoke/bad{interval_lower_bound = 100; interval_upper_bound = 3000},/obj/effect/map_effect/interval/screen_shaker{interval_upper_bound = 600},/obj/random/humanoidremains,/obj/random/medical/lite,/turf/simulated/floor/water/deep{outdoors = 0},/area/template_noop) +"b" = (/obj/random/turf/lava,/turf/simulated/floor/outdoors/rocks/caves,/area/submap/geyser_2) +"c" = (/turf/simulated/floor/outdoors/rocks/caves,/area/submap/geyser_2) +"d" = (/obj/structure/fence/corner{icon_state = "corner"; dir = 9},/turf/simulated/floor/outdoors/rocks/caves,/area/submap/geyser_2) +"e" = (/obj/structure/fence{icon_state = "straight"; dir = 8},/turf/simulated/floor/outdoors/rocks/caves,/area/submap/geyser_2) +"f" = (/obj/structure/fence/corner{icon_state = "corner"; dir = 5},/turf/simulated/floor/outdoors/rocks/caves,/area/submap/geyser_2) +"g" = (/obj/structure/fence/cut/large,/turf/simulated/floor/outdoors/rocks/caves,/area/submap/geyser_2) +"h" = (/mob/living/simple_mob/mechanical/viscerator,/turf/simulated/floor/outdoors/rocks/caves,/area/submap/geyser_2) +"i" = (/obj/structure/fence,/turf/simulated/floor/outdoors/rocks/caves,/area/submap/geyser_2) +"j" = (/obj/structure/fence/corner{icon_state = "corner"; dir = 10},/turf/simulated/floor/outdoors/rocks/caves,/area/submap/geyser_2) +"k" = (/obj/structure/fence/door/locked,/turf/simulated/floor/outdoors/rocks/caves,/area/submap/geyser_2) +"l" = (/obj/structure/fence/corner{icon_state = "corner"; dir = 6},/turf/simulated/floor/outdoors/rocks/caves,/area/submap/geyser_2) +"m" = (/obj/effect/map_effect/interval/effect_emitter/steam,/obj/effect/map_effect/interval/effect_emitter/smoke/mist{interval_upper_bound = 600},/obj/effect/map_effect/interval/effect_emitter/smoke/bad{interval_lower_bound = 100; interval_upper_bound = 3000},/obj/effect/map_effect/interval/screen_shaker{interval_upper_bound = 600},/obj/random/humanoidremains,/obj/random/medical/lite,/turf/simulated/floor/water/deep{outdoors = 0},/area/submap/geyser_2) (1,1,1) = {" abbcbba diff --git a/maps/submaps/surface_submaps/mountains/Geyser3.dmm b/maps/submaps/surface_submaps/mountains/Geyser3.dmm index 00abb7bf98..70047b220a 100644 --- a/maps/submaps/surface_submaps/mountains/Geyser3.dmm +++ b/maps/submaps/surface_submaps/mountains/Geyser3.dmm @@ -1,21 +1,21 @@ "a" = (/turf/template_noop,/area/template_noop) -"b" = (/obj/structure/cliff/automatic{icon_state = "cliffbuilder"; dir = 9},/turf/simulated/floor/outdoors/rocks/caves,/area/template_noop) -"c" = (/obj/structure/cliff/automatic,/turf/simulated/floor/outdoors/rocks/caves,/area/template_noop) -"d" = (/obj/random/turf/lava,/turf/simulated/floor/outdoors/rocks/caves,/area/template_noop) -"e" = (/obj/structure/cliff/automatic{icon_state = "cliffbuilder"; dir = 5},/turf/simulated/floor/outdoors/rocks/caves,/area/template_noop) -"f" = (/obj/structure/cliff/automatic/corner{icon_state = "cliffbuilder-corner"; dir = 9},/turf/simulated/floor/outdoors/rocks/caves,/area/template_noop) -"g" = (/turf/simulated/floor/lava,/area/template_noop) -"h" = (/turf/simulated/floor/outdoors/rocks/caves,/area/template_noop) -"i" = (/obj/structure/cliff/automatic/corner,/turf/simulated/floor/outdoors/rocks/caves,/area/template_noop) -"j" = (/obj/structure/cliff/automatic{icon_state = "cliffbuilder"; dir = 8},/turf/simulated/floor/outdoors/rocks/caves,/area/template_noop) -"k" = (/obj/structure/cliff/automatic{icon_state = "cliffbuilder"; dir = 4},/turf/simulated/floor/outdoors/rocks/caves,/area/template_noop) -"l" = (/obj/effect/map_effect/interval/effect_emitter/steam,/obj/effect/map_effect/interval/effect_emitter/smoke/bad{interval_lower_bound = 100; interval_upper_bound = 3000},/obj/effect/map_effect/interval/screen_shaker{interval_upper_bound = 600},/obj/effect/map_effect/interval/effect_emitter/smoke/fire{interval_upper_bound = 1200},/turf/simulated/floor/lava,/area/template_noop) -"m" = (/obj/structure/cliff/automatic{icon_state = "cliffbuilder"; dir = 10},/turf/simulated/floor/outdoors/rocks/caves,/area/template_noop) -"n" = (/obj/structure/cliff/automatic/corner{icon_state = "cliffbuilder-corner"; dir = 10},/turf/simulated/floor/outdoors/rocks/caves,/area/template_noop) -"o" = (/obj/structure/cliff/automatic/corner{icon_state = "cliffbuilder-corner"; dir = 6},/turf/simulated/floor/outdoors/rocks/caves,/area/template_noop) -"p" = (/obj/structure/cliff/automatic{icon_state = "cliffbuilder"; dir = 6},/turf/simulated/floor/outdoors/rocks/caves,/area/template_noop) -"q" = (/obj/structure/cliff/automatic{icon_state = "cliffbuilder"; dir = 2},/turf/simulated/floor/outdoors/rocks/caves,/area/template_noop) -"r" = (/obj/random/multiple/minevault,/turf/simulated/floor/outdoors/rocks/caves,/area/template_noop) +"b" = (/obj/structure/cliff/automatic{icon_state = "cliffbuilder"; dir = 9},/turf/simulated/floor/outdoors/rocks/caves,/area/submap/geyser_3) +"c" = (/obj/structure/cliff/automatic,/turf/simulated/floor/outdoors/rocks/caves,/area/submap/geyser_3) +"d" = (/obj/random/turf/lava,/turf/simulated/floor/outdoors/rocks/caves,/area/submap/geyser_3) +"e" = (/obj/structure/cliff/automatic{icon_state = "cliffbuilder"; dir = 5},/turf/simulated/floor/outdoors/rocks/caves,/area/submap/geyser_3) +"f" = (/obj/structure/cliff/automatic/corner{icon_state = "cliffbuilder-corner"; dir = 9},/turf/simulated/floor/outdoors/rocks/caves,/area/submap/geyser_3) +"g" = (/turf/simulated/floor/lava,/area/submap/geyser_3) +"h" = (/turf/simulated/floor/outdoors/rocks/caves,/area/submap/geyser_3) +"i" = (/obj/structure/cliff/automatic/corner,/turf/simulated/floor/outdoors/rocks/caves,/area/submap/geyser_3) +"j" = (/obj/structure/cliff/automatic{icon_state = "cliffbuilder"; dir = 8},/turf/simulated/floor/outdoors/rocks/caves,/area/submap/geyser_3) +"k" = (/obj/structure/cliff/automatic{icon_state = "cliffbuilder"; dir = 4},/turf/simulated/floor/outdoors/rocks/caves,/area/submap/geyser_3) +"l" = (/obj/effect/map_effect/interval/effect_emitter/steam,/obj/effect/map_effect/interval/effect_emitter/smoke/bad{interval_lower_bound = 100; interval_upper_bound = 3000},/obj/effect/map_effect/interval/screen_shaker{interval_upper_bound = 600},/obj/effect/map_effect/interval/effect_emitter/smoke/fire{interval_upper_bound = 1200},/turf/simulated/floor/lava,/area/submap/geyser_3) +"m" = (/obj/structure/cliff/automatic{icon_state = "cliffbuilder"; dir = 10},/turf/simulated/floor/outdoors/rocks/caves,/area/submap/geyser_3) +"n" = (/obj/structure/cliff/automatic/corner{icon_state = "cliffbuilder-corner"; dir = 10},/turf/simulated/floor/outdoors/rocks/caves,/area/submap/geyser_3) +"o" = (/obj/structure/cliff/automatic/corner{icon_state = "cliffbuilder-corner"; dir = 6},/turf/simulated/floor/outdoors/rocks/caves,/area/submap/geyser_3) +"p" = (/obj/structure/cliff/automatic{icon_state = "cliffbuilder"; dir = 6},/turf/simulated/floor/outdoors/rocks/caves,/area/submap/geyser_3) +"q" = (/obj/structure/cliff/automatic{icon_state = "cliffbuilder"; dir = 2},/turf/simulated/floor/outdoors/rocks/caves,/area/submap/geyser_3) +"r" = (/obj/random/multiple/minevault,/turf/simulated/floor/outdoors/rocks/caves,/area/submap/geyser_3) (1,1,1) = {" abcdcea diff --git a/maps/submaps/surface_submaps/mountains/mountains.dm b/maps/submaps/surface_submaps/mountains/mountains.dm index 34f151a17f..83447b714c 100644 --- a/maps/submaps/surface_submaps/mountains/mountains.dm +++ b/maps/submaps/surface_submaps/mountains/mountains.dm @@ -25,6 +25,7 @@ #include "vault3.dmm" #include "vault4.dmm" #include "vault5.dmm" +#include "vault6.dmm" #include "IceCave1A.dmm" #include "IceCave1B.dmm" #include "IceCave1C.dmm" diff --git a/maps/submaps/surface_submaps/mountains/mountains_areas.dm b/maps/submaps/surface_submaps/mountains/mountains_areas.dm index 04c8568513..d39e38823b 100644 --- a/maps/submaps/surface_submaps/mountains/mountains_areas.dm +++ b/maps/submaps/surface_submaps/mountains/mountains_areas.dm @@ -96,6 +96,10 @@ name = "POI - Mine Vault" ambience = AMBIENCE_FOREBODING +/area/submap/cave/vault6 + name = "POI - Mine Vault" + ambience = AMBIENCE_FOREBODING + /area/submap/cave/IceCave1A name = "POI - Ice Cave 1A" ambience = AMBIENCE_SPACE @@ -123,6 +127,22 @@ name = "POI - Crashed Containment Shuttle" ambience = AMBIENCE_HIGHSEC +/area/submap/geyser_1 + name = "POI - Ore-Rich Geyser" + ambience = AMBIENCE_RUINS + +/area/submap/geyser_2 + name = "POI - Fenced Geyser" + ambience = AMBIENCE_RUINS + +/area/submap/geyser_3 + name = "POI - Magmatic Geyser" + ambience = AMBIENCE_RUINS + +/area/submap/ore_cliff + name = "POI - Ore-Topped Cliff" + ambience = AMBIENCE_RUINS + /area/submap/deadspy name = "POI - Dead Spy" ambience = AMBIENCE_FOREBODING diff --git a/maps/submaps/surface_submaps/mountains/vault6.dmm b/maps/submaps/surface_submaps/mountains/vault6.dmm index b39128369e..c1ae439301 100644 --- a/maps/submaps/surface_submaps/mountains/vault6.dmm +++ b/maps/submaps/surface_submaps/mountains/vault6.dmm @@ -1,22 +1,22 @@ "a" = (/turf/template_noop,/area/template_noop) -"b" = (/obj/structure/cliff/automatic/corner{icon_state = "cliffbuilder-corner"; dir = 6},/turf/simulated/mineral/floor/ignore_mapgen,/area/template_noop) -"c" = (/obj/structure/cliff/automatic{icon_state = "cliffbuilder"; dir = 2},/turf/simulated/mineral/floor/ignore_mapgen,/area/template_noop) -"d" = (/obj/structure/cliff/automatic/corner{icon_state = "cliffbuilder-corner"; dir = 10},/turf/simulated/mineral/floor/ignore_mapgen,/area/template_noop) -"e" = (/obj/structure/cliff/automatic{icon_state = "cliffbuilder"; dir = 6},/turf/simulated/mineral/floor/ignore_mapgen,/area/template_noop) -"f" = (/turf/simulated/mineral/floor/ignore_mapgen,/area/template_noop) -"g" = (/obj/structure/cliff/automatic{icon_state = "cliffbuilder"; dir = 10},/turf/simulated/mineral/floor/ignore_mapgen,/area/template_noop) -"h" = (/obj/structure/cliff/automatic{icon_state = "cliffbuilder"; dir = 4},/turf/simulated/mineral/floor/ignore_mapgen,/area/template_noop) -"i" = (/mob/living/simple_mob/humanoid/merc/ranged/grenadier,/turf/simulated/floor/cult,/area/template_noop) -"j" = (/turf/simulated/floor/cult,/area/template_noop) -"k" = (/obj/random/tool/power,/obj/random/tech_supply,/turf/simulated/floor/cult,/area/template_noop) -"l" = (/obj/structure/cliff/automatic{icon_state = "cliffbuilder"; dir = 8},/turf/simulated/mineral/floor/ignore_mapgen,/area/template_noop) -"m" = (/obj/structure/bonfire/permanent/sifwood,/obj/structure/grille/rustic,/turf/simulated/floor/cult,/area/template_noop) -"n" = (/obj/random/multiple/minevault,/turf/simulated/floor/cult,/area/template_noop) -"o" = (/obj/structure/cliff/automatic/corner,/turf/simulated/mineral/floor/ignore_mapgen,/area/template_noop) -"p" = (/obj/structure/cliff/automatic{icon_state = "cliffbuilder"; dir = 5},/turf/simulated/mineral/floor/ignore_mapgen,/area/template_noop) -"q" = (/obj/structure/cliff/automatic{icon_state = "cliffbuilder"; dir = 9},/turf/simulated/mineral/floor/ignore_mapgen,/area/template_noop) -"r" = (/obj/structure/cliff/automatic/corner{icon_state = "cliffbuilder-corner"; dir = 9},/turf/simulated/mineral/floor/ignore_mapgen,/area/template_noop) -"s" = (/obj/structure/cliff/automatic,/turf/simulated/mineral/floor/ignore_mapgen,/area/template_noop) +"b" = (/obj/structure/cliff/automatic/corner{icon_state = "cliffbuilder-corner"; dir = 6},/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/vault6) +"c" = (/obj/structure/cliff/automatic{icon_state = "cliffbuilder"; dir = 2},/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/vault6) +"d" = (/obj/structure/cliff/automatic/corner{icon_state = "cliffbuilder-corner"; dir = 10},/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/vault6) +"e" = (/obj/structure/cliff/automatic{icon_state = "cliffbuilder"; dir = 6},/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/vault6) +"f" = (/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/vault6) +"g" = (/obj/structure/cliff/automatic{icon_state = "cliffbuilder"; dir = 10},/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/vault6) +"h" = (/obj/structure/cliff/automatic{icon_state = "cliffbuilder"; dir = 4},/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/vault6) +"i" = (/mob/living/simple_mob/humanoid/merc/ranged/grenadier,/turf/simulated/floor/cult,/area/submap/cave/vault6) +"j" = (/turf/simulated/floor/cult,/area/submap/cave/vault6) +"k" = (/obj/random/tool/power,/obj/random/tech_supply,/turf/simulated/floor/cult,/area/submap/cave/vault6) +"l" = (/obj/structure/cliff/automatic{icon_state = "cliffbuilder"; dir = 8},/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/vault6) +"m" = (/obj/structure/bonfire/permanent/sifwood,/obj/structure/grille/rustic,/turf/simulated/floor/cult,/area/submap/cave/vault6) +"n" = (/obj/random/multiple/minevault,/turf/simulated/floor/cult,/area/submap/cave/vault6) +"o" = (/obj/structure/cliff/automatic/corner,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/vault6) +"p" = (/obj/structure/cliff/automatic{icon_state = "cliffbuilder"; dir = 5},/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/vault6) +"q" = (/obj/structure/cliff/automatic{icon_state = "cliffbuilder"; dir = 9},/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/vault6) +"r" = (/obj/structure/cliff/automatic/corner{icon_state = "cliffbuilder-corner"; dir = 9},/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/vault6) +"s" = (/obj/structure/cliff/automatic,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/vault6) (1,1,1) = {" aaaaaaaaa diff --git a/maps/tether/submaps/_tether_submaps.dm b/maps/tether/submaps/_tether_submaps.dm index 09d91c34a5..7efbd531f6 100644 --- a/maps/tether/submaps/_tether_submaps.dm +++ b/maps/tether/submaps/_tether_submaps.dm @@ -69,6 +69,11 @@ desc = "Big trader ship." mappath = 'maps/submaps/admin_use_vr/tradeship.dmm' +/datum/map_template/admin_use/salamander_trader + name = "Special Area - Salamander Trader" + desc = "Modest trader ship." + mappath = 'maps/offmap_vr/om_ships/salamander.dmm' + /datum/map_template/admin_use/mercenary name = "Special Area - Merc Ship" desc = "Prepare tae be boarded, arr!" @@ -254,7 +259,7 @@ /datum/map_template/tether_lateload/away_debrisfield/on_map_loaded(z) . = ..() //Commented out until we actually get POIs - seed_submaps(list(Z_LEVEL_DEBRISFIELD), 200, /area/tether_away/debrisfield/unexplored, /datum/map_template/debrisfield) + seed_submaps(list(Z_LEVEL_DEBRISFIELD), 400, /area/space, /datum/map_template/debrisfield) /datum/map_z_level/tether_lateload/away_debrisfield name = "Away Mission - Debris Field" @@ -452,8 +457,9 @@ if(my_mob && my_mob.stat != DEAD) return //No need - if(LAZYLEN(loc.human_mobs(world.view))) - return //I'll wait. + for(var/mob/living/L in view(src,world.view)) + if(L.client) + return //I'll wait. if(prob(prob_spawn)) prob_spawn -= prob_fall @@ -527,6 +533,7 @@ #include "../../offmap_vr/om_ships/cruiser.dm" #include "../../offmap_vr/om_ships/vespa.dm" #include "../../offmap_vr/om_ships/generic_shuttle.dm" +#include "../../offmap_vr/om_ships/salamander.dm" #include "../../offmap_vr/om_ships/geckos.dm" #include "../../offmap_vr/om_ships/mackerels.dm" #include "../../offmap_vr/om_ships/mercenarybase.dm" diff --git a/maps/tether/submaps/tether_misc.dmm b/maps/tether/submaps/tether_misc.dmm index 4ec9ca9d3a..37bdb7e06e 100644 --- a/maps/tether/submaps/tether_misc.dmm +++ b/maps/tether/submaps/tether_misc.dmm @@ -1932,6 +1932,10 @@ /obj/item/toy/chess/rook_white, /turf/simulated/floor/holofloor/wmarble, /area/holodeck/source_chess) +"nn" = ( +/obj/machinery/telecomms/allinone/antag, +/turf/unsimulated/floor/steel, +/area/centcom/control) "nV" = ( /obj/item/toy/chess/rook_black, /turf/simulated/floor/holofloor/wmarble, @@ -19086,7 +19090,7 @@ ae wy HQ Ga -Ga +nn wl Up Vj diff --git a/maps/tether/submaps/tether_plains.dmm b/maps/tether/submaps/tether_plains.dmm index 784fcc9e91..40614ab1eb 100644 --- a/maps/tether/submaps/tether_plains.dmm +++ b/maps/tether/submaps/tether_plains.dmm @@ -37,7 +37,6 @@ dir = 1; id = "wilderness"; name = "Anti-Fauna shutters"; - pixel_x = 0; pixel_y = -25 }, /turf/simulated/floor/tiled/steel_dirty/virgo3b, @@ -45,8 +44,7 @@ "aj" = ( /obj/effect/floor_decal/rust, /obj/machinery/light/small{ - dir = 8; - pixel_x = 0 + dir = 8 }, /turf/simulated/floor/tiled/steel_dirty/virgo3b, /area/tether/outpost/exploration_shed) @@ -99,7 +97,6 @@ /area/tether/outpost/exploration_shed) "aq" = ( /obj/machinery/button/remote/blast_door{ - dir = 2; id = "wilderness"; name = "Anti-Fauna shutters"; pixel_x = -1; @@ -123,6 +120,9 @@ "bF" = ( /turf/simulated/mineral/virgo3b, /area/mine/unexplored) +"Al" = ( +/turf/simulated/mineral/virgo3b, +/area/mine/explored) "BE" = ( /mob/living/simple_mob/animal/space/goose/virgo3b, /turf/simulated/floor/outdoors/grass/sif/virgo3b, @@ -131,6 +131,9 @@ /mob/living/simple_mob/animal/passive/gaslamp, /turf/simulated/floor/outdoors/grass/sif/virgo3b, /area/tether/outpost/exploration_plains) +"ID" = ( +/turf/simulated/mineral/virgo3b, +/area/tether/outpost/exploration_shed) (1,1,1) = {" as @@ -418,7 +421,7 @@ ac "} (3,1,1) = {" as -bF +Al bF bF bF @@ -560,7 +563,7 @@ ac "} (4,1,1) = {" as -bF +Al bF bF bF @@ -702,7 +705,7 @@ ac "} (5,1,1) = {" as -bF +Al bF bF bF @@ -844,7 +847,7 @@ ac "} (6,1,1) = {" as -bF +Al bF bF bF @@ -986,7 +989,7 @@ ac "} (7,1,1) = {" as -bF +Al ad ad bF @@ -1128,7 +1131,7 @@ ac "} (8,1,1) = {" as -ad +Al ad ad ad @@ -1270,7 +1273,7 @@ ac "} (9,1,1) = {" as -ad +Al ad ad ad @@ -1412,7 +1415,7 @@ ac "} (10,1,1) = {" as -ab +Al ad ad ab @@ -1554,8 +1557,8 @@ ac "} (11,1,1) = {" as -ab -ab +Al +ad ab ab ab @@ -1696,8 +1699,8 @@ ac "} (12,1,1) = {" as -ab -ab +Al +ad ab ab ab @@ -1838,8 +1841,8 @@ ac "} (13,1,1) = {" as -ab -ab +Al +ad ab ab ab @@ -1980,8 +1983,8 @@ ac "} (14,1,1) = {" as -ab -ab +Al +ad ab ab ab @@ -2122,8 +2125,8 @@ ac "} (15,1,1) = {" as -ab -ab +Al +ad ab ab ab @@ -2264,8 +2267,8 @@ ac "} (16,1,1) = {" as -ab -ab +Al +ad ab ab ab @@ -2406,8 +2409,8 @@ ac "} (17,1,1) = {" as -ab -ab +Al +ad ab ab ab @@ -2548,8 +2551,8 @@ ac "} (18,1,1) = {" as -ab -ab +Al +ad ab ab ab @@ -2690,8 +2693,8 @@ ac "} (19,1,1) = {" as -ab -ab +Al +ad ab ab ab @@ -2832,8 +2835,8 @@ ac "} (20,1,1) = {" as -ab -ab +Al +ad ab ab ab @@ -2974,8 +2977,8 @@ ac "} (21,1,1) = {" as -ab -ab +Al +ad ab ab ab @@ -3116,8 +3119,8 @@ ac "} (22,1,1) = {" as -ab -ab +Al +ad ab ab ab @@ -3258,8 +3261,8 @@ ac "} (23,1,1) = {" as -ab -ab +Al +ad ab ab ab @@ -3400,8 +3403,8 @@ ac "} (24,1,1) = {" as -ab -ab +Al +ad ab ab ab @@ -3542,8 +3545,8 @@ ac "} (25,1,1) = {" as -ab -ab +Al +ad ab ab ab @@ -3684,8 +3687,8 @@ ac "} (26,1,1) = {" as -ab -ab +Al +ad ab ab ab @@ -3826,8 +3829,8 @@ ac "} (27,1,1) = {" as -ab -ab +Al +ad ab ab ab @@ -3968,8 +3971,8 @@ ac "} (28,1,1) = {" as -ab -ab +Al +ad ab ab ab @@ -4110,8 +4113,8 @@ ac "} (29,1,1) = {" as -ab -ab +Al +ad ab ab ab @@ -4252,8 +4255,8 @@ ac "} (30,1,1) = {" as -ab -ab +Al +ad ab ab ab @@ -4394,8 +4397,8 @@ ac "} (31,1,1) = {" as -ab -ab +Al +ad ab ab ab @@ -4536,8 +4539,8 @@ ac "} (32,1,1) = {" as -ab -ab +Al +ad ab ab ab @@ -4678,8 +4681,8 @@ ac "} (33,1,1) = {" as -ab -ab +Al +ad ab ab ab @@ -4820,8 +4823,8 @@ ac "} (34,1,1) = {" as -ab -ab +Al +ad ab ab ab @@ -4962,8 +4965,8 @@ ac "} (35,1,1) = {" as -ab -ab +Al +ad ab ab ab @@ -5104,8 +5107,8 @@ ac "} (36,1,1) = {" as -ab -ab +Al +ad ab ab ab @@ -5246,8 +5249,8 @@ ac "} (37,1,1) = {" as -ab -ab +Al +ad ab ab Em @@ -5388,8 +5391,8 @@ ac "} (38,1,1) = {" as -ab -ab +Al +ad ab ab ab @@ -5530,8 +5533,8 @@ ac "} (39,1,1) = {" as -ab -ab +Al +ad ab ab ab @@ -5672,8 +5675,8 @@ ac "} (40,1,1) = {" as -ab -ab +Al +ad ab ab ab @@ -5814,8 +5817,8 @@ ac "} (41,1,1) = {" as -ab -ab +Al +ad ab ab ab @@ -5956,8 +5959,8 @@ ac "} (42,1,1) = {" as -ab -ab +Al +ad ab ab ab @@ -6098,8 +6101,8 @@ ac "} (43,1,1) = {" as -ab -ab +Al +ad ab ab ab @@ -6240,8 +6243,8 @@ ac "} (44,1,1) = {" as -ab -ab +Al +ad ab ab ab @@ -6382,8 +6385,8 @@ ac "} (45,1,1) = {" as -ab -ab +Al +ad ab ab ab @@ -6524,8 +6527,8 @@ ac "} (46,1,1) = {" as -ab -ab +Al +ad ab ab ab @@ -6666,8 +6669,8 @@ ac "} (47,1,1) = {" as -ab -ab +Al +ad ab ab ab @@ -6808,8 +6811,8 @@ ac "} (48,1,1) = {" as -ab -ab +Al +ad ab ab ab @@ -6950,8 +6953,8 @@ ac "} (49,1,1) = {" as -ab -ab +Al +ad ab ab ab @@ -7092,8 +7095,8 @@ ac "} (50,1,1) = {" as -ab -ab +Al +ad ab ab ab @@ -7234,8 +7237,8 @@ ac "} (51,1,1) = {" as -ab -ab +Al +ad ab ab ab @@ -7376,8 +7379,8 @@ ac "} (52,1,1) = {" as -ab -ab +Al +ad ab ab ab @@ -7518,8 +7521,8 @@ ac "} (53,1,1) = {" as -ab -ab +Al +ad ab ab ab @@ -7660,8 +7663,8 @@ ac "} (54,1,1) = {" as -ab -ab +Al +ad ab ab ab @@ -7802,8 +7805,8 @@ ac "} (55,1,1) = {" as -ab -ab +Al +ad ab ab ab @@ -7944,8 +7947,8 @@ ac "} (56,1,1) = {" as -ab -ab +Al +ad ab ab ab @@ -8086,8 +8089,8 @@ ac "} (57,1,1) = {" as -ab -ab +Al +ad ab ab ab @@ -8228,8 +8231,8 @@ ac "} (58,1,1) = {" as -ab -ab +Al +ad ab ab ab @@ -8370,8 +8373,8 @@ ac "} (59,1,1) = {" as -ab -ab +Al +ad ab ab ab @@ -8512,8 +8515,8 @@ ac "} (60,1,1) = {" as -ab -ab +Al +ad ab ab ab @@ -8654,8 +8657,8 @@ ac "} (61,1,1) = {" as -ab -ab +Al +ad ab ab ab @@ -8796,8 +8799,8 @@ ac "} (62,1,1) = {" as -ab -ab +Al +ad ab ab ab @@ -8938,7 +8941,7 @@ ac "} (63,1,1) = {" as -ab +Al ad ad ab @@ -9080,7 +9083,7 @@ ac "} (64,1,1) = {" at -an +ID an an an @@ -10784,7 +10787,7 @@ ac "} (76,1,1) = {" at -an +ID an an an @@ -10926,7 +10929,7 @@ ac "} (77,1,1) = {" as -ad +Al ad ad ab @@ -11068,8 +11071,8 @@ ac "} (78,1,1) = {" as -ab -ab +Al +ad ab ab ab @@ -11210,8 +11213,8 @@ ac "} (79,1,1) = {" as -ab -ab +Al +ad ab ab ab @@ -11352,8 +11355,8 @@ ac "} (80,1,1) = {" as -ab -ab +Al +ad ab ab ab @@ -11494,8 +11497,8 @@ ac "} (81,1,1) = {" as -ab -ab +Al +ad ab ab ab @@ -11636,8 +11639,8 @@ ac "} (82,1,1) = {" as -ab -ab +Al +ad ab ab ab @@ -11778,8 +11781,8 @@ ac "} (83,1,1) = {" as -ab -ab +Al +ad ab ab ab @@ -11920,8 +11923,8 @@ ac "} (84,1,1) = {" as -ab -ab +Al +ad ab ab ab @@ -12062,8 +12065,8 @@ ac "} (85,1,1) = {" as -ab -ab +Al +ad ab ab ab @@ -12204,8 +12207,8 @@ ac "} (86,1,1) = {" as -ab -ab +Al +ad ab ab ab @@ -12346,8 +12349,8 @@ ac "} (87,1,1) = {" as -ab -ab +Al +ad ab ab ab @@ -12488,8 +12491,8 @@ ac "} (88,1,1) = {" as -ab -ab +Al +ad ab ab ab @@ -12630,8 +12633,8 @@ ac "} (89,1,1) = {" as -ab -ab +Al +ad ab ab ab @@ -12772,8 +12775,8 @@ ac "} (90,1,1) = {" as -ab -ab +Al +ad ab ab ab @@ -12914,8 +12917,8 @@ ac "} (91,1,1) = {" as -ab -ab +Al +ad ab ab ab @@ -13056,8 +13059,8 @@ ac "} (92,1,1) = {" as -ab -ab +Al +ad ab ab ab @@ -13198,8 +13201,8 @@ ac "} (93,1,1) = {" as -ab -ab +Al +ad ab ab ab @@ -13340,8 +13343,8 @@ ac "} (94,1,1) = {" as -ab -ab +Al +ad ab ab ab @@ -13482,8 +13485,8 @@ ac "} (95,1,1) = {" as -ab -ab +Al +ad ab ab ab @@ -13624,8 +13627,8 @@ ac "} (96,1,1) = {" as -ab -ab +Al +ad ab ab ab @@ -13766,8 +13769,8 @@ ac "} (97,1,1) = {" as -ab -ab +Al +ad ab ab ab @@ -13908,8 +13911,8 @@ ac "} (98,1,1) = {" as -ab -ab +Al +ad ab ab ab @@ -14050,8 +14053,8 @@ ac "} (99,1,1) = {" as -ab -ab +Al +ad ab ab ab @@ -14192,8 +14195,8 @@ ac "} (100,1,1) = {" as -ab -ab +Al +ad ab ab ab @@ -14334,8 +14337,8 @@ ac "} (101,1,1) = {" as -ab -ab +Al +ad ab ab ab @@ -14476,8 +14479,8 @@ ac "} (102,1,1) = {" as -ab -ab +Al +ad ab ab ab @@ -14618,8 +14621,8 @@ ac "} (103,1,1) = {" as -ab -ab +Al +ad ab ab ab @@ -14760,8 +14763,8 @@ ac "} (104,1,1) = {" as -ab -ab +Al +ad ab ab ab @@ -14902,8 +14905,8 @@ ac "} (105,1,1) = {" as -ab -ab +Al +ad ab ab ab @@ -15044,8 +15047,8 @@ ac "} (106,1,1) = {" as -ab -ab +Al +ad ab ab ab @@ -15186,8 +15189,8 @@ ac "} (107,1,1) = {" as -ab -ab +Al +ad ab ab ab @@ -15328,8 +15331,8 @@ ac "} (108,1,1) = {" as -ab -ab +Al +ad ab ab ab @@ -15470,8 +15473,8 @@ ac "} (109,1,1) = {" as -ab -ab +Al +ad ab ab ab @@ -15612,8 +15615,8 @@ ac "} (110,1,1) = {" as -ab -ab +Al +ad ab ab ab @@ -15754,8 +15757,8 @@ ac "} (111,1,1) = {" as -ab -ab +Al +ad ab ab ab @@ -15896,8 +15899,8 @@ ac "} (112,1,1) = {" as -ab -ab +Al +ad BE ab ab @@ -16038,8 +16041,8 @@ ac "} (113,1,1) = {" as -ab -ab +Al +ad ab ab ab @@ -16180,8 +16183,8 @@ ac "} (114,1,1) = {" as -ab -ab +Al +ad ab ab ab @@ -16322,8 +16325,8 @@ ac "} (115,1,1) = {" as -ab -ab +Al +ad ab ab ab @@ -16464,8 +16467,8 @@ ac "} (116,1,1) = {" as -ab -ab +Al +ad ab ab ab @@ -16606,8 +16609,8 @@ ac "} (117,1,1) = {" as -ab -ab +Al +ad ab ab ab @@ -16748,8 +16751,8 @@ ac "} (118,1,1) = {" as -ab -ab +Al +ad ab ab ab @@ -16890,8 +16893,8 @@ ac "} (119,1,1) = {" as -ab -ab +Al +ad ab ab ab @@ -17032,8 +17035,8 @@ ac "} (120,1,1) = {" as -ab -ab +Al +ad ab ab ab @@ -17174,8 +17177,8 @@ ac "} (121,1,1) = {" as -ab -ab +Al +ad ab ab ab @@ -17316,8 +17319,8 @@ ac "} (122,1,1) = {" as -ab -ab +Al +ad ab ab ab @@ -17458,8 +17461,8 @@ ac "} (123,1,1) = {" as -ab -ab +Al +ad ab ab ab @@ -17600,8 +17603,8 @@ ac "} (124,1,1) = {" as -ab -ab +Al +ad ab Em ab @@ -17742,8 +17745,8 @@ ac "} (125,1,1) = {" as -ab -ab +Al +ad ab ab ab @@ -17884,8 +17887,8 @@ ac "} (126,1,1) = {" as -ab -ab +Al +ad ab ab ab @@ -18026,8 +18029,8 @@ ac "} (127,1,1) = {" as -ab -ab +Al +ad ab ab ab @@ -18168,8 +18171,8 @@ ac "} (128,1,1) = {" as -ab -ab +Al +ad ab ab ab @@ -18310,8 +18313,8 @@ ac "} (129,1,1) = {" as -ab -ab +Al +ad ab ab ab @@ -18452,8 +18455,8 @@ ac "} (130,1,1) = {" as -ab -ab +Al +ad ab ab ab @@ -18594,9 +18597,9 @@ ac "} (131,1,1) = {" as -ab -ab -ab +Al +ad +ad ab ab ab @@ -18736,9 +18739,9 @@ ac "} (132,1,1) = {" as -ab -ab -ab +Al +ad +ad ad ab ab @@ -18878,8 +18881,8 @@ ac "} (133,1,1) = {" as +Al ad -ab ad ad ad @@ -19020,7 +19023,7 @@ ac "} (134,1,1) = {" as -ad +Al ad ad ad @@ -19162,7 +19165,7 @@ ac "} (135,1,1) = {" as -bF +Al bF bF bF @@ -19304,7 +19307,7 @@ ac "} (136,1,1) = {" as -bF +Al bF bF bF @@ -19446,7 +19449,7 @@ ac "} (137,1,1) = {" as -bF +Al bF bF bF @@ -19588,7 +19591,7 @@ ac "} (138,1,1) = {" as -bF +Al bF bF bF diff --git a/maps/tether/tether-01-surface1.dmm b/maps/tether/tether-01-surface1.dmm index 08ba427fa9..04ae672b7e 100644 --- a/maps/tether/tether-01-surface1.dmm +++ b/maps/tether/tether-01-surface1.dmm @@ -11536,6 +11536,16 @@ }, /turf/simulated/floor/water/pool, /area/tether/surfacebase/surface_one_hall) +"atm" = ( +/obj/structure/bed/chair/wood, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/turf/simulated/floor/lino, +/area/crew_quarters/visitor_dining) "atn" = ( /obj/machinery/status_display{ pixel_x = 32; @@ -17352,17 +17362,6 @@ }, /turf/simulated/floor/lino, /area/crew_quarters/visitor_dining) -"aIs" = ( -/obj/structure/bed/chair/wood, -/obj/structure/bed/chair/wood, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, -/turf/simulated/floor/lino, -/area/crew_quarters/visitor_dining) "aIt" = ( /obj/structure/bed/chair/wood, /obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ @@ -46116,7 +46115,7 @@ aEK aEK aEK aDu -aIs +atm aCQ aJV aDu diff --git a/maps/tether/tether-02-surface2.dmm b/maps/tether/tether-02-surface2.dmm index 1e4403afa2..7fbba22ef6 100644 --- a/maps/tether/tether-02-surface2.dmm +++ b/maps/tether/tether-02-surface2.dmm @@ -1757,8 +1757,8 @@ pixel_y = 0 }, /obj/machinery/camera/network/research/xenobio{ - icon_state = "camera"; - dir = 4 + dir = 4; + icon_state = "camera" }, /turf/simulated/floor/tiled/dark, /area/rnd/outpost/xenobiology/outpost_slimepens) @@ -1914,8 +1914,8 @@ req_access = list(55) }, /obj/machinery/camera/network/research/xenobio{ - icon_state = "camera"; - dir = 9 + dir = 9; + icon_state = "camera" }, /turf/simulated/floor/tiled/dark, /area/rnd/outpost/xenobiology/outpost_slimepens) @@ -2931,6 +2931,20 @@ }, /turf/simulated/floor/tiled/techmaint, /area/tether/surfacebase/surface_two_hall) +"afJ" = ( +/obj/machinery/door/firedoor/glass, +/obj/machinery/door/airlock/maintenance/common, +/turf/simulated/floor/tiled/techfloor, +/area/maintenance/lower/bar) +"afK" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/full, +/obj/machinery/door/firedoor, +/obj/structure/window/reinforced{ + dir = 4 + }, +/turf/simulated/floor/plating, +/area/maintenance/lower/bar) "afL" = ( /obj/machinery/atmospherics/unary/vent_scrubber/on{ dir = 8 @@ -3079,6 +3093,16 @@ /obj/structure/window/basic, /turf/simulated/floor/tiled/techmaint, /area/tether/surfacebase/surface_two_hall) +"afZ" = ( +/obj/structure/filingcabinet/filingcabinet, +/turf/simulated/floor/tiled/dark, +/area/chapel/chapel_morgue) +"aga" = ( +/obj/machinery/camera/network/civilian{ + dir = 4 + }, +/turf/simulated/floor/tiled/dark, +/area/chapel/chapel_morgue) "agb" = ( /obj/effect/floor_decal/techfloor/orange{ dir = 8 @@ -3111,6 +3135,10 @@ "age" = ( /turf/simulated/wall, /area/tether/surfacebase/north_staires_two) +"agf" = ( +/obj/structure/morgue, +/turf/simulated/floor/tiled/dark, +/area/chapel/chapel_morgue) "agg" = ( /obj/structure/disposalpipe/segment, /turf/simulated/floor/tiled/techmaint, @@ -3240,6 +3268,12 @@ }, /turf/simulated/open, /area/tether/surfacebase/surface_two_hall) +"agy" = ( +/obj/effect/landmark/start{ + name = "Chaplain" + }, +/turf/simulated/floor/tiled/dark, +/area/chapel/chapel_morgue) "agz" = ( /obj/effect/floor_decal/borderfloor{ dir = 4 @@ -3924,9 +3958,13 @@ /turf/simulated/floor/tiled/techfloor, /area/maintenance/lower/bar) "ahW" = ( -/obj/structure/flora/ausbushes/sparsegrass, -/turf/simulated/floor/grass, -/area/chapel/office) +/obj/structure/grille, +/obj/machinery/door/firedoor/glass, +/obj/structure/window/reinforced/polarized/full{ + id = "chaplainpet" + }, +/turf/simulated/floor/tiled/dark, +/area/chapel/main) "ahX" = ( /obj/machinery/alarm{ pixel_y = 22 @@ -4104,13 +4142,25 @@ /turf/simulated/floor/tiled/techfloor, /area/maintenance/lower/bar) "air" = ( -/obj/structure/flora/ausbushes/ppflowers, -/obj/structure/flora/ausbushes/sparsegrass, -/obj/machinery/alarm{ - pixel_y = 22 +/obj/machinery/light_switch{ + dir = 4; + on = 0; + pixel_x = -24; + pixel_y = 20 }, -/turf/simulated/floor/grass, -/area/chapel/office) +/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/dark, +/area/chapel/chapel_morgue) "ais" = ( /obj/structure/cable/green{ d1 = 16; @@ -4143,7 +4193,7 @@ "ait" = ( /obj/structure/flora/ausbushes/fullgrass, /turf/simulated/floor/grass, -/area/chapel/office) +/area/chapel/main) "aiu" = ( /obj/machinery/door/airlock/multi_tile/glass{ dir = 1; @@ -4153,15 +4203,10 @@ /turf/simulated/floor/tiled/dark, /area/maintenance/lower/bar) "aiv" = ( -/obj/machinery/button/windowtint{ - id = "noodle"; - pixel_x = 20; - pixel_y = 25 - }, -/obj/machinery/disposal, -/obj/structure/disposalpipe/trunk, -/turf/simulated/floor/lino, -/area/chapel/office) +/obj/structure/flora/ausbushes/sparsegrass, +/obj/machinery/camera/network/civilian, +/turf/simulated/floor/grass, +/area/chapel/main) "aiw" = ( /obj/machinery/computer/aifixer, /obj/effect/floor_decal/borderfloor{ @@ -4258,13 +4303,12 @@ /turf/simulated/wall, /area/tether/surfacebase/surface_two_hall) "aiG" = ( -/obj/machinery/door/airlock{ - name = "Noodle Office"; - req_access = list(27) +/obj/structure/flora/ausbushes/sparsegrass, +/obj/machinery/alarm{ + pixel_y = 22 }, -/obj/machinery/door/firedoor/glass, -/turf/simulated/floor/lino, -/area/chapel/office) +/turf/simulated/floor/grass, +/area/chapel/main) "aiH" = ( /obj/structure/cable{ icon_state = "1-2" @@ -4292,20 +4336,24 @@ /turf/simulated/floor/tiled/techfloor/grid, /area/maintenance/lower/bar) "aiJ" = ( -/obj/effect/floor_decal/rust, -/turf/simulated/floor/tiled/techfloor, -/area/maintenance/lower/bar) -"aiK" = ( -/obj/structure/flora/ausbushes/sparsegrass, -/mob/living/simple_mob/animal/passive/snake/noodle, -/turf/simulated/floor/grass, -/area/chapel/office) -"aiL" = ( -/obj/structure/grille, -/obj/structure/window/reinforced/full, -/obj/machinery/door/firedoor/glass, +/obj/machinery/door/airlock{ + name = "Chapel Morgue"; + req_one_access = list(6,27) + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/structure/cable/green{ + icon_state = "1-2" + }, /turf/simulated/floor/tiled/dark, -/area/chapel/office) +/area/chapel/chapel_morgue) +"aiK" = ( +/obj/structure/flora/ausbushes/ppflowers, +/turf/simulated/floor/grass, +/area/chapel/main) +"aiL" = ( +/turf/simulated/floor/grass, +/area/chapel/main) "aiM" = ( /obj/machinery/light/small{ dir = 4; @@ -4431,13 +4479,9 @@ /turf/simulated/floor/tiled/dark, /area/maintenance/lower/bar) "aiZ" = ( -/obj/structure/grille, -/obj/machinery/door/firedoor/glass, -/obj/structure/window/reinforced/polarized/full{ - id = "noodle" - }, -/turf/simulated/floor/tiled/dark, -/area/chapel/office) +/mob/living/simple_mob/animal/passive/snake/noodle, +/turf/simulated/floor/grass, +/area/chapel/main) "aja" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 4 @@ -4456,6 +4500,10 @@ }, /turf/simulated/floor/tiled/techmaint, /area/tether/surfacebase/surface_two_hall) +"ajb" = ( +/obj/structure/flora/ausbushes/brflowers, +/turf/simulated/floor/grass, +/area/chapel/main) "ajc" = ( /obj/machinery/door/airlock/maintenance/common, /obj/machinery/atmospherics/pipe/simple/visible/supply{ @@ -4571,10 +4619,48 @@ }, /turf/simulated/floor/tiled/techmaint, /area/tether/surfacebase/surface_two_hall) +"ajo" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 5; + icon_state = "intact-scrubbers" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/structure/cable/green{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/turf/simulated/floor/tiled/dark, +/area/chapel/chapel_morgue) +"ajp" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 10 + }, +/obj/structure/cable/green{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/turf/simulated/floor/tiled/dark, +/area/chapel/chapel_morgue) +"ajq" = ( +/obj/structure/bed/chair{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/turf/simulated/floor/tiled/dark, +/area/chapel/chapel_morgue) "ajr" = ( /obj/structure/grille, -/obj/structure/window/reinforced/full, /obj/machinery/door/firedoor, +/obj/structure/window/reinforced/polarized/full{ + id = "chaplainwindow" + }, /obj/structure/window/reinforced{ dir = 4 }, @@ -4669,9 +4755,23 @@ /turf/simulated/floor/tiled/techmaint, /area/tether/surfacebase/surface_two_hall) "ajD" = ( -/obj/machinery/light, +/obj/structure/bed/chair{ + dir = 1 + }, +/obj/machinery/alarm{ + alarm_id = "anomaly_testing"; + breach_detection = 0; + dir = 8; + frequency = 1439; + pixel_x = 22; + pixel_y = 0; + report_danger_level = 0 + }, +/obj/machinery/atmospherics/unary/vent_pump/on{ + dir = 8 + }, /turf/simulated/floor/tiled/dark, -/area/chapel/main) +/area/chapel/chapel_morgue) "ajE" = ( /turf/simulated/floor/tiled, /area/rnd/rdoffice) @@ -4697,9 +4797,22 @@ /turf/simulated/floor/plating, /area/maintenance/lower/rnd) "ajH" = ( -/obj/structure/disposalpipe/segment, -/turf/simulated/floor/lino, -/area/chapel/office) +/obj/structure/catwalk, +/obj/machinery/atmospherics/pipe/simple/visible/supply{ + dir = 5 + }, +/obj/machinery/atmospherics/pipe/manifold/visible/scrubbers, +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, +/obj/structure/cable/green{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/turf/simulated/floor/plating, +/area/maintenance/lower/bar) "ajI" = ( /obj/structure/cable/green{ d1 = 1; @@ -4724,23 +4837,16 @@ /turf/simulated/floor/tiled/dark, /area/tether/surfacebase/security/interrogation) "ajL" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 +/obj/structure/flora/ausbushes/fullgrass, +/obj/machinery/light/small{ + dir = 8 }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 +/mob/living/simple_mob/animal/passive/mouse/white{ + desc = "Noodle's best friend! Soft and white, and seemingly strangely intelligent."; + name = "Apple" }, -/obj/machinery/door/firedoor/glass, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/catwalk, -/obj/machinery/door/airlock/maintenance/common, -/turf/simulated/floor/tiled/techfloor/grid, -/area/tether/surfacebase/surface_two_hall) +/turf/simulated/floor/grass, +/area/chapel/main) "ajM" = ( /turf/simulated/floor/tiled/steel_dirty/virgo3b, /area/tether/surfacebase/outside/outside2) @@ -4751,6 +4857,11 @@ /obj/structure/disposalpipe/segment, /turf/simulated/floor/plating, /area/maintenance/lower/rnd) +"ajO" = ( +/obj/structure/table/woodentable, +/obj/item/weapon/storage/box/snakesnackbox, +/turf/simulated/floor/grass, +/area/chapel/main) "ajP" = ( /obj/machinery/alarm{ dir = 4; @@ -4775,6 +4886,16 @@ }, /turf/simulated/floor/tiled/techmaint, /area/tether/surfacebase/surface_two_hall) +"ajR" = ( +/obj/machinery/light/small{ + dir = 8; + pixel_x = 0 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 5 + }, +/turf/simulated/floor/tiled/dark, +/area/chapel/chapel_morgue) "ajS" = ( /obj/effect/floor_decal/borderfloor{ dir = 4 @@ -4802,62 +4923,57 @@ /turf/simulated/floor/tiled, /area/tether/surfacebase/public_garden_two) "ajV" = ( -/obj/structure/extinguisher_cabinet{ - dir = 1; - icon_state = "extinguisher_closed"; - pixel_y = -32 +/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/manifold/hidden/supply{ + dir = 4 + }, +/obj/structure/cable/green{ + icon_state = "1-2" }, /turf/simulated/floor/tiled/dark, -/area/chapel/main) +/area/chapel/chapel_morgue) "ajW" = ( -/obj/machinery/door/airlock{ - name = "Chapel Morgue"; +/obj/structure/bed/chair{ + dir = 1 + }, +/obj/machinery/button/remote/blast_door{ + desc = "A remote control-switch for shutters."; + id = "chapel_obs"; + layer = 3.3; + name = "Chapel Observation Shutters"; + pixel_x = 6; + pixel_y = -29; req_access = list(27) }, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ +/turf/simulated/floor/tiled/dark, +/area/chapel/chapel_morgue) +"ajX" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 4 }, -/obj/structure/cable/green{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/door/firedoor/glass, /turf/simulated/floor/tiled/dark, -/area/chapel/office) -"ajX" = ( -/obj/structure/table/woodentable, -/obj/item/device/flashlight/lamp{ - pixel_x = 2; - pixel_y = 7 - }, -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/unary/vent_pump/on, -/turf/simulated/floor/lino, -/area/chapel/office) +/area/chapel/chapel_morgue) "ajY" = ( /turf/simulated/floor/carpet, /area/chapel/main) "ajZ" = ( -/obj/machinery/power/apc{ - dir = 1; - name = "north bump"; - pixel_x = 0; - pixel_y = 24 +/obj/structure/bed/chair{ + dir = 1 }, -/obj/structure/cable/green{ - d2 = 2; - icon_state = "0-2" +/obj/machinery/light/small{ + dir = 4; + pixel_y = 0 }, -/obj/machinery/light{ - dir = 8; - icon_state = "tube1" +/obj/machinery/atmospherics/unary/vent_scrubber/on{ + dir = 8 }, /turf/simulated/floor/tiled/dark, -/area/chapel/main) +/area/chapel/chapel_morgue) "aka" = ( /turf/simulated/wall, /area/maintenance/asmaint2) @@ -5784,6 +5900,10 @@ }, /turf/simulated/floor/plating, /area/maintenance/substation/command) +"alK" = ( +/obj/structure/girder/displaced, +/turf/simulated/floor/plating, +/area/maintenance/lower/bar) "alL" = ( /obj/structure/catwalk, /obj/structure/cable{ @@ -5808,6 +5928,10 @@ /obj/machinery/atmospherics/unary/vent_scrubber/on, /turf/simulated/floor/tiled, /area/tether/surfacebase/north_staires_two) +"alN" = ( +/obj/structure/firedoor_assembly, +/turf/simulated/floor, +/area/maintenance/lower/bar) "alO" = ( /obj/machinery/firealarm{ dir = 1; @@ -5996,18 +6120,36 @@ }, /turf/simulated/floor/tiled, /area/tether/surfacebase/surface_two_hall) +"amb" = ( +/obj/structure/girder/displaced, +/turf/simulated/floor, +/area/maintenance/lower/bar) "amc" = ( /obj/structure/catwalk, /obj/effect/decal/cleanable/dirt, /turf/simulated/floor/plating, /area/maintenance/lower/bar) +"amd" = ( +/obj/machinery/door/airlock{ + name = "Noodle Office"; + req_access = list(27) + }, +/obj/machinery/door/firedoor/glass, +/turf/simulated/floor/lino, +/area/chapel/main) "ame" = ( -/obj/machinery/light{ - dir = 8; - icon_state = "tube1" +/obj/machinery/door/blast/shutters{ + dir = 2; + id = "chapel_obs"; + name = "Chapel Observation" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/structure/cable/green{ + icon_state = "1-2" }, /turf/simulated/floor/tiled/dark, -/area/chapel/main) +/area/chapel/chapel_morgue) "amf" = ( /obj/effect/floor_decal/borderfloor{ dir = 8 @@ -6108,6 +6250,18 @@ }, /turf/simulated/floor/tiled, /area/tether/surfacebase/surface_two_hall) +"amm" = ( +/turf/simulated/floor/plating, +/area/maintenance/lower/bar) +"amn" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/simulated/floor/tiled/dark, +/area/chapel/main) "amo" = ( /obj/structure/railing{ dir = 1; @@ -6161,11 +6315,64 @@ }, /turf/simulated/floor/tiled, /area/tether/surfacebase/fish_farm) +"amu" = ( +/obj/machinery/light/small{ + dir = 1; + icon_state = "bulb1" + }, +/turf/simulated/floor/carpet, +/area/chapel/main) +"amv" = ( +/obj/structure/table/bench/padded, +/obj/machinery/light_switch{ + name = "light switch "; + on = 0; + pixel_y = 36 + }, +/obj/effect/landmark/start{ + name = "Chaplain" + }, +/obj/machinery/button/windowtint{ + dir = 1; + id = "chaplainpet"; + name = "interior window tint"; + pixel_x = -10; + pixel_y = 30 + }, +/obj/machinery/button/windowtint{ + dir = 1; + id = "chaplainwindow"; + name = "exterior window tint"; + pixel_x = 10; + pixel_y = 30; + range = 8 + }, +/turf/simulated/floor/carpet, +/area/chapel/main) +"amw" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/structure/cable/green{ + icon_state = "1-2" + }, +/turf/simulated/floor/tiled/dark, +/area/chapel/main) +"amx" = ( +/obj/machinery/alarm{ + dir = 1; + pixel_y = -25 + }, +/turf/simulated/floor/plating, +/area/maintenance/lower/bar) "amy" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/disposalpipe/segment, /turf/simulated/floor/plating, /area/maintenance/lower/rnd) +"amz" = ( +/obj/structure/table/woodentable, +/turf/simulated/floor/carpet, +/area/chapel/main) "amA" = ( /obj/structure/cable/green{ icon_state = "4-8" @@ -6249,29 +6456,37 @@ /turf/simulated/floor/plating, /area/tether/surfacebase/surface_two_hall) "amL" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 9 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 9 - }, -/obj/structure/cable/green{ +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/structure/cable{ icon_state = "1-2" }, -/turf/simulated/floor/lino, -/area/chapel/office) -"amM" = ( -/obj/structure/cable/green{ - d1 = 1; - d2 = 4; - icon_state = "1-4" +/obj/machinery/camera/network/civilian{ + dir = 4 }, -/turf/simulated/floor/carpet, +/turf/simulated/floor/tiled/dark, +/area/chapel/main) +"amM" = ( +/obj/machinery/light{ + dir = 4; + icon_state = "tube1"; + pixel_x = 0 + }, +/turf/simulated/floor/tiled/dark, /area/chapel/main) "amN" = ( -/obj/structure/flora/ausbushes/brflowers, -/turf/simulated/floor/grass, -/area/chapel/office) +/obj/machinery/door/airlock/glass{ + name = "Chapel" + }, +/obj/structure/cable/green{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/door/firedoor/glass, +/turf/simulated/floor/tiled/dark, +/area/chapel/main) "amO" = ( /obj/machinery/door/airlock{ name = "Chapel Morgue"; @@ -6303,16 +6518,18 @@ /turf/simulated/floor/tiled/techfloor, /area/maintenance/lower/bar) "amR" = ( -/obj/structure/flora/ausbushes/fullgrass, -/obj/machinery/light/small{ - dir = 8 +/obj/structure/cable/green{ + d1 = 4; + d2 = 8; + icon_state = "4-8" }, -/obj/machinery/camera/network/civilian{ - dir = 1 +/obj/structure/cable/green{ + d1 = 2; + d2 = 8; + icon_state = "2-8" }, -/mob/living/simple_mob/animal/passive/mouse/white, -/turf/simulated/floor/grass, -/area/chapel/office) +/turf/simulated/floor/tiled/dark, +/area/chapel/main) "amS" = ( /obj/structure/table/woodentable, /obj/item/weapon/reagent_containers/food/drinks/bottle/holywater, @@ -6416,72 +6633,71 @@ }, /turf/simulated/floor/tiled/techmaint, /area/tether/surfacebase/surface_two_hall) -"ane" = ( -/obj/structure/table/woodentable, -/obj/item/weapon/storage/box/snakesnackbox, -/turf/simulated/floor/grass, -/area/chapel/office) -"anf" = ( -/obj/machinery/button/remote/blast_door{ - desc = "A remote control-switch for shutters."; - id = "chapel_obs"; - layer = 3.3; - name = "Chapel Observation Shutters"; - pixel_x = 29; - pixel_y = 0; - req_access = list(27) +"and" = ( +/obj/machinery/power/apc{ + cell_type = /obj/item/weapon/cell/super; + dir = 1; + name = "north bump"; + pixel_y = 24 }, -/turf/simulated/floor/lino, -/area/chapel/office) -"ang" = ( /obj/structure/cable/green{ - d1 = 4; d2 = 8; - icon_state = "4-8" + dir = 2; + icon_state = "0-8" }, -/turf/simulated/floor/carpet, +/turf/simulated/floor/tiled/dark, +/area/chapel/main) +"ane" = ( +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, +/obj/machinery/light/small{ + dir = 1 + }, +/turf/simulated/floor/tiled/dark, +/area/chapel/main) +"anf" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/simulated/floor/tiled/dark, +/area/chapel/main) +"ang" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/simulated/floor/tiled/dark, /area/chapel/main) "anh" = ( -/obj/machinery/hologram/holopad, -/obj/structure/cable/green{ - d1 = 4; - d2 = 8; - icon_state = "4-8" +/obj/structure/table/bench/padded, +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" }, -/turf/simulated/floor/carpet, +/turf/simulated/floor/tiled/dark, /area/chapel/main) "ani" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2"; - pixel_y = 0 +/obj/structure/table/bench/padded, +/obj/effect/floor_decal/chapel{ + dir = 1 }, -/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/manifold/hidden/supply{ - dir = 8 - }, -/obj/structure/cable/green{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/structure/disposalpipe/sortjunction{ - dir = 1; - icon_state = "pipe-j1s"; - name = "Chapel"; - sortType = "Chapel" - }, -/turf/simulated/floor/carpet, +/turf/simulated/floor/tiled/dark, /area/chapel/main) "anj" = ( -/obj/machinery/door/airlock/glass{ - name = "Chapel" +/obj/structure/table/bench/padded, +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/structure/cable/green{ + icon_state = "1-2" }, -/obj/machinery/door/firedoor/glass, -/turf/simulated/floor/carpet, +/turf/simulated/floor/tiled/dark, /area/chapel/main) "ank" = ( /turf/simulated/floor/tiled/techfloor, @@ -6553,6 +6769,14 @@ }, /turf/simulated/floor/tiled/techmaint, /area/tether/surfacebase/surface_two_hall) +"ant" = ( +/obj/structure/cable/green{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/turf/simulated/floor/tiled/dark, +/area/chapel/main) "anu" = ( /obj/effect/floor_decal/borderfloor{ dir = 4 @@ -6571,6 +6795,14 @@ }, /turf/simulated/floor/plating, /area/maintenance/substation/command) +"anw" = ( +/obj/structure/cable/green{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/simulated/floor/tiled/dark, +/area/chapel/main) "anx" = ( /obj/machinery/door/airlock/maintenance/common, /obj/structure/disposalpipe/segment, @@ -7115,6 +7347,26 @@ "aox" = ( /turf/simulated/floor/holofloor/tiled/dark, /area/tether/elevator) +"aoy" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 6 + }, +/obj/structure/disposalpipe/segment, +/obj/structure/cable/green{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/cable/green{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/turf/simulated/floor/tiled/dark, +/area/chapel/main) "aoz" = ( /obj/effect/floor_decal/borderfloor{ dir = 5 @@ -7323,6 +7575,20 @@ /obj/effect/floor_decal/industrial/outline/yellow, /turf/simulated/floor/plating, /area/maintenance/lower/rnd) +"aoV" = ( +/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" + }, +/turf/simulated/floor/tiled/dark, +/area/chapel/main) "aoW" = ( /obj/effect/floor_decal/borderfloor/corner{ dir = 4 @@ -7745,6 +8011,25 @@ /obj/machinery/door/airlock/glass, /turf/simulated/floor/tiled/techmaint, /area/tether/surfacebase/surface_two_hall) +"apL" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold4w/hidden/supply, +/obj/machinery/atmospherics/pipe/manifold4w/hidden/scrubbers, +/obj/structure/disposalpipe/sortjunction{ + dir = 1; + icon_state = "pipe-j1s"; + name = "Chapel"; + sortType = "Chapel" + }, +/obj/structure/cable/green{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/simulated/floor/tiled/dark, +/area/chapel/main) "apM" = ( /obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ dir = 1 @@ -7771,38 +8056,42 @@ /turf/simulated/floor/tiled/techmaint, /area/tether/surfacebase/surface_two_hall) "apO" = ( -/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" - }, -/obj/structure/disposalpipe/sortjunction{ - dir = 4; - icon_state = "pipe-j1s"; - name = "Janitor Closet"; - sortType = "Janitor Closet" - }, -/turf/simulated/floor/tiled/techmaint, -/area/tether/surfacebase/surface_two_hall) +/obj/structure/table/woodentable, +/obj/machinery/atmospherics/unary/vent_pump/on, +/turf/simulated/floor/carpet, +/area/chapel/main) "apP" = ( +/obj/effect/floor_decal/chapel{ + dir = 8 + }, /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{ +/obj/structure/cable/green{ + d1 = 4; + d2 = 8; icon_state = "4-8" }, -/turf/simulated/floor/tiled/techmaint, -/area/tether/surfacebase/surface_two_hall) +/turf/simulated/floor/tiled/dark, +/area/chapel/main) +"apQ" = ( +/obj/effect/floor_decal/chapel, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/obj/structure/cable/green{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/simulated/floor/tiled/dark, +/area/chapel/main) "apR" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 9 @@ -8005,6 +8294,11 @@ hard_corner = 1 }, /area/tether/elevator) +"aqo" = ( +/obj/structure/table/woodentable, +/obj/machinery/atmospherics/unary/vent_scrubber/on, +/turf/simulated/floor/carpet, +/area/chapel/main) "aqp" = ( /obj/effect/floor_decal/borderfloor/corner, /turf/simulated/floor/tiled/techmaint, @@ -8066,6 +8360,20 @@ /obj/machinery/door/airlock/glass, /turf/simulated/floor/tiled/techmaint, /area/tether/surfacebase/surface_two_hall) +"aqv" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/obj/structure/cable/green{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/simulated/floor/carpet, +/area/chapel/main) "aqw" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /obj/machinery/atmospherics/pipe/simple/hidden/supply, @@ -8162,6 +8470,10 @@ }, /turf/simulated/floor/tiled/techmaint, /area/tether/surfacebase/surface_two_hall) +"aqG" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/turf/simulated/floor/carpet, +/area/chapel/main) "aqH" = ( /obj/machinery/shieldwallgen, /obj/effect/floor_decal/industrial/outline/yellow, @@ -8172,6 +8484,13 @@ /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /turf/simulated/floor/tiled/dark, /area/teleporter) +"aqJ" = ( +/obj/machinery/door/airlock/glass{ + name = "Chapel" + }, +/obj/machinery/door/firedoor/glass, +/turf/simulated/floor/tiled/dark, +/area/chapel/main) "aqK" = ( /obj/machinery/hologram/holopad, /turf/simulated/floor/tiled/dark, @@ -8307,8 +8626,13 @@ /turf/simulated/floor/tiled, /area/rnd/rdoffice) "aqT" = ( -/obj/structure/table/bench/padded, -/obj/machinery/atmospherics/unary/vent_pump/on, +/obj/machinery/alarm{ + alarm_id = "pen_nine"; + breach_detection = 0; + dir = 1; + icon_state = "alarm0"; + pixel_y = -22 + }, /turf/simulated/floor/tiled/dark, /area/chapel/main) "aqU" = ( @@ -8343,20 +8667,14 @@ /turf/simulated/floor/tiled/dark, /area/rnd/lockers) "aqY" = ( -/obj/structure/closet/wardrobe/chaplain_black, -/obj/item/weapon/storage/fancy/crayons, -/obj/item/weapon/flame/candle/candelabra, -/obj/item/weapon/flame/candle/candelabra, -/obj/item/weapon/flame/candle/candelabra, -/obj/item/weapon/flame/candle/candelabra, -/obj/machinery/firealarm{ - dir = 2; - layer = 3.3; - pixel_x = 0; - pixel_y = 26 +/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" }, -/turf/simulated/floor/lino, -/area/chapel/office) +/turf/simulated/floor/tiled/dark, +/area/chapel/main) "aqZ" = ( /obj/effect/floor_decal/borderfloor, /obj/structure/closet/firecloset, @@ -8455,6 +8773,20 @@ "arl" = ( /turf/simulated/wall, /area/tether/surfacebase/east_stairs_two) +"arm" = ( +/obj/machinery/door/airlock{ + name = "Chapel Office"; + req_access = list(27) + }, +/obj/machinery/door/firedoor/glass, +/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" + }, +/turf/simulated/floor/tiled/dark, +/area/chapel/office) "arn" = ( /obj/machinery/teleport/hub{ dir = 2 @@ -10175,18 +10507,17 @@ /turf/simulated/floor, /area/chapel/main) "auf" = ( -/obj/machinery/door/airlock/multi_tile/metal/mait{ - name = "Maintenance Access" - }, -/obj/machinery/door/firedoor/glass, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /obj/structure/cable{ icon_state = "1-2" }, -/obj/machinery/atmospherics/pipe/simple/visible/scrubbers, -/obj/machinery/atmospherics/pipe/simple/visible/supply, -/obj/structure/catwalk, -/turf/simulated/floor/tiled/techfloor/grid, -/area/maintenance/lower/south) +/obj/machinery/light{ + dir = 8 + }, +/turf/simulated/floor/tiled/dark, +/area/chapel/main) "aug" = ( /obj/machinery/door/firedoor/glass, /obj/structure/catwalk, @@ -10244,6 +10575,13 @@ }, /turf/simulated/floor/wood, /area/rnd/breakroom) +"aup" = ( +/obj/machinery/disposal, +/obj/structure/disposalpipe/trunk{ + dir = 4 + }, +/turf/simulated/floor/lino, +/area/chapel/office) "auq" = ( /obj/structure/disposalpipe/segment, /obj/structure/cable/green{ @@ -10475,17 +10813,17 @@ /turf/simulated/floor/tiled/dark, /area/engineering/lower/breakroom) "auM" = ( -/obj/effect/floor_decal/borderfloor{ - dir = 8 +/obj/machinery/light_switch{ + dir = 2; + name = "light switch "; + pixel_x = 10; + pixel_y = 32 }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/structure/disposalpipe/segment, -/obj/structure/cable{ - icon_state = "1-4" +/obj/structure/disposalpipe/segment{ + dir = 4 }, -/turf/simulated/floor/tiled/techmaint, -/area/tether/surfacebase/east_stairs_two) +/turf/simulated/floor/lino, +/area/chapel/office) "auN" = ( /obj/effect/floor_decal/borderfloor{ dir = 4 @@ -10514,17 +10852,19 @@ /turf/simulated/floor/tiled/techfloor, /area/maintenance/lower/south) "auP" = ( -/obj/structure/catwalk, -/obj/effect/floor_decal/corner_techfloor_grid{ - dir = 5 +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" }, -/obj/structure/cable{ - icon_state = "1-2" +/obj/structure/cable/green{ + d1 = 1; + d2 = 4; + icon_state = "1-4" }, -/obj/machinery/atmospherics/pipe/simple/visible/scrubbers, -/obj/machinery/atmospherics/pipe/simple/visible/supply, -/turf/simulated/floor/plating, -/area/maintenance/lower/south) +/turf/simulated/floor/lino, +/area/chapel/office) "auQ" = ( /obj/structure/catwalk, /obj/effect/floor_decal/corner_techfloor_grid{ @@ -10577,6 +10917,14 @@ /obj/structure/stairs/south, /turf/simulated/floor/tiled, /area/rnd/staircase/secondfloor) +"auW" = ( +/obj/structure/cable/green{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/turf/simulated/floor/lino, +/area/chapel/office) "auX" = ( /obj/structure/disposalpipe/segment, /obj/structure/cable/green{ @@ -10724,16 +11072,11 @@ /turf/simulated/wall/r_wall, /area/maintenance/engineering/pumpstation) "avh" = ( -/obj/effect/floor_decal/borderfloor{ - dir = 8 +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 6 }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/obj/machinery/atmospherics/pipe/manifold/hidden/supply{ - dir = 8 - }, -/obj/structure/disposalpipe/segment, -/turf/simulated/floor/tiled/techmaint, -/area/tether/surfacebase/east_stairs_two) +/turf/simulated/floor/lino, +/area/chapel/office) "avi" = ( /obj/structure/catwalk, /obj/machinery/atmospherics/pipe/simple/visible/scrubbers{ @@ -10812,19 +11155,12 @@ /turf/simulated/floor/tiled/techfloor, /area/maintenance/lower/south) "avo" = ( -/obj/structure/catwalk, -/obj/machinery/atmospherics/pipe/simple/visible/scrubbers, -/obj/machinery/atmospherics/pipe/simple/visible/supply, -/obj/structure/cable{ - icon_state = "1-8" +/obj/structure/bed/chair/wood, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 }, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/simulated/floor/plating, -/area/maintenance/lower/south) +/turf/simulated/floor/lino, +/area/chapel/office) "avp" = ( /obj/machinery/door/firedoor/glass, /obj/machinery/door/airlock/maintenance/engi{ @@ -11217,28 +11553,18 @@ /turf/simulated/floor/plating, /area/maintenance/engineering/pumpstation) "avT" = ( -/obj/effect/floor_decal/borderfloor{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/structure/disposalpipe/segment, -/turf/simulated/floor/tiled/techmaint, -/area/tether/surfacebase/east_stairs_two) -"avU" = ( -/obj/effect/floor_decal/borderfloor{ - dir = 4 - }, -/obj/machinery/camera/network/tether{ +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 9 }, -/obj/machinery/atmospherics/unary/vent_scrubber/on{ - dir = 8 +/turf/simulated/floor/lino, +/area/chapel/office) +"avU" = ( +/obj/structure/cable/green{ + icon_state = "1-2" }, -/turf/simulated/floor/tiled/techmaint, -/area/tether/surfacebase/east_stairs_two) +/turf/simulated/floor/lino, +/area/chapel/office) "avV" = ( /obj/effect/floor_decal/corner_techfloor_grid{ dir = 9 @@ -11261,16 +11587,9 @@ /turf/simulated/floor/tiled/techfloor, /area/maintenance/lower/south) "avY" = ( -/obj/structure/catwalk, -/obj/machinery/atmospherics/pipe/simple/visible/scrubbers, -/obj/machinery/atmospherics/pipe/simple/visible/supply, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/simulated/floor/plating, -/area/maintenance/lower/south) +/obj/effect/floor_decal/chapel, +/turf/simulated/floor/tiled/dark, +/area/chapel/main) "avZ" = ( /obj/structure/railing{ dir = 8 @@ -11688,21 +12007,39 @@ }, /turf/simulated/floor/plating, /area/maintenance/substation/command) -"awL" = ( -/obj/effect/floor_decal/corner_techfloor_grid{ - dir = 9 +"awK" = ( +/obj/structure/table/woodentable, +/obj/item/weapon/pen/blue{ + pixel_x = 2; + pixel_y = 1 }, -/obj/effect/decal/cleanable/dirt, -/turf/simulated/floor/tiled/techfloor, -/area/maintenance/lower/south) +/obj/item/weapon/paper_bin{ + pixel_x = -2; + pixel_y = 8 + }, +/obj/machinery/camera/network/civilian{ + dir = 4 + }, +/obj/machinery/atmospherics/unary/vent_pump/on{ + dir = 1 + }, +/turf/simulated/floor/lino, +/area/chapel/office) +"awL" = ( +/obj/structure/table/woodentable, +/turf/simulated/floor/lino, +/area/chapel/office) "awM" = ( -/obj/structure/table/rack, -/obj/random/maintenance/research, -/obj/random/maintenance/clean, -/obj/random/maintenance/clean, -/obj/random/junk, -/turf/simulated/floor/tiled/techfloor, -/area/maintenance/lower/south) +/obj/structure/table/woodentable, +/obj/item/device/flashlight/lamp{ + pixel_x = 2; + pixel_y = 7 + }, +/obj/machinery/atmospherics/unary/vent_scrubber/on{ + dir = 1 + }, +/turf/simulated/floor/lino, +/area/chapel/office) "awN" = ( /obj/structure/catwalk, /obj/machinery/atmospherics/pipe/simple/visible/scrubbers, @@ -12177,15 +12514,12 @@ /turf/simulated/floor/tiled/techmaint, /area/tether/surfacebase/east_stairs_two) "axA" = ( -/obj/effect/floor_decal/borderfloor{ - dir = 4 - }, -/obj/machinery/light/small{ +/obj/machinery/firealarm{ dir = 4; - pixel_y = 0 + pixel_x = 24 }, -/turf/simulated/floor/tiled/techmaint, -/area/tether/surfacebase/east_stairs_two) +/turf/simulated/floor/lino, +/area/chapel/office) "axB" = ( /turf/simulated/wall, /area/janitor) @@ -12493,6 +12827,18 @@ /obj/effect/floor_decal/corner/yellow/bordercorner2, /turf/simulated/floor/tiled/monotile, /area/engineering/atmos) +"aya" = ( +/obj/structure/catwalk, +/obj/machinery/atmospherics/pipe/simple/visible/supply, +/obj/machinery/atmospherics/pipe/simple/visible/scrubbers, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/door/airlock/maintenance/common, +/obj/structure/disposalpipe/segment, +/turf/simulated/floor/tiled/techfloor, +/area/chapel/main) "ayb" = ( /obj/machinery/light_switch{ pixel_y = -28 @@ -13191,6 +13537,31 @@ "azl" = ( /turf/simulated/wall/r_wall, /area/engineering/atmos) +"azm" = ( +/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 10 + }, +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, +/turf/simulated/floor/tiled/techmaint, +/area/tether/surfacebase/surface_two_hall) +"azn" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/simulated/floor/tiled/techmaint, +/area/tether/surfacebase/surface_two_hall) "azo" = ( /obj/structure/cable/cyan{ d1 = 2; @@ -13751,6 +14122,17 @@ /obj/structure/disposalpipe/segment, /turf/simulated/floor/tiled/techmaint, /area/tether/surfacebase/east_stairs_two) +"azK" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 9 + }, +/turf/simulated/floor/tiled/techmaint, +/area/tether/surfacebase/surface_two_hall) "azL" = ( /obj/effect/floor_decal/borderfloor{ dir = 8 @@ -13905,6 +14287,25 @@ /obj/structure/window/reinforced/full, /turf/simulated/floor/plating, /area/engineering/lower/breakroom) +"aAf" = ( +/obj/machinery/button/windowtint{ + dir = 1; + id = "chapel"; + pixel_x = -25; + pixel_y = -25 + }, +/turf/simulated/floor/lino, +/area/chapel/office) +"aAg" = ( +/obj/effect/landmark/start{ + name = "Chaplain" + }, +/obj/structure/bed/chair/wood/wings{ + dir = 1; + icon_state = "wooden_chair_wings" + }, +/turf/simulated/floor/lino, +/area/chapel/office) "aAh" = ( /obj/structure/cable/cyan{ d1 = 1; @@ -14591,6 +14992,14 @@ }, /turf/simulated/floor/tiled, /area/janitor) +"aBn" = ( +/obj/structure/cable/green{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/turf/simulated/floor/lino, +/area/chapel/office) "aBo" = ( /obj/machinery/door/airlock/multi_tile/metal/mait, /obj/machinery/door/firedoor/glass, @@ -14715,6 +15124,37 @@ /obj/machinery/recharge_station, /turf/simulated/floor/plating, /area/engineering/drone_fabrication) +"aBA" = ( +/obj/machinery/power/apc{ + dir = 4; + name = "east bump"; + pixel_x = 24 + }, +/obj/structure/cable/green{ + d2 = 8; + dir = 2; + icon_state = "0-8" + }, +/turf/simulated/floor/lino, +/area/chapel/office) +"aBB" = ( +/obj/structure/catwalk, +/obj/machinery/atmospherics/pipe/manifold/visible/scrubbers{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/visible/supply{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, +/obj/structure/disposalpipe/segment, +/turf/simulated/floor/plating, +/area/maintenance/lower/south) "aBC" = ( /obj/machinery/light_switch{ pixel_y = 28 @@ -14984,6 +15424,26 @@ /obj/item/weapon/stool, /turf/simulated/floor/tiled/techmaint, /area/engineering/drone_fabrication) +"aBY" = ( +/obj/item/device/radio/intercom{ + broadcasting = 1; + dir = 2; + frequency = 1473; + name = "Confession Intercom"; + pixel_x = 0; + pixel_y = -24 + }, +/obj/structure/bed/chair{ + dir = 8 + }, +/obj/machinery/light/small{ + dir = 4 + }, +/obj/effect/landmark/start{ + name = "Chaplain" + }, +/turf/simulated/floor/tiled/dark, +/area/chapel/main) "aBZ" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /obj/machinery/atmospherics/pipe/simple/hidden/supply, @@ -15417,6 +15877,15 @@ /obj/effect/floor_decal/techfloor, /turf/simulated/floor/plating, /area/maintenance/asmaint2) +"aCV" = ( +/obj/effect/floor_decal/borderfloor{ + dir = 6 + }, +/obj/machinery/camera/network/tether{ + dir = 9 + }, +/turf/simulated/floor/tiled/techmaint, +/area/tether/surfacebase/surface_two_hall) "aCW" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 4 @@ -15434,6 +15903,15 @@ /obj/structure/catwalk, /turf/simulated/floor/plating, /area/maintenance/asmaint2) +"aCY" = ( +/obj/structure/closet/wardrobe/chaplain_black, +/obj/item/weapon/storage/fancy/crayons, +/obj/item/weapon/flame/candle/candelabra, +/obj/item/weapon/flame/candle/candelabra, +/obj/item/weapon/flame/candle/candelabra, +/obj/item/weapon/flame/candle/candelabra, +/turf/simulated/floor/lino, +/area/chapel/office) "aCZ" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 4 @@ -16322,6 +16800,10 @@ /obj/random/tech_supply, /turf/simulated/floor/tiled/steel_dirty, /area/maintenance/asmaint2) +"aFa" = ( +/obj/machinery/photocopier, +/turf/simulated/floor/lino, +/area/chapel/office) "aFb" = ( /obj/structure/catwalk, /turf/simulated/open, @@ -16683,11 +17165,35 @@ /obj/effect/decal/cleanable/dirt, /turf/simulated/floor/plating, /area/maintenance/lower/atmos) +"aFY" = ( +/obj/structure/catwalk, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/visible/scrubbers, +/obj/machinery/atmospherics/pipe/simple/visible/supply, +/obj/structure/disposalpipe/segment, +/turf/simulated/floor/plating, +/area/maintenance/lower/south) "aFZ" = ( /obj/effect/floor_decal/techfloor, /obj/structure/catwalk, /turf/simulated/floor/plating, /area/maintenance/lower/atmos) +"aGa" = ( +/obj/machinery/door/airlock/multi_tile/metal/mait{ + name = "Maintenance Access" + }, +/obj/machinery/door/firedoor/glass, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/visible/scrubbers, +/obj/machinery/atmospherics/pipe/simple/visible/supply, +/obj/structure/catwalk, +/obj/structure/disposalpipe/segment, +/turf/simulated/floor/tiled/techfloor/grid, +/area/maintenance/lower/south) "aGb" = ( /obj/effect/floor_decal/techfloor, /obj/structure/catwalk, @@ -17536,6 +18042,23 @@ /obj/effect/decal/cleanable/dirt, /turf/simulated/floor/plating, /area/maintenance/lower/atmos) +"aHH" = ( +/obj/effect/floor_decal/borderfloor{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/simulated/floor/tiled/techmaint, +/area/tether/surfacebase/east_stairs_two) "aHI" = ( /obj/structure/table/steel, /turf/simulated/floor/plating, @@ -17627,6 +18150,19 @@ }, /turf/simulated/floor/tiled/dark, /area/rnd/outpost/xenobiology/outpost_slimepens) +"aHU" = ( +/obj/structure/catwalk, +/obj/effect/floor_decal/corner_techfloor_grid{ + dir = 5 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/visible/scrubbers, +/obj/machinery/atmospherics/pipe/simple/visible/supply, +/obj/structure/disposalpipe/segment, +/turf/simulated/floor/plating, +/area/maintenance/lower/south) "aHV" = ( /obj/machinery/power/apc{ dir = 4; @@ -17639,6 +18175,37 @@ }, /turf/simulated/floor/plating, /area/maintenance/substation/tcomms) +"aHW" = ( +/obj/effect/floor_decal/borderfloor{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/machinery/atmospherics/pipe/manifold/hidden/supply{ + dir = 8 + }, +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/simulated/floor/tiled/techmaint, +/area/tether/surfacebase/east_stairs_two) +"aHX" = ( +/obj/structure/catwalk, +/obj/machinery/atmospherics/pipe/simple/visible/scrubbers, +/obj/machinery/atmospherics/pipe/simple/visible/supply, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/turf/simulated/floor/plating, +/area/maintenance/lower/south) "aHY" = ( /obj/machinery/door/window/brigdoor/westright{ name = "Slime Pen 4"; @@ -17686,10 +18253,10 @@ /area/maintenance/lower/atmos) "aId" = ( /obj/machinery/mecha_part_fabricator/pros{ + component_coeff = 0.9; desc = "A machine used for construction of legit prosthetics. You weren't sure if cardboard was considered an engineering material until now."; dir = 4; emagged = 0; - component_coeff = 0.9; name = "Legitimate Prosthetics Fabricator"; req_access = list(); res_max_amount = 150000; @@ -17804,6 +18371,22 @@ /area/tcomsat{ name = "\improper Telecomms Lobby" }) +"aIs" = ( +/obj/effect/floor_decal/borderfloor{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/simulated/floor/tiled/techmaint, +/area/tether/surfacebase/east_stairs_two) "aIt" = ( /obj/structure/filingcabinet, /obj/machinery/status_display{ @@ -18398,11 +18981,38 @@ }, /turf/simulated/floor/tiled/dark, /area/rnd/outpost/xenobiology/outpost_slimepens) +"aJC" = ( +/obj/effect/floor_decal/borderfloor{ + dir = 4 + }, +/obj/machinery/camera/network/tether{ + dir = 9 + }, +/obj/machinery/atmospherics/unary/vent_scrubber/on{ + dir = 8 + }, +/obj/effect/floor_decal/borderfloor/corner2{ + dir = 5 + }, +/turf/simulated/floor/tiled/techmaint, +/area/tether/surfacebase/east_stairs_two) "aJD" = ( /obj/machinery/atmospherics/pipe/simple/hidden/supply, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /turf/simulated/floor/tiled/dark, /area/rnd/outpost/xenobiology/outpost_slimepens) +"aJE" = ( +/obj/structure/catwalk, +/obj/machinery/atmospherics/pipe/simple/visible/scrubbers, +/obj/machinery/atmospherics/pipe/simple/visible/supply, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/turf/simulated/floor/plating, +/area/maintenance/lower/south) "aJF" = ( /obj/machinery/disposal, /obj/structure/window/reinforced, @@ -19460,6 +20070,21 @@ }, /turf/simulated/floor/reinforced, /area/rnd/outpost/xenobiology/outpost_slimepens) +"aLt" = ( +/obj/effect/floor_decal/borderfloor{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/simulated/floor/tiled/techmaint, +/area/tether/surfacebase/east_stairs_two) "aLu" = ( /obj/machinery/button/remote/blast_door{ id = "xenobiodiv4"; @@ -20097,6 +20722,21 @@ temperature = 80 }, /area/tcommsat/chamber) +"aMA" = ( +/obj/structure/disposalpipe/sortjunction{ + dir = 4; + icon_state = "pipe-j1s"; + name = "Janitor Closet"; + sortType = "Janitor Closet" + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/turf/simulated/floor/tiled/techmaint, +/area/tether/surfacebase/east_stairs_two) "aMB" = ( /obj/machinery/telecomms/server/presets/common, /turf/simulated/floor/tiled/dark{ @@ -20370,6 +21010,24 @@ temperature = 80 }, /area/tcommsat/chamber) +"aNc" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/obj/machinery/door/firedoor/glass, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/catwalk, +/obj/machinery/door/airlock/maintenance/common, +/turf/simulated/floor/tiled/techfloor/grid, +/area/tether/surfacebase/east_stairs_two) "aNd" = ( /obj/machinery/telecomms/broadcaster/preset_right/tether, /turf/simulated/floor/bluegrid{ @@ -20397,6 +21055,22 @@ temperature = 80 }, /area/tcommsat/chamber) +"aNg" = ( +/obj/effect/floor_decal/corner_techfloor_grid{ + dir = 9 + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/disposalpipe/segment{ + dir = 8 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/turf/simulated/floor/tiled/techfloor, +/area/maintenance/lower/south) "aNh" = ( /obj/machinery/telecomms/bus/preset_four, /turf/simulated/floor/tiled/dark{ @@ -20623,6 +21297,19 @@ temperature = 80 }, /area/tcommsat/chamber) +"aNC" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/disposalpipe/segment{ + dir = 8 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/turf/simulated/floor/tiled/techfloor, +/area/maintenance/lower/south) "aND" = ( /obj/machinery/door/blast/regular{ density = 0; @@ -21106,6 +21793,23 @@ }, /turf/simulated/floor/tiled/white, /area/tether/surfacebase/medical/surgery) +"aOv" = ( +/obj/structure/table/rack, +/obj/random/maintenance/research, +/obj/random/maintenance/clean, +/obj/random/maintenance/clean, +/obj/random/junk, +/obj/structure/disposalpipe/segment{ + dir = 8 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/turf/simulated/floor/tiled/techfloor, +/area/maintenance/lower/south) "aOw" = ( /obj/machinery/camera/network/command{ dir = 4; @@ -21125,6 +21829,74 @@ }, /turf/simulated/floor/tiled/white, /area/tether/surfacebase/medical/lowerhall) +"aOy" = ( +/obj/structure/railing{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/disposalpipe/segment{ + dir = 8 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/turf/simulated/floor/tiled/techfloor, +/area/maintenance/lower/south) +"aOz" = ( +/obj/structure/catwalk, +/obj/machinery/atmospherics/pipe/simple/visible/scrubbers, +/obj/machinery/atmospherics/pipe/simple/visible/supply, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/simulated/floor/plating, +/area/maintenance/lower/south) +"aOA" = ( +/obj/effect/floor_decal/borderfloor{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, +/turf/simulated/floor/tiled/techmaint, +/area/tether/surfacebase/east_stairs_two) +"aOB" = ( +/obj/effect/floor_decal/borderfloor{ + dir = 4 + }, +/obj/machinery/light/small{ + dir = 4; + pixel_y = 0 + }, +/obj/effect/floor_decal/borderfloor/corner2{ + dir = 6 + }, +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, +/turf/simulated/floor/tiled/techmaint, +/area/tether/surfacebase/east_stairs_two) +"aOC" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/turf/simulated/floor/carpet, +/area/chapel/main) "aOD" = ( /obj/structure/grille, /obj/structure/window/reinforced/full, @@ -21151,6 +21923,10 @@ /obj/machinery/door/firedoor/glass, /turf/simulated/floor/reinforced, /area/rnd/outpost/xenobiology/outpost_slimepens) +"aOE" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/turf/simulated/floor/tiled/dark, +/area/chapel/main) "aOF" = ( /obj/structure/railing{ dir = 8 @@ -21204,6 +21980,10 @@ /obj/machinery/door/firedoor/glass, /turf/simulated/floor/tiled/dark, /area/rnd/outpost/xenobiology/outpost_slimepens) +"aOI" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/turf/simulated/floor/tiled/dark, +/area/chapel/main) "aOJ" = ( /obj/machinery/door/blast/regular{ id = "xenobiodiv7"; @@ -21264,6 +22044,25 @@ /obj/machinery/door/firedoor/glass, /turf/simulated/floor/tiled/dark, /area/rnd/outpost/xenobiology/outpost_slimepens) +"aOP" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, +/obj/structure/cable/green{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ + dir = 1; + icon_state = "map-scrubbers" + }, +/turf/simulated/floor/tiled/dark, +/area/chapel/main) "aOQ" = ( /obj/machinery/door/firedoor/glass, /obj/structure/disposalpipe/segment, @@ -21303,6 +22102,18 @@ }, /turf/simulated/floor/plating, /area/maintenance/lower/south) +"aOU" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/obj/structure/cable/green{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/hidden/supply, +/turf/simulated/floor/tiled/dark, +/area/chapel/main) "aOV" = ( /obj/machinery/atmospherics/unary/vent_pump/on{ dir = 1 @@ -21363,6 +22174,18 @@ /obj/structure/table/standard, /turf/simulated/floor/tiled/white, /area/tether/surfacebase/medical/storage) +"aPb" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/obj/structure/cable/green{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers, +/turf/simulated/floor/tiled/dark, +/area/chapel/main) "aPc" = ( /obj/structure/disposalpipe/trunk{ dir = 8 @@ -21377,6 +22200,18 @@ }, /turf/simulated/floor/reinforced, /area/rnd/outpost/xenobiology/outpost_slimepens) +"aPd" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 9 + }, +/obj/structure/cable/green{ + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/manifold/hidden/supply{ + dir = 4 + }, +/turf/simulated/floor/tiled/dark, +/area/chapel/main) "aPe" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 4 @@ -21463,6 +22298,11 @@ /obj/machinery/camera/network/interrogation, /turf/simulated/floor/tiled/dark, /area/tether/surfacebase/security/interrogation) +"aPk" = ( +/obj/structure/table/bench/padded, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/turf/simulated/floor/tiled/dark, +/area/chapel/main) "aPl" = ( /obj/structure/table/reinforced, /obj/machinery/photocopier/faxmachine{ @@ -21633,12 +22473,17 @@ /turf/simulated/floor/tiled/white, /area/tether/surfacebase/medical/surgery) "aPu" = ( -/obj/structure/morgue, -/obj/machinery/camera/network/civilian{ - dir = 4 +/obj/structure/table/bench/padded, +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/turf/simulated/floor/tiled/dark, +/area/chapel/main) +"aPv" = ( +/obj/structure/table/bench/padded, +/obj/machinery/atmospherics/unary/vent_scrubber/on{ + dir = 1 }, /turf/simulated/floor/tiled/dark, -/area/chapel/chapel_morgue) +/area/chapel/main) "aPw" = ( /obj/machinery/recharger/wallcharger{ pixel_y = -38 @@ -21682,10 +22527,27 @@ }, /turf/simulated/floor/tiled/dark, /area/rnd/outpost/xenobiology/outpost_slimepens) +"aPB" = ( +/obj/structure/table/bench/padded, +/obj/machinery/atmospherics/unary/vent_pump/on{ + dir = 1 + }, +/turf/simulated/floor/tiled/dark, +/area/chapel/main) "aPC" = ( /obj/machinery/light/small, /turf/simulated/floor/tiled/techfloor, /area/tether/surfacebase/medical/lowerhall) +"aPD" = ( +/obj/machinery/alarm{ + alarm_id = "pen_nine"; + breach_detection = 0; + dir = 1; + icon_state = "alarm0"; + pixel_y = -22 + }, +/turf/simulated/floor/lino, +/area/chapel/office) "aPE" = ( /obj/effect/floor_decal/industrial/loading{ dir = 4 @@ -21837,22 +22699,6 @@ }, /turf/simulated/floor/tiled/white, /area/tether/surfacebase/medical/storage) -"aPT" = ( -/obj/structure/table/woodentable, -/obj/item/weapon/pen/blue{ - pixel_x = 2; - pixel_y = 1 - }, -/obj/item/weapon/paper_bin{ - pixel_x = -2; - pixel_y = 8 - }, -/obj/machinery/atmospherics/unary/vent_scrubber/on, -/obj/machinery/camera/network/civilian{ - dir = 4 - }, -/turf/simulated/floor/lino, -/area/chapel/office) "aPU" = ( /obj/effect/floor_decal/borderfloorwhite{ dir = 1 @@ -22546,11 +23392,6 @@ }, /turf/simulated/floor/tiled/white, /area/tether/surfacebase/medical/surgery) -"aQW" = ( -/obj/structure/table/bench/padded, -/obj/machinery/camera/network/civilian, -/turf/simulated/floor/tiled/dark, -/area/chapel/main) "aQX" = ( /obj/machinery/atmospherics/pipe/simple/hidden/supply, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, @@ -22590,13 +23431,6 @@ /obj/structure/closet/secure_closet/medical2, /turf/simulated/floor/tiled/white, /area/tether/surfacebase/medical/surgery) -"aRa" = ( -/obj/structure/table/bench/padded, -/obj/machinery/camera/network/civilian{ - dir = 1 - }, -/turf/simulated/floor/tiled/dark, -/area/chapel/main) "aRb" = ( /obj/effect/floor_decal/borderfloorwhite, /obj/effect/floor_decal/corner/paleblue/border, @@ -23703,18 +24537,6 @@ }, /turf/simulated/floor/tiled/white, /area/tether/surfacebase/medical/lowerhall) -"aSL" = ( -/obj/effect/floor_decal/borderfloor{ - dir = 6 - }, -/obj/effect/floor_decal/borderfloor/corner2{ - dir = 6 - }, -/obj/machinery/camera/network/tether{ - dir = 9 - }, -/turf/simulated/floor/tiled/techmaint, -/area/tether/surfacebase/surface_two_hall) "aSM" = ( /obj/structure/table/standard, /obj/machinery/firealarm{ @@ -26586,12 +27408,6 @@ }, /turf/simulated/floor/carpet/sblucarpet, /area/bridge/meeting_room) -"aXi" = ( -/obj/effect/floor_decal/chapel{ - dir = 1 - }, -/turf/simulated/floor/tiled/dark, -/area/chapel/main) "aXj" = ( /obj/machinery/power/apc{ dir = 4; @@ -26655,12 +27471,6 @@ }, /turf/simulated/floor/plating, /area/maintenance/substation/command) -"aXq" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, -/turf/simulated/floor/tiled/dark, -/area/chapel/main) "aXr" = ( /turf/simulated/wall, /area/maintenance/substation/command) @@ -26683,12 +27493,6 @@ }, /turf/simulated/floor/plating, /area/maintenance/commandmaint) -"aXu" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, -/turf/simulated/floor/tiled/dark, -/area/chapel/main) "aXv" = ( /obj/machinery/firealarm{ dir = 2; @@ -26938,12 +27742,6 @@ "aYd" = ( /turf/simulated/wall, /area/chapel/main) -"aYe" = ( -/obj/structure/extinguisher_cabinet{ - pixel_y = 30 - }, -/turf/simulated/floor/tiled/dark, -/area/chapel/main) "aYf" = ( /obj/structure/table/woodentable, /obj/machinery/photocopier/faxmachine{ @@ -26971,31 +27769,6 @@ }, /turf/simulated/floor/tiled/dark, /area/bridge_hallway) -"aYj" = ( -/obj/machinery/alarm{ - pixel_y = 22 - }, -/turf/simulated/floor/tiled/dark, -/area/chapel/main) -"aYl" = ( -/obj/structure/disposalpipe/segment, -/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/dark, -/area/chapel/main) -"aYm" = ( -/obj/machinery/photocopier, -/obj/machinery/alarm{ - pixel_y = 22 - }, -/turf/simulated/floor/lino, -/area/chapel/office) "aYn" = ( /obj/structure/extinguisher_cabinet{ pixel_y = 30 @@ -27056,66 +27829,6 @@ }, /turf/simulated/floor/tiled/dark, /area/bridge_hallway) -"aYt" = ( -/obj/effect/floor_decal/chapel{ - dir = 1 - }, -/obj/structure/cable/green{ - icon_state = "1-2" - }, -/turf/simulated/floor/tiled/dark, -/area/chapel/main) -"aYu" = ( -/obj/structure/table/bench/padded, -/obj/effect/floor_decal/chapel{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 5; - icon_state = "intact-supply" - }, -/turf/simulated/floor/tiled/dark, -/area/chapel/main) -"aYv" = ( -/obj/structure/table/bench/padded, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, -/turf/simulated/floor/tiled/dark, -/area/chapel/main) -"aYw" = ( -/obj/effect/floor_decal/chapel{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, -/turf/simulated/floor/tiled/dark, -/area/chapel/main) -"aYx" = ( -/obj/structure/table/bench/padded, -/obj/effect/floor_decal/chapel{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, -/turf/simulated/floor/tiled/dark, -/area/chapel/main) -"aYy" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2"; - pixel_y = 0 - }, -/obj/machinery/atmospherics/pipe/manifold/hidden/supply{ - dir = 4 - }, -/turf/simulated/floor/tiled/dark, -/area/chapel/main) "aYz" = ( /obj/structure/disposalpipe/segment{ dir = 4; @@ -27151,18 +27864,6 @@ }, /turf/simulated/floor/wood, /area/bridge/meeting_room) -"aYB" = ( -/obj/effect/landmark/start{ - name = "Chaplain" - }, -/obj/structure/bed/chair, -/obj/machinery/button/windowtint{ - id = "chapel"; - pixel_x = -20; - pixel_y = -25 - }, -/turf/simulated/floor/lino, -/area/chapel/office) "aYE" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /obj/machinery/atmospherics/pipe/simple/hidden/supply{ @@ -27181,20 +27882,6 @@ }, /turf/simulated/floor/tiled/dark, /area/chapel/chapel_morgue) -"aYG" = ( -/obj/effect/floor_decal/chapel{ - dir = 8 - }, -/obj/structure/cable/green{ - icon_state = "1-2" - }, -/turf/simulated/floor/tiled/dark, -/area/chapel/main) -"aYH" = ( -/obj/structure/table/bench/padded, -/obj/effect/floor_decal/chapel, -/turf/simulated/floor/tiled/dark, -/area/chapel/main) "aYJ" = ( /obj/structure/cable/green{ icon_state = "4-8" @@ -27205,18 +27892,6 @@ }, /turf/simulated/floor/tiled/dark, /area/bridge_hallway) -"aYK" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 6 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 6 - }, -/obj/structure/cable/green{ - icon_state = "2-4" - }, -/turf/simulated/floor/lino, -/area/chapel/office) "aYL" = ( /obj/structure/cable/green{ icon_state = "4-8" @@ -27289,39 +27964,6 @@ }, /turf/simulated/floor/tiled/dark, /area/chapel/chapel_morgue) -"aYQ" = ( -/obj/machinery/door/airlock/glass{ - name = "Chapel" - }, -/obj/structure/cable/green{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/door/firedoor/glass, -/turf/simulated/floor/carpet, -/area/chapel/main) -"aYR" = ( -/obj/structure/cable/green{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/structure/cable/green{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/turf/simulated/floor/carpet, -/area/chapel/main) -"aYS" = ( -/obj/structure/cable/green{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/turf/simulated/floor/tiled/dark, -/area/chapel/main) "aYT" = ( /obj/machinery/power/apc{ dir = 4; @@ -27335,27 +27977,6 @@ }, /turf/simulated/floor/tiled/dark, /area/bridge_hallway) -"aYU" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2"; - pixel_y = 0 - }, -/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ - dir = 8 - }, -/turf/simulated/floor/carpet, -/area/chapel/main) -"aYV" = ( -/obj/structure/table/woodentable, -/obj/machinery/atmospherics/unary/vent_scrubber/on{ - dir = 8 - }, -/turf/simulated/floor/carpet, -/area/chapel/main) "aYW" = ( /obj/structure/closet/coffin, /obj/machinery/atmospherics/unary/vent_scrubber/on{ @@ -27376,26 +27997,6 @@ }, /turf/simulated/floor/wood, /area/bridge/meeting_room) -"aYY" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, -/obj/structure/cable/green{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/light_switch{ - dir = 4; - on = 0; - pixel_x = -24; - pixel_y = 20 - }, -/turf/simulated/floor/tiled/dark, -/area/chapel/chapel_morgue) "aYZ" = ( /obj/structure/grille, /obj/machinery/door/firedoor/glass, @@ -27407,14 +28008,6 @@ can_open = 0 }, /area/maintenance/lower/bar) -"aZc" = ( -/obj/machinery/atmospherics/pipe/manifold/hidden/supply, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, -/obj/structure/disposalpipe/segment, -/turf/simulated/floor/lino, -/area/chapel/office) "aZe" = ( /obj/structure/cable/green{ icon_state = "4-8" @@ -27452,64 +28045,6 @@ /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /turf/simulated/floor/plating, /area/maintenance/commandmaint) -"aZi" = ( -/obj/structure/table/woodentable, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, -/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 - }, -/turf/simulated/floor/carpet, -/area/chapel/main) -"aZj" = ( -/obj/item/weapon/stool/padded, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, -/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 - }, -/turf/simulated/floor/carpet, -/area/chapel/main) -"aZk" = ( -/obj/machinery/door/airlock{ - name = "Chapel Office"; - req_access = list(27) - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, -/obj/structure/cable/green{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/door/firedoor/glass, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/simulated/floor/tiled/dark, -/area/chapel/office) "aZl" = ( /obj/effect/floor_decal/industrial/warning/corner{ dir = 1 @@ -27526,99 +28061,6 @@ }, /turf/simulated/floor/plating, /area/maintenance/substation/command) -"aZm" = ( -/obj/machinery/power/apc{ - dir = 4; - name = "east bump"; - pixel_x = 24 - }, -/obj/structure/cable/green{ - d2 = 8; - dir = 2; - icon_state = "0-8" - }, -/obj/structure/cable/green{ - icon_state = "1-8" - }, -/turf/simulated/floor/lino, -/area/chapel/office) -"aZn" = ( -/obj/structure/bed/chair{ - dir = 1 - }, -/turf/simulated/floor/tiled/dark, -/area/chapel/chapel_morgue) -"aZo" = ( -/obj/structure/bed/chair{ - dir = 1 - }, -/obj/machinery/alarm{ - alarm_id = "anomaly_testing"; - breach_detection = 0; - dir = 8; - frequency = 1439; - pixel_x = 22; - pixel_y = 0; - report_danger_level = 0 - }, -/turf/simulated/floor/tiled/dark, -/area/chapel/chapel_morgue) -"aZp" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 9 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 9 - }, -/obj/structure/cable/green{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/simulated/floor/lino, -/area/chapel/office) -"aZq" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2"; - pixel_y = 0 - }, -/obj/machinery/atmospherics/pipe/manifold/hidden/supply{ - dir = 8 - }, -/turf/simulated/floor/carpet, -/area/chapel/main) -"aZr" = ( -/obj/structure/table/woodentable, -/obj/machinery/atmospherics/unary/vent_pump/on{ - dir = 8 - }, -/turf/simulated/floor/carpet, -/area/chapel/main) -"aZs" = ( -/obj/structure/bed/chair{ - dir = 1 - }, -/obj/machinery/button/remote/blast_door{ - desc = "A remote control-switch for shutters."; - id = "chapel_obs"; - layer = 3.3; - name = "Chapel Observation Shutters"; - pixel_x = 6; - pixel_y = -29; - req_access = list(27) - }, -/obj/machinery/atmospherics/unary/vent_scrubber/on{ - dir = 4 - }, -/turf/simulated/floor/tiled/dark, -/area/chapel/chapel_morgue) "aZt" = ( /obj/structure/closet/crate, /obj/random/cash, @@ -27626,21 +28068,6 @@ /obj/random/drinkbottle, /turf/simulated/floor/plating, /area/maintenance/lower/mining) -"aZu" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 6 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 10 - }, -/turf/simulated/floor/tiled/dark, -/area/chapel/chapel_morgue) -"aZv" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, -/turf/simulated/floor/tiled/dark, -/area/chapel/chapel_morgue) "aZw" = ( /obj/item/toy/plushie/kitten{ desc = "An odd appearing, cryptic plush of a cat."; @@ -27707,15 +28134,6 @@ /obj/random/trash_pile, /turf/simulated/floor/tiled/techfloor, /area/maintenance/lower/south) -"aZD" = ( -/obj/structure/bed/chair{ - dir = 1 - }, -/obj/machinery/atmospherics/unary/vent_pump/on{ - dir = 8 - }, -/turf/simulated/floor/tiled/dark, -/area/chapel/chapel_morgue) "aZE" = ( /obj/structure/table/bench/padded, /obj/effect/floor_decal/chapel{ @@ -27723,82 +28141,6 @@ }, /turf/simulated/floor/tiled/dark, /area/chapel/main) -"aZF" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2"; - pixel_y = 0 - }, -/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/manifold/hidden/supply{ - dir = 8 - }, -/turf/simulated/floor/tiled/dark, -/area/chapel/main) -"aZG" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, -/turf/simulated/floor/tiled/dark, -/area/chapel/main) -"aZH" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 10 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 10 - }, -/turf/simulated/floor/tiled/dark, -/area/chapel/main) -"aZI" = ( -/obj/machinery/door/blast/shutters{ - dir = 2; - id = "chapel_obs"; - name = "Chapel Observation" - }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/turf/simulated/floor/tiled/dark, -/area/chapel/chapel_morgue) -"aZJ" = ( -/obj/structure/table/bench/padded, -/obj/effect/floor_decal/chapel, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 6 - }, -/turf/simulated/floor/tiled/dark, -/area/chapel/main) -"aZK" = ( -/obj/structure/table/bench/padded, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, -/turf/simulated/floor/tiled/dark, -/area/chapel/main) -"aZL" = ( -/obj/effect/floor_decal/chapel{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, -/turf/simulated/floor/tiled/dark, -/area/chapel/main) -"aZM" = ( -/obj/structure/table/bench/padded, -/obj/effect/floor_decal/chapel, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, -/turf/simulated/floor/tiled/dark, -/area/chapel/main) "aZN" = ( /obj/effect/floor_decal/borderfloor{ dir = 4 @@ -27838,88 +28180,6 @@ }, /turf/simulated/floor/plating, /area/maintenance/commandmaint) -"aZS" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2"; - pixel_y = 0 - }, -/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ - dir = 4 - }, -/turf/simulated/floor/tiled/dark, -/area/chapel/main) -"aZT" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 5; - icon_state = "intact-supply" - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 5; - icon_state = "intact-scrubbers" - }, -/turf/simulated/floor/tiled/dark, -/area/chapel/main) -"aZU" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 9 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 9 - }, -/turf/simulated/floor/tiled/dark, -/area/chapel/main) -"aZV" = ( -/obj/machinery/light_switch{ - dir = 2; - name = "light switch "; - pixel_x = 0; - pixel_y = 26 - }, -/obj/machinery/light/small{ - dir = 4 - }, -/turf/simulated/floor/carpet, -/area/chapel/main) -"aZW" = ( -/obj/structure/bed/chair{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 6 - }, -/obj/machinery/light_switch{ - dir = 4; - on = 0; - pixel_x = -28 - }, -/turf/simulated/floor/lino, -/area/chapel/office) -"aZX" = ( -/obj/machinery/firealarm{ - dir = 1; - pixel_x = 0; - pixel_y = -26 - }, -/turf/simulated/floor/tiled/dark, -/area/chapel/main) -"aZY" = ( -/obj/structure/catwalk, -/obj/machinery/atmospherics/pipe/simple/visible/supply, -/obj/machinery/atmospherics/pipe/simple/visible/scrubbers, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/structure/disposalpipe/segment, -/obj/machinery/door/airlock/maintenance/common, -/turf/simulated/floor/tiled/techfloor, -/area/chapel/main) "aZZ" = ( /obj/structure/catwalk, /obj/machinery/atmospherics/pipe/simple/visible/scrubbers{ @@ -27977,22 +28237,6 @@ }, /turf/simulated/floor/plating, /area/maintenance/lower/south) -"bad" = ( -/obj/structure/catwalk, -/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/structure/cable{ - icon_state = "4-8" - }, -/turf/simulated/floor/plating, -/area/maintenance/lower/south) "bae" = ( /obj/machinery/atmospherics/pipe/simple/visible/scrubbers{ dir = 4 @@ -28011,26 +28255,6 @@ /obj/machinery/door/airlock/maintenance/common, /turf/simulated/floor/tiled/techfloor/grid, /area/maintenance/lower/south) -"baf" = ( -/obj/structure/catwalk, -/obj/machinery/atmospherics/pipe/manifold/visible/scrubbers{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/manifold/visible/supply{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/structure/disposalpipe/segment{ - dir = 8; - icon_state = "pipe-c" - }, -/obj/structure/cable{ - icon_state = "2-8" - }, -/turf/simulated/floor/plating, -/area/maintenance/lower/south) "bag" = ( /obj/item/device/radio/intercom{ broadcasting = 1; @@ -28049,32 +28273,6 @@ }, /turf/simulated/floor/tiled/dark, /area/chapel/main) -"bah" = ( -/obj/item/device/radio/intercom{ - broadcasting = 1; - dir = 2; - frequency = 1473; - name = "Confession Intercom"; - pixel_x = 0; - pixel_y = -24 - }, -/obj/structure/bed/chair{ - dir = 8 - }, -/obj/machinery/light/small{ - dir = 4 - }, -/turf/simulated/floor/tiled/dark, -/area/chapel/main) -"bai" = ( -/obj/structure/catwalk, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/visible/scrubbers, -/obj/machinery/atmospherics/pipe/simple/visible/supply, -/turf/simulated/floor/plating, -/area/maintenance/lower/south) "baj" = ( /obj/effect/floor_decal/corner_techfloor_grid{ dir = 9 @@ -28152,7 +28350,10 @@ /obj/effect/floor_decal/corner_techfloor_grid{ dir = 10 }, -/mob/living/simple_mob/animal/passive/lizard, +/mob/living/simple_mob/animal/passive/lizard{ + desc = "It's the secret head of Janitoria!"; + name = "Bucket" + }, /turf/simulated/floor/tiled/techfloor, /area/maintenance/lower/south) "bau" = ( @@ -28236,18 +28437,6 @@ /obj/random/maintenance/clean, /turf/simulated/floor, /area/maintenance/lower/south) -"baG" = ( -/obj/structure/cable/green{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/structure/disposalpipe/segment{ - dir = 8; - icon_state = "pipe-c" - }, -/turf/simulated/floor/lino, -/area/chapel/office) "baH" = ( /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 5 @@ -28333,33 +28522,10 @@ }, /turf/simulated/floor/plating, /area/maintenance/substation/command) -"baX" = ( -/obj/machinery/light/small{ - dir = 4 - }, -/turf/simulated/floor/carpet, -/area/chapel/main) "baY" = ( /obj/machinery/light/small, /turf/simulated/floor/tiled/dark, /area/chapel/main) -"baZ" = ( -/obj/structure/bed/chair{ - dir = 1 - }, -/obj/machinery/light/small{ - dir = 8; - pixel_x = 0 - }, -/turf/simulated/floor/tiled/dark, -/area/chapel/chapel_morgue) -"bba" = ( -/obj/structure/table/bench/padded, -/obj/machinery/atmospherics/unary/vent_scrubber/on{ - dir = 1 - }, -/turf/simulated/floor/tiled/dark, -/area/chapel/main) "bcC" = ( /obj/effect/floor_decal/borderfloor{ dir = 8 @@ -28707,21 +28873,6 @@ }, /turf/simulated/floor/tiled/techmaint, /area/tether/surfacebase/surface_two_hall) -"jfF" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, -/turf/simulated/floor/tiled/techmaint, -/area/tether/surfacebase/surface_two_hall) "jnL" = ( /obj/effect/floor_decal/borderfloor{ dir = 4 @@ -28907,22 +29058,6 @@ /obj/machinery/door/firedoor/glass/hidden, /turf/simulated/floor/tiled/techmaint, /area/tether/surfacebase/surface_two_hall) -"nGX" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "1-4" - }, -/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers, -/turf/simulated/floor/tiled/techmaint, -/area/tether/surfacebase/surface_two_hall) "nKP" = ( /obj/machinery/alarm{ dir = 8; @@ -29570,27 +29705,6 @@ }, /turf/simulated/floor/tiled/techmaint, /area/tether/surfacebase/surface_two_hall) -"xIc" = ( -/obj/structure/catwalk, -/obj/machinery/atmospherics/pipe/simple/visible/supply{ - dir = 5 - }, -/obj/machinery/atmospherics/pipe/manifold/visible/scrubbers, -/obj/structure/disposalpipe/segment{ - dir = 8; - icon_state = "pipe-c" - }, -/obj/structure/cable/green{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/obj/machinery/alarm{ - dir = 1; - pixel_y = -25 - }, -/turf/simulated/floor/plating, -/area/maintenance/lower/bar) "xPU" = ( /obj/effect/floor_decal/borderfloor{ dir = 8 @@ -43038,18 +43152,18 @@ agw agw aoC apf -apO +azm aqF arj arX asN att auc -auM -avh -avT -axz -axz +aHH +aHW +aIs +aLt +aOA axz ayQ azJ @@ -43180,7 +43294,7 @@ agw agw aoC apf -apP +azn aqp ark arY @@ -43189,9 +43303,9 @@ arY arY auN aAA -avU -arY -axA +aJC +aMA +aOB arY ark arY @@ -43322,7 +43436,7 @@ agx agx aoD apf -apP +azn aqD arl arl @@ -43332,7 +43446,7 @@ arl arl arl arl -arl +aNc axB axB axB @@ -43464,7 +43578,7 @@ nUt nUt emJ iGv -nGX +azK aqE adY aac @@ -43473,8 +43587,8 @@ aac aac aac aac -aac -aac +arZ +aZZ axB ayi ayR @@ -43606,7 +43720,7 @@ afG afG wQg afG -jfF +afG aqD adY aZw @@ -43615,8 +43729,8 @@ aac aac aac aac -aac -aac +arZ +baa axB ayj ayS @@ -43747,9 +43861,9 @@ afG anu jnL jfi -aiE -apP -aSL +afM +afM +aCV adY aZx aZz @@ -43757,8 +43871,8 @@ aZA aac aac aac -aac -aac +arZ +avi axB ayk ayT @@ -43879,28 +43993,28 @@ adY adY aiF ajd +adY +adY +adY aYd -aYd -aYd -aYd -aYQ +amN agY -anj -aYd -aYd -aYd -aYd -ajL -adY -adY +aqJ +aoE +aoE +api +aoE +api +aoE +aoE arZ arZ arZ arZ arZ aac -aac -aac +arZ +bac axB ayl ayU @@ -44021,28 +44135,28 @@ aau ahR adu lVd +alK +amm +amm aYd -ajZ -aYt -aYG -aYR -ajY -ajY -aXi -aXk -ame -aYd -aZZ -arZ +amR +ant +aro +api +aup +avh +awK +aAf +amS +aoE baj bam bap -bap aud arZ arZ arZ -arZ +bae axB aym ayU @@ -44163,28 +44277,28 @@ ahP ain adu lVd +alN +amm +amm aYd +and +anw aqT -aYu -aYH -aYS -amM -aro -aZE -aZJ -bba -aYd -baa -arZ +aoE +auM +avo +awL +aAg +aPD +aoE bak avX avX -avX baw arZ aZB avV -awL +aNg axB ayn ayV @@ -44304,29 +44418,29 @@ aju aju aip aiI -xIc +ajH +amb +amm +amx aYd -aYj -aXu -aro -aro -ang -aro -aro -aXq -aZX -aYd -avi -arZ +ane +aoy +aqY +arm +auP +avT +awM +aih +aih +aoE aFR aDN -aDN aDM aDM arZ avk avW -avW +aNC axB axB ayW @@ -44447,28 +44561,28 @@ aju ais adu dQd +alN +amm +amm aYd -aQW -aYv -aXy +anf +aoV aro -anh -aro -aXy -aZK -aRa -aYd -bac -arZ +aoE +auW +avU +avU +aBn +aCY +aoE aDN ban aDN -aDN aDM arZ avl avW -avW +aNC aDM ayo ayX @@ -44589,28 +44703,28 @@ aid aiq adu dQd +alK +amm +amm aYd -aYe -aYw -aXk +anf +aoV aro -ang -aro -aXi -aZL -ajV -aYd -bad -arZ +api +aih +aih +axA +aBA +aFa +aoE +aDN +aDN bal -aDN -aDN -aDN arZ arZ avm avW -awM +aOv axD ayp ayY @@ -44732,27 +44846,27 @@ adu adu ajc aYd -aXy -aYx -aYH -aro -ang -aro -aZE -aZM -aXy aYd -bae -arZ +aYd +aYd +anf +aoV +aro +aoE +api +api +aoE +aoE +aoE +aoE arZ bao arZ arZ -arZ auO avn avX -avX +aOy axE ayp ayZ @@ -44874,27 +44988,27 @@ aif aiH aiX ajs -aYl -aYy -aYl -aYU -ani -aZq -aZF -aZS -aYl -aZY -baf -bai -bai -bai -bai -bai +amn +amn +amL +ang +apL +amn auf -auP -avo -avY -awN +amn +amn +aya +aBB +aFY +aFY +aFY +aFY +aFY +aGa +aHU +aHX +aJE +aOz awN ayq aza @@ -45019,12 +45133,12 @@ ajJ aro aro aro -aYV -aZi -aZr -aZG -aro -aro +anh +aOP +aPk +aOI +aPv +baY aYd aDN aDN @@ -45153,20 +45267,20 @@ aee adL adu amP -aoE -aiL -aiL -aoE -aoE -api -api -aoE -aZV -aZj -baX -aZG +aYd +ahW +ahW +agY +aYd aro aro +aro +ani +apP +aXy +aro +ani +aXk aYd arZ arZ @@ -45295,20 +45409,20 @@ aee adL adu ahP -aiL ahW -ahW -amR -aoE -aYm -amS -aoE -aoE -aZk -aoE -aZG -aro +ait +aiK +ajL +aYd +amu +ajY +ajY +aZE +apQ +aXy aro +aZE +avY aGN bag aYd @@ -45436,21 +45550,21 @@ aee aee adL adu -ahV -aoE -air -aiK -ait -aiG -aih -aYB -aPT -aZW -aZp -api -aZG +afJ +aYd +aiv +aiL +aiL +amd +ajY +apO +aqG +aOE +aOU +aro +aro +aro aro -baY aYd aue aYd @@ -45579,22 +45693,22 @@ aef ahl adu ahX -aiL -ait -amN -ane +aYd +aiG aiZ -aiv -ajH -ajX -aZc -baG -api -aZG -aro +ait +aYd +amv +amz +ajY +ajY +aqv +ajY +ajY +ajY aro ase -bah +aBY aYd aac arZ @@ -45711,29 +45825,29 @@ adu adu adu adu +afJ adu adu adu adu adu -adu -adu +ahV adu adu aig -aoE -aiL -aiL -aiL -aoE -aqY -anf -aYK -amL -aZm -api -aZH -aZT +aYd +ait +ajb +ajO +ahW +ajY +aqo +aOC +aOI +aPb +aro +aro +aro aro aYd aYd @@ -45852,31 +45966,31 @@ aac aac aac aac -aac -aac -aac -aac -aac -aac -aac -aac -aac adu -aiJ -aiM ahP ajt ajt -aoE -aoE -aoE -ajW -aoE -aoE -aoE -ajT -aZG +adu +aac +adu +ahP +adu +adu +adu +aYd +aYd +ahW +aYd +aYd +amu +ajY +ajY +ani +apP +aXy aro +ani +aXk aYd aac aac @@ -45994,31 +46108,31 @@ aac aac aac aac -aac -aac -aac -aac -aac -aac -aac -aac -aac -adu -adu adu ahP ahP ahP +adu +aac +adu +ahP ajT -arq -aPu -aYY -aYZ -baZ -aZs +afZ +aga +air +aiJ +ajo +ajR ajT -aZG aro +aro +aro +aZE +apQ +aXy +aro +aZE +avY aYd aoF aoF @@ -46136,31 +46250,31 @@ aac aac aac aac -aac -aac -aac -aac -aac -aac -aac -aac -aac -aac -aac adu aio amQ +aiM +adu +aac +adu ahP amO aYp aYp aYM -aYZ -aZn -aZu -aZI -aZU -ajD +ajT +ajp +ajV +ame +amw +amw +amw +anj +aPd +aPu +aOE +aPB +aro aYd app app @@ -46278,30 +46392,30 @@ aac aac aac aac -aab -aac -aac -aab -aab -aac -aac -aac -aac -aac -aac adu adu adu adu +adu +aac +adu +ahP ajT -aYq -aYE -aYO +arq +agf +aYM aYZ -aZn -aZv +ajq +ajW ajT aiN +aro +amM +aro +aro +aro +amM +aro aQu aYd apq @@ -46426,26 +46540,26 @@ aab aab aab aab -aac -aac -aac -aac -aac -aac -aac -aac -aac +adu +afK ajT -aYW -aYF -aYP +aYp +agy +aYM aYZ -aZo -aZD +ajq +ajX ajT ajr ajr aYd +ajr +ajr +ajr +aYd +ajr +ajr +aYd apq apq apq @@ -46570,21 +46684,21 @@ aab aab aab aab -aac -aac -aac -aac -aac -aac -aac -ajT -ajT -ajT -ajT -ajT -ajT ajT +aYq +aYE +aYO +aYZ +ajq +ajX ajT +apq +ajM +aUa +ajM +ajM +ajM +ajM ajM ajM apq @@ -46712,18 +46826,18 @@ aab aab aab aab -aab -aab -aac -aac -aac -aab -aab -aab +ajT +aYW +aYF +aYP +aYZ +ajD +ajZ +ajT aab ajM ajM -aUa +ajM ajM ajM ajM @@ -46854,14 +46968,14 @@ aab aab aab aab -aab -aab -aab -aab -aab -aab -aab -aab +ajT +ajT +ajT +ajT +ajT +ajT +ajT +ajT aab ajM ajM @@ -46998,9 +47112,9 @@ aab aab aab aab -aab -aab -aab +aac +aac +aac aab aab aab @@ -47715,8 +47829,8 @@ aab aab aab aab -ajM -ajM +acD +acD ajM ajM ajM @@ -47857,8 +47971,8 @@ aab aab aab aab -ajM -ajM +acD +acD ajM ajM ajM diff --git a/maps/tether/tether-03-surface3.dmm b/maps/tether/tether-03-surface3.dmm index 2b9e9a70d5..47deba118b 100644 --- a/maps/tether/tether-03-surface3.dmm +++ b/maps/tether/tether-03-surface3.dmm @@ -13707,15 +13707,9 @@ /turf/simulated/floor/carpet, /area/tether/surfacebase/library/study) "axX" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, -/mob/living/simple_mob/vore/rabbit/white/lennie, -/turf/simulated/floor/grass, -/area/hydroponics) +/obj/structure/sign/department/chapel, +/turf/simulated/wall/r_wall, +/area/vacant/vacant_shop) "axY" = ( /obj/machinery/atmospherics/pipe/simple/hidden/supply, /turf/simulated/floor/wood, @@ -30944,10 +30938,10 @@ /turf/simulated/floor/lino, /area/tether/surfacebase/entertainment/backstage) "bcj" = ( -/obj/machinery/vending/loadout/costume, /obj/machinery/atmospherics/unary/vent_scrubber/on{ dir = 8 }, +/obj/machinery/vending/entertainer, /turf/simulated/floor/lino, /area/tether/surfacebase/entertainment/backstage) "bck" = ( @@ -31338,10 +31332,15 @@ /turf/simulated/floor/wood, /area/tether/surfacebase/entertainment) "bcN" = ( -/obj/structure/shuttle/engine/propulsion, -/turf/simulated/floor/reinforced, -/turf/simulated/shuttle/plating/carry, -/area/shuttle/tether) +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 8 + }, +/mob/living/simple_mob/vore/rabbit/white/lennie, +/turf/simulated/floor/tiled, +/area/hydroponics) "bcO" = ( /obj/effect/floor_decal/borderfloor{ dir = 8 @@ -31564,12 +31563,10 @@ /turf/simulated/floor/lino, /area/tether/surfacebase/entertainment/backstage) "bde" = ( -/obj/machinery/atmospherics/unary/engine{ - dir = 1 - }, +/obj/structure/shuttle/engine/propulsion, /turf/simulated/floor/reinforced, /turf/simulated/shuttle/plating/carry, -/area/shuttle/tourbus/engines) +/area/shuttle/tether) "bdf" = ( /obj/structure/disposalpipe/segment{ dir = 8 @@ -32430,14 +32427,12 @@ /turf/simulated/floor/tiled, /area/hydroponics) "beN" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 +/obj/machinery/atmospherics/unary/engine{ + dir = 1 }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 8 - }, -/turf/simulated/floor/tiled, -/area/hydroponics) +/turf/simulated/floor/reinforced, +/turf/simulated/shuttle/plating/carry, +/area/shuttle/tourbus/engines) "beO" = ( /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 @@ -47804,7 +47799,7 @@ jML jHw jpB qWU -bde +beN aKU aOI aPb @@ -48656,7 +48651,7 @@ caw jHw gHh qWU -bde +beN aKU aOI aPb @@ -50641,7 +50636,7 @@ aNk uSA aNJ aNP -bcN +bde aKU abg aOk @@ -50783,7 +50778,7 @@ aNl aNl aNK aNP -bcN +bde aKU abg aOk @@ -50925,7 +50920,7 @@ aNm aNl aNK aNP -bcN +bde aKU abg aOk @@ -51163,7 +51158,7 @@ amc aio rXW lXv -aol +axX alY alY agw @@ -52310,7 +52305,7 @@ aTF bdC beC beK -beN +bcN bcg anN atA @@ -53153,9 +53148,9 @@ axq atg aSy aop -arZ +aop bdk -axX +ask aVy aLg aFM @@ -54000,7 +53995,7 @@ acV avb awu arL -aop +arZ aop asQ auk diff --git a/maps/tether/tether_defines.dm b/maps/tether/tether_defines.dm index 23c94f3b30..11972d9de4 100644 --- a/maps/tether/tether_defines.dm +++ b/maps/tether/tether_defines.dm @@ -87,7 +87,7 @@ shuttle_recall_message = "The scheduled crew transfer has been cancelled." shuttle_name = "Automated Tram" emergency_shuttle_docked_message = "The evacuation tram has arrived at the tram station. You have approximately %ETD% to board the tram." - emergency_shuttle_leaving_dock = "The emergency tram has left the station. Estimate %ETA% until the shuttle arrives at %dock_name%." + emergency_shuttle_leaving_dock = "The emergency tram has left the station. Estimate %ETA% until the tram arrives at %dock_name%." emergency_shuttle_called_message = "An emergency evacuation has begun, and an off-schedule tram has been called. It will arrive at the tram station in approximately %ETA%." emergency_shuttle_recall_message = "The evacuation tram has been recalled." @@ -288,8 +288,8 @@ // For making the 6-in-1 holomap, we calculate some offsets #define TETHER_MAP_SIZE 140 // Width and height of compiled in tether z levels. #define TETHER_HOLOMAP_CENTER_GUTTER 40 // 40px central gutter between columns -#define TETHER_HOLOMAP_MARGIN_X ((HOLOMAP_ICON_SIZE - (2*TETHER_MAP_SIZE) - TETHER_HOLOMAP_CENTER_GUTTER) / 2) // 100 -#define TETHER_HOLOMAP_MARGIN_Y ((HOLOMAP_ICON_SIZE - (3*TETHER_MAP_SIZE)) / 2) // 60 +#define TETHER_HOLOMAP_MARGIN_X ((HOLOMAP_ICON_SIZE - (2*TETHER_MAP_SIZE) - TETHER_HOLOMAP_CENTER_GUTTER) / 2) // 80 +#define TETHER_HOLOMAP_MARGIN_Y ((HOLOMAP_ICON_SIZE - (3*TETHER_MAP_SIZE)) / 2) // 30 // We have a bunch of stuff common to the station z levels /datum/map_z_level/tether/station diff --git a/maps/tether/tether_jobs.dm b/maps/tether/tether_jobs.dm index f7f03758d6..a737f96bd0 100644 --- a/maps/tether/tether_jobs.dm +++ b/maps/tether/tether_jobs.dm @@ -28,6 +28,10 @@ pto_type = null access = list(access_talon) minimal_access = list(access_talon) + alt_titles = list("Talon Commander" = /datum/alt_title/talon_commander) + +/datum/alt_title/talon_commander + title = "Talon Commander" /datum/job/talon_doctor title = "Talon Doctor" @@ -48,6 +52,11 @@ pto_type = null access = list(access_talon) minimal_access = list(access_talon) + alt_titles = list("Talon Medic" = /datum/alt_title/talon_medic) + +/datum/alt_title/talon_medic + title = "Talon Medic" + /datum/job/talon_engineer title = "Talon Engineer" @@ -68,6 +77,11 @@ pto_type = null access = list(access_talon) minimal_access = list(access_talon) + alt_titles = list("Talon Technician" = /datum/alt_title/talon_tech) + +/datum/alt_title/talon_tech + title = "Talon Technician" + /datum/job/talon_pilot title = "Talon Pilot" @@ -88,6 +102,11 @@ pto_type = null access = list(access_talon) minimal_access = list(access_talon) + alt_titles = list("Talon Helmsman" = /datum/alt_title/talon_helmsman) + +/datum/alt_title/talon_helmsman + title = "Talon Helmsman" + /datum/job/talon_guard title = "Talon Guard" @@ -108,6 +127,11 @@ pto_type = null access = list(access_talon) minimal_access = list(access_talon) + alt_titles = list("Talon Security" = /datum/alt_title/talon_security) + +/datum/alt_title/talon_security + title = "Talon Security" + /decl/hierarchy/outfit/job/talon_captain name = OUTFIT_JOB_NAME("Talon Captain") diff --git a/rust_g b/rust_g deleted file mode 100644 index 57684fff77..0000000000 Binary files a/rust_g and /dev/null differ diff --git a/rust_g.dll b/rust_g.dll index 9438c14445..5e60ff2cd4 100644 Binary files a/rust_g.dll and b/rust_g.dll differ diff --git a/sound/ambience/alarm4.ogg b/sound/ambience/alarm4.ogg index 0df767c0d2..40ce18bfa3 100644 Binary files a/sound/ambience/alarm4.ogg and b/sound/ambience/alarm4.ogg differ diff --git a/sound/ambience/alarm417_20.ogg b/sound/ambience/alarm417_20.ogg new file mode 100644 index 0000000000..0df767c0d2 Binary files /dev/null and b/sound/ambience/alarm417_20.ogg differ diff --git a/sound/items/small_motor/motor_end.ogg b/sound/items/small_motor/motor_end.ogg new file mode 100644 index 0000000000..e175bfad46 Binary files /dev/null and b/sound/items/small_motor/motor_end.ogg differ diff --git a/sound/items/small_motor/motor_fast.ogg b/sound/items/small_motor/motor_fast.ogg new file mode 100644 index 0000000000..317ca4be4f Binary files /dev/null and b/sound/items/small_motor/motor_fast.ogg differ diff --git a/sound/items/small_motor/motor_faster.ogg b/sound/items/small_motor/motor_faster.ogg new file mode 100644 index 0000000000..bc8e89d495 Binary files /dev/null and b/sound/items/small_motor/motor_faster.ogg differ diff --git a/sound/items/small_motor/motor_idle.ogg b/sound/items/small_motor/motor_idle.ogg new file mode 100644 index 0000000000..01bc22de51 Binary files /dev/null and b/sound/items/small_motor/motor_idle.ogg differ diff --git a/sound/items/small_motor/motor_pull_attempt.ogg b/sound/items/small_motor/motor_pull_attempt.ogg new file mode 100644 index 0000000000..d7475dbae2 Binary files /dev/null and b/sound/items/small_motor/motor_pull_attempt.ogg differ diff --git a/sound/items/small_motor/motor_start_nopull.ogg b/sound/items/small_motor/motor_start_nopull.ogg new file mode 100644 index 0000000000..35bb4c6e6c Binary files /dev/null and b/sound/items/small_motor/motor_start_nopull.ogg differ diff --git a/sound/items/small_motor/motor_start_pull.ogg b/sound/items/small_motor/motor_start_pull.ogg new file mode 100644 index 0000000000..45e456077e Binary files /dev/null and b/sound/items/small_motor/motor_start_pull.ogg differ diff --git a/tgui/packages/tgui/interfaces/ClawMachine.js b/tgui/packages/tgui/interfaces/ClawMachine.js new file mode 100644 index 0000000000..6eb372b0c3 --- /dev/null +++ b/tgui/packages/tgui/interfaces/ClawMachine.js @@ -0,0 +1,85 @@ +import { useBackend } from "../backend"; +import { Button, ProgressBar, Flex, Box, LabeledList } from "../components"; +import { Window } from "../layouts"; + +export const ClawMachine = (props, context) => { + const { act, data } = useBackend(context); + const { + wintick, + instructions, + gameStatus, + winscreen, + } = data; + + let body; + + if (gameStatus === 'CLAWMACHINE_NEW') { + body = ( + +

    + Pay to Play!

    + {instructions} +


    +