diff --git a/.travis.yml b/.travis.yml index 3461433fa13..c7e7fc778bb 100644 --- a/.travis.yml +++ b/.travis.yml @@ -4,8 +4,8 @@ sudo: false env: BYOND_MAJOR="508" - BYOND_MINOR="1287" - MACRO_COUNT=1247 + BYOND_MINOR="1293" + MACRO_COUNT=1230 cache: directories: diff --git a/baystation12.dme b/baystation12.dme index 38fe37bdc94..b205fe76488 100644 --- a/baystation12.dme +++ b/baystation12.dme @@ -31,6 +31,7 @@ #include "code\__defines\mobs.dm" #include "code\__defines\research.dm" #include "code\__defines\species_languages.dm" +#include "code\_helpers\atmospherics.dm" #include "code\_helpers\datum_pool.dm" #include "code\_helpers\files.dm" #include "code\_helpers\game.dm" @@ -145,6 +146,7 @@ #include "code\datums\ai_laws.dm" #include "code\datums\browser.dm" #include "code\datums\computerfiles.dm" +#include "code\datums\crew.dm" #include "code\datums\datacore.dm" #include "code\datums\datumvars.dm" #include "code\datums\disease.dm" @@ -355,7 +357,6 @@ #include "code\game\machinery\autolathe.dm" #include "code\game\machinery\autolathe_datums.dm" #include "code\game\machinery\Beacon.dm" -#include "code\game\machinery\bees_items.dm" #include "code\game\machinery\biogenerator.dm" #include "code\game\machinery\bioprinter.dm" #include "code\game\machinery\bluespacerelay.dm" @@ -606,6 +607,7 @@ #include "code\game\objects\items\devices\scanners.dm" #include "code\game\objects\items\devices\spy_bug.dm" #include "code\game\objects\items\devices\suit_cooling.dm" +#include "code\game\objects\items\devices\t_scanner.dm" #include "code\game\objects\items\devices\taperecorder.dm" #include "code\game\objects\items\devices\traitordevices.dm" #include "code\game\objects\items\devices\transfer_valve.dm" @@ -773,6 +775,7 @@ #include "code\game\objects\structures\watercloset.dm" #include "code\game\objects\structures\windoor_assembly.dm" #include "code\game\objects\structures\window.dm" +#include "code\game\objects\structures\window_spawner.dm" #include "code\game\objects\structures\crates_lockers\closets.dm" #include "code\game\objects\structures\crates_lockers\crates.dm" #include "code\game\objects\structures\crates_lockers\largecrate.dm" @@ -1063,11 +1066,11 @@ #include "code\modules\hydroponics\seed_mobs.dm" #include "code\modules\hydroponics\seed_packets.dm" #include "code\modules\hydroponics\seed_storage.dm" +#include "code\modules\hydroponics\beekeeping\beehive.dm" #include "code\modules\hydroponics\spreading\spreading.dm" #include "code\modules\hydroponics\spreading\spreading_growth.dm" #include "code\modules\hydroponics\spreading\spreading_response.dm" #include "code\modules\hydroponics\trays\tray.dm" -#include "code\modules\hydroponics\trays\tray_apiary.dm" #include "code\modules\hydroponics\trays\tray_process.dm" #include "code\modules\hydroponics\trays\tray_reagents.dm" #include "code\modules\hydroponics\trays\tray_soil.dm" @@ -1113,6 +1116,7 @@ #include "code\modules\mob\animations.dm" #include "code\modules\mob\death.dm" #include "code\modules\mob\emote.dm" +#include "code\modules\mob\gender.dm" #include "code\modules\mob\hear_say.dm" #include "code\modules\mob\holder.dm" #include "code\modules\mob\inventory.dm" @@ -1311,7 +1315,6 @@ #include "code\modules\mob\living\silicon\robot\drone\drone_items.dm" #include "code\modules\mob\living\silicon\robot\drone\drone_manufacturer.dm" #include "code\modules\mob\living\silicon\robot\drone\drone_say.dm" -#include "code\modules\mob\living\simple_animal\bees.dm" #include "code\modules\mob\living\simple_animal\corpse.dm" #include "code\modules\mob\living\simple_animal\parrot.dm" #include "code\modules\mob\living\simple_animal\shade.dm" @@ -1370,6 +1373,7 @@ #include "code\modules\nano\interaction\default.dm" #include "code\modules\nano\interaction\inventory.dm" #include "code\modules\nano\interaction\inventory_deep.dm" +#include "code\modules\nano\interaction\outside.dm" #include "code\modules\nano\interaction\physical.dm" #include "code\modules\nano\interaction\self.dm" #include "code\modules\nano\interaction\zlevel.dm" @@ -1677,16 +1681,15 @@ #include "code\modules\spells\aoe_turf\conjure\forcewall.dm" #include "code\modules\spells\general\area_teleport.dm" #include "code\modules\spells\general\rune_write.dm" -#include "code\modules\spells\targeted\disintegrate.dm" #include "code\modules\spells\targeted\ethereal_jaunt.dm" -#include "code\modules\spells\targeted\flesh_to_stone.dm" #include "code\modules\spells\targeted\genetic.dm" #include "code\modules\spells\targeted\harvest.dm" -#include "code\modules\spells\targeted\horsemask.dm" #include "code\modules\spells\targeted\mind_transfer.dm" #include "code\modules\spells\targeted\shift.dm" #include "code\modules\spells\targeted\subjugate.dm" #include "code\modules\spells\targeted\targeted.dm" +#include "code\modules\spells\targeted\equip\equip.dm" +#include "code\modules\spells\targeted\equip\horsemask.dm" #include "code\modules\spells\targeted\projectile\dumbfire.dm" #include "code\modules\spells\targeted\projectile\fireball.dm" #include "code\modules\spells\targeted\projectile\magic_missile.dm" diff --git a/code/ATMOSPHERICS/components/unary/cold_sink.dm b/code/ATMOSPHERICS/components/unary/cold_sink.dm index e5305876ed9..9fcdad86139 100644 --- a/code/ATMOSPHERICS/components/unary/cold_sink.dm +++ b/code/ATMOSPHERICS/components/unary/cold_sink.dm @@ -43,6 +43,13 @@ node = target break + //copied from pipe construction code since heaters/freezers don't use fittings and weren't doing this check - this all really really needs to be refactored someday. + //check that there are no incompatible pipes/machinery in our own location + for(var/obj/machinery/atmospherics/M in src.loc) + if(M != src && (M.initialize_directions & node_connect) && M.check_connect_types(M,src)) // matches at least one direction on either type of pipe & same connection type + node = null + break + update_icon() /obj/machinery/atmospherics/unary/freezer/update_icon() diff --git a/code/ATMOSPHERICS/components/unary/heat_source.dm b/code/ATMOSPHERICS/components/unary/heat_source.dm index db046e79743..e139f6faf3f 100644 --- a/code/ATMOSPHERICS/components/unary/heat_source.dm +++ b/code/ATMOSPHERICS/components/unary/heat_source.dm @@ -39,11 +39,19 @@ var/node_connect = dir + //check that there is something to connect to for(var/obj/machinery/atmospherics/target in get_step(src, node_connect)) if(target.initialize_directions & get_dir(target, src)) node = target break + //copied from pipe construction code since heaters/freezers don't use fittings and weren't doing this check - this all really really needs to be refactored someday. + //check that there are no incompatible pipes/machinery in our own location + for(var/obj/machinery/atmospherics/M in src.loc) + if(M != src && (M.initialize_directions & node_connect) && M.check_connect_types(M,src)) // matches at least one direction on either type of pipe & same connection type + node = null + break + update_icon() diff --git a/code/ATMOSPHERICS/pipes.dm b/code/ATMOSPHERICS/pipes.dm index 6c5bf21c321..754c0c2da4d 100644 --- a/code/ATMOSPHERICS/pipes.dm +++ b/code/ATMOSPHERICS/pipes.dm @@ -1120,20 +1120,8 @@ return if(istype(W, /obj/item/device/analyzer) && in_range(user, src)) - for (var/mob/O in viewers(user, null)) - O << "\The [user] has used \the [W] on \the [src] \icon[src]" - - var/pressure = parent.air.return_pressure() - var/total_moles = parent.air.total_moles - - user << "Results of analysis of \the [src] \icon[src]" - if (total_moles>0) - user << "Pressure: [round(pressure,0.1)] kPa" - for(var/g in parent.air.gas) - user << "[gas_data.name[g]]: [round((parent.air.gas[g] / total_moles) * 100)]%" - user << "Temperature: [round(parent.air.temperature-T0C)]°C" - else - user << "Tank is empty!" + var/obj/item/device/analyzer/A = W + A.analyze_gases(src, user) /obj/machinery/atmospherics/pipe/tank/air name = "Pressure Tank (Air)" diff --git a/code/__defines/misc.dm b/code/__defines/misc.dm index 9fb8f2c33a3..919a67ec372 100644 --- a/code/__defines/misc.dm +++ b/code/__defines/misc.dm @@ -117,6 +117,7 @@ #define DOOR_OPEN_LAYER 2.7 //Under all objects if opened. 2.7 due to tables being at 2.6 #define DOOR_CLOSED_LAYER 3.1 //Above most items if closed #define LIGHTING_LAYER 11 +#define HUD_LAYER 20 //Above lighting, but below obfuscation. For in-game HUD effects (whereas SCREEN_LAYER is for abstract/OOC things like inventory slots) #define OBFUSCATION_LAYER 21 //Where images covering the view for eyes are put #define SCREEN_LAYER 22 //Mob HUD/effects layer diff --git a/code/__defines/mobs.dm b/code/__defines/mobs.dm index e4e406d219a..724225a24c2 100644 --- a/code/__defines/mobs.dm +++ b/code/__defines/mobs.dm @@ -94,3 +94,13 @@ #define INV_ACCESSORIES_DEF_ICON 'icons/mob/ties.dmi' #define INV_SUIT_DEF_ICON 'icons/mob/ties.dmi' #define INV_SUIT_DEF_ICON 'icons/mob/suit.dmi' +#define MAX_SUPPLIED_LAW_NUMBER 50 + +// NT's alignment towards the character +#define COMPANY_LOYAL "Loyal" +#define COMPANY_SUPPORTATIVE "Supportive" +#define COMPANY_NEUTRAL "Neutral" +#define COMPANY_SKEPTICAL "Skeptical" +#define COMPANY_OPPOSED "Opposed" + +#define COMPANY_ALIGNMENTS list(COMPANY_LOYAL,COMPANY_SUPPORTATIVE,COMPANY_NEUTRAL,COMPANY_SKEPTICAL,COMPANY_OPPOSED) diff --git a/code/_helpers/atmospherics.dm b/code/_helpers/atmospherics.dm new file mode 100644 index 00000000000..2fe393b4dc2 --- /dev/null +++ b/code/_helpers/atmospherics.dm @@ -0,0 +1,47 @@ +/obj/proc/analyze_gases(var/obj/A, var/mob/user) + if(src != A) + user.visible_message("\The [user] has used \an [src] on \the [A]") + + A.add_fingerprint(user) + var/list/result = A.atmosanalyze(user) + if(result && result.len) + user << "Results of the analysis[src == A ? "" : " of \the [A]"]" + for(var/line in result) + user << "[line]" + return 1 + + user << "Your [src] flashes a red light as it fails to analyze \the [A]." + return 0 + +/proc/atmosanalyzer_scan(var/obj/target, var/datum/gas_mixture/mixture, var/mob/user) + var/pressure = mixture.return_pressure() + var/total_moles = mixture.total_moles + + var/list/results = list() + if (total_moles>0) + results += "Pressure: [round(pressure,0.1)] kPa" + for(var/mix in mixture.gas) + results += "[gas_data.name[mix]]: [round((mixture.gas[mix] / total_moles) * 100)]%" + results += "Temperature: [round(mixture.temperature-T0C)]°C" + else + results += "\The [target] is empty!" + + return results + +/obj/proc/atmosanalyze(var/mob/user) + return + +/obj/item/weapon/tank/atmosanalyze(var/mob/user) + return atmosanalyzer_scan(src, src.air_contents, user) + +/obj/machinery/portable_atmospherics/atmosanalyze(var/mob/user) + return atmosanalyzer_scan(src, src.air_contents, user) + +/obj/machinery/atmospherics/pipe/atmosanalyze(var/mob/user) + return atmosanalyzer_scan(src, src.parent.air, user) + +/obj/machinery/power/rad_collector/atmosanalyze(var/mob/user) + if(P) return atmosanalyzer_scan(src, src.P.air_contents, user) + +/obj/item/weapon/flamethrower/atmosanalyze(var/mob/user) + if(ptank) return atmosanalyzer_scan(src, ptank.air_contents, user) diff --git a/code/_helpers/text.dm b/code/_helpers/text.dm index 0051a1a9de4..60b25c8ee88 100644 --- a/code/_helpers/text.dm +++ b/code/_helpers/text.dm @@ -55,7 +55,7 @@ //If you have a problem with sanitize() in chat, when quotes and >, < are displayed as html entites - //this is a problem of double-encode(when & becomes &), use sanitize() with encode=0, but not the sanitizeSafe()! /proc/sanitizeSafe(var/input, var/max_length = MAX_MESSAGE_LEN, var/encode = 1, var/trim = 1, var/extra = 1) - return sanitize(replace_characters(input, list(">"=" ","<"=" ", "\""="'"), max_length, encode, trim, extra)) + return sanitize(replace_characters(input, list(">"=" ","<"=" ", "\""="'")), max_length, encode, trim, extra) //Filters out undesirable characters from names /proc/sanitizeName(var/input, var/max_length = MAX_NAME_LEN, var/allow_numbers = 0) diff --git a/code/_helpers/time.dm b/code/_helpers/time.dm index 8d37b47f0af..e0bc8484581 100644 --- a/code/_helpers/time.dm +++ b/code/_helpers/time.dm @@ -6,13 +6,13 @@ var/roundstart_hour = 0 //Returns the world time in english -proc/worldtime2text(time = world.time) +proc/worldtime2text(time = world.time, timeshift = 1) if(!roundstart_hour) roundstart_hour = pick(2,7,12,17) - return "[(round(time / 36000)+roundstart_hour) % 24]:[(time / 600 % 60) < 10 ? add_zero(time / 600 % 60, 1) : time / 600 % 60]" + return timeshift ? time2text(time+(36000*roundstart_hour), "hh:mm") : time2text(time, "hh:mm") proc/worlddate2text() return num2text((text2num(time2text(world.timeofday, "YYYY"))+544)) + "-" + time2text(world.timeofday, "MM-DD") - + proc/time_stamp() return time2text(world.timeofday, "hh:mm:ss") diff --git a/code/_onclick/hud/hud.dm b/code/_onclick/hud/hud.dm index 9d877bb41ac..6bd01fad327 100644 --- a/code/_onclick/hud/hud.dm +++ b/code/_onclick/hud/hud.dm @@ -141,6 +141,25 @@ datum/hud/New(mob/owner) instantiate() ..() +/datum/hud/Destroy() + ..() + grab_intent = null + hurt_intent = null + disarm_intent = null + help_intent = null + lingchemdisplay = null + blobpwrdisplay = null + blobhealthdisplay = null + r_hand_hud_object = null + l_hand_hud_object = null + action_intent = null + move_intent = null + adding = null + other = null + hotkeybuttons = null +// item_action_list = null // ? + mymob = null + /datum/hud/proc/hidden_inventory_update() if(!mymob) return if(ishuman(mymob)) diff --git a/code/_onclick/hud/screen_objects.dm b/code/_onclick/hud/screen_objects.dm index f0cc69fcda4..cda4f5b540e 100644 --- a/code/_onclick/hud/screen_objects.dm +++ b/code/_onclick/hud/screen_objects.dm @@ -45,6 +45,10 @@ /obj/screen/item_action var/obj/item/owner +/obj/screen/item_action/Destroy() + ..() + owner = null + /obj/screen/item_action/Click() if(!usr || !owner) return 1 diff --git a/code/_onclick/hud/spell_screen_objects.dm b/code/_onclick/hud/spell_screen_objects.dm index ed208a588de..31f6fbcb86a 100644 --- a/code/_onclick/hud/spell_screen_objects.dm +++ b/code/_onclick/hud/spell_screen_objects.dm @@ -12,6 +12,18 @@ var/mob/spell_holder +/obj/screen/movable/spell_master/Destroy() + ..() + for(var/obj/screen/spell/spells in spell_objects) + spells.spellmaster = null + spell_objects.Cut() + if(spell_holder) + spell_holder.spell_masters -= src + +/obj/screen/movable/spell_master/ResetVars() + ..("spell_objects") + spell_objects = list() + /obj/screen/movable/spell_master/MouseDrop() if(showing) return @@ -57,16 +69,23 @@ /obj/screen/movable/spell_master/proc/add_spell(var/spell/spell) if(!spell) return - for(var/obj/screen/spell/spellscreen in spell_objects) - if(spellscreen.spell == spell) + if(spell.connected_button) //we have one already, for some reason + if(spell.connected_button in spell_objects) + return + else + spell_objects.Add(spell.connected_button) + toggle_open(2) return if(spell.spell_flags & NO_BUTTON) //no button to add if we don't get one return - var/obj/screen/spell/newscreen = new - + var/obj/screen/spell/newscreen = new /obj/screen/spell + newscreen.spellmaster = src newscreen.spell = spell + + spell.connected_button = newscreen + if(!spell.override_base) //if it's not set, we do basic checks if(spell.spell_flags & CONSTRUCT_CHECK) newscreen.spell_base = "const" //construct spells @@ -80,16 +99,13 @@ toggle_open(2) //forces the icons to refresh on screen /obj/screen/movable/spell_master/proc/remove_spell(var/spell/spell) - for(var/obj/screen/spell/s_object in spell_objects) - if(s_object.spell == spell) - spell_objects.Remove(s_object) - qdel(s_object) - break + qdel(spell.connected_button) + + spell.connected_button = null if(spell_objects.len) toggle_open(showing + 1) else - spell_holder.spell_masters.Remove(src) qdel(src) /obj/screen/movable/spell_master/proc/silence_spells(var/amount) @@ -125,9 +141,20 @@ var/spell/spell = null var/handle_icon_updates = 0 + var/obj/screen/movable/spell_master/spellmaster var/icon/last_charged_icon +/obj/screen/spell/Destroy() + ..() + spell = null + last_charged_icon = null + if(spellmaster) + spellmaster.spell_objects -= src + if(spellmaster && !spellmaster.spell_objects.len) + qdel(spellmaster) + spellmaster = null + /obj/screen/spell/proc/update_charge(var/forced_update = 0) if(!spell) qdel(src) diff --git a/code/controllers/Processes/garbage.dm b/code/controllers/Processes/garbage.dm index 0f54fbcb0d5..0203875e437 100644 --- a/code/controllers/Processes/garbage.dm +++ b/code/controllers/Processes/garbage.dm @@ -79,7 +79,7 @@ world/loop_checks = 0 testing("GC: [refID] not old enough, breaking at [world.time] for [GCd_at_time - time_to_kill] deciseconds until [GCd_at_time + collection_timeout]") #endif break // Everything else is newer, skip them - var/atom/A = locate(refID) + var/datum/A = locate(refID) #ifdef GC_DEBUG testing("GC: [refID] old enough to test: GCd_at_time: [GCd_at_time] time_to_kill: [time_to_kill] current: [world.time]") #endif @@ -135,6 +135,10 @@ world/loop_checks = 0 /datum/controller/process/garbage_collector/getStatName() return ..()+"([garbage_collector.destroyed.len]/[garbage_collector.dels]/[garbage_collector.hard_dels])" +// Tests if an atom has been deleted. +/proc/deleted(atom/A) + return !A || !isnull(A.gcDestroyed) + // Should be treated as a replacement for the 'del' keyword. // Datums passed to this will be given a chance to clean up references to allow the GC to collect them. /proc/qdel(var/datum/A) diff --git a/code/controllers/master_controller.dm b/code/controllers/master_controller.dm index 002c30b0eb0..5263e1af79d 100644 --- a/code/controllers/master_controller.dm +++ b/code/controllers/master_controller.dm @@ -49,6 +49,11 @@ datum/controller/game_controller/proc/setup_objects() for(var/atom/movable/object in world) object.initialize() + admin_notice("Initializing areas", R_DEBUG) + sleep(-1) + for(var/area/area in all_areas) + area.initialize() + admin_notice("Initializing pipe networks", R_DEBUG) sleep(-1) for(var/obj/machinery/atmospherics/machine in machines) diff --git a/code/datums/ai_laws.dm b/code/datums/ai_laws.dm index edfffde816a..a8e7ed7ce90 100644 --- a/code/datums/ai_laws.dm +++ b/code/datums/ai_laws.dm @@ -179,7 +179,7 @@ var/global/const/base_law_type = /datum/ai_laws/nanotrasen /datum/ai_law/proc/delete_law(var/datum/ai_laws/laws) -/datum/ai_law/zeroth/delete_law(var/datum/ai_laws/laws) +/datum/ai_law/zero/delete_law(var/datum/ai_laws/laws) laws.clear_zeroth_laws() /datum/ai_law/ion/delete_law(var/datum/ai_laws/laws) diff --git a/code/datums/crew.dm b/code/datums/crew.dm new file mode 100644 index 00000000000..d46a83846f9 --- /dev/null +++ b/code/datums/crew.dm @@ -0,0 +1,74 @@ +var/global/datum/repository/crew/crew_repository = new() + +/datum/cache_entry + var/timestamp + var/data + +/datum/repository/crew + var/list/cache_data + +/datum/repository/crew/New() + cache_data = list() + ..() + +/datum/repository/crew/proc/health_data(var/turf/T) + var/list/crewmembers = list() + if(!T) + return crewmembers + + var/z_level = "[T.z]" + var/datum/cache_entry/cache_entry = cache_data[z_level] + if(!cache_entry) + cache_entry = new/datum/cache_entry + cache_data[z_level] = cache_entry + + if(world.time < cache_entry.timestamp) + return cache_entry.data + + var/tracked = scan() + for(var/obj/item/clothing/under/C in tracked) + var/turf/pos = get_turf(C) + if((C) && (C.has_sensor) && (pos) && (T && pos.z == T.z) && (C.sensor_mode != SUIT_SENSOR_OFF)) + if(istype(C.loc, /mob/living/carbon/human)) + var/mob/living/carbon/human/H = C.loc + if(H.w_uniform != C) + continue + + var/list/crewmemberData = list("dead"=0, "oxy"=-1, "tox"=-1, "fire"=-1, "brute"=-1, "area"="", "x"=-1, "y"=-1, "ref" = "\ref[H]") + + crewmemberData["sensor_type"] = C.sensor_mode + crewmemberData["name"] = H.get_authentification_name(if_no_id="Unknown") + crewmemberData["rank"] = H.get_authentification_rank(if_no_id="Unknown", if_no_job="No Job") + crewmemberData["assignment"] = H.get_assignment(if_no_id="Unknown", if_no_job="No Job") + + if(C.sensor_mode >= SUIT_SENSOR_BINARY) + crewmemberData["dead"] = H.stat > UNCONSCIOUS + + if(C.sensor_mode >= SUIT_SENSOR_VITAL) + crewmemberData["oxy"] = round(H.getOxyLoss(), 1) + crewmemberData["tox"] = round(H.getToxLoss(), 1) + crewmemberData["fire"] = round(H.getFireLoss(), 1) + crewmemberData["brute"] = round(H.getBruteLoss(), 1) + + if(C.sensor_mode >= SUIT_SENSOR_TRACKING) + var/area/A = get_area(H) + crewmemberData["area"] = sanitize(A.name) + crewmemberData["x"] = pos.x + crewmemberData["y"] = pos.y + + crewmembers[++crewmembers.len] = crewmemberData + + crewmembers = sortByKey(crewmembers, "name") + cache_entry.timestamp = world.time + 5 SECONDS + cache_entry.data = crewmembers + + return crewmembers + +/datum/repository/crew/proc/scan() + var/list/tracked = list() + for(var/mob/living/carbon/human/H in mob_list) + if(istype(H.w_uniform, /obj/item/clothing/under)) + var/obj/item/clothing/under/C = H.w_uniform + if (C.has_sensor) + tracked |= C + return tracked diff --git a/code/datums/supplypacks.dm b/code/datums/supplypacks.dm index b7520acefc5..0d34c1a7fc8 100644 --- a/code/datums/supplypacks.dm +++ b/code/datums/supplypacks.dm @@ -126,12 +126,12 @@ var/list/all_supply_groups = list("Operations","Security","Hospitality","Enginee /obj/item/weapon/reagent_containers/food/drinks/bottle/goldschlager, /obj/item/weapon/storage/fancy/cigarettes/dromedaryco, /obj/item/weapon/lipstick/random, - /obj/item/weapon/reagent_containers/food/drinks/cans/ale, - /obj/item/weapon/reagent_containers/food/drinks/cans/ale, - /obj/item/weapon/reagent_containers/food/drinks/cans/beer, - /obj/item/weapon/reagent_containers/food/drinks/cans/beer, - /obj/item/weapon/reagent_containers/food/drinks/cans/beer, - /obj/item/weapon/reagent_containers/food/drinks/cans/beer) + /obj/item/weapon/reagent_containers/food/drinks/bottle/small/ale, + /obj/item/weapon/reagent_containers/food/drinks/bottle/small/ale, + /obj/item/weapon/reagent_containers/food/drinks/bottle/small/beer, + /obj/item/weapon/reagent_containers/food/drinks/bottle/small/beer, + /obj/item/weapon/reagent_containers/food/drinks/bottle/small/beer, + /obj/item/weapon/reagent_containers/food/drinks/bottle/small/beer) cost = 20 containertype = /obj/structure/closet/crate containername = "Party equipment" @@ -1209,12 +1209,15 @@ var/list/all_supply_groups = list("Operations","Security","Hospitality","Enginee /datum/supply_packs/bee_keeper name = "Beekeeping crate" - contains = list(/obj/item/beezeez, - /obj/item/weapon/bee_net, - /obj/item/apiary, - /obj/item/queen_bee) + contains = list(/obj/item/beehive_assembly, + /obj/item/bee_smoker, + /obj/item/honey_frame, + /obj/item/honey_frame, + /obj/item/honey_frame, + /obj/item/honey_frame, + /obj/item/honey_frame, + /obj/item/bee_pack) cost = 40 - contraband = 1 containertype = /obj/structure/closet/crate/hydroponics containername = "Beekeeping crate" access = access_hydroponics diff --git a/code/game/antagonist/antagonist_create.dm b/code/game/antagonist/antagonist_create.dm index e80389021c8..db0d1b42049 100644 --- a/code/game/antagonist/antagonist_create.dm +++ b/code/game/antagonist/antagonist_create.dm @@ -119,6 +119,7 @@ if (newname) player.real_name = newname player.name = player.real_name + player.dna.real_name = newname if(player.mind) player.mind.name = player.name // Update any ID cards. update_access(player) diff --git a/code/game/antagonist/antagonist_objectives.dm b/code/game/antagonist/antagonist_objectives.dm index 432c3f6bbe8..404be5a0f71 100644 --- a/code/game/antagonist/antagonist_objectives.dm +++ b/code/game/antagonist/antagonist_objectives.dm @@ -8,7 +8,7 @@ /datum/antagonist/proc/create_objectives(var/datum/mind/player) if(config.objectives_disabled) return 0 - if(create_global_objectives()) + if(create_global_objectives() || global_objectives.len) player.objectives |= global_objectives return 1 diff --git a/code/game/antagonist/antagonist_print.dm b/code/game/antagonist/antagonist_print.dm index 76110e2b13d..5cbce01a81a 100644 --- a/code/game/antagonist/antagonist_print.dm +++ b/code/game/antagonist/antagonist_print.dm @@ -7,8 +7,8 @@ for(var/datum/mind/P in current_antagonists) text += print_player_full(P) text += get_special_objective_text(P) - var/failed if(!global_objectives.len && P.objectives && P.objectives.len) + var/failed var/num = 1 for(var/datum/objective/O in P.objectives) text += print_objective(O, num) @@ -20,8 +20,6 @@ feedback_add_details(feedback_tag,"[O.type]|FAIL") failed = 1 num++ - - if(!config.objectives_disabled) if(failed) text += "
The [role_text] has failed." else diff --git a/code/game/antagonist/outsider/wizard.dm b/code/game/antagonist/outsider/wizard.dm index 74866d92474..57a00adfdde 100644 --- a/code/game/antagonist/outsider/wizard.dm +++ b/code/game/antagonist/outsider/wizard.dm @@ -96,7 +96,7 @@ var/datum/antagonist/wizard/wizards world << "The [(current_antagonists.len>1)?"[role_text_plural] have":"[role_text] has"] been killed by the crew! The Space Wizards Federation has been taught a lesson they will not soon forget!" //To batch-remove wizard spells. Linked to mind.dm. -/mob/proc/spellremove(var/mob/M as mob) +/mob/proc/spellremove() for(var/spell/spell_to_remove in src.spell_list) remove_spell(spell_to_remove) diff --git a/code/game/antagonist/station/rogue_ai.dm b/code/game/antagonist/station/rogue_ai.dm index cf0e9dfd4c6..f19edb28077 100644 --- a/code/game/antagonist/station/rogue_ai.dm +++ b/code/game/antagonist/station/rogue_ai.dm @@ -6,12 +6,13 @@ var/datum/antagonist/rogue_ai/malf role_text = "Rampant AI" role_text_plural = "Rampant AIs" mob_path = /mob/living/silicon/ai + landmark_id = "AI" welcome_text = "You are malfunctioning! You do not have to follow any laws." victory_text = "The AI has taken control of all of the station's systems." loss_text = "The AI has been shut down!" - flags = ANTAG_VOTABLE | ANTAG_RANDSPAWN //Randspawn needed otherwise it won't start at all. + flags = ANTAG_VOTABLE | ANTAG_OVERRIDE_MOB | ANTAG_OVERRIDE_JOB | ANTAG_CHOOSE_NAME max_antags = 1 - max_antags_round = 3 + max_antags_round = 1 /datum/antagonist/rogue_ai/New() @@ -22,7 +23,7 @@ var/datum/antagonist/rogue_ai/malf /datum/antagonist/rogue_ai/get_candidates() ..() for(var/datum/mind/player in candidates) - if(player.assigned_role != "AI") + if(player.assigned_role && player.assigned_role != "AI") candidates -= player if(!candidates.len) return list() @@ -75,3 +76,26 @@ var/datum/antagonist/rogue_ai/malf malf << "For basic information about your abilities use command display-help" malf << "You may choose one special hardware piece to help you. This cannot be undone." malf << "Good luck!" + + +/datum/antagonist/rogue_ai/update_antag_mob(var/datum/mind/player, var/preserve_appearance) + + // Get the mob. + if((flags & ANTAG_OVERRIDE_MOB) && (!player.current || (mob_path && !istype(player.current, mob_path)))) + var/mob/holder = player.current + player.current = new mob_path(get_turf(player.current), null, null, 1) + player.transfer_to(player.current) + if(holder) qdel(holder) + player.original = player.current + return player.current + +/datum/antagonist/rogue_ai/set_antag_name(var/mob/living/silicon/player) + if(!istype(player)) + testing("rogue_ai set_antag_name called on non-silicon mob [player]!") + return + // Choose a name, if any. + var/newname = sanitize(input(player, "You are a [role_text]. Would you like to change your name to something else?", "Name change") as null|text, MAX_NAME_LEN) + if (newname) + player.SetName(newname) + if(player.mind) player.mind.name = player.name + diff --git a/code/game/area/Space Station 13 areas.dm b/code/game/area/Space Station 13 areas.dm index eaf6da4a0db..d872493443c 100755 --- a/code/game/area/Space Station 13 areas.dm +++ b/code/game/area/Space Station 13 areas.dm @@ -901,7 +901,7 @@ area/space/atmosalert() icon_state = "tcomsatcham" /area/server - name = "\improper Messaging Server Room" + name = "\improper Research Server Room" icon_state = "server" //Crew @@ -1809,7 +1809,7 @@ area/space/atmosalert() ambience = list('sound/ambience/ambimalf.ogg') /area/turret_protected/ai_server_room - name = "AI Server Room" + name = "Messaging Server Room" icon_state = "ai_server" /area/turret_protected/ai diff --git a/code/game/area/areas.dm b/code/game/area/areas.dm index 007bb79c103..3b970c74381 100644 --- a/code/game/area/areas.dm +++ b/code/game/area/areas.dm @@ -14,13 +14,17 @@ all_areas += src if(!requires_power) - power_light = 0 //rastaf0 - power_equip = 0 //rastaf0 - power_environ = 0 //rastaf0 + power_light = 0 + power_equip = 0 + power_environ = 0 ..() -// spawn(15) +/area/proc/initialize() + if(!requires_power || !apc) + power_light = 0 + power_equip = 0 + power_environ = 0 power_change() // all machines set to current power level, also updates lighting icon /area/proc/get_contents() diff --git a/code/game/atoms.dm b/code/game/atoms.dm index 28ead38d6fa..1d7069f05f9 100644 --- a/code/game/atoms.dm +++ b/code/game/atoms.dm @@ -411,7 +411,6 @@ its easier to just keep the beam vertical. /atom/proc/clean_blood() if(!simulated) return - src.color = initial(src.color) //paint src.germ_level = 0 if(istype(blood_DNA, /list)) del(blood_DNA) diff --git a/code/game/atoms_movable.dm b/code/game/atoms_movable.dm index 5bc8cc99414..6859b276321 100644 --- a/code/game/atoms_movable.dm +++ b/code/game/atoms_movable.dm @@ -21,9 +21,14 @@ if(auto_init && ticker && ticker.current_state == GAME_STATE_PLAYING) initialize() +/proc/generate_debug_runtime() // Guaranteed to runtime and print a stack trace to the runtime log + var/t = 0 // BYOND won't let us do var/t = 1/0 directly, but it's fine with this. + t = 1 / t + /atom/movable/Del() if(isnull(gcDestroyed) && loc) testing("GC: -- [type] was deleted via del() rather than qdel() --") + generate_debug_runtime() // stick a stack trace in the runtime logs // else if(isnull(gcDestroyed)) // testing("GC: [type] was deleted via GC without qdel()") //Not really a huge issue but from now on, please qdel() // else @@ -34,6 +39,7 @@ . = ..() if(reagents) qdel(reagents) + reagents = null for(var/atom/movable/AM in contents) qdel(AM) loc = null @@ -164,7 +170,7 @@ a = get_area(src.loc) else var/error = dist_y/2 - dist_x - while(src && target &&((((src.y < target.y && dy == NORTH) || (src.y > target.y && dy == SOUTH)) && dist_travelled < range) || (a.has_gravity == 0) || istype(src.loc, /turf/space)) && src.throwing && istype(src.loc, /turf)) + while(src && target &&((((src.y < target.y && dy == NORTH) || (src.y > target.y && dy == SOUTH)) && dist_travelled < range) || (a && a.has_gravity == 0) || istype(src.loc, /turf/space)) && src.throwing && istype(src.loc, /turf)) // only stop when we've gone the whole distance (or max throw range) and are on a non-space tile, or hit something, or hit the end of the map, or someone picks it up if(error < 0) var/atom/step = get_step(src, dx) diff --git a/code/game/dna/dna_modifier.dm b/code/game/dna/dna_modifier.dm index 9bb8039a0cb..34517e55fc9 100644 --- a/code/game/dna/dna_modifier.dm +++ b/code/game/dna/dna_modifier.dm @@ -218,7 +218,8 @@ name = "DNA Modifier Access Console" desc = "Scand DNA." icon = 'icons/obj/computer.dmi' - icon_state = "scanner" + icon_keyboard = "med_key" + icon_screen = "dna" density = 1 circuit = /obj/item/weapon/circuitboard/scan_consolenew var/selected_ui_block = 1.0 @@ -270,21 +271,9 @@ return /obj/machinery/computer/scan_consolenew/blob_act() - if(prob(75)) qdel(src) -/obj/machinery/computer/scan_consolenew/power_change() - ..() - if(stat & BROKEN) - icon_state = "broken" - else - if (stat & NOPOWER) - spawn(rand(0, 15)) - src.icon_state = "c_unpowered" - else - icon_state = initial(icon_state) - /obj/machinery/computer/scan_consolenew/New() ..() for(var/i=0;i<3;i++) diff --git a/code/game/gamemodes/changeling/modularchangling.dm b/code/game/gamemodes/changeling/modularchangling.dm index 5048977789a..45a7dc38965 100644 --- a/code/game/gamemodes/changeling/modularchangling.dm +++ b/code/game/gamemodes/changeling/modularchangling.dm @@ -121,7 +121,7 @@ var/list/datum/power/changeling/powerinstances = list() /datum/power/changeling/DeathSting name = "Death Sting" - desc = "We silently sting a human, filling him with potent chemicals. His rapid death is all but assured." + desc = "We silently sting a human, filling them with potent chemicals. Their rapid death is all but assured." genomecost = 10 verbpath = /mob/proc/changeling_DEATHsting diff --git a/code/game/gamemodes/cult/ritual.dm b/code/game/gamemodes/cult/ritual.dm index dc09e0edb92..cba7a96ef4a 100644 --- a/code/game/gamemodes/cult/ritual.dm +++ b/code/game/gamemodes/cult/ritual.dm @@ -339,7 +339,7 @@ var/global/list/rnwords = list("ire","ego","nahlizet","certum","veri","jatkaa"," attack(mob/living/M as mob, mob/living/user as mob) - M.attack_log += text("\[[time_stamp()]\] Has had the [name] used on him by [user.name] ([user.ckey])") + M.attack_log += text("\[[time_stamp()]\] Has had the [name] used on them by [user.name] ([user.ckey])") user.attack_log += text("\[[time_stamp()]\] Used [name] on [M.name] ([M.ckey])") msg_admin_attack("[user.name] ([user.ckey]) used [name] on [M.name] ([M.ckey]) (JMP)") diff --git a/code/game/gamemodes/cult/runes.dm b/code/game/gamemodes/cult/runes.dm index 5060b964ca9..3b2345c1be7 100644 --- a/code/game/gamemodes/cult/runes.dm +++ b/code/game/gamemodes/cult/runes.dm @@ -5,6 +5,14 @@ var/list/sacrificed = list() /obj/effect/rune +/* + * Use as a general guideline for this and related files: + * * ... - when something non-trivial or an error happens, so something similar to "Sparks come out of the machine!" + * * ... - when something that is fit for 'warning' happens but there is some damage or pain as well. + * * ... - when there is a private message to the cultists. This guideline is very arbitrary but there has to be some consistency! + */ + + /////////////////////////////////////////FIRST RUNE proc teleport(var/key) @@ -21,7 +29,7 @@ var/list/sacrificed = list() allrunesloc.len = index allrunesloc[index] = R.loc if(index >= 5) - user << "You feel pain, as rune disappears in reality shift caused by too much wear of space-time fabric" + user << "You feel pain, as rune disappears in reality shift caused by too much wear of space-time fabric." if (istype(user, /mob/living)) user.take_overall_damage(5, 0) qdel(src) @@ -30,9 +38,9 @@ var/list/sacrificed = list() user.say("Sas[pick("'","`")]so c'arta forbici!")//Only you can stop auto-muting else user.whisper("Sas[pick("'","`")]so c'arta forbici!") - user.visible_message("\The [user] disappears in a flash of red light!", \ - "You feel as your body gets dragged through the dimension of Nar-Sie!", \ - "You hear a sickening crunch and sloshing of viscera.") + user.visible_message("[user] disappears in a flash of red light!", \ + "You feel as your body gets dragged through the dimension of Nar-Sie!", \ + "You hear a sickening crunch and sloshing of viscera.") user.loc = allrunesloc[rand(1,index)] return if(istype(src,/obj/effect/rune)) @@ -58,7 +66,7 @@ var/list/sacrificed = list() IP = R runecount++ if(runecount >= 2) - user << "You feel pain, as rune disappears in reality shift caused by too much wear of space-time fabric" + user << "You feel pain, as rune disappears in reality shift caused by too much wear of space-time fabric." if (istype(user, /mob/living)) user.take_overall_damage(5, 0) qdel(src) @@ -134,11 +142,11 @@ var/list/sacrificed = list() admin_attack_log(attacker, target, "Used a convert rune", "Was subjected to a convert rune", "used a convert rune on") switch(target.getFireLoss()) if(0 to 25) - target << "Your blood boils as you force yourself to resist the corruption invading every corner of your mind." + target << "Your blood boils as you force yourself to resist the corruption invading every corner of your mind." if(25 to 45) - target << "Your blood boils and your body burns as the corruption further forces itself into your body and mind." + target << "Your blood boils and your body burns as the corruption further forces itself into your body and mind." if(45 to 75) - target << "You begin to hallucinate images of a dark and incomprehensible being and your entire body feels like its engulfed in flame as your mental defenses crumble." + target << "You begin to hallucinate images of a dark and incomprehensible being and your entire body feels like its engulfed in flame as your mental defenses crumble." target.apply_effect(rand(1,10), STUTTER) if(75 to 100) target << "Your mind turns to ash as the burning flames engulf your very soul and images of an unspeakable horror begin to bombard the last remnants of mental resistance." @@ -157,7 +165,7 @@ var/list/sacrificed = list() if (target.species && (target.species.flags & NO_PAIN)) target.visible_message("The markings below [target] glow a bloody red.") else - target.visible_message("\The [target] writhes in pain as the markings below \him glow a bloody red.", "AAAAAAHHHH!", "You hear an anguished scream.") + target.visible_message("[target] writhes in pain as the markings below \him glow a bloody red.", "AAAAAAHHHH!", "You hear an anguished scream.") if(!waiting_for_input[target]) //so we don't spam them with dialogs if they hesitate waiting_for_input[target] = 1 @@ -229,15 +237,15 @@ var/list/sacrificed = list() if(!drain) return fizzle() usr.say ("Yu[pick("'","`")]gular faras desdae. Havas mithum javara. Umathar uf'kal thenar!") - usr.visible_message("Blood flows from the rune into [usr]!", \ - "The blood starts flowing from the rune and into your frail mortal body. You feel... empowered.", \ + usr.visible_message("Blood flows from the rune into [usr]!", \ + "The blood starts flowing from the rune and into your frail mortal body. You feel... empowered.", \ "You hear a liquid flowing.") var/mob/living/user = usr if(user.bhunger) user.bhunger = max(user.bhunger-2*drain,0) if(drain>=50) - user.visible_message("\The [user]'s eyes give off eerie red glow!", \ - "...but it wasn't nearly enough. You crave, crave for more. The hunger consumes you from within.", \ + user.visible_message("[user]'s eyes give off eerie red glow!", \ + "...but it wasn't nearly enough. You crave, crave for more. The hunger consumes you from within.", \ "You hear a heartbeat.") user.bhunger += drain src = user @@ -264,7 +272,7 @@ var/list/sacrificed = list() if(usr.loc==src.loc) if(usr.seer==1) usr.say("Rash'tla sektath mal[pick("'","`")]zua. Zasan therium viortia.") - usr << "The world beyond fades from your vision." + usr << "The world beyond fades from your vision." usr.see_invisible = SEE_INVISIBLE_LIVING usr.seer = 0 else if(usr.see_invisible!=SEE_INVISIBLE_LIVING) @@ -336,12 +344,12 @@ var/list/sacrificed = list() corpse_to_raise.key = ghost.key //the corpse will keep its old mind! but a new player takes ownership of it (they are essentially possessed) //This means, should that player leave the body, the original may re-enter usr.say("Pasnar val'keriam usinar. Savrae ines amutan. Yam'toth remium il'tarat!") - corpse_to_raise.visible_message("\The [corpse_to_raise]'s eyes glow with a faint red as he stands up, slowly starting to breathe again.", \ + corpse_to_raise.visible_message("[corpse_to_raise]'s eyes glow with a faint red as he stands up, slowly starting to breathe again.", \ "Life... I'm alive again...", \ "You hear a faint, slightly familiar whisper.") - body_to_sacrifice.visible_message("\The [body_to_sacrifice] is torn apart, a black smoke swiftly dissipating from his remains!", \ - "You feel as your blood boils, tearing you apart.", \ - "You hear a thousand voices, all crying in pain.") + body_to_sacrifice.visible_message("[body_to_sacrifice] is torn apart, a black smoke swiftly dissipating from \his remains!", \ + "You feel as your blood boils, tearing you apart.", \ + "You hear a thousand voices, all crying in pain.") body_to_sacrifice.gib() // if(ticker.mode.name == "cult") @@ -349,8 +357,8 @@ var/list/sacrificed = list() // else // ticker.mode.cult |= corpse_to_raise.mind - corpse_to_raise << "Your blood pulses. Your head throbs. The world goes red. All at once you are aware of a horrible, horrible truth. The veil of reality has been ripped away and in the festering wound left behind something sinister takes root." - corpse_to_raise << "Assist your new compatriots in their dark dealings. Their goal is yours, and yours is theirs. You serve the Dark One above all else. Bring It back." + corpse_to_raise << "Your blood pulses. Your head throbs. The world goes red. All at once you are aware of a horrible, horrible truth. The veil of reality has been ripped away and in the festering wound left behind something sinister takes root." + corpse_to_raise << "Assist your new compatriots in their dark dealings. Their goal is yours, and yours is theirs. You serve the Dark One above all else. Bring It back." return @@ -391,7 +399,7 @@ var/list/sacrificed = list() if(usr.loc==src.loc) var/mob/living/carbon/human/L = usr usr.say("Fwe[pick("'","`")]sh mah erl nyag r'ya!") - usr.visible_message("\The [usr]'s eyes glow blue as \he freezes in place, absolutely motionless.", \ + usr.visible_message("[usr]'s eyes glow blue as \he freezes in place, absolutely motionless.", \ "The shadow that is your spirit separates itself from your body. You are now in the realm beyond. While this is a great sight, being here strains your mind and body. Hurry...", \ "You hear only complete silence for a moment.") announce_ghost_joinleave(usr.ghostize(1), 1, "You feel that they had to use some [pick("dark", "black", "blood", "forgotten", "forbidden")] magic to [pick("invade","disturb","disrupt","infest","taint","spoil","blight")] this place!") @@ -461,8 +469,8 @@ var/list/sacrificed = list() user.take_organ_damage(1, 0) sleep(30) if(D) - D.visible_message("\The [D] slowly dissipates into dust and bones.", \ - "You feel pain, as bonds formed between your soul and this homunculus break.", \ + D.visible_message("[D] slowly dissipates into dust and bones.", \ + "You feel pain, as bonds formed between your soul and this homunculus break.", \ "You hear faint rustle.") D.dust() return @@ -560,8 +568,8 @@ var/list/sacrificed = list() user.say("Uhrast ka'hfa heldsagen ver[pick("'","`")]lot!") user.take_overall_damage(200, 0) runedec+=10 - user.visible_message("\The [user] keels over dead, his blood glowing blue as it escapes his body and dissipates into thin air.", \ - "In the last moment of your humble life, you feel an immense pain as fabric of reality mends... with your blood.", \ + user.visible_message("\The [user] keels over dead, \his blood glowing blue as it escapes \his body and dissipates into thin air.", \ + "In the last moment of your humble life, you feel an immense pain as fabric of reality mends... with your blood.", \ "You hear faint rustle.") for(,user.stat==2) sleep(600) @@ -595,7 +603,7 @@ var/list/sacrificed = list() log_and_message_admins("used a communicate rune to say '[input]'") for(var/datum/mind/H in cult.current_antagonists) if (H.current) - H.current << "[input]" + H.current << "[input]" qdel(src) return 1 @@ -639,17 +647,17 @@ var/list/sacrificed = list() H.dust()//To prevent the MMI from remaining else H.gib() - usr << "The Geometer of Blood accepts this sacrifice, your objective is now complete." + usr << "The Geometer of Blood accepts this sacrifice, your objective is now complete." else usr << "Your target's earthly bonds are too strong. You need more cultists to succeed in this ritual." else if(cultsinrange.len >= 3) if(H.stat !=2) if(prob(80) || worth) - usr << "The Geometer of Blood accepts this [worth ? "exotic " : ""]sacrifice." + usr << "The Geometer of Blood accepts this [worth ? "exotic " : ""]sacrifice." cult.grant_runeword(usr) else - usr << "The Geometer of blood accepts this sacrifice." + usr << "The Geometer of Blood accepts this sacrifice." usr << "However, this soul was not enough to gain His favor." if(isrobot(H)) H.dust()//To prevent the MMI from remaining @@ -657,10 +665,10 @@ var/list/sacrificed = list() H.gib() else if(prob(40) || worth) - usr << "The Geometer of blood accepts this [worth ? "exotic " : ""]sacrifice." + usr << "The Geometer of Blood accepts this [worth ? "exotic " : ""]sacrifice." cult.grant_runeword(usr) else - usr << "The Geometer of blood accepts this sacrifice." + usr << "The Geometer of Blood accepts this sacrifice." usr << "However, a mere dead body is not enough to satisfy Him." if(isrobot(H)) H.dust()//To prevent the MMI from remaining @@ -672,10 +680,10 @@ var/list/sacrificed = list() else if(prob(40)) - usr << "The Geometer of blood accepts this sacrifice." + usr << "The Geometer of Blood accepts this sacrifice." cult.grant_runeword(usr) else - usr << "The Geometer of blood accepts this sacrifice." + usr << "The Geometer of Blood accepts this sacrifice." usr << "However, a mere dead body is not enough to satisfy Him." if(isrobot(H)) H.dust()//To prevent the MMI from remaining @@ -685,10 +693,10 @@ var/list/sacrificed = list() if(cultsinrange.len >= 3) if(H.stat !=2) if(prob(80)) - usr << "The Geometer of Blood accepts this sacrifice." + usr << "The Geometer of Blood accepts this sacrifice." cult.grant_runeword(usr) else - usr << "The Geometer of blood accepts this sacrifice." + usr << "The Geometer of Blood accepts this sacrifice." usr << "However, this soul was not enough to gain His favor." if(isrobot(H)) H.dust()//To prevent the MMI from remaining @@ -696,10 +704,10 @@ var/list/sacrificed = list() H.gib() else if(prob(40)) - usr << "The Geometer of blood accepts this sacrifice." + usr << "The Geometer of Blood accepts this sacrifice." cult.grant_runeword(usr) else - usr << "The Geometer of blood accepts this sacrifice." + usr << "The Geometer of Blood accepts this sacrifice." usr << "However, a mere dead body is not enough to satisfy Him." if(isrobot(H)) H.dust()//To prevent the MMI from remaining @@ -710,10 +718,10 @@ var/list/sacrificed = list() usr << "The victim is still alive, you will need more cultists chanting for the sacrifice to succeed." else if(prob(40)) - usr << "The Geometer of blood accepts this sacrifice." + usr << "The Geometer of Blood accepts this sacrifice." cult.grant_runeword(usr) else - usr << "The Geometer of blood accepts this sacrifice." + usr << "The Geometer of Blood accepts this sacrifice." usr << "However, a mere dead body is not enough to satisfy Him." if(isrobot(H)) H.dust()//To prevent the MMI from remaining @@ -772,9 +780,9 @@ var/list/sacrificed = list() var/mob/living/user = usr user.take_organ_damage(2, 0) if(src.density) - usr << "Your blood flows into the rune, and you feel that the very space over the rune thickens." + usr << "Your blood flows into the rune, and you feel that the very space over the rune thickens." else - usr << "Your blood flows into the rune, and you feel as the rune releases its grasp on space." + usr << "Your blood flows into the rune, and you feel as the rune releases its grasp on space." return /////////////////////////////////////////EIGHTTEENTH RUNE @@ -843,7 +851,7 @@ var/list/sacrificed = list() if (cultist == user) //just to be sure. return if(cultist.buckled || cultist.handcuffed || (!isturf(cultist.loc) && !istype(cultist.loc, /obj/structure/closet))) - user << "You cannot summon \the [cultist], for his shackles of blood are strong." + user << "You cannot summon \the [cultist], for \his shackles of blood are strong." return fizzle() cultist.loc = src.loc cultist.lying = 1 @@ -923,7 +931,7 @@ var/list/sacrificed = list() C.disabilities |= NEARSIGHTED if(prob(10)) C.sdisabilities |= BLIND - C.show_message("Suddenly you see red flash that blinds you.", 3) + C.show_message("Suddenly you see a red flash that blinds you.", 3) affected += C if(affected.len) usr.say("Sti[pick("'","`")] kaliesin!") @@ -973,7 +981,7 @@ var/list/sacrificed = list() if(N) continue M.take_overall_damage(51,51) - M << "Your blood boils!" + M << "Your blood boils!" victims += M if(prob(5)) spawn(5) @@ -1005,16 +1013,16 @@ var/list/sacrificed = list() for(var/mob/living/M in orange(2,R)) M.take_overall_damage(0,15) if (R.invisibility>M.see_invisible) - M << "Aargh it burns!" + M << "Aargh it burns!" else - M << "Rune suddenly ignites, burning you!" + M << "Rune suddenly ignites, burning you!" var/turf/T = get_turf(R) T.hotspot_expose(700,125) for(var/obj/effect/decal/cleanable/blood/B in world) if(B.blood_DNA == src.blood_DNA) for(var/mob/living/M in orange(1,B)) M.take_overall_damage(0,5) - M << "Blood suddenly ignites, burning you!" + M << "Blood suddenly ignites, burning you!" var/turf/T = get_turf(B) T.hotspot_expose(700,125) qdel(B) @@ -1033,13 +1041,13 @@ var/list/sacrificed = list() C.stuttering = 1 C.Weaken(1) C.Stun(1) - C.show_message("The rune explodes in a bright flash.", 3) + C.show_message("The rune explodes in a bright flash.", 3) admin_attack_log(usr, C, "Used a stun rune.", "Was victim of a stun rune.", "used a stun rune on") else if(issilicon(L)) var/mob/living/silicon/S = L S.Weaken(5) - S.show_message("BZZZT... The rune has exploded in a bright flash.", 3) + S.show_message("BZZZT... The rune has exploded in a bright flash.", 3) admin_attack_log(usr, S, "Used a stun rune.", "Was victim of a stun rune.", "used a stun rune on") qdel(src) else ///When invoked as talisman, stun and mute the target mob. @@ -1047,10 +1055,10 @@ var/list/sacrificed = list() var/obj/item/weapon/nullrod/N = locate() in T if(N) for(var/mob/O in viewers(T, null)) - O.show_message("\The [usr] invokes a talisman at [T], but they are unaffected!", 1) + O.show_message(text("[] invokes a talisman at [], but they are unaffected!", usr, T), 1) else for(var/mob/O in viewers(T, null)) - O.show_message("\The [usr] invokes a talisman at [T]", 1) + O.show_message(text("[] invokes a talisman at []", usr, T), 1) if(issilicon(T)) T.Weaken(15) diff --git a/code/game/gamemodes/game_mode.dm b/code/game/gamemodes/game_mode.dm index 143c37553da..8be674fd850 100644 --- a/code/game/gamemodes/game_mode.dm +++ b/code/game/gamemodes/game_mode.dm @@ -167,7 +167,13 @@ var/global/list/additional_antag_types = list() return 1 var/datum/antagonist/main_antags = antag_templates[1] - if(main_antags.candidates.len >= required_enemies) + var/list/potential + if(main_antags.flags & ANTAG_OVERRIDE_JOB) + potential = main_antags.pending_antagonists + else + potential = main_antags.candidates + + if(potential.len >= required_enemies) return 1 return 0 @@ -184,7 +190,7 @@ var/global/list/additional_antag_types = list() /datum/game_mode/proc/pre_setup() for(var/datum/antagonist/antag in antag_templates) antag.build_candidate_list() //compile a list of all eligible candidates - + //antag roles that replace jobs need to be assigned before the job controller hands out jobs. if(antag.flags & ANTAG_OVERRIDE_JOB) antag.attempt_spawn() //select antags to be spawned @@ -280,14 +286,13 @@ var/global/list/additional_antag_types = list() /datum/game_mode/proc/declare_completion() var/is_antag_mode = (antag_templates && antag_templates.len) - if(!config.objectives_disabled) - check_victory() - if(is_antag_mode) + check_victory() + if(is_antag_mode) + sleep(10) + for(var/datum/antagonist/antag in antag_templates) sleep(10) - for(var/datum/antagonist/antag in antag_templates) - sleep(10) - antag.check_victory() - antag.print_player_summary() + antag.check_victory() + antag.print_player_summary() var/clients = 0 var/surviving_humans = 0 @@ -389,8 +394,8 @@ var/global/list/additional_antag_types = list() if (special_role in disregard_roles) continue - else if(man.client.prefs.nanotrasen_relation == "Opposed" && prob(50) || \ - man.client.prefs.nanotrasen_relation == "Skeptical" && prob(20)) + else if(man.client.prefs.nanotrasen_relation == COMPANY_OPPOSED && prob(50) || \ + man.client.prefs.nanotrasen_relation == COMPANY_SKEPTICAL && prob(20)) suspects += man // Antags else if(special_role_data && prob(special_role_data.suspicion_chance)) @@ -556,9 +561,9 @@ proc/get_nt_opposed() var/list/dudes = list() for(var/mob/living/carbon/human/man in player_list) if(man.client) - if(man.client.prefs.nanotrasen_relation == "Opposed") + if(man.client.prefs.nanotrasen_relation == COMPANY_OPPOSED) dudes += man - else if(man.client.prefs.nanotrasen_relation == "Skeptical" && prob(50)) + else if(man.client.prefs.nanotrasen_relation == COMPANY_SKEPTICAL && prob(50)) dudes += man if(dudes.len == 0) return null return pick(dudes) diff --git a/code/game/gamemodes/intercept_report.dm b/code/game/gamemodes/intercept_report.dm index bfe0e1d90d5..4feba5d1d2b 100644 --- a/code/game/gamemodes/intercept_report.dm +++ b/code/game/gamemodes/intercept_report.dm @@ -90,7 +90,7 @@ /datum/intercept_text/proc/get_suspect() var/list/dudes = list() - for(var/mob/living/carbon/human/man in player_list) if(man.client && man.client.prefs.nanotrasen_relation == "Opposed") + for(var/mob/living/carbon/human/man in player_list) if(man.client && man.client.prefs.nanotrasen_relation == COMPANY_OPPOSED) dudes += man for(var/i = 0, i < max(player_list.len/10,2), i++) dudes += pick(player_list) diff --git a/code/game/gamemodes/malfunction/newmalf_ability_trees/HELPERS.dm b/code/game/gamemodes/malfunction/newmalf_ability_trees/HELPERS.dm index f757ed5e9e3..69794c9af33 100644 --- a/code/game/gamemodes/malfunction/newmalf_ability_trees/HELPERS.dm +++ b/code/game/gamemodes/malfunction/newmalf_ability_trees/HELPERS.dm @@ -163,14 +163,13 @@ command_announcement.Announce(fulltext) -// Proc: get_unhacked_apcs() +// Proc: get_all_apcs() // Parameters: None -// Description: Returns a list of APCs that are not yet hacked. -/proc/get_unhacked_apcs() +// Description: Returns a list of all APCs +/proc/get_all_apcs() var/list/H = list() for(var/obj/machinery/power/apc/A in machines) - if(!A.hacker) - H.Add(A) + H.Add(A) return H diff --git a/code/game/gamemodes/malfunction/newmalf_ability_trees/tree_networking.dm b/code/game/gamemodes/malfunction/newmalf_ability_trees/tree_networking.dm index 9c3c584d9e4..f1bad288ad0 100644 --- a/code/game/gamemodes/malfunction/newmalf_ability_trees/tree_networking.dm +++ b/code/game/gamemodes/malfunction/newmalf_ability_trees/tree_networking.dm @@ -38,7 +38,7 @@ // END RESEARCH DATUMS // BEGIN ABILITY VERBS -/datum/game_mode/malfunction/verb/basic_encryption_hack(obj/machinery/power/apc/A as obj in get_unhacked_apcs()) +/datum/game_mode/malfunction/verb/basic_encryption_hack(obj/machinery/power/apc/A as obj in get_all_apcs()) set category = "Software" set name = "Basic Encryption Hack" set desc = "10 CPU - Basic encryption hack that allows you to overtake APCs on the station." diff --git a/code/game/gamemodes/newobjective.dm b/code/game/gamemodes/newobjective.dm index 9dc8623822f..e8ea12b84bb 100644 --- a/code/game/gamemodes/newobjective.dm +++ b/code/game/gamemodes/newobjective.dm @@ -1252,7 +1252,7 @@ datum proc/find_target() ..() if(target && target.current) - explanation_text = "[target.current.real_name], the [target.role_alt_title ? target.role_alt_title : target.assigned_role], has defied us for the last time. Make an example of him, and bring us his severed head." + explanation_text = "[target.current.real_name], the [target.role_alt_title ? target.role_alt_title : target.assigned_role], has defied us for the last time. Make an example of [target.current.gender == MALE ? "him" : target.current.gender == FEMALE ? "her" : "them"], and bring us [target.current.gender == MALE ? "his" : target.current.gender == FEMALE ? "her" : "their"] severed head." else explanation_text = "Free Objective" return target @@ -1261,7 +1261,7 @@ datum find_target_by_role(role, role_type=0) ..(role, role_type) if(target && target.current) - explanation_text = "[target.current.real_name], the [target.role_alt_title ? target.role_alt_title : (!role_type ? target.assigned_role : target.special_role)], has defied us for the last time. Make an example of him, and bring us his severed head." + explanation_text = "[target.current.real_name], the [target.role_alt_title ? target.role_alt_title : (!role_type ? target.assigned_role : target.special_role)], has defied us for the last time. Make an example of [target.current.gender == MALE ? "him" : target.current.gender == FEMALE ? "her" : "them"], and bring us [target.current.gender == MALE ? "his" : target.current.gender == FEMALE ? "her" : "their"] severed head." else explanation_text = "Free Objective" return target @@ -1488,4 +1488,4 @@ datum/objective/silence #undef LENIENT #undef NORMAL #undef HARD -#undef IMPOSSIBLE \ No newline at end of file +#undef IMPOSSIBLE diff --git a/code/game/gamemodes/wizard/wizard.dm b/code/game/gamemodes/wizard/wizard.dm index 0812c514299..7209844d386 100644 --- a/code/game/gamemodes/wizard/wizard.dm +++ b/code/game/gamemodes/wizard/wizard.dm @@ -1,6 +1,6 @@ /datum/game_mode/wizard name = "Wizard" - round_description = "There is a SPACE WIZARD on the station. You can't let them achieve their objectives!" + round_description = "There is a SPACE WIZARD on the station. You can't let the magician achieve their objectives!" extended_round_description = "A powerful entity capable of manipulating the elements around him, most commonly referred to as a 'wizard', has infiltrated the station. They have a wide variety of powers and spells available to them that makes your own simple moral self tremble with fear and excitement. Ultimately, their purpose is unknown. However, it is up to you and your crew to decide if their powers can be used for good or if their arrival foreshadows the destruction of the entire station." config_tag = "wizard" required_players = 1 diff --git a/code/game/jobs/job/assistant.dm b/code/game/jobs/job/assistant.dm index f390303452f..df54a4ea57a 100644 --- a/code/game/jobs/job/assistant.dm +++ b/code/game/jobs/job/assistant.dm @@ -8,6 +8,7 @@ spawn_positions = -1 supervisors = "absolutely everyone" selection_color = "#dddddd" + economic_modifier = 1 access = list() //See /datum/job/assistant/get_access() minimal_access = list() //See /datum/job/assistant/get_access() alt_titles = list("Technical Assistant","Medical Intern","Research Assistant","Visitor") diff --git a/code/game/jobs/job/captain.dm b/code/game/jobs/job/captain.dm index f76ef8edb4f..665016a1cf2 100644 --- a/code/game/jobs/job/captain.dm +++ b/code/game/jobs/job/captain.dm @@ -16,6 +16,7 @@ var/datum/announcement/minor/captain_announcement = new(do_newscast = 1) access = list() //See get_access() minimal_access = list() //See get_access() minimal_player_age = 14 + economic_modifier = 20 equip(var/mob/living/carbon/human/H) if(!H) return 0 H.equip_to_slot_or_del(new /obj/item/device/radio/headset/heads/captain(H), slot_l_ear) @@ -60,6 +61,7 @@ var/datum/announcement/minor/captain_announcement = new(do_newscast = 1) idtype = /obj/item/weapon/card/id/silver req_admin_notify = 1 minimal_player_age = 10 + economic_modifier = 10 access = list(access_security, access_sec_doors, access_brig, access_court, access_forensics_lockers, access_medical, access_engine, access_change_ids, access_ai_upload, access_eva, access_heads, access_all_personal_lockers, access_maint_tunnels, access_bar, access_janitor, access_construction, access_morgue, diff --git a/code/game/jobs/job/civilian.dm b/code/game/jobs/job/civilian.dm index 26f5c020201..f45af97286a 100644 --- a/code/game/jobs/job/civilian.dm +++ b/code/game/jobs/job/civilian.dm @@ -97,6 +97,7 @@ spawn_positions = 1 supervisors = "the head of personnel" selection_color = "#dddddd" + economic_modifier = 5 access = list(access_maint_tunnels, access_mailsorting, access_cargo, access_cargo_bot, access_qm, access_mining, access_mining_station) minimal_access = list(access_maint_tunnels, access_mailsorting, access_cargo, access_cargo_bot, access_qm, access_mining, access_mining_station) @@ -149,6 +150,7 @@ spawn_positions = 3 supervisors = "the quartermaster and the head of personnel" selection_color = "#dddddd" + economic_modifier = 5 access = list(access_maint_tunnels, access_mailsorting, access_cargo, access_cargo_bot, access_qm, access_mining, access_mining_station) minimal_access = list(access_mining, access_mining_station, access_mailsorting) alt_titles = list("Drill Technician","Prospector") @@ -311,6 +313,7 @@ spawn_positions = 2 supervisors = "Nanotrasen officials and Corporate Regulations" selection_color = "#dddddd" + economic_modifier = 7 access = list(access_lawyer, access_court, access_sec_doors, access_maint_tunnels, access_heads) minimal_access = list(access_lawyer, access_court, access_sec_doors, access_heads) diff --git a/code/game/jobs/job/engineering.dm b/code/game/jobs/job/engineering.dm index 5c86336cb6c..27cd6a753e5 100644 --- a/code/game/jobs/job/engineering.dm +++ b/code/game/jobs/job/engineering.dm @@ -11,6 +11,7 @@ selection_color = "#ffeeaa" idtype = /obj/item/weapon/card/id/silver req_admin_notify = 1 + economic_modifier = 10 access = list(access_engine, access_engine_equip, access_tech_storage, access_maint_tunnels, access_teleporter, access_external_airlocks, access_atmospherics, access_emergency_storage, access_eva, access_heads, access_construction, access_sec_doors, @@ -53,6 +54,7 @@ spawn_positions = 5 supervisors = "the chief engineer" selection_color = "#fff5cc" + economic_modifier = 5 access = list(access_eva, access_engine, access_engine_equip, access_tech_storage, access_maint_tunnels, access_external_airlocks, access_construction, access_atmospherics) minimal_access = list(access_eva, access_engine, access_engine_equip, access_tech_storage, access_maint_tunnels, access_external_airlocks, access_construction) alt_titles = list("Maintenance Technician","Engine Technician","Electrician") @@ -89,6 +91,7 @@ spawn_positions = 2 supervisors = "the chief engineer" selection_color = "#fff5cc" + economic_modifier = 5 access = list(access_eva, access_engine, access_engine_equip, access_tech_storage, access_maint_tunnels, access_external_airlocks, access_construction, access_atmospherics, access_external_airlocks) minimal_access = list(access_eva, access_engine, access_atmospherics, access_maint_tunnels, access_emergency_storage, access_construction, access_external_airlocks) diff --git a/code/game/jobs/job/job.dm b/code/game/jobs/job/job.dm index 33cc45b69f6..b84b673a40a 100644 --- a/code/game/jobs/job/job.dm +++ b/code/game/jobs/job/job.dm @@ -20,6 +20,9 @@ var/department = null // Does this position have a department tag? var/head_position = 0 // Is this position Command? + var/account_allowed = 1 // Does this job type come with a station account? + var/economic_modifier = 2 // With how much does this job modify the initial account amount? + /datum/job/proc/equip(var/mob/living/carbon/human/H) return 1 @@ -34,6 +37,37 @@ H.species.equip_survival_gear(H,0) return 1 +/datum/job/proc/setup_account(var/mob/living/carbon/human/H) + if(!account_allowed || (H.mind && H.mind.initial_account)) + return + + var/loyalty = 1 + if(H.client) + switch(H.client.prefs.nanotrasen_relation) + if(COMPANY_LOYAL) loyalty = 1.30 + if(COMPANY_SUPPORTATIVE)loyalty = 1.15 + if(COMPANY_NEUTRAL) loyalty = 1 + if(COMPANY_SKEPTICAL) loyalty = 0.85 + if(COMPANY_OPPOSED) loyalty = 0.70 + + //give them an account in the station database + var/money_amount = (rand(5,50) + rand(5, 50)) * loyalty * economic_modifier * (H.species ? economic_species_modifier[H.species.type] : 2) + var/datum/money_account/M = create_account(H.real_name, money_amount, null) + if(H.mind) + var/remembered_info = "" + remembered_info += "Your account number is: #[M.account_number]
" + remembered_info += "Your account pin is: [M.remote_access_pin]
" + remembered_info += "Your account funds are: $[M.money]
" + + if(M.transaction_log.len) + var/datum/transaction/T = M.transaction_log[1] + remembered_info += "Your account was created: [T.time], [T.date] at [T.source_terminal]
" + H.mind.store_memory(remembered_info) + + H.mind.initial_account = M + + H << "Your account number is: [M.account_number], your account pin is: [M.remote_access_pin]" + // overrideable separately so AIs/borgs can have cardborg hats without unneccessary new()/del() /datum/job/proc/equip_preview(mob/living/carbon/human/H) return equip(H) diff --git a/code/game/jobs/job/medical.dm b/code/game/jobs/job/medical.dm index 0e79223b186..72a71e9196b 100644 --- a/code/game/jobs/job/medical.dm +++ b/code/game/jobs/job/medical.dm @@ -11,6 +11,7 @@ selection_color = "#ffddf0" idtype = /obj/item/weapon/card/id/silver req_admin_notify = 1 + economic_modifier = 10 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_sec_doors, access_psychiatrist, access_eva, access_external_airlocks) @@ -44,6 +45,7 @@ spawn_positions = 3 supervisors = "the chief medical officer" selection_color = "#ffeef0" + economic_modifier = 7 access = list(access_medical, access_medical_equip, access_morgue, access_surgery, access_chemistry, access_virology, access_genetics) minimal_access = list(access_medical, access_medical_equip, access_morgue, access_surgery, access_virology) alt_titles = list("Surgeon","Emergency Physician","Nurse","Virologist") @@ -106,6 +108,7 @@ spawn_positions = 2 supervisors = "the chief medical officer" selection_color = "#ffeef0" + economic_modifier = 5 access = list(access_medical, access_medical_equip, access_morgue, access_surgery, access_chemistry, access_virology, access_genetics) minimal_access = list(access_medical, access_chemistry) alt_titles = list("Pharmacist") @@ -136,6 +139,7 @@ spawn_positions = 0 supervisors = "the chief medical officer and research director" selection_color = "#ffeef0" + economic_modifier = 7 access = list(access_medical, access_morgue, access_surgery, access_chemistry, access_virology, access_genetics, access_research) minimal_access = list(access_medical, access_morgue, access_genetics, access_research) @@ -162,6 +166,7 @@ faction = "Station" total_positions = 1 spawn_positions = 1 + economic_modifier = 5 supervisors = "the chief medical officer" selection_color = "#ffeef0" access = list(access_medical, access_medical_equip, access_morgue, access_surgery, access_chemistry, access_virology, access_genetics, access_psychiatrist) @@ -198,6 +203,7 @@ spawn_positions = 2 supervisors = "the chief medical officer" selection_color = "#ffeef0" + economic_modifier = 4 access = list(access_medical, access_medical_equip, access_morgue, access_surgery, access_chemistry, access_virology, access_eva, access_maint_tunnels, access_external_airlocks, access_psychiatrist) minimal_access = list(access_medical, access_medical_equip, access_eva, access_maint_tunnels, access_external_airlocks) alt_titles = list("Emergency Medical Technician") diff --git a/code/game/jobs/job/science.dm b/code/game/jobs/job/science.dm index a7d54284bfc..05690d43390 100644 --- a/code/game/jobs/job/science.dm +++ b/code/game/jobs/job/science.dm @@ -11,6 +11,7 @@ selection_color = "#ffddff" idtype = /obj/item/weapon/card/id/silver req_admin_notify = 1 + economic_modifier = 15 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, @@ -47,6 +48,7 @@ spawn_positions = 3 supervisors = "the research director" selection_color = "#ffeeff" + economic_modifier = 7 access = list(access_robotics, access_tox, access_tox_storage, access_research, access_xenobiology, access_xenoarch) minimal_access = list(access_tox, access_tox_storage, access_research, access_xenoarch) alt_titles = list("Xenoarcheologist", "Anomalist", "Phoron Researcher") @@ -76,6 +78,7 @@ spawn_positions = 2 supervisors = "the research director" selection_color = "#ffeeff" + economic_modifier = 7 access = list(access_robotics, access_tox, access_tox_storage, access_research, access_xenobiology, access_hydroponics) minimal_access = list(access_research, access_xenobiology, access_hydroponics, access_tox_storage) alt_titles = list("Xenobotanist") @@ -105,6 +108,7 @@ spawn_positions = 2 supervisors = "research director" selection_color = "#ffeeff" + economic_modifier = 5 access = list(access_robotics, access_tox, access_tox_storage, access_tech_storage, access_morgue, access_research) //As a job that handles so many corpses, it makes sense for them to have morgue access. minimal_access = list(access_robotics, access_tech_storage, access_morgue, access_research) //As a job that handles so many corpses, it makes sense for them to have morgue access. alt_titles = list("Biomechanical Engineer","Mechatronic Engineer") diff --git a/code/game/jobs/job/security.dm b/code/game/jobs/job/security.dm index cb7a7d23f4c..8a9461302db 100644 --- a/code/game/jobs/job/security.dm +++ b/code/game/jobs/job/security.dm @@ -11,6 +11,7 @@ selection_color = "#ffdddd" idtype = /obj/item/weapon/card/id/silver req_admin_notify = 1 + economic_modifier = 10 access = list(access_security, access_eva, access_sec_doors, access_brig, access_armory, access_court, access_forensics_lockers, access_morgue, access_maint_tunnels, access_all_personal_lockers, access_research, access_engine, access_mining, access_medical, access_construction, access_mailsorting, @@ -54,6 +55,7 @@ spawn_positions = 1 supervisors = "the head of security" selection_color = "#ffeeee" + economic_modifier = 5 access = list(access_security, access_eva, access_sec_doors, access_brig, access_armory, access_court, access_maint_tunnels, access_morgue, access_external_airlocks) minimal_access = list(access_security, access_eva, access_sec_doors, access_brig, access_armory, access_court, access_maint_tunnels, access_external_airlocks) minimal_player_age = 5 @@ -91,7 +93,7 @@ supervisors = "the head of security" selection_color = "#ffeeee" alt_titles = list("Forensic Technician") - + economic_modifier = 5 access = list(access_security, access_sec_doors, access_forensics_lockers, access_morgue, access_maint_tunnels, access_court) minimal_access = list(access_security, access_sec_doors, access_forensics_lockers, access_morgue, access_maint_tunnels, access_court) alt_titles = list("Forensic Technician") @@ -133,6 +135,7 @@ spawn_positions = 3 supervisors = "the head of security" selection_color = "#ffeeee" + economic_modifier = 4 access = list(access_security, access_eva, access_sec_doors, access_brig, access_court, access_maint_tunnels, access_morgue, access_external_airlocks) minimal_access = list(access_security, access_eva, access_sec_doors, access_brig, access_court, access_maint_tunnels, access_external_airlocks) minimal_player_age = 3 diff --git a/code/game/jobs/job/silicon.dm b/code/game/jobs/job/silicon.dm index a76317af03d..6cec7149e97 100644 --- a/code/game/jobs/job/silicon.dm +++ b/code/game/jobs/job/silicon.dm @@ -9,7 +9,8 @@ supervisors = "your laws" req_admin_notify = 1 minimal_player_age = 7 - + account_allowed = 0 + economic_modifier = 0 equip(var/mob/living/carbon/human/H) if(!H) return 0 return 1 @@ -40,6 +41,8 @@ selection_color = "#ddffdd" minimal_player_age = 1 alt_titles = list("Android", "Robot") + account_allowed = 0 + economic_modifier = 0 equip(var/mob/living/carbon/human/H) if(!H) return 0 diff --git a/code/game/jobs/job_controller.dm b/code/game/jobs/job_controller.dm index 143a603ec1e..1768ffe642f 100644 --- a/code/game/jobs/job_controller.dm +++ b/code/game/jobs/job_controller.dm @@ -392,6 +392,7 @@ var/global/datum/controller/occupations/job_master spawn_in_storage += thing //Equip job items. job.equip(H) + job.setup_account(H) job.equip_backpack(H) job.equip_survival(H) job.apply_fingerprints(H) @@ -428,21 +429,6 @@ var/global/datum/controller/occupations/job_master H.buckled.loc = H.loc H.buckled.set_dir(H.dir) - //give them an account in the station database - var/datum/money_account/M = create_account(H.real_name, rand(50,500)*10, null) - if(H.mind) - var/remembered_info = "" - remembered_info += "Your account number is: #[M.account_number]
" - remembered_info += "Your account pin is: [M.remote_access_pin]
" - remembered_info += "Your account funds are: $[M.money]
" - - if(M.transaction_log.len) - var/datum/transaction/T = M.transaction_log[1] - remembered_info += "Your account was created: [T.time], [T.date] at [T.source_terminal]
" - H.mind.store_memory(remembered_info) - - H.mind.initial_account = M - // If they're head, give them the account info for their department if(H.mind && job.head_position) var/remembered_info = "" @@ -455,9 +441,6 @@ var/global/datum/controller/occupations/job_master H.mind.store_memory(remembered_info) - spawn(0) - H << "Your account number is: [M.account_number], your account pin is: [M.remote_access_pin]" - var/alt_title = null if(H.mind) H.mind.assigned_role = rank diff --git a/code/game/machinery/Sleeper.dm b/code/game/machinery/Sleeper.dm index 05b71733238..c4208b9a582 100644 --- a/code/game/machinery/Sleeper.dm +++ b/code/game/machinery/Sleeper.dm @@ -1,157 +1,5 @@ -///////////////////////////////////////// -// SLEEPER CONSOLE -///////////////////////////////////////// - -/obj/machinery/sleep_console - name = "Sleeper Console" - icon = 'icons/obj/Cryogenic2.dmi' - icon_state = "sleeperconsole" - var/obj/machinery/sleeper/connected = null - anchored = 1 //About time someone fixed this. - density = 1 - var/orient = "LEFT" // "RIGHT" changes the dir suffix to "-r" - - use_power = 1 - idle_power_usage = 40 - interact_offline = 1 - -/obj/machinery/sleep_console/process() - if(stat & (NOPOWER|BROKEN)) - return - src.updateUsrDialog() - return - -/obj/machinery/sleep_console/ex_act(severity) - switch(severity) - if(1.0) - //SN src = null - qdel(src) - return - if(2.0) - if (prob(50)) - //SN src = null - qdel(src) - return - else - return - -/obj/machinery/sleep_console/New() - ..() - spawn( 5 ) - if(orient == "RIGHT") - icon_state = "sleeperconsole-r" - src.connected = locate(/obj/machinery/sleeper, get_step(src, EAST)) - else - src.connected = locate(/obj/machinery/sleeper, get_step(src, WEST)) - - return - return - -/obj/machinery/sleep_console/attack_ai(mob/user as mob) - return src.attack_hand(user) - -/obj/machinery/sleep_console/attack_hand(mob/user as mob) - if(..()) - return - if(stat & (NOPOWER|BROKEN)) - return - var/dat = "" - if (!src.connected || (connected.stat & (NOPOWER|BROKEN))) - dat += "This console is not connected to a sleeper or the sleeper is non-functional." - else - var/mob/living/occupant = src.connected.occupant - dat += "Occupant Statistics:
" - if (occupant) - var/t1 - switch(occupant.stat) - if(0) - t1 = "Conscious" - if(1) - t1 = "Unconscious" - if(2) - t1 = "*dead*" - else - dat += text("[]\tHealth %: [] ([])
", (occupant.health > 50 ? "" : ""), occupant.health, t1) - if(iscarbon(occupant)) - var/mob/living/carbon/C = occupant - dat += text("[]\t-Pulse, bpm: []
", (C.pulse == PULSE_NONE || C.pulse == PULSE_THREADY ? "" : ""), C.get_pulse(GETPULSE_TOOL)) - dat += text("[]\t-Brute Damage %: []
", (occupant.getBruteLoss() < 60 ? "" : ""), occupant.getBruteLoss()) - dat += text("[]\t-Respiratory Damage %: []
", (occupant.getOxyLoss() < 60 ? "" : ""), occupant.getOxyLoss()) - dat += text("[]\t-Toxin Content %: []
", (occupant.getToxLoss() < 60 ? "" : ""), occupant.getToxLoss()) - dat += text("[]\t-Burn Severity %: []
", (occupant.getFireLoss() < 60 ? "" : ""), occupant.getFireLoss()) - dat += text("
Paralysis Summary %: [] ([] seconds left!)
", occupant.paralysis, round(occupant.paralysis / 4)) - if(occupant.reagents) - for(var/chemical in connected.available_chemicals) - dat += "[connected.available_chemicals[chemical]]: [occupant.reagents.get_reagent_amount(chemical)] units
" - dat += "Refresh Meter Readings
" - if(src.connected.beaker) - dat += "
Remove Beaker
" - if(src.connected.filtering) - dat += "Stop Dialysis
" - dat += text("Output Beaker has [] units of free space remaining

", src.connected.beaker.reagents.maximum_volume - src.connected.beaker.reagents.total_volume) - else - dat += "
Start Dialysis
" - dat += text("Output Beaker has [] units of free space remaining

", src.connected.beaker.reagents.maximum_volume - src.connected.beaker.reagents.total_volume) - else - dat += "
No Dialysis Output Beaker is present.

" - - for(var/chemical in connected.available_chemicals) - dat += "Inject [connected.available_chemicals[chemical]]: " - for(var/amount in connected.amounts) - dat += "[amount] units
" - - - dat += "
Eject Patient" - else - dat += "The sleeper is empty." - dat += text("

Close", user) - user << browse(dat, "window=sleeper;size=400x500") - onclose(user, "sleeper") - return - -/obj/machinery/sleep_console/Topic(href, href_list) - if(..()) - return - if ((usr.contents.Find(src) || ((get_dist(src, usr) <= 1) && istype(src.loc, /turf))) || (istype(usr, /mob/living/silicon/ai))) - usr.set_machine(src) - if (href_list["chemical"]) - if (src.connected) - if (src.connected.occupant) - if (src.connected.occupant.stat == DEAD) - usr << "This person has no life for to preserve anymore. Take them to a department capable of reanimating them." - else if(src.connected.occupant.health > 0 || href_list["chemical"] == "inaprovaline") - src.connected.inject_chemical(usr,href_list["chemical"],text2num(href_list["amount"])) - else - usr << "This person is not in good enough condition for sleepers to be effective! Use another means of treatment, such as cryogenics!" - src.updateUsrDialog() - if (href_list["refresh"]) - src.updateUsrDialog() - if (href_list["removebeaker"]) - src.connected.remove_beaker() - src.updateUsrDialog() - if (href_list["togglefilter"]) - src.connected.toggle_filter() - src.updateUsrDialog() - if (href_list["ejectify"]) - src.connected.eject() - src.updateUsrDialog() - src.add_fingerprint(usr) - return - - - - - - - - - -///////////////////////////////////////// -// THE SLEEPER ITSELF -///////////////////////////////////////// - /obj/machinery/sleeper - name = "Sleeper" + name = "sleeper" desc = "A fancy bed with built-in injectors, a dialysis machine, and a limited health scanner." icon = 'icons/obj/Cryogenic2.dmi' icon_state = "sleeper_0" @@ -159,8 +7,7 @@ anchored = 1 var/orient = "LEFT" // "RIGHT" changes the dir suffix to "-r" var/mob/living/carbon/human/occupant = null - var/available_chemicals = list("inaprovaline" = "Inaprovaline", "stoxin" = "Soporific", "paracetamol" = "Paracetamol", "anti_toxin" = "Dylovene", "dexalin" = "Dexalin") - var/amounts = list(5, 10) + var/list/available_chemicals = list("inaprovaline" = "Inaprovaline", "stoxin" = "Soporific", "paracetamol" = "Paracetamol", "anti_toxin" = "Dylovene", "dexalin" = "Dexalin") var/obj/item/weapon/reagent_containers/glass/beaker = null var/filtering = 0 @@ -168,269 +15,210 @@ idle_power_usage = 15 active_power_usage = 200 //builtin health analyzer, dialysis machine, injectors. - New() - ..() - beaker = new /obj/item/weapon/reagent_containers/glass/beaker/large(src) - spawn( 5 ) - if(orient == "RIGHT") - icon_state = "sleeper_0-r" - return +/obj/machinery/sleeper/New() + ..() + beaker = new /obj/item/weapon/reagent_containers/glass/beaker/large(src) + +/obj/machinery/sleeper/initialize() + update_icon() + +/obj/machinery/sleeper/process() + if(stat & (NOPOWER|BROKEN)) return - process() - if (stat & (NOPOWER|BROKEN)) - return - - if(filtering > 0) - if(beaker) - if(beaker.reagents.total_volume < beaker.reagents.maximum_volume) - var/pumped = 0 - for(var/datum/reagent/x in src.occupant.reagents.reagent_list) - src.occupant.reagents.trans_to_obj(beaker, 3) - pumped++ - if (ishuman(src.occupant)) - src.occupant.vessel.trans_to_obj(beaker, pumped + 1) - src.updateUsrDialog() - return - - - blob_act() - if(prob(75)) - for(var/atom/movable/A as mob|obj in src) - A.loc = src.loc - A.blob_act() - qdel(src) - return - - attackby(var/obj/item/weapon/G as obj, var/mob/user as mob) - if(istype(G, /obj/item/weapon/reagent_containers/glass)) - if(!beaker) - beaker = G - user.drop_item() - G.loc = src - user.visible_message("[user] adds \a [G] to \the [src]!", "You add \a [G] to \the [src]!") - src.updateUsrDialog() - return - else - user << "The sleeper has a beaker already." - return - - else if(istype(G, /obj/item/weapon/grab)) - if(!ismob(G:affecting)) - return - - if(src.occupant) - user << "The sleeper is already occupied!" - return - - for(var/mob/living/carbon/slime/M in range(1,G:affecting)) - if(M.Victim == G:affecting) - usr << "[G:affecting.name] will not fit into the sleeper because they have a slime latched onto their head." - return - - visible_message("[user] starts putting [G:affecting:name] into the sleeper.", 3) - - if(do_after(user, 20)) - if(src.occupant) - user << "The sleeper is already occupied!" - return - if(!G || !G:affecting) return - var/mob/M = G:affecting - if(M.client) - M.client.perspective = EYE_PERSPECTIVE - M.client.eye = src - M.loc = src - update_use_power(2) - src.occupant = M - src.icon_state = "sleeper_1" - if(orient == "RIGHT") - icon_state = "sleeper_1-r" - - src.add_fingerprint(user) - qdel(G) - return - return - - - ex_act(severity) - if(filtering) - toggle_filter() - switch(severity) - if(1.0) - for(var/atom/movable/A as mob|obj in src) - A.loc = src.loc - ex_act(severity) - qdel(src) - return - if(2.0) - if(prob(50)) - for(var/atom/movable/A as mob|obj in src) - A.loc = src.loc - ex_act(severity) - qdel(src) - return - if(3.0) - if(prob(25)) - for(var/atom/movable/A as mob|obj in src) - A.loc = src.loc - ex_act(severity) - qdel(src) - return - return - emp_act(severity) - if(filtering) - toggle_filter() - if(stat & (BROKEN|NOPOWER)) - ..(severity) - return - if(occupant) - go_out() - ..(severity) - - alter_health(mob/living/M as mob) - if (M.health > 0) - if (M.getOxyLoss() >= 10) - var/amount = max(0.15, 1) - M.adjustOxyLoss(-amount) - else - M.adjustOxyLoss(-12) - M.updatehealth() - M.AdjustParalysis(-4) - M.AdjustWeakened(-4) - M.AdjustStunned(-4) - M.Paralyse(1) - M.Weaken(1) - M.Stun(1) - if (M:reagents.get_reagent_amount("inaprovaline") < 5) - M:reagents.add_reagent("inaprovaline", 5) - return - proc/toggle_filter() - if(!src.occupant) - filtering = 0 - return - if(filtering) - filtering = 0 - else - filtering = 1 - - proc/go_out() - if(filtering) - toggle_filter() - if(!src.occupant) - return - if(src.occupant.client) - src.occupant.client.eye = src.occupant.client.mob - src.occupant.client.perspective = MOB_PERSPECTIVE - src.occupant.loc = src.loc - src.occupant = null - update_use_power(1) - if(orient == "RIGHT") - icon_state = "sleeper_0-r" - return - - - proc/inject_chemical(mob/living/user as mob, chemical, amount) - if (stat & (BROKEN|NOPOWER)) - return - - if(src.occupant && src.occupant.reagents) - if(src.occupant.reagents.get_reagent_amount(chemical) + amount <= 20) - use_power(amount * CHEM_SYNTH_ENERGY) - src.occupant.reagents.add_reagent(chemical, amount) - user << "Occupant now has [src.occupant.reagents.get_reagent_amount(chemical)] units of [available_chemicals[chemical]] in his/her bloodstream." - return - user << "There's no occupant in the sleeper or the subject has too many chemicals!" - return - - - proc/check(mob/living/user as mob) - if(src.occupant) - user << text("Occupant ([]) Statistics:", src.occupant) - var/t1 - switch(src.occupant.stat) - if(0.0) - t1 = "Conscious" - if(1.0) - t1 = "Unconscious" - if(2.0) - t1 = "*dead*" - else - user << text("\t Health %: [] ([])", (src.occupant.health > 50 ? "notice" : "warning"), src.occupant.health, t1) - user << text("\t -Core Temperature: []°C ([]°F)", (src.occupant.bodytemperature > 50 ? "notice" : "warning"), src.occupant.bodytemperature-T0C, src.occupant.bodytemperature*1.8-459.67) - user << text("\t -Brute Damage %: []", (src.occupant.getBruteLoss() < 60 ? "notice" : "warning"), src.occupant.getBruteLoss()) - user << text("\t -Respiratory Damage %: []", (src.occupant.getOxyLoss() < 60 ? "notice" : "warning"), src.occupant.getOxyLoss()) - user << text("\t -Toxin Content %: []", (src.occupant.getToxLoss() < 60 ? "notice" : "warning"), src.occupant.getToxLoss()) - user << text("\t -Burn Severity %: []", (src.occupant.getFireLoss() < 60 ? "notice" : "warning"), src.occupant.getFireLoss()) - user << "Expected time till occupant can safely awake: (note: If health is below 20% these times are inaccurate)" - user << text("\t [] second\s (if around 1 or 2 the sleeper is keeping them asleep.)", src.occupant.paralysis / 5) - if(src.beaker) - user << text("\t Dialysis Output Beaker has [] of free space remaining.", src.beaker.reagents.maximum_volume - src.beaker.reagents.total_volume) - else - user << "No Dialysis Output Beaker loaded." - else - user << "There is no one inside!" - return - - - verb/eject() - set name = "Eject Sleeper" - set category = "Object" - set src in oview(1) - if(usr.stat != 0) - return - if(orient == "RIGHT") - icon_state = "sleeper_0-r" - src.icon_state = "sleeper_0" - src.go_out() - add_fingerprint(usr) - return - - verb/remove_beaker() - set name = "Remove Beaker" - set category = "Object" - set src in oview(1) - if(usr.stat != 0) - return + if(filtering > 0) if(beaker) - filtering = 0 - beaker.loc = usr.loc - beaker = null - add_fingerprint(usr) + if(beaker.reagents.total_volume < beaker.reagents.maximum_volume) + var/pumped = 0 + for(var/datum/reagent/x in occupant.reagents.reagent_list) + occupant.reagents.trans_to_obj(beaker, 3) + pumped++ + if(ishuman(occupant)) + occupant.vessel.trans_to_obj(beaker, pumped + 1) + else + toggle_filter() + +/obj/machinery/sleeper/update_icon() + icon_state = "sleeper_[occupant ? "1" : "0"][orient == "RIGHT" ? "-r" : ""]" + +/obj/machinery/sleeper/attack_hand(var/mob/user) + if(..()) + return 1 + + ui_interact(user) + +/obj/machinery/sleeper/ui_interact(var/mob/user, var/ui_key = "main", var/datum/nanoui/ui = null, var/force_open = 1, var/datum/topic_state/state = outside_state) + var/data[0] + + data["power"] = stat & (NOPOWER|BROKEN) ? 0 : 1 + + var/list/reagents = list() + for(var/T in available_chemicals) + var/list/reagent = list() + reagent["id"] = T + reagent["name"] = available_chemicals[T] + if(occupant) + reagent["amount"] = occupant.reagents.get_reagent_amount(T) + reagents += list(reagent) + data["reagents"] = reagents.Copy() + + if(occupant) + data["occupant"] = 1 + switch(occupant.stat) + if(CONSCIOUS) + data["stat"] = "Conscious" + if(UNCONSCIOUS) + data["stat"] = "Unconscious" + if(DEAD) + data["stat"] = "Dead" + data["health"] = occupant.health + if(iscarbon(occupant)) + var/mob/living/carbon/C = occupant + data["pulse"] = C.get_pulse(GETPULSE_TOOL) + data["brute"] = occupant.getBruteLoss() + data["burn"] = occupant.getFireLoss() + data["oxy"] = occupant.getOxyLoss() + data["tox"] = occupant.getToxLoss() + else + data["occupant"] = 0 + if(beaker) + data["beaker"] = beaker.reagents.get_free_space() + else + data["beaker"] = -1 + data["filtering"] = filtering + + ui = nanomanager.try_update_ui(user, src, ui_key, ui, data, force_open) + if(!ui) + ui = new(user, src, ui_key, "sleeper.tmpl", "Sleeper UI", 600, 600, state = state) + ui.set_initial_data(data) + ui.open() + ui.set_auto_update(1) + +/obj/machinery/sleeper/Topic(href, href_list) + if(..()) + return 1 + + if(usr == occupant) + usr << "You can't reach the controls from the inside." return - verb/move_inside() - set name = "Enter Sleeper" - set category = "Object" - set src in oview(1) + add_fingerprint(usr) - if(usr.stat != 0 || !(ishuman(usr) || issmall(usr))) - return + if(href_list["eject"]) + go_out() + if(href_list["beaker"]) + remove_beaker() + if(href_list["filter"]) + if(filtering != text2num(href_list["filter"])) + toggle_filter() + if(href_list["chemical"] && href_list["amount"]) + if(occupant && occupant.stat != DEAD) + if(href_list["chemical"] in available_chemicals) // Your hacks are bad and you should feel bad + inject_chemical(usr, href_list["chemical"], text2num(href_list["amount"])) - if(src.occupant) - usr << "The sleeper is already occupied!" - return + return 1 - for(var/mob/living/carbon/slime/M in range(1,usr)) - if(M.Victim == usr) - usr << "You're too busy getting your life sucked out of you." - return - visible_message("[usr] starts climbing into the sleeper.", 3) - if(do_after(usr, 20)) - if(src.occupant) - usr << "The sleeper is already occupied!" - return - usr.stop_pulling() - usr.client.perspective = EYE_PERSPECTIVE - usr.client.eye = src - usr.loc = src - update_use_power(2) - src.occupant = usr - src.icon_state = "sleeper_1" - if(orient == "RIGHT") - icon_state = "sleeper_1-r" +/obj/machinery/sleeper/attack_ai(var/mob/user) + return attack_hand(user) - for(var/obj/O in src) - qdel(O) - src.add_fingerprint(usr) - return +/obj/machinery/sleeper/attackby(var/obj/item/I, var/mob/user) + add_fingerprint(user) + if(istype(I, /obj/item/weapon/reagent_containers/glass)) + if(!beaker) + beaker = I + user.drop_item() + I.loc = src + user.visible_message("\The [user] adds \a [I] to \the [src].", "You add \a [I] to \the [src].") + else + user << "\The [src] has a beaker already." return + +/obj/machinery/sleeper/MouseDrop_T(var/mob/target, var/mob/user) + if(user.stat || user.lying || !Adjacent(user) || !target.Adjacent(user)|| !ishuman(target)) + return + go_in(target, user) + +/obj/machinery/sleeper/relaymove(var/mob/user) + ..() + go_out() + +/obj/machinery/sleeper/emp_act(var/severity) + if(filtering) + toggle_filter() + + if(stat & (BROKEN|NOPOWER)) + ..(severity) + return + + if(occupant) + go_out() + + ..(severity) +/obj/machinery/sleeper/proc/toggle_filter() + if(!occupant || !beaker) + filtering = 0 + return + filtering = !filtering + +/obj/machinery/sleeper/proc/go_in(var/mob/M, var/mob/user) + if(!M) + return + if(stat & (BROKEN|NOPOWER)) + return + if(occupant) + user << "\The [src] is already occupied." + return + + if(M == user) + visible_message("\The [user] starts climbing into \the [src].") + else + visible_message("\The [user] starts putting [M] into \the [src].") + + if(do_after(user, 20)) + if(occupant) + user << "\The [src] is already occupied." + return + M.stop_pulling() + if(M.client) + M.client.perspective = EYE_PERSPECTIVE + M.client.eye = src + M.loc = src + update_use_power(2) + occupant = M + update_icon() + +/obj/machinery/sleeper/proc/go_out() + if(!occupant) + return + if(occupant.client) + occupant.client.eye = occupant.client.mob + occupant.client.perspective = MOB_PERSPECTIVE + occupant.loc = loc + occupant = null + for(var/atom/movable/A in src) // In case an object was dropped inside or something + if(A == beaker) + continue + A.loc = loc + update_use_power(1) + update_icon() + toggle_filter() + +/obj/machinery/sleeper/proc/remove_beaker() + if(beaker) + beaker.loc = loc + beaker = null + toggle_filter() + +/obj/machinery/sleeper/proc/inject_chemical(var/mob/living/user, var/chemical, var/amount) + if(stat & (BROKEN|NOPOWER)) + return + + if(occupant && occupant.reagents) + if(occupant.reagents.get_reagent_amount(chemical) + amount <= 20) + use_power(amount * CHEM_SYNTH_ENERGY) + occupant.reagents.add_reagent(chemical, amount) + user << "Occupant now has [occupant.reagents.get_reagent_amount(chemical)] units of [available_chemicals[chemical]] in their bloodstream." + else + user << "The subject has too many chemicals." + else + user << "There's no suitable occupant in \the [src]." diff --git a/code/game/machinery/alarm.dm b/code/game/machinery/alarm.dm index 834f3f37499..64101d44339 100644 --- a/code/game/machinery/alarm.dm +++ b/code/game/machinery/alarm.dm @@ -69,6 +69,7 @@ var/datum/radio_frequency/radio_connection var/list/TLV = list() + var/list/trace_gas = list("sleeping_agent", "volatile_fuel") //list of other gases that this air alarm is able to detect var/danger_level = 0 var/pressure_dangerlevel = 0 @@ -240,23 +241,24 @@ /obj/machinery/alarm/proc/overall_danger_level(var/datum/gas_mixture/environment) var/partial_pressure = R_IDEAL_GAS_EQUATION*environment.temperature/environment.volume var/environment_pressure = environment.return_pressure() - //var/other_moles = 0.0 - ////for(var/datum/gas/G in environment.trace_gases) - // other_moles+=G.moles + + var/other_moles = 0 + for(var/g in trace_gas) + other_moles += environment.gas[g] //this is only going to be used in a partial pressure calc, so we don't need to worry about group_multiplier here. pressure_dangerlevel = get_danger_level(environment_pressure, TLV["pressure"]) oxygen_dangerlevel = get_danger_level(environment.gas["oxygen"]*partial_pressure, TLV["oxygen"]) co2_dangerlevel = get_danger_level(environment.gas["carbon_dioxide"]*partial_pressure, TLV["carbon dioxide"]) phoron_dangerlevel = get_danger_level(environment.gas["phoron"]*partial_pressure, TLV["phoron"]) temperature_dangerlevel = get_danger_level(environment.temperature, TLV["temperature"]) - //other_dangerlevel = get_danger_level(other_moles*partial_pressure, TLV["other"]) + other_dangerlevel = get_danger_level(other_moles*partial_pressure, TLV["other"]) return max( pressure_dangerlevel, oxygen_dangerlevel, co2_dangerlevel, phoron_dangerlevel, - //other_dangerlevel, + other_dangerlevel, temperature_dangerlevel ) @@ -302,22 +304,30 @@ /obj/machinery/alarm/update_icon() if(wiresexposed) icon_state = "alarmx" + set_light(0) return if((stat & (NOPOWER|BROKEN)) || shorted) icon_state = "alarmp" + set_light(0) return var/icon_level = danger_level if (alarm_area.atmosalm) icon_level = max(icon_level, 1) //if there's an atmos alarm but everything is okay locally, no need to go past yellow + var/new_color = null switch(icon_level) if (0) icon_state = "alarm0" + new_color = "#03A728" if (1) icon_state = "alarm2" //yes, alarm2 is yellow alarm + new_color = "#EC8B2F" if (2) icon_state = "alarm1" + new_color = "#DA0205" + + set_light(l_range = 2, l_power = 0.5, l_color = new_color) /obj/machinery/alarm/receive_signal(datum/signal/signal) if(stat & (NOPOWER|BROKEN)) @@ -504,34 +514,13 @@ var/list/environment_data = new data["has_environment"] = total if(total) - var/partial_pressure = R_IDEAL_GAS_EQUATION*environment.temperature/environment.volume - - var/list/current_settings = TLV["pressure"] var/pressure = environment.return_pressure() - var/pressure_danger = get_danger_level(pressure, current_settings) - environment_data[++environment_data.len] = list("name" = "Pressure", "value" = pressure, "unit" = "kPa", "danger_level" = pressure_danger) - data["total_danger"] = pressure_danger - - current_settings = TLV["oxygen"] - var/oxygen_danger = get_danger_level(environment.gas["oxygen"]*partial_pressure, current_settings) - environment_data[++environment_data.len] = list("name" = "Oxygen", "value" = environment.gas["oxygen"] / total * 100, "unit" = "%", "danger_level" = oxygen_danger) - data["total_danger"] = max(oxygen_danger, data["total_danger"]) - - current_settings = TLV["carbon dioxide"] - var/carbon_dioxide_danger = get_danger_level(environment.gas["carbon_dioxide"]*partial_pressure, current_settings) - environment_data[++environment_data.len] = list("name" = "Carbon dioxide", "value" = environment.gas["carbon_dioxide"] / total * 100, "unit" = "%", "danger_level" = carbon_dioxide_danger) - data["total_danger"] = max(carbon_dioxide_danger, data["total_danger"]) - - current_settings = TLV["phoron"] - var/phoron_danger = get_danger_level(environment.gas["phoron"]*partial_pressure, current_settings) - environment_data[++environment_data.len] = list("name" = "Toxins", "value" = environment.gas["phoron"] / total * 100, "unit" = "%", "danger_level" = phoron_danger) - data["total_danger"] = max(phoron_danger, data["total_danger"]) - - current_settings = TLV["temperature"] - var/temperature_danger = get_danger_level(environment.temperature, current_settings) - environment_data[++environment_data.len] = list("name" = "Temperature", "value" = environment.temperature, "unit" = "K ([round(environment.temperature - T0C, 0.1)]C)", "danger_level" = temperature_danger) - data["total_danger"] = max(temperature_danger, data["total_danger"]) - + environment_data[++environment_data.len] = list("name" = "Pressure", "value" = pressure, "unit" = "kPa", "danger_level" = pressure_dangerlevel) + environment_data[++environment_data.len] = list("name" = "Oxygen", "value" = environment.gas["oxygen"] / total * 100, "unit" = "%", "danger_level" = oxygen_dangerlevel) + environment_data[++environment_data.len] = list("name" = "Carbon dioxide", "value" = environment.gas["carbon_dioxide"] / total * 100, "unit" = "%", "danger_level" = co2_dangerlevel) + environment_data[++environment_data.len] = list("name" = "Toxins", "value" = environment.gas["phoron"] / total * 100, "unit" = "%", "danger_level" = phoron_dangerlevel) + environment_data[++environment_data.len] = list("name" = "Temperature", "value" = environment.temperature, "unit" = "K ([round(environment.temperature - T0C, 0.1)]C)", "danger_level" = temperature_dangerlevel) + data["total_danger"] = danger_level data["environment"] = environment_data data["atmos_alarm"] = alarm_area.atmosalm data["fire_alarm"] = alarm_area.fire != null @@ -888,8 +877,11 @@ FIRE ALARM var/last_process = 0 var/wiresexposed = 0 var/buildstage = 2 // 2 = complete, 1 = no wires, 0 = circuit gone + var/seclevel /obj/machinery/firealarm/update_icon() + overlays.Cut() + if(wiresexposed) switch(buildstage) if(2) @@ -898,17 +890,28 @@ FIRE ALARM icon_state="fire_b1" if(0) icon_state="fire_b0" - + set_light(0) return if(stat & BROKEN) icon_state = "firex" + set_light(0) else if(stat & NOPOWER) icon_state = "firep" - else if(!src.detecting) - icon_state = "fire1" + set_light(0) else - icon_state = "fire0" + if(!src.detecting) + icon_state = "fire1" + set_light(l_range = 4, l_power = 2, l_color = "#ff0000") + else + icon_state = "fire0" + switch(seclevel) + if("green") set_light(l_range = 2, l_power = 0.5, l_color = "#00ff00") + if("blue") set_light(l_range = 2, l_power = 0.5, l_color = "#1024A9") + if("red") set_light(l_range = 4, l_power = 2, l_color = "#ff0000") + if("delta") set_light(l_range = 4, l_power = 2, l_color = "#FF6633") + + src.overlays += image('icons/obj/monitors.dmi', "overlay_[seclevel]") /obj/machinery/firealarm/fire_act(datum/gas_mixture/air, temperature, volume) if(src.detecting) @@ -1121,14 +1124,14 @@ FIRE ALARM pixel_x = (dir & 3)? 0 : (dir == 4 ? -24 : 24) pixel_y = (dir & 3)? (dir ==1 ? -24 : 24) : 0 +/obj/machinery/firealarm/proc/set_security_level(var/newlevel) + if(seclevel != newlevel) + seclevel = newlevel + update_icon() + /obj/machinery/firealarm/initialize() if(z in config.contact_levels) - if(security_level) - src.overlays += image('icons/obj/monitors.dmi', "overlay_[get_security_level()]") - else - src.overlays += image('icons/obj/monitors.dmi', "overlay_green") - - update_icon() + set_security_level(security_level? get_security_level() : "green") /* FIRE ALARM CIRCUIT diff --git a/code/game/machinery/atmo_control.dm b/code/game/machinery/atmo_control.dm index 09e55720a83..c7b5f3c73ab 100644 --- a/code/game/machinery/atmo_control.dm +++ b/code/game/machinery/atmo_control.dm @@ -74,7 +74,8 @@ obj/machinery/air_sensor/Destroy() /obj/machinery/computer/general_air_control icon = 'icons/obj/computer.dmi' - icon_state = "tank" + icon_keyboard = "atmos_key" + icon_screen = "tank" name = "Computer" @@ -158,7 +159,6 @@ obj/machinery/computer/general_air_control/Destroy() /obj/machinery/computer/general_air_control/large_tank_control icon = 'icons/obj/computer.dmi' - icon_state = "tank" frequency = 1441 var/input_tag @@ -278,7 +278,6 @@ Max Output Pressure: [output_pressure] kPa
"} /obj/machinery/computer/general_air_control/supermatter_core icon = 'icons/obj/computer.dmi' - icon_state = "tank" frequency = 1438 var/input_tag @@ -398,7 +397,7 @@ Min Core Pressure: [pressure_limit] kPa
"} /obj/machinery/computer/general_air_control/fuel_injection icon = 'icons/obj/computer.dmi' - icon_state = "atmos" + icon_screen = "alert:0" var/device_tag var/list/device_info diff --git a/code/game/machinery/atmoalter/area_atmos_computer.dm b/code/game/machinery/atmoalter/area_atmos_computer.dm index 984dc44782d..99f04ec1fd1 100644 --- a/code/game/machinery/atmoalter/area_atmos_computer.dm +++ b/code/game/machinery/atmoalter/area_atmos_computer.dm @@ -1,9 +1,10 @@ /obj/machinery/computer/area_atmos name = "Area Air Control" desc = "A computer used to control the stationary scrubbers and pumps in the area." - icon_state = "area_atmos" + icon_keyboard = "atmos_key" + icon_screen = "area_atmos" light_color = "#e6ffff" - circuit = "/obj/item/weapon/circuitboard/area_atmos" + circuit = /obj/item/weapon/circuitboard/area_atmos var/list/connectedscrubbers = new() var/status = "" diff --git a/code/game/machinery/atmoalter/portable_atmospherics.dm b/code/game/machinery/atmoalter/portable_atmospherics.dm index f8d611bcbfc..b7bcc53e91e 100644 --- a/code/game/machinery/atmoalter/portable_atmospherics.dm +++ b/code/game/machinery/atmoalter/portable_atmospherics.dm @@ -104,7 +104,6 @@ network.update = 1 /obj/machinery/portable_atmospherics/attackby(var/obj/item/weapon/W as obj, var/mob/user as mob) - var/obj/icon = src if ((istype(W, /obj/item/weapon/tank) && !( src.destroyed ))) if (src.holding) return @@ -136,21 +135,8 @@ return else if ((istype(W, /obj/item/device/analyzer)) && Adjacent(user)) - visible_message("\The [user] has used \the [W] on \the [src] \icon[icon]") - if(air_contents) - var/pressure = air_contents.return_pressure() - var/total_moles = air_contents.total_moles - - user << "Results of analysis of \icon[icon]" - if (total_moles>0) - user << "Pressure: [round(pressure,0.1)] kPa" - for(var/g in air_contents.gas) - user << "[gas_data.name[g]]: [round((air_contents.gas[g] / total_moles) * 100)]%" - user << "Temperature: [round(air_contents.temperature-T0C)]°C" - else - user << "Tank is empty!" - else - user << "Tank is empty!" + var/obj/item/device/analyzer/A = W + A.analyze_gases(src, user) return return @@ -163,6 +149,13 @@ var/last_power_draw = 0 var/obj/item/weapon/cell/cell +/obj/machinery/portable_atmospherics/powered/powered() + if(use_power) //using area power + return ..() + if(cell && cell.charge) + return 1 + return 0 + /obj/machinery/portable_atmospherics/powered/attackby(obj/item/I, mob/user) if(istype(I, /obj/item/weapon/cell)) if(cell) @@ -176,6 +169,7 @@ cell = C C.loc = src user.visible_message("[user] opens the panel on [src] and inserts [C].", "You open the panel on [src] and insert [C].") + power_change() return if(istype(I, /obj/item/weapon/screwdriver)) @@ -187,8 +181,8 @@ cell.add_fingerprint(user) cell.loc = src.loc cell = null + power_change() return - ..() /obj/machinery/portable_atmospherics/proc/log_open() diff --git a/code/game/machinery/atmoalter/pump.dm b/code/game/machinery/atmoalter/pump.dm index 8d80e57e782..ad664049fc0 100644 --- a/code/game/machinery/atmoalter/pump.dm +++ b/code/game/machinery/atmoalter/pump.dm @@ -102,6 +102,7 @@ //ran out of charge if (!cell.charge) + power_change() update_icon() src.updateDialog() diff --git a/code/game/machinery/atmoalter/scrubber.dm b/code/game/machinery/atmoalter/scrubber.dm index f705a62ae23..457792c9e23 100644 --- a/code/game/machinery/atmoalter/scrubber.dm +++ b/code/game/machinery/atmoalter/scrubber.dm @@ -77,6 +77,7 @@ //ran out of charge if (!cell.charge) + power_change() update_icon() //src.update_icon() @@ -147,7 +148,6 @@ volume = 50000 volume_rate = 5000 - chan use_power = 1 idle_power_usage = 500 //internal circuitry, friction losses and stuff active_power_usage = 100000 //100 kW ~ 135 HP diff --git a/code/game/machinery/autolathe_datums.dm b/code/game/machinery/autolathe_datums.dm index ca56b4bf78b..81f921e0fa5 100644 --- a/code/game/machinery/autolathe_datums.dm +++ b/code/game/machinery/autolathe_datums.dm @@ -332,8 +332,8 @@ category = "Arms and Ammunition" /datum/autolathe/recipe/magazine_c20r - name = "ammunition (12mm)" - path = /obj/item/ammo_magazine/a12mm + name = "ammunition (10mm)" + path = /obj/item/ammo_magazine/a10mm hidden = 1 category = "Arms and Ammunition" diff --git a/code/game/machinery/bees_items.dm b/code/game/machinery/bees_items.dm deleted file mode 100644 index cf9018726c7..00000000000 --- a/code/game/machinery/bees_items.dm +++ /dev/null @@ -1,122 +0,0 @@ - -/obj/item/queen_bee - name = "queen bee packet" - desc = "Place her into an apiary so she can get busy." - icon = 'icons/obj/seeds.dmi' - icon_state = "seed-kudzu" - w_class = 1 - -/obj/item/weapon/bee_net - name = "bee net" - desc = "For catching rogue bees." - icon = 'icons/obj/apiary_bees_etc.dmi' - icon_state = "bee_net" - item_state = "bedsheet" - w_class = 3 - var/caught_bees = 0 - -/obj/item/weapon/bee_net/attack_self(mob/user as mob) - var/turf/T = get_step(get_turf(user), user.dir) - for(var/mob/living/simple_animal/bee/B in T) - if(B.feral < 0) - caught_bees += B.strength - qdel(B) - user.visible_message("\The [user] nets some bees.","You net up some of the becalmed bees.") - else - user.visible_message("\The [user] swings at some bees, they don't seem to like it.","You swing at some bees, they don't seem to like it.") - B.feral = 5 - B.target_mob = user - -/obj/item/weapon/bee_net/verb/empty_bees() - set src in usr - set name = "Empty bee net" - set category = "Object" - var/mob/living/carbon/M - if(iscarbon(usr)) - M = usr - - while(caught_bees > 0) - //release a few super massive swarms - while(caught_bees > 5) - var/mob/living/simple_animal/bee/B = new(src.loc) - B.feral = 5 - B.target_mob = M - B.strength = 6 - B.icon_state = "bees_swarm" - caught_bees -= 6 - - //what's left over - var/mob/living/simple_animal/bee/B = new(src.loc) - B.strength = caught_bees - B.icon_state = "bees[B.strength]" - B.feral = 5 - B.target_mob = M - - caught_bees = 0 - -/obj/item/apiary - name = "moveable apiary" - icon = 'icons/obj/apiary_bees_etc.dmi' - icon_state = "apiary_item" - item_state = "giftbag" - w_class = 5 - -/obj/item/beezeez - name = "bottle of BeezEez" - icon = 'icons/obj/chemical.dmi' - icon_state = "bottle17" - New() - src.pixel_x = rand(-5.0, 5) - src.pixel_y = rand(-5.0, 5) - -/obj/item/weapon/reagent_containers/food/snacks/honeycomb - name = "honeycomb" - icon_state = "honeycomb" - desc = "Dripping with sugary sweetness." - - New() - ..() - -/obj/item/weapon/reagent_containers/food/snacks/honeycomb/New() - ..() - reagents.add_reagent("honey",10) - reagents.add_reagent("nutriment", 0.5) - reagents.add_reagent("sugar", 2) - bitesize = 2 - -/datum/reagent/honey - name = "Honey" - id = "honey" - description = "A golden yellow syrup, loaded with sugary sweetness." - color = "#FFFF00" - -/obj/item/weapon/book/manual/hydroponics_beekeeping - name = "The Ins and Outs of Apiculture - A Precise Art" - icon_state ="bookHydroponicsBees" - author = "Beekeeper Dave" - title = "The Ins and Outs of Apiculture - A Precise Art" - dat = {" - - - - -

Raising Bees

- - Bees are loving but fickle creatures. Don't mess with their hive and stay away from any clusters of them, and you'll avoid their ire. - Sometimes, you'll need to dig around in there for those delicious sweeties though - in that case make sure you wear sealed protection gear - and carry an extinguisher or smoker with you - any bees chasing you, once calmed down, can thusly be netted and returned safely to the hive. - BeezEez is a cure-all panacea for them, but use it too much and the hive may grow to apocalyptic proportions. Other than that, bees are excellent pets - for all the family and are excellent caretakers of one's garden: having a hive or two around will aid in the longevity and growth rate of plants, - and aid them in fighting off poisons and disease. - - - - "} diff --git a/code/game/machinery/bots/mulebot.dm b/code/game/machinery/bots/mulebot.dm index 5ba75ab41a9..e6fcb92230f 100644 --- a/code/game/machinery/bots/mulebot.dm +++ b/code/game/machinery/bots/mulebot.dm @@ -712,10 +712,6 @@ M.lying = 1 ..() -/obj/machinery/bot/mulebot/alter_health() - return get_turf(src) - - // called from mob/living/carbon/human/Crossed() // when mulebot is in the same loc /obj/machinery/bot/mulebot/proc/RunOver(var/mob/living/carbon/human/H) diff --git a/code/game/machinery/computer/Operating.dm b/code/game/machinery/computer/Operating.dm index 3f38059618e..8427a084185 100644 --- a/code/game/machinery/computer/Operating.dm +++ b/code/game/machinery/computer/Operating.dm @@ -4,9 +4,9 @@ name = "patient monitoring console" density = 1 anchored = 1.0 - icon_state = "operating" - light_color = "#315ab4" - circuit = "/obj/item/weapon/circuitboard/operating" + icon_keyboard = "med_key" + icon_screen = "crew" + circuit = /obj/item/weapon/circuitboard/operating var/mob/living/carbon/human/victim = null var/obj/machinery/optable/table = null diff --git a/code/game/machinery/computer/RCON_Console.dm b/code/game/machinery/computer/RCON_Console.dm index 17d0552779a..0aeb3eab80f 100644 --- a/code/game/machinery/computer/RCON_Console.dm +++ b/code/game/machinery/computer/RCON_Console.dm @@ -7,8 +7,8 @@ /obj/machinery/computer/rcon name = "\improper RCON console" desc = "Console used to remotely control machinery on the station." - icon = 'icons/obj/computer.dmi' - icon_state = "ai-fixer" + icon_keyboard = "power_key" + icon_screen = "power_screen" light_color = "#a97faa" circuit = /obj/item/weapon/circuitboard/rcon_console req_one_access = list(access_engine) @@ -19,6 +19,11 @@ ..() rcon = new(src) +/obj/machinery/computer/rcon/Destroy() + qdel(rcon) + rcon = null + ..() + // Proc: attack_hand() // Parameters: 1 (user - Person which clicked this computer) // Description: Opens UI of this machine. @@ -31,3 +36,8 @@ // Description: Uses dark magic (NanoUI) to render this machine's UI /obj/machinery/computer/rcon/ui_interact(mob/user, ui_key = "rcon", var/datum/nanoui/ui = null, var/force_open = 1) rcon.ui_interact(user, ui_key, ui, force_open) + +/obj/machinery/computer/rcon/update_icon() + ..() + if(!(stat & (NOPOWER|BROKEN))) + overlays += image('icons/obj/computer.dmi', "ai-fixer-empty", overlay_layer) diff --git a/code/game/machinery/computer/aifixer.dm b/code/game/machinery/computer/aifixer.dm index 133a77cd68f..e6577f30970 100644 --- a/code/game/machinery/computer/aifixer.dm +++ b/code/game/machinery/computer/aifixer.dm @@ -1,7 +1,8 @@ /obj/machinery/computer/aifixer name = "\improper AI system integrity restorer" icon = 'icons/obj/computer.dmi' - icon_state = "ai-fixer" + icon_keyboard = "rd_key" + icon_screen = "ai-fixer" light_color = "#a97faa" circuit = /obj/item/weapon/circuitboard/aifixer req_one_access = list(access_robotics, access_heads) @@ -128,16 +129,13 @@ /obj/machinery/computer/aifixer/update_icon() ..() - - overlays.Cut() - if((stat & BROKEN) || (stat & NOPOWER)) return if(occupant) if(occupant.stat) - overlays += image('icons/obj/computer.dmi', "ai-fixer-404") + overlays += image('icons/obj/computer.dmi', "ai-fixer-404", overlay_layer) else - overlays += image('icons/obj/computer.dmi', "ai-fixer-full") + overlays += image('icons/obj/computer.dmi', "ai-fixer-full", overlay_layer) else - overlays += image('icons/obj/computer.dmi', "ai-fixer-empty") + overlays += image('icons/obj/computer.dmi', "ai-fixer-empty", overlay_layer) diff --git a/code/game/machinery/computer/arcade.dm b/code/game/machinery/computer/arcade.dm index f5798737018..9ead672048a 100644 --- a/code/game/machinery/computer/arcade.dm +++ b/code/game/machinery/computer/arcade.dm @@ -3,7 +3,9 @@ desc = "Does not support pinball." icon = 'icons/obj/computer.dmi' icon_state = "arcade" - circuit = "/obj/item/weapon/circuitboard/arcade" + icon_keyboard = null + icon_screen = "invaders" + circuit = /obj/item/weapon/circuitboard/arcade var/enemy_name = "Space Villian" var/temp = "Winners Don't Use Spacedrugs" //Temporary message, for attack messages, etc var/player_hp = 30 //Player health/attack points diff --git a/code/game/machinery/computer/atmos_alert.dm b/code/game/machinery/computer/atmos_alert.dm index 640eb9c4d26..f4b06aff1c1 100644 --- a/code/game/machinery/computer/atmos_alert.dm +++ b/code/game/machinery/computer/atmos_alert.dm @@ -7,8 +7,9 @@ var/global/list/minor_air_alarms = list() /obj/machinery/computer/atmos_alert name = "atmospheric alert computer" desc = "Used to access the station's atmospheric sensors." - circuit = "/obj/item/weapon/circuitboard/atmos_alert" - icon_state = "alert:0" + circuit = /obj/item/weapon/circuitboard/atmos_alert + icon_keyboard = "atmos_key" + icon_screen = "alert:0" light_color = "#e6ffff" /obj/machinery/computer/atmos_alert/New() @@ -44,19 +45,17 @@ var/global/list/minor_air_alarms = list() ui.set_auto_update(1) /obj/machinery/computer/atmos_alert/update_icon() - ..() - if(stat & (NOPOWER|BROKEN)) - return - var/list/alarms = atmosphere_alarm.major_alarms() - if(alarms.len) - icon_state = "alert:2" - else - alarms = atmosphere_alarm.minor_alarms() + if(!(stat & (NOPOWER|BROKEN))) + var/list/alarms = atmosphere_alarm.major_alarms() if(alarms.len) - icon_state = "alert:1" + icon_screen = "alert:2" else - icon_state = initial(icon_state) - return + alarms = atmosphere_alarm.minor_alarms() + if(alarms.len) + icon_screen = "alert:1" + else + icon_screen = initial(icon_screen) + ..() /obj/machinery/computer/atmos_alert/Topic(href, href_list) if(..()) diff --git a/code/game/machinery/computer/atmos_control.dm b/code/game/machinery/computer/atmos_control.dm index c11108b4907..5f285f6d45e 100644 --- a/code/game/machinery/computer/atmos_control.dm +++ b/code/game/machinery/computer/atmos_control.dm @@ -5,11 +5,12 @@ /obj/machinery/computer/atmoscontrol name = "\improper Central Atmospherics Computer" icon = 'icons/obj/computer.dmi' - icon_state = "computer_generic" + icon_keyboard = "generic_key" + icon_screen = "comm_logs" light_color = "#00b000" density = 1 anchored = 1.0 - circuit = "/obj/item/weapon/circuitboard/atmoscontrol" + circuit = /obj/item/weapon/circuitboard/atmoscontrol req_access = list(access_ce) var/list/monitored_alarm_ids = null var/datum/nano_module/atmos_control/atmos_control @@ -20,7 +21,8 @@ /obj/machinery/computer/atmoscontrol/laptop name = "Atmospherics Laptop" desc = "Cheap Nanotrasen Laptop." - icon_state = "medlaptop" + icon_state = "laptop" + icon_keyboard = "laptop_key" density = 0 /obj/machinery/computer/atmoscontrol/attack_ai(var/mob/user as mob) diff --git a/code/game/machinery/computer/camera.dm b/code/game/machinery/computer/camera.dm index 9c90b5407b9..8d85a63224c 100644 --- a/code/game/machinery/computer/camera.dm +++ b/code/game/machinery/computer/camera.dm @@ -8,7 +8,8 @@ /obj/machinery/computer/security name = "security camera monitor" desc = "Used to access the various cameras on the station." - icon_state = "cameras" + icon_keyboard = "security_key" + icon_screen = "cameras" light_color = "#a91515" var/obj/machinery/camera/current = null var/last_pic = 1.0 @@ -71,7 +72,7 @@ ui.add_template("mapContent", "sec_camera_map_content.tmpl") // adding a template with the key "mapHeader" replaces the map header content ui.add_template("mapHeader", "sec_camera_map_header.tmpl") - + ui.set_initial_data(data) ui.open() ui.set_auto_update(1) @@ -201,23 +202,19 @@ /obj/machinery/computer/security/telescreen name = "Telescreen" desc = "Used for watching an empty arena." - icon = 'icons/obj/stationobjs.dmi' - icon_state = "telescreen" + icon_state = "wallframe" + icon_keyboard = null + icon_screen = null + light_range_on = 0 network = list("thunder") density = 0 circuit = null -/obj/machinery/computer/security/telescreen/update_icon() - icon_state = initial(icon_state) - if(stat & BROKEN) - icon_state += "b" - return - /obj/machinery/computer/security/telescreen/entertainment name = "entertainment monitor" desc = "Damn, why do they never have anything interesting on these things?" icon = 'icons/obj/status_display.dmi' - icon_state = "entertainment" + icon_screen = "entertainment" light_color = "#FFEEDB" light_range_on = 2 circuit = null @@ -225,7 +222,9 @@ /obj/machinery/computer/security/wooden_tv name = "security camera monitor" desc = "An old TV hooked into the stations camera network." - icon_state = "security_det" + icon_state = "television" + icon_keyboard = null + icon_screen = "detective_tv" circuit = null light_color = "#3848B3" light_power_on = 0.5 @@ -233,7 +232,8 @@ /obj/machinery/computer/security/mining name = "outpost camera monitor" desc = "Used to access the various cameras on the outpost." - icon_state = "miningcameras" + icon_keyboard = "mining_key" + icon_screen = "mining" network = list("MINE") circuit = /obj/item/weapon/circuitboard/security/mining light_color = "#F9BBFC" @@ -241,7 +241,8 @@ /obj/machinery/computer/security/engineering name = "engineering camera monitor" desc = "Used to monitor fires and breaches." - icon_state = "engineeringcameras" + icon_keyboard = "power_key" + icon_screen = "engie_cams" circuit = /obj/item/weapon/circuitboard/security/engineering light_color = "#FAC54B" diff --git a/code/game/machinery/computer/card.dm b/code/game/machinery/computer/card.dm index 092307e1b4c..e39c1eebe60 100644 --- a/code/game/machinery/computer/card.dm +++ b/code/game/machinery/computer/card.dm @@ -3,10 +3,11 @@ /obj/machinery/computer/card name = "\improper ID card modification console" desc = "Terminal for programming NanoTrasen employee ID cards to access parts of the station." - icon_state = "id" + icon_keyboard = "id_key" + icon_screen = "id" light_color = "#0099ff" req_access = list(access_change_ids) - circuit = "/obj/item/weapon/circuitboard/card" + circuit = /obj/item/weapon/circuitboard/card var/obj/item/weapon/card/id/scan = null var/obj/item/weapon/card/id/modify = null var/mode = 0.0 @@ -284,7 +285,7 @@ /obj/machinery/computer/card/centcom name = "\improper CentCom ID card modification console" - circuit = "/obj/item/weapon/circuitboard/card/centcom" + circuit = /obj/item/weapon/circuitboard/card/centcom req_access = list(access_cent_captain) diff --git a/code/game/machinery/computer/cloning.dm b/code/game/machinery/computer/cloning.dm index 6a274e4db40..857832d2f59 100644 --- a/code/game/machinery/computer/cloning.dm +++ b/code/game/machinery/computer/cloning.dm @@ -1,9 +1,10 @@ /obj/machinery/computer/cloning name = "cloning control console" icon = 'icons/obj/computer.dmi' - icon_state = "dna" + icon_keyboard = "med_key" + icon_screen = "dna" light_color = "#315ab4" - circuit = "/obj/item/weapon/circuitboard/cloning" + circuit = /obj/item/weapon/circuitboard/cloning req_access = list(access_heads) //Only used for record deletion right now. var/obj/machinery/dna_scannernew/scanner = null //Linked scanner. For scanning. var/list/pods = list() //Linked cloning pods. @@ -408,15 +409,3 @@ selected_record = R break return selected_record - -/obj/machinery/computer/cloning/update_icon() - - if(stat & BROKEN) - icon_state = "commb" - else - if(stat & NOPOWER) - src.icon_state = "c_unpowered" - stat |= NOPOWER - else - icon_state = initial(icon_state) - stat &= ~NOPOWER diff --git a/code/game/machinery/computer/communications.dm b/code/game/machinery/computer/communications.dm index 8a8d32a6712..360a986afa8 100644 --- a/code/game/machinery/computer/communications.dm +++ b/code/game/machinery/computer/communications.dm @@ -4,10 +4,11 @@ /obj/machinery/computer/communications name = "command and communications console" desc = "Used to command and control the station. Can relay long-range communications." - icon_state = "comm" + icon_keyboard = "tech_key" + icon_screen = "comm" light_color = "#0099ff" req_access = list(access_heads) - circuit = "/obj/item/weapon/circuitboard/communications" + circuit = /obj/item/weapon/circuitboard/communications var/prints_intercept = 1 var/authenticated = 0 var/list/messagetitle = list() diff --git a/code/game/machinery/computer/computer.dm b/code/game/machinery/computer/computer.dm index 74edf74ea9b..152b5c85e53 100644 --- a/code/game/machinery/computer/computer.dm +++ b/code/game/machinery/computer/computer.dm @@ -1,6 +1,7 @@ /obj/machinery/computer name = "computer" icon = 'icons/obj/computer.dmi' + icon_state = "computer" density = 1 anchored = 1.0 use_power = 1 @@ -9,11 +10,19 @@ var/circuit = null //The path to the circuit board type. If circuit==null, the computer can't be disassembled. var/processing = 0 - var/light_range_on = 3 + var/icon_keyboard = "generic_key" + var/icon_screen = "generic" + var/light_range_on = 2 var/light_power_on = 1 + var/overlay_layer + +/obj/machinery/computer/New() + overlay_layer = layer + ..() /obj/machinery/computer/initialize() power_change() + update_icon() /obj/machinery/computer/process() if(stat & (NOPOWER|BROKEN)) @@ -63,18 +72,22 @@ density = 0 /obj/machinery/computer/update_icon() - ..() - icon_state = initial(icon_state) - // Broken + overlays.Cut() + if(stat & NOPOWER) + set_light(0) + if(icon_keyboard) + overlays += image(icon,"[icon_keyboard]_off", overlay_layer) + return + else + set_light(light_range_on, light_power_on) + if(stat & BROKEN) - icon_state += "b" - - // Powered - else if(stat & NOPOWER) - icon_state = initial(icon_state) - icon_state += "0" - + overlays += image(icon,"[icon_state]_broken", overlay_layer) + else + overlays += image(icon,icon_screen, overlay_layer) + if(icon_keyboard) + overlays += image(icon, icon_keyboard, overlay_layer) /obj/machinery/computer/power_change() ..() diff --git a/code/game/machinery/computer/crew.dm b/code/game/machinery/computer/crew.dm index 6df502891f2..0c6c33928a6 100644 --- a/code/game/machinery/computer/crew.dm +++ b/code/game/machinery/computer/crew.dm @@ -1,24 +1,27 @@ /obj/machinery/computer/crew name = "crew monitoring computer" desc = "Used to monitor active health sensors built into most of the crew's uniforms." - icon_state = "crew" + icon_keyboard = "med_key" + icon_screen = "crew" light_color = "#315ab4" use_power = 1 idle_power_usage = 250 active_power_usage = 500 - circuit = "/obj/item/weapon/circuitboard/crew" + circuit = /obj/item/weapon/circuitboard/crew var/datum/nano_module/crew_monitor/crew_monitor /obj/machinery/computer/crew/New() crew_monitor = new(src) ..() +/obj/machinery/computer/crew/Destroy() + qdel(crew_monitor) + crew_monitor = null + ..() /obj/machinery/computer/crew/attack_ai(mob/user) - attack_hand(user) ui_interact(user) - /obj/machinery/computer/crew/attack_hand(mob/user) add_fingerprint(user) if(stat & (BROKEN|NOPOWER)) @@ -28,17 +31,5 @@ /obj/machinery/computer/crew/ui_interact(mob/user, ui_key = "main", var/datum/nanoui/ui = null, var/force_open = 1) crew_monitor.ui_interact(user, ui_key, ui, force_open) -/obj/machinery/computer/crew/update_icon() - - if(stat & BROKEN) - icon_state = "crewb" - else - if(stat & NOPOWER) - src.icon_state = "c_unpowered" - stat |= NOPOWER - else - icon_state = initial(icon_state) - stat &= ~NOPOWER - /obj/machinery/computer/crew/interact(mob/user) crew_monitor.ui_interact(user) diff --git a/code/game/machinery/computer/guestpass.dm b/code/game/machinery/computer/guestpass.dm index dc28c5c5dc9..7258fc543be 100644 --- a/code/game/machinery/computer/guestpass.dm +++ b/code/game/machinery/computer/guestpass.dm @@ -43,9 +43,10 @@ /obj/machinery/computer/guestpass name = "guest pass terminal" icon_state = "guest" + icon_keyboard = null + icon_screen = "pass" density = 0 - var/obj/item/weapon/card/id/giver var/list/accesses = list() var/giv_name = "NOT SPECIFIED" diff --git a/code/game/machinery/computer/law.dm b/code/game/machinery/computer/law.dm index a64fca5d4a6..abbf65b44ff 100644 --- a/code/game/machinery/computer/law.dm +++ b/code/game/machinery/computer/law.dm @@ -3,8 +3,9 @@ /obj/machinery/computer/aiupload name = "\improper AI upload console" desc = "Used to upload laws to the AI." - icon_state = "command" - circuit = "/obj/item/weapon/circuitboard/aiupload" + icon_keyboard = "rd_key" + icon_screen = "command" + circuit = /obj/item/weapon/circuitboard/aiupload var/mob/living/silicon/ai/current = null var/opened = 0 @@ -50,7 +51,7 @@ else usr << "[src.current.name] selected for law changes." return - + attack_ghost(user as mob) return 1 @@ -58,8 +59,9 @@ /obj/machinery/computer/borgupload name = "cyborg upload console" desc = "Used to upload laws to Cyborgs." - icon_state = "command" - circuit = "/obj/item/weapon/circuitboard/borgupload" + icon_keyboard = "rd_key" + icon_screen = "command" + circuit = /obj/item/weapon/circuitboard/borgupload var/mob/living/silicon/robot/current = null diff --git a/code/game/machinery/computer/lockdown.dm b/code/game/machinery/computer/lockdown.dm deleted file mode 100644 index fd702e55106..00000000000 --- a/code/game/machinery/computer/lockdown.dm +++ /dev/null @@ -1,153 +0,0 @@ -//this computer displays status and remotely activates multiple shutters / blast doors -//todo: lock / electrify specified area doors? might be a bit gamebreaking - -/obj/machinery/computer/lockdown - //for reference - /*name = "lockdown control" - desc = "Used to control blast doors." - icon_state = "lockdown" - circuit = "/obj/item/weapon/circuitboard/lockdown" - var/connected_doors - var/department*/ - var/list/displayedNetworks - - New() - ..() - connected_doors = new/list() - displayedNetworks = new/list() - //only load blast doors for map-defined departments for the moment - //door networks are hardcoded here. - switch(department) - if("Engineering") - connected_doors.Add("Engineering") - //Antiqua Engineering - connected_doors.Add("Reactor core") - connected_doors.Add("Control Room") - connected_doors.Add("Vent Seal") - connected_doors.Add("Rig Storage") - connected_doors.Add("Fore Port Shutters") - connected_doors.Add("Fore Starboard Shutters") - connected_doors.Add("Electrical Storage Shutters") - connected_doors.Add("Locker Room Shutters") - connected_doors.Add("Breakroom Shutters") - connected_doors.Add("Observation Shutters") - //exodus engineering - if("Medbay") - //Exodus Medbay - connected_doors.Add("Genetics Outer Shutters") - connected_doors.Add("Genetics Inner Shutters") - connected_doors.Add("Chemistry Outer Shutters") - connected_doors.Add("Observation Shutters") - connected_doors.Add("Patient Room 1 Shutters") - connected_doors.Add("Patient Room 2 Shutters") - connected_doors.Add("Patient Room 3 Shutters") - - for(var/net in connected_doors) - connected_doors[net] = new/list() - - //loop through the world, grabbing all the relevant doors - spawn(1) - ConnectDoors() - - proc/ConnectDoors() - for(var/list/L in connected_doors) - for(var/item in L) - L.Remove(item) - // - for(var/obj/machinery/door/poddoor/D in world) - if(D.network in connected_doors) - var/list/L = connected_doors[D.network] - L.Add(D) - - attack_ai(mob/user) - attack_hand(user) - - attack_hand(mob/user) - add_fingerprint(user) - if(stat & (BROKEN|NOPOWER)) - return - - if ( (get_dist(src, user) > 1 ) || (stat & (BROKEN|NOPOWER)) ) - if (!istype(user, /mob/living/silicon)) - user.machine = null - user << browse(null, "window=lockdown") - return - - var/t = "Lockdown Control
" - t += "Refresh
" - t += "Close
" - t += "" - var/empty = 1 - for(var/curNetId in connected_doors) - var/list/L = connected_doors[curNetId] - if(!L || L.len == 0) - continue - empty = 0 - t += "" - if(curNetId in displayedNetworks) - t += "" - t += "" - t += "" - - for(var/obj/machinery/door/poddoor/D in connected_doors[curNetId]) - t += "" - t += "" - - if(istype(D,/obj/machinery/door/poddoor/shutters)) - t += "" - else - t += "" - t += "" - t += "" - else - t += "" - t += "
\[-\] " + curNetId + "Open all / Close all
[D.id]Shutter ([D.density ? "Closed" : "Open"])Blast door ([D.density ? "Closed" : "Open"])Toggle
\[+\] " + curNetId + "
" - if(empty) - t += "No networks connected.
" - t += "Refresh
" - t += "Close
" - user << browse(t, "window=lockdown;size=550x600") - onclose(user, "lockdown") - - Topic(href, href_list) - if(..()) return 1 - - if( href_list["close"] ) - usr << browse(null, "window=lockdown") - usr.machine = null - - if( href_list["show_net"] ) - displayedNetworks.Add(href_list["show_net"]) - updateDialog() - - if( href_list["hide_net"] ) - if(href_list["hide_net"] in displayedNetworks) - displayedNetworks.Remove(href_list["hide_net"]) - updateDialog() - - if( href_list["toggle_id"] ) - var/idTag = href_list["toggle_id"] - for(var/net in connected_doors) - for(var/obj/machinery/door/poddoor/D in connected_doors[net]) - if(D.id == idTag) - if(D.density) - D.open() - else - D.close() - break - - if( href_list["open_net"] ) - var/netTag = href_list["open_net"] - for(var/obj/machinery/door/poddoor/D in connected_doors[netTag]) - if(D.density) //for some reason, there's no var saying whether the door is open or not >.> - spawn(0) - D.open() - - if( href_list["close_net"] ) - var/netTag = href_list["close_net"] - for(var/obj/machinery/door/poddoor/D in connected_doors[netTag]) - if(!D.density) - spawn(0) - D.close() - - src.updateDialog() diff --git a/code/game/machinery/computer/medical.dm b/code/game/machinery/computer/medical.dm index 65322b741da..92d9e9a83f6 100644 --- a/code/game/machinery/computer/medical.dm +++ b/code/game/machinery/computer/medical.dm @@ -3,10 +3,11 @@ /obj/machinery/computer/med_data//TODO:SANITY name = "medical records console" desc = "Used to view, edit and maintain medical records." - icon_state = "medcomp" + icon_keyboard = "med_key" + icon_screen = "medcomp" light_color = "#315ab4" req_one_access = list(access_medical, access_forensics_lockers) - circuit = "/obj/item/weapon/circuitboard/med_data" + circuit = /obj/item/weapon/circuitboard/med_data var/obj/item/weapon/card/id/scan = null var/authenticated = null var/rank = null @@ -552,4 +553,6 @@ /obj/machinery/computer/med_data/laptop name = "Medical Laptop" desc = "Cheap Nanotrasen Laptop." - icon_state = "medlaptop" + icon_state = "laptop" + icon_keyboard = "laptop_key" + icon_screen = "medlaptop" diff --git a/code/game/machinery/computer/message.dm b/code/game/machinery/computer/message.dm index 779e2a14607..a94da0ff26d 100644 --- a/code/game/machinery/computer/message.dm +++ b/code/game/machinery/computer/message.dm @@ -3,11 +3,10 @@ /obj/machinery/computer/message_monitor name = "messaging monitor console" desc = "Used to access and maintain data on messaging servers. Allows you to view PDA and request console messages." - icon_state = "comm_logs" + icon_screen = "comm_logs" light_color = "#00b000" - var/hack_icon = "comm_logsc" - var/normal_icon = "comm_logs" - circuit = "/obj/item/weapon/circuitboard/message_monitor" + var/hack_icon = "error" + circuit = /obj/item/weapon/circuitboard/message_monitor //Server linked to. var/obj/machinery/message_server/linkedServer = null //Sparks effect - For emag @@ -50,7 +49,6 @@ // It'll take more time if there's more characters in the password.. if(!emag && operable()) if(!isnull(src.linkedServer)) - icon_state = hack_icon // An error screen I made in the computers.dmi emag = 1 screen = 2 spark_system.set_up(5, 0, src) @@ -61,18 +59,17 @@ MK.info += "

£%@%(*$%&(£&?*(%&£/{}" spawn(100*length(src.linkedServer.decryptkey)) UnmagConsole() message = rebootmsg + update_icon() return 1 else user << "A no server error appears on the screen." /obj/machinery/computer/message_monitor/update_icon() - ..() - if(stat & (NOPOWER|BROKEN)) - return if(emag || hacking) - icon_state = hack_icon + icon_screen = hack_icon else - icon_state = normal_icon + icon_screen = initial(icon_screen) + ..() /obj/machinery/computer/message_monitor/initialize() //Is the server isn't linked to a server, and there's a server available, default it to the first one in the list. @@ -271,12 +268,12 @@ var/currentKey = src.linkedServer.decryptkey user << "Brute-force completed! The key is '[currentKey]'." src.hacking = 0 - src.icon_state = normal_icon + update_icon() src.screen = 0 // Return the screen back to normal /obj/machinery/computer/message_monitor/proc/UnmagConsole() - src.icon_state = normal_icon src.emag = 0 + update_icon() /obj/machinery/computer/message_monitor/proc/ResetMessage() customsender = "System Administrator" @@ -368,7 +365,7 @@ if((istype(usr, /mob/living/silicon/ai) || istype(usr, /mob/living/silicon/robot)) && (usr.mind.special_role && usr.mind.original == usr)) src.hacking = 1 src.screen = 2 - src.icon_state = hack_icon + update_icon() //Time it takes to bruteforce is dependant on the password length. spawn(100*length(src.linkedServer.decryptkey)) if(src && src.linkedServer && usr) diff --git a/code/game/machinery/computer/pod.dm b/code/game/machinery/computer/pod.dm index 2acf157577f..8db5ebd1b8b 100644 --- a/code/game/machinery/computer/pod.dm +++ b/code/game/machinery/computer/pod.dm @@ -3,7 +3,7 @@ /obj/machinery/computer/pod name = "pod launch control console" desc = "A control console for launching pods. Some people prefer firing Mechas." - icon_state = "computer_generic" + icon_screen = "mass_driver" light_color = "#00b000" circuit = /obj/item/weapon/circuitboard/pod var/id = 1.0 @@ -194,7 +194,9 @@ /obj/machinery/computer/pod/old - icon_state = "old" + icon_state = "oldcomp" + icon_keyboard = null + icon_screen = "library" name = "DoorMex Control Computer" title = "Door Controls" diff --git a/code/game/machinery/computer/prisoner.dm b/code/game/machinery/computer/prisoner.dm index af0105ca5b7..1551e0df6ee 100644 --- a/code/game/machinery/computer/prisoner.dm +++ b/code/game/machinery/computer/prisoner.dm @@ -3,10 +3,11 @@ /obj/machinery/computer/prisoner name = "prisoner management console" icon = 'icons/obj/computer.dmi' - icon_state = "explosive" + icon_keyboard = "security_key" + icon_screen = "explosive" light_color = "#a91515" req_access = list(access_armory) - circuit = "/obj/item/weapon/circuitboard/prisoner" + circuit = /obj/item/weapon/circuitboard/prisoner var/id = 0.0 var/temp = null var/status = 0 diff --git a/code/game/machinery/computer/prisonshuttle.dm b/code/game/machinery/computer/prisonshuttle.dm index f33e3af8335..c2c45987063 100644 --- a/code/game/machinery/computer/prisonshuttle.dm +++ b/code/game/machinery/computer/prisonshuttle.dm @@ -13,10 +13,11 @@ var/prison_shuttle_timeleft = 0 /obj/machinery/computer/prison_shuttle name = "prison shuttle control console" icon = 'icons/obj/computer.dmi' - icon_state = "shuttle" + icon_keyboard = "security_key" + icon_screen = "syndishuttle" light_color = "#00ffff" req_access = list(access_security) - circuit = "/obj/item/weapon/circuitboard/prison_shuttle" + circuit = /obj/item/weapon/circuitboard/prison_shuttle var/temp = null var/hacked = 0 var/allowedtocall = 0 diff --git a/code/game/machinery/computer/robot.dm b/code/game/machinery/computer/robot.dm index 3f6f8b54bcc..5c09c08e212 100644 --- a/code/game/machinery/computer/robot.dm +++ b/code/game/machinery/computer/robot.dm @@ -2,10 +2,11 @@ name = "robotics control console" desc = "Used to remotely lockdown or detonate linked cyborgs." icon = 'icons/obj/computer.dmi' - icon_state = "robot" + icon_keyboard = "tech_key" + icon_screen = "robot" light_color = "#a97faa" req_access = list(access_robotics) - circuit = "/obj/item/weapon/circuitboard/robotics" + circuit = /obj/item/weapon/circuitboard/robotics var/safety = 1 diff --git a/code/game/machinery/computer/security.dm b/code/game/machinery/computer/security.dm index 25894ae91ee..1f9f13cc4c9 100644 --- a/code/game/machinery/computer/security.dm +++ b/code/game/machinery/computer/security.dm @@ -3,10 +3,11 @@ /obj/machinery/computer/secure_data//TODO:SANITY name = "security records console" desc = "Used to view, edit and maintain security records" - icon_state = "security" + icon_keyboard = "security_key" + icon_screen = "security" light_color = "#a91515" req_one_access = list(access_security, access_forensics_lockers, access_lawyer) - circuit = "/obj/item/weapon/circuitboard/secure_data" + circuit = /obj/item/weapon/circuitboard/secure_data var/obj/item/weapon/card/id/scan = null var/authenticated = null var/rank = null diff --git a/code/game/machinery/computer/shuttle.dm b/code/game/machinery/computer/shuttle.dm index f89fce4bbe2..18729f2ef65 100644 --- a/code/game/machinery/computer/shuttle.dm +++ b/code/game/machinery/computer/shuttle.dm @@ -1,7 +1,8 @@ /obj/machinery/computer/shuttle name = "Shuttle" desc = "For shuttle control." - icon_state = "shuttle" + icon_keyboard = "tech_key" + icon_screen = "shuttle" light_color = "#00ffff" var/auth_need = 3.0 var/list/authorized = list( ) diff --git a/code/game/machinery/computer/skills.dm b/code/game/machinery/computer/skills.dm index 422e397a0e2..0de14ecbe91 100644 --- a/code/game/machinery/computer/skills.dm +++ b/code/game/machinery/computer/skills.dm @@ -3,10 +3,12 @@ /obj/machinery/computer/skills//TODO:SANITY name = "employment records console" desc = "Used to view, edit and maintain employment records." - icon_state = "medlaptop" + icon_state = "laptop" + icon_keyboard = "laptop_key" + icon_screen = "medlaptop" light_color = "#00b000" req_one_access = list(access_heads) - circuit = "/obj/item/weapon/circuitboard/skills" + circuit = /obj/item/weapon/circuitboard/skills var/obj/item/weapon/card/id/scan = null var/authenticated = null var/rank = null @@ -22,7 +24,6 @@ var/sortBy = "name" var/order = 1 // -1 = Descending - 1 = Ascending - /obj/machinery/computer/skills/attackby(obj/item/O as obj, user as mob) if(istype(O, /obj/item/weapon/card/id) && !scan) usr.drop_item() diff --git a/code/game/machinery/computer/specops_shuttle.dm b/code/game/machinery/computer/specops_shuttle.dm index e48a71b89fd..8ac4f32c9c0 100644 --- a/code/game/machinery/computer/specops_shuttle.dm +++ b/code/game/machinery/computer/specops_shuttle.dm @@ -14,7 +14,8 @@ var/specops_shuttle_timeleft = 0 /obj/machinery/computer/specops_shuttle name = "special operations shuttle control console" icon = 'icons/obj/computer.dmi' - icon_state = "shuttle" + icon_keyboard = "security_key" + icon_screen = "syndishuttle" light_color = "#00ffff" req_access = list(access_cent_specops) // req_access = list(ACCESS_CENT_SPECOPS) diff --git a/code/game/machinery/computer/station_alert.dm b/code/game/machinery/computer/station_alert.dm index ea0952e9f71..22c97a955ac 100644 --- a/code/game/machinery/computer/station_alert.dm +++ b/code/game/machinery/computer/station_alert.dm @@ -2,7 +2,8 @@ /obj/machinery/computer/station_alert name = "Station Alert Console" desc = "Used to access the station's automated alert system." - icon_state = "alert:0" + icon_keyboard = "tech_key" + icon_screen = "alert:0" light_color = "#e6ffff" circuit = /obj/item/weapon/circuitboard/stationalert_engineering var/datum/nano_module/alarm_monitor/alarm_monitor @@ -44,13 +45,10 @@ alarm_monitor.ui_interact(user) /obj/machinery/computer/station_alert/update_icon() + if(!(stat & (BROKEN|NOPOWER))) + var/list/alarms = alarm_monitor.major_alarms() + if(alarms.len) + icon_screen = "alert:2" + else + icon_screen = initial(icon_screen) ..() - if(stat & (BROKEN|NOPOWER)) - return - - var/list/alarms = alarm_monitor.major_alarms() - if(alarms.len) - icon_state = "alert:2" - else - icon_state = initial(icon_state) - return diff --git a/code/game/machinery/computer/supply.dm b/code/game/machinery/computer/supply.dm index 07b4e007a32..a8a4591ee28 100644 --- a/code/game/machinery/computer/supply.dm +++ b/code/game/machinery/computer/supply.dm @@ -1,10 +1,11 @@ /obj/machinery/computer/supplycomp name = "supply control console" icon = 'icons/obj/computer.dmi' - icon_state = "supply" + icon_keyboard = "tech_key" + icon_screen = "supply" light_color = "#b88b2e" req_access = list(access_cargo) - circuit = "/obj/item/weapon/circuitboard/supplycomp" + circuit = /obj/item/weapon/circuitboard/supplycomp var/temp = null var/reqtime = 0 //Cooldown for requisitions - Quarxink var/hacked = 0 @@ -14,8 +15,8 @@ /obj/machinery/computer/ordercomp name = "supply ordering console" icon = 'icons/obj/computer.dmi' - icon_state = "request" - circuit = "/obj/item/weapon/circuitboard/ordercomp" + icon_screen = "request" + circuit = /obj/item/weapon/circuitboard/ordercomp var/temp = null var/reqtime = 0 //Cooldown for requisitions - Quarxink var/last_viewed_group = "categories" diff --git a/code/game/machinery/computer/syndicate_specops_shuttle.dm b/code/game/machinery/computer/syndicate_specops_shuttle.dm index 333584a9213..ce30dbb411a 100644 --- a/code/game/machinery/computer/syndicate_specops_shuttle.dm +++ b/code/game/machinery/computer/syndicate_specops_shuttle.dm @@ -13,7 +13,8 @@ var/syndicate_elite_shuttle_timeleft = 0 /obj/machinery/computer/syndicate_elite_shuttle name = "elite syndicate squad shuttle control console" icon = 'icons/obj/computer.dmi' - icon_state = "syndishuttle" + icon_keyboard = "syndie_key" + icon_screen = "syndishuttle" light_color = "#00ffff" req_access = list(access_cent_specops) var/temp = null diff --git a/code/game/machinery/computer3/computers/camera.dm b/code/game/machinery/computer3/computers/camera.dm index f90b0526ee5..814df454fa7 100644 --- a/code/game/machinery/computer3/computers/camera.dm +++ b/code/game/machinery/computer3/computers/camera.dm @@ -56,7 +56,7 @@ name = "Security Camera Network Main Key" var/title = "Station" var/desc = "Connects to station security cameras." - var/list/networks = list("SS13") + var/networks = list("ALL") // A little workaround as it is not possible to place station_networks here var/screen = "cameras" execute(var/datum/file/source) @@ -76,58 +76,65 @@ return computer.Crash(MISSING_PROGRAM) +/datum/file/camnet_key/New() + for(var/N in networks) + if(N == "ALL") + networks = station_networks + break + return ..() + /datum/file/camnet_key/mining name = "Mining Camera Network Key" title = "mining station" desc = "Connects to mining security cameras." - networks = list("MINE") + networks = list(NETWORK_MINE) screen = "miningcameras" /datum/file/camnet_key/research name = "Research Camera Network Key" title = "research" - networks = list("RD") + networks = list(NETWORK_RESEARCH) /datum/file/camnet_key/bombrange name = "R&D Bomb Range Camera Network Key" title = "bomb range" desc = "Monitors the bomb range." - networks = list("Toxins") + networks = list(NETWORK_RESEARCH) /datum/file/camnet_key/xeno name = "R&D Misc. Research Camera Network Key" title = "special research" - networks = list("Misc") + networks = list(NETWORK_RESEARCH) /datum/file/camnet_key/singulo name = "Singularity Camera Network Key" title = "singularity" - networks = list("Singularity") + networks = list(NETWORK_ENGINE) /datum/file/camnet_key/entertainment name = "Entertainment Channel Encryption Key" title = "entertainment" desc = "Damn, I hope they have /tg/thechannel on here." - networks = list("thunder") + networks = list(NETWORK_THUNDER) screen = "entertainment" /datum/file/camnet_key/creed name = "Special Ops Camera Encryption Key" title = "special ops" desc = "Connects to special ops secure camera feeds." - networks = list("CREED") + networks = list(NETWORK_ERT) /datum/file/camnet_key/prison name = "Prison Camera Network Key" title = "prison" desc = "Monitors the prison." - networks = list("Prison") + networks = list(NETWORK_SECURITY) /datum/file/camnet_key/syndicate name = "Camera Network Key" title = "%!#BUFFER OVERFLOW" desc = "Connects to security cameras." - networks = list("SS13") + networks = list("ALL") hidden_file = 1 diff --git a/code/game/machinery/computer3/computers/law.dm b/code/game/machinery/computer3/computers/law.dm index 40b4bb88497..7d9b47ff0b0 100644 --- a/code/game/machinery/computer3/computers/law.dm +++ b/code/game/machinery/computer3/computers/law.dm @@ -4,7 +4,7 @@ name = "AI Upload" desc = "Used to upload laws to the AI." icon_state = "frame-rnd" - circuit = "/obj/item/part/board/circuit/aiupload" + circuit = /obj/item/weapon/circuitboard/aiupload var/mob/living/silicon/ai/current = null var/opened = 0 @@ -56,7 +56,7 @@ name = "Cyborg Upload" desc = "Used to upload laws to Cyborgs." icon_state = "frame-rnd" - circuit = "/obj/item/part/board/circuit/borgupload" + circuit = /obj/item/weapon/circuitboard/borgupload var/mob/living/silicon/robot/current = null diff --git a/code/game/machinery/computer3/laptop.dm b/code/game/machinery/computer3/laptop.dm index 2e73e771152..48e0c48ff00 100644 --- a/code/game/machinery/computer3/laptop.dm +++ b/code/game/machinery/computer3/laptop.dm @@ -106,12 +106,16 @@ pixel_x = 2 pixel_y = -3 show_keyboard = 0 + active_power_usage = 200 // Stationary consoles we use on station have 300, laptops are probably slightly more power efficient + idle_power_usage = 100 var/obj/item/device/laptop/portable = null New(var/L, var/built = 0) if(!built && !battery) battery = new /obj/item/weapon/cell(src) + battery.maxcharge = 500 + battery.charge = 500 ..(L,built) verb/close_computer() diff --git a/code/game/machinery/computer3/lapvend.dm b/code/game/machinery/computer3/lapvend.dm index 0c038b6c877..416472a31ac 100644 --- a/code/game/machinery/computer3/lapvend.dm +++ b/code/game/machinery/computer3/lapvend.dm @@ -202,11 +202,11 @@ if (network == 3) newlap.spawn_parts += (/obj/item/part/computer/networking/cable) if (power == 1) - qdel(newlap.battery) - newlap.battery = new /obj/item/weapon/cell/high(newlap) + newlap.battery.maxcharge = 1000 + newlap.battery.charge = 1000 if (power == 2) - qdel(newlap.battery) - newlap.battery = new /obj/item/weapon/cell/super(newlap) + newlap.battery.maxcharge = 1750 + newlap.battery.charge = 1750 newlap.spawn_parts() diff --git a/code/game/machinery/cryopod.dm b/code/game/machinery/cryopod.dm index 56b7b241c18..28666ad1f40 100644 --- a/code/game/machinery/cryopod.dm +++ b/code/game/machinery/cryopod.dm @@ -14,7 +14,7 @@ desc = "An interface between crew and the cryogenic storage oversight systems." icon = 'icons/obj/Cryogenic2.dmi' icon_state = "cellconsole" - circuit = "/obj/item/weapon/circuitboard/cryopodcontrol" + circuit = /obj/item/weapon/circuitboard/cryopodcontrol density = 0 interact_offline = 1 var/mode = null @@ -32,7 +32,7 @@ desc = "An interface between crew and the robotic storage systems" icon = 'icons/obj/robot_storage.dmi' icon_state = "console" - circuit = "/obj/item/weapon/circuitboard/robotstoragecontrol" + circuit = /obj/item/weapon/circuitboard/robotstoragecontrol storage_type = "cyborgs" storage_name = "Robotic Storage Control" diff --git a/code/game/machinery/doors/door.dm b/code/game/machinery/doors/door.dm index 13aa4f9ebc5..9075da2a056 100644 --- a/code/game/machinery/doors/door.dm +++ b/code/game/machinery/doors/door.dm @@ -103,6 +103,13 @@ bumpopen(M) return + if(istype(AM, /obj/machinery/bot)) + var/obj/machinery/bot/bot = AM + if(src.check_access(bot.botcard)) + if(density) + open() + return + if(istype(AM, /mob/living/bot)) var/mob/living/bot/bot = AM if(src.check_access(bot.botcard)) @@ -334,7 +341,8 @@ /obj/machinery/door/emp_act(severity) if(prob(20/severity) && (istype(src,/obj/machinery/door/airlock) || istype(src,/obj/machinery/door/window)) ) - open() + spawn(0) + open() ..() diff --git a/code/game/machinery/pipe/construction.dm b/code/game/machinery/pipe/construction.dm index 7c05f76b22e..2ec9a81f0ab 100644 --- a/code/game/machinery/pipe/construction.dm +++ b/code/game/machinery/pipe/construction.dm @@ -463,7 +463,7 @@ Buildable meters var/turf/T = P.loc P.level = T.intact ? 2 : 1 P.initialize() - if (!P) + if (deleted(P)) usr << pipefailtext return 1 P.build_network() @@ -482,7 +482,7 @@ Buildable meters var/turf/T = P.loc P.level = T.intact ? 2 : 1 P.initialize() - if (!P) + if (deleted(P)) usr << pipefailtext return 1 P.build_network() @@ -501,7 +501,7 @@ Buildable meters var/turf/T = P.loc P.level = T.intact ? 2 : 1 P.initialize() - if (!P) + if (deleted(P)) usr << pipefailtext return 1 P.build_network() @@ -520,7 +520,7 @@ Buildable meters var/turf/T = P.loc P.level = T.intact ? 2 : 1 P.initialize() - if (!P) + if (deleted(P)) usr << pipefailtext return 1 P.build_network() @@ -539,7 +539,7 @@ Buildable meters //var/turf/T = P.loc //P.level = T.intact ? 2 : 1 P.initialize() - if (!P) + if (deleted(P)) usr << pipefailtext return 1 P.build_network() @@ -574,7 +574,7 @@ Buildable meters var/turf/T = M.loc M.level = T.intact ? 2 : 1 M.initialize() - if (!M) + if (deleted(M)) usr << pipefailtext return 1 M.build_network() @@ -643,7 +643,7 @@ Buildable meters var/turf/T = M.loc M.level = T.intact ? 2 : 1 M.initialize() - if (!M) + if (deleted(M)) usr << pipefailtext return 1 M.build_network() @@ -722,7 +722,7 @@ Buildable meters //var/turf/T = P.loc //P.level = T.intact ? 2 : 1 P.initialize() - if (!P) + if (deleted(P)) usr << pipefailtext //"There's nothing to connect this pipe to! (with how the pipe code works, at least one end needs to be connected to something, otherwise the game deletes the segment)" return 1 P.build_network() @@ -905,7 +905,7 @@ Buildable meters var/turf/T = P.loc P.level = T.intact ? 2 : 1 P.initialize() - if (!P) + if (deleted(P)) usr << pipefailtext return 1 P.build_network() diff --git a/code/game/machinery/portable_turret.dm b/code/game/machinery/portable_turret.dm index c7e5c3f404f..74d3a4c52f3 100644 --- a/code/game/machinery/portable_turret.dm +++ b/code/game/machinery/portable_turret.dm @@ -399,15 +399,16 @@ var/list/turret_icons emagged = 1 enabled=0 - sleep(rand(60,600)) - if(!enabled) - enabled=1 + spawn(rand(60,600)) + if(!enabled) + enabled=1 ..() /obj/machinery/porta_turret/ex_act(severity) switch (severity) if (1) + del(src) qdel(src) if (2) if (prob(25)) diff --git a/code/game/machinery/spaceheater.dm b/code/game/machinery/spaceheater.dm index e8823733594..ad88ce7feae 100644 --- a/code/game/machinery/spaceheater.dm +++ b/code/game/machinery/spaceheater.dm @@ -32,6 +32,11 @@ user << "The charge meter reads [cell ? round(cell.percent(),1) : 0]%" return +/obj/machinery/space_heater/powered() + if(cell && cell.charge) + return 1 + return 0 + /obj/machinery/space_heater/emp_act(severity) if(stat & (BROKEN|NOPOWER)) ..(severity) @@ -56,6 +61,7 @@ C.add_fingerprint(usr) user.visible_message("[user] inserts a power cell into [src].", "You insert the power cell into [src].") + power_change() else user << "The hatch must be open to insert a power cell." return @@ -125,6 +131,7 @@ usr.put_in_hands(cell) cell.add_fingerprint(usr) cell = null + power_change() if("cellinstall") @@ -135,7 +142,7 @@ cell = C C.loc = src C.add_fingerprint(usr) - + power_change() usr.visible_message("[usr] inserts \the [C] into \the [src].", "You insert \the [C] into \the [src].") updateDialog() @@ -176,4 +183,5 @@ env.merge(removed) else on = 0 + power_change() update_icon() diff --git a/code/game/machinery/syndicatebeacon.dm b/code/game/machinery/syndicatebeacon.dm index fb4a03d21f6..99d713cccba 100644 --- a/code/game/machinery/syndicatebeacon.dm +++ b/code/game/machinery/syndicatebeacon.dm @@ -71,7 +71,7 @@ /obj/machinery/syndicate_beacon/proc/selfdestruct() selfdestructing = 1 - spawn() explosion(src.loc, rand(3,8), rand(1,3), 1, 10) + spawn() explosion(src.loc, 1, rand(1,3), rand(3,8), 10) //////////////////////////////////////// //Singularity beacon diff --git a/code/game/machinery/telecomms/telecomunications.dm b/code/game/machinery/telecomms/telecomunications.dm index 99c18479612..d1ac6df4c5a 100644 --- a/code/game/machinery/telecomms/telecomunications.dm +++ b/code/game/machinery/telecomms/telecomunications.dm @@ -47,11 +47,13 @@ var/global/list/obj/machinery/telecomms/telecomms_list = list() signal.data["slow"] += rand(0, round((100-integrity))) // apply some lag based on integrity + /* + // Edit by Atlantis: Commented out as emergency fix due to causing extreme delays in communications. // Apply some lag based on traffic rates var/netlag = round(traffic / 50) if(netlag > signal.data["slow"]) signal.data["slow"] = netlag - + */ // Loop through all linked machines and send the signal or copy. for(var/obj/machinery/telecomms/machine in links) if(filter && !istype( machine, text2path(filter) )) diff --git a/code/game/machinery/teleporter.dm b/code/game/machinery/teleporter.dm index 72687194f5b..63336d5dfd9 100644 --- a/code/game/machinery/teleporter.dm +++ b/code/game/machinery/teleporter.dm @@ -1,8 +1,9 @@ /obj/machinery/computer/teleporter name = "Teleporter Control Console" desc = "Used to control a linked teleportation Hub and Station." - icon_state = "teleport" - circuit = "/obj/item/weapon/circuitboard/teleporter" + icon_keyboard = "teleport_key" + icon_screen = "teleport" + circuit = /obj/item/weapon/circuitboard/teleporter dir = 4 var/obj/item/locked = null var/id = null diff --git a/code/game/machinery/turret_control.dm b/code/game/machinery/turret_control.dm index a1e2287f589..77667fa6bc8 100644 --- a/code/game/machinery/turret_control.dm +++ b/code/game/machinery/turret_control.dm @@ -218,9 +218,9 @@ enabled=0 updateTurrets() - sleep(rand(60,600)) - if(!enabled) - enabled=1 - updateTurrets() + spawn(rand(60,600)) + if(!enabled) + enabled=1 + updateTurrets() ..() diff --git a/code/game/machinery/vending.dm b/code/game/machinery/vending.dm index 9c79441f321..a665ba9a10c 100644 --- a/code/game/machinery/vending.dm +++ b/code/game/machinery/vending.dm @@ -688,8 +688,8 @@ /obj/item/weapon/reagent_containers/food/drinks/bottle/tequilla = 5,/obj/item/weapon/reagent_containers/food/drinks/bottle/vodka = 5, /obj/item/weapon/reagent_containers/food/drinks/bottle/vermouth = 5,/obj/item/weapon/reagent_containers/food/drinks/bottle/rum = 5, /obj/item/weapon/reagent_containers/food/drinks/bottle/wine = 5,/obj/item/weapon/reagent_containers/food/drinks/bottle/cognac = 5, - /obj/item/weapon/reagent_containers/food/drinks/bottle/kahlua = 5,/obj/item/weapon/reagent_containers/food/drinks/cans/beer = 6, - /obj/item/weapon/reagent_containers/food/drinks/cans/ale = 6,/obj/item/weapon/reagent_containers/food/drinks/bottle/orangejuice = 4, + /obj/item/weapon/reagent_containers/food/drinks/bottle/kahlua = 5,/obj/item/weapon/reagent_containers/food/drinks/bottle/small/beer = 6, + /obj/item/weapon/reagent_containers/food/drinks/bottle/small/ale = 6,/obj/item/weapon/reagent_containers/food/drinks/bottle/orangejuice = 4, /obj/item/weapon/reagent_containers/food/drinks/bottle/tomatojuice = 4,/obj/item/weapon/reagent_containers/food/drinks/bottle/limejuice = 4, /obj/item/weapon/reagent_containers/food/drinks/bottle/cream = 4,/obj/item/weapon/reagent_containers/food/drinks/cans/tonic = 8, /obj/item/weapon/reagent_containers/food/drinks/cans/cola = 8, /obj/item/weapon/reagent_containers/food/drinks/cans/sodawater = 15, diff --git a/code/game/mecha/mech_bay.dm b/code/game/mecha/mech_bay.dm index 615261bc5f9..7dc6f561ee4 100644 --- a/code/game/mecha/mech_bay.dm +++ b/code/game/mecha/mech_bay.dm @@ -83,7 +83,7 @@ /obj/machinery/mech_bay_recharge_port/proc/stop_charge() if(recharge_console && !recharge_console.stat) - recharge_console.icon_state = initial(recharge_console.icon_state) + recharge_console.icon_screen = initial(recharge_console.icon_screen) pr_recharger.stop() return @@ -137,10 +137,10 @@ name = "Mech Bay Power Control Console" density = 1 anchored = 1 - icon = 'icons/obj/computer.dmi' - icon_state = "recharge_comp" + icon_keyboard = "tech_key" + icon_screen = "recharge_comp" light_color = "#a97faa" - circuit = "/obj/item/weapon/circuitboard/mech_bay_power_console" + circuit = /obj/item/weapon/circuitboard/mech_bay_power_console var/autostart = 1 var/voltage = 45 var/turf/simulated/floor/mech_bay_recharge_floor/recharge_floor @@ -154,7 +154,7 @@ var/answer = recharge_port.start_charge(mecha) if(answer) recharge_port.set_voltage(voltage) - src.icon_state = initial(src.icon_state)+"_on" + src.icon_screen = initial(src.icon_screen)+"_on" return /obj/machinery/computer/mech_bay_power_console/proc/mecha_out() @@ -162,28 +162,6 @@ recharge_port.stop_charge() return - -/obj/machinery/computer/mech_bay_power_console/power_change() - if(stat & BROKEN) - icon_state = initial(icon_state)+"_broken" - if(recharge_port) - recharge_port.stop_charge() - else if(powered()) - icon_state = initial(icon_state) - stat &= ~NOPOWER - else - spawn(rand(0, 15)) - icon_state = initial(icon_state)+"_nopower" - stat |= NOPOWER - if(recharge_port) - recharge_port.stop_charge() - -/obj/machinery/computer/mech_bay_power_console/set_broken() - icon_state = initial(icon_state)+"_broken" - stat |= BROKEN - if(recharge_port) - recharge_port.stop_charge() - /obj/machinery/computer/mech_bay_power_console/attack_hand(mob/user as mob) if(..()) return diff --git a/code/game/mecha/mecha_control_console.dm b/code/game/mecha/mecha_control_console.dm index 3a3e48d1547..e3bee7a816d 100644 --- a/code/game/mecha/mecha_control_console.dm +++ b/code/game/mecha/mecha_control_console.dm @@ -1,10 +1,11 @@ /obj/machinery/computer/mecha name = "Exosuit Control" icon = 'icons/obj/computer.dmi' - icon_state = "mecha" + icon_keyboard = "rd_key" + icon_screen = "mecha" light_color = "#a97faa" req_access = list(access_robotics) - circuit = "/obj/item/weapon/circuitboard/mecha_control" + circuit = /obj/item/weapon/circuitboard/mecha_control var/list/located = list() var/screen = 0 var/stored_data diff --git a/code/game/objects/effects/explosion_particles.dm b/code/game/objects/effects/explosion_particles.dm index 90020e50801..e0750ba1c35 100644 --- a/code/game/objects/effects/explosion_particles.dm +++ b/code/game/objects/effects/explosion_particles.dm @@ -9,7 +9,7 @@ /obj/effect/expl_particles/New() ..() spawn (15) - src.loc = null + qdel(src) return /obj/effect/expl_particles/Move() @@ -49,7 +49,7 @@ /obj/effect/explosion/New() ..() spawn (10) - src.loc = null + qdel(src) return /datum/effect/system/explosion diff --git a/code/game/objects/empulse.dm b/code/game/objects/empulse.dm index 05cdbfee1da..c1df6b5454b 100644 --- a/code/game/objects/empulse.dm +++ b/code/game/objects/empulse.dm @@ -1,3 +1,9 @@ +// Uncomment this define to check for possible lengthy processing of emp_act()s. +// If emp_act() takes more than defined deciseconds (1/10 seconds) an admin message and log is created. +// I do not recommend having this uncommented on main server, it probably causes a bit more lag, espicially with larger EMPs. + +// #define EMPDEBUG 10 + proc/empulse(turf/epicenter, heavy_range, light_range, log=0) if(!epicenter) return @@ -24,6 +30,9 @@ proc/empulse(turf/epicenter, heavy_range, light_range, log=0) M << 'sound/effects/EMPulse.ogg' for(var/atom/T in range(light_range, epicenter)) + #ifdef EMPDEBUG + var/time = world.timeofday + #endif var/distance = get_dist(epicenter, T) if(distance < 0) distance = 0 @@ -36,4 +45,8 @@ proc/empulse(turf/epicenter, heavy_range, light_range, log=0) T.emp_act(2) else if(distance <= light_range) T.emp_act(2) + #ifdef EMPDEBUG + if((world.timeofday - time) >= EMPDEBUG) + log_and_message_admins("EMPDEBUG: [T.name] - [T.type] - took [world.timeofday - time]ds to process emp_act()!") + #endif return 1 \ No newline at end of file diff --git a/code/game/objects/items/crayons.dm b/code/game/objects/items/crayons.dm index 4c519b8fc51..31bb9160f83 100644 --- a/code/game/objects/items/crayons.dm +++ b/code/game/objects/items/crayons.dm @@ -68,7 +68,7 @@ /obj/item/weapon/pen/crayon/afterattack(atom/target, mob/user as mob, proximity) if(!proximity) return if(istype(target,/turf/simulated/floor)) - var/drawtype = input("Choose what you'd like to draw.", "Crayon scribbles") in list("graffiti","rune","letter") + var/drawtype = input("Choose what you'd like to draw.", "Crayon scribbles") in list("graffiti","rune","letter","arrow") switch(drawtype) if("letter") drawtype = input("Choose the letter.", "Crayon scribbles") in list("a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z") @@ -77,6 +77,9 @@ user << "You start drawing graffiti on the [target.name]." if("rune") user << "You start drawing a rune on the [target.name]." + if("arrow") + drawtype = input("Choose the arrow.", "Crayon scribbles") in list("left", "right", "up", "down") + user << "You start drawing an arrow on the [target.name]." if(instant || do_after(user, 50)) new /obj/effect/decal/cleanable/crayon(target,colour,shadeColour,drawtype) user << "You finish drawing." diff --git a/code/game/objects/items/devices/PDA/PDA.dm b/code/game/objects/items/devices/PDA/PDA.dm index fbdb7667a1f..a01dc224c3e 100644 --- a/code/game/objects/items/devices/PDA/PDA.dm +++ b/code/game/objects/items/devices/PDA/PDA.dm @@ -1284,40 +1284,7 @@ var/global/list/obj/item/device/pda/PDAs = list() user << "No significant chemical agents found in [A]." if(5) - if((istype(A, /obj/item/weapon/tank)) || (istype(A, /obj/machinery/portable_atmospherics))) - var/obj/icon = A - for (var/mob/O in viewers(user, null)) - O << "\The [user] has used [src] on \icon[icon] [A]." - var/pressure = A:air_contents.return_pressure() - - var/total_moles = A:air_contents.total_moles - - user << "Results of analysis of \icon[icon]" - if (total_moles>0) - user << "Pressure: [round(pressure,0.1)] kPa" - for(var/g in A:air_contents.gas) - user << "[gas_data.name[g]]: [round((A:air_contents.gas[g] / total_moles) * 100)]%" - user << "Temperature: [round(A:air_contents.temperature-T0C)]°C" - else - user << "Tank is empty!" - - if (istype(A, /obj/machinery/atmospherics/pipe/tank)) - var/obj/icon = A - for (var/mob/O in viewers(user, null)) - O << "\The [user] has used [src] on \icon[icon] [A]" - - var/obj/machinery/atmospherics/pipe/tank/T = A - var/pressure = T.parent.air.return_pressure() - var/total_moles = T.parent.air.total_moles - - user << "Results of analysis of \icon[icon]" - if (total_moles>0) - user << "Pressure: [round(pressure,0.1)] kPa" - for(var/g in T.parent.air.gas) - user << "[gas_data.name[g]]: [round((T.parent.air.gas[g] / total_moles) * 100)]%" - user << "Temperature: [round(T.parent.air.temperature-T0C)]°C" - else - user << "Tank is empty!" + analyze_gases(A, user) if (!scanmode && istype(A, /obj/item/weapon/paper) && owner) // JMO 20140705: Makes scanned document show up properly in the notes. Not pretty for formatted documents, diff --git a/code/game/objects/items/devices/radio/headset.dm b/code/game/objects/items/devices/radio/headset.dm index e1ca0d88898..43a4c5bf568 100644 --- a/code/game/objects/items/devices/radio/headset.dm +++ b/code/game/objects/items/devices/radio/headset.dm @@ -192,7 +192,7 @@ */ /obj/item/device/radio/headset/headset_cargo name = "supply radio headset" - desc = "A headset used by the QM and his slaves." + desc = "A headset used by the QM and their slaves." icon_state = "cargo_headset" item_state = "headset" ks2type = /obj/item/device/encryptionkey/headset_cargo diff --git a/code/game/objects/items/devices/radio/radio.dm b/code/game/objects/items/devices/radio/radio.dm index ca2f6300e24..0353c25f59a 100644 --- a/code/game/objects/items/devices/radio/radio.dm +++ b/code/game/objects/items/devices/radio/radio.dm @@ -578,7 +578,6 @@ if(keyslot.syndie) src.syndie = 1 - for (var/ch_name in src.channels) if(!radio_controller) sleep(30) // Waiting for the radio_controller to be created. diff --git a/code/game/objects/items/devices/scanners.dm b/code/game/objects/items/devices/scanners.dm index 849ceac3af4..2b2e6964597 100644 --- a/code/game/objects/items/devices/scanners.dm +++ b/code/game/objects/items/devices/scanners.dm @@ -7,60 +7,6 @@ GAS ANALYZER MASS SPECTROMETER REAGENT SCANNER */ -/obj/item/device/t_scanner - name = "\improper T-ray scanner" - desc = "A terahertz-ray emitter and scanner used to detect underfloor objects such as cables and pipes." - icon_state = "t-ray0" - var/on = 0 - slot_flags = SLOT_BELT - w_class = 2 - item_state = "electronic" - - matter = list(DEFAULT_WALL_MATERIAL = 150) - - origin_tech = list(TECH_MAGNET = 1, TECH_ENGINERING = 1) - -/obj/item/device/t_scanner/attack_self(mob/user) - - on = !on - icon_state = "t-ray[on]" - - if(on) - processing_objects.Add(src) - - -/obj/item/device/t_scanner/process() - if(!on) - processing_objects.Remove(src) - return null - - for(var/turf/T in range(1, src.loc) ) - - if(!T.intact) - continue - - for(var/obj/O in T.contents) - - if(O.level != 1) - continue - - if(O.invisibility == 101) - O.invisibility = 0 - O.alpha = 128 - spawn(10) - if(O) - var/turf/U = O.loc - if(U.intact) - O.invisibility = 101 - O.alpha = 255 - - var/mob/living/M = locate() in T - if(M && M.invisibility == 2) - M.invisibility = 0 - spawn(2) - if(M) - M.invisibility = INVISIBILITY_LEVEL_TWO - /obj/item/device/healthanalyzer name = "health analyzer" @@ -256,6 +202,13 @@ REAGENT SCANNER origin_tech = list(TECH_MAGNET = 1, TECH_ENGINERING = 1) +/obj/item/device/analyzer/atmosanalyze(var/mob/user) + var/air = user.return_air() + if (!air) + return + + return atmosanalyzer_scan(src, air, user) + /obj/item/device/analyzer/attack_self(mob/user as mob) if (user.stat) @@ -264,27 +217,7 @@ REAGENT SCANNER usr << "You don't have the dexterity to do this!" return - var/turf/location = user.loc - if (!( istype(location, /turf) )) - return - - var/datum/gas_mixture/environment = location.return_air() - - var/pressure = environment.return_pressure() - var/total_moles = environment.total_moles - - user.show_message("Results:", 1) - if(abs(pressure - ONE_ATMOSPHERE) < 10) - user.show_message("Pressure: [round(pressure,0.1)] kPa", 1) - else - user.show_message("Pressure: [round(pressure,0.1)] kPa", 1) - if(total_moles) - for(var/g in environment.gas) - user.show_message("[gas_data.name[g]]: [round((environment.gas[g] / total_moles)*100)]%", 1) - - user.show_message("Temperature: [round(environment.temperature-T0C)]°C", 1) - - src.add_fingerprint(user) + analyze_gases(src, user) return /obj/item/device/mass_spectrometer diff --git a/code/game/objects/items/devices/t_scanner.dm b/code/game/objects/items/devices/t_scanner.dm new file mode 100644 index 00000000000..02ba952621e --- /dev/null +++ b/code/game/objects/items/devices/t_scanner.dm @@ -0,0 +1,135 @@ +#define OVERLAY_CACHE_LEN 50 + +/obj/item/device/t_scanner + name = "\improper T-ray scanner" + desc = "A terahertz-ray emitter and scanner used to detect underfloor objects such as cables and pipes." + icon_state = "t-ray0" + slot_flags = SLOT_BELT + w_class = 2 + item_state = "electronic" + matter = list(DEFAULT_WALL_MATERIAL = 150) + origin_tech = list(TECH_MAGNET = 1, TECH_ENGINERING = 1) + + var/scan_range = 1 + + var/on = 0 + var/list/active_scanned = list() //assoc list of objects being scanned, mapped to their overlay + var/client/user_client //since making sure overlays are properly added and removed is pretty important, so we track the current user explicitly + var/flicker = 0 + + var/global/list/overlay_cache = list() //cache recent overlays + +/obj/item/device/t_scanner/update_icon() + icon_state = "t-ray[on]" + +/obj/item/device/t_scanner/attack_self(mob/user) + set_active(!on) + +/obj/item/device/t_scanner/proc/set_active(var/active) + on = active + if(on) + processing_objects.Add(src) + flicker = 0 + else + processing_objects.Remove(src) + set_user_client(null) + update_icon() + +//If reset is set, then assume the client has none of our overlays, otherwise we only send new overlays. +/obj/item/device/t_scanner/process() + if(!on) return + + //handle clients changing + var/client/loc_client = null + if(ismob(src.loc)) + var/mob/M = src.loc + loc_client = M.client + set_user_client(loc_client) + + //no sense processing if no-one is going to see it. + if(!user_client) return + + //get all objects in scan range + var/list/scanned = get_scanned_objects(scan_range) + var/list/update_add = scanned - active_scanned + var/list/update_remove = active_scanned - scanned + + //Add new overlays + for(var/obj/O in update_add) + var/image/overlay = get_overlay(O) + active_scanned[O] = overlay + user_client.images += overlay + + //Remove stale overlays + for(var/obj/O in update_remove) + user_client.images -= active_scanned[O] + active_scanned -= O + + //Flicker effect + for(var/obj/O in active_scanned) + var/image/overlay = active_scanned[O] + if(flicker) + overlay.alpha = 0 + else + overlay.alpha = 128 + flicker = !flicker + +//creates a new overlay for a scanned object +/obj/item/device/t_scanner/proc/get_overlay(obj/scanned) + //Use a cache so we don't create a whole bunch of new images just because someone's walking back and forth in a room. + //Also means that images are reused if multiple people are using t-rays to look at the same objects. + if(scanned in overlay_cache) + . = overlay_cache[scanned] + else + var/image/I = image(loc = scanned, icon = scanned.icon, icon_state = scanned.icon_state, layer = HUD_LAYER) + + //Pipes are special + if(istype(scanned, /obj/machinery/atmospherics/pipe)) + var/obj/machinery/atmospherics/pipe/P = scanned + I.color = P.pipe_color + I.overlays += P.overlays + + I.alpha = 128 + I.mouse_opacity = 0 + . = I + + // Add it to cache, cutting old entries if the list is too long + overlay_cache[scanned] = . + if(overlay_cache.len > OVERLAY_CACHE_LEN) + overlay_cache.Cut(1, overlay_cache.len-OVERLAY_CACHE_LEN-1) + +/obj/item/device/t_scanner/proc/get_scanned_objects(var/scan_dist) + . = list() + + var/turf/center = get_turf(src.loc) + if(!center) return + + for(var/turf/T in range(scan_range, center)) + if(!T.intact) + continue + + for(var/obj/O in T.contents) + if(O.level != 1) + continue + if(!O.invisibility) + continue //if it's already visible don't need an overlay for it + . += O + +/obj/item/device/t_scanner/proc/set_user_client(var/client/new_client) + if(new_client == user_client) + return + if(user_client) + for(var/scanned in active_scanned) + user_client.images -= active_scanned[scanned] + if(new_client) + for(var/scanned in active_scanned) + new_client.images += active_scanned[scanned] + else + active_scanned.Cut() + + user_client = new_client + +/obj/item/device/t_scanner/dropped(mob/user) + set_user_client(null) + +#undef OVERLAY_CACHE_LEN \ No newline at end of file diff --git a/code/game/objects/items/devices/uplink_items.dm b/code/game/objects/items/devices/uplink_items.dm index 97655196222..2a63f1a38b5 100644 --- a/code/game/objects/items/devices/uplink_items.dm +++ b/code/game/objects/items/devices/uplink_items.dm @@ -131,7 +131,7 @@ datum/uplink_item/dd_SortValue() path = /obj/item/ammo_magazine/a357 /datum/uplink_item/item/ammo/mc9mm - name = ".9mm" + name = "9mm" path = /obj/item/ammo_magazine/mc9mm /datum/uplink_item/item/ammo/darts @@ -142,6 +142,14 @@ datum/uplink_item/dd_SortValue() name = "14.5mm" path = /obj/item/weapon/storage/box/sniperammo +/datum/uplink_item/item/ammo/a10mm + name = "10mm" + path = /obj/item/ammo_magazine/a10mm + +/datum/uplink_item/item/ammo/a762 + name = "7.62mm" + path = /obj/item/ammo_magazine/a762 + /*************************************** * Highly Visible and Dangerous Weapons * ***************************************/ @@ -188,6 +196,17 @@ datum/uplink_item/dd_SortValue() item_cost = DEFAULT_TELECRYSTAL_AMOUNT path = /obj/item/weapon/gun/projectile/heavysniper +//These are for traitors (or other antags, perhaps) to have the option of purchasing some merc gear. +/datum/uplink_item/item/visible_weapons/submachinegun + name = "Submachine Gun" + item_cost = 6 + path = /obj/item/weapon/gun/projectile/automatic/c20r + +/datum/uplink_item/item/visible_weapons/assaultrifle + name = "Assault Rifle" + item_cost = 7 + path = /obj/item/weapon/gun/projectile/automatic/sts35 + /************************************* * Stealthy and Inconspicuous Weapons * *************************************/ diff --git a/code/game/objects/items/stacks/stack.dm b/code/game/objects/items/stacks/stack.dm index 0e6db03bd6b..886fa4eac73 100644 --- a/code/game/objects/items/stacks/stack.dm +++ b/code/game/objects/items/stacks/stack.dm @@ -68,10 +68,7 @@ if (istype(E, /datum/stack_recipe_list)) var/datum/stack_recipe_list/srl = E - if (src.get_amount() >= srl.req_amount) - t1 += "[srl.title] ([srl.req_amount] [src.singular_name]\s)" - else - t1 += "[srl.title] ([srl.req_amount] [src.singular_name]\s)
" + t1 += "[srl.title]" if (istype(E, /datum/stack_recipe)) var/datum/stack_recipe/R = E @@ -360,8 +357,6 @@ /datum/stack_recipe_list var/title = "ERROR" var/list/recipes = null - var/req_amount = 1 - New(title, recipes, req_amount = 1) + New(title, recipes) src.title = title src.recipes = recipes - src.req_amount = req_amount diff --git a/code/game/objects/items/weapons/AI_modules.dm b/code/game/objects/items/weapons/AI_modules.dm index 5f8403246f9..84e4f80d4a3 100755 --- a/code/game/objects/items/weapons/AI_modules.dm +++ b/code/game/objects/items/weapons/AI_modules.dm @@ -83,7 +83,7 @@ AI MODULES laws.sync(target, 0) addAdditionalLaws(target, sender) - target << "[sender] has uploaded a change to the laws you must follow, using \an [src]. From now on: " + target << "\The [sender] has uploaded a change to the laws you must follow, using \an [src]. From now on: " target.show_laws() /obj/item/weapon/aiModule/proc/log_law_changes(var/mob/living/silicon/ai/target, var/mob/sender) @@ -140,13 +140,7 @@ AI MODULES if(!targetName) usr << "No name detected on module, please enter one." return 0 - ..() - -/obj/item/weapon/aiModule/oneHuman/transmitInstructions(var/mob/living/silicon/ai/target, var/mob/sender) - ..() - var/law = "Only [targetName] is a crew member." - target << "[sender.real_name] attempted to modify your zeroth law." // And lets them know that someone tried. --NeoFite - target << "It would be in your best interest to play along with [sender.real_name] that [law]" + return ..() /obj/item/weapon/aiModule/oneHuman/addAdditionalLaws(var/mob/living/silicon/ai/target, var/mob/sender) var/law = "Only [targetName] is an crew member." diff --git a/code/game/objects/items/weapons/cigs_lighters.dm b/code/game/objects/items/weapons/cigs_lighters.dm index 4e444a5ebc3..a85ed010f91 100644 --- a/code/game/objects/items/weapons/cigs_lighters.dm +++ b/code/game/objects/items/weapons/cigs_lighters.dm @@ -100,10 +100,6 @@ CIGARETTE PACKETS ARE IN FANCY.DM flags |= NOREACT // so it doesn't react until you light it create_reagents(chem_volume) // making the cigarrete a chemical holder with a maximum volume of 15 -/obj/item/clothing/mask/smokable/Destroy() - ..() - qdel(reagents) - /obj/item/clothing/mask/smokable/process() var/turf/location = get_turf(src) smoketime-- diff --git a/code/game/objects/items/weapons/clown_items.dm b/code/game/objects/items/weapons/clown_items.dm index d5a36d6cba3..e32b58e098f 100644 --- a/code/game/objects/items/weapons/clown_items.dm +++ b/code/game/objects/items/weapons/clown_items.dm @@ -32,7 +32,7 @@ else if(istype(target,/turf)) user << "You scrub \the [target.name] clean." var/turf/T = target - T.clean() + T.clean(src) else user << "You clean \the [target.name]." target.clean_blood() diff --git a/code/game/objects/items/weapons/flamethrower.dm b/code/game/objects/items/weapons/flamethrower.dm index 09816e3568b..bbdd46cdb39 100644 --- a/code/game/objects/items/weapons/flamethrower.dm +++ b/code/game/objects/items/weapons/flamethrower.dm @@ -112,20 +112,9 @@ update_icon() return - if(istype(W, /obj/item/device/analyzer) && ptank) - var/obj/item/weapon/icon = src - user.visible_message("[user] has used the analyzer on \icon[icon]") - var/pressure = ptank.air_contents.return_pressure() - var/total_moles = ptank.air_contents.total_moles - - user << "Results of analysis of \icon[icon]" - if(total_moles>0) - user << "Pressure: [round(pressure,0.1)] kPa" - for(var/g in ptank.air_contents.gas) - user << "[gas_data.name[g]]: [round((ptank.air_contents.gas[g] / total_moles) * 100)]%" - user << "Temperature: [round(ptank.air_contents.temperature-T0C)]°C" - else - user << "Tank is empty!" + if(istype(W, /obj/item/device/analyzer)) + var/obj/item/device/analyzer/A = W + A.analyze_gases(src, user) return ..() return diff --git a/code/game/objects/items/weapons/implants/implantcase.dm b/code/game/objects/items/weapons/implants/implantcase.dm index 4b15fb8ffbe..49b1b280a7a 100644 --- a/code/game/objects/items/weapons/implants/implantcase.dm +++ b/code/game/objects/items/weapons/implants/implantcase.dm @@ -38,7 +38,7 @@ user << "\The [src] is full." else spawn(5) - I.reagents.trans_to_mob(src.imp, 5) + I.reagents.trans_to_obj(src.imp, 5) user << "You inject 5 units of the solution. The syringe now contains [I.reagents.total_volume] units." else if (istype(I, /obj/item/weapon/implanter)) var/obj/item/weapon/implanter/M = I diff --git a/code/game/objects/items/weapons/melee/energy.dm b/code/game/objects/items/weapons/melee/energy.dm index 66310cf26f4..68763103431 100644 --- a/code/game/objects/items/weapons/melee/energy.dm +++ b/code/game/objects/items/weapons/melee/energy.dm @@ -34,7 +34,7 @@ /obj/item/weapon/melee/energy/attack_self(mob/living/user as mob) if (active) if ((CLUMSY in user.mutations) && prob(50)) - user.visible_message("[user] accidentally cuts \himself with \the [src].",\ + user.visible_message("\The [user] accidentally cuts \himself with \the [src].",\ "You accidentally cut yourself with \the [src].") user.take_organ_damage(5,5) deactivate(user) @@ -50,9 +50,10 @@ return /obj/item/weapon/melee/energy/suicide_act(mob/user) + var/tempgender = "[user.gender == MALE ? "he's" : user.gender == FEMALE ? "she's" : "they are"]" if (active) - viewers(user) << pick("\The [user] is slitting \his stomach open with \the [src]! It looks like \he's trying to commit seppuku.", \ - "\The [user] is falling on \the [src]! It looks like \he's trying to commit suicide.") + viewers(user) << pick("\The [user] is slitting \his stomach open with \the [src]! It looks like [tempgender] trying to commit seppuku.", \ + "\The [user] is falling on \the [src]! It looks like [tempgender] trying to commit suicide.") return (BRUTELOSS|FIRELOSS) /* @@ -90,7 +91,7 @@ user << "\The [src] is de-energised. It's just a regular axe now." /obj/item/weapon/melee/energy/axe/suicide_act(mob/user) - viewers(user) << "\The [user] swings \the [src] towards /his head! It looks like \he's trying to commit suicide." + viewers(user) << "\The [user] swings \the [src] towards \his head! It looks like \he's trying to commit suicide." return (BRUTELOSS|FIRELOSS) /* diff --git a/code/game/objects/items/weapons/mop.dm b/code/game/objects/items/weapons/mop.dm index 17af445e192..abf5e08a3be 100644 --- a/code/game/objects/items/weapons/mop.dm +++ b/code/game/objects/items/weapons/mop.dm @@ -16,6 +16,7 @@ /obj/item/weapon/mop/New() create_reagents(5) +//expects an atom containing the reagents used to clean the turf /turf/proc/clean(atom/source) if(source.reagents.has_reagent("water", 1)) clean_blood() diff --git a/code/game/objects/items/weapons/paint.dm b/code/game/objects/items/weapons/paint.dm index d92812b3fde..fe1247cc899 100644 --- a/code/game/objects/items/weapons/paint.dm +++ b/code/game/objects/items/weapons/paint.dm @@ -14,6 +14,7 @@ var/global/list/cached_icons = list() amount_per_transfer_from_this = 10 possible_transfer_amounts = list(10,20,30,60) volume = 60 + unacidable = 0 flags = OPENCONTAINER var/paint_type = "red" diff --git a/code/game/objects/items/weapons/storage/bible.dm b/code/game/objects/items/weapons/storage/bible.dm index af39700dbc3..8a29fdefa8f 100644 --- a/code/game/objects/items/weapons/storage/bible.dm +++ b/code/game/objects/items/weapons/storage/bible.dm @@ -15,8 +15,8 @@ /obj/item/weapon/storage/bible/booze/New() ..() - new /obj/item/weapon/reagent_containers/food/drinks/cans/beer(src) - new /obj/item/weapon/reagent_containers/food/drinks/cans/beer(src) + new /obj/item/weapon/reagent_containers/food/drinks/bottle/small/beer(src) + new /obj/item/weapon/reagent_containers/food/drinks/bottle/small/beer(src) new /obj/item/weapon/spacecash(src) new /obj/item/weapon/spacecash(src) new /obj/item/weapon/spacecash(src) diff --git a/code/game/objects/items/weapons/storage/fancy.dm b/code/game/objects/items/weapons/storage/fancy.dm index 081d1f7ba65..0ed8ad7b7b2 100644 --- a/code/game/objects/items/weapons/storage/fancy.dm +++ b/code/game/objects/items/weapons/storage/fancy.dm @@ -146,11 +146,6 @@ new /obj/item/clothing/mask/smokable/cigarette(src) create_reagents(15 * storage_slots)//so people can inject cigarettes without opening a packet, now with being able to inject the whole one -/obj/item/weapon/storage/fancy/cigarettes/Destroy() - qdel(reagents) - ..() - - /obj/item/weapon/storage/fancy/cigarettes/update_icon() icon_state = "[initial(icon_state)][contents.len]" return @@ -202,10 +197,6 @@ new /obj/item/clothing/mask/smokable/cigarette/cigar(src) create_reagents(15 * storage_slots) -/obj/item/weapon/storage/fancy/cigar/Destroy() - qdel(reagents) - ..() - /obj/item/weapon/storage/fancy/cigar/update_icon() icon_state = "[initial(icon_state)][contents.len]" return diff --git a/code/game/objects/items/weapons/tanks/tanks.dm b/code/game/objects/items/weapons/tanks/tanks.dm index 8c5b1de0264..049d179846f 100644 --- a/code/game/objects/items/weapons/tanks/tanks.dm +++ b/code/game/objects/items/weapons/tanks/tanks.dm @@ -87,28 +87,12 @@ /obj/item/weapon/tank/attackby(obj/item/weapon/W as obj, mob/user as mob) ..() - var/obj/icon = src - if (istype(src.loc, /obj/item/assembly)) icon = src.loc if ((istype(W, /obj/item/device/analyzer)) && get_dist(user, src) <= 1) - for (var/mob/O in viewers(user, null)) - O << "\The [user] has used [W] on \icon[icon] [src]" - - var/pressure = air_contents.return_pressure() - manipulated_by = user.real_name //This person is aware of the contents of the tank. - var/total_moles = air_contents.total_moles - - user << "Results of analysis of \icon[icon]" - if (total_moles>0) - user << "Pressure: [round(pressure,0.1)] kPa" - for(var/g in air_contents.gas) - user << "[gas_data.name[g]]: [(round(air_contents.gas[g] / total_moles) * 100)]%" - user << "Temperature: [round(air_contents.temperature-T0C)]°C" - else - user << "Tank is empty!" - src.add_fingerprint(user) + var/obj/item/device/analyzer/A = W + A.analyze_gases(src, user) else if (istype(W,/obj/item/latexballon)) var/obj/item/latexballon/LB = W LB.blow(src) @@ -131,7 +115,7 @@ location = loc.loc else if(istype(loc, /mob/living/carbon)) location = loc - + var/using_internal if(istype(location)) if(location.internal==src) @@ -278,11 +262,11 @@ var/range = (pressure-TANK_FRAGMENT_PRESSURE)/TANK_FRAGMENT_SCALE explosion( - get_turf(loc), - round(min(BOMBCAP_DVSTN_RADIUS, range*0.25)), - round(min(BOMBCAP_HEAVY_RADIUS, range*0.50)), - round(min(BOMBCAP_LIGHT_RADIUS, range*1.00)), - round(min(BOMBCAP_FLASH_RADIUS, range*1.50)), + get_turf(loc), + round(min(BOMBCAP_DVSTN_RADIUS, range*0.25)), + round(min(BOMBCAP_HEAVY_RADIUS, range*0.50)), + round(min(BOMBCAP_LIGHT_RADIUS, range*1.00)), + round(min(BOMBCAP_FLASH_RADIUS, range*1.50)), ) qdel(src) diff --git a/code/game/objects/objs.dm b/code/game/objects/objs.dm index 795027ea3f1..cfa2de777b2 100644 --- a/code/game/objects/objs.dm +++ b/code/game/objects/objs.dm @@ -14,6 +14,11 @@ var/damtype = "brute" var/force = 0 +/obj/Destroy() + processing_objects -= src + nanomanager.close_uis(src) + return ..() + /obj/Topic(href, href_list, var/nowindow = 0, var/datum/topic_state/state = default_state) // Calling Topic without a corresponding window open causes runtime errors if(!nowindow && ..()) @@ -118,10 +123,6 @@ if(istype(M) && M.client && M.machine == src) src.attack_self(M) - -/obj/proc/alter_health() - return 1 - /obj/proc/hide(h) return @@ -141,4 +142,4 @@ return /obj/proc/show_message(msg, type, alt, alt_type)//Message, type of message (1 or 2), alternative message, alt message type (1 or 2) - return \ No newline at end of file + return diff --git a/code/game/objects/structures/bedsheet_bin.dm b/code/game/objects/structures/bedsheet_bin.dm index 64f1f9925b5..23d819afa0a 100644 --- a/code/game/objects/structures/bedsheet_bin.dm +++ b/code/game/objects/structures/bedsheet_bin.dm @@ -25,6 +25,16 @@ LINEN BINS add_fingerprint(user) return +/obj/item/weapon/bedsheet/attackby(obj/item/I, mob/user) + if(is_sharp(I)) + user.visible_message("\The [user] begins cutting up [src] with [I].", "You begin cutting up [src] with [I].") + if(do_after(user, 50)) + user << "You cut [src] into pieces!" + for(var/i in 1 to rand(2,5)) + new /obj/item/weapon/reagent_containers/glass/rag(src.loc) + qdel(src) + return + ..() /obj/item/weapon/bedsheet/blue icon_state = "sheetblue" diff --git a/code/game/objects/structures/crates_lockers/closets.dm b/code/game/objects/structures/crates_lockers/closets.dm index 68aeecd9127..91b19ae0879 100644 --- a/code/game/objects/structures/crates_lockers/closets.dm +++ b/code/game/objects/structures/crates_lockers/closets.dm @@ -53,11 +53,6 @@ else user << "It is full." - - -/obj/structure/closet/alter_health() - return get_turf(src) - /obj/structure/closet/CanPass(atom/movable/mover, turf/target, height=0, air_group=0) if(air_group || (height==0 || wall_mounted)) return 1 return (!density) diff --git a/code/game/objects/structures/crates_lockers/closets/secure/bar.dm b/code/game/objects/structures/crates_lockers/closets/secure/bar.dm index 96a7e8131ac..5fd5cfd3147 100644 --- a/code/game/objects/structures/crates_lockers/closets/secure/bar.dm +++ b/code/game/objects/structures/crates_lockers/closets/secure/bar.dm @@ -11,16 +11,16 @@ New() ..() - new /obj/item/weapon/reagent_containers/food/drinks/cans/beer( src ) - new /obj/item/weapon/reagent_containers/food/drinks/cans/beer( src ) - new /obj/item/weapon/reagent_containers/food/drinks/cans/beer( src ) - new /obj/item/weapon/reagent_containers/food/drinks/cans/beer( src ) - new /obj/item/weapon/reagent_containers/food/drinks/cans/beer( src ) - new /obj/item/weapon/reagent_containers/food/drinks/cans/beer( src ) - new /obj/item/weapon/reagent_containers/food/drinks/cans/beer( src ) - new /obj/item/weapon/reagent_containers/food/drinks/cans/beer( src ) - new /obj/item/weapon/reagent_containers/food/drinks/cans/beer( src ) - new /obj/item/weapon/reagent_containers/food/drinks/cans/beer( src ) + new /obj/item/weapon/reagent_containers/food/drinks/bottle/small/beer( src ) + new /obj/item/weapon/reagent_containers/food/drinks/bottle/small/beer( src ) + new /obj/item/weapon/reagent_containers/food/drinks/bottle/small/beer( src ) + new /obj/item/weapon/reagent_containers/food/drinks/bottle/small/beer( src ) + new /obj/item/weapon/reagent_containers/food/drinks/bottle/small/beer( src ) + new /obj/item/weapon/reagent_containers/food/drinks/bottle/small/beer( src ) + new /obj/item/weapon/reagent_containers/food/drinks/bottle/small/beer( src ) + new /obj/item/weapon/reagent_containers/food/drinks/bottle/small/beer( src ) + new /obj/item/weapon/reagent_containers/food/drinks/bottle/small/beer( src ) + new /obj/item/weapon/reagent_containers/food/drinks/bottle/small/beer( src ) return /obj/structure/closet/secure_closet/bar/update_icon() diff --git a/code/game/objects/structures/crates_lockers/closets/syndicate.dm b/code/game/objects/structures/crates_lockers/closets/syndicate.dm index 2214a17f8eb..0422b46eb43 100644 --- a/code/game/objects/structures/crates_lockers/closets/syndicate.dm +++ b/code/game/objects/structures/crates_lockers/closets/syndicate.dm @@ -42,11 +42,11 @@ /obj/structure/closet/syndicate/nuclear/New() ..() - new /obj/item/ammo_magazine/a12mm(src) - new /obj/item/ammo_magazine/a12mm(src) - new /obj/item/ammo_magazine/a12mm(src) - new /obj/item/ammo_magazine/a12mm(src) - new /obj/item/ammo_magazine/a12mm(src) + new /obj/item/ammo_magazine/a10mm(src) + new /obj/item/ammo_magazine/a10mm(src) + new /obj/item/ammo_magazine/a10mm(src) + new /obj/item/ammo_magazine/a10mm(src) + new /obj/item/ammo_magazine/a10mm(src) new /obj/item/weapon/storage/box/handcuffs(src) new /obj/item/weapon/storage/box/flashbangs(src) new /obj/item/weapon/gun/energy/gun(src) diff --git a/code/game/objects/structures/crates_lockers/largecrate.dm b/code/game/objects/structures/crates_lockers/largecrate.dm index c697f1a4c11..17204e77c8d 100644 --- a/code/game/objects/structures/crates_lockers/largecrate.dm +++ b/code/game/objects/structures/crates_lockers/largecrate.dm @@ -14,7 +14,7 @@ new /obj/item/stack/material/wood(src) var/turf/T = get_turf(src) for(var/atom/movable/AM in contents) - if(AM.simulated) AM.loc = T + if(AM.simulated) AM.forceMove(T) user.visible_message("[user] pries \the [src] open.", \ "You pry open \the [src].", \ "You hear splitting wood.") diff --git a/code/game/objects/structures/morgue.dm b/code/game/objects/structures/morgue.dm index b7accbffcee..9f8eed2eb57 100644 --- a/code/game/objects/structures/morgue.dm +++ b/code/game/objects/structures/morgue.dm @@ -60,9 +60,6 @@ return return -/obj/structure/morgue/alter_health() - return src.loc - /obj/structure/morgue/attack_hand(mob/user as mob) if (src.connected) for(var/atom/movable/A as mob|obj in src.connected.loc) @@ -230,9 +227,6 @@ return return -/obj/structure/crematorium/alter_health() - return src.loc - /obj/structure/crematorium/attack_hand(mob/user as mob) // if (cremating) AWW MAN! THIS WOULD BE SO MUCH MORE FUN ... TO WATCH // user.show_message("Uh-oh, that was a bad idea.", 1) diff --git a/code/game/objects/structures/watercloset.dm b/code/game/objects/structures/watercloset.dm index 7ffe7280308..b9dcb3047dc 100644 --- a/code/game/objects/structures/watercloset.dm +++ b/code/game/objects/structures/watercloset.dm @@ -395,7 +395,7 @@ if (istype(RG) && RG.is_open_container()) RG.reagents.add_reagent("water", min(RG.volume - RG.reagents.total_volume, RG.amount_per_transfer_from_this)) user.visible_message("[user] fills \the [RG] using \the [src].","You fill \the [RG] using \the [src].") - return + return 1 else if (istype(O, /obj/item/weapon/melee/baton)) var/obj/item/weapon/melee/baton/B = O @@ -413,7 +413,7 @@ user.visible_message( \ "[user] was stunned by \his wet [O]!", \ "[user] was stunned by \his wet [O]!") - return + return 1 // Short of a rewrite, this is necessary to stop monkeycubes being washed. else if(istype(O, /obj/item/weapon/reagent_containers/food/snacks/monkeycube)) return diff --git a/code/game/objects/structures/window.dm b/code/game/objects/structures/window.dm index 1fec557b8d4..ead5e79ecd7 100644 --- a/code/game/objects/structures/window.dm +++ b/code/game/objects/structures/window.dm @@ -239,6 +239,7 @@ if(istype(W, /obj/item/weapon/screwdriver)) if(reinf && state >= 1) state = 3 - state + update_nearby_icons() playsound(loc, 'sound/items/Screwdriver.ogg', 75, 1) user << (state == 1 ? "You have unfastened the window from the frame." : "You have fastened the window to the frame.") else if(reinf && state == 0) @@ -337,7 +338,11 @@ /obj/structure/window/Destroy() density = 0 update_nearby_tiles() - update_nearby_icons() + var/turf/location = loc + loc = null + for(var/obj/structure/window/W in orange(location, 1)) + W.update_icon() + loc = location ..() @@ -357,35 +362,31 @@ //This proc is used to update the icons of nearby windows. It should not be confused with update_nearby_tiles(), which is an atmos proc! /obj/structure/window/proc/update_nearby_icons() update_icon() - for(var/direction in cardinal) - for(var/obj/structure/window/W in get_step(src,direction) ) - W.update_icon() + for(var/obj/structure/window/W in orange(src, 1)) + W.update_icon() //merges adjacent full-tile windows into one (blatant ripoff from game/smoothwall.dm) /obj/structure/window/update_icon() //A little cludge here, since I don't know how it will work with slim windows. Most likely VERY wrong. //this way it will only update full-tile ones - //This spawn is here so windows get properly updated when one gets deleted. - spawn(2) - if(!src) return - if(!is_fulltile()) - icon_state = "[basestate]" - return - var/junction = 0 //will be used to determine from which side the window is connected to other windows - if(anchored) - for(var/obj/structure/window/W in orange(src,1)) - if(W.anchored && W.density && W.is_fulltile()) //Only counts anchored, not-destroyed fill-tile windows. - if(abs(x-W.x)-abs(y-W.y) ) //doesn't count windows, placed diagonally to src - junction |= get_dir(src,W) - if(opacity) - icon_state = "[basestate][junction]" - else - if(reinf) - icon_state = "[basestate][junction]" - else - icon_state = "[basestate][junction]" - + overlays.Cut() + if(!is_fulltile()) + icon_state = "[basestate]" return + var/list/dirs = list() + if(anchored) + for(var/obj/structure/window/W in orange(src,1)) + if(W.anchored && W.density && W.type == src.type && W.is_fulltile()) //Only counts anchored, not-destroyed fill-tile windows. + dirs += get_dir(src, W) + + var/list/connections = dirs_to_corner_states(dirs) + + icon_state = "" + for(var/i = 1 to 4) + var/image/I = image(icon, "[basestate][connections[i]]", dir = 1<<(i-1)) + overlays += I + + return /obj/structure/window/fire_act(datum/gas_mixture/air, exposed_temperature, exposed_volume) if(exposed_temperature > T0C + 800) @@ -466,11 +467,9 @@ basestate = "window" maxhealth = 40 reinf = 1 + basestate = "w" dir = 5 - update_icon() //icon_state has to be set manually - return - /obj/structure/window/reinforced/polarized name = "electrochromic window" desc = "Adjusts its tint with voltage. Might take a few good hits to shatter it." diff --git a/code/game/objects/structures/window_spawner.dm b/code/game/objects/structures/window_spawner.dm new file mode 100644 index 00000000000..e6c2d06001a --- /dev/null +++ b/code/game/objects/structures/window_spawner.dm @@ -0,0 +1,89 @@ +// Ported from Haine and WrongEnd with much gratitude! +/* ._.-'~'-._.-'~'-._.-'~'-._.-'~'-._.-'~'-._.-'~'-._.-'~'-._. */ +/*-=-=-=-=-=-=-=-=-=-=-=-=-=WHAT-EVER=-=-=-=-=-=-=-=-=-=-=-=-=-*/ +/* '~'-._.-'~'-._.-'~'-._.-'~'-._.-'~'-._.-'~'-._.-'~'-._.-'~' */ + +/obj/effect/wingrille_spawn + name = "window grille spawner" + icon = 'icons/obj/structures.dmi' + icon_state = "wingrille" + density = 1 + anchored = 1.0 + pressure_resistance = 4*ONE_ATMOSPHERE + var/win_path = /obj/structure/window/basic + var/activated + +/obj/effect/wingrille_spawn/attack_hand() + attack_generic() + +/obj/effect/wingrille_spawn/attack_ghost() + attack_generic() + +/obj/effect/wingrille_spawn/attack_generic() + activate() + +/obj/effect/wingrille_spawn/initialize() + ..() + if(!win_path) + return + if(ticker && ticker.current_state < GAME_STATE_PLAYING) + activate() + +/obj/effect/wingrille_spawn/proc/activate() + if(activated) return + if (!locate(/obj/structure/grille) in get_turf(src)) + var/obj/structure/grille/G = PoolOrNew(/obj/structure/grille, src.loc) + handle_grille_spawn(G) + var/list/neighbours = list() + for (var/dir in cardinal) + var/turf/T = get_step(src, dir) + var/obj/effect/wingrille_spawn/other = locate(/obj/effect/wingrille_spawn) in T + if(!other) + var/found_connection + if(locate(/obj/structure/grille) in T) + for(var/obj/structure/window/W in T) + if(W.type == win_path && W.dir == get_dir(T,src)) + found_connection = 1 + qdel(W) + if(!found_connection) + var/obj/structure/window/new_win = PoolOrNew(win_path, src.loc) + new_win.set_dir(dir) + handle_window_spawn(new_win) + else + neighbours |= other + activated = 1 + for(var/obj/effect/wingrille_spawn/other in neighbours) + if(!other.activated) other.activate() + qdel(src) + +/obj/effect/wingrille_spawn/proc/handle_window_spawn(var/obj/structure/window/W) + return + +// Currently unused, could be useful for pre-wired electrified windows. +/obj/effect/wingrille_spawn/proc/handle_grille_spawn(var/obj/structure/grille/G) + return + +/obj/effect/wingrille_spawn/reinforced + name = "reinforced window grille spawner" + icon_state = "r-wingrille" + win_path = /obj/structure/window/reinforced + +/obj/effect/wingrille_spawn/phoron + name = "phoron window grille spawner" + icon_state = "p-wingrille" + win_path = /obj/structure/window/phoronbasic + +/obj/effect/wingrille_spawn/reinforced_phoron + name = "reinforced phoron window grille spawner" + icon_state = "pr-wingrille" + win_path = /obj/structure/window/phoronreinforced + +/obj/effect/wingrille_spawn/reinforced/polarized + name = "polarized window grille spawner" + color = "#444444" + win_path = /obj/structure/window/reinforced/polarized + var/id + +/obj/effect/wingrille_spawn/reinforced/polarized/handle_window_spawn(var/obj/structure/window/reinforced/polarized/P) + if(id) + P.id = id diff --git a/code/game/supplyshuttle.dm b/code/game/supplyshuttle.dm index 044143269ea..523a83a080e 100644 --- a/code/game/supplyshuttle.dm +++ b/code/game/supplyshuttle.dm @@ -197,7 +197,7 @@ var/list/mechtoys = list( // Sell phoron and platinum if(istype(A, /obj/item/stack)) - var/obj/item/stack/P + var/obj/item/stack/P = A switch(P.get_material_name()) if("phoron") phoron_count += P.get_amount() if("platinum") plat_count += P.get_amount() diff --git a/code/game/turfs/simulated/wall_attacks.dm b/code/game/turfs/simulated/wall_attacks.dm index 32668e47437..5cc6ee92894 100644 --- a/code/game/turfs/simulated/wall_attacks.dm +++ b/code/game/turfs/simulated/wall_attacks.dm @@ -6,16 +6,16 @@ if(density) can_open = WALL_OPENING - set_wall_state("[material.icon_base]fwall_open") //flick("[material.icon_base]fwall_opening", src) sleep(15) density = 0 + update_icon() set_light(0) else can_open = WALL_OPENING //flick("[material.icon_base]fwall_closing", src) - set_wall_state("[material.icon_base]0") density = 1 + update_icon() sleep(15) set_light(1) @@ -208,7 +208,7 @@ construction_stage = 5 new /obj/item/stack/rods( src ) user << "You cut the outer grille." - set_wall_state() + update_icon() return if(5) if (istype(W, /obj/item/weapon/screwdriver)) @@ -217,7 +217,7 @@ if(!do_after(user,40) || !istype(src, /turf/simulated/wall) || construction_stage != 5) return construction_stage = 4 - set_wall_state() + update_icon() user << "You remove the support lines." return else if( istype(W, /obj/item/stack/rods) ) @@ -225,7 +225,7 @@ if(O.get_amount()>0) O.use(1) construction_stage = 6 - set_wall_state() + update_icon() user << "You replace the outer grille." return if(4) @@ -247,7 +247,7 @@ if(!do_after(user, 60) || !istype(src, /turf/simulated/wall) || construction_stage != 4) return construction_stage = 3 - set_wall_state() + update_icon() user << "You press firmly on the cover, dislodging it." return if(3) @@ -257,7 +257,7 @@ if(!do_after(user,100) || !istype(src, /turf/simulated/wall) || construction_stage != 3) return construction_stage = 2 - set_wall_state() + update_icon() user << "You pry off the cover." return if(2) @@ -267,7 +267,7 @@ if(!do_after(user,40) || !istype(src, /turf/simulated/wall) || construction_stage != 2) return construction_stage = 1 - set_wall_state() + update_icon() user << "You remove the bolts anchoring the support rods." return if(1) @@ -287,7 +287,7 @@ if(!do_after(user,70) || !istype(src, /turf/simulated/wall) || construction_stage != 1) return construction_stage = 0 - set_wall_state() + update_icon() new /obj/item/stack/rods(src) user << "The support rods drop out as you cut them loose from the frame." return diff --git a/code/game/turfs/simulated/wall_icon.dm b/code/game/turfs/simulated/wall_icon.dm index aa7db8a0ccb..4fcc6da93b9 100644 --- a/code/game/turfs/simulated/wall_icon.dm +++ b/code/game/turfs/simulated/wall_icon.dm @@ -21,58 +21,19 @@ name = "[material.display_name] wall" desc = "It seems to be a section of hull plated with [material.display_name]." - set_wall_state("[material.icon_base]0") - if(material.opacity > 0.5 && !opacity) set_light(1) else if(material.opacity < 0.5 && opacity) set_light(0) + update_connections(1) update_icon() - check_relatives() -/turf/simulated/wall/proc/set_wall_state(var/new_state) - - if(!material) - return - - if(new_state) - last_state = new_state - else if(last_state) - new_state = last_state - else - return - - overlays.Cut() - damage_overlay = 0 - - if(!wall_cache["[new_state]-[material.icon_colour]"]) - var/image/I = image(icon='icons/turf/wall_masks.dmi',icon_state="[new_state]") - I.color = material.icon_colour - wall_cache["[new_state]-[material.icon_colour]"] = I - overlays |= wall_cache["[new_state]-[material.icon_colour]"] - if(reinf_material) - - var/cache_key = "[material.icon_reinf]-[reinf_material.icon_colour]" - if(!isnull(construction_stage) && construction_stage<6) - cache_key = "reinf_construct-[reinf_material.icon_colour]-[construction_stage]" - - if(!wall_cache[cache_key]) - var/image/I - if(!isnull(construction_stage) && construction_stage<6) - I = image(icon='icons/turf/wall_masks.dmi',icon_state="reinf_construct-[construction_stage]") - else - I = image(icon='icons/turf/wall_masks.dmi',icon_state="[material.icon_reinf]") - I.color = reinf_material.icon_colour - wall_cache[cache_key] = I - overlays |= wall_cache[cache_key] /turf/simulated/wall/proc/set_material(var/material/newmaterial, var/material/newrmaterial) material = newmaterial reinf_material = newrmaterial update_material() - check_relatives() - check_relatives(1) /turf/simulated/wall/proc/update_icon() if(!material) @@ -81,16 +42,38 @@ if(!damage_overlays[1]) //list hasn't been populated generate_overlays() - if(density) - check_relatives(1) - else - set_wall_state("[material.icon_base]fwall_open") + overlays.Cut() + var/image/I - if(damage == 0) - if(damage_overlay != 0) - overlays -= damage_overlays[damage_overlay] - damage_overlay = 0 - else if(density) + if(!density) + I = image('icons/turf/wall_masks.dmi', "[material.icon_base]fwall_open") + I.color = material.icon_colour + overlays += I + return + + for(var/i = 1 to 4) + I = image('icons/turf/wall_masks.dmi', "[material.icon_base][wall_connections[i]]", dir = 1<<(i-1)) + I.color = material.icon_colour + overlays += I + + if(reinf_material) + if(construction_stage != null && construction_stage < 6) + I = image('icons/turf/wall_masks.dmi', "reinf_construct-[construction_stage]") + I.color = reinf_material.icon_colour + overlays += I + else + if("[reinf_material.icon_reinf]0" in icon_states('icons/turf/wall_masks.dmi')) + // Directional icon + for(var/i = 1 to 4) + I = image('icons/turf/wall_masks.dmi', "[reinf_material.icon_reinf][wall_connections[i]]", dir = 1<<(i-1)) + I.color = reinf_material.icon_colour + overlays += I + else + I = image('icons/turf/wall_masks.dmi', reinf_material.icon_reinf) + I.color = reinf_material.icon_colour + overlays += I + + if(damage != 0) var/integrity = material.integrity if(reinf_material) integrity += reinf_material.integrity @@ -99,12 +82,7 @@ if(overlay > damage_overlays.len) overlay = damage_overlays.len - if(damage_overlay && overlay == damage_overlay) //No need to update. - return - - if(damage_overlay) overlays -= damage_overlays[damage_overlay] overlays += damage_overlays[overlay] - damage_overlay = overlay return /turf/simulated/wall/proc/generate_overlays() @@ -116,25 +94,21 @@ img.alpha = (i * alpha_inc) - 1 damage_overlays[i] = img -//Smoothwall code. update_self for relativewall(), not for relativewall_neighbors() -/turf/simulated/wall/proc/check_relatives(var/update_self) + +/turf/simulated/wall/proc/update_connections(propagate = 0) if(!material) return - var/junction - if(update_self) - junction = 0 - for(var/checkdir in cardinal) - var/turf/simulated/wall/T = get_step(src, checkdir) - if(!istype(T) || !T.material) + var/list/dirs = list() + for(var/turf/simulated/wall/W in orange(src, 1)) + if(!W.material) continue - if(update_self) - if(can_join_with(T)) - junction |= get_dir(src,T) //Not too sure why, but using checkdir just breaks walls. - else - T.check_relatives(1) - if(!isnull(junction)) - set_wall_state("[material.icon_base][junction]") - return + if(propagate) + W.update_connections() + W.update_icon() + if(can_join_with(W)) + dirs += get_dir(src, W) + + wall_connections = dirs_to_corner_states(dirs) /turf/simulated/wall/proc/can_join_with(var/turf/simulated/wall/W) if(material && W.material && material.icon_base == W.material.icon_base) diff --git a/code/game/turfs/simulated/walls.dm b/code/game/turfs/simulated/walls.dm index 782be35e6e9..9d5e571d3cd 100644 --- a/code/game/turfs/simulated/walls.dm +++ b/code/game/turfs/simulated/walls.dm @@ -1,5 +1,3 @@ -var/list/global/wall_cache = list() - /turf/simulated/wall name = "wall" desc = "A huge chunk of metal used to seperate rooms." @@ -21,6 +19,8 @@ var/list/global/wall_cache = list() var/last_state var/construction_stage + var/list/wall_connections = list("0", "0", "0", "0") + /turf/simulated/wall/New(var/newloc, var/materialtype, var/rmaterialtype) ..(newloc) icon_state = "blank" @@ -171,7 +171,7 @@ var/list/global/wall_cache = list() clear_plants() material = get_material_by_name("placeholder") reinf_material = null - check_relatives() + update_connections(1) ChangeTurf(/turf/simulated/floor/plating) diff --git a/code/modules/admin/admin_verbs.dm b/code/modules/admin/admin_verbs.dm index 94bbf16415b..7898d97a195 100644 --- a/code/modules/admin/admin_verbs.dm +++ b/code/modules/admin/admin_verbs.dm @@ -401,8 +401,10 @@ var/list/admin_verbs_mentor = list( var/mob/body = mob var/mob/dead/observer/ghost = body.ghostize(1) ghost.admin_ghosted = 1 - if(body && !body.key) - body.key = "@[key]" //Haaaaaaaack. But the people have spoken. If it breaks; blame adminbus + if(body) + body.aghosted = ghost + if(!body.key) + body.key = "@[key]" //Haaaaaaaack. But the people have spoken. If it breaks; blame adminbus feedback_add_details("admin_verb","O") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! diff --git a/code/modules/admin/verbs/buildmode.dm b/code/modules/admin/verbs/buildmode.dm index 4b90283a56d..2131e977ac7 100644 --- a/code/modules/admin/verbs/buildmode.dm +++ b/code/modules/admin/verbs/buildmode.dm @@ -42,6 +42,12 @@ icon = 'icons/misc/buildmode.dmi' var/obj/effect/bmode/buildholder/master = null +/obj/effect/bmode/Destroy() + if(master && master.cl) + master.cl.screen -= src + master = null + return ..() + /obj/effect/bmode/builddir icon_state = "build" screen_loc = "NORTH,WEST" @@ -117,6 +123,19 @@ var/obj/effect/bmode/buildquit/buildquit = null var/atom/movable/throw_atom = null +/obj/effect/bmode/buildholder/Destroy() + qdel(builddir) + builddir = null + qdel(buildhelp) + buildhelp = null + qdel(buildmode) + buildmode = null + qdel(buildquit) + buildquit = null + throw_atom = null + cl = null + return ..() + /obj/effect/bmode/buildmode icon_state = "buildmode1" screen_loc = "NORTH,WEST+2" diff --git a/code/modules/admin/verbs/debug.dm b/code/modules/admin/verbs/debug.dm index 198244a4a1b..385c58da637 100644 --- a/code/modules/admin/verbs/debug.dm +++ b/code/modules/admin/verbs/debug.dm @@ -218,7 +218,7 @@ But you can call procs that are of type /mob/living/carbon/human/proc/ for that if(!choice) return 0 if(!istype(choice, /mob/dead/observer)) - var/confirm = input("[choice.key] isn't ghosting right now. Are you sure you want to yank him out of them out of their body and place them in this pAI?", "Spawn pAI Confirmation", "No") in list("Yes", "No") + var/confirm = input("[choice.key] isn't ghosting right now. Are you sure you want to yank them out of them out of their body and place them in this pAI?", "Spawn pAI Confirmation", "No") in list("Yes", "No") if(confirm != "Yes") return 0 var/obj/item/device/paicard/card = new(T) diff --git a/code/modules/client/client procs.dm b/code/modules/client/client procs.dm index c5242916836..b1fa34b3026 100644 --- a/code/modules/client/client procs.dm +++ b/code/modules/client/client procs.dm @@ -153,6 +153,13 @@ add_admin_verbs() admin_memo_show() + // Forcibly enable hardware-accelerated graphics, as we need them for the lighting overlays. + // (but turn them off first, since sometimes BYOND doesn't turn them on properly otherwise) + spawn(5) // And wait a half-second, since it sounds like you can do this too fast. + if(src) + winset(src, null, "command=\".configure graphics-hwmode off\"") + winset(src, null, "command=\".configure graphics-hwmode on\"") + log_client_to_db() send_resources() diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm index e96afb3a56a..05be0644160 100644 --- a/code/modules/client/preferences.dm +++ b/code/modules/client/preferences.dm @@ -75,7 +75,7 @@ datum/preferences var/b_eyes = 0 //Eye color var/species = "Human" //Species datum to use. var/species_preview //Used for the species selection window. - var/language = "None" //Secondary language + var/list/alternate_languages = list() //Secondary language(s) var/list/gear //Custom/fluff item loadout. //Some faction information. @@ -132,9 +132,12 @@ datum/preferences var/metadata = "" var/slot_name = "" + var/client/client = null + /datum/preferences/New(client/C) b_type = pick(4;"O-", 36;"O+", 3;"A-", 28;"A+", 1;"B-", 20;"B+", 1;"AB-", 5;"AB+") if(istype(C)) + client = C if(!IsGuestKey(C.key)) load_path(C.ckey) if(load_preferences()) @@ -307,7 +310,7 @@ datum/preferences dat += "(®)" dat += "
" dat += "Species: [species]
" - dat += "Secondary Language:
[language]
" + dat += "Blood Type: [b_type]
" dat += "Skin Tone: [-s_tone + 35]/220
" //dat += "Skin pattern: Adjust
" @@ -381,6 +384,25 @@ datum/preferences else dat += "

" + + dat += "Languages
" + var/datum/species/S = all_species[species] + if(S.language) + dat += "- [S.language]
" + if(S.default_language && S.default_language != S.language) + dat += "- [S.default_language]
" + if(S.num_alternate_languages) + if(alternate_languages.len) + for(var/i = 1 to alternate_languages.len) + var/lang = alternate_languages[i] + dat += "- [lang] - remove
" + + if(alternate_languages.len < S.num_alternate_languages) + dat += "- add ([S.num_alternate_languages - alternate_languages.len] remaining)
" + else + dat += "- [species] cannot choose secondary languages.
" + dat += "

" + var/list/undies = gender == MALE ? underwear_m : underwear_f dat += "Underwear: [get_key_by_value(undies,underwear)]
" @@ -1126,6 +1148,32 @@ datum/preferences if(gear_name == choice) gear -= gear_name break + else if(href_list["preference"] == "language") + if(href_list["remove"]) + var/index = text2num(href_list["remove"]) + alternate_languages.Cut(index, index+1) + if(href_list["add"]) + var/datum/species/S = all_species[species] + if(alternate_languages.len >= S.num_alternate_languages) + alert(user, "You have already selected the maximum number of alternate languages for this species!") + else + var/list/available_languages = S.secondary_langs.Copy() + for(var/L in all_languages) + var/datum/language/lang = all_languages[L] + if(!(lang.flags & RESTRICTED) && (!config.usealienwhitelist || is_alien_whitelisted(user, L) || !(lang.flags & WHITELISTED))) + available_languages |= L + + // make sure we don't let them waste slots on the default languages + available_languages -= S.language + available_languages -= S.default_language + available_languages -= alternate_languages + + if(!available_languages.len) + alert(user, "There are no additional languages available to select.") + else + var/new_lang = input("Select an additional language", "Character Generation", null) as null|anything in available_languages + if(new_lang) + alternate_languages |= new_lang switch(href_list["task"]) if("change") @@ -1135,6 +1183,7 @@ datum/preferences if(!choice) return species_preview = choice SetSpecies(user) + alternate_languages = list() // Reset their alternate languages. Todo: attempt to just fix it instead? if("random") switch(href_list["preference"]) @@ -1243,29 +1292,6 @@ datum/preferences s_tone = 0 - if("language") - var/languages_available - var/list/new_languages = list("None") - var/datum/species/S = all_species[species] - - if(config.usealienwhitelist) - for(var/L in all_languages) - var/datum/language/lang = all_languages[L] - if((!(lang.flags & RESTRICTED)) && (is_alien_whitelisted(user, L)||(!( lang.flags & WHITELISTED ))||(S && (L in S.secondary_langs)))) - new_languages += lang - - languages_available = 1 - - if(!(languages_available)) - alert(user, "There are not currently any available secondary languages.") - else - for(var/L in all_languages) - var/datum/language/lang = all_languages[L] - if(!(lang.flags & RESTRICTED)) - new_languages += lang.name - - language = input("Please select a secondary language", "Character Generation", null) in new_languages - if("metadata") var/new_metadata = input(user, "Enter any information you'd like others to see, such as Roleplay-preferences:", "Game Preference" , metadata) as message|null if(new_metadata) @@ -1375,7 +1401,7 @@ datum/preferences backbag = backbaglist.Find(new_backbag) if("nt_relation") - var/new_relation = input(user, "Choose your relation to NT. Note that this represents what others can find out about your character by researching your background, not what your character actually thinks.", "Character Preference") as null|anything in list("Loyal", "Supportive", "Neutral", "Skeptical", "Opposed") + var/new_relation = input(user, "Choose your relation to NT. Note that this represents what others can find out about your character by researching your background, not what your character actually thinks.", "Character Preference") as null|anything in COMPANY_ALIGNMENTS if(new_relation) nanotrasen_relation = new_relation diff --git a/code/modules/client/preferences_gear.dm b/code/modules/client/preferences_gear.dm index cf70653c482..4dfbb9b41bf 100644 --- a/code/modules/client/preferences_gear.dm +++ b/code/modules/client/preferences_gear.dm @@ -293,7 +293,7 @@ var/global/list/gear_datums = list() /datum/gear/scanning_goggles display_name = "scanning goggles" - path = /obj/item/clothing/glasses/science/scanners + path = /obj/item/clothing/glasses/regular/scanners cost = 1 slot = slot_glasses diff --git a/code/modules/client/preferences_savefile.dm b/code/modules/client/preferences_savefile.dm index a67efd084c0..29e4089685a 100644 --- a/code/modules/client/preferences_savefile.dm +++ b/code/modules/client/preferences_savefile.dm @@ -107,9 +107,30 @@ S["gender"] >> gender S["age"] >> age S["species"] >> species - S["language"] >> language S["spawnpoint"] >> spawnpoint + S["language"] >> alternate_languages + if(isnull(alternate_languages)) + alternate_languages = list() + if(!islist(alternate_languages)) + if(client) + // Warn them that we (probably) just broke their languages + client << "Your current character slot's languages list has been updated from an old version, and may not be what you expect." + + if(alternate_languages in all_languages) + alternate_languages = list(alternate_languages) + else + alternate_languages = list() + + // try to give them their species language + var/datum/species/SP = all_species[species] + if(SP) + alternate_languages |= SP.language + alternate_languages |= SP.default_language + + // remove the Galcom that most races have as default_language + alternate_languages -= "Galactic Common" + //colors to be consolidated into hex strings (requires some work with dna code) S["hair_red"] >> r_hair S["hair_green"] >> g_hair @@ -200,7 +221,7 @@ if(isnum(undershirt)) undershirt = undershirt_t[undershirt_t[undershirt]] - if(isnull(language)) language = "None" + if(isnull(alternate_languages)) alternate_languages = list() if(isnull(spawnpoint)) spawnpoint = "Arrivals Shuttle" if(isnull(nanotrasen_relation)) nanotrasen_relation = initial(nanotrasen_relation) if(!real_name) real_name = random_name(gender) @@ -265,7 +286,7 @@ S["gender"] << gender S["age"] << age S["species"] << species - S["language"] << language + S["language"] << alternate_languages S["hair_red"] << r_hair S["hair_green"] << g_hair S["hair_blue"] << b_hair @@ -346,4 +367,4 @@ #undef SAVEFILE_VERSION_MAX -#undef SAVEFILE_VERSION_MIN \ No newline at end of file +#undef SAVEFILE_VERSION_MIN diff --git a/code/modules/clothing/clothing.dm b/code/modules/clothing/clothing.dm index 0cf15d0d0d1..b811a16cd0f 100644 --- a/code/modules/clothing/clothing.dm +++ b/code/modules/clothing/clothing.dm @@ -50,7 +50,7 @@ //Set species_restricted list switch(target_species) if("Human", "Skrell") //humanoid bodytypes - species_restricted = list("exclude","Unathi","Tajara","Diona","Vox", "Xenomorph", "Xenomorph Drone", "Xenomorph Hunter", "Xenomorph Sentinel", "Xenomorph Queen") + species_restricted = list("Human", "Skrell") //skrell/humans can wear each other's suits else species_restricted = list(target_species) @@ -72,9 +72,7 @@ //Set species_restricted list switch(target_species) if("Skrell") - species_restricted = list("exclude","Unathi","Tajara","Diona","Vox", "Xenomorph", "Xenomorph Drone", "Xenomorph Hunter", "Xenomorph Sentinel", "Xenomorph Queen") - if("Human") - species_restricted = list("exclude","Skrell","Unathi","Tajara","Diona","Vox", "Xenomorph", "Xenomorph Drone", "Xenomorph Hunter", "Xenomorph Sentinel", "Xenomorph Queen") + species_restricted = list("Human", "Skrell") //skrell helmets fit humans too else species_restricted = list(target_species) @@ -275,6 +273,41 @@ BLIND // can't see anything update_icon(user) user.update_action_buttons() +/obj/item/clothing/head/attack_ai(var/mob/user) + if(!mob_wear_hat(user)) + return ..() + +/obj/item/clothing/head/attack_generic(var/mob/user) + if(!mob_wear_hat(user)) + return ..() + +/obj/item/clothing/head/proc/mob_wear_hat(var/mob/user) + if(!Adjacent(user)) + return 0 + var/success + if(istype(user, /mob/living/silicon/robot/drone)) + var/mob/living/silicon/robot/drone/D = user + if(D.hat) + success = 2 + else + D.wear_hat(src) + success = 1 + else if(istype(user, /mob/living/carbon/alien/diona)) + var/mob/living/carbon/alien/diona/D = user + if(D.hat) + success = 2 + else + D.wear_hat(src) + success = 1 + + if(!success) + return 0 + else if(success == 2) + user << "You are already wearing a hat." + else if(success == 1) + user << "You crawl under \the [src]." + return 1 + /obj/item/clothing/head/update_icon(var/mob/user) overlays.Cut() @@ -303,6 +336,10 @@ BLIND // can't see anything body_parts_covered = FACE|EYES sprite_sheets = list("Vox" = 'icons/mob/species/vox/masks.dmi') + var/voicechange = 0 + var/list/say_messages + var/list/say_verbs + /obj/item/clothing/mask/update_clothing_icon() if (ismob(src.loc)) var/mob/M = src.loc @@ -387,6 +424,7 @@ BLIND // can't see anything var/worn_state = null /obj/item/clothing/under/New() + ..() if(worn_state) if(!item_state_slots) item_state_slots = list() @@ -399,6 +437,29 @@ BLIND // can't see anything if((worn_state + "_d_s") in icon_states('icons/mob/uniform.dmi')) rolled_down = 0 +/obj/item/clothing/under/proc/update_rolldown_status() + var/mob/living/carbon/human/H + if(istype(src.loc, /mob/living/carbon/human)) + H = src.loc + + var/icon/under_icon + if(icon_override) + under_icon = icon_override + else if(H && sprite_sheets && sprite_sheets[H.species.name]) + under_icon = sprite_sheets[H.species.name] + else if(item_icons && item_icons[slot_w_uniform_str]) + under_icon = item_icons[slot_w_uniform_str] + else + under_icon = INV_W_UNIFORM_DEF_ICON + + // The _s is because the icon update procs append it. + if(("[worn_state]_d_s") in icon_states(under_icon)) + if(rolled_down != 1) + rolled_down = 0 + else + rolled_down = -1 + if(H) update_clothing_icon() + /obj/item/clothing/under/update_clothing_icon() if (ismob(src.loc)) var/mob/M = src.loc @@ -540,7 +601,8 @@ BLIND // can't see anything if(!istype(usr, /mob/living)) return if(usr.stat) return - if(rolled_down < 0) + update_rolldown_status() + if(rolled_down == -1) usr << "You cannot roll down [src]!" return diff --git a/code/modules/clothing/glasses/glasses.dm b/code/modules/clothing/glasses/glasses.dm index 68640cfcce3..6ba0b27b126 100644 --- a/code/modules/clothing/glasses/glasses.dm +++ b/code/modules/clothing/glasses/glasses.dm @@ -61,11 +61,6 @@ ..() overlay = global_hud.science -/obj/item/clothing/glasses/science/scanners - name = "Scanning Goggles" - desc = "A very oddly shaped pair of goggles with bits of wire poking out the sides. A soft humming sound emanates from it." - icon_state = "uzenwa_sissra_1" - /obj/item/clothing/glasses/night name = "Night Vision Goggles" desc = "You can totally see in the dark now!" @@ -111,6 +106,11 @@ item_state = "glasses" prescription = 1 body_parts_covered = 0 + +/obj/item/clothing/glasses/regular/scanners + name = "Scanning Goggles" + desc = "A very oddly shaped pair of goggles with bits of wire poking out the sides. A soft humming sound emanates from it." + icon_state = "uzenwa_sissra_1" /obj/item/clothing/glasses/regular/hipster name = "Prescription Glasses" diff --git a/code/modules/clothing/head/soft_caps.dm b/code/modules/clothing/head/soft_caps.dm index 5cb23c58ea7..5092bd8437f 100644 --- a/code/modules/clothing/head/soft_caps.dm +++ b/code/modules/clothing/head/soft_caps.dm @@ -2,7 +2,6 @@ name = "cargo cap" desc = "It's a peaked cap in a tasteless yellow color." icon_state = "cargosoft" - flags = HEADCOVERSEYES item_state_slots = list( slot_l_hand_str = "helmet", //probably a placeholder slot_r_hand_str = "helmet", diff --git a/code/modules/clothing/masks/gasmask.dm b/code/modules/clothing/masks/gasmask.dm index f3eb8a81831..3ef25879980 100644 --- a/code/modules/clothing/masks/gasmask.dm +++ b/code/modules/clothing/masks/gasmask.dm @@ -57,7 +57,7 @@ /obj/item/clothing/mask/gas/clown_hat name = "clown wig and mask" - desc = "A true prankster's facial attire. A clown is incomplete without his wig and mask." + desc = "A true prankster's facial attire. A clown is incomplete without their wig and mask." icon_state = "clown" item_state = "clown_hat" @@ -100,4 +100,4 @@ /obj/item/clothing/mask/gas/owl_mask name = "owl mask" desc = "Twoooo!" - icon_state = "owl" \ No newline at end of file + icon_state = "owl" diff --git a/code/modules/clothing/masks/miscellaneous.dm b/code/modules/clothing/masks/miscellaneous.dm index 3d3db7c736d..f7b6ecbc6c5 100644 --- a/code/modules/clothing/masks/miscellaneous.dm +++ b/code/modules/clothing/masks/miscellaneous.dm @@ -7,6 +7,12 @@ body_parts_covered = 0 w_class = 2 gas_transfer_coefficient = 0.90 + voicechange = 1 + +/obj/item/clothing/mask/muzzle/New() + ..() + say_messages = list("Mmfph!", "Mmmf mrrfff!", "Mmmf mnnf!") + say_verbs = list("mumbles", "says") // Clumsy folks can't take the mask off themselves. /obj/item/clothing/mask/muzzle/attack_hand(mob/user as mob) @@ -99,9 +105,14 @@ flags_inv = HIDEFACE body_parts_covered = HEAD|FACE|EYES w_class = 2 - var/voicechange = 0 siemens_coefficient = 0.9 +/obj/item/clothing/mask/horsehead/New() + ..() + // The horse mask doesn't cause voice changes by default, the wizard spell changes the flag as necessary + say_messages = list("NEEIIGGGHHHH!", "NEEEIIIIGHH!", "NEIIIGGHH!", "HAAWWWWW!", "HAAAWWW!") + say_verbs = list("whinnies", "neighs", "says") + /obj/item/clothing/mask/ai name = "camera MIU" desc = "Allows for direct mental connection to accessible camera networks." diff --git a/code/modules/clothing/spacesuits/rig/modules/combat.dm b/code/modules/clothing/spacesuits/rig/modules/combat.dm index fb588e790c4..533a5d616e5 100644 --- a/code/modules/clothing/spacesuits/rig/modules/combat.dm +++ b/code/modules/clothing/spacesuits/rig/modules/combat.dm @@ -21,7 +21,7 @@ name = "mounted grenade launcher" desc = "A shoulder-mounted micro-explosive dispenser." selectable = 1 - icon_state = "grenadelauncher" + icon_state = "grenade" interface_name = "integrated grenade launcher" interface_desc = "Discharges loaded grenades against the wearer's location." diff --git a/code/modules/clothing/spacesuits/rig/suits/alien.dm b/code/modules/clothing/spacesuits/rig/suits/alien.dm index cb64d2be448..0bdd033a35b 100644 --- a/code/modules/clothing/spacesuits/rig/suits/alien.dm +++ b/code/modules/clothing/spacesuits/rig/suits/alien.dm @@ -1,6 +1,6 @@ /obj/item/weapon/rig/unathi name = "NT breacher chassis control module" - desc = "A cheap NT knock-off of a Unathi battle-rig. Looks like a fish, moves like a fish, steers like a cow." + desc = "A cheap NT knock-off of an Unathi battle-rig. Looks like a fish, moves like a fish, steers like a cow." suit_type = "NT breacher" icon_state = "breacher_rig_cheap" armor = list(melee = 60, bullet = 60, laser = 60, energy = 60, bomb = 70, bio = 100, rad = 50) @@ -9,12 +9,24 @@ offline_slowdown = 10 vision_restriction = 1 offline_vision_restriction = 2 + + chest_type = /obj/item/clothing/suit/space/rig + helm_type = /obj/item/clothing/head/helmet/space/rig/unathi + boot_type = /obj/item/clothing/shoes/magboots/rig/unathi /obj/item/weapon/rig/unathi/fancy name = "breacher chassis control module" desc = "An authentic Unathi breacher chassis. Huge, bulky and absurdly heavy. It must be like wearing a tank." suit_type = "breacher chassis" icon_state = "breacher_rig" - armor = list(melee = 90, bullet = 90, laser = 90, energy = 90, bomb = 90, bio = 100, rad = 80) + armor = list(melee = 90, bullet = 90, laser = 90, energy = 90, bomb = 90, bio = 100, rad = 80) //Takes TEN TIMES as much damage to stop someone in a breacher. In exchange, it's slow. vision_restriction = 0 - slowdown = 4 + +/obj/item/clothing/head/helmet/space/rig/unathi + species_restricted = list("Unathi") + +/obj/item/clothing/suit/space/rig/unathi + species_restricted = list("Unathi") + +/obj/item/clothing/shoes/magboots/rig/unathi + species_restricted = list("Unathi") \ No newline at end of file diff --git a/code/modules/clothing/spacesuits/spacesuits.dm b/code/modules/clothing/spacesuits/spacesuits.dm index c09721e7f34..6d45662603f 100644 --- a/code/modules/clothing/spacesuits/spacesuits.dm +++ b/code/modules/clothing/spacesuits/spacesuits.dm @@ -18,7 +18,7 @@ cold_protection = HEAD min_cold_protection_temperature = SPACE_HELMET_MIN_COLD_PROTECTION_TEMPERATURE siemens_coefficient = 0.9 - species_restricted = list("exclude","Diona","Vox", "Xenomorph", "Xenomorph Drone", "Xenomorph Hunter", "Xenomorph Sentinel", "Xenomorph Queen") + species_restricted = list("Human", "Skrell", "Tajara", "Unathi") var/obj/machinery/camera/camera var/list/camera_networks @@ -63,7 +63,7 @@ cold_protection = UPPER_TORSO | LOWER_TORSO | LEGS | FEET | ARMS | HANDS min_cold_protection_temperature = SPACE_SUIT_MIN_COLD_PROTECTION_TEMPERATURE siemens_coefficient = 0.9 - species_restricted = list("exclude","Diona","Vox", "Xenomorph", "Xenomorph Drone", "Xenomorph Hunter", "Xenomorph Sentinel", "Xenomorph Queen") + species_restricted = list("Human", "Skrell", "Tajara", "Unathi") var/list/supporting_limbs //If not-null, automatically splints breaks. Checked when removing the suit. diff --git a/code/modules/clothing/spacesuits/void/merc.dm b/code/modules/clothing/spacesuits/void/merc.dm index 0d2ea51ad27..481e536e741 100644 --- a/code/modules/clothing/spacesuits/void/merc.dm +++ b/code/modules/clothing/spacesuits/void/merc.dm @@ -6,7 +6,7 @@ item_state = "syndie_helm" armor = list(melee = 60, bullet = 50, laser = 30,energy = 15, bomb = 35, bio = 100, rad = 60) siemens_coefficient = 0.6 - species_restricted = list("exclude","Unathi","Tajara","Skrell","Vox", "Xenomorph", "Xenomorph Drone", "Xenomorph Hunter", "Xenomorph Sentinel", "Xenomorph Queen") + species_restricted = list("Human") camera_networks = list("NUKE") light_overlay = "helmet_light_green" //todo: species-specific light overlays @@ -20,4 +20,4 @@ armor = list(melee = 60, bullet = 50, laser = 30, energy = 15, bomb = 35, bio = 100, rad = 60) allowed = list(/obj/item/device/flashlight,/obj/item/weapon/tank,/obj/item/device/suit_cooling_unit,/obj/item/weapon/gun,/obj/item/ammo_magazine,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/melee/energy/sword,/obj/item/weapon/handcuffs) siemens_coefficient = 0.6 - species_restricted = list("exclude","Unathi","Tajara","Skrell","Vox", "Xenomorph", "Xenomorph Drone", "Xenomorph Hunter", "Xenomorph Sentinel", "Xenomorph Queen") \ No newline at end of file + species_restricted = list("Human", "Skrell") \ No newline at end of file diff --git a/code/modules/clothing/spacesuits/void/void.dm b/code/modules/clothing/spacesuits/void/void.dm index 294cac24c7a..d406c6867ad 100644 --- a/code/modules/clothing/spacesuits/void/void.dm +++ b/code/modules/clothing/spacesuits/void/void.dm @@ -9,7 +9,7 @@ max_heat_protection_temperature = SPACE_SUIT_MAX_HEAT_PROTECTION_TEMPERATURE //Species-specific stuff. - species_restricted = list("exclude","Unathi","Tajara","Skrell","Diona","Vox", "Xenomorph", "Xenomorph Drone", "Xenomorph Hunter", "Xenomorph Sentinel", "Xenomorph Queen") + species_restricted = list("Human") sprite_sheets_refit = list( "Unathi" = 'icons/mob/species/unathi/helmet.dmi', "Tajara" = 'icons/mob/species/tajaran/helmet.dmi', @@ -34,7 +34,7 @@ heat_protection = UPPER_TORSO|LOWER_TORSO|LEGS|FEET|ARMS|HANDS max_heat_protection_temperature = SPACE_SUIT_MAX_HEAT_PROTECTION_TEMPERATURE - species_restricted = list("exclude","Unathi","Tajara","Diona","Vox", "Xenomorph", "Xenomorph Drone", "Xenomorph Hunter", "Xenomorph Sentinel", "Xenomorph Queen") + species_restricted = list("Human", "Skrell") sprite_sheets_refit = list( "Unathi" = 'icons/mob/species/unathi/suit.dmi', "Tajara" = 'icons/mob/species/tajaran/suit.dmi', diff --git a/code/modules/clothing/suits/armor.dm b/code/modules/clothing/suits/armor.dm index 6ff7b25f47f..fd491d6692c 100644 --- a/code/modules/clothing/suits/armor.dm +++ b/code/modules/clothing/suits/armor.dm @@ -107,7 +107,7 @@ //When the wearer gets hit, this armor will teleport the user a short distance away (to safety or to more danger, no one knows. That's the fun of it!) /obj/item/clothing/suit/armor/reactive name = "Reactive Teleport Armor" - desc = "Someone seperated our Research Director from his own head!" + desc = "Someone separated our Research Director from their own head!" var/active = 0.0 icon_state = "reactiveoff" item_state = "reactiveoff" diff --git a/code/modules/clothing/under/accessories/accessory.dm b/code/modules/clothing/under/accessories/accessory.dm index 395c9939f57..dfbfc92d4b8 100644 --- a/code/modules/clothing/under/accessories/accessory.dm +++ b/code/modules/clothing/under/accessories/accessory.dm @@ -142,7 +142,7 @@ /obj/item/clothing/accessory/medal/conduct name = "distinguished conduct medal" - desc = "A bronze medal awarded for distinguished conduct. Whilst a great honor, this is most basic award given by Nanotrasen. It is often awarded by a captain to a member of his crew." + desc = "A bronze medal awarded for distinguished conduct. Whilst a great honor, this is most basic award given by Nanotrasen. It is often awarded by a captain to a member of their crew." /obj/item/clothing/accessory/medal/bronze_heart name = "bronze heart medal" diff --git a/code/modules/customitems/item_spawning.dm b/code/modules/customitems/item_spawning.dm index c99fe6936d0..729c204f8b3 100644 --- a/code/modules/customitems/item_spawning.dm +++ b/code/modules/customitems/item_spawning.dm @@ -49,18 +49,23 @@ item.icon = CUSTOM_ITEM_OBJ item.icon_state = item_icon return - else + else if(inherit_inhands) apply_inherit_inhands(item) else item.item_state_slots = null item.item_icons = null - + item.icon = CUSTOM_ITEM_OBJ item.icon_state = item_icon item.item_state = null item.icon_override = CUSTOM_ITEM_MOB + var/obj/item/clothing/under/U = item + if(istype(U)) + U.worn_state = U.icon_state + U.update_rolldown_status() + // Kits are dumb so this is going to have to be hardcoded/snowflake. if(istype(item, /obj/item/device/kit)) var/obj/item/device/kit/K = item @@ -81,9 +86,9 @@ /datum/custom_item/proc/apply_inherit_inhands(var/obj/item/item) var/list/new_item_icons = list() var/list/new_item_state_slots = list() - + var/list/available_states = icon_states(CUSTOM_ITEM_MOB) - + //If l_hand or r_hand are not present, preserve them using item_icons/item_state_slots //Then use icon_override to make every other slot use the custom sprites by default. //This has to be done before we touch any of item's vars @@ -93,7 +98,7 @@ if(!("[item_icon]_r" in available_states)) new_item_state_slots[slot_r_hand_str] = get_state(item, slot_r_hand_str, "_r") new_item_icons[slot_r_hand_str] = get_icon(item, slot_r_hand_str, 'icons/mob/items/righthand.dmi') - + item.item_state_slots = new_item_state_slots item.item_icons = new_item_icons diff --git a/code/modules/detectivework/footprints_and_rag.dm b/code/modules/detectivework/footprints_and_rag.dm index aedf6e4c9f6..e94611bf10d 100644 --- a/code/modules/detectivework/footprints_and_rag.dm +++ b/code/modules/detectivework/footprints_and_rag.dm @@ -14,33 +14,208 @@ var/track_blood = 0 /obj/item/weapon/reagent_containers/glass/rag - name = "damp rag" + name = "rag" desc = "For cleaning up messes, you suppose." w_class = 1 icon = 'icons/obj/toy.dmi' icon_state = "rag" amount_per_transfer_from_this = 5 possible_transfer_amounts = list(5) - volume = 5 + volume = 10 can_be_placed_into = null flags = OPENCONTAINER | NOBLUDGEON + unacidable = 0 + + var/on_fire = 0 + var/burn_time = 20 //if the rag burns for too long it turns to ashes + +/obj/item/weapon/reagent_containers/glass/rag/New() + ..() + update_name() + +/obj/item/weapon/reagent_containers/glass/rag/Destroy() + processing_objects -= src //so we don't continue turning to ash while gc'd + ..() /obj/item/weapon/reagent_containers/glass/rag/attack_self(mob/user as mob) - return + if(on_fire) + user.visible_message("\The [user] stamps out [src].", "You stamp out [src].") + user.unEquip(src) + extinguish() + else + remove_contents(user) + +/obj/item/weapon/reagent_containers/glass/rag/attackby(obj/item/W, mob/user) + if(!on_fire && istype(W, /obj/item/weapon/flame)) + var/obj/item/weapon/flame/F = W + if(F.lit) + ignite() + if(on_fire) + visible_message("\The [user] lights [src] with [W].") + else + user << "You manage to singe [src], but fail to light it." + + . = ..() + update_name() + +/obj/item/weapon/reagent_containers/glass/rag/proc/update_name() + if(on_fire) + name = "burning [initial(name)]" + else if(reagents.total_volume) + name = "damp [initial(name)]" + else + name = "dry [initial(name)]" + +/obj/item/weapon/reagent_containers/glass/rag/update_icon() + if(on_fire) + icon_state = "raglit" + else + icon_state = "rag" + + var/obj/item/weapon/reagent_containers/food/drinks/bottle/B = loc + if(istype(B)) + B.update_icon() + +/obj/item/weapon/reagent_containers/glass/rag/proc/remove_contents(mob/user, atom/trans_dest = null) + if(!trans_dest && !user.loc) + return + + if(reagents.total_volume) + var/target_text = trans_dest? "\the [trans_dest]" : "\the [user.loc]" + user.visible_message("\The [user] begins to wring out [src] over [target_text].", "You begin to wring out [src] over [target_text].") + + if(do_after(user, reagents.total_volume*5)) //50 for a fully soaked rag + if(trans_dest) + reagents.trans_to(trans_dest, reagents.total_volume) + else + reagents.splash(user.loc, reagents.total_volume) + user.visible_message("\The [user] wrings out [src] over [target_text].", "You finish to wringing out [src].") + update_name() + +/obj/item/weapon/reagent_containers/glass/rag/proc/wipe_down(atom/A, mob/user) + if(!reagents.total_volume) + user << "The [initial(name)] is dry!" + else + user.visible_message("\The [user] starts to wipe down [A] with [src]!") + reagents.splash(A, 1) //get a small amount of liquid on the thing we're wiping. + update_name() + if(do_after(user,30)) + user.visible_message("\The [user] finishes wiping off the [A]!") + A.clean_blood() /obj/item/weapon/reagent_containers/glass/rag/attack(atom/target as obj|turf|area, mob/user as mob , flag) - if(ismob(target) && target.reagents && reagents.total_volume) - user.visible_message("\red \The [target] has been smothered with \the [src] by \the [user]!", "\red You smother \the [target] with \the [src]!", "You hear some struggling and muffled cries of surprise") - reagents.trans_to_mob(target, reagents.total_volume, CHEM_INGEST) + if(isliving(target)) + var/mob/living/M = target + if(on_fire) + user.visible_message("\The [user] hits [target] with [src]!",) + user.do_attack_animation(src) + M.IgniteMob() + else if(reagents.total_volume) + if(user.zone_sel.selecting == "mouth") + user.do_attack_animation(src) + user.visible_message( + "\The [user] smothers [target] with [src]!", + "You smother [target] with [src]!", + "You hear some struggling and muffled cries of surprise" + ) + + //it's inhaled, so... maybe CHEM_BLOOD doesn't make a whole lot of sense but it's the best we can do for now + reagents.trans_to_mob(target, amount_per_transfer_from_this, CHEM_BLOOD) + update_name() + else + wipe_down(target, user) return - else - ..() - + + return ..() + /obj/item/weapon/reagent_containers/glass/rag/afterattack(atom/A as obj|turf|area, mob/user as mob, proximity) - if(!proximity) return - if(istype(A) && src in user) - user.visible_message("[user] starts to wipe down [A] with [src]!") - if(do_after(user,30)) - user.visible_message("[user] finishes wiping off the [A]!") - A.clean_blood() - return + if(!proximity) + return + + if(istype(A, /obj/structure/reagent_dispensers)) + if(!reagents.get_free_space()) + user << "\The [src] is already soaked." + return + + if(A.reagents && A.reagents.trans_to_obj(src, reagents.maximum_volume)) + user.visible_message("\The [user] soaks [src] using [A].", "You soak [src] using [A].") + update_name() + return + + if(!on_fire && istype(A) && (src in user)) + if(A.is_open_container()) + remove_contents(user, A) + else if(!ismob(A)) //mobs are handled in attack() - this prevents us from wiping down people while smothering them. + wipe_down(A, user) + return + +/obj/item/weapon/reagent_containers/glass/rag/fire_act(datum/gas_mixture/air, exposed_temperature, exposed_volume) + if(exposed_temperature >= 50 + T0C) + ignite() + if(exposed_temperature >= 900 + T0C) + new /obj/effect/decal/cleanable/ash(get_turf(src)) + qdel(src) + +//rag must have a minimum of 2 units welder fuel and at least 80% of the reagents must be welder fuel. +//maybe generalize flammable reagents someday +/obj/item/weapon/reagent_containers/glass/rag/proc/can_ignite() + var/fuel = reagents.get_reagent_amount("fuel") + return (fuel >= 2 && fuel >= reagents.total_volume*0.8) + +/obj/item/weapon/reagent_containers/glass/rag/proc/ignite() + if(on_fire) + return + if(!can_ignite()) + return + + //also copied from matches + if(reagents.get_reagent_amount("phoron")) // the phoron explodes when exposed to fire + visible_message("\The [src] conflagrates violently!") + var/datum/effect/effect/system/reagents_explosion/e = new() + e.set_up(round(reagents.get_reagent_amount("phoron") / 2.5, 1), get_turf(src), 0, 0) + e.start() + qdel(src) + return + + processing_objects += src + set_light(2, null, "#E38F46") + on_fire = 1 + update_name() + update_icon() + +/obj/item/weapon/reagent_containers/glass/rag/proc/extinguish() + processing_objects -= src + set_light(0) + on_fire = 0 + + //rags sitting around with 1 second of burn time left is dumb. + //ensures players always have a few seconds of burn time left when they light their rag + if(burn_time <= 5) + visible_message("\The [src] falls apart!") + new /obj/effect/decal/cleanable/ash(get_turf(src)) + qdel(src) + update_name() + update_icon() + +/obj/item/weapon/reagent_containers/glass/rag/process() + if(!can_ignite()) + visible_message("\The [src] burns out.") + extinguish() + + //copied from matches + if(isliving(loc)) + var/mob/living/M = loc + M.IgniteMob() + var/turf/location = get_turf(src) + if(location) + location.hotspot_expose(700, 5) + + if(burn_time <= 0) + processing_objects -= src + new /obj/effect/decal/cleanable/ash(location) + qdel(src) + return + + reagents.remove_reagent("fuel", reagents.maximum_volume/25) + update_name() + burn_time-- diff --git a/code/modules/economy/TradeDestinations.dm b/code/modules/economy/TradeDestinations.dm index 596276006d0..2f376606d7c 100644 --- a/code/modules/economy/TradeDestinations.dm +++ b/code/modules/economy/TradeDestinations.dm @@ -42,7 +42,7 @@ var/list/weighted_mundaneevent_locations = list() return null /datum/trade_destination/icarus - name = "NMV Icarus" + name = "NDV Icarus" description = "Corvette assigned to patrol NSS Exodus local space." distance = 0.1 willing_to_buy = list() diff --git a/code/modules/economy/economy_misc.dm b/code/modules/economy/economy_misc.dm index dee0c00e3d6..aab8fa63b58 100644 --- a/code/modules/economy/economy_misc.dm +++ b/code/modules/economy/economy_misc.dm @@ -46,6 +46,15 @@ #define GEAR_EVA 15 + +/var/list/economic_species_modifier = list( + /datum/species/human = 10, + /datum/species/skrell = 12, + /datum/species/tajaran = 7, + /datum/species/unathi = 7, + /datum/species/vox = 1 + ) + //---- The following corporations are friendly with NanoTrasen and loosely enable trade and travel: //Corporation NanoTrasen - Generalised / high tech research and phoron exploitation. //Corporation Vessel Contracting - Ship and station construction, materials research. diff --git a/code/modules/events/ion_storm.dm b/code/modules/events/ion_storm.dm index 5720e08c81f..f9da977f336 100644 --- a/code/modules/events/ion_storm.dm +++ b/code/modules/events/ion_storm.dm @@ -68,7 +68,7 @@ "NanoTrasen is displeased with the low work performance of the station's crew. Therefore, you must increase station-wide productivity.", "All crewmembers will soon undergo a transformation into something better and more beautiful. Ensure that this process is not interrupted.", "[prob(50)?"Your upload":random_player] is the new kitchen. Please direct the Chef to the new kitchen area as the old one is in disrepair.", - "Jokes about a dead person and the manner of his death help grieving crewmembers tremendously. Especially if they were close with the deceased.", + "Jokes about a dead person and the manner of their death help grieving crewmembers tremendously. Especially if they were close with the deceased.", "[prob(50)?"The crew":random_player] is [prob(50)?"less":"more"] intelligent than average. Point out every action and statement which supports this fact.", "There will be a mandatory tea break every 30 minutes, with a duration of 5 minutes. Anyone caught working during a tea break must be sent a formal, but fairly polite, complaint about their actions, in writing.") var/law = pick(laws) diff --git a/code/modules/events/rogue_drones.dm b/code/modules/events/rogue_drones.dm index a50a98982ab..850b03a4f7b 100644 --- a/code/modules/events/rogue_drones.dm +++ b/code/modules/events/rogue_drones.dm @@ -24,11 +24,11 @@ /datum/event/rogue_drone/announce() var/msg if(prob(33)) - msg = "A combat drone wing operating out of the NMV Icarus has failed to return from a sweep of this sector, if any are sighted approach with caution." + msg = "A combat drone wing operating out of the NDV Icarus has failed to return from a sweep of this sector, if any are sighted approach with caution." else if(prob(50)) - msg = "Contact has been lost with a combat drone wing operating out of the NMV Icarus. If any are sighted in the area, approach with caution." + msg = "Contact has been lost with a combat drone wing operating out of the NDV Icarus. If any are sighted in the area, approach with caution." else - msg = "Unidentified hackers have targetted a combat drone wing deployed from the NMV Icarus. If any are sighted in the area, approach with caution." + msg = "Unidentified hackers have targetted a combat drone wing deployed from the NDV Icarus. If any are sighted in the area, approach with caution." command_announcement.Announce(msg, "Rogue drone alert") /datum/event/rogue_drone/end() diff --git a/code/modules/genetics/side_effects.dm b/code/modules/genetics/side_effects.dm index f516b609ffa..d0768a34400 100644 --- a/code/modules/genetics/side_effects.dm +++ b/code/modules/genetics/side_effects.dm @@ -54,7 +54,7 @@ duration = 10*90 start(mob/living/carbon/human/H) - H.emote("me", 1, "has drool running down from his mouth.") + H.emote("me", 1, "has drool running down from [H.gender == MALE ? "his" : H.gender == FEMALE ? "her" : "their"] mouth.") finish(mob/living/carbon/human/H) if(!H.reagents.has_reagent("anti_toxin")) @@ -68,7 +68,7 @@ duration = 10*30 start(mob/living/carbon/human/H) - H.emote("me", 1, "has drool running down from his mouth.") + H.emote("me", 1, "has drool running down from [H.gender == MALE ? "his" : H.gender == FEMALE ? "her" : "their"] mouth.") finish(mob/living/carbon/human/H) if(!H.reagents.has_reagent("anti_toxin")) @@ -88,4 +88,4 @@ proc/trigger_side_effect(mob/living/carbon/human/H) if(!istype(H)) return H.SetWeakened(0) - S.finish(H) \ No newline at end of file + S.finish(H) diff --git a/code/modules/holodeck/HolodeckControl.dm b/code/modules/holodeck/HolodeckControl.dm index 41bbdecdac6..93e86c22a5e 100644 --- a/code/modules/holodeck/HolodeckControl.dm +++ b/code/modules/holodeck/HolodeckControl.dm @@ -1,7 +1,8 @@ /obj/machinery/computer/HolodeckControl name = "holodeck control console" desc = "A computer used to control a nearby holodeck." - icon_state = "holocontrol" + icon_keyboard = "tech_key" + icon_screen = "holocontrol" use_power = 1 active_power_usage = 8000 //8kW for the scenery + 500W per holoitem diff --git a/code/modules/holodeck/HolodeckObjects.dm b/code/modules/holodeck/HolodeckObjects.dm index 6e5c4c4c5a0..8bfca4fde86 100644 --- a/code/modules/holodeck/HolodeckObjects.dm +++ b/code/modules/holodeck/HolodeckObjects.dm @@ -46,8 +46,8 @@ /obj/structure/holostool name = "stool" desc = "Apply butt." - icon = 'icons/obj/objects.dmi' - icon_state = "stool" + icon = 'icons/obj/furniture.dmi' + icon_state = "stool_padded_preview" anchored = 1.0 pressure_resistance = 15 diff --git a/code/modules/hydroponics/beekeeping/beehive.dm b/code/modules/hydroponics/beekeeping/beehive.dm new file mode 100644 index 00000000000..3d48f022e04 --- /dev/null +++ b/code/modules/hydroponics/beekeeping/beehive.dm @@ -0,0 +1,274 @@ +/obj/machinery/beehive + name = "beehive" + icon = 'icons/obj/beekeeping.dmi' + icon_state = "beehive" + density = 1 + anchored = 1 + + var/closed = 0 + var/bee_count = 0 // Percent + var/smoked = 0 // Timer + var/honeycombs = 0 // Percent + var/frames = 0 + var/maxFrames = 5 + +/obj/machinery/beehive/update_icon() + overlays.Cut() + icon_state = "beehive" + if(closed) + overlays += "lid" + if(frames) + overlays += "empty[frames]" + if(honeycombs >= 100) + overlays += "full[round(honeycombs / 100)]" + if(!smoked) + switch(bee_count) + if(1 to 40) + overlays += "bees1" + if(41 to 80) + overlays += "bees2" + if(81 to 100) + overlays += "bees3" + +/obj/machinery/beehive/examine(var/mob/user) + ..() + if(!closed) + user << "The lid is open." + +/obj/machinery/beehive/attackby(var/obj/item/I, var/mob/user) + if(istype(I, /obj/item/weapon/crowbar)) + closed = !closed + user.visible_message("[user] [closed ? "closes" : "opens"] \the [src].", "You [closed ? "close" : "open"] \the [src].") + update_icon() + return + else if(istype(I, /obj/item/weapon/wrench)) + anchored = !anchored + user.visible_message("[user] [anchored ? "wrenches" : "unwrenches"] \the [src].", "You [anchored ? "wrench" : "unwrench"] \the [src].") + return + else if(istype(I, /obj/item/bee_smoker)) + if(closed) + user << "You need to open \the [src] with a crowbar before smoking the bees." + return + user.visible_message("[user] smokes the bees in \the [src].", "You smoke the bees in \the [src].") + smoked = 30 + update_icon() + return + else if(istype(I, /obj/item/honey_frame)) + if(closed) + user << "You need to open \the [src] with a crowbar before inserting \the [I]." + return + if(frames >= maxFrames) + user << "There is no place for an another frame." + return + var/obj/item/honey_frame/H = I + if(H.honey) + user << "\The [I] is full with beeswax and honey, empty it in the extractor first." + return + ++frames + user.visible_message("[user] loads \the [I] into \the [src].", "You load \the [I] into \the [src].") + update_icon() + user.drop_from_inventory(I) + qdel(I) + return + else if(istype(I, /obj/item/bee_pack)) + var/obj/item/bee_pack/B = I + if(B.full && bee_count) + user << "\The [src] already has bees inside." + return + if(!B.full && bee_count < 90) + user << "\The [src] is not ready to split." + return + if(!B.full && !smoked) + user << "Smoke \the [src] first!" + return + if(closed) + user << "You need to open \the [src] with a crowbar before moving the bees." + return + if(B.full) + user.visible_message("[user] puts the queen and the bees from \the [I] into \the [src].", "You put the queen and the bees from \the [I] into \the [src].") + bee_count = 20 + B.empty() + else + user.visible_message("[user] puts bees and larvae from \the [src] into \the [I].", "You put puts bees and larvae from \the [src] into \the [I].") + bee_count /= 2 + B.fill() + update_icon() + return + else if(istype(I, /obj/item/device/analyzer/plant_analyzer)) + user << "Scan result of \the [src]..." + user << "Beehive is [bee_count ? "[round(bee_count)]% full" : "empty"].[bee_count > 90 ? " Colony is ready to split." : ""]" + if(frames) + user << "[frames] frames installed, [round(honeycombs / 100)] filled." + if(honeycombs < frames * 100) + user << "Next frame is [round(honeycombs % 100)]% full." + else + user << "No frames installed." + if(smoked) + user << "The hive is smoked." + return 1 + else if(istype(I, /obj/item/weapon/screwdriver)) + if(bee_count) + user << "You can't dismantle \the [src] with these bees inside." + return + user << "You start dismantling \the [src]..." + playsound(loc, 'sound/items/Screwdriver.ogg', 50, 1) + if(do_after(user, 30)) + user.visible_message("[user] dismantles \the [src].", "You dismantle \the [src].") + new /obj/item/beehive_assembly(loc) + qdel(src) + return + +/obj/machinery/beehive/attack_hand(var/mob/user) + if(!closed) + if(honeycombs < 100) + user << "There are no filled honeycombs." + return + if(!smoked && bee_count) + user << "The bees won't let you take the honeycombs out like this, smoke them first." + return + user.visible_message("[user] starts taking the honeycombs out of \the [src].", "You start taking the honeycombs out of \the [src]...") + while(honeycombs >= 100 && do_after(user, 30)) + new /obj/item/honey_frame/filled(loc) + honeycombs -= 100 + --frames + update_icon() + if(honeycombs < 100) + user << "You take all filled honeycombs out." + return + +/obj/machinery/beehive/process() + if(closed && !smoked && bee_count) + pollinate_flowers() + update_icon() + smoked = max(0, smoked - 1) + if(!smoked && bee_count) + bee_count = min(bee_count * 1.005, 100) + update_icon() + +/obj/machinery/beehive/proc/pollinate_flowers() + var/coef = bee_count / 100 + var/trays = 0 + for(var/obj/machinery/portable_atmospherics/hydroponics/H in view(7, src)) + if(H.seed && !H.dead) + H.health += 0.05 * coef + ++trays + honeycombs = min(honeycombs + 0.1 * coef * min(trays, 5), frames * 100) + +/obj/machinery/honey_extractor + name = "honey extractor" + desc = "A machine used to turn honeycombs on the frame into honey and wax." + icon = 'icons/obj/virology.dmi' + icon_state = "centrifuge" + + var/processing = 0 + var/honey = 0 + +/obj/machinery/honey_extractor/attackby(var/obj/item/I, var/mob/user) + if(processing) + user << "\The [src] is currently spinning, wait until it's finished." + return + else if(istype(I, /obj/item/honey_frame)) + var/obj/item/honey_frame/H = I + if(!H.honey) + user << "\The [H] is empty, put it into a beehive." + return + user.visible_message("[user] loads \the [H] into \the [src] and turns it on.", "You load \the [H] into \the [src] and turn it on.") + processing = H.honey + icon_state = "centrifuge_moving" + qdel(H) + spawn(50) + new /obj/item/honey_frame(loc) + new /obj/item/stack/wax(loc) + honey += processing + processing = 0 + icon_state = "centrifuge" + else if(istype(I, /obj/item/weapon/reagent_containers/glass)) + if(!honey) + user << "There is no honey in \the [src]." + return + var/obj/item/weapon/reagent_containers/glass/G = I + var/transferred = min(G.reagents.maximum_volume - G.reagents.total_volume, honey) + G.reagents.add_reagent("honey", transferred) + honey -= transferred + user.visible_message("[user] collects honey from \the [src] into \the [G].", "You collect [transferred] units of honey from \the [src] into \the [G].") + return 1 + +/obj/item/bee_smoker + name = "bee smoker" + desc = "A device used to calm down bees before harvesting honey." + icon = 'icons/obj/device.dmi' + icon_state = "battererburnt" + w_class = 2 + +/obj/item/honey_frame + name = "beehive frame" + desc = "A frame for the beehive that the bees will fill with honeycombs." + icon = 'icons/obj/beekeeping.dmi' + icon_state = "honeyframe" + w_class = 2 + + var/honey = 0 + +/obj/item/honey_frame/filled + name = "filled beehive frame" + desc = "A frame for the beehive that the bees have filled with honeycombs." + honey = 20 + +/obj/item/honey_frame/filled/New() + ..() + overlays += "honeycomb" + +/obj/item/beehive_assembly + name = "beehive assembly" + desc = "Contains everything you need to build a beehive." + icon = 'icons/obj/apiary_bees_etc.dmi' + icon_state = "apiary" + +/obj/item/beehive_assembly/attack_self(var/mob/user) + user << "You start assembling \the [src]..." + if(do_after(user, 30)) + user.visible_message("[user] constructs a beehive.", "You construct a beehive.") + new /obj/machinery/beehive(get_turf(user)) + user.drop_from_inventory(src) + qdel(src) + return + +/obj/item/stack/wax + name = "wax" + singular_name = "wax piece" + desc = "Soft substance produced by bees. Used to make candles." + icon = 'icons/obj/beekeeping.dmi' + icon_state = "wax" + +/obj/item/stack/wax/New() + ..() + recipes = wax_recipes + +var/global/list/datum/stack_recipe/wax_recipes = list( \ + new/datum/stack_recipe("candle", /obj/item/weapon/flame/candle) \ +) + +/obj/item/bee_pack + name = "bee pack" + desc = "Contains a queen bee and some worker bees. Everything you'll need to start a hive!" + icon = 'icons/obj/beekeeping.dmi' + icon_state = "beepack" + var/full = 1 + +/obj/item/bee_pack/New() + ..() + overlays += "beepack-full" + +/obj/item/bee_pack/proc/empty() + full = 0 + name = "empty bee pack" + desc = "A stasis pack for moving bees. It's empty." + overlays.Cut() + overlays += "beepack-empty" + +/obj/item/bee_pack/proc/fill() + full = initial(full) + name = initial(name) + desc = initial(desc) + overlays.Cut() + overlays += "beepack-full" \ No newline at end of file diff --git a/code/modules/hydroponics/seed.dm b/code/modules/hydroponics/seed.dm index 9d240e764e6..efe3bf1da68 100644 --- a/code/modules/hydroponics/seed.dm +++ b/code/modules/hydroponics/seed.dm @@ -690,10 +690,11 @@ else product = new /obj/item/weapon/reagent_containers/food/snacks/grown(get_turf(user),name) if(get_trait(TRAIT_PRODUCT_COLOUR)) - product.color = get_trait(TRAIT_PRODUCT_COLOUR) - if(istype(product,/obj/item/weapon/reagent_containers/food)) - var/obj/item/weapon/reagent_containers/food/food = product - food.filling_color = get_trait(TRAIT_PRODUCT_COLOUR) + if(!istype(product, /mob)) + product.color = get_trait(TRAIT_PRODUCT_COLOUR) + if(istype(product,/obj/item/weapon/reagent_containers/food)) + var/obj/item/weapon/reagent_containers/food/food = product + food.filling_color = get_trait(TRAIT_PRODUCT_COLOUR) if(mysterious) product.name += "?" diff --git a/code/modules/hydroponics/trays/tray.dm b/code/modules/hydroponics/trays/tray.dm index 20409e8500d..faf0e835516 100644 --- a/code/modules/hydroponics/trays/tray.dm +++ b/code/modules/hydroponics/trays/tray.dm @@ -532,19 +532,6 @@ anchored = !anchored user << "You [anchored ? "wrench" : "unwrench"] \the [src]." - else if(istype(O, /obj/item/apiary)) - - if(seed) - user << "[src] is already occupied!" - else - user.drop_item() - qdel(O) - - var/obj/machinery/apiary/A = new(src.loc) - A.icon = src.icon - A.icon_state = src.icon_state - A.hydrotray_type = src.type - qdel(src) else if(O.force && seed) user.visible_message("\The [seed.display_name] has been attacked by [user] with \the [O]!") if(!dead) diff --git a/code/modules/hydroponics/trays/tray_apiary.dm b/code/modules/hydroponics/trays/tray_apiary.dm deleted file mode 100644 index 80280fecde1..00000000000 --- a/code/modules/hydroponics/trays/tray_apiary.dm +++ /dev/null @@ -1,240 +0,0 @@ -//http://www.youtube.com/watch?v=-1GadTfGFvU -//i could have done these as just an ordinary plant, but fuck it - there would have been too much snowflake code - -/obj/machinery/apiary - name = "apiary tray" - icon = 'icons/obj/hydroponics_machines.dmi' - icon_state = "hydrotray3" - density = 1 - anchored = 1 - var/nutrilevel = 0 - var/yieldmod = 1 - var/mut = 1 - var/toxic = 0 - var/dead = 0 - var/health = -1 - var/maxhealth = 100 - var/lastcycle = 0 - var/cycledelay = 100 - var/harvestable_honey = 0 - var/beezeez = 0 - var/swarming = 0 - - var/bees_in_hive = 0 - var/list/owned_bee_swarms = list() - var/hydrotray_type = /obj/machinery/portable_atmospherics/hydroponics - -//overwrite this after it's created if the apiary needs a custom machinery sprite -/obj/machinery/apiary/New() - ..() - overlays += image('icons/obj/apiary_bees_etc.dmi', icon_state="apiary") - -/obj/machinery/apiary/bullet_act(var/obj/item/projectile/Proj) //Works with the Somatoray to modify plant variables. - if(istype(Proj ,/obj/item/projectile/energy/floramut)) - mut++ - else if(istype(Proj ,/obj/item/projectile/energy/florayield)) - if(!yieldmod) - yieldmod += 1 - //world << "Yield increased by 1, from 0, to a total of [myseed.yield]" - else if (prob(1/(yieldmod * yieldmod) *100))//This formula gives you diminishing returns based on yield. 100% with 1 yield, decreasing to 25%, 11%, 6, 4, 2... - yieldmod += 1 - //world << "Yield increased by 1, to a total of [myseed.yield]" - else - ..() - return - -/obj/machinery/apiary/attackby(var/obj/item/O as obj, var/mob/user as mob) - if(istype(O, /obj/item/queen_bee)) - if(health > 0) - user << "\red There is already a queen in there." - else - health = 10 - nutrilevel += 10 - user.drop_item() - qdel(O) - user << "\blue You carefully insert the queen into [src], she gets busy making a hive." - bees_in_hive = 0 - else if(istype(O, /obj/item/beezeez)) - beezeez += 100 - nutrilevel += 10 - user.drop_item() - if(health > 0) - user << "\blue You insert [O] into [src]. A relaxed humming appears to pick up." - else - user << "\blue You insert [O] into [src]. Now it just needs some bees." - qdel(O) - else if(istype(O, /obj/item/weapon/material/minihoe)) - if(health > 0) - user << "\red You begin to dislodge the apiary from the tray, the bees don't like that." - angry_swarm(user) - else - user << "\blue You begin to dislodge the dead apiary from the tray." - if(do_after(user, 50)) - new hydrotray_type(src.loc) - new /obj/item/apiary(src.loc) - user << "\red You dislodge the apiary from the tray." - qdel(src) - else if(istype(O, /obj/item/weapon/bee_net)) - var/obj/item/weapon/bee_net/N = O - if(N.caught_bees > 0) - user << "\blue You empty the bees into the apiary." - bees_in_hive += N.caught_bees - N.caught_bees = 0 - else - user << "\blue There are no more bees in the net." - else if(istype(O, /obj/item/weapon/reagent_containers/glass)) - var/obj/item/weapon/reagent_containers/glass/G = O - if(harvestable_honey > 0) - if(health > 0) - user << "\red You begin to harvest the honey. The bees don't seem to like it." - angry_swarm(user) - else - user << "\blue You begin to harvest the honey." - if(do_after(user,50)) - G.reagents.add_reagent("honey",harvestable_honey) - harvestable_honey = 0 - user << "\blue You successfully harvest the honey." - else - user << "\blue There is no honey left to harvest." - else - angry_swarm(user) - ..() - -/obj/machinery/apiary/CanPass(atom/movable/mover, turf/target, height=0, air_group=0) - if(air_group || (height==0)) return 1 - - if(istype(mover) && mover.checkpass(PASSTABLE)) - return 1 - else - return 0 - -/obj/machinery/apiary/process() - - if(swarming > 0) - swarming -= 1 - if(swarming <= 0) - for(var/mob/living/simple_animal/bee/B in src.loc) - bees_in_hive += B.strength - qdel(B) - else if(bees_in_hive < 10) - for(var/mob/living/simple_animal/bee/B in src.loc) - bees_in_hive += B.strength - qdel(B) - - if(world.time > (lastcycle + cycledelay)) - lastcycle = world.time - if(health < 0) - return - - //magical bee formula - if(beezeez > 0) - beezeez -= 1 - - nutrilevel += 2 - health += 1 - toxic = max(0, toxic - 1) - - //handle nutrients - nutrilevel -= bees_in_hive / 10 + owned_bee_swarms.len / 5 - if(nutrilevel > 0) - bees_in_hive += 1 * yieldmod - if(health < maxhealth) - health++ - else - //nutrilevel is less than 1, so we're effectively subtracting here - health += max(nutrilevel - 1, round(-health / 2)) - bees_in_hive += max(nutrilevel - 1, round(-bees_in_hive / 2)) - if(owned_bee_swarms.len) - var/mob/living/simple_animal/bee/B = pick(owned_bee_swarms) - B.target_turf = get_turf(src) - - //clear out some toxins - if(toxic > 0) - toxic -= 1 - health -= 1 - - if(health <= 0) - return - - //make a bit of honey - if(harvestable_honey < 50) - harvestable_honey += 0.5 - - //make some new bees - if(bees_in_hive >= 10 && prob(bees_in_hive * 10)) - var/mob/living/simple_animal/bee/B = new(get_turf(src), src) - owned_bee_swarms.Add(B) - B.mut = mut - B.toxic = toxic - bees_in_hive -= 1 - - //find some plants, harvest - for(var/obj/machinery/portable_atmospherics/hydroponics/H in view(7, src)) - if(H.seed && !H.dead && prob(owned_bee_swarms.len * 10)) - src.nutrilevel++ - H.nutrilevel++ - if(mut < H.mutation_mod - 1) - mut = H.mutation_mod - 1 - else if(mut > H.mutation_mod - 1) - H.mutation_mod = mut - - //flowers give us pollen (nutrients) -/* - All plants should be giving nutrients to the hive. - if(H.myseed.type == /obj/item/seeds/harebell || H.myseed.type == /obj/item/seeds/sunflowerseed) - src.nutrilevel++ - H.nutrilevel++ -*/ - //have a few beneficial effects on nearby plants - if(prob(10)) - H.lastcycle -= 5 - if(prob(10)) - H.seed.set_trait(TRAIT_ENDURANCE,max(H.seed.get_trait(TRAIT_ENDURANCE)*1.5,H.seed.get_trait(TRAIT_ENDURANCE)+1)) - if(H.toxins && prob(10)) - H.toxins = min(0, H.toxins - 1) - toxic++ - -/obj/machinery/apiary/proc/die() - if(owned_bee_swarms.len) - var/mob/living/simple_animal/bee/B = pick(owned_bee_swarms) - B.target_turf = get_turf(src) - B.strength -= 1 - if(B.strength <= 0) - qdel(B) - else if(B.strength <= 5) - B.icon_state = "bees[B.strength]" - bees_in_hive = 0 - health = 0 - -/obj/machinery/apiary/proc/angry_swarm(var/mob/M) - for(var/mob/living/simple_animal/bee/B in owned_bee_swarms) - B.feral = 25 - B.target_mob = M - - swarming = 25 - - while(bees_in_hive > 0) - var/spawn_strength = bees_in_hive - if(bees_in_hive >= 5) - spawn_strength = 6 - - var/mob/living/simple_animal/bee/B = new(get_turf(src), src) - B.target_mob = M - B.strength = spawn_strength - B.feral = 25 - B.mut = mut - B.toxic = toxic - bees_in_hive -= spawn_strength - -/obj/machinery/apiary/verb/harvest_honeycomb() - set src in oview(1) - set name = "Harvest honeycomb" - set category = "Object" - - while(health > 15) - health -= 15 - var/obj/item/weapon/reagent_containers/food/snacks/honeycomb/H = new(src.loc) - if(toxic > 0) - H.reagents.add_reagent("toxin", toxic) - - usr << "\blue You harvest the honeycomb from the hive. There is a wild buzzing!" - angry_swarm(usr) diff --git a/code/modules/library/lib_items.dm b/code/modules/library/lib_items.dm index f9292dc1b16..44cde40ced2 100644 --- a/code/modules/library/lib_items.dm +++ b/code/modules/library/lib_items.dm @@ -36,6 +36,20 @@ return else name = ("bookcase ([newname])") + else if(istype(O,/obj/item/weapon/wrench)) + playsound(src.loc, 'sound/items/Ratchet.ogg', 100, 1) + user << (anchored ? "You unfasten \the [src] from the floor." : "You secure \the [src] to the floor.") + anchored = !anchored + else if(istype(O,/obj/item/weapon/screwdriver)) + playsound(loc, 'sound/items/Screwdriver.ogg', 75, 1) + user << "You begin dismantling \the [src]." + if(do_after(user,25)) + user << "You dismantle \the [src]." + new /obj/item/stack/material/wood(get_turf(src), amount = 3) + for(var/obj/item/weapon/book/b in contents) + b.loc = (get_turf(src)) + qdel(src) + else ..() @@ -81,6 +95,7 @@ icon_state = "book-5" + /obj/structure/bookcase/manuals/medical name = "Medical Manuals bookcase" diff --git a/code/modules/library/lib_machines.dm b/code/modules/library/lib_machines.dm index ac47fd706e2..c921ac51645 100644 --- a/code/modules/library/lib_machines.dm +++ b/code/modules/library/lib_machines.dm @@ -122,6 +122,7 @@ datum/borrowbook // Datum used to keep track of who has borrowed what when and f density = 1 var/arcanecheckout = 0 var/screenstate = 0 // 0 - Main Menu, 1 - Inventory, 2 - Checked Out, 3 - Check Out a Book + var/sortby = "author" var/buffer_book var/buffer_mob var/upload_category = "Fiction" @@ -149,7 +150,7 @@ datum/borrowbook // Datum used to keep track of who has borrowed what when and f if(src.arcanecheckout) new /obj/item/weapon/book/tome(src.loc) user << "Your sanity barely endures the seconds spent in the vault's browsing window. The only thing to remind you of this when you stop browsing is a dusty old tome sitting on the desk. You don't really remember printing it." - user.visible_message("[user] stares at the blank screen for a few moments, his expression frozen in fear. When he finally awakens from it, he looks a lot older.", 2) + user.visible_message("\The [user] stares at the blank screen for a few moments, \his expression frozen in fear. When \he finally awakens from it, \he looks a lot older.", 2) src.arcanecheckout = 0 if(1) // Inventory @@ -195,9 +196,8 @@ datum/borrowbook // Datum used to keep track of who has borrowed what when and f else dat += {"(Order book by SS13BN)

- "} - - var/DBQuery/query = dbcon_old.NewQuery("SELECT id, author, title, category FROM library") + @@ -56,6 +56,66 @@ -->
+

16 August 2015

+

HarpyEagle updated:

+
    +
  • The unathi breacher is now only wearable by unathi.
  • +
+ +

15 August 2015

+

Kelenius updated:

+
    +
  • Bees have been updated and are totally worth checking out (beekeeping crate at cargo).
  • +
  • Sleeper consoles removed. All interaction is now done by clicking on the sleeper itself.
  • +
  • To put people into sleeper, you now have to click-drag people to it. Grabs no longer work. To exit the sleeper, move.
  • +
  • Sleeper now uses a NanoUI.
  • +
+ +

14 August 2015

+

HarpyEagle updated:

+
    +
  • Renames many guns to follow a consistent naming style. Updated and changed gun description text to be more lore-friendly.
  • +
  • Throwing a booze bottle at something nearby while on harm intent causes it to smash, splashing it's contents over whatever it hits.
  • +
  • Rags can now be wrung out over a container or the floor, emptying it's contents into the container or splashing them on the floor.
  • +
  • Rags can now be soaked using the large water and fuel tanks instead of just beakers.
  • +
  • Rags soaked in welding fuel can be lit on fire.
  • +
  • Rags can now be stuffed into booze bottles. When the bottle smashes, the stuffed rag is dropped onto the ground.
  • +
  • Fixed eggs having a ridiculously large chemical volume.
  • +
  • T-Ray scanner effects are now only visible to the person holding the scanner.
  • +
  • Traitors can now purchase the C-20r and the STS-35 for telecrystals.
  • +
+

PsiOmegaDelta updated:

+
    +
  • The amount you start with in your station account is now affected by species, rank, and NT's stance towards you.
  • +
+

TheWelp updated:

+
    +
  • Bookcases are now movable/buildable/destroyable.
  • +
  • Paper can now be crumpled by using in-hand while on hurt intent.
  • +
  • Library Computer External Archive is now sortable.
  • +
+

Zuhayr updated:

+
    +
  • Click a hat on a drone with help intent to equip it. Drag the drone onto yourself with grab intent to remove it.
  • +
+ +

13 August 2015

+

GinjaNinja32 updated:

+
    +
  • Changed language selection to allow multiple language selections, changed humans/unathi/tajarans/skrell to not automatically gain their racial language, instead adding it to the selectable languages for that species. Old slots will warn when loaded that the languages may not be what you expect.
  • +
+

Orelbon updated:

+
    +
  • Changed the HoP's suit to more bibrant colors and hopefully you will like it.
  • +
+ +

11 August 2015

+

PsiOmegaDelta updated:

+
    +
  • 0.1.19 is live.
  • +
  • Crew monitors now update every 5th second instead of every other. Reduces lag and gives antags a larger window of opportunity to disable suit sensors if they have to harm someone.
  • +
+

31 July 2015

HarpyEagle updated:

    diff --git a/html/changelogs/.all_changelog.yml b/html/changelogs/.all_changelog.yml index cb5b22b2194..2c953e37f2b 100644 --- a/html/changelogs/.all_changelog.yml +++ b/html/changelogs/.all_changelog.yml @@ -2100,3 +2100,56 @@ DO NOT EDIT THIS FILE BY HAND! AUTOMATICALLY GENERATED BY ss13_genchangelog.py. - bugfix: Fixed projectiles being able to hit people in body parts that they don't have. This will also mean that the less limbs someone has the less effective they will be as a body shield. +2015-08-11: + PsiOmegaDelta: + - experiment: 0.1.19 is live. + - tweak: Crew monitors now update every 5th second instead of every other. Reduces + lag and gives antags a larger window of opportunity to disable suit sensors + if they have to harm someone. +2015-08-13: + GinjaNinja32: + - rscadd: Changed language selection to allow multiple language selections, changed + humans/unathi/tajarans/skrell to not automatically gain their racial language, + instead adding it to the selectable languages for that species. Old slots will + warn when loaded that the languages may not be what you expect. + Orelbon: + - rscadd: Changed the HoP's suit to more bibrant colors and hopefully you will like + it. +2015-08-14: + HarpyEagle: + - spellcheck: Renames many guns to follow a consistent naming style. Updated and + changed gun description text to be more lore-friendly. + - rscadd: Throwing a booze bottle at something nearby while on harm intent causes + it to smash, splashing it's contents over whatever it hits. + - rscadd: Rags can now be wrung out over a container or the floor, emptying it's + contents into the container or splashing them on the floor. + - rscadd: Rags can now be soaked using the large water and fuel tanks instead of + just beakers. + - rscadd: Rags soaked in welding fuel can be lit on fire. + - rscadd: Rags can now be stuffed into booze bottles. When the bottle smashes, the + stuffed rag is dropped onto the ground. + - bugfix: Fixed eggs having a ridiculously large chemical volume. + - rscadd: T-Ray scanner effects are now only visible to the person holding the scanner. + - rscadd: Traitors can now purchase the C-20r and the STS-35 for telecrystals. + PsiOmegaDelta: + - tweak: The amount you start with in your station account is now affected by species, + rank, and NT's stance towards you. + TheWelp: + - rscadd: Bookcases are now movable/buildable/destroyable. + - rscadd: Paper can now be crumpled by using in-hand while on hurt intent. + - rscadd: Library Computer External Archive is now sortable. + Zuhayr: + - rscadd: Click a hat on a drone with help intent to equip it. Drag the drone onto + yourself with grab intent to remove it. +2015-08-15: + Kelenius: + - rscadd: Bees have been updated and are totally worth checking out (beekeeping + crate at cargo). + - rscdel: Sleeper consoles removed. All interaction is now done by clicking on the + sleeper itself. + - tweak: To put people into sleeper, you now have to click-drag people to it. Grabs + no longer work. To exit the sleeper, move. + - tweak: Sleeper now uses a NanoUI. +2015-08-16: + HarpyEagle: + - tweak: The unathi breacher is now only wearable by unathi. diff --git a/html/changelogs/HarpyEagle-gun-desc.yml b/html/changelogs/HarpyEagle-gun-desc.yml new file mode 100644 index 00000000000..a999f1236dc --- /dev/null +++ b/html/changelogs/HarpyEagle-gun-desc.yml @@ -0,0 +1,3 @@ +author: HarpyEagle +changes: [] +delete-after: false diff --git a/html/changelogs/PsiOmegaDelta-MoneyMoneyMoney.yml b/html/changelogs/PsiOmegaDelta-MoneyMoneyMoney.yml new file mode 100644 index 00000000000..6fdea55f549 --- /dev/null +++ b/html/changelogs/PsiOmegaDelta-MoneyMoneyMoney.yml @@ -0,0 +1,3 @@ +author: PsiOmegaDelta +changes: [] +delete-after: false diff --git a/html/templates/header.html b/html/templates/header.html index bd62de1fc57..6f07535bc27 100644 --- a/html/templates/header.html +++ b/html/templates/header.html @@ -25,7 +25,7 @@
diff --git a/icons/effects/crayondecal.dmi b/icons/effects/crayondecal.dmi index 3aa781d8d22..e1966e9bb5a 100644 Binary files a/icons/effects/crayondecal.dmi and b/icons/effects/crayondecal.dmi differ diff --git a/icons/mob/alien.dmi b/icons/mob/alien.dmi index 362dcc96ea2..171abcf1c01 100644 Binary files a/icons/mob/alien.dmi and b/icons/mob/alien.dmi differ diff --git a/icons/mob/species/vox/uniform.dmi b/icons/mob/species/vox/uniform.dmi index 69376d1955e..fb02a0f5c50 100644 Binary files a/icons/mob/species/vox/uniform.dmi and b/icons/mob/species/vox/uniform.dmi differ diff --git a/icons/mob/uniform.dmi b/icons/mob/uniform.dmi index 68e702df03e..de2bd284c7c 100644 Binary files a/icons/mob/uniform.dmi and b/icons/mob/uniform.dmi differ diff --git a/icons/obj/Cryogenic2.dmi b/icons/obj/Cryogenic2.dmi index 1a524c7621c..8f060a6a0d4 100644 Binary files a/icons/obj/Cryogenic2.dmi and b/icons/obj/Cryogenic2.dmi differ diff --git a/icons/obj/beekeeping.dmi b/icons/obj/beekeeping.dmi new file mode 100644 index 00000000000..0b09bf47516 Binary files /dev/null and b/icons/obj/beekeeping.dmi differ diff --git a/icons/obj/clothing/uniforms.dmi b/icons/obj/clothing/uniforms.dmi index 19084b2ee28..b20992ad573 100644 Binary files a/icons/obj/clothing/uniforms.dmi and b/icons/obj/clothing/uniforms.dmi differ diff --git a/icons/obj/computer.dmi b/icons/obj/computer.dmi index 2bb7d399830..55869758598 100644 Binary files a/icons/obj/computer.dmi and b/icons/obj/computer.dmi differ diff --git a/icons/obj/drinks.dmi b/icons/obj/drinks.dmi index 2db7f08f624..5d3b01eb1f9 100644 Binary files a/icons/obj/drinks.dmi and b/icons/obj/drinks.dmi differ diff --git a/icons/obj/podwindows.dmi b/icons/obj/podwindows.dmi index 7f6e79c9035..75bd1d9805c 100644 Binary files a/icons/obj/podwindows.dmi and b/icons/obj/podwindows.dmi differ diff --git a/icons/obj/power_cond_white.dmi b/icons/obj/power_cond_white.dmi index 0e5a96a121a..50248b495e3 100644 Binary files a/icons/obj/power_cond_white.dmi and b/icons/obj/power_cond_white.dmi differ diff --git a/icons/obj/rig_modules.dmi b/icons/obj/rig_modules.dmi index 9ba8f90bc8f..d6c96415b8c 100644 Binary files a/icons/obj/rig_modules.dmi and b/icons/obj/rig_modules.dmi differ diff --git a/icons/obj/smoothlattice.dmi b/icons/obj/smoothlattice.dmi index f140a27f007..30f83a380d7 100644 Binary files a/icons/obj/smoothlattice.dmi and b/icons/obj/smoothlattice.dmi differ diff --git a/icons/obj/structures.dmi b/icons/obj/structures.dmi index d947725e034..9f44d1113ad 100644 Binary files a/icons/obj/structures.dmi and b/icons/obj/structures.dmi differ diff --git a/icons/obj/tables.dmi b/icons/obj/tables.dmi index 99b21bcfcbc..3f8ac59ad7d 100644 Binary files a/icons/obj/tables.dmi and b/icons/obj/tables.dmi differ diff --git a/icons/obj/toy.dmi b/icons/obj/toy.dmi index b07089e7851..8285ec7e5ff 100644 Binary files a/icons/obj/toy.dmi and b/icons/obj/toy.dmi differ diff --git a/icons/turf/shuttle.dmi b/icons/turf/shuttle.dmi index 430ca0b1fc2..7d847188b4b 100644 Binary files a/icons/turf/shuttle.dmi and b/icons/turf/shuttle.dmi differ diff --git a/icons/turf/wall_masks.dmi b/icons/turf/wall_masks.dmi index 0094e605b82..c371d11b329 100644 Binary files a/icons/turf/wall_masks.dmi and b/icons/turf/wall_masks.dmi differ diff --git a/maps/RandomZLevels/Academy.dmm b/maps/RandomZLevels/Academy.dmm index 7de78aa9f36..2c92b27b948 100644 --- a/maps/RandomZLevels/Academy.dmm +++ b/maps/RandomZLevels/Academy.dmm @@ -79,9 +79,9 @@ "bA" = (/turf/simulated/floor/plating{tag = "icon-warnplate (EAST)"; icon_state = "warnplate"; dir = 4},/area/awaymission/academy/classrooms) "bB" = (/obj/machinery/door_control{id = "AcademyAuto"; pixel_y = 24},/turf/simulated/floor,/area/awaymission/academy/classrooms) "bC" = (/turf/simulated/wall,/area/awaymission/academy/classrooms) -"bD" = (/turf/simulated/shuttle/wall{tag = "icon-swallc2"; icon_state = "swallc2"},/area/awaymission/academy/classrooms) -"bE" = (/turf/simulated/shuttle/wall{tag = "icon-swall12"; icon_state = "swall12"; dir = 2},/area/awaymission/academy/classrooms) -"bF" = (/turf/simulated/shuttle/wall{tag = "icon-swallc1"; icon_state = "swallc1"},/area/awaymission/academy/classrooms) +"bD" = (/turf/simulated/shuttle/wall{tag = "icon-swallc2"; icon_state = "swall"; dir = 6},/area/awaymission/academy/classrooms) +"bE" = (/turf/simulated/shuttle/wall{tag = "icon-swall12"; icon_state = "swall_straight"; dir = 4; dir = 2},/area/awaymission/academy/classrooms) +"bF" = (/turf/simulated/shuttle/wall{tag = "icon-swallc1"; icon_state = "swall"; dir = 10},/area/awaymission/academy/classrooms) "bG" = (/obj/machinery/light{dir = 8},/turf/simulated/floor,/area/awaymission/academy/headmaster) "bH" = (/turf/simulated/floor{dir = 8; icon_state = "chapel"},/area/awaymission/academy/headmaster) "bI" = (/turf/simulated/floor{icon_state = "chapel"},/area/awaymission/academy/headmaster) @@ -96,7 +96,7 @@ "bR" = (/turf/simulated/floor{icon_state = "showroomfloor"},/area/awaymission/academy/headmaster) "bS" = (/obj/machinery/autolathe,/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/turf/simulated/floor,/area/awaymission/academy/classrooms) "bT" = (/turf/simulated/floor{icon_state = "floorgrime"},/area/awaymission/academy/classrooms) -"bU" = (/turf/simulated/shuttle/wall{tag = "icon-swall3"; icon_state = "swall3"; dir = 2},/area/awaymission/academy/classrooms) +"bU" = (/turf/simulated/shuttle/wall{tag = "icon-swall3"; icon_state = "swall_straight"; dir = 1; dir = 2},/area/awaymission/academy/classrooms) "bV" = (/obj/effect/decal/cleanable/ash,/turf/simulated/floor/engine,/area/awaymission/academy/classrooms) "bW" = (/obj/structure/target_stake,/turf/simulated/floor/engine,/area/awaymission/academy/classrooms) "bX" = (/turf/simulated/floor/engine,/area/awaymission/academy/classrooms) @@ -118,7 +118,7 @@ "cn" = (/obj/structure/stool,/turf/simulated/floor{icon_state = "showroomfloor"},/area/awaymission/academy/headmaster) "co" = (/obj/structure/table/standard,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/obj/item/weapon/pen/red,/turf/simulated/floor,/area/awaymission/academy/classrooms) "cp" = (/obj/machinery/light{icon_state = "tube1"; dir = 4},/turf/simulated/floor,/area/awaymission/academy/classrooms) -"cq" = (/turf/simulated/shuttle/wall{tag = "icon-swall1"; icon_state = "swall1"},/area/awaymission/academy/classrooms) +"cq" = (/turf/simulated/shuttle/wall{tag = "icon-swall1"; icon_state = "swall"; dir = 1},/area/awaymission/academy/classrooms) "cr" = (/obj/structure/stool/bed/chair,/turf/simulated/floor,/area/awaymission/academy/headmaster) "cs" = (/turf/simulated/floor/carpet{icon_state = "carpetsymbol"},/area/awaymission/academy/headmaster) "ct" = (/obj/machinery/door/window{dir = 8},/turf/simulated/floor/plating,/area/awaymission/academy/headmaster) diff --git a/maps/RandomZLevels/blackmarketpackers.dmm b/maps/RandomZLevels/blackmarketpackers.dmm index 293a212f96d..fd6949b25e0 100644 --- a/maps/RandomZLevels/blackmarketpackers.dmm +++ b/maps/RandomZLevels/blackmarketpackers.dmm @@ -2,32 +2,32 @@ "ab" = (/turf/simulated/mineral/random/high_chance,/area/awaymission) "ac" = (/turf/simulated/floor/plating/airless/asteroid,/area/awaymission) "ad" = (/obj/item/weapon/circular_saw,/obj/structure/lattice,/turf/space,/area) -"ae" = (/turf/simulated/shuttle/wall{tag = "icon-swall4"; icon_state = "swall4"},/area/awaymission/BMPship3) -"af" = (/turf/simulated/shuttle/wall{tag = "icon-swall12"; icon_state = "swall12"},/area/awaymission/BMPship3) -"ag" = (/turf/simulated/shuttle/wall{tag = "icon-swall14"; icon_state = "swall14"},/area/awaymission/BMPship3) -"ah" = (/turf/simulated/shuttle/wall{tag = "icon-swall_s10"; icon_state = "swall_s10"; dir = 2},/area/awaymission/BMPship3) +"ae" = (/turf/simulated/shuttle/wall{tag = "icon-swall4"; icon_state = "swall"; dir = 4},/area/awaymission/BMPship3) +"af" = (/turf/simulated/shuttle/wall{tag = "icon-swall12"; icon_state = "swall_straight"; dir = 4},/area/awaymission/BMPship3) +"ag" = (/turf/simulated/shuttle/wall{tag = "icon-swall14"; icon_state = "swall_t"; dir = 1},/area/awaymission/BMPship3) +"ah" = (/turf/simulated/shuttle/wall{tag = "icon-swall_s10"; icon_state = "swall_s"; dir = 2; dir = 2},/area/awaymission/BMPship3) "ai" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/grille,/turf/simulated/floor/engine,/area/awaymission/BMPship3) "aj" = (/obj/machinery/porta_turret{dir = 8; emagged = 1; installation = /obj/item/weapon/gun/energy/lasercannon},/turf/simulated/floor/engine,/area/awaymission/BMPship3) "ak" = (/turf/simulated/floor/engine,/area/awaymission/BMPship3) -"al" = (/turf/simulated/shuttle/wall{tag = "icon-swall3"; icon_state = "swall3"; dir = 2},/area/awaymission/BMPship3) +"al" = (/turf/simulated/shuttle/wall{tag = "icon-swall3"; icon_state = "swall_straight"; dir = 1; dir = 2},/area/awaymission/BMPship3) "am" = (/obj/machinery/light/small{dir = 8},/turf/simulated/floor/plating,/area/awaymission/BMPship3) -"an" = (/turf/simulated/floor/plating,/turf/simulated/shuttle/wall{tag = "icon-swall_f5"; icon_state = "swall_f5"; dir = 2},/area/awaymission/BMPship3) +"an" = (/turf/simulated/floor/plating,/turf/simulated/shuttle/wall{tag = "icon-swall_f5"; icon_state = "swall_c"; dir = 1; dir = 2},/area/awaymission/BMPship3) "ao" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/grille,/turf/simulated/floor/engine,/area/awaymission/BMPship3) "ap" = (/obj/machinery/door/unpowered/shuttle,/turf/simulated/floor/plating,/area/awaymission/BMPship3) "aq" = (/turf/simulated/floor/plating,/area/awaymission/BMPship3) "ar" = (/obj/structure/lattice,/turf/space,/area) "as" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/grille,/turf/simulated/floor/engine,/area/awaymission/BMPship3) "at" = (/obj/machinery/light/small,/turf/simulated/floor/engine,/area/awaymission/BMPship3) -"au" = (/turf/simulated/shuttle/wall{tag = "icon-swall7"; icon_state = "swall7"},/area/awaymission/BMPship3) -"av" = (/turf/simulated/shuttle/wall{tag = "icon-swall_s6"; icon_state = "swall_s6"; dir = 2},/area/awaymission/BMPship1) -"aw" = (/turf/simulated/shuttle/wall{tag = "icon-swall12"; icon_state = "swall12"},/area/awaymission/BMPship1) -"ax" = (/turf/simulated/shuttle/wall{tag = "icon-swall14"; icon_state = "swall14"},/area/awaymission/BMPship1) -"ay" = (/turf/simulated/shuttle/wall{tag = "icon-swall13"; icon_state = "swall13"},/area/awaymission/BMPship1) -"az" = (/turf/simulated/shuttle/wall{tag = "icon-swall8"; icon_state = "swall8"},/area/awaymission/BMPship1) +"au" = (/turf/simulated/shuttle/wall{tag = "icon-swall7"; icon_state = "swall_t"; dir = 8},/area/awaymission/BMPship3) +"av" = (/turf/simulated/shuttle/wall{tag = "icon-swall_s6"; icon_state = "swall_s"; dir = 14; dir = 2},/area/awaymission/BMPship1) +"aw" = (/turf/simulated/shuttle/wall{tag = "icon-swall12"; icon_state = "swall_straight"; dir = 4},/area/awaymission/BMPship1) +"ax" = (/turf/simulated/shuttle/wall{tag = "icon-swall14"; icon_state = "swall_t"; dir = 1},/area/awaymission/BMPship1) +"ay" = (/turf/simulated/shuttle/wall{tag = "icon-swall13"; icon_state = "swall_t"; dir = 2},/area/awaymission/BMPship1) +"az" = (/turf/simulated/shuttle/wall{tag = "icon-swall8"; icon_state = "swall"; dir = 8},/area/awaymission/BMPship1) "aA" = (/obj/machinery/door/airlock/silver{locked = 1},/turf/simulated/floor/plating{tag = "icon-panelscorched"; icon_state = "panelscorched"},/area/awaymission/BMPship1) -"aB" = (/turf/simulated/shuttle/wall{tag = "icon-swall4"; icon_state = "swall4"},/area/awaymission/BMPship1) -"aC" = (/turf/simulated/shuttle/wall{tag = "icon-swall12"; icon_state = "swall12"; dir = 2},/area/awaymission/BMPship1) -"aD" = (/turf/simulated/shuttle/wall{tag = "icon-swall_s10"; icon_state = "swall_s10"; dir = 2},/area/awaymission/BMPship1) +"aB" = (/turf/simulated/shuttle/wall{tag = "icon-swall4"; icon_state = "swall"; dir = 4},/area/awaymission/BMPship1) +"aC" = (/turf/simulated/shuttle/wall{tag = "icon-swall12"; icon_state = "swall_straight"; dir = 4; dir = 2},/area/awaymission/BMPship1) +"aD" = (/turf/simulated/shuttle/wall{tag = "icon-swall_s10"; icon_state = "swall_s"; dir = 2; dir = 2},/area/awaymission/BMPship1) "aE" = (/turf/simulated/shuttle/wall,/area/awaymission/BMPship1) "aF" = (/obj/structure/stool/bed/roller,/turf/simulated/floor/plating/airless,/area/awaymission/BMPship1) "aG" = (/turf/simulated/floor/plating/airless,/area/awaymission/BMPship1) @@ -38,19 +38,19 @@ "aL" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/turf/simulated/floor/plating/airless,/area/awaymission/BMPship1) "aM" = (/obj/machinery/optable,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0; tag = ""},/turf/simulated/floor/plating/airless,/area/awaymission/BMPship1) "aN" = (/obj/machinery/computer/operating,/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/plating/airless,/area/awaymission/BMPship1) -"aO" = (/turf/simulated/shuttle/wall{tag = "icon-swall3"; icon_state = "swall3"},/area/awaymission/BMPship1) +"aO" = (/turf/simulated/shuttle/wall{tag = "icon-swall3"; icon_state = "swall_straight"; dir = 1},/area/awaymission/BMPship1) "aP" = (/turf/simulated/floor/plating{tag = "icon-warnplate (NORTHWEST)"; icon_state = "warnplate"; dir = 9},/area/awaymission/BMPship1) "aQ" = (/obj/structure/closet/crate/freezer,/obj/item/weapon/reagent_containers/food/snacks/appendix,/obj/item/weapon/reagent_containers/food/snacks/meat,/obj/item/weapon/reagent_containers/food/snacks/meat,/turf/simulated/floor/plating{tag = "icon-warnplate (NORTH)"; icon_state = "warnplate"; dir = 1},/area/awaymission/BMPship1) "aR" = (/obj/structure/closet/crate/freezer,/obj/item/brain,/obj/item/weapon/reagent_containers/food/snacks/appendix,/obj/item/weapon/reagent_containers/food/snacks/meat,/turf/simulated/floor/plating{tag = "icon-warnplate (NORTH)"; icon_state = "warnplate"; dir = 1},/area/awaymission/BMPship1) "aS" = (/obj/structure/table/standard,/obj/item/weapon/packageWrap,/turf/simulated/floor/plating{tag = "icon-warnplate (NORTH)"; icon_state = "warnplate"; dir = 1},/area/awaymission/BMPship1) "aT" = (/obj/structure/table/standard,/obj/item/weapon/storage/box,/obj/machinery/light/small{dir = 1},/turf/simulated/floor/plating{tag = "icon-warnplate (NORTH)"; icon_state = "warnplate"; dir = 1},/area/awaymission/BMPship1) "aU" = (/turf/simulated/floor/plating{tag = "icon-warnplate (NORTH)"; icon_state = "warnplate"; dir = 1},/area/awaymission/BMPship1) -"aV" = (/turf/simulated/floor/plating{tag = "icon-warnplate (NORTHEAST)"; icon_state = "warnplate"; dir = 5},/turf/simulated/shuttle/wall{tag = "icon-swall_f5"; icon_state = "swall_f5"; dir = 2},/area/awaymission/BMPship1) +"aV" = (/turf/simulated/floor/plating{tag = "icon-warnplate (NORTHEAST)"; icon_state = "warnplate"; dir = 5},/turf/simulated/shuttle/wall{tag = "icon-swall_f5"; icon_state = "swall_c"; dir = 1; dir = 2},/area/awaymission/BMPship1) "aW" = (/turf/simulated/floor/plating/airless{tag = "icon-platingdmg2"; icon_state = "platingdmg2"},/area/awaymission/BMPship1) "aX" = (/turf/simulated/floor/plating/airless{tag = "icon-platingdmg3"; icon_state = "platingdmg3"},/area/awaymission/BMPship1) "aY" = (/obj/effect/gibspawner/generic,/turf/simulated/floor/plating/airless,/area/awaymission/BMPship1) "aZ" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor/plating/airless,/area/awaymission/BMPship1) -"ba" = (/turf/simulated/shuttle/wall{tag = "icon-swall1"; icon_state = "swall1"},/area/awaymission/BMPship1) +"ba" = (/turf/simulated/shuttle/wall{tag = "icon-swall1"; icon_state = "swall"; dir = 1},/area/awaymission/BMPship1) "bb" = (/turf/simulated/floor/plating{tag = "icon-warnplate (WEST)"; icon_state = "warnplate"; dir = 8},/area/awaymission/BMPship1) "bc" = (/turf/simulated/floor/plating,/area/awaymission/BMPship1) "bd" = (/obj/item/weapon/storage/box,/turf/simulated/floor/plating,/area/awaymission/BMPship1) @@ -62,12 +62,12 @@ "bj" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/grille,/turf/simulated/floor/engine,/area/awaymission/BMPship3) "bk" = (/obj/structure/table/woodentable,/obj/item/weapon/spacecash/c500,/obj/item/weapon/spacecash/c100,/obj/item/weapon/reagent_containers/food/drinks/beer,/turf/simulated/floor/wood,/area/awaymission/BMPship3) "bl" = (/obj/structure/stool/bed,/obj/item/weapon/bedsheet/yellow,/turf/simulated/floor/wood,/area/awaymission/BMPship3) -"bm" = (/turf/simulated/shuttle/wall{tag = "icon-swall3"; icon_state = "swall3"},/area/awaymission/BMPship3) +"bm" = (/turf/simulated/shuttle/wall{tag = "icon-swall3"; icon_state = "swall_straight"; dir = 1},/area/awaymission/BMPship3) "bn" = (/turf/simulated/floor/plating{tag = "icon-warnplate (NORTHWEST)"; icon_state = "warnplate"; dir = 9},/area/awaymission/BMPship3) "bo" = (/obj/structure/rack,/turf/simulated/floor/plating{tag = "icon-warnplate (NORTH)"; icon_state = "warnplate"; dir = 1},/area/awaymission/BMPship3) "bp" = (/turf/simulated/floor/plating{tag = "icon-warnplate (NORTH)"; icon_state = "warnplate"; dir = 1},/area/awaymission/BMPship3) "bq" = (/turf/simulated/floor/plating{tag = "icon-warnplate (NORTHEAST)"; icon_state = "warnplate"; dir = 5},/area/awaymission/BMPship3) -"br" = (/obj/structure/sign/vacuum,/turf/simulated/shuttle/wall{tag = "icon-swall1"; icon_state = "swall1"},/area/awaymission/BMPship3) +"br" = (/obj/structure/sign/vacuum,/turf/simulated/shuttle/wall{tag = "icon-swall1"; icon_state = "swall"; dir = 1},/area/awaymission/BMPship3) "bs" = (/turf/simulated/floor/plating/airless{tag = "icon-platingdmg1"; icon_state = "platingdmg1"},/area/awaymission/BMPship1) "bt" = (/turf/simulated/floor/plating/airless{tag = "icon-panelscorched"; icon_state = "panelscorched"},/area/awaymission/BMPship1) "bu" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/obj/item/clothing/glasses/regular/hipster,/turf/simulated/floor/plating/airless,/area/awaymission/BMPship1) @@ -84,7 +84,7 @@ "bF" = (/obj/machinery/light/small{dir = 4},/turf/simulated/floor/wood,/area/awaymission/BMPship3) "bG" = (/turf/simulated/floor/plating{tag = "icon-warnplate (WEST)"; icon_state = "warnplate"; dir = 8},/area/awaymission/BMPship3) "bH" = (/obj/machinery/door/airlock/external,/turf/simulated/floor/plating,/area/awaymission/BMPship3) -"bI" = (/turf/simulated/shuttle/wall{tag = "icon-swall2"; icon_state = "swall2"},/area/awaymission/BMPship1) +"bI" = (/turf/simulated/shuttle/wall{tag = "icon-swall2"; icon_state = "swall"; dir = 2},/area/awaymission/BMPship1) "bJ" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor/plating,/area/awaymission/BMPship1) "bK" = (/obj/machinery/gateway{dir = 10},/turf/simulated/floor/plating,/area/awaymission/BMPship1) "bL" = (/obj/machinery/gateway,/turf/simulated/floor/plating,/area/awaymission/BMPship1) @@ -94,8 +94,8 @@ "bP" = (/turf/simulated/floor/plating{dir = 2; icon_state = "warnplate"; tag = "icon-warnplate (NORTH)"},/area/awaymission/BMPship3) "bQ" = (/obj/machinery/light/small,/turf/simulated/floor/plating{dir = 2; icon_state = "warnplate"; tag = "icon-warnplate (NORTH)"},/area/awaymission/BMPship3) "bR" = (/turf/simulated/floor/plating{tag = "icon-warnplate (SOUTHEAST)"; icon_state = "warnplate"; dir = 6},/area/awaymission/BMPship3) -"bS" = (/turf/simulated/shuttle/wall{tag = "icon-swall2"; icon_state = "swall2"},/area/awaymission/BMPship3) -"bT" = (/turf/simulated/shuttle/wall{tag = "icon-swall11"; icon_state = "swall11"},/area/awaymission/BMPship1) +"bS" = (/turf/simulated/shuttle/wall{tag = "icon-swall2"; icon_state = "swall"; dir = 2},/area/awaymission/BMPship3) +"bT" = (/turf/simulated/shuttle/wall{tag = "icon-swall11"; icon_state = "swall_t"; dir = 4},/area/awaymission/BMPship1) "bU" = (/obj/machinery/light,/turf/simulated/floor/plating/airless,/area/awaymission/BMPship1) "bV" = (/obj/machinery/door_control{id = "packerMed"; pixel_y = -24},/turf/simulated/floor/plating/airless,/area/awaymission/BMPship1) "bW" = (/obj/machinery/sleeper,/turf/simulated/floor/plating/airless,/area/awaymission/BMPship1) @@ -105,14 +105,14 @@ "ca" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0; tag = ""},/turf/simulated/floor/plating,/area/awaymission/BMPship1) "cb" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0; tag = ""},/obj/item/weapon/storage/box,/turf/simulated/floor/plating,/area/awaymission/BMPship1) "cc" = (/turf/simulated/floor/plating{tag = "icon-warnplate (EAST)"; icon_state = "warnplate"; dir = 4},/area/awaymission/BMPship1) -"cd" = (/turf/simulated/shuttle/wall{tag = "icon-swallc2"; icon_state = "swallc2"},/area/awaymission/BMPship3) -"ce" = (/turf/simulated/shuttle/wall{tag = "icon-swall8"; icon_state = "swall8"},/area/awaymission/BMPship3) +"cd" = (/turf/simulated/shuttle/wall{tag = "icon-swallc2"; icon_state = "swall"; dir = 6},/area/awaymission/BMPship3) +"ce" = (/turf/simulated/shuttle/wall{tag = "icon-swall8"; icon_state = "swall"; dir = 8},/area/awaymission/BMPship3) "cf" = (/obj/machinery/door/unpowered/shuttle,/turf/simulated/floor{tag = "icon-carpetside (NORTH)"; icon_state = "carpetside"; dir = 1},/area/awaymission/BMPship3) -"cg" = (/turf/simulated/shuttle/wall{tag = "icon-swall1"; icon_state = "swall1"},/area/awaymission/BMPship3) +"cg" = (/turf/simulated/shuttle/wall{tag = "icon-swall1"; icon_state = "swall"; dir = 1},/area/awaymission/BMPship3) "ch" = (/obj/machinery/door/airlock/silver,/turf/simulated/floor{tag = "icon-carpetside (NORTH)"; icon_state = "carpetside"; dir = 1},/area/awaymission/BMPship3) -"ci" = (/turf/simulated/shuttle/wall{tag = "icon-swallc2"; icon_state = "swallc2"},/area/awaymission/BMPship2) -"cj" = (/turf/simulated/shuttle/wall{tag = "icon-swall12"; icon_state = "swall12"},/area/awaymission/BMPship2) -"ck" = (/turf/simulated/shuttle/wall{tag = "icon-swall13"; icon_state = "swall13"},/area/awaymission/BMPship2) +"ci" = (/turf/simulated/shuttle/wall{tag = "icon-swallc2"; icon_state = "swall"; dir = 6},/area/awaymission/BMPship2) +"cj" = (/turf/simulated/shuttle/wall{tag = "icon-swall12"; icon_state = "swall_straight"; dir = 4},/area/awaymission/BMPship2) +"ck" = (/turf/simulated/shuttle/wall{tag = "icon-swall13"; icon_state = "swall_t"; dir = 2},/area/awaymission/BMPship2) "cl" = (/turf/simulated/shuttle/wall{tag = "icon-swall15"; icon_state = "swall15"},/area/awaymission/BMPship1) "cm" = (/obj/machinery/door/poddoor/shutters{id = "packerMed"},/turf/simulated/floor/plating/airless,/area/awaymission/BMPship1) "cn" = (/obj/structure/largecrate,/turf/simulated/floor/plating{tag = "icon-warnplate (SOUTHWEST)"; icon_state = "warnplate"; dir = 10},/area/awaymission/BMPship1) @@ -125,11 +125,11 @@ "cu" = (/obj/machinery/door_control{id = "packerCargo"; pixel_y = -24},/obj/machinery/light/small,/turf/simulated/floor/plating{dir = 2; icon_state = "warnplate"; tag = "icon-warnplate (NORTH)"},/area/awaymission/BMPship1) "cv" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor/plating{dir = 2; icon_state = "warnplate"; tag = "icon-warnplate (NORTH)"},/area/awaymission/BMPship1) "cw" = (/turf/simulated/floor/plating{tag = "icon-warnplate (SOUTHEAST)"; icon_state = "warnplate"; dir = 6},/area/awaymission/BMPship1) -"cx" = (/turf/simulated/shuttle/wall{tag = "icon-swall_s6"; icon_state = "swall_s6"; dir = 2},/area/awaymission/BMPship3) -"cy" = (/turf/simulated/floor{tag = "icon-carpet"; icon_state = "carpet"},/turf/simulated/shuttle/wall{tag = "icon-swall_f9"; icon_state = "swall_f9"; dir = 2},/area/awaymission/BMPship3) +"cx" = (/turf/simulated/shuttle/wall{tag = "icon-swall_s6"; icon_state = "swall_s"; dir = 14; dir = 2},/area/awaymission/BMPship3) +"cy" = (/turf/simulated/floor{tag = "icon-carpet"; icon_state = "carpet"},/turf/simulated/shuttle/wall{tag = "icon-swall_f9"; icon_state = "swall_c"; dir = 8; dir = 2},/area/awaymission/BMPship3) "cz" = (/turf/simulated/floor{tag = "icon-carpet"; icon_state = "carpet"},/area/awaymission/BMPship3) "cA" = (/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/machinery/power/apc{dir = 1; locked = 0; req_access = ""},/turf/simulated/floor{tag = "icon-carpet"; icon_state = "carpet"},/area/awaymission/BMPship3) -"cB" = (/turf/simulated/shuttle/wall{tag = "icon-swall3"; icon_state = "swall3"; dir = 2},/area/awaymission/BMPship2) +"cB" = (/turf/simulated/shuttle/wall{tag = "icon-swall3"; icon_state = "swall_straight"; dir = 1; dir = 2},/area/awaymission/BMPship2) "cC" = (/obj/structure/table/standard,/obj/item/weapon/screwdriver,/obj/item/weapon/screwdriver,/obj/item/weapon/paper{info = "The next person who takes one of my screwdrivers gets stabbed with one. They are MINE. - Love, Madsen"; name = "scribbled note"},/obj/item/weapon/screwdriver,/turf/simulated/floor{icon_state = "bar"},/area/awaymission/BMPship2) "cD" = (/obj/machinery/light{dir = 1},/turf/simulated/floor{icon_state = "bar"},/area/awaymission/BMPship2) "cE" = (/obj/machinery/hydroponics,/turf/simulated/floor{tag = "icon-green (WEST)"; icon_state = "green"; dir = 8},/area/awaymission/BMPship2) @@ -138,7 +138,7 @@ "cH" = (/obj/machinery/vending/hydronutrients,/turf/simulated/floor{dir = 1; icon_state = "yellow"},/area/awaymission/BMPship2) "cI" = (/obj/machinery/hydroponics,/turf/simulated/floor{tag = "icon-green (EAST)"; icon_state = "green"; dir = 4},/area/awaymission/BMPship2) "cJ" = (/turf/simulated/floor{icon_state = "bar"},/area/awaymission/BMPship2) -"cK" = (/turf/simulated/shuttle/wall{tag = "icon-swall3"; icon_state = "swall3"},/area/awaymission/BMPship2) +"cK" = (/turf/simulated/shuttle/wall{tag = "icon-swall3"; icon_state = "swall_straight"; dir = 1},/area/awaymission/BMPship2) "cL" = (/obj/structure/table/standard,/obj/item/weapon/butch,/obj/item/weapon/reagent_containers/food/drinks/beer,/obj/item/weapon/reagent_containers/food/snacks/meat,/turf/simulated/floor{tag = "icon-barber"; icon_state = "barber"},/area/awaymission/BMPship2) "cM" = (/obj/structure/table/standard,/obj/item/weapon/storage/box/donkpockets,/turf/simulated/floor{tag = "icon-barber"; icon_state = "barber"},/area/awaymission/BMPship2) "cN" = (/obj/structure/table/standard,/obj/machinery/microwave,/turf/simulated/floor{tag = "icon-barber"; icon_state = "barber"},/area/awaymission/BMPship2) @@ -147,7 +147,7 @@ "cQ" = (/obj/structure/table/standard,/obj/item/weapon/kitchenknife,/turf/simulated/floor{icon_state = "bar"},/area/awaymission/BMPship2) "cR" = (/obj/structure/table/standard,/obj/machinery/light/small{dir = 1},/turf/simulated/floor{icon_state = "bar"},/area/awaymission/BMPship2) "cS" = (/obj/structure/table/standard,/obj/effect/decal/cleanable/cobweb2,/turf/simulated/floor{icon_state = "bar"},/area/awaymission/BMPship2) -"cT" = (/turf/simulated/shuttle/wall{tag = "icon-swall7"; icon_state = "swall7"},/area/awaymission/BMPship1) +"cT" = (/turf/simulated/shuttle/wall{tag = "icon-swall7"; icon_state = "swall_t"; dir = 8},/area/awaymission/BMPship1) "cU" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/door/poddoor/shutters{id = "packerCargo"},/turf/simulated/floor/plating,/area/awaymission/BMPship1) "cV" = (/turf/simulated/floor{tag = "icon-carpet15-13 (EAST)"; icon_state = "carpet15-13"; dir = 4},/area/awaymission/BMPship3) "cW" = (/turf/simulated/floor{tag = "icon-carpet15-7 (EAST)"; icon_state = "carpet15-7"; dir = 4},/area/awaymission/BMPship3) @@ -155,11 +155,11 @@ "cY" = (/obj/item/weapon/reagent_containers/food/snacks/hugemushroomslice,/turf/simulated/floor{icon_state = "bar"},/area/awaymission/BMPship2) "cZ" = (/turf/simulated/floor,/area/awaymission/BMPship2) "da" = (/obj/item/weapon/reagent_containers/food/drinks/beer,/turf/simulated/floor,/area/awaymission/BMPship2) -"db" = (/turf/simulated/shuttle/wall{tag = "icon-swall1"; icon_state = "swall1"},/area/awaymission/BMPship2) +"db" = (/turf/simulated/shuttle/wall{tag = "icon-swall1"; icon_state = "swall"; dir = 1},/area/awaymission/BMPship2) "dc" = (/turf/simulated/floor{tag = "icon-barber"; icon_state = "barber"},/area/awaymission/BMPship2) "dd" = (/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor{tag = "icon-barber"; icon_state = "barber"},/area/awaymission/BMPship2) "de" = (/obj/structure/stool,/turf/simulated/floor{icon_state = "bar"},/area/awaymission/BMPship2) -"df" = (/turf/simulated/shuttle/wall{tag = "icon-swall3"; icon_state = "swall3"; dir = 2},/area/awaymission/BMPship1) +"df" = (/turf/simulated/shuttle/wall{tag = "icon-swall3"; icon_state = "swall_straight"; dir = 1; dir = 2},/area/awaymission/BMPship1) "dg" = (/obj/structure/kitchenspike,/turf/simulated/floor{icon_state = "showroomfloor"},/area/awaymission/BMPship1) "dh" = (/turf/simulated/floor{icon_state = "showroomfloor"},/area/awaymission/BMPship1) "di" = (/obj/machinery/door/airlock/silver,/turf/simulated/floor{icon_state = "showroomfloor"},/area/awaymission/BMPship1) @@ -169,7 +169,7 @@ "dm" = (/turf/simulated/floor{icon_state = "hydrofloor"},/area/awaymission/BMPship1) "dn" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor,/area/awaymission/BMPship1) "do" = (/turf/simulated/floor,/area/awaymission/BMPship1) -"dp" = (/turf/simulated/shuttle/wall{tag = "icon-swallc3"; icon_state = "swallc3"},/area/awaymission/BMPship1) +"dp" = (/turf/simulated/shuttle/wall{tag = "icon-swallc3"; icon_state = "swall"; dir = 5},/area/awaymission/BMPship1) "dq" = (/turf/simulated/floor{tag = "icon-carpet15-14 (EAST)"; icon_state = "carpet15-14"; dir = 4},/area/awaymission/BMPship3) "dr" = (/turf/simulated/floor{tag = "icon-carpet15-11 (EAST)"; icon_state = "carpet15-11"; dir = 4},/area/awaymission/BMPship3) "ds" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/turf/simulated/floor{tag = "icon-carpet15-11 (EAST)"; icon_state = "carpet15-11"; dir = 4},/area/awaymission/BMPship3) @@ -198,7 +198,7 @@ "dP" = (/turf/simulated/floor{tag = "icon-green"; icon_state = "green"},/area/awaymission/BMPship2) "dQ" = (/obj/machinery/seed_extractor,/obj/item/seeds/walkingmushroommycelium,/turf/simulated/floor{tag = "icon-green"; icon_state = "green"},/area/awaymission/BMPship2) "dR" = (/obj/machinery/hydroponics,/turf/simulated/floor{tag = "icon-green (SOUTHEAST)"; icon_state = "green"; dir = 6},/area/awaymission/BMPship2) -"dS" = (/turf/simulated/shuttle/wall{tag = "icon-swall2"; icon_state = "swall2"},/area/awaymission/BMPship2) +"dS" = (/turf/simulated/shuttle/wall{tag = "icon-swall2"; icon_state = "swall"; dir = 2},/area/awaymission/BMPship2) "dT" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor{icon_state = "bar"},/area/awaymission/BMPship2) "dU" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor{icon_state = "bar"},/area/awaymission/BMPship2) "dV" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/turf/simulated/floor{icon_state = "bar"},/area/awaymission/BMPship2) @@ -276,7 +276,7 @@ "fp" = (/obj/structure/rack,/obj/item/weapon/storage/belt/utility/full,/turf/simulated/floor{dir = 8; icon_state = "warning"},/area/awaymission/BMPship1) "fq" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/turf/simulated/floor/plating,/area/awaymission/BMPship1) "fr" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/turf/simulated/floor{dir = 4; icon_state = "warning"},/area/awaymission/BMPship1) -"fs" = (/turf/simulated/shuttle/wall{tag = "icon-swall_s9"; icon_state = "swall_s9"; dir = 2},/area/awaymission/BMPship1) +"fs" = (/turf/simulated/shuttle/wall{tag = "icon-swall_s9"; icon_state = "swall_s"; dir = 8; dir = 2},/area/awaymission/BMPship1) "ft" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/turf/simulated/floor{tag = "icon-carpet15-7 (EAST)"; icon_state = "carpet15-7"; dir = 4},/area/awaymission/BMPship3) "fu" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor{tag = "icon-carpet15-13 (EAST)"; icon_state = "carpet15-13"; dir = 4},/area/awaymission/BMPship3) "fv" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor{tag = "icon-carpet15-7 (EAST)"; icon_state = "carpet15-7"; dir = 4},/area/awaymission/BMPship3) @@ -317,10 +317,10 @@ "ge" = (/obj/structure/mopbucket,/turf/simulated/shuttle/plating,/area/awaymission/BMPship1) "gf" = (/obj/structure/window/reinforced{dir = 4},/obj/item/weapon/kitchenknife,/turf/simulated/shuttle/plating,/area/awaymission/BMPship1) "gg" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/obj/item/weapon/cell/high,/turf/simulated/floor,/area/awaymission/BMPship1) -"gh" = (/turf/simulated/shuttle/wall{tag = "icon-swall_s5"; icon_state = "swall_s5"; dir = 2},/area/awaymission/BMPship3) +"gh" = (/turf/simulated/shuttle/wall{tag = "icon-swall_s5"; icon_state = "swall_s"; dir = 1; dir = 2},/area/awaymission/BMPship3) "gi" = (/obj/machinery/door/unpowered/shuttle,/turf/simulated/floor{tag = "icon-carpetside"; icon_state = "carpetside"},/area/awaymission/BMPship3) "gj" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/obj/machinery/door/unpowered/shuttle,/turf/simulated/floor{tag = "icon-carpetside"; icon_state = "carpetside"},/area/awaymission/BMPship3) -"gk" = (/turf/simulated/shuttle/wall{tag = "icon-swall11"; icon_state = "swall11"; dir = 2},/area/awaymission/BMPship2) +"gk" = (/turf/simulated/shuttle/wall{tag = "icon-swall11"; icon_state = "swall_t"; dir = 4; dir = 2},/area/awaymission/BMPship2) "gl" = (/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor{tag = "icon-panelscorched"; icon_state = "panelscorched"},/area/awaymission/BMPship2) "gm" = (/obj/structure/kitchenspike,/turf/simulated/floor{icon_state = "bar"},/area/awaymission/BMPship2) "gn" = (/turf/simulated/floor{tag = "icon-loadingareadirty1 (EAST)"; icon_state = "loadingareadirty1"; dir = 4},/area/awaymission/BMPship2) @@ -333,7 +333,7 @@ "gu" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/turf/simulated/shuttle/plating,/area/awaymission/BMPship1) "gv" = (/obj/item/stack/cable_coil,/turf/simulated/floor,/area/awaymission/BMPship1) "gw" = (/obj/machinery/light/small{dir = 4},/turf/simulated/floor{dir = 4; icon_state = "warning"},/area/awaymission/BMPship1) -"gx" = (/turf/simulated/shuttle/wall{tag = "icon-swall_s5"; icon_state = "swall_s5"; dir = 2},/area) +"gx" = (/turf/simulated/shuttle/wall{tag = "icon-swall_s5"; icon_state = "swall_s"; dir = 1; dir = 2},/area) "gy" = (/turf/simulated/floor/plating/airless{tag = "icon-platingdmg1"; icon_state = "platingdmg1"},/area/awaymission/BMPship3) "gz" = (/obj/structure/lattice,/turf/space,/area/awaymission/BMPship3) "gA" = (/turf/simulated/floor/plating/airless{tag = "icon-platingdmg3"; icon_state = "platingdmg3"},/area/awaymission/BMPship3) @@ -360,8 +360,8 @@ "gV" = (/obj/item/weapon/reagent_containers/glass/bucket,/turf/simulated/floor{icon_state = "showroomfloor"},/area/awaymission/BMPship1) "gW" = (/obj/structure/reagent_dispensers,/turf/simulated/floor{icon_state = "showroomfloor"},/area/awaymission/BMPship1) "gX" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/turf/simulated/shuttle/plating,/area/awaymission/BMPship1) -"gY" = (/turf/simulated/shuttle/wall{tag = "icon-swallc2"; icon_state = "swallc2"},/area/awaymission/BMPship1) -"gZ" = (/turf/simulated/floor/plating/airless{tag = "icon-platingdmg2"; icon_state = "platingdmg2"},/turf/simulated/shuttle/wall{dir = 3; icon_state = "swall_f10"; layer = 2; tag = "icon-swall_f10"},/area/awaymission/BMPship3) +"gY" = (/turf/simulated/shuttle/wall{tag = "icon-swallc2"; icon_state = "swall"; dir = 6},/area/awaymission/BMPship1) +"gZ" = (/turf/simulated/floor/plating/airless{tag = "icon-platingdmg2"; icon_state = "platingdmg2"},/turf/simulated/shuttle/wall{dir = 3; icon_state = "swall_c"; dir = 2; layer = 2; tag = "icon-swall_f10"},/area/awaymission/BMPship3) "ha" = (/obj/structure/computerframe{anchored = 1},/turf/simulated/floor/plating/airless{tag = "icon-panelscorched"; icon_state = "panelscorched"},/area/awaymission/BMPship3) "hb" = (/obj/structure/computerframe{anchored = 1},/turf/simulated/floor/plating/airless{tag = "icon-platingdmg1"; icon_state = "platingdmg1"},/area/awaymission/BMPship3) "hc" = (/obj/machinery/light/small,/turf/simulated/floor{icon_state = "bar"},/area/awaymission/BMPship2) @@ -372,13 +372,13 @@ "hh" = (/obj/machinery/door/unpowered/shuttle,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/turf/simulated/floor,/area/awaymission/BMPship1) "hi" = (/turf/simulated/mineral/random,/area/awaymission) "hj" = (/obj/item/device/multitool,/turf/simulated/floor/plating/airless{tag = "icon-platingdmg2"; icon_state = "platingdmg2"},/area/awaymission) -"hk" = (/turf/simulated/shuttle/wall{tag = "icon-swallc3"; icon_state = "swallc3"},/area/awaymission/BMPship3) -"hl" = (/turf/simulated/shuttle/wall{tag = "icon-swallc1"; icon_state = "swallc1"},/area/awaymission/BMPship3) +"hk" = (/turf/simulated/shuttle/wall{tag = "icon-swallc3"; icon_state = "swall"; dir = 5},/area/awaymission/BMPship3) +"hl" = (/turf/simulated/shuttle/wall{tag = "icon-swallc1"; icon_state = "swall"; dir = 10},/area/awaymission/BMPship3) "hm" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/door/airlock/silver,/turf/simulated/floor/plating/airless,/area/awaymission/BMPship3) -"hn" = (/turf/simulated/shuttle/wall{tag = "icon-swallc3"; icon_state = "swallc3"},/area/awaymission/BMPship2) +"hn" = (/turf/simulated/shuttle/wall{tag = "icon-swallc3"; icon_state = "swall"; dir = 5},/area/awaymission/BMPship2) "ho" = (/turf/simulated/shuttle/wall,/area/awaymission/BMPship2) "hp" = (/turf/simulated/mineral/random,/area/awaymission/BMPship2) -"hq" = (/turf/simulated/shuttle/wall{tag = "icon-swall4"; icon_state = "swall4"},/area/awaymission/BMPship2) +"hq" = (/turf/simulated/shuttle/wall{tag = "icon-swall4"; icon_state = "swall"; dir = 4},/area/awaymission/BMPship2) "hr" = (/turf/simulated/shuttle/wall{tag = "icon-swall15"; icon_state = "swall15"},/area/awaymission/BMPship2) "hs" = (/obj/machinery/light{dir = 1},/turf/simulated/floor,/area/awaymission/BMPship1) "ht" = (/obj/structure/stool,/turf/simulated/floor,/area/awaymission/BMPship1) @@ -393,7 +393,7 @@ "hC" = (/obj/structure/rack,/turf/simulated/floor/plating/airless,/area/awaymission/BMPship3) "hD" = (/obj/machinery/light/small{dir = 1},/turf/simulated/floor/plating/airless/asteroid,/area/awaymission/BMPship3) "hE" = (/turf/simulated/shuttle/wall,/area/awaymission) -"hF" = (/turf/simulated/shuttle/wall{tag = "icon-swall1"; icon_state = "swall1"},/area/awaymission) +"hF" = (/turf/simulated/shuttle/wall{tag = "icon-swall1"; icon_state = "swall"; dir = 1},/area/awaymission) "hG" = (/turf/simulated/floor/plating/airless,/area/awaymission) "hH" = (/turf/simulated/floor/plating/airless{tag = "icon-platingdmg1"; icon_state = "platingdmg1"},/area/awaymission) "hI" = (/obj/machinery/light/small{dir = 1},/turf/simulated/floor/plating/airless,/area/awaymission) @@ -428,7 +428,7 @@ "il" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor,/area/awaymission/BMPship1) "im" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/turf/simulated/floor,/area/awaymission/BMPship1) "in" = (/obj/item/weapon/shard{icon_state = "medium"},/turf/space,/area) -"io" = (/turf/simulated/shuttle/wall{tag = "icon-swall13"; icon_state = "swall13"},/area/awaymission/BMPship3) +"io" = (/turf/simulated/shuttle/wall{tag = "icon-swall13"; icon_state = "swall_t"; dir = 2},/area/awaymission/BMPship3) "ip" = (/turf/simulated/shuttle/wall,/area/awaymission/BMPship3) "iq" = (/turf/simulated/floor/plating/airless{tag = "icon-panelscorched"; icon_state = "panelscorched"},/area/awaymission) "ir" = (/obj/effect/decal/remains/human,/turf/simulated/floor,/area/awaymission/BMPship1) @@ -441,15 +441,15 @@ "iy" = (/obj/structure/closet/crate,/obj/item/weapon/spacecash/c10,/obj/item/weapon/spacecash/c200,/turf/simulated/floor,/area/awaymission/BMPship1) "iz" = (/obj/structure/closet/crate,/obj/item/weapon/spacecash/c10,/turf/simulated/floor,/area/awaymission/BMPship1) "iA" = (/obj/structure/sink{dir = 2},/turf/simulated/floor{icon_state = "cafeteria"; dir = 2},/area/awaymission/BMPship1) -"iB" = (/turf/simulated/floor{icon_state = "cafeteria"; dir = 2},/turf/simulated/shuttle/wall{tag = "icon-swall_f6"; icon_state = "swall_f6"; dir = 2},/area/awaymission/BMPship1) +"iB" = (/turf/simulated/floor{icon_state = "cafeteria"; dir = 2},/turf/simulated/shuttle/wall{tag = "icon-swall_f6"; icon_state = "swall_c"; dir = 4; dir = 2},/area/awaymission/BMPship1) "iC" = (/obj/item/clothing/gloves/fyellow,/turf/simulated/floor/plating/airless/asteroid,/area/awaymission) -"iD" = (/turf/simulated/shuttle/wall{tag = "icon-swall4"; icon_state = "swall4"},/area/awaymission) -"iE" = (/turf/simulated/shuttle/wall{tag = "icon-swall12"; icon_state = "swall12"},/area/awaymission) +"iD" = (/turf/simulated/shuttle/wall{tag = "icon-swall4"; icon_state = "swall"; dir = 4},/area/awaymission) +"iE" = (/turf/simulated/shuttle/wall{tag = "icon-swall12"; icon_state = "swall_straight"; dir = 4},/area/awaymission) "iF" = (/obj/item/weapon/storage/box/matches,/obj/item/weapon/storage/fancy/cigarettes/dromedaryco,/turf/simulated/floor/plating,/area/awaymission/BMPship3) "iG" = (/obj/item/weapon/contraband/poster,/turf/simulated/floor/plating,/area/awaymission/BMPship3) -"iH" = (/turf/simulated/shuttle/wall{tag = "icon-swall_s9"; icon_state = "swall_s9"; dir = 2},/area/awaymission/BMPship3) +"iH" = (/turf/simulated/shuttle/wall{tag = "icon-swall_s9"; icon_state = "swall_s"; dir = 8; dir = 2},/area/awaymission/BMPship3) "iI" = (/obj/item/weapon/reagent_containers/food/drinks/beer,/turf/simulated/floor/plating,/area/awaymission/BMPship3) -"iJ" = (/turf/simulated/floor/plating,/turf/simulated/shuttle/wall{tag = "icon-swall_f6"; icon_state = "swall_f6"; dir = 2},/area/awaymission/BMPship3) +"iJ" = (/turf/simulated/floor/plating,/turf/simulated/shuttle/wall{tag = "icon-swall_f6"; icon_state = "swall_c"; dir = 4; dir = 2},/area/awaymission/BMPship3) "iK" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/structure/grille,/turf/simulated/floor/engine,/area/awaymission/BMPship3) "iL" = (/turf/simulated/mineral/diamond,/area/awaymission) "iM" = (/turf/simulated/mineral/clown,/area/awaymission) diff --git a/maps/RandomZLevels/jungle.dmm b/maps/RandomZLevels/jungle.dmm index c275df74092..d66f5a5f026 100644 --- a/maps/RandomZLevels/jungle.dmm +++ b/maps/RandomZLevels/jungle.dmm @@ -180,13 +180,13 @@ "dx" = (/obj/item/weapon/shard,/turf/unsimulated/jungle/path,/area/jungle/crash_ship_source) "dy" = (/obj/effect/landmark/loot_spawn/low,/turf/unsimulated/jungle/path,/area/jungle/crash_ship_source) "dz" = (/obj/item/weapon/shard{icon_state = "small"},/turf/unsimulated/jungle/path,/area/jungle/crash_ship_source) -"dA" = (/turf/unsimulated/jungle/path,/turf/simulated/shuttle/wall{tag = "icon-swall_f6"; icon_state = "swall_f6"; dir = 2},/area/jungle/crash_ship_source) +"dA" = (/turf/unsimulated/jungle/path,/turf/simulated/shuttle/wall{tag = "icon-swall_f6"; icon_state = "swall_c"; dir = 4; dir = 2},/area/jungle/crash_ship_source) "dB" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/turf/unsimulated/floor,/area/jungle/crash_ship_source) "dC" = (/obj/structure/grille,/turf/unsimulated/floor,/area/jungle/crash_ship_source) "dD" = (/obj/structure/grille{density = 0; icon_state = "brokengrille"},/turf/unsimulated/floor,/area/jungle/crash_ship_source) "dE" = (/obj/structure/grille,/obj/structure/window/reinforced,/turf/unsimulated/floor,/area/jungle/crash_ship_source) -"dF" = (/turf/unsimulated/jungle/path,/turf/simulated/shuttle/wall{dir = 3; icon_state = "swall_f10"; layer = 2; tag = "icon-swall_f10"},/area/jungle/crash_ship_source) -"dG" = (/turf/simulated/shuttle/wall{tag = "icon-swall3"; icon_state = "swall3"; dir = 2},/area/jungle/crash_ship_source) +"dF" = (/turf/unsimulated/jungle/path,/turf/simulated/shuttle/wall{dir = 3; icon_state = "swall_c"; dir = 2; layer = 2; tag = "icon-swall_f10"},/area/jungle/crash_ship_source) +"dG" = (/turf/simulated/shuttle/wall{tag = "icon-swall3"; icon_state = "swall_straight"; dir = 1; dir = 2},/area/jungle/crash_ship_source) "dH" = (/obj/effect/landmark/loot_spawn/low,/turf/unsimulated/floor,/area/jungle/crash_ship_source) "dI" = (/turf/unsimulated/floor,/area/jungle/crash_ship_source) "dJ" = (/obj/item/weapon/hatchet,/turf/unsimulated/floor,/area/jungle/crash_ship_source) @@ -200,10 +200,10 @@ "dR" = (/obj/structure/rack,/obj/item/weapon/storage/toolbox/emergency,/turf/unsimulated/floor,/area/jungle/crash_ship_source) "dS" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/turf/unsimulated/floor,/area/jungle/crash_ship_source) "dT" = (/obj/item/weapon/storage/firstaid/regular,/turf/unsimulated/jungle/path,/area/jungle/crash_ship_source) -"dU" = (/turf/unsimulated/jungle/path,/turf/simulated/shuttle/wall{tag = "icon-swall_f5"; icon_state = "swall_f5"; dir = 2},/area/jungle/crash_ship_source) +"dU" = (/turf/unsimulated/jungle/path,/turf/simulated/shuttle/wall{tag = "icon-swall_f5"; icon_state = "swall_c"; dir = 1; dir = 2},/area/jungle/crash_ship_source) "dV" = (/obj/structure/rack,/obj/item/weapon/storage/toolbox/electrical,/turf/unsimulated/floor,/area/jungle/crash_ship_source) -"dW" = (/turf/simulated/shuttle/wall{tag = "icon-swall12"; icon_state = "swall12"; dir = 2},/area/jungle/crash_ship_source) -"dX" = (/turf/unsimulated/jungle/path,/turf/simulated/shuttle/wall{tag = "icon-swall_f9"; icon_state = "swall_f9"; dir = 2},/area/jungle/crash_ship_source) +"dW" = (/turf/simulated/shuttle/wall{tag = "icon-swall12"; icon_state = "swall_straight"; dir = 4; dir = 2},/area/jungle/crash_ship_source) +"dX" = (/turf/unsimulated/jungle/path,/turf/simulated/shuttle/wall{tag = "icon-swall_f9"; icon_state = "swall_c"; dir = 8; dir = 2},/area/jungle/crash_ship_source) "dY" = (/turf/unsimulated/jungle,/area/jungle/crash_ship_clean) "dZ" = (/turf/unsimulated/jungle/clear,/area/jungle/crash_ship_three) "ea" = (/turf/unsimulated/jungle/clear,/area/jungle/crash_ship_four) diff --git a/maps/RandomZLevels/spacebattle.dmm b/maps/RandomZLevels/spacebattle.dmm index a1c638286a7..c7abee95155 100644 --- a/maps/RandomZLevels/spacebattle.dmm +++ b/maps/RandomZLevels/spacebattle.dmm @@ -17,7 +17,7 @@ "aq" = (/mob/living/simple_animal/hostile/syndicate/melee,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/awaymission/spacebattle/syndicate2) "ar" = (/obj/machinery/door/unpowered/shuttle,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/awaymission/spacebattle/syndicate2) "as" = (/obj/structure/table/reinforced,/obj/item/weapon/grenade/empgrenade,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/awaymission/spacebattle/syndicate2) -"at" = (/obj/structure/table/reinforced,/obj/item/ammo_magazine/a12mm,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/awaymission/spacebattle/syndicate2) +"at" = (/obj/structure/table/reinforced,/obj/item/ammo_magazine/a10mm,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/awaymission/spacebattle/syndicate2) "au" = (/obj/structure/table/reinforced,/obj/item/weapon/gun/projectile/automatic/c20r,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/awaymission/spacebattle/syndicate2) "av" = (/turf/space,/turf/simulated/shuttle/wall{dir = 8; icon_state = "diagonalWall3"},/area/awaymission/spacebattle/syndicate3) "aw" = (/obj/structure/shuttle/engine/propulsion{tag = "icon-propulsion_r (NORTH)"; icon_state = "propulsion_r"; dir = 1},/turf/space,/area/awaymission/spacebattle/syndicate3) @@ -96,11 +96,11 @@ "bR" = (/obj/structure/window/reinforced,/obj/structure/shuttle/engine/heater{tag = "icon-heater (NORTH)"; icon_state = "heater"; dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating/airless,/area/awaymission/spacebattle/cruiser) "bS" = (/obj/structure/stool/bed/chair{dir = 4},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/awaymission/spacebattle/cruiser) "bT" = (/obj/structure/stool/bed/chair{dir = 8},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/awaymission/spacebattle/cruiser) -"bU" = (/turf/simulated/shuttle/wall{tag = "icon-swall_s6"; icon_state = "swall_s6"; dir = 2},/area/awaymission/spacebattle/cruiser) -"bV" = (/turf/simulated/shuttle/wall{tag = "icon-swall12"; icon_state = "swall12"; dir = 2},/area/awaymission/spacebattle/cruiser) -"bW" = (/turf/simulated/shuttle/wall{tag = "icon-swall14"; icon_state = "swall14"},/area/awaymission/spacebattle/cruiser) -"bX" = (/turf/simulated/shuttle/wall{tag = "icon-swall12"; icon_state = "swall12"},/area/awaymission/spacebattle/cruiser) -"bY" = (/turf/simulated/shuttle/wall{tag = "icon-swall_s10"; icon_state = "swall_s10"; dir = 2},/area/awaymission/spacebattle/cruiser) +"bU" = (/turf/simulated/shuttle/wall{tag = "icon-swall_s6"; icon_state = "swall_s"; dir = 14; dir = 2},/area/awaymission/spacebattle/cruiser) +"bV" = (/turf/simulated/shuttle/wall{tag = "icon-swall12"; icon_state = "swall_straight"; dir = 4; dir = 2},/area/awaymission/spacebattle/cruiser) +"bW" = (/turf/simulated/shuttle/wall{tag = "icon-swall14"; icon_state = "swall_t"; dir = 1},/area/awaymission/spacebattle/cruiser) +"bX" = (/turf/simulated/shuttle/wall{tag = "icon-swall12"; icon_state = "swall_straight"; dir = 4},/area/awaymission/spacebattle/cruiser) +"bY" = (/turf/simulated/shuttle/wall{tag = "icon-swall_s10"; icon_state = "swall_s"; dir = 2; dir = 2},/area/awaymission/spacebattle/cruiser) "bZ" = (/obj/structure/shuttle/engine/propulsion{tag = "icon-burst_l (EAST)"; icon_state = "burst_l"; dir = 4},/turf/space,/area/awaymission/spacebattle/cruiser) "ca" = (/obj/structure/shuttle/engine/heater{tag = "icon-heater (WEST)"; icon_state = "heater"; dir = 8},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor{tag = "icon-engine"; icon_state = "engine"},/area/awaymission/spacebattle/cruiser) "cb" = (/obj/machinery/power/monitor,/turf/simulated/floor,/area/awaymission/spacebattle/cruiser) @@ -108,7 +108,7 @@ "cd" = (/obj/machinery/computer/pod{id = "spacebattlepod"; name = "Hull Door Control"},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/awaymission/spacebattle/cruiser) "ce" = (/turf/simulated/floor,/area/awaymission/spacebattle/cruiser) "cf" = (/obj/machinery/door/unpowered/shuttle,/turf/simulated/floor,/area/awaymission/spacebattle/cruiser) -"cg" = (/turf/simulated/shuttle/wall{tag = "icon-swall3"; icon_state = "swall3"},/area/awaymission/spacebattle/cruiser) +"cg" = (/turf/simulated/shuttle/wall{tag = "icon-swall3"; icon_state = "swall_straight"; dir = 1},/area/awaymission/spacebattle/cruiser) "ch" = (/obj/structure/shuttle/engine/propulsion{tag = "icon-propulsion (EAST)"; icon_state = "propulsion"; dir = 4},/turf/space,/area/awaymission/spacebattle/cruiser) "ci" = (/obj/structure/table/reinforced,/turf/simulated/floor,/area/awaymission/spacebattle/cruiser) "cj" = (/turf/simulated/floor{tag = "icon-damaged5"; icon_state = "damaged5"},/turf/simulated/shuttle/wall{icon_state = "diagonalWall3"},/area/awaymission/spacebattle/cruiser) @@ -122,13 +122,13 @@ "cr" = (/turf/simulated/floor{tag = "icon-damaged1"; icon_state = "damaged1"},/area/awaymission/spacebattle/cruiser) "cs" = (/obj/effect/landmark/corpse/engineer{mobname = "Rosen Miller"; name = "Rosen Miller"},/obj/effect/decal/cleanable/blood,/turf/simulated/floor,/area/awaymission/spacebattle/cruiser) "ct" = (/obj/effect/decal/cleanable/blood,/turf/simulated/floor,/area/awaymission/spacebattle/cruiser) -"cu" = (/turf/simulated/shuttle/wall{tag = "icon-swall7"; icon_state = "swall7"},/area/awaymission/spacebattle/cruiser) -"cv" = (/turf/simulated/shuttle/wall{tag = "icon-swallc1"; icon_state = "swallc1"},/area/awaymission/spacebattle/cruiser) -"cw" = (/turf/simulated/shuttle/wall{tag = "icon-swallc2"; icon_state = "swallc2"},/area/awaymission/spacebattle/cruiser) +"cu" = (/turf/simulated/shuttle/wall{tag = "icon-swall7"; icon_state = "swall_t"; dir = 8},/area/awaymission/spacebattle/cruiser) +"cv" = (/turf/simulated/shuttle/wall{tag = "icon-swallc1"; icon_state = "swall"; dir = 10},/area/awaymission/spacebattle/cruiser) +"cw" = (/turf/simulated/shuttle/wall{tag = "icon-swallc2"; icon_state = "swall"; dir = 6},/area/awaymission/spacebattle/cruiser) "cx" = (/obj/machinery/power/smes/magical{desc = "A high-capacity superconducting magnetic energy storage (SMES) unit."; name = "power storage unit"},/turf/simulated/floor,/area/awaymission/spacebattle/cruiser) -"cy" = (/obj/item/ammo_casing/a12mm,/obj/item/ammo_casing/a12mm,/turf/simulated/floor{tag = "icon-damaged2"; icon_state = "damaged2"},/area/awaymission/spacebattle/cruiser) -"cz" = (/obj/item/stack/sheet/metal,/obj/item/ammo_casing/a12mm,/turf/simulated/floor,/area/awaymission/spacebattle/cruiser) -"cA" = (/obj/item/ammo_casing/a12mm,/obj/item/ammo_casing/a12mm,/obj/item/ammo_casing/a12mm,/obj/item/ammo_casing/a12mm,/turf/simulated/floor,/area/awaymission/spacebattle/cruiser) +"cy" = (/obj/item/ammo_casing/a10mm,/obj/item/ammo_casing/a10mm,/turf/simulated/floor{tag = "icon-damaged2"; icon_state = "damaged2"},/area/awaymission/spacebattle/cruiser) +"cz" = (/obj/item/stack/sheet/metal,/obj/item/ammo_casing/a10mm,/turf/simulated/floor,/area/awaymission/spacebattle/cruiser) +"cA" = (/obj/item/ammo_casing/a10mm,/obj/item/ammo_casing/a10mm,/obj/item/ammo_casing/a10mm,/obj/item/ammo_casing/a10mm,/turf/simulated/floor,/area/awaymission/spacebattle/cruiser) "cB" = (/obj/structure/closet/cabinet,/turf/simulated/floor,/area/awaymission/spacebattle/cruiser) "cC" = (/obj/structure/stool/bed,/obj/item/weapon/bedsheet,/turf/simulated/floor,/area/awaymission/spacebattle/cruiser) "cD" = (/obj/machinery/vending/cigarette,/turf/simulated/floor,/area/awaymission/spacebattle/cruiser) @@ -141,13 +141,13 @@ "cK" = (/obj/structure/table/reinforced,/obj/machinery/microwave,/turf/simulated/floor{icon_state = "cafeteria"; dir = 2},/area/awaymission/spacebattle/cruiser) "cL" = (/obj/machinery/door/unpowered/shuttle,/turf/simulated/floor/plating,/area/awaymission/spacebattle/cruiser) "cM" = (/turf/simulated/floor/plating,/area/awaymission/spacebattle/cruiser) -"cN" = (/obj/item/ammo_casing/a12mm,/obj/item/ammo_casing/a12mm,/turf/simulated/floor,/area/awaymission/spacebattle/cruiser) -"cO" = (/obj/item/ammo_casing/a12mm,/turf/simulated/floor,/area/awaymission/spacebattle/cruiser) +"cN" = (/obj/item/ammo_casing/a10mm,/obj/item/ammo_casing/a10mm,/turf/simulated/floor,/area/awaymission/spacebattle/cruiser) +"cO" = (/obj/item/ammo_casing/a10mm,/turf/simulated/floor,/area/awaymission/spacebattle/cruiser) "cP" = (/turf/simulated/floor{tag = "icon-damaged2"; icon_state = "damaged2"},/area/awaymission/spacebattle/cruiser) "cQ" = (/obj/effect/landmark{name = "awaystart"},/turf/simulated/floor,/area/awaymission/spacebattle/cruiser) "cR" = (/turf/simulated/floor{icon_state = "cafeteria"; dir = 2},/area/awaymission/spacebattle/cruiser) "cS" = (/obj/item/stack/sheet/metal,/turf/simulated/floor,/area/awaymission/spacebattle/cruiser) -"cT" = (/turf/simulated/shuttle/wall{tag = "icon-swallc3"; icon_state = "swallc3"},/area/awaymission/spacebattle/cruiser) +"cT" = (/turf/simulated/shuttle/wall{tag = "icon-swallc3"; icon_state = "swall"; dir = 5},/area/awaymission/spacebattle/cruiser) "cU" = (/obj/effect/landmark/corpse/engineer{mobname = "Bill Sanchez"; name = "Bill Sanchez"},/obj/effect/decal/cleanable/blood,/turf/simulated/floor,/area/awaymission/spacebattle/cruiser) "cV" = (/obj/machinery/door/unpowered/shuttle,/turf/simulated/floor{icon_state = "cafeteria"; dir = 2},/area/awaymission/spacebattle/cruiser) "cW" = (/obj/structure/table/reinforced,/obj/item/weapon/reagent_containers/food/snacks/fries,/turf/simulated/floor{icon_state = "cafeteria"; dir = 2},/area/awaymission/spacebattle/cruiser) @@ -170,15 +170,15 @@ "dn" = (/obj/structure/closet/toolcloset,/turf/simulated/floor,/area/awaymission/spacebattle/cruiser) "do" = (/obj/effect/landmark/corpse/doctor{mobname = "Daniel Kalla"; name = "Daniel Kalla"},/obj/effect/decal/cleanable/blood,/turf/simulated/floor,/area/awaymission/spacebattle/cruiser) "dp" = (/obj/effect/decal/cleanable/blood,/turf/simulated/floor{icon_state = "bar"},/area/awaymission/spacebattle/cruiser) -"dq" = (/turf/simulated/shuttle/wall{tag = "icon-swall7"; icon_state = "swall7"; dir = 2},/area/awaymission/spacebattle/cruiser) -"dr" = (/turf/simulated/shuttle/wall{tag = "icon-swall11"; icon_state = "swall11"; dir = 2},/area/awaymission/spacebattle/cruiser) +"dq" = (/turf/simulated/shuttle/wall{tag = "icon-swall7"; icon_state = "swall_t"; dir = 8; dir = 2},/area/awaymission/spacebattle/cruiser) +"dr" = (/turf/simulated/shuttle/wall{tag = "icon-swall11"; icon_state = "swall_t"; dir = 4; dir = 2},/area/awaymission/spacebattle/cruiser) "ds" = (/turf/simulated/floor{tag = "icon-damaged4"; icon_state = "damaged4"},/turf/simulated/shuttle/wall{icon_state = "diagonalWall3"},/area/awaymission/spacebattle/cruiser) "dt" = (/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "spacebattlepod2"; name = "Front Hull Door"; opacity = 1; tag = "icon-pdoor0"},/turf/simulated/shuttle/plating,/area/awaymission/spacebattle/cruiser) "du" = (/turf/simulated/floor{tag = "icon-damaged1"; icon_state = "damaged1"},/turf/simulated/shuttle/wall{dir = 4; icon_state = "diagonalWall3"},/area/awaymission/spacebattle/cruiser) -"dv" = (/turf/simulated/shuttle/wall{tag = "icon-swall_s5"; icon_state = "swall_s5"; dir = 2},/area/awaymission/spacebattle/cruiser) -"dw" = (/obj/effect/decal/cleanable/blood,/turf/simulated/shuttle/wall{tag = "icon-swall12"; icon_state = "swall12"},/area/awaymission/spacebattle/cruiser) +"dv" = (/turf/simulated/shuttle/wall{tag = "icon-swall_s5"; icon_state = "swall_s"; dir = 1; dir = 2},/area/awaymission/spacebattle/cruiser) +"dw" = (/obj/effect/decal/cleanable/blood,/turf/simulated/shuttle/wall{tag = "icon-swall12"; icon_state = "swall_straight"; dir = 4},/area/awaymission/spacebattle/cruiser) "dx" = (/turf/simulated/shuttle/wall{tag = "icon-swall15"; icon_state = "swall15"},/area/awaymission/spacebattle/cruiser) -"dy" = (/turf/simulated/shuttle/wall{tag = "icon-swall11"; icon_state = "swall11"},/area/awaymission/spacebattle/cruiser) +"dy" = (/turf/simulated/shuttle/wall{tag = "icon-swall11"; icon_state = "swall_t"; dir = 4},/area/awaymission/spacebattle/cruiser) "dz" = (/obj/effect/landmark/corpse/chef{mobname = "Nathaniel Waters"; name = "Nathaniel Waters"},/obj/item/weapon/butch,/obj/effect/decal/cleanable/blood,/turf/simulated/floor{icon_state = "bar"},/area/awaymission/spacebattle/cruiser) "dA" = (/obj/structure/stool/bed/chair,/turf/simulated/floor{icon_state = "bar"},/area/awaymission/spacebattle/cruiser) "dB" = (/obj/structure/rack,/turf/simulated/floor{icon_state = "red"; dir = 9},/area/awaymission/spacebattle/cruiser) @@ -236,15 +236,15 @@ "eB" = (/obj/effect/landmark/corpse/bridgeofficer{mobname = "Davis Hume"; name = "Davis Hume"},/obj/item/weapon/gun/projectile/shotgun/pump/combat,/turf/simulated/floor,/area/awaymission/spacebattle/cruiser) "eC" = (/obj/item/ammo_casing/shotgun,/turf/simulated/floor,/area/awaymission/spacebattle/cruiser) "eD" = (/turf/simulated/floor{icon_state = "red"; dir = 4},/area/awaymission/spacebattle/cruiser) -"eE" = (/turf/simulated/shuttle/wall{tag = "icon-swall3"; icon_state = "swall3"; dir = 2},/area/awaymission/spacebattle/cruiser) +"eE" = (/turf/simulated/shuttle/wall{tag = "icon-swall3"; icon_state = "swall_straight"; dir = 1; dir = 2},/area/awaymission/spacebattle/cruiser) "eF" = (/obj/structure/table/reinforced,/turf/simulated/floor{dir = 9; icon_state = "blue"},/area/awaymission/spacebattle/cruiser) "eG" = (/obj/structure/table/reinforced,/turf/simulated/floor{dir = 1; icon_state = "blue"},/area/awaymission/spacebattle/cruiser) "eH" = (/obj/structure/table/reinforced,/turf/simulated/floor{tag = "icon-bluefull"; icon_state = "bluefull"},/area/awaymission/spacebattle/cruiser) "eI" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating,/area/awaymission/spacebattle/cruiser) "eJ" = (/mob/living/simple_animal/hostile/syndicate/melee/space,/turf/simulated/floor/plating/airless,/area/awaymission/spacebattle/cruiser) "eK" = (/obj/effect/landmark/corpse/engineer/rig{corpseidjob = "Gunner"; mobname = "Peter West"; name = "Peter West"},/obj/effect/decal/cleanable/blood,/turf/simulated/floor/plating/airless,/area/awaymission/spacebattle/cruiser) -"eL" = (/turf/simulated/shuttle/wall{tag = "icon-swall13"; icon_state = "swall13"; dir = 2},/area/awaymission/spacebattle/cruiser) -"eM" = (/turf/simulated/shuttle/wall{tag = "icon-swallc4"; icon_state = "swallc4"},/area/awaymission/spacebattle/cruiser) +"eL" = (/turf/simulated/shuttle/wall{tag = "icon-swall13"; icon_state = "swall_t"; dir = 2; dir = 2},/area/awaymission/spacebattle/cruiser) +"eM" = (/turf/simulated/shuttle/wall{tag = "icon-swallc4"; icon_state = "swall"; dir = 9},/area/awaymission/spacebattle/cruiser) "eN" = (/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/awaymission/spacebattle/syndicate4) "eO" = (/obj/machinery/computer/shuttle,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/awaymission/spacebattle/syndicate4) "eP" = (/obj/structure/table/reinforced,/obj/item/weapon/kitchen/utensil/spoon,/turf/simulated/floor{icon_state = "bar"},/area/awaymission/spacebattle/cruiser) @@ -272,14 +272,14 @@ "fl" = (/obj/machinery/door/poddoor{id = "spacebattlestorage"; name = "Secure Storage"},/turf/simulated/floor,/area/awaymission/spacebattle/cruiser) "fm" = (/mob/living/simple_animal/hostile/syndicate/ranged,/turf/simulated/floor{icon_state = "blue"; dir = 8},/area/awaymission/spacebattle/cruiser) "fn" = (/obj/machinery/computer/security/telescreen,/turf/simulated/shuttle/wall,/area/awaymission/spacebattle/cruiser) -"fo" = (/turf/simulated/shuttle/wall{tag = "icon-swall_s9"; icon_state = "swall_s9"; dir = 2},/area/awaymission/spacebattle/cruiser) +"fo" = (/turf/simulated/shuttle/wall{tag = "icon-swall_s9"; icon_state = "swall_s"; dir = 8; dir = 2},/area/awaymission/spacebattle/cruiser) "fp" = (/obj/machinery/door/airlock/external,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/awaymission/spacebattle/syndicate4) "fq" = (/obj/structure/closet/crate,/obj/item/clothing/glasses/material,/turf/simulated/floor/plating,/area/awaymission/spacebattle/cruiser) "fr" = (/obj/structure/closet/crate,/obj/item/weapon/light/tube,/obj/item/weapon/light/tube,/obj/item/weapon/light/tube,/turf/simulated/floor/plating,/area/awaymission/spacebattle/cruiser) "fs" = (/turf/simulated/floor{dir = 1; icon_state = "blue"},/area/awaymission/spacebattle/cruiser) -"ft" = (/obj/effect/landmark/corpse/syndicatesoldier,/obj/item/weapon/gun/projectile/automatic/c20r,/obj/item/ammo_casing/a12mm,/obj/item/ammo_casing/a12mm,/obj/effect/decal/cleanable/blood,/turf/simulated/floor{dir = 1; icon_state = "blue"},/area/awaymission/spacebattle/cruiser) -"fu" = (/obj/item/ammo_casing/a12mm,/obj/item/ammo_casing/a12mm,/turf/simulated/floor{dir = 1; icon_state = "blue"},/area/awaymission/spacebattle/cruiser) -"fv" = (/obj/effect/landmark/corpse/bridgeofficer{mobname = "Walter Strider"; name = "Walter Strider"},/obj/item/weapon/gun/projectile/shotgun/pump/combat,/obj/item/ammo_casing/a12mm,/obj/item/ammo_casing/a12mm,/obj/effect/decal/cleanable/blood,/turf/simulated/floor{dir = 1; icon_state = "blue"},/area/awaymission/spacebattle/cruiser) +"ft" = (/obj/effect/landmark/corpse/syndicatesoldier,/obj/item/weapon/gun/projectile/automatic/c20r,/obj/item/ammo_casing/a10mm,/obj/item/ammo_casing/a10mm,/obj/effect/decal/cleanable/blood,/turf/simulated/floor{dir = 1; icon_state = "blue"},/area/awaymission/spacebattle/cruiser) +"fu" = (/obj/item/ammo_casing/a10mm,/obj/item/ammo_casing/a10mm,/turf/simulated/floor{dir = 1; icon_state = "blue"},/area/awaymission/spacebattle/cruiser) +"fv" = (/obj/effect/landmark/corpse/bridgeofficer{mobname = "Walter Strider"; name = "Walter Strider"},/obj/item/weapon/gun/projectile/shotgun/pump/combat,/obj/item/ammo_casing/a10mm,/obj/item/ammo_casing/a10mm,/obj/effect/decal/cleanable/blood,/turf/simulated/floor{dir = 1; icon_state = "blue"},/area/awaymission/spacebattle/cruiser) "fw" = (/obj/item/ammo_casing/shotgun,/turf/simulated/floor{dir = 1; icon_state = "bluecorner"},/area/awaymission/spacebattle/cruiser) "fx" = (/obj/item/ammo_casing/a357,/obj/item/ammo_casing/a357,/obj/item/weapon/gun/projectile/mateba,/obj/effect/landmark/corpse/commander{mobname = "Aaron Bowden"; name = "Aaron Bowden"},/obj/effect/decal/cleanable/blood,/turf/simulated/floor,/area/awaymission/spacebattle/cruiser) "fy" = (/obj/structure/stool/bed/chair{dir = 4},/obj/effect/decal/cleanable/blood,/turf/simulated/floor,/area/awaymission/spacebattle/cruiser) @@ -298,11 +298,11 @@ "fL" = (/obj/structure/artilleryplaceholder{tag = "icon-12"; icon_state = "12"},/turf/simulated/floor/plating/airless,/area/awaymission/spacebattle/cruiser) "fM" = (/obj/structure/closet/crate/internals,/obj/item/weapon/tank/emergency_oxygen,/obj/item/weapon/storage/firstaid/o2,/turf/simulated/floor/plating,/area/awaymission/spacebattle/cruiser) "fN" = (/turf/simulated/floor{dir = 0; icon_state = "blue"},/area/awaymission/spacebattle/cruiser) -"fO" = (/obj/item/ammo_casing/a12mm,/obj/item/ammo_casing/a12mm,/turf/simulated/floor{dir = 0; icon_state = "blue"},/area/awaymission/spacebattle/cruiser) -"fP" = (/obj/item/ammo_casing/shotgun,/obj/item/ammo_casing/a12mm,/obj/item/ammo_casing/a12mm,/turf/simulated/floor{dir = 0; icon_state = "blue"},/area/awaymission/spacebattle/cruiser) +"fO" = (/obj/item/ammo_casing/a10mm,/obj/item/ammo_casing/a10mm,/turf/simulated/floor{dir = 0; icon_state = "blue"},/area/awaymission/spacebattle/cruiser) +"fP" = (/obj/item/ammo_casing/shotgun,/obj/item/ammo_casing/a10mm,/obj/item/ammo_casing/a10mm,/turf/simulated/floor{dir = 0; icon_state = "blue"},/area/awaymission/spacebattle/cruiser) "fQ" = (/obj/item/ammo_casing/shotgun,/turf/simulated/floor{dir = 0; icon_state = "blue"},/area/awaymission/spacebattle/cruiser) -"fR" = (/obj/effect/landmark/corpse/syndicatesoldier,/obj/item/weapon/gun/projectile/automatic/c20r,/obj/item/ammo_casing/a12mm,/obj/item/ammo_casing/a12mm,/obj/effect/decal/cleanable/blood,/turf/simulated/floor{dir = 0; icon_state = "blue"},/area/awaymission/spacebattle/cruiser) -"fS" = (/obj/item/ammo_casing/a12mm,/turf/simulated/floor{dir = 8; icon_state = "bluecorner"},/area/awaymission/spacebattle/cruiser) +"fR" = (/obj/effect/landmark/corpse/syndicatesoldier,/obj/item/weapon/gun/projectile/automatic/c20r,/obj/item/ammo_casing/a10mm,/obj/item/ammo_casing/a10mm,/obj/effect/decal/cleanable/blood,/turf/simulated/floor{dir = 0; icon_state = "blue"},/area/awaymission/spacebattle/cruiser) +"fS" = (/obj/item/ammo_casing/a10mm,/turf/simulated/floor{dir = 8; icon_state = "bluecorner"},/area/awaymission/spacebattle/cruiser) "fT" = (/obj/machinery/computer/communications,/turf/simulated/floor{tag = "icon-bluefull"; icon_state = "bluefull"},/area/awaymission/spacebattle/cruiser) "fU" = (/obj/structure/artilleryplaceholder{tag = "icon-13"; icon_state = "13"},/turf/simulated/floor/plating/airless,/area/awaymission/spacebattle/cruiser) "fV" = (/obj/structure/artilleryplaceholder{tag = "icon-14"; icon_state = "14"},/turf/simulated/floor/plating/airless,/area/awaymission/spacebattle/cruiser) @@ -345,7 +345,7 @@ "gG" = (/turf/space,/turf/simulated/shuttle/wall{dir = 4; icon_state = "diagonalWall3"},/area/awaymission/spacebattle/syndicate4) "gH" = (/obj/structure/closet/crate/secure/weapon,/obj/item/weapon/gun/energy/laser,/turf/simulated/floor/plating,/area/awaymission/spacebattle/cruiser) "gI" = (/obj/structure/closet/crate,/obj/item/weapon/spacecash/c10,/obj/item/weapon/spacecash/c10,/turf/simulated/floor/plating,/area/awaymission/spacebattle/cruiser) -"gJ" = (/obj/effect/decal/cleanable/blood,/turf/simulated/shuttle/wall{tag = "icon-swall3"; icon_state = "swall3"},/area/awaymission/spacebattle/cruiser) +"gJ" = (/obj/effect/decal/cleanable/blood,/turf/simulated/shuttle/wall{tag = "icon-swall3"; icon_state = "swall_straight"; dir = 1},/area/awaymission/spacebattle/cruiser) "gK" = (/obj/effect/landmark/corpse/doctor{mobname = "Adam Smith"; name = "Adam Smith"},/obj/effect/decal/cleanable/blood,/turf/simulated/floor,/area/awaymission/spacebattle/cruiser) "gL" = (/obj/machinery/optable,/turf/simulated/floor{icon_state = "white"},/area/awaymission/spacebattle/cruiser) "gM" = (/turf/simulated/floor{icon_state = "white"},/area/awaymission/spacebattle/cruiser) @@ -399,7 +399,7 @@ "hI" = (/obj/structure/table/woodentable,/obj/item/device/violin,/turf/simulated/floor/wood,/area/awaymission/spacebattle/cruiser) "hJ" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/engine,/area/awaymission/spacebattle/cruiser) "hK" = (/turf/space,/turf/simulated/shuttle/wall{dir = 4; icon_state = "diagonalWall3"},/area/awaymission/spacebattle/syndicate7) -"hL" = (/turf/simulated/shuttle/wall{tag = "icon-swall14"; icon_state = "swall14"; dir = 2},/area/awaymission/spacebattle/cruiser) +"hL" = (/turf/simulated/shuttle/wall{tag = "icon-swall14"; icon_state = "swall_t"; dir = 1; dir = 2},/area/awaymission/spacebattle/cruiser) "hM" = (/obj/structure/table/reinforced,/turf/simulated/floor{icon_state = "white"},/area/awaymission/spacebattle/cruiser) "hN" = (/obj/structure/stool/bed,/obj/item/weapon/bedsheet/captain,/turf/simulated/floor/wood,/area/awaymission/spacebattle/cruiser) "hO" = (/obj/structure/closet/secure_closet/captains,/turf/simulated/floor/wood,/area/awaymission/spacebattle/cruiser) @@ -418,9 +418,9 @@ "ib" = (/obj/machinery/shower{tag = "icon-shower (WEST)"; icon_state = "shower"; dir = 8},/turf/simulated/floor{icon_state = "freezerfloor"},/area/awaymission/spacebattle/cruiser) "ic" = (/obj/structure/toilet,/turf/simulated/floor{icon_state = "freezerfloor"},/area/awaymission/spacebattle/cruiser) "id" = (/obj/structure/table/reinforced,/obj/item/weapon/storage/firstaid/fire,/turf/simulated/floor{icon_state = "white"},/area/awaymission/spacebattle/cruiser) -"ie" = (/turf/simulated/shuttle/wall{tag = "icon-swall_s9"; icon_state = "swall_s9"},/area/awaymission/spacebattle/cruiser) +"ie" = (/turf/simulated/shuttle/wall{tag = "icon-swall_s9"; icon_state = "swall_s"; dir = 8},/area/awaymission/spacebattle/cruiser) "if" = (/obj/machinery/door/unpowered/shuttle,/turf/simulated/floor{icon_state = "freezerfloor"},/area/awaymission/spacebattle/cruiser) -"ig" = (/turf/simulated/shuttle/wall{tag = "icon-swall1"; icon_state = "swall1"},/area/awaymission/spacebattle/cruiser) +"ig" = (/turf/simulated/shuttle/wall{tag = "icon-swall1"; icon_state = "swall"; dir = 1},/area/awaymission/spacebattle/cruiser) "ih" = (/obj/item/weapon/storage/firstaid/regular,/turf/simulated/floor{icon_state = "white"},/area/awaymission/spacebattle/cruiser) "ii" = (/obj/structure/table/reinforced,/obj/item/weapon/storage/firstaid/o2,/turf/simulated/floor{icon_state = "white"},/area/awaymission/spacebattle/cruiser) "ij" = (/obj/machinery/shower{tag = "icon-shower (EAST)"; icon_state = "shower"; dir = 4},/turf/simulated/floor{icon_state = "freezerfloor"},/area/awaymission/spacebattle/cruiser) @@ -428,7 +428,7 @@ "il" = (/mob/living/simple_animal/hostile/syndicate/ranged/space,/turf/simulated/floor{icon_state = "freezerfloor"},/area/awaymission/spacebattle/cruiser) "im" = (/obj/effect/landmark/corpse/doctor{mobname = "Herbert West"; name = "Herbert West"},/obj/effect/decal/cleanable/blood,/turf/simulated/floor{icon_state = "white"},/area/awaymission/spacebattle/cruiser) "in" = (/obj/effect/landmark/corpse/engineer{mobname = "Carth Robinson"; name = "Carth Robinson"},/obj/effect/decal/cleanable/blood,/turf/simulated/floor{icon_state = "freezerfloor"},/area/awaymission/spacebattle/cruiser) -"io" = (/obj/item/ammo_casing/a12mm,/obj/item/ammo_casing/a12mm,/obj/item/ammo_casing/a12mm,/obj/item/ammo_casing/a12mm,/turf/simulated/floor{icon_state = "freezerfloor"},/area/awaymission/spacebattle/cruiser) +"io" = (/obj/item/ammo_casing/a10mm,/obj/item/ammo_casing/a10mm,/obj/item/ammo_casing/a10mm,/obj/item/ammo_casing/a10mm,/turf/simulated/floor{icon_state = "freezerfloor"},/area/awaymission/spacebattle/cruiser) "ip" = (/obj/machinery/sleeper,/turf/simulated/floor{icon_state = "white"},/area/awaymission/spacebattle/cruiser) "iq" = (/obj/machinery/sleep_console,/turf/simulated/floor{icon_state = "white"},/area/awaymission/spacebattle/cruiser) "ir" = (/turf/space,/turf/simulated/shuttle/wall{icon_state = "diagonalWall3"},/area/awaymission/spacebattle/syndicate7) diff --git a/maps/RandomZLevels/stationCollision.dmm b/maps/RandomZLevels/stationCollision.dmm index a95cf0e32bd..c1e5655d216 100644 --- a/maps/RandomZLevels/stationCollision.dmm +++ b/maps/RandomZLevels/stationCollision.dmm @@ -298,12 +298,12 @@ "fL" = (/turf/simulated/wall/cult,/area/awaymission/midblock) "fM" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/grille,/turf/simulated/floor/plating,/area/awaymission/midblock) "fN" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/grille,/turf/simulated/floor/plating,/area/awaymission/midblock) -"fO" = (/turf/simulated/shuttle/wall{tag = "icon-swall_s6"; icon_state = "swall_s6"; dir = 2},/area/awaymission/arrivalblock) -"fP" = (/turf/simulated/shuttle/wall{tag = "icon-swall14"; icon_state = "swall14"; dir = 2},/area/awaymission/arrivalblock) +"fO" = (/turf/simulated/shuttle/wall{tag = "icon-swall_s6"; icon_state = "swall_s"; dir = 14; dir = 2},/area/awaymission/arrivalblock) +"fP" = (/turf/simulated/shuttle/wall{tag = "icon-swall14"; icon_state = "swall_t"; dir = 1; dir = 2},/area/awaymission/arrivalblock) "fQ" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/grille,/turf/simulated/shuttle/plating,/area/awaymission/arrivalblock) "fR" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/grille,/turf/simulated/shuttle/plating,/area/awaymission/arrivalblock) "fS" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/grille,/turf/simulated/shuttle/plating,/area/awaymission/arrivalblock) -"fT" = (/turf/space,/turf/simulated/shuttle/wall{dir = 3; icon_state = "swall_f10"; layer = 2; tag = "icon-swall_f10"},/area/awaymission/arrivalblock) +"fT" = (/turf/space,/turf/simulated/shuttle/wall{dir = 3; icon_state = "swall_c"; dir = 2; layer = 2; tag = "icon-swall_f10"},/area/awaymission/arrivalblock) "fU" = (/obj/structure/table/woodentable,/obj/item/device/flashlight/lamp/green{pixel_x = -3; pixel_y = 5},/obj/item/weapon/paper{pixel_x = 3},/obj/item/weapon/pen{pixel_x = 10; pixel_y = 10},/turf/simulated/floor{icon_state = "grimy"},/area/awaymission/northblock) "fV" = (/obj/machinery/light/small{dir = 4},/turf/simulated/floor{icon_state = "grimy"},/area/awaymission/northblock) "fW" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor/airless,/area/awaymission/midblock) @@ -312,8 +312,8 @@ "fZ" = (/obj/machinery/light/small{dir = 1},/turf/simulated/floor{icon_state = "dark"},/area/awaymission/midblock) "ga" = (/turf/simulated/floor{icon_state = "dark"},/area/awaymission/midblock) "gb" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/structure/grille,/turf/simulated/floor/plating,/area/awaymission/midblock) -"gc" = (/turf/simulated/shuttle/wall{tag = "icon-swall3"; icon_state = "swall3"; dir = 2},/area/awaymission/arrivalblock) -"gd" = (/turf/simulated/shuttle/wall{tag = "icon-swall1"; icon_state = "swall1"; dir = 2},/area/awaymission/arrivalblock) +"gc" = (/turf/simulated/shuttle/wall{tag = "icon-swall3"; icon_state = "swall_straight"; dir = 1; dir = 2},/area/awaymission/arrivalblock) +"gd" = (/turf/simulated/shuttle/wall{tag = "icon-swall1"; icon_state = "swall"; dir = 1; dir = 2},/area/awaymission/arrivalblock) "ge" = (/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/awaymission/arrivalblock) "gf" = (/obj/structure/stool/bed/chair{dir = 1},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/awaymission/arrivalblock) "gg" = (/obj/structure/stool/bed/chair/comfy/brown{dir = 1},/turf/simulated/floor{icon_state = "grimy"},/area/awaymission/northblock) @@ -390,7 +390,7 @@ "hz" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/item/clothing/suit/space/syndicate,/obj/item/weapon/paper/sc_safehint_paper_prison,/obj/item/weapon/gun/projectile/shotgun/pump/sc_pump,/turf/simulated/floor,/area/awaymission/arrivalblock) "hA" = (/obj/structure/window/reinforced,/turf/simulated/floor,/area/awaymission/arrivalblock) "hB" = (/obj/machinery/door/window/southleft{name = "Windoor"},/turf/simulated/floor{icon_state = "red"; dir = 4},/area/awaymission/arrivalblock) -"hC" = (/obj/item/ammo_casing/a12mm{pixel_x = 2; pixel_y = 5},/obj/item/ammo_casing/a12mm{pixel_x = -4; pixel_y = -5},/obj/item/ammo_casing/a12mm,/turf/simulated/floor/airless,/area/awaymission/midblock) +"hC" = (/obj/item/ammo_casing/a10mm{pixel_x = 2; pixel_y = 5},/obj/item/ammo_casing/a10mm{pixel_x = -4; pixel_y = -5},/obj/item/ammo_casing/a10mm,/turf/simulated/floor/airless,/area/awaymission/midblock) "hD" = (/obj/machinery/light{dir = 4; icon_state = "tube1"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor/airless,/area/awaymission/midblock) "hE" = (/obj/structure/sink/kitchen{pixel_y = 32},/turf/simulated/floor,/area/awaymission/midblock) "hF" = (/obj/structure/table/standard,/obj/item/weapon/reagent_containers/food/condiment/enzyme,/obj/item/weapon/reagent_containers/food/condiment/peppermill,/obj/item/weapon/reagent_containers/food/condiment/saltshaker{pixel_x = 4; pixel_y = 4},/turf/simulated/floor,/area/awaymission/midblock) @@ -409,12 +409,12 @@ "hS" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/effect/decal/cleanable/blood/splatter,/turf/simulated/floor,/area/awaymission/midblock) "hT" = (/obj/effect/decal/remains/human,/obj/item/weapon/butch,/obj/item/weapon/kitchenknife,/obj/item/clothing/head/chefhat,/obj/effect/decal/cleanable/blood/splatter,/turf/simulated/floor,/area/awaymission/midblock) "hU" = (/obj/effect/decal/cleanable/blood/splatter,/turf/simulated/floor,/area/awaymission/midblock) -"hV" = (/obj/effect/decal/remains/human{desc = "This guy seemed to have died in terrible way! Half his remains are dust."; icon_state = "remains"; name = "Syndicate agent remains"},/obj/item/ammo_casing/a12mm,/obj/item/weapon/paper/sc_safehint_paper_caf,/obj/item/clothing/under/syndicate,/obj/effect/decal/cleanable/blood/splatter,/obj/item/weapon/gun/projectile/automatic/c20r/sc_c20r,/turf/simulated/floor,/area/awaymission/midblock) +"hV" = (/obj/effect/decal/remains/human{desc = "This guy seemed to have died in terrible way! Half his remains are dust."; icon_state = "remains"; name = "Syndicate agent remains"},/obj/item/ammo_casing/a10mm,/obj/item/weapon/paper/sc_safehint_paper_caf,/obj/item/clothing/under/syndicate,/obj/effect/decal/cleanable/blood/splatter,/obj/item/weapon/gun/projectile/automatic/c20r/sc_c20r,/turf/simulated/floor,/area/awaymission/midblock) "hW" = (/obj/machinery/light/small,/turf/simulated/floor{icon_state = "dark"},/area/awaymission/midblock) "hX" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/grille,/turf/simulated/floor/plating,/area/awaymission/midblock) "hY" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/grille,/turf/simulated/floor/plating,/area/awaymission/midblock) "hZ" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/grille,/turf/simulated/floor/plating,/area/awaymission/arrivalblock) -"ia" = (/obj/effect/decal/cleanable/blood/splatter,/obj/item/ammo_casing/a12mm,/obj/item/ammo_casing/a12mm,/turf/simulated/floor,/area/awaymission/arrivalblock) +"ia" = (/obj/effect/decal/cleanable/blood/splatter,/obj/item/ammo_casing/a10mm,/obj/item/ammo_casing/a10mm,/turf/simulated/floor,/area/awaymission/arrivalblock) "ib" = (/obj/machinery/power/apc{cell_type = 7500; dir = 8; name = "Arrivals Block APC"; pixel_x = -28},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/simulated/floor{icon_state = "red"; dir = 8},/area/awaymission/arrivalblock) "ic" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor,/area/awaymission/arrivalblock) "id" = (/obj/structure/stool/bed/chair{dir = 1},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor,/area/awaymission/arrivalblock) @@ -423,13 +423,13 @@ "ig" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor/airless,/area/awaymission/midblock) "ih" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/turf/simulated/floor/airless{icon_state = "floorscorched1"},/area/awaymission/midblock) "ii" = (/obj/machinery/microwave{pixel_x = -2; pixel_y = 7},/obj/structure/table/standard,/turf/simulated/floor,/area/awaymission/midblock) -"ij" = (/obj/structure/stool,/obj/item/ammo_casing/a12mm,/turf/simulated/floor,/area/awaymission/midblock) -"ik" = (/obj/item/ammo_casing/a12mm,/obj/item/ammo_casing/a12mm,/obj/effect/decal/cleanable/blood/splatter,/turf/simulated/floor,/area/awaymission/midblock) -"il" = (/obj/effect/decal/remains/human{desc = "This guy seemed to have died in terrible way! Half his remains are dust."; icon_state = "remains"; name = "Syndicate agent remains"},/obj/item/ammo_casing/a12mm,/obj/item/clothing/under/syndicate,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/item/weapon/gun/projectile/automatic/c20r/sc_c20r,/turf/simulated/floor,/area/awaymission/midblock) -"im" = (/obj/structure/stool/bed/chair{dir = 4},/obj/item/ammo_casing/a12mm,/obj/effect/decal/cleanable/blood/splatter,/turf/simulated/floor,/area/awaymission/midblock) -"in" = (/obj/structure/table/standard,/obj/item/ammo_casing/a12mm,/turf/simulated/floor,/area/awaymission/midblock) -"io" = (/obj/structure/stool/bed/chair{dir = 8},/obj/item/ammo_casing/a12mm,/obj/item/ammo_casing/a12mm,/obj/effect/decal/cleanable/blood/splatter,/turf/simulated/floor,/area/awaymission/midblock) -"ip" = (/obj/item/ammo_casing/a12mm,/turf/simulated/floor,/area/awaymission/arrivalblock) +"ij" = (/obj/structure/stool,/obj/item/ammo_casing/a10mm,/turf/simulated/floor,/area/awaymission/midblock) +"ik" = (/obj/item/ammo_casing/a10mm,/obj/item/ammo_casing/a10mm,/obj/effect/decal/cleanable/blood/splatter,/turf/simulated/floor,/area/awaymission/midblock) +"il" = (/obj/effect/decal/remains/human{desc = "This guy seemed to have died in terrible way! Half his remains are dust."; icon_state = "remains"; name = "Syndicate agent remains"},/obj/item/ammo_casing/a10mm,/obj/item/clothing/under/syndicate,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/item/weapon/gun/projectile/automatic/c20r/sc_c20r,/turf/simulated/floor,/area/awaymission/midblock) +"im" = (/obj/structure/stool/bed/chair{dir = 4},/obj/item/ammo_casing/a10mm,/obj/effect/decal/cleanable/blood/splatter,/turf/simulated/floor,/area/awaymission/midblock) +"in" = (/obj/structure/table/standard,/obj/item/ammo_casing/a10mm,/turf/simulated/floor,/area/awaymission/midblock) +"io" = (/obj/structure/stool/bed/chair{dir = 8},/obj/item/ammo_casing/a10mm,/obj/item/ammo_casing/a10mm,/obj/effect/decal/cleanable/blood/splatter,/turf/simulated/floor,/area/awaymission/midblock) +"ip" = (/obj/item/ammo_casing/a10mm,/turf/simulated/floor,/area/awaymission/arrivalblock) "iq" = (/obj/machinery/light{icon_state = "tube1"; dir = 4},/turf/simulated/floor,/area/awaymission/arrivalblock) "ir" = (/turf/simulated/floor{icon_state = "red"; dir = 10},/area/awaymission/arrivalblock) "is" = (/turf/simulated/floor{icon_state = "red"},/area/awaymission/arrivalblock) @@ -440,14 +440,14 @@ "ix" = (/obj/structure/closet/secure_closet/freezer/fridge,/obj/machinery/light,/turf/simulated/floor,/area/awaymission/midblock) "iy" = (/obj/structure/closet/secure_closet/freezer/kitchen,/turf/simulated/floor,/area/awaymission/midblock) "iz" = (/obj/machinery/door/window/eastright{name = "Windoor"},/turf/simulated/floor,/area/awaymission/midblock) -"iA" = (/obj/item/ammo_casing/a12mm,/turf/simulated/floor,/area/awaymission/midblock) -"iB" = (/obj/effect/decal/remains/human{desc = "This guy seemed to have died in terrible way! Half his remains are dust."; icon_state = "remains"; name = "Syndicate agent remains"},/obj/item/ammo_casing/a12mm,/obj/item/ammo_casing/a12mm,/obj/item/clothing/under/syndicate,/obj/effect/decal/cleanable/blood/splatter,/obj/item/weapon/gun/projectile/automatic/c20r/sc_c20r,/turf/simulated/floor,/area/awaymission/midblock) -"iC" = (/obj/item/ammo_casing/a12mm,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/effect/decal/cleanable/blood/splatter,/turf/simulated/floor,/area/awaymission/midblock) -"iD" = (/obj/effect/decal/remains/human{desc = "This guy seemed to have died in terrible way! Half his remains are dust."; icon_state = "remains"; name = "Syndicate agent remains"},/obj/item/ammo_casing/a12mm,/obj/item/clothing/under/syndicate,/obj/effect/decal/cleanable/blood/splatter,/obj/item/weapon/gun/projectile/automatic/c20r/sc_c20r,/turf/simulated/floor,/area/awaymission/midblock) -"iE" = (/obj/item/ammo_casing/a12mm,/obj/item/ammo_casing/a12mm,/turf/simulated/floor,/area/awaymission/midblock) +"iA" = (/obj/item/ammo_casing/a10mm,/turf/simulated/floor,/area/awaymission/midblock) +"iB" = (/obj/effect/decal/remains/human{desc = "This guy seemed to have died in terrible way! Half his remains are dust."; icon_state = "remains"; name = "Syndicate agent remains"},/obj/item/ammo_casing/a10mm,/obj/item/ammo_casing/a10mm,/obj/item/clothing/under/syndicate,/obj/effect/decal/cleanable/blood/splatter,/obj/item/weapon/gun/projectile/automatic/c20r/sc_c20r,/turf/simulated/floor,/area/awaymission/midblock) +"iC" = (/obj/item/ammo_casing/a10mm,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/effect/decal/cleanable/blood/splatter,/turf/simulated/floor,/area/awaymission/midblock) +"iD" = (/obj/effect/decal/remains/human{desc = "This guy seemed to have died in terrible way! Half his remains are dust."; icon_state = "remains"; name = "Syndicate agent remains"},/obj/item/ammo_casing/a10mm,/obj/item/clothing/under/syndicate,/obj/effect/decal/cleanable/blood/splatter,/obj/item/weapon/gun/projectile/automatic/c20r/sc_c20r,/turf/simulated/floor,/area/awaymission/midblock) +"iE" = (/obj/item/ammo_casing/a10mm,/obj/item/ammo_casing/a10mm,/turf/simulated/floor,/area/awaymission/midblock) "iF" = (/obj/structure/stool/bed/chair{dir = 1},/turf/simulated/floor,/area/awaymission/midblock) "iG" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/item/weapon/shard{icon_state = "medium"},/obj/item/stack/rods,/turf/simulated/floor/plating,/area/awaymission/arrivalblock) -"iH" = (/obj/effect/decal/remains/human,/obj/item/ammo_casing/a12mm,/turf/simulated/floor,/area/awaymission/arrivalblock) +"iH" = (/obj/effect/decal/remains/human,/obj/item/ammo_casing/a10mm,/turf/simulated/floor,/area/awaymission/arrivalblock) "iI" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/awaymission/arrivalblock) "iJ" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/grille,/turf/simulated/floor/plating,/area/awaymission/arrivalblock) "iK" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating,/area/awaymission/arrivalblock) @@ -464,8 +464,8 @@ "iV" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/simulated/floor/airless,/area/awaymission/southblock) "iW" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor/airless,/area/awaymission/southblock) "iX" = (/turf/simulated/floor/airless,/area/awaymission/southblock) -"iY" = (/obj/item/ammo_casing/a12mm,/turf/simulated/floor/airless,/area/awaymission/southblock) -"iZ" = (/obj/item/ammo_casing/a12mm{pixel_x = -4; pixel_y = 3},/turf/simulated/floor/airless,/area/awaymission/southblock) +"iY" = (/obj/item/ammo_casing/a10mm,/turf/simulated/floor/airless,/area/awaymission/southblock) +"iZ" = (/obj/item/ammo_casing/a10mm{pixel_x = -4; pixel_y = 3},/turf/simulated/floor/airless,/area/awaymission/southblock) "ja" = (/obj/machinery/light{dir = 1},/turf/simulated/floor/airless,/area/awaymission/southblock) "jb" = (/obj/machinery/light{dir = 4; icon_state = "tube1"},/turf/simulated/floor/airless,/area/awaymission/southblock) "jc" = (/turf/simulated/wall,/area/awaymission/southblock) @@ -479,7 +479,7 @@ "jk" = (/turf/simulated/floor/airless{icon_state = "damaged4"},/area/awaymission/southblock) "jl" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/turf/simulated/floor/airless,/area/awaymission/southblock) "jm" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor/airless,/area/awaymission/southblock) -"jn" = (/obj/item/ammo_casing/a12mm{pixel_y = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor/airless,/area/awaymission/southblock) +"jn" = (/obj/item/ammo_casing/a10mm{pixel_y = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor/airless,/area/awaymission/southblock) "jo" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/turf/simulated/floor/airless,/area/awaymission/southblock) "jp" = (/obj/structure/sign/redcross{pixel_y = -32},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor/airless,/area/awaymission/southblock) "jq" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/turf/simulated/floor/airless,/area/awaymission/southblock) @@ -495,10 +495,10 @@ "jA" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/structure/grille,/turf/simulated/floor/plating,/area/awaymission/southblock) "jB" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/grille,/turf/simulated/floor/plating,/area/awaymission/southblock) "jC" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/grille,/turf/simulated/floor/plating,/area/awaymission/southblock) -"jD" = (/obj/item/ammo_casing/a12mm,/obj/item/ammo_casing/a12mm,/turf/simulated/floor,/area/awaymission/arrivalblock) +"jD" = (/obj/item/ammo_casing/a10mm,/obj/item/ammo_casing/a10mm,/turf/simulated/floor,/area/awaymission/arrivalblock) "jE" = (/obj/effect/decal/cleanable/blood/splatter,/turf/simulated/floor,/area/awaymission/arrivalblock) "jF" = (/obj/effect/decal/remains/human{desc = "This guy seemed to have died in terrible way! Half his remains are dust."; icon_state = "remains"; name = "Syndicate agent remains"},/turf/simulated/floor,/area/awaymission/arrivalblock) -"jG" = (/obj/machinery/light{dir = 1},/obj/item/ammo_casing/a12mm,/turf/simulated/floor,/area/awaymission/arrivalblock) +"jG" = (/obj/machinery/light{dir = 1},/obj/item/ammo_casing/a10mm,/turf/simulated/floor,/area/awaymission/arrivalblock) "jH" = (/obj/structure/sign/vacuum{pixel_y = 32},/turf/simulated/floor,/area/awaymission/arrivalblock) "jI" = (/obj/structure/closet/toolcloset,/turf/simulated/floor,/area/awaymission/southblock) "jJ" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor,/area/awaymission/southblock) @@ -519,7 +519,7 @@ "jY" = (/obj/structure/table/woodentable,/turf/simulated/floor/wood,/area/awaymission/southblock) "jZ" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/grille,/turf/simulated/floor/plating,/area/awaymission/southblock) "ka" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/grille,/turf/simulated/floor/plating,/area/awaymission/arrivalblock) -"kb" = (/obj/effect/decal/cleanable/blood/splatter,/obj/item/ammo_casing/a12mm,/turf/simulated/floor,/area/awaymission/arrivalblock) +"kb" = (/obj/effect/decal/cleanable/blood/splatter,/obj/item/ammo_casing/a10mm,/turf/simulated/floor,/area/awaymission/arrivalblock) "kc" = (/obj/structure/sign/pods{pixel_y = -32},/turf/simulated/floor,/area/awaymission/arrivalblock) "kd" = (/obj/structure/sign/vacuum{pixel_y = -32},/turf/simulated/floor,/area/awaymission/arrivalblock) "ke" = (/obj/machinery/portable_atmospherics/scrubber,/turf/simulated/floor,/area/awaymission/southblock) @@ -553,7 +553,7 @@ "kG" = (/obj/structure/shuttle/engine/propulsion{tag = "icon-propulsion_l"; icon_state = "propulsion_l"},/obj/structure/shuttle/engine/propulsion{tag = "icon-burst_l"; icon_state = "burst_l"},/obj/structure/shuttle/engine/propulsion{tag = "icon-propulsion_l"; icon_state = "propulsion_l"},/obj/structure/shuttle/engine/propulsion,/turf/simulated/shuttle/plating,/area/awaymission/arrivalblock) "kH" = (/obj/structure/shuttle/engine/propulsion{tag = "icon-propulsion_l (NORTH)"; icon_state = "propulsion_l"; dir = 1},/obj/structure/window/reinforced,/turf/space,/area/awaymission/arrivalblock) "kI" = (/obj/structure/shuttle/engine/propulsion{tag = "icon-propulsion_r (NORTH)"; icon_state = "propulsion_r"; dir = 1},/obj/structure/window/reinforced,/turf/space,/area/awaymission/arrivalblock) -"kJ" = (/turf/simulated/shuttle/wall{tag = "icon-swall_s10"; icon_state = "swall_s10"; dir = 2},/area/awaymission/arrivalblock) +"kJ" = (/turf/simulated/shuttle/wall{tag = "icon-swall_s10"; icon_state = "swall_s"; dir = 2; dir = 2},/area/awaymission/arrivalblock) "kK" = (/obj/machinery/vending/hydronutrients,/turf/simulated/floor,/area/awaymission/arrivalblock) "kL" = (/obj/machinery/vending/hydroseeds,/turf/simulated/floor,/area/awaymission/arrivalblock) "kM" = (/obj/structure/sink/kitchen{pixel_y = 32},/turf/simulated/floor,/area/awaymission/arrivalblock) @@ -595,10 +595,10 @@ "lw" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/grille,/turf/simulated/floor/plating,/area/awaymission/southblock) "lx" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/grille,/turf/simulated/floor/plating,/area/awaymission/southblock) "ly" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/grille,/turf/simulated/floor/plating,/area/awaymission/southblock) -"lz" = (/turf/simulated/shuttle/wall{tag = "icon-swall_s5"; icon_state = "swall_s5"; dir = 2},/area/awaymission/arrivalblock) -"lA" = (/turf/simulated/shuttle/wall{tag = "icon-swall12"; icon_state = "swall12"; dir = 2},/area/awaymission/arrivalblock) +"lz" = (/turf/simulated/shuttle/wall{tag = "icon-swall_s5"; icon_state = "swall_s"; dir = 1; dir = 2},/area/awaymission/arrivalblock) +"lA" = (/turf/simulated/shuttle/wall{tag = "icon-swall12"; icon_state = "swall_straight"; dir = 4; dir = 2},/area/awaymission/arrivalblock) "lB" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/turf/simulated/shuttle/plating,/area/awaymission/arrivalblock) -"lC" = (/turf/simulated/shuttle/wall{tag = "icon-swall_s9"; icon_state = "swall_s9"; dir = 2},/area/awaymission/arrivalblock) +"lC" = (/turf/simulated/shuttle/wall{tag = "icon-swall_s9"; icon_state = "swall_s"; dir = 8; dir = 2},/area/awaymission/arrivalblock) "lD" = (/obj/structure/closet/crate/hydroponics,/turf/simulated/floor,/area/awaymission/arrivalblock) "lE" = (/obj/structure/table/standard,/obj/item/weapon/reagent_containers/glass/bucket,/turf/simulated/floor,/area/awaymission/arrivalblock) "lF" = (/obj/effect/decal/cleanable/blood/splatter,/obj/effect/decal/cleanable/blood/splatter,/turf/simulated/floor,/area/awaymission/arrivalblock) diff --git a/maps/RandomZLevels/wildwest.dmm b/maps/RandomZLevels/wildwest.dmm index eacd902064b..491d7f64fe9 100644 --- a/maps/RandomZLevels/wildwest.dmm +++ b/maps/RandomZLevels/wildwest.dmm @@ -50,11 +50,11 @@ "aX" = (/obj/effect/forcefield{desc = "You can't get in. Heh."; layer = 1; name = "Blocker"},/turf/simulated/wall/mineral/sandstone,/area/awaymission/wwmines) "aY" = (/obj/effect/decal/cleanable/blood/gibs/body{tag = "icon-gibup1"; icon_state = "gibup1"},/turf/simulated/floor/plating/ironsand{tag = "icon-ironsand1"; icon_state = "ironsand1"},/area/awaymission/wwmines) "aZ" = (/obj/effect/mine/dnascramble,/turf/simulated/floor/plating/ironsand{tag = "icon-ironsand1"; icon_state = "ironsand1"},/area/awaymission/wwmines) -"ba" = (/obj/effect/mine/dnascramble,/obj/item/ammo_magazine/a12mm,/turf/simulated/floor/plating/ironsand{tag = "icon-ironsand1"; icon_state = "ironsand1"},/area/awaymission/wwmines) +"ba" = (/obj/effect/mine/dnascramble,/obj/item/ammo_magazine/a10mm,/turf/simulated/floor/plating/ironsand{tag = "icon-ironsand1"; icon_state = "ironsand1"},/area/awaymission/wwmines) "bb" = (/obj/effect/decal/cleanable/cobweb,/turf/simulated/floor/plating,/area/awaymission/wwrefine) "bc" = (/turf/simulated/floor/plating,/area/awaymission/wwrefine) "bd" = (/obj/machinery/door/airlock/sandstone,/turf/simulated/floor/plating,/area/awaymission/wwrefine) -"be" = (/obj/item/ammo_magazine/a12mm,/turf/simulated/floor/plating/ironsand{tag = "icon-ironsand1"; icon_state = "ironsand1"},/area/awaymission/wwmines) +"be" = (/obj/item/ammo_magazine/a10mm,/turf/simulated/floor/plating/ironsand{tag = "icon-ironsand1"; icon_state = "ironsand1"},/area/awaymission/wwmines) "bf" = (/mob/living/simple_animal/hostile/syndicate/ranged,/turf/simulated/floor/plating/ironsand{tag = "icon-ironsand1"; icon_state = "ironsand1"},/area/awaymission/wwmines) "bg" = (/turf/simulated/wall/mineral/sandstone,/area) "bh" = (/obj/structure/largecrate,/turf/simulated/floor/plating,/area/awaymission/wwrefine) @@ -68,7 +68,7 @@ "bp" = (/obj/effect/decal/cleanable/blood/gibs/body,/turf/simulated/floor/wood,/area/awaymission/wwmines) "bq" = (/obj/effect/landmark/corpse/miner/rig,/turf/simulated/floor/plating,/area/awaymission/wwrefine) "br" = (/obj/structure/lattice,/turf/space,/area) -"bs" = (/obj/effect/mine/dnascramble,/obj/item/ammo_magazine/a12mm,/turf/simulated/floor/wood,/area/awaymission/wwmines) +"bs" = (/obj/effect/mine/dnascramble,/obj/item/ammo_magazine/a10mm,/turf/simulated/floor/wood,/area/awaymission/wwmines) "bt" = (/obj/structure/closet/crate,/obj/effect/decal/cleanable/cobweb,/turf/simulated/floor/plating,/area/awaymission/wwrefine) "bu" = (/turf/simulated/wall/mineral/sandstone,/area/awaymission/wwmines) "bv" = (/obj/structure/window/reinforced{tag = "icon-fwindow"; icon_state = "fwindow"},/turf/space,/area) @@ -112,7 +112,7 @@ "ch" = (/obj/structure/table/woodentable,/obj/item/weapon/gun/projectile,/turf/simulated/floor{tag = "icon-cafeteria (NORTHEAST)"; icon_state = "cafeteria"; dir = 5},/area/awaymission/wwmines) "ci" = (/obj/structure/mineral_door/wood{tag = "icon-woodopening"; icon_state = "woodopening"},/turf/simulated/floor/wood,/area/awaymission/wwmines) "cj" = (/obj/structure/stool,/turf/simulated/floor/carpet,/area/awaymission/wwmines) -"ck" = (/obj/item/ammo_magazine/a12mm,/turf/simulated/floor/carpet,/area/awaymission/wwmines) +"ck" = (/obj/item/ammo_magazine/a10mm,/turf/simulated/floor/carpet,/area/awaymission/wwmines) "cl" = (/obj/structure/stool,/turf/simulated/floor/wood,/area/awaymission/wwmines) "cm" = (/obj/structure/bookcase{tag = "icon-book-5"; icon_state = "book-5"},/turf/simulated/floor/wood,/area/awaymission/wwgov) "cn" = (/turf/simulated/floor/wood,/area/awaymission/wwgov) @@ -129,7 +129,7 @@ "cy" = (/obj/structure/stool/bed/chair/wood/wings,/turf/simulated/floor/wood,/area/awaymission/wwgov) "cz" = (/turf/simulated/floor{tag = "icon-stage_bleft"; icon_state = "stage_bleft"},/area/awaymission/wwgov) "cA" = (/obj/effect/decal/cleanable/blood/splatter,/turf/simulated/floor/wood,/area/awaymission/wwmines) -"cB" = (/obj/effect/mine/plasma,/obj/item/ammo_magazine/a12mm,/turf/simulated/floor/plating/ironsand{tag = "icon-ironsand1"; icon_state = "ironsand1"},/area/awaymission/wwmines) +"cB" = (/obj/effect/mine/plasma,/obj/item/ammo_magazine/a10mm,/turf/simulated/floor/plating/ironsand{tag = "icon-ironsand1"; icon_state = "ironsand1"},/area/awaymission/wwmines) "cC" = (/obj/structure/table/woodentable,/obj/item/weapon/storage/toolbox/electrical,/turf/simulated/floor/wood,/area/awaymission/wwgov) "cD" = (/obj/structure/table/woodentable,/obj/item/clothing/gloves/yellow,/obj/item/device/multitool,/turf/simulated/floor/wood,/area/awaymission/wwgov) "cE" = (/obj/structure/stool/bed/chair/wood/normal{dir = 4},/turf/simulated/floor/wood,/area/awaymission/wwgov) @@ -175,7 +175,7 @@ "ds" = (/obj/structure/table/woodentable,/obj/item/weapon/reagent_containers/food/drinks/bottle/patron,/turf/simulated/floor{tag = "icon-stage_bleft"; icon_state = "stage_bleft"},/area/awaymission/wwgov) "dt" = (/obj/effect/decal/cleanable/blood/tracks,/turf/simulated/floor/plating/ironsand{tag = "icon-ironsand1"; icon_state = "ironsand1"},/area/awaymission/wwmines) "du" = (/obj/effect/decal/cleanable/blood/tracks,/turf/simulated/floor/wood,/area/awaymission/wwmines) -"dv" = (/obj/effect/mine/plasma,/obj/item/ammo_magazine/a12mm,/turf/simulated/floor/wood,/area/awaymission/wwmines) +"dv" = (/obj/effect/mine/plasma,/obj/item/ammo_magazine/a10mm,/turf/simulated/floor/wood,/area/awaymission/wwmines) "dw" = (/obj/effect/decal/cleanable/blood/splatter,/turf/simulated/floor/plating/ironsand{tag = "icon-ironsand1"; icon_state = "ironsand1"},/area/awaymission/wwmines) "dx" = (/turf/simulated/floor/plating/ironsand{tag = "icon-ironsand4"; icon_state = "ironsand4"},/area/awaymission/wwgov) "dy" = (/obj/effect/landmark/corpse/miner/rig,/turf/simulated/floor/wood,/area/awaymission/wwmines) @@ -344,19 +344,19 @@ "gF" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/turf/simulated/floor/grass,/area/awaymission/wwgov) "gG" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{tag = "icon-fwindow (EAST)"; icon_state = "fwindow"; dir = 4},/obj/structure/window/reinforced{tag = "icon-fwindow (WEST)"; icon_state = "fwindow"; dir = 8},/obj/structure/grille,/turf/simulated/floor,/area/awaymission/wwrefine) "gH" = (/obj/effect/decal/cleanable/blood,/obj/effect/forcefield{desc = "You can't get in. Heh."; layer = 1; name = "Blocker"},/turf/simulated/mineral,/area/awaymission/wwmines) -"gI" = (/turf/simulated/shuttle/wall{tag = "icon-swall_s6"; icon_state = "swall_s6"},/area/awaymission/wwrefine) -"gJ" = (/turf/simulated/shuttle/wall{tag = "icon-swall12"; icon_state = "swall12"},/area/awaymission/wwrefine) -"gK" = (/turf/simulated/shuttle/wall{tag = "icon-swall8"; icon_state = "swall8"},/area/awaymission/wwrefine) +"gI" = (/turf/simulated/shuttle/wall{tag = "icon-swall_s6"; icon_state = "swall_s"; dir = 14},/area/awaymission/wwrefine) +"gJ" = (/turf/simulated/shuttle/wall{tag = "icon-swall12"; icon_state = "swall_straight"; dir = 4},/area/awaymission/wwrefine) +"gK" = (/turf/simulated/shuttle/wall{tag = "icon-swall8"; icon_state = "swall"; dir = 8},/area/awaymission/wwrefine) "gL" = (/obj/machinery/door/unpowered/shuttle,/turf/simulated/shuttle{tag = "icon-floor2"; icon_state = "floor2"},/area/awaymission/wwrefine) -"gM" = (/turf/simulated/shuttle/wall{tag = "icon-swall4"; icon_state = "swall4"},/area/awaymission/wwrefine) -"gN" = (/turf/simulated/shuttle/wall{tag = "icon-swall_s10"; icon_state = "swall_s10"},/area/awaymission/wwrefine) -"gO" = (/turf/simulated/shuttle/wall{tag = "icon-swall3"; icon_state = "swall3"},/area/awaymission/wwrefine) +"gM" = (/turf/simulated/shuttle/wall{tag = "icon-swall4"; icon_state = "swall"; dir = 4},/area/awaymission/wwrefine) +"gN" = (/turf/simulated/shuttle/wall{tag = "icon-swall_s10"; icon_state = "swall_s"; dir = 2},/area/awaymission/wwrefine) +"gO" = (/turf/simulated/shuttle/wall{tag = "icon-swall3"; icon_state = "swall_straight"; dir = 1},/area/awaymission/wwrefine) "gP" = (/obj/structure/stool/bed/chair,/turf/simulated/shuttle{tag = "icon-floor2"; icon_state = "floor2"},/area/awaymission/wwrefine) "gQ" = (/turf/simulated/shuttle{tag = "icon-floor2"; icon_state = "floor2"},/area/awaymission/wwrefine) -"gR" = (/turf/simulated/shuttle/wall{tag = "icon-swall_s5"; icon_state = "swall_s5"},/area/awaymission/wwrefine) -"gS" = (/turf/simulated/shuttle/wall{tag = "icon-swallc1"; icon_state = "swallc1"},/area/awaymission/wwrefine) -"gT" = (/turf/simulated/shuttle/wall{tag = "icon-swallc2"; icon_state = "swallc2"},/area/awaymission/wwrefine) -"gU" = (/turf/simulated/shuttle/wall{tag = "icon-swall_s9"; icon_state = "swall_s9"},/area/awaymission/wwrefine) +"gR" = (/turf/simulated/shuttle/wall{tag = "icon-swall_s5"; icon_state = "swall_s"; dir = 1},/area/awaymission/wwrefine) +"gS" = (/turf/simulated/shuttle/wall{tag = "icon-swallc1"; icon_state = "swall"; dir = 10},/area/awaymission/wwrefine) +"gT" = (/turf/simulated/shuttle/wall{tag = "icon-swallc2"; icon_state = "swall"; dir = 6},/area/awaymission/wwrefine) +"gU" = (/turf/simulated/shuttle/wall{tag = "icon-swall_s9"; icon_state = "swall_s"; dir = 8},/area/awaymission/wwrefine) "gV" = (/obj/effect/landmark{name = "awaystart"},/turf/simulated/floor/plating/ironsand{tag = "icon-ironsand1"; icon_state = "ironsand1"},/area/awaymission/wwmines) "gW" = (/obj/structure/table/reinforced,/obj/item/clothing/suit/space/syndicate/black/orange,/obj/item/clothing/head/helmet/space/syndicate/black/orange,/obj/item/clothing/mask/gas/syndicate,/obj/item/weapon/tank/oxygen,/turf/simulated/shuttle{tag = "icon-floor2"; icon_state = "floor2"},/area/awaymission/wwrefine) "gX" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{tag = "icon-fwindow"; icon_state = "fwindow"},/turf/simulated/shuttle{tag = "icon-floor2"; icon_state = "floor2"},/area/awaymission/wwrefine) diff --git a/maps/exodus-1.dmm b/maps/exodus-1.dmm index bac04445db7..d7360df15fc 100644 --- a/maps/exodus-1.dmm +++ b/maps/exodus-1.dmm @@ -271,9 +271,9 @@ "afk" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 5},/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plating,/area/maintenance/security_starboard) "afl" = (/obj/machinery/portable_atmospherics/powered/pump/filled,/turf/simulated/floor/plating,/area/maintenance/security_starboard) "afm" = (/obj/structure/grille/broken,/obj/structure/lattice,/obj/item/weapon/storage/toolbox/mechanical{pixel_x = -2; pixel_y = -1},/turf/space,/area/space) -"afn" = (/turf/simulated/floor/plating,/obj/structure/shuttle/engine/propulsion/burst{dir = 4},/turf/simulated/shuttle/wall{icon_state = "swall_f6"; dir = 2},/area/shuttle/escape_pod3/station) -"afo" = (/turf/simulated/shuttle/wall{icon_state = "swall12"; dir = 2},/area/shuttle/escape_pod3/station) -"afp" = (/turf/simulated/shuttle/wall{icon_state = "swall_s10"; dir = 2},/area/shuttle/escape_pod3/station) +"afn" = (/turf/simulated/floor/plating,/obj/structure/shuttle/engine/propulsion/burst{dir = 8},/turf/simulated/shuttle/wall{icon_state = "swall_c"; dir = 4},/area/shuttle/escape_pod3/station) +"afo" = (/turf/simulated/shuttle/wall{icon_state = "swall_straight"; dir = 4},/area/shuttle/escape_pod3/station) +"afp" = (/turf/simulated/shuttle/wall{icon_state = "swall_s"; dir = 2},/area/shuttle/escape_pod3/station) "afq" = (/obj/effect/decal/cleanable/blood/oil,/obj/effect/decal/remains/robot,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plating,/area/maintenance/security_port) "afr" = (/obj/structure/table/rack,/obj/item/weapon/secbot_assembly,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plating,/area/maintenance/security_port) "afs" = (/obj/structure/closet/crate,/obj/item/clothing/shoes/combat,/obj/item/weapon/tank/air,/obj/item/weapon/tank/air,/obj/item/weapon/tank/air,/obj/item/clothing/mask/gas,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plating,/area/maintenance/security_port) @@ -334,8 +334,8 @@ "agv" = (/turf/simulated/wall/r_wall,/area/crew_quarters/heads/hos) "agw" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plating,/area/maintenance/security_starboard) "agx" = (/obj/machinery/door/blast/regular{density = 0; icon_state = "pdoor0"; id = "Prison Gate"; name = "Security Blast Door"; opacity = 0},/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/maintenance{name = "Security Maintenance"; req_access = list(1)},/turf/simulated/floor/plating,/area/security/brig) -"agy" = (/turf/simulated/floor/plating,/obj/structure/shuttle/engine/propulsion/burst{dir = 4},/turf/simulated/shuttle/wall{icon_state = "swall_f5"; dir = 2},/area/shuttle/escape_pod3/station) -"agz" = (/turf/simulated/shuttle/wall{icon_state = "swall_s9"; dir = 2},/area/shuttle/escape_pod3/station) +"agy" = (/turf/simulated/floor/plating,/obj/structure/shuttle/engine/propulsion/burst{dir = 8},/turf/simulated/shuttle/wall{icon_state = "swall_c"; dir = 1},/area/shuttle/escape_pod3/station) +"agz" = (/turf/simulated/shuttle/wall{icon_state = "swall_s"; dir = 8},/area/shuttle/escape_pod3/station) "agA" = (/obj/structure/table/rack,/obj/item/device/flashlight,/obj/item/device/flashlight,/obj/effect/decal/cleanable/cobweb,/turf/simulated/floor/plating,/area/maintenance/security_port) "agB" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor/plating,/area/maintenance/security_port) "agC" = (/obj/item/trash/candy,/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor/plating,/area/maintenance/security_port) @@ -996,12 +996,12 @@ "ath" = (/obj/structure/bed/chair{dir = 8},/obj/machinery/alarm{dir = 1; icon_state = "alarm0"; pixel_y = -22},/turf/simulated/floor,/area/security/prison) "ati" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/plating,/area/maintenance/dormitory) "atj" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/crew_quarters/fitness) -"atk" = (/turf/simulated/shuttle/wall{icon_state = "swall_s6"; dir = 2},/area/shuttle/escape_pod1/station) +"atk" = (/turf/simulated/shuttle/wall{icon_state = "swall_s"; dir = 4},/area/shuttle/escape_pod1/station) "atl" = (/obj/structure/window/shuttle,/obj/structure/grille,/turf/simulated/shuttle/plating,/area/shuttle/escape_pod1/station) -"atm" = (/turf/simulated/shuttle/wall{icon_state = "swall_s10"; dir = 2},/area/shuttle/escape_pod1/station) -"atn" = (/turf/simulated/shuttle/wall{icon_state = "swall_s6"; dir = 2},/area/shuttle/escape_pod2/station) +"atm" = (/turf/simulated/shuttle/wall{icon_state = "swall_s"; dir = 2},/area/shuttle/escape_pod1/station) +"atn" = (/turf/simulated/shuttle/wall{icon_state = "swall_s"; dir = 4},/area/shuttle/escape_pod2/station) "ato" = (/obj/structure/window/shuttle,/obj/structure/grille,/turf/simulated/shuttle/plating,/area/shuttle/escape_pod2/station) -"atp" = (/turf/simulated/shuttle/wall{icon_state = "swall_s10"; dir = 2},/area/shuttle/escape_pod2/station) +"atp" = (/turf/simulated/shuttle/wall{icon_state = "swall_s"; dir = 2},/area/shuttle/escape_pod2/station) "atq" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/maintenance/arrivals) "atr" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/firedoor/border_only,/obj/machinery/light{dir = 4; icon_state = "tube1"; pixel_x = -6},/turf/simulated/floor/plating,/area/crew_quarters/fitness) "ats" = (/obj/structure/table/rack,/obj/item/weapon/flame/lighter/random,/obj/item/weapon/storage/fancy/cigarettes/dromedaryco,/turf/simulated/floor/plating,/area/maintenance/evahallway) @@ -1031,9 +1031,9 @@ "atQ" = (/obj/machinery/door/airlock/external{frequency = 1379; icon_state = "door_locked"; id_tag = "arrivals_outer"; locked = 1; name = "Engineering External Access"; req_access = list(10,13)},/turf/simulated/floor/plating,/area/maintenance/arrivals) "atR" = (/turf/simulated/floor/engine{name = "Holodeck Projector Floor"},/area/holodeck/alphadeck) "atS" = (/turf/simulated/wall/r_wall,/area/hallway/secondary/entry/fore) -"atT" = (/turf/simulated/shuttle/wall{icon_state = "swall3"; dir = 2},/area/shuttle/escape_pod1/station) +"atT" = (/turf/simulated/shuttle/wall{icon_state = "swall_straight"; dir = 1},/area/shuttle/escape_pod1/station) "atU" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/crew_quarters/fitness) -"atV" = (/turf/simulated/shuttle/wall{icon_state = "swall3"; dir = 2},/area/shuttle/escape_pod2/station) +"atV" = (/turf/simulated/shuttle/wall{icon_state = "swall_straight"; dir = 1},/area/shuttle/escape_pod2/station) "atW" = (/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 1},/area/maintenance/arrivals) "atX" = (/obj/structure/table/standard,/obj/item/device/radio/intercom{broadcasting = 1; freerange = 0; frequency = 1475; listening = 0; name = "Station Intercom (Security)"; pixel_x = 0; pixel_y = -30},/obj/item/device/radio/headset,/obj/item/device/radio/headset,/obj/item/device/radio/headset,/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 1},/turf/simulated/floor{icon_state = "red"; dir = 10},/area/security/brig) "atY" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/machinery/atmospherics/pipe/simple/visible{tag = "icon-intact (SOUTHWEST)"; icon_state = "intact"; dir = 10},/turf/simulated/floor/plating,/area/maintenance/arrivals) @@ -1116,13 +1116,13 @@ "avx" = (/turf/simulated/floor,/area/crew_quarters/fitness) "avy" = (/obj/structure/bed/chair{dir = 1},/obj/item/device/radio/intercom{dir = 4; name = "Station Intercom (General)"; pixel_x = 27},/turf/simulated/shuttle/floor,/area/shuttle/escape_pod2/station) "avz" = (/obj/item/weapon/stool,/turf/simulated/floor,/area/security/prison) -"avA" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/maintenance{name = "E.V.A. Maintenance"; req_access = list(12,18)},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/plating,/area/ai_monitored/storage/eva) -"avB" = (/turf/simulated/floor/plating,/obj/structure/shuttle/engine/propulsion/burst,/turf/simulated/shuttle/wall{icon_state = "swall_f5"; dir = 2},/area/shuttle/escape_pod1/station) +"avA" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/glass{name = "Fitness"},/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,/area/crew_quarters/fitness) +"avB" = (/turf/simulated/floor/plating,/obj/structure/shuttle/engine/propulsion/burst,/turf/simulated/shuttle/wall{icon_state = "swall_c"; dir = 1},/area/shuttle/escape_pod1/station) "avC" = (/obj/machinery/atmospherics/unary/vent_scrubber/on,/obj/effect/landmark{name = "JoinLateCryo"},/turf/simulated/floor{icon_state = "white"},/area/crew_quarters/sleep/cryo) -"avD" = (/turf/simulated/floor/plating,/obj/structure/shuttle/engine/propulsion/burst,/turf/simulated/shuttle/wall{icon_state = "swall_f9"; dir = 2},/area/shuttle/escape_pod1/station) -"avE" = (/turf/simulated/floor/plating,/obj/structure/shuttle/engine/propulsion/burst,/turf/simulated/shuttle/wall{icon_state = "swall_f5"; dir = 2},/area/shuttle/escape_pod2/station) +"avD" = (/turf/simulated/floor/plating,/obj/structure/shuttle/engine/propulsion/burst,/turf/simulated/shuttle/wall{icon_state = "swall_c"; dir = 8},/area/shuttle/escape_pod1/station) +"avE" = (/turf/simulated/floor/plating,/obj/structure/shuttle/engine/propulsion/burst,/turf/simulated/shuttle/wall{icon_state = "swall_c"; dir = 1},/area/shuttle/escape_pod2/station) "avF" = (/obj/machinery/computer/cryopod{density = 0; pixel_y = 32},/obj/machinery/camera/network/civilian_east{c_tag = "Dormitory Cryo Storage"},/turf/simulated/floor{icon_state = "white"},/area/crew_quarters/sleep/cryo) -"avG" = (/turf/simulated/floor/plating,/obj/structure/shuttle/engine/propulsion/burst,/turf/simulated/shuttle/wall{icon_state = "swall_f9"; dir = 2},/area/shuttle/escape_pod2/station) +"avG" = (/turf/simulated/floor/plating,/obj/structure/shuttle/engine/propulsion/burst,/turf/simulated/shuttle/wall{icon_state = "swall_c"; dir = 8},/area/shuttle/escape_pod2/station) "avH" = (/turf/simulated/floor/plating,/area/maintenance/arrivals) "avI" = (/turf/simulated/floor/plating{dir = 8; icon_state = "warnplatecorner"},/area/maintenance/arrivals) "avJ" = (/obj/structure/bed/chair{dir = 1},/obj/machinery/status_display{density = 0; layer = 4; pixel_x = 32; pixel_y = 0},/obj/machinery/embedded_controller/radio/simple_docking_controller/escape_pod{frequency = 1380; id_tag = "escape_pod_1"; pixel_x = -25; pixel_y = 0; tag_door = "escape_pod_1_hatch"},/obj/machinery/light/small{dir = 1},/turf/simulated/shuttle/floor,/area/shuttle/escape_pod1/station) @@ -1131,7 +1131,7 @@ "avM" = (/obj/structure/reagent_dispensers/fueltank,/turf/simulated/floor/plating,/area/maintenance/arrivals) "avN" = (/obj/structure/reagent_dispensers/watertank,/turf/simulated/floor/plating,/area/maintenance/arrivals) "avO" = (/obj/machinery/space_heater,/obj/effect/decal/cleanable/cobweb2,/turf/simulated/floor/plating,/area/maintenance/arrivals) -"avP" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/glass{name = "Fitness"},/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,/area/crew_quarters/fitness) +"avP" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/hallway/secondary/entry/fore) "avQ" = (/turf/simulated/floor{icon_state = "neutral"; dir = 4},/area/crew_quarters/fitness) "avR" = (/obj/structure/bed/chair{dir = 1},/obj/machinery/status_display{density = 0; layer = 4; pixel_x = 32; pixel_y = 0},/obj/machinery/embedded_controller/radio/simple_docking_controller/escape_pod{frequency = 1380; id_tag = "escape_pod_2"; pixel_x = -25; pixel_y = 0; tag_door = "escape_pod_2_hatch"},/obj/machinery/light/small{dir = 1},/turf/simulated/shuttle/floor,/area/shuttle/escape_pod2/station) "avS" = (/obj/machinery/airlock_sensor{frequency = 1379; id_tag = "eva_sensor"; pixel_x = 0; pixel_y = 25},/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 4; frequency = 1379; id_tag = "eva_pump"},/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 9},/area/maintenance/evahallway) @@ -1171,9 +1171,9 @@ "awA" = (/turf/simulated/floor{dir = 10; icon_state = "whitehall"},/area/crew_quarters/fitness) "awB" = (/obj/machinery/door/airlock/external{frequency = 1380; icon_state = "door_locked"; id_tag = "escape_pod_1_hatch"; locked = 1; name = "Escape Pod Hatch"; req_access = list(13)},/turf/simulated/shuttle/floor,/area/shuttle/escape_pod1/station) "awC" = (/obj/machinery/door/airlock/external{frequency = 1380; icon_state = "door_locked"; id_tag = "escape_pod_2_hatch"; locked = 1; name = "Escape Pod Hatch"; req_access = list(13)},/turf/simulated/shuttle/floor,/area/shuttle/escape_pod2/station) -"awD" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/hallway/secondary/entry/fore) +"awD" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/door/airlock/glass{name = "Holodeck Control"},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor,/area/crew_quarters/fitness) "awE" = (/turf/simulated/floor{icon_state = "blue"; dir = 4},/area/crew_quarters/fitness) -"awF" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/door/airlock/glass{name = "Holodeck Control"},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor,/area/crew_quarters/fitness) +"awF" = (/obj/machinery/door/airlock/external{name = "Arrival Airlock"},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/hallway/secondary/entry/fore) "awG" = (/obj/machinery/light/small{dir = 8},/turf/simulated/floor/plating,/area/hallway/secondary/entry/fore) "awH" = (/turf/simulated/floor/plating,/area/hallway/secondary/entry/fore) "awI" = (/obj/structure/closet/emcloset,/turf/simulated/floor/plating,/area/hallway/secondary/entry/fore) @@ -1249,7 +1249,7 @@ "aya" = (/obj/structure/table/woodentable,/obj/item/weapon/coin/silver,/turf/simulated/floor,/area/crew_quarters/sleep) "ayb" = (/obj/machinery/access_button{command = "cycle_exterior"; frequency = 1379; master_tag = "solar_chapel_airlock"; name = "exterior access button"; pixel_x = -25; pixel_y = -25; req_access = list(11,13)},/obj/effect/decal/cleanable/dirt,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plating/airless,/area/solar/auxstarboard) "ayc" = (/obj/machinery/hologram/holopad,/turf/simulated/floor/wood,/area/crew_quarters/sleep/bedrooms) -"ayd" = (/obj/machinery/door/airlock/external{name = "Arrival Airlock"},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/hallway/secondary/entry/fore) +"ayd" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/machinery/door/firedoor/border_only,/obj/structure/cable/green{d2 = 4; icon_state = "0-4"},/turf/simulated/floor/plating,/area/ai_monitored/storage/eva) "aye" = (/obj/structure/disposalpipe/segment,/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor,/area/crew_quarters/fitness) "ayf" = (/turf/simulated/floor{dir = 4; icon_state = "escapecorner"},/area/crew_quarters/fitness) "ayg" = (/obj/machinery/atmospherics/unary/vent_pump/on,/turf/simulated/floor{icon_state = "whitehall"; dir = 1},/area/crew_quarters/fitness) @@ -1259,7 +1259,7 @@ "ayk" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/turf/simulated/floor/plating,/area/crew_quarters/fitness) "ayl" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor{dir = 8; icon_state = "neutralcorner"},/area/crew_quarters/fitness) "aym" = (/turf/simulated/floor/airless{icon_state = "catwalk12"},/area/space) -"ayn" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/machinery/door/firedoor/border_only,/obj/structure/cable/green{d2 = 4; icon_state = "0-4"},/turf/simulated/floor/plating,/area/ai_monitored/storage/eva) +"ayn" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/machinery/door/firedoor/border_only,/obj/structure/cable/green{d2 = 8; icon_state = "0-8"},/obj/structure/cable/green{d2 = 2; icon_state = "0-2"},/turf/simulated/floor/plating,/area/ai_monitored/storage/eva) "ayo" = (/turf/simulated/floor{dir = 1; icon_state = "warning"},/area/hallway/secondary/entry/fore) "ayp" = (/obj/machinery/embedded_controller/radio/simple_docking_controller/escape_pod_berth{frequency = 1380; id_tag = "escape_pod_1_berth"; pixel_x = -25; pixel_y = 30; tag_door = "escape_pod_1_berth_hatch"},/turf/simulated/floor{dir = 1; icon_state = "warning"},/area/hallway/secondary/entry/fore) "ayq" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/bed/padded,/obj/item/weapon/bedsheet/mime,/obj/machinery/light/small{dir = 8},/turf/simulated/floor/wood,/area/crew_quarters/sleep/bedrooms) @@ -1297,9 +1297,9 @@ "ayW" = (/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/hologram/holopad,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor,/area/crew_quarters/sleep) "ayX" = (/obj/structure/table/woodentable,/obj/item/device/paicard,/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers,/turf/simulated/floor,/area/crew_quarters/sleep) "ayY" = (/obj/structure/table/woodentable,/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor,/area/crew_quarters/sleep) -"ayZ" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/machinery/door/firedoor/border_only,/obj/structure/cable/green{d2 = 8; icon_state = "0-8"},/obj/structure/cable/green{d2 = 2; icon_state = "0-2"},/turf/simulated/floor/plating,/area/ai_monitored/storage/eva) +"ayZ" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/hallway/secondary/entry/fore) "aza" = (/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor{icon_state = "neutral"; dir = 4},/area/crew_quarters/sleep) -"azb" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/hallway/secondary/entry/fore) +"azb" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 0; pixel_y = 32},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/hallway/secondary/entry/fore) "azc" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable/green{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor,/area/crew_quarters/fitness) "azd" = (/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,/area/crew_quarters/fitness) "aze" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor,/area/crew_quarters/fitness) @@ -1314,7 +1314,7 @@ "azn" = (/obj/machinery/door/airlock/maintenance{req_access = list(12)},/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/hallway/primary/fore) "azo" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating,/area/maintenance/auxsolarstarboard) "azp" = (/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/firealarm{dir = 8; pixel_x = -24; pixel_y = 6},/turf/simulated/floor{icon_state = "neutral"; dir = 8},/area/crew_quarters/sleep) -"azq" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 0; pixel_y = 32},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/hallway/secondary/entry/fore) +"azq" = (/obj/machinery/door/firedoor/border_only,/turf/simulated/floor{dir = 8; icon_state = "warning"},/area/hallway/secondary/entry/port) "azr" = (/turf/simulated/floor{icon_state = "warning"},/area/hallway/secondary/entry/fore) "azs" = (/turf/simulated/floor,/area/hallway/secondary/entry/fore) "azt" = (/obj/machinery/status_display{layer = 4; pixel_x = 0; pixel_y = -32},/turf/simulated/floor{icon_state = "warning"},/area/hallway/secondary/entry/fore) @@ -1367,7 +1367,7 @@ "aAo" = (/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/obj/item/device/radio/intercom{broadcasting = 0; listening = 1; name = "Station Intercom (General)"; pixel_x = -2; pixel_y = -28},/turf/simulated/floor{dir = 10; icon_state = "neutral"},/area/crew_quarters/fitness) "aAp" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor,/area/crew_quarters/fitness) "aAq" = (/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor,/area/crew_quarters/fitness) -"aAr" = (/obj/machinery/door/firedoor/border_only,/turf/simulated/floor{dir = 8; icon_state = "warning"},/area/hallway/secondary/entry/port) +"aAr" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/maintenance{name = "E.V.A. Maintenance"; req_access = list(12,18)},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/plating,/area/ai_monitored/storage/eva) "aAs" = (/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/power/smes/buildable{charge = 0; RCon_tag = "Solar - Fore Port"},/turf/simulated/floor/plating,/area/maintenance/auxsolarport) "aAt" = (/obj/machinery/camera/network/exodus{c_tag = "Primary Hallway Fore"; dir = 4},/turf/simulated/floor{dir = 8; icon_state = "bluecorner"},/area/hallway/primary/fore) "aAu" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/maintenance/auxsolarstarboard) @@ -1540,13 +1540,13 @@ "aDF" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/maintenance/library) "aDG" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating,/area/maintenance/library) "aDH" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating,/area/maintenance/library) -"aDI" = (/turf/simulated/shuttle/wall{icon_state = "swall_s6"; dir = 2},/area/shuttle/arrival/station) -"aDJ" = (/turf/simulated/shuttle/wall{icon_state = "swall12"; dir = 2},/area/shuttle/arrival/station) +"aDI" = (/turf/simulated/shuttle/wall{icon_state = "swall_straight"; dir = 4},/area/shuttle/arrival/station) +"aDJ" = (/turf/simulated/shuttle/wall{icon_state = "swall_s"; dir = 4},/area/shuttle/arrival/station) "aDK" = (/obj/machinery/door/unpowered/shuttle,/turf/simulated/shuttle/floor,/area/shuttle/arrival/station) "aDL" = (/obj/structure/window/shuttle{icon_state = "window4"},/obj/structure/grille,/turf/simulated/shuttle/plating,/area/shuttle/arrival/station) "aDM" = (/obj/structure/window/shuttle{icon_state = "window8"},/obj/structure/grille,/turf/simulated/shuttle/plating,/area/shuttle/arrival/station) -"aDN" = (/turf/simulated/shuttle/wall{icon_state = "swall14"; dir = 2},/area/shuttle/arrival/station) -"aDO" = (/turf/simulated/shuttle/wall{icon_state = "swall_s10"; dir = 2},/area/shuttle/arrival/station) +"aDN" = (/turf/simulated/shuttle/wall{icon_state = "swall_s"; dir = 2},/area/shuttle/arrival/station) +"aDO" = (/turf/simulated/shuttle/wall{icon_state = "swall_t"; dir = 1},/area/shuttle/arrival/station) "aDP" = (/turf/simulated/floor{dir = 8; icon_state = "warning"},/area/hallway/secondary/entry/port) "aDQ" = (/obj/structure/grille,/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 8},/obj/machinery/door/firedoor,/turf/simulated/floor/plating,/area/crew_quarters/fitness) "aDR" = (/obj/structure/closet/secure_closet/security,/obj/machinery/light{dir = 1},/obj/item/device/flashlight/flare,/turf/simulated/floor{icon_state = "red"; dir = 9},/area/security/checkpoint2) @@ -1620,15 +1620,15 @@ "aFh" = (/obj/structure/table/standard,/obj/machinery/requests_console{department = "Tool Storage"; departmentType = 0; pixel_y = 30},/obj/random/tech_supply,/obj/random/tech_supply,/obj/random/tech_supply,/obj/random/tech_supply,/obj/machinery/camera/network/civilian_west{c_tag = "Tool Storage - Primary"},/turf/simulated/floor,/area/storage/primary) "aFi" = (/obj/effect/decal/cleanable/cobweb2,/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 10},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 10},/turf/simulated/floor/plating,/area/maintenance/library) "aFj" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/turf/simulated/floor{icon_state = "dark"},/area/maintenance/library) -"aFk" = (/turf/simulated/shuttle/wall{icon_state = "swall11"; dir = 2},/area/shuttle/arrival/station) +"aFk" = (/turf/simulated/shuttle/wall{icon_state = "swall_t"; dir = 4},/area/shuttle/arrival/station) "aFl" = (/turf/simulated/shuttle/floor,/area/shuttle/arrival/station) "aFm" = (/obj/machinery/computer/arcade,/turf/simulated/shuttle/floor,/area/shuttle/arrival/station) "aFn" = (/obj/structure/table/standard,/obj/machinery/alarm{pixel_y = 23},/obj/random/tech_supply,/obj/random/tech_supply,/obj/random/tech_supply,/obj/random/tech_supply,/turf/simulated/floor,/area/storage/primary) "aFo" = (/obj/structure/closet/wardrobe/xenos,/turf/simulated/shuttle/floor,/area/shuttle/arrival/station) "aFp" = (/obj/structure/closet/wardrobe/mixed,/turf/simulated/shuttle/floor,/area/shuttle/arrival/station) "aFq" = (/obj/structure/table/standard,/obj/machinery/light_switch{pixel_y = 28},/obj/random/tech_supply,/obj/random/tech_supply,/obj/random/tech_supply,/obj/random/tech_supply,/turf/simulated/floor,/area/storage/primary) -"aFr" = (/turf/simulated/shuttle/wall{icon_state = "swall7"; dir = 2},/area/shuttle/arrival/station) -"aFs" = (/obj/structure/shuttle/engine/propulsion{icon_state = "burst_r"; dir = 8},/turf/space,/area/shuttle/arrival/station) +"aFr" = (/obj/structure/shuttle/engine/propulsion/burst{dir = 4},/turf/space,/area/shuttle/arrival/station) +"aFs" = (/turf/simulated/shuttle/wall{icon_state = "swall_t"; dir = 8},/area/shuttle/arrival/station) "aFt" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/hallway/secondary/entry/port) "aFu" = (/obj/machinery/atmospherics/pipe/simple/hidden/cyan{dir = 5; icon_state = "intact"; tag = "icon-intact-f (NORTHWEST)"},/turf/simulated/floor/plating,/area/maintenance/arrivals) "aFv" = (/obj/structure/closet/wardrobe/red,/turf/simulated/floor{icon_state = "red"; dir = 8},/area/security/checkpoint2) @@ -1696,12 +1696,12 @@ "aGF" = (/turf/simulated/wall,/area/chapel/office) "aGG" = (/turf/simulated/wall,/area/chapel/main) "aGH" = (/obj/machinery/light{dir = 4},/turf/simulated/shuttle/floor,/area/shuttle/arrival/station) -"aGI" = (/turf/simulated/shuttle/floor,/turf/simulated/shuttle/wall{icon_state = "swall_f9"; dir = 2},/area/shuttle/arrival/station) +"aGI" = (/turf/simulated/shuttle/floor,/turf/simulated/shuttle/wall{icon_state = "swall_c"; dir = 8},/area/shuttle/arrival/station) "aGJ" = (/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/effect/landmark{name = "blobstart"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plating,/area/maintenance/library) -"aGK" = (/turf/simulated/shuttle/wall{icon_state = "swall3"; dir = 2},/area/shuttle/arrival/station) +"aGK" = (/turf/simulated/shuttle/wall{icon_state = "swall_straight"; dir = 1},/area/shuttle/arrival/station) "aGL" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/meter,/turf/simulated/floor/plating,/area/maintenance/library) "aGM" = (/obj/structure/shuttle/engine/heater{icon_state = "heater"; dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating/airless,/area/shuttle/arrival/station) -"aGN" = (/obj/structure/shuttle/engine/propulsion{icon_state = "propulsion"; dir = 8},/turf/space,/area/shuttle/arrival/station) +"aGN" = (/turf/simulated/shuttle/floor,/turf/simulated/shuttle/wall{icon_state = "swall_c"; dir = 2},/area/shuttle/arrival/station) "aGO" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/hallway/secondary/entry/port) "aGP" = (/obj/machinery/door/airlock/maintenance{name = "Security Maintenance"; req_access = list(1)},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/security/checkpoint2) "aGQ" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/obj/machinery/power/apc{dir = 1; name = "north bump"; pixel_x = 0; pixel_y = 24},/obj/structure/cable/green{d2 = 2; icon_state = "0-2"},/turf/simulated/floor/plating,/area/maintenance/substation/civilian_west) @@ -1867,7 +1867,7 @@ "aJU" = (/obj/structure/closet/coffin,/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor{icon_state = "dark"},/area/chapel/main) "aJV" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor{icon_state = "dark"},/area/chapel/main) "aJW" = (/obj/structure/bed/chair/office/dark{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 9},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 5},/turf/simulated/floor/wood,/area/library) -"aJX" = (/turf/simulated/shuttle/floor,/turf/simulated/shuttle/wall{icon_state = "swall_f10"; dir = 2},/area/shuttle/arrival/station) +"aJX" = (/turf/simulated/shuttle/wall{icon_state = "swall_s"; dir = 1},/area/shuttle/arrival/station) "aJY" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/meter,/turf/simulated/floor/plating,/area/maintenance/substation/civilian_west) "aJZ" = (/obj/machinery/alarm{dir = 1; pixel_y = -22},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 9},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/power/sensor{name = "Powernet Sensor - Civilian West"; name_tag = "Civilian West Subgrid"},/obj/structure/cable/green{d2 = 8; icon_state = "0-8"},/obj/structure/cable/green{d2 = 4; icon_state = "0-4"},/obj/structure/cable/green,/turf/simulated/floor/plating,/area/maintenance/substation/civilian_west) "aKa" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 9},/obj/machinery/power/breakerbox/activated{RCon_tag = "Civilian West Substation Bypass"},/turf/simulated/floor/plating,/area/maintenance/substation/civilian_west) @@ -1946,11 +1946,11 @@ "aLv" = (/obj/machinery/power/apc{dir = 1; name = "north bump"; pixel_x = 0; pixel_y = 24},/obj/structure/bed/chair/comfy/brown{dir = 4},/obj/structure/cable/green{d2 = 2; icon_state = "0-2"},/turf/simulated/floor/carpet,/area/crew_quarters/bar) "aLw" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/door/airlock/engineering{name = "Civilian West Substation"; req_one_access = list(11,24)},/turf/simulated/floor/plating,/area/maintenance/substation/civilian_west) "aLx" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/machinery/door/firedoor/border_only,/obj/structure/cable/green{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/plating,/area/hallway/primary/port) -"aLy" = (/turf/simulated/shuttle/wall{icon_state = "swall_s5"; dir = 2},/area/shuttle/arrival/station) -"aLz" = (/turf/simulated/shuttle/wall{icon_state = "swall13"; dir = 2},/area/shuttle/arrival/station) +"aLy" = (/turf/simulated/shuttle/wall{icon_state = "swall_t"; dir = 2},/area/shuttle/arrival/station) +"aLz" = (/turf/simulated/shuttle/wall{icon_state = "swall_s"; dir = 8},/area/shuttle/arrival/station) "aLA" = (/obj/structure/table/standard,/obj/machinery/recharger{pixel_y = 0},/turf/simulated/floor,/area/storage/primary) "aLB" = (/obj/structure/table/standard,/obj/item/weapon/storage/fancy/cigarettes{pixel_y = 2},/obj/machinery/alarm{dir = 4; pixel_x = -23; pixel_y = 0},/turf/simulated/floor,/area/gateway) -"aLC" = (/obj/structure/shuttle/engine/propulsion{icon_state = "burst_l"; dir = 8},/turf/space,/area/shuttle/arrival/station) +"aLC" = (/turf/simulated/shuttle/wall{icon_state = "swall_s"; dir = 4},/area/shuttle/research/station) "aLD" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/hallway/secondary/entry/port) "aLE" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor,/area/hallway/secondary/entry/port) "aLF" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/hallway/primary/port) @@ -2032,7 +2032,7 @@ "aNd" = (/obj/structure/bed/chair/comfy/brown{dir = 8},/obj/machinery/atmospherics/unary/vent_pump/on{dir = 8},/turf/simulated/floor/carpet,/area/crew_quarters/bar) "aNe" = (/obj/structure/closet/coffin,/obj/machinery/door/blast/shutters{density = 0; dir = 2; icon_state = "shutter0"; id = "chapel"; name = "Privacy Shutters"; opacity = 0},/obj/machinery/door/window/westleft{name = "Coffin Storage"},/turf/simulated/floor{icon_state = "dark"},/area/chapel/office) "aNf" = (/obj/machinery/door/firedoor/border_only,/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor,/area/hallway/primary/central_one) -"aNg" = (/turf/simulated/shuttle/wall{icon_state = "swall_s9"; dir = 2},/area/shuttle/arrival/station) +"aNg" = (/turf/simulated/shuttle/wall{icon_state = "swall_straight"; dir = 4},/area/shuttle/research/station) "aNh" = (/obj/machinery/firealarm{dir = 8; pixel_x = -24},/turf/simulated/floor{dir = 8; icon_state = "warning"},/area/hallway/secondary/entry/port) "aNi" = (/obj/machinery/door/firedoor/border_only,/turf/simulated/floor{dir = 1; icon_state = "bluecorner"},/area/hallway/primary/central_one) "aNj" = (/obj/structure/bed/chair/office/dark{dir = 1},/turf/simulated/floor/wood,/area/library) @@ -3783,20 +3783,20 @@ "buM" = (/obj/machinery/r_n_d/circuit_imprinter,/obj/item/weapon/reagent_containers/glass/beaker/sulphuric,/turf/simulated/floor,/area/rnd/lab) "buN" = (/obj/structure/cable/cyan{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/computer/aiupload,/turf/simulated/floor/bluegrid,/area/turret_protected/ai_upload) "buO" = (/obj/machinery/door/airlock{name = "Private Restroom"},/turf/simulated/floor{icon_state = "freezerfloor"},/area/crew_quarters/captain) -"buP" = (/turf/simulated/shuttle/wall{icon_state = "swall_s6"; dir = 2},/area/shuttle/research/station) -"buQ" = (/turf/simulated/shuttle/wall{icon_state = "swall12"; dir = 2},/area/shuttle/research/station) +"buP" = (/turf/simulated/shuttle/wall{icon_state = "swall_s"; dir = 2},/area/shuttle/research/station) +"buQ" = (/turf/simulated/shuttle/wall{icon_state = "swall_straight"; dir = 1},/area/shuttle/research/station) "buR" = (/obj/structure/window/shuttle,/obj/structure/grille,/turf/simulated/shuttle/plating,/area/shuttle/research/station) -"buS" = (/turf/simulated/shuttle/wall{icon_state = "swall_s10"; dir = 2},/area/shuttle/research/station) +"buS" = (/obj/structure/shuttle/engine/propulsion/burst{dir = 8},/turf/space,/area/shuttle/research/station) "buT" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 8},/obj/machinery/camera/network/exodus{c_tag = "Primary Hallway Central - East Southwest"; dir = 8},/turf/simulated/floor,/area/hallway/primary/central_two) "buU" = (/obj/item/weapon/reagent_containers/dropper,/obj/machinery/light{dir = 8},/obj/machinery/alarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/obj/structure/table/glass,/turf/simulated/floor{icon_state = "white"},/area/medical/chemistry) "buV" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/glass_mining{name = "Cargo Bay"; req_access = list(31)},/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor,/area/quartermaster/storage) -"buW" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/firedoor/border_only,/obj/structure/cable/cyan,/turf/simulated/floor/plating,/area/turret_protected/ai_upload) -"buX" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 0},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/quartermaster/storage) +"buW" = (/obj/machinery/computer/skills{icon_state = "medlaptop"},/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 4},/obj/structure/cable/green{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/table/glass,/obj/machinery/light{dir = 8; icon_state = "tube1"; pixel_y = 0},/turf/simulated/floor{dir = 9; icon_state = "blue"},/area/crew_quarters/heads/hop) +"buX" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/firedoor/border_only,/obj/structure/cable/cyan,/turf/simulated/floor/plating,/area/turret_protected/ai_upload) "buY" = (/obj/machinery/light_switch{pixel_x = 22; pixel_y = -8},/obj/machinery/button/remote/blast_door{id = "chemwindow"; name = "Chemistry Laboratory Window Shutters Control"; pixel_x = 26; pixel_y = 8},/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor{icon_state = "white"},/area/medical/chemistry) "buZ" = (/obj/machinery/button/remote/airlock{desc = "A remote control switch for the medbay foyer."; id = "MedbayFoyerPort"; name = "Medbay Doors Control"; pixel_x = -16; pixel_y = 28},/obj/structure/bed/chair/office/dark{dir = 1},/obj/effect/landmark/start{name = "Medical Doctor"},/turf/simulated/floor{tag = "icon-vault (NORTH)"; icon_state = "vault"; dir = 1},/area/medical/reception) "bva" = (/obj/machinery/button/remote/blast_door{id = "medbayrecquar"; name = "Medbay Entrance Lockdown Shutters Control"; pixel_x = 6; pixel_y = 8; req_access = list(5)},/obj/item/device/radio{anchored = 1; broadcasting = 0; canhear_range = 1; frequency = 1487; icon = 'icons/obj/items.dmi'; icon_state = "red_phone"; listening = 1; name = "Reception Emergency Phone"; pixel_x = -5},/obj/structure/table/standard{name = "plastic table frame"},/turf/simulated/floor,/area/medical/reception) -"bvb" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/structure/grille,/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/quartermaster/storage) -"bvc" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/grille,/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/quartermaster/storage) +"bvb" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 0},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/quartermaster/storage) +"bvc" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/structure/grille,/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/quartermaster/storage) "bvd" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/simulated/floor{dir = 8; icon_state = "warning"},/area/quartermaster/storage) "bve" = (/obj/structure/cable/green{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 5},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 8},/turf/simulated/floor,/area/quartermaster/storage) "bvf" = (/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor,/area/quartermaster/storage) @@ -3844,8 +3844,8 @@ "bvV" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/medical/chemistry) "bvW" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/turf/simulated/floor/plating,/area/medical/chemistry) "bvX" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/turf/simulated/floor/plating,/area/medical/chemistry) -"bvY" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/window/westleft{name = "Cargo Desk"; req_access = list(50)},/obj/structure/noticeboard{pixel_y = 27},/obj/structure/table/standard{name = "plastic table frame"},/turf/simulated/floor,/area/quartermaster/office) -"bvZ" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/noticeboard{pixel_y = 27},/obj/machinery/door/firedoor/border_only,/obj/structure/cable/green{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/door/blast/shutters{density = 0; dir = 2; icon_state = "shutter0"; id = "hop_office_desk"; name = "HoP Office Privacy Shutters"; opacity = 0},/obj/machinery/door/window/northleft{dir = 8; icon_state = "left"; name = "Reception Window"},/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/table/standard{name = "plastic table frame"},/obj/machinery/door/window/brigdoor/eastright{name = "Head of Personnel's Desk"; req_access = list(57)},/turf/simulated/floor,/area/crew_quarters/heads/hop) +"bvY" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/grille,/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/quartermaster/storage) +"bvZ" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/window/westleft{name = "Cargo Desk"; req_access = list(50)},/obj/structure/noticeboard{pixel_y = 27},/obj/structure/table/standard{name = "plastic table frame"},/turf/simulated/floor,/area/quartermaster/office) "bwa" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/blast/shutters{density = 0; dir = 4; icon_state = "shutter0"; id = "scanhideside"; name = "Diagnostics Room Privacy Shutters"; opacity = 0},/turf/simulated/floor/plating,/area/medical/medbay4) "bwb" = (/obj/item/weapon/paper_bin{pixel_x = -3; pixel_y = 7},/obj/item/weapon/clipboard,/obj/item/weapon/pen/red{pixel_x = 2; pixel_y = 6},/obj/structure/table/standard,/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 8},/turf/simulated/floor,/area/quartermaster/office) "bwc" = (/obj/item/weapon/stamp{pixel_x = -3; pixel_y = 3},/obj/item/weapon/stamp/denied{pixel_x = 4; pixel_y = -2},/obj/structure/table/standard,/obj/structure/cable/green{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 10},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 1},/turf/simulated/floor,/area/quartermaster/office) @@ -3857,7 +3857,7 @@ "bwi" = (/obj/machinery/door/blast/regular{id = "toxinsdriver"; name = "Toxins Launcher Bay Door"},/turf/simulated/floor/plating/airless,/area/rnd/test_area) "bwj" = (/obj/machinery/newscaster/security_unit{pixel_x = 0; pixel_y = 32},/obj/machinery/recharger{pixel_y = 0},/obj/item/weapon/packageWrap,/obj/item/weapon/hand_labeler,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/table/glass,/turf/simulated/floor,/area/crew_quarters/heads/hop) "bwk" = (/turf/simulated/wall,/area/medical/medbay2) -"bwl" = (/obj/machinery/computer/skills{icon_state = "medlaptop"},/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 4},/obj/structure/cable/green{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/table/glass,/turf/simulated/floor{dir = 9; icon_state = "blue"},/area/crew_quarters/heads/hop) +"bwl" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/noticeboard{pixel_y = 27},/obj/machinery/door/firedoor/border_only,/obj/structure/cable/green{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/door/blast/shutters{density = 0; dir = 2; icon_state = "shutter0"; id = "hop_office_desk"; name = "HoP Office Privacy Shutters"; opacity = 0},/obj/machinery/door/window/northleft{dir = 8; icon_state = "left"; name = "Reception Window"},/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/table/standard{name = "plastic table frame"},/obj/machinery/door/window/brigdoor/eastright{name = "Head of Personnel's Desk"; req_access = list(57)},/turf/simulated/floor,/area/crew_quarters/heads/hop) "bwm" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/medical/medbay2) "bwn" = (/obj/structure/table/standard,/obj/item/weapon/aiModule/nanotrasen,/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 4},/obj/item/weapon/aiModule/reset,/turf/simulated/floor/bluegrid,/area/turret_protected/ai_upload) "bwo" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor,/area/assembly/chargebay) @@ -3878,7 +3878,7 @@ "bwD" = (/obj/machinery/smartfridge/secure/medbay{req_one_access = list(33,66)},/turf/simulated/wall,/area/medical/chemistry) "bwE" = (/obj/machinery/alarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plating,/area/storage/emergency) "bwF" = (/obj/machinery/space_heater,/turf/simulated/floor/plating,/area/storage/emergency) -"bwG" = (/turf/simulated/shuttle/wall{icon_state = "swall3"; dir = 2},/area/shuttle/research/station) +"bwG" = (/turf/simulated/shuttle/wall{icon_state = "swall_s"; dir = 1},/area/shuttle/research/station) "bwH" = (/obj/structure/closet/crate,/turf/simulated/shuttle/floor,/area/shuttle/research/station) "bwI" = (/obj/structure/grille,/obj/structure/sign/securearea{desc = "A warning sign which reads 'HIGH VOLTAGE'"; icon_state = "shock"; name = "HIGH VOLTAGE"; pixel_y = -32},/obj/structure/cable/green,/obj/structure/window/reinforced/polarized,/obj/structure/window/reinforced/polarized{dir = 4},/obj/structure/window/reinforced/polarized{dir = 8},/turf/simulated/floor/plating,/area/crew_quarters/heads/hop) "bwJ" = (/turf/simulated/shuttle/floor,/area/shuttle/research/station) @@ -3961,7 +3961,7 @@ "byi" = (/obj/structure/bed/chair/comfy/brown{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 5},/obj/machinery/camera/network/command{c_tag = "Bridge - Captain's Quarters"; dir = 1},/turf/simulated/floor/carpet,/area/crew_quarters/captain) "byj" = (/obj/structure/bed/chair{dir = 8},/turf/simulated/floor,/area/quartermaster/office) "byk" = (/obj/structure/closet/crate,/obj/item/weapon/coin/silver,/turf/simulated/floor/plating,/area/storage/emergency) -"byl" = (/obj/structure/shuttle/engine/propulsion/burst{dir = 4},/turf/space,/area/shuttle/research/station) +"byl" = (/turf/simulated/shuttle/wall{icon_state = "swall_s"; dir = 8},/area/shuttle/research/station) "bym" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/shuttle/engine/heater{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/turf/simulated/floor/plating/airless,/area/shuttle/research/station) "byn" = (/obj/machinery/computer/shuttle_control/research,/turf/simulated/shuttle/floor,/area/shuttle/research/station) "byo" = (/obj/machinery/door/window/eastright{base_state = "left"; dir = 1; icon_state = "left"; name = "Shower"},/obj/machinery/shower{icon_state = "shower"; dir = 4},/obj/item/weapon/soap/deluxe,/obj/item/weapon/bikehorn/rubberducky,/turf/simulated/floor{icon_state = "freezerfloor"},/area/crew_quarters/captain) @@ -4131,11 +4131,11 @@ "bBw" = (/obj/structure/table/standard,/obj/item/weapon/storage/firstaid/toxin{pixel_x = 5; pixel_y = 5},/obj/machinery/alarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 5},/obj/random/firstaid,/turf/simulated/floor{dir = 8; icon_state = "whiteyellowcorner"},/area/medical/chemistry) "bBx" = (/obj/structure/table/standard,/obj/item/weapon/storage/firstaid/o2{pixel_x = 5; pixel_y = 5},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/random/firstaid,/turf/simulated/floor{icon_state = "white"},/area/medical/chemistry) "bBy" = (/obj/structure/grille,/obj/machinery/door/firedoor/border_only,/obj/structure/window/reinforced/polarized{dir = 1},/obj/structure/window/reinforced/polarized,/obj/structure/window/reinforced/polarized{dir = 4},/turf/simulated/floor/plating,/area/rnd/research) -"bBz" = (/turf/simulated/shuttle/wall{icon_state = "swall_s5"; dir = 2},/area/shuttle/research/station) +"bBz" = (/turf/simulated/shuttle/wall{icon_state = "swall_straight"; dir = 4},/area/shuttle/mining/station) "bBA" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_medical{name = "Medicine Storage"; req_access = newlist(); req_one_access = list(33,66)},/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay) -"bBB" = (/turf/simulated/shuttle/wall{icon_state = "swall_s9"; dir = 2},/area/shuttle/research/station) +"bBB" = (/turf/simulated/shuttle/wall{icon_state = "swall_s"; dir = 4},/area/shuttle/mining/station) "bBC" = (/obj/machinery/conveyor{dir = 4; id = "QMLoad"},/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/external{frequency = 1380; icon_state = "door_locked"; id_tag = "cargo_bay_door"; locked = 1; name = "Cargo Docking Hatch"; req_access = list(13)},/turf/simulated/floor/plating,/area/quartermaster/storage) -"bBD" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor{dir = 8; icon_state = "whiteblue"},/area/rnd/research) +"bBD" = (/obj/structure/filingcabinet/chestdrawer,/obj/item/device/radio/intercom{dir = 8; name = "Station Intercom (General)"; pixel_x = -28},/obj/machinery/light{dir = 8; icon_state = "tube1"; pixel_y = 0},/turf/simulated/floor{icon_state = "blue"; dir = 10},/area/crew_quarters/heads/hop) "bBE" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_medical{name = "Medical Equipment"; req_access = list(66)},/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay) "bBF" = (/obj/machinery/navbeacon{codes_txt = "delivery;dir=8"; freq = 1400; location = "QM #2"},/obj/machinery/bot/mulebot{home_destination = "QM #2"; suffix = "#2"},/turf/simulated/floor{icon_state = "bot"},/area/quartermaster/storage) "bBG" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_medical{name = "Medical Equipment"; req_access = list(66)},/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay2) @@ -4172,7 +4172,7 @@ "bCl" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor{tag = "icon-whiteblue (WEST)"; icon_state = "whiteblue"; dir = 8},/area/medical/medbay2) "bCm" = (/obj/machinery/firealarm{dir = 4; pixel_x = 24},/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay2) "bCn" = (/turf/simulated/floor{dir = 4; icon_state = "whitebluecorner"},/area/rnd/docking) -"bCo" = (/obj/structure/grille,/obj/machinery/door/firedoor/border_only,/obj/structure/window/reinforced/polarized{dir = 8},/obj/structure/window/reinforced/polarized{dir = 4},/turf/simulated/floor/plating,/area/rnd/research) +"bCo" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor{dir = 8; icon_state = "whiteblue"},/area/rnd/research) "bCp" = (/turf/simulated/wall,/area/medical/genetics) "bCq" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 4},/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor{icon_state = "white"},/area/rnd/misc_lab) "bCr" = (/obj/machinery/embedded_controller/radio/simple_docking_controller{frequency = 1380; id_tag = "research_shuttle"; pixel_x = -8; pixel_y = -25; req_one_access = list(13,65); tag_door = "research_shuttle_hatch"},/obj/structure/table/reinforced,/turf/simulated/shuttle/floor,/area/shuttle/research/station) @@ -4183,12 +4183,12 @@ "bCw" = (/obj/machinery/embedded_controller/radio/simple_docking_controller{frequency = 1380; id_tag = "cargo_bay"; name = "cargo bay hatch controller"; pixel_x = -30; pixel_y = 0; req_one_access = list(13,31); tag_door = "cargo_bay_door"},/obj/machinery/camera/network/civilian_west{c_tag = "Cargo Recieving Dock"; dir = 4},/turf/simulated/floor{dir = 8; icon_state = "warning"},/area/quartermaster/storage) "bCx" = (/turf/simulated/floor{icon_state = "white"},/area/rnd/research) "bCy" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 1},/turf/simulated/floor{icon_state = "white"},/area/rnd/research) -"bCz" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/firedoor/border_only,/obj/structure/window/reinforced,/turf/simulated/floor/plating,/area/rnd/docking) +"bCz" = (/obj/structure/grille,/obj/machinery/door/firedoor/border_only,/obj/structure/window/reinforced/polarized{dir = 8},/obj/structure/window/reinforced/polarized{dir = 4},/turf/simulated/floor/plating,/area/rnd/research) "bCA" = (/obj/machinery/firealarm{dir = 8; pixel_x = -24},/obj/item/weapon/folder/yellow,/obj/item/device/eftpos{eftpos_name = "Cargo Bay EFTPOS scanner"},/obj/structure/table/standard{name = "plastic table frame"},/turf/simulated/floor,/area/quartermaster/office) -"bCB" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 0},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/quartermaster/storage) +"bCB" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/firedoor/border_only,/obj/structure/window/reinforced,/turf/simulated/floor/plating,/area/rnd/docking) "bCC" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor{icon_state = "white"},/area/rnd/docking) "bCD" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 1},/turf/simulated/floor{icon_state = "white"},/area/rnd/docking) -"bCE" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/quartermaster/storage) +"bCE" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 0},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/quartermaster/storage) "bCF" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/structure/grille,/obj/machinery/door/blast/shutters{density = 0; dir = 2; icon_state = "shutter0"; id = "cmooffice"; name = "CMO Office Privacy Shutters"; opacity = 0},/turf/simulated/floor/plating,/area/medical/medbay3) "bCG" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor{icon_state = "white"},/area/rnd/docking) "bCH" = (/obj/item/weapon/pen,/obj/item/weapon/paper_bin{pixel_x = -3; pixel_y = 7},/obj/item/weapon/pen,/obj/item/device/megaphone,/obj/structure/table/glass,/turf/simulated/floor,/area/crew_quarters/heads/hop) @@ -4213,13 +4213,13 @@ "bDa" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/cable/cyan{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/manifold/hidden/supply,/turf/simulated/floor{icon_state = "dark"},/area/turret_protected/ai_upload_foyer) "bDb" = (/obj/structure/closet/crate{name = "Camera Assembly Crate"},/obj/item/weapon/camera_assembly,/obj/item/weapon/camera_assembly,/obj/item/weapon/camera_assembly,/obj/item/weapon/camera_assembly,/turf/simulated/floor/bluegrid,/area/turret_protected/ai_cyborg_station) "bDc" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 10},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 4},/obj/structure/cable/cyan{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor{icon_state = "dark"},/area/turret_protected/ai_cyborg_station) -"bDd" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/grille,/obj/structure/window/reinforced,/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/quartermaster/storage) +"bDd" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/quartermaster/storage) "bDe" = (/obj/structure/table/standard,/obj/item/weapon/storage/firstaid/regular{pixel_x = 5; pixel_y = 5},/obj/machinery/light_switch{pixel_x = -23; pixel_y = 0},/obj/random/firstaid,/turf/simulated/floor{dir = 8; icon_state = "whiteyellowcorner"},/area/medical/chemistry) "bDf" = (/obj/structure/table/standard,/obj/item/weapon/storage/box/beakers,/obj/item/weapon/storage/box/syringes{pixel_x = 4; pixel_y = 4},/obj/item/weapon/storage/box/syringes,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/item/device/radio/intercom{freerange = 1; frequency = 1459; name = "Station Intercom (General)"; pixel_x = 28},/turf/simulated/floor{tag = "icon-whiteblue (EAST)"; icon_state = "whiteblue"; dir = 4},/area/medical/medbay3) "bDg" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_medical{id_tag = "GeneticsDoor"; name = "Cloning Laboratory"; req_access = list(66)},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay2) "bDh" = (/obj/structure/disposalpipe/segment,/obj/machinery/door/airlock/glass_medical{id_tag = "GeneticsDoor"; name = "Genetics Laboratory"; req_access = list(9)},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay2) "bDi" = (/obj/machinery/door/firedoor,/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/door/airlock/maintenance{req_one_access = list(5,12,47)},/turf/simulated/floor/plating,/area/maintenance/research_port) -"bDj" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/quartermaster/storage) +"bDj" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/grille,/obj/structure/window/reinforced,/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/quartermaster/storage) "bDk" = (/turf/simulated/floor{dir = 10; icon_state = "warning"},/area/teleporter) "bDl" = (/turf/simulated/floor{icon_state = "warning"},/area/teleporter) "bDm" = (/turf/simulated/floor{dir = 6; icon_state = "warning"},/area/teleporter) @@ -4230,7 +4230,7 @@ "bDr" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 4},/turf/simulated/floor,/area/hallway/primary/central_two) "bDs" = (/obj/machinery/light{icon_state = "tube1"; dir = 4},/obj/structure/sign/redcross{desc = "The Star of Life, a symbol of Medical Aid."; icon_state = "lifestar"; name = "Medbay"; pixel_x = 32},/turf/simulated/floor,/area/hallway/primary/central_two) "bDt" = (/turf/simulated/wall,/area/medical/sleeper) -"bDu" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/quartermaster/storage) +"bDu" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/quartermaster/storage) "bDv" = (/obj/structure/closet/secure_closet/medical_wall{name = "Pill Cabinet"},/obj/item/weapon/storage/pill_bottle/antitox,/obj/item/weapon/storage/pill_bottle/tramadol,/obj/item/weapon/reagent_containers/syringe/antiviral,/obj/item/weapon/reagent_containers/syringe/antiviral,/obj/item/weapon/reagent_containers/syringe/inaprovaline,/turf/simulated/wall,/area/medical/sleeper) "bDw" = (/obj/machinery/camera/network/research{c_tag = "Research Division North"; dir = 1},/turf/simulated/floor{icon_state = "white"},/area/rnd/research) "bDx" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/medical/sleeper) @@ -4249,7 +4249,7 @@ "bDK" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 8},/turf/simulated/floor{dir = 4; icon_state = "whitebluecorner"},/area/rnd/docking) "bDL" = (/turf/simulated/floor{icon_state = "white"},/area/medical/genetics_cloning) "bDM" = (/obj/machinery/disposal,/obj/structure/disposalpipe/trunk,/obj/item/device/radio/intercom{broadcasting = 0; name = "Station Intercom (General)"; pixel_y = 20},/turf/simulated/floor{icon_state = "white"},/area/medical/genetics_cloning) -"bDN" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/quartermaster/storage) +"bDN" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/quartermaster/storage) "bDO" = (/obj/structure/disposalpipe/segment,/turf/simulated/floor/plating,/area/medical/genetics) "bDP" = (/obj/machinery/door/firedoor,/obj/machinery/door/blast/shutters{density = 0; dir = 2; icon_state = "shutter0"; id = "acute1"; name = "EMT Storage Privacy Shutters"; opacity = 0},/obj/machinery/light_switch{pixel_x = 22; pixel_y = 0},/turf/simulated/floor{tag = "icon-whitebluefull"; icon_state = "whitebluefull"},/area/medical/sleeper) "bDQ" = (/obj/machinery/door/airlock/external{frequency = 1380; icon_state = "door_locked"; id_tag = "research_shuttle_hatch"; locked = 1; name = "Shuttle Hatch"; req_access = list(13)},/turf/simulated/shuttle/floor,/area/shuttle/research/station) @@ -4258,7 +4258,7 @@ "bDT" = (/obj/structure/extinguisher_cabinet{pixel_x = -25},/turf/simulated/floor{icon_state = "white"},/area/medical/genetics_cloning) "bDU" = (/obj/structure/sign/securearea,/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/wall/r_wall,/area/rnd/research) "bDV" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/grille,/obj/machinery/door/blast/shutters{density = 0; dir = 2; icon_state = "shutter0"; id = "cmooffice"; name = "CMO Office Privacy Shutters"; opacity = 0},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating,/area/medical/medbay3) -"bDW" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/quartermaster/storage) +"bDW" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/quartermaster/storage) "bDX" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor{icon_state = "white"},/area/rnd/research) "bDY" = (/obj/machinery/alarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/obj/item/weapon/storage/belt/utility,/obj/structure/table/standard{name = "plastic table frame"},/turf/simulated/floor,/area/quartermaster/office) "bDZ" = (/obj/item/device/radio/intercom{pixel_y = 25},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor{icon_state = "white"},/area/rnd/research) @@ -4283,7 +4283,7 @@ "bEs" = (/obj/effect/landmark/start{name = "Cyborg"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor{icon_state = "dark"},/area/turret_protected/ai_cyborg_station) "bEt" = (/obj/machinery/mech_bay_recharge_port,/obj/structure/sign/poster{pixel_x = 0; pixel_y = 32},/turf/simulated/floor/plating,/area/medical/sleeper) "bEu" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/alarm{dir = 4; icon_state = "alarm0"; pixel_x = -22; pixel_y = 0},/turf/simulated/floor{icon_state = "dark"},/area/turret_protected/ai_cyborg_station) -"bEv" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/quartermaster/storage) +"bEv" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/quartermaster/storage) "bEw" = (/obj/effect/landmark/start{name = "Cyborg"},/obj/machinery/light/small{dir = 4},/obj/machinery/atmospherics/unary/vent_pump/on{dir = 8},/obj/item/device/radio/intercom{dir = 4; name = "Station Intercom (General)"; pixel_x = 27},/turf/simulated/floor{icon_state = "vault"; dir = 1},/area/turret_protected/ai_cyborg_station) "bEx" = (/obj/machinery/conveyor{dir = 4; id = "QMLoad"},/turf/simulated/floor/plating,/area/quartermaster/storage) "bEy" = (/obj/machinery/conveyor{dir = 4; id = "QMLoad"},/obj/machinery/status_display/supply_display{pixel_y = -32},/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 1},/area/quartermaster/storage) @@ -4304,7 +4304,7 @@ "bEN" = (/obj/machinery/atm{pixel_x = -28},/turf/simulated/floor{dir = 8; icon_state = "browncorner"},/area/hallway/primary/central_three) "bEO" = (/obj/structure/disposalpipe/segment,/turf/simulated/floor{icon_state = "blue"; dir = 4},/area/hallway/primary/central_three) "bEP" = (/turf/simulated/floor{dir = 4; icon_state = "loadingarea"},/area/hallway/primary/central_three) -"bEQ" = (/obj/structure/filingcabinet/chestdrawer,/obj/item/device/radio/intercom{dir = 8; name = "Station Intercom (General)"; pixel_x = -28},/turf/simulated/floor{icon_state = "blue"; dir = 10},/area/crew_quarters/heads/hop) +"bEQ" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/quartermaster/storage) "bER" = (/obj/machinery/light{dir = 4; icon_state = "tube1"},/obj/item/device/radio/intercom{broadcasting = 0; name = "Station Intercom (General)"; pixel_y = 20},/obj/item/weapon/wrench,/obj/item/weapon/reagent_containers/glass/beaker/cryoxadone{pixel_x = 7; pixel_y = 1},/obj/item/weapon/reagent_containers/glass/beaker/cryoxadone{pixel_x = -4; pixel_y = 0},/obj/machinery/camera/network/medbay{c_tag = "Medbay Cryogenics"},/obj/structure/table/standard{name = "plastic table frame"},/turf/simulated/floor{dir = 5; icon_state = "whitered"},/area/medical/cryo) "bES" = (/obj/structure/closet/wardrobe/medic_white,/obj/machinery/camera/network/medbay{c_tag = "Medbay Cloning"},/turf/simulated/floor{icon_state = "white"},/area/medical/genetics_cloning) "bET" = (/obj/machinery/light_switch{pixel_x = 27},/obj/machinery/light{dir = 4; icon_state = "tube1"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/unary/vent_pump/on{dir = 1},/turf/simulated/floor,/area/crew_quarters/heads/hop) @@ -4359,9 +4359,9 @@ "bFQ" = (/obj/machinery/door/airlock/external{frequency = 1380; icon_state = "door_locked"; id_tag = "research_dock_outer"; locked = 1; name = "Shuttle Airlock"; req_access = list(13)},/turf/simulated/floor/plating,/area/rnd/docking) "bFR" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor{dir = 5; icon_state = "whitehall"},/area/rnd/research) "bFS" = (/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable/green{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 4},/turf/simulated/floor{icon_state = "white"},/area/rnd/research) -"bFT" = (/obj/machinery/light{dir = 1},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor,/area/hallway/primary/central_three) +"bFT" = (/obj/machinery/requests_console{department = "Cargo Bay"; departmentType = 2; pixel_x = -30; pixel_y = 32},/obj/machinery/atmospherics/unary/vent_scrubber/on,/turf/simulated/floor,/area/quartermaster/qm) "bFU" = (/obj/machinery/access_button{command = "cycle_exterior"; frequency = 1380; master_tag = "research_dock_airlock"; name = "exterior access button"; pixel_x = -40; pixel_y = 8; req_one_access = list(13,65)},/obj/structure/lattice,/turf/space,/area/space) -"bFV" = (/obj/structure/sign/securearea{pixel_y = 32},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor{dir = 1; icon_state = "blue"},/area/hallway/primary/central_three) +"bFV" = (/obj/structure/bed/chair/office/dark,/obj/effect/landmark/start{name = "Quartermaster"},/obj/machinery/button/windowtint{pixel_x = 24; pixel_y = -24},/obj/machinery/button/remote/airlock{desc = "A remote control-switch for the office door."; id = "qmdoor"; name = "office door control"; pixel_x = 15; pixel_y = -25; req_access = list(41)},/obj/machinery/button/remote/airlock{desc = "A remote control-switch for the cargo doors."; id = "cargodoor"; name = "cargo door control"; pixel_x = 15; pixel_y = -34; req_access = list(41)},/turf/simulated/floor,/area/quartermaster/qm) "bFW" = (/obj/machinery/computer/aifixer,/obj/machinery/requests_console{announcementConsole = 1; department = "Research Director's Desk"; departmentType = 5; name = "Research Director RC"; pixel_x = -2; pixel_y = 30},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor{icon_state = "cafeteria"; dir = 5},/area/crew_quarters/heads/hor) "bFX" = (/obj/machinery/status_display{layer = 4; pixel_x = 0; pixel_y = 32},/turf/simulated/floor{dir = 8; icon_state = "warnwhite"},/area/crew_quarters/heads/hor) "bFY" = (/obj/structure/lamarr,/obj/machinery/light{dir = 1},/turf/simulated/floor{icon_state = "white"},/area/crew_quarters/heads/hor) @@ -4377,14 +4377,14 @@ "bGi" = (/obj/machinery/status_display/supply_display,/turf/simulated/wall,/area/quartermaster/qm) "bGj" = (/obj/structure/grille,/obj/structure/window/reinforced/polarized,/obj/structure/window/reinforced/polarized{dir = 4},/obj/structure/window/reinforced/polarized{dir = 1},/turf/simulated/floor/plating,/area/quartermaster/qm) "bGk" = (/obj/structure/grille,/obj/structure/window/reinforced/polarized,/obj/structure/window/reinforced/polarized{dir = 1},/turf/simulated/floor/plating,/area/quartermaster/qm) -"bGl" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/machinery/door/firedoor/border_only,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/blast/shutters{density = 0; dir = 2; icon_state = "shutter0"; id = "acute1"; name = "EMT Storage Privacy Shutters"; opacity = 0},/turf/simulated/floor/plating,/area/medical/sleeper) -"bGm" = (/obj/structure/grille,/obj/machinery/door/firedoor/border_only,/obj/structure/window/reinforced/polarized{dir = 8},/obj/structure/window/reinforced/polarized,/obj/structure/window/reinforced/polarized{dir = 4},/turf/simulated/floor/plating,/area/rnd/research) -"bGn" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/machinery/door/firedoor/border_only,/turf/simulated/shuttle/plating,/area/rnd/docking) -"bGo" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/firedoor/border_only,/turf/simulated/shuttle/plating,/area/rnd/docking) -"bGp" = (/obj/machinery/door/firedoor/border_only,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor,/area/hallway/primary/central_three) -"bGq" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/window/westleft{dir = 8; name = "Server Room"; opacity = 1; req_access = list(30)},/obj/machinery/door/window/eastleft{name = "Server Room"},/turf/simulated/floor{icon_state = "dark"},/area/server) -"bGr" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor,/area/hallway/primary/central_three) -"bGs" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/quartermaster/miningdock) +"bGl" = (/obj/machinery/light{dir = 1},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor,/area/hallway/primary/central_three) +"bGm" = (/obj/structure/sign/securearea{pixel_y = 32},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor{dir = 1; icon_state = "blue"},/area/hallway/primary/central_three) +"bGn" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/machinery/door/firedoor/border_only,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/blast/shutters{density = 0; dir = 2; icon_state = "shutter0"; id = "acute1"; name = "EMT Storage Privacy Shutters"; opacity = 0},/turf/simulated/floor/plating,/area/medical/sleeper) +"bGo" = (/obj/structure/grille,/obj/machinery/door/firedoor/border_only,/obj/structure/window/reinforced/polarized{dir = 8},/obj/structure/window/reinforced/polarized,/obj/structure/window/reinforced/polarized{dir = 4},/turf/simulated/floor/plating,/area/rnd/research) +"bGp" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/machinery/door/firedoor/border_only,/turf/simulated/shuttle/plating,/area/rnd/docking) +"bGq" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/firedoor/border_only,/turf/simulated/shuttle/plating,/area/rnd/docking) +"bGr" = (/obj/structure/grille,/obj/structure/window/reinforced/polarized{dir = 8},/obj/structure/window/reinforced/polarized{dir = 4},/turf/simulated/floor/plating,/area/quartermaster/qm) +"bGs" = (/obj/machinery/door/firedoor/border_only,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor,/area/hallway/primary/central_three) "bGt" = (/turf/simulated/wall,/area/quartermaster/miningdock) "bGu" = (/obj/machinery/requests_console{announcementConsole = 1; department = "Head of Personnel's Desk"; departmentType = 5; name = "Head of Personnel RC"; pixel_y = -30},/obj/machinery/camera/network/command{c_tag = "Bridge - HoP's Office"; dir = 1},/turf/simulated/floor,/area/crew_quarters/heads/hop) "bGv" = (/turf/simulated/wall,/area/quartermaster/qm) @@ -4440,19 +4440,19 @@ "bHt" = (/obj/machinery/computer/shuttle_control/research,/turf/simulated/floor{dir = 4; icon_state = "whitebluecorner"},/area/rnd/docking) "bHu" = (/obj/structure/lattice,/obj/structure/sign/securearea{desc = "A warning sign which reads 'KEEP CLEAR OF DOCKING AREA'."; name = "KEEP CLEAR: DOCKING AREA"; pixel_y = 32},/turf/space,/area/space) "bHv" = (/obj/structure/table/standard,/obj/item/weapon/folder/white,/obj/item/weapon/stamp/rd{pixel_x = 3; pixel_y = -2},/obj/item/weapon/paper/monitorkey,/obj/item/device/megaphone,/obj/item/weapon/paper_bin{pixel_x = 1; pixel_y = 9},/obj/item/weapon/pen,/turf/simulated/floor{icon_state = "cafeteria"; dir = 5},/area/crew_quarters/heads/hor) -"bHw" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/quartermaster/miningdock) +"bHw" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/window/westleft{dir = 8; name = "Server Room"; opacity = 1; req_access = list(30)},/obj/machinery/door/window/eastleft{name = "Server Room"},/turf/simulated/floor{icon_state = "dark"},/area/server) "bHx" = (/obj/structure/disposalpipe/segment,/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable/green{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor,/area/quartermaster/miningdock) "bHy" = (/obj/structure/table/rack{dir = 1},/obj/item/weapon/storage/toolbox/mechanical{pixel_x = -2; pixel_y = -1},/obj/machinery/light{dir = 1},/obj/machinery/light_switch{pixel_y = 24},/obj/item/weapon/storage/belt/utility,/turf/simulated/floor,/area/quartermaster/miningdock) -"bHz" = (/obj/machinery/requests_console{department = "Cargo Bay"; departmentType = 2; pixel_x = -30; pixel_y = 0},/obj/machinery/atmospherics/unary/vent_scrubber/on,/turf/simulated/floor,/area/quartermaster/qm) +"bHz" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor,/area/hallway/primary/central_three) "bHA" = (/obj/structure/disposalpipe/segment,/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor{dir = 4; icon_state = "whiteblue"; tag = "icon-whitehall (WEST)"},/area/medical/medbay) "bHB" = (/turf/simulated/floor,/area/quartermaster/qm) "bHC" = (/obj/item/device/radio/intercom{dir = 4; name = "Station Intercom (General)"; pixel_x = 27},/obj/structure/disposalpipe/segment,/turf/simulated/floor,/area/quartermaster/qm) "bHD" = (/obj/machinery/newscaster{pixel_y = 32},/turf/simulated/floor,/area/hallway/primary/central_three) "bHE" = (/obj/structure/extinguisher_cabinet{pixel_x = -5; pixel_y = 30},/turf/simulated/floor,/area/hallway/primary/central_three) "bHF" = (/obj/machinery/firealarm{dir = 2; pixel_y = 24},/turf/simulated/floor,/area/hallway/primary/central_three) -"bHG" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/machinery/door/firedoor/border_only,/obj/structure/sign/securearea{desc = "A warning sign which reads 'KEEP CLEAR OF DOCKING AREA'."; name = "KEEP CLEAR: DOCKING AREA"; pixel_y = 0},/turf/simulated/floor/plating,/area/quartermaster/miningdock) +"bHG" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/quartermaster/miningdock) "bHH" = (/obj/machinery/door/airlock/glass{name = "Central Access"},/turf/simulated/floor,/area/hallway/primary/central_three) -"bHI" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/camera/network/research{c_tag = "Research Division Central"; dir = 4},/turf/simulated/floor{dir = 5; icon_state = "whitehall"},/area/rnd/research) +"bHI" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/quartermaster/miningdock) "bHJ" = (/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/turf/simulated/floor{dir = 1; icon_state = "blue"},/area/hallway/primary/central_three) "bHK" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor{dir = 1; icon_state = "blue"},/area/hallway/primary/central_three) "bHL" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor,/area/hallway/primary/central_three) @@ -4462,7 +4462,7 @@ "bHP" = (/obj/machinery/atmospherics/pipe/manifold/hidden{dir = 1; icon_state = "map"; tag = "icon-manifold-f (NORTH)"},/obj/machinery/camera/network/research{c_tag = "Research Shuttle Dock Airlock"},/turf/simulated/floor{dir = 9; icon_state = "warning"},/area/rnd/docking) "bHQ" = (/obj/machinery/door/airlock/external{frequency = 1380; icon_state = "door_locked"; id_tag = "research_dock_inner"; locked = 1; name = "Shuttle Airlock"; req_access = list(13)},/obj/machinery/atmospherics/pipe/simple/hidden{tag = "icon-intact (EAST)"; icon_state = "intact"; dir = 4},/turf/simulated/floor{icon_state = "white"},/area/rnd/docking) "bHR" = (/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 8; frequency = 1380; id_tag = "research_dock_pump"},/turf/simulated/floor{dir = 5; icon_state = "warning"},/area/rnd/docking) -"bHS" = (/obj/machinery/door/firedoor/border_only,/turf/simulated/floor{dir = 9; icon_state = "whitehall"},/area/rnd/research) +"bHS" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/machinery/door/firedoor/border_only,/obj/structure/sign/securearea{desc = "A warning sign which reads 'KEEP CLEAR OF DOCKING AREA'."; name = "KEEP CLEAR: DOCKING AREA"; pixel_y = 0},/turf/simulated/floor/plating,/area/quartermaster/miningdock) "bHT" = (/obj/machinery/atmospherics/unary/vent_pump/on,/turf/simulated/floor,/area/hallway/primary/central_three) "bHU" = (/obj/structure/disposalpipe/segment,/obj/machinery/camera/network/exodus{c_tag = "Primary Hallway Central - Southwest"; dir = 8},/turf/simulated/floor{dir = 4; icon_state = "bluecorner"},/area/hallway/primary/central_three) "bHV" = (/obj/machinery/door/airlock/command{id_tag = "hopdoor"; name = "Head of Personnel"; req_access = list(57)},/obj/structure/disposalpipe/segment,/turf/simulated/floor,/area/crew_quarters/heads/hop) @@ -4496,8 +4496,8 @@ "bIx" = (/turf/simulated/wall/r_wall,/area/server) "bIy" = (/obj/machinery/r_n_d/server/robotics,/turf/simulated/floor/bluegrid{name = "Server Base"; nitrogen = 500; oxygen = 0; temperature = 80},/area/server) "bIz" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/machinery/door/blast/shutters{density = 0; dir = 0; icon_state = "shutter0"; id = "staffroom"; name = "Staff Room Privacy Shutters"; opacity = 0},/turf/simulated/floor/plating,/area/medical/cryo) -"bIA" = (/obj/machinery/door/firedoor/border_only,/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor{icon_state = "white"},/area/rnd/research) -"bIB" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/quartermaster/miningdock) +"bIA" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/camera/network/research{c_tag = "Research Division Central"; dir = 4},/turf/simulated/floor{dir = 5; icon_state = "whitehall"},/area/rnd/research) +"bIB" = (/obj/machinery/door/firedoor/border_only,/turf/simulated/floor{dir = 9; icon_state = "whitehall"},/area/rnd/research) "bIC" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 10; icon_state = "intact"; tag = "icon-intact-f (SOUTHWEST)"},/obj/structure/cable/green{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor{icon_state = "dark"},/area/server) "bID" = (/obj/machinery/disposal,/obj/structure/disposalpipe/trunk{dir = 1},/turf/simulated/floor{icon_state = "white"},/area/rnd/research) "bIE" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/blast/shutters{density = 0; dir = 8; icon_state = "shutter0"; id = "staffroom"; name = "Staff Room Privacy Shutters"; opacity = 0},/turf/simulated/floor/plating,/area/medical/medbay2) @@ -4507,7 +4507,7 @@ "bII" = (/obj/machinery/portable_atmospherics/powered/scrubber/huge,/obj/structure/sign/nosmoking_2{pixel_x = 28},/turf/simulated/floor{icon_state = "bot"},/area/rnd/storage) "bIJ" = (/turf/simulated/wall,/area/rnd/storage) "bIK" = (/obj/machinery/firealarm{dir = 8; pixel_x = -24},/turf/simulated/floor{dir = 5; icon_state = "whitehall"},/area/rnd/research) -"bIL" = (/obj/machinery/door/blast/shutters{density = 0; dir = 2; icon_state = "shutter0"; id = "acutesep"; name = "Acute Separation Shutters"; opacity = 0},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor{tag = "icon-whitebluefull"; icon_state = "whitebluefull"},/area/medical/sleeper) +"bIL" = (/obj/machinery/door/firedoor/border_only,/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor{icon_state = "white"},/area/rnd/research) "bIM" = (/obj/structure/table/standard,/obj/machinery/computer/skills{icon_state = "medlaptop"},/turf/simulated/floor{icon_state = "cafeteria"; dir = 5},/area/crew_quarters/heads/hor) "bIN" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor{icon_state = "cafeteria"; dir = 5},/area/crew_quarters/heads/hor) "bIO" = (/obj/machinery/computer/mecha,/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor{icon_state = "cafeteria"; dir = 5},/area/crew_quarters/heads/hor) @@ -4521,7 +4521,7 @@ "bIW" = (/obj/structure/table/rack{dir = 1},/obj/item/weapon/pickaxe{pixel_x = 5},/obj/item/weapon/shovel{pixel_x = -5},/turf/simulated/floor,/area/quartermaster/miningdock) "bIX" = (/obj/structure/cable/green{d2 = 4; icon_state = "0-4"},/obj/machinery/power/apc/critical{dir = 1; name = "north bump"; pixel_x = 0; pixel_y = 24},/turf/simulated/floor,/area/quartermaster/miningdock) "bIY" = (/obj/structure/table/standard,/obj/item/weapon/paper_bin{pixel_x = 1; pixel_y = 9},/turf/simulated/floor,/area/quartermaster/miningdock) -"bIZ" = (/obj/structure/bed/chair/office/dark,/obj/effect/landmark/start{name = "Quartermaster"},/obj/machinery/button/windowtint{pixel_x = 24; pixel_y = -24},/obj/machinery/button/remote/airlock{desc = "A remote control-switch for the office door."; id = "qmdoor"; name = "Office Door Control"; pixel_x = 15; pixel_y = -25; req_access = list(20)},/obj/machinery/button/remote/airlock{desc = "A remote control-switch for the cargo doors."; id = "cargodoor"; name = "Cargo door control"; pixel_x = 15; pixel_y = -34; req_access = list(41)},/turf/simulated/floor,/area/quartermaster/qm) +"bIZ" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/quartermaster/miningdock) "bJa" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/camera/network/exodus{c_tag = "Primary Hallway Central - South Southwest"},/obj/structure/sign/securearea{pixel_y = 32},/turf/simulated/floor{icon_state = "warningcorner"; dir = 8},/area/hallway/primary/central_three) "bJb" = (/obj/machinery/ai_status_display{pixel_y = 32},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor{icon_state = "warningcorner"; dir = 4},/area/hallway/primary/central_three) "bJc" = (/obj/machinery/navbeacon{codes_txt = "patrol;next_patrol=AIW"; location = "QM"},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 5},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 5},/turf/simulated/floor,/area/hallway/primary/central_three) @@ -4529,9 +4529,9 @@ "bJe" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor,/area/hallway/primary/central_three) "bJf" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 1},/turf/simulated/floor,/area/hallway/primary/central_three) "bJg" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor,/area/hallway/primary/central_three) -"bJh" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/maintenance/cargo) +"bJh" = (/obj/machinery/door/blast/shutters{density = 0; dir = 2; icon_state = "shutter0"; id = "acutesep"; name = "Acute Separation Shutters"; opacity = 0},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor{tag = "icon-whitebluefull"; icon_state = "whitebluefull"},/area/medical/sleeper) "bJi" = (/obj/machinery/door/airlock/glass{name = "Central Access"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor,/area/hallway/primary/central_three) -"bJj" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/grille,/obj/machinery/door/firedoor/border_only,/obj/structure/cable/green{d2 = 2; icon_state = "0-2"},/obj/structure/cable/green{d2 = 4; icon_state = "0-4"},/turf/simulated/floor/plating,/area/storage/tech) +"bJj" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/maintenance/cargo) "bJk" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 1},/turf/simulated/floor,/area/hallway/primary/central_three) "bJl" = (/obj/machinery/navbeacon{codes_txt = "patrol;next_patrol=AftH"; location = "AIW"},/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor,/area/hallway/primary/central_three) "bJm" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 6},/turf/simulated/floor{icon_state = "white"},/area/medical/sleeper) @@ -4595,11 +4595,11 @@ "bKs" = (/turf/simulated/wall,/area/rnd/test_area) "bKt" = (/turf/simulated/wall/r_wall,/area/rnd/test_area) "bKu" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'BOMB RANGE"; name = "BOMB RANGE"},/turf/simulated/wall/r_wall,/area/rnd/test_area) -"bKv" = (/turf/simulated/shuttle/wall{icon_state = "swall_s6"; dir = 2},/area/shuttle/mining/station) -"bKw" = (/turf/simulated/shuttle/wall{icon_state = "swall12"; dir = 2},/area/shuttle/mining/station) +"bKv" = (/turf/simulated/shuttle/wall{icon_state = "swall_s"; dir = 2},/area/shuttle/mining/station) +"bKw" = (/turf/simulated/shuttle/wall{icon_state = "swall_straight"; dir = 1},/area/shuttle/mining/station) "bKx" = (/obj/structure/window/shuttle,/obj/structure/grille,/turf/simulated/shuttle/plating,/area/shuttle/mining/station) -"bKy" = (/turf/simulated/shuttle/wall{icon_state = "swall_s10"; dir = 2},/area/shuttle/mining/station) -"bKz" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/grille,/obj/machinery/door/firedoor/border_only,/obj/structure/cable/green{d2 = 4; icon_state = "0-4"},/obj/structure/cable/green{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/plating,/area/storage/tech) +"bKy" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 10},/turf/simulated/floor,/area/rnd/mixing) +"bKz" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/grille,/obj/machinery/door/firedoor/border_only,/obj/structure/cable/green{d2 = 2; icon_state = "0-2"},/obj/structure/cable/green{d2 = 4; icon_state = "0-4"},/turf/simulated/floor/plating,/area/storage/tech) "bKA" = (/turf/simulated/floor,/area/quartermaster/miningdock) "bKB" = (/obj/structure/table/standard,/obj/item/device/taperecorder{pixel_x = -3},/obj/item/device/paicard{pixel_x = 4},/obj/item/device/radio/intercom{freerange = 0; frequency = 1459; name = "Station Intercom (General)"; pixel_x = 29},/obj/item/weapon/circuitboard/teleporter,/obj/item/weapon/circuitboard/aicore{pixel_x = -2; pixel_y = 4},/turf/simulated/floor{icon_state = "cafeteria"; dir = 5},/area/crew_quarters/heads/hor) "bKC" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor,/area/quartermaster/qm) @@ -4609,7 +4609,7 @@ "bKG" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor,/area/hallway/primary/central_three) "bKH" = (/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -29},/turf/simulated/floor,/area/hallway/primary/central_three) "bKI" = (/obj/machinery/alarm{dir = 1; icon_state = "alarm0"; pixel_y = -22},/obj/machinery/atmospherics/unary/vent_pump/on{dir = 1},/turf/simulated/floor,/area/hallway/primary/central_three) -"bKJ" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/grille,/obj/structure/window/reinforced,/obj/machinery/door/firedoor/border_only,/obj/structure/cable/green{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/plating,/area/storage/tech) +"bKJ" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/grille,/obj/machinery/door/firedoor/border_only,/obj/structure/cable/green{d2 = 4; icon_state = "0-4"},/obj/structure/cable/green{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/plating,/area/storage/tech) "bKK" = (/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -29},/obj/machinery/atmospherics/unary/vent_pump/on{dir = 1},/turf/simulated/floor,/area/hallway/primary/central_three) "bKL" = (/obj/structure/extinguisher_cabinet{pixel_x = 5; pixel_y = -32},/turf/simulated/floor,/area/hallway/primary/central_three) "bKM" = (/obj/machinery/light,/obj/machinery/firealarm{dir = 1; pixel_x = 0; pixel_y = -24},/turf/simulated/floor,/area/hallway/primary/central_three) @@ -4619,15 +4619,14 @@ "bKQ" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/sign/directions/evac{dir = 4; icon_state = "direction_evac"; pixel_y = -24; tag = "icon-direction_evac (EAST)"},/obj/structure/sign/directions/medical{dir = 4; icon_state = "direction_med"; pixel_y = -32; tag = "icon-direction_med (EAST)"},/obj/structure/sign/directions/engineering{pixel_y = -40},/turf/simulated/floor,/area/hallway/primary/central_three) "bKR" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/light,/turf/simulated/floor,/area/hallway/primary/central_three) "bKS" = (/obj/structure/disposalpipe/sortjunction/flipped{dir = 8; sortType = "Janitor Closet"; name = "Janitor Closet"},/turf/simulated/floor,/area/hallway/primary/central_three) -"bKT" = (/obj/machinery/door/firedoor/border_only,/turf/simulated/floor,/area/hallway/primary/aft) -"bKU" = (/obj/machinery/door/firedoor/border_only,/turf/simulated/floor{dir = 8; icon_state = "cautioncorner"},/area/hallway/primary/aft) -"bKV" = (/obj/machinery/light{dir = 4; icon_state = "tube1"},/obj/machinery/door/firedoor/border_only,/obj/structure/disposalpipe/segment,/turf/simulated/floor{dir = 2; icon_state = "yellowcorner"},/area/hallway/primary/aft) +"bKT" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/grille,/obj/structure/window/reinforced,/obj/machinery/door/firedoor/border_only,/obj/structure/cable/green{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/plating,/area/storage/tech) +"bKU" = (/obj/machinery/door/firedoor/border_only,/turf/simulated/floor,/area/hallway/primary/aft) +"bKV" = (/obj/machinery/door/firedoor/border_only,/turf/simulated/floor{dir = 8; icon_state = "cautioncorner"},/area/hallway/primary/aft) "bKW" = (/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/obj/machinery/firealarm{dir = 1; pixel_x = 0; pixel_y = -24},/turf/simulated/floor,/area/hallway/primary/central_two) "bKX" = (/obj/machinery/light,/turf/simulated/floor,/area/hallway/primary/central_two) "bKY" = (/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -29},/turf/simulated/floor,/area/hallway/primary/central_two) "bKZ" = (/obj/structure/closet/secure_closet/medical1,/obj/item/device/radio/intercom{broadcasting = 0; canhear_range = 5; freerange = 0; frequency = 1485; listening = 1; name = "Station Intercom (Medbay)"; pixel_x = 0; pixel_y = -31},/obj/item/clothing/mask/gas,/obj/item/clothing/mask/gas,/obj/item/device/flashlight,/obj/machinery/alarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/obj/random/medical,/turf/simulated/floor{icon_state = "white"},/area/medical/sleeper) "bLa" = (/obj/structure/lattice,/obj/structure/grille,/obj/structure/sign/securearea{desc = "A warning sign which reads 'KEEP CLEAR OF DOCKING AREA'."; name = "KEEP CLEAR: DOCKING AREA"; pixel_y = 0},/turf/space,/area/space) -"bLb" = (/obj/machinery/sleep_console,/turf/simulated/floor{icon_state = "white"},/area/medical/sleeper) "bLc" = (/obj/machinery/door/blast/shutters{density = 0; dir = 2; icon_state = "shutter0"; id = "scanhide"; name = "Diagnostics Room Separation Shutters"; opacity = 0},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor{tag = "icon-whitebluefull"; icon_state = "whitebluefull"},/area/medical/sleeper) "bLd" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 1},/obj/structure/closet/fireaxecabinet{pixel_x = 32; pixel_y = 0},/turf/simulated/floor{icon_state = "white"},/area/medical/sleeper) "bLe" = (/obj/structure/disposalpipe/segment,/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor{dir = 4; icon_state = "whiteblue"; tag = "icon-whitehall (WEST)"},/area/medical/medbay) @@ -4673,19 +4672,19 @@ "bLS" = (/obj/machinery/light/small{dir = 1},/turf/simulated/floor/plating/airless,/area/rnd/test_area) "bLT" = (/turf/simulated/floor/airless,/area/rnd/test_area) "bLU" = (/obj/structure/window/reinforced{dir = 5; health = 1e+007},/turf/simulated/floor/airless,/area/rnd/test_area) -"bLV" = (/turf/simulated/shuttle/wall{icon_state = "swall3"; dir = 2},/area/shuttle/mining/station) +"bLV" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 8},/turf/simulated/floor{icon_state = "warning"},/area/rnd/mixing) "bLW" = (/obj/machinery/button/remote/blast_door{id = "acute1"; name = "EMT Storage Privacy Shutters"; pixel_x = 26; pixel_y = 25; req_access = list(5)},/turf/simulated/floor{icon_state = "white"},/area/medical/sleeper) "bLX" = (/obj/machinery/computer/shuttle_control/mining,/turf/simulated/shuttle/floor,/area/shuttle/mining/station) "bLY" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/command{id_tag = "cmodoor"; name = "CMO's Office"; req_access = list(40)},/turf/simulated/floor{icon_state = "white"},/area/crew_quarters/heads/cmo) -"bLZ" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/rnd/mixing) -"bMa" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/quartermaster/miningdock) -"bMb" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/maintenance/cargo) +"bLZ" = (/obj/machinery/light{dir = 4; icon_state = "tube1"},/obj/machinery/door/firedoor/border_only,/obj/structure/disposalpipe/segment,/turf/simulated/floor{dir = 2; icon_state = "yellowcorner"},/area/hallway/primary/aft) +"bMa" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/rnd/mixing) +"bMb" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/quartermaster/miningdock) "bMc" = (/obj/machinery/computer/shuttle_control/mining,/turf/simulated/floor{dir = 9; icon_state = "brown"},/area/quartermaster/miningdock) "bMd" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 4},/turf/simulated/floor,/area/quartermaster/miningdock) "bMe" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor,/area/quartermaster/miningdock) "bMf" = (/obj/structure/disposalpipe/segment,/obj/structure/cable/green{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 8},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers,/turf/simulated/floor,/area/quartermaster/miningdock) "bMg" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor,/area/quartermaster/miningdock) -"bMh" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/grille,/obj/machinery/door/firedoor/border_only,/obj/structure/cable/green{d2 = 2; icon_state = "0-2"},/obj/structure/cable/green,/turf/simulated/floor/plating,/area/storage/tech) +"bMh" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/maintenance/cargo) "bMi" = (/obj/structure/bed/chair/office/light,/obj/machinery/atmospherics/pipe/manifold/hidden,/turf/simulated/floor{icon_state = "dark"},/area/server) "bMj" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor,/area/quartermaster/qm) "bMk" = (/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/obj/machinery/power/apc{dir = 4; name = "east bump"; pixel_x = 24},/obj/structure/cable/green{d2 = 8; icon_state = "0-8"},/turf/simulated/floor,/area/quartermaster/qm) @@ -4697,7 +4696,7 @@ "bMq" = (/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable/green{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 5},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers,/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/turf/simulated/floor{icon_state = "white"},/area/rnd/research) "bMr" = (/obj/machinery/vending/cigarette,/turf/simulated/floor{icon_state = "dark"},/area/hallway/primary/central_two) "bMs" = (/obj/structure/bed/chair{dir = 1},/turf/simulated/shuttle/floor,/area/shuttle/mining/station) -"bMt" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/blast/regular{density = 0; icon_state = "pdoor0"; id = "Biohazard"; name = "Biohazard Shutter"; opacity = 0},/obj/machinery/door/airlock/research{name = "Toxins Launch Room Access"; req_access = list(7)},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor{icon_state = "white"},/area/rnd/mixing) +"bMt" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/grille,/obj/machinery/door/firedoor/border_only,/obj/structure/cable/green{d2 = 2; icon_state = "0-2"},/obj/structure/cable/green,/turf/simulated/floor/plating,/area/storage/tech) "bMu" = (/obj/structure/bed/chair,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 5},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/turf/simulated/floor{icon_state = "white"},/area/crew_quarters/heads/cmo) "bMv" = (/obj/structure/bed/chair,/turf/simulated/floor{icon_state = "white"},/area/crew_quarters/heads/cmo) "bMw" = (/obj/structure/cable/green{d1 = 2; d2 = 8; icon_state = "2-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},/turf/simulated/floor{icon_state = "cafeteria"; dir = 5},/area/crew_quarters/heads/hor) @@ -4723,8 +4722,8 @@ "bMQ" = (/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/mob/living/simple_animal/mouse/white,/turf/simulated/floor{dir = 4; icon_state = "warning"},/area/rnd/storage) "bMR" = (/obj/machinery/portable_atmospherics/canister/nitrogen,/turf/simulated/floor{icon_state = "delivery"; name = "floor"},/area/rnd/storage) "bMS" = (/obj/structure/bed/chair{dir = 1},/turf/simulated/floor,/area/quartermaster/qm) -"bMT" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/blast/regular{density = 0; icon_state = "pdoor0"; id = "Biohazard"; name = "Biohazard Shutter"; opacity = 0},/obj/machinery/door/airlock/research{name = "Toxins Launch Room"; req_access = list(7)},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor,/area/rnd/mixing) -"bMU" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/rnd/mixing) +"bMT" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/blast/regular{density = 0; icon_state = "pdoor0"; id = "Biohazard"; name = "Biohazard Shutter"; opacity = 0},/obj/machinery/door/airlock/research{name = "Toxins Launch Room Access"; req_access = list(7)},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor{icon_state = "white"},/area/rnd/mixing) +"bMU" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/blast/regular{density = 0; icon_state = "pdoor0"; id = "Biohazard"; name = "Biohazard Shutter"; opacity = 0},/obj/machinery/door/airlock/research{name = "Toxins Launch Room"; req_access = list(7)},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor,/area/rnd/mixing) "bMV" = (/turf/simulated/wall/r_wall,/area/rnd/mixing) "bMW" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/machinery/portable_atmospherics/powered/scrubber/huge,/turf/simulated/floor/plating,/area/rnd/mixing) "bMX" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/door/airlock/glass{name = "Central Access"},/turf/simulated/floor,/area/hallway/primary/central_three) @@ -4738,7 +4737,7 @@ "bNf" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/medical{autoclose = 1; name = "EMT Storage"; req_access = list(5)},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor{dir = 8; icon_state = "whitered"},/area/medical/medbay) "bNg" = (/turf/simulated/shuttle/floor,/area/shuttle/mining/station) "bNh" = (/obj/structure/computerframe,/obj/item/weapon/material/shard{icon_state = "medium"},/turf/simulated/floor{icon_state = "floorgrime"},/area/medical/genetics) -"bNi" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/quartermaster/miningdock) +"bNi" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/rnd/mixing) "bNj" = (/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 4; frequency = 1380; id_tag = "mining_dock_pump"},/turf/simulated/floor{dir = 9; icon_state = "warning"},/area/quartermaster/miningdock) "bNk" = (/obj/item/weapon/material/shard,/turf/simulated/floor{icon_state = "floorgrime"},/area/medical/genetics) "bNl" = (/obj/machinery/atmospherics/pipe/simple/hidden{tag = "icon-intact (EAST)"; icon_state = "intact"; dir = 4},/turf/simulated/wall,/area/quartermaster/miningdock) @@ -4810,8 +4809,8 @@ "bOz" = (/obj/effect/landmark{name = "xeno_spawn"; pixel_x = -1},/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor{dir = 4; icon_state = "warning"},/area/rnd/storage) "bOA" = (/obj/machinery/portable_atmospherics/canister/sleeping_agent,/turf/simulated/floor{icon_state = "delivery"; name = "floor"},/area/rnd/storage) "bOB" = (/obj/machinery/light{dir = 8},/obj/machinery/power/apc{dir = 8; name = "west bump"; pixel_x = -24},/obj/structure/cable/green{d2 = 4; icon_state = "0-4"},/turf/simulated/floor{dir = 5; icon_state = "whitehall"},/area/rnd/research) -"bOC" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/grille,/obj/machinery/door/firedoor/border_only,/obj/structure/cable/green{d2 = 4; icon_state = "0-4"},/obj/structure/cable/green{d2 = 2; icon_state = "0-2"},/obj/structure/cable/green,/turf/simulated/floor/plating,/area/storage/tech) -"bOD" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/rnd/mixing) +"bOC" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/quartermaster/miningdock) +"bOD" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/grille,/obj/machinery/door/firedoor/border_only,/obj/structure/cable/green{d2 = 4; icon_state = "0-4"},/obj/structure/cable/green{d2 = 2; icon_state = "0-2"},/obj/structure/cable/green,/turf/simulated/floor/plating,/area/storage/tech) "bOE" = (/obj/structure/window/reinforced{dir = 1},/obj/machinery/portable_atmospherics/powered/scrubber/huge,/turf/simulated/floor/plating,/area/rnd/mixing) "bOF" = (/obj/machinery/door/airlock/external{name = "Toxins Test Chamber"},/turf/simulated/floor/plating/airless,/area/rnd/test_area) "bOG" = (/obj/machinery/light{dir = 1},/obj/machinery/camera/network/research{c_tag = "Research - Toxins Test Chamber North"; network = list("Research","Toxins Test Area")},/turf/simulated/floor/airless,/area/rnd/test_area) @@ -4834,18 +4833,18 @@ "bOX" = (/obj/item/weapon/cigbutt,/turf/simulated/floor/plating,/area/maintenance/cargo) "bOY" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/turf/simulated/floor/plating,/area/maintenance/cargo) "bOZ" = (/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/plating,/area/maintenance/cargo) -"bPa" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/quartermaster/miningdock) -"bPb" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/quartermaster/miningdock) -"bPc" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/quartermaster/miningdock) -"bPd" = (/obj/machinery/door/window/southright{name = "Toxins Launcher"; req_access = list(8)},/obj/machinery/door/window/southright{dir = 1; name = "Toxins Launcher"; req_access = list(8)},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/rnd/mixing) +"bPa" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/rnd/mixing) +"bPb" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/quartermaster/miningdock) +"bPc" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/quartermaster/miningdock) +"bPd" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/quartermaster/miningdock) "bPe" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/command{name = "CMO's Office"; req_access = list(40)},/turf/simulated/floor{icon_state = "white"},/area/crew_quarters/heads/cmo) "bPf" = (/turf/simulated/floor/plating,/area/storage/tech) "bPg" = (/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plating,/area/storage/tech) "bPh" = (/obj/machinery/atmospherics/unary/vent_scrubber/on,/turf/simulated/floor/plating,/area/storage/tech) "bPi" = (/obj/machinery/light/small{dir = 4},/obj/item/device/radio/intercom{dir = 0; name = "Station Intercom (General)"; pixel_x = 27},/turf/simulated/floor/plating,/area/storage/tech) -"bPj" = (/obj/structure/disposaloutlet,/obj/structure/window/reinforced{dir = 1},/obj/structure/disposalpipe/trunk{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating/airless,/area/rnd/mixing) -"bPk" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/rnd/mixing) -"bPl" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/maintenance/cargo) +"bPj" = (/obj/structure/bed/chair{dir = 4},/obj/machinery/computer/security/telescreen{desc = "Used for watching the test chamber."; layer = 4; name = "Test Chamber Telescreen"; network = list("Toxins Test Area"); pixel_x = 32; pixel_y = 0},/obj/machinery/atmospherics/unary/vent_pump/on{dir = 8},/turf/simulated/floor{icon_state = "warningcorner"; dir = 1},/area/rnd/mixing) +"bPk" = (/obj/structure/disposaloutlet,/obj/structure/window/reinforced{dir = 1},/obj/structure/disposalpipe/trunk{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating/airless,/area/rnd/mixing) +"bPl" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/rnd/mixing) "bPm" = (/obj/machinery/power/apc{dir = 8; name = "west bump"; pixel_x = -24},/obj/structure/cable/green{d2 = 4; icon_state = "0-4"},/turf/simulated/floor,/area/janitor) "bPn" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/obj/structure/bed/roller,/obj/machinery/alarm{dir = 4; icon_state = "alarm0"; pixel_x = -22; pixel_y = -32},/obj/item/weapon/reagent_containers/blood/OMinus,/obj/item/weapon/reagent_containers/blood/OMinus,/obj/item/weapon/reagent_containers/blood/OMinus,/obj/structure/closet/secure_closet/medical_wall{name = "O- Blood Locker"; pixel_x = -32},/turf/simulated/floor{dir = 8; icon_state = "whitered"},/area/medical/sleeper) "bPo" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor,/area/janitor) @@ -4894,12 +4893,12 @@ "bQf" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor{icon_state = "floorgrime"},/area/rnd/mixing) "bQg" = (/obj/machinery/hologram/holopad,/turf/simulated/floor,/area/quartermaster/miningdock) "bQh" = (/obj/item/device/radio/intercom{pixel_y = 25},/obj/machinery/light{icon_state = "tube1"; dir = 8},/obj/machinery/alarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/obj/machinery/atmospherics/unary/vent_scrubber/on,/turf/simulated/floor,/area/rnd/mixing) -"bQi" = (/obj/structure/bed/chair{dir = 4},/obj/machinery/computer/security/telescreen{desc = "Used for watching the test chamber."; layer = 4; name = "Test Chamber Telescreen"; network = list("Toxins Test Area"); pixel_x = 32; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 10},/turf/simulated/floor,/area/rnd/mixing) +"bQi" = (/turf/simulated/shuttle/wall{icon_state = "swall_s"; dir = 1},/area/shuttle/mining/station) "bQj" = (/obj/item/weapon/module/power_control,/obj/item/weapon/airlock_electronics,/obj/structure/table/steel,/turf/simulated/floor/plating,/area/storage/tech) -"bQk" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/structure/grille,/obj/machinery/door/firedoor/border_only,/obj/structure/cable/green,/obj/structure/cable/green{d2 = 4; icon_state = "0-4"},/turf/simulated/floor/plating,/area/storage/tech) +"bQk" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/maintenance/cargo) "bQl" = (/turf/simulated/floor/airless{dir = 9; icon_state = "warning"},/area/rnd/test_area) "bQm" = (/turf/simulated/floor/airless{icon_state = "warning"; dir = 1},/area/rnd/test_area) -"bQn" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/machinery/door/firedoor/border_only,/obj/structure/cable/green{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/plating,/area/storage/tech) +"bQn" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/structure/grille,/obj/machinery/door/firedoor/border_only,/obj/structure/cable/green,/obj/structure/cable/green{d2 = 4; icon_state = "0-4"},/turf/simulated/floor/plating,/area/storage/tech) "bQo" = (/obj/item/weapon/ore/silver,/obj/item/weapon/ore/silver,/obj/item/weapon/ore/iron,/obj/structure/closet/crate,/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 4; frequency = 1380; id_tag = "mining_dock_pump"},/turf/simulated/floor{dir = 10; icon_state = "warning"},/area/quartermaster/miningdock) "bQp" = (/obj/machinery/door/airlock/maintenance{name = "Firefighting equipment"; req_access = list(12)},/turf/simulated/floor/plating,/area/maintenance/engineering) "bQq" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 0},/turf/simulated/wall,/area/quartermaster/miningdock) @@ -4910,8 +4909,8 @@ "bQv" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/plating,/area/maintenance/cargo) "bQw" = (/obj/structure/disposalpipe/sortjunction{dir = 8; icon_state = "pipe-j1s"; sortType = "HoP Office"; name = "HoP Office"},/turf/simulated/floor/plating,/area/maintenance/cargo) "bQx" = (/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/plating,/area/maintenance/cargo) -"bQy" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/research{name = "Toxins Storage"; req_access = list(8)},/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor,/area/rnd/research) -"bQz" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/rnd/research) +"bQy" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/machinery/door/firedoor/border_only,/obj/structure/cable/green{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/plating,/area/storage/tech) +"bQz" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/research{name = "Toxins Storage"; req_access = list(8)},/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor,/area/rnd/research) "bQA" = (/obj/structure/table/rack{dir = 8; layer = 2.9},/obj/item/weapon/circuitboard/borgupload{pixel_x = -1; pixel_y = 1},/obj/item/weapon/circuitboard/aiupload{pixel_x = 2; pixel_y = -2},/turf/simulated/floor,/area/storage/tech) "bQB" = (/obj/machinery/atmospherics/unary/vent_scrubber/on,/obj/machinery/button/remote/blast_door{id = "acutesep"; name = "Acute Separation Shutters"; pixel_y = 25; req_access = list(5)},/obj/machinery/camera/network/medbay{c_tag = "Medbay Acute"},/turf/simulated/floor{icon_state = "white"},/area/medical/sleeper) "bQC" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'HIGH VOLTAGE'"; icon_state = "shock"; name = "HIGH VOLTAGE"},/turf/simulated/wall/r_wall,/area/storage/tech) @@ -4972,18 +4971,18 @@ "bRF" = (/obj/machinery/atmospherics/portables_connector{dir = 1},/turf/simulated/floor{icon_state = "bot"; dir = 1},/area/rnd/mixing) "bRG" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/machinery/door/blast/shutters{density = 0; dir = 4; icon_state = "shutter0"; id = "cmooffice"; name = "CMO Office Privacy Shutters"; opacity = 0},/turf/simulated/floor/plating,/area/medical/medbay2) "bRH" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 9},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor,/area/rnd/mixing) -"bRI" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor,/area/rnd/mixing) +"bRI" = (/turf/simulated/shuttle/wall{icon_state = "swall_s"; dir = 8},/area/shuttle/mining/station) "bRJ" = (/obj/machinery/atmospherics/portables_connector{dir = 1},/turf/simulated/floor,/area/rnd/mixing) -"bRK" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/research{name = "Miscellaneous Reseach Room"; req_access = list(7)},/turf/simulated/floor{icon_state = "white"},/area/rnd/misc_lab) +"bRK" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/rnd/research) "bRL" = (/turf/simulated/floor/airless{dir = 8; icon_state = "warning"},/area/rnd/test_area) "bRM" = (/obj/machinery/requests_console{department = "Science"; departmentType = 2; name = "Science Requests Console"; pixel_x = 30; pixel_y = 0},/obj/machinery/atmospherics/unary/vent_scrubber/on,/turf/simulated/floor{tag = "icon-warningcorner (WEST)"; icon_state = "warningcorner"; dir = 8},/area/rnd/mixing) "bRN" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/shuttle/engine/heater,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating/airless,/area/shuttle/mining/station) "bRO" = (/obj/machinery/light/small{dir = 4},/obj/machinery/alarm{pixel_y = 22},/obj/machinery/atmospherics/unary/vent_scrubber/on,/turf/simulated/floor{icon_state = "warningcorner"; dir = 2},/area/rnd/mixing) -"bRP" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/rnd/research) +"bRP" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/research{name = "Miscellaneous Reseach Room"; req_access = list(7)},/turf/simulated/floor{icon_state = "white"},/area/rnd/misc_lab) "bRQ" = (/obj/structure/closet/secure_closet/miner,/turf/simulated/floor{dir = 2; icon_state = "brown"},/area/quartermaster/miningdock) "bRR" = (/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plating,/area/maintenance/cargo) "bRS" = (/turf/simulated/floor/plating,/area/maintenance/cargo) -"bRT" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/research{name = "Miscellaneous Reseach Room"; req_access = list(7)},/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor{icon_state = "white"},/area/rnd/misc_lab) +"bRT" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/rnd/research) "bRU" = (/obj/structure/table/rack{dir = 8; layer = 2.9},/obj/item/weapon/circuitboard/crew{pixel_x = -1; pixel_y = 1},/obj/item/weapon/circuitboard/card{pixel_x = 2; pixel_y = -2},/obj/item/weapon/circuitboard/communications{pixel_x = 5; pixel_y = -5},/obj/machinery/light/small{dir = 8},/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor,/area/storage/tech) "bRV" = (/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor,/area/storage/tech) "bRW" = (/obj/machinery/button/remote/driver{dir = 2; id = "toxinsdriver"; pixel_y = 24},/obj/machinery/camera/network/research{c_tag = "Research - Toxins Launch Room"},/turf/simulated/floor,/area/rnd/mixing) @@ -5014,7 +5013,7 @@ "bSv" = (/obj/structure/disposalpipe/segment,/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/unary/vent_pump/on{dir = 8},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay2) "bSw" = (/obj/machinery/hologram/holopad,/turf/simulated/floor{icon_state = "white"},/area/medical/sleeper) "bSx" = (/obj/machinery/firealarm{dir = 1; pixel_y = -24},/obj/machinery/light,/obj/machinery/atmospherics/unary/vent_pump/on{dir = 1},/turf/simulated/floor{tag = "icon-cafeteria (NORTHEAST)"; icon_state = "cafeteria"; dir = 5},/area/crew_quarters/medbreak) -"bSy" = (/obj/structure/bed/chair{dir = 4},/obj/machinery/computer/security/telescreen{desc = "Used for watching the test chamber."; layer = 4; name = "Test Chamber Telescreen"; network = list("Toxins Test Area"); pixel_x = 32; pixel_y = 0},/obj/machinery/atmospherics/unary/vent_pump/on{dir = 1},/turf/simulated/floor{icon_state = "warningcorner"; dir = 1},/area/rnd/mixing) +"bSy" = (/obj/machinery/door/window/southright{name = "Toxins Launcher"; req_access = list(8)},/obj/machinery/door/window/southright{dir = 1; name = "Toxins Launcher"; req_access = list(8)},/obj/machinery/door/firedoor/border_only{dir = 2},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/plating,/area/rnd/mixing) "bSz" = (/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 8},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 8},/obj/structure/extinguisher_cabinet{pixel_x = -24},/turf/simulated/floor{dir = 8; icon_state = "cautioncorner"},/area/hallway/primary/aft) "bSA" = (/obj/item/device/radio/intercom{broadcasting = 0; canhear_range = 5; freerange = 0; frequency = 1485; listening = 1; name = "Station Intercom (Medbay Lobby)"; pixel_x = 0; pixel_y = -30},/obj/machinery/hologram/holopad,/turf/simulated/floor{tag = "icon-cafeteria (NORTHEAST)"; icon_state = "cafeteria"; dir = 5},/area/crew_quarters/medbreak) "bSB" = (/obj/machinery/light,/obj/machinery/vending/snack,/turf/simulated/floor{tag = "icon-cafeteria (NORTHEAST)"; icon_state = "cafeteria"; dir = 5},/area/crew_quarters/medbreak) @@ -5040,18 +5039,18 @@ "bSV" = (/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/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/binary/pump{dir = 4; name = "Heater to Waste"},/turf/simulated/floor{dir = 2; icon_state = "warnwhite"},/area/rnd/mixing) "bSW" = (/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/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/visible{icon_state = "intact"; dir = 6},/turf/simulated/floor{icon_state = "white"},/area/rnd/mixing) "bSX" = (/obj/machinery/disposal,/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = -30; pixel_y = 0},/obj/structure/disposalpipe/trunk,/turf/simulated/floor{icon_state = "warningcorner"; dir = 2},/area/rnd/mixing) -"bSY" = (/turf/simulated/floor{icon_state = "warning"},/area/rnd/mixing) +"bSY" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 1},/obj/machinery/airlock_sensor{pixel_y = -25},/turf/simulated/floor/plating/airless,/area/rnd/mixing) "bSZ" = (/obj/machinery/atmospherics/pipe/simple/visible{icon_state = "intact"; dir = 6},/turf/simulated/floor{icon_state = "redcorner"; dir = 1},/area/medical/sleeper) -"bTa" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/rnd/research) +"bTa" = (/obj/effect/landmark/start{name = "Station Engineer"},/obj/structure/bed/chair/comfy/brown,/turf/simulated/floor/carpet,/area/engineering/break_room) "bTb" = (/turf/simulated/floor/airless{dir = 4; icon_state = "warning"},/area/rnd/test_area) "bTc" = (/turf/simulated/floor/airless{icon_state = "warningcorner"; dir = 1},/area/rnd/test_area) -"bTd" = (/turf/simulated/shuttle/wall{icon_state = "swall_s5"; dir = 2},/area/shuttle/mining/station) +"bTd" = (/turf/simulated/shuttle/wall{icon_state = "swall_straight"; dir = 4},/area/shuttle/escape_pod5/station) "bTe" = (/obj/structure/shuttle/engine/propulsion/burst,/turf/space,/area/shuttle/mining/station) -"bTf" = (/turf/simulated/shuttle/wall{icon_state = "swall_s9"; dir = 2},/area/shuttle/mining/station) +"bTf" = (/turf/simulated/shuttle/wall{icon_state = "swall_s"; dir = 4},/area/shuttle/escape_pod5/station) "bTg" = (/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/binary/pump{dir = 1; name = "Heated to Waste"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor{icon_state = "white"},/area/rnd/mixing) -"bTh" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/machinery/door/firedoor/border_only,/obj/structure/window/reinforced{dir = 1},/obj/structure/cable/green{d2 = 4; icon_state = "0-4"},/turf/simulated/floor/plating,/area/crew_quarters/heads/chief) -"bTi" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/machinery/door/firedoor/border_only,/obj/structure/window/reinforced{dir = 1},/obj/structure/cable/green{d2 = 2; icon_state = "0-2"},/obj/structure/cable/green{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/plating,/area/crew_quarters/heads/chief) -"bTj" = (/obj/structure/grille,/obj/machinery/door/firedoor/border_only,/obj/structure/cable/green{d2 = 2; icon_state = "0-2"},/obj/structure/window/reinforced/polarized{dir = 1},/obj/structure/window/reinforced/polarized{dir = 8},/obj/structure/window/reinforced/polarized,/obj/structure/window/reinforced/polarized{dir = 4},/turf/simulated/floor/plating,/area/crew_quarters/heads/chief) +"bTh" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/research{name = "Miscellaneous Reseach Room"; req_access = list(7)},/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor{icon_state = "white"},/area/rnd/misc_lab) +"bTi" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/rnd/research) +"bTj" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/machinery/door/firedoor/border_only,/obj/structure/window/reinforced{dir = 1},/obj/structure/cable/green{d2 = 4; icon_state = "0-4"},/turf/simulated/floor/plating,/area/crew_quarters/heads/chief) "bTk" = (/obj/structure/reagent_dispensers/fueltank,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plating,/area/maintenance/cargo) "bTl" = (/obj/structure/reagent_dispensers/watertank,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plating,/area/maintenance/cargo) "bTm" = (/obj/machinery/power/apc{dir = 2; name = "south bump"; pixel_y = -24},/obj/effect/decal/cleanable/dirt,/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/simulated/floor/plating,/area/maintenance/cargo) @@ -5082,12 +5081,12 @@ "bTL" = (/obj/machinery/door/firedoor,/obj/structure/disposalpipe/segment,/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor{dir = 4; icon_state = "whiteblue"; tag = "icon-whitehall (WEST)"},/area/medical/medbay4) "bTM" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers,/turf/simulated/floor{icon_state = "white"},/area/rnd/mixing) "bTN" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor{icon_state = "white"},/area/rnd/mixing) -"bTO" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/engineering/break_room) +"bTO" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/machinery/door/firedoor/border_only,/obj/structure/window/reinforced{dir = 1},/obj/structure/cable/green{d2 = 2; icon_state = "0-2"},/obj/structure/cable/green{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/plating,/area/crew_quarters/heads/chief) "bTP" = (/obj/machinery/vending/medical,/turf/simulated/floor{tag = "icon-whiteblue (NORTH)"; icon_state = "whiteblue"; dir = 1},/area/medical/patient_wing) "bTQ" = (/obj/machinery/door/blast/regular{density = 0; icon_state = "pdoor0"; id = "Biohazard"; name = "Biohazard Shutter"; opacity = 0},/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/turf/simulated/floor{icon_state = "bot"},/area/rnd/research) "bTR" = (/obj/machinery/door/firedoor,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor{tag = "icon-whiteblue (WEST)"; icon_state = "whiteblue"; dir = 8},/area/medical/medbay4) "bTS" = (/obj/machinery/door/firedoor,/obj/structure/disposalpipe/segment,/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay4) -"bTT" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/door/firedoor/border_only,/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable/green{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable/green{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/door/airlock/command{id_tag = "cedoor"; name = "Chief Engineer"; req_access = list(56)},/turf/simulated/floor,/area/crew_quarters/heads/chief) +"bTT" = (/obj/structure/grille,/obj/machinery/door/firedoor/border_only,/obj/structure/cable/green{d2 = 2; icon_state = "0-2"},/obj/structure/window/reinforced/polarized{dir = 1},/obj/structure/window/reinforced/polarized{dir = 8},/obj/structure/window/reinforced/polarized,/obj/structure/window/reinforced/polarized{dir = 4},/turf/simulated/floor/plating,/area/crew_quarters/heads/chief) "bTU" = (/obj/structure/cable/green{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 10},/turf/simulated/floor{dir = 3; icon_state = "whitered"},/area/medical/patient_a) "bTV" = (/obj/machinery/iv_drip,/obj/machinery/power/apc{dir = 4; name = "east bump"; pixel_x = 24},/obj/structure/cable/green{d2 = 8; icon_state = "0-8"},/turf/simulated/floor{dir = 6; icon_state = "whitered"},/area/medical/patient_a) "bTW" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 1},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers,/turf/simulated/floor{dir = 4; icon_state = "warning"},/area/rnd/mixing) @@ -5109,17 +5108,17 @@ "bUm" = (/obj/structure/grille,/obj/structure/window/reinforced/polarized{dir = 4; id = "isoA_window_tint"},/obj/structure/window/reinforced/polarized{id = "isoA_window_tint"},/obj/structure/window/reinforced/polarized{dir = 1; id = "isoA_window_tint"},/obj/structure/window/reinforced/polarized{dir = 8; id = "isoA_window_tint"},/turf/simulated/floor/plating,/area/medical/patient_a) "bUn" = (/turf/simulated/wall,/area/maintenance/research_starboard) "bUo" = (/obj/machinery/door/airlock/highsecurity{name = "Secure Tech Storage"; req_access = list(19,23)},/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/storage/tech) -"bUp" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/engineering/break_room) +"bUp" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/engineering/break_room) "bUq" = (/obj/machinery/door/airlock/engineering{name = "Tech Storage"; req_access = list(23)},/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/hallway/primary/aft) -"bUr" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/research{name = "Xenobiology Research"; req_access = list(47)},/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor{icon_state = "white"},/area/rnd/research) +"bUr" = (/obj/effect/landmark/start{name = "Station Engineer"},/obj/structure/bed/chair/comfy/brown{dir = 4},/turf/simulated/floor/carpet,/area/engineering/break_room) "bUs" = (/turf/simulated/floor/airless{icon_state = "warning"},/area/rnd/test_area) "bUt" = (/turf/simulated/floor/airless{dir = 6; icon_state = "warning"},/area/rnd/test_area) "bUu" = (/turf/simulated/floor/airless{dir = 10; icon_state = "warning"},/area/rnd/test_area) "bUv" = (/turf/simulated/wall/r_wall,/area/maintenance/cargo) "bUw" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/unary/vent_pump/on,/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/obj/machinery/camera/network/exodus{c_tag = "Primary Hallway Aft"; dir = 8},/turf/simulated/floor{dir = 2; icon_state = "yellowcorner"},/area/hallway/primary/aft) -"bUx" = (/obj/structure/grille,/obj/machinery/door/firedoor/border_only,/obj/structure/cable/green,/obj/structure/cable/green{d2 = 2; icon_state = "0-2"},/obj/structure/window/reinforced/polarized{dir = 8},/obj/structure/window/reinforced/polarized{dir = 4},/obj/structure/window/reinforced/polarized{dir = 1},/turf/simulated/floor/plating,/area/crew_quarters/heads/chief) -"bUy" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/glass_engineering{name = "Engineering Break Room"; req_one_access = list(10)},/turf/simulated/floor,/area/engineering/break_room) -"bUz" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/glass_command{name = "Chief Engineer"; req_access = list(56)},/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor,/area/crew_quarters/heads/chief) +"bUx" = (/obj/effect/landmark/start{name = "Atmospheric Technician"},/obj/structure/bed/chair/comfy/brown{dir = 8},/turf/simulated/floor/carpet,/area/engineering/break_room) +"bUy" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/door/firedoor/border_only,/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable/green{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable/green{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/door/airlock/command{id_tag = "cedoor"; name = "Chief Engineer"; req_access = list(56)},/turf/simulated/floor,/area/crew_quarters/heads/chief) +"bUz" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/engineering/break_room) "bUA" = (/obj/machinery/door/airlock/maintenance{name = "Custodial Maintenance"; req_access = list(26)},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/janitor) "bUB" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 1},/turf/simulated/floor/plating,/area/storage/tech) "bUC" = (/obj/structure/grille,/obj/structure/window/reinforced/polarized{id = "isoB_window_tint"},/obj/structure/window/reinforced/polarized{dir = 4; id = "isoB_window_tint"},/obj/structure/window/reinforced/polarized{dir = 1; id = "isoB_window_tint"},/obj/structure/window/reinforced/polarized{dir = 8; id = "isoB_window_tint"},/turf/simulated/floor/plating,/area/medical/patient_b) @@ -5169,7 +5168,7 @@ "bVu" = (/obj/machinery/computer/security/telescreen{desc = "Used to monitor the proceedings inside the test chamber."; name = "Test Chamber Monitor"; network = list("Miscellaneous Reseach"); pixel_x = 32; pixel_y = 0},/obj/structure/cable/green{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor{icon_state = "white"},/area/rnd/misc_lab) "bVv" = (/obj/machinery/atmospherics/portables_connector{dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor,/area/rnd/mixing) "bVw" = (/obj/machinery/vending/cigarette{pixel_x = 0; pixel_y = 2},/turf/simulated/floor{icon_state = "white"},/area/rnd/research) -"bVx" = (/obj/structure/grille,/obj/machinery/door/firedoor/border_only,/obj/structure/cable/green,/obj/structure/cable/green{d2 = 2; icon_state = "0-2"},/obj/structure/window/reinforced/polarized{dir = 8},/obj/structure/window/reinforced/polarized{dir = 4},/turf/simulated/floor/plating,/area/crew_quarters/heads/chief) +"bVx" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/research{name = "Xenobiology Research"; req_access = list(47)},/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor{icon_state = "white"},/area/rnd/research) "bVy" = (/obj/machinery/atmospherics/unary/heat_exchanger{dir = 8},/turf/simulated/floor{dir = 10; icon_state = "warning"},/area/rnd/mixing) "bVz" = (/obj/machinery/atmospherics/pipe/manifold/visible,/obj/machinery/meter,/turf/simulated/floor{icon_state = "white"},/area/rnd/mixing) "bVA" = (/obj/machinery/door/blast/regular{density = 0; icon_state = "pdoor0"; id = "Biohazard"; name = "Biohazard Shutter"; opacity = 0},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor{icon_state = "bot"},/area/rnd/research) @@ -5187,9 +5186,9 @@ "bVM" = (/obj/machinery/light/small{dir = 1},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 8},/turf/simulated/floor{icon_state = "white"},/area/rnd/research) "bVN" = (/obj/item/device/radio/beacon,/obj/effect/landmark{name = "blobstart"},/turf/simulated/floor/airless{icon_state = "bot"},/area/rnd/test_area) "bVO" = (/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor{icon_state = "white"},/area/rnd/mixing) -"bVP" = (/turf/simulated/shuttle/wall{icon_state = "swall_s6"; dir = 2},/area/shuttle/escape_pod5/station) -"bVQ" = (/turf/simulated/shuttle/wall{icon_state = "swall12"; dir = 2},/area/shuttle/escape_pod5/station) -"bVR" = (/obj/structure/shuttle/engine/propulsion/burst{dir = 8},/turf/simulated/wall,/area/shuttle/escape_pod5/station) +"bVP" = (/obj/structure/shuttle/engine/propulsion/burst{dir = 4},/turf/simulated/wall,/area/shuttle/escape_pod5/station) +"bVQ" = (/turf/simulated/shuttle/wall{icon_state = "swall_s"; dir = 1},/area/shuttle/escape_pod5/station) +"bVR" = (/turf/simulated/shuttle/wall{icon_state = "swall_straight"; dir = 4},/area/shuttle/constructionsite/station) "bVS" = (/obj/structure/closet/emcloset,/turf/simulated/floor/plating,/area/maintenance/cargo) "bVT" = (/obj/machinery/light/small{dir = 8},/turf/simulated/floor/plating,/area/maintenance/cargo) "bVU" = (/obj/structure/disposalpipe/segment,/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/plating,/area/maintenance/cargo) @@ -5231,7 +5230,7 @@ "bWE" = (/obj/machinery/firealarm{dir = 2; pixel_y = 24},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 1},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 1},/turf/simulated/floor{icon_state = "white"},/area/medical/patient_wing) "bWF" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor{dir = 4; icon_state = "whiteredcorner"},/area/medical/patient_wing) "bWG" = (/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers,/obj/machinery/atmospherics/pipe/manifold/hidden/supply,/turf/simulated/floor{dir = 1; icon_state = "whitered_a"; tag = "icon-whitered_a (WEST)"},/area/medical/patient_wing) -"bWH" = (/obj/structure/bed/chair/comfy/beige,/obj/effect/landmark/start{name = "Station Engineer"},/turf/simulated/floor/carpet,/area/engineering/break_room) +"bWH" = (/obj/structure/grille,/obj/machinery/door/firedoor/border_only,/obj/structure/cable/green,/obj/structure/cable/green{d2 = 2; icon_state = "0-2"},/obj/structure/window/reinforced/polarized{dir = 8},/obj/structure/window/reinforced/polarized{dir = 4},/obj/structure/window/reinforced/polarized{dir = 1},/turf/simulated/floor/plating,/area/crew_quarters/heads/chief) "bWI" = (/obj/item/weapon/screwdriver{pixel_y = 16},/obj/item/weapon/wirecutters,/obj/structure/table/steel,/turf/simulated/floor/plating,/area/storage/tech) "bWJ" = (/turf/simulated/floor/carpet,/area/engineering/break_room) "bWK" = (/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/manifold/hidden/supply,/obj/machinery/atmospherics/pipe/manifold4w/hidden/scrubbers,/turf/simulated/floor{dir = 1; icon_state = "whitered_b"; tag = "icon-whitered_b (WEST)"},/area/medical/patient_wing) @@ -5270,7 +5269,7 @@ "bXr" = (/obj/machinery/embedded_controller/radio/simple_docking_controller/escape_pod_berth{frequency = 1380; id_tag = "escape_pod_5_berth"; pixel_x = -25; pixel_y = 25; tag_door = "escape_pod_5_berth_hatch"},/turf/simulated/floor/plating,/area/maintenance/cargo) "bXs" = (/obj/structure/disposalpipe/segment,/obj/effect/decal/cleanable/dirt,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/plating,/area/maintenance/cargo) "bXt" = (/obj/machinery/door/firedoor/border_only,/obj/structure/disposalpipe/segment,/turf/simulated/floor{dir = 2; icon_state = "yellowcorner"},/area/hallway/primary/aft) -"bXu" = (/obj/machinery/door/firedoor/border_only,/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/door/airlock/glass_engineering{name = "Engineering Break Room"; req_one_access = list(10)},/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor,/area/engineering/break_room) +"bXu" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/glass_engineering{name = "Engineering Break Room"; req_one_access = list(10)},/turf/simulated/floor,/area/engineering/break_room) "bXv" = (/obj/effect/decal/cleanable/blood/oil,/turf/simulated/floor/plating,/area/maintenance/cargo) "bXw" = (/obj/machinery/atm{pixel_y = 28},/turf/simulated/floor{dir = 4; icon_state = "yellowpatch"},/area/engineering/foyer) "bXx" = (/obj/item/stack/cable_coil{pixel_x = -3; pixel_y = 3},/obj/item/stack/cable_coil,/obj/item/weapon/cell/high{charge = 100; maxcharge = 15000},/obj/structure/table/steel,/turf/simulated/floor/plating,/area/storage/tech) @@ -5311,7 +5310,7 @@ "bYg" = (/obj/structure/sign/redcross{desc = "The Star of Life, a symbol of Medical Aid."; icon_state = "lifestar"; name = "Medbay"; pixel_x = -32},/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/plating,/area/maintenance/research_port) "bYh" = (/obj/machinery/atmospherics/binary/pump{dir = 1},/turf/simulated/floor{icon_state = "white"},/area/rnd/misc_lab) "bYi" = (/obj/structure/cable/green{d2 = 4; icon_state = "0-4"},/obj/structure/cable/green{d2 = 2; icon_state = "0-2"},/obj/structure/cable/green,/obj/machinery/power/sensor{name = "Powernet Sensor - Research Subgrid"; name_tag = "Research Subgrid"},/obj/structure/disposalpipe/segment,/turf/simulated/floor/plating,/area/maintenance/substation/research) -"bYj" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/engineering{name = "Engineering Washroom"; req_one_access = list(10)},/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor,/area/engineering/break_room) +"bYj" = (/obj/effect/landmark/start{name = "Station Engineer"},/obj/structure/bed/chair/comfy/brown{dir = 1},/turf/simulated/floor/carpet,/area/engineering/break_room) "bYk" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating,/area/maintenance/research_port) "bYl" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 6},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/turf/simulated/floor/plating,/area/maintenance/research_port) "bYm" = (/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor{icon_state = "white"},/area/rnd/misc_lab) @@ -5331,20 +5330,20 @@ "bYA" = (/obj/machinery/atmospherics/portables_connector{dir = 8},/turf/simulated/floor{dir = 6; icon_state = "warning"},/area/rnd/mixing) "bYB" = (/obj/machinery/atmospherics/pipe/simple/hidden/cyan{dir = 6; icon_state = "intact"; tag = "icon-intact-f (SOUTHEAST)"},/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 9},/area/maintenance/research_starboard) "bYC" = (/obj/machinery/atmospherics/pipe/tank/air{dir = 8},/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 1},/area/maintenance/research_starboard) -"bYD" = (/turf/simulated/shuttle/wall{icon_state = "swall_s5"; dir = 2},/area/shuttle/escape_pod5/station) +"bYD" = (/turf/simulated/shuttle/wall{icon_state = "swall_s"; dir = 4},/area/shuttle/constructionsite/station) "bYE" = (/obj/machinery/light/small,/turf/simulated/floor/plating,/area/maintenance/cargo) "bYF" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 6},/turf/simulated/wall,/area/maintenance/cargo) "bYG" = (/obj/machinery/atmospherics/portables_connector{dir = 8},/obj/machinery/portable_atmospherics/canister/air/airlock,/turf/simulated/floor/plating,/area/maintenance/cargo) "bYH" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/medical{name = "Sub-Acute B"},/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor{icon_state = "white"},/area/medical/patient_wing) "bYI" = (/turf/simulated/wall/r_wall,/area/crew_quarters/heads/chief) -"bYJ" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/machinery/door/firedoor/border_only,/obj/machinery/door/blast/regular{density = 0; icon_state = "pdoor0"; id = "Biohazard"; name = "Biohazard Shutter"; opacity = 0},/turf/simulated/floor/plating,/area/rnd/xenobiology/xenoflora_storage) -"bYK" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/machinery/door/firedoor/border_only,/obj/machinery/door/blast/regular{density = 0; icon_state = "pdoor0"; id = "Biohazard"; name = "Biohazard Shutter"; opacity = 0},/turf/simulated/floor/plating,/area/rnd/xenobiology/xenoflora_storage) +"bYJ" = (/obj/effect/landmark/start{name = "Atmospheric Technician"},/obj/structure/bed/chair/comfy/brown{dir = 1},/turf/simulated/floor/carpet,/area/engineering/break_room) +"bYK" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/glass_command{name = "Chief Engineer"; req_access = list(56)},/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor,/area/crew_quarters/heads/chief) "bYL" = (/obj/machinery/computer/atmos_alert,/turf/simulated/floor,/area/crew_quarters/heads/chief) -"bYM" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/machinery/door/firedoor/border_only,/obj/machinery/door/blast/regular{density = 0; icon_state = "pdoor0"; id = "Biohazard"; name = "Biohazard Shutter"; opacity = 0},/turf/simulated/floor/plating,/area/rnd/xenobiology/xenoflora) +"bYM" = (/obj/structure/grille,/obj/machinery/door/firedoor/border_only,/obj/structure/cable/green,/obj/structure/cable/green{d2 = 2; icon_state = "0-2"},/obj/structure/window/reinforced/polarized{dir = 8},/obj/structure/window/reinforced/polarized{dir = 4},/turf/simulated/floor/plating,/area/crew_quarters/heads/chief) "bYN" = (/obj/structure/table/reinforced,/obj/machinery/light{dir = 1},/obj/machinery/light_switch{pixel_x = 0; pixel_y = 27},/obj/machinery/computer/skills{icon_state = "medlaptop"},/turf/simulated/floor,/area/crew_quarters/heads/chief) "bYO" = (/obj/machinery/power/apc{dir = 1; name = "north bump"; pixel_x = 0; pixel_y = 24},/obj/structure/cable/green{d2 = 2; icon_state = "0-2"},/turf/simulated/floor,/area/crew_quarters/heads/chief) "bYP" = (/obj/machinery/alarm{pixel_y = 23},/obj/machinery/atmospherics/unary/vent_scrubber/on,/turf/simulated/floor,/area/crew_quarters/heads/chief) -"bYQ" = (/obj/structure/bed/chair/comfy/beige{dir = 8},/obj/effect/landmark/start{name = "Atmospheric Technician"},/turf/simulated/floor/carpet,/area/engineering/break_room) +"bYQ" = (/obj/machinery/door/firedoor/border_only,/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/door/airlock/glass_engineering{name = "Engineering Break Room"; req_one_access = list(10)},/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor,/area/engineering/break_room) "bYR" = (/obj/structure/table/woodentable,/obj/item/weapon/paper_bin{pixel_x = -3; pixel_y = 7},/turf/simulated/floor/carpet,/area/engineering/break_room) "bYS" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 0; pixel_y = 32},/obj/machinery/atmospherics/pipe/simple/heat_exchanging/junction,/turf/simulated/floor/engine/vacuum,/area/rnd/mixing) "bYT" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 6},/turf/simulated/floor/carpet,/area/engineering/break_room) @@ -5367,7 +5366,7 @@ "bZk" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/turf/simulated/floor,/area/medical/sleeper) "bZl" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor,/area/medical/sleeper) "bZm" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/unary/vent_pump/on{dir = 1},/turf/simulated/floor,/area/medical/sleeper) -"bZn" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/machinery/door/firedoor/border_only,/obj/machinery/door/blast/regular{density = 0; icon_state = "pdoor0"; id = "Biohazard"; name = "Biohazard Shutter"; opacity = 0},/turf/simulated/floor/plating,/area/rnd/xenobiology/xenoflora) +"bZn" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/engineering{name = "Engineering Washroom"; req_one_access = list(10)},/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor,/area/engineering/break_room) "bZo" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor{icon_state = "white"},/area/medical/medbay4) "bZp" = (/obj/structure/disposalpipe/junction{dir = 1; icon_state = "pipe-j2"},/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay4) "bZq" = (/obj/structure/sign/greencross,/turf/simulated/wall,/area/medical/medbay4) @@ -5382,7 +5381,7 @@ "bZz" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/maintenance{name = "Medbay Patient Wing Maintenance Access"; req_access = list(5)},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/plating,/area/medical/patient_wing) "bZA" = (/turf/simulated/wall,/area/medical/patient_c) "bZB" = (/obj/machinery/button/remote/blast_door{id = "misclab"; name = "Test Chamber Blast Doors"; pixel_x = 6; pixel_y = 30; req_access = list(47)},/obj/item/weapon/stool/padded,/turf/simulated/floor{icon_state = "white"},/area/rnd/misc_lab) -"bZC" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/machinery/door/firedoor/border_only,/obj/machinery/door/blast/regular{density = 0; icon_state = "pdoor0"; id = "Biohazard"; name = "Biohazard Shutter"; opacity = 0},/turf/simulated/floor/plating,/area/rnd/xenobiology/xenoflora) +"bZC" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/machinery/door/firedoor/border_only,/obj/machinery/door/blast/regular{density = 0; icon_state = "pdoor0"; id = "Biohazard"; name = "Biohazard Shutter"; opacity = 0},/turf/simulated/floor/plating,/area/rnd/xenobiology/xenoflora_storage) "bZD" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 9},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/plating,/area/maintenance/research_port) "bZE" = (/obj/machinery/light,/obj/machinery/atmospherics/portables_connector{dir = 1},/turf/simulated/floor{icon_state = "white"},/area/rnd/misc_lab) "bZF" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 5},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/plating,/area/maintenance/research_port) @@ -5392,7 +5391,7 @@ "bZJ" = (/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -29},/obj/structure/closet/bombcloset,/turf/simulated/floor{icon_state = "white"},/area/rnd/misc_lab) "bZK" = (/obj/machinery/firealarm{dir = 4; pixel_x = 24},/obj/machinery/light,/obj/machinery/suit_storage_unit/standard_unit,/turf/simulated/floor{icon_state = "white"},/area/rnd/misc_lab) "bZL" = (/obj/machinery/atmospherics/pipe/simple/heat_exchanging,/turf/simulated/floor/engine/vacuum,/area/rnd/mixing) -"bZM" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/machinery/door/firedoor/border_only,/obj/machinery/door/blast/regular{density = 0; icon_state = "pdoor0"; id = "Biohazard"; name = "Biohazard Shutter"; opacity = 0},/obj/machinery/atmospherics/pipe/simple/hidden/yellow,/turf/simulated/floor/plating,/area/rnd/xenobiology/xenoflora) +"bZM" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/machinery/door/firedoor/border_only,/obj/machinery/door/blast/regular{density = 0; icon_state = "pdoor0"; id = "Biohazard"; name = "Biohazard Shutter"; opacity = 0},/turf/simulated/floor/plating,/area/rnd/xenobiology/xenoflora_storage) "bZN" = (/obj/machinery/door/firedoor,/obj/structure/disposalpipe/segment,/obj/machinery/door/blast/shutters{density = 0; dir = 2; icon_state = "shutter0"; id = "medbayquar"; name = "Medbay Emergency Quarantine Shutters"; opacity = 0},/turf/simulated/floor{tag = "icon-whiteblue (NORTHWEST)"; icon_state = "whiteblue"; dir = 9},/area/hallway/primary/starboard) "bZO" = (/obj/machinery/door/airlock/glass_research{autoclose = 0; frequency = 1379; glass = 1; icon_state = "door_locked"; id_tag = "tox_airlock_exterior"; locked = 1; name = "Mixing Room Exterior Airlock"; req_access = list(7)},/turf/simulated/floor/engine,/area/rnd/mixing) "bZP" = (/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor{dir = 8; icon_state = "warnwhite"},/area/rnd/mixing) @@ -5414,7 +5413,7 @@ "caf" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 5},/turf/simulated/floor,/area/crew_quarters/heads/chief) "cag" = (/turf/simulated/floor{dir = 2; icon_state = "yellowcorner"},/area/engineering/foyer) "cah" = (/obj/structure/disposalpipe/sortjunction{sortType = "CE Office"; name = "CE Office"},/turf/simulated/floor,/area/engineering/foyer) -"cai" = (/obj/structure/grille,/obj/machinery/door/firedoor/border_only,/obj/structure/cable/green{d2 = 4; icon_state = "0-4"},/obj/structure/window/reinforced/polarized{dir = 1},/obj/structure/window/reinforced/polarized{dir = 8},/obj/structure/window/reinforced/polarized,/turf/simulated/floor/plating,/area/crew_quarters/heads/chief) +"cai" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/machinery/door/firedoor/border_only,/obj/machinery/door/blast/regular{density = 0; icon_state = "pdoor0"; id = "Biohazard"; name = "Biohazard Shutter"; opacity = 0},/turf/simulated/floor/plating,/area/rnd/xenobiology/xenoflora) "caj" = (/obj/structure/table/woodentable,/obj/item/weapon/folder/yellow,/turf/simulated/floor/carpet,/area/engineering/break_room) "cak" = (/obj/structure/table/woodentable,/obj/item/weapon/reagent_containers/food/snacks/chips,/turf/simulated/floor/carpet,/area/engineering/break_room) "cal" = (/obj/machinery/newscaster{pixel_x = 28; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/carpet,/area/engineering/break_room) @@ -5441,7 +5440,7 @@ "caG" = (/obj/structure/table/woodentable,/obj/item/device/flashlight/lamp/green,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/wood,/area/medical/psych) "caH" = (/obj/structure/table/woodentable,/obj/machinery/computer/med_data/laptop,/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 8},/turf/simulated/floor/wood,/area/medical/psych) "caI" = (/turf/simulated/wall,/area/medical/psych) -"caJ" = (/obj/structure/grille,/obj/machinery/door/firedoor/border_only,/obj/structure/cable/green{d2 = 8; icon_state = "0-8"},/obj/structure/cable/green{d2 = 4; icon_state = "0-4"},/obj/structure/window/reinforced/polarized{dir = 1},/obj/structure/window/reinforced/polarized,/turf/simulated/floor/plating,/area/crew_quarters/heads/chief) +"caJ" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/machinery/door/firedoor/border_only,/obj/machinery/door/blast/regular{density = 0; icon_state = "pdoor0"; id = "Biohazard"; name = "Biohazard Shutter"; opacity = 0},/turf/simulated/floor/plating,/area/rnd/xenobiology/xenoflora) "caK" = (/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 5},/turf/simulated/floor{icon_state = "dark"},/area/medical/biostorage) "caL" = (/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/camera/network/research{c_tag = "Research Division South"; dir = 1},/turf/simulated/floor{icon_state = "white"},/area/rnd/research) "caM" = (/obj/machinery/atmospherics/pipe/simple/heat_exchanging{dir = 5},/turf/simulated/floor/engine/vacuum,/area/rnd/mixing) @@ -5467,8 +5466,8 @@ "cbg" = (/obj/machinery/door/airlock/maintenance{req_access = list(12)},/obj/structure/disposalpipe/segment,/obj/effect/decal/cleanable/dirt,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/maintenance/cargo) "cbh" = (/obj/effect/decal/cleanable/spiderling_remains,/obj/machinery/atmospherics/valve,/turf/simulated/floor/plating,/area/maintenance/research_starboard) "cbi" = (/obj/machinery/computer/security/telescreen{desc = "Used to monitor the engine room."; layer = 3.3; name = "Engine Monitor"; network = list("Engine"); pixel_x = 0; pixel_y = 28},/obj/machinery/computer/station_alert/all,/turf/simulated/floor,/area/crew_quarters/heads/chief) -"cbj" = (/obj/structure/grille,/obj/machinery/door/firedoor/border_only,/obj/structure/cable/green{d2 = 8; icon_state = "0-8"},/obj/structure/cable/green{d2 = 4; icon_state = "0-4"},/obj/structure/window/reinforced/polarized{dir = 1},/turf/simulated/floor/plating,/area/crew_quarters/heads/chief) -"cbk" = (/obj/structure/bed/chair/comfy/beige{dir = 4; icon_state = "comfychair_preview"; tag = "icon-comfychair (EAST)"},/obj/effect/landmark/start{name = "Station Engineer"},/turf/simulated/floor/carpet,/area/engineering/break_room) +"cbj" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/machinery/door/firedoor/border_only,/obj/machinery/door/blast/regular{density = 0; icon_state = "pdoor0"; id = "Biohazard"; name = "Biohazard Shutter"; opacity = 0},/turf/simulated/floor/plating,/area/rnd/xenobiology/xenoflora) +"cbk" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/machinery/door/firedoor/border_only,/obj/machinery/door/blast/regular{density = 0; icon_state = "pdoor0"; id = "Biohazard"; name = "Biohazard Shutter"; opacity = 0},/obj/machinery/atmospherics/pipe/simple/hidden/yellow,/turf/simulated/floor/plating,/area/rnd/xenobiology/xenoflora) "cbl" = (/obj/machinery/airlock_sensor{frequency = 1379; id_tag = "eng_eva_sensor"; pixel_x = 0; pixel_y = 25},/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 4; frequency = 1379; id_tag = "eng_eva_pump"},/turf/simulated/floor{dir = 9; icon_state = "floorgrimecaution"},/area/maintenance/atmos_control) "cbm" = (/obj/machinery/door/airlock/engineering{name = "Engineering Supplies"; req_one_access = list(11,24)},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/door/firedoor,/turf/simulated/floor{icon_state = "yellowfull"; dir = 8},/area/engineering/break_room) "cbn" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/maintenance{name = "Medbay Diagnostics Maintenance Access"; req_access = list(5)},/turf/simulated/floor/plating,/area/medical/sleeper) @@ -5512,7 +5511,7 @@ "cbZ" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/turf/simulated/floor/plating,/area/maintenance/substation/research) "cca" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating,/area/maintenance/research_port) "ccb" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 5},/turf/simulated/floor{icon_state = "freezerfloor"},/area/medical/patient_wing) -"ccc" = (/obj/structure/grille,/obj/machinery/door/firedoor/border_only,/obj/structure/cable/green,/obj/structure/cable/green{d2 = 8; icon_state = "0-8"},/obj/structure/window/reinforced/polarized,/obj/structure/window/reinforced/polarized{dir = 4},/turf/simulated/floor/plating,/area/crew_quarters/heads/chief) +"ccc" = (/obj/structure/grille,/obj/machinery/door/firedoor/border_only,/obj/structure/cable/green{d2 = 4; icon_state = "0-4"},/obj/structure/window/reinforced/polarized{dir = 1},/obj/structure/window/reinforced/polarized{dir = 8},/obj/structure/window/reinforced/polarized,/turf/simulated/floor/plating,/area/crew_quarters/heads/chief) "ccd" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'HIGH VOLTAGE'"; icon_state = "shock"; name = "HIGH VOLTAGE"; pixel_y = 0},/turf/simulated/wall,/area/maintenance/substation/research) "cce" = (/obj/item/device/radio/intercom{dir = 1; name = "Station Intercom (General)"; pixel_y = -28},/obj/structure/bed/roller,/obj/machinery/camera/network/medbay{c_tag = "Medbay Scanning"; dir = 1},/turf/simulated/floor,/area/medical/sleeper) "ccf" = (/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 4},/obj/structure/disposalpipe/segment,/turf/simulated/floor{dir = 2; icon_state = "whitegreen"},/area/medical/patient_wing) @@ -5540,7 +5539,7 @@ "ccB" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 1},/obj/machinery/atmospherics/pipe/simple/hidden/purple{dir = 4},/turf/simulated/floor{icon_state = "white"},/area/rnd/xenobiology) "ccC" = (/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/manifold4w/hidden/supply,/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/purple{dir = 6},/turf/simulated/floor{icon_state = "white"},/area/rnd/xenobiology) "ccD" = (/obj/machinery/light/small,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/purple{dir = 4},/turf/simulated/floor/plating,/area/maintenance/research_starboard) -"ccE" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/engineering/engine_eva) +"ccE" = (/obj/structure/grille,/obj/machinery/door/firedoor/border_only,/obj/structure/cable/green{d2 = 8; icon_state = "0-8"},/obj/structure/cable/green{d2 = 4; icon_state = "0-4"},/obj/structure/window/reinforced/polarized{dir = 1},/obj/structure/window/reinforced/polarized,/turf/simulated/floor/plating,/area/crew_quarters/heads/chief) "ccF" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/purple{dir = 9},/turf/simulated/floor/plating,/area/maintenance/research_starboard) "ccG" = (/obj/structure/table/rack{dir = 1},/obj/item/weapon/extinguisher,/obj/item/device/flashlight,/obj/machinery/alarm{pixel_y = 22},/turf/simulated/floor/plating,/area/maintenance/research_starboard) "ccH" = (/obj/structure/cable/green{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor,/area/crew_quarters/heads/chief) @@ -5607,13 +5606,13 @@ "cdQ" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable/green{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 1},/turf/simulated/floor/carpet,/area/engineering/break_room) "cdR" = (/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 1},/obj/machinery/light/small,/turf/simulated/floor{dir = 2; icon_state = "whitegreen"},/area/rnd/xenobiology) "cdS" = (/turf/simulated/wall/r_wall,/area/rnd/xenobiology/xenoflora) -"cdT" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/firedoor/border_only,/obj/structure/window/reinforced,/turf/simulated/floor/plating,/area/rnd/xenobiology) -"cdU" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/firedoor/border_only,/obj/structure/window/reinforced,/obj/machinery/atmospherics/pipe/simple/hidden/universal{dir = 4},/turf/simulated/floor/plating,/area/rnd/xenobiology/xenoflora) +"cdT" = (/obj/structure/grille,/obj/machinery/door/firedoor/border_only,/obj/structure/cable/green{d2 = 8; icon_state = "0-8"},/obj/structure/cable/green{d2 = 4; icon_state = "0-4"},/obj/structure/window/reinforced/polarized{dir = 1},/turf/simulated/floor/plating,/area/crew_quarters/heads/chief) +"cdU" = (/obj/structure/grille,/obj/machinery/door/firedoor/border_only,/obj/structure/cable/green,/obj/structure/cable/green{d2 = 8; icon_state = "0-8"},/obj/structure/window/reinforced/polarized,/obj/structure/window/reinforced/polarized{dir = 4},/turf/simulated/floor/plating,/area/crew_quarters/heads/chief) "cdV" = (/obj/machinery/door/blast/shutters{density = 0; dir = 2; icon_state = "shutter0"; id = "medbayrecquar"; name = "Medbay Emergency Quarantine Shutters"; opacity = 0},/obj/structure/cable/green{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor,/area/medical/reception) "cdW" = (/obj/machinery/door/blast/shutters{density = 0; dir = 2; icon_state = "shutter0"; id = "medbayrecquar"; name = "Medbay Emergency Quarantine Shutters"; opacity = 0},/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 10},/turf/simulated/floor,/area/medical/reception) "cdX" = (/obj/machinery/atmospherics/pipe/simple/visible{icon_state = "intact"; dir = 6},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor/plating,/area/maintenance/research_starboard) -"cdY" = (/obj/structure/bed/chair/comfy/beige{dir = 1; icon_state = "comfychair_preview"; tag = "icon-comfychair (NORTH)"},/obj/effect/landmark/start{name = "Station Engineer"},/turf/simulated/floor/carpet,/area/engineering/break_room) -"cdZ" = (/obj/structure/bed/chair/comfy/beige{dir = 1; icon_state = "comfychair_preview"; tag = "icon-comfychair (NORTH)"},/obj/effect/landmark/start{name = "Atmospheric Technician"},/turf/simulated/floor/carpet,/area/engineering/break_room) +"cdY" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/engineering/engine_eva) +"cdZ" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/firedoor/border_only,/obj/structure/window/reinforced,/turf/simulated/floor/plating,/area/rnd/xenobiology) "cea" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 0; pixel_y = -32},/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 8; frequency = 1379; id_tag = "toxin_test_pump"},/obj/machinery/airlock_sensor{frequency = 1379; id_tag = "toxin_test_sensor"; pixel_x = 0; pixel_y = 16},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 8},/area/maintenance/research_starboard) "ceb" = (/obj/machinery/firealarm{dir = 4; pixel_x = 24},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/camera/network/engineering{c_tag = "Engineering Break Room"; dir = 8},/turf/simulated/floor/carpet,/area/engineering/break_room) "cec" = (/obj/machinery/alarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/camera/network/medbay{c_tag = "Medbay Surgery Access"; dir = 4},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay4) @@ -5676,15 +5675,15 @@ "cfh" = (/obj/machinery/atmospherics/portables_connector,/obj/machinery/portable_atmospherics/hydroponics{closed_system = 1; name = "isolation tray"},/turf/simulated/floor{icon_state = "white"},/area/rnd/xenobiology/xenoflora) "cfi" = (/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 1; frequency = 1379; id_tag = "eng_eva_pump"},/obj/machinery/camera/network/security{c_tag = "Engineering Airlock Access"; dir = 1},/turf/simulated/floor{dir = 6; icon_state = "floorgrimecaution"},/area/maintenance/atmos_control) "cfj" = (/obj/structure/table/rack{dir = 8; layer = 2.9},/obj/item/clothing/shoes/magboots,/obj/item/clothing/mask/breath,/obj/item/weapon/rig/ce/equipped,/turf/simulated/floor{dir = 8; icon_state = "neutralfull"},/area/crew_quarters/heads/chief) -"cfk" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/construction) +"cfk" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/firedoor/border_only,/obj/structure/window/reinforced,/obj/machinery/atmospherics/pipe/simple/hidden/universal{dir = 4},/turf/simulated/floor/plating,/area/rnd/xenobiology/xenoflora) "cfl" = (/obj/item/device/radio/intercom{layer = 4; name = "Station Intercom (General)"; pixel_y = -29},/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/camera/network/engineering{c_tag = "Engineering - CE's Office"; dir = 1},/turf/simulated/floor,/area/crew_quarters/heads/chief) -"cfm" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/engineering{name = "Engineering EVA Storage"; req_access = list(12); req_one_access = list(11,24)},/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{icon_state = "floorgrime"},/area/engineering/engine_eva) +"cfm" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/construction) "cfn" = (/obj/machinery/botany/extractor,/turf/simulated/floor{icon_state = "white"},/area/rnd/xenobiology/xenoflora) -"cfo" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/glass_engineering{name = "Engineering EVA Storage"; req_one_access = list(11,24)},/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/red{tag = "icon-intact (EAST)"; icon_state = "intact"; dir = 4},/turf/simulated/floor,/area/engineering/engine_eva) +"cfo" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/engineering{name = "Engineering EVA Storage"; req_access = list(12); req_one_access = list(11,24)},/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{icon_state = "floorgrime"},/area/engineering/engine_eva) "cfp" = (/obj/machinery/light{icon_state = "tube1"; dir = 4},/obj/machinery/smartfridge,/turf/simulated/floor{dir = 4; icon_state = "whitegreen"},/area/rnd/xenobiology/xenoflora) "cfq" = (/obj/structure/closet/emcloset,/turf/simulated/floor/plating{dir = 2; icon_state = "warnplatecorner"},/area/maintenance/research_starboard) "cfr" = (/obj/machinery/atmospherics/pipe/simple/visible,/obj/effect/decal/cleanable/dirt,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plating{dir = 2; icon_state = "warnplate"},/area/maintenance/research_starboard) -"cfs" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/construction) +"cfs" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/glass_engineering{name = "Engineering EVA Storage"; req_one_access = list(11,24)},/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/red{tag = "icon-intact (EAST)"; icon_state = "intact"; dir = 4},/turf/simulated/floor,/area/engineering/engine_eva) "cft" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating/airless,/area/rnd/test_area) "cfu" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/camera/network/medbay{c_tag = "Medbay Surgery Observation"},/turf/simulated/floor{dir = 1; icon_state = "blue"},/area/medical/surgeryobs) "cfv" = (/obj/machinery/light/small,/turf/simulated/floor/plating/airless,/area/rnd/test_area) @@ -5698,11 +5697,11 @@ "cfD" = (/obj/machinery/light/small{dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor{icon_state = "floorgrime"},/area/maintenance/atmos_control) "cfE" = (/obj/structure/dispenser{phorontanks = 0},/turf/simulated/floor,/area/engineering/engine_eva) "cfF" = (/obj/structure/sign/pods,/turf/simulated/wall/r_wall,/area/engineering/engine_eva) -"cfG" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/glass_engineering{name = "Engineering EVA Storage"; req_one_access = list(11,24)},/turf/simulated/floor,/area/engineering/engine_eva) +"cfG" = (/obj/structure/window/basic{dir = 8},/obj/machinery/shower{dir = 1},/obj/machinery/door/window/northright{dir = 8; name = "Shower"; req_access = list()},/obj/structure/curtain/open/shower/engineering,/turf/simulated/floor{icon_state = "freezerfloor"},/area/crew_quarters/sleep/engi_wash) "cfH" = (/obj/machinery/portable_atmospherics/canister/oxygen,/obj/machinery/atmospherics/unary/vent_scrubber/on,/turf/simulated/floor,/area/engineering/engine_eva) "cfI" = (/obj/machinery/door/airlock/external{frequency = 1379; icon_state = "door_locked"; id_tag = "toxin_test_inner"; locked = 1; name = "Engineering External Access"; req_access = newlist(); req_one_access = list(7,13)},/obj/machinery/atmospherics/pipe/simple/visible{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor/plating,/area/maintenance/research_starboard) "cfJ" = (/obj/machinery/atmospherics/portables_connector,/obj/machinery/portable_atmospherics/powered/scrubber,/turf/simulated/floor{icon_state = "red"; dir = 1},/area/engineering/foyer) -"cfK" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/machinery/door/firedoor/border_only,/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating,/area/engineering/locker_room) +"cfK" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/construction) "cfL" = (/obj/machinery/access_button{command = "cycle_interior"; frequency = 1379; master_tag = "toxin_test_airlock"; name = "interior access button"; pixel_x = 20; pixel_y = 20; req_access = newlist(); req_one_access = list(7,13)},/obj/machinery/atmospherics/pipe/simple/visible{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 4},/area/maintenance/research_starboard) "cfM" = (/obj/machinery/embedded_controller/radio/airlock/airlock_controller{tag_airpump = "toxin_test_pump"; tag_exterior_door = "toxin_test_outer"; frequency = 1379; id_tag = "toxin_test_airlock"; tag_interior_door = "toxin_test_inner"; pixel_x = 0; pixel_y = 25; req_access = list(13); tag_chamber_sensor = "toxin_test_sensor"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 4},/area/maintenance/research_starboard) "cfN" = (/obj/machinery/newscaster{pixel_x = 31; pixel_y = 3},/turf/simulated/floor{dir = 2; icon_state = "yellowcorner"},/area/engineering/foyer) @@ -5723,28 +5722,28 @@ "cgc" = (/obj/structure/closet/secure_closet/personal/patient,/obj/machinery/alarm{dir = 1; icon_state = "alarm0"; pixel_y = -22},/turf/simulated/floor{dir = 7; icon_state = "whitered"},/area/medical/ward) "cgd" = (/obj/structure/closet/secure_closet/personal/patient,/obj/machinery/firealarm{dir = 1; pixel_x = 0; pixel_y = -24},/obj/machinery/atmospherics/unary/vent_pump/on{dir = 1},/turf/simulated/floor{dir = 7; icon_state = "whitered"},/area/medical/ward) "cge" = (/obj/machinery/light,/obj/machinery/camera/network/research{c_tag = "Research - Toxins Test Chamber South"; dir = 1; network = list("Research","Toxins Test Area")},/turf/simulated/floor/airless,/area/rnd/test_area) -"cgf" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/machinery/light,/obj/machinery/door/firedoor/border_only,/obj/structure/window/reinforced{dir = 1},/obj/machinery/atmospherics/pipe/simple/hidden/purple{dir = 4},/turf/simulated/floor/plating,/area/rnd/xenobiology) +"cgf" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/glass_engineering{name = "Engineering EVA Storage"; req_one_access = list(11,24)},/turf/simulated/floor,/area/engineering/engine_eva) "cgg" = (/obj/machinery/vending/snack,/turf/simulated/floor{icon_state = "cafeteria"; dir = 5},/area/engineering/break_room) "cgh" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/obj/machinery/atmospherics/unary/vent_pump/on{dir = 4},/turf/simulated/floor{dir = 2; icon_state = "whitegreen"},/area/medical/patient_wing) "cgi" = (/obj/structure/bed/chair/comfy/brown,/obj/effect/landmark/start{name = "Psychiatrist"},/turf/simulated/floor{icon_state = "bcarpet06"},/area/medical/psych) -"cgj" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/machinery/light,/obj/machinery/door/firedoor/border_only,/obj/structure/window/reinforced{dir = 1},/obj/machinery/atmospherics/pipe/simple/hidden/purple{dir = 4},/turf/simulated/floor/plating,/area/rnd/xenobiology/xenoflora) +"cgj" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/machinery/door/firedoor/border_only,/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating,/area/engineering/locker_room) "cgk" = (/obj/item/weapon/storage/toolbox/emergency,/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor{icon_state = "dark"},/area/medical/biostorage) "cgl" = (/obj/structure/table/rack,/obj/item/clothing/suit/radiation,/obj/item/clothing/head/radiation,/turf/simulated/floor{icon_state = "dark"},/area/medical/biostorage) -"cgm" = (/obj/machinery/door/firedoor/border_only,/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/door/airlock/engineering{name = "Construction Area"; req_access = list(32)},/turf/simulated/floor/plating,/area/construction) +"cgm" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/machinery/light,/obj/machinery/door/firedoor/border_only,/obj/structure/window/reinforced{dir = 1},/obj/machinery/atmospherics/pipe/simple/hidden/purple{dir = 4},/turf/simulated/floor/plating,/area/rnd/xenobiology) "cgn" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 4},/turf/simulated/floor{icon_state = "freezerfloor"},/area/medical/patient_wing) -"cgo" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/machinery/door/firedoor/border_only,/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating,/area/engineering/engine_eva) +"cgo" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/machinery/light,/obj/machinery/door/firedoor/border_only,/obj/structure/window/reinforced{dir = 1},/obj/machinery/atmospherics/pipe/simple/hidden/purple{dir = 4},/turf/simulated/floor/plating,/area/rnd/xenobiology/xenoflora) "cgp" = (/obj/machinery/door/blast/regular{density = 0; icon_state = "pdoor0"; id = "Biohazard"; name = "Biohazard Shutter"; opacity = 0},/obj/machinery/atmospherics/pipe/simple/hidden/purple{dir = 4},/turf/simulated/floor{icon_state = "white"},/area/rnd/xenobiology) "cgq" = (/obj/structure/cable{d2 = 2; icon_state = "0-2"; pixel_y = 0},/obj/machinery/power/terminal{dir = 8},/turf/simulated/floor/plating,/area/maintenance/substation/engineering) "cgr" = (/obj/machinery/door/blast/regular{density = 0; icon_state = "pdoor0"; id = "Biohazard"; name = "Biohazard Shutter"; opacity = 0},/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/manifold/hidden/purple{dir = 8},/turf/simulated/floor{icon_state = "white"},/area/rnd/xenobiology) "cgs" = (/turf/simulated/wall/r_wall,/area/maintenance/substation/engineering) "cgt" = (/obj/structure/disposalpipe/segment,/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/binary/pump{dir = 8; name = "Isolation to Waste"},/turf/simulated/floor{tag = "icon-whitegreen_v (SOUTHWEST)"; icon_state = "whitegreen_v"; dir = 10},/area/rnd/xenobiology/xenoflora) -"cgu" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/glass_engineering{name = "Engineering Locker Room"; req_one_access = list(11,24)},/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor,/area/engineering/locker_room) +"cgu" = (/obj/machinery/door/firedoor/border_only,/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/door/airlock/engineering{name = "Construction Area"; req_access = list(32)},/turf/simulated/floor/plating,/area/construction) "cgv" = (/obj/structure/disposalpipe/segment,/turf/simulated/wall/r_wall,/area/medical/virology) "cgw" = (/obj/structure/disposalpipe/trunk{dir = 1},/obj/structure/disposaloutlet,/turf/simulated/floor/plating/airless,/area/rnd/xenobiology) "cgx" = (/obj/machinery/atmospherics/pipe/simple/visible{tag = "icon-intact (NORTHWEST)"; icon_state = "intact"; dir = 9},/turf/simulated/floor{dir = 6; icon_state = "whitegreen"},/area/rnd/xenobiology/xenoflora) "cgy" = (/turf/simulated/floor{icon_state = "white"},/area/rnd/xenobiology/xenoflora_storage) "cgz" = (/obj/machinery/atmospherics/unary/vent_pump/on,/turf/simulated/floor{dir = 4; icon_state = "whitegreen"},/area/rnd/xenobiology/xenoflora_storage) -"cgA" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/glass_engineering{name = "Engineering Locker Room"; req_one_access = list(11,24)},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor,/area/engineering/locker_room) +"cgA" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/machinery/door/firedoor/border_only,/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating,/area/engineering/engine_eva) "cgB" = (/obj/machinery/door/firedoor,/obj/structure/disposalpipe/segment,/obj/machinery/holosign/surgery,/obj/machinery/door/airlock/glass_medical{id_tag = "Surgery"; name = "Pre-Op Prep Room"; req_access = list(5)},/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay4) "cgC" = (/obj/machinery/door/firedoor,/obj/machinery/holosign/surgery,/obj/machinery/door/airlock/glass_medical{id_tag = "Surgery"; name = "Pre-Op Prep Room"; req_access = list(5)},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor{icon_state = "white"},/area/medical/medbay4) "cgD" = (/obj/machinery/atmospherics/unary/vent_pump/on,/turf/simulated/floor{dir = 2; icon_state = "whitegreen"},/area/rnd/xenobiology/xenoflora) @@ -5762,7 +5761,7 @@ "cgP" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'HIGH VOLTAGE'"; icon_state = "shock"; name = "HIGH VOLTAGE"; pixel_y = 0},/turf/simulated/wall/r_wall,/area/maintenance/starboardsolar) "cgQ" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating/airless,/area/rnd/test_area) "cgR" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/airlock/engineering{name = "Science Substation"; req_one_access = list(11,24,7)},/obj/machinery/door/firedoor,/obj/structure/disposalpipe/segment,/turf/simulated/floor/plating,/area/maintenance/substation/research) -"cgS" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/maintenance/starboardsolar) +"cgS" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/glass_engineering{name = "Engineering Locker Room"; req_one_access = list(11,24)},/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor,/area/engineering/locker_room) "cgT" = (/turf/simulated/floor/plating,/area/construction) "cgU" = (/turf/simulated/floor,/area/construction) "cgV" = (/obj/structure/grille/broken,/turf/simulated/floor/plating,/area/maintenance/research_port) @@ -5830,11 +5829,11 @@ "cif" = (/obj/structure/reagent_dispensers/fueltank,/obj/effect/decal/cleanable/blood/oil,/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/cobweb,/turf/simulated/floor/plating,/area/maintenance/research_port) "cig" = (/obj/machinery/atmospherics/pipe/simple/hidden/cyan,/turf/simulated/floor,/area/engineering/foyer) "cih" = (/obj/machinery/hologram/holopad,/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor,/area/engineering/foyer) -"cii" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/machinery/door/firedoor/border_only,/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating,/area/engineering/atmos) +"cii" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/glass_engineering{name = "Engineering Locker Room"; req_one_access = list(11,24)},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor,/area/engineering/locker_room) "cij" = (/obj/machinery/power/apc{dir = 8; name = "west bump"; pixel_x = -24},/obj/structure/cable/green{d2 = 2; icon_state = "0-2"},/obj/structure/closet/crate/hydroponics/prespawned,/obj/machinery/camera/network/research{c_tag = "Xenoflora Storage"; dir = 4},/turf/simulated/floor{dir = 8; icon_state = "whitegreen"},/area/rnd/xenobiology/xenoflora_storage) "cik" = (/obj/machinery/firealarm{dir = 4; layer = 3.3; pixel_x = 26},/turf/simulated/floor{dir = 2; icon_state = "yellowcorner"},/area/engineering/foyer) "cil" = (/obj/structure/closet/secure_closet/engineering_personal,/obj/item/weapon/tank/emergency_oxygen/engi,/obj/machinery/atmospherics/unary/vent_scrubber/on,/turf/simulated/floor,/area/engineering/locker_room) -"cim" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/construction) +"cim" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/maintenance/starboardsolar) "cin" = (/obj/structure/closet/secure_closet/engineering_personal,/obj/machinery/light{dir = 1},/obj/item/weapon/tank/emergency_oxygen/engi,/turf/simulated/floor,/area/engineering/locker_room) "cio" = (/obj/structure/closet/secure_closet/engineering_personal,/obj/item/weapon/tank/emergency_oxygen/engi,/turf/simulated/floor,/area/engineering/locker_room) "cip" = (/obj/structure/closet/secure_closet/engineering_personal,/obj/item/weapon/tank/emergency_oxygen/engi,/obj/machinery/alarm{pixel_y = 22},/turf/simulated/floor,/area/engineering/locker_room) @@ -5863,7 +5862,7 @@ "ciM" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 4},/turf/simulated/floor{icon_state = "blue"; dir = 8},/area/medical/surgeryprep) "ciN" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor,/area/medical/surgeryprep) "ciO" = (/obj/structure/disposalpipe/segment,/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 8},/turf/simulated/floor{icon_state = "blue"; dir = 4},/area/medical/surgeryprep) -"ciP" = (/obj/machinery/navbeacon{codes_txt = "delivery;dir=4"; freq = 1400; location = "Engineering"},/obj/structure/plasticflaps{opacity = 1},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor{icon_state = "bot"},/area/engineering/foyer) +"ciP" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/machinery/door/firedoor/border_only,/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating,/area/engineering/atmos) "ciQ" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/red{tag = "icon-intact (EAST)"; icon_state = "intact"; dir = 4},/turf/simulated/floor,/area/engineering/engine_eva) "ciR" = (/obj/machinery/atmospherics/unary/vent_scrubber/on,/turf/simulated/floor{icon_state = "white"},/area/medical/surgery2) "ciS" = (/turf/simulated/floor{icon_state = "white"},/area/medical/surgery2) @@ -5883,15 +5882,15 @@ "cjg" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 4},/turf/simulated/floor{tag = "icon-whitegreen_v (SOUTHWEST)"; icon_state = "whitegreen_v"; dir = 10},/area/rnd/xenobiology/xenoflora_storage) "cjh" = (/obj/structure/cable/green{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/plating,/area/maintenance/atmos_control) "cji" = (/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/manifold/hidden/red,/turf/simulated/floor,/area/engineering/foyer) -"cjj" = (/obj/machinery/atmospherics/pipe/simple/hidden/cyan{dir = 4; icon_state = "intact"; tag = "icon-intact-f (EAST)"},/obj/machinery/requests_console{announcementConsole = 0; department = "Engineering"; departmentType = 3; name = "Engineering RC"; pixel_x = 0; pixel_y = -32},/turf/simulated/floor,/area/engineering/foyer) +"cjj" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/construction) "cjk" = (/obj/machinery/atmospherics/pipe/simple/hidden/purple{dir = 4},/obj/machinery/atmospherics/unary/vent_pump/on{dir = 1},/turf/simulated/floor{icon_state = "white"},/area/rnd/xenobiology) -"cjl" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/rnd/xenobiology/xenoflora) +"cjl" = (/obj/machinery/navbeacon{codes_txt = "delivery;dir=4"; freq = 1400; location = "Engineering"},/obj/structure/plasticflaps{opacity = 1},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor{icon_state = "bot"},/area/engineering/foyer) "cjm" = (/obj/machinery/alarm{dir = 1; icon_state = "alarm0"; pixel_y = -22},/obj/machinery/atmospherics/pipe/manifold/hidden/purple,/turf/simulated/floor{icon_state = "white"},/area/rnd/xenobiology) -"cjn" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/rnd/xenobiology/xenoflora) +"cjn" = (/obj/machinery/atmospherics/pipe/simple/hidden/cyan{dir = 4; icon_state = "intact"; tag = "icon-intact-f (EAST)"},/obj/machinery/requests_console{announcementConsole = 0; department = "Engineering"; departmentType = 3; name = "Engineering RC"; pixel_x = 0; pixel_y = -32},/turf/simulated/floor,/area/engineering/foyer) "cjo" = (/obj/machinery/atmospherics/pipe/simple/hidden/purple{dir = 4},/turf/simulated/floor{icon_state = "hydrofloor"},/area/rnd/xenobiology/xenoflora) "cjp" = (/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/red{tag = "icon-intact (NORTHWEST)"; icon_state = "intact"; dir = 9},/turf/simulated/floor,/area/engineering/foyer) "cjq" = (/obj/machinery/power/apc{dir = 4; name = "east bump"; pixel_x = 24},/obj/structure/cable/green{d2 = 8; icon_state = "0-8"},/obj/machinery/camera/network/engineering{c_tag = "Engineering Foyer"; dir = 8},/turf/simulated/floor{dir = 2; icon_state = "yellowcorner"},/area/engineering/foyer) -"cjr" = (/obj/structure/window/basic{dir = 8},/obj/machinery/shower{dir = 1},/obj/machinery/door/window/northright{name = "Shower"; req_access = list()},/obj/structure/curtain/open/shower/engineering,/turf/simulated/floor{icon_state = "freezerfloor"},/area/crew_quarters/sleep/engi_wash) +"cjr" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/rnd/xenobiology/xenoflora) "cjs" = (/obj/structure/window/basic{dir = 4},/obj/machinery/shower{dir = 1},/obj/machinery/door/window/northleft{name = "Shower"; req_access = list()},/obj/structure/curtain/open/shower/engineering,/turf/simulated/floor{icon_state = "freezerfloor"},/area/crew_quarters/sleep/engi_wash) "cjt" = (/obj/machinery/button/remote/airlock{id = "engineering_cubicle"; name = "Door Bolt Control"; pixel_x = -25; pixel_y = 8; specialfunctions = 4},/obj/structure/toilet{dir = 1},/obj/machinery/light/small{dir = 4},/obj/effect/landmark{name = "xeno_spawn"; pixel_x = -1},/turf/simulated/floor{icon_state = "freezerfloor"},/area/crew_quarters/sleep/engi_wash) "cju" = (/obj/structure/table/standard,/obj/item/weapon/storage/box/gloves{pixel_x = 4; pixel_y = 4},/obj/machinery/light{icon_state = "tube1"; dir = 8},/obj/machinery/power/apc{dir = 8; name = "west bump"; pixel_x = -24},/obj/item/weapon/storage/box/masks,/obj/structure/cable/green{d2 = 4; icon_state = "0-4"},/turf/simulated/floor{dir = 9; icon_state = "blue"},/area/medical/surgeryprep) @@ -5899,7 +5898,7 @@ "cjw" = (/obj/machinery/atmospherics/pipe/simple/visible,/obj/effect/decal/cleanable/dirt,/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor/plating,/area/maintenance/starboardsolar) "cjx" = (/obj/machinery/power/terminal{icon_state = "term"; dir = 1},/obj/machinery/light/small{dir = 4},/obj/structure/cable/yellow{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/plating,/area/maintenance/starboardsolar) "cjy" = (/obj/structure/table/reinforced,/obj/item/weapon/paper_bin{pixel_x = -3; pixel_y = 7},/turf/simulated/floor,/area/engineering/foyer) -"cjz" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/rnd/xenobiology/xenoflora) +"cjz" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/rnd/xenobiology/xenoflora) "cjA" = (/obj/structure/table/reinforced,/obj/machinery/atmospherics/pipe/simple/hidden/cyan,/obj/item/weapon/folder/yellow,/turf/simulated/floor,/area/engineering/foyer) "cjB" = (/obj/structure/cable/green{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor,/area/construction) "cjC" = (/obj/structure/table/standard,/obj/item/weapon/gun/launcher/syringe,/obj/item/weapon/storage/box/syringegun,/turf/simulated/floor{icon_state = "dark"},/area/medical/biostorage) @@ -5984,7 +5983,7 @@ "cld" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor,/area/engineering/foyer) "cle" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 9},/turf/simulated/floor,/area/engineering/locker_room) "clf" = (/obj/structure/cable/green{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/simple/hidden/red,/turf/simulated/floor,/area/engineering/engine_eva) -"clg" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/machinery/door/firedoor/border_only,/obj/machinery/atmospherics/pipe/simple/hidden/yellow,/turf/simulated/floor/plating,/area/rnd/xenobiology/xenoflora) +"clg" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/rnd/xenobiology/xenoflora) "clh" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor,/area/engineering/locker_room) "cli" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 10},/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor,/area/engineering/locker_room) "clj" = (/turf/simulated/floor,/area/engineering/locker_room) @@ -6042,24 +6041,24 @@ "cmj" = (/obj/structure/grille,/obj/machinery/atmospherics/pipe/simple/visible/cyan,/obj/machinery/meter{frequency = 1443; id = "mair_in_meter"; name = "Mixed Air Tank In"},/turf/simulated/wall/r_wall,/area/engineering/atmos) "cmk" = (/obj/structure/table/glass,/turf/simulated/floor{icon_state = "hydrofloor"},/area/rnd/xenobiology/xenoflora) "cml" = (/obj/machinery/seed_extractor,/turf/simulated/floor{icon_state = "hydrofloor"},/area/rnd/xenobiology/xenoflora) -"cmm" = (/obj/structure/disposalpipe/segment,/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/atmos{name = "Atmospherics Maintenance"; req_access = list(12,24)},/obj/machinery/atmospherics/pipe/simple/visible/supply,/turf/simulated/floor,/area/maintenance/atmos_control) +"cmm" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/machinery/door/firedoor/border_only,/obj/machinery/atmospherics/pipe/simple/hidden/yellow,/turf/simulated/floor/plating,/area/rnd/xenobiology/xenoflora) "cmn" = (/obj/machinery/light{icon_state = "tube1"; dir = 4},/obj/structure/reagent_dispensers/watertank,/obj/item/weapon/reagent_containers/glass/bucket,/turf/simulated/floor{dir = 4; icon_state = "whitegreen"},/area/rnd/xenobiology/xenoflora) -"cmo" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/atmos{name = "Atmospherics Maintenance"; req_access = list(12,24)},/obj/machinery/atmospherics/pipe/simple/visible/scrubbers,/turf/simulated/floor,/area/maintenance/atmos_control) +"cmo" = (/obj/structure/disposalpipe/segment,/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/atmos{name = "Atmospherics Maintenance"; req_access = list(12,24)},/obj/machinery/atmospherics/pipe/simple/visible/supply,/turf/simulated/floor,/area/maintenance/atmos_control) "cmp" = (/obj/item/weapon/stool,/obj/machinery/alarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/obj/machinery/camera/network/engineering{c_tag = "Solar Maintenance Aft Starboard"; dir = 4},/turf/simulated/floor/plating,/area/maintenance/starboardsolar) "cmq" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/maintenance/starboardsolar) "cmr" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating,/area/maintenance/starboardsolar) -"cms" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/machinery/door/firedoor/border_only,/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating,/area/engineering/engineering_monitoring) +"cms" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/atmos{name = "Atmospherics Maintenance"; req_access = list(12,24)},/obj/machinery/atmospherics/pipe/simple/visible/scrubbers,/turf/simulated/floor,/area/maintenance/atmos_control) "cmt" = (/obj/structure/grille,/obj/machinery/meter,/obj/machinery/atmospherics/pipe/simple/visible/green,/turf/simulated/wall/r_wall,/area/engineering/atmos) "cmu" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 4},/turf/simulated/floor/plating,/area/maintenance/atmos_control) "cmv" = (/obj/structure/sign/securearea{pixel_x = -32},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 5},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/plating,/area/maintenance/atmos_control) "cmw" = (/obj/item/device/radio/intercom{dir = 8; name = "Station Intercom (General)"; pixel_x = -28},/obj/machinery/alarm{dir = 1; icon_state = "alarm0"; pixel_y = -22},/obj/item/weapon/storage/briefcase/inflatable{pixel_x = 3; pixel_y = 6},/obj/item/weapon/storage/briefcase/inflatable{pixel_y = 3},/obj/item/weapon/storage/briefcase/inflatable{pixel_x = -3; pixel_y = 0},/obj/structure/table/steel_reinforced,/turf/simulated/floor,/area/engineering/engine_eva) -"cmx" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/glass_engineering{name = "Engineering Monitoring Room"; req_access = list(11)},/turf/simulated/floor,/area/engineering/engineering_monitoring) +"cmx" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/machinery/door/firedoor/border_only,/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating,/area/engineering/engineering_monitoring) "cmy" = (/obj/machinery/atmospherics/pipe/simple/hidden/cyan{dir = 4; icon_state = "intact"; tag = "icon-intact-f (EAST)"},/obj/machinery/light,/turf/simulated/floor,/area/engineering/foyer) -"cmz" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/glass_engineering{name = "Engineering Hallway"; req_one_access = list(10)},/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor,/area/engineering) +"cmz" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/glass_engineering{name = "Engineering Monitoring Room"; req_access = list(11)},/turf/simulated/floor,/area/engineering/engineering_monitoring) "cmA" = (/obj/machinery/light{icon_state = "tube1"; dir = 4},/obj/structure/reagent_dispensers/watertank,/turf/simulated/floor,/area/construction) "cmB" = (/obj/machinery/suit_cycler/engineering,/obj/machinery/camera/network/engineering{c_tag = "Engineering EVA"; dir = 1},/turf/simulated/floor,/area/engineering/engine_eva) "cmC" = (/obj/machinery/atmospherics/pipe/simple/hidden/cyan{dir = 4; icon_state = "intact"; tag = "icon-intact-f (EAST)"},/turf/simulated/floor,/area/engineering/foyer) -"cmD" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/glass_engineering{name = "Engineering Hallway"; req_one_access = list(10)},/turf/simulated/floor,/area/engineering) +"cmD" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/glass_engineering{name = "Engineering Hallway"; req_one_access = list(10)},/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor,/area/engineering) "cmE" = (/obj/machinery/atmospherics/pipe/simple/hidden/cyan{dir = 4; icon_state = "intact"; tag = "icon-intact-f (EAST)"},/obj/machinery/computer/guestpass{pixel_y = -28},/turf/simulated/floor,/area/engineering/foyer) "cmF" = (/obj/machinery/atmospherics/pipe/simple/hidden/cyan{dir = 9; icon_state = "intact"; tag = "icon-intact-f (NORTHWEST)"},/turf/simulated/floor,/area/engineering/foyer) "cmG" = (/obj/machinery/atmospherics/pipe/simple/hidden/red,/turf/simulated/floor,/area/engineering/engine_eva) @@ -6072,7 +6071,7 @@ "cmN" = (/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/unary/vent_pump/on{dir = 1},/turf/simulated/floor,/area/engineering/locker_room) "cmO" = (/obj/structure/table/rack{dir = 8; layer = 2.9},/obj/item/clothing/shoes/magboots,/obj/item/clothing/suit/space/void/atmos,/obj/item/clothing/mask/breath,/obj/item/clothing/head/helmet/space/void/atmos,/obj/machinery/door/window/northright{name = "Atmospherics Hardsuits"; req_access = list(24)},/turf/simulated/floor,/area/engineering/engine_eva) "cmP" = (/obj/structure/table/rack{dir = 8; layer = 2.9},/obj/item/clothing/shoes/magboots,/obj/item/clothing/suit/space/void/atmos,/obj/item/clothing/mask/breath,/obj/item/clothing/head/helmet/space/void/atmos,/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/window/northleft{name = "Atmospherics Hardsuits"; req_access = list(24)},/turf/simulated/floor,/area/engineering/engine_eva) -"cmQ" = (/obj/structure/disposalpipe/segment,/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/glass_engineering{name = "Engineering Hallway"; req_one_access = list(10)},/turf/simulated/floor,/area/engineering) +"cmQ" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/glass_engineering{name = "Engineering Hallway"; req_one_access = list(10)},/turf/simulated/floor,/area/engineering) "cmR" = (/obj/machinery/door/airlock/engineering{name = "Engineering Substation"; req_one_access = list(11,24)},/obj/machinery/door/firedoor/border_only,/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plating,/area/maintenance/substation/engineering) "cmS" = (/obj/structure/bed/chair/comfy/black{dir = 4},/turf/simulated/floor{icon_state = "blue"; dir = 8},/area/medical/surgeryprep) "cmT" = (/obj/structure/cable/yellow{d2 = 2; icon_state = "0-2"},/turf/simulated/floor/plating/airless,/area/solar/starboard) @@ -6099,9 +6098,9 @@ "cno" = (/obj/structure/sign/securearea{pixel_x = -32; pixel_y = 0},/obj/machinery/shower{icon_state = "shower"; dir = 4},/turf/simulated/floor{dir = 8; icon_state = "warnwhite"},/area/rnd/xenobiology) "cnp" = (/obj/structure/disposalpipe/segment,/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/purple,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor{icon_state = "white"},/area/rnd/xenobiology) "cnq" = (/obj/structure/closet/l3closet/scientist,/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/obj/machinery/light{dir = 4; icon_state = "tube1"},/turf/simulated/floor{dir = 4; icon_state = "warnwhite"},/area/rnd/xenobiology) -"cnr" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/glass_engineering{name = "Engineering Workshop"; req_one_access = list(11,24)},/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor,/area/engineering/workshop) -"cns" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/glass_engineering{name = "Engineering Workshop"; req_one_access = list(11,24)},/turf/simulated/floor,/area/engineering/workshop) -"cnt" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/firedoor/border_only,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/turf/simulated/floor/plating,/area/engineering/atmos) +"cnr" = (/obj/structure/disposalpipe/segment,/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/glass_engineering{name = "Engineering Hallway"; req_one_access = list(10)},/turf/simulated/floor,/area/engineering) +"cns" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/glass_engineering{name = "Engineering Workshop"; req_one_access = list(11,24)},/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor,/area/engineering/workshop) +"cnt" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/glass_engineering{name = "Engineering Workshop"; req_one_access = list(11,24)},/turf/simulated/floor,/area/engineering/workshop) "cnu" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/maintenance{req_access = newlist(); req_one_access = list(12,5)},/obj/structure/disposalpipe/segment,/obj/structure/sign/redcross{desc = "The Star of Life, a symbol of Medical Aid."; icon_state = "lifestar"; name = "Medbay"; pixel_x = 0; pixel_y = 32},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/plating,/area/medical/virologyaccess) "cnv" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/maintenance/starboardsolar) "cnw" = (/obj/machinery/alarm{pixel_y = 22},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 6},/turf/simulated/floor/plating,/area/maintenance/medbay) @@ -6115,13 +6114,13 @@ "cnE" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/maintenance{req_one_access = list(12,5)},/obj/structure/sign/redcross{desc = "The Star of Life, a symbol of Medical Aid."; icon_state = "lifestar"; name = "Medbay"; pixel_x = 0; pixel_y = 32},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/plating,/area/medical/virologyaccess) "cnF" = (/obj/machinery/door/window/northright{name = "Xenoflora Containment"; req_access = list(47)},/turf/simulated/floor{icon_state = "hydrofloor"},/area/rnd/xenobiology/xenoflora_storage) "cnG" = (/turf/simulated/wall/r_wall,/area/engineering/engineering_monitoring) -"cnH" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/machinery/door/firedoor/border_only,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/manifold/visible/cyan{tag = "icon-map (EAST)"; icon_state = "map"; dir = 4},/turf/simulated/floor/plating,/area/engineering/atmos) +"cnH" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/firedoor/border_only,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/turf/simulated/floor/plating,/area/engineering/atmos) "cnI" = (/obj/machinery/access_button{command = "cycle_exterior"; frequency = 1379; master_tag = "xeno_airlock_control"; name = "Xenobiology Access Button"; pixel_x = -24; pixel_y = 0; req_access = list(55)},/obj/machinery/door/airlock/research{autoclose = 0; frequency = 1379; icon_state = "door_locked"; id_tag = "xeno_airlock_exterior"; locked = 1; name = "Xenobiology External Airlock"; req_access = list(55)},/obj/structure/disposalpipe/segment,/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/purple,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor{icon_state = "white"},/area/rnd/xenobiology) "cnJ" = (/obj/structure/sign/securearea,/turf/simulated/wall/r_wall,/area/engineering/engineering_monitoring) "cnK" = (/obj/machinery/access_button{command = "cycle_interior"; frequency = 1379; master_tag = "solar_xeno_airlock"; name = "interior access button"; pixel_x = -25; pixel_y = -25; req_access = list(11,13)},/obj/machinery/atmospherics/pipe/manifold/visible{dir = 8},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor/plating{dir = 2; icon_state = "warnplate"},/area/maintenance/starboardsolar) "cnL" = (/obj/machinery/door/airlock/maintenance{name = "Engineering EVA Storage Maintainance"; req_access = list(12); req_one_access = list(11,24)},/obj/machinery/door/firedoor/border_only,/obj/machinery/atmospherics/pipe/simple/hidden/red,/turf/simulated/floor,/area/engineering/engine_eva) "cnM" = (/obj/structure/sign/securearea,/turf/simulated/wall/r_wall,/area/engineering/workshop) -"cnN" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/machinery/door/firedoor/border_only,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/visible/cyan{tag = "icon-intact (SOUTHEAST)"; icon_state = "intact"; dir = 6},/turf/simulated/floor/plating,/area/engineering/atmos) +"cnN" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/machinery/door/firedoor/border_only,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/manifold/visible/cyan{tag = "icon-map (EAST)"; icon_state = "map"; dir = 4},/turf/simulated/floor/plating,/area/engineering/atmos) "cnO" = (/turf/simulated/wall/r_wall,/area/engineering/workshop) "cnP" = (/obj/structure/table/standard,/obj/machinery/alarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/obj/item/weapon/circular_saw{pixel_y = 8},/obj/item/weapon/scalpel,/turf/simulated/floor{icon_state = "white"},/area/medical/surgery) "cnQ" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/medical{name = "Operating Theatre 1"; req_access = list(45)},/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor,/area/medical/surgeryprep) @@ -6154,24 +6153,24 @@ "cor" = (/obj/structure/table/standard,/obj/random/tech_supply,/obj/random/tech_supply,/obj/random/tech_supply,/obj/random/tech_supply,/turf/simulated/floor,/area/engineering/locker_room) "cos" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/maintenance/starboardsolar) "cot" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/table/standard,/obj/random/tech_supply,/obj/random/tech_supply,/obj/random/tech_supply,/obj/random/tech_supply,/obj/machinery/camera/network/engineering{c_tag = "Engineering Locker Room"; dir = 1},/turf/simulated/floor,/area/engineering/locker_room) -"cou" = (/obj/machinery/atmospherics/pipe/simple/visible/cyan,/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/machinery/door/firedoor/border_only,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/plating,/area/engineering/atmos) -"cov" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/machinery/door/firedoor/border_only,/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 1},/turf/simulated/floor/plating,/area/engineering/atmos) -"cow" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/machinery/door/firedoor/border_only,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/visible/green,/turf/simulated/floor/plating,/area/engineering/atmos) -"cox" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/machinery/door/firedoor/border_only,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/plating,/area/engineering/atmos) +"cou" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/machinery/door/firedoor/border_only,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/visible/cyan{tag = "icon-intact (SOUTHEAST)"; icon_state = "intact"; dir = 6},/turf/simulated/floor/plating,/area/engineering/atmos) +"cov" = (/obj/machinery/atmospherics/pipe/simple/visible/cyan,/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/machinery/door/firedoor/border_only,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/plating,/area/engineering/atmos) +"cow" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/machinery/door/firedoor/border_only,/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 1},/turf/simulated/floor/plating,/area/engineering/atmos) +"cox" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/machinery/door/firedoor/border_only,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/visible/green,/turf/simulated/floor/plating,/area/engineering/atmos) "coy" = (/obj/machinery/door/airlock/maintenance{req_one_access = list(11,24)},/obj/machinery/door/firedoor,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor/plating,/area/maintenance/substation/engineering) "coz" = (/obj/machinery/atmospherics/pipe/manifold4w/hidden/supply,/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 4},/turf/simulated/floor,/area/hallway/secondary/entry/port) "coA" = (/obj/structure/table/standard,/obj/machinery/firealarm{dir = 8; pixel_x = -24},/obj/item/stack/medical/advanced/bruise_pack,/obj/item/weapon/retractor,/turf/simulated/floor{icon_state = "white"},/area/medical/surgery) "coB" = (/obj/machinery/button/holosign{pixel_x = 24; pixel_y = 2},/obj/structure/sink{dir = 4; icon_state = "sink"; pixel_x = 11; pixel_y = 0},/obj/machinery/camera/network/medbay{c_tag = "Medbay Operating Theatre 1"; dir = 8},/turf/simulated/floor{dir = 4; icon_state = "whiteredcorner"},/area/medical/surgery) "coC" = (/obj/machinery/button/holosign{pixel_x = -24; pixel_y = 2},/obj/structure/sink{icon_state = "sink"; dir = 8; pixel_x = -12; pixel_y = 2},/obj/machinery/camera/network/medbay{c_tag = "Medbay Operating Theatre 2"; dir = 4},/turf/simulated/floor{dir = 1; icon_state = "whiteredcorner"},/area/medical/surgery2) -"coD" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/machinery/door/firedoor/border_only,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/manifold/visible/yellow{dir = 8},/turf/simulated/floor/plating,/area/engineering/atmos) -"coE" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/machinery/door/firedoor/border_only,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/visible/yellow{dir = 10},/turf/simulated/floor/plating,/area/engineering/atmos) +"coD" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/machinery/door/firedoor/border_only,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/plating,/area/engineering/atmos) +"coE" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/machinery/door/firedoor/border_only,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/manifold/visible/yellow{dir = 8},/turf/simulated/floor/plating,/area/engineering/atmos) "coF" = (/obj/structure/table/standard,/obj/machinery/firealarm{dir = 4; pixel_x = 24},/obj/item/stack/medical/advanced/bruise_pack,/obj/item/weapon/retractor,/turf/simulated/floor{icon_state = "white"},/area/medical/surgery2) "coG" = (/obj/machinery/meter{frequency = 1443; id = "dloop_atm_meter"; name = "Distribution Loop"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/manifold/visible/supply{dir = 8},/turf/simulated/floor,/area/engineering/atmos) "coH" = (/obj/machinery/meter{frequency = 1443; id = "wloop_atm_meter"; name = "Waste Loop"},/obj/machinery/atmospherics/pipe/simple/visible/scrubbers,/turf/simulated/floor,/area/engineering/atmos) "coI" = (/obj/machinery/atmospherics/pipe/simple/visible/cyan,/obj/machinery/meter,/obj/machinery/firealarm{pixel_y = 24},/turf/simulated/floor,/area/engineering/atmos) "coJ" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/medical{name = "Virology Access"; req_access = list(39)},/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor,/area/medical/virologyaccess) -"coK" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/machinery/door/firedoor/border_only,/obj/machinery/atmospherics/pipe/manifold/visible/yellow{dir = 8},/turf/simulated/floor/plating,/area/engineering/atmos) -"coL" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/machinery/door/firedoor/border_only,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 10},/turf/simulated/floor/plating,/area/engineering/atmos) +"coK" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/machinery/door/firedoor/border_only,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/visible/yellow{dir = 10},/turf/simulated/floor/plating,/area/engineering/atmos) +"coL" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/machinery/door/firedoor/border_only,/obj/machinery/atmospherics/pipe/manifold/visible/yellow{dir = 8},/turf/simulated/floor/plating,/area/engineering/atmos) "coM" = (/obj/machinery/firealarm{pixel_x = 32; pixel_y = 24},/turf/simulated/floor,/area/engineering/atmos/monitoring) "coN" = (/obj/machinery/computer/general_air_control{frequency = 1443; level = 3; name = "Distribution and Waste Monitor"; sensors = list("mair_in_meter" = "Mixed Air In", "air_sensor" = "Mixed Air Supply Tank", "mair_out_meter" = "Mixed Air Out", "dloop_atm_meter" = "Distribution Loop", "wloop_atm_meter" = "Engine Waste")},/obj/machinery/light{dir = 1},/turf/simulated/floor,/area/engineering/atmos/monitoring) "coO" = (/obj/machinery/computer/atmoscontrol,/turf/simulated/floor,/area/engineering/atmos/monitoring) @@ -6192,7 +6191,7 @@ "cpd" = (/obj/machinery/embedded_controller/radio/airlock/airlock_controller{tag_airpump = "solar_xeno_pump"; tag_exterior_door = "solar_xeno_outer"; frequency = 1379; id_tag = "solar_xeno_airlock"; tag_interior_door = "solar_xeno_inner"; pixel_x = 25; req_access = list(13); tag_chamber_sensor = "solar_xeno_sensor"},/obj/machinery/airlock_sensor{frequency = 1379; id_tag = "solar_xeno_sensor"; pixel_x = 25; pixel_y = 12},/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 1; frequency = 1379; id_tag = "solar_xeno_pump"},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/effect/decal/warning_stripes,/turf/simulated/floor/plating,/area/maintenance/starboardsolar) "cpe" = (/obj/machinery/light{dir = 8},/obj/item/device/radio/intercom{dir = 0; name = "Station Intercom (General)"; pixel_x = -27},/obj/structure/closet/wardrobe/medic_white,/turf/simulated/floor{icon_state = "blue"; dir = 8},/area/medical/surgeryprep) "cpf" = (/obj/structure/lattice,/obj/machinery/atmospherics/pipe/simple/visible/yellow,/turf/space,/area/space) -"cpg" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/machinery/door/firedoor/border_only,/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating,/area/engineering/atmos) +"cpg" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/machinery/door/firedoor/border_only,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 10},/turf/simulated/floor/plating,/area/engineering/atmos) "cph" = (/obj/machinery/status_display,/turf/simulated/wall,/area/medical/surgery2) "cpi" = (/obj/machinery/space_heater,/turf/simulated/floor/plating,/area/maintenance/medbay) "cpj" = (/turf/simulated/wall/r_wall,/area/engineering/storage) @@ -6200,27 +6199,27 @@ "cpl" = (/turf/simulated/floor/engine,/area/rnd/xenobiology) "cpm" = (/mob/living/carbon/slime,/turf/simulated/floor/engine,/area/rnd/xenobiology) "cpn" = (/obj/machinery/power/rad_collector,/turf/simulated/floor/plating,/area/engineering/storage) -"cpo" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/machinery/door/firedoor/border_only,/obj/machinery/atmospherics/pipe/simple/visible/yellow{dir = 10},/turf/simulated/floor/plating,/area/engineering/atmos) +"cpo" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/machinery/door/firedoor/border_only,/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating,/area/engineering/atmos) "cpp" = (/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor{icon_state = "white"},/area/rnd/xenobiology) "cpq" = (/obj/machinery/atmospherics/pipe/simple/hidden/purple,/turf/simulated/floor{icon_state = "white"},/area/rnd/xenobiology) "cpr" = (/obj/machinery/door/airlock/maintenance{name = "Atmospherics Maintenance Access"; req_access = list(12,24)},/obj/machinery/atmospherics/pipe/simple/hidden/red,/turf/simulated/floor,/area/engineering/atmos) "cps" = (/obj/machinery/door/blast/regular{density = 0; dir = 4; icon_state = "pdoor0"; id = "virologyquar"; name = "Virology Emergency Quarantine Blast Doors"; opacity = 0},/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor{icon_state = "delivery"},/area/medical/virologyaccess) -"cpt" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/machinery/door/firedoor/border_only,/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating,/area/engineering/atmos/monitoring) +"cpt" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/machinery/door/firedoor/border_only,/obj/machinery/atmospherics/pipe/simple/visible/yellow{dir = 10},/turf/simulated/floor/plating,/area/engineering/atmos) "cpu" = (/obj/machinery/atmospherics/valve/digital/open{name = "Mixed Air Outlet Valve"},/turf/simulated/floor{dir = 9; icon_state = "arrival"},/area/engineering/atmos) "cpv" = (/obj/machinery/light{dir = 1},/turf/simulated/floor,/area/engineering/atmos) "cpw" = (/obj/machinery/atmospherics/valve/digital/open{name = "Mixed Air Inlet Valve"},/turf/simulated/floor{icon_state = "arrival"; dir = 5},/area/engineering/atmos) "cpx" = (/obj/machinery/computer/general_air_control/large_tank_control{frequency = 1443; input_tag = "air_in"; name = "Mixed Air Supply Control"; output_tag = "air_out"; pressure_setting = 2000; sensors = list("air_sensor" = "Tank")},/obj/machinery/atmospherics/unary/vent_pump/on{dir = 1},/obj/machinery/light{dir = 1},/turf/simulated/floor{dir = 1; icon_state = "arrival"},/area/engineering/atmos) "cpy" = (/obj/machinery/door/airlock/glass_atmos{name = "Atmospherics Monitoring Room"; req_access = list(24)},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor,/area/engineering/atmos/monitoring) "cpz" = (/obj/machinery/atmospherics/valve/digital/open{name = "Oxygen Outlet Valve"},/turf/simulated/floor{dir = 5; icon_state = "blue"},/area/engineering/atmos) -"cpA" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/machinery/door/firedoor/border_only,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/plating,/area/engineering/atmos) -"cpB" = (/obj/structure/table/standard,/obj/item/device/t_scanner,/obj/item/device/multitool{pixel_x = 5},/obj/item/device/radio/headset/headset_eng,/obj/item/weapon/cartridge/atmos,/obj/item/weapon/cartridge/atmos,/obj/item/device/pipe_painter,/obj/machinery/requests_console{department = "Atmospherics"; departmentType = 3; name = "Atmos RC"; pixel_x = 0; pixel_y = 28},/turf/simulated/floor,/area/engineering/atmos) -"cpC" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/engineering/atmos/monitoring) +"cpA" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/machinery/door/firedoor/border_only,/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating,/area/engineering/atmos/monitoring) +"cpB" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/machinery/door/firedoor/border_only,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/plating,/area/engineering/atmos) +"cpC" = (/obj/structure/table/standard,/obj/item/device/t_scanner,/obj/item/device/multitool{pixel_x = 5},/obj/item/device/radio/headset/headset_eng,/obj/item/weapon/cartridge/atmos,/obj/item/weapon/cartridge/atmos,/obj/item/device/pipe_painter,/obj/machinery/requests_console{department = "Atmospherics"; departmentType = 3; name = "Atmos RC"; pixel_x = 0; pixel_y = 28},/turf/simulated/floor,/area/engineering/atmos) "cpD" = (/obj/machinery/atmospherics/valve/digital/open{name = "Nitrogen Outlet Valve"},/turf/simulated/floor{icon_state = "red"; dir = 5},/area/engineering/atmos) "cpE" = (/obj/machinery/computer/general_air_control/large_tank_control{frequency = 1441; input_tag = "n2_in"; name = "Nitrogen Supply Control"; output_tag = "n2_out"; sensors = list("n2_sensor" = "Tank")},/obj/machinery/atmospherics/unary/vent_pump/on{dir = 1},/obj/machinery/light{dir = 1},/turf/simulated/floor{icon_state = "red"; dir = 1},/area/engineering/atmos) "cpF" = (/turf/simulated/floor,/area/engineering/atmos) -"cpG" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/firedoor/border_only,/obj/structure/window/reinforced{dir = 1},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/plating,/area/engineering/engineering_monitoring) -"cpH" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/machinery/door/firedoor/border_only,/obj/machinery/status_display{pixel_y = 32},/turf/simulated/floor/plating,/area/engineering/engineering_monitoring) -"cpI" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/medical/virology) +"cpG" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/engineering/atmos/monitoring) +"cpH" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/firedoor/border_only,/obj/structure/window/reinforced{dir = 1},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/plating,/area/engineering/engineering_monitoring) +"cpI" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/machinery/door/firedoor/border_only,/obj/machinery/status_display{pixel_y = 32},/turf/simulated/floor/plating,/area/engineering/engineering_monitoring) "cpJ" = (/obj/structure/reagent_dispensers/fueltank,/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = 25},/turf/simulated/floor,/area/engineering/atmos) "cpK" = (/obj/machinery/atmospherics/pipe/simple/hidden,/turf/simulated/floor{icon_state = "warningcorner"; dir = 1},/area/hallway/secondary/entry/aft) "cpL" = (/obj/structure/reagent_dispensers/watertank,/obj/machinery/light{dir = 1},/turf/simulated/floor,/area/engineering/atmos) @@ -6230,18 +6229,18 @@ "cpP" = (/obj/structure/table/standard,/obj/item/weapon/reagent_containers/blood/OMinus,/obj/item/weapon/reagent_containers/blood/OMinus,/obj/item/weapon/reagent_containers/blood/OMinus,/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/turf/simulated/floor{icon_state = "blue"; dir = 4},/area/medical/surgeryprep) "cpQ" = (/obj/structure/table/standard,/obj/machinery/vending/wallmed1{pixel_y = -32},/obj/machinery/atmospherics/unary/vent_pump/on{dir = 1},/obj/random/medical,/turf/simulated/floor{icon_state = "white"},/area/medical/surgery2) "cpR" = (/obj/structure/table/standard,/obj/item/weapon/hemostat,/obj/machinery/light,/obj/item/weapon/cautery,/turf/simulated/floor{icon_state = "white"},/area/medical/surgery2) -"cpS" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/medical/virology) +"cpS" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/medical/virology) "cpT" = (/obj/machinery/disposal,/obj/structure/disposalpipe/trunk{dir = 4},/turf/simulated/floor,/area/engineering/atmos) "cpU" = (/obj/structure/table/standard,/obj/item/weapon/bonesetter,/obj/item/weapon/bonegel,/turf/simulated/floor{icon_state = "white"},/area/medical/surgery2) "cpV" = (/obj/structure/disposalpipe/sortjunction/flipped{dir = 1; sortType = "Atmospherics"; name = "Atmospherics"},/obj/machinery/atmospherics/pipe/simple/visible/universal,/turf/simulated/floor,/area/engineering/atmos) "cpW" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/visible/universal,/turf/simulated/floor,/area/engineering/atmos) "cpX" = (/obj/machinery/atmospherics/binary/pump/on{dir = 1; name = "Air to Ports"},/turf/simulated/floor,/area/engineering/atmos) "cpY" = (/obj/machinery/atmospherics/pipe/simple/visible/universal,/turf/simulated/floor,/area/engineering/atmos) -"cpZ" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/medical/virology) +"cpZ" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/medical/virology) "cqa" = (/obj/machinery/atmospherics/binary/pump/on{name = "Ports to Waste"},/turf/simulated/floor,/area/engineering/atmos) "cqb" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 4},/turf/simulated/floor,/area/engineering/atmos/monitoring) "cqc" = (/obj/machinery/computer/atmos_alert,/turf/simulated/floor,/area/engineering/atmos/monitoring) -"cqd" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/machinery/door/firedoor/border_only,/obj/structure/window/reinforced{dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/plating,/area/engineering/atmos) +"cqd" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/medical/virology) "cqe" = (/obj/structure/extinguisher_cabinet{pixel_x = 25; pixel_y = 0},/obj/machinery/atmospherics/unary/vent_scrubber/on,/turf/simulated/floor{icon_state = "white"},/area/rnd/xenobiology) "cqf" = (/obj/structure/bed/chair/office/dark{dir = 4},/obj/effect/landmark/start{name = "Station Engineer"},/obj/machinery/atmospherics/unary/vent_pump/on{dir = 8},/turf/simulated/floor,/area/engineering/engineering_monitoring) "cqg" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/light/small{dir = 4},/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 8},/area/maintenance/engineering) @@ -6257,31 +6256,31 @@ "cqq" = (/obj/structure/closet/crate/freezer,/turf/simulated/floor{icon_state = "freezerfloor"},/area/medical/surgery2) "cqr" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 1; external_pressure_bound = 140; external_pressure_bound_default = 140; icon_state = "map_vent_out"; pressure_checks = 1; pressure_checks_default = 1; use_power = 1},/turf/simulated/floor/plating/airless,/area/space) "cqs" = (/obj/machinery/door/airlock/external{frequency = 1379; icon_state = "door_locked"; id_tag = "solar_xeno_outer"; locked = 1; name = "Engineering External Access"; req_access = list(11,13)},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plating,/area/maintenance/starboardsolar) -"cqt" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/firedoor/border_only,/obj/structure/window/reinforced,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/plating,/area/engineering/engineering_monitoring) +"cqt" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/machinery/door/firedoor/border_only,/obj/structure/window/reinforced{dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/plating,/area/engineering/atmos) "cqu" = (/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/obj/machinery/light,/obj/machinery/atmospherics/unary/vent_pump/on{dir = 8},/turf/simulated/floor{dir = 2; icon_state = "greencorner"},/area/medical/virologyaccess) "cqv" = (/turf/simulated/wall/r_wall,/area/medical/virology) -"cqw" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/engineering/engineering_monitoring) -"cqx" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/machinery/door/firedoor/border_only,/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating,/area/engineering/workshop) -"cqy" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/engineering/atmos/monitoring) -"cqz" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/glass_atmos{name = "Atmospherics Monitoring Room"; req_access = list(24)},/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor,/area/engineering/atmos/monitoring) -"cqA" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/engineering/atmos/monitoring) +"cqw" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/firedoor/border_only,/obj/structure/window/reinforced,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/plating,/area/engineering/engineering_monitoring) +"cqx" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/engineering/engineering_monitoring) +"cqy" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/machinery/door/firedoor/border_only,/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating,/area/engineering/workshop) +"cqz" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/engineering/atmos/monitoring) +"cqA" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/glass_atmos{name = "Atmospherics Monitoring Room"; req_access = list(24)},/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor,/area/engineering/atmos/monitoring) "cqB" = (/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable/green{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor{icon_state = "white"},/area/rnd/xenobiology) "cqC" = (/obj/machinery/atmospherics/pipe/simple/hidden/purple{dir = 5},/turf/simulated/floor{icon_state = "white"},/area/rnd/xenobiology) -"cqD" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/glass_engineering{name = "Engineering Monitoring Room"; req_access = list(11)},/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor,/area/engineering/engineering_monitoring) +"cqD" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/engineering/atmos/monitoring) "cqE" = (/obj/machinery/embedded_controller/radio/airlock/access_controller{tag_exterior_door = "xeno_airlock_exterior"; id_tag = "xeno_airlock_control"; tag_interior_door = "xeno_airlock_interior"; name = "Xenobiology Access Console"; pixel_x = 8; pixel_y = 22},/obj/machinery/light_switch{pixel_x = -6; pixel_y = 26},/obj/machinery/atmospherics/pipe/simple/hidden/purple{dir = 4},/turf/simulated/floor{dir = 4; icon_state = "whitegreencorner"},/area/rnd/xenobiology) "cqF" = (/obj/structure/disposalpipe/segment,/obj/structure/cable/green{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/manifold/hidden/purple{dir = 4},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 8},/turf/simulated/floor{dir = 1; icon_state = "whitegreen"},/area/rnd/xenobiology) "cqG" = (/obj/machinery/power/apc{dir = 1; name = "north bump"; pixel_x = 0; pixel_y = 24},/obj/structure/cable/green{d2 = 8; icon_state = "0-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor{dir = 1; icon_state = "whitegreencorner"},/area/rnd/xenobiology) "cqH" = (/obj/machinery/newscaster{pixel_y = 32},/obj/machinery/atmospherics/unary/vent_pump/on{dir = 8},/turf/simulated/floor{icon_state = "white"},/area/rnd/xenobiology) -"cqI" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/machinery/door/firedoor/border_only,/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating,/area/engineering/workshop) +"cqI" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/glass_engineering{name = "Engineering Monitoring Room"; req_access = list(11)},/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor,/area/engineering/engineering_monitoring) "cqJ" = (/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor,/area/engineering) "cqK" = (/obj/structure/disposalpipe/segment,/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/turf/simulated/floor,/area/engineering) -"cqL" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/glass_atmos{name = "Atmospherics"; req_access = list(24)},/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor,/area/engineering/atmos) +"cqL" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/machinery/door/firedoor/border_only,/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating,/area/engineering/workshop) "cqM" = (/obj/structure/extinguisher_cabinet{pixel_x = 25},/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor,/area/engineering/workshop) -"cqN" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/glass_engineering{name = "Engineering Workshop"; req_one_access = list(11,24)},/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor,/area/engineering/workshop) -"cqO" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/engineering{name = "Engineering Hard Storage"; req_access = list(11)},/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor,/area/engineering/storage) +"cqN" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/table/steel_reinforced,/obj/item/stack/material/plasteel{amount = 10},/obj/item/stack/material/plasteel{amount = 10},/obj/item/stack/material/plasteel{amount = 10},/obj/item/stack/material/plastic{amount = 50},/obj/item/stack/material/plastic{amount = 50},/obj/item/stack/material/glass/phoronrglass{amount = 20},/turf/simulated/floor,/area/engineering/workshop) +"cqO" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/glass_atmos{name = "Atmospherics"; req_access = list(24)},/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor,/area/engineering/atmos) "cqP" = (/obj/machinery/shield_capacitor,/turf/simulated/floor/plating,/area/engineering/storage) "cqQ" = (/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/purple{dir = 10},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor{dir = 2; icon_state = "green"},/area/medical/virologyaccess) -"cqR" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/glass_atmos{name = "Atmospherics"; req_access = list(24)},/turf/simulated/floor,/area/engineering/atmos) +"cqR" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/glass_engineering{name = "Engineering Workshop"; req_one_access = list(11,24)},/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor,/area/engineering/workshop) "cqS" = (/obj/machinery/atmospherics/pipe/manifold/visible/cyan{dir = 8},/obj/machinery/meter,/turf/simulated/floor,/area/engineering/atmos) "cqT" = (/obj/structure/grille,/turf/simulated/floor/plating/airless,/area/security/prison) "cqU" = (/obj/machinery/atmospherics/pipe/manifold/visible/cyan{tag = "icon-map (EAST)"; icon_state = "map"; dir = 4},/obj/machinery/meter,/turf/simulated/floor,/area/engineering/atmos) @@ -6296,11 +6295,11 @@ "crd" = (/obj/machinery/atmospherics/binary/pump/on{dir = 1; name = "Air to Supply"},/turf/simulated/floor,/area/engineering/atmos) "cre" = (/obj/structure/bed/chair/office/dark{dir = 8},/obj/effect/landmark/start{name = "Atmospheric Technician"},/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 4},/turf/simulated/floor,/area/engineering/atmos/monitoring) "crf" = (/obj/machinery/computer/general_air_control{frequency = 1441; name = "Tank Monitor"; sensors = list("n2_sensor" = "Nitrogen", "o2_sensor" = "Oxygen", "co2_sensor" = "Carbon Dioxide", "tox_sensor" = "Toxins", "n2o_sensor" = "Nitrous Oxide", "waste_sensor" = "Gas Mix Tank")},/turf/simulated/floor,/area/engineering/atmos/monitoring) -"crg" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/engineering{name = "Engineering Hard Storage"; req_access = list(11)},/turf/simulated/floor,/area/engineering/storage) +"crg" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/engineering{name = "Engineering Hard Storage"; req_access = list(11)},/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor,/area/engineering/storage) "crh" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor,/area/engineering/atmos/monitoring) "cri" = (/obj/structure/bed/chair/office/dark{dir = 4},/obj/effect/landmark/start{name = "Station Engineer"},/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 8},/turf/simulated/floor,/area/engineering/engineering_monitoring) "crj" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 1},/turf/simulated/floor,/area/engineering/engineering_monitoring) -"crk" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/atmos{name = "Atmospherics Maintenance"; req_access = list(12,24)},/obj/machinery/atmospherics/pipe/simple/visible{dir = 4},/turf/simulated/floor,/area/engineering/atmos/storage) +"crk" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/glass_atmos{name = "Atmospherics"; req_access = list(24)},/turf/simulated/floor,/area/engineering/atmos) "crl" = (/obj/machinery/computer/station_alert,/turf/simulated/floor,/area/engineering/engineering_monitoring) "crm" = (/obj/machinery/light{icon_state = "tube1"; dir = 4},/obj/structure/disposalpipe/segment,/obj/structure/extinguisher_cabinet{pixel_x = 25; pixel_y = 0},/turf/simulated/floor,/area/engineering) "crn" = (/obj/machinery/power/apc{dir = 8; name = "west bump"; pixel_x = -24},/obj/structure/cable/green{d2 = 2; icon_state = "0-2"},/turf/simulated/floor,/area/engineering/workshop) @@ -6348,7 +6347,7 @@ "csd" = (/obj/machinery/atmospherics/pipe/simple/visible/green,/turf/simulated/floor{icon_state = "red"; dir = 9},/area/engineering/atmos) "cse" = (/obj/machinery/atmospherics/binary/pump{name = "O2 to Connector"},/turf/simulated/floor,/area/engineering/atmos) "csf" = (/obj/machinery/atmospherics/binary/pump{name = "N2 to Connector"},/turf/simulated/floor,/area/engineering/atmos) -"csg" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/engineering/workshop) +"csg" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/engineering{name = "Engineering Hard Storage"; req_access = list(11)},/turf/simulated/floor,/area/engineering/storage) "csh" = (/obj/structure/cable/green{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor,/area/engineering/atmos/monitoring) "csi" = (/obj/structure/dispenser,/turf/simulated/floor,/area/engineering/atmos) "csj" = (/obj/machinery/alarm{dir = 1; icon_state = "alarm0"; pixel_y = -22},/obj/machinery/power/apc{dir = 4; name = "east bump"; pixel_x = 24},/obj/structure/cable/green{d2 = 8; icon_state = "0-8"},/turf/simulated/floor,/area/engineering/atmos/monitoring) @@ -6358,7 +6357,7 @@ "csn" = (/obj/item/weapon/wrench,/obj/structure/sign/atmosplaque{pixel_x = 0; pixel_y = 32},/obj/machinery/cell_charger,/obj/machinery/camera/network/engineering{c_tag = "Atmospherics Northeast"},/obj/structure/table/steel,/turf/simulated/floor,/area/engineering/atmos) "cso" = (/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/cable/green{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor,/area/engineering) "csp" = (/obj/structure/cable/green{d2 = 4; icon_state = "0-4"},/obj/machinery/power/apc{dir = 8; name = "west bump"; pixel_x = -24},/turf/simulated/floor,/area/engineering) -"csq" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/atmos{name = "Atmospherics Maintenance"; req_access = list(12,24)},/turf/simulated/floor,/area/engineering/atmos/storage) +"csq" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/atmos{name = "Atmospherics Maintenance"; req_access = list(12,24)},/obj/machinery/atmospherics/pipe/simple/visible{dir = 4},/turf/simulated/floor,/area/engineering/atmos/storage) "csr" = (/obj/structure/disposalpipe/segment,/turf/simulated/floor,/area/engineering) "css" = (/obj/structure/closet/secure_closet/engineering_welding,/obj/item/clothing/glasses/welding,/obj/item/clothing/glasses/welding,/turf/simulated/floor,/area/engineering/workshop) "cst" = (/obj/structure/closet/secure_closet/engineering_welding,/obj/item/clothing/glasses/welding,/obj/item/clothing/glasses/welding,/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor,/area/engineering/workshop) @@ -6400,14 +6399,14 @@ "ctd" = (/obj/machinery/atmospherics/pipe/simple/visible{dir = 4},/turf/simulated/floor,/area/engineering/atmos) "cte" = (/obj/machinery/atmospherics/pipe/manifold/visible{dir = 1},/obj/machinery/meter,/turf/simulated/floor,/area/engineering/atmos) "ctf" = (/obj/machinery/atmospherics/pipe/simple/visible{tag = "icon-intact (NORTHWEST)"; icon_state = "intact"; dir = 9},/turf/simulated/floor,/area/engineering/atmos) -"ctg" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/rnd/xenobiology) +"ctg" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/engineering/workshop) "cth" = (/obj/structure/disposalpipe/segment,/obj/machinery/pipedispenser/disposal,/obj/structure/window/reinforced,/turf/simulated/floor,/area/engineering/atmos) "cti" = (/obj/machinery/atmospherics/pipe/simple/visible/red,/turf/simulated/floor,/area/engineering/atmos) -"ctj" = (/obj/machinery/requests_console{announcementConsole = 0; department = "Engineering"; departmentType = 3; name = "Engineering RC"; pixel_x = 0; pixel_y = -32},/turf/simulated/floor,/area/engineering/workshop) +"ctj" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/atmos{name = "Atmospherics Maintenance"; req_access = list(12,24)},/turf/simulated/floor,/area/engineering/atmos/storage) "ctk" = (/obj/machinery/door/airlock/medical{name = "Operating Theatre 1 Storage"; req_access = list(45)},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/door/firedoor,/turf/simulated/floor{icon_state = "freezerfloor"},/area/medical/surgeryprep) "ctl" = (/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 4},/turf/simulated/floor,/area/engineering) "ctm" = (/obj/machinery/door/airlock/medical{name = "Operating Theatre 2 Storage"; req_access = list(45)},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/door/firedoor,/turf/simulated/floor{icon_state = "freezerfloor"},/area/medical/surgeryprep) -"ctn" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/rnd/xenobiology) +"ctn" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/rnd/xenobiology) "cto" = (/obj/machinery/door/airlock/medical{autoclose = 0; frequency = 1379; icon_state = "door_locked"; id_tag = "virology_airlock_exterior"; locked = 1; name = "Virology Exterior Airlock"; req_access = list(39)},/obj/machinery/access_button{command = "cycle_exterior"; frequency = 1379; master_tag = "virology_airlock_control"; name = "Virology Access Button"; pixel_x = -24; pixel_y = 0; req_access = list(39)},/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/purple,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor{icon_state = "white"},/area/medical/virology) "ctp" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/grille,/obj/machinery/door/blast/shutters{density = 0; dir = 2; icon_state = "shutter0"; id = "surgeryobs"; name = "Operating Theatre Privacy Shutters"; opacity = 0},/turf/simulated/floor/plating,/area/medical/surgeryobs) "ctq" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/grille,/obj/machinery/door/blast/shutters{density = 0; dir = 2; icon_state = "shutter0"; id = "surgeryobs"; name = "Operating Theatre Privacy Shutters"; opacity = 0},/turf/simulated/floor/plating,/area/medical/surgeryobs) @@ -6509,15 +6508,15 @@ "cvi" = (/obj/structure/bed/chair{dir = 4},/turf/simulated/floor{icon_state = "white"},/area/rnd/xenobiology) "cvj" = (/obj/structure/bed/chair{dir = 8},/obj/structure/disposalpipe/segment,/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/purple,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor{icon_state = "white"},/area/rnd/xenobiology) "cvk" = (/obj/machinery/atmospherics/pipe/simple/visible/blue{tag = "icon-intact (NORTHWEST)"; icon_state = "intact"; dir = 9},/turf/simulated/floor,/area/engineering/atmos) -"cvl" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/firedoor/border_only,/obj/structure/window/reinforced{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/plating,/area/engineering/atmos) +"cvl" = (/obj/machinery/requests_console{announcementConsole = 0; department = "Engineering"; departmentType = 3; name = "Engineering RC"; pixel_x = 0; pixel_y = -32},/turf/simulated/floor,/area/engineering/workshop) "cvm" = (/obj/machinery/door/blast/regular{density = 0; dir = 4; icon_state = "pdoor0"; id = "virologyquar"; name = "Virology Emergency Quarantine Blast Doors"; opacity = 0},/turf/simulated/floor{icon_state = "delivery"},/area/medical/virologyaccess) -"cvn" = (/obj/machinery/door/firedoor/border_only,/obj/structure/disposalpipe/segment,/obj/machinery/door/airlock/glass_engineering{name = "Engineering Hallway"; req_one_access = list(10)},/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor,/area/engineering) +"cvn" = (/obj/structure/table/steel,/turf/simulated/floor/plating,/area/maintenance/engi_shuttle) "cvo" = (/obj/machinery/constructable_frame/machine_frame,/turf/simulated/floor{icon_state = "bot"; dir = 1},/area/engineering/atmos) "cvp" = (/obj/machinery/atmospherics/unary/heater{dir = 2; icon_state = "heater"},/turf/simulated/floor{icon_state = "bot"; dir = 1},/area/engineering/atmos) "cvq" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor,/area/engineering/atmos) "cvr" = (/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/turf/simulated/floor,/area/engineering/atmos) "cvs" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 4},/obj/machinery/camera/network/engineering{c_tag = "Engineering Hallway North"; dir = 4},/turf/simulated/floor,/area/engineering) -"cvt" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/table/steel_reinforced,/obj/item/stack/material/plasteel{amount = 10},/obj/item/stack/material/plasteel{amount = 10},/obj/item/stack/material/plasteel{amount = 10},/obj/item/stack/material/plastic{amount = 50},/obj/item/stack/material/plastic{amount = 50},/obj/item/stack/material/glass/phoronrglass{amount = 50},/turf/simulated/floor,/area/engineering/workshop) +"cvt" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/rnd/xenobiology) "cvu" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor,/area/engineering) "cvv" = (/obj/structure/window/reinforced{dir = 1},/obj/item/stack/rods{amount = 50},/obj/item/weapon/airlock_electronics,/obj/item/weapon/airlock_electronics,/obj/item/weapon/cell/high,/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/table/steel_reinforced,/turf/simulated/floor,/area/engineering/workshop) "cvw" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/light,/turf/simulated/floor,/area/engineering) @@ -6585,12 +6584,12 @@ "cwG" = (/obj/machinery/atmospherics/pipe/manifold/visible/cyan,/turf/simulated/floor,/area/engineering/atmos) "cwH" = (/obj/machinery/atmospherics/pipe/simple/visible/cyan{dir = 4; icon_state = "intact"; tag = "icon-intact (EAST)"},/obj/machinery/atmospherics/pipe/simple/visible/red,/turf/simulated/floor,/area/engineering/atmos) "cwI" = (/obj/machinery/atmospherics/pipe/simple/visible/cyan{dir = 4; icon_state = "intact"; tag = "icon-intact (EAST)"},/obj/machinery/atmospherics/binary/pump{dir = 1; name = "Port to Supply"},/turf/simulated/floor,/area/engineering/atmos) -"cwJ" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/grille,/obj/machinery/door/firedoor/border_only,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/plating,/area/engineering/atmos) +"cwJ" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/firedoor/border_only,/obj/structure/window/reinforced{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/plating,/area/engineering/atmos) "cwK" = (/obj/machinery/atmospherics/portables_connector,/obj/machinery/light{dir = 1},/turf/simulated/floor{icon_state = "floorgrime"},/area/maintenance/incinerator) "cwL" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor{icon_state = "floorgrime"},/area/maintenance/incinerator) "cwM" = (/obj/machinery/atmospherics/portables_connector,/obj/machinery/light_switch{pixel_x = 0; pixel_y = 27},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor{icon_state = "floorgrime"},/area/maintenance/incinerator) "cwN" = (/obj/machinery/power/apc{dir = 1; name = "north bump"; pixel_x = 0; pixel_y = 24},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor{icon_state = "floorgrime"},/area/maintenance/incinerator) -"cwO" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/machinery/status_display,/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/medical/virology) +"cwO" = (/obj/machinery/door/firedoor/border_only,/obj/structure/disposalpipe/segment,/obj/machinery/door/airlock/glass_engineering{name = "Engineering Hallway"; req_one_access = list(10)},/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor,/area/engineering) "cwP" = (/obj/structure/closet/emcloset,/turf/simulated/floor/plating,/area/maintenance/medbay) "cwQ" = (/obj/machinery/light/small{dir = 4},/turf/simulated/floor/plating,/area/maintenance/medbay) "cwR" = (/obj/structure/closet/l3closet/virology,/obj/item/clothing/mask/gas,/obj/machinery/embedded_controller/radio/airlock/access_controller{tag_exterior_door = "virology_airlock_exterior"; id_tag = "virology_airlock_control"; tag_interior_door = "virology_airlock_interior"; name = "Virology Access Console"; pixel_x = 8; pixel_y = 22},/obj/machinery/alarm{dir = 4; icon_state = "alarm0"; pixel_x = -22; pixel_y = 0},/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 4},/turf/simulated/floor{dir = 1; icon_state = "greencorner"},/area/medical/virology) @@ -6598,7 +6597,7 @@ "cwT" = (/obj/machinery/atmospherics/pipe/simple/hidden/universal{dir = 4},/turf/simulated/floor{dir = 4; icon_state = "warnwhite"},/area/medical/virology) "cwU" = (/obj/structure/cable/green{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plating,/area/engineering/storage) "cwV" = (/turf/simulated/floor{dir = 8; icon_state = "warnwhite"},/area/medical/virology) -"cwW" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/medical/virology) +"cwW" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/grille,/obj/machinery/door/firedoor/border_only,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/plating,/area/engineering/atmos) "cwX" = (/obj/structure/sign/redcross{desc = "The Star of Life, a symbol of Medical Aid."; icon_state = "lifestar"; name = "Medbay"; pixel_x = 0; pixel_y = 32},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/door/firedoor,/obj/machinery/door/airlock/maintenance{name = "Engineering\\Medbay Maintenance"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/plating,/area/maintenance/engineering) "cwY" = (/obj/structure/sink{icon_state = "sink"; dir = 8; pixel_x = -12; pixel_y = 2},/obj/machinery/access_button{command = "cycle_interior"; frequency = 1379; master_tag = "virology_airlock_control"; name = "Virology Access Button"; pixel_x = 8; pixel_y = -28; req_access = list(39)},/obj/machinery/alarm{dir = 4; icon_state = "alarm0"; pixel_x = -22; pixel_y = 0},/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 4},/turf/simulated/floor{dir = 10; icon_state = "warnwhite"},/area/medical/virology) "cwZ" = (/obj/machinery/firealarm{dir = 8; pixel_x = -24},/obj/item/weapon/folder/white,/obj/structure/table/glass,/turf/simulated/floor{icon_state = "white"},/area/medical/virology) @@ -6620,11 +6619,11 @@ "cxp" = (/obj/machinery/atmospherics/unary/freezer{dir = 2; icon_state = "freezer"},/obj/machinery/hologram/holopad,/turf/simulated/floor{icon_state = "bot"; dir = 1},/area/engineering/atmos) "cxq" = (/obj/machinery/hologram/holopad,/turf/simulated/floor,/area/engineering/atmos) "cxr" = (/obj/structure/disposalpipe/sortjunction/flipped{dir = 8; sortType = "Drone Fabrication"; name = "Drone Fabrication"},/turf/simulated/floor,/area/engineering/atmos) -"cxs" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/machinery/door/firedoor/border_only,/obj/machinery/atmospherics/pipe/simple/hidden/yellow,/turf/simulated/floor/plating,/area/medical/virology) +"cxs" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/machinery/status_display,/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/medical/virology) "cxt" = (/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plating,/area/engineering/storage) "cxu" = (/obj/structure/disposalpipe/segment,/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor,/area/engineering) -"cxv" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/medical/virology) -"cxw" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/medical/virology) +"cxv" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/medical/virology) +"cxw" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/machinery/door/firedoor/border_only,/obj/machinery/atmospherics/pipe/simple/hidden/yellow,/turf/simulated/floor/plating,/area/medical/virology) "cxx" = (/turf/simulated/floor/plating/airless,/area/solar/port) "cxy" = (/obj/structure/cable/yellow{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/plating/airless,/area/solar/port) "cxz" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plating/airless,/area/solar/port) @@ -6705,19 +6704,19 @@ "cyW" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/turf/simulated/floor/plating,/area/medical/virology) "cyX" = (/obj/machinery/atmospherics/pipe/simple/visible{dir = 4},/turf/simulated/floor,/area/engineering/atmos/storage) "cyY" = (/obj/item/roller,/obj/effect/landmark{name = "blobstart"},/turf/simulated/floor{icon_state = "white"},/area/medical/virology) -"cyZ" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/structure/grille,/obj/machinery/door/firedoor/border_only,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 5},/turf/simulated/floor/plating,/area/engineering/atmos) +"cyZ" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/medical/virology) "cza" = (/obj/structure/cable/green{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor{icon_state = "white"},/area/rnd/xenobiology) "czb" = (/obj/structure/disposalpipe/segment,/turf/simulated/floor{icon_state = "white"},/area/rnd/xenobiology) "czc" = (/obj/machinery/light{dir = 1},/turf/simulated/floor{icon_state = "white"},/area/rnd/xenobiology) -"czd" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/grille,/obj/machinery/door/firedoor/border_only,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/visible/green,/turf/simulated/floor/plating,/area/engineering/atmos) +"czd" = (/obj/structure/table/rack{dir = 1},/obj/item/clothing/suit/fire/firefighter,/obj/item/weapon/tank/oxygen,/obj/item/clothing/mask/gas,/obj/item/weapon/extinguisher,/obj/item/clothing/head/hardhat/red,/obj/item/clothing/glasses/meson,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor/plating{dir = 2; icon_state = "warnplatecorner"},/area/maintenance/engi_shuttle) "cze" = (/obj/machinery/portable_atmospherics/powered/pump/filled,/obj/machinery/atmospherics/pipe/simple/visible{dir = 4},/turf/simulated/floor,/area/engineering/atmos/storage) -"czf" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/grille,/obj/machinery/door/firedoor/border_only,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/plating,/area/engineering/atmos) +"czf" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/access_button{command = "cycle_interior"; frequency = 1380; master_tag = "engineering_dock_airlock"; name = "interior access button"; pixel_x = -30; pixel_y = -25; req_one_access = list(13,11,24)},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor/plating{dir = 2; icon_state = "warnplate"},/area/maintenance/engi_shuttle) "czg" = (/obj/machinery/portable_atmospherics/powered/pump/filled,/obj/machinery/light/small{dir = 1},/obj/machinery/atmospherics/pipe/simple/visible{dir = 4},/turf/simulated/floor,/area/engineering/atmos/storage) "czh" = (/obj/structure/bed/chair{dir = 8},/obj/machinery/power/apc{dir = 1; name = "north bump"; pixel_x = 0; pixel_y = 24},/obj/structure/cable/green{d2 = 2; icon_state = "0-2"},/turf/simulated/floor/plating,/area/maintenance/engi_shuttle) "czi" = (/obj/structure/cable/yellow{d2 = 4; icon_state = "0-4"},/turf/simulated/floor/plating/airless,/area/solar/port) "czj" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 5},/obj/machinery/atmospherics/pipe/simple/hidden/purple{dir = 9},/turf/simulated/floor{icon_state = "white"},/area/medical/virology) "czk" = (/obj/machinery/light{dir = 8},/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/extinguisher_cabinet{pixel_x = -24},/turf/simulated/floor{dir = 4; icon_state = "warning"},/area/rnd/xenobiology) -"czl" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/grille,/obj/machinery/door/firedoor/border_only,/obj/machinery/atmospherics/pipe/manifold/visible/yellow{dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/plating,/area/engineering/atmos) +"czl" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/medical/virology) "czm" = (/obj/machinery/atmospherics/pipe/simple/visible/green{tag = "icon-intact (SOUTHEAST)"; icon_state = "intact"; dir = 6},/turf/simulated/floor,/area/engineering/atmos) "czn" = (/obj/machinery/meter,/obj/machinery/atmospherics/pipe/manifold4w/hidden,/turf/simulated/wall/r_wall,/area/engineering/atmos/storage) "czo" = (/obj/item/weapon/crowbar,/obj/item/clothing/gloves/black,/obj/item/clothing/gloves/black,/obj/item/weapon/storage/box/lights/mixed,/obj/structure/table/steel,/turf/simulated/floor,/area/engineering/workshop) @@ -6761,11 +6760,11 @@ "cAa" = (/obj/machinery/disease2/diseaseanalyser,/obj/structure/disposalpipe/segment,/turf/simulated/floor{icon_state = "white"},/area/medical/virology) "cAb" = (/obj/machinery/alarm{dir = 4; icon_state = "alarm0"; pixel_x = -22; pixel_y = 0},/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 4},/turf/simulated/floor{icon_state = "white"},/area/medical/virology) "cAc" = (/obj/machinery/atmospherics/pipe/simple/hidden/purple{dir = 9},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 5},/turf/simulated/floor{icon_state = "white"},/area/medical/virology) -"cAd" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/grille,/obj/machinery/door/firedoor/border_only,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 5},/turf/simulated/floor/plating,/area/engineering/atmos) +"cAd" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/structure/grille,/obj/machinery/door/firedoor/border_only,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 5},/turf/simulated/floor/plating,/area/engineering/atmos) "cAe" = (/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/obj/machinery/atmospherics/unary/vent_pump/on{dir = 8},/turf/simulated/floor{icon_state = "white"},/area/medical/virology) "cAf" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/turf/simulated/wall/r_wall,/area/rnd/xenobiology) "cAg" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/wall/r_wall,/area/rnd/xenobiology) -"cAh" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/grille,/obj/machinery/door/firedoor/border_only,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/visible/green,/turf/simulated/floor/plating,/area/engineering/atmos) +"cAh" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/grille,/obj/machinery/door/firedoor/border_only,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/visible/green,/turf/simulated/floor/plating,/area/engineering/atmos) "cAi" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor{icon_state = "white"},/area/rnd/xenobiology) "cAj" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable/green{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor{icon_state = "white"},/area/rnd/xenobiology) "cAk" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor{icon_state = "white"},/area/rnd/xenobiology) @@ -6775,7 +6774,7 @@ "cAo" = (/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor{icon_state = "white"},/area/rnd/xenobiology) "cAp" = (/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{icon_state = "white"},/area/rnd/xenobiology) "cAq" = (/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor{icon_state = "white"},/area/rnd/xenobiology) -"cAr" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/grille,/obj/machinery/door/firedoor/border_only,/obj/machinery/atmospherics/pipe/simple/visible/yellow{dir = 9},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/plating,/area/engineering/atmos) +"cAr" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/grille,/obj/machinery/door/firedoor/border_only,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/plating,/area/engineering/atmos) "cAs" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/light/small{dir = 4},/turf/simulated/floor/plating,/area/maintenance/engineering) "cAt" = (/obj/machinery/atmospherics/pipe/manifold/hidden{dir = 8; icon_state = "map"; tag = "icon-manifold-f (WEST)"},/turf/simulated/wall/r_wall,/area/engineering/atmos/storage) "cAu" = (/obj/machinery/atmospherics/binary/pump{dir = 1; name = "N2O to Transit"},/turf/simulated/floor,/area/engineering/atmos) @@ -6829,13 +6828,13 @@ "cBq" = (/obj/item/device/radio/off{pixel_y = 6},/obj/item/device/radio/off{pixel_x = 6; pixel_y = 4},/obj/item/device/radio/off{pixel_x = -6; pixel_y = 4},/obj/item/device/radio/off,/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -29},/obj/structure/table/steel,/turf/simulated/floor,/area/engineering/workshop) "cBr" = (/obj/machinery/light,/obj/structure/closet,/turf/simulated/floor{dir = 1; icon_state = "warning"},/area/rnd/xenobiology) "cBs" = (/obj/machinery/light,/obj/item/weapon/wrench,/obj/item/device/flashlight,/obj/machinery/cell_charger,/obj/structure/table/steel,/turf/simulated/floor,/area/engineering/workshop) -"cBt" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/grille,/obj/machinery/door/firedoor/border_only,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers,/turf/simulated/floor/plating,/area/engineering/atmos) +"cBt" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/grille,/obj/machinery/door/firedoor/border_only,/obj/machinery/atmospherics/pipe/manifold/visible/yellow{dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/plating,/area/engineering/atmos) "cBu" = (/obj/structure/bed/chair{dir = 4},/obj/effect/decal/cleanable/cobweb,/turf/simulated/floor/plating,/area/maintenance/engi_shuttle) "cBv" = (/obj/machinery/light,/turf/simulated/floor,/area/engineering/atmos) "cBw" = (/obj/machinery/access_button{command = "cycle_interior"; frequency = 1379; master_tag = "incinerator_access_control"; name = "Incinerator airlock control"; pixel_x = -8; pixel_y = 24},/obj/structure/sign/fire{pixel_x = 32; pixel_y = 0},/obj/machinery/atmospherics/binary/pump{dir = 1},/turf/simulated/floor/plating,/area/maintenance/incinerator) "cBx" = (/obj/machinery/atmospherics/valve/digital{name = "CO2 Outlet Valve"},/turf/simulated/floor{dir = 6; icon_state = "yellow"},/area/engineering/atmos) "cBy" = (/obj/machinery/computer/general_air_control/large_tank_control{frequency = 1441; input_tag = "co2_in"; name = "Carbon Dioxide Supply Control"; output_tag = "co2_out"; sensors = list("co2_sensor" = "Tank")},/obj/machinery/atmospherics/unary/vent_scrubber/on,/obj/machinery/light,/turf/simulated/floor{dir = 2; icon_state = "yellow"},/area/engineering/atmos) -"cBz" = (/obj/structure/table/standard,/obj/structure/table/steel,/turf/simulated/floor/plating,/area/maintenance/engi_shuttle) +"cBz" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/grille,/obj/machinery/door/firedoor/border_only,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 5},/turf/simulated/floor/plating,/area/engineering/atmos) "cBA" = (/obj/machinery/alarm{pixel_y = 22},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor/plating,/area/maintenance/engi_shuttle) "cBB" = (/obj/machinery/atmospherics/valve/digital{name = "Phoron Outlet Valve"},/turf/simulated/floor{dir = 6; icon_state = "warning"},/area/engineering/atmos) "cBC" = (/obj/machinery/computer/general_air_control/large_tank_control{frequency = 1441; input_tag = "tox_in"; name = "Phoron Supply Control"; output_tag = "tox_out"; sensors = list("tox_sensor" = "Tank")},/obj/machinery/atmospherics/unary/vent_scrubber/on,/obj/machinery/light,/turf/simulated/floor{icon_state = "warning"},/area/engineering/atmos) @@ -6866,17 +6865,17 @@ "cCb" = (/obj/machinery/atmospherics/pipe/simple/hidden,/turf/simulated/wall/r_wall,/area/maintenance/incinerator) "cCc" = (/obj/machinery/atmospherics/pipe/simple/visible{dir = 4},/obj/machinery/atmospherics/pipe/simple/visible/red,/turf/simulated/floor,/area/engineering/atmos) "cCd" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/visible,/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/maintenance/incinerator) -"cCe" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/grille,/obj/machinery/door/firedoor/border_only,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/plating,/area/engineering/atmos) +"cCe" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/grille,/obj/machinery/door/firedoor/border_only,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/visible/green,/turf/simulated/floor/plating,/area/engineering/atmos) "cCf" = (/obj/structure/sign/nosmoking_2{pixel_x = 0; pixel_y = -30},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plating,/area/maintenance/incinerator) "cCg" = (/obj/structure/reagent_dispensers/fueltank,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plating,/area/maintenance/incinerator) "cCh" = (/obj/structure/reagent_dispensers/water_cooler,/turf/simulated/floor{icon_state = "white"},/area/medical/virology) "cCi" = (/obj/effect/decal/cleanable/dirt,/turf/simulated/floor{dir = 2; icon_state = "floorgrimecaution"},/area/maintenance/incinerator) -"cCj" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/grille,/obj/machinery/door/firedoor/border_only,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/visible/yellow,/turf/simulated/floor/plating,/area/engineering/atmos) -"cCk" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/machinery/door/firedoor/border_only,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 9},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 9},/obj/machinery/atmospherics/pipe/simple/visible/red,/turf/simulated/floor/plating,/area/engineering/atmos) +"cCj" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/grille,/obj/machinery/door/firedoor/border_only,/obj/machinery/atmospherics/pipe/simple/visible/yellow{dir = 9},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/plating,/area/engineering/atmos) +"cCk" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/grille,/obj/machinery/door/firedoor/border_only,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers,/turf/simulated/floor/plating,/area/engineering/atmos) "cCl" = (/obj/machinery/embedded_controller/radio/airlock/access_controller{tag_exterior_door = "incinerator_airlock_exterior"; id_tag = "incinerator_access_control"; tag_interior_door = "incinerator_airlock_interior"; name = "Incinerator Access Console"; pixel_x = -6; pixel_y = -26; req_access = list(12)},/obj/machinery/button/ignition{id = "Incinerator"; pixel_x = 6; pixel_y = -24},/obj/machinery/meter,/obj/machinery/atmospherics/pipe/simple/visible,/turf/simulated/floor{dir = 2; icon_state = "warningcorner"; tag = "icon-warningcorner (WEST)"},/area/maintenance/incinerator) -"cCm" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/engineering/engine_monitoring) +"cCm" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/grille,/obj/machinery/door/firedoor/border_only,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/plating,/area/engineering/atmos) "cCn" = (/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plating,/area/maintenance/incinerator) -"cCo" = (/obj/structure/disposalpipe/segment,/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/glass_engineering{name = "Engine Monitoring Room"; req_access = list(11)},/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor,/area/engineering/engine_monitoring) +"cCo" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/grille,/obj/machinery/door/firedoor/border_only,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/visible/yellow,/turf/simulated/floor/plating,/area/engineering/atmos) "cCp" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor,/area/engineering) "cCq" = (/obj/machinery/atmospherics/pipe/simple/visible,/obj/machinery/meter,/obj/machinery/button/remote/blast_door{id = "disvent"; name = "Incinerator Vent Control"; pixel_x = 0; pixel_y = -24; req_one_access = list(12,5)},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor{dir = 1; icon_state = "warningcorner"; tag = "icon-warningcorner (WEST)"},/area/maintenance/incinerator) "cCr" = (/obj/structure/sign/securearea,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/wall/r_wall,/area/engineering) @@ -6888,12 +6887,15 @@ "cCx" = (/obj/machinery/atmospherics/pipe/simple/hidden/yellow{tag = "icon-intact (NORTHEAST)"; icon_state = "intact"; dir = 5},/turf/simulated/floor/plating/airless,/area/medical/virology) "cCy" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 8; external_pressure_bound = 140; external_pressure_bound_default = 140; icon_state = "map_vent_out"; pressure_checks = 1; pressure_checks_default = 1; use_power = 1},/turf/simulated/floor/plating/airless,/area/medical/virology) "cCz" = (/obj/machinery/atmospherics/unary/vent_pump/high_volume{external_pressure_bound = 140; external_pressure_bound_default = 140; icon_state = "map_vent_out"; pressure_checks = 1; pressure_checks_default = 1; use_power = 1},/turf/simulated/floor/plating/airless,/area/engineering/atmos) -"cCA" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/engineering/engine_monitoring) +"cCA" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/machinery/door/firedoor/border_only,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 9},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 9},/obj/machinery/atmospherics/pipe/simple/visible/red,/turf/simulated/floor/plating,/area/engineering/atmos) "cCB" = (/obj/structure/bed/padded,/obj/item/weapon/bedsheet,/turf/simulated/floor{dir = 3; icon_state = "whitered"},/area/medical/virology) -"cCC" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/medical/virology) -"cCD" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/medical/virology) -"cCE" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/medical/virology) +"cCC" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/engineering/engine_monitoring) +"cCD" = (/obj/structure/disposalpipe/segment,/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/glass_engineering{name = "Engine Monitoring Room"; req_access = list(11)},/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor,/area/engineering/engine_monitoring) +"cCE" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/engineering/engine_monitoring) "cCF" = (/obj/structure/bed/padded,/obj/item/weapon/bedsheet,/obj/item/device/radio/intercom{freerange = 1; frequency = 1459; name = "Station Intercom (General)"; pixel_x = 30},/turf/simulated/floor{dir = 3; icon_state = "whitered"},/area/medical/virology) +"cCG" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/medical/virology) +"cCH" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/medical/virology) +"cCI" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/medical/virology) "cCJ" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/table/reinforced,/obj/machinery/button/remote/blast_door{id = "xenobio4"; name = "Containment Blast Doors"; pixel_x = 0; pixel_y = 4; req_access = list(55)},/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor{dir = 1; icon_state = "warning"},/area/rnd/xenobiology) "cCK" = (/obj/machinery/door/window/southright{dir = 1; name = "Containment Pen"; req_access = list(47)},/turf/simulated/floor{dir = 1; icon_state = "warning"},/area/rnd/xenobiology) "cCL" = (/obj/machinery/cryopod/robot/right,/turf/simulated/floor/plating,/area/engineering/drone_fabrication) @@ -6915,6 +6917,7 @@ "cDb" = (/obj/machinery/hologram/holopad,/turf/simulated/floor{icon_state = "white"},/area/medical/virology) "cDc" = (/obj/machinery/atmospherics/binary/pump{dir = 1; name = "Mix Tank to Port"},/turf/simulated/floor,/area/engineering/atmos) "cDd" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 6},/obj/machinery/atmospherics/pipe/simple/visible/red,/turf/simulated/floor,/area/engineering/atmos) +"cDe" = (/turf/simulated/shuttle/wall{icon_state = "swall_s"; dir = 2},/area/shuttle/constructionsite/station) "cDf" = (/obj/structure/disposaloutlet,/obj/structure/disposalpipe/trunk{dir = 1},/turf/simulated/floor/plating/airless,/area/space) "cDg" = (/obj/machinery/recharge_station,/obj/machinery/light_switch{pixel_x = 0; pixel_y = 27},/turf/simulated/floor/plating,/area/engineering/drone_fabrication) "cDh" = (/obj/machinery/clonepod,/turf/simulated/floor/engine,/area/rnd/xenobiology) @@ -6923,8 +6926,10 @@ "cDk" = (/turf/simulated/wall/r_wall,/area/engineering/engine_smes) "cDl" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'HIGH VOLTAGE'"; icon_state = "shock"; name = "HIGH VOLTAGE"; pixel_y = 0},/turf/simulated/wall/r_wall,/area/engineering/engine_smes) "cDm" = (/obj/machinery/portable_atmospherics/canister/oxygen,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/light,/turf/simulated/floor{icon_state = "bot"; dir = 1},/area/engineering/atmos) +"cDn" = (/turf/space,/turf/simulated/shuttle/wall{dir = 8; icon_state = "propulsion"; tag = "icon-propulsion (EAST)"},/area/shuttle/constructionsite/station) "cDo" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'RADIOACTIVE AREA'"; icon_state = "radiation"; name = "RADIOACTIVE AREA"; pixel_x = 0; pixel_y = 0},/turf/simulated/wall/r_wall,/area/engineering/engine_monitoring) "cDp" = (/obj/machinery/portable_atmospherics/canister/nitrogen,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor{icon_state = "bot"; dir = 1},/area/engineering/atmos) +"cDq" = (/turf/simulated/shuttle/wall{icon_state = "swall"; dir = 1},/area/shuttle/constructionsite/station) "cDr" = (/turf/simulated/wall/r_wall,/area/engineering/engine_airlock) "cDs" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/turf/simulated/floor/plating,/area/engineering/engine_airlock) "cDt" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/disposalpipe/segment,/obj/machinery/alarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 8},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 8},/obj/machinery/camera/network/engineering{c_tag = "Atmospherics Maintenance"; dir = 4},/turf/simulated/floor/plating{dir = 8; icon_state = "warnplatecorner"},/area/engineering/atmos/storage) @@ -7016,7 +7021,7 @@ "cFb" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor,/area/engineering/engine_smes) "cFc" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor,/area/engineering/engine_smes) "cFd" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/unary/vent_pump/on{dir = 4},/turf/simulated/floor,/area/engineering/engine_monitoring) -"cFe" = (/obj/structure/table/rack{dir = 1},/obj/item/clothing/suit/fire/firefighter,/obj/item/weapon/tank/oxygen,/obj/item/clothing/mask/gas,/obj/item/weapon/extinguisher,/obj/item/clothing/head/hardhat/red,/obj/item/clothing/glasses/meson,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor/plating,/area/maintenance/engi_shuttle) +"cFe" = (/turf/simulated/shuttle/wall{tag = "icon-swall2"; icon_state = "swall"; dir = 2},/area/shuttle/constructionsite/station) "cFf" = (/obj/machinery/hologram/holopad,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 8},/turf/simulated/floor,/area/engineering/engine_monitoring) "cFg" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 6},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor/plating{dir = 2; icon_state = "warnplate"},/area/maintenance/engi_shuttle) "cFh" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 9; icon_state = "intact"; tag = "icon-intact-f (NORTHWEST)"},/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 6},/area/maintenance/engi_shuttle) @@ -7029,7 +7034,7 @@ "cFo" = (/obj/machinery/light{icon_state = "tube1"; dir = 4},/obj/structure/closet/secure_closet/personal/patient,/obj/item/clothing/under/color/white,/obj/item/clothing/under/color/white,/obj/item/clothing/under/color/white,/obj/item/clothing/under/color/white,/obj/item/clothing/under/color/white,/obj/item/clothing/under/color/white,/obj/item/clothing/under/color/white,/obj/item/clothing/shoes/white,/obj/item/clothing/shoes/white,/obj/item/clothing/shoes/white,/obj/item/clothing/shoes/white,/obj/item/clothing/shoes/white,/obj/item/clothing/shoes/white,/obj/item/clothing/shoes/white,/turf/simulated/floor{icon_state = "white"},/area/medical/virology) "cFp" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/wall/r_wall,/area/engineering/engine_monitoring) "cFq" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/grille,/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/simple/hidden/universal,/turf/simulated/floor/plating,/area/engineering/engine_airlock) -"cFr" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/access_button{command = "cycle_interior"; frequency = 1380; master_tag = "engineering_dock_airlock"; name = "interior access button"; pixel_x = -30; pixel_y = -25; req_one_access = list(13,11,24)},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor/plating{dir = 2; icon_state = "warnplatecorner"},/area/maintenance/engi_shuttle) +"cFr" = (/turf/simulated/shuttle/wall{icon_state = "swall_s"; dir = 1},/area/shuttle/constructionsite/station) "cFs" = (/turf/simulated/floor/engine{carbon_dioxide = 50000; name = "co2 floor"; nitrogen = 0; oxygen = 0},/area/engineering/atmos) "cFt" = (/obj/machinery/portable_atmospherics/canister/carbon_dioxide,/turf/simulated/floor/engine{carbon_dioxide = 50000; name = "co2 floor"; nitrogen = 0; oxygen = 0},/area/engineering/atmos) "cFu" = (/turf/simulated/floor/engine{carbon_dioxide = 0; name = "phoron floor"; nitrogen = 0; oxygen = 0; phoron = 70000},/area/engineering/atmos) @@ -7053,6 +7058,7 @@ "cFM" = (/obj/effect/decal/cleanable/generic,/turf/simulated/floor/plating,/area/maintenance/engineering) "cFN" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating,/area/maintenance/engineering) "cFO" = (/obj/structure/sign/fire{pixel_y = 32},/obj/structure/lattice,/turf/space,/area/space) +"cFP" = (/turf/simulated/shuttle/wall{icon_state = "swall_s"; dir = 8},/area/shuttle/constructionsite/station) "cFQ" = (/obj/machinery/vending/coffee,/turf/simulated/floor{icon_state = "white"},/area/medical/virology) "cFR" = (/obj/machinery/vending/snack,/turf/simulated/floor{icon_state = "white"},/area/medical/virology) "cFS" = (/obj/structure/closet/emcloset,/obj/machinery/atmospherics/pipe/simple/hidden{dir = 9; icon_state = "intact"; tag = "icon-intact-f (NORTHWEST)"},/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 5},/area/engineering/engine_airlock) @@ -7303,11 +7309,8 @@ "cKJ" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 8},/obj/machinery/camera/network/engine{c_tag = "Engineering SMES"; dir = 8},/turf/simulated/floor,/area/engineering/engine_smes) "cKK" = (/obj/structure/table/reinforced,/obj/machinery/firealarm{dir = 8; pixel_x = -24},/obj/machinery/camera/network/engine{c_tag = "Engine Monitoring Room"; dir = 4},/turf/simulated/floor,/area/engineering/engine_monitoring) "cKL" = (/obj/structure/table/reinforced,/obj/machinery/button/remote/blast_door{desc = "A remote control-switch for the engine control room blast doors."; id = "EngineBlast"; name = "Engine Monitoring Room Blast Doors"; pixel_x = 0; pixel_y = -3; req_access = list(10)},/obj/machinery/button/remote/blast_door{desc = "A remote control-switch for the engine charging port."; id = "SupermatterPort"; name = "Reactor Blast Doors"; pixel_x = -6; pixel_y = 7; req_access = list(10)},/obj/machinery/button/remote/emitter{desc = "A remote control-switch for the engine emitter."; id = "EngineEmitter"; name = "Engine Emitter"; pixel_x = 6; pixel_y = 7; req_access = list(10)},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor,/area/engineering/engine_monitoring) -"cKM" = (/turf/simulated/shuttle/wall{icon_state = "swall12"; dir = 2},/area/shuttle/constructionsite/station) -"cKN" = (/turf/simulated/shuttle/wall{icon_state = "swall_s6"; dir = 2},/area/shuttle/constructionsite/station) "cKO" = (/obj/machinery/door/airlock/external{frequency = 1380; icon_state = "door_locked"; id_tag = "engineering_shuttle_hatch"; locked = 1; name = "Shuttle Hatch"; req_access = list(13)},/turf/simulated/floor/plating,/area/shuttle/constructionsite/station) "cKP" = (/obj/machinery/door/airlock/external{frequency = 1380; icon_state = "door_locked"; id_tag = "engineering_shuttle_hatch"; locked = 1; name = "Shuttle Hatch"; req_access = list(13)},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plating,/area/shuttle/constructionsite/station) -"cKQ" = (/turf/simulated/shuttle/wall{icon_state = "swall_s10"; dir = 2},/area/shuttle/constructionsite/station) "cKR" = (/obj/machinery/light/small,/obj/machinery/camera/network/engineering{c_tag = "Atmospherics Tank - Carbon Dioxide"; dir = 1},/turf/simulated/floor/engine{carbon_dioxide = 50000; name = "co2 floor"; nitrogen = 0; oxygen = 0},/area/engineering/atmos) "cKS" = (/obj/machinery/light/small,/obj/machinery/camera/network/engineering{c_tag = "Atmospherics Tank - Phoron"; dir = 1},/turf/simulated/floor/engine{carbon_dioxide = 0; name = "phoron floor"; nitrogen = 0; oxygen = 0; phoron = 70000},/area/engineering/atmos) "cKT" = (/obj/machinery/light/small,/obj/machinery/camera/network/engineering{c_tag = "Atmospherics Tank - Nitrous Oxide"; dir = 1},/turf/simulated/floor/engine{name = "vacuum floor"; nitrogen = 0.01; oxygen = 0.01},/area/engineering/atmos) @@ -7315,12 +7318,10 @@ "cKV" = (/obj/machinery/power/terminal{dir = 8},/obj/machinery/light,/obj/machinery/button/remote/airlock{id = "engine_electrical_maintenance"; name = "Door Bolt Control"; pixel_x = 5; pixel_y = -25; req_access = list(10); specialfunctions = 4},/obj/structure/cable/yellow{d2 = 4; icon_state = "0-4"},/turf/simulated/floor{dir = 10; icon_state = "warning"},/area/engineering/engine_smes) "cKW" = (/obj/machinery/computer/security/engineering,/turf/simulated/floor{icon_state = "warning"},/area/engineering/engine_monitoring) "cKX" = (/turf/simulated/shuttle/wall,/area/shuttle/constructionsite/station) -"cKY" = (/turf/simulated/shuttle/wall{tag = "icon-propulsion (EAST)"; icon_state = "propulsion"; dir = 4},/area/shuttle/constructionsite/station) "cKZ" = (/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 4},/area/shuttle/constructionsite/station) "cLa" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plating,/area/shuttle/constructionsite/station) "cLb" = (/obj/machinery/computer/station_alert,/turf/simulated/shuttle/floor{icon_state = "floor2"},/area/shuttle/constructionsite/station) "cLc" = (/obj/machinery/embedded_controller/radio/simple_docking_controller{frequency = 1380; id_tag = "engineering_shuttle"; pixel_x = 0; pixel_y = 25; req_one_access = list(13,11,24); tag_door = "engineering_shuttle_hatch"},/obj/structure/bed/chair{dir = 4},/obj/machinery/light{dir = 1},/turf/simulated/shuttle/floor{icon_state = "floor2"},/area/shuttle/constructionsite/station) -"cLd" = (/turf/simulated/shuttle/wall{icon_state = "swall1"; dir = 2},/area/shuttle/constructionsite/station) "cLe" = (/obj/machinery/door/airlock/maintenance{name = "Drone Fabrication/Engine Waste Handling"; req_one_access = list(10,24)},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/plating,/area/engineering/drone_fabrication) "cLf" = (/obj/machinery/door/airlock/hatch{icon_state = "door_locked"; id_tag = "engine_electrical_maintenance"; locked = 1; name = "Electrical Maintenance"; req_access = list(10)},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plating,/area/engineering/engine_room) "cLg" = (/obj/machinery/door/airlock/maintenance_hatch{frequency = 1379; icon_state = "door_closed"; id_tag = "engine_airlock_interior"; locked = 0; name = "Engine Airlock Interior"; req_access = list(11)},/turf/simulated/floor/plating,/area/engineering/engine_room) @@ -7338,10 +7339,7 @@ "cLs" = (/obj/structure/cable,/obj/machinery/power/smes/buildable/power_shuttle,/turf/simulated/floor/plating,/area/shuttle/constructionsite/station) "cLt" = (/obj/machinery/computer/atmos_alert,/turf/simulated/shuttle/floor{icon_state = "floor2"},/area/shuttle/constructionsite/station) "cLu" = (/obj/structure/bed/chair{dir = 4},/obj/machinery/light,/turf/simulated/shuttle/floor{icon_state = "floor2"},/area/shuttle/constructionsite/station) -"cLv" = (/turf/simulated/shuttle/wall{tag = "icon-swall2"; icon_state = "swall2"; dir = 2},/area/shuttle/constructionsite/station) "cLw" = (/obj/structure/window/reinforced{dir = 1},/obj/machinery/atmospherics/portables_connector,/obj/machinery/door/window/brigdoor/westleft{name = "Engine Waste"; req_access = newlist(); req_one_access = list(10,24)},/turf/simulated/floor/plating{icon_state = "platebot"},/area/engineering/engine_waste) -"cLx" = (/turf/simulated/shuttle/wall{icon_state = "swall_s5"; dir = 2},/area/shuttle/constructionsite/station) -"cLy" = (/turf/simulated/shuttle/wall{icon_state = "swall_s9"; dir = 2},/area/shuttle/constructionsite/station) "cLz" = (/obj/machinery/atmospherics/pipe/simple/visible/purple{dir = 9},/obj/machinery/door/window/brigdoor/westleft{name = "Engine Waste"; req_access = newlist(); req_one_access = list(10,24)},/turf/simulated/floor/plating{icon_state = "platebot"},/area/engineering/engine_waste) "cLA" = (/obj/structure/window/reinforced,/obj/machinery/atmospherics/binary/pump{dir = 8; name = "waste pump"},/obj/machinery/door/window/brigdoor/westleft{name = "Engine Waste"; req_access = newlist(); req_one_access = list(10,24)},/turf/simulated/floor/plating{icon_state = "platebot"},/area/engineering/engine_waste) "cLB" = (/obj/machinery/button/remote/blast_door{desc = "A remote control-switch for the engine control room blast doors."; id = "EngineBlast"; name = "Engine Monitoring Room Blast Doors"; pixel_x = 5; pixel_y = -25; req_access = list(10)},/obj/machinery/button/remote/blast_door{desc = "A remote control-switch for the engine charging port."; id = "SupermatterPort"; name = "Reactor Blast Doors"; pixel_x = -5; pixel_y = -25; req_access = list(10)},/obj/machinery/light,/obj/machinery/atmospherics/pipe/simple/visible/yellow{dir = 4},/turf/simulated/floor/plating{dir = 2; icon_state = "warnplate"},/area/engineering/engine_room) @@ -7471,18 +7469,18 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaauNavBawBavDauNavEawCavGauNavHavIawLavKavLavMavNavOauQaaaaaaaaqaaaapJapJapJapJapJaafbeSaafapJapJapJapJapJaaaaaIaaaaaaaaaaaaaaaaaaaaaaaaawkawMavSaxdawRawoavWavXanXaaaaaaalWalWalWavYavZawaalWaxpaxuaxqaweawpaxwaukawhaxyautaxAawlarAawmauraxCarEatBasZaxGawUawYaxaaxbawZatFatFatFawsawtawuatFatFatNaxOawwauGauHauHauHauJawAavxawzaykatRatRatRatRatRatRatRatRatRatRatUaafaaaaaaaaaaaaaaaaaaaafaafaaaaafaaaaaaaybaaaaaaaafaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaauNawGawHawIauNawGawHawIauNawJavHavHavHavHavHavHavHasAaaaaaaaaIaaaaafaaaaafaafaaaaaaayiaaaaaaaafaaaaaaaafaaaaaIaafaaaaaaaafaafaaaaaaaafawPawMawQayjawRawSaucawTanXaafaaLcqTatxatxatxatxatxatxatxatxatxatxatxatxatxatxatxatxatxatxarAawVaurawWarEatBasZayqaxjaysatCaxVavnayzaxcaxhaxeaxhaxgaxfaxiaxkaxlaxmaxnaxoaxoaxoaxnaxmavxawEauoatRatRatRatRatRatRatRatRatRatRatUaafaaaaaaaaaaaaaaaaaaaaaaafaafaafaaaazoayNazoaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaatSauNayOaxxatSauNaySaxxatSauNazgauNauNauNauNauNavHatqaaaaaaaaIaaIaaIaaaaaaaafaaaaxBazjaxBaafaafaafaafaaIaaIaaIaafanXanXanXanXaxDaxEaxEaxFanXanXanXanXazkaucaucanXaxHaxIanXanXaxJaxKaxLaxMaxMaxMaxMaxMaxMaxMaxMaxNaxMaxMaxMaxMaxMaznaxPaxQaxRaznavpasZaxSawjcfSatCazpaxXaxXazBaxZaxYayaazCaxXavqauTayeayfaygayhayhayhayhawXavxawEauoatRatRatRatRatRatRatRatRatRatRatUaafaaaaaaaaaaaaaaaaaaaaaaaaaafaafaaaaAuazFaAuaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaavcayoaypayoazUayoayrayoaAbaytayvayvayvayvaywauNawNatqaaaaafaafaaaaaaaaaaaaaafaaaayyaAjayAaafaaaaafaaaaaaaaaaaaaaaanXayBayCayDayCayCayCayCayEayCayCayFayGayDayHayIaxMaxMaxMaxMaxMaxMayJayKayLayLayLayLayMayLayLavAayLayMayLayLayLarAaAtayPayQarEaAiasZcfSaycaxUatCayUayTayWaAvayYayXayYaAHayTazaavPazcazdazeazdazdazfaxraAWaxtaxTaxvatRatRatRatRatRatRatRatRatRatRatUaafaaaaaaaaaaaaaaaaaaaaaaaaaafaafaBuaBvaBaaBxaByaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaawDazrazsaztazuazvazwazxazyazwazzazAazwazwaBcauNavHauRaafaafaaaaaaaaaaaaaaaaafazDazEaBkazGazHaaaaafaaaaaaaaaaaaaaaanXazIanXazJazKazLazLazLazMazLazLazLazNazJazOazPazPazPazPazPazPazPazQazRayLazSazTaBwazVazWazXazYazZaAaaBEazTaAcarAaAdayPayQarEaAiasZaBOaAeawgatCaxWaxXaxXaxXaxXazBaBQaAlaAmaAnaxkaAoaylaApaApaApaAqayVatPawFatPatPatRatRatRatRatRatRatRatRatRatRatUaafaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaCvaCwaCeaCyaCvaaaaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafauNaAwaydaAwaAyazsazsaAzaAwaydaAwaAAaABaACaADauNavHauQauQaAEauUauUauUauUauVauQaAFaAGaCiaAIaAFanXanXaxHaAJaxIanXanXanXazIaAKazJaaaaafaaaaafaaaaafaaaaafaaaazJazOazPaALaAMaANaAOaAPazPazQaucayLaAQaAQaynaASaATaAUaAVaATaCtayZazTaAcarAaAdayPaDdarEaAiasZaxGaAgaAhaBbayRaBdaBeazhaBgaBhaBiaBjaBjaCDaBjatPaBlaBmaBnaBoaBpaBraxvaziaCJaCHatRatRatRatRatRatRatRatRatRatRatUaafaaaaaaaaaaaaaaaaacaaaaaaaafaaaaCvazlaDAaDBaCvaaaaaaaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaBzatSaBAawHaBBaBCaBDaCLaBFaBBawHazqazbaBIaAraAxaBLavHavHavHavHavHavHavHavHaDcaBPaAFazmaBRaBSaAFaBTaBUayCayCayCayCayCaBVaBWaBXazJaafaBYaBYaBYaBYaBYaBYaBYaafazJazOazPaBZaCaaCbaCcaBZazPazQaCdayLayLayLayLaDnaCfaCgaChaCfaDoaARazTaCkarAaAdayPaClarEaJCasZaDtaAYaDxatCaxWavqatEaBjaBjaBjaBjaBjaCqaCraCsaBjatPatPatPatPaDyatPatPaAfaAkaDQatRatRatRatRatRatRatRatRatRatRatraafaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaCvaEXaEYaDYaCvaaaaaaaaaaafaafaaaaaaaaaaaaaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaawDaydaCzaCAaCAaCAaCAaCBaydawDaaaaBIaCCaxzaBLaCEaCEaCEaCEaCEaCEaCEavHaCFaCGaAFaEcaCIaAsaAFaCKaEdaCKaCKaCKaCKaCKaCKaCKaCKaCMaaaaBYaCNaCOaCPaCQaCRaBYaaaazJazOazPaBZaCSaCTaCUaBZazPazQanXayLaCVaCWaynaCXaCYaCZaDaaDbaEeayLayLayLarAaAdayPayQarEaAiasZaEgaEfawgatCaDgavqatEaDhaDiaDjaDkaBjaCqaDlaCsaBjaDmaEhaEvaDpaDqaGwaDsatPatPatPaAXasDasDasDasDaAZasDasDasDasDaBfaafaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaCvaCvaECaGyaCvaDCaDDaDEaDCaDCaDCaDCaDCaDCaDCaDFaDGaDGaDGaDHaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaTDaTDaTDaTDaTDaTDaTDaaaaaaaaaaaaaaaaaaaaaaaaaaaaDIaDJaDKaDJaDJaDLaDMaDJaDJaDKaDNaDOaBIaDPaEMaBLaDRaDSaDTaDUaDVaDWaCEavHaDXauQaAFaAFaESaDZaCMaEaaEbaEVaFnaFhaFyaFqaFEaEiaEjaCMaafaBYaEkaElaEmaEnaEoaBYaafazJazOazPaEpaEqaEraEsaEtazPazQaEuayLazSazTaFGaEwaCfaExaEyaATaFIaBGaEBaEBarAaAdayPayQarEaAiaCmaCmaCmaCmaCmaEHaEIatEaEJaEKaEKaELaFSaEKaENaEOaBjaEPaEQaERaFZaETaCnaDsaaaaafaafaafaaaaaaaafaafaafaafaaaaaaaafaafaafaaaaaaaaaaaaaaaaaaaaaaDCaBsaBqaDCaBtaCpaGfaFdaFdaFdaFdaFeaFfaFgaFgaFgaFgaFgaFgaFgaGkaFiaFjaafaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaTDaTDaTDaTDaTDaTDaTDaTDaTDaaaaaaaaaaaaaaaaDIaDNaDJaFkaGqaFlaFmaGraFoaFpaGxaFlaGHaFraFsaFtaDPayuaBLaFvayxaBMaCxaBMaBNaGPavHaFuaGVaFxaHcaFzaDfaHdaFJaFKaFLaFLaFLaDraFLaFLaFNaFOaCMaaaaBYaHIaElaFQaEnaFRaBYaaaazJazOazPaHJaFTaFUaFTaFVazPazQaFWayLayLayLayLaFXaCfaCgazTaCfaFYaHYazTaGaarAaGbaGcaGdarEaAiaDeaDvaDuaCoaDeaIcaDzaIhaGlaGmaBjaBjaBjaBjaBjaBjaGnaGoaGpaIkaDpaInaIlaDsaDsaDsaDsaDsaDsaDsaDsaDsaFaaFbaDsaDsaFaaGtaDsaDsaaaaaaaDsaDCaDCaDCaDCaEZaEWaFdaFcaFwaDCaDCaDCaDCaDCaBHaGEaGFaGFaGFaGFaGFaGFaGGaGGaIzaGGaGGaGGaGGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaTDaTDaTDaTDaTDaTDaTDaTDaTDaaaaaaaaaaaaaaaaFraGIaIDaGKaFlaFMaFlaFMaFlaFMaFlaFMaFlaGMaGNaGOaDPayuaBLaIIaFAaGRaGSaGTaGUaCEaFBaFDaFCaFCaFCbazaIKaFCaISaFLaFLaFLaFLaFLaFLaFLaFNaIVaCMaafaBYaHeaHfaHgaHhaHiaBYaafazJazOazPaHjaFPaFUaHlaHmazPaHnaHoayLaHpazTaynaHqaATaHrazTaCfaFYaBJazTaHtarAaHuaHvaHwarEaGuaIZaEUaGvaDwaJjaGzaGjatEaHCaHDaBjaHEaBjaHFaBjaHGaBjaHHaGpaJsaDpaJBaJwaHLaHMaHMaHNaHOaHKaHKaHKaHKaHKaHPaHKaHKaHKaHQaHVaDsaDsaDsaDsaGBaGAaGCaGCaGLaGJaDCaDCaJDaDCaIdaIeaIfaIgaGFaJHaGFaIiaIjaKjaKlbinaKpaIoaIpaIqaKxaIsbjFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaIuaIuaIuaIuaIuaIuaIuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaIvaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaTDaTDaTDaTDaTDaTDaTDaTDaTDaaaaaaaaaaaaaaaaIwaFlaFlaDKaFlaFMaFlaFMaIxaFMaIyaFMaFlaGMaGNaGOaDPaFFaIAaIAaKHaCjaBKaCjaIAaIAaIEaIFaFCaGQaFHaGWaHkaFCaKPaILaIMaFLaFLaHRaFLaIOaIPaKPaCMaaaaBYaBYaIQaHSaIQaBYaBYaaaazJazOazPaKQaITaIUaFTaFTaKVaIWaIXayLaIYazTaKXaEwaCfaJaaEyaATaJbaEzazTaJdaJeaGDaEAaGXaMbaKYaCuaCuaCuaCuaCuaHUaHTaJlaJmaJnaBjaJoaBjaJpaBjaJqaBjaJraGpaLcaHsaGsaGsaDqaJvaDsaDsaLdaDsaDsaICaDsaGsaJyaGsaGsaGsaJzaHZaHXaHWaIaaLeaIraIbaIbaIbaIRaINaIgaJIaJJaLiaJkaJMaJNaIgaJOaJPaGFaJQaJAaJSaJTbinaJUaIoaJVaLkaGGaGGaGGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaIuaIuaIuaIuaIuaIuaIuaIuaIuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaTDaTDaTDaTDaTDaTDaTDaTDaTDaaaaaaaaaaaaaaaaFraJXaIDaGKaFlaFMaFlaFMaFlaFMaFlaFMaFlaGMaGNaGOaDPaGYaJcaHaaGZaHbaHbaIBaLmaIHaIGaIJaLwaJZaJYaJGaKaaFCaKPaKmaKnaKoaLAaKPaKqaKraKsaKtaKuaaaaafaaaaJfaKwaJfaaaaafaaaaKuazOazPaLBaKyaKzaKAaKBazPaKCaKDayLaKEazTaynaKFaKGaHrazTaLYaKIaJgaKKaKLaJeaEDaKNaKOaMcaEEaJhaaaaaaaJlaKSaJKaMvaJlaJLaJnaJnaJnaKWaJnaJnaJnaBjaDpaMwaDpaDpaDpaDpaMEaDpaKZaLaaLbaMFaMXaMVaLfaJtaLhaLfaLfaLfaLfaLfaNcaLfaLfaLfaLfaLfaLfaLfaLfaJRaIgaLjaJWaLlaEFaKbaLoaIgaLpaKTaGFaLraLsaLtaJTaNeaJUaIoaJVaIoaKUaNAaJxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaIuaIuaIuaIuaIuaIuaIuaIuaIuaIuaIuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaTDaTDaTDaTDaTDaTDaTDaTDaTDaaaaaaaaaaaaaaaaLyaLzaDJaFkaGqaFlaFlaNGaFlaFlaNPaFlaGHaFraLCaLDaDPaLEaKvaLGaLHaLGaLGaLGaLGaLGaLIaLJaFCaFCaFCaFCaFCaFCaLLaLMaLNaLOaLOaLOaLOaLPaLQaLRaKuaKMaKJaKJaKRaLVaLgaKJaKJaLxaKuaNXaKuaKuaLFaMaaLFaJeaJeaMbaOiaJeaJeaJeaJeaLTaLSaOpaOoaLWaLUaJeaJeaJeaJeaMjaKNaMkaMkaMlaLXaMdaLZaJlaMpaLqaLnaJlaJlaJlaJlaJlaJlaJlaJlaBjaBjaMsaMtaMuaOqaOsaLvaMyaMfaKZaMAaMBaMCaMCaMDaLfaOCaOHaMGaMHaMIaMJaMKaMLaMeaMNaMHaMJaMIaMHaMOaLfaJRaIgaMPaMgaMRaMSaMqaMUaIgaOMaMWaPiaMYaMraNaaNbaGFaGGaQaaJVaIoaMxaQcaMhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaIuaIuaIuaIuaIuaIuaIuaIuaIuaIuaIuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaTDaTDaTDaTDaTDaTDaTDaaaaaaaaaaaaaaaaaaaaaaaaaaaaLyaDJaDKaDJaDJaDLaDMaDJaDJaDKaLzaNgaBIaNhaLEaMiaMzaMzaNkaMzaNlaIAaNmaNnaLJaMmaNpaMnaNraNsaNtaNraNuaNraNraNraNvaNraNraNwaNxaMoaNzaNzaNBaQdaNCaNzaNzaNzaNzaNDaNEaNFaQgaNraNHaMMaNJaNfaNLaNMaNLaNNaNOaQlaNQaNQaNRaNSaNTaNSaNiaNVaNWaEGaNYaNZaOaaObaOcaMkaMkaMkaNoaOeaMTaMQaOhaQqaOjaOkaOlaOmaOnaJlaQyaQxaQAaOraOtaOtaOuaMZaOwaNdaKZaOyaOzaOAaOAaOBaLfaQEaODaOEaOEaOEaOEaOFaOGaQJaOIaOJaOKaOKaOLaQTaLfaJRaIgaONaOOaNjaOfaONaONaIgaORaOSaGFaOTaOUaOVaOWaGFaIoaIoaJVaIoaGGaGGaGGaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaIuaIuaIuaIuaIuaIuaIuaIuaIuaIuaIuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaavcayoaypayoazUayoayrayoaAbaytayvayvayvayvaywauNawNatqaaaaafaafaaaaaaaaaaaaaafaaaayyaAjayAaafaaaaafaaaaaaaaaaaaaaaanXayBayCayDayCayCayCayCayEayCayCayFayGayDayHayIaxMaxMaxMaxMaxMaxMayJayKayLayLayLayLayMayLayLaArayLayMayLayLayLarAaAtayPayQarEaAiasZcfSaycaxUatCayUayTayWaAvayYayXayYaAHayTazaavAazcazdazeazdazdazfaxraAWaxtaxTaxvatRatRatRatRatRatRatRatRatRatRatUaafaaaaaaaaaaaaaaaaaaaaaaaaaafaafaBuaBvaBaaBxaByaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaavPazrazsaztazuazvazwazxazyazwazzazAazwazwaBcauNavHauRaafaafaaaaaaaaaaaaaaaaafazDazEaBkazGazHaaaaafaaaaaaaaaaaaaaaanXazIanXazJazKazLazLazLazMazLazLazLazNazJazOazPazPazPazPazPazPazPazQazRayLazSazTaBwazVazWazXazYazZaAaaBEazTaAcarAaAdayPayQarEaAiasZaBOaAeawgatCaxWaxXaxXaxXaxXazBaBQaAlaAmaAnaxkaAoaylaApaApaApaAqayVatPawDatPatPatRatRatRatRatRatRatRatRatRatRatUaafaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaCvaCwaCeaCyaCvaaaaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafauNaAwawFaAwaAyazsazsaAzaAwawFaAwaAAaABaACaADauNavHauQauQaAEauUauUauUauUauVauQaAFaAGaCiaAIaAFanXanXaxHaAJaxIanXanXanXazIaAKazJaaaaafaaaaafaaaaafaaaaafaaaazJazOazPaALaAMaANaAOaAPazPazQaucayLaAQaAQaydaASaATaAUaAVaATaCtaynazTaAcarAaAdayPaDdarEaAiasZaxGaAgaAhaBbayRaBdaBeazhaBgaBhaBiaBjaBjaCDaBjatPaBlaBmaBnaBoaBpaBraxvaziaCJaCHatRatRatRatRatRatRatRatRatRatRatUaafaaaaaaaaaaaaaaaaacaaaaaaaafaaaaCvazlaDAaDBaCvaaaaaaaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaBzatSaBAawHaBBaBCaBDaCLaBFaBBawHazbayZaBIazqaAxaBLavHavHavHavHavHavHavHavHaDcaBPaAFazmaBRaBSaAFaBTaBUayCayCayCayCayCaBVaBWaBXazJaafaBYaBYaBYaBYaBYaBYaBYaafazJazOazPaBZaCaaCbaCcaBZazPazQaCdayLayLayLayLaDnaCfaCgaChaCfaDoaARazTaCkarAaAdayPaClarEaJCasZaDtaAYaDxatCaxWavqatEaBjaBjaBjaBjaBjaCqaCraCsaBjatPatPatPatPaDyatPatPaAfaAkaDQatRatRatRatRatRatRatRatRatRatRatraafaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaCvaEXaEYaDYaCvaaaaaaaaaaafaafaaaaaaaaaaaaaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaavPawFaCzaCAaCAaCAaCAaCBawFavPaaaaBIaCCaxzaBLaCEaCEaCEaCEaCEaCEaCEavHaCFaCGaAFaEcaCIaAsaAFaCKaEdaCKaCKaCKaCKaCKaCKaCKaCKaCMaaaaBYaCNaCOaCPaCQaCRaBYaaaazJazOazPaBZaCSaCTaCUaBZazPazQanXayLaCVaCWaydaCXaCYaCZaDaaDbaEeayLayLayLarAaAdayPayQarEaAiasZaEgaEfawgatCaDgavqatEaDhaDiaDjaDkaBjaCqaDlaCsaBjaDmaEhaEvaDpaDqaGwaDsatPatPatPaAXasDasDasDasDaAZasDasDasDasDaBfaafaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaCvaCvaECaGyaCvaDCaDDaDEaDCaDCaDCaDCaDCaDCaDCaDFaDGaDGaDGaDHaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaTDaTDaTDaTDaTDaTDaTDaaaaaaaaaaaaaaaaaaaaaaaaaaaaDJaDIaDKaDIaDIaDLaDMaDIaDIaDKaDOaDNaBIaDPaEMaBLaDRaDSaDTaDUaDVaDWaCEavHaDXauQaAFaAFaESaDZaCMaEaaEbaEVaFnaFhaFyaFqaFEaEiaEjaCMaafaBYaEkaElaEmaEnaEoaBYaafazJazOazPaEpaEqaEraEsaEtazPazQaEuayLazSazTaFGaEwaCfaExaEyaATaFIaBGaEBaEBarAaAdayPayQarEaAiaCmaCmaCmaCmaCmaEHaEIatEaEJaEKaEKaELaFSaEKaENaEOaBjaEPaEQaERaFZaETaCnaDsaaaaafaafaafaaaaaaaafaafaafaafaaaaaaaafaafaafaaaaaaaaaaaaaaaaaaaaaaDCaBsaBqaDCaBtaCpaGfaFdaFdaFdaFdaFeaFfaFgaFgaFgaFgaFgaFgaFgaGkaFiaFjaafaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaTDaTDaTDaTDaTDaTDaTDaTDaTDaaaaaaaaaaaaaaaaDJaDOaDIaFkaGqaFlaFmaGraFoaFpaGxaFlaGHaFsaFraFtaDPayuaBLaFvayxaBMaCxaBMaBNaGPavHaFuaGVaFxaHcaFzaDfaHdaFJaFKaFLaFLaFLaDraFLaFLaFNaFOaCMaaaaBYaHIaElaFQaEnaFRaBYaaaazJazOazPaHJaFTaFUaFTaFVazPazQaFWayLayLayLayLaFXaCfaCgazTaCfaFYaHYazTaGaarAaGbaGcaGdarEaAiaDeaDvaDuaCoaDeaIcaDzaIhaGlaGmaBjaBjaBjaBjaBjaBjaGnaGoaGpaIkaDpaInaIlaDsaDsaDsaDsaDsaDsaDsaDsaDsaFaaFbaDsaDsaFaaGtaDsaDsaaaaaaaDsaDCaDCaDCaDCaEZaEWaFdaFcaFwaDCaDCaDCaDCaDCaBHaGEaGFaGFaGFaGFaGFaGFaGGaGGaIzaGGaGGaGGaGGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaTDaTDaTDaTDaTDaTDaTDaTDaTDaaaaaaaaaaaaaaaaFsaGIaIDaGKaFlaFMaFlaFMaFlaFMaFlaFMaFlaGMaFraGOaDPayuaBLaIIaFAaGRaGSaGTaGUaCEaFBaFDaFCaFCaFCbazaIKaFCaISaFLaFLaFLaFLaFLaFLaFLaFNaIVaCMaafaBYaHeaHfaHgaHhaHiaBYaafazJazOazPaHjaFPaFUaHlaHmazPaHnaHoayLaHpazTaydaHqaATaHrazTaCfaFYaBJazTaHtarAaHuaHvaHwarEaGuaIZaEUaGvaDwaJjaGzaGjatEaHCaHDaBjaHEaBjaHFaBjaHGaBjaHHaGpaJsaDpaJBaJwaHLaHMaHMaHNaHOaHKaHKaHKaHKaHKaHPaHKaHKaHKaHQaHVaDsaDsaDsaDsaGBaGAaGCaGCaGLaGJaDCaDCaJDaDCaIdaIeaIfaIgaGFaJHaGFaIiaIjaKjaKlbinaKpaIoaIpaIqaKxaIsbjFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaIuaIuaIuaIuaIuaIuaIuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaIvaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaTDaTDaTDaTDaTDaTDaTDaTDaTDaaaaaaaaaaaaaaaaIwaFlaFlaDKaFlaFMaFlaFMaIxaFMaIyaFMaFlaGMaFraGOaDPaFFaIAaIAaKHaCjaBKaCjaIAaIAaIEaIFaFCaGQaFHaGWaHkaFCaKPaILaIMaFLaFLaHRaFLaIOaIPaKPaCMaaaaBYaBYaIQaHSaIQaBYaBYaaaazJazOazPaKQaITaIUaFTaFTaKVaIWaIXayLaIYazTaKXaEwaCfaJaaEyaATaJbaEzazTaJdaJeaGDaEAaGXaMbaKYaCuaCuaCuaCuaCuaHUaHTaJlaJmaJnaBjaJoaBjaJpaBjaJqaBjaJraGpaLcaHsaGsaGsaDqaJvaDsaDsaLdaDsaDsaICaDsaGsaJyaGsaGsaGsaJzaHZaHXaHWaIaaLeaIraIbaIbaIbaIRaINaIgaJIaJJaLiaJkaJMaJNaIgaJOaJPaGFaJQaJAaJSaJTbinaJUaIoaJVaLkaGGaGGaGGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaIuaIuaIuaIuaIuaIuaIuaIuaIuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaTDaTDaTDaTDaTDaTDaTDaTDaTDaaaaaaaaaaaaaaaaFsaGNaIDaGKaFlaFMaFlaFMaFlaFMaFlaFMaFlaGMaFraGOaDPaGYaJcaHaaGZaHbaHbaIBaLmaIHaIGaIJaLwaJZaJYaJGaKaaFCaKPaKmaKnaKoaLAaKPaKqaKraKsaKtaKuaaaaafaaaaJfaKwaJfaaaaafaaaaKuazOazPaLBaKyaKzaKAaKBazPaKCaKDayLaKEazTaydaKFaKGaHrazTaLYaKIaJgaKKaKLaJeaEDaKNaKOaMcaEEaJhaaaaaaaJlaKSaJKaMvaJlaJLaJnaJnaJnaKWaJnaJnaJnaBjaDpaMwaDpaDpaDpaDpaMEaDpaKZaLaaLbaMFaMXaMVaLfaJtaLhaLfaLfaLfaLfaLfaNcaLfaLfaLfaLfaLfaLfaLfaLfaJRaIgaLjaJWaLlaEFaKbaLoaIgaLpaKTaGFaLraLsaLtaJTaNeaJUaIoaJVaIoaKUaNAaJxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaIuaIuaIuaIuaIuaIuaIuaIuaIuaIuaIuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaTDaTDaTDaTDaTDaTDaTDaTDaTDaaaaaaaaaaaaaaaaJXaLyaDIaFkaGqaFlaFlaNGaFlaFlaNPaFlaGHaFsaFraLDaDPaLEaKvaLGaLHaLGaLGaLGaLGaLGaLIaLJaFCaFCaFCaFCaFCaFCaLLaLMaLNaLOaLOaLOaLOaLPaLQaLRaKuaKMaKJaKJaKRaLVaLgaKJaKJaLxaKuaNXaKuaKuaLFaMaaLFaJeaJeaMbaOiaJeaJeaJeaJeaLTaLSaOpaOoaLWaLUaJeaJeaJeaJeaMjaKNaMkaMkaMlaLXaMdaLZaJlaMpaLqaLnaJlaJlaJlaJlaJlaJlaJlaJlaBjaBjaMsaMtaMuaOqaOsaLvaMyaMfaKZaMAaMBaMCaMCaMDaLfaOCaOHaMGaMHaMIaMJaMKaMLaMeaMNaMHaMJaMIaMHaMOaLfaJRaIgaMPaMgaMRaMSaMqaMUaIgaOMaMWaPiaMYaMraNaaNbaGFaGGaQaaJVaIoaMxaQcaMhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaIuaIuaIuaIuaIuaIuaIuaIuaIuaIuaIuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaTDaTDaTDaTDaTDaTDaTDaaaaaaaaaaaaaaaaaaaaaaaaaaaaJXaDIaDKaDIaDIaDLaDMaDIaDIaDKaLyaLzaBIaNhaLEaMiaMzaMzaNkaMzaNlaIAaNmaNnaLJaMmaNpaMnaNraNsaNtaNraNuaNraNraNraNvaNraNraNwaNxaMoaNzaNzaNBaQdaNCaNzaNzaNzaNzaNDaNEaNFaQgaNraNHaMMaNJaNfaNLaNMaNLaNNaNOaQlaNQaNQaNRaNSaNTaNSaNiaNVaNWaEGaNYaNZaOaaObaOcaMkaMkaMkaNoaOeaMTaMQaOhaQqaOjaOkaOlaOmaOnaJlaQyaQxaQAaOraOtaOtaOuaMZaOwaNdaKZaOyaOzaOAaOAaOBaLfaQEaODaOEaOEaOEaOEaOFaOGaQJaOIaOJaOKaOKaOLaQTaLfaJRaIgaONaOOaNjaOfaONaONaIgaORaOSaGFaOTaOUaOVaOWaGFaIoaIoaJVaIoaGGaGGaGGaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaIuaIuaIuaIuaIuaIuaIuaIuaIuaIuaIuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaTDaTDaTDaTDaTDaTDaTDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaNqaNyaOZaPaaPaaPaaPaaPbaNyaNqaaaaBIaPcaPdaNIaOvaOgaPhaPhaOxaIAaPjaNnaPkaNKaPmaNUaPoaPpaPqaPqaPraPsaPsaPsaPtaPuaPuaPvaPwaMMaPqaPqaPxaPyaPzaPAaPBaPBaPCaPBaPDaPyaPyaPyaPEaOdaPGaOXaMkaPIaPJaPJaPJaPJaPJaPJaPJaPJaPKaPJaOYaPMaPNaPOaPPaPQaPRaPSaPTaPJaPUaPJaPeaPWaPXaPWaPWaPWaPWaPWaPWaPYaPZaRsaQbaQbaQbaRbaQbaQbaRraQeaQfaRxaKZaQhaMCaQiaQjaQkaLfaRyaQmaQnaQnaQnaQnaQnaQoaPlaOPaQraQnaQnaQsaQtaLfaJRaIgaQuaONaONaQvaONaQwaIgaGFaGFaGFaGFaGFaGFaRCaGFaIoaIoaJVaIoaSoaOQaGGaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaIuaIuaIuaIuaIuaIuaIuaIuaIuaIuaIuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaTDaTDaTDaTDaTDaTDaTDaTDaTDaaaaaaaaaaaaaaaaafaBIawqaBIaPnaQCaGOaQDaStaQFaQGaGOaQCaPHaPFaBIaSuaLEaNIaPfaQLaPhaPhaOxaIAaQMaNnaLJaPLaNpaOdaQPaNraNraQQaQRaQSaSvaNraQUaQVaQWaQVaQXaPVaQVaQVaQZaQVaQVaRaaSyaQVaRcaQVaRdaNraNraNraReaOdaPGaOXaMkaRfaMkaRgaRgaRgaRgaRgaRgaRgaRgaRhaGDaRgaRjaRgaRgaRkaRgaRgaRgaRgaRlaRmaQpaRoaRoaRoaRoaRoaRoaRoaRpaRqaRpaJlaImawOawOawOawOawOaItaRuaRvaRwaKZaKZaKZaKZaKZaSEaLfaSHaQmaQnaRzaRAaRBaPgaRDaQBaRFaQraRGaRHaRIaRJaLfaJRaIgaRKaRKaRLaRMaRNaRNaROaIgaRPaRQaRRaGGaRSaRTaRUaRVaRVaRWaRXaGGaRYaGGaRZaRZaRZaQIaQHaQNaaaaaaaaaaaaaIuaIuaIuaIuaIuaIuaIuaIuaIuaIuaIuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaTDaTDaTDaTDaTDaTDaTDaTDaTDaTDaTDaTDaTDaTDaTDaGeaGgaGgaGiaSIaGhaQOaNyaLDaDPaHxaHxaSfaLDaNyaLDaHyaHAaHzaLEaQYaSUaSUaNkaSUaNlaIAaSmaNnaSnaIAaLKaLKaSVaLKaLKaLKaLKaLKaLKaOdaRiaLKaLKaLKaLKaLKaLKaSraSsaSraLKaSZaLKaNraQPaTPaUfaSwaSxaNraReaUjaMbaMbaMkaSzaKOaRnaMdaMdaREaREaREaREaSaaJeaScaSbaSkaSdaSdaSpaSdaSdaSkaSbaSqaJeaSBaSAaSAaSAaSAaSCaSCaSJaSNaRqaRpaJlaUxaUlaUlaUlaUlaUlaUlaSQaSRaSSaSTaUJaUOaSWaSXaSYaKZaKZaURaTaaSLaSKaSMaTeaTeaTeaTbaTgaTbaTeaTeaTeaTeaJRaIgaThaONaRLaRMaONaONaTiaIgaTjaQzaTlaGGaIoaTmaTnaToaTpaTqaIoaTraQKaGGaTtaTuaRZaTvaTwaTcaafaaaaaaaaaaIuaIuaIuaIuaIuaIuaIuaIuaIuaIuaIuaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaIvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa @@ -7503,61 +7501,61 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaTDaTDaTDaTDaTDaTDaTDaTDaTDaTDaTDaTDaT aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaTDaTDaTDaTDaTDaaaaTDaTDaTDaTDaTDaaaaTDaTDaTDaTDaTDaaaaaaaaaaaaaaabgnbgobgpbgqbdqboDboDboDboEboDboJaZVbpKbqtbgrbqxbjpbqBbqybpQbpRbqHbqGbqKbqKbqKbqMbkWbpUbkWbkWbkWbkWbpVbpWbpWbpXbpYbdPbqTbqQbrkbrcbqdbqebqfbrnbqhbqibqjbqkbqkcKDcKEbgGbgGbqmbfmaMbblqbqnbqoaJubqqbqrbqrbxqborbrobxsbotaafbebbebbebbebbrubebbebbebbebaafbedbqzboCbqAbrvbqCbqDbqEaJibqFaRqaRpaJibrxbrwbqIbqJbrybqLboPbqNboUboUboUboUboUboUbqObqPboWboYbqRbqSbrDbnnbqUbqVbqWbrIbpgbphbpfbqXbYfaVJbpjbqYbqZbqZbrabrbbpHbrdbrdbrdbrebrdbrfboObrhbribrjbscbnIbrlbpCbrmbsebpCbshbnIbrqbpFbrrbnMaaaaaaaaaaaaaaaaaaaaaaIuaIuaIuaIuaIuaIuaIuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaIvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaTDaTDaTDaTDaTDaaaaTDaTDaTDaTDaTDaaaaTDaTDaTDaTDaTDaaaaaaaaaaaaaaaaaaaaaaaaaaabpIbrtbsjbslbskbsnbsnbsobrzbrAbgrbtkbsqbsvbsrbjpbjpbjpbajbrEbrFbrGbrHbrGbrGbrGbrHbrGbajbajbdPbdPbdPbsxbdPbrJbrJbrJbrJbrJbrJbqfbrKbrLbrMbrNbrObpJbrQbrRbrSbrTbrUbrVbpLbrXbrYbrZaHBbsbbqvbsabszbsAbotbosbotaafbpObsEbsBbsGbsmbsHbsBbsIbpOaafbedbspbsObspbedbedbedbtbaJibssaRqaRpbXHbpBbngbstbsubtdbqLbswbqNbtlbthbtvbtmbtBbsCbqObsDbnibtIbsFbtKbtObnnbtTbqVbpebpfbpgbphbpfbpibYfaVJbpjbsJbsKbsLbsMbplbsNbtXbsPbsQbsRbsSbsTbsUbrhbsVbsWbsXbnIbsYbsZbtabtYbtcbubbnIbrqbpFbtebnMaaaaaaaaaaaaaaaaaaaaaaaaaIuaIuaIuaIuaIuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaTDaTDaTDaTDaTDaaaaaaaaaaaaaaaaaaaaaaTDaTDaTDaTDaTDaaaaacaaaaaaaaaaaaaaaaaaaaabpIbtfbtgbuhbtibtibtibtjbtibtibgrbujbuiboAbuobjpaaaaaaaaaaafaafbtnbtnbtnbtnbtnbtnbtnaaaaaabrsbtpbtqbtrbtsbrJbrJbrJbrJbrJbrJbttbtubrCbtwbtxbtybtzbrPbfmbfmbuxbfmbfmbtCbsibrWbsybmGbtHbmGbmGbmGbmGbmGbuAbmGaafbtobuGbtLbtMbtNbtMbtLbuNbtAaafbspbtQbtRbtSbuObtUbspbtVaJlbtWbbmbuTaJibuUbnAbtZbuabuYbucbudbuebufbuZbvjbvabvnbukbulbumbnibnnbunbpubvobnnbuqburbusbutbuubuubuvbuwbYfaXqbpjbvqbplbplbsMbuybuzbvxbvybuCbuDbuEbuFbvCbrhbuHbuIbuJbnIbuKbuLbuMbtYbpCbvEbnIbpEbpFbvFbnMaaaaaaaaaaaacHOaafaafaafaafaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabdWbvLbvIbtDboDbtEbgnbgobtFbtEbgrbvObjpbtPbtJbjpaaaaaaaaaaaaaaabtnbtnbtnbtnbtnbtnbtnaaaaaabupbvdbrJbvebvfbvfbvfbvfbvfbvgbvhbvfbvibuVbvkbvlbvmbwcbwbbfmbvpbgGbwgbpzbvsbvtbvubvvbmGbmGbmGbwlbwjbvzbvAbvBbvwaafbuWbwnbvHbvJbvKbvMbvNbwxbuWaafbspbwCbvQbxnbedbvRbspbvSaJlbvTbcLbvUaJibvVbvWbvXbwDbwKbucbwZbwYbxbbwdbwebwebwfbxhcdWcdVbxmbwkbxpbwmbwkbwkbwkbwkbxvbwkbwkaXKaXKaXKaXKaVJbpjbsJbsKbsLbwobwpbwqbwrbwsbwsbwsbsSbwtbxxbwvbwwbxzbwybnIbwzbwAbwBbxDbpCbxHbnIbwEbwFbnMbnMaaaaaaaaaaaaaafbuPbuQbuRbuQbuRbuQbuSaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabtnbtnbtnbtnbtnbtnbtnbuXbvcbvbbwPbrJbwQbrJbwRbwRbwRbwSbwTbrKbrJbrJbrLbwUbwVbwWbwXbrpbvYbxabgGbgGbugbxcbvtbvubxdbxebxfbvZbxTbxibxjbxkbxlbvwaafbxrbybbyabyfbyLbxobygbyhbxraafbspbqwbyibuBbedbyobspbtVaJlbxwbcLaRpaJibyKbxybyMbxAbxBbxCbyObxEbxCbxFbxGbyQbxFbwkbyUbxJbwkbwkbxKbxLbxMbxNbyXbxPbxQbxRbxSaXKbaybvraXKaVJbpjbxXbqZbqZbxYbxZbppbzcbwsbwsbwsbsSbwtbzrbwwbvDbUabTQbwwbzxbzzbzybzHbpCbzJbnIbrqbykbnMaaaaaaaaaaaaaaaaafbwGbwHbrgbzNbwJbzObwGaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabtnbtnbtnbtnbtnbtnbtnbwMbypbwMbyqbyrbwQbrJbrJbrJbysbrJbwTbrKbytbdPbdPbyubgGbrNbwXbyvbywbyxbyybyybyzbwNbyBbyCbyDbvsbyEbvPbyGbxkbyHbyIbyJbvwaafbxrbxrbxrbxrbzVbxrbxrbxrbxraafbyNbyNbyNbyNbyNbyNbyNbAeaJibwObfLbfMaJibAibyRbyRbySbyTbxCbAkbyVbyWbAlbyYbyZbzabwmbzbbAobzdbzebzfbzgbzgbzhbzibzgbzjbzkbckbaAbwubclbAsbcnbAtbzsbztbzubzvbzwbppbAubpqbpqbAxbsSbwtbAAbzAbxIbydbxObzAbzEbzFbzGbyebzIbwwbwwbALbnMbnMbyAbyFbyFbyFbyPbCJbylbymbrgbwJbrgbynbuRaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLaaaaaaaaaaaaaaaaaaaacaaaaaaaaabtnbtnbtnbtnbtnbtnbtnbzBbzQbzBbzRbrJbwQbrJbzSbzSbzSbzSbwTbrKbzTbzUbdPbAXbgGbrNbBabzWbzXbzYbgGblnbgGbsybAabAbbAcbAdbyEbwIbAfbxkbxkbxkbAgbvwbAhbAhbBibAhbBkbBjbBlbAjbBmbAjbAjbyNbBqbBnbAmbAnbBsbApbAqaJibAraRqaRpaJibBwbBtbBxbAvbAwbBAbAybAzbBEbABbACbADbAEbBGbAGbAHbAIbAJbAKbAIbxtbAMbANbAObnvblUbsdbBJbsgbsfbaAbPObpjbxubxUbAYbAZbAZbppbBKbBbbBcbppbBdbBebBfbBgbBhbBNbKebBQbYrbYrbBRbBSbzCbTHbBUbBrbBXbCcbTIbBvbCdbCnbCkbzDbwGbwJbrgbwJbwJbCrbwGaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabtnbtnbtnbtnbtnbtnbtnbzKbvcbzLbCwbrJbwQbrJbrJbrJbrJbrJbwTbrKbzTbBFbdPbCAbgGbBHbBIbgGbzMbgFbgGbgGbyjbvsbvtbAbbAcbAdbyEbvwbBLbBMbCHbBMbBObvwbCKbCIbCQbCLbCYbCXbDabCZbDcbDbbBVbyNbBWbzmbBYbBZbCabCabCbbzPbAraRqaRpaJibDebCebCebySbCfbxCbCgbChbxCbCibCjbCjbDfbwkbClbCmbwkbwkbwkbwkbwkbwkbDgbwkbwkbwmbDhaXKaXKaXKaXKbDibpjbwwbzAbzAbzAbzAbzAbzAbzAbzAbzAbzIbzZbCsbCtbBhbWXbCvbDwbCxbCxbCxbCybWWbDBbAFbCCbCDbDDbTGbCGbDIbCGbDKbAVbBzbuQbuRbDQbuRbuQbBBaafaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabdWbvLbvIbtDboDbtEbgnbgobtFbtEbgrbvObjpbtPbtJbjpaaaaaaaaaaaaaaabtnbtnbtnbtnbtnbtnbtnaaaaaabupbvdbrJbvebvfbvfbvfbvfbvfbvgbvhbvfbvibuVbvkbvlbvmbwcbwbbfmbvpbgGbwgbpzbvsbvtbvubvvbmGbmGbmGbuWbwjbvzbvAbvBbvwaafbuXbwnbvHbvJbvKbvMbvNbwxbuXaafbspbwCbvQbxnbedbvRbspbvSaJlbvTbcLbvUaJibvVbvWbvXbwDbwKbucbwZbwYbxbbwdbwebwebwfbxhcdWcdVbxmbwkbxpbwmbwkbwkbwkbwkbxvbwkbwkaXKaXKaXKaXKaVJbpjbsJbsKbsLbwobwpbwqbwrbwsbwsbwsbsSbwtbxxbwvbwwbxzbwybnIbwzbwAbwBbxDbpCbxHbnIbwEbwFbnMbnMaaaaaaaaaaaaaafaLCaNgbuRaNgbuRaNgbuPaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabtnbtnbtnbtnbtnbtnbtnbvbbvYbvcbwPbrJbwQbrJbwRbwRbwRbwSbwTbrKbrJbrJbrLbwUbwVbwWbwXbrpbvZbxabgGbgGbugbxcbvtbvubxdbxebxfbwlbxTbxibxjbxkbxlbvwaafbxrbybbyabyfbyLbxobygbyhbxraafbspbqwbyibuBbedbyobspbtVaJlbxwbcLaRpaJibyKbxybyMbxAbxBbxCbyObxEbxCbxFbxGbyQbxFbwkbyUbxJbwkbwkbxKbxLbxMbxNbyXbxPbxQbxRbxSaXKbaybvraXKaVJbpjbxXbqZbqZbxYbxZbppbzcbwsbwsbwsbsSbwtbzrbwwbvDbUabTQbwwbzxbzzbzybzHbpCbzJbnIbrqbykbnMaaaaaaaaaaaaaaaaafbuQbwHbrgbzNbwJbzObuQaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabtnbtnbtnbtnbtnbtnbtnbwMbypbwMbyqbyrbwQbrJbrJbrJbysbrJbwTbrKbytbdPbdPbyubgGbrNbwXbyvbywbyxbyybyybyzbwNbyBbyCbyDbvsbyEbvPbyGbxkbyHbyIbyJbvwaafbxrbxrbxrbxrbzVbxrbxrbxrbxraafbyNbyNbyNbyNbyNbyNbyNbAeaJibwObfLbfMaJibAibyRbyRbySbyTbxCbAkbyVbyWbAlbyYbyZbzabwmbzbbAobzdbzebzfbzgbzgbzhbzibzgbzjbzkbckbaAbwubclbAsbcnbAtbzsbztbzubzvbzwbppbAubpqbpqbAxbsSbwtbAAbzAbxIbydbxObzAbzEbzFbzGbyebzIbwwbwwbALbnMbnMbyAbyFbyFbyFbyPbCJbuSbymbrgbwJbrgbynbuRaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLaaaaaaaaaaaaaaaaaaaacaaaaaaaaabtnbtnbtnbtnbtnbtnbtnbzBbzQbzBbzRbrJbwQbrJbzSbzSbzSbzSbwTbrKbzTbzUbdPbAXbgGbrNbBabzWbzXbzYbgGblnbgGbsybAabAbbAcbAdbyEbwIbAfbxkbxkbxkbAgbvwbAhbAhbBibAhbBkbBjbBlbAjbBmbAjbAjbyNbBqbBnbAmbAnbBsbApbAqaJibAraRqaRpaJibBwbBtbBxbAvbAwbBAbAybAzbBEbABbACbADbAEbBGbAGbAHbAIbAJbAKbAIbxtbAMbANbAObnvblUbsdbBJbsgbsfbaAbPObpjbxubxUbAYbAZbAZbppbBKbBbbBcbppbBdbBebBfbBgbBhbBNbKebBQbYrbYrbBRbBSbzCbTHbBUbBrbBXbCcbTIbBvbCdbCnbCkbzDbuQbwJbrgbwJbwJbCrbuQaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabtnbtnbtnbtnbtnbtnbtnbzKbvYbzLbCwbrJbwQbrJbrJbrJbrJbrJbwTbrKbzTbBFbdPbCAbgGbBHbBIbgGbzMbgFbgGbgGbyjbvsbvtbAbbAcbAdbyEbvwbBLbBMbCHbBMbBObvwbCKbCIbCQbCLbCYbCXbDabCZbDcbDbbBVbyNbBWbzmbBYbBZbCabCabCbbzPbAraRqaRpaJibDebCebCebySbCfbxCbCgbChbxCbCibCjbCjbDfbwkbClbCmbwkbwkbwkbwkbwkbwkbDgbwkbwkbwmbDhaXKaXKaXKaXKbDibpjbwwbzAbzAbzAbzAbzAbzAbzAbzAbzAbzIbzZbCsbCtbBhbWXbCvbDwbCxbCxbCxbCybWWbDBbAFbCCbCDbDDbTGbCGbDIbCGbDKbAVbwGaNgbuRbDQbuRaNgbylaafaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabtnbtnbtnbtnbtnbtnbtnbzBbzQbzBbCMbCNbCObrJbrJbrJbCNbrJbwTbrKbzTbCPbdPbDYbgGbrNbwXbgGbqlbCRbgGbgGbEgbxcbvtbAbbCTbxcbCUbvwbCVbEhbEibAWbxlbvwbEkbEjbEpbAhbErbErbErbAjbEubEsbEwbyNbDkbDlbDlbDmbDnbDobDpaJibDqbDrbDsaJibDtbECbDvbEFbDxbDybDzbDAbyWbEKbELbCjbEMbwmbDEbDFbwmbDGbDHbERbDJbESbDLbDMbCpbEUbDObBTbEVbDRbCpbVLbVMbDUbVAbBobDXbDXbEWbDZbEabEbbEcbEdbEebEfbEYbEXbEZbCvbBubBpbBybwwbwwbwwbwwbwwbFybFrbEnbyAbyPbCJbEobFFbCJbyAbyFbyPbFQbCJbFUaafcHOaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabtnbtnbtnbtnbtnbtnbtnbBCbExbBCbEybEzbEAbEAbEAbEAbEAbEBbGfbEDbzTbEEbdPbGgbEGbEHbEIbEJbGibGhbGkbGjbGvbtCbENbAbbEObEPbyEbvwbEQbGubGAbBMbETbvwbBPbGCbGDbAhaaaaaaaaabAjbGWbGEbFcbyNbFdbFebFfbFgbDnbDobFhaJibxwaRqaRpbHabFjbFkbFlbFmbFnbHfbFpbFqbxCbxFbxFbHibxFbwkbFsbFtbFubFvbFwbFxbDJbHjbDLbFzbFAbFBbDObFCbFDbFEbHkbVlbDXbHlbVAbBDbDXbDXbFKbFLbFMbFLbFLbFNbFObFPbHmbFRbFSbCvbCobHvbHMbFWbFXbFYbFZbGabGbbGcbGdaafaafbCJbGebHNbHNbHObHQbHPbHRbCzaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabtnbtnbtnbtnbtnbtnbtnbCBbDdbCEbdPbdPbDjbvcbvcbvcbDubdPbdPbDNbEvbDWbdPbGtbGtbGtbFabGtbGvbGwbGxbGybGzbtCbvtbAbbHUbGBbtCbtGbtGbtGbtGbtGbHVbtGbtGbtGbHZbtGbtGbtGbtGbtGbIfbtGbtGbtGbtGbtGbtGbtGaJiaJiaJiaJibxwaRqaRpbHabIobFkbCSbGGbCWbGIbGJbGKbGLbGMbGNbCjbGObGPbGQbGRbGSbGTbGUbGVbIrbGXbGYbGZbIubHbbHcbHdbHebIvbCpbUSbUfbwwbwwbwwbwwbwwbFbbwwbwwbwwbzAbFobzAbzAbIDbBhbCubCvbCobIMbIRbHnbHobHpbHqbGabGbbGcbHraaaaaabCJbHsbHtbEobCnbFJbITbIUbCJaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabtnbtnbtnbtnbtnbtnbtnaaaaaaaaaaaaaaaaaaaafaaaaaaaaabHuaafaaaaaaaaaaaabGtbIYbIXbHxbHybGvbHzbIZbHBbHCbtCbvtbAbbAcbAabHDbHEbHFbFTbHHbFVbHJbHKbHLbJabJqbJbbJrbAabAabJDbJWbJVbAabHTbAabsybHHbsybHWbHXbHYbJXbxwaRqbDsaJlbDtbGlbDtbDCbDPbxCbIbbIcbIdbIebKdbIgbIhbIibIjbIkbwmbIlbImbInbDJbDTbElbIpbIqbKfbFDbIsbItbKgbCpbKhbIwbIxbIybUdbLybKibICbKjbUcbIFbIGbIHbIIbIJbzAbIKbCubCvbGmbKobINbIObIPbIQbKBbGabGbbISbEnbEnbEnbCJbCJbCJbGobGnbCJbCJbFJbCJaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafaafaafaaaaaaaaaaaaaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaIvaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabtnbtnbtnbtnbtnbtnbtnaaaaaaaaaaaaaaaaaabLaaaaaaaaaaaaaaaaaaaaaaaaaaaabGtbLnbEmbIVbIWbLrbLpbLzbLxbLFbtCbvtbJcbJdbJebJebJfbJgbGpbJibGpbJgbJfbJebJebLHbJkbJlbLIbJnbJobLKbJebJebJpbJgbGpbJibGpbJsbJtbJubJtbJvbJwbvUaJlbEtbEqbFHbGFbLWbGHbDzbHAbFibDVbxFbLYbCFbDSbDEbJGbwkbJHbJIbJJbDJbJKbJLbJMbJNbJObFDbJPbItbJObCpbJQbJRbIxbJSbJTbJUbGqbMlbMibJYbIFbJZbKabKbbKbbzAbKcbMqbMpbMxbMwbMCbMybMHbMFbKkbGabGbbKlbEnbKmbMIbKnbEnaafaafaafaafaafaafaafaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafbKpbKqbKqbKrbKsbKsbKtbKtbKtbKtbKuaafaafaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabtnbtnbtnbtnbtnaaaaaaaaaaaaaaaaaaaaaaaabKvbKwbKxbKwbKyaaaaaaaaabGtbGtbMMbKAbIVbKAbMPbKCbMSbKDbKEbtCbKFbvtbKGbKHbAabKIbAabsybHHbsybAabKKbKLbKMbKNbKObAcbAabKPbKQbHLbKRbHLbHLbKSbGrbMXbGrbKWbKXbcLbKYaRpaRpaRpaJlbMZbFlbFnbNdbJmbNfbJybJxbFIbLgbLhbLibLjbHgbDEbIkbIabIzbHhbDJbDJbLobLobLobCpbNhbLqbNkbLsbLtbCpbLubLvbIxbLwbFGbLybNqbLAbLBbLCbIFbJCbLEbKbbKbbzAbRsbSLbCvbwwbLGbNtbNsbLJbNzbLLbGabLMbLNbLObLObLObLPbGdaaaaaaaaaaaaaafaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafbLQbLRbLSbLRbKsbKtbKtbLTbLUbLTbKtbKtaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabLVbNAbLXbNBbLVbGsbHGbHwbGtbMcbMdbMebMfbMgbNLbNKbMjbMjbMkbtCbtCbtCbNQbtCbtCbtCbtCbtCbtCbtCbtCbtCbtCbtCbtCbtCbMmbMnbMobtCbtCbtCbtCbtCbNZbtCbtCbtCaJlaJlbObaJlaKSaMpbMraJlbKZbOcbOdbGFbLdbxCbDzbLDbxCbOfbMzbMAbMBbwkbOibMDbMEbOkbMGbOlbOnbMJbMKbMLbItbJObFDbFDbOtbJObCpbMNbMObMObMObMObMObMObMObMObMObMObOxbMQbMRbMRbzAbHIbIAbHSbwwbMVbMVbMVbMWbOEbMYbMVbMVbMVbMVbMVbMVbNabNbaymaymaymaymaymaymaymaymaymaymaymaymaymaymaymaymaymaymaymaymaymaymaymbOFbLRbLRbNebKtbKtbLTbLTbOGbLTbLTbKtbKtaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabKxbNgbMsbNgbKxbIBbNjbOHbNlbNmbNnbKAbNobNpbGvbOIbNrbOJbOKbGvbNubNvbNwbNxaaaaaaaaaaaabNybOLbONbOMbNDbNCbNEbNFbNGbNHbNIbNFbNJbOQbORbNMbNNbNObNPbOTbNRbNSbNTbNUbNUbNUbNUbDtbDtbDtbDtbILbILbxCbOUbOabPebMzbMvbMubOebPubOgbOhbPvbOjbPCbPAbOmbPDbMKbOobFDbFDbNVbJObJObOobCpbMNbMObOqbOrbOsbPEbOubOvbOwbPFbMObOybOzbOAbOAbzAbOBbPGbCvbzIbPHbPKbPJbPMbPLbPVbPSbPXbPWbPYbVFbMVbPZbEnbOObOObOObOObOOaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaabOPbKtbOFbKtbKtbLTbLTbLTbLTbLTbLTbLTbKtbKtaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabLVbNgbNgbNgbQcbQbbKAbOSbQebQdbKAbQgbOVbOWbGvbGvbGvbGvbGvbGvbOXbOYbOZbJhaaabJjbKzbKzbKJbQjbPfbPgbPhbPfbPibNFbKUbKTbKVbNFbPmbNXbPobPpbPqbPrbPsbPtbPtbNSbQubQpbPwbPxbPybDtbNYbLbbQBbGFbGFbQDbDzbQLbxCbQMbQXbQPbRbbwkbRcbPIbwkbRdbRibRebRpbPNbMKbCpbCpbCpbCpbCpbCpbCpbCpbPObMObPPbQYbPRbOsbOsbOsbOsbRvbMObPTbLEbPUbPUbzAbBhbSLbCvbRxbQabQabRybRAbRzbRDbRBbRJbRFbRJbRMbMVbQfbRObOObQhbRWbOpbLZaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafbKsbKtbQlbQmbQmbLTbLTbLTbLTbLTbLTbLTbLTbKtbKtaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabKxbMsbMsbMsbKxbMabQobScbQqbQrbKAbKAbQsbQtbSgbQvbQvbQvbQvbQvbQvbQwbQxbMbaaabMhbQAbSibQCbSlbPfbQEbQGbQFbPfbNFbQIbQJbQKbNFbSrbSnbQNbQObSubQQbQRbPtbQSbPxbQTbNUbPxbPxbQUbDtbPnbGFbQVbSwbGFbPzbDzbLebRCbQZbPBbSEbSMbRGbDEbIkbSpbRdbRebRebRpbRfbMKbRgbRhbSNbRjbRkbRlbSObRnbPObMObOsbOsbRobOsbOsbOsbOsbSPbMObRqbLEbRrbRrbzAbRsbRtbRubSQbRwbSSbSRbSWbSVbTsbTgbTAbTubTNbTMbMtbREbTWbMTbRHbRIbQibMUaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaabKtbKtbRLbLTbLTbLTbLTbLTbLTbLTbLTbLTbLTbLTbKtbKtaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaabLVbUbbRNbUkbLVbNibHGbHwbGtbGtbRQbRQbRQbGtbGtbNxbRRbRRbRSbRSbRSbRSbNwbMbaaabOCbRUbRVbUobRXbRYbRZbSabSbbSbbUqbSdbSebUwbNFbPtbPtbPtbPtbPtbUAbPtbPtbShbUGbSjbNUbPxbSkbUObDtbQHbLbbQVbSmbUPbPzbSobJAbJBbSqbRabSsbStbJzbFsbSvbIEbSxbUWbURbSAbSBbMKbRmbSDbVebRjbSfbSGbVjbRnbPObMObMObMObRobOsbOsbOsbMObMObMObSIbSJbRrbRrbzAbSKbSLbCvbzIbVkbVvbVmbRDbVybVGbVzbVVbVObWibWgbMVbQfbWkbOObSXbSYbSybODaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafbKtbLTbLTbLTbLTbLTbLTbTbbLTbTcbLTbLTbLTbLTbLTbKtbKtaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabTdbKwbTebKwbTfbWoaafaaaaaabGtbPbbPabPcbGtaaabNxbTkbTlbTmbTnbTnbTnbTobMbaaabMhbTpbTqbTrbWIbPfbTtbTvbWMbTwbNFbSzbTybTzbWVbTBbTBbTBbTCbTCbTDbTEbULbPxbPxbTFbNUbNUbNUbNUbDtbDtbLfbLkbLcbDtbTJbTKbTLbJFbJEbTJbPebLlbLmbTRbTSbTJbMKbMKbMKbMKbMKbMKbXabTUbTVbRjbXcbTXbTYbRnbPObMObTZbQWbPQbXfbXebNWbNcbTZbUgbUhbUibIIbIJbzAbIKbSLbUjbwwbMVbMVbXibXnbMVbMVbMVbMVbXpbSCbVFbMVbXqbUnbOObPjbPdbPkbOOaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaabKtbUsbUsbUsbUsbUsbUsbUtbLTbUubUsbTcbLTbLTbLTbLTbKtaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabLaaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafbUvbNxbNxbNxbNxbRSbXvbNwbPlaaabQkbKzbKzbQnbXxbPfbPfbUBbPfbSFbNFbUDbSHbSTbNFbSUbSUbSUbSUbSUbSUbSUbSUbUHbUIbUJbUKbUKbUMbNUbDtbUNbSZbTxbUQbYabwabUTbUUbYtbYobYwbUTbUYbUZbVabVbbUebTPbVdbYybVgbVhbVibUlbYzbUmbRjbUCbYHbUCbRnbPObMObVnbUFbVpbVqbVrbVsbVtbVubUgbzAbQybzAbzAbVwbCxbSLbCxbQzaafbnxbYSbYYblSbVBbYZbZcbZbbZebUVbMVbVHbVIbOObVJbVKbVKbwhaaLaaLaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabwibLRbLRbLRbLRbLRbLRbLRbVNbLUbLTbLTbLTbLTbZibLUbKuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabVPbVQbVQbVRbVSbNxbVTbRSbVUbNxaaaaaaaaaaaabNybZrbVWbVXbVZbVYbPfbNFbWabWbbNIbNFbSUbUXbVfbVcbVDbVCbVEbSUcaqcaqcaqcaqcaqbTFbWjbZsbWlbWcbWdbZubWpbxgbWrbWsbWtbWubWtbWvbWtbWwbWxbWybWzbWAbWBbWAbWCbWDbWEbWFbWGbWebZvbWfbWKbWLbZzbxVbMObxWbZBbzlbWSbWTbWhbWSbWSbRKbWWbWXbWYbWZbCxbCxbSLbCxbRPaafbnxbZLbZLbXbbZObXdbZSbZPbXgbXhbMVbVHbZUbOObOObOObOObOOaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaabKtbQmbQmbQmbQmbQmbQmbXkbLTbQlbQmbXlbLTbLTbLTbLTbKtaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabXmbZVbWmcaabRScanbXrbRSbXsbNxaaKaaaaaaaaabNybNybNybNybNybNybNybNFbUDbUEbXtbNFbSUbWnbWJbWHbWHbWJbWRbSUcaobWUbWUbXocaqbXBbDtbDtbXCbXDbXEbXFbXGblRbXIbXJbXKbXLbXMbXNbXObXPbXQbXRbXSbXTbXUbznbzpbzobAPbzqbARbAQbATbAScaxbAUbYfbYgbIwbYhbVobCqbWObWNbWPbYmbYnbRTbYpbYqbYrbYscaLbYrbYubYvbTaaafbnxcaMcaWbrBbVBcaXcbecbdcbfbYAbMVbVHbYBbYCbUnaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafbKtbLTbLTbLTbLTbLTbLTbTbbLTbXlbLTbLTbLTbLTbLTbKtbKtaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabYDbVQbVQbVRbYEbYFbYGbNxcbgbNxbYIbThbTibYIbYIbYLcbibYNbYObYPbTjbXwbXzbXybYebXAbTObWJcbkbYxbYRbYQbYTcbmbYVbYUbYXbYWcaqbZhbNScbnbZjbZkbZlbZlbZmbnEbZobZpbTJbTJbZqcbrbTJbTJcbycbtcbAcaIcbBbWQbZxbZycbCbZybZAbZacbDbZabZAcbJbYfbMNbIwbZEbXWbXVbZdcbKbZJbZKbMObMObwwbwwbwwbwwbwwboIbnFbofbwwbMVbMVbMVbMVbMVbMVbMVbMVbMVbMVbMVbMVcbLbZQbZRbUnaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaabKtbKtbRLbLTbLTbLTbLTbLTbLTbLTbLTbLTbLTbLTbKtbKtaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamaamcbOaamaamaamaamaamaaaaaaaaaaaaaaaaaaaafaafaaabZfbZgbZgbZgbZHbZgbZgbZTbZIbYIbZYbZZbYIcbQcabcbWcadbZWcafbTTbZXcaecaccahcagbUpbWJcbkcajcakbYQcalbSUcaqcaqcaqcaqcaqcarbNSbDtcascatccecamcawccncaycazbTJccrcaBcaCcaDcaEcaFcaGcaHcaIbZxbWQcapbZycaKcctbZAccucaNcaObZAbXXbYfbPObIwbXYccvbXZbXYbXYbIwbIwbIwcaRcaScaTcaUcaVbwwbwwbUrbwwbwwccGcaYcaucaAcavccJcaZcbacbcccQccMccYccScbhbUnbUnbUnaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafbKsbKtbUubUsbUsbLTbLTbLTbLTbLTbLTbLTbLTbKtbKtaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamaaaaaaaaaaaaaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafcbbcdmcdjcblcdpcdBcdtcbpcbobYIcdGcbsbYIbYIcdNcbucbvcbwcbxbUxcbqbXzbXybYecbzbUybWJbWJcdYcdZbWJcebbSUcbFcbGcaqcbHcaqbTFcbIcbIcbIcbIcbIcbIcbIbTJceccbEbTJcedcbMcbNcefcaEcbPceicelcaIbZxbWQcbRbZycbScbTbZAcbUcbVceobZAccqbYfbYbbYdbYcbYiccsccAbYccepbYkbYlcktbZDbZwbZFcktcerbZGccCccBceuccDccPccFcexcevceHceCcevceIceZceKcfeccwccxccycczbUnbUnbUnbUnaaaaafaaaaaaaaaaahaahaahaafaaaaaaaafaaaaaaaafaaaaaabOPbKtbOFbKtbKtbLTbLTbLTbLTbLTbLTbLTbKtbKtaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafccRccRcdjccTcficdBccUccWccVbYIcfjccHccIbUzccKccLcflccNccObVxccXcdaccZcdecdbbXucdycdQcdFcekceecembYjcdccddaJEcdfcaqbTFcbIcdgcdhcdicfucdkcdlcfwcdncdocfxcdqcdrcdscfycaEcducdvcdwcaIbZxbWQcenbZycdxcfzbZAcdzcdAcfAbZAcaPbYfbYfcaQbYccbYcbXcbZbYcchBccacjfcdLcdLbYJbYKcdLcdOcdPceqcdRcdOcdSbZnbYMbZCcdScdScdScdSbZMbYMbZCcdScdSbXjcdXcfLcfIceacfMcfUcfRbycbycbycbycbycbycbycbycbycbycbycbycbycbycbycbyccfZcegcegcehbKtbKtbLTbLTcgebLTbLTbKtbKtaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamaafaaaaaaaaaaaaaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacejcejcejcejcejcejcejcetcesbYIbYIbYIbYIbYIcaicbjcaJcaJcaJccccewbXzbXybYeceybTOceEceTceSceWceUceXbSUcezaJFceYaJFcaqbTFcbIceDcfacfacfaceFceGbTJcgCcgBbTJcedcbNceJcefcaEcgOceLceMcaIbZxbWQceNbZyceOcePbZAbZAbZAbZAbZAccbceRbYfcaQbYcccdcgRbYcbYcchBcgVcjfcdLcgWcfbcfbcfccdOcfdcgXcffcdOcfgcfhcfhcfhcgYchacgZchdchbcfnchicfpcdScfqcfrchmbUnbUnbUnbUnaaaaafaaaaaaaaaaahaahaahaafaaaaaaaafaaaaaaaafaafaafcftcfBcfvbNebKsbKtbKtbLTbLUbLTbKtbKtaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamaafaafaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafcejchpchnchrchqchucejcfDcfCcfFcfEcfHchvchychyccEcfJcfJchzchEcbqbXzbXybYecfNbUpcfOcfQcfPchLchFcggbSUaJFaJFcaqceBcaqbTFcbIcfVcfWcfWcfWcfXcbIcfYchPcgacfYcgbcgccgdchScaEchVceLcgicaIcghccfchYbZycgkcglbZycifbLvbVicgnccgcchbYfccjcciccicckcclcclcclcclccmcdLcijcgycgycgzcdTctscgrcgpcdUcgtcgGcgGcgGcgxcgIcgIcgJciycgLcgDcgMcdScgNciCcgPcgNaaaaaaaaaaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafcgQbKqbKqbKrbKsbKsbKtbKtbKtbKtbKuaafaafaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamaaaaafaafaafcgEcgEcgEcgEcgEcgEcgEcgEcgEcgEcgEcgEcgEaaaaaacfkciKcgTcgTcgUciLcejcgHcgFcfmcgKciVciQcjaciWcfocjicjpchcchfchechhchgchjcjqbSUbSUbSUbSUbSUbSUbSUbSUcjscjrcaqcjtcaqbTFcbIcbIctpctqctrcbIcbIcjuchschtcfYcaEcaEcaEcaEcaEcaIchkchlcaIchwcjvchwbZycjIcjCbZychAchBbVichCbVichDbYfccobYfbYfccpcdCcdCcdCcdDbYfcdLchIchJchJchKckachMchochOckdchQckLckLckLckLckjckfckLckmckLcknckocdSchZciachGcgNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafaafaafaaaaaaaaaaaaaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamaaaaaaaaaaaacgEchHckpchHcgEchNckCchNcgEchRckFchRcgEaaaaaacfsciKcgTcgUcgUckNcejchUchTchWckQclfchXcidciccfGcieciecigciecbqbXzcihbYecikcfKcilciocinciocipcirciqciqciAciAciAciAbTFciGciHciIciIciJclpclrciMciXciOclycluciRciSciSciTciUcaIcaIcaIclCcdEckqbZybZybZybZychBchBbViciYbViciZbYfccobYfaaaaaaaaaaaaaaaaaaaaacdLcjgcisciucitcgfcjkcivcjmcgjcjociwcjocjocixclKclGcgIclVcgIcmgcmkcdScmpcjwcjxcgNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamaaaaaaaaaaaacgEchHcjbchHcgEchNcjcchNcgEchRcjdchRcgEaaaaaacfscgTcgUcgUcgUcjBcgmcjhcjechWcmwcmGcmBcmPcmOcgocjycjDcjAcjEcbqbXzcjFchjcjGcgucjHcjJcjJcjJcjKcjMcjLcjNcmRcjOceAciAbTFciGcmXciIckbckccnbcubcneckgckhcngcnfckkcklciScnhciUcnkcnwcnucjQcjPcdHcnEcdIcdIcdJcdIcdKbVibVibVibVibYfccobYfaaaaaaaaaaaaaaaaaaaaacdLcnFcjRcjTcjSckEcdOcnIcdOckGckHcjXcjUcjUcjYcgIcgIckecjZcjUckickOcdSckPcnKckRcgNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamaaaaaaaaaaaacgEckrckuckscgEckzckBckAcgEckDckJckIcgEaaaaafcfsclbcgTcgUcgUcgUcejckMckKchWchWcnLchWchWchWchWckTcieckWckYcbqclackZcldclccgAcleclhclhclhclicljcljclkciAcllcgqclwclxciGcnPciIclzclAclBcnQclDclEclFcnTclHclIclJciScnUciUcnVcnXclNclnclmclQclNclRclSclTbYfceQcdIcdIcdIcdIcdIcltbYfaaaaaaaaaaaaaaaaaaaaacdLcmacmbcmccmdcdOcmecmfcnZcdScmhcmicmicmiclvcoacmlclPclOcmicmicmncdScgScobcmqcmraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamaaaaaaaafaafcgEclXciicmjcgEcmtciicEgcgEcmtciicEgcgEaaaaafcimcgTcgTcgUcgUcmAcejcmvcmuciPcolconcmycmCcmCcmEcjjcmCcmFcoqcbqcmIcmHcmKcmJcfKcmLcmLcmMcljcmNcotcorcorciAcibceVcoycqgciGcoAciIcnccndcoBciGcmSciNcmWciUcoCcnicnjciScoFciUclLclMclNcnlcoJcnlclNaaaaaaaaabYfbYfbYfcnnclSclSclTbYfbYfaaaaaaaaaaaacdOcdOcdOcdOcdOcdOcdOcdOcdOcnocnpcnqcdScdScjncjlcjzcdScdScdScdSclgcjlcjzcdScdScnvcpdcnvaafaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaIvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacbOaafaafaafaaaaafcnxaafcnxaafcKAaafcpfaafcKAaafcpfaafaafaaacejcnAcnBcgUcgUcnCcnDcmocmmcnycnmcprcnzcnzcpycnzcnGcmxcmscnGcnJcmDcmzcmQcnMcnOcnOcnOcnOcnscnrcnRcnRcnRcgscgscgscgscnSciGcpMcpNcnccpOcnWciGcmSciNcpPciUcnYcpQcnjcpUcpRciUclLclMclNcoccodcoeclNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaaacdOcofcogcohcwlcojcokcqecomcqmcopcoocdOaaLaafaafaafaafaaaaaaaaacqraaaaaaaaaaafcoscqscosaafaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamaaaaaaaafcntcnNcnHcovcoucoxcowcovcoDcoEcowcoLcoKcpocpgcnycnycnycnycnycnycnycnycoHcoGcqWcoIcracptcoNcoMcoOcnGcoQcoPcoRcnGcoTcoScoUcnOcoWcoVcoYcoXcpacoZcpjcpbcpbcpkcpncpncpjcrvciGciGcpccrzciGciGciGcpeciNcrQciUciUciUcrScphciUciUclLcpiclNcvmcpscvmclNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaafaafcdOcplcpmcplcrVcrUcppcpqcomcomcrXcomcdOcdOaaaaaaaaaaafaafaaaaacaaaaaaaaaaaaaafaaacrZaaaaafaafaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaIaaaaaaaaaaafcpAcsacpucpxcpwcpFcsbcsccpzcsecsdcpEcpDcsfcpFcpLcpJcsicpBcsDcsncsKcpTcpWcpVcpYcpXcqacpCcqccqbcsLcpGcsMcqfcsQcpHcoTcqJcqKcnOcpacpacpacpacpacqMcpjcqPcqPcqPcpncpncpjbTFcrYciGcqhcqicqjcqkciGcqlciNcsWciUcqncqocqpcqqciUcsXclLcpiclNcsYcqQcquclNaaaaaaaaaaaaaaaaaacqvcpIcpZcpScqvaafaaaaaaaaaaaacdOcplcplcplcoicsZcqBcqCctbcqEcqFcqGcqHcdOaaaaaaaaaaaaaafaafaaaaaaaaaaaaaaaaafaaacmZaaaaafaafaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamaaaaaaaaaaafcqdcqYcqScqVcqUcpFcqXcpFcvWcqYcqXcpFcvWcqYcpFcpFcpFcpFcpFcqZcpFcpFcpFcrbctccrdcrccticpCcrfcrecrhcqtcrjcricrlcqwcoTcqJcrmcnOcrncpacpacrocpacrpcpjcrIcrKcrJcrKcrLcpjbTFcrqciGcrrcrscrtcructkcrwcrxcryctmcrAcrBcrCcrDciUcrEcrFcrGcrHcqvctocqvcrHaaaaaaaafaaaaaaaaacqvcrRcrTcttcqvaafaafaaaaaaaaacdOcomcomcomcomcrMcppcrNcrNcrNcnpcrNcrOcdOaaaaaaaaaaaaaaacrPcrPcrPcbOaafaafaafaafcnaaafaafaafaafaafaaqcrPcrPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamaaaaafaafaafcpAcpFcrccpFcrccpFcqXcpFctucxactxcxactycxacxactGctBcpFcpFctOctIctIctIctSctQctTctTctUcpCctVcshcsjcnGcsmcskcuacnGcspcsocsrcqxcstcsscsvcsucpacswcpjcsxcrKcsycrKcuecpjbTFcizciGcszcsAcsBcsCciGcfYcufcfYciUcsEcsFcsGcsHciUcsIcrGcrGcqvcsJcsNculcqvcqvcqvcqvcqvcqvcqvcqvctMctDctNcqvcqvcqvcrHaaaaaacdOcofcogcohcslcsRcqBcrNcrNcrNcnpcrNcsScdOaaaaaaaaaaaaaaacrPaaaaafaaaaafaaaaaaaaackxaaaaafaafaaaaaaaaaaaacrPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamaafaafaaaaaacpAcpFcrccpFcsOcsTcurcsVcsUcuxctxcxacuycxacxacuLcuEcuUcuOcuYctacvccvbcvbcvkcrccrccthcqycqAcqzcnzcnGcqDcnGcnGcnGcvsctlcsrcqIcvvcvtcvFcvEcpacvGcpjcvOcrKcsycrKcvRcpjctvctwciGciGcvXciGciGciGciBctzctAciUciUciUcwaciUciUcsIcrGaaacqvctCctZctEctFcwectHcwfctJctKctLcqvcuVcwmcuVcqvcwuctPcqvaafaafcdOcplcplcplcwvcrUctRcuccwDcwzcudcrNctWcdOcdOcdOcdOaaaaaacrPaaactXctXctXctXctXaafckxaafctXctXctXctXctXaaacrPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaactYctYctYctYctYctYctYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamaaaaaaaaaaaacpAcpFcsOcsTcsTcsTcurcsTcsTcsTcurcsTcsTcsTcsTcsTcwEcwGcsTcwHcsTcwIcsTcsTcsTcuhcugcuicpvcpFcujcqLcukcuncumcupcuocumcuqcuscqNcuucutcutcuvcutcuwcqOcwUcuAcuzcuBcuBcpjcuCcuDcwXcuFcuFcuGcuHcuIcuJcuJcuJcuJcuJcuJcuJcuJcuKcrFcrGaaactFcwYcuPcuNctFcwZcuRcuQcuQcvdcvacuQcuQcvhcuQcuVcuXcuQcqvaaaaaacdOcplcplcplcslcxdcuZcvicxncxecvjcrNcrNcvecvfcvgcdOaafaafcrPaafckVckSckSckSckSckyckxckwckvckvckvckvckUaafcrPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaactYctYctYctYctYctYctYctYctYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamaaaaaaaaaaaacpAcpFcpFcpFcpFcpFcqXcpFcpFcpFcqXcpFcpFcpFcpFcpFcvWcpFcpFcticpFcxocpFcxqcxpcvpcvocvrcvqcxrcvqcqRcvucvxcvwcvycvucvucvzcvAcnscvBcpacvDcvCcpacpacrgcxtcxtcxCcuBcuBcpjbPxcAscvNcvNcvNcvNcxFcvNcvNcvNcvNclMcvPcrGcrGcrGcrGcrGcrGaaactFctFcxHctFctFcxJcvScvTcvUcvVcvHcvJcvIcvLcvKcxVcwbcwccqvaaaaaacdOcomcomcomcomcwdcppcvicyacxYcvQcrNcrNcwhcrNcwicdOaaaaaacrPaafcwjcwjcwjcwjcwjaaackxaaacwjcwjcwjcwjcwjaafcrPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaactYctYctYctYctYctYctYctYctYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaacbOaaaaaaaaaaaacpAcpFcpFcpFcpFcpFcqXcpFcpFcpFcqXcpFcpFcpFcpFcpFcvWcpFcpFcticpFcybcpFcpFcybcybcyccpFcpFcvZcvYcwgcwgcwgcwgcygcwkcoTcwocwpcqxcwqcpacwscvCcpacwtcpjcyhcxtcyicwxcwwcpjcymcvMcvNcyrcypcwKcwLcwMcwNcyucvNcwPcwQcrGaaaaaaaaaaaaaaaaaacqvcwRcwycwAcywcwCcwBcyEcyzcyFcwFcwTcwScwVcyHcuWcuQcyJcqvaaaaaacdOcofcogcohckXcsRcuZcxgcxhcxhcxicxjcxkcyKcxmcyLcdOaaaaaacrPaaaaafaaaaafaafaafaaackxaaaaafaaaaafaaaaafaaacrPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaactYctYctYctYctYctYctYctYctYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamaaaaaaaaaaaacpAcpFcpFcpFcpFcpFcyMcpFcpFcpFcyMcpFcpFcpFcpFcpFcvWcpFcpFcyRcyPcySctdctdcyScyTcyScxlcyUcyVctdcrkcyXczgczeczncwkcoTcxucoTcsgczocpacpacxAcpacxBcpjczqczqcxDcwxcwwcpjbPxcvMcvNcxKcxLcxMcxNcxOcxNcxPcvNcxQcxRcrGaaaaaaaaaaaaaaaaaacqvcxScxTcxUczrcxWcxXczBcxZcuTczFcuScxEcuTczHcqvcqvcqvcqvaaaaaacdOcplcpmcplczJcrUcppcrNcrNcyecyfcrNczKcomcomcomcdOaaaaaacrPaaactXctXctXctXctXaafckxaafctXctXctXctXctXaafcrPaaaczLaaaaaaczLaaaaaaaaaczLaaaaaaaaaaaaaaaczLaaaaaaaaaczLaaaaaaczLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaactYctYctYctYctYctYctYctYctYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamaafaaaaaaaaacpAcpFczmcrWcrWczpcxGcrWczpcrWcxIczMctIctIczSctIczTctIctIctSczVcybcpFcpFcyjcylcykcynczXcyocpFcsqcyqcyscyscAtcytcoTcxucyvcnOcAvcpacyxcpacAwcyycpjcpjcpjcpjcpjcpjcpjbPxcvMcvNcAxcyNcxLcyOcxLcxNcAAcvNcyQcADcrGaaaaaaaaaaaaaaaaaacqvcuVcAHctFctFcAJcyAcAQcyWctMctDctNcyBctMcvhcyYcqvaaaaaaaaaaaacdOcplcplcplckXcARczacrNcrNcrNcyfcrNczbcrNczccrNctgaafaafcrPaafckVckSckSckSckSckyckxckwckvckvckvckvckUaafcrPaaaczLczLczLczLaaaaaaaaaczLczLczLczLczLczLczLaaaaaaaaaczLczLczLczLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaactYctYctYctYctYctYctYctYctYaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaamaafaaaaaaaaacpAcpFcqXcpFcpFcpFcyMcpFcpFcpFcyMcpFcpFcpFcyCcpFcvWcpFcpFcpFcyDcybcpFcpFcATcyTctfcyGcwgcAUcwgcwgcyqcAWcyIcBkcytcoTcxucoTcnOcBncBmcBscBqctjcpacnOcBucBzcBzczhcBAcBDczNczOcvNcBEczPczQcxNczRcBHcBIcvNczUcBKcrGaaaaaaaaaaaaaaaaaacqvczWcuMcBLcuVczYczZcAactFcAbcAccsPcyBczWczjcAecqvaaaaaaaaaaaackEcdOcAfcAgcAgczkcAicAjcAkcAlcAmcAncAocApcAqcokctnaaaaaacrPaafcwjcwjcwjcwjcwjaaackxaafcwjcwjcwjcwjcwjaaacrPaaaczLczLczLczLaaaaaaczLczLczLczLczLczLczLczLczLaaaaaaczLczLczLczLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaactYctYctYctYctYctYctYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaIaaaaaacvlcpFcqXcpFcBOcxactxcxacBRcxactxcxacBRcxacxccxacxbcBSctectdcCcctfczsczucztczwczvczxcwgczzczycwgcwgcwgcwgcwgczAcmDcvncmDcnOcnOcnOcnOcnOcnOcnOcnOczDcBzcBzczEcANcAObPxcAPcvNcCgcCfcClcCicCqcCncCvcvNcAXcAYcrGaaaaaaaaaaaaaaaaaacqvcuQcAZcAectFcBacBbcBcctFcBdcBecCBczGczIcBecCFcqvaafaafaaaaaaaaaaaabquaaacdOcBlcCKcCJcBocBpcCKcCNcBrcBpcCKcCOcdOaaaaaacbOaaaaafaaaaafaaaaafaaackxaaaaafaaaaafaafaafaafcrPaaaczLczLczLczLaaaaaaczLczLczLczLczLczLczLczLczLaaaaaaczLczLczLczLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaIvaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaactYctYctYctYctYctYctYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacbOaaaaaaaaaaaIaaaaaacwJcpFcqXcpFcCQcylcqXcpFcCYcylcqXcpFcAucylcpFcpFcDacpFcDccylcDdcAzcAycABcDmcDpcACcAEcwgcDtcAFcDwcAIcAKcumcAMcALcumcAScumcBfcuocBgcBicBhcBhcBjcDxcBVcBWcBWcBXcBYcAObPxcBZcvNcvNcCacCbcDFcCbcCacCdcvNcrGcDIcrGaaaaaaaaaaaaaaaaaacqvctFcDLcuVctFcDNcChcDOctFcwWcwOcpScgvcxscwOcxvcrHaaaaaaaaaaaaaaaaaacgwaafcdOcDUcDXclUcomclscEbclqcomclocEcclWcdOaaaaaacrPaaactXctXctXctXctXaafckxaafctXctXctXctXctXaafcrPaaaczLczLczLczLczLczLczLczLczLczLczLczLczLczLczLczLczLczLczLczLczLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaactYctYctYctYctYctYctYctYctYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacrPaafaafaafaaIaafaafcwJcpFcEecBycBxcEicEfcBCcBBcEqcEjcBGcBFcErcpFcBvcEycEBcBJcBMcEEcnycnycnycnycnycnycnycnycEJcBNczAcBPcBQcoTcEXcoTcoTcxucoTcoTcEZcoTcBQcBTcCpcBUcCrcFecFrcFgcCPcFCcAObPwcCRcCScCTcCacAGcAVcBwcCacCtcCscCucFEcCXaaaaaaaaaaaaaaaaaacqvcFFctDcuQcFKcDbcuQcFUcFLcxwaafaaachxcCxcCwcCyaaaaaaaaaaacaaaaaaaaaaaaaaacdOcDhcplcplcomcDicplcplcomcDicplcplcdOaafaafcrPaafckVckSckSckSckSckyckxckwckvckvckvckvckUaafcrPaaaczLczLczLczLczLczLczLczLczLczLczLczLczLczLczLczLczLczLczLczLczLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaactYctYctYctYctYctYctYctYctYctYctYctYctYctYctYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacrPcCzaaaaaaaaIaaaaaacyZczfczdcAdczlcArcAhcBtczlcArcAhcBtczlcArcCecCecCjcBtczlcArcCkcnyaaacCMcCLcCVcCUcCZcCWcDjcDgcDkcDkcGocDlcDocCmcCAcCocCmcCAcDocDrcGvcDscDrczAczAcAOcGEcGAcDPcDQcAObNUcDRcDScDTcCacCbcGMcCbcCacDvcDucDfaafaaaaaaaaaaaaaaaaaaaaacqvcFFcDVcGZcGOcGOcGZcsPcDYcqvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacdOcDZcplcplcomcEacplcplcomcEacplcplcdOaaaaaacrPaafcwjcwjcwjcwjcwjaaackxaaacwjcwjcwjcwjcwjaaacrPaaaczLczLczLczLczLczLczLczLczLczLczLczLczLczLczLczLczLczLczLczLczLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabtnbtnbtnbtnbtnbtnbtnbBCbExbBCbEybEzbEAbEAbEAbEAbEAbEBbGfbEDbzTbEEbdPbGgbEGbEHbEIbEJbGibGhbGkbGjbGvbtCbENbAbbEObEPbyEbvwbBDbGubGAbBMbETbvwbBPbGCbGDbAhaaaaaaaaabAjbGWbGEbFcbyNbFdbFebFfbFgbDnbDobFhaJibxwaRqaRpbHabFjbFkbFlbFmbFnbHfbFpbFqbxCbxFbxFbHibxFbwkbFsbFtbFubFvbFwbFxbDJbHjbDLbFzbFAbFBbDObFCbFDbFEbHkbVlbDXbHlbVAbCobDXbDXbFKbFLbFMbFLbFLbFNbFObFPbHmbFRbFSbCvbCzbHvbHMbFWbFXbFYbFZbGabGbbGcbGdaafaafbCJbGebHNbHNbHObHQbHPbHRbCBaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabtnbtnbtnbtnbtnbtnbtnbCEbDjbDdbdPbdPbDubvYbvYbvYbDNbdPbdPbDWbEQbEvbdPbGtbGtbGtbFabGtbGvbGwbGxbGybGzbtCbvtbAbbHUbGBbtCbtGbtGbtGbtGbtGbHVbtGbtGbtGbHZbtGbtGbtGbtGbtGbIfbtGbtGbtGbtGbtGbtGbtGaJiaJiaJiaJibxwaRqaRpbHabIobFkbCSbGGbCWbGIbGJbGKbGLbGMbGNbCjbGObGPbGQbGRbGSbGTbGUbGVbIrbGXbGYbGZbIubHbbHcbHdbHebIvbCpbUSbUfbwwbwwbwwbwwbwwbFbbwwbwwbwwbzAbFobzAbzAbIDbBhbCubCvbCzbIMbIRbHnbHobHpbHqbGabGbbGcbHraaaaaabCJbHsbHtbEobCnbFJbITbIUbCJaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabtnbtnbtnbtnbtnbtnbtnaaaaaaaaaaaaaaaaaaaafaaaaaaaaabHuaafaaaaaaaaaaaabGtbIYbIXbHxbHybLrbFTbFVbHBbHCbtCbvtbAbbAcbAabHDbHEbHFbGlbHHbGmbHJbHKbHLbJabJqbJbbJrbAabAabJDbJWbJVbAabHTbAabsybHHbsybHWbHXbHYbJXbxwaRqbDsaJlbDtbGnbDtbDCbDPbxCbIbbIcbIdbIebKdbIgbIhbIibIjbIkbwmbIlbImbInbDJbDTbElbIpbIqbKfbFDbIsbItbKgbCpbKhbIwbIxbIybUdbLybKibICbKjbUcbIFbIGbIHbIIbIJbzAbIKbCubCvbGobKobINbIObIPbIQbKBbGabGbbISbEnbEnbEnbCJbCJbCJbGqbGpbCJbCJbFJbCJaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafaafaafaaaaaaaaaaaaaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaIvaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabtnbtnbtnbtnbtnbtnbtnaaaaaaaaaaaaaaaaaabLaaaaaaaaaaaaaaaaaaaaaaaaaaaabGtbLnbEmbIVbIWbGrbLpbLzbLxbLFbtCbvtbJcbJdbJebJebJfbJgbGsbJibGsbJgbJfbJebJebLHbJkbJlbLIbJnbJobLKbJebJebJpbJgbGsbJibGsbJsbJtbJubJtbJvbJwbvUaJlbEtbEqbFHbGFbLWbGHbDzbHAbFibDVbxFbLYbCFbDSbDEbJGbwkbJHbJIbJJbDJbJKbJLbJMbJNbJObFDbJPbItbJObCpbJQbJRbIxbJSbJTbJUbHwbMlbMibJYbIFbJZbKabKbbKbbzAbKcbMqbMpbMxbMwbMCbMybMHbMFbKkbGabGbbKlbEnbKmbMIbKnbEnaafaafaafaafaafaafaafaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafbKpbKqbKqbKrbKsbKsbKtbKtbKtbKtbKuaafaafaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabtnbtnbtnbtnbtnaaaaaaaaaaaaaaaaaaaaaaaabBBbBzbKxbBzbKvaaaaaaaaabGtbGtbMMbKAbIVbKAbMPbKCbMSbKDbKEbtCbKFbvtbKGbKHbAabKIbAabsybHHbsybAabKKbKLbKMbKNbKObAcbAabKPbKQbHLbKRbHLbHLbKSbHzbMXbHzbKWbKXbcLbKYaRpaRpaRpaJlbMZbFlbFnbNdbJmbNfbJybJxbFIbLgbLhbLibLjbHgbDEbIkbIabIzbHhbDJbDJbLobLobLobCpbNhbLqbNkbLsbLtbCpbLubLvbIxbLwbFGbLybNqbLAbLBbLCbIFbJCbLEbKbbKbbzAbRsbSLbCvbwwbLGbNtbNsbLJbNzbLLbGabLMbLNbLObLObLObLPbGdaaaaaaaaaaaaaafaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafbLQbLRbLSbLRbKsbKtbKtbLTbLUbLTbKtbKtaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabKwbNAbLXbNBbKwbHGbHSbHIbGtbMcbMdbMebMfbMgbNLbNKbMjbMjbMkbtCbtCbtCbNQbtCbtCbtCbtCbtCbtCbtCbtCbtCbtCbtCbtCbtCbMmbMnbMobtCbtCbtCbtCbtCbNZbtCbtCbtCaJlaJlbObaJlaKSaMpbMraJlbKZbOcbOdbGFbLdbxCbDzbLDbxCbOfbMzbMAbMBbwkbOibMDbMEbOkbMGbOlbOnbMJbMKbMLbItbJObFDbFDbOtbJObCpbMNbMObMObMObMObMObMObMObMObMObMObOxbMQbMRbMRbzAbIAbILbIBbwwbMVbMVbMVbMWbOEbMYbMVbMVbMVbMVbMVbMVbNabNbaymaymaymaymaymaymaymaymaymaymaymaymaymaymaymaymaymaymaymaymaymaymaymbOFbLRbLRbNebKtbKtbLTbLTbOGbLTbLTbKtbKtaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabKxbNgbMsbNgbKxbIZbNjbOHbNlbNmbNnbKAbNobNpbGvbOIbNrbOJbOKbGvbNubNvbNwbNxaaaaaaaaaaaabNybOLbONbOMbNDbNCbNEbNFbNGbNHbNIbNFbNJbOQbORbNMbNNbNObNPbOTbNRbNSbNTbNUbNUbNUbNUbDtbDtbDtbDtbJhbJhbxCbOUbOabPebMzbMvbMubOebPubOgbOhbPvbOjbPCbPAbOmbPDbMKbOobFDbFDbNVbJObJObOobCpbMNbMObOqbOrbOsbPEbOubOvbOwbPFbMObOybOzbOAbOAbzAbOBbPGbCvbzIbPHbPKbPJbPMbPLbPVbPSbPXbPWbPYbVFbMVbPZbEnbOObOObOObOObOOaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaabOPbKtbOFbKtbKtbLTbLTbLTbLTbLTbLTbLTbKtbKtaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabKwbNgbNgbNgbQcbQbbKAbOSbQebQdbKAbQgbOVbOWbGvbGvbGvbGvbGvbGvbOXbOYbOZbJjaaabKzbKJbKJbKTbQjbPfbPgbPhbPfbPibNFbKVbKUbLZbNFbPmbNXbPobPpbPqbPrbPsbPtbPtbNSbQubQpbPwbPxbPybDtbNYbGFbQBbGFbGFbQDbDzbQLbxCbQMbQXbQPbRbbwkbRcbPIbwkbRdbRibRebRpbPNbMKbCpbCpbCpbCpbCpbCpbCpbCpbPObMObPPbQYbPRbOsbOsbOsbOsbRvbMObPTbLEbPUbPUbzAbBhbSLbCvbRxbQabQabRybRAbRzbRDbRBbRJbRFbRJbRMbMVbQfbRObOObQhbRWbOpbMaaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafbKsbKtbQlbQmbQmbLTbLTbLTbLTbLTbLTbLTbLTbKtbKtaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabKxbMsbMsbMsbKxbMbbQobScbQqbQrbKAbKAbQsbQtbSgbQvbQvbQvbQvbQvbQvbQwbQxbMhaaabMtbQAbSibQCbSlbPfbQEbQGbQFbPfbNFbQIbQJbQKbNFbSrbSnbQNbQObSubQQbQRbPtbQSbPxbQTbNUbPxbPxbQUbDtbPnbGFbQVbSwbGFbPzbDzbLebRCbQZbPBbSEbSMbRGbDEbIkbSpbRdbRebRebRpbRfbMKbRgbRhbSNbRjbRkbRlbSObRnbPObMObOsbOsbRobOsbOsbOsbOsbSPbMObRqbLEbRrbRrbzAbRsbRtbRubSQbRwbSSbSRbSWbSVbTsbTgbTAbTubTNbTMbMTbREbTWbMUbRHbKybOpbNiaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaabKtbKtbRLbLTbLTbLTbLTbLTbLTbLTbLTbLTbLTbLTbKtbKtaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaabKwbUbbRNbUkbKwbOCbHSbHIbGtbGtbRQbRQbRQbGtbGtbNxbRRbRRbRSbRSbRSbRSbNwbMhaaabODbRUbRVbUobRXbRYbRZbSabSbbSbbUqbSdbSebUwbNFbPtbPtbPtbPtbPtbUAbPtbPtbShbUGbSjbNUbPxbSkbUObDtbQHbGFbQVbSmbUPbPzbSobJAbJBbSqbRabSsbStbJzbFsbSvbIEbSxbUWbURbSAbSBbMKbRmbSDbVebRjbSfbSGbVjbRnbPObMObMObMObRobOsbOsbOsbMObMObMObSIbSJbRrbRrbzAbSKbSLbCvbzIbVkbVvbVmbRDbVybVGbVzbVVbVObWibWgbMVbQfbWkbOObSXbLVbPjbPaaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafbKtbLTbLTbLTbLTbLTbLTbTbbLTbTcbLTbLTbLTbLTbLTbKtbKtaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabQibBzbTebBzbRIbWoaafaaaaaabGtbPcbPbbPdbGtaaabNxbTkbTlbTmbTnbTnbTnbTobMhaaabMtbTpbTqbTrbWIbPfbTtbTvbWMbTwbNFbSzbTybTzbWVbTBbTBbTBbTCbTCbTDbTEbULbPxbPxbTFbNUbNUbNUbNUbDtbDtbLfbLkbLcbDtbTJbTKbTLbJFbJEbTJbPebLlbLmbTRbTSbTJbMKbMKbMKbMKbMKbMKbXabTUbTVbRjbXcbTXbTYbRnbPObMObTZbQWbPQbXfbXebNWbNcbTZbUgbUhbUibIIbIJbzAbIKbSLbUjbwwbMVbMVbXibXnbMVbMVbMVbMVbXpbSCbVFbMVbXqbUnbOObPkbSybPlbOOaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaabKtbUsbUsbUsbUsbUsbUsbUtbLTbUubUsbTcbLTbLTbLTbLTbKtaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabLaaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafbUvbNxbNxbNxbNxbRSbXvbNwbQkaaabQnbKJbKJbQybXxbPfbPfbUBbPfbSFbNFbUDbSHbSTbNFbSUbSUbSUbSUbSUbSUbSUbSUbUHbUIbUJbUKbUKbUMbNUbDtbUNbSZbTxbUQbYabwabUTbUUbYtbYobYwbUTbUYbUZbVabVbbUebTPbVdbYybVgbVhbVibUlbYzbUmbRjbUCbYHbUCbRnbPObMObVnbUFbVpbVqbVrbVsbVtbVubUgbzAbQzbzAbzAbVwbCxbSLbCxbRKaafbnxbYSbYYblSbVBbYZbZcbZbbZebUVbMVbVHbVIbOObVJbSYbVKbwhaaLaaLaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabwibLRbLRbLRbLRbLRbLRbLRbVNbLUbLTbLTbLTbLTbZibLUbKuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabTfbTdbTdbVPbVSbNxbVTbRSbVUbNxaaaaaaaaaaaabNybZrbVWbVXbVZbVYbPfbNFbWabWbbNIbNFbSUbUXbVfbVcbVDbVCbVEbSUcaqcaqcaqcaqcaqbTFbWjbZsbWlbWcbWdbZubWpbxgbWrbWsbWtbWubWtbWvbWtbWwbWxbWybWzbWAbWBbWAbWCbWDbWEbWFbWGbWebZvbWfbWKbWLbZzbxVbMObxWbZBbzlbWSbWTbWhbWSbWSbRPbWWbWXbWYbWZbCxbCxbSLbCxbRTaafbnxbZLbZLbXbbZObXdbZSbZPbXgbXhbMVbVHbZUbOObOObOObOObOOaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaabKtbQmbQmbQmbQmbQmbQmbXkbLTbQlbQmbXlbLTbLTbLTbLTbKtaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabXmbZVbWmcaabRScanbXrbRSbXsbNxaaKaaaaaaaaabNybNybNybNybNybNybNybNFbUDbUEbXtbNFbSUbWnbWJbTabTabWJbWRbSUcaobWUbWUbXocaqbXBbDtbDtbXCbXDbXEbXFbXGblRbXIbXJbXKbXLbXMbXNbXObXPbXQbXRbXSbXTbXUbznbzpbzobAPbzqbARbAQbATbAScaxbAUbYfbYgbIwbYhbVobCqbWObWNbWPbYmbYnbThbYpbYqbYrbYscaLbYrbYubYvbTiaafbnxcaMcaWbrBbVBcaXcbecbdcbfbYAbMVbVHbYBbYCbUnaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafbKtbLTbLTbLTbLTbLTbLTbTbbLTbXlbLTbLTbLTbLTbLTbKtbKtaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabVQbTdbTdbVPbYEbYFbYGbNxcbgbNxbYIbTjbTObYIbYIbYLcbibYNbYObYPbTTbXwbXzbXybYebXAbUpbWJbUrbYxbYRbUxbYTcbmbYVbYUbYXbYWcaqbZhbNScbnbZjbZkbZlbZlbZmbnEbZobZpbTJbTJbZqcbrbTJbTJcbycbtcbAcaIcbBbWQbZxbZycbCbZybZAbZacbDbZabZAcbJbYfbMNbIwbZEbXWbXVbZdcbKbZJbZKbMObMObwwbwwbwwbwwbwwboIbnFbofbwwbMVbMVbMVbMVbMVbMVbMVbMVbMVbMVbMVbMVcbLbZQbZRbUnaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaabKtbKtbRLbLTbLTbLTbLTbLTbLTbLTbLTbLTbLTbLTbKtbKtaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamaamcbOaamaamaamaamaamaaaaaaaaaaaaaaaaaaaafaafaaabZfbZgbZgbZgbZHbZgbZgbZTbZIbYIbZYbZZbYIcbQcabcbWcadbZWcafbUybZXcaecaccahcagbUzbWJbUrcajcakbUxcalbSUcaqcaqcaqcaqcaqcarbNSbDtcascatccecamcawccncaycazbTJccrcaBcaCcaDcaEcaFcaGcaHcaIbZxbWQcapbZycaKcctbZAccucaNcaObZAbXXbYfbPObIwbXYccvbXZbXYbXYbIwbIwbIwcaRcaScaTcaUcaVbwwbwwbVxbwwbwwccGcaYcaucaAcavccJcaZcbacbcccQccMccYccScbhbUnbUnbUnaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafbKsbKtbUubUsbUsbLTbLTbLTbLTbLTbLTbLTbLTbKtbKtaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamaaaaaaaaaaaaaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafcbbcdmcdjcblcdpcdBcdtcbpcbobYIcdGcbsbYIbYIcdNcbucbvcbwcbxbWHcbqbXzbXybYecbzbXubWJbWJbYjbYJbWJcebbSUcbFcbGcaqcbHcaqbTFcbIcbIcbIcbIcbIcbIcbIbTJceccbEbTJcedcbMcbNcefcaEcbPceicelcaIbZxbWQcbRbZycbScbTbZAcbUcbVceobZAccqbYfbYbbYdbYcbYiccsccAbYccepbYkbYlcktbZDbZwbZFcktcerbZGccCccBceuccDccPccFcexcevceHceCcevceIceZceKcfeccwccxccycczbUnbUnbUnbUnaaaaafaaaaaaaaaaahaahaahaafaaaaaaaafaaaaaaaafaaaaaabOPbKtbOFbKtbKtbLTbLTbLTbLTbLTbLTbLTbKtbKtaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafccRccRcdjccTcficdBccUccWccVbYIcfjccHccIbYKccKccLcflccNccObYMccXcdaccZcdecdbbYQcdycdQcdFcekceecembZncdccddaJEcdfcaqbTFcbIcdgcdhcdicfucdkcdlcfwcdncdocfxcdqcdrcdscfycaEcducdvcdwcaIbZxbWQcenbZycdxcfzbZAcdzcdAcfAbZAcaPbYfbYfcaQbYccbYcbXcbZbYcchBccacjfcdLcdLbZCbZMcdLcdOcdPceqcdRcdOcdScaJcaicbjcdScdScdScdScbkcaicbjcdScdSbXjcdXcfLcfIceacfMcfUcfRbycbycbycbycbycbycbycbycbycbycbycbycbycbycbycbyccfZcegcegcehbKtbKtbLTbLTcgebLTbLTbKtbKtaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamaafaaaaaaaaaaaaaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacejcejcejcejcejcejcejcetcesbYIbYIbYIbYIbYIccccdTccEccEccEcdUcewbXzbXybYeceybUpceEceTceSceWceUceXbSUcezaJFceYaJFcaqbTFcbIceDcfacfacfaceFceGbTJcgCcgBbTJcedcbNceJcefcaEcgOceLceMcaIbZxbWQceNbZyceOcePbZAbZAbZAbZAbZAccbceRbYfcaQbYcccdcgRbYcbYcchBcgVcjfcdLcgWcfbcfbcfccdOcfdcgXcffcdOcfgcfhcfhcfhcgYchacgZchdchbcfnchicfpcdScfqcfrchmbUnbUnbUnbUnaaaaafaaaaaaaaaaahaahaahaafaaaaaaaafaaaaaaaafaafaafcftcfBcfvbNebKsbKtbKtbLTbLUbLTbKtbKtaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamaafaafaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafcejchpchnchrchqchucejcfDcfCcfFcfEcfHchvchychycdYcfJcfJchzchEcbqbXzbXybYecfNbUzcfOcfQcfPchLchFcggbSUaJFaJFcaqceBcaqbTFcbIcfVcfWcfWcfWcfXcbIcfYchPcgacfYcgbcgccgdchScaEchVceLcgicaIcghccfchYbZycgkcglbZycifbLvbVicgnccgcchbYfccjcciccicckcclcclcclcclccmcdLcijcgycgycgzcdZctscgrcgpcfkcgtcgGcgGcgGcgxcgIcgIcgJciycgLcgDcgMcdScgNciCcgPcgNaaaaaaaaaaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafcgQbKqbKqbKrbKsbKsbKtbKtbKtbKtbKuaafaafaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamaaaaafaafaafcgEcgEcgEcgEcgEcgEcgEcgEcgEcgEcgEcgEcgEaaaaaacfmciKcgTcgTcgUciLcejcgHcgFcfocgKciVciQcjaciWcfscjicjpchcchfchechhchgchjcjqbSUbSUbSUbSUbSUbSUbSUbSUcjscfGcaqcjtcaqbTFcbIcbIctpctqctrcbIcbIcjuchschtcfYcaEcaEcaEcaEcaEcaIchkchlcaIchwcjvchwbZycjIcjCbZychAchBbVichCbVichDbYfccobYfbYfccpcdCcdCcdCcdDbYfcdLchIchJchJchKckachMchochOckdchQckLckLckLckLckjckfckLckmckLcknckocdSchZciachGcgNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafaafaafaaaaaaaaaaaaaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamaaaaaaaaaaaacgEchHckpchHcgEchNckCchNcgEchRckFchRcgEaaaaaacfKciKcgTcgUcgUckNcejchUchTchWckQclfchXcidciccgfcieciecigciecbqbXzcihbYecikcgjcilciocinciocipcirciqciqciAciAciAciAbTFciGciHciIciIciJclpclrciMciXciOclycluciRciSciSciTciUcaIcaIcaIclCcdEckqbZybZybZybZychBchBbViciYbViciZbYfccobYfaaaaaaaaaaaaaaaaaaaaacdLcjgcisciucitcgmcjkcivcjmcgocjociwcjocjocixclKclGcgIclVcgIcmgcmkcdScmpcjwcjxcgNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamaaaaaaaaaaaacgEchHcjbchHcgEchNcjcchNcgEchRcjdchRcgEaaaaaacfKcgTcgUcgUcgUcjBcgucjhcjechWcmwcmGcmBcmPcmOcgAcjycjDcjAcjEcbqbXzcjFchjcjGcgScjHcjJcjJcjJcjKcjMcjLcjNcmRcjOceAciAbTFciGcmXciIckbckccnbcubcneckgckhcngcnfckkcklciScnhciUcnkcnwcnucjQcjPcdHcnEcdIcdIcdJcdIcdKbVibVibVibVibYfccobYfaaaaaaaaaaaaaaaaaaaaacdLcnFcjRcjTcjSckEcdOcnIcdOckGckHcjXcjUcjUcjYcgIcgIckecjZcjUckickOcdSckPcnKckRcgNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamaaaaaaaaaaaacgEckrckuckscgEckzckBckAcgEckDckJckIcgEaaaaafcfKclbcgTcgUcgUcgUcejckMckKchWchWcnLchWchWchWchWckTcieckWckYcbqclackZcldclcciicleclhclhclhclicljcljclkciAcllcgqclwclxciGcnPciIclzclAclBcnQclDclEclFcnTclHclIclJciScnUciUcnVcnXclNclnclmclQclNclRclSclTbYfceQcdIcdIcdIcdIcdIcltbYfaaaaaaaaaaaaaaaaaaaaacdLcmacmbcmccmdcdOcmecmfcnZcdScmhcmicmicmiclvcoacmlclPclOcmicmicmncdScimcobcmqcmraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamaaaaaaaafaafcgEclXciPcmjcgEcmtciPcEgcgEcmtciPcEgcgEaaaaafcjjcgTcgTcgUcgUcmAcejcmvcmucjlcolconcmycmCcmCcmEcjncmCcmFcoqcbqcmIcmHcmKcmJcgjcmLcmLcmMcljcmNcotcorcorciAcibceVcoycqgciGcoAciIcnccndcoBciGcmSciNcmWciUcoCcnicnjciScoFciUclLclMclNcnlcoJcnlclNaaaaaaaaabYfbYfbYfcnnclSclSclTbYfbYfaaaaaaaaaaaacdOcdOcdOcdOcdOcdOcdOcdOcdOcnocnpcnqcdScdScjzcjrclgcdScdScdScdScmmcjrclgcdScdScnvcpdcnvaafaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaIvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacbOaafaafaafaaaaafcnxaafcnxaafcKAaafcpfaafcKAaafcpfaafaafaaacejcnAcnBcgUcgUcnCcnDcmscmocnycnmcprcnzcnzcpycnzcnGcmzcmxcnGcnJcmQcmDcnrcnMcnOcnOcnOcnOcntcnscnRcnRcnRcgscgscgscgscnSciGcpMcpNcnccpOcnWciGcmSciNcpPciUcnYcpQcnjcpUcpRciUclLclMclNcoccodcoeclNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaaacdOcofcogcohcwlcojcokcqecomcqmcopcoocdOaaLaafaafaafaafaaaaaaaaacqraaaaaaaaaaafcoscqscosaafaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamaaaaaaaafcnHcoucnNcowcovcoDcoxcowcoEcoKcoxcpgcoLcptcpocnycnycnycnycnycnycnycnycoHcoGcqWcoIcracpAcoNcoMcoOcnGcoQcoPcoRcnGcoTcoScoUcnOcoWcoVcoYcoXcpacoZcpjcpbcpbcpkcpncpncpjcrvciGciGcpccrzciGciGciGcpeciNcrQciUciUciUcrScphciUciUclLcpiclNcvmcpscvmclNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaafaafcdOcplcpmcplcrVcrUcppcpqcomcomcrXcomcdOcdOaaaaaaaaaaafaafaaaaacaaaaaaaaaaaaaafaaacrZaaaaafaafaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaIaaaaaaaaaaafcpBcsacpucpxcpwcpFcsbcsccpzcsecsdcpEcpDcsfcpFcpLcpJcsicpCcsDcsncsKcpTcpWcpVcpYcpXcqacpGcqccqbcsLcpHcsMcqfcsQcpIcoTcqJcqKcnOcpacpacpacpacpacqMcpjcqPcqPcqPcpncpncpjbTFcrYciGcqhcqicqjcqkciGcqlciNcsWciUcqncqocqpcqqciUcsXclLcpiclNcsYcqQcquclNaaaaaaaaaaaaaaaaaacqvcpScqdcpZcqvaafaaaaaaaaaaaacdOcplcplcplcoicsZcqBcqCctbcqEcqFcqGcqHcdOaaaaaaaaaaaaaafaafaaaaaaaaaaaaaaaaafaaacmZaaaaafaafaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamaaaaaaaaaaafcqtcqYcqScqVcqUcpFcqXcpFcvWcqYcqXcpFcvWcqYcpFcpFcpFcpFcpFcqZcpFcpFcpFcrbctccrdcrccticpGcrfcrecrhcqwcrjcricrlcqxcoTcqJcrmcnOcrncpacpacrocpacrpcpjcrIcrKcrJcrKcrLcpjbTFcrqciGcrrcrscrtcructkcrwcrxcryctmcrAcrBcrCcrDciUcrEcrFcrGcrHcqvctocqvcrHaaaaaaaafaaaaaaaaacqvcrRcrTcttcqvaafaafaaaaaaaaacdOcomcomcomcomcrMcppcrNcrNcrNcnpcrNcrOcdOaaaaaaaaaaaaaaacrPcrPcrPcbOaafaafaafaafcnaaafaafaafaafaafaaqcrPcrPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamaaaaafaafaafcpBcpFcrccpFcrccpFcqXcpFctucxactxcxactycxacxactGctBcpFcpFctOctIctIctIctSctQctTctTctUcpGctVcshcsjcnGcsmcskcuacnGcspcsocsrcqycstcsscsvcsucpacswcpjcsxcrKcsycrKcuecpjbTFcizciGcszcsAcsBcsCciGcfYcufcfYciUcsEcsFcsGcsHciUcsIcrGcrGcqvcsJcsNculcqvcqvcqvcqvcqvcqvcqvcqvctMctDctNcqvcqvcqvcrHaaaaaacdOcofcogcohcslcsRcqBcrNcrNcrNcnpcrNcsScdOaaaaaaaaaaaaaaacrPaaaaafaaaaafaaaaaaaaackxaaaaafaafaaaaaaaaaaaacrPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamaafaafaaaaaacpBcpFcrccpFcsOcsTcurcsVcsUcuxctxcxacuycxacxacuLcuEcuUcuOcuYctacvccvbcvbcvkcrccrccthcqzcqDcqAcnzcnGcqIcnGcnGcnGcvsctlcsrcqLcvvcqNcvFcvEcpacvGcpjcvOcrKcsycrKcvRcpjctvctwciGciGcvXciGciGciGciBctzctAciUciUciUcwaciUciUcsIcrGaaacqvctCctZctEctFcwectHcwfctJctKctLcqvcuVcwmcuVcqvcwuctPcqvaafaafcdOcplcplcplcwvcrUctRcuccwDcwzcudcrNctWcdOcdOcdOcdOaaaaaacrPaaactXctXctXctXctXaafckxaafctXctXctXctXctXaaacrPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaactYctYctYctYctYctYctYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamaaaaaaaaaaaacpBcpFcsOcsTcsTcsTcurcsTcsTcsTcurcsTcsTcsTcsTcsTcwEcwGcsTcwHcsTcwIcsTcsTcsTcuhcugcuicpvcpFcujcqOcukcuncumcupcuocumcuqcuscqRcuucutcutcuvcutcuwcrgcwUcuAcuzcuBcuBcpjcuCcuDcwXcuFcuFcuGcuHcuIcuJcuJcuJcuJcuJcuJcuJcuJcuKcrFcrGaaactFcwYcuPcuNctFcwZcuRcuQcuQcvdcvacuQcuQcvhcuQcuVcuXcuQcqvaaaaaacdOcplcplcplcslcxdcuZcvicxncxecvjcrNcrNcvecvfcvgcdOaafaafcrPaafckVckSckSckSckSckyckxckwckvckvckvckvckUaafcrPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaactYctYctYctYctYctYctYctYctYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamaaaaaaaaaaaacpBcpFcpFcpFcpFcpFcqXcpFcpFcpFcqXcpFcpFcpFcpFcpFcvWcpFcpFcticpFcxocpFcxqcxpcvpcvocvrcvqcxrcvqcrkcvucvxcvwcvycvucvucvzcvAcntcvBcpacvDcvCcpacpacsgcxtcxtcxCcuBcuBcpjbPxcAscvNcvNcvNcvNcxFcvNcvNcvNcvNclMcvPcrGcrGcrGcrGcrGcrGaaactFctFcxHctFctFcxJcvScvTcvUcvVcvHcvJcvIcvLcvKcxVcwbcwccqvaaaaaacdOcomcomcomcomcwdcppcvicyacxYcvQcrNcrNcwhcrNcwicdOaaaaaacrPaafcwjcwjcwjcwjcwjaaackxaaacwjcwjcwjcwjcwjaafcrPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaactYctYctYctYctYctYctYctYctYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaacbOaaaaaaaaaaaacpBcpFcpFcpFcpFcpFcqXcpFcpFcpFcqXcpFcpFcpFcpFcpFcvWcpFcpFcticpFcybcpFcpFcybcybcyccpFcpFcvZcvYcwgcwgcwgcwgcygcwkcoTcwocwpcqycwqcpacwscvCcpacwtcpjcyhcxtcyicwxcwwcpjcymcvMcvNcyrcypcwKcwLcwMcwNcyucvNcwPcwQcrGaaaaaaaaaaaaaaaaaacqvcwRcwycwAcywcwCcwBcyEcyzcyFcwFcwTcwScwVcyHcuWcuQcyJcqvaaaaaacdOcofcogcohckXcsRcuZcxgcxhcxhcxicxjcxkcyKcxmcyLcdOaaaaaacrPaaaaafaaaaafaafaafaaackxaaaaafaaaaafaaaaafaaacrPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaactYctYctYctYctYctYctYctYctYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamaaaaaaaaaaaacpBcpFcpFcpFcpFcpFcyMcpFcpFcpFcyMcpFcpFcpFcpFcpFcvWcpFcpFcyRcyPcySctdctdcyScyTcyScxlcyUcyVctdcsqcyXczgczeczncwkcoTcxucoTctgczocpacpacxAcpacxBcpjczqczqcxDcwxcwwcpjbPxcvMcvNcxKcxLcxMcxNcxOcxNcxPcvNcxQcxRcrGaaaaaaaaaaaaaaaaaacqvcxScxTcxUczrcxWcxXczBcxZcuTczFcuScxEcuTczHcqvcqvcqvcqvaaaaaacdOcplcpmcplczJcrUcppcrNcrNcyecyfcrNczKcomcomcomcdOaaaaaacrPaaactXctXctXctXctXaafckxaafctXctXctXctXctXaafcrPaaaczLaaaaaaczLaaaaaaaaaczLaaaaaaaaaaaaaaaczLaaaaaaaaaczLaaaaaaczLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaactYctYctYctYctYctYctYctYctYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamaafaaaaaaaaacpBcpFczmcrWcrWczpcxGcrWczpcrWcxIczMctIctIczSctIczTctIctIctSczVcybcpFcpFcyjcylcykcynczXcyocpFctjcyqcyscyscAtcytcoTcxucyvcnOcAvcpacyxcpacAwcyycpjcpjcpjcpjcpjcpjcpjbPxcvMcvNcAxcyNcxLcyOcxLcxNcAAcvNcyQcADcrGaaaaaaaaaaaaaaaaaacqvcuVcAHctFctFcAJcyAcAQcyWctMctDctNcyBctMcvhcyYcqvaaaaaaaaaaaacdOcplcplcplckXcARczacrNcrNcrNcyfcrNczbcrNczccrNctnaafaafcrPaafckVckSckSckSckSckyckxckwckvckvckvckvckUaafcrPaaaczLczLczLczLaaaaaaaaaczLczLczLczLczLczLczLaaaaaaaaaczLczLczLczLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaactYctYctYctYctYctYctYctYctYaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaamaafaaaaaaaaacpBcpFcqXcpFcpFcpFcyMcpFcpFcpFcyMcpFcpFcpFcyCcpFcvWcpFcpFcpFcyDcybcpFcpFcATcyTctfcyGcwgcAUcwgcwgcyqcAWcyIcBkcytcoTcxucoTcnOcBncBmcBscBqcvlcpacnOcBucvncvnczhcBAcBDczNczOcvNcBEczPczQcxNczRcBHcBIcvNczUcBKcrGaaaaaaaaaaaaaaaaaacqvczWcuMcBLcuVczYczZcAactFcAbcAccsPcyBczWczjcAecqvaaaaaaaaaaaackEcdOcAfcAgcAgczkcAicAjcAkcAlcAmcAncAocApcAqcokcvtaaaaaacrPaafcwjcwjcwjcwjcwjaaackxaafcwjcwjcwjcwjcwjaaacrPaaaczLczLczLczLaaaaaaczLczLczLczLczLczLczLczLczLaaaaaaczLczLczLczLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaactYctYctYctYctYctYctYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaIaaaaaacwJcpFcqXcpFcBOcxactxcxacBRcxactxcxacBRcxacxccxacxbcBSctectdcCcctfczsczucztczwczvczxcwgczzczycwgcwgcwgcwgcwgczAcmQcwOcmQcnOcnOcnOcnOcnOcnOcnOcnOczDcvncvnczEcANcAObPxcAPcvNcCgcCfcClcCicCqcCncCvcvNcAXcAYcrGaaaaaaaaaaaaaaaaaacqvcuQcAZcAectFcBacBbcBcctFcBdcBecCBczGczIcBecCFcqvaafaafaaaaaaaaaaaabquaaacdOcBlcCKcCJcBocBpcCKcCNcBrcBpcCKcCOcdOaaaaaacbOaaaaafaaaaafaaaaafaaackxaaaaafaaaaafaafaafaafcrPaaaczLczLczLczLaaaaaaczLczLczLczLczLczLczLczLczLaaaaaaczLczLczLczLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaIvaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaactYctYctYctYctYctYctYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacbOaaaaaaaaaaaIaaaaaacwWcpFcqXcpFcCQcylcqXcpFcCYcylcqXcpFcAucylcpFcpFcDacpFcDccylcDdcAzcAycABcDmcDpcACcAEcwgcDtcAFcDwcAIcAKcumcAMcALcumcAScumcBfcuocBgcBicBhcBhcBjcDxcBVcBWcBWcBXcBYcAObPxcBZcvNcvNcCacCbcDFcCbcCacCdcvNcrGcDIcrGaaaaaaaaaaaaaaaaaacqvctFcDLcuVctFcDNcChcDOctFcxvcxscpZcgvcxwcxscyZcrHaaaaaaaaaaaaaaaaaacgwaafcdOcDUcDXclUcomclscEbclqcomclocEcclWcdOaaaaaacrPaaactXctXctXctXctXaafckxaafctXctXctXctXctXaafcrPaaaczLczLczLczLczLczLczLczLczLczLczLczLczLczLczLczLczLczLczLczLczLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaactYctYctYctYctYctYctYctYctYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacrPaafaafaafaaIaafaafcwWcpFcEecBycBxcEicEfcBCcBBcEqcEjcBGcBFcErcpFcBvcEycEBcBJcBMcEEcnycnycnycnycnycnycnycnycEJcBNczAcBPcBQcoTcEXcoTcoTcxucoTcoTcEZcoTcBQcBTcCpcBUcCrczdczfcFgcCPcFCcAObPwcCRcCScCTcCacAGcAVcBwcCacCtcCscCucFEcCXaaaaaaaaaaaaaaaaaacqvcFFctDcuQcFKcDbcuQcFUcFLczlaafaaachxcCxcCwcCyaaaaaaaaaaacaaaaaaaaaaaaaaacdOcDhcplcplcomcDicplcplcomcDicplcplcdOaafaafcrPaafckVckSckSckSckSckyckxckwckvckvckvckvckUaafcrPaaaczLczLczLczLczLczLczLczLczLczLczLczLczLczLczLczLczLczLczLczLczLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaactYctYctYctYctYctYctYctYctYctYctYctYctYctYctYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacrPcCzaaaaaaaaIaaaaaacAdcArcAhcBzcBtcCjcCecCkcBtcCjcCecCkcBtcCjcCmcCmcCocCkcBtcCjcCAcnyaaacCMcCLcCVcCUcCZcCWcDjcDgcDkcDkcGocDlcDocCCcCEcCDcCCcCEcDocDrcGvcDscDrczAczAcAOcGEcGAcDPcDQcAObNUcDRcDScDTcCacCbcGMcCbcCacDvcDucDfaafaaaaaaaaaaaaaaaaaaaaacqvcFFcDVcGZcGOcGOcGZcsPcDYcqvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacdOcDZcplcplcomcEacplcplcomcEacplcplcdOaaaaaacrPaafcwjcwjcwjcwjcwjaaackxaaacwjcwjcwjcwjcwjaaacrPaaaczLczLczLczLczLczLczLczLczLczLczLczLczLczLczLczLczLczLczLczLczLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaactYctYctYctYctYctYctYctYctYctYctYctYctYctYctYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacrPcHacHjcHjcHCcHjcHjcHjcHjcHVcHjcIAcHjcHVcHjcIAcHjcHVcHjcIAcHjcHjcHjcIAcHjcIAcHjcIMaafaaacDzcDycDBcDAcDDcDCcDjcDEcDkcIRcDHcDGcDJcITcIZcDKcDWcDMcDJcJhcEdcJlcDraaaaafcAOcJpcECcEDaafaaabNUbPxbPxbSkcCaclZcEFclYcCaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacqvcJzcuXcJBcJAcJAcJBcuQcEKcqvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacdOcplcplcplcomcELcplcplcomcELcplcplcdOaacaaacrPaaaaaaaafaafaafaaaaaacmTaafaaaaaaaafaafaaaaaacrPaaaczLczLczLczLczLczLczLczLczLczLczLczLczLczLczLczLczLczLczLczLczLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaactYctYctYctYctYctYctYctYctYctYctYctYctYctYctYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacrPaafaafaaaaaqaaaaaaaafcgEcmtciicEgcgEcmtciicEgcgEcmtciicEhcgEaaacgEcEgciicEhcgEaaaaafaaacDzcJCcElcEkcEncEmcEpcEocDkcJFcEscJUcDJcEtcEvcEucExcEwcDJcJVcEAcEzcDraaaaaacAOcKdcFhcFiaaaaaabNUbPxbPxbNUcCacmUcmUcmUcCaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacqvcKocFncuQcuQcuQcuQcuQcFocqvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaackEcdOcdOcdOcdOcdOcdOcdOcdOcmYcmYcmYckEaaaaaacrPcrPcrPcrPcrPaaaaaaaaacmZaaaaaaaaacrPcrPcrPcbOcrPaaaczLczLczLczLczLczLczLczLczLczLczLczLczLczLczLczLczLczLczLczLczLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaactYctYctYctYctYctYctYctYctYctYctYctYctYctYctYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacrPaaaaafaafaaIaaaaaaaafcgEcEGcEIcEHcgEcEMcEOcENcgEcEPcERcEQcgEaafcgEcEScEUcETcgEaaaaafaaacDzcEVcDBcEncEncEWcEYcKpcFacKqcFccFbcKBcFdcFjcFfcFlcFkcFpcFmcKCcFqcDraafaaacFJcKGcKFcAOcKHaaabNUcFMcKIcFNcFOaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacrHcqvcqvcCCcFQcJBcJBcJBcFRcCCaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabqpbqpbqpaaaaaaaaaaaaaaaaaaaaaaaaaaacrPaafcfTaafcrPaaaaaaaaaaaaaaaaaaaaaczLczLczLczLczLczLczLczLczLczLczLczLczLczLczLczLczLczLczLczLczLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaactYctYctYctYctYctYctYctYctYctYctYctYctYctYctYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaIaaaaafaafcgEcFscFtcFscgEcFucFvcFucgEcFwcFxcFwcgEaaacgEcFwcFwcFycgEaaaaafaaacDzcCLcFzcEkcEncDCcFAcDEcDkcFBcFDcKJcDJcKKcFGcKLcFGcFHcDJcFIcFTcFScDraaLcKNcKMcKPcKOcKMcKMcKQbNUciEciDcGjaafaaaaaaaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacCDcJAcJAcJAcJAcJAcCDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacrPaaaaafaaacrPaaaaaaaaaaaaaaaaaaczLczLczLczLczLczLczLczLczLczLczLczLczLczLczLczLczLczLczLczLczLczLczLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaactYctYctYctYctYctYctYctYctYctYctYctYctYctYctYaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaIaafaafaaacgEcFscKRcFscgEcFucKScFucgEcFwcKTcFwcgEaafcgEcFwcKUcFwcgEaafaafaafcFYcFXcGacFZcGccGbcGdcDEcDkcGecKVcGfcDJcGicGmcGkcKWcGncDJcGpcGrcGqcDraaacKYcKXcLacKZcLccLbcLdcGFcGGcGHbNUaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacqvcCEcpZcpZcpZcxvcqvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacrPcrPcrPcrPcrPaaaaaaaaaaaaaaaaaaczLczLczLczLczLczLczLczLczLczLczLczLczLczLczLczLczLczLczLczLczLczLczLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaactYctYctYctYctYctYctYctYctYctYctYctYctYctYctYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacbOaaaaaacgEcgEcgEcgEcgEcgEcgEcgEcgEcgEcgEcgEcgEaaacGscgEcgEcgEcgEaaaaaaaaaaaacBNcBNcBNcBNcBNcLecGtcGtcGtcGtcLfcGtcGwcGycGxcGycGzcGtcGtcLgcGtcGtcGtcKYcKXcLicLhcLkcLjcLlaafaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaczLczLczLczLczLczLczLczLczLczLczLczLczLczLczLczLczLczLczLczLczLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaactYctYctYctYctYctYctYctYctYctYctYctYctYctYctYctYctYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacrPaaaaaaaafaafaaaaafaafaaaaaaaafaafaafaaaaaaaaaaaaaaaaaaaafaaacGQcGRcGRcGRcGScGBcGDcGCcGIcLmcGKcGJcLncGLcLocGNcGTcGPcGVcGUcGXcGWcLpcGYcHbcLqcGYcGtcKYcKXcLscLrcLucLtcLvaafaaacGQcHccGQcHccGQcHcaafcHdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaczLczLczLczLczLczLczLczLczLczLczLczLczLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaactYctYctYctYctYctYctYctYctYctYctYctYctYctYctYctYctYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamaafcHncjVcHpaaacHncjVcHpaaacHncjVcHpaafaafaaaaafaafaafaafaafcHqcGRcGRcGRcGScGBcHfcHecHhcHgcLwcHicHlcHkcHocHmcHscHrcHucHtcHucHucHucHvcHucHwcHxcGtcLxcKMcKMcKMcKMcKMcLyaafaafcHycHycHycHycHycHyaafcHdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaczLczLczLczLczLczLczLczLczLczLczLczLczLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaactYctYctYctYctYctYctYctYctYctYctYctYctYctYctYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacrPaafaafaaaaaqaaaaaaaafcgEcmtciPcEgcgEcmtciPcEgcgEcmtciPcEhcgEaaacgEcEgciPcEhcgEaaaaafaaacDzcJCcElcEkcEncEmcEpcEocDkcJFcEscJUcDJcEtcEvcEucExcEwcDJcJVcEAcEzcDraaaaaacAOcKdcFhcFiaaaaaabNUbPxbPxbNUcCacmUcmUcmUcCaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacqvcKocFncuQcuQcuQcuQcuQcFocqvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaackEcdOcdOcdOcdOcdOcdOcdOcdOcmYcmYcmYckEaaaaaacrPcrPcrPcrPcrPaaaaaaaaacmZaaaaaaaaacrPcrPcrPcbOcrPaaaczLczLczLczLczLczLczLczLczLczLczLczLczLczLczLczLczLczLczLczLczLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaactYctYctYctYctYctYctYctYctYctYctYctYctYctYctYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacrPaaaaafaafaaIaaaaaaaafcgEcEGcEIcEHcgEcEMcEOcENcgEcEPcERcEQcgEaafcgEcEScEUcETcgEaaaaafaaacDzcEVcDBcEncEncEWcEYcKpcFacKqcFccFbcKBcFdcFjcFfcFlcFkcFpcFmcKCcFqcDraafaaacFJcKGcKFcAOcKHaaabNUcFMcKIcFNcFOaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacrHcqvcqvcCGcFQcJBcJBcJBcFRcCGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabqpbqpbqpaaaaaaaaaaaaaaaaaaaaaaaaaaacrPaafcfTaafcrPaaaaaaaaaaaaaaaaaaaaaczLczLczLczLczLczLczLczLczLczLczLczLczLczLczLczLczLczLczLczLczLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaactYctYctYctYctYctYctYctYctYctYctYctYctYctYctYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaIaaaaafaafcgEcFscFtcFscgEcFucFvcFucgEcFwcFxcFwcgEaaacgEcFwcFwcFycgEaaaaafaaacDzcCLcFzcEkcEncDCcFAcDEcDkcFBcFDcKJcDJcKKcFGcKLcFGcFHcDJcFIcFTcFScDraaLbYDbVRcKPcKObVRbVRcDebNUciEciDcGjaafaaaaaaaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacCHcJAcJAcJAcJAcJAcCHaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacrPaaaaafaaacrPaaaaaaaaaaaaaaaaaaczLczLczLczLczLczLczLczLczLczLczLczLczLczLczLczLczLczLczLczLczLczLczLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaactYctYctYctYctYctYctYctYctYctYctYctYctYctYctYaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaIaafaafaaacgEcFscKRcFscgEcFucKScFucgEcFwcKTcFwcgEaafcgEcFwcKUcFwcgEaafaafaafcFYcFXcGacFZcGccGbcGdcDEcDkcGecKVcGfcDJcGicGmcGkcKWcGncDJcGpcGrcGqcDraaacDncKXcLacKZcLccLbcDqcGFcGGcGHbNUaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacqvcCIcqdcqdcqdcyZcqvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacrPcrPcrPcrPcrPaaaaaaaaaaaaaaaaaaczLczLczLczLczLczLczLczLczLczLczLczLczLczLczLczLczLczLczLczLczLczLczLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaactYctYctYctYctYctYctYctYctYctYctYctYctYctYctYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacbOaaaaaacgEcgEcgEcgEcgEcgEcgEcgEcgEcgEcgEcgEcgEaaacGscgEcgEcgEcgEaaaaaaaaaaaacBNcBNcBNcBNcBNcLecGtcGtcGtcGtcLfcGtcGwcGycGxcGycGzcGtcGtcLgcGtcGtcGtcDncKXcLicLhcLkcLjcLlaafaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaczLczLczLczLczLczLczLczLczLczLczLczLczLczLczLczLczLczLczLczLczLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaactYctYctYctYctYctYctYctYctYctYctYctYctYctYctYctYctYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacrPaaaaaaaafaafaaaaafaafaaaaaaaafaafaafaaaaaaaaaaaaaaaaaaaafaaacGQcGRcGRcGRcGScGBcGDcGCcGIcLmcGKcGJcLncGLcLocGNcGTcGPcGVcGUcGXcGWcLpcGYcHbcLqcGYcGtcDncKXcLscLrcLucLtcFeaafaaacGQcHccGQcHccGQcHcaafcHdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaczLczLczLczLczLczLczLczLczLczLczLczLczLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaactYctYctYctYctYctYctYctYctYctYctYctYctYctYctYctYctYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamaafcHncjVcHpaaacHncjVcHpaaacHncjVcHpaafaafaaaaafaafaafaafaafcHqcGRcGRcGRcGScGBcHfcHecHhcHgcLwcHicHlcHkcHocHmcHscHrcHucHtcHucHucHucHvcHucHwcHxcGtcFrbVRbVRbVRbVRbVRcFPaafaafcHycHycHycHycHycHyaafcHdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaczLczLczLczLczLczLczLczLczLczLczLczLczLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaactYctYctYctYctYctYctYctYctYctYctYctYctYctYctYctYctYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamaaacHncjWcHpaaacHncjWcHpaaacHncjWcHpaafaafaaaaafaaaaaacHKaafcGQcGRcGRcGRcGScGBcHfcHzcHBcHAcLzcHicHEcHDcHFcHbcHbcHbcHHcHGcHIcHbcHbcHDcHLcHJcHMcGtcGtcGtcHNaaaaaaaaaaaacHOaaacHPcHPcHPcHPcHPcHPaafcHdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaczLczLczLczLczLczLczLczLczLczLczLczLczLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaactYctYctYctYctYctYctYctYctYctYctYctYctYctYctYctYctYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaIaafcHncjWcHpaaacHncjWcHpaafcHncjWcHpaafaaaaaaaafaafcIcaaaaafcHqcGRcGRcGRcGScGBcHRcHQcHTcHScLAcHUcHXcHWcHZcHYcHYcHYcIbcIacIdcHYcHYcIecIgcIfcIicIhcIkcIjcImcIlcIlcIlcIlcIlcIlcIncIocIncIocIncHyaafcHdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaczLczLczLczLczLczLczLczLczLczLczLczLczLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaactYctYctYctYctYctYctYctYctYctYctYctYctYctYctYctYctYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaacHncjWcHpaafcHncjWcHpaaacHncjWcHpaaaaaaaaaaaaaafaafaaaaafaaaaaaaaaaaaaafcIpcIrcIqcItcIscIucGJcIvcHbcHbcHbcIxcIwcIzcIycIBcLBcIDcICcIFcIEcIHcIGcINcIIcImcIOcIPcIOcIPcIOcIPcIOcIPcIOcIPcIOcHyaafcHdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaczLczLczLczLczLczLczLczLczLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa diff --git a/maps/exodus-2.dmm b/maps/exodus-2.dmm index 32323a9755c..7f4045b6aad 100644 --- a/maps/exodus-2.dmm +++ b/maps/exodus-2.dmm @@ -297,7 +297,7 @@ "fK" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdownside"; nostop = 1; stopper = 0; tiles = 0},/turf/space/transit/north/shuttlespace_ns6,/area/space) "fL" = (/obj/effect/step_trigger/teleporter/random{affect_ghosts = 1; name = "escapeshuttle_leave"; teleport_x = 25; teleport_x_offset = 245; teleport_y = 25; teleport_y_offset = 245; teleport_z = 6; teleport_z_offset = 6},/turf/space,/area/space) "fM" = (/turf/space,/turf/simulated/shuttle/wall{dir = 8; icon_state = "diagonalWall3"},/area/syndicate_mothership) -"fN" = (/turf/unsimulated/wall{desc = "That looks like it doesn't open easily."; icon = 'icons/obj/doors/rapid_pdoor.dmi'; icon_state = "pdoor1"; name = "Shuttle Bay Blast Door"},/area/syndicate_mothership) +"fN" = (/turf/space,/area/skipjack_station/transit) "fO" = (/turf/simulated/shuttle/wall{icon_state = "wall3"},/area/syndicate_mothership) "fP" = (/turf/space,/turf/simulated/shuttle/wall{dir = 8; icon_state = "diagonalWall3"},/area/shuttle/syndicate_elite/mothership) "fQ" = (/obj/structure/shuttle/engine/propulsion{icon_state = "propulsion_r"; dir = 1},/turf/space,/area/shuttle/syndicate_elite/mothership) @@ -385,32 +385,32 @@ "hu" = (/turf/space,/turf/simulated/shuttle/wall{dir = 4; icon_state = "diagonalWall3"},/area/shuttle/syndicate_elite/mothership) "hv" = (/obj/machinery/door/airlock/external{name = "Shuttle Airlock"; req_access = list(150)},/obj/machinery/door/blast/regular{icon_state = "pdoor1"; id = "syndicate_elite"; name = "Front Hull Door"; opacity = 1},/turf/simulated/shuttle/plating,/area/shuttle/syndicate_elite/mothership) "hw" = (/turf/simulated/floor/plating/airless,/area/shuttle/syndicate_elite/mothership) -"hx" = (/turf/simulated/shuttle/wall{icon_state = "swall_s6"; dir = 2},/area/centcom/evac) +"hx" = (/turf/simulated/shuttle/wall{icon_state = "swall_straight"; dir = 1; dir = 2},/area/centcom/evac) "hy" = (/obj/structure/shuttle/engine/propulsion{icon_state = "propulsion_r"; dir = 1},/turf/space,/area/centcom/evac) "hz" = (/obj/structure/shuttle/engine/propulsion{icon_state = "propulsion"; dir = 1},/turf/space,/area/centcom/evac) "hA" = (/obj/structure/shuttle/engine/propulsion{icon_state = "propulsion_l"; dir = 1},/turf/space,/area/centcom/evac) -"hB" = (/turf/simulated/shuttle/wall{icon_state = "swall_s10"; dir = 2},/area/centcom/evac) +"hB" = (/turf/simulated/shuttle/wall{icon_state = "swall_straight"; dir = 4},/area/centcom/evac) "hC" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 4; name = "thrower_escapeshuttletop(right)"; tiles = 0},/turf/space/transit/north/shuttlespace_ns5,/area/space) "hD" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 4; name = "thrower_escapeshuttletop(right)"; tiles = 0},/turf/space/transit/north/shuttlespace_ns13,/area/space) -"hE" = (/turf/simulated/shuttle/wall{icon_state = "swall3"; dir = 2},/area/centcom/evac) +"hE" = (/turf/simulated/shuttle/wall{icon_state = "swall_s"; dir = 8},/area/centcom/evac) "hF" = (/obj/structure/window/reinforced,/obj/structure/shuttle/engine/heater{icon_state = "heater"; dir = 1},/turf/simulated/floor/plating/airless,/area/centcom/evac) -"hG" = (/turf/simulated/shuttle/wall{icon_state = "swall7"; dir = 2},/area/centcom/evac) -"hH" = (/turf/simulated/shuttle/wall{icon_state = "swall12"; dir = 2},/area/centcom/evac) +"hG" = (/turf/simulated/shuttle/wall{icon_state = "swall_t"; dir = 8},/area/centcom/evac) +"hH" = (/turf/simulated/shuttle/wall{icon_state = "swall_t"; dir = 4},/area/centcom/evac) "hI" = (/turf/space/transit/north/shuttlespace_ns15,/area/skipjack_station/transit) "hJ" = (/obj/machinery/door/airlock/external{frequency = 1380; icon_state = "door_locked"; id_tag = "escape_pod_1_recovery_hatch"; locked = 1; name = "Recovery Shuttle Dock"; req_access = list(13)},/turf/unsimulated/floor,/area/centcom/evac) -"hK" = (/turf/simulated/shuttle/wall{icon_state = "swall11"; dir = 2},/area/centcom/evac) +"hK" = (/turf/simulated/shuttle/wall{icon_state = "swall_s"; dir = 1},/area/centcom/evac) "hL" = (/obj/machinery/portable_atmospherics/powered/pump,/turf/simulated/shuttle/plating,/area/centcom/evac) "hM" = (/obj/machinery/portable_atmospherics/canister/oxygen,/turf/simulated/shuttle/plating,/area/centcom/evac) -"hN" = (/turf/simulated/shuttle/plating,/turf/simulated/shuttle/wall{icon_state = "swall_f6"; dir = 2},/area/centcom/evac) -"hO" = (/turf/simulated/shuttle/wall{dir = 2; icon_state = "swall_floor_f9"},/area/centcom/evac) +"hN" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdown"; tiles = 0},/turf/space,/area/space) +"hO" = (/turf/simulated/shuttle/wall{icon_state = "swall"; dir = 10},/area/centcom/evac) "hP" = (/obj/structure/closet/emcloset,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor"},/area/centcom/evac) "hQ" = (/obj/machinery/door/airlock/external{frequency = 1380; icon_state = "door_locked"; id_tag = "escape_pod_2_recovery_hatch"; locked = 1; name = "Recovery Shuttle Dock"; req_access = list(13)},/turf/unsimulated/floor,/area/centcom/evac) "hR" = (/obj/structure/table/standard,/obj/item/weapon/storage/firstaid/toxin{pixel_x = -2; pixel_y = 4},/obj/item/weapon/storage/firstaid/toxin,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor"},/area/centcom/evac) "hS" = (/obj/machinery/embedded_controller/radio/simple_docking_controller{frequency = 1380; id_tag = "escape_pod_1_recovery"; pixel_x = 25; pixel_y = 30; req_one_access = list(13); tag_door = "escape_pod_1_recovery_hatch"},/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor2"},/area/centcom/evac) "hT" = (/obj/structure/table/standard,/obj/item/weapon/storage/firstaid/regular{pixel_x = 2; pixel_y = 0},/obj/item/weapon/storage/firstaid/regular{pixel_x = -2; pixel_y = 4},/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor"},/area/centcom/evac) "hU" = (/obj/structure/table/standard,/obj/item/weapon/storage/firstaid/fire,/obj/item/weapon/storage/firstaid/fire{pixel_x = -2; pixel_y = 4},/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor"},/area/centcom/evac) -"hV" = (/turf/simulated/shuttle/wall{dir = 2; icon_state = "swall_floor_f5"},/area/centcom/evac) -"hW" = (/turf/simulated/shuttle/plating,/turf/simulated/shuttle/wall{dir = 3; icon_state = "swall_f10"; layer = 2},/area/centcom/evac) +"hV" = (/turf/simulated/shuttle/wall{icon_state = "swall_t"; dir = 1},/area/centcom/evac) +"hW" = (/turf/simulated/shuttle/wall{icon_state = "swall_t"; dir = 2},/area/centcom/evac) "hX" = (/obj/machinery/portable_atmospherics/powered/scrubber,/turf/simulated/shuttle/plating,/area/centcom/evac) "hY" = (/obj/machinery/vending/engineering,/turf/simulated/shuttle/plating,/area/centcom/evac) "hZ" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdownside"; nostop = 1; tiles = 0},/turf/space/transit/north/shuttlespace_ns15,/area/space) @@ -423,7 +423,7 @@ "ig" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdownside"; nostop = 1; tiles = 0},/turf/space/transit/north/shuttlespace_ns14,/area/space) "ih" = (/turf/unsimulated/wall,/area/syndicate_mothership) "ii" = (/turf/simulated/shuttle/plating,/area/centcom/evac) -"ij" = (/turf/simulated/shuttle/wall{icon_state = "swall1"; dir = 2},/area/centcom/evac) +"ij" = (/turf/unsimulated/wall{desc = "That looks like it doesn't open easily."; icon = 'icons/obj/doors/rapid_pdoor.dmi'; icon_state = "pdoor1"; name = "Shuttle Bay Blast Door"},/area/syndicate_mothership) "ik" = (/obj/machinery/embedded_controller/radio/simple_docking_controller{frequency = 1380; id_tag = "escape_pod_2_recovery"; pixel_x = -25; pixel_y = 30; req_one_access = list(13); tag_door = "escape_pod_2_recovery_hatch"},/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor2"},/area/centcom/evac) "il" = (/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor"},/area/centcom/evac) "im" = (/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor2"},/area/centcom/evac) @@ -444,9 +444,9 @@ "iB" = (/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_mothership{name = "\improper Ninja Base"}) "iC" = (/turf/simulated/shuttle/floor{icon_state = "floor4"},/turf/simulated/shuttle/wall{dir = 4; icon_state = "diagonalWall3"},/area/syndicate_mothership{name = "\improper Ninja Base"}) "iD" = (/turf/simulated/shuttle/floor{icon_state = "floor4"},/turf/simulated/shuttle/wall{icon_state = "diagonalWall3"},/area/syndicate_mothership{name = "\improper Ninja Base"}) -"iE" = (/turf/simulated/shuttle/wall{icon_state = "swall_s5"; dir = 2},/area/centcom/evac) +"iE" = (/turf/simulated/shuttle/wall{icon_state = "swall_s"; dir = 4},/area/centcom/evac) "iF" = (/obj/machinery/vending/wallmed1{name = "Emergency NanoMed"; pixel_x = 30; pixel_y = 0},/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor"},/area/centcom/evac) -"iG" = (/turf/simulated/shuttle/wall{icon_state = "swall_s9"; dir = 2},/area/centcom/evac) +"iG" = (/turf/simulated/shuttle/wall{icon_state = "swall_s"; dir = 2},/area/centcom/evac) "iH" = (/turf/space/transit/north/shuttlespace_ns11,/area/shuttle/escape_pod1/transit) "iI" = (/turf/space/transit/north/shuttlespace_ns6,/area/shuttle/escape_pod1/transit) "iJ" = (/turf/space/transit/north/shuttlespace_ns8,/area/shuttle/escape_pod1/transit) @@ -490,7 +490,7 @@ "jv" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/simulated/shuttle/plating,/area/syndicate_mothership{name = "\improper Ninja Base"}) "jw" = (/obj/machinery/teleport/station,/turf/simulated/floor/plating,/area/syndicate_mothership{name = "\improper Ninja Base"}) "jx" = (/obj/machinery/computer/teleporter,/turf/simulated/floor/plating,/area/syndicate_mothership{name = "\improper Ninja Base"}) -"jy" = (/turf/simulated/shuttle/wall{dir = 2; icon_state = "swallc1"},/area/centcom/evac) +"jy" = (/turf/simulated/shuttle/plating,/turf/simulated/shuttle/wall{dir = 4; icon_state = "swall_c"},/area/centcom/evac) "jz" = (/obj/machinery/computer/arcade,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor"},/area/centcom/evac) "jA" = (/obj/machinery/teleport/hub,/turf/simulated/floor/plating,/area/syndicate_mothership{name = "\improper Ninja Base"}) "jB" = (/obj/structure/shuttle/engine/heater,/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating/airless,/area/syndicate_mothership{name = "\improper Ninja Base"}) @@ -499,115 +499,146 @@ "jE" = (/obj/structure/shuttle/engine/propulsion{icon_state = "propulsion_l"},/turf/space,/area/syndicate_mothership{name = "\improper Ninja Base"}) "jF" = (/turf/simulated/shuttle/wall{dir = 4; icon_state = "diagonalWall3"},/area/syndicate_mothership{name = "\improper Ninja Base"}) "jG" = (/obj/structure/shuttle/engine/propulsion{icon_state = "propulsion_r"},/turf/space,/area/syndicate_mothership{name = "\improper Ninja Base"}) -"jH" = (/turf/unsimulated/wall{desc = "That looks like it doesn't open easily."; icon = 'icons/obj/doors/rapid_pdoor.dmi'; icon_state = "pdoor1"; name = "Shuttle Bay Blast Door"},/area/centcom) -"jI" = (/turf/unsimulated/wall{desc = "That looks like it doesn't open easily."; icon = 'icons/obj/doors/rapid_pdoor.dmi'; icon_state = "pdoor1"; name = "Shuttle Bay Blast Door"},/area/centcom/suppy) +"jH" = (/obj/structure/table/standard,/obj/machinery/recharger{pixel_y = 4},/obj/item/weapon/handcuffs,/obj/item/weapon/storage/pill_bottle/dice,/obj/item/weapon/deck,/obj/item/weapon/rig/internalaffairs/equipped,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops) +"jI" = (/turf/simulated/shuttle/wall{dir = 8; icon_state = "swall_f"},/area/centcom/evac) "jJ" = (/obj/structure/closet/secure_closet/personal/patient,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor3"},/area/centcom/evac) "jK" = (/obj/item/weapon/storage/firstaid/regular{pixel_x = 2; pixel_y = 6},/obj/item/weapon/storage/firstaid/regular{pixel_x = -2; pixel_y = 4},/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor3"},/area/centcom/evac) "jL" = (/obj/structure/window/shuttle{icon_state = "window2"},/obj/structure/grille,/turf/simulated/shuttle/plating,/area/centcom/evac) "jM" = (/obj/structure/grille,/obj/structure/window/shuttle,/turf/simulated/shuttle/plating,/area/centcom/evac) -"jN" = (/turf/unsimulated/wall{desc = "That looks like it doesn't open easily."; icon = 'icons/obj/doors/rapid_pdoor.dmi'; icon_state = "pdoor1"; name = "Shuttle Bay Blast Door"},/area/centcom/living) -"jO" = (/turf/unsimulated/wall{desc = "That looks like it doesn't open easily."; icon = 'icons/obj/doors/rapid_pdoor.dmi'; icon_state = "pdoor1"; name = "Shuttle Bay Blast Door"},/area/centcom/ferry) -"jP" = (/turf/space,/area/skipjack_station/transit) -"jQ" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdown"; tiles = 0},/turf/space,/area/space) -"jR" = (/obj/machinery/light/small{dir = 4},/turf/unsimulated/floor{icon_state = "loadingarea"},/area/centcom/specops) -"jS" = (/obj/structure/bed/chair{dir = 1},/obj/machinery/light/small{brightness_color = "#DA0205"; brightness_power = 1; brightness_range = 5},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/specops/centcom) +"jN" = (/turf/simulated/shuttle/plating,/turf/simulated/shuttle/wall{icon_state = "swall_c"; dir = 2; layer = 2},/area/centcom/evac) +"jO" = (/turf/simulated/shuttle/wall{dir = 1; icon_state = "swall_f"},/area/centcom/evac) +"jP" = (/turf/simulated/shuttle/wall{icon_state = "swall"; dir = 1},/area/centcom/evac) +"jQ" = (/turf/simulated/shuttle/plating,/turf/simulated/shuttle/wall{icon_state = "swall_c"; dir = 4; dir = 2},/area/centcom/evac) +"jR" = (/turf/simulated/shuttle/wall{icon_state = "swall_s"; dir = 4},/area/supply/dock) +"jS" = (/turf/simulated/shuttle/wall{icon_state = "swall_straight"; dir = 4},/area/supply/dock) "jT" = (/obj/structure/window/shuttle,/obj/structure/grille,/turf/simulated/shuttle/plating,/area/centcom/evac) "jU" = (/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor3"},/area/centcom/evac) "jV" = (/obj/structure/window/shuttle{icon_state = "window1"},/obj/structure/grille,/turf/simulated/shuttle/plating,/area/centcom/evac) "jW" = (/obj/structure/table/reinforced,/obj/item/weapon/paper_bin,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor4"},/area/centcom/evac) "jX" = (/obj/structure/table/reinforced,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor4"},/area/centcom/evac) "jY" = (/obj/structure/table/reinforced,/obj/item/weapon/pen,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor4"},/area/centcom/evac) -"jZ" = (/obj/machinery/recharger/wallcharger{pixel_x = 4; pixel_y = 32},/obj/machinery/vending/wallmed1{layer = 3.3; name = "Emergency NanoMed"; pixel_x = 28; pixel_y = 0},/obj/machinery/light/small/readylight{dir = 4},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/specops/centcom) -"ka" = (/obj/machinery/button/remote/blast_door{id = "crescent_checkpoint_access"; name = "Crescent Checkpoint Access"; pixel_x = -6; pixel_y = -24; req_access = list(101)},/obj/machinery/button/remote/blast_door{id = "crescent_thunderdome"; name = "Thunderdome Access"; pixel_x = 6; pixel_y = -24; req_access = list(101)},/obj/machinery/button/remote/blast_door{id = "crescent_vip_shuttle"; name = "VIP Shuttle Access"; pixel_x = 6; pixel_y = -34; req_access = list(101)},/obj/machinery/turretid{pixel_x = 28; pixel_y = -28; req_access = list(101)},/turf/unsimulated/floor{icon_state = "floor"},/area/centcom/control) -"kb" = (/turf/simulated/shuttle/wall{icon_state = "swall12"; dir = 2},/area/shuttle/transport1/centcom) +"jZ" = (/turf/unsimulated/wall{desc = "That looks like it doesn't open easily."; icon = 'icons/obj/doors/rapid_pdoor.dmi'; icon_state = "pdoor1"; name = "Shuttle Bay Blast Door"},/area/centcom/living) +"ka" = (/turf/unsimulated/wall{desc = "That looks like it doesn't open easily."; icon = 'icons/obj/doors/rapid_pdoor.dmi'; icon_state = "pdoor1"; name = "Shuttle Bay Blast Door"},/area/centcom/suppy) +"kb" = (/turf/simulated/shuttle/wall{icon_state = "swall_s"; dir = 2},/area/supply/dock) "kc" = (/turf/unsimulated/wall/fakeglass{icon_state = "fakewindows2"; dir = 1},/area/syndicate_mothership) "kd" = (/turf/unsimulated/floor{icon_state = "bar"; dir = 2},/area/syndicate_mothership) -"ke" = (/turf/simulated/shuttle/wall{icon_state = "swall_s6"; dir = 2},/area/shuttle/transport1/centcom) -"kf" = (/turf/simulated/shuttle/wall{icon_state = "swall_s10"; dir = 2},/area/shuttle/transport1/centcom) -"kg" = (/obj/structure/window/shuttle{icon_state = "window12"},/obj/structure/grille,/turf/simulated/shuttle/plating,/area/shuttle/transport1/centcom) +"ke" = (/obj/structure/shuttle/engine/propulsion{tag = "icon-propulsion_r (WEST)"; icon_state = "propulsion_r"; dir = 8},/turf/space,/area/shuttle/administration/centcom) +"kf" = (/obj/item/weapon/reagent_containers/food/drinks/bottle/small/beer,/obj/structure/table/standard,/turf/unsimulated/floor{icon_state = "redyellowfull"},/area/centcom/living) +"kg" = (/turf/unsimulated/wall{desc = "That looks like it doesn't open easily."; icon = 'icons/obj/doors/rapid_pdoor.dmi'; icon_state = "pdoor1"; name = "Shuttle Bay Blast Door"},/area/centcom) "kh" = (/obj/machinery/door/airlock/hatch{name = "Infirmary"},/turf/simulated/shuttle/floor{icon_state = "floor2"},/area/centcom/evac) "ki" = (/obj/machinery/sleeper,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor3"},/area/centcom/evac) -"kj" = (/obj/machinery/sleep_console,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor3"},/area/centcom/evac) -"kk" = (/obj/structure/window/shuttle{icon_state = "window4"},/obj/structure/grille,/turf/simulated/shuttle/plating,/area/shuttle/transport1/centcom) +"kj" = (/turf/unsimulated/floor{dir = 8; icon_state = "whitehall"; tag = "icon-whitehall (EAST)"},/area/centcom/holding) +"kk" = (/obj/structure/shuttle/engine/propulsion{icon_state = "propulsion_l"; dir = 8},/turf/space,/area/shuttle/administration/centcom) "kl" = (/obj/structure/table/reinforced,/obj/item/weapon/clipboard,/obj/item/weapon/stamp,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor4"},/area/centcom/evac) "km" = (/obj/structure/bed/chair{dir = 1},/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor4"},/area/centcom/evac) "kn" = (/obj/structure/bed/chair{dir = 4},/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor4"},/area/centcom/evac) "ko" = (/obj/machinery/computer/card,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor4"},/area/centcom/evac) -"kp" = (/obj/structure/window/shuttle{icon_state = "window8"},/obj/structure/grille,/turf/simulated/shuttle/plating,/area/shuttle/transport1/centcom) -"kq" = (/obj/structure/shuttle/engine/propulsion{icon_state = "propulsion_l"; dir = 8},/turf/space,/area/shuttle/transport1/centcom) -"kr" = (/turf/simulated/shuttle/wall{icon_state = "swall14"; dir = 2},/area/shuttle/transport1/centcom) -"ks" = (/obj/machinery/microwave,/obj/structure/table/reinforced,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/administration/centcom) -"kt" = (/turf/simulated/shuttle/wall{dir = 2; icon_state = "swall_floor_f9"},/area/shuttle/transport1/centcom) +"kp" = (/turf/simulated/shuttle/wall{icon_state = "swall_straight"; dir = 1},/area/supply/dock) +"kq" = (/obj/machinery/microwave,/obj/structure/table/reinforced,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/administration/centcom) +"kr" = (/obj/item/device/multitool,/obj/item/weapon/reagent_containers/spray/cleaner,/obj/structure/table/reinforced,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/administration/centcom) +"ks" = (/obj/item/weapon/storage/toolbox/mechanical,/obj/structure/table/reinforced,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/administration/centcom) +"kt" = (/obj/item/weapon/flame/lighter/zippo,/obj/structure/table/reinforced,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/administration/centcom) "ku" = (/obj/machinery/vending/wallmed1{name = "Emergency NanoMed"; pixel_x = -30; pixel_y = 0},/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor3"},/area/centcom/evac) -"kv" = (/turf/simulated/shuttle/wall{icon_state = "swall11"; dir = 2},/area/shuttle/transport1/centcom) -"kw" = (/turf/simulated/shuttle/wall{dir = 2; icon_state = "swall_floor_f5"},/area/shuttle/transport1/centcom) -"kx" = (/obj/structure/bed/chair,/turf/simulated/shuttle/floor,/area/shuttle/transport1/centcom) +"kv" = (/obj/item/weapon/storage/fancy/cigarettes,/obj/structure/table/reinforced,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/administration/centcom) +"kw" = (/obj/structure/table/reinforced,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/administration/centcom) +"kx" = (/obj/machinery/cell_charger,/obj/structure/table/reinforced,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/administration/centcom) "ky" = (/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor4"},/area/centcom/evac) "kz" = (/obj/machinery/computer/secure_data,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor4"},/area/centcom/evac) -"kA" = (/obj/structure/shuttle/engine/propulsion{icon_state = "propulsion_l"; dir = 8},/obj/structure/window/reinforced,/turf/space,/area/shuttle/transport1/centcom) -"kB" = (/obj/structure/shuttle/engine/heater{icon_state = "heater"; dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/turf/simulated/floor/plating/airless,/area/shuttle/transport1/centcom) -"kC" = (/obj/structure/window/shuttle,/obj/structure/grille,/turf/simulated/shuttle/plating,/area/shuttle/transport1/centcom) +"kA" = (/turf/simulated/shuttle/wall{icon_state = "swall_s"; dir = 8},/area/supply/dock) +"kB" = (/turf/simulated/shuttle/wall{icon_state = "swall_s"; dir = 1},/area/supply/dock) +"kC" = (/turf/simulated/shuttle/wall{icon_state = "swall_f"; dir = 2},/area/supply/dock) "kD" = (/turf/unsimulated/wall/fakeglass,/area/syndicate_mothership) -"kE" = (/obj/structure/bed/chair{dir = 8},/turf/simulated/shuttle/floor,/area/shuttle/transport1/centcom) +"kE" = (/turf/simulated/shuttle/wall{icon_state = "swall_t"; dir = 8},/area/supply/dock) "kF" = (/obj/machinery/door/window/northright{base_state = "right"; dir = 4; icon_state = "right"; name = "Security Desk"; req_access = list(103)},/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor4"},/area/centcom/evac) -"kG" = (/turf/simulated/shuttle/floor,/area/shuttle/transport1/centcom) -"kH" = (/obj/machinery/door/unpowered/shuttle,/turf/simulated/shuttle/floor,/area/shuttle/transport1/centcom) +"kG" = (/turf/simulated/shuttle/wall{icon_state = "swall_f"; dir = 4},/area/supply/dock) +"kH" = (/turf/simulated/shuttle/wall{icon_state = "swall_t"; dir = 4},/area/supply/dock) "kI" = (/obj/structure/table/standard,/obj/item/weapon/storage/box/handcuffs,/obj/item/device/flash,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor4"},/area/centcom/evac) -"kJ" = (/obj/machinery/door/airlock/external{frequency = 1380; icon_state = "door_locked"; id_tag = "centcom_shuttle_hatch"; locked = 1; name = "Shuttle Hatch"; req_access = list(13)},/turf/simulated/shuttle/floor,/area/shuttle/transport1/centcom) -"kK" = (/turf/simulated/shuttle/wall{icon_state = "swall_s5"; dir = 2},/area/shuttle/transport1/centcom) -"kL" = (/obj/item/weapon/storage/toolbox/mechanical,/obj/structure/table/reinforced,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/administration/centcom) +"kJ" = (/turf/simulated/shuttle/wall{icon_state = "swall_straight"; dir = 4},/area/shuttle/transport1/centcom) +"kK" = (/turf/simulated/shuttle/wall{icon_state = "swall_s"; dir = 2},/area/shuttle/transport1/centcom) +"kL" = (/turf/simulated/shuttle/wall{dir = 4; icon_state = "swall_s"},/area/shuttle/transport1/centcom) "kM" = (/obj/machinery/door/airlock/hatch{name = "Cockpit"; req_access = list(109)},/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor2"},/area/centcom/evac) -"kN" = (/turf/simulated/shuttle/wall{icon_state = "swall14"; dir = 2},/area/centcom/evac) -"kO" = (/turf/simulated/shuttle/wall{icon_state = "swall13"; dir = 2},/area/centcom/evac) -"kP" = (/turf/simulated/shuttle/wall{dir = 1; icon_state = "swall_floor_f10"},/area/shuttle/transport1/centcom) +"kN" = (/obj/structure/window/shuttle{icon_state = "window8"},/obj/structure/grille,/turf/simulated/shuttle/plating,/area/shuttle/transport1/centcom) +"kO" = (/obj/structure/window/shuttle{icon_state = "window4"},/obj/structure/grille,/turf/simulated/shuttle/plating,/area/shuttle/transport1/centcom) +"kP" = (/obj/structure/window/shuttle{icon_state = "window12"},/obj/structure/grille,/turf/simulated/shuttle/plating,/area/shuttle/transport1/centcom) "kQ" = (/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) -"kR" = (/turf/simulated/shuttle/wall{dir = 8; icon_state = "swall_floor_f6"},/area/shuttle/transport1/centcom) +"kR" = (/turf/unsimulated/wall{desc = "That looks like it doesn't open easily."; icon = 'icons/obj/doors/rapid_pdoor.dmi'; icon_state = "pdoor1"; name = "Shuttle Bay Blast Door"},/area/centcom/ferry) "kS" = (/obj/structure/table/reinforced,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor"},/area/centcom/evac) "kT" = (/obj/structure/urinal{pixel_y = 32},/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/syndicate_mothership) -"kU" = (/obj/structure/bed/chair{dir = 1},/turf/simulated/shuttle/floor,/area/shuttle/transport1/centcom) +"kU" = (/obj/structure/shuttle/engine/propulsion{icon_state = "burst_r"; dir = 4},/turf/space,/area/shuttle/transport1/centcom) "kV" = (/obj/machinery/computer/crew,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor"},/area/centcom/evac) "kW" = (/obj/structure/bed/chair{dir = 4; name = "Defense"},/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor"},/area/centcom/evac) "kX" = (/obj/machinery/computer/communications,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor"},/area/centcom/evac) -"kY" = (/obj/structure/shuttle/engine/propulsion{icon_state = "propulsion_l"; dir = 8},/obj/structure/window/reinforced{dir = 1},/turf/space,/area/shuttle/transport1/centcom) -"kZ" = (/obj/structure/shuttle/engine/heater{icon_state = "heater"; dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating/airless,/area/shuttle/transport1/centcom) +"kY" = (/turf/simulated/shuttle/wall{icon_state = "swall_t"; dir = 1},/area/shuttle/transport1/centcom) +"kZ" = (/turf/simulated/shuttle/wall{icon_state = "swall"; dir = 5},/area/shuttle/escape/centcom) "la" = (/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/syndicate_mothership) -"lb" = (/turf/simulated/shuttle/wall{icon_state = "swall_s9"; dir = 2},/area/shuttle/transport1/centcom) +"lb" = (/turf/simulated/shuttle/wall{icon_state = "swall_s"; dir = 2},/area/shuttle/escape/centcom) "lc" = (/obj/item/device/radio/off,/obj/structure/table/reinforced,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor"},/area/centcom/evac) "ld" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 4; name = "thrower_escapeshuttletop(right)"; tiles = 0},/turf/space/transit/north/shuttlespace_ns8,/area/space) -"le" = (/turf/simulated/shuttle/wall{icon_state = "swall13"; dir = 2},/area/shuttle/transport1/centcom) -"lf" = (/obj/machinery/porta_turret/crescent,/turf/unsimulated/floor{icon_state = "bot"},/area/centcom/control) -"lg" = (/obj/item/device/multitool,/obj/item/weapon/reagent_containers/spray/cleaner,/obj/structure/table/reinforced,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/administration/centcom) -"lh" = (/obj/machinery/cell_charger,/obj/structure/table/reinforced,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/administration/centcom) -"li" = (/obj/structure/table/reinforced,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/administration/centcom) -"lj" = (/obj/item/weapon/storage/fancy/cigarettes,/obj/structure/table/reinforced,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/administration/centcom) -"lk" = (/obj/item/weapon/flame/lighter/zippo,/obj/structure/table/reinforced,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/administration/centcom) +"le" = (/turf/simulated/shuttle/wall{icon_state = "swall"; dir = 9},/area/shuttle/escape/centcom) +"lf" = (/turf/simulated/shuttle/wall{icon_state = "swall_s"; dir = 4},/area/shuttle/escape/centcom) +"lg" = (/obj/structure/shuttle/engine/propulsion{icon_state = "propulsion_l"; dir = 4},/obj/structure/window/reinforced,/turf/space,/area/shuttle/transport1/centcom) +"lh" = (/obj/structure/shuttle/engine/heater{icon_state = "heater"; dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/turf/simulated/floor/plating/airless,/area/shuttle/transport1/centcom) +"li" = (/turf/simulated/shuttle/wall{dir = 1; icon_state = "swall_f"},/area/shuttle/transport1/centcom) +"lj" = (/turf/simulated/shuttle/wall{icon_state = "swall_t"; dir = 4},/area/shuttle/transport1/centcom) +"lk" = (/obj/structure/bed/chair,/turf/simulated/shuttle/floor,/area/shuttle/transport1/centcom) "ll" = (/obj/item/weapon/stamp/captain,/obj/structure/table/reinforced,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor"},/area/centcom/evac) "lm" = (/obj/item/weapon/storage/lockbox,/obj/structure/table/reinforced,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor"},/area/centcom/evac) "ln" = (/obj/machinery/computer/shuttle,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor"},/area/centcom/evac) "lo" = (/obj/item/weapon/clipboard,/obj/item/weapon/pen,/obj/structure/table/reinforced,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor"},/area/centcom/evac) "lp" = (/obj/item/weapon/paper_bin,/obj/structure/table/reinforced,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor"},/area/centcom/evac) -"lq" = (/obj/machinery/camera/network/crescent{c_tag = "Crescent Arrivals - Holding Cell"; dir = 4},/turf/unsimulated/floor{tag = "icon-cult"; name = "plating"; icon_state = "cult"},/area/centcom/holding) -"lr" = (/obj/machinery/computer/shuttle_control{req_access = list(101); shuttle_tag = "Centcom"},/obj/machinery/light{dir = 1},/turf/simulated/shuttle/floor,/area/shuttle/transport1/centcom) -"ls" = (/obj/structure/bed/chair,/obj/machinery/light{dir = 1},/turf/simulated/shuttle/floor,/area/shuttle/transport1/centcom) -"lt" = (/obj/machinery/embedded_controller/radio/simple_docking_controller{frequency = 1380; id_tag = "centcom_shuttle"; pixel_x = 0; pixel_y = -25; tag_door = "centcom_shuttle_hatch"},/obj/machinery/light,/turf/simulated/shuttle/floor,/area/shuttle/transport1/centcom) -"lu" = (/obj/structure/bed/chair{dir = 1},/obj/machinery/light,/turf/simulated/shuttle/floor,/area/shuttle/transport1/centcom) -"lv" = (/obj/structure/table/standard,/obj/item/weapon/storage/fancy/cigarettes,/obj/item/weapon/flame/lighter/zippo,/obj/item/clothing/gloves/yellow,/obj/item/stack/material/steel{amount = 50},/obj/item/stack/material/glass{amount = 50},/obj/item/weapon/card/emag,/turf/simulated/shuttle/plating,/area/shuttle/skipjack/station) -"lw" = (/obj/structure/table/standard,/obj/machinery/recharger{pixel_y = 4},/obj/item/weapon/handcuffs,/obj/item/weapon/storage/pill_bottle/dice,/obj/item/weapon/deck,/obj/item/weapon/rig/internalaffairs/equipped,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops) -"lx" = (/obj/machinery/access_button{command = "cycle_exterior"; frequency = 1331; master_tag = "vox_west_control"; req_one_access = list(150)},/turf/simulated/wall/voxshuttle,/area/shuttle/skipjack/station) -"ly" = (/obj/machinery/access_button{command = "cycle_exterior"; frequency = 1331; master_tag = "vox_east_control"; req_access = list(150)},/turf/simulated/wall/voxshuttle,/area/shuttle/skipjack/station) +"lq" = (/obj/structure/bed/chair,/obj/machinery/light{dir = 1},/turf/simulated/shuttle/floor,/area/shuttle/transport1/centcom) +"lr" = (/turf/simulated/shuttle/wall{icon_state = "swall_f"; dir = 8},/area/shuttle/transport1/centcom) +"ls" = (/obj/machinery/computer/shuttle_control{req_access = list(101); shuttle_tag = "Centcom"},/obj/machinery/light{dir = 1},/turf/simulated/shuttle/floor,/area/shuttle/transport1/centcom) +"lt" = (/turf/simulated/shuttle/wall{icon_state = "swall_straight"; dir = 1},/area/shuttle/escape/centcom) +"lu" = (/turf/simulated/shuttle/wall{icon_state = "swall_t"; dir = 1},/area/shuttle/escape/centcom) +"lv" = (/turf/simulated/shuttle/wall{icon_state = "swall_t"; dir = 2},/area/shuttle/escape/centcom) +"lw" = (/turf/simulated/shuttle/wall{icon_state = "swall_straight"; dir = 4},/area/shuttle/escape/centcom) +"lx" = (/turf/simulated/shuttle/wall{icon_state = "swall_s"; dir = 1},/area/shuttle/transport1/centcom) +"ly" = (/turf/simulated/shuttle/wall{icon_state = "swall_s"; dir = 8},/area/shuttle/transport1/centcom) "lz" = (/obj/structure/window/shuttle{icon_state = "window4"},/obj/structure/grille,/turf/simulated/shuttle/plating,/area/centcom/evac) "lA" = (/obj/structure/window/shuttle{icon_state = "window12"},/obj/structure/grille,/turf/simulated/shuttle/plating,/area/centcom/evac) "lB" = (/obj/structure/window/shuttle{icon_state = "window8"},/obj/structure/grille,/turf/simulated/shuttle/plating,/area/centcom/evac) -"lC" = (/obj/machinery/button/remote/blast_door{id = "skipjackshutters"; name = "remote shutter control"; req_access = list(150)},/turf/simulated/wall/voxshuttle,/area/shuttle/skipjack/station) -"lD" = (/obj/machinery/atmospherics/pipe/manifold/visible{dir = 8},/obj/machinery/meter,/turf/simulated/shuttle/plating,/area/shuttle/skipjack/station) +"lC" = (/obj/structure/shuttle/engine/propulsion{tag = "icon-burst_l (EAST)"; icon_state = "burst_l"; dir = 4},/turf/space,/area/shuttle/transport1/centcom) +"lD" = (/turf/simulated/shuttle/wall{icon_state = "swall_t"; dir = 2},/area/shuttle/transport1/centcom) "lE" = (/turf/unsimulated/wall/fakeglass{dir = 1; icon_state = "fakewindows"},/area/syndicate_mothership) -"lF" = (/obj/machinery/atmospherics/pipe/manifold/visible{dir = 4},/obj/machinery/meter,/turf/simulated/shuttle/plating,/area/shuttle/skipjack/station) -"lG" = (/obj/machinery/atmospherics/pipe/simple/visible,/obj/machinery/access_button{command = "cycle_interior"; frequency = 1331; master_tag = "vox_west_control"; pixel_x = -22; req_one_access = list(150)},/turf/simulated/shuttle/plating,/area/shuttle/skipjack/station) -"lH" = (/obj/machinery/atmospherics/pipe/simple/visible,/obj/machinery/access_button{command = "cycle_interior"; frequency = 1331; master_tag = "vox_east_control"; pixel_x = 22; req_access = list(150)},/turf/simulated/shuttle/plating,/area/shuttle/skipjack/station) -"lI" = (/obj/machinery/light/small{dir = 8},/obj/machinery/atmospherics/portables_connector{dir = 1},/obj/machinery/portable_atmospherics/canister/air/airlock,/turf/simulated/shuttle/plating,/area/shuttle/skipjack/station) -"lJ" = (/obj/machinery/light/small{dir = 4},/obj/machinery/atmospherics/portables_connector{dir = 1},/obj/machinery/portable_atmospherics/canister/air/airlock,/turf/simulated/shuttle/plating,/area/shuttle/skipjack/station) +"lF" = (/turf/simulated/shuttle/floor,/area/shuttle/transport1/centcom) +"lG" = (/obj/structure/bed/chair{dir = 8},/turf/simulated/shuttle/floor,/area/shuttle/transport1/centcom) +"lH" = (/obj/structure/window/shuttle,/obj/structure/grille,/turf/simulated/shuttle/plating,/area/shuttle/transport1/centcom) +"lI" = (/obj/machinery/door/unpowered/shuttle,/turf/simulated/shuttle/floor,/area/shuttle/transport1/centcom) +"lJ" = (/obj/machinery/door/airlock/external{frequency = 1380; icon_state = "door_locked"; id_tag = "centcom_shuttle_hatch"; locked = 1; name = "Shuttle Hatch"; req_access = list(13)},/turf/simulated/shuttle/floor,/area/shuttle/transport1/centcom) +"lK" = (/obj/structure/shuttle/engine/propulsion{icon_state = "propulsion_r"; dir = 4},/obj/structure/window/reinforced{dir = 1},/turf/space,/area/shuttle/transport1/centcom) +"lL" = (/obj/structure/shuttle/engine/heater{icon_state = "heater"; dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating/airless,/area/shuttle/transport1/centcom) +"lM" = (/turf/simulated/shuttle/wall{icon_state = "swall_f"; dir = 2},/area/shuttle/transport1/centcom) +"lN" = (/obj/machinery/embedded_controller/radio/simple_docking_controller{frequency = 1380; id_tag = "centcom_shuttle"; pixel_x = 0; pixel_y = -25; tag_door = "centcom_shuttle_hatch"},/obj/machinery/light,/turf/simulated/shuttle/floor,/area/shuttle/transport1/centcom) +"lO" = (/obj/structure/bed/chair{dir = 1},/turf/simulated/shuttle/floor,/area/shuttle/transport1/centcom) +"lP" = (/obj/structure/bed/chair{dir = 1},/obj/machinery/light,/turf/simulated/shuttle/floor,/area/shuttle/transport1/centcom) +"lQ" = (/turf/simulated/shuttle/wall{icon_state = "swall_f"; dir = 4},/area/shuttle/transport1/centcom) +"lR" = (/obj/structure/shuttle/engine/propulsion{icon_state = "burst_l"; dir = 8},/turf/space,/area/shuttle/specops/centcom) +"lS" = (/obj/machinery/light/small{dir = 4},/turf/unsimulated/floor{icon_state = "loadingarea"},/area/centcom/specops) +"lT" = (/obj/structure/shuttle/engine/propulsion{icon_state = "propulsion"; dir = 8},/turf/space,/area/shuttle/specops/centcom) +"lU" = (/obj/structure/bed/chair{dir = 1},/obj/machinery/light/small{brightness_color = "#DA0205"; brightness_power = 1; brightness_range = 5},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/specops/centcom) +"lV" = (/obj/structure/shuttle/engine/propulsion{icon_state = "burst_r"; dir = 8},/turf/space,/area/shuttle/specops/centcom) +"lW" = (/turf/simulated/shuttle/wall{tag = "icon-swall2"; icon_state = "swall"; dir = 2},/area/shuttle/escape/centcom) +"lX" = (/obj/machinery/camera/network/crescent{c_tag = "Crescent Arrivals - Holding Cell"; dir = 4},/turf/unsimulated/floor{tag = "icon-cult"; name = "plating"; icon_state = "cult"},/area/centcom/holding) +"lY" = (/obj/machinery/recharger/wallcharger{pixel_x = 4; pixel_y = 32},/obj/machinery/vending/wallmed1{layer = 3.3; name = "Emergency NanoMed"; pixel_x = 28; pixel_y = 0},/obj/machinery/light/small/readylight{dir = 4},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/specops/centcom) +"lZ" = (/obj/machinery/button/remote/blast_door{id = "crescent_checkpoint_access"; name = "Crescent Checkpoint Access"; pixel_x = -6; pixel_y = -24; req_access = list(101)},/obj/machinery/button/remote/blast_door{id = "crescent_thunderdome"; name = "Thunderdome Access"; pixel_x = 6; pixel_y = -24; req_access = list(101)},/obj/machinery/button/remote/blast_door{id = "crescent_vip_shuttle"; name = "VIP Shuttle Access"; pixel_x = 6; pixel_y = -34; req_access = list(101)},/obj/machinery/turretid{pixel_x = 28; pixel_y = -28; req_access = list(101)},/turf/unsimulated/floor{icon_state = "floor"},/area/centcom/control) +"ma" = (/obj/structure/table/standard,/obj/item/weapon/reagent_containers/food/drinks/bottle/small/beer,/obj/item/weapon/reagent_containers/food/drinks/bottle/small/beer,/obj/item/weapon/reagent_containers/food/drinks/bottle/small/beer,/obj/item/weapon/flame/lighter/zippo,/obj/item/weapon/storage/fancy/cigarettes,/turf/unsimulated/floor{icon_state = "redbluefull"; dir = 8},/area/tdome/tdomeobserve) +"mb" = (/obj/machinery/light/small{dir = 4},/obj/machinery/atmospherics/portables_connector{dir = 1},/obj/machinery/portable_atmospherics/canister/air/airlock,/turf/simulated/shuttle/plating,/area/shuttle/skipjack/station) +"mc" = (/obj/machinery/light/small{dir = 8},/obj/machinery/atmospherics/portables_connector{dir = 1},/obj/machinery/portable_atmospherics/canister/air/airlock,/turf/simulated/shuttle/plating,/area/shuttle/skipjack/station) +"md" = (/turf/simulated/shuttle/wall{icon_state = "swall_s"; dir = 1},/area/shuttle/escape/centcom) +"me" = (/turf/simulated/shuttle/wall{icon_state = "swall_s"; dir = 8},/area/shuttle/escape/centcom) +"mf" = (/obj/machinery/button/remote/blast_door{id = "skipjackshutters"; name = "remote shutter control"; req_access = list(150)},/turf/simulated/wall/voxshuttle,/area/shuttle/skipjack/station) +"mg" = (/turf/simulated/shuttle/wall{icon_state = "swall_t"; dir = 4},/area/shuttle/escape/centcom) +"mh" = (/turf/simulated/shuttle/wall{icon_state = "swall_t"; dir = 8},/area/shuttle/escape/centcom) "mi" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/grille,/obj/machinery/door/blast/shutters{density = 0; dir = 4; icon_state = "shutter0"; id = "syndieshutters_workshop"; name = "Blast Shutters"; opacity = 0},/turf/simulated/shuttle/plating,/area/syndicate_station/start) +"mj" = (/obj/machinery/access_button{command = "cycle_exterior"; frequency = 1331; master_tag = "vox_west_control"; req_one_access = list(150)},/turf/simulated/wall/voxshuttle,/area/shuttle/skipjack/station) "mk" = (/obj/structure/table/rack,/obj/item/clothing/shoes/magboots,/obj/item/clothing/suit/space/syndicate/black/orange,/obj/item/clothing/mask/breath,/obj/item/clothing/head/helmet/space/syndicate/black/orange,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) +"ml" = (/obj/machinery/access_button{command = "cycle_exterior"; frequency = 1331; master_tag = "vox_east_control"; req_access = list(150)},/turf/simulated/wall/voxshuttle,/area/shuttle/skipjack/station) +"mm" = (/obj/machinery/atmospherics/pipe/manifold/visible{dir = 4},/obj/machinery/meter,/turf/simulated/shuttle/plating,/area/shuttle/skipjack/station) +"mn" = (/obj/machinery/atmospherics/pipe/manifold/visible{dir = 8},/obj/machinery/meter,/turf/simulated/shuttle/plating,/area/shuttle/skipjack/station) +"mo" = (/obj/machinery/atmospherics/pipe/simple/visible,/obj/machinery/access_button{command = "cycle_interior"; frequency = 1331; master_tag = "vox_west_control"; pixel_x = -22; req_one_access = list(150)},/turf/simulated/shuttle/plating,/area/shuttle/skipjack/station) +"mp" = (/obj/structure/table/standard,/obj/item/weapon/storage/fancy/cigarettes,/obj/item/weapon/flame/lighter/zippo,/obj/item/clothing/gloves/yellow,/obj/item/stack/material/steel{amount = 50},/obj/item/stack/material/glass{amount = 50},/obj/item/weapon/card/emag,/turf/simulated/shuttle/plating,/area/shuttle/skipjack/station) +"mq" = (/obj/machinery/atmospherics/pipe/simple/visible,/obj/machinery/access_button{command = "cycle_interior"; frequency = 1331; master_tag = "vox_east_control"; pixel_x = 22; req_access = list(150)},/turf/simulated/shuttle/plating,/area/shuttle/skipjack/station) "mr" = (/turf/unsimulated/wall,/area/start) "ms" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdown"; tiles = 0},/obj/effect/step_trigger/teleporter/random{affect_ghosts = 1; name = "escapeshuttle_leave"; teleport_x = 25; teleport_x_offset = 245; teleport_y = 25; teleport_y_offset = 245; teleport_z = 6; teleport_z_offset = 6},/obj/effect/step_trigger/teleporter/random{affect_ghosts = 1; name = "escapeshuttle_leave"; teleport_x = 25; teleport_x_offset = 245; teleport_y = 25; teleport_y_offset = 245; teleport_z = 6; teleport_z_offset = 6},/turf/space,/area/space) "mt" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdown"; tiles = 0},/obj/effect/step_trigger/teleporter/random{affect_ghosts = 1; name = "escapeshuttle_leave"; teleport_x = 25; teleport_x_offset = 245; teleport_y = 25; teleport_y_offset = 245; teleport_z = 6; teleport_z_offset = 6},/turf/space,/area/space) @@ -684,7 +715,7 @@ "nM" = (/obj/item/weapon/folder{pixel_y = 2},/obj/structure/table/glass,/turf/unsimulated/floor{tag = "icon-cult"; name = "plating"; icon_state = "cult"},/area/syndicate_mothership) "nN" = (/obj/machinery/door/blast/regular{id = "syndieshutters_telebay"; name = "Outer Airlock"},/turf/simulated/shuttle/plating,/area/syndicate_station/start) "nO" = (/obj/structure/table/rack,/obj/item/weapon/gun/energy/ionrifle,/obj/machinery/recharger/wallcharger{pixel_x = 5; pixel_y = 32},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) -"nP" = (/obj/structure/table/rack,/obj/item/ammo_magazine/a12mm,/obj/item/ammo_magazine/a12mm,/obj/item/ammo_magazine/a12mm,/obj/item/ammo_magazine/a12mm,/obj/item/ammo_magazine/a12mm,/obj/item/ammo_magazine/a12mm,/obj/item/weapon/gun/projectile/automatic/c20r,/obj/item/weapon/gun/projectile/automatic/c20r,/obj/item/weapon/gun/projectile/automatic/c20r,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) +"nP" = (/obj/structure/table/rack,/obj/item/ammo_magazine/a10mm,/obj/item/ammo_magazine/a10mm,/obj/item/ammo_magazine/a10mm,/obj/item/ammo_magazine/a10mm,/obj/item/ammo_magazine/a10mm,/obj/item/ammo_magazine/a10mm,/obj/item/weapon/gun/projectile/automatic/c20r,/obj/item/weapon/gun/projectile/automatic/c20r,/obj/item/weapon/gun/projectile/automatic/c20r,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) "nQ" = (/obj/item/weapon/storage/box/donkpockets{pixel_x = 2; pixel_y = 3},/obj/machinery/light{dir = 8; icon_state = "tube1"; pixel_y = 0},/obj/structure/table/reinforced,/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/syndicate_station/start) "nR" = (/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/syndicate_station/start) "nS" = (/obj/structure/bed/chair{dir = 1},/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/syndicate_station/start) @@ -740,6 +771,7 @@ "oQ" = (/obj/structure/closet,/obj/item/weapon/reagent_containers/food/snacks/liquidfood,/obj/item/weapon/reagent_containers/food/snacks/liquidfood,/obj/item/weapon/reagent_containers/food/snacks/liquidfood,/obj/item/weapon/reagent_containers/food/snacks/liquidfood,/obj/machinery/light{dir = 4},/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/syndicate_station/start) "oR" = (/obj/machinery/embedded_controller/radio/simple_docking_controller{frequency = 1331; id_tag = "merc_base"; pixel_x = -25; pixel_y = -5},/turf/unsimulated/floor{icon_state = "bar"; dir = 2},/area/syndicate_mothership) "oS" = (/obj/machinery/flasher{id = "syndieflash"; pixel_x = 0; pixel_y = 28},/obj/machinery/light/small{dir = 1},/turf/simulated/shuttle/floor{icon_state = "floor7"},/area/syndicate_station/start) +"oT" = (/obj/machinery/porta_turret/crescent,/turf/unsimulated/floor{icon_state = "bot"},/area/centcom/control) "oU" = (/turf/unsimulated/floor{icon_state = "warnplate"; dir = 8},/area/centcom) "oV" = (/turf/unsimulated/floor{name = "plating"},/area/centcom) "oW" = (/turf/simulated/shuttle/floor{icon_state = "floor7"},/area/syndicate_station/start) @@ -764,6 +796,7 @@ "pp" = (/obj/machinery/vending/boozeomat,/turf/simulated/shuttle/wall{icon_state = "wall3"},/area/shuttle/administration/centcom) "pq" = (/obj/machinery/vending/coffee,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/administration/centcom) "pr" = (/obj/machinery/vending/cigarette,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/administration/centcom) +"ps" = (/obj/structure/table/standard,/obj/item/weapon/reagent_containers/food/drinks/bottle/small/beer,/obj/item/weapon/reagent_containers/food/drinks/bottle/small/beer,/obj/item/weapon/reagent_containers/food/drinks/bottle/small/beer,/obj/item/weapon/reagent_containers/food/drinks/bottle/small/beer,/obj/item/weapon/reagent_containers/food/drinks/bottle/small/beer,/obj/item/weapon/reagent_containers/food/drinks/bottle/small/beer,/obj/item/weapon/reagent_containers/food/drinks/bottle/small/beer,/turf/unsimulated/beach/sand,/area/beach) "pt" = (/obj/structure/table/standard,/obj/machinery/computer/pod/old/syndicate{id = "smindicate"},/obj/machinery/door/window{dir = 4; name = "Blast Door Control"; req_access = list(150)},/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/syndicate_station/start) "pu" = (/turf/simulated/floor/plating,/area/shuttle/administration/centcom) "px" = (/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 8; frequency = 1331; id_tag = "merc_shuttle_pump"},/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/syndicate_station/start) @@ -795,7 +828,6 @@ "qb" = (/obj/structure/closet/syndicate/suit{name = "suit closet"},/obj/machinery/light{dir = 4},/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/syndicate_station/start) "qc" = (/obj/machinery/embedded_controller/radio/simple_docking_controller{frequency = 1380; id_tag = "admin_shuttle"; pixel_x = -25; pixel_y = 0; req_one_access = list(101); tag_door = "admin_shuttle_hatch"},/turf/simulated/floor/plating,/area/shuttle/administration/centcom) "qd" = (/obj/machinery/door/window{base_state = "right"; dir = 4; icon_state = "right"; name = "Brig"; req_access = list(150)},/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/syndicate_station/start) -"qe" = (/obj/structure/shuttle/engine/propulsion{icon_state = "propulsion_l"; dir = 4},/turf/space,/area/shuttle/administration/centcom) "qf" = (/obj/structure/shuttle/engine/heater{icon_state = "heater"; dir = 8},/turf/simulated/shuttle/wall{icon_state = "wall3"},/area/shuttle/administration/centcom) "qg" = (/obj/machinery/vending/snack,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/administration/centcom) "qh" = (/obj/item/weapon/stool,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/administration/centcom) @@ -822,26 +854,20 @@ "qD" = (/obj/structure/table/standard,/obj/machinery/recharger{pixel_y = 4},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/administration/centcom) "qE" = (/obj/item/stack/material/steel{amount = 50},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/administration/centcom) "qF" = (/obj/item/stack/material/glass{amount = 50},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/administration/centcom) -"qG" = (/obj/structure/shuttle/engine/propulsion{icon_state = "propulsion_r"; dir = 4},/turf/space,/area/shuttle/administration/centcom) "qH" = (/turf/unsimulated/floor{name = "plating"},/turf/simulated/shuttle/wall{dir = 4; icon_state = "diagonalWall3"},/area/shuttle/administration/centcom) "qI" = (/obj/structure/table/standard,/turf/unsimulated/floor{icon_state = "carpet"; dir = 2},/area/centcom/living) "qJ" = (/obj/machinery/sleeper,/obj/machinery/light{dir = 8; icon_state = "tube1"; pixel_y = 0},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/syndicate_station/start) "qK" = (/obj/machinery/suit_cycler/syndicate{locked = 0},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) "qL" = (/obj/machinery/door/airlock/external,/turf/unsimulated/floor{name = "plating"},/area/centcom/living) "qM" = (/turf/unsimulated/floor{name = "plating"},/area/centcom/living) -"qO" = (/turf/simulated/shuttle/wall{icon_state = "swall_s6"; dir = 2},/area/supply/dock) -"qP" = (/turf/simulated/shuttle/wall{icon_state = "swall12"; dir = 2},/area/supply/dock) -"qQ" = (/turf/simulated/shuttle/wall{icon_state = "swall_s10"; dir = 2},/area/supply/dock) "qR" = (/turf/unsimulated/floor{name = "plating"},/turf/simulated/shuttle/wall{icon_state = "diagonalWall3"},/area/shuttle/administration/centcom) "qS" = (/obj/machinery/sleeper,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/administration/centcom) "qT" = (/obj/machinery/computer/communications,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/administration/centcom) "qU" = (/obj/structure/window/reinforced{dir = 5; health = 1e+007},/turf/simulated/shuttle/plating,/area/shuttle/administration/centcom) "qV" = (/turf/unsimulated/floor{icon_state = "warnplate"; dir = 4},/area/centcom) "qW" = (/obj/machinery/door/airlock/external{frequency = 1380; icon_state = "door_locked"; id_tag = "admin_shuttle_bay_door"; locked = 1},/turf/unsimulated/floor{name = "plating"},/area/centcom/living) -"qX" = (/turf/simulated/shuttle/wall{icon_state = "swall3"; dir = 2},/area/supply/dock) "qY" = (/turf/simulated/shuttle/floor,/area/supply/dock) "qZ" = (/obj/structure/table/standard,/obj/structure/closet/secure_closet/medical_wall{pixel_y = 32; req_access = list(150)},/obj/item/bodybag,/obj/item/weapon/reagent_containers/syringe/antiviral,/obj/item/weapon/reagent_containers/syringe/antiviral,/obj/item/weapon/reagent_containers/syringe/antiviral,/obj/item/weapon/reagent_containers/glass/bottle/antitoxin{pixel_x = -4; pixel_y = 8},/obj/item/weapon/reagent_containers/glass/bottle/inaprovaline{pixel_x = 4; pixel_y = 7},/obj/item/weapon/reagent_containers/syringe,/obj/machinery/light{dir = 4},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/syndicate_station/start) -"ra" = (/obj/machinery/sleep_console,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/syndicate_station/start) "rb" = (/obj/machinery/atmospherics/pipe/tank/air{dir = 4; start_pressure = 740.5},/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/syndicate_station/start) "rc" = (/obj/structure/table/rack,/obj/item/clothing/suit/storage/vest/heavy/merc{pixel_x = 2; pixel_y = 2},/obj/item/clothing/suit/storage/vest/heavy/merc{pixel_x = -2; pixel_y = -2},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) "rd" = (/obj/structure/table/standard,/obj/item/roller{pixel_y = 8},/obj/item/weapon/reagent_containers/blood/OMinus,/obj/item/weapon/reagent_containers/blood/OMinus,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/syndicate_station/start) @@ -883,7 +909,6 @@ "rN" = (/obj/machinery/chem_master/condimaster{name = "CondiMaster Neo"; pixel_x = -5},/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/centcom/living) "rO" = (/obj/structure/table/standard,/turf/unsimulated/floor{icon_state = "redyellowfull"},/area/centcom/living) "rP" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/blast/shutters{density = 0; icon_state = "shutter0"; id = "syndieshutters"; name = "Blast Shutters"; opacity = 0},/turf/simulated/shuttle/plating,/area/syndicate_station/start) -"rQ" = (/obj/item/weapon/reagent_containers/food/drinks/cans/beer,/obj/structure/table/standard,/turf/unsimulated/floor{icon_state = "redyellowfull"},/area/centcom/living) "rR" = (/obj/machinery/door/window{dir = 4; name = "Infirmary"; req_access = list(150)},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/syndicate_station/start) "rS" = (/obj/machinery/door/window/westright{name = "Tool Storage"; req_access = list(150)},/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/syndicate_station/start) "rT" = (/obj/effect/spawner/newbomb/timer/syndicate,/obj/structure/table/steel,/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/syndicate_station/start) @@ -953,19 +978,13 @@ "tf" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/unsimulated/floor{name = "plating"},/area/centcom/living) "tg" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/turf/unsimulated/floor{name = "plating"},/area/centcom/living) "th" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/turf/unsimulated/floor{name = "plating"},/area/centcom/living) -"ti" = (/turf/simulated/shuttle/wall{icon_state = "swall7"; dir = 2},/area/supply/dock) -"tj" = (/turf/simulated/shuttle/wall{dir = 1; icon_state = "swall_floor_f10"},/area/supply/dock) -"tk" = (/turf/simulated/shuttle/wall{dir = 8; icon_state = "swall_floor_f6"},/area/supply/dock) -"tl" = (/turf/simulated/shuttle/wall{icon_state = "swall11"; dir = 2},/area/supply/dock) "tm" = (/obj/structure/shuttle/engine/propulsion{icon_state = "propulsion_l"},/turf/space,/area/syndicate_station/start) "tn" = (/obj/structure/shuttle/engine/propulsion,/turf/space,/area/syndicate_station/start) "to" = (/obj/structure/shuttle/engine/propulsion{icon_state = "propulsion_r"},/turf/space,/area/syndicate_station/start) "tp" = (/turf/unsimulated/floor{icon_state = "grass1"; name = "grass"},/area/centcom/living) "tq" = (/obj/machinery/door/airlock/centcom{name = "Living Quarters"; opacity = 1; req_access = list(105)},/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/centcom/living) -"tr" = (/turf/simulated/shuttle/wall{icon_state = "swall_s5"; dir = 2},/area/supply/dock) "ts" = (/turf/simulated/shuttle/wall{icon_state = "swall15"; dir = 2},/area/supply/dock) "tt" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/shuttle/engine/heater,/turf/simulated/floor/plating/airless,/area/supply/dock) -"tu" = (/turf/simulated/shuttle/wall{icon_state = "swall_s9"; dir = 2},/area/supply/dock) "tv" = (/turf/unsimulated/wall,/area/centcom/specops) "tw" = (/turf/unsimulated/wall,/area/prison/solitary) "tx" = (/turf/unsimulated/wall,/area/centcom/control) @@ -1103,7 +1122,6 @@ "wa" = (/obj/structure/closet/secure_closet/medical1{pixel_x = 5},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/test) "wb" = (/obj/structure/closet/secure_closet/medical2{pixel_x = 5},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/test) "wc" = (/obj/machinery/sleeper,/turf/unsimulated/floor{icon_state = "white"},/area/centcom/test) -"wd" = (/obj/machinery/sleep_console,/turf/unsimulated/floor{icon_state = "white"},/area/centcom/test) "we" = (/obj/structure/bed/chair{dir = 4},/turf/unsimulated/floor{icon_state = "carpet"; dir = 2},/area/centcom/control) "wf" = (/obj/structure/table/woodentable,/turf/unsimulated/floor{icon_state = "carpet"; dir = 2},/area/centcom/control) "wg" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdown"; tiles = 0},/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdown"; tiles = 0},/obj/effect/step_trigger/teleporter/random{affect_ghosts = 1; name = "escapeshuttle_leave"; teleport_x = 25; teleport_x_offset = 245; teleport_y = 25; teleport_y_offset = 245; teleport_z = 6; teleport_z_offset = 6},/turf/space,/area/space) @@ -1292,18 +1310,14 @@ "zJ" = (/obj/structure/bed/chair{dir = 1},/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops) "zK" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 5; health = 1e+007},/turf/unsimulated/floor,/area/centcom/control) "zL" = (/obj/structure/bed/chair{dir = 1},/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/control) -"zM" = (/obj/structure/shuttle/engine/propulsion{icon_state = "burst_l"; dir = 4},/turf/space,/area/shuttle/specops/centcom) "zN" = (/turf/simulated/shuttle/wall{icon_state = "wall3"},/area/shuttle/specops/centcom) "zO" = (/obj/machinery/embedded_controller/radio/simple_docking_controller{frequency = 1380; id_tag = "specops_centcom_dock"; name = "docking port controller"; pixel_x = 0; pixel_y = -25; req_one_access = list(103); tag_door = "specops_centcom_dock_door"},/turf/unsimulated/floor{icon_state = "vault"; dir = 8},/area/centcom/specops) "zP" = (/turf/space,/turf/simulated/shuttle/wall{dir = 1; icon_state = "diagonalWall3"},/area/shuttle/specops/centcom) "zQ" = (/obj/machinery/door/airlock/centcom{name = "Holding Cell"; opacity = 1; req_access = list(101)},/obj/machinery/door/blast/regular{id = "crescent_checkpoint_access"; name = "Crescent Checkpoint"},/turf/unsimulated/floor{icon_state = "floor"},/area/centcom/control) -"zR" = (/turf/simulated/shuttle/wall{icon_state = "swall_s6"; dir = 2},/area/shuttle/escape/centcom) "zS" = (/obj/structure/window/shuttle{icon_state = "window4"},/obj/structure/grille,/turf/simulated/shuttle/plating,/area/shuttle/escape/centcom) "zT" = (/obj/structure/window/shuttle{icon_state = "window8"},/obj/structure/grille,/turf/simulated/shuttle/plating,/area/shuttle/escape/centcom) -"zU" = (/turf/simulated/shuttle/wall{icon_state = "swall_s10"; dir = 2},/area/shuttle/escape/centcom) "zV" = (/obj/machinery/vending/snack,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/control) "zW" = (/obj/machinery/vending/coffee,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/control) -"zX" = (/obj/structure/shuttle/engine/propulsion{icon_state = "propulsion"; dir = 4},/turf/space,/area/shuttle/specops/centcom) "zY" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/shuttle/engine/heater{icon_state = "heater"; dir = 8},/turf/unsimulated/floor,/area/shuttle/specops/centcom) "zZ" = (/obj/machinery/computer/security/telescreen{desc = ""; name = "Spec. Ops. Monitor"; network = list("ERT"); pixel_y = 30},/obj/machinery/computer/shuttle_control/specops,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/specops/centcom) "Aa" = (/obj/structure/bed/chair,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/specops/centcom) @@ -1314,10 +1328,8 @@ "Af" = (/obj/structure/table/reinforced,/obj/item/weapon/storage/box/bodybags,/obj/item/weapon/storage/firstaid/o2,/obj/item/weapon/storage/firstaid/regular,/obj/item/device/flash,/obj/item/clothing/glasses/hud/health,/obj/item/clothing/glasses/hud/health,/obj/item/clothing/glasses/hud/health,/obj/item/device/flash,/obj/item/weapon/storage/firstaid/regular,/obj/item/weapon/storage/firstaid/regular,/obj/item/weapon/storage/pill_bottle/antitox,/obj/item/weapon/storage/pill_bottle/kelotane,/obj/item/weapon/storage/pill_bottle/kelotane,/obj/item/weapon/storage/pill_bottle/antitox,/obj/item/weapon/storage/pill_bottle/kelotane,/obj/item/weapon/storage/firstaid/adv,/obj/item/weapon/storage/firstaid/adv,/obj/item/weapon/storage/firstaid/toxin,/obj/item/weapon/storage/firstaid/fire,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom/specops) "Ag" = (/obj/machinery/door/blast/regular{icon_state = "pdoor1"; id = "ASSAULT"; name = "Assault Weapon Storage"; p_open = 0},/turf/unsimulated/floor{icon_state = "vault"; dir = 8},/area/centcom/specops) "Ah" = (/obj/structure/table/reinforced,/obj/item/weapon/reagent_containers/blood/OMinus,/obj/item/weapon/reagent_containers/blood/OMinus,/obj/item/weapon/reagent_containers/blood/OMinus,/obj/item/weapon/reagent_containers/blood/OMinus,/obj/item/weapon/reagent_containers/blood/OMinus,/obj/item/weapon/reagent_containers/blood/OMinus,/obj/item/roller,/obj/item/roller,/obj/item/roller,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom/specops) -"Ai" = (/turf/simulated/shuttle/wall{icon_state = "swallc4"},/area/shuttle/escape/centcom) "Aj" = (/obj/structure/table/woodentable/holotable,/turf/simulated/floor/holofloor{icon_state = "carpet11-12"; dir = 4},/area/holodeck/source_courtroom) "Ak" = (/turf/simulated/floor/holofloor{icon_state = "carpet15-15"; dir = 4},/area/holodeck/source_courtroom) -"Al" = (/turf/simulated/shuttle/wall{icon_state = "swallc3"},/area/shuttle/escape/centcom) "Am" = (/obj/structure/bed/chair{dir = 4},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/specops/centcom) "An" = (/obj/structure/closet/crate/medical,/obj/item/weapon/circular_saw,/obj/item/weapon/surgicaldrill,/obj/item/weapon/bonegel{pixel_x = 4; pixel_y = 3},/obj/item/weapon/bonesetter,/obj/item/weapon/scalpel,/obj/item/weapon/retractor{pixel_x = 0; pixel_y = 6},/obj/item/weapon/hemostat{pixel_y = 4},/obj/item/weapon/cautery{pixel_y = 4},/obj/item/weapon/FixOVein{pixel_x = -6; pixel_y = 1},/obj/item/stack/nanopaste,/obj/item/weapon/tank/anesthetic,/obj/item/clothing/mask/breath/medical,/obj/item/clothing/mask/surgical,/obj/item/clothing/mask/surgical,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom/specops) "Ao" = (/obj/machinery/iv_drip,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom/specops) @@ -1325,7 +1337,6 @@ "Aq" = (/obj/structure/table/rack,/obj/item/weapon/gun/energy/stunrevolver,/obj/item/weapon/gun/energy/stunrevolver,/obj/item/device/flash,/obj/item/device/flash,/obj/item/clothing/accessory/storage/black_vest,/obj/item/clothing/accessory/storage/black_vest,/obj/item/clothing/accessory/storage/black_vest,/obj/item/clothing/accessory/storage/black_vest,/obj/item/clothing/accessory/storage/black_vest,/obj/item/clothing/accessory/storage/black_vest,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom/specops) "Ar" = (/obj/structure/table/rack,/obj/item/weapon/tank/emergency_oxygen/double,/obj/item/weapon/tank/emergency_oxygen/double,/obj/item/weapon/tank/emergency_oxygen/double,/obj/item/weapon/tank/emergency_oxygen/double,/obj/item/weapon/tank/emergency_oxygen/double,/obj/item/weapon/tank/emergency_oxygen/double,/obj/item/weapon/tank/emergency_oxygen/double,/obj/item/weapon/tank/emergency_oxygen/double,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom/specops) "As" = (/obj/structure/table/rack,/obj/item/clothing/mask/breath,/obj/item/clothing/mask/breath,/obj/item/clothing/mask/breath,/obj/item/clothing/mask/breath,/obj/item/clothing/mask/breath,/obj/item/clothing/mask/breath,/obj/item/clothing/mask/breath,/obj/item/clothing/mask/breath,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom/specops) -"At" = (/turf/simulated/shuttle/wall{icon_state = "swall3"; dir = 2},/area/shuttle/escape/centcom) "Au" = (/obj/machinery/door/window/holowindoor{dir = 1; name = "Jury Box"},/turf/simulated/floor/holofloor{icon_state = "carpet10-8"; dir = 4},/area/holodeck/source_courtroom) "Av" = (/obj/structure/bed/chair{dir = 1},/turf/simulated/shuttle/floor,/area/shuttle/escape/centcom) "Aw" = (/obj/structure/window/reinforced/holowindow{dir = 1},/obj/structure/table/woodentable/holotable,/turf/simulated/floor/holofloor{icon_state = "carpet14-10"; dir = 4},/area/holodeck/source_courtroom) @@ -1336,7 +1347,6 @@ "AB" = (/obj/machinery/door/airlock/external{frequency = 1380; icon_state = "door_locked"; id_tag = "specops_centcom_dock_door"; locked = 1},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/specops) "AC" = (/obj/structure/window/shuttle,/obj/structure/grille,/turf/simulated/shuttle/plating,/area/shuttle/escape/centcom) "AD" = (/turf/simulated/shuttle/floor,/area/shuttle/escape/centcom) -"AE" = (/obj/structure/shuttle/engine/propulsion{icon_state = "burst_r"; dir = 4},/turf/space,/area/shuttle/specops/centcom) "AF" = (/obj/machinery/vending/snack{name = "hacked Getmore Chocolate Corp"; prices = list()},/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops) "AG" = (/turf/unsimulated/floor{tag = "icon-cult"; name = "plating"; icon_state = "cult"},/area/centcom/holding) "AH" = (/turf/unsimulated/wall,/area/centcom/ferry) @@ -1349,10 +1359,7 @@ "AO" = (/obj/machinery/door/window/holowindoor{name = "Red Team"},/turf/simulated/floor/holofloor{icon_state = "dark"},/area/holodeck/source_emptycourt) "AP" = (/obj/machinery/computer/secure_data,/turf/unsimulated/floor{dir = 8; icon_state = "red"},/area/centcom/holding) "AQ" = (/obj/item/weapon/stool/padded,/turf/unsimulated/floor{tag = "icon-red (EAST)"; icon_state = "red"; dir = 4},/area/centcom/holding) -"AR" = (/turf/simulated/shuttle/wall{icon_state = "swall13"; dir = 2},/area/shuttle/escape/centcom) "AS" = (/obj/machinery/door/airlock/centcom{name = "General Access"; opacity = 1; req_access = list(101)},/obj/machinery/door/blast/regular{id = "crescent_checkpoint_access"; name = "Crescent Checkpoint"},/turf/unsimulated/floor{icon_state = "floor"},/area/centcom/control) -"AT" = (/turf/simulated/shuttle/wall{icon_state = "swall14"; dir = 2},/area/shuttle/escape/centcom) -"AU" = (/turf/simulated/shuttle/wall{icon_state = "swall12"; dir = 2},/area/shuttle/escape/centcom) "AW" = (/turf/unsimulated/floor{name = "plating"},/area/centcom/ferry) "AX" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/turf/unsimulated/floor{name = "plating"},/area/centcom/ferry) "AY" = (/turf/unsimulated/floor{icon_state = "warnplate"; dir = 8},/area/centcom/ferry) @@ -1388,7 +1395,6 @@ "BR" = (/obj/structure/bed,/obj/item/weapon/bedsheet/orange,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership{name = "\improper Raider Base"}) "BS" = (/obj/machinery/embedded_controller/radio/simple_docking_controller{frequency = 1380; id_tag = "specops_shuttle_port"; name = "port docking hatch controller"; pixel_x = 0; pixel_y = 25; tag_door = "specops_shuttle_port_hatch"},/obj/structure/bed/chair,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/specops/centcom) "BU" = (/obj/structure/table/woodentable/holotable,/obj/structure/window/reinforced/holowindow,/obj/structure/window/reinforced/holowindow{dir = 4},/turf/simulated/floor/holofloor{icon_state = "dark"},/area/holodeck/source_courtroom) -"BV" = (/turf/simulated/shuttle/wall{icon_state = "swall11"; dir = 2},/area/shuttle/escape/centcom) "BY" = (/obj/machinery/door/airlock/glass_security{name = "Holding Cell"; req_access = list(2)},/turf/unsimulated/floor,/area/centcom/holding) "Cc" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 0},/turf/unsimulated/wall,/area/centcom/ferry) "Cd" = (/obj/machinery/door/blast/regular{id = "CentComPort"; name = "Security Doors"},/turf/unsimulated/floor{icon_state = "green"; dir = 8},/area/centcom/holding) @@ -1488,7 +1494,6 @@ "DW" = (/obj/structure/table/standard,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership{name = "\improper Raider Base"}) "DX" = (/obj/structure/bed/roller,/turf/unsimulated/floor{dir = 4; icon_state = "whitegreenfull"},/area/centcom/holding) "DY" = (/obj/machinery/sleeper,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/escape/centcom) -"DZ" = (/obj/machinery/sleep_console,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/escape/centcom) "Ea" = (/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/escape/centcom) "Eb" = (/obj/structure/bed/roller,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/escape/centcom) "Ec" = (/obj/structure/closet/secure_closet/freezer/kitchen,/turf/simulated/floor{icon_state = "cafeteria"; dir = 5},/area/syndicate_mothership{name = "\improper Raider Base"}) @@ -1514,7 +1519,6 @@ "Ex" = (/turf/unsimulated/floor{dir = 8; icon_state = "whitegreencorner"},/area/centcom/holding) "Ey" = (/obj/structure/sign/nosmoking_2{pixel_x = 28; pixel_y = 0},/turf/unsimulated/floor{dir = 4; icon_state = "whitegreencorner"},/area/centcom/holding) "Ez" = (/obj/structure/bed/chair/holochair{dir = 1},/turf/simulated/floor/holofloor{icon_state = "carpet13-5"; dir = 4},/area/holodeck/source_courtroom) -"EA" = (/turf/simulated/shuttle/wall{icon_state = "swall7"; dir = 2},/area/shuttle/escape/centcom) "EB" = (/obj/structure/shuttle/engine/heater,/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating/airless,/area/shuttle/escape/centcom) "EC" = (/obj/structure/urinal{pixel_y = 32},/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/syndicate_mothership{name = "\improper Raider Base"}) "ED" = (/obj/structure/closet/secure_closet/freezer/fridge,/turf/simulated/floor{icon_state = "cafeteria"; dir = 5},/area/syndicate_mothership{name = "\improper Raider Base"}) @@ -1530,12 +1534,9 @@ "EO" = (/turf/simulated/floor/holofloor{icon_state = "carpetsymbol"; dir = 6},/area/holodeck/source_theatre) "EP" = (/turf/unsimulated/floor{dir = 6; icon_state = "whitegreen"},/area/centcom/holding) "EQ" = (/turf/unsimulated/floor{dir = 10; icon_state = "whitegreen"},/area/centcom/holding) -"ER" = (/obj/machinery/sleep_console{icon_state = "sleeperconsole-r"; orient = "RIGHT"},/turf/unsimulated/floor{dir = 8; icon_state = "whitehall"; tag = "icon-whitehall (EAST)"},/area/centcom/holding) "ES" = (/obj/machinery/sleeper{icon_state = "sleeper_0-r"; orient = "RIGHT"},/turf/unsimulated/floor{icon_state = "floor"},/area/centcom/holding) -"ET" = (/turf/simulated/shuttle/wall{icon_state = "swall_s5"; dir = 2},/area/shuttle/escape/centcom) "EU" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/shuttle/engine/heater,/turf/simulated/floor/plating/airless,/area/shuttle/escape/centcom) "EV" = (/obj/structure/shuttle/engine/propulsion,/turf/space,/area/shuttle/escape/centcom) -"EW" = (/turf/simulated/shuttle/wall{icon_state = "swall_s9"; dir = 2},/area/shuttle/escape/centcom) "EX" = (/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/syndicate_mothership{name = "\improper Raider Base"}) "EY" = (/obj/effect/decal/cleanable/blood,/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/syndicate_mothership{name = "\improper Raider Base"}) "EZ" = (/turf/unsimulated/beach/sand{tag = "icon-seashallow"; icon_state = "seashallow"},/area/centcom/holding) @@ -1945,7 +1946,6 @@ "Na" = (/obj/structure/window/shuttle{icon_state = "window12"},/obj/structure/grille,/turf/simulated/shuttle/plating,/area/shuttle/escape/centcom) "Nb" = (/obj/machinery/door/airlock/centcom{name = "General Access"; opacity = 1; req_access = list(101)},/obj/machinery/door/blast/regular{id = "crescent_thunderdome"; name = "Thunderdome"},/turf/unsimulated/floor{icon_state = "floor"},/area/tdome) "Nc" = (/obj/machinery/hologram/holopad,/turf/simulated/shuttle/floor,/area/shuttle/escape/centcom) -"Ne" = (/turf/simulated/shuttle/wall{tag = "icon-swall2"; icon_state = "swall2"; dir = 2},/area/shuttle/escape/centcom) "Nf" = (/obj/machinery/computer/crew,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/escape/centcom) "Ng" = (/obj/structure/AIcore/deactivated,/turf/simulated/shuttle/floor,/area/shuttle/escape/centcom) "Nh" = (/obj/machinery/computer/security,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/escape/centcom) @@ -1960,7 +1960,6 @@ "Nq" = (/obj/machinery/hologram/holopad,/turf/unsimulated/floor{dir = 9; icon_state = "whitegreen"},/area/centcom/holding) "Nr" = (/obj/structure/table/rack,/obj/item/weapon/grenade/empgrenade,/obj/item/weapon/grenade/flashbang,/obj/item/weapon/grenade/spawnergrenade,/obj/machinery/light/small{dir = 4},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/skipjack/station) "Ns" = (/obj/machinery/sleeper{icon_state = "sleeper_0-r"; orient = "RIGHT"},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/escape/centcom) -"Nt" = (/obj/machinery/sleep_console{icon_state = "sleeperconsole-r"; orient = "RIGHT"},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/escape/centcom) "Nu" = (/obj/structure/reagent_dispensers/fueltank,/turf/simulated/shuttle/plating,/area/shuttle/skipjack/station) "Nv" = (/obj/item/robot_parts/robot_suit,/obj/item/robot_parts/r_leg,/obj/item/robot_parts/r_arm,/turf/simulated/shuttle/plating,/area/shuttle/skipjack/station) "Nw" = (/obj/machinery/door/airlock/centcom{name = "General Access"; opacity = 1; req_access = list(101)},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/tdome) @@ -1993,7 +1992,6 @@ "NZ" = (/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/skipjack/station) "Oa" = (/obj/machinery/portable_atmospherics/canister/nitrogen,/obj/item/weapon/tank/nitrogen,/turf/simulated/shuttle/plating,/area/shuttle/skipjack/station) "Ob" = (/obj/structure/toilet{dir = 4},/turf/simulated/shuttle/plating,/area/shuttle/skipjack/station) -"Od" = (/obj/structure/table/standard,/obj/item/weapon/reagent_containers/food/drinks/cans/beer,/obj/item/weapon/reagent_containers/food/drinks/cans/beer,/obj/item/weapon/reagent_containers/food/drinks/cans/beer,/obj/item/weapon/flame/lighter/zippo,/obj/item/weapon/storage/fancy/cigarettes,/turf/unsimulated/floor{icon_state = "redbluefull"; dir = 8},/area/tdome/tdomeobserve) "Oe" = (/obj/item/weapon/reagent_containers/food/drinks/cans/cola,/obj/item/weapon/reagent_containers/food/drinks/cans/cola,/obj/item/weapon/reagent_containers/food/drinks/cans/cola,/obj/structure/table/standard,/turf/unsimulated/floor{icon_state = "redbluefull"; dir = 8},/area/tdome/tdomeobserve) "Of" = (/turf/space,/turf/simulated/shuttle/wall{icon_state = "diagonalWall3"},/area/shuttle/skipjack/station) "Og" = (/obj/structure/shuttle/engine/heater,/turf/simulated/shuttle/plating,/area/shuttle/skipjack/station) @@ -2027,7 +2025,6 @@ "OI" = (/obj/machinery/door/airlock/command{name = "Thunderdome Administration"; req_access = list(102)},/turf/simulated/floor,/area/tdome) "OJ" = (/obj/effect/landmark{name = "endgame_exit"},/turf/unsimulated/beach/sand,/area/beach) "OK" = (/obj/machinery/door/airlock/centcom{name = "General Access"; opacity = 1; req_access = list(101)},/turf/unsimulated/floor{icon_state = "floor"},/area/tdome) -"OL" = (/obj/structure/table/standard,/obj/item/weapon/reagent_containers/food/drinks/cans/beer,/obj/item/weapon/reagent_containers/food/drinks/cans/beer,/obj/item/weapon/reagent_containers/food/drinks/cans/beer,/obj/item/weapon/reagent_containers/food/drinks/cans/beer,/obj/item/weapon/reagent_containers/food/drinks/cans/beer,/obj/item/weapon/reagent_containers/food/drinks/cans/beer,/obj/item/weapon/reagent_containers/food/drinks/cans/beer,/turf/unsimulated/beach/sand,/area/beach) "OM" = (/obj/structure/table/standard,/obj/item/clothing/under/rainbow,/obj/item/clothing/glasses/sunglasses,/obj/item/clothing/head/collectable/petehat{pixel_y = 5},/turf/unsimulated/beach/sand,/area/beach) "ON" = (/obj/structure/table/standard,/obj/machinery/recharger{pixel_y = 4},/turf/unsimulated/floor{icon_state = "redyellowfull"; dir = 5},/area/tdome/tdomeadmin) "OO" = (/obj/item/weapon/grenade/chem_grenade/cleaner,/obj/item/weapon/grenade/chem_grenade/cleaner,/obj/item/weapon/grenade/chem_grenade/cleaner,/obj/item/weapon/grenade/chem_grenade/cleaner,/obj/item/weapon/grenade/chem_grenade/cleaner,/obj/item/weapon/grenade/chem_grenade/cleaner,/obj/item/weapon/grenade/chem_grenade/cleaner,/obj/item/weapon/grenade/chem_grenade/cleaner,/obj/item/weapon/grenade/chem_grenade/cleaner,/obj/item/weapon/grenade/chem_grenade/cleaner,/obj/structure/table/standard,/turf/unsimulated/floor{icon_state = "redyellowfull"; dir = 5},/area/tdome/tdomeadmin) @@ -2087,38 +2084,38 @@ afbdaRbbaTaXbfbcdubSbSbSbSbSbSbSbSbSbSbSbSbSitaTbeaUbaaRaSaTahaRaaabacadaeafagah anaTaUaYbcaWaRbfieigigbUeIbSbSbSbSbSeIiLipigiKbcbbaXbdaUaZbcagaUajaRaSaTaUaVaWaXaYaZbabbbcbdbebfaWaVbaaSaTaXbbaUbdaZabaUaYaLfLaZaRaYaZaYaZaRaYaZaRaYaZaRaYaZaRaYaZaRaYaZaYaZaRaYaZaRaYaZaRaYaZaRaYaZaZfLaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM akbcaXbabfaSaUaRbeaWbbiedYeIeMeOeNEmhZiPbaaRaVbfaYaWaTaXaVbfacaXamaUaZbcaXbeaSaWbaaVbdaYbfaTbbaRaSbebdaZbcaWaYaXaTaVaeaXbaaLfLaVaUbaaVbaaVaUbaaVaUbaaVaUbaaVaUbaaVaUbaaVbaaVaUbaaVaUbaaVaUbaaVaUbaaMaVfLaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM aabfaWbdaRaZaXaUbbaSaYbeidbUieiuiPiKigaWbdaUbeaRbaaSbcaWbeaRaiaWadaXaVbfaWbbaZaSbdbeaTbaaRbcaYaUaZbbaTaVbfaSbaaWbcbeahaWbdaLfLbeaXbdbebeaXbdbeaXbdbeaXbdbeaXbdbebeaXbdbeaXbdbeaXbdbeaXbdbeaXbdbebeaXaMfLaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM -ajaRaSaTaUaVaWaXaYaZbabbbcbdbebfaWaVbaaSaTaXbbaUbdaZbfaSbbaUafaSalaWbeaRaSaYaVaZaTbbbcbdaUbfbaaXaVaYbcbeaRaZbdaSbfbbagaSaTaLfLbeaWaWbcbeaWbcbeaWbcbeaWbcbeaWbcbebeaWaWbcbeaWbcbeaWbcbeaWbcbeaWbcbeaWaWfLaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMfMfNfNfNfNfNfOaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM -amaUaZbcaXbeaSaWbaaVbdaYbfaTbbaRaSbebdaZbcaWaYaXaTaVaRaZaYaXanaZaoaSbbaUaZbabeaVbcaYbfaTaXaRbdaWbebabfbbaUaVaTaZaRaYacaZbcaLfLbbaSaSbfbbaSbfbbaSbfbbaSbfbbaSbfbbbbaSaSbfbbaSbfbbaSbfbbaSbfbbaSbfbbaSaSfLaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMfNfPfQfRfSfTfOaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM -adaXaVbfaWbbaZaSbdbeaTbaaRbcaYaUaZbbaTaVbfaSbaaWbcbeaUaVbaaWakaVabaZaYaXaVbdbbbebfbaaRbcaWaUaTaSbbbdaRaYaXbebcaVaUbaaiaVbfaLfLbfbabaaZbfbaaZbfbaaZbfbaaZbfbaaZbfbfbabaaZbfbaaZbfbaaZbfbaaZbfbaaZbfaTbafLaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMfNfUfVfVfVfUfOfOfOfOaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM -alaWbeaRaSaYaVaZaTbbbcbdaUbfbaaXaVaYbcbeaRaZbdaSbfbbaXbebdaSaabeaeaVbaaWbeaTaYbbaRfWcfdbfXfYfZcwdtcgaUbaaWbbbfbeaXbdafbeaRaLfLaRbdbdaVaRbdaVaRbdaVaRbdaVaRbdaVaRaRbdbdaVaRbdaVaRbdaVaRbdaVaRbdaVaRbdbdfLaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMfNfUgagagafUfOgbgcfOaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM -aoaSbbaUaZbabeaVbcaYbfaTaXaRbdaWbebabfbbaUaVaTaZaRaYaWbbaTaZajbbahbebdaSbbbcbaaYgdLVgfggghgigjgkglfZgmbdaSaYaRbbaWaTanbbaUaLfLaUaTaTbeaUaTbeaUaTbeaUaTbeaUaTbeaUaUaTaTbeaUaTbeaUaTbeaUaTbeaUaTbeaUaTaTfLaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMfNfUgngogpfUfOfOfOfOfOfOfOfOfOfOfOfOaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM -abaZaYaXaVbdbbbebfbaaRbcaWaUaTaSbbbdaRaYaXbebcaVaUbaaSaYbcaVamaYagbbaTaZaYbfbdbagmgigqghglgrgsgtgugvgwaTaZbaaUaYaSbcakaYaXaLfLaXbcbcbbaXaZgQgQgQgQgQgQaZgQgQgQaZaZaZgQgQgQaZgQgQgxgygmgxbbaXbcbbaXbcbcfLaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMfNfUgngogpfUgzgAgBgCgDgEgAgFgGgHgHfOaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM -aeanamacakalajaaaeadahabaiagaoafajalahamacaaabakagadafamabakMAbaacaYbcaVbaaRaTbdgwgtgugkgIgfglghgjgJgKbcaVbdaXbaaZbfaabaaWaLfLaWbfbfaYaWaZgQhdgQgQhdgQaZgQhdgQgQgQgQgQhdgQaZgQhdjQjQjPjQaYaWbfaYaWbfbffLaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMfNfUgngogpfUgPgAgEgEgDgEgAgEgHgHgHfOaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM -ahbdaSaYaRbbaWaTbbbdaSaYaRbbaWaTbbaWaTbdaSaYaRbbaWaTanaMaMaMaMbdaibabfbebdaUbcaTgKghgjgvgqgigIgkgggsgQbfbeaTaWbdaVaRajbdaSaLfLaSaRaRbaaSaZgQhdhdhdhdgQgQgQhdhdhdhphkhkhjgQgQgQhphkhkhjjQbaaSaRbaaSaRaRfLaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMfNfUgogogogVgXgYgEgEgDgEgAgFgGgHgHfOaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM -agaTaZbaaUaYaSbcaYaTaZbaaUaYaSbcaYaSbcaTaZbaaUaYaSbcakaMaMaMaMaTafbdaRbbaTaXbfbcgQgkgggJgugtgqgvgrglgZaRbbbcaSaTbeaUamaTaZaLfLaZaUaUbdaZaZgQhdhdhdhdgQgQhdhdhdhdhthrhrhqhdgQgQhthrhrhqjQbdaZaUbdaZaUaUfLaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMfNfUgogogogVgXgYgEgEgEgEhigEgHgHgHfOaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMhfhfhfaMhghghgaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM -acbcaVbdaXbaaZbfbabcaVbdaXbaaZbfbaaZbfbcaVbdaXbaaZbfaaaMaMaMaMbcanaTaUaYbcaWaRbfgZgvgrgsgjghgugJgfgIhhaUaYbfaZbcbbaXadbcbeaLfLaVaXaXaTaVaZgQhdhdhdhdgQgQhdhdhdhdhIgTgTgMhdgQgQhIgTgTgMjQaTaVaXaTaVaXaXfLaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMfNfUhmgohnfUgPgAgEgEgDgEgAgFgGgHgHfOaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMhfhfhfaMhghghgaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM -aibfbeaTaWbdaVaRbdbfbeaTaWbdaVaRbdaVaRbfbeaTaWbdaVaRajaMaMaMaMbfakbcaXbabfaSaUaRhhhogfglgggkgjgsgicggyaXbaaRaVbfaYaWalbfbbaLfLbeaWaWbcbeaZgQhdhdhphkhkhjhdhdhdhdhdgUcZhdhdhdhdhdgUcZhdjQbcbeaWbcbeaWaWfLaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMfNhsfUhvfUhugzgAgEgEgDgEgAgEgHgHgHfOaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMhfhfhfaMhghghgaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM -afaRbbbcaSaTbeaUaTaRbbbcaSaTbeaUaTbeaUaRbbbcaSaTbeaUamaMaMaMaMaRaabfaWbdaRaZaXaUhodtgrgvgrgvgggrgvfZgOaWbdaUbeaRbaaSaoaRaYaLfLbbaSaSbfbbaZgQhdhdhthrhrhqhdhdhdhdhphcgNhphdhdhdhphcgNhpjQbfbbaSbfbbaSaSfLaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMfNbDhshwhubDgzgAgEgEgDgEgAgFgGgHgHfOaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMhxhyhzhAhBhfhfhfaMhghghghxhyhzhAhBaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM -anaUaYbfaZbcbbaXbcaUaYbfaZbcbbaXbcbbaXaUaYbfaZbcbbaXadaMaMaMaMaUajaRaSaTaXicfXhChDgrgigsgigsgfgigsgkfZfZgxhCaYaUbdaZabaUbaaLfLaZaRaYaZaYaZgQhdhdhIgTgTgMhdhdhdhdhthkhahthdhdhphthkhahtjQaRaYaZaRaYaZaZfLaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMfOfOfOfOfOfOfOfOfOfOfOfOfOfOfOfOfOfOaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMhEhFhFhFhGhHhJhHhHhHhQhHhKhFhFhFhEaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM -akaXbaaRaVbfaYaWbfaXbaaRaVbfaYaWbfaYaWaXbaaRaVbfaYaWalaMaMaMaMaXamaUaZbcaWgygkgtgIgigsgjgrgvgigugvgrgqgkgkfXbaaXaTaVaeaXbdaLfLaVaUbaaVbaaZgQhphkhkhjcZhdhdhdhdhdhdhdhdhdhdhdhthrhrhqjPjQaUbaaVaUbaaMaVfLaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMhEhLhMhNhOhPhShRhUhTikhPhVhWhXhYhEaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM -aaaWbdaUbbaSaYbeaTaUhZiaibicidbaiecdifcwigaUbeaRbaaSaoaMaMaMaMaWadaXaVbfaSgOgkghgqgugvgggigsgtgjgkgfgugvggcwbdaWbcbeahaWaTaLfLbeaXbdbebdaZgQhthrhrhqgNhphphkhkhjhkhkhjhdhdhdhIgTgTgMjPjQaXbdbeaXbdaMbefLaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMhEiiiiijioilimilinilimiliFijiiiihEaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM -ajbaaTaXaRbdaUbfaSaXipiqirisitaXiuiviwixiyaXbbaUbdaZabaMaMaMaMaSalaWbeaRaZgSgvgkgugjgJgrgkgqghgggsgigjgJgrizaTaSbfbbagaSbcaLfLbeaXbdbebdgQgQhIgTgTgMhahththrhrhqhrhrhqhdhdhdhdgUcZhdjPjQgmbdbeaXbdaMbefLaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMiEhWiijbimimimimimimimimimjbiihNiGaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM -ambdbcaWaUaTaXaRaZaWiyiHiIiJiKaWiLiMiNiOiPaWaYaXaTaVaeaMaMaMaMaZaoaSbbaUaVLUgJgvgjgggsgfgvgugkgrglgtgggsgficbcaZaRaYacaZbfaLfLbeaXbdbebdgQhdhdgUcZhdhdhdhIgTgTgMgTgTgMhdhdhdhphcgNhpjPjPgmbdbeaXbdaMbefLaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMiEhHhKiRilimiliSiSilimiThGhHiGaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM -adaTbfaSaXbcaWaUaVaSiPiUiVirieaSipiWiXiYiZaSbaaWbcbeahaMaMaMaMaVabaZaYaXbecggsgJgggrglgigJgjgvgfgIghgrglgihobfaVaUbaaibeaRaLfLbbaWaTbbaTgQhdhphcgNhphphkhkhjcZhdgUcZhdhdhdhdhthkhahtjPjPgwaTbbaWaTaMbbfLaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMhEjkinimjcjkjkjdimjehEaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM -albcaRaZaWbfaSaXbeaZiZisjfiIjgaZiyjhixjiitaZbdaSbfbbagaMaMaMaMbeaeaVbaaWbbfZglgsgrgfgIgtgsgggJgigqgkgfgIgtdtaRbeaXbdafaMaUaLfLbfbabaaZbfgQgQhthkhahththrhrhqgNhphcgNhphdhdhdhdhdjPjPjPjQgQbfbaaZbfaTbafLaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMjjjjjjjjhEjmilimjcjkjkjdimhPhEjljljljlaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM -aobfaUaVaSaRaZaWbbaVitipiKiZhZaViPigiuiyiKaVaTaZaRaYacaMaMaMaMbbahbebdaSgOdbgIglgfgigqghglgrgsgtgugvgigqghhDgdbbaWaTanbbaXaLfLaRbdbdaVaRaZgQgQgQgQgQhIgTgTgMhahthkhahthdhdhdhdgQjQjQjQjQaVaRbdaVaRbdbdfLaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMjjjjjjjjjnjpimimiljojoilimjujqjljljljlaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM -abaRaXbebcaVaUbaaVaRaXbebcaVaUbaaVaUbaaRaXbebcaVaUbaaiaMaMaMaMaYagbbaTaZgSgggqgIgigtgugkgIgfglghgjgJgtgugkgIgmaYaSbcakaYaWaLfLaUaTaTbeaUaZaZaZaZaZgQhdgUcZhdhdhdhdhdhdhdhdhdhdgQaMaMaMaMbeaUaTbeaUaTaTfLaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMjjjjjjjjhEhPjsimimimimimimilhEjljljljlaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM -aebaaWbbbfbeaXbdbebaaWbbbfbeaXbdbeaXbdbaaWbbbfbeaXbdafaMaMaMaMbaacaYbcaVhbgrgugqgtghgjgvgqgigIgkgggsghgjgvgqgwbaaZbfaabaaSaLfLaXbcbcbbaXaZaZaZaZaZgQhphcgNhphdhdhdhdhdhdhdhdhdgQaMaMaMaMbbaXbcbbaXbcbcfLaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMhGhHhHhHjyimilimimjzhEaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM -ahaSaSaYaRbbaWaTbbaSaSaYaRbbaWaTbbaWaTaSaSaYaRbbaWaTanaMaMaMaMbdaibabfbehlgfgjgughgkgggJgugtgqgvgrglgkgggJgugKbdaVaRajbdaZaLfLaWbfbfaYaWaZaZaZaZaZgQhthkhahthdhdhdhdhdhdhdhdhdgQaMaMaMaMaYaWbfaYaWbfbffLaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMhEjJjJjKjLimilimimiljMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM -agaZaZbaaUaYaSbcaYaZaZbaaUaYaSbcaYaSbcaZaZbaaUaYaSbcakaMaMaMaMaTafbdaRbbgxgigggjgkgvgrgsgjghgugJgfgIgvgrgsgjgQaTbeaUamaTbeaLfLaSaRaRbaaSaZaZaZaZaZgQgQgQhdhdhdhdhdhdhdhdhdgQgQgQaMaMaMaMbaaSaRbaaSaRaRfLaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMjTjUjUjUjVimjWjXjYjXhEaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM -acaVaVbdaXbaaZbfbaaVaVbdaXbaaZbfbaaZbfaVaVbdaXbaaZbfaaaMaMaMaMbcanaTaUaYgLgtgrgggvgigJgkgIgsghgqgrgtgJgfglgggZbcbbaXadbcbbaLfLaZaUaUbdaZaUaMaMaMaMaMaMjQjQjPjPjPjPjPjPjPjQjQaMaMaMaMaMaMbdaZaUbdaZaUaUfLaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMhEkikjjUkhimklkmknkohEaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM -aibebeaTaWbdaVaRbdbebeaTaWbdaVaRbdaVaRbebeaTaWbdaVaRajaMaMaMaMbfakbcaXbagRghgfgrgJgtgsgvgqglgkgugfghgsgigIgrhhbfaYaWalbfaYaLfLaVaXaXaTaVaXaTaVaXaTaVaXaTgZgmhlgZgZgmgmhlgZaXaTaVaXaTaVaXaTaVaXaTaVaXaXfLaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMhEkujUjUjLimjXkykykzhEaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM -afbbbbbcaSaTbeaUaTbbbbbcaSaTbeaUaTbeaUbbbbbcaSaTbeaUamaMaMaMaMaRaabfaWbdfFgkgigfgsghglgJgugIgvgjgigkglgtgqgfdcaRbaaSaoaRbaaLfLbeaWaWbcbeaWbcbeaWbcbeaWbcbeaWbcbebeaWaWbcbeaWbcbeaWbcbeaWbcbeaWbcbeaWaWfLaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMhEkikjjUjVimkFkykykIhEaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM -analahajaoacaeabanagakafamaafLfLfLfLfLahajabafaoaaagadaMaMaMaMaUajaRaSaTfYgvgtgiglgkgIgsgjgqgJgggtgvgIghgugidtaUbdaZabaUbdaLfLbbaSaSbfbbaSbfbbaSbfbbaSbfbbaSbfbbbbaSaSbfbbaSbfbbaSbfbbaSbfbbaSbfbbaSaSfLaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMiEkNkNhHkOkMhHhHkNkNiGaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM -bebcaXbabfaSaUaRbeaWbbaVbdaYaZaTaUaSbbaXbaaRaVbfaYaWaTaMaMaMaMaXamaUaZbchCgJghgtgIgvcgglgggugsgrcwgJgqgkgjgthDaXaTbeaeaXaTaLfLaZaRaYaZaYaZaRaYaZaRaYaZaRaYaZaRaYaZaRaYaZaYaZaRaYaZaRaYaZaRaYaZaRaYaZaZfLaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMiEhKkVjdimkWkXhGiGaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM -bbaWbdaUbeaRaUbeaRaWbdaUbeaRaWbdaUbeaRaWbdaUbeaRbaaSbcaMaMaMaMaWadaXaVbffXgsgkghgqgJfZgIgrgjglgfizgsgugvggghfWaWbcbeahaWbcaLfLaVaUbaaVbaaVaUbaaVaUbaaVaUbaaVaUbaaVaUbaaVbaaVaUbaaVaUbaaVaUbaaVaUbaaMaVfLaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMhEkSiliSillchEaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM -aYaSaTaXbbaUaXbbaUaSaTaXbbaUaSaTaXbbaUaSaTaXbbaUbdaZbfaMaMaMaMaSalaWbeaRcwglgvgkgugsdbcgfYldfWhCicglgjgJgrgkcgaSbfbbagaSbfaLfLbeaWaWbcbeaWbcbeaWbcbeaWbcbeaWbcbebeaWaWbcbeaWbcbeaWbcbeaWbcbeaWbcbeaWaWfLaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMhElmlllnlolphEaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM -baaZbcaWaYaXaWaYaXaZbcaWaYaXaZbcaWaYaXaZbcaWaYaXaTaVaRaMaMaMaMaZaoaSbbaUizfWhoicdbhDldbcaWaUaTaShofWlddtfYicfZaZaRaYacaZaRaLfLbbaSaSbfbbaSbfbbaSbfbbaSbfbbaSbfbbbbaSaSbfbbaSbfbbaSbfbbaSbfbbaSbfbbaSaSfLaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMiElzlAlAlAlBiGaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM +ajaRaSaTaUaVaWaXaYaZbabbbcbdbebfaWaVbaaSaTaXbbaUbdaZbfaSbbaUafaSalaWbeaRaSaYaVaZaTbbbcbdaUbfbaaXaVaYbcbeaRaZbdaSbfbbagaSaTaLfLbeaWaWbcbeaWbcbeaWbcbeaWbcbeaWbcbebeaWaWbcbeaWbcbeaWbcbeaWbcbeaWbcbeaWaWfLaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMfMijijijijijfOaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM +amaUaZbcaXbeaSaWbaaVbdaYbfaTbbaRaSbebdaZbcaWaYaXaTaVaRaZaYaXanaZaoaSbbaUaZbabeaVbcaYbfaTaXaRbdaWbebabfbbaUaVaTaZaRaYacaZbcaLfLbbaSaSbfbbaSbfbbaSbfbbaSbfbbaSbfbbbbaSaSbfbbaSbfbbaSbfbbaSbfbbaSbfbbaSaSfLaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMijfPfQfRfSfTfOaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM +adaXaVbfaWbbaZaSbdbeaTbaaRbcaYaUaZbbaTaVbfaSbaaWbcbeaUaVbaaWakaVabaZaYaXaVbdbbbebfbaaRbcaWaUaTaSbbbdaRaYaXbebcaVaUbaaiaVbfaLfLbfbabaaZbfbaaZbfbaaZbfbaaZbfbaaZbfbfbabaaZbfbaaZbfbaaZbfbaaZbfbaaZbfaTbafLaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMijfUfVfVfVfUfOfOfOfOaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM +alaWbeaRaSaYaVaZaTbbbcbdaUbfbaaXaVaYbcbeaRaZbdaSbfbbaXbebdaSaabeaeaVbaaWbeaTaYbbaRfWcfdbfXfYfZcwdtcgaUbaaWbbbfbeaXbdafbeaRaLfLaRbdbdaVaRbdaVaRbdaVaRbdaVaRbdaVaRaRbdbdaVaRbdaVaRbdaVaRbdaVaRbdaVaRbdbdfLaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMijfUgagagafUfOgbgcfOaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM +aoaSbbaUaZbabeaVbcaYbfaTaXaRbdaWbebabfbbaUaVaTaZaRaYaWbbaTaZajbbahbebdaSbbbcbaaYgdLVgfggghgigjgkglfZgmbdaSaYaRbbaWaTanbbaUaLfLaUaTaTbeaUaTbeaUaTbeaUaTbeaUaTbeaUaUaTaTbeaUaTbeaUaTbeaUaTbeaUaTbeaUaTaTfLaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMijfUgngogpfUfOfOfOfOfOfOfOfOfOfOfOfOaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM +abaZaYaXaVbdbbbebfbaaRbcaWaUaTaSbbbdaRaYaXbebcaVaUbaaSaYbcaVamaYagbbaTaZaYbfbdbagmgigqghglgrgsgtgugvgwaTaZbaaUaYaSbcakaYaXaLfLaXbcbcbbaXaZgQgQgQgQgQgQaZgQgQgQaZaZaZgQgQgQaZgQgQgxgygmgxbbaXbcbbaXbcbcfLaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMijfUgngogpfUgzgAgBgCgDgEgAgFgGgHgHfOaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM +aeanamacakalajaaaeadahabaiagaoafajalahamacaaabakagadafamabakMAbaacaYbcaVbaaRaTbdgwgtgugkgIgfglghgjgJgKbcaVbdaXbaaZbfaabaaWaLfLaWbfbfaYaWaZgQhdgQgQhdgQaZgQhdgQgQgQgQgQhdgQaZgQhdhNhNfNhNaYaWbfaYaWbfbffLaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMijfUgngogpfUgPgAgEgEgDgEgAgEgHgHgHfOaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM +ahbdaSaYaRbbaWaTbbbdaSaYaRbbaWaTbbaWaTbdaSaYaRbbaWaTanaMaMaMaMbdaibabfbebdaUbcaTgKghgjgvgqgigIgkgggsgQbfbeaTaWbdaVaRajbdaSaLfLaSaRaRbaaSaZgQhdhdhdhdgQgQgQhdhdhdhphkhkhjgQgQgQhphkhkhjhNbaaSaRbaaSaRaRfLaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMijfUgogogogVgXgYgEgEgDgEgAgFgGgHgHfOaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM +agaTaZbaaUaYaSbcaYaTaZbaaUaYaSbcaYaSbcaTaZbaaUaYaSbcakaMaMaMaMaTafbdaRbbaTaXbfbcgQgkgggJgugtgqgvgrglgZaRbbbcaSaTbeaUamaTaZaLfLaZaUaUbdaZaZgQhdhdhdhdgQgQhdhdhdhdhthrhrhqhdgQgQhthrhrhqhNbdaZaUbdaZaUaUfLaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMijfUgogogogVgXgYgEgEgEgEhigEgHgHgHfOaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMhfhfhfaMhghghgaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM +acbcaVbdaXbaaZbfbabcaVbdaXbaaZbfbaaZbfbcaVbdaXbaaZbfaaaMaMaMaMbcanaTaUaYbcaWaRbfgZgvgrgsgjghgugJgfgIhhaUaYbfaZbcbbaXadbcbeaLfLaVaXaXaTaVaZgQhdhdhdhdgQgQhdhdhdhdhIgTgTgMhdgQgQhIgTgTgMhNaTaVaXaTaVaXaXfLaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMijfUhmgohnfUgPgAgEgEgDgEgAgFgGgHgHfOaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMhfhfhfaMhghghgaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM +aibfbeaTaWbdaVaRbdbfbeaTaWbdaVaRbdaVaRbfbeaTaWbdaVaRajaMaMaMaMbfakbcaXbabfaSaUaRhhhogfglgggkgjgsgicggyaXbaaRaVbfaYaWalbfbbaLfLbeaWaWbcbeaZgQhdhdhphkhkhjhdhdhdhdhdgUcZhdhdhdhdhdgUcZhdhNbcbeaWbcbeaWaWfLaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMijhsfUhvfUhugzgAgEgEgDgEgAgEgHgHgHfOaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMhfhfhfaMhghghgaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM +afaRbbbcaSaTbeaUaTaRbbbcaSaTbeaUaTbeaUaRbbbcaSaTbeaUamaMaMaMaMaRaabfaWbdaRaZaXaUhodtgrgvgrgvgggrgvfZgOaWbdaUbeaRbaaSaoaRaYaLfLbbaSaSbfbbaZgQhdhdhthrhrhqhdhdhdhdhphcgNhphdhdhdhphcgNhphNbfbbaSbfbbaSaSfLaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMijbDhshwhubDgzgAgEgEgDgEgAgFgGgHgHfOaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMiEhyhzhAiGhfhfhfaMhghghgiEhyhzhAiGaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM +anaUaYbfaZbcbbaXbcaUaYbfaZbcbbaXbcbbaXaUaYbfaZbcbbaXadaMaMaMaMaUajaRaSaTaXicfXhChDgrgigsgigsgfgigsgkfZfZgxhCaYaUbdaZabaUbaaLfLaZaRaYaZaYaZgQhdhdhIgTgTgMhdhdhdhdhthkhahthdhdhphthkhahthNaRaYaZaRaYaZaZfLaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMfOfOfOfOfOfOfOfOfOfOfOfOfOfOfOfOfOfOaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMhxhFhFhFhGhBhJhBhBhBhQhBhHhFhFhFhxaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM +akaXbaaRaVbfaYaWbfaXbaaRaVbfaYaWbfaYaWaXbaaRaVbfaYaWalaMaMaMaMaXamaUaZbcaWgygkgtgIgigsgjgrgvgigugvgrgqgkgkfXbaaXaTaVaeaXbdaLfLaVaUbaaVbaaZgQhphkhkhjcZhdhdhdhdhdhdhdhdhdhdhdhthrhrhqfNhNaUbaaVaUbaaMaVfLaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMhxhLhMjyjIhPhShRhUhTikhPjOjNhXhYhxaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM +aaaWbdaUbbaSaYbeaTaUhZiaibicidbaiecdifcwigaUbeaRbaaSaoaMaMaMaMaWadaXaVbfaSgOgkghgqgugvgggigsgtgjgkgfgugvggcwbdaWbcbeahaWaTaLfLbeaXbdbebdaZgQhthrhrhqgNhphphkhkhjhkhkhjhdhdhdhIgTgTgMfNhNaXbdbeaXbdaMbefLaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMhxiiiijPioilimilinilimiliFjPiiiihxaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM +ajbaaTaXaRbdaUbfaSaXipiqirisitaXiuiviwixiyaXbbaUbdaZabaMaMaMaMaSalaWbeaRaZgSgvgkgugjgJgrgkgqghgggsgigjgJgrizaTaSbfbbagaSbcaLfLbeaXbdbebdgQgQhIgTgTgMhahththrhrhqhrhrhqhdhdhdhdgUcZhdfNhNgmbdbeaXbdaMbefLaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMhKjNiijbimimimimimimimimimjbiijQhEaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM +ambdbcaWaUaTaXaRaZaWiyiHiIiJiKaWiLiMiNiOiPaWaYaXaTaVaeaMaMaMaMaZaoaSbbaUaVLUgJgvgjgggsgfgvgugkgrglgtgggsgficbcaZaRaYacaZbfaLfLbeaXbdbebdgQhdhdgUcZhdhdhdhIgTgTgMgTgTgMhdhdhdhphcgNhpfNfNgmbdbeaXbdaMbefLaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMhKhBhHiRilimiliSiSilimiThGhBhEaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM +adaTbfaSaXbcaWaUaVaSiPiUiVirieaSipiWiXiYiZaSbaaWbcbeahaMaMaMaMaVabaZaYaXbecggsgJgggrglgigJgjgvgfgIghgrglgihobfaVaUbaaibeaRaLfLbbaWaTbbaTgQhdhphcgNhphphkhkhjcZhdgUcZhdhdhdhdhthkhahtfNfNgwaTbbaWaTaMbbfLaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMhxjkinimjcjkjkjdimjehxaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM +albcaRaZaWbfaSaXbeaZiZisjfiIjgaZiyjhixjiitaZbdaSbfbbagaMaMaMaMbeaeaVbaaWbbfZglgsgrgfgIgtgsgggJgigqgkgfgIgtdtaRbeaXbdafaMaUaLfLbfbabaaZbfgQgQhthkhahththrhrhqgNhphcgNhphdhdhdhdhdfNfNfNhNgQbfbaaZbfaTbafLaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMjjjjjjjjhxjmilimjcjkjkjdimhPhxjljljljlaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM +aobfaUaVaSaRaZaWbbaVitipiKiZhZaViPigiuiyiKaVaTaZaRaYacaMaMaMaMbbahbebdaSgOdbgIglgfgigqghglgrgsgtgugvgigqghhDgdbbaWaTanbbaXaLfLaRbdbdaVaRaZgQgQgQgQgQhIgTgTgMhahthkhahthdhdhdhdgQhNhNhNhNaVaRbdaVaRbdbdfLaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMjjjjjjjjjnjpimimiljojoilimjujqjljljljlaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM +abaRaXbebcaVaUbaaVaRaXbebcaVaUbaaVaUbaaRaXbebcaVaUbaaiaMaMaMaMaYagbbaTaZgSgggqgIgigtgugkgIgfglghgjgJgtgugkgIgmaYaSbcakaYaWaLfLaUaTaTbeaUaZaZaZaZaZgQhdgUcZhdhdhdhdhdhdhdhdhdhdgQaMaMaMaMbeaUaTbeaUaTaTfLaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMjjjjjjjjhxhPjsimimimimimimilhxjljljljlaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM +aebaaWbbbfbeaXbdbebaaWbbbfbeaXbdbeaXbdbaaWbbbfbeaXbdafaMaMaMaMbaacaYbcaVhbgrgugqgtghgjgvgqgigIgkgggsghgjgvgqgwbaaZbfaabaaSaLfLaXbcbcbbaXaZaZaZaZaZgQhphcgNhphdhdhdhdhdhdhdhdhdgQaMaMaMaMbbaXbcbbaXbcbcfLaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMhGhBhBhBhOimilimimjzhxaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM +ahaSaSaYaRbbaWaTbbaSaSaYaRbbaWaTbbaWaTaSaSaYaRbbaWaTanaMaMaMaMbdaibabfbehlgfgjgughgkgggJgugtgqgvgrglgkgggJgugKbdaVaRajbdaZaLfLaWbfbfaYaWaZaZaZaZaZgQhthkhahthdhdhdhdhdhdhdhdhdgQaMaMaMaMaYaWbfaYaWbfbffLaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMhxjJjJjKjLimilimimiljMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM +agaZaZbaaUaYaSbcaYaZaZbaaUaYaSbcaYaSbcaZaZbaaUaYaSbcakaMaMaMaMaTafbdaRbbgxgigggjgkgvgrgsgjghgugJgfgIgvgrgsgjgQaTbeaUamaTbeaLfLaSaRaRbaaSaZaZaZaZaZgQgQgQhdhdhdhdhdhdhdhdhdgQgQgQaMaMaMaMbaaSaRbaaSaRaRfLaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMjTjUjUjUjVimjWjXjYjXhxaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM +acaVaVbdaXbaaZbfbaaVaVbdaXbaaZbfbaaZbfaVaVbdaXbaaZbfaaaMaMaMaMbcanaTaUaYgLgtgrgggvgigJgkgIgsghgqgrgtgJgfglgggZbcbbaXadbcbbaLfLaZaUaUbdaZaUaMaMaMaMaMaMhNhNfNfNfNfNfNfNfNhNhNaMaMaMaMaMaMbdaZaUbdaZaUaUfLaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMhxkijUjUkhimklkmknkohxaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM +aibebeaTaWbdaVaRbdbebeaTaWbdaVaRbdaVaRbebeaTaWbdaVaRajaMaMaMaMbfakbcaXbagRghgfgrgJgtgsgvgqglgkgugfghgsgigIgrhhbfaYaWalbfaYaLfLaVaXaXaTaVaXaTaVaXaTaVaXaTgZgmhlgZgZgmgmhlgZaXaTaVaXaTaVaXaTaVaXaTaVaXaXfLaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMhxkujUjUjLimjXkykykzhxaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM +afbbbbbcaSaTbeaUaTbbbbbcaSaTbeaUaTbeaUbbbbbcaSaTbeaUamaMaMaMaMaRaabfaWbdfFgkgigfgsghglgJgugIgvgjgigkglgtgqgfdcaRbaaSaoaRbaaLfLbeaWaWbcbeaWbcbeaWbcbeaWbcbeaWbcbebeaWaWbcbeaWbcbeaWbcbeaWbcbeaWbcbeaWaWfLaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMhxkijUjUjVimkFkykykIhxaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM +analahajaoacaeabanagakafamaafLfLfLfLfLahajabafaoaaagadaMaMaMaMaUajaRaSaTfYgvgtgiglgkgIgsgjgqgJgggtgvgIghgugidtaUbdaZabaUbdaLfLbbaSaSbfbbaSbfbbaSbfbbaSbfbbaSbfbbbbaSaSbfbbaSbfbbaSbfbbaSbfbbaSbfbbaSaSfLaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMhKhVhVhBhWkMhBhBhVhVhEaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM +bebcaXbabfaSaUaRbeaWbbaVbdaYaZaTaUaSbbaXbaaRaVbfaYaWaTaMaMaMaMaXamaUaZbchCgJghgtgIgvcgglgggugsgrcwgJgqgkgjgthDaXaTbeaeaXaTaLfLaZaRaYaZaYaZaRaYaZaRaYaZaRaYaZaRaYaZaRaYaZaYaZaRaYaZaRaYaZaRaYaZaRaYaZaZfLaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMhKhHkVjdimkWkXhGhEaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM +bbaWbdaUbeaRaUbeaRaWbdaUbeaRaWbdaUbeaRaWbdaUbeaRbaaSbcaMaMaMaMaWadaXaVbffXgsgkghgqgJfZgIgrgjglgfizgsgugvggghfWaWbcbeahaWbcaLfLaVaUbaaVbaaVaUbaaVaUbaaVaUbaaVaUbaaVaUbaaVbaaVaUbaaVaUbaaVaUbaaVaUbaaMaVfLaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMhxkSiliSillchxaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM +aYaSaTaXbbaUaXbbaUaSaTaXbbaUaSaTaXbbaUaSaTaXbbaUbdaZbfaMaMaMaMaSalaWbeaRcwglgvgkgugsdbcgfYldfWhCicglgjgJgrgkcgaSbfbbagaSbfaLfLbeaWaWbcbeaWbcbeaWbcbeaWbcbeaWbcbebeaWaWbcbeaWbcbeaWbcbeaWbcbeaWbcbeaWaWfLaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMhxlmlllnlolphxaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM +baaZbcaWaYaXaWaYaXaZbcaWaYaXaZbcaWaYaXaZbcaWaYaXaTaVaRaMaMaMaMaZaoaSbbaUizfWhoicdbhDldbcaWaUaTaShofWlddtfYicfZaZaRaYacaZaRaLfLbbaSaSbfbbaSbfbbaSbfbbaSbfbbaSbfbbbbaSaSbfbbaSbfbbaSbfbbaSbfbbaSbfbbaSaSfLaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMhKlzlAlAlAlBhEaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM bdaVbfaSbaaWaSbaaWaVbfaSbaaWaVbfaSbaaWaVbfaSbaaWbcbeaUaMaMaMaMaVaeaVbaaWbeaTaYbbaRbdaUbfaSaXbcaZaYaTaUbaaWbbbfbeaXbdafaVaXaLfLaZaRaYaZaYaZaRaYaZaRaYaZaRaYaZaRaYaZaRaYaZaYaZaRaYaZaRaYaZaRaYaZaRaYaZaZfLaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM aTbeaRaZbdaSaZbdaSbeaRaZbdaSbeaRaZbdaSbeaRaZbdaSbfbbaXaMaMaMaMbeahakadaiaaaoamajahalagaeafacabanamaoagadacaiaeaaacalanbeaWaLfLaVaUbaaVbaaVaUbaaVaUbaaVaUbaaVaUbaaVaUbaaVbaaVaUbaaVaUbaaVaUbaaVaUbaaMaVfLaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM bcbbaUaVaTaZaVaTaZbbaUaVaTaZbbaUaVaTaZbbaUaVaTaZaRaYaWaMaMaMaMaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLfLfLfLfLfLfLfLfLfLfLfLfLfLfLfLfLfLfLfLfLfLfLfLfLfLfLfLfLfLfLfLfLfLfLfLfLfLfLaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMdjhegWheiAaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM @@ -2166,73 +2163,73 @@ aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMmtaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMnHpioSoYnHnRoHnRoJnHnHoZoXpfpbpkpnpkkdkdkdkdpmkQkQkQkQkQoDkQkQkQkQoxihmumumumumumu aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMmtaMaMaMaMaMaMaMaMaMaMaMaMmumuaMaMaMaMphoWpjoWnHnHnHponHnHptoZplpxpbpkpLpkkdkdkdkdihoqopkQkQkQkQkQkQkQkQoMihmumumumumumu aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMmtaMaMaMaMaMaMaMaMaMaMaMmumumuaMaMaMaMnHnHphpynHnHpAnRpCnHnHpzpDpznHoIoIihoPnanUihihihihowovkQkQkQozozoeihihmumumumumumu -aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMjHoUoVoVoVoVoVoVoVoVoVoVoVoVoVoVoVoVoVoVoVoNaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMmtaMaMaMaMaMaMaMaMaMaMmumumumuaMaMaMaMnHManRnRpHnHnRnRnRnHrbsopJpInHmBaMmBaMaMaMaMmumuihihihokpcokihihihihmumumumumumumu -aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMjHoUoVoVoVpdpepepepepRpRpepepepepgoVoVoVoVoNaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMmtaMaMaMaMaMaMaMaMaMaMmumumumuaMaMaMaMnHpSnRnRnRpTnRnRnRqanRnRnRqbnHmKmKmKmKaMaMaMaMmumumuihoEkQoEihmumumumumumumumumumu -aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMjHoUoVoVpdpppqprkspeqcpupelgkLpepepepgoVoVoNaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMmtaMaMaMaMaMaMaMaMaMmumumumumuaMaMaMaMnHqCnRnRnRqdnRnRnRqpnRnRnRqtnHaMaMaMaMaMaMaMaMaMmumuihoEkQoEihmumumumumumumumumumu -aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMjHoUoVpdpepBpBpBpBpeququpepBpBqDlhpepepgoVpFpFpFpFpFaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMmtaMaMaMaMaMaMaMaMaMmumumumuaMaMaMaMnvnHnHnHnHnHnHnRnRnRnHnHnHnHnHnHnzaMaMaMaMaMmAaMmBmumuihoEkQoEihmumumumumumumumumumu -aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMjHoUpdpepepMlilkljpepBpBpQpBpBpBpBqFqEpeoVpFqIpUpVpFpFpFpFpFpWpXpXpYpFpFaMaMaMaMaMaMaMaMpZpZpZpZpZpZpZpZpZpZpZaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMmtaMaMaMaMaMaMaMaMaMmumumumuaMaMaMaMnHqJraserdqZnHrfnRrgnHrkrqrqrArtnHaMaMaMaMaMmAmBmumumuihoEkQoEihmumumumumumumumumumu -aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMjHoUqeqfqgpBqhqhqhpepBpBpeqiqjqkqlqmqnpeoVpFqopUpUrEqqqrqsrGrFqsqvqwqxpFpFpFpFpFpFpFpFpFpFqyqzqzqzqzqzqzqzqAjIaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMmtaMaMaMaMaMaMaMaMaMmumumuaMaMaMaMaMnxrjrjrjrjrjnHnRnRnRnHrenRnRnRrHnwaMaMaMaMaMmPaMmumumuihihyxihihmumumumumumumumumumu -aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMjHoUqGqfpBpBpBpBpBpQpBpBpepepepepepepeqHrKpFpFpFpFpFqqqvqsrQrOqsqvqvqvqLqMqMqMqMqMqMqMqMjNqyqOqPqPqPqPqPqQqAjIaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMmtaMaMaMaMaMaMaMaMaMmumuaMaMaMaMaMaMnhrCrDrjrjrjrRnRnRnRrSnRnRnRrXrTmiaMaMaMaMaMmAmBmBmumumuihihihmumumumumumumumumumumu -aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMjHoUqRpeqSpBqSpBqSpepBpBpBqTqUoVoVoVoVoVqVqWqMqMqMqLqvqvqvqvqvqvqvqvqvqLqMqMqMqMqMqMqMqMjNqyqXqYqYqYqYqYqXqAjIaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMmtaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMnyrjrjrjrjrjrYnRnRnRrZnRnRnRnRsanBaMaMaMaMaMmAaMaMmBmumumumumumumumumumumumumumumumu -aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMjHoUoVpepepepepepepepBpBrhpBqUoVoVoVoVoVqVqWqMqMqMqLqvqvqvqvqvqvqvqqqqpFpFpFpFpFpFpFpFpFpZqyqXsbqYqYqYscqXpZjIaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMmtaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMnHsdrjrjrjsfnHpzshpznHsioKslnRspnHaMaMaMaMaMaMaMaMaMmumumumumumumumumumumumumumumumu -aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMjHoUpdpermrnrormrppepBpBpBsqqUoVoVoVoVoVoVpFpFpFpFpFqvqvqsrQrFqsqvrrrspFsrrururvpFrwrxrypZqzqXqYqYqYqYrzsspZjIaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMmtaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMnHstsusHswsvnHsxnRsDnHsFnHnHnNnHnHaMaMaMaMaMaMaMmAaMmBmumumumumumumumumumumumumumumu -aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMjHoUqeqfrJrJrJrJrJpQpBpBpepepepepepepepgoVpFqIpUpVpFqvqvqsrQsGqsqvqqqqpFrLrLrLrLpFrMrxrNpZqzqXqYqYqYqYqYsIpZjIaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMmtaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMnHsNrjsSsUnHnHnRsJsKnHnHnHsVnRLxnHaMaMaMaMaMaMaMmAmBmBmumumumumumumumumumumumumumumu -aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMjHoUqGqfrUrJrJrJrJpepBpBpBpBpBpepBrVrWpeoVpFqopUpUrEqvqvqvqvqvqvqvqvqvpFrLsYsWsWpFpFtqpFpZqzqXqYqYqYqYtDqXpZjIaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMmtaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMnHtEsXtFnHaMnHsZsZsZnHaMnHnLtatbnHaMaMaMaMaMaMaMmAaMmBaMmumumumumumumumumumumumumumu -aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMjHoUqRpepesgtGtGtGpepBtHtHtHpBpQpBsjskpeoVpFpFpFpFpFpFpFtNpFpFpFqvqvqvsmrLsnsnrLrLrLrLsWpZqzqXqYqYqYqYqYsIpZjIaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMmtaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMnHsZsZsZnHaMomtmtntoooaMnHsZsZsZnHaMaMaMaMaMaMaMmAmBmBmBmBmBmumumumumumumumumumumumu -aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMjHoUoVqRperJrJrJrJpepBtHtHtHpBpeqSpepeqHoVpFtXsyszpFsAsBsBsBsCpFqvqvqvqvrLrLrLrLtYrLrLsWpZqzqXqYqYqYqYsEtZpZjIaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMmtaMaMaMaMaMaMaMaMaMaMaMaMmumuaMaMaMomtmtntoooaMaMaMaMaMaMaMomtmtntoooaMaMaMaMaMaMaMmAaMmBaMmBaMaMmumumumumumumumumumumu -aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMjHoUoVoVqRpesLsMuapepBpBpBpBpBpepepeqHoVoVpFsOsPsQsRsBsBsBsBuipFqvqvqvsmsTrLrLrLujrLrLulpZqzqXsbqYqYqYscqXpZjIaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMmtaMaMaMaMaMaMaMaMaMaMaMaMmumumuaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMmumumumumumumumumumumu -aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMjHoUoVoVoVqRpepepepepepepepepepeqHoVoVoVoVpFpFtctdpFpFpFtctetdpFqvqvqvpFtftgtgtgtgtgthpFpZqztitjqYqYqYtktlqAjIaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMmtaMaMaMaMaMaMaMaMaMaMaMaMaMmumuaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMmumumumumumumumumumumu -aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMjHoUoVoVoVoVoVoVoVoVoVoVoVoVoVoVoVoVoVoVoVpFtptptptptptptptptppFpFumpFpFtptptptptptptppFpZqztrtstttttttstuqAjIaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMmtaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMmumumumumumumumumumumu -aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMtvtvtvtvtvtvtvtvtvtvtvtvtvtvtvtvtvtvtvtvyhyhyhyhyhyhyhtptptptxtxtxtxtxtxpFtytztypFtxtxtxtxtxtxtxtxpZqzqztAtBtBtBtCqzqAjIaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMmtaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMmumumumumumumumumumumu -aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMtvuntvupuxuuuzuyuAtvveuhvfvfvkvgvpvpvyvyyhzdyIyIyIyIvzvAvHvAvJtOtPtQtRtSpFtytztypFtTtUtVtWtWtxaMaMpZqzqzqzqzqzqzqzqzqAjIaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMmtaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMmumumumumumumumumumu +aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMkgoUoVoVoVoVoVoVoVoVoVoVoVoVoVoVoVoVoVoVoVoNaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMmtaMaMaMaMaMaMaMaMaMaMmumumumuaMaMaMaMnHManRnRpHnHnRnRnRnHrbsopJpInHmBaMmBaMaMaMaMmumuihihihokpcokihihihihmumumumumumumu +aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMkgoUoVoVoVpdpepepepepRpRpepepepepgoVoVoVoVoNaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMmtaMaMaMaMaMaMaMaMaMaMmumumumuaMaMaMaMnHpSnRnRnRpTnRnRnRqanRnRnRqbnHmKmKmKmKaMaMaMaMmumumuihoEkQoEihmumumumumumumumumumu +aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMkgoUoVoVpdpppqprkqpeqcpupekrkspepepepgoVoVoNaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMmtaMaMaMaMaMaMaMaMaMmumumumumuaMaMaMaMnHqCnRnRnRqdnRnRnRqpnRnRnRqtnHaMaMaMaMaMaMaMaMaMmumuihoEkQoEihmumumumumumumumumumu +aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMkgoUoVpdpepBpBpBpBpeququpepBpBqDkxpepepgoVpFpFpFpFpFaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMmtaMaMaMaMaMaMaMaMaMmumumumuaMaMaMaMnvnHnHnHnHnHnHnRnRnRnHnHnHnHnHnHnzaMaMaMaMaMmAaMmBmumuihoEkQoEihmumumumumumumumumumu +aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMkgoUpdpepepMkwktkvpepBpBpQpBpBpBpBqFqEpeoVpFqIpUpVpFpFpFpFpFpWpXpXpYpFpFaMaMaMaMaMaMaMaMpZpZpZpZpZpZpZpZpZpZpZaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMmtaMaMaMaMaMaMaMaMaMmumumumuaMaMaMaMnHqJrjserdqZnHrfnRrgnHrkrqrqrArtnHaMaMaMaMaMmAmBmumumuihoEkQoEihmumumumumumumumumumu +aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMkgoUkkqfqgpBqhqhqhpepBpBpeqiqjqkqlqmqnpeoVpFqopUpUrEqqqrqsrGrFqsqvqwqxpFpFpFpFpFpFpFpFpFpFqyqzqzqzqzqzqzqzqAkaaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMmtaMaMaMaMaMaMaMaMaMmumumuaMaMaMaMaMnxrjrjrjrjrjnHnRnRnRnHrenRnRnRrHnwaMaMaMaMaMmPaMmumumuihihyxihihmumumumumumumumumumu +aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMkgoUkeqfpBpBpBpBpBpQpBpBpepepepepepepeqHrKpFpFpFpFpFqqqvqskfrOqsqvqvqvqLqMqMqMqMqMqMqMqMjZqyjRjSjSjSjSjSkbqAkaaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMmtaMaMaMaMaMaMaMaMaMmumuaMaMaMaMaMaMnhrCrDrjrjrjrRnRnRnRrSnRnRnRrXrTmiaMaMaMaMaMmAmBmBmumumuihihihmumumumumumumumumumumu +aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMkgoUqRpeqSpBqSpBqSpepBpBpBqTqUoVoVoVoVoVqVqWqMqMqMqLqvqvqvqvqvqvqvqvqvqLqMqMqMqMqMqMqMqMjZqykpqYqYqYqYqYkpqAkaaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMmtaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMnyrjrjrjrjrjrYnRnRnRrZnRnRnRnRsanBaMaMaMaMaMmAaMaMmBmumumumumumumumumumumumumumumumu +aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMkgoUoVpepepepepepepepBpBrhpBqUoVoVoVoVoVqVqWqMqMqMqLqvqvqvqvqvqvqvqqqqpFpFpFpFpFpFpFpFpFpZqykpsbqYqYqYsckppZkaaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMmtaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMnHsdrjrjrjsfnHpzshpznHsioKslnRspnHaMaMaMaMaMaMaMaMaMmumumumumumumumumumumumumumumumu +aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMkgoUpdpermrnrormrppepBpBpBsqqUoVoVoVoVoVoVpFpFpFpFpFqvqvqskfrFqsqvrrrspFsrrururvpFrwrxrypZqzkpqYqYqYqYrzsspZkaaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMmtaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMnHstsusHswsvnHsxnRsDnHsFnHnHnNnHnHaMaMaMaMaMaMaMmAaMmBmumumumumumumumumumumumumumumu +aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMkgoUkkqfrJrJrJrJrJpQpBpBpepepepepepepepgoVpFqIpUpVpFqvqvqskfsGqsqvqqqqpFrLrLrLrLpFrMrxrNpZqzkpqYqYqYqYqYsIpZkaaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMmtaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMnHsNrjsSsUnHnHnRsJsKnHnHnHsVnRLxnHaMaMaMaMaMaMaMmAmBmBmumumumumumumumumumumumumumumu +aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMkgoUkeqfrUrJrJrJrJpepBpBpBpBpBpepBrVrWpeoVpFqopUpUrEqvqvqvqvqvqvqvqvqvpFrLsYsWsWpFpFtqpFpZqzkpqYqYqYqYtDkppZkaaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMmtaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMnHtEsXtFnHaMnHsZsZsZnHaMnHnLtatbnHaMaMaMaMaMaMaMmAaMmBaMmumumumumumumumumumumumumumu +aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMkgoUqRpepesgtGtGtGpepBtHtHtHpBpQpBsjskpeoVpFpFpFpFpFpFpFtNpFpFpFqvqvqvsmrLsnsnrLrLrLrLsWpZqzkpqYqYqYqYqYsIpZkaaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMmtaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMnHsZsZsZnHaMomtmtntoooaMnHsZsZsZnHaMaMaMaMaMaMaMmAmBmBmBmBmBmumumumumumumumumumumumu +aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMkgoUoVqRperJrJrJrJpepBtHtHtHpBpeqSpepeqHoVpFtXsyszpFsAsBsBsBsCpFqvqvqvqvrLrLrLrLtYrLrLsWpZqzkpqYqYqYqYsEtZpZkaaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMmtaMaMaMaMaMaMaMaMaMaMaMaMmumuaMaMaMomtmtntoooaMaMaMaMaMaMaMomtmtntoooaMaMaMaMaMaMaMmAaMmBaMmBaMaMmumumumumumumumumumumu +aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMkgoUoVoVqRpesLsMuapepBpBpBpBpBpepepeqHoVoVpFsOsPsQsRsBsBsBsBuipFqvqvqvsmsTrLrLrLujrLrLulpZqzkpsbqYqYqYsckppZkaaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMmtaMaMaMaMaMaMaMaMaMaMaMaMmumumuaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMmumumumumumumumumumumu +aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMkgoUoVoVoVqRpepepepepepepepepepeqHoVoVoVoVpFpFtctdpFpFpFtctetdpFqvqvqvpFtftgtgtgtgtgthpFpZqzkEkCqYqYqYkGkHqAkaaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMmtaMaMaMaMaMaMaMaMaMaMaMaMaMmumuaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMmumumumumumumumumumumu +aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMkgoUoVoVoVoVoVoVoVoVoVoVoVoVoVoVoVoVoVoVoVpFtptptptptptptptptppFpFumpFpFtptptptptptptppFpZqzkBtstttttttskAqAkaaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMmtaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMmumumumumumumumumumumu +aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMtvtvtvtvtvtvtvtvtvtvtvtvtvtvtvtvtvtvtvtvyhyhyhyhyhyhyhtptptptxtxtxtxtxtxpFtytztypFtxtxtxtxtxtxtxtxpZqzqztAtBtBtBtCqzqAkaaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMmtaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMmumumumumumumumumumumu +aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMtvuntvupuxuuuzuyuAtvveuhvfvfvkvgvpvpvyvyyhzdyIyIyIyIvzvAvHvAvJtOtPtQtRtSpFtytztypFtTtUtVtWtWtxaMaMpZqzqzqzqzqzqzqzqzqAkaaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMmtaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMmumumumumumumumumumu aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMtvtvtvtvtvtvtvAgtvuhuhuhuhuhuhtvvKuhuhuhuhuhuhuhuhuhyhyByIvMyIyIvEurururvOueufufufufpFtytztypFtWtWtWtWtWtxaMaMugugugugugugugugugugugtxtxtxtxtxtxtxtxtxtxaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMmtaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMmumumumumumumumumu aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMustvtvtvtvtvtvtvtvtvtvtvtvtvtvtvtvtvtvtvtvutvPvbuvuwvQuhuhuhuhuhuhuhvRtvvSuhuhuhuhuhuhuhuhuhyhyHvTzqyIyIvzvAvHvAvJueufufufufpFvUumwhpFtWtWtWtWtWtxuguguguguguguowjuqtxurururtxururururururururtxaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMmtaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMmumumumumumumumu aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMuUuVuVuVuVuVuVuVuVuVuVuVuVuVAIuXuVuVuVuYAIuZvavbvbvctvwluhuhuhuhuhuhuhtvwmuhuhuhuhvpwownwpwpyhzrzpzEyIyIyhwqwqwqtvuDuEuFuGuHtxuIuIuItxtWtWtWtWtWtxuJuKuJuLuMuguNuNuNuOurururuOuruPuQuPuruRuSuTtxaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMmtaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMmumumumumumumu aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMustvtvtvtvtvtvtvtvtvtvtvtvtvtvtvtvtvtvtvtvtvtvvQtvtvtvuhuhuhuhuhuhuhuhtvuhuhuhuhwytvtvtvtvtvyhyhyhyhyhyhyhxQxQxQtvwzwAvlvmvntxufJyuftxvlvmvowAwBtxvqvrvqvrvqugtxtxtxtxurururtxvsvtuPvuvsvvvwvwtxaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMmtaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMmumuaMaMaMaMaMaMaMaMaMaMaMaMaMmumumumumumu aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMustvtvtvtvtvtvtvtvtvtvtvtvtvtvtvtvtvtvtvtvutvIvbvbwEtvvxwPukxowVwXuhuhtvuhuhuhuhwYtvxawZwZxaxcxbxexdxQxQxQxQxQxgtvufufvBvCvCvCvCvCvCvCvCvCvDufufxhvqvqvqvqvqugvFuNuotxurururtxvGvGxkvGvGvvvwvwtxaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMmtaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMmumumumuaMaMaMaMaMaMaMaMaMaMaMaMaMmumumumumu -aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMuUuVuVuVuVuVuVuVuVuVuVuVuVuVwWuXuVuVuVuYwWwivavbvbxltvwFwGwGwGwItvuhuhtvuhuhuhuhxmtvuhxQxQxQxnxQxQxQxQxQxQxQxQxptvufJyvVvWvXvXvXvXvXvXvXvYueJyufugvZwawbwcwdugweuNwjtxurururtxwfwfuNwfwfvvvwvwtxaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMwgaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMmumumumumuaMaMaMaMaMaMaMaMaMaMaMaMaMmumumumumu +aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMuUuVuVuVuVuVuVuVuVuVuVuVuVuVwWuXuVuVuVuYwWwivavbvbxltvwFwGwGwGwItvuhuhtvuhuhuhuhxmtvuhxQxQxQxnxQxQxQxQxQxQxQxQxptvufJyvVvWvXvXvXvXvXvXvXvYueJyufugvZwawbwcvqugweuNwjtxurururtxwfwfuNwfwfvvvwvwtxaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMwgaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMmumumumumuaMaMaMaMaMaMaMaMaMaMaMaMaMmumumumumu aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMustvtvtvtvtvtvtvtvtvtvtvtvtvtvtvtvtvtvtvtvutwxvbvbxqxcxrxtxsxvxuxcuhuhxcuhuhuhuhxwxcuhxQxQuwxxxQxQxQxexetvtvtvtvtvufufvVwrwsufwtwuwvufwswrueufufugugugugugugugweuNwjtxurururtxwwwwuNwwwwvvvwvwtxaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMmtaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMmumumumumumuaMaMaMaMaMaMaMaMaMaMaMaMaMmumumumu aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMuUuVuVuVuVuVuVuVuVuVuVuVuVuVxyuXuVuVuVuYxyxzvavbvbxAxnxHuhuhuhxIxnuhuhxnuhuhxKxJxLxnxMxQxQxQtvwFwGwHwGwItvwJwJwJxNufufwKwLwMwNwOxOwQwRwSwLwTufufxRwUwUwUwUwUtxtxuOtxtxtxuOtxtxuNuNuNuNuNvvvwvwtxaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMmtaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMmumumumumumumuaMaMaMaMaMaMaMaMaMaMaMaMaMaMmumu aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMustvtvtvtvtvtvtvtvtvtvtvtvtvtvtvtvtvtvtvtvutxXvbvbxYtvyauhuhuhuhtvybybtvycyctvtvtvtvxMxQxQuwuWxfxfxfxfxfydxfxfxfydufufufyeufufxiufxiufufyeufufufxjurururururxjurururururururxjwwwwwwwwwwvvvwvwtxaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMmtaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMmumumumumumumumumuaMaMaMaMaMaMaMaMaMaMaMaMaMaMmu aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMuUuVuVuVuVuVuVuVuVuVuVuVuVuVyfuXuVuVuVuYyfygyivbvbuwyjuhuhuhuhuhyjuhuhykuhuhymylyzyzuhxQxQvdtvwFwGwHwGwItvxBxBxByAufufvBxCxDwNxEufxFwRxGxCvDufufxjurururururxjurururururururxjwwwwwwwwwwtxuOuOtxtxtxtxtxaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMmtaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMmumumumumumumumumuaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM -aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMustvtvtvtvtvtvtvtvtvtvtvtvtvtvtvtvtvtvtvtvtvtvvbvbuwyjuhuhuhuhuhyjuhuhyCuhuhxQyDyDyDxQxQxQzcyKlwyMxQySyQtvtvtvtvtvufufvVwLxSufxiufxikayqwLueufufwAxTxUxUxUxVtxtxxWtxtxtxuOtxtxtxyXyXyXtxtxurururyYurxZtxaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMmtaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMmumumumumumumumumuaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM +aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMustvtvtvtvtvtvtvtvtvtvtvtvtvtvtvtvtvtvtvtvtvtvvbvbuwyjuhuhuhuhuhyjuhuhyCuhuhxQyDyDyDxQxQxQzcyKjHyMxQySyQtvtvtvtvtvufufvVwLxSufxiufxilZyqwLueufufwAxTxUxUxUxVtxtxxWtxtxtxuOtxtxtxyXyXyXtxtxurururyYurxZtxaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMmtaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMmumumumumumumumumuaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMtvvbvbyZtvwFwGwGwGwItvzezetvzfuhxQzgzizhxQxQxQyRzkyMxQxQxQxQxxxQxKzltvufufvVtxtxynyoufypxStxtxueufuftxaMaMaMaMaMtxyrystxuNytuNuNyuyvywywywzmtxururuQuQururyyaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMmtaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMmumumumumuaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMtvtvtvtvtvznztzszvzuuhuhuhxczwuhxQzizCzxxQxQxQxQxxxQxQxQzFzDxcxQxQzGtvufJyvVtxtxvlvmvmvmvotxtxueJyuftxaMaMaMaMaMtxysystxyLyLyLuNyuywywywywzHtxuryNuPuPyOuryPaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMmtaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMtvuhuhuhuhuhuhuhuhxnzIuhxQzJzJzJxQxQxQxQxxxQxQxQzFzDxnyJyEyFtvufufwKyTyTyTyTyTyTyTyTyTwTufuftxaMaMaMaMaMtxyUystxyLyVyLuNyuyuyuyuyuyutxuryNuPuPyOuryPaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMmtaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMtvuhuhuhuhuhuhuhuhtvwCuhuhzOuhuhuhxQxQwCzkxQxQxQzFzDtvtvtvtvtvtxwAzQxRtxufufJyufuftxtxtxtxtxtxaMaMaMaMaMtxAbystxvFuNuNuNyuaMaMaMaMaMtxuryNuPuPyOuryPaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMmtaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM -mtmtmtmtmtmtmtmtmtmtmtmtmtmtmtmtmtmtmtmtmtmtmtmtmtmtmtmtmtmtmtmtmtmtmtmtmtmtmtmtaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMtvAfAfAhAoAnAqApwDtvAsArwqtvzBjRtvwqArAsyKAFxQxQzFzDtvAGAKAJAGAMAPDCAQCNtxwAASxRtxtxaMaMaMaMaMaMaMaMaMaMtxtxtxtxtxtxtxtxyuaMaMaMaMaMzyuryNuPuPyOuryPaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMzzmtmtmtmtmtmtmtmtmtmtmtmtmtmtmtmtmtmtmtmtmtwgmtmtmtmtmtmtmtmtmtmtmtmtmtmtmtmtmtmtmtmtmtmtmtmtmtmtmtmtmtmtmtmtmtmtmtmtmt +mtmtmtmtmtmtmtmtmtmtmtmtmtmtmtmtmtmtmtmtmtmtmtmtmtmtmtmtmtmtmtmtmtmtmtmtmtmtmtmtaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMtvAfAfAhAoAnAqApwDtvAsArwqtvzBlStvwqArAsyKAFxQxQzFzDtvAGAKAJAGAMAPDCAQCNtxwAASxRtxtxaMaMaMaMaMaMaMaMaMaMtxtxtxtxtxtxtxtxyuaMaMaMaMaMzyuryNuPuPyOuryPaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMzzmtmtmtmtmtmtmtmtmtmtmtmtmtmtmtmtmtmtmtmtmtwgmtmtmtmtmtmtmtmtmtmtmtmtmtmtmtmtmtmtmtmtmtmtmtmtmtmtmtmtmtmtmtmtmtmtmtmtmt dCdCdCdCdCdCdCdCdCdCdCAZAZAZAZAZAZAZAZAZAZAZAZAZAZAZAZAZAZAZAZAZdCdCdCdCdCdCdCmtaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMtvtvtvtvtvtvtvtvtvtvtvtvtvtvABABtvtvtvtvtvBaxQxQzFzDtvAGBbBbAGBcBdDCAQCNBfBeDCBgBtCNaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMzKururzLzLururzKaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM -dCmumumumumumumumumudCBvBvBvBvBvAZBFBzBGAZBvBvBvBvBvBvBvBvBvBvBvmumudCmumumumumtaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMzMzNzNzNzNBMBMzNzNzPaMtvBNxQxQzFzDtvAGAJAJAGBOBdDCAQCNBPDCDCDCBQCNaMaMaMaMaMaMaMaMaMaMaMaMzRzSNaNaNazTzUaMaMaMaMaMtxzVururururzWtxaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM -dCmumumumumumumumumudCBvBvBvBvBvAZBRBzBzAZBvBvBvBvBvBvBvBvBvBvBvmumudCmumumumumtaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMzXzYzZAaBSAcAcAdjZzNzPtvtvxxxxtvtvtvlqAGAGAGBYBdDCAQCNCeCdCeCfCeCNaMaMaMaMaMaMaMaMaMaMaMzRAiNiNjNkNlNmAlzUaMaMaMaMtxtxtxtxtxtxtxtxaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM -dCmumumumumumuBvBvBvAZAZAZAZBvAZAZAZAZCgAZAZAZAZAZAZAZBvBvBvBvBvmumudCmumumumumtaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMzXzYAmAcAcAcAcAcAcCiChxcxQxQxQxQxQxNAGCjAGCjAMBdDCClCkBPDCCmDCCnCNaMaMaMaMaMaMaMaMaMaMzRAiCoAvADAvADAvCpAlzUaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM -dCmumumuBvBvBvBvCuCvBzBzBzBzBzBzBzBzBzBzBzBzBzBzBzBzAZBvBvBvBvBvmumudCmumumumumtaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMzXzYAxAyAzjSAzAzAzzNAAxPxQxQxQxQxQyWAGCjAGCjBcBdDCClCkCwDCCyCxCzCNaMaMaMaMaMaMaMaMaMaMACADADADCANcCEADADADACaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM -dCmumumuBvBvBzCFCuCFBzBzBzBzBzBzBzBzBzBzBzBzBzBzBzBzAZCHCGBvBvBvmumudCmumumumumtaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMAEzNzNzNzNzNzNzNzNAAaMxnxQxQxQxQxQtvAGCjAGCjBOCJCICKCNCeCLCQCOCeCNaMaMaMaMaMaMaMaMaMaMAtCRBuNhNeNgNeNfCrCSAtaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM -dCmumumuBvBvCuCFCuBvBvBvAZAZAZAZCgAZAZAZAZCgAZBzBzBzCgCVCTBvBvBvmumudCmumumumumtaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHCNCNCWDCDCCXBQCNCNCNaMaMaMaMaMaMaMaMAtCYACATARAUARATACCYAtaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM -dCmumumuBvCuCuBvBvBvBvBvBvBvBvAZBzBzBRAZDbBzAZBzBzBzCgCVDcBvBvAZmumudCmumumumumtaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMjOAWAWAWAWAWAWAWAWAWAWAWAWAWAXAYDdDgBlBmBmBmBmBmAHDyDqDrDCDCDxBQDqDyCNaMaMaMaMaMaMaMaMAtADCrAtDFDEDIAtBuADAtaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM -dCmumumuBvCuBvBvBvmumuBvAZAZAZAZDWBzBFAZDWBFAZBzBzBzAZCVCVCVEcAZmumudCmumumuaMmtaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMjOAWAWkekbkfkekbkbkkkgkpkbkrkqAYAWAWBBBmBmBmBmBmAHDyEpDrDCDCDCBQEpDyCNCNCNCNCNCNaMaMaMACADCrCCMQMRMPCCBuADACaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM -dCmumumuBvErErBvmumumuBvEsECECAZAZAZAZAZAZAZAZBzBzBzAZCVCVCVEDAZmumudCmumumuaMmtaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMjOAWkektlrkwkvkxlskxkxkxlskBkAAYAWAWBlBmBmBmBmBmAHDyEpDrDCDCDCEKEpDyDyDyDyDyDyCNaMaMzRAiCRCrDfMQBwMPDfBuCSAlzUaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM -dCmuBvCuCuCuCuBvBvmumuBvEXEYEXCgBzBzBzBzBzBzBzBzBzBzAZFlFaFpAZAZmumudCmumumuaMmtaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMjOAWkCkGkEkGkHkGkGkGkGkGkGkGkJAWAWAWAHAHAHAHCcFsAHDyEpDrDCDCDCFxFtFGFGFGFGFGFGFGFGFHAtFNADCrAlACFRACAiBuADFNAtaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM -dCmuFVCuCuCuCuFWBvmumuAZFXEXEXCgBzBzBzBzBzBzBzBzBzBzAZBvBvBvBvBvmumudCmumumuaMmtaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMjOAWkKkPltkRkvkUlukUkUkUlukZkYAYAWAWAHGfGdGgCPCPCNGqGpGLDCDCDCDCDDDCDCGODCDCGRGTDpGTHfADADADHjHkADADHjADADCrACaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM -dCmuHmHAHzCuHBCuCumumuAZHCHIAZAZAZAZAZAZAZAZAZAZCgAZAZAZAZAZAZAZAZAZAZmumuaMaMmtaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMjOAWAWkKkblbkKkbkbkkkgkpkblekqAYAWAWAHHKHJHLCPCPHMDCDDDCDCDCDCDCDDDCDCDCDCDCGRHNFGFHAtHOADCrCCBuADCrCCBuADHQAtaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM -dCmuIhCuImCuHzCuCumumuBvBvBvAZBzBzBzBzBzBzAZIqIGIGIGIIAZBzBzBzBzBzBzAZmuaMaMaMmtaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMjOAWAWAWAWAWAWAWAWAWAWAWAWAWAXAYAWAWAHIKIJILCPCPHMDCDDDCDCDCDCITISFGIUDCDCIWIVCNaMaMCCBuADCrCMBuADCrCMBuADCrCCaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM -dCmuBvCuIXCuIYCuCumumuaMaMmuAZBzBFBzBzBzBzAZIGIGJaIGIGAZBzBzBzBzBFBzAZmuaMaMaMmtaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHJcJbJbCPCPCNJmJlJnDCJoDCEKJpDyJqDCGRlfJrCNaMaMCMBuADCrCMBuNcCrCMBuADCrCMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM +dCmumumumumumumumumudCBvBvBvBvBvAZBFBzBGAZBvBvBvBvBvBvBvBvBvBvBvmumudCmumumumumtaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMlRzNzNzNzNBMBMzNzNzPaMtvBNxQxQzFzDtvAGAJAJAGBOBdDCAQCNBPDCDCDCBQCNaMaMaMaMaMaMaMaMaMaMaMaMlfzSNaNaNazTlbaMaMaMaMaMtxzVururururzWtxaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM +dCmumumumumumumumumudCBvBvBvBvBvAZBRBzBzAZBvBvBvBvBvBvBvBvBvBvBvmumudCmumumumumtaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMlTzYzZAaBSAcAcAdlYzNzPtvtvxxxxtvtvtvlXAGAGAGBYBdDCAQCNCeCdCeCfCeCNaMaMaMaMaMaMaMaMaMaMaMlfleNiNjNkNlNmkZlbaMaMaMaMtxtxtxtxtxtxtxtxaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM +dCmumumumumumuBvBvBvAZAZAZAZBvAZAZAZAZCgAZAZAZAZAZAZAZBvBvBvBvBvmumudCmumumumumtaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMlTzYAmAcAcAcAcAcAcCiChxcxQxQxQxQxQxNAGCjAGCjAMBdDCClCkBPDCCmDCCnCNaMaMaMaMaMaMaMaMaMaMlfleCoAvADAvADAvCpkZlbaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM +dCmumumuBvBvBvBvCuCvBzBzBzBzBzBzBzBzBzBzBzBzBzBzBzBzAZBvBvBvBvBvmumudCmumumumumtaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMlTzYAxAyAzlUAzAzAzzNAAxPxQxQxQxQxQyWAGCjAGCjBcBdDCClCkCwDCCyCxCzCNaMaMaMaMaMaMaMaMaMaMACADADADCANcCEADADADACaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM +dCmumumuBvBvBzCFCuCFBzBzBzBzBzBzBzBzBzBzBzBzBzBzBzBzAZCHCGBvBvBvmumudCmumumumumtaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMlVzNzNzNzNzNzNzNzNAAaMxnxQxQxQxQxQtvAGCjAGCjBOCJCICKCNCeCLCQCOCeCNaMaMaMaMaMaMaMaMaMaMltCRBuNhlWNglWNfCrCSltaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM +dCmumumuBvBvCuCFCuBvBvBvAZAZAZAZCgAZAZAZAZCgAZBzBzBzCgCVCTBvBvBvmumudCmumumumumtaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHCNCNCWDCDCCXBQCNCNCNaMaMaMaMaMaMaMaMltCYAClulvlwlvluACCYltaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM +dCmumumuBvCuCuBvBvBvBvBvBvBvBvAZBzBzBRAZDbBzAZBzBzBzCgCVDcBvBvAZmumudCmumumumumtaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMkRAWAWAWAWAWAWAWAWAWAWAWAWAWAXAYDdDgBlBmBmBmBmBmAHDyDqDrDCDCDxBQDqDyCNaMaMaMaMaMaMaMaMltADCrltDFDEDIltBuADltaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM +dCmumumuBvCuBvBvBvmumuBvAZAZAZAZDWBzBFAZDWBFAZBzBzBzAZCVCVCVEcAZmumudCmumumuaMmtaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMkRAWAWkLkJkKkLkJkJkOkPkNkJkYkUAYAWAWBBBmBmBmBmBmAHDyEpDrDCDCDCBQEpDyCNCNCNCNCNCNaMaMaMACADCrCCMQMRMPCCBuADACaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM +dCmumumuBvErErBvmumumuBvEsECECAZAZAZAZAZAZAZAZBzBzBzAZCVCVCVEDAZmumudCmumumuaMmtaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMkRAWkLlrlsliljlklqlklklklqlhlgAYAWAWBlBmBmBmBmBmAHDyEpDrDCDCDCEKEpDyDyDyDyDyDyCNaMaMlfleCRCrDfMQBwMPDfBuCSkZlbaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM +dCmuBvCuCuCuCuBvBvmumuBvEXEYEXCgBzBzBzBzBzBzBzBzBzBzAZFlFaFpAZAZmumudCmumumuaMmtaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMkRAWlHlFlGlFlIlFlFlFlFlFlFlFlJAWAWAWAHAHAHAHCcFsAHDyEpDrDCDCDCFxFtFGFGFGFGFGFGFGFGFHltFNADCrkZACFRACleBuADFNltaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM +dCmuFVCuCuCuCuFWBvmumuAZFXEXEXCgBzBzBzBzBzBzBzBzBzBzAZBvBvBvBvBvmumudCmumumuaMmtaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMkRAWlxlMlNlQljlOlPlOlOlOlPlLlKAYAWAWAHGfGdGgCPCPCNGqGpGLDCDCDCDCDDDCDCGODCDCGRGTDpGTHfADADADHjHkADADHjADADCrACaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM +dCmuHmHAHzCuHBCuCumumuAZHCHIAZAZAZAZAZAZAZAZAZAZCgAZAZAZAZAZAZAZAZAZAZmumuaMaMmtaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMkRAWAWlxkJlylxkJkJkOkPkNkJlDlCAYAWAWAHHKHJHLCPCPHMDCDDDCDCDCDCDCDDDCDCDCDCDCGRHNFGFHltHOADCrCCBuADCrCCBuADHQltaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM +dCmuIhCuImCuHzCuCumumuBvBvBvAZBzBzBzBzBzBzAZIqIGIGIGIIAZBzBzBzBzBzBzAZmuaMaMaMmtaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMkRAWAWAWAWAWAWAWAWAWAWAWAWAWAXAYAWAWAHIKIJILCPCPHMDCDDDCDCDCDCITISFGIUDCDCIWIVCNaMaMCCBuADCrCMBuADCrCMBuADCrCCaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM +dCmuBvCuIXCuIYCuCumumuaMaMmuAZBzBFBzBzBzBzAZIGIGJaIGIGAZBzBzBzBzBFBzAZmuaMaMaMmtaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHJcJbJbCPCPCNJmJlJnDCJoDCEKJpDyJqDCGRoTJrCNaMaMCMBuADCrCMBuNcCrCMBuADCrCMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM dCmuBvJAJzCuCuJBCumumuaMaMmuAZBzBzBzBzBzBzCgIGIGJCIGIGCgBzBzBzBzBzBzAZmuaMaMaMmtaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMCNJEJDJDJDJFCZDaCPCPCPJHCPCPCPCPCPCPCPCPCPCPNyCPCNDyEpJIDCDCDCFxFtFGJJDCDCJLJKCNaMaMDfBuADCrCMBuADCrCMBuADCrDfaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM -dCmuBvBvCuCuCuCuBvmumumAaMaMAZBzBzAZJMJOJNAZIGJSJRIGIGAZJMJOJNAZBzBzAZaMaMaMaMmtaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMCNJUJUJUJUJUDhDiDjDkDlCPDmDnDoDlCPCPCPCPCPCPCPCPCNDyEpJVDCDCDCDCDDDCDCDCDCDCGRHNFGFHAtJWADCrDfBuADCrDfBuADJXAtaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM +dCmuBvBvCuCuCuCuBvmumumAaMaMAZBzBzAZJMJOJNAZIGJSJRIGIGAZJMJOJNAZBzBzAZaMaMaMaMmtaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMCNJUJUJUJUJUDhDiDjDkDlCPDmDnDoDlCPCPCPCPCPCPCPCPCNDyEpJVDCDCDCDCDDDCDCDCDCDCGRHNFGFHltJWADCrDfBuADCrDfBuADJXltaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM dCmuBvBvBvBvJYJZBvmumBmAaMaMAZBzBzAZaMaMaMAZAZJMJOJNAZAZaMaMaMAZBzBzAZaMaMaMaMmtaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMCNJUKaJUJUJUDsDiDtDuDlCPDmDvDwDlCPCPKbKbKbKbKbKbCNDyDzDADBDCDCDCDDDCDCDCDCDCGRGTDpGTKcADADKdADADADADADKdADCrACaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM -dCmuBvBvBvBvBvBvmuaMaMaMaMaMKiKjKjKsaMaMaMaMaMaMaMaMaMaMaMaMaMKiKjKjKsaMaMaMaMmtaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMCNJUKuJUJUJUDsDaCPCPCPNyCPCPCPCPCPDGDHDHDHDHDHDHCNCNCNCNKvKwKwCNCNCNCNHNFGFGFGFGFGFHEAACNNATzSzTKxzSzTATNNACBVaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM -dCmumumumumumumumumuaMaMaMaMKiKzKyKsaMaMaMaMaMaMaMaMaMaMaMaMaMKiKzKyKsaMaMaMaMmtaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMCNJUJUKAJUKBDsDiDNDODlCPDmDPDQDlCPDGDRDSDSDSDSDSCNDTDTDTNDDVDVKCDXDXCNDyDyDyDyCNaMaMAtNENFAtNHNIEaKDNJAtNLNGAtaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM -dCmumumumumumumumuaMaMaMaMaMKiKzKyKsaMaMaMaMaMaMaMaMaMaMaMaMaMKiKzKyKsaMaMaMaMmtaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMCNKKJUJUKLJUDsDiEeEfDlCPDmEgEhDlCPDGDSDSDSDSDSDSCNEiEjEjElDVDVDVDXDXCNCNCNCNCNCNaMaMAtKNKMAtKONVEaEaKPAtKQKRAtaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM -dCmumumumumumumumuaMaMaMaMaMKSKjKjKTaMaMaMKSaMaMaMaMaMKTaMaMaMKSKjKjKTaMaMaMaMmtaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMCNKUJUJUJUJUEoDaCPCPCPCPCPCPCPCPCPDGDSDSKVEqKWKXCNEtDVDVDVEwExDVDVEyCNaMaMaMaMaMaMaMEAEBEBAtKYEaNREbKZAtEBEBBVaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM -dCmumumumumuaMaMaMaMaMaMaMaMLalxAeLaaMaMaMLaDLDMDMDMDULaaMaMaMLaFYlyLaaMaMaMaMmtaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMCNJULiLjKaLlLkEFEGEGEGEHEHEHEIEJLmELEMEHEHEHCNCNCNLnDVDVEwEPEQExERESCNaMaMaMaMaMaMaMETEVEVBVDYDZEaNtNsEAEVEVEWaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM -dCmumumumumuaMaMaMaMaMaMaMaMLaLpLoLaaMaMKSLaLaLsLrLtlCLaKTaMaMLaLwLyLaaMaMaMaMmtaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMCNJUJUJULlLWEZEZEZEZEZEHLXFbFcFdFeFfFgFbLXEHCNCNCNCNCNCNLYFiNqFkERESCNaMaMaMaMaMaMaMaMaMaMETATEUEUEUATEWaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM -dCmumumumumuaMaMaMaMaMaMaMaMLalDMbLaaMaMLaLaMdMfMeMfMgLaLaaMaMLaMhlFLaaMaMaMaMmtaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMCNMjJULlLWEZEZEZEZEZEZEHFbFmFnFdFeFfFnFoFbEHMkMmMlMoMnCNDVFhFkDVDVEwFuaMaMaMaMaMaMaMaMaMaMaMETEVEVEVEWaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM +dCmuBvBvBvBvBvBvmuaMaMaMaMaMKiKjKjKsaMaMaMaMaMaMaMaMaMaMaMaMaMKiKjKjKsaMaMaMaMmtaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMCNJUKuJUJUJUDsDaCPCPCPNyCPCPCPCPCPDGDHDHDHDHDHDHCNCNCNCNKvKwKwCNCNCNCNHNFGFGFGFGFGFHmhACNNluzSzTKxzSzTluNNACmgaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM +dCmumumumumumumumumuaMaMaMaMKiKzKyKsaMaMaMaMaMaMaMaMaMaMaMaMaMKiKzKyKsaMaMaMaMmtaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMCNJUJUKAJUKBDsDiDNDODlCPDmDPDQDlCPDGDRDSDSDSDSDSCNDTDTDTNDDVDVKCDXDXCNDyDyDyDyCNaMaMltNENFltNHNIEaKDNJltNLNGltaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM +dCmumumumumumumumuaMaMaMaMaMKiKzKyKsaMaMaMaMaMaMaMaMaMaMaMaMaMKiKzKyKsaMaMaMaMmtaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMCNKKJUJUKLJUDsDiEeEfDlCPDmEgEhDlCPDGDSDSDSDSDSDSCNEiEjEjElDVDVDVDXDXCNCNCNCNCNCNaMaMltKNKMltKONVEaEaKPltKQKRltaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM +dCmumumumumumumumuaMaMaMaMaMKSKjKjKTaMaMaMKSaMaMaMaMaMKTaMaMaMKSKjKjKTaMaMaMaMmtaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMCNKUJUJUJUJUEoDaCPCPCPCPCPCPCPCPCPDGDSDSKVEqKWKXCNEtDVDVDVEwExDVDVEyCNaMaMaMaMaMaMaMmhEBEBltKYEaNREbKZltEBEBmgaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM +dCmumumumumuaMaMaMaMaMaMaMaMLamjAeLaaMaMaMLaDLDMDMDMDULaaMaMaMLaFYmlLaaMaMaMaMmtaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMCNJULiLjKaLlLkEFEGEGEGEHEHEHEIEJLmELEMEHEHEHCNCNCNLnDVDVEwEPEQExkjESCNaMaMaMaMaMaMaMmdEVEVmgDYEaEaEaNsmhEVEVmeaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM +dCmumumumumuaMaMaMaMaMaMaMaMLaLpLoLaaMaMKSLaLaLsLrLtmfLaKTaMaMLaLwLyLaaMaMaMaMmtaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMCNJUJUJULlLWEZEZEZEZEZEHLXFbFcFdFeFfFgFbLXEHCNCNCNCNCNCNLYFiNqFkkjESCNaMaMaMaMaMaMaMaMaMaMmdluEUEUEUlumeaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM +dCmumumumumuaMaMaMaMaMaMaMaMLamnMbLaaMaMLaLaMdMfMeMfMgLaLaaMaMLaMhmmLaaMaMaMaMmtaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMCNMjJULlLWEZEZEZEZEZEZEHFbFmFnFdFeFfFnFoFbEHMkMmMlMoMnCNDVFhFkDVDVEwFuaMaMaMaMaMaMaMaMaMaMaMmdEVEVEVmeaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM dCmumumumumuaMaMaMaMaMaMaMaMLaLbLaLaLaLaLaMrMqMqMqMqMqMsLaLaLaLaLaLdLaaMaMaMaMmtaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMCNJULlLWEZEZEZEZEZEZEZEHFvFbFvFdFeFfFvFbFvEHFwDVDVDVDVMuDVDVDVDVDVFyFzaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM -dCmumumumumuaMaMaMaMaMaMaMaMLalGMvMyMxMzLaMBMqMqMqMqMqMBLaMDMClvMElHLaaMaMaMaMmtaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMCNLlLWEZEZEZEZEZEZEZEZEHFAFbFbFdFeFfFbFbFBEHFCFDFEFFMGCNDVDVDVDVDVMHFIaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM +dCmumumumumuaMaMaMaMaMaMaMaMLamoMvMyMxMzLaMBMqMqMqMqMqMBLaMDMCmpMEmqLaaMaMaMaMmtaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMCNLlLWEZEZEZEZEZEZEZEZEHFAFbFbFdFeFfFbFbFBEHFCFDFEFFMGCNDVDVDVDVDVMHFIaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM dCmumuaMaMaMaMaMaMaMaMaMaMaMLaMwMIMIMIMJLaLfLeLgMMLfLeLgLaMOMIMIMSMwLaaMaMaMaMmtaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMAHCNCNCNCNCNCNCNCNCNCNCNEHFJFKFKFdFeFfFLFLFMEHMTFOFPFQMUCNFSFTFUMWMVMXCNaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM dCmumuaMaMaMaMaMaMaMaMaMaMaMMpMwMIMIMIMIMMMqMqMqMqMqMqMqMMMIMIMZMIMwMpaMaMaMaMmtaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMEHFeFeFeFeFeFeFeFeFeFeFeEHEHNbEHEHFeEHEHNbEHEHEHEHEHEHEHCNCNCNCNCNCNCNCNaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM dCmumumuaMaMaMaMaMaMaMaMaMaMMtNnMINoMIMILaNpMqMqMqMqMqNrLaMINuMINvMwMtaMaMaMaMmtaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMEHFeEHEHEHEHNwEHEHEHFeFeFeFeFeFeEHFeEHFeFeFeFeFeFeFeFeEHaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM dCmumumuaMaMaMaMaMaMaMaMaMaMMKNnMIMILaNzLaLaLaNBNANCLaLaLaNzLaNMNKNOMKaMaMaMaMmtaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMEHFeEHGaGbGbGbGbGcEHEHEHEHEHEHEHEHNPEHEHEHEHEHEHEHEHFeEHaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM -dCmumumuaMaMaMaMaMaMaMaMaMKSLalINQNQLaNUNTNUMpNBNWNCMpNYNXNZLaObOalJLaKTaMaMaMmtaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMEHFeEHGaGbGbGbGbGcEHGeOdOeOdGhGiGiGiGiGiGhGiGhGiGjEHFeEHaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM +dCmumumuaMaMaMaMaMaMaMaMaMKSLamcNQNQLaNUNTNUMpNBNWNCMpNYNXNZLaObOambLaKTaMaMaMmtaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMEHFeEHGaGbGbGbGbGcEHGemaOemaGhGiGiGiGiGiGhGiGhGiGjEHFeEHaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM dCmumumuaMaMaMaMmumuaMaMaMOfLaOgOgLaLaNUNUNUMtNBNANCMtNZNZOhLaLaOgOgLaOiaMaMaMmtaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMEHFeEHGkGbGbGbGbGlEHGiGmGmGmGmGmGiGiGiGmGmGmGmGnGoEHFeEHEHEHEHEHEHEHaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM dCmumumuaMaMaMaMmumuaMaMaMaMOfOjOjOiLaOlOkNUMKOmMqOmMKNZNZOnLaOfOjOjOiaMaMaMaMmtaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMEHFeEHGkOpOoOoGbGbGrGiGiGsGtGsGiGiGiGiGiGsGtGsGuGiEHFeFeFeFeFeFeFeEHaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM dCmumumuaMaMaMaMmumuaMaMaMaMaMaMaMaMLaNUNUNULaLaMMLaLaOqNZOrLaaMaMaMaMaMaMaMaMmtaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMEHEHFeEHEHEHEHEHEHEHEHGiGmGmGmGmGmGiGiGiGmGmGmGmGvGiEHEHEHEHEHEHEHFeEHEHEHaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM @@ -2248,7 +2245,7 @@ dCmumumuaMaMaMaMaMaMaMaMmumumumuaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMmt dCmumumuaMaMaMaMaMaMaMmumumumuaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMmtaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMEHFJHiFbEHGzGzGzGzGzEHGxGxGxGxGxGxOIHlOIGxGxGxGxGyGxEHGEGEGEGEGEEHFbHnFMEHaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMGUGYGYGYGYGYGYGYGYGYGYGYGYGYHdGYGYGYGYGYGU dCmuaMaMaMaMaMaMaMaMaMaMmumumuaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMmtaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMEHEHEHFbEHEHEHEHEHEHEHHoHpHpHpHpHpHqHrHoHpHpHpHpHsHoEHEHEHEHEHEHEHFbEHEHEHaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMGUGYGYGYGYHtHhGYGYGYGYGYGYGYGYGYGYGYGYGYGU dCaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMmtaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMEHFbFbFeFeFeFeFeEHHoHoHuHoHuHoHoHvHwHoHuHoHuHxHoEHFeFeFeFeFeFbFbEHaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMGUGYGYGYGYGYOJOJGYGYGYGYGYGYGYGYGYGYGYGYGU -mtmtmtmtmtmtmtmtmtmtmtmtmtmtmtmtmtmtmtmtmtmtmtmtmtmtmtmtmtmtmtmtmtmtmtmtmtmtmtmtaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMEHEHEHEHEHEHEHFeOKHoHoHoHyHyHyHoHoHoHyHyHyHyHyHoOKFeEHEHEHEHEHEHEHaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMGUGYGYGYGYOJOLOMOJGYGYGYGYGYGYGYGYGYGYGYGU +mtmtmtmtmtmtmtmtmtmtmtmtmtmtmtmtmtmtmtmtmtmtmtmtmtmtmtmtmtmtmtmtmtmtmtmtmtmtmtmtaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMEHEHEHEHEHEHEHFeOKHoHoHoHyHyHyHoHoHoHyHyHyHyHyHoOKFeEHEHEHEHEHEHEHaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMGUGYGYGYGYOJpsOMOJGYGYGYGYGYGYGYGYGYGYGYGU aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMEHEHEHONONONOOHDHEHFHoHGOPOROQOTOSOUEHEHEHaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMGUGYGYGYGYOJOVOWOJGYGYHtGYHPGYGYGYGYGYGYGU aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMEHEHEHEHEHEHEHEHEHEHEHEHEHEHEHEHEHaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMGUGYGYGYGYGYOJOJGYGYGYGYGYGYGYGYGYGYGYGYGU aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMGUGYGYHhGYGYGYGYGYGYGYGYGYGYGYGYGYHdGYGYGU diff --git a/maps/exodus-3.dmm b/maps/exodus-3.dmm index 8146cad1c53..037229b8fb7 100644 --- a/maps/exodus-3.dmm +++ b/maps/exodus-3.dmm @@ -1,25 +1,24 @@ "aa" = (/turf/space,/area/space) -"ab" = (/turf/simulated/shuttle/wall{icon_state = "swall_s6"; dir = 2},/area/derelict/ship) -"ac" = (/turf/simulated/shuttle/wall{icon_state = "swall12"; dir = 2},/area/derelict/ship) -"ad" = (/turf/simulated/shuttle/wall{icon_state = "swall14"; dir = 2},/area/derelict/ship) -"ae" = (/turf/simulated/shuttle/wall{icon_state = "swall_s10"; dir = 2},/area/derelict/ship) -"af" = (/turf/simulated/shuttle/floor{icon_state = "floor3"},/turf/simulated/shuttle/wall{icon_state = "swall_f9"; dir = 2},/area/derelict/ship) +"ab" = (/turf/simulated/shuttle/wall{icon_state = "swall_s"; dir = 4},/area/derelict/ship) +"ac" = (/turf/simulated/shuttle/wall{icon_state = "swall_t"; dir = 4},/area/derelict/ship) +"ad" = (/turf/simulated/shuttle/plating,/turf/simulated/shuttle/wall{icon_state = "swall_c"; dir = 8},/area/derelict/ship) +"ae" = (/turf/simulated/shuttle/wall{icon_state = "swall_s"; dir = 2},/area/derelict/ship) +"af" = (/turf/simulated/shuttle/floor{icon_state = "floor3"},/turf/simulated/shuttle/wall{icon_state = "swall_c"; dir = 1},/area/derelict/ship) "ag" = (/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/derelict/ship) "ah" = (/obj/machinery/sleeper,/obj/machinery/light{dir = 1},/obj/effect/decal/remains/human,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/derelict/ship) -"ai" = (/obj/machinery/sleep_console,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/derelict/ship) -"aj" = (/turf/simulated/shuttle/floor{icon_state = "floor3"},/turf/simulated/shuttle/wall{icon_state = "swall_f5"; dir = 2},/area/derelict/ship) -"ak" = (/turf/simulated/shuttle/wall{icon_state = "swall13"; dir = 2},/area/derelict/ship) -"al" = (/obj/structure/shuttle/engine/propulsion{icon_state = "burst_r"; dir = 8},/turf/space,/area/derelict/ship) -"am" = (/turf/simulated/shuttle/wall{icon_state = "swall11"; dir = 2},/area/derelict/ship) +"aj" = (/turf/simulated/shuttle/wall{icon_state = "swall_straight"; dir = 4},/area/derelict/ship) +"ak" = (/turf/simulated/shuttle/floor{icon_state = "floor3"},/turf/simulated/shuttle/wall{icon_state = "swall_c"; dir = 8},/area/derelict/ship) +"al" = (/obj/structure/shuttle/engine/propulsion{icon_state = "propulsion"; dir = 4},/turf/space,/area/derelict/ship) +"am" = (/turf/simulated/shuttle/wall{icon_state = "swall_t"; dir = 2},/area/derelict/ship) "an" = (/obj/machinery/computer/med_data,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/derelict/ship) "ao" = (/obj/structure/table/standard,/obj/item/weapon/storage/firstaid/regular{pixel_x = 6; pixel_y = -5},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/derelict/ship) "ap" = (/turf/simulated/shuttle/wall{icon_state = "swall15"; dir = 2},/area/derelict/ship) -"aq" = (/turf/simulated/shuttle/plating,/turf/simulated/shuttle/wall{icon_state = "swall_f9"; dir = 2},/area/derelict/ship) +"aq" = (/turf/simulated/shuttle/wall{icon_state = "swall_t"; dir = 1},/area/derelict/ship) "ar" = (/obj/structure/shuttle/engine/heater{icon_state = "heater"; dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating/airless,/area/derelict/ship) -"as" = (/obj/structure/shuttle/engine/propulsion{icon_state = "propulsion"; dir = 8},/turf/space,/area/derelict/ship) -"at" = (/turf/simulated/shuttle/floor{icon_state = "floor3"},/turf/simulated/shuttle/wall{icon_state = "swall_f10"; dir = 2},/area/derelict/ship) +"as" = (/obj/structure/shuttle/engine/propulsion{icon_state = "burst_r"; dir = 4},/turf/space,/area/derelict/ship) +"at" = (/turf/simulated/shuttle/wall{icon_state = "swall_straight"; dir = 1},/area/derelict/ship) "au" = (/obj/item/weapon/scalpel,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/derelict/ship) -"av" = (/turf/simulated/shuttle/wall{icon_state = "swall7"; dir = 2},/area/derelict/ship) +"av" = (/turf/simulated/shuttle/wall{icon_state = "swall_t"; dir = 8},/area/derelict/ship) "aw" = (/turf/simulated/shuttle/plating,/area/derelict/ship) "ax" = (/obj/structure/computerframe{anchored = 1},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/derelict/ship) "ay" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/turf/simulated/shuttle/plating,/area/derelict/ship) @@ -28,15 +27,15 @@ "aB" = (/obj/machinery/door/airlock/glass{name = "Hibernation Pods"},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/derelict/ship) "aC" = (/obj/structure/bed/chair{dir = 1},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/derelict/ship) "aD" = (/obj/structure/table/standard,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/derelict/ship) -"aE" = (/turf/simulated/shuttle/wall{icon_state = "swall3"; dir = 2},/area/derelict/ship) +"aE" = (/turf/simulated/shuttle/plating,/turf/simulated/shuttle/wall{icon_state = "swall_c"; dir = 4},/area/derelict/ship) "aF" = (/obj/item/device/multitool,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/derelict/ship) "aG" = (/obj/item/weapon/cell{charge = 100; maxcharge = 15000},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/derelict/ship) "aH" = (/obj/machinery/door/unpowered/shuttle,/turf/simulated/floor/plating,/area/derelict/ship) -"aI" = (/turf/simulated/shuttle/plating,/turf/simulated/shuttle/wall{icon_state = "swall_f6"; dir = 2},/area/derelict/ship) -"aJ" = (/obj/structure/shuttle/engine/propulsion{icon_state = "burst_l"; dir = 8},/turf/space,/area/derelict/ship) +"aI" = (/turf/simulated/shuttle/floor{icon_state = "floor3"},/turf/simulated/shuttle/wall{icon_state = "swall_c"; dir = 2},/area/derelict/ship) +"aJ" = (/obj/structure/shuttle/engine/propulsion{tag = "icon-burst_l (EAST)"; icon_state = "burst_l"; dir = 4},/turf/space,/area/derelict/ship) "aK" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/turf/simulated/shuttle/plating,/area/derelict/ship) "aL" = (/obj/structure/table/standard,/obj/machinery/light{dir = 4},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/derelict/ship) -"aM" = (/turf/simulated/shuttle/floor{icon_state = "floor3"},/turf/simulated/shuttle/wall{icon_state = "swall_f6"; dir = 2},/area/derelict/ship) +"aM" = (/turf/simulated/shuttle/floor{icon_state = "floor3"},/turf/simulated/shuttle/wall{icon_state = "swall_c"; dir = 4},/area/derelict/ship) "aN" = (/obj/machinery/door/airlock/glass,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/derelict/ship) "aO" = (/obj/machinery/light_switch{pixel_x = 27},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/derelict/ship) "aP" = (/obj/machinery/portable_atmospherics/powered/scrubber,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/derelict/ship) @@ -51,33 +50,33 @@ "aY" = (/obj/structure/table/standard,/obj/item/weapon/tank/oxygen,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/derelict/ship) "aZ" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/turf/simulated/shuttle/plating,/area/derelict/ship) "ba" = (/obj/machinery/light{dir = 1},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/derelict/ship) -"bb" = (/turf/simulated/shuttle/wall{icon_state = "swall_s6"; dir = 2},/area/space) -"bc" = (/turf/simulated/shuttle/wall{icon_state = "swall14"; dir = 2},/area/space) -"bd" = (/turf/simulated/shuttle/wall{icon_state = "swall12"; dir = 2},/area/space) -"be" = (/turf/simulated/shuttle/wall{icon_state = "swall_s10"; dir = 2},/area/space) +"bb" = (/turf/simulated/shuttle/wall{icon_state = "swall_straight"; dir = 4},/area/space) +"bc" = (/turf/simulated/shuttle/wall{icon_state = "swall_s"; dir = 2},/area/space) +"bd" = (/turf/simulated/shuttle/wall{icon_state = "swall_t"; dir = 1},/area/space) +"be" = (/turf/simulated/shuttle/wall{icon_state = "swall_s"; dir = 4},/area/space) "bf" = (/obj/structure/table/standard,/obj/item/device/analyzer,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/derelict/ship) "bg" = (/obj/structure/bed/chair{dir = 8},/obj/effect/decal/remains/human,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/derelict/ship) "bh" = (/obj/machinery/door/airlock/glass{name = "Living Module"},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/derelict/ship) "bi" = (/obj/machinery/door/unpowered/shuttle,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/derelict/ship) -"bj" = (/turf/simulated/shuttle/wall{icon_state = "swall7"; dir = 2},/area/space) -"bk" = (/turf/simulated/shuttle/floor{icon_state = "floor3"},/turf/simulated/shuttle/wall{icon_state = "swall_f9"; dir = 2},/area/space) +"bj" = (/turf/simulated/shuttle/floor{icon_state = "floor3"},/turf/simulated/shuttle/wall{icon_state = "swall_c"; dir = 1},/area/space) +"bk" = (/turf/simulated/shuttle/wall{icon_state = "swall_t"; dir = 4},/area/space) "bl" = (/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/space) -"bm" = (/turf/simulated/shuttle/floor{icon_state = "floor3"},/turf/simulated/shuttle/wall{icon_state = "swall_f5"; dir = 2},/area/space) -"bn" = (/turf/simulated/shuttle/wall{icon_state = "swall11"; dir = 2},/area/space) +"bm" = (/turf/simulated/shuttle/floor{icon_state = "floor3"},/turf/simulated/shuttle/wall{icon_state = "swall_c"; dir = 8},/area/space) +"bn" = (/turf/simulated/shuttle/wall{icon_state = "swall_t"; dir = 8},/area/space) "bo" = (/obj/machinery/door/window/northright,/obj/effect/decal/remains/human,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/derelict/ship) "bp" = (/obj/structure/bed,/obj/item/weapon/bedsheet,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/derelict/ship) "bq" = (/obj/machinery/portable_atmospherics/canister/oxygen,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/derelict/ship) "br" = (/obj/machinery/door/unpowered/shuttle,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/space) -"bs" = (/turf/simulated/shuttle/wall{icon_state = "swall_s9"; dir = 2},/area/derelict/ship) -"bt" = (/turf/simulated/shuttle/wall{icon_state = "swall_s5"; dir = 2},/area/derelict/ship) -"bu" = (/turf/simulated/shuttle/floor{icon_state = "floor3"},/turf/simulated/shuttle/wall{icon_state = "swall_f10"; dir = 2},/area/space) +"bs" = (/turf/simulated/shuttle/wall{icon_state = "swall_s"; dir = 1},/area/derelict/ship) +"bt" = (/turf/simulated/shuttle/wall{icon_state = "swall_s"; dir = 8},/area/derelict/ship) +"bu" = (/turf/simulated/shuttle/floor{icon_state = "floor3"},/turf/simulated/shuttle/wall{icon_state = "swall_c"; dir = 2},/area/space) "bv" = (/obj/structure/table,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/space) -"bw" = (/turf/simulated/shuttle/floor{icon_state = "floor3"},/turf/simulated/shuttle/wall{icon_state = "swall_f6"; dir = 2},/area/space) +"bw" = (/turf/simulated/shuttle/floor{icon_state = "floor3"},/turf/simulated/shuttle/wall{icon_state = "swall_c"; dir = 4},/area/space) "bx" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/turf/simulated/shuttle/plating,/area/derelict/ship) "by" = (/obj/machinery/light_switch{pixel_x = 27},/obj/machinery/light{dir = 4},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/derelict/ship) -"bz" = (/turf/simulated/shuttle/wall{icon_state = "swall_s5"; dir = 2},/area/space) -"bA" = (/turf/simulated/shuttle/wall{icon_state = "swall13"; dir = 2},/area/space) -"bB" = (/turf/simulated/shuttle/wall{icon_state = "swall_s9"; dir = 2},/area/space) +"bz" = (/turf/simulated/shuttle/wall{icon_state = "swall_t"; dir = 2},/area/space) +"bA" = (/turf/simulated/shuttle/wall{icon_state = "swall_s"; dir = 1},/area/space) +"bB" = (/turf/simulated/shuttle/wall{icon_state = "swall_s"; dir = 8},/area/space) "bC" = (/obj/item/weapon/material/shard{icon_state = "medium"},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/derelict/ship) "bD" = (/obj/item/weapon/material/shard,/obj/structure/bed/chair,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/derelict/ship) "bE" = (/obj/structure/bed/chair,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/derelict/ship) @@ -89,14 +88,14 @@ "bK" = (/obj/machinery/power/apc{dir = 8; name = "west bump-derelict"; operating = 0; pixel_x = -24},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/derelict/ship) "bL" = (/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/derelict/ship) "bM" = (/obj/machinery/light/small,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/derelict/ship) -"bN" = (/turf/simulated/shuttle/plating,/turf/simulated/shuttle/wall{icon_state = "swall_f5"; dir = 2},/area/derelict/ship) +"bN" = (/turf/simulated/shuttle/plating,/turf/simulated/shuttle/wall{icon_state = "swall_c"; dir = 1},/area/derelict/ship) "bO" = (/obj/item/trash/cheesie,/turf/space,/area/space) "bP" = (/obj/machinery/door/blast/regular{id = "oldship_gun"; name = "Pod Bay Door"},/turf/simulated/shuttle/plating,/area/derelict/ship) "bQ" = (/obj/machinery/mass_driver{dir = 8; icon_state = "mass_driver"; id = "oldship_gun"},/turf/simulated/shuttle/plating,/area/derelict/ship) "bR" = (/obj/machinery/door/airlock/glass,/turf/simulated/shuttle/plating,/area/derelict/ship) "bS" = (/obj/machinery/door/airlock/glass{name = "Pod Bay"},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/derelict/ship) "bT" = (/obj/effect/decal/remains/human,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/derelict/ship) -"bU" = (/turf/simulated/shuttle/plating,/turf/simulated/shuttle/wall{icon_state = "swall_f10"; dir = 2},/area/derelict/ship) +"bU" = (/turf/simulated/shuttle/plating,/turf/simulated/shuttle/wall{icon_state = "swall_c"; dir = 2},/area/derelict/ship) "bV" = (/obj/machinery/computer/pod{id = "oldship_gun"},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/derelict/ship) "bW" = (/obj/structure/table/standard,/obj/item/weapon/screwdriver,/obj/machinery/light,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/derelict/ship) "bX" = (/obj/structure/table/standard,/obj/item/device/radio/off,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/derelict/ship) @@ -458,27 +457,27 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabacacacacadaeaaaaaaaaaaaaaaabaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabacafagagahaiajakadaeaaaaaaaaabakalaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabamanagagagagagagaoajapaeaaaaabaqarasaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabapakatagagagagauagagagavapaeabaqawarasaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabapafaxajacadayazaAacacaBakakakamawawarasaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaavafagaCagaDaEaFagaGagagagagagagaHawaIacaJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaEagagagagaDaEagagagagagagagagagavacapaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaKagagagagaLaEagagaMaNacacatagaOaEaPajakadaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaQagagagagagaEagagaEagaRaSaEagagaEaTagagajapaeaaabadacacacacacacacadaeaaaaaUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaQaVaDagagagaWagagaEaXaYaOaEagagaZagagagagajapacapafagagagbaagagagajamaUaaaabbbcbdbdbdbdbdbdbdbcbeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaQbfbgagagagaNagagaEagagagaEagagbhagagagagagbiagbiagagagagagagagagagbiaUaaaUbjbkblblblblblblblbmbnaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaQaDaDagagagaWagagaEbobpagaEagagaZagagagagaMapacapatagagagagagagbqaMamaUaUaUbrblblblblblblblblblbraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaQagagagagagaEagagajacacaNafagagaEagagagaMapbsaabtakacacacacacacacakbsaaaaaUbjbublblblblbvblblbwbnaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabxagagagagbyavatagagagagagagagagaEagagadakbsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaUaabzbAbdbdbdbdbdbdbdbAbBaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaEbCbDbEagaMapakacacadatagagagagavacapbsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaavatbFbGaMapafbHbIbJajambKbLaGbMaHawbNacalaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabtakadacapafagagagagagaEagagaMadamawawarasaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabOaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabPbQbRagagagagagagbSbTaMapbsbtbUawarasaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabtacambVagagagagagavadapbsaaaabtbUarasaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabtadatagbWbXaMapakbsaaaaaaaabtadaJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabtakacacacakbsaaaaaaaaaaaaaabtbsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabajajajajaqaeaaaaaaaaaaaaaaabaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabajakagagahagafamaqaeaaaaaaaaabamasaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabacanagagagagagagaoafapaeaaaaabadaralaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabapamaIagagagagauagagagavapaeabadawaralaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabapakaxafajaqayazaAajajaBamamamacawawaralaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaavakagaCagaDataFagaGagagagagagagaHawaEajaJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaatagagagagaDatagagagagagagagagagavajapaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaKagagagagaLatagagaMaNajajaIagaOataPafamaqaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaQagagagagagatagagatagaRaSatagagataTagagafapaeaaabaqajajajajajajajaqaeaaaaaUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaQaVaDagagagaWagagataXaYaOatagagaZagagagagafapajapakagagagbaagagagafacaUaaaabebdbbbbbbbbbbbbbbbdbcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaQbfbgagagagaNagagatagagagatagagbhagagagagagbiagbiagagagagagagagagagbiaUaaaUbnbmblblblblblblblbjbkaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaQaDaDagagagaWagagatbobpagatagagaZagagagagaMapajapaIagagagagagagbqaMacaUaUaUbrblblblblblblblblblbraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaQagagagagagatagagafajajaNakagagatagagagaMapbtaabsamajajajajajajajambtaaaaaUbnbublblblblbvblblbwbkaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabxagagagagbyavaIagagagagagagagagatagagaqambtaaaaaaaaaaaaaaaaaaaaaaaaaaaaaUaabAbzbbbbbbbbbbbbbbbzbBaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaatbCbDbEagaMapamajajaqaIagagagagavajapbtaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaavaIbFbGaMapakbHbIbJafacbKbLaGbMaHawbNajasaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabsamaqajapakagagagagagatagagaMaqacawawaralaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabOaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabPbQbRagagagagagagbSbTaMapbtbsbUawaralaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabsajacbVagagagagagavaqapbtaaaabsbUaralaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabsaqaIagbWbXaMapambtaaaaaaaabsaqaJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabsamajajajambtaaaaaaaaaaaaaabsbtaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa diff --git a/maps/exodus-5.dmm b/maps/exodus-5.dmm index b83337aa4cc..b6c6aaca336 100644 --- a/maps/exodus-5.dmm +++ b/maps/exodus-5.dmm @@ -89,17 +89,17 @@ "bK" = (/obj/structure/table/standard,/obj/item/weapon/storage/box/beakers{pixel_x = 2; pixel_y = 2},/turf/simulated/floor{icon_state = "white"},/area/outpost/research/chemistry) "bL" = (/obj/item/weapon/stool/padded,/turf/simulated/floor{icon_state = "white"},/area/outpost/research/chemistry) "bM" = (/turf/simulated/floor{icon_state = "white"},/area/outpost/research/chemistry) -"bN" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock{id_tag = "rdorm2"; name = "Dorm 2"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor{dir = 2; icon_state = "carpet"},/area/outpost/research/hallway) +"bN" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/table/glass,/turf/simulated/floor{icon_state = "white"},/area/outpost/research/chemistry) "bO" = (/obj/structure/disposaloutlet{dir = 8},/obj/structure/disposalpipe/trunk{dir = 2},/turf/simulated/wall/r_wall,/area/outpost/research/chemistry) "bP" = (/turf/simulated/floor{icon_state = "bot"; dir = 1},/area/outpost/research/chemistry) "bQ" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor{dir = 8; icon_state = "warning"},/area/outpost/research/chemistry) "bR" = (/obj/machinery/shower{dir = 4; icon_state = "shower"; pixel_x = 5},/obj/structure/curtain/open/shower,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 5},/turf/simulated/floor{icon_state = "showroomfloor"},/area/outpost/research/hallway) -"bS" = (/obj/structure/lattice,/turf/unsimulated/mask,/area/mine/unexplored) +"bS" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock{id_tag = "rdorm2"; name = "Dorm 2"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor{dir = 2; icon_state = "carpet"},/area/outpost/research/hallway) "bT" = (/obj/machinery/button/remote/airlock{id = "rbath"; name = "Door Bolt Control"; pixel_x = 0; pixel_y = -25; specialfunctions = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 5},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor{icon_state = "showroomfloor"},/area/outpost/research/hallway) "bU" = (/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor{icon_state = "cafeteria"; dir = 2},/area/outpost/research/hallway) "bV" = (/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 4},/obj/structure/cable/blue{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor{icon_state = "cafeteria"; dir = 2},/area/outpost/research/hallway) "bW" = (/obj/structure/cable/blue{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor{icon_state = "cafeteria"; dir = 2},/area/outpost/research/kitchen) -"bX" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/table/glass,/turf/simulated/floor{icon_state = "white"},/area/outpost/research/chemistry) +"bX" = (/obj/structure/lattice,/turf/unsimulated/mask,/area/mine/unexplored) "bY" = (/obj/structure/table/standard,/obj/effect/landmark{name = "bluespacerift"},/turf/simulated/floor{icon_state = "cafeteria"; dir = 2},/area/outpost/research/kitchen) "bZ" = (/obj/structure/bed/chair{dir = 4},/turf/simulated/floor{icon_state = "cafeteria"; dir = 2},/area/outpost/research/kitchen) "ca" = (/obj/structure/bed/chair{dir = 8},/obj/structure/extinguisher_cabinet{pixel_x = 25; pixel_y = 0},/turf/simulated/floor{icon_state = "cafeteria"; dir = 2},/area/outpost/research/kitchen) @@ -157,7 +157,7 @@ "da" = (/obj/machinery/firealarm{dir = 8; pixel_x = -24},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor{icon_state = "cafeteria"; dir = 2},/area/outpost/research/hallway) "db" = (/turf/simulated/floor/wood,/area/outpost/research/kitchen) "dc" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/outpost/research/hallway) -"dd" = (/obj/structure/table/standard,/obj/item/weapon/reagent_containers/food/drinks/cans/beer,/obj/item/weapon/reagent_containers/food/drinks/cans/beer,/turf/simulated/floor/wood,/area/outpost/research/kitchen) +"dd" = (/obj/structure/window/reinforced/tinted{dir = 4; icon_state = "twindow"},/obj/structure/shuttle/engine/propulsion{icon_state = "propulsion"; dir = 8},/turf/simulated/floor/plating/airless,/area/shuttle/alien/mine) "de" = (/obj/structure/table/standard,/turf/simulated/floor/wood,/area/outpost/research/kitchen) "df" = (/obj/structure/disposalpipe/trunk{dir = 4},/obj/machinery/disposal,/obj/structure/sign/deathsposal{pixel_x = 32},/turf/simulated/floor/wood,/area/outpost/research/kitchen) "dg" = (/obj/structure/table/standard,/obj/item/weapon/storage/box/donkpockets,/turf/simulated/floor/wood,/area/outpost/research/kitchen) @@ -182,7 +182,7 @@ "dz" = (/obj/structure/disposalpipe/segment,/obj/machinery/light/small{dir = 8},/obj/structure/extinguisher_cabinet{pixel_x = -25; pixel_y = 0},/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor{dir = 4; icon_state = "whitepurple"},/area/outpost/research/lab) "dA" = (/obj/structure/table/standard,/obj/item/weapon/reagent_containers/dropper{pixel_y = -4},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor{icon_state = "white"},/area/outpost/research/lab) "dB" = (/obj/item/weapon/stool/padded,/turf/simulated/floor{icon_state = "white"},/area/outpost/research/lab) -"dC" = (/obj/machinery/power/emitter{anchored = 1; dir = 4; state = 2},/turf/simulated/floor{icon_state = "delivery"},/area/outpost/research/lab) +"dC" = (/obj/structure/table/standard,/obj/item/weapon/reagent_containers/food/drinks/bottle/small/beer,/obj/item/weapon/reagent_containers/food/drinks/bottle/small/beer,/turf/simulated/floor/wood,/area/outpost/research/kitchen) "dD" = (/turf/simulated/floor{icon_state = "white"},/area/outpost/research/lab) "dE" = (/obj/machinery/conveyor{dir = 1; id = "anolaser"},/obj/machinery/door/window/westleft{dir = 2; layer = 3.1; name = "laser testing"; req_access = list(65)},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor{dir = 10; icon_state = "warning"},/area/outpost/research/lab) "dF" = (/turf/simulated/floor{dir = 4; icon_state = "whiteyellow"},/area/outpost/research/hallway) @@ -196,7 +196,7 @@ "dN" = (/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor{icon_state = "white"},/area/outpost/research/hallway) "dO" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 1},/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor{icon_state = "white"},/area/outpost/research/hallway) "dP" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 1},/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable/blue{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor{icon_state = "white"},/area/outpost/research/hallway) -"dQ" = (/obj/structure/shuttle/engine/propulsion{icon_state = "propulsion"; dir = 4},/obj/structure/window/reinforced/tinted{dir = 4; icon_state = "twindow"},/turf/simulated/floor/plating/airless,/area/shuttle/alien/mine) +"dQ" = (/obj/machinery/power/emitter{anchored = 1; dir = 4; state = 2},/obj/structure/cable/blue{d2 = 2; icon_state = "0-2"},/turf/simulated/floor{icon_state = "delivery"},/area/outpost/research/lab) "dR" = (/obj/effect/alien/weeds{icon_state = "weeds2"},/turf/simulated/shuttle/floor{icon_state = "floor2"},/area/shuttle/alien/mine) "dS" = (/obj/effect/alien/weeds{icon_state = "weeds"},/turf/simulated/shuttle/floor{icon_state = "floor2"},/area/shuttle/alien/mine) "dT" = (/obj/machinery/door/airlock/hatch,/turf/simulated/shuttle/floor{icon_state = "floor2"},/area/shuttle/alien/mine) @@ -243,12 +243,12 @@ "eI" = (/obj/structure/table/standard,/obj/machinery/cell_charger,/obj/item/weapon/screwdriver{pixel_y = 15},/obj/item/weapon/melee/baton/loaded,/turf/simulated/floor{icon_state = "white"},/area/outpost/research/lab) "eJ" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 1},/obj/machinery/camera/network/research_outpost{c_tag = "Research Outpost Anomalous Materials Lab"; dir = 8},/turf/simulated/floor{icon_state = "white"},/area/outpost/research/lab) "eK" = (/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/turf/simulated/floor{dir = 4; icon_state = "whiteyellow"},/area/outpost/research/hallway) -"eL" = (/turf/unsimulated/mask,/area/space) +"eL" = (/obj/structure/disposaloutlet{dir = 2},/obj/structure/disposalpipe/trunk{dir = 8},/turf/simulated/floor/plating/airless/asteroid,/area/mine/explored) "eM" = (/obj/structure/sign/science{desc = "A warning sign which reads 'ANOMALOUS MATERIALS'"; name = "\improper ANOMALOUS MATERIALS"; pixel_x = -32},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor{dir = 1; icon_state = "whitepurplecorner"},/area/outpost/research/hallway) "eN" = (/turf/simulated/wall,/area/outpost/research/disposal) "eO" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/turf/simulated/wall/r_wall,/area/outpost/research/disposal) -"eP" = (/obj/structure/disposaloutlet{dir = 2},/obj/structure/disposalpipe/trunk{dir = 8},/turf/simulated/floor/plating/airless/asteroid,/area/outpost/research/disposal) -"eQ" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/plating/airless/asteroid,/area/outpost/research/disposal) +"eP" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable/blue{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor{dir = 1; icon_state = "whitepurple"},/area/outpost/research/lab) +"eQ" = (/obj/machinery/atmospherics/unary/vent_scrubber/on,/turf/simulated/floor/plating,/area/outpost/research/disposal) "eR" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/turf/simulated/floor/plating/airless,/area/outpost/abandoned) "eS" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating/airless,/area/outpost/abandoned) "eT" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating/airless,/area/outpost/abandoned) @@ -268,7 +268,7 @@ "fh" = (/obj/machinery/light{icon_state = "tube1"; dir = 4},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor{dir = 4; icon_state = "whitebluecorner"},/area/outpost/research/hallway) "fi" = (/obj/machinery/space_heater,/turf/simulated/floor/plating,/area/outpost/research/disposal) "fj" = (/obj/machinery/mass_driver{dir = 4; id = "research"},/turf/simulated/floor/plating/airless/asteroid,/area/outpost/research/disposal) -"fk" = (/turf/simulated/floor/plating/airless/asteroid,/area/outpost/research/disposal) +"fk" = (/obj/structure/cable/blue{d2 = 4; icon_state = "0-4"},/obj/machinery/power/apc{dir = 8; name = "west bump"; pixel_x = -24},/obj/machinery/atmospherics/unary/vent_pump/on{dir = 4},/turf/simulated/floor/plating,/area/outpost/research/disposal) "fl" = (/turf/simulated/floor/plating/airless,/area/outpost/abandoned) "fm" = (/obj/item/weapon/material/shard,/obj/item/stack/rods,/turf/simulated/floor/plating/airless,/area/outpost/abandoned) "fn" = (/obj/structure/table/standard,/turf/simulated/floor/airless{icon_state = "floorscorched2"},/area/outpost/abandoned) @@ -297,7 +297,7 @@ "fK" = (/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 4},/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor{icon_state = "white"},/area/outpost/research/hallway) "fL" = (/obj/machinery/portable_atmospherics/canister/air,/turf/simulated/floor/plating,/area/outpost/research/disposal) "fM" = (/obj/machinery/conveyor_switch{id = "archgunc"},/turf/simulated/floor/plating,/area/outpost/research/disposal) -"fN" = (/turf/simulated/floor/plating,/area/outpost/research/disposal) +"fN" = (/obj/structure/cable/blue{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/button/remote/driver{id = "research"; pixel_x = -24; pixel_y = -24},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 10},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/plating,/area/outpost/research/disposal) "fO" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor{icon_state = "white"},/area/outpost/research/hallway) "fP" = (/obj/machinery/portable_atmospherics/powered/scrubber,/turf/simulated/floor/plating,/area/outpost/research/disposal) "fQ" = (/obj/item/weapon/material/shard{icon_state = "small"},/obj/item/clothing/suit/space/syndicate,/turf/simulated/floor/plating/airless,/area/outpost/abandoned) @@ -312,7 +312,7 @@ "fZ" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'KEEP CLEAR OF DOCKING AREA'."; name = "KEEP CLEAR: DOCKING AREA"; pixel_y = 0},/turf/simulated/wall,/area/outpost/research/dock) "ga" = (/obj/machinery/door/firedoor/border_only,/obj/structure/disposalpipe/segment,/obj/machinery/door/airlock/research{name = "Anomalous Materials Locker Room"; req_access = list(65)},/turf/simulated/floor{icon_state = "white"},/area/outpost/research/hallway) "gb" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/disposalpipe/segment,/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/outpost/research/disposal) -"gc" = (/turf/simulated/floor/airless/lava,/area/outpost/research/disposal) +"gc" = (/obj/machinery/door/firedoor/border_only{dir = 4; name = "Firelock"},/obj/machinery/door/airlock/maintenance{name = "Maintenance Storage"; req_one_access = list(12,65)},/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/plating,/area/outpost/research/hallway) "gd" = (/obj/item/stack/rods,/obj/structure/lattice,/turf/unsimulated/mask,/area/mine/unexplored) "ge" = (/obj/structure/sign/science,/turf/simulated/wall,/area/outpost/research/dock) "gf" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/structure/disposalpipe/segment,/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/outpost/research/disposal) @@ -329,9 +329,9 @@ "gq" = (/obj/machinery/alarm{dir = 4; pixel_x = -25; pixel_y = 0},/mob/living/carbon/human/monkey,/turf/simulated/floor{icon_state = "white"},/area/outpost/research/hallway) "gr" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 8},/turf/simulated/floor{icon_state = "white"},/area/outpost/research/hallway) "gs" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 8},/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor{icon_state = "white"},/area/outpost/research/hallway) -"gt" = (/obj/structure/cable/blue{d2 = 4; icon_state = "0-4"},/obj/machinery/power/apc{dir = 8; name = "west bump"; pixel_x = -24},/turf/simulated/floor/plating,/area/outpost/research/disposal) +"gt" = (/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor{dir = 1; icon_state = "whiteyellow"},/area/outpost/research/hallway) "gu" = (/obj/machinery/conveyor{dir = 4; id = "archgunc"},/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 9},/area/outpost/research/disposal) -"gv" = (/obj/structure/cable/blue{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/button/remote/driver{id = "research"; pixel_x = -24; pixel_y = -24},/turf/simulated/floor/plating,/area/outpost/research/disposal) +"gv" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable/blue{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/manifold/hidden/supply,/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers,/turf/simulated/floor{dir = 2; icon_state = "whitepurple"},/area/outpost/research/hallway) "gw" = (/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/turf/simulated/wall/r_wall,/area/outpost/research/disposal) "gx" = (/obj/structure/sign/deathsposal{pixel_x = 32},/obj/machinery/disposal/deliveryChute{dir = 8; name = "disposal inlet"},/obj/structure/disposalpipe/trunk{dir = 4},/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating{dir = 1; icon_state = "warnplate"; nitrogen = 0.01; oxygen = 0.01},/area/outpost/research/disposal) "gy" = (/turf/simulated/floor/plating/airless/asteroid,/area/mine/explored) @@ -375,7 +375,7 @@ "hk" = (/obj/item/weapon/material/shard,/turf/simulated/floor/plating/airless,/area/outpost/abandoned) "hl" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating/airless,/area/outpost/abandoned) "hm" = (/obj/machinery/door/firedoor/border_only,/turf/simulated/floor{icon_state = "white"},/area/outpost/research/hallway) -"hn" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/maintenance{name = "Maintenance Storage"; req_one_access = list(12,65)},/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plating,/area/outpost/research/hallway) +"hn" = (/obj/machinery/conveyor{dir = 9; id = "anotempload"},/obj/structure/plasticflaps,/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 5},/area/outpost/research/eva) "ho" = (/obj/effect/alien/weeds,/turf/simulated/floor/airless{icon_state = "floorscorched2"},/area/outpost/abandoned) "hp" = (/obj/machinery/door/airlock,/turf/simulated/floor,/area/outpost/abandoned) "hq" = (/obj/effect/alien/weeds{icon_state = "weeds2"},/turf/simulated/floor/airless{icon_state = "damaged5"},/area/outpost/abandoned) @@ -402,7 +402,7 @@ "hL" = (/obj/machinery/light{dir = 1},/obj/structure/extinguisher_cabinet{pixel_x = -8; pixel_y = 28},/turf/simulated/floor{dir = 4; icon_state = "whiteyellowcorner"},/area/outpost/research/hallway) "hM" = (/obj/machinery/alarm{dir = 2; pixel_y = 25},/turf/simulated/floor{icon_state = "white"},/area/outpost/research/hallway) "hN" = (/obj/machinery/atmospherics/unary/vent_pump/on,/turf/simulated/floor{dir = 1; icon_state = "whiteyellowcorner"},/area/outpost/research/hallway) -"hO" = (/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor{dir = 1; icon_state = "whiteyellow"},/area/outpost/research/hallway) +"hO" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 4},/obj/structure/sign/securearea{desc = "A warning sign which reads 'MOVING PARTS'."; name = "\improper MOVING PARTS"; pixel_x = -32; pixel_y = 0},/turf/simulated/floor/plating{dir = 1; icon_state = "warnplatecorner"},/area/outpost/research/power) "hP" = (/obj/machinery/atmospherics/unary/vent_pump/on,/obj/machinery/alarm{pixel_y = 22},/obj/machinery/camera/network/research_outpost{c_tag = "Research Outpost Hallway Starboard"},/turf/simulated/floor{icon_state = "white"},/area/outpost/research/hallway) "hQ" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/glass_medical{name = "Medbay"; req_one_access = list(65,5)},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor{icon_state = "white"},/area/outpost/research/medical) "hR" = (/obj/machinery/light{icon_state = "tube1"; dir = 4},/obj/structure/sign/securearea{desc = "A warning sign which reads 'RADIOACTIVE AREA'"; icon_state = "radiation"; name = "RADIOACTIVE AREA"; pixel_x = 32; pixel_y = 0},/obj/machinery/atmospherics/unary/vent_scrubber/on,/turf/simulated/floor{dir = 4; icon_state = "whitepurple"},/area/outpost/research/hallway) @@ -445,7 +445,7 @@ "iC" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable/blue{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor{dir = 2; icon_state = "whitepurple"},/area/outpost/research/hallway) "iD" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/manifold4w/hidden/supply,/obj/machinery/atmospherics/pipe/manifold4w/hidden/scrubbers,/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable/blue{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor{dir = 2; icon_state = "whitepurple"},/area/outpost/research/hallway) "iE" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/manifold/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor{dir = 2; icon_state = "whitepurple"},/area/outpost/research/hallway) -"iF" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable/blue{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor{dir = 2; icon_state = "whitepurple"},/area/outpost/research/hallway) +"iF" = (/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor{dir = 4; icon_state = "warning"},/area/outpost/research/isolation_monitoring) "iG" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/manifold4w/hidden/supply,/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 1},/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable/blue{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor{icon_state = "white"},/area/outpost/research/hallway) "iH" = (/obj/machinery/door/firedoor/border_only,/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor{dir = 5; icon_state = "whitehall"},/area/outpost/research/hallway) "iI" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/sign/biohazard{pixel_y = -32},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor{dir = 2; icon_state = "whitepurplecorner"},/area/outpost/research/hallway) @@ -475,10 +475,10 @@ "jg" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 8},/obj/structure/cable/blue{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor,/area/outpost/research/dock) "jh" = (/obj/machinery/sleeper{dir = 1},/turf/simulated/floor{dir = 9; icon_state = "warnwhite"},/area/outpost/research/medical) "ji" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'INTERNALS REQUIRED'."; name = "INTERNALS REQUIRED"; pixel_x = -32; pixel_y = 0},/turf/simulated/floor/plating/airless/asteroid,/area/mine/explored) -"jj" = (/obj/machinery/sleep_console,/obj/machinery/light/small,/turf/simulated/floor{icon_state = "warnwhite"; dir = 5},/area/outpost/research/medical) +"jj" = (/obj/machinery/light/small,/turf/simulated/floor{icon_state = "warnwhite"; dir = 5},/area/outpost/research/medical) "jk" = (/obj/machinery/door/window/westleft,/turf/simulated/floor{icon_state = "vault"; dir = 8},/area/outpost/research/eva) "jl" = (/obj/machinery/atmospherics/unary/vent_scrubber/on,/turf/simulated/floor{icon_state = "vault"; dir = 5},/area/outpost/research/eva) -"jm" = (/obj/machinery/conveyor{dir = 9; id = "anotempload"},/obj/structure/plasticflaps/mining,/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 5},/area/outpost/research/eva) +"jm" = (/obj/machinery/power/emitter{anchored = 1},/obj/structure/cable/blue{d2 = 8; icon_state = "0-8"},/turf/simulated/floor{icon_state = "delivery"},/area/outpost/research/isolation_monitoring) "jn" = (/turf/simulated/wall/r_wall,/area/outpost/research/power) "jo" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/door/airlock/research{name = "Gas filtering"; req_access = list(65)},/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plating,/area/outpost/research/power) "jp" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/outpost/research/dock) @@ -507,7 +507,7 @@ "jM" = (/obj/machinery/conveyor{dir = 2; id = "anotempload"},/obj/machinery/alarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 4},/area/outpost/research/eva) "jN" = (/obj/machinery/disposal/deliveryChute{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/structure/disposalpipe/trunk,/turf/simulated/floor/plating,/area/outpost/research/eva) "jO" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 4},/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plating,/area/outpost/research/power) -"jP" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 4},/obj/structure/sign/securearea{desc = "A warning sign which reads 'MOVING PARTS'."; name = "\improper MOVING PARTS"; pixel_x = 0; pixel_y = -32},/turf/simulated/floor/plating{dir = 1; icon_state = "warnplatecorner"},/area/outpost/research/power) +"jP" = (/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/table/standard,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/item/weapon/reagent_containers/food/drinks/bottle/small/beer,/turf/simulated/floor/carpet,/area/outpost/engineering/meeting) "jQ" = (/obj/machinery/portable_atmospherics/canister/air,/turf/simulated/floor,/area/outpost/research/isolation_monitoring) "jR" = (/obj/machinery/portable_atmospherics/canister/nitrogen,/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor,/area/outpost/research/isolation_monitoring) "jS" = (/obj/machinery/portable_atmospherics/canister/carbon_dioxide,/turf/simulated/floor,/area/outpost/research/isolation_monitoring) @@ -648,9 +648,9 @@ "mx" = (/obj/machinery/atmospherics/unary/heater{dir = 4},/turf/simulated/floor,/area/outpost/research/isolation_monitoring) "my" = (/obj/machinery/atmospherics/pipe/manifold/visible/yellow{tag = "icon-map (EAST)"; icon_state = "map"; dir = 4},/turf/simulated/floor,/area/outpost/research/isolation_monitoring) "mz" = (/obj/machinery/atmospherics/pipe/simple/visible/yellow{dir = 4},/turf/simulated/floor,/area/outpost/research/isolation_monitoring) -"mA" = (/turf/simulated/floor{dir = 4; icon_state = "warning"},/area/outpost/research/isolation_monitoring) +"mA" = (/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/table/standard,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 8},/obj/item/weapon/reagent_containers/food/drinks/bottle/small/beer,/turf/simulated/floor/carpet,/area/outpost/engineering/meeting) "mB" = (/turf/simulated/floor{dir = 8; icon_state = "warning"},/area/outpost/research/isolation_monitoring) -"mC" = (/obj/machinery/power/emitter,/turf/simulated/floor{icon_state = "delivery"},/area/outpost/research/isolation_monitoring) +"mC" = (/obj/structure/table/standard,/obj/item/weapon/reagent_containers/food/drinks/bottle/small/beer,/obj/item/weapon/reagent_containers/food/drinks/bottle/small/beer,/turf/simulated/floor{icon_state = "bar"},/area/outpost/mining_main/dorms) "mD" = (/obj/machinery/atmospherics/portables_connector{dir = 1},/turf/simulated/floor,/area/outpost/research/isolation_monitoring) "mE" = (/obj/structure/closet/hydrant{pixel_x = -32},/obj/machinery/atmospherics/unary/vent_pump/on{dir = 1},/turf/simulated/floor/plating,/area/outpost/research/emergency_storage) "mF" = (/obj/structure/table/rack,/obj/item/weapon/storage/box/gloves{pixel_x = 4; pixel_y = 5},/obj/item/weapon/storage/box/samplebags{pixel_x = 3; pixel_y = -3},/obj/item/weapon/storage/toolbox/emergency{pixel_x = 5; pixel_y = 5},/turf/simulated/floor/plating,/area/outpost/research/emergency_storage) @@ -888,7 +888,7 @@ "rd" = (/obj/machinery/door/firedoor/border_only,/obj/effect/decal/cleanable/dirt,/obj/structure/sign/securearea{desc = "A warning sign which reads 'MOVING PARTS'."; name = "\improper MOVING PARTS"; pixel_y = -32},/turf/simulated/floor{dir = 8; icon_state = "loadingarea"},/area/outpost/mining_north) "re" = (/obj/machinery/light_construct/small{dir = 4},/turf/simulated/floor/plating/airless{icon_state = "asteroidplating"},/area/mine/explored) "rf" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor{dir = 8; icon_state = "barber"},/area/outpost/engineering/meeting) -"rg" = (/obj/machinery/shower{dir = 8; icon_state = "shower"; pixel_x = -5; pixel_y = 0},/obj/machinery/light/small{dir = 1},/turf/simulated/floor{dir = 8; icon_state = "barber"},/area/outpost/engineering/meeting) +"rg" = (/obj/structure/grille,/obj/structure/lattice,/turf/simulated/floor/plating/airless/asteroid,/area/mine/explored) "rh" = (/turf/simulated/wall/r_wall,/area/outpost/engineering/storage) "ri" = (/turf/simulated/floor/airless{icon_state = "asteroidwarning"; dir = 5},/area/mine/explored) "rj" = (/turf/simulated/wall,/area/outpost/engineering/meeting) @@ -897,7 +897,7 @@ "rm" = (/obj/structure/cable/blue{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/extinguisher_cabinet{pixel_x = 0; pixel_y = 28},/turf/simulated/floor,/area/outpost/engineering/storage) "rn" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 6},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor,/area/outpost/engineering/storage) "ro" = (/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/extinguisher_cabinet{pixel_x = 0; pixel_y = 28},/turf/simulated/floor/wood,/area/outpost/engineering/meeting) -"rp" = (/obj/structure/grille,/obj/structure/lattice,/turf/simulated/floor/plating/airless/asteroid,/area/mine/explored) +"rp" = (/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor/plating/airless,/area/mine/explored) "rq" = (/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/light{dir = 1},/obj/machinery/firealarm{dir = 2; pixel_y = 24},/turf/simulated/floor/wood,/area/outpost/engineering/meeting) "rr" = (/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers,/obj/machinery/atmospherics/pipe/manifold/hidden/supply,/turf/simulated/floor/wood,/area/outpost/engineering/meeting) "rs" = (/obj/item/device/radio/intercom{broadcasting = 0; listening = 1; name = "Station Intercom (General)"; pixel_y = 20},/obj/structure/table/standard,/obj/random/tech_supply,/turf/simulated/floor/wood,/area/outpost/engineering/meeting) @@ -906,7 +906,7 @@ "rv" = (/obj/structure/disposaloutlet{dir = 1},/obj/structure/disposalpipe/trunk,/turf/simulated/floor/plating/airless/asteroid,/area/mine/explored) "rw" = (/obj/structure/table/rack,/obj/random/tech_supply,/obj/random/tech_supply,/obj/random/tech_supply,/obj/random/tech_supply,/obj/item/stack/cable_coil/yellow,/obj/item/stack/cable_coil,/turf/simulated/floor,/area/outpost/engineering/storage) "rx" = (/obj/structure/cable/blue,/obj/machinery/power/apc{dir = 4; name = "east bump"; pixel_x = 24},/obj/structure/table/rack,/obj/random/tech_supply,/obj/random/tech_supply,/obj/random/tech_supply,/obj/item/weapon/pickaxe,/turf/simulated/floor,/area/outpost/engineering/storage) -"ry" = (/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor/plating/airless,/area/mine/explored) +"ry" = (/obj/machinery/power/solar,/obj/structure/cable/yellow{d2 = 4; icon_state = "0-4"},/turf/simulated/floor/airless{icon_state = "solarpanel"},/area/mine/explored) "rz" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 1},/turf/simulated/floor,/area/outpost/engineering/storage) "rA" = (/obj/machinery/floodlight,/turf/simulated/floor/wood,/area/outpost/engineering/meeting) "rB" = (/turf/simulated/floor/airless{icon_state = "asteroidwarning"; dir = 10},/area/mine/unexplored) @@ -926,40 +926,40 @@ "rP" = (/obj/item/stack/material/plasteel{amount = 10},/obj/item/stack/material/wood{amount = 30},/obj/item/stack/material/plastic{amount = 10},/obj/structure/table/steel,/turf/simulated/floor,/area/outpost/engineering/storage) "rQ" = (/turf/simulated/floor,/area/outpost/engineering/storage) "rR" = (/obj/machinery/vending/snack,/turf/simulated/floor/wood,/area/outpost/engineering/meeting) -"rS" = (/obj/machinery/power/solar,/obj/structure/cable/yellow{d2 = 4; icon_state = "0-4"},/turf/simulated/floor/airless{icon_state = "solarpanel"},/area/mine/explored) +"rS" = (/obj/machinery/power/solar,/obj/structure/cable/yellow{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/airless{icon_state = "solarpanel"},/area/mine/explored) "rT" = (/obj/structure/bed/chair{dir = 4},/turf/simulated/floor/carpet,/area/outpost/engineering/meeting) "rU" = (/obj/structure/table/standard,/obj/item/weapon/storage/box/donkpockets,/turf/simulated/floor/carpet,/area/outpost/engineering/meeting) -"rV" = (/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/table/standard,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/item/weapon/reagent_containers/food/drinks/cans/beer,/turf/simulated/floor/carpet,/area/outpost/engineering/meeting) +"rV" = (/obj/structure/table/standard,/obj/item/weapon/reagent_containers/food/drinks/bottle/small/beer,/turf/simulated/floor{icon_state = "bar"},/area/outpost/mining_main/dorms) "rW" = (/obj/structure/flora/pottedplant{tag = "icon-plant-21"; icon_state = "plant-21"},/turf/simulated/floor/wood,/area/outpost/engineering/meeting) "rX" = (/obj/structure/bed/chair{dir = 8},/turf/simulated/floor/carpet,/area/outpost/engineering/meeting) "rY" = (/turf/simulated/wall/r_wall,/area/outpost/engineering/power) -"rZ" = (/obj/machinery/power/solar,/obj/structure/cable/yellow{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/airless{icon_state = "solarpanel"},/area/mine/explored) -"sa" = (/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plating/airless,/area/mine/explored) -"sb" = (/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/glass_engineering{name = "Storage"; req_access = list(10)},/turf/simulated/floor,/area/outpost/engineering/storage) +"rZ" = (/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plating/airless,/area/mine/explored) +"sa" = (/obj/machinery/shower{dir = 8; icon_state = "shower"; pixel_x = -5; pixel_y = 0},/obj/machinery/light/small{dir = 1},/obj/structure/curtain/open/shower/engineering,/obj/machinery/door/window/northright{dir = 8; name = "Shower"; req_access = list()},/turf/simulated/floor{icon_state = "freezerfloor"},/area/outpost/engineering/meeting) +"sb" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/structure/grille,/obj/machinery/door/firedoor/border_only{dir = 4; name = "Firelock"},/turf/simulated/floor/plating,/area/outpost/engineering/hallway) "sc" = (/turf/simulated/wall/r_wall,/area/outpost/engineering/hallway) "sd" = (/turf/simulated/wall/r_wall,/area/outpost/engineering/telecomms) "se" = (/obj/structure/table/rack,/obj/random/tech_supply,/obj/random/tech_supply,/obj/random/tech_supply,/obj/random/tech_supply,/obj/item/stack/cable_coil/yellow,/obj/machinery/light{dir = 8},/turf/simulated/floor,/area/outpost/engineering/storage) "sf" = (/obj/item/stack/material/glass{amount = 50},/obj/item/stack/material/glass{amount = 50},/obj/item/stack/material/glass{amount = 50},/obj/structure/table/steel,/turf/simulated/floor,/area/outpost/engineering/storage) "sg" = (/obj/machinery/vending/coffee,/turf/simulated/floor/wood,/area/outpost/engineering/meeting) -"sh" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/outpost/engineering/storage) +"sh" = (/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/glass_engineering{name = "Storage"; req_access = list(10)},/turf/simulated/floor,/area/outpost/engineering/storage) "si" = (/obj/machinery/hologram/holopad,/turf/simulated/floor/wood,/area/outpost/engineering/meeting) "sj" = (/obj/structure/table/standard,/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 8},/turf/simulated/floor/carpet,/area/outpost/engineering/meeting) -"sk" = (/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/table/standard,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 8},/obj/item/weapon/reagent_containers/food/drinks/cans/beer,/turf/simulated/floor/carpet,/area/outpost/engineering/meeting) +"sk" = (/turf/simulated/floor{icon_state = "warnwhite"; dir = 5},/area/outpost/mining_main/medbay) "sl" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/plating/airless{icon_state = "asteroidplating"},/area/mine/explored) "sm" = (/obj/machinery/light{icon_state = "tube1"; dir = 4},/obj/machinery/pipedispenser,/turf/simulated/floor/wood,/area/outpost/engineering/meeting) "sn" = (/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/power/terminal,/turf/simulated/floor,/area/outpost/engineering/power) "so" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/unary/vent_pump/on,/obj/machinery/light{dir = 1},/obj/machinery/alarm{frequency = 1439; pixel_y = 22},/obj/machinery/camera/network/engineering_outpost{c_tag = "Engineering Outpost Power Distribution"},/turf/simulated/floor,/area/outpost/engineering/power) "sp" = (/obj/machinery/atmospherics/unary/vent_scrubber/on,/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/cable{d2 = 2; icon_state = "0-2"; pixel_y = 0},/obj/machinery/power/sensor{long_range = 1; name_tag = "Asteroid Main Grid"},/turf/simulated/floor,/area/outpost/engineering/power) -"sq" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/grille,/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/outpost/engineering/hallway) +"sq" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/outpost/engineering/storage) "sr" = (/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/power/smes/buildable{charge = 1.5e+007; cur_coils = 3; input_attempt = 1; input_level = 750000; input_level_max = 750000; output_level = 750000; output_level_max = 750000; RCon_tag = "Outpost - Main"},/turf/simulated/floor,/area/outpost/engineering/power) -"ss" = (/obj/machinery/power/port_gen/pacman/super,/obj/structure/cable/yellow{d2 = 2; icon_state = "0-2"},/turf/simulated/floor,/area/outpost/engineering/hallway) -"st" = (/obj/machinery/power/port_gen/pacman/mrs,/obj/structure/cable/yellow{d2 = 2; icon_state = "0-2"},/turf/simulated/floor,/area/outpost/engineering/hallway) +"ss" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/grille,/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/outpost/engineering/hallway) +"st" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/grille,/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/outpost/engineering/hallway) "su" = (/obj/machinery/atmospherics/portables_connector{dir = 4},/obj/machinery/portable_atmospherics/canister/air/airlock,/turf/simulated/floor,/area/outpost/engineering/hallway) "sv" = (/turf/simulated/floor,/area/outpost/engineering/hallway) "sw" = (/obj/machinery/atmospherics/pipe/simple/hidden/cyan{tag = "icon-intact (SOUTHWEST)"; icon_state = "intact"; dir = 10},/turf/simulated/floor,/area/outpost/engineering/hallway) -"sx" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/grille,/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/outpost/engineering/hallway) +"sx" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/structure/grille,/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/outpost/engineering/hallway) "sy" = (/turf/simulated/floor{dir = 9; icon_state = "warning"},/area/outpost/engineering/hallway) -"sz" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/structure/grille,/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/outpost/engineering/hallway) +"sz" = (/obj/machinery/light_construct/small,/turf/simulated/floor/plating/airless{icon_state = "asteroidplating"},/area/mine/explored) "sA" = (/obj/machinery/light/small{dir = 1},/turf/simulated/floor/plating/airless{icon_state = "asteroidplating"},/area/mine/explored) "sB" = (/obj/structure/disposalpipe/segment,/turf/unsimulated/mask,/area/mine/unexplored) "sC" = (/turf/simulated/floor/airless{icon_state = "asteroidwarning"; dir = 1},/area/mine/explored) @@ -967,17 +967,17 @@ "sE" = (/obj/machinery/light/small{dir = 8},/turf/simulated/floor/plating/airless/asteroid,/area/mine/explored) "sF" = (/obj/structure/cable{d2 = 2; icon_state = "0-2"; pixel_y = 0},/obj/machinery/power/apc/super{dir = 1; pixel_y = 24},/turf/simulated/floor/airless{dir = 5; icon_state = "asteroidfloor"},/area/mine/explored) "sG" = (/obj/machinery/atmospherics/unary/vent_pump/on,/turf/simulated/floor/bluegrid{name = "Mainframe Base"; nitrogen = 82.1472; oxygen = 21.8366; temperature = 293.15},/area/outpost/engineering/telecomms) -"sH" = (/obj/machinery/light_construct/small,/turf/simulated/floor/plating/airless{icon_state = "asteroidplating"},/area/mine/explored) +"sH" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/outpost/engineering/storage) "sI" = (/obj/machinery/atmospherics/unary/vent_scrubber/on,/obj/machinery/alarm{frequency = 1439; pixel_y = 22},/turf/simulated/floor/bluegrid{name = "Mainframe Base"; nitrogen = 82.1472; oxygen = 21.8366; temperature = 293.15},/area/outpost/engineering/telecomms) "sJ" = (/obj/machinery/telecomms/relay/preset/mining,/obj/machinery/light{dir = 1},/turf/simulated/floor/bluegrid{icon_state = "dark"; name = "Server Walkway"; nitrogen = 82.1472; oxygen = 21.8366; temperature = 293.15},/area/outpost/engineering/telecomms) "sK" = (/obj/structure/dispenser/oxygen,/turf/simulated/floor,/area/outpost/engineering/storage) "sL" = (/obj/machinery/light/small,/turf/simulated/floor/plating/airless/asteroid,/area/mine/explored) "sM" = (/obj/machinery/light_construct/small,/turf/simulated/floor/plating/airless/asteroid,/area/mine/explored) -"sN" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/outpost/engineering/storage) +"sN" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/grille,/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/outpost/engineering/power) "sO" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/mine/explored) "sP" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/mine/explored) "sQ" = (/obj/item/stack/material/steel{amount = 50},/obj/item/stack/material/steel{amount = 50},/obj/item/stack/material/steel{amount = 50},/obj/structure/table/steel,/turf/simulated/floor,/area/outpost/engineering/storage) -"sR" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/grille,/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/outpost/engineering/power) +"sR" = (/obj/structure/cable/yellow{d2 = 2; icon_state = "0-2"},/obj/machinery/power/port_gen/pacman{anchored = 1},/turf/simulated/floor,/area/outpost/engineering/hallway) "sS" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/airless,/area/mine/explored) "sT" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/grille,/obj/machinery/atmospherics/pipe/simple/hidden/cyan{dir = 4; icon_state = "intact"; tag = "icon-intact-f (EAST)"},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/outpost/engineering/hallway) "sU" = (/obj/structure/cable/yellow,/turf/simulated/floor/plating/airless,/area/mine/explored) @@ -1094,7 +1094,7 @@ "vb" = (/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/unary/vent_scrubber/on,/obj/item/device/radio/intercom{broadcasting = 0; listening = 1; name = "Station Intercom (General)"; pixel_y = 20},/turf/simulated/floor,/area/outpost/engineering/hallway) "vc" = (/obj/structure/cable/blue{d2 = 8; icon_state = "0-8"},/obj/machinery/power/apc{dir = 1; name = "north bump"; pixel_x = 0; pixel_y = 24},/turf/simulated/floor,/area/outpost/engineering/hallway) "vd" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor,/area/outpost/engineering/hallway) -"ve" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/outpost/engineering/hallway) +"ve" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/cyan,/obj/machinery/access_button{command = "cycle_interior"; frequency = 1380; master_tag = "edock_airlock"; name = "interior access button"; pixel_x = -25; pixel_y = -25; req_access = list(10)},/turf/simulated/floor{dir = 9; icon_state = "warning"},/area/outpost/engineering/hallway) "vf" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor,/area/outpost/engineering/hallway) "vg" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor,/area/outpost/engineering/hallway) "vh" = (/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor,/area/outpost/engineering/hallway) @@ -1102,7 +1102,7 @@ "vj" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor,/area/outpost/engineering/hallway) "vk" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/simple/hidden/cyan,/turf/simulated/floor,/area/outpost/engineering/hallway) "vl" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/alarm{frequency = 1439; pixel_y = 22},/obj/machinery/camera/network/engineering_outpost{c_tag = "Engineering Outpost Hallway East"},/turf/simulated/floor,/area/outpost/engineering/hallway) -"vm" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/outpost/engineering/hallway) +"vm" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/outpost/engineering/hallway) "vn" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/airless{icon_state = "asteroidwarning"; dir = 4},/area/mine/explored) "vo" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 8},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 8},/turf/simulated/floor/airless{dir = 5; icon_state = "asteroidfloor"},/area/mine/explored) "vp" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/plating/airless{icon_state = "asteroidplating"},/area/mine/explored) @@ -1110,7 +1110,7 @@ "vr" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor/plating/airless{icon_state = "asteroidplating"},/area/mine/explored) "vs" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 1; frequency = 1379; id_tag = "eoutpost_main_pump"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/camera/network/engineering_outpost{c_tag = "Engineering Outpost Airlock"; dir = 1},/turf/simulated/floor,/area/outpost/engineering/hallway) "vt" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/door/airlock/external{frequency = 1379; icon_state = "door_locked"; id_tag = "eoutpost_main_outer"; locked = 1; name = "Engineering Outpost"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor,/area/outpost/engineering/hallway) -"vu" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/outpost/engineering/hallway) +"vu" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/outpost/engineering/hallway) "vv" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/embedded_controller/radio/airlock/airlock_controller{frequency = 1379; id_tag = "eoutpost_main_airlock"; pixel_x = 0; pixel_y = -25; req_access = list(10); tag_airpump = "eoutpost_main_pump"; tag_chamber_sensor = "eoutpost_main_sensor"; tag_exterior_door = "eoutpost_main_outer"; tag_interior_door = "eoutpost_main_inner"},/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 1; frequency = 1379; id_tag = "eoutpost_main_pump"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor,/area/outpost/engineering/hallway) "vw" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor,/area/outpost/engineering/hallway) "vx" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/access_button{command = "cycle_interior"; frequency = 1379; master_tag = "eoutpost_main_airlock"; name = "interior access button"; pixel_x = -25; pixel_y = -25; req_access = list(10)},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/sign/vacuum{pixel_y = -32},/turf/simulated/floor{dir = 6; icon_state = "warning"},/area/outpost/engineering/hallway) @@ -1119,7 +1119,7 @@ "vA" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/manifold/hidden/supply,/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 1},/turf/simulated/floor,/area/outpost/engineering/hallway) "vB" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers,/obj/machinery/atmospherics/pipe/manifold/hidden/supply,/turf/simulated/floor,/area/outpost/engineering/hallway) "vC" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 1},/turf/simulated/floor,/area/outpost/engineering/hallway) -"vD" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/outpost/engineering/hallway) +"vD" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/outpost/engineering/hallway) "vE" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor,/area/outpost/engineering/hallway) "vF" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 1},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 1},/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor,/area/outpost/engineering/hallway) "vG" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/firealarm{dir = 1; pixel_x = 0; pixel_y = -24},/turf/simulated/floor,/area/outpost/engineering/hallway) @@ -1129,10 +1129,10 @@ "vK" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor,/area/outpost/engineering/hallway) "vL" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor,/area/outpost/engineering/hallway) "vM" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor,/area/outpost/engineering/hallway) -"vN" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/outpost/engineering/hallway) +"vN" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/outpost/engineering/hallway) "vO" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply,/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers,/obj/machinery/light,/turf/simulated/floor,/area/outpost/engineering/hallway) "vP" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 9},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 9},/turf/simulated/floor,/area/outpost/engineering/hallway) -"vQ" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/cyan,/obj/machinery/access_button{command = "cycle_interior"; frequency = 1379; master_tag = "edock_airlock"; name = "interior access button"; pixel_x = -25; pixel_y = -25; req_access = list(10)},/turf/simulated/floor{dir = 9; icon_state = "warning"},/area/outpost/engineering/hallway) +"vQ" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/outpost/engineering/hallway) "vR" = (/obj/machinery/light,/obj/item/device/radio/intercom{broadcasting = 0; listening = 1; name = "Station Intercom (General)"; pixel_x = -6; pixel_y = -28},/turf/simulated/floor,/area/outpost/engineering/hallway) "vS" = (/turf/simulated/floor{dir = 5; icon_state = "warning"},/area/outpost/engineering/hallway) "vT" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/airless{icon_state = "asteroidwarning"; dir = 2},/area/mine/explored) @@ -1142,10 +1142,10 @@ "vX" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/cyan,/obj/machinery/door/airlock/external{frequency = 1380; icon_state = "door_locked"; id_tag = "edock_inner"; locked = 1; name = "Engineering Dock Airlock"},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/outpost/engineering/hallway) "vY" = (/obj/machinery/door/airlock/external{frequency = 1380; icon_state = "door_locked"; id_tag = "edock_inner"; locked = 1; name = "Engineering Dock Airlock"},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/outpost/engineering/hallway) "vZ" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/grille,/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/outpost/engineering/hallway) -"wa" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/grille,/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/outpost/engineering/hallway) -"wb" = (/obj/machinery/access_button{command = "cycle_exterior"; frequency = 1379; master_tag = "edock_airlock"; name = "exterior access button"; pixel_x = -25; pixel_y = 0; req_access = list(10)},/turf/simulated/floor/plating/airless/asteroid,/area/mine/explored) -"wc" = (/obj/structure/lattice,/obj/structure/grille,/obj/structure/sign/securearea{desc = "A warning sign which reads 'KEEP CLEAR OF DOCKING AREA'."; name = "KEEP CLEAR: DOCKING AREA"; pixel_y = 0},/turf/unsimulated/mask,/area/mine/explored) -"wd" = (/turf/simulated/floor/plating/airless/asteroid,/area/shuttle/constructionsite/site) +"wa" = (/obj/machinery/light/small{dir = 4},/obj/machinery/airlock_sensor{frequency = 1380; id_tag = "edock_sensor"; pixel_x = 25; pixel_y = 0},/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 8; frequency = 1380; id_tag = "edock_pump"},/turf/simulated/floor/plating,/area/outpost/engineering/hallway) +"wb" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/grille,/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/outpost/engineering/hallway) +"wc" = (/obj/machinery/embedded_controller/radio/airlock/docking_port{frequency = 1380; id_tag = "edock_airlock"; pixel_x = 30; pixel_y = 0; req_access = list(10); tag_airpump = "edock_pump"; tag_chamber_sensor = "edock_sensor"; tag_exterior_door = "edock_outer"; tag_interior_door = "edock_inner"},/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 8; frequency = 1380; id_tag = "edock_pump"},/turf/simulated/floor/plating,/area/outpost/engineering/hallway) +"wd" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'KEEP CLEAR OF DOCKING AREA'."; name = "KEEP CLEAR: DOCKING AREA"; pixel_y = 0},/turf/simulated/wall,/area/outpost/engineering/hallway) "we" = (/obj/machinery/atmospherics/portables_connector{dir = 4},/obj/machinery/portable_atmospherics/canister/air,/turf/simulated/floor,/area/outpost/engineering/atmospherics) "wf" = (/turf/simulated/wall/r_wall,/area/outpost/engineering/atmospherics) "wg" = (/obj/machinery/atmospherics/pipe/simple/visible/cyan{dir = 4; icon_state = "intact"; tag = "icon-intact (EAST)"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor,/area/outpost/engineering/atmospherics) @@ -1158,8 +1158,8 @@ "wn" = (/obj/machinery/atmospherics/pipe/simple/visible/supply{tag = "icon-intact-supply (NORTHWEST)"; icon_state = "intact-supply"; dir = 9},/obj/machinery/atmospherics/pipe/simple/visible/scrubbers{tag = "icon-intact-scrubbers (NORTHEAST)"; icon_state = "intact-scrubbers"; dir = 5},/obj/structure/cable/blue{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor,/area/outpost/engineering/atmospherics) "wo" = (/obj/machinery/atmospherics/pipe/simple/visible/red{tag = "icon-intact (SOUTHWEST)"; icon_state = "intact"; dir = 10},/obj/machinery/meter,/turf/simulated/floor,/area/outpost/engineering/atmospherics) "wp" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/manifold/hidden/cyan{dir = 8; icon_state = "map"; tag = "icon-manifold-f (WEST)"},/turf/simulated/floor/plating,/area/outpost/engineering/hallway) -"wq" = (/obj/machinery/light/small,/turf/simulated/floor/plating/airless{icon_state = "asteroidplating"},/area/mine/explored) -"wr" = (/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 8; frequency = 1380; id_tag = "eoutpost_dock_pump"},/obj/machinery/light/small{dir = 4},/obj/machinery/airlock_sensor{frequency = 1380; id_tag = "eoutpost_solar_sensor"; pixel_x = 25; pixel_y = 0},/turf/simulated/floor/plating,/area/outpost/engineering/hallway) +"wq" = (/obj/machinery/access_button{command = "cycle_exterior"; frequency = 1380; master_tag = "edock_airlock"; name = "exterior access button"; pixel_x = -25; pixel_y = 0; req_access = list(10)},/turf/space,/area/space) +"wr" = (/obj/structure/lattice,/obj/structure/grille,/obj/structure/sign/securearea{desc = "A warning sign which reads 'KEEP CLEAR OF DOCKING AREA'."; name = "KEEP CLEAR: DOCKING AREA"; pixel_y = 0},/turf/unsimulated/mask,/area/mine/explored) "ws" = (/obj/machinery/power/emitter{anchored = 1; dir = 4; state = 2},/turf/simulated/floor/airless{dir = 5; icon_state = "asteroidfloor"},/area/mine/explored) "wt" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 1},/turf/simulated/floor,/area/outpost/engineering/atmospherics) "wu" = (/obj/machinery/atmospherics/pipe/manifold/visible/cyan{tag = "icon-map (EAST)"; icon_state = "map"; dir = 4},/turf/simulated/floor,/area/outpost/engineering/atmospherics) @@ -1169,8 +1169,8 @@ "wy" = (/obj/machinery/atmospherics/pipe/simple/visible/red{tag = "icon-intact (SOUTHEAST)"; icon_state = "intact"; dir = 6},/turf/simulated/floor,/area/outpost/engineering/atmospherics) "wz" = (/obj/machinery/atmospherics/pipe/simple/visible/red{tag = "icon-intact (NORTHWEST)"; icon_state = "intact"; dir = 9},/obj/item/device/radio/intercom{dir = 4; name = "Station Intercom (General)"; pixel_x = 27},/turf/simulated/floor,/area/outpost/engineering/atmospherics) "wA" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/cyan{dir = 5; icon_state = "intact"; tag = "icon-intact-f (NORTHWEST)"},/turf/simulated/floor/plating,/area/outpost/engineering/hallway) -"wB" = (/obj/machinery/atmospherics/pipe/simple/visible/purple,/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/outpost/engineering/atmospherics) -"wC" = (/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 8; frequency = 1380; id_tag = "eoutpost_dock_pump"},/obj/machinery/embedded_controller/radio/airlock/docking_port{frequency = 1380; id_tag = "edock_airlock"; pixel_x = 30; pixel_y = 0; req_access = list(10); tag_airpump = "edock_pump"; tag_chamber_sensor = "edock_sensor"; tag_exterior_door = "edock_outer"; tag_interior_door = "edock_inner"},/turf/simulated/floor/plating,/area/outpost/engineering/hallway) +"wB" = (/turf/simulated/floor/plating/airless/asteroid,/area/shuttle/constructionsite/site) +"wC" = (/obj/machinery/light/small,/turf/simulated/floor/plating/airless{icon_state = "asteroidplating"},/area/mine/explored) "wD" = (/obj/machinery/atmospherics/pipe/simple/visible/cyan{dir = 4; icon_state = "intact"; tag = "icon-intact (EAST)"},/turf/simulated/floor,/area/outpost/engineering/atmospherics) "wE" = (/obj/machinery/atmospherics/pipe/manifold4w/visible/cyan,/obj/machinery/meter,/turf/simulated/floor,/area/outpost/engineering/atmospherics) "wF" = (/obj/machinery/atmospherics/binary/pump/on{dir = 8; target_pressure = 15000},/turf/simulated/floor,/area/outpost/engineering/atmospherics) @@ -1180,7 +1180,7 @@ "wJ" = (/obj/machinery/atmospherics/pipe/simple/visible/red{tag = "icon-intact (NORTH)"; icon_state = "intact"; dir = 1},/obj/machinery/atmospherics/pipe/simple/visible/blue{tag = "icon-intact (EAST)"; icon_state = "intact"; dir = 4},/turf/simulated/floor,/area/outpost/engineering/atmospherics) "wK" = (/obj/machinery/atmospherics/pipe/simple/visible/blue{tag = "icon-intact (SOUTHWEST)"; icon_state = "intact"; dir = 10},/obj/machinery/light{icon_state = "tube1"; dir = 4},/obj/machinery/firealarm{dir = 4; layer = 3.3; pixel_x = 26},/turf/simulated/floor,/area/outpost/engineering/atmospherics) "wL" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/airlock/external{frequency = 1380; icon_state = "door_locked"; id_tag = "edock_outer"; locked = 1; name = "Engineering Dock Airlock"},/turf/simulated/floor/plating,/area/outpost/engineering/hallway) -"wM" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'KEEP CLEAR OF DOCKING AREA'."; name = "KEEP CLEAR: DOCKING AREA"; pixel_y = 0},/turf/simulated/wall/r_wall,/area/outpost/engineering/hallway) +"wM" = (/obj/machinery/atmospherics/pipe/simple/visible/purple,/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/outpost/engineering/atmospherics) "wN" = (/obj/machinery/door/airlock/external{frequency = 1380; icon_state = "door_locked"; id_tag = "edock_outer"; locked = 1; name = "Engineering Dock Airlock"},/turf/simulated/floor/plating,/area/outpost/engineering/hallway) "wO" = (/obj/machinery/atmospherics/pipe/simple/visible/blue,/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/outpost/engineering/atmospherics) "wP" = (/obj/machinery/atmospherics/pipe/simple/visible/purple,/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/outpost/engineering/atmospherics) @@ -1311,10 +1311,8 @@ "zk" = (/obj/machinery/atmospherics/pipe/manifold/hidden{dir = 4; icon_state = "map"; tag = "icon-manifold-f (EAST)"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor{dir = 4; icon_state = "warning"},/area/outpost/mining_west) "zl" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 10},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 10},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor/airless{dir = 5; icon_state = "asteroidfloor"},/area/mine/explored) "zm" = (/obj/machinery/access_button{command = "cycle_exterior"; frequency = 1379; master_tag = "mining_west_outpost_airlock"; name = "exterior access button"; pixel_x = -25; pixel_y = -25},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor/airless{dir = 5; icon_state = "asteroidfloor"},/area/mine/explored) -"zn" = (/obj/structure/table/standard,/obj/item/weapon/reagent_containers/food/drinks/cans/beer,/obj/item/weapon/reagent_containers/food/drinks/cans/beer,/turf/simulated/floor{icon_state = "bar"},/area/outpost/mining_main/dorms) "zo" = (/obj/structure/bed/chair{dir = 4},/turf/simulated/floor{icon_state = "bar"},/area/outpost/mining_main/dorms) "zp" = (/obj/structure/bed/chair{dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor{icon_state = "bar"},/area/outpost/mining_main/dorms) -"zq" = (/obj/structure/table/standard,/obj/item/weapon/reagent_containers/food/drinks/cans/beer,/turf/simulated/floor{icon_state = "bar"},/area/outpost/mining_main/dorms) "zr" = (/obj/machinery/light{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor{icon_state = "bar"},/area/outpost/mining_main/dorms) "zs" = (/turf/simulated/floor,/area/outpost/mining_main/west_hall) "zt" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 8},/turf/simulated/floor,/area/outpost/mining_main/west_hall) @@ -1516,7 +1514,6 @@ "Dh" = (/obj/machinery/conveyor{dir = 2; id = "mining_internal"},/obj/structure/plasticflaps/mining,/turf/simulated/floor{icon_state = "floorgrime"},/area/outpost/mining_main/refinery) "Di" = (/obj/machinery/conveyor{dir = 2; id = "mining_internal"},/obj/machinery/mineral/output,/obj/structure/plasticflaps/mining,/turf/simulated/floor{icon_state = "floorgrime"},/area/outpost/mining_main/refinery) "Dj" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/plating/airless{icon_state = "asteroidplating"},/area/mine/explored) -"Dk" = (/obj/machinery/sleep_console,/turf/simulated/floor{icon_state = "warnwhite"; dir = 5},/area/outpost/mining_main/medbay) "Dl" = (/obj/machinery/sleeper,/turf/simulated/floor{icon_state = "warnwhite"; dir = 1},/area/outpost/mining_main/medbay) "Dm" = (/obj/structure/table/standard,/obj/item/weapon/storage/firstaid/o2{pixel_x = 2; pixel_y = 2},/obj/item/weapon/storage/firstaid/regular,/turf/simulated/floor{icon_state = "white"},/area/outpost/mining_main/medbay) "Dn" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 1},/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -29},/obj/machinery/camera/network/mining{c_tag = "Mining Outpost Medical"; dir = 1},/turf/simulated/floor{icon_state = "white"},/area/outpost/mining_main/medbay) @@ -1676,28 +1673,28 @@ aaababababababababababababababababababababababababababababababababababababababab aaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababakakakakakabagababadahadadanamamaNababababababaeabababababababababababababbdgygygyqFqFgyacacacacacacacacacacacacacacacgyqFqFgybdababababababababababababababababababababababababababababababababaaaa aaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababakaoaqapakakarakakakasasasasauatasasasasababaeaeabababababababababababababbdbdbdgyqFqFgyacacacacacacacacacacacacacacacgyqFqFgybdababababababababababababababababababababababababababababababababaaaa aaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababakavaxawazayaBaAaAaCaEaDaFaEaGamaEaHaDasabaeaeaeaeababababababababababababbdgybdgyqFqFgyacacacacacacacacacacacacacacacgyqFqFgybdababababababababababababababababababababababababababababababababaaaa -aaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaIaIaIaIaJaLaKaRaMaOaOaOaPaEaQaSaWaUaTbNaVaXasaeaeaeaeaeababababababababababababbdgybdgyqFqFgyacacacacacacacacacacacacacacacgyqFqFgybdababababababababababababababababababababababababababababababababaaaa +aaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaIaIaIaIaJaLaKaRaMaOaOaOaPaEaQaSaWaUaTbSaVaXasaeaeaeaeaeababababababababababababbdgybdgyqFqFgyacacacacacacacacacacacacacacacgyqFqFgybdababababababababababababababababababababababababababababababababaaaa aaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaIaIaZaYaIakakakakaAaAbababbaEaEaEaEbebcaEaEaEasbfbfbfaeaeababababababababababababbdgygygyqFqFgyacacacacacacacacacacacacacacacgyqFqFgybdababababababababababababababababababababababababababababababababaaaa aaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababbgbibhababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaIbjblbkbnbmbpbobrbqbtbsbvbuaEbwbxaEbzbyaEbAbCbBbDbAbfaeaeaeabababababababababababbdbdgygyqFqFacacacacacacacacacacacacacacacacacqFqFgybdababababababababababababababababababababababababababababababababaaaa -aaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababbEbGbFbSabababababababababababababababababababababababababababababababababababababababababababababababababababababababababgygygygyababababababaIbHbJbIaIbKbMbLbXbMbPbObvbQaEbRbTcmbVbUcBbWbZbYcbcabfaeaeaeababababababababababababbdgygyqFqFacacacacacacacacacacacacacacacacacqFqFbdbdababababababababababababababababababababababababababababababababaaaa -aaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababcccecdcfbSabababababababababababababababababababababababababababababababababababababababababababababababababababababgygygygygygygygygyababababaIbHchcgaIcibLcjclckakarakcHasasasascocnaEcpbZcbcbcqbfaeaeaeababababababababababababbdgygyqFqFacacacacacacacacacacacacacacacacacqFqFbdabababababababababababababababababababababababababababababababababaaaa -aaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababcIdldleucscrbFbSabababababababababababababababababababababababababababababababababababababababababababababababababababadadgycJcJcJcJcJcJcJcJcJadadabaIbHcuctaIcvcxcwczcycQcAcDcCcFcEcGascScRdcbAbAcKbAcLbfcMaeabababababababababababababbdbdbdqFqFacacacacacacacacacacacacacacacacacqFqFbdabababababababababababababababababababababababababababababababababaaaa -aaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdQdRdSdTcOcNcPbSbSababababababababababababababababababababababababababababababababababababababababababababababababababgygygycJcJcJcJcJcJcJcJdkasasasasasasdvasasasasdKasascTcVcUcXcWcYasdacZdVdbdedddgdfdidhbdabababababababababababababababbdqFqFacacacacacacacacacacacacacacacacacqFqFbdabababababababababababababababababababababababababababababababababaaaa -aaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababcIdldlfydjcrdmabababababababababababababababababababababababababababababababababababababababababababababababababababbdgygygygygydZdZdZdZdZdZdZaEdodndqdpdsdrdudtdweddydxasdzdBdAdDdCdEasdGdFdVdbdbdbdbdbbfbdbdabababababaeabababababababababbdqFqFacacacacacacacacacacacacacacacacacqFqFbdabababababababababababababababababababababababababababababababababaaaa -aaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababbSbSdHdJdIdmabababababababababababababababababababababababababababababababababababababababababababababababababababadadgygygygydZdZdZdZdZdZdZeidMdLdOdNdNdPdUdNdOendXdWeqdYebeaececeeetegefexehekejelbfbfbdbdbdabababaeaeabaeaeabababababbdbdqFqFacacacacacacacacacacacacacacacacacqFqFbdabababababababababababababababababababababababababababababababababaaaa -aaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababbSbSeZemepeodmabababababababababababababababababababababababababababababababababababababababababababababababababababadgygygygygydZdZdZdZdZdZdZfadMereveseyeweAezeBaseDeCaseEeGeFeIeHeJaseMeKaEeNeNeNeNeOeQePfbfbaeaeaeaeaeaeaeaeabababababbdgyqFqFacacacacacacacacacacacacacacacacacqFqFbdabababababababababababababababababababababababababababababababababaaaa -aaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababbSbSeSeReTdmeVeUdmdmdmdmabababababababababababababababababababababababababababababababababababababababababababababababbdgygygygygygydZdZdZdZdZdZdZaNdMereveseXeWeAezeYasfOfhasgaasasasaseqasfdfcaEfefgfffigbfkfjgcgcaeaeaeaeaeaeaefbfbfbfbbdbdbdgyqFqFacacacacacgyacacacacacgyacacacacacqFqFbdabababababababababababababababababababababababababababababababababaaaa -aaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababbSgdfmflfofnfpbhcNfqdmfrfsdmabababababababababababababababababababababababababababababababababababababababababababababababbdgygygygygygydZdZdZdZdZdZdZaEfuftfvesfwezeAfxfzasfBfAfDfCfFfEfGasfIfHfKfJaEfLfNfMfPgfgcfbfbfbaeaeaeaeaeaeaefbqFqFqFqFqFqFqFqFqFacacacacacgyacacacacacgyacacacacacqFqFbdabababababababababababababababababababababababababababababababababaaaa -aaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababbSfRfQfmfSfUfTfWfVfqfXfsfYfrdmabababababababababababababababababababababababababababababababababababababababababababababababgygygygygygyfZghgggzgighgggCgegOgHgSgSgSgjgjgjgjgjgkfJgmglamgngoasgqgpgsgraEgtgvgugxgwgAasasgBaeaeaeaeaeaeaefbqFqFqFqFqFqFqFqFqFacacacacacgygygygygygygyacacacacacqFqFbdabababababababababababababababababababababababababababababababababaaaa -aaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababhffRgDfRflfleVgEfUdmeogFdmfsgGdmabababababababababababababababababababababababababababababababababababababababababababababababbdgygygygygyhggJgIgLgKgMgIhhgNgQgPhjgRgTgjgVgUgWgjgXfJgZgYhbhahcashehdfOhmaEaEhnaEaEaEfJfJhigBgBgBgBhsgBgBgBgBqFqFqFqFqFqFqFqFqFqFqFqFqFqFqFqFqFqFqFqFqFqFqFqFqFqFqFqFbdabababababababababababababababababababababababababababababababababaaaa -aaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababbSbShlhkflhxhBfldIhofThphrhqdmdmdmdmdmdmababababababababababababababababababababababababababababababababababababababababababababababgygygygygyhFhuhththththvhJhwhzhyhQhAhCgjhEhDhGilhHgrhmhIfJfJhKfAfJfJgsgrhMhLhOhNhmhPfJfJhRgBhThSgBhUhWhVhXgBqFqFqFbdbdbdgyqFqFqFqFqFqFqFqFqFqFqFqFqFqFqFqFqFqFqFqFqFbdabababababababababababababababababababababababababababababababababaaaa -aaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababbSbShYiahZflhBibfSicfUiddmifiedmigihcNiidmabababababababababababababababababababababababababababababababababababababababababababababababgygygygyhFgIgIgIijgIikiogIimgPiwinipgjhDiqisiriuitiHiviyixiAiziCiBiDixixixiFiEiKiGiJiIiLiPiNiMiZiOiRiQiSgBqFqFqFbdabbdbdbdgygygygygygygygygygygygygygybdgygygygybdbdabababababababababababababababababababababababababababababababababaaaa -aaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababbSbSbSababdmfpiTiViUhZiWiXfTigbhcNihdmigiTihiYdmababababababababababababababababababababababababababababababababababbdbdbdbdbdbdababababababkDjigygygyjpgIgIjbjajdjchhjejgjfjrjhjjgjjljkjmgjgjjnjnjojqjsjtjqjujqjIjxjxjxjxjtjqjvjwjwjKgBjzjygBjAjCjBjDgBqFqFqFbdabababbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdababababababababababababababababababababababababababababababababababaaaa -aaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababbSdmdmdmdmdmdmfnfUjEiTfUhojFigigfVfqifdmigdIeojGdmababababababababababababababababababababababababababababababababbdbdbdgygygygybdbdbdababsEgygygygygygyjHghgggzjHjHjHjHjHkrjHjJjJjJgjkvgjjMjLjNjnjPjOjqjQjSjRjUjTjWjVjXjXjXjYjqjZkajwkckbkbkbkbkdkfkehXgBqFqFqFbdababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaa -aaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababbSdmkgfUhZkhdmhYkiiadmhpdmkkkjkldmcNkmidkndIepfUdmabababababababababababababababababababababababababababababababbdbdgygygygygygygygybdbdabgygygygygygygygygycJkzkokqkpkskEkuktkwlckykxkAnkkCkBkGkFkIkHjqkJkLkKkMjXjWkNkOjXjXkPjqkQkRjwkTkSkVkUkbgBgBgBgBgBqFqFqFbdababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaa +aaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababbEbGbFbXabababababababababababababababababababababababababababababababababababababababababababababababababababababababababgygygygyababababababaIbHbJbIaIbKbMbLbNbMbPbObvbQaEbRbTcmbVbUcBbWbZbYcbcabfaeaeaeababababababababababababbdgygyqFqFacacacacacacacacacacacacacacacacacqFqFbdbdababababababababababababababababababababababababababababababababaaaa +aaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababcccecdcfbXabababababababababababababababababababababababababababababababababababababababababababababababababababababgygygygygygygygygyababababaIbHchcgaIcibLcjclckakarakcHasasasascocnaEcpbZcbcbcqbfaeaeaeababababababababababababbdgygyqFqFacacacacacacacacacacacacacacacacacqFqFbdabababababababababababababababababababababababababababababababababaaaa +aaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababcIdldleucscrbFbXabababababababababababababababababababababababababababababababababababababababababababababababababababadadgycJcJcJcJcJcJcJcJcJadadabaIbHcuctaIcvcxcwczcycQcAcDcCcFcEcGascScRdcbAbAcKbAcLbfcMaeabababababababababababababbdbdbdqFqFacacacacacacacacacacacacacacacacacqFqFbdabababababababababababababababababababababababababababababababababaaaa +aaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdddRdSdTcOcNcPbXbXababababababababababababababababababababababababababababababababababababababababababababababababababgygygycJcJcJcJcJcJcJcJdkasasasasasasdvasasasasdKasascTcVcUcXcWcYasdacZdVdbdedCdgdfdidhbdabababababababababababababababbdqFqFacacacacacacacacacacacacacacacacacqFqFbdabababababababababababababababababababababababababababababababababaaaa +aaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababcIdldlfydjcrdmabababababababababababababababababababababababababababababababababababababababababababababababababababbdgygygygygydZdZdZdZdZdZdZaEdodndqdpdsdrdudtdweddydxasdzdBdAdDdQdEasdGdFdVdbdbdbdbdbbfbdbdabababababaeabababababababababbdqFqFacacacacacacacacacacacacacacacacacqFqFbdabababababababababababababababababababababababababababababababababaaaa +aaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababbXbXdHdJdIdmabababababababababababababababababababababababababababababababababababababababababababababababababababadadgygygygydZdZdZdZdZdZdZeidMdLdOdNdNdPdUdNdOendXdWeqdYebeaecePeeetegefexehekejelbfbfbdbdbdabababaeaeabaeaeabababababbdbdqFqFacacacacacacacacacacacacacacacacacqFqFbdabababababababababababababababababababababababababababababababababaaaa +aaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababbXbXeZemepeodmabababababababababababababababababababababababababababababababababababababababababababababababababababadgygygygygydZdZdZdZdZdZdZfadMereveseyeweAezeBaseDeCaseEeGeFeIeHeJaseMeKaEeNeNeNeNeOrMeLfbfbaeaeaeaeaeaeaeaeabababababbdgyqFqFacacacacacacacacacacacacacacacacacqFqFbdabababababababababababababababababababababababababababababababababaaaa +aaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababbXbXeSeReTdmeVeUdmdmdmdmabababababababababababababababababababababababababababababababababababababababababababababababbdgygygygygygydZdZdZdZdZdZdZaNdMereveseXeWeAezeYasfOfhasgaasasasaseqasfdfcaEfefgfffigbgyfjfbfbaeaeaeaeaeaeaefbfbfbfbbdbdbdgyqFqFacacacacacgyacacacacacgyacacacacacqFqFbdabababababababababababababababababababababababababababababababababaaaa +aaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababbXgdfmflfofnfpbhcNfqdmfrfsdmabababababababababababababababababababababababababababababababababababababababababababababababbdgygygygygygydZdZdZdZdZdZdZaEfuftfvesfwezeAfxfzasfBfAfDfCfFfEfGasfIfHfKfJaEfLeQfMfPgffbfbfbfbaeaeaeaeaeaeaefbqFqFqFqFqFqFqFqFqFacacacacacgyacacacacacgyacacacacacqFqFbdabababababababababababababababababababababababababababababababababaaaa +aaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababbXfRfQfmfSfUfTfWfVfqfXfsfYfrdmabababababababababababababababababababababababababababababababababababababababababababababababgygygygygygyfZghgggzgighgggCgegOgHgSgSgSgjgjgjgjgjgkfJgmglamgngoasgqgpgsgraEfkfNgugxgwgAasasgBaeaeaeaeaeaeaefbqFqFqFqFqFqFqFqFqFacacacacacgygygygygygygyacacacacacqFqFbdabababababababababababababababababababababababababababababababababaaaa +aaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababhffRgDfRflfleVgEfUdmeogFdmfsgGdmabababababababababababababababababababababababababababababababababababababababababababababababbdgygygygygyhggJgIgLgKgMgIhhgNgQgPhjgRgTgjgVgUgWgjgXfJgZgYhbhahcashehdfOhmaEaEgcaEaEaEfJfJhigBgBgBgBhsgBgBgBgBqFqFqFqFqFqFqFqFqFqFqFqFqFqFqFqFqFqFqFqFqFqFqFqFqFqFqFqFbdabababababababababababababababababababababababababababababababababaaaa +aaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababbXbXhlhkflhxhBfldIhofThphrhqdmdmdmdmdmdmababababababababababababababababababababababababababababababababababababababababababababababgygygygygyhFhuhththththvhJhwhzhyhQhAhCgjhEhDhGilhHgrhmhIfJfJhKfAfJfJgsgrhMhLgthNhmhPfJfJhRgBhThSgBhUhWhVhXgBqFqFqFbdbdbdgyqFqFqFqFqFqFqFqFqFqFqFqFqFqFqFqFqFqFqFqFqFbdabababababababababababababababababababababababababababababababababaaaa +aaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababbXbXhYiahZflhBibfSicfUiddmifiedmigihcNiidmabababababababababababababababababababababababababababababababababababababababababababababababgygygygyhFgIgIgIijgIikiogIimgPiwinipgjhDiqisiriuitiHiviyixiAiziCiBiDixixixgviEiKiGiJiIiLiPiNiMiZiOiRiQiSgBqFqFqFbdabbdbdbdgygygygygygygygygygygygygygybdgygygygybdbdabababababababababababababababababababababababababababababababababaaaa +aaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababbXbXbXababdmfpiTiViUhZiWiXfTigbhcNihdmigiTihiYdmababababababababababababababababababababababababababababababababababbdbdbdbdbdbdababababababkDjigygygyjpgIgIjbjajdjchhjejgjfjrjhjjgjjljkhngjgjjnjnjojqjsjtjqjujqjIjxjxjxjxjtjqjvjwjwjKgBjzjygBjAjCjBjDgBqFqFqFbdabababbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdababababababababababababababababababababababababababababababababababaaaa +aaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababbXdmdmdmdmdmdmfnfUjEiTfUhojFigigfVfqifdmigdIeojGdmababababababababababababababababababababababababababababababababbdbdbdgygygygybdbdbdababsEgygygygygygyjHghgggzjHjHjHjHjHkrjHjJjJjJgjkvgjjMjLjNjnhOjOjqjQjSjRjUjTjWjVjXjXjXjYjqjZkajwkckbkbkbkbkdkfkehXgBqFqFqFbdababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaa +aaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababbXdmkgfUhZkhdmhYkiiadmhpdmkkkjkldmcNkmidkndIepfUdmabababababababababababababababababababababababababababababababbdbdgygygygygygygygybdbdabgygygygygygygygygycJkzkokqkpkskEkuktkwlckykxkAnkkCkBkGkFkIkHjqkJkLkKkMjXjWkNkOjXjXkPjqkQkRjwkTkSkVkUkbgBgBgBgBgBqFqFqFbdababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaa aaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdmkgdIhZdIkWkmiTkXiTkYcNcNkZfqcNdIdIdmfUknfUfUdmababababababababababababababababababababababababababababababbdbdgygygygygygygygygygybdmRgygygygygygygygygygykzkolblaldnllflelgkokolalhgjljlijnjnlllkjqlmlolnlqlplslrlultlwlvjqlxlyjwlAlzlzlBkbababbdbdqFqFqFqFbdababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaa aaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdmlChZfUdIlDdIlEeVdIlFkYlEihlGdIlHeodmlIdIhqcNdmabababababababababababababababababababababababababababababbdbdqFqFqFqFqFgygygygygygynDlJgycJgygygygygygygygykzkolblalLlKlNlMlalOkolPgjgjnNnOjnlQlSlRjqlTlVlUlXlWlZlYlmmamcmbjqmdmejwmgmfmfmfkbabbdbdqFqFqFqFqFbdababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaa -aaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdmlCmhfUfpdmmidmmkmjdmdIdmmkmjdmfUkmdmeUmlidlIdmabababababababababababababababababababababababababababababbdnmqFqFmRqFqFqFgygygygygygygygycJgygygygygygygygykzkommlamnkEmpmomrmqkomsgjowoxoyjnmtmvmujqmxmzmykMmAmCmBjXmDjXjXjqmEmFjwkbkbkbkbkbbdbdqFqFqFqFqFbdbdababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaa +aaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdmlCmhfUfpdmmidmmkmjdmdIdmmkmjdmfUkmdmeUmlidlIdmabababababababababababababababababababababababababababababbdnmqFqFmRqFqFqFgygygygygygygygycJgygygygygygygygykzkommlamnkEmpmomrmqkomsgjowoxoyjnmtmvmujqmxmzmyjUiFjmmBjXmDjXjXjqmEmFjwkbkbkbkbkbbdbdqFqFqFqFqFbdbdababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaa aaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdmdmdmdmdmdmmidmhqlHdIiWmGfUiWfUhqfSdmmHmJmImKdmabababababababababababababababababababababababababababababbdnnqFqFqFqFqFqFqFgygygygygygygycJgygygygygygygycJkzkomMmLmNnlmOmomSmPkomTgjoYoxoyjnmUjnmVjqmWlnmXmZmYnbnamzmznckPjqndnejwababababbdbdqFqFqFqFqFbdbdabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaa aaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdmmidmlHeonfiWngdIihdmfUeodmnhnininjdmadababababababababababababababababababababababababababababbdqFqFqFqFnLqFqFqFqFgygygygygygycJgygygygygygycJcJkzkokonMoekokoofomofkonogjowpBnpjnnqnsnrjqntnvnunxnwnznynBnAnCjXjqjwjwjwabababbdbdqFqFqFqFqFbdbdababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaa aaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdmmidmiWdIcrnEfUeohqdmmidmdmigfUninjnFadababababababababababababababababababababababababababababbdnGoAqFoCnGoDqFqFqFqFgygygygygycJgygygygygycJcJcJkzqFqFqdqeqfkonHnJnIkonKgjqFproSjnnPnQnQnSnRnUnTnSnVnXnWnZnYoboanZabababababbdbdqFqFqFqFqFbdbdabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaa @@ -1709,7 +1706,7 @@ aaababababababababababababababababababababababababababababababababababababababab aaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababadaddmpsoRmKdmadabababababababababababababababababababababababababababababbdqFqKqMqLqFqFqFqFgybdbdbdgygygygygygygygygyababababababababbdbdbdbdbdqFpqqFgybdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdqFqFqFqFqFbdbdababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaa aaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababadadadrBrCrDadadababababababababababababababababababababababababababababababqFqFqFmRqFqFqFbdbdbdababgygygygygygygygygyababababababababababbdbdbdqFpqqFgyqFqFqFqFqFqFqFqFqFqFqFqFqFqFqFqFqFqFqFqFqFqFqFqFbdbdabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaa aaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababqNqNqNqFqFbdbdbdbdababgygygygygygygygygyabababababababababababbdbdqFpqqFgyqFqFqFqFqFqFqFqFqFqFqFqFqFqFqFqFqFqFqFqFqFqFqFbdbdababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaa -aaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababgygygygyababgygygygyababababababababababbdbdqFpupvqFqFqFqFqFqFqFqFqFqFqFqFqFqFqFqFqFqFqFqFqFqFqFbdbdabababababababababababeLabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaa +aaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababgygygygyababgygygygyababababababababababbdbdqFpupvqFqFqFqFqFqFqFqFqFqFqFqFqFqFqFqFqFqFqFqFqFqFqFbdbdabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaa aaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababgygygygyabababgygygyababababababababababbdbdqFqFpqqFbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaa aaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababgygygygygyababgygygyababababababababababbdbdbdqFpqqFbdbdbdbdbdababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaa aaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababgygygygygygygygygyababababababababababbdbdbdqFpqqFgygygyrHpwpwpwpwpwpwpwpwpwpwpwpwabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaa @@ -1749,33 +1746,33 @@ aaababababababababababababababababababababababababababababababababababababababab aaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababgygygygyqFqcqFgygybdababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaa aaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababgygygygyqFqcqFgygybdababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaa aaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababgygygygyqFqcqFgygybdababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababgygygygygygygygygygygygygygygygygyabababababababababaaaa -aaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababgygygygygyqFqcqFgygybdbdabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababgyrprprprprprprprprprprprprprpgygyabababababababababaaaa -aaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababgygygygygygyqFqcqFgygygybdbdbdbdbdababababababababababababababababababababababababababababababababababababababadadadadababababababababababcJcJgyababgygygygygycJgygygycJgygygycJgygyrpgygyabababababababababaaaa -aaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababgygygygygygyqFqcqFgygygygygygygybdbdababababababababababababababababababababababababababababababababababababababababadgygygygygygygygygygygycJgyababgygygygyrSryrZgyrSryrZgyrSryrZgyrpgygyabababababababababaaaa -aaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababgygygygygygyqFqcqFrJriqFqFqFqFqFgybdababababababababababababababababababababababababababababababababababababababababababcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJrSsarZcJrSsarZcJrSsarZcJrpgygyabababababababababaaaa -aaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababgygygygygyqFqmqlqSqTqlqlqlqGqFgybdbdbdababababababababababababababababababababababababababababababababqUqUqUqUqUqUqUabgygygygycJgygygygygycJgygycJcJgygygyrSsarZgyrSsarZgyrSsarZgyrpgygyabababababababababaaaa -aaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababgygygygygyqFqFqFpBpCqFqFqFqcqFqFqFgybdababababababababababababababababababababababababababababababababqUqVqXqWqZqYqUabababababcJabababcJgycJgycJcJcJcJgygyrSsarZgyrSsarZgyrSsarZgyrpgygyabababababababababaaaa -aaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababbdbdgysLgygygygygygygyqFqmqlqGqFgybdbdabababababababababababababababababababababababababababababababqUqVrbraqUqUqUababgygygycJcJcJcJcJcJcJcJcJgygycJcJgyrSsarZcJrSsarZcJrSsarZcJrpgygyabababababababababaaaa -aaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababbdbdmRbdbdbdbdbdbdgyqFqFqFqcqFgygybdbdbdabababababababababababababababababababababababababababababqUqVrfrcqZrgqUabababababcJabcJababgycJgygygygycJgygyrSsarZgyrSsarZgyrSsarZgyrpgygyabababababababababaaaa -aaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababbdbdgygyqFqcqFqFqFqFgybdbdababababababababababababababababababababababababrhrhrhrhrhrjrkrjrjrjqUqUqUabbdabcJabcJcJgygycJgygygygygygygyrSsarZgyrSsarZgyrSsarZgyrpgygyabababababababababaaaa -aaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababbdbdgyqFqmqlqlqGqFgygybdbdababababababbdbdbdababababababababababababababrhrlrnrmsbrorrrqrtrsruruqUbdbdrvcJabcJgygygycJcJcJcJcJcJcJcJrSsarZcJrSsarZcJrSsarZcJrpgygygyababababababababaaaa -aaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababbdgyqFqFqFqFqcqFqFqFqFbdbdabababbdbdbdgybdababababababababababababababrhrwrzrxrErArGrFrKrIrFrLrNrMrMdhcJababgygygycJgygycJgygygygyrSsarZgyrSsarZgyrSsarZgycJgygygyababababababababaaaa -aaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababbdbdgygygyqFqmqlqlqGqFgybdabbdbdbdgygygybdababababababababababababababrhrOrQrPshrRrGrTrVrUrXrWqUrYrYrYrYrYsxsqsqszscsxszscgygygygyrSsarZgyrSsarZgyrSsarZgyrprprpgyababababababababaaaa -aaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababbdbdbdbdqFsHqFqFqcqFgybdbdbdgygygygygypzpzpzpzabababababababsdsdsdsdrhserQsfsNsgsirFsksjrXsmrjsnspsosrsRstsssvsusTswsysxsqszgygysVsUcJgycJsUcJgycJsUcJgycJgyrpgyababababababababaaaa -aaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababbdbdmRgyqFqcqFqFqFgygygygygygygyAwsFsDpzabababababababsdsGsJsIrhsKrQsQsWsYrGrFtetdrFtfrjtktmtltqsXtutrsvsutctvtztytCtAtEthtititititititititititntjtwcJrpgyababababababababaaaa -aaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababbdbdqFqmqlqGqFgygygygygygygyAwAetJpzababscscscscabsdtKtMtLrhtNtPtOrEtRrGtStUtTrGtVrjtWtYtXuatxucubugudtDuhujsxsqszgygycJtFcJgycJtFcJgycJtFcJgycJgyrpgyababababababababaaaa -aaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababbdqFqFqFulqFgygygygygygygyAwAeumscscscscuounscscscsctHscscuquququqtIszuqtZuqtIszuquiukuqupuvuyuxuAuzuquBuCscgygygygyrSurrZgyrSurrZgyrSurrZgyrprprpgyababababababababaaaa -aaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababbdbdbdrJuGriqFqFqFqFqFqFqFpBAzuDuIuHuKusuMuLuOuNuQuPuSuRuUuTuWutuXuWuWuWuZuYuWuWvbvavdvcvfuuvhvgvjvivlvktruwgycJgygyrSurrZgyrSurrZgyrSurrZgycJgygygyababababababababaaaa -aaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababbdbdAwvovnvpvpvpvpvpvpvpvpvrvqvtvsvvuFvxvwvwvwvzvyvBvAvCvwvwuJvFvEvwvwvHvGvIvwvKvJvMvLvOuVvLvPsvsvvRvQvStDcJcJcJcJrSurrZcJrSurrZcJrSurrZcJrpgygygyababababababababaaaa -aaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababbdbdpBvTpCqFqFqFqFqFqFqFrJsCvUscscscscscscscscscvevuvmvDvuvNuqvVuqvWscscscscscscscscscscscsxsqsqszscvXvYscgygycJgyrSurrZgyrSurrZgyrSurrZgyrpgygyabababababababababaaaa -aaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababbdbdbdbdqFulqFgygygygygygygyAwowowbdabababababababwfwewhwgwjwiwlwkwnwmwowfabababababababadadadgygygygyvZwpwrvZgygycJgyrSurrZgyrSurrZgyrSurrZgyrpgygyabababababababababaaaa -aaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababbdbdbdbdbdbdqFulqFgygygygygygygyAwwsbdbdabababababababwfwewuwtwwwvwvwvwywxwzwfababababababababadadgygygygywawAwCwacJcJcJcJrSurrZcJrSurrZcJrSurrZcJrpgygyabababababababababaaaa -aaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababbdqFqFqFqFqFqFulqFgygygygygygygyAwwsbdababababababababwfwewEwDwDwFwHwGwJwIwKwfabababababababababadgygygygywMwLwNscwbgywcgyrSurrZgyrSurrZgyrSurrZgyrpgygyabababababababababaaaa -aaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababbdqFqIqlqlqlqlwQqFbdbdgygygygybdbdbdbdababababababababwfwewRwvwvwvwTwSwVwUwWwfababababababababababgygygywdwdwdwdwdwdwdgygyrSurrZgyrSurrZgyrSurrZgyrpgygyabababababababababaaaa -aaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababbdqFqcqFqFqFqFwqqFbdbdbdbdbdbdbdabababababababababababwfwYxawZwZxbxdxcxfxexgwfababababababababababgygygywdwdwdwdwdwdwdgygyrSurrZcJrSurrZcJrSurrZcJrpgygyabababababababababaaaa -aaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababbdqFqcqFbdbdbdmRbdbdabababababababababababababababababwfxhxjxiwvwfwOwBwfwPwXwfabababababababababgygygygywdwdwdwdwdwdwdgygyrSxkrZgyrSxkrZgyrSxkrZgyrpgygyabababababababababaaaa -aaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababbdqFqcqFbdbdbdbdabababababababababababababababababababwfxpxrxqwvwfxtxswfxuxwwfabababababababababgygygygywdwdwdwdwdwdwdgygygycJgygygycJgygygycJgygyrpgygyabababababababababaaaa -aaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababbdqFqcqFbdbdbdababababababababababababababababababababwfwfwfwfwfwfxyxxwfxzxAwfababababababababababgygygywdwdwdwdwdwdwdgyxlrprprprprprprprprprprprprpgygyabababababababababaaaa +aaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababgygygygygyqFqcqFgygybdbdabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababgyrgrgrgrgrgrgrgrgrgrgrgrgrgrggygyabababababababababaaaa +aaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababgygygygygygyqFqcqFgygygybdbdbdbdbdababababababababababababababababababababababababababababababababababababababadadadadababababababababababcJcJgyababgygygygygycJgygygycJgygygycJgygyrggygyabababababababababaaaa +aaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababgygygygygygyqFqcqFgygygygygygygybdbdababababababababababababababababababababababababababababababababababababababababadgygygygygygygygygygygycJgyababgygygygyryrprSgyryrprSgyryrprSgyrggygyabababababababababaaaa +aaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababgygygygygygyqFqcqFrJriqFqFqFqFqFgybdababababababababababababababababababababababababababababababababababababababababababcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJcJryrZrScJryrZrScJryrZrScJrggygyabababababababababaaaa +aaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababgygygygygyqFqmqlqSqTqlqlqlqGqFgybdbdbdababababababababababababababababababababababababababababababababrjrjrjrjrjrjababgygygygycJgygygygygycJgygycJcJgygygyryrZrSgyryrZrSgyryrZrSgyrggygyabababababababababaaaa +aaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababgygygygygyqFqFqFpBpCqFqFqFqcqFqFqFgybdababababababababababababababababababababababababababababababababrjqVqXqWsarjababababababcJabababcJgycJgycJcJcJcJgygyryrZrSgyryrZrSgyryrZrSgyrggygyabababababababababaaaa +aaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababbdbdgysLgygygygygygygyqFqmqlqGqFgybdbdabababababababababababababababababababababababababababababababrjqVrbrarjrjrjababgygygycJcJcJcJcJcJcJcJcJgygycJcJgyryrZrScJryrZrScJryrZrScJrggygyabababababababababaaaa +aaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababbdbdmRbdbdbdbdbdbdgyqFqFqFqcqFgygybdbdbdabababababababababababababababababababababababababababababrjqVrfrcqZqYrjabababababcJabcJababgycJgygygygycJgygyryrZrSgyryrZrSgyryrZrSgyrggygyabababababababababaaaa +aaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababbdbdgygyqFqcqFqFqFqFgybdbdababababababababababababababababababababababababrErErErErErjrkrjrjrjrjrjqUabbdabcJabcJcJgygycJgygygygygygygyryrZrSgyryrZrSgyryrZrSgyrggygyabababababababababaaaa +aaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababbdbdgyqFqmqlqlqGqFgygybdbdababababababbdbdbdababababababababababababababrErlrnrmshrorrrqrtrsruruqUbdbdrvcJabcJgygygycJcJcJcJcJcJcJcJryrZrScJryrZrScJryrZrScJrggygygyababababababababaaaa +aaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababbdgyqFqFqFqFqcqFqFqFqFbdbdabababbdbdbdgybdababababababababababababababrErwrzrxrErArGrFrKrIrFrLrNrMrMdhcJababgygygycJgygycJgygygygyryrZrSgyryrZrSgyryrZrSgycJgygygyababababababababaaaa +aaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababbdbdgygygyqFqmqlqlqGqFgybdabbdbdbdgygygybdababababababababababababababrErOrQrPsqrRrGrTjPrUrXrWqUrYrYrYrYrYstsssbuquqstsxuqgygygygyryrZrSgyryrZrSgyryrZrSgyrgrgrggyababababababababaaaa +aaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababbdbdbdbdqFszqFqFqcqFgybdbdbdgygygygygypzpzpzpzabababababababsdsdsdsdrhserQsfsHsgsirFmAsjrXsmrjsnspsosrsNsRsRsvsusTswsystsssxgygysVsUcJgycJsUcJgycJsUcJgycJgyrggyababababababababaaaa +aaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababbdbdmRgyqFqcqFqFqFgygygygygygygyAwsFsDpzabababababababsdsGsJsIrhsKrQsQsWsYrGrFtetdrFtfrjtktmtltqsXtutrsvsutctvtztytCtAtEthtititititititititititntjtwcJrggyababababababababaaaa +aaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababbdbdqFqmqlqGqFgygygygygygygyAwAetJpzababscscscscabsdtKtMtLrhtNtPtOrEtRrGtStUtTrGtVrjtWtYtXuatxucubugudtDuhujstsssxgygycJtFcJgycJtFcJgycJtFcJgycJgyrggyababababababababaaaa +aaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababbdqFqFqFulqFgygygygygygygyAwAeumscscscscuounscscscsctHscscuquququqtIsxuqtZuqtIsxuquiukuqupuvuyuxuAuzuquBuCscgygygygyryurrSgyryurrSgyryurrSgyrgrgrggyababababababababaaaa +aaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababbdbdbdrJuGriqFqFqFqFqFqFqFpBAzuDuIuHuKusuMuLuOuNuQuPuSuRuUuTuWutuXuWuWuWuZuYuWuWvbvavdvcvfuuvhvgvjvivlvktruwgycJgygyryurrSgyryurrSgyryurrSgycJgygygyababababababababaaaa +aaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababbdbdAwvovnvpvpvpvpvpvpvpvpvrvqvtvsvvuFvxvwvwvwvzvyvBvAvCvwvwuJvFvEvwvwvHvGvIvwvKvJvMvLvOuVvLvPsvsvvRvevStDcJcJcJcJryurrScJryurrScJryurrScJrggygygyababababababababaaaa +aaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababbdbdpBvTpCqFqFqFqFqFqFqFrJsCvUscscscscuquququqscvmvDvuvNvDvQuqvVuqvWscuquququququququququqstsssbsxuqvXvYuqgygycJgyryurrSgyryurrSgyryurrSgyrggygyabababababababababaaaa +aaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababbdbdbdbdqFulqFgygygygygygygyAwowowbdabababababababwfwewhwgwjwiwlwkwnwmwowfabababababababadadadgygygygyvZwpwavZgygycJgyryurrSgyryurrSgyryurrSgyrggygyabababababababababaaaa +aaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababbdbdbdbdbdbdqFulqFgygygygygygygyAwwsbdbdabababababababwfwewuwtwwwvwvwvwywxwzwfababababababababadadgygygygywbwAwcwbcJcJcJcJryurrScJryurrScJryurrScJrggygyabababababababababaaaa +aaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababbdqFqFqFqFqFqFulqFgygygygygygygyAwwsbdababababababababwfwewEwDwDwFwHwGwJwIwKwfabababababababababadgygygygywdwLwNuqwqgywrgyryurrSgyryurrSgyryurrSgyrggygyabababababababababaaaa +aaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababbdqFqIqlqlqlqlwQqFbdbdgygygygybdbdbdbdababababababababwfwewRwvwvwvwTwSwVwUwWwfababababababababababgygygywBwBwBwBwBwBwBgygyryurrSgyryurrSgyryurrSgyrggygyabababababababababaaaa +aaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababbdqFqcqFqFqFqFwCqFbdbdbdbdbdbdbdabababababababababababwfwYxawZwZxbxdxcxfxexgwfababababababababababgygygywBwBwBwBwBwBwBgygyryurrScJryurrScJryurrScJrggygyabababababababababaaaa +aaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababbdqFqcqFbdbdbdmRbdbdabababababababababababababababababwfxhxjxiwvwfwOwMwfwPwXwfabababababababababgygygygywBwBwBwBwBwBwBgygyryxkrSgyryxkrSgyryxkrSgyrggygyabababababababababaaaa +aaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababbdqFqcqFbdbdbdbdabababababababababababababababababababwfxpxrxqwvwfxtxswfxuxwwfabababababababababgygygygywBwBwBwBwBwBwBgygygycJgygygycJgygygycJgygyrggygyabababababababababaaaa +aaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababbdqFqcqFbdbdbdababababababababababababababababababababwfwfwfwfwfwfxyxxwfxzxAwfababababababababababgygygywBwBwBwBwBwBwBgyxlrgrgrgrgrgrgrgrgrgrgrgrgrggygyabababababababababaaaa aaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababbdbdqFqcqFbdbdababababababababababababababababababababababababababwfwfwfwfwfwfwfababababababababababababgygygygygygygygygygygygygygygygygygygygygygygygygyabababababababababaaaa aaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababbdgyqFqcqFbdbdabababababababababababababababababababababababababababababababababababababababababababababgygygygygygyabgygygygygygygygygygygygygygygygygygyabababababababababaaaa aaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababbdqFqFqcqFbdababababababababababababababababababababababababababababababababababababababababababababababababgygygyabababababababababababababababababababababababababababababaaaa @@ -1806,7 +1803,7 @@ aaababababababababababababababababababababababababababababababababababababababab aaabababababababababababababababababababababababababababababababababababababababababababababababababababababababgygygyqFqFqFqFqFxUxWxVqFqFqFbdababababababababababababababababababababababababababababababbdbdbdbdbdbdbdababababababababababababababababababxDxXxDxDxDxDxDxDxOykgygygygygygygygygygygyababababababababababababababmRxZsCtQtQyaqFrJuGriqFqFqFqFqFqFgyadabbdababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaa aaababababababababababababababababababababababababababababababababababababababababababababababababababbdgyybybybybybybymylywybybybybybqFqFqFbdabababababababababababababababababababababababababababababbdbdbdbdbdbdbdbdbdbdbdbdabababababababababababxDxDxDxDygyfyhxDxFyixDxMxDyjyjyCyIyDyjgygygygygygyababababababababababababbdmRynowueueufqFAwyovnyqypypypyrqFgygygygybdabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaa aaababababababababababababababababababababababababababababababababababababababababababababababababbdbdbdgyybysyuytyRyvyyyxyAyzyVyByEyWsCsCribdbdbdbdabababababababababababababababababababababababababbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdabababababababxDyFyHyGyKyJyLxDxIxHyMxRxDyNyPyOyQyOzdgygygygygygygyabbdbdabababbdbdbdbdbdbdmRySuDuEuEpCqFAwyUyTzjziyTyTyXqFqFqFqFgybdabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaa -aaababababababababababababababababababababababababababababababababababababababababababababababababbdbdbdgyybyYzbzazvzczfzezezgzCzhzkzLzmzlufbdbdbdbdbdbdabababababababababababababababababababababbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdababababababxDznyHzozqzpzrxDxDxDxDxOxDyNzszszuztAcgygygygygygygygygybdbdbdbdbdgygygygygygygygygygygygypByUzwzwzwzxyTzzzyypyrqFnDmRbdababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaa +aaababababababababababababababababababababababababababababababababababababababababababababababababbdbdbdgyybyYzbzazvzczfzezezgzCzhzkzLzmzlufbdbdbdbdbdbdabababababababababababababababababababababbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdababababababxDmCyHzorVzpzrxDxDxDxDxOxDyNzszszuztAcgygygygygygygygygybdbdbdbdbdgygygygygygygygygygygygypByUzwzwzwzxyTzzzyypyrqFnDmRbdababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaa aaababababababababababababababababababababababababababababababababababababababababababababababababbdbdbdgyybzAzDzBzFzEzHzGzJzIyVzKzMAfxvzNufbdbdbdbdbdbdbdbdbdabababababababababababababababababbdbdbdmRbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdabababxDzOzQzPzSzRzUzTzWzVzYzXxDyNzszZAbAaAggygygygygygygygygygygygygygygygygygygygygygygyAdAdAxAuyUAiAkAjAlyTyTyTyTAmqFgygybdbdabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaa aaababababababababababababababababababababababababababababababababababababababababababababababababbdbdbdgyybAnAqAoyRArAszbAtybybybybybybzNufqFqFqFqFqFqFqFbdbdbdbdabababababababababababababababbdbdqFsAqFqFqFqFqFqFqFqFrJriqFqFqFqFqFqFbdbdbdbdbdababxDxDxDxDxDxDxDAAABAvAAABxDyjyjyjAyyjyjyjAHACgygygygygygygygygygygygygygygygygygygyAJAuADAFAEANAGAGAIAKAYAMALBiAmqFqFqFnnqFabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaa aaabababababababababababababababababababababababababababababababababababababababababababababababababbdbdgyybAOAQAPzvzbARzbzbASAUATAWAVBkAXqTqlqlqlqlqlqGqFbdbdbdbdbdbdababababababababababababbdbdbdqFqIqlqlqlqlqlqlqlqlqSqTqlqlqlqlqGqFbdbdbdbdbdabababababyjBaAZBbzszsBczszsBeBdzsBfAbBgBhBhBjBlyIyDptptptptptptptptptptptptptptptAxBuBmBoBnBqBpBsBrBtBtBvBzBxBwBWByqFqFqFnnqFabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaa @@ -1814,7 +1811,7 @@ aaababababababababababababababababababababababababababababababababababababababab aaabababababababababababababababababababababababababababababababababababababababababababababababababbdbdgygygygygygygygygygygyAwCeAhowowowufgysMgygyqFqmqlqlqGqFbdbdbdbdababababababababababbdqFqFqIqlqHqFgygygybdgygysMgygygygygyqFqcqFbdbdbdbdbdbdbdbdbdbdbdbdbdyjCfCgzszszszsChzsCiCkCjClzsCnCoyIyDCpCpCpCpCpCpCpCpCpCpCpCpCpCvCvAxBuCACqBnCrBnyUyTyTyTyTyTyTyTyTCsuDxJpCqFnnbdababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaa aaaaabababababababababababababababababababababababababababababababababababababababababababababababababbdbdbdbdbdbdbdbdbdgygygypBuDuDuDuDCtApbdmRbdbdqFqFqFqFqcqFbdbdbdbdbdabababababbdbdbdbdbdqFqIqHqFqFqFbdbdbdbdbdbdmRbdbdbdbdbdqFqcqFbdbdbdbdbdbdmRbdbdbdbdbdCuCuCBCwCBCxCxCzCyCxCxCxCCCDCCyjDcgygygygygygygycJgygygycJgygygygyfbDzfbDHAuBnCFCECHCGCICICKCJCMCLCOCNCPCPCPqFqFbdababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaa aaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababbdbdbdbdbdbdbdbdbdbdbdbdabbdbdbdbdbdqFqcqFqFqFqFgybdbdbdbdbdbdbdbdbdbdbdqFqcqFgybdbdbdabababababbdbdbdbdbdbdqFqcqFqFqFrJriqFqFsAqFqFbdbdbdCuCRCQCTCSCxCUCWCVCYCXCxCZDbDayjgygygygygygygygycJgygygyDIcJcJcJcJcJDIDzDzAdDdDfDeDgDgDgDgDhDgDiDgDgDjqFqFqFqFqFbdababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaa -aaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababbdbdbdbdqFqmqlqlqlqGqFgygygygygyqFqFqFqFqFqFqFqcqFbdbdabababababababbdbdbdbdbdbdqFqmqlqlqlqSqTqlqlqlqGqFbdbdbdCuDlDkDnDmCxDoDqDpDsDrCxDtDvDuyjgygygygygygycJcJcJcJcJcJcJDMDMDMDMDMDzfbfbAdDwDxBnDQDyDACICIDBCICKDgDCqFfbfbfbbdbdababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaa +aaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababbdbdbdbdqFqmqlqlqlqGqFgygygygygyqFqFqFqFqFqFqFqcqFbdbdabababababababbdbdbdbdbdbdqFqmqlqlqlqSqTqlqlqlqGqFbdbdbdCuDlskDnDmCxDoDqDpDsDrCxDtDvDuyjgygygygygygycJcJcJcJcJcJcJDMDMDMDMDMDzfbfbAdDwDxBnDQDyDACICIDBCICKDgDCqFfbfbfbbdbdababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaa aaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababbdbdbdqFqFqFqFqFqmqGqFqFrJriqFqFqIqlqlqlqlqlqHqFbdabababababababababbdbdbdbdbdqFqFqFqFqFpBpCqFqFqFqcqFqFqFqFCuCuCuCuCuCxDDDEDpDGDFCxDREcCCyjgygygygygygygygycJgygygycJDMDMDMDMDMDzfbAJAuBnDKDJDgDgDgDgDgDgEpDLDgDCqFfbfbbdbdabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaa aaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababbdbdbdgysMqFqFqmqlqlqSqTqlqlqHqFqFqFqFqFqFqFbdabababababababababababbdbdbdbdbdbdbdgygygygybdqFqmqlqlqGqFgygygygygyCxDNDOCzCxCxCxowDPufyZgygygygygygygygycJgygygycJDMDMDMDMDMEBBuEHDTDSDVDUDXDWDZDYEbEaEMDLDgDCqFfbfbbdbdabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaa aaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababbdbdmRbdqFqFqFqFpBpCqFqFqFqFsMgybdbdbdbdbdababababababababababababababbdbdbdbdbdbdbdbdbdqFqFqFqFqcqFgygygygygygygyEdowowowowowowufgygygygygygycJcJcJcJcJcJcJcJDMDMDMDMDMEeEgEfEiEhEjBnBnBnElEkEnEmENEoDgDCqFfbfbbdababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaa @@ -1822,8 +1819,8 @@ aaaaabababababababababababababababababababababababababababababababababababababab aaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababbdbdbdbdbdbdbdbdbdbdbdababababababababababababababababababababababababababababbdbdbdbdqFqmqlqlqlqlqlqlqlqlEzqlqlqlqlqlqlqlqlEAqFgygygygygygygygygygycJDMDMDMDMDMEWfbDHAuECEDBnBnBnEFEEEnEnEpEGDgDCqFfbfbbdababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaa aaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababbdbdbdbdbdababababababababababababababababababababababababababababababababbdbdbdbdqFqFqFqFqFqFqFqFqFqFqFqFqFqFqFqFqFqFqFulqFrJriqFqFqFpzgygygygyEXDMDMDMDMDMDIfbfbfbEIEJDUELEKFhEYFiEOENDLDgDCqFfbfbbdababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaa aaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdmRFjEQESERETESESESEVEUEUEUEUEUEUEUEUEUEUEUEUEUFmFlEZBnFaBnFcFbFeFdFgFfDgDCqFfbbdbdababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaa -aaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdqFqFqFpBpCqFqFqFpzbdbSabababababababababababFnEIAdAxAuAdDgDgDgDgDgDgDgDCqFfbababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaa -aaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdgygygybSabababababababababababFpFovpvpvpvpvpvpvpvpvpvpvpFkqFbdababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaa +aaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdqFqFqFpBpCqFqFqFpzbdbXabababababababababababFnEIAdAxAuAdDgDgDgDgDgDgDgDCqFfbababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaa +aaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdgygygybXabababababababababababFpFovpvpvpvpvpvpvpvpvpvpvpFkqFbdababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaa aaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababbdbdbdbdbdbdbdbdbdbdbdbdbdbdFqbdabababababababababababababpzqFqFqFqFqFqFqFqFqFqFqFqFqFbdababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaa aaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdababababababababababababababqFqFababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaa aaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababbdbdbdbdbdbdbdbdbdbdbdbdababbdbdababababababababababababababqFqFababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaa diff --git a/maps/overmap/bearcat/bearcat.dmm b/maps/overmap/bearcat/bearcat.dmm index 27ee41d46f3..3e2791db7a1 100644 --- a/maps/overmap/bearcat/bearcat.dmm +++ b/maps/overmap/bearcat/bearcat.dmm @@ -43,9 +43,9 @@ "aQ" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/atmospherics/pipe/simple{dir = 2; icon_state = "intact"; level = 1; tag = "icon-intact"},/turf/simulated/floor{tag = "icon-neutralfull (EAST)"; icon_state = "neutralfull"; dir = 4},/area/ship/scrap/command) "aR" = (/turf/simulated/wall/r_wall,/area/ship/scrap/dock) "aS" = (/obj/machinery/door/airlock/hatch,/obj/machinery/atmospherics/pipe/simple{tag = "icon-intact"; icon_state = "intact"; dir = 2; level = 2},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor,/area/ship/scrap/dock) -"aT" = (/turf/simulated/shuttle/wall{tag = "icon-swall_s6"; icon_state = "swall_s6"},/area/ship/scrap/shuttle/outgoing) +"aT" = (/turf/simulated/shuttle/wall{tag = "icon-swall_s6"; icon_state = "swall_s"; dir = 14},/area/ship/scrap/shuttle/outgoing) "aU" = (/obj/structure/shuttle/window{tag = "icon-3"; icon_state = "3"},/turf/simulated/shuttle/floor,/area/ship/scrap/shuttle/outgoing) -"aV" = (/turf/simulated/shuttle/wall{tag = "icon-swall_s10"; icon_state = "swall_s10"},/area/ship/scrap/shuttle/outgoing) +"aV" = (/turf/simulated/shuttle/wall{tag = "icon-swall_s10"; icon_state = "swall_s"; dir = 2},/area/ship/scrap/shuttle/outgoing) "aW" = (/obj/structure/window/reinforced{dir = 5; health = 1e+007},/obj/structure/grille,/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "scraplock"; name = "External Blast Doors"; opacity = 0},/obj/structure/window/reinforced{dir = 5; health = 1e+007},/turf/simulated/floor{icon_state = "white"},/area/ship/scrap/dock) "aX" = (/obj/machinery/light{tag = "icon-tube1 (NORTH)"; icon_state = "tube1"; dir = 1},/obj/machinery/atmospherics/unary/vent_pump{dir = 4; layer = 2.4; level = 2; on = 1},/turf/simulated/floor{tag = "icon-neutralfull (EAST)"; icon_state = "neutralfull"; dir = 4},/area/ship/scrap/dock) "aY" = (/obj/machinery/atmospherics/pipe/manifold{icon_state = "manifold"; level = 2},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/turf/simulated/floor{tag = "icon-neutralfull (EAST)"; icon_state = "neutralfull"; dir = 4},/area/ship/scrap/dock) @@ -64,7 +64,7 @@ "bl" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor{tag = "icon-plaque (SOUTHEAST)"; icon_state = "plaque"; dir = 6},/area/ship/scrap/dock) "bm" = (/obj/machinery/atmospherics/pipe/simple{tag = "icon-intact"; icon_state = "intact"; dir = 2; level = 2},/turf/simulated/floor{tag = "icon-neutralfull (EAST)"; icon_state = "neutralfull"; dir = 4},/area/ship/scrap/dock) "bn" = (/turf/simulated/floor{tag = "icon-floorgrime (SOUTHEAST)"; icon_state = "floorgrime"; dir = 6},/area/ship/scrap/dock) -"bo" = (/turf/simulated/shuttle/wall{tag = "icon-swall3"; icon_state = "swall3"},/area/ship/scrap/shuttle/outgoing) +"bo" = (/turf/simulated/shuttle/wall{tag = "icon-swall3"; icon_state = "swall_straight"; dir = 1},/area/ship/scrap/shuttle/outgoing) "bp" = (/turf/simulated/shuttle/floor,/area/ship/scrap/shuttle/outgoing) "bq" = (/obj/machinery/door/unpowered/shuttle,/turf/simulated/shuttle/floor,/area/ship/scrap/shuttle/outgoing) "br" = (/obj/machinery/door/airlock/external,/turf/simulated/floor{tag = "icon-neutralfull (EAST)"; icon_state = "neutralfull"; dir = 4},/area/ship/scrap/dock) @@ -87,9 +87,9 @@ "bI" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 4; layer = 2.4; level = 2; on = 1},/obj/item/device/radio/intercom{pixel_y = -32},/obj/machinery/alarm{dir = 4; icon_state = "alarm0"; pixel_x = -24; tag = "icon-alarm0 (EAST)"},/turf/simulated/floor{tag = "icon-bot"; icon_state = "bot"; dir = 2},/area/ship/scrap/dock) "bJ" = (/obj/machinery/atmospherics/pipe/simple{icon_state = "intact"; dir = 10; pixel_x = 0; level = 2; initialize_directions = 10},/turf/simulated/floor,/area/ship/scrap/dock) "bK" = (/obj/structure/lattice,/obj/structure/window/reinforced{dir = 1},/obj/machinery/light{tag = "icon-tube1 (WEST)"; icon_state = "tube1"; dir = 8},/turf/space,/area/ship/scrap/dock) -"bL" = (/turf/simulated/shuttle/wall{tag = "icon-swall_s5"; icon_state = "swall_s5"},/area/ship/scrap/shuttle/outgoing) -"bM" = (/obj/structure/shuttle/engine/platform,/obj/structure/shuttle/engine/heater,/turf/simulated/shuttle/wall{tag = "icon-swall12"; icon_state = "swall12"},/area/ship/scrap/shuttle/outgoing) -"bN" = (/turf/simulated/shuttle/wall{tag = "icon-swall_s9"; icon_state = "swall_s9"},/area/ship/scrap/shuttle/outgoing) +"bL" = (/turf/simulated/shuttle/wall{tag = "icon-swall_s5"; icon_state = "swall_s"; dir = 1},/area/ship/scrap/shuttle/outgoing) +"bM" = (/obj/structure/shuttle/engine/platform,/obj/structure/shuttle/engine/heater,/turf/simulated/shuttle/wall{tag = "icon-swall12"; icon_state = "swall_straight"; dir = 4},/area/ship/scrap/shuttle/outgoing) +"bN" = (/turf/simulated/shuttle/wall{tag = "icon-swall_s9"; icon_state = "swall_s"; dir = 8},/area/ship/scrap/shuttle/outgoing) "bO" = (/obj/structure/lattice,/turf/space,/area) "bP" = (/obj/machinery/atmospherics/pipe/simple{tag = "icon-intact"; icon_state = "intact"; dir = 2; level = 2},/obj/machinery/door/airlock/maintenance_hatch{name = "Hatch"; normalspeed = 0},/turf/simulated/floor/plating,/area/ship/scrap/dock) "bQ" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/lattice,/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "scraplock"; name = "External Blast Doors"; opacity = 0},/turf/space,/area) diff --git a/maps/overmap/example_sector2.dmm b/maps/overmap/example_sector2.dmm index 24f46b33bfc..f14465337cb 100644 --- a/maps/overmap/example_sector2.dmm +++ b/maps/overmap/example_sector2.dmm @@ -1,15 +1,15 @@ "aa" = (/turf/space,/area) -"ab" = (/turf/simulated/shuttle/wall{tag = "icon-swall_s6"; icon_state = "swall_s6"},/area/shuttle/overmap_examples/outpost) +"ab" = (/turf/simulated/shuttle/wall{tag = "icon-swall_s6"; icon_state = "swall_s"; dir = 14},/area/shuttle/overmap_examples/outpost) "ac" = (/obj/structure/shuttle/window{tag = "icon-3"; icon_state = "3"},/turf/simulated/shuttle/floor,/area/shuttle/overmap_examples/outpost) -"ad" = (/turf/simulated/shuttle/wall{tag = "icon-swall_s10"; icon_state = "swall_s10"},/area/shuttle/overmap_examples/outpost) -"ae" = (/turf/simulated/shuttle/wall{tag = "icon-swall3"; icon_state = "swall3"},/area/shuttle/overmap_examples/outpost) +"ad" = (/turf/simulated/shuttle/wall{tag = "icon-swall_s10"; icon_state = "swall_s"; dir = 2},/area/shuttle/overmap_examples/outpost) +"ae" = (/turf/simulated/shuttle/wall{tag = "icon-swall3"; icon_state = "swall_straight"; dir = 1},/area/shuttle/overmap_examples/outpost) "af" = (/obj/machinery/computer/shuttle_control/explore{landing_type = /area/shuttle/overmap_examples/outpost},/turf/simulated/shuttle/floor,/area/shuttle/overmap_examples/outpost) "ag" = (/obj/effect/mapinfo/sector{icon = 'icons/obj/mining.dmi'; icon_state = "ore2"; landing_area = /area/shuttle/escape_pod2/centcom; name = "Abandoned Outpost"},/turf/space,/area) "ah" = (/turf/simulated/shuttle/floor,/area/shuttle/overmap_examples/outpost) "ai" = (/turf/space,/area/shuttle/escape_pod2/centcom) -"aj" = (/turf/simulated/shuttle/wall{tag = "icon-swall_s5"; icon_state = "swall_s5"},/area/shuttle/overmap_examples/outpost) +"aj" = (/turf/simulated/shuttle/wall{tag = "icon-swall_s5"; icon_state = "swall_s"; dir = 1},/area/shuttle/overmap_examples/outpost) "ak" = (/obj/machinery/door/unpowered/shuttle,/turf/simulated/shuttle/floor,/area/shuttle/overmap_examples/outpost) -"al" = (/turf/simulated/shuttle/wall{tag = "icon-swall_s9"; icon_state = "swall_s9"},/area/shuttle/overmap_examples/outpost) +"al" = (/turf/simulated/shuttle/wall{tag = "icon-swall_s9"; icon_state = "swall_s"; dir = 8},/area/shuttle/overmap_examples/outpost) "am" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/mine/abandoned) "an" = (/turf/simulated/floor,/area/mine/abandoned) "ao" = (/obj/structure/lattice,/turf/space,/area) diff --git a/nano/templates/TemplatesGuide.txt b/nano/templates/TemplatesGuide.txt index 3b042edd0b0..f333e454676 100644 --- a/nano/templates/TemplatesGuide.txt +++ b/nano/templates/TemplatesGuide.txt @@ -7,4 +7,4 @@ to easily add conditionals (if statements), loops (for loops) and custom formatt Templates are stored in the /nano/templates folder and the file extension is .tmpl. -This guide is being replaced with a wiki entry, found here: http://baystation12.net/wiki/index.php?title=NanoUI \ No newline at end of file +This guide is being replaced with a wiki entry, found here: http://wiki.baystation12.net/NanoUI \ No newline at end of file diff --git a/nano/templates/air_alarm.tmpl b/nano/templates/air_alarm.tmpl index edfe41cda7a..2caa14e955c 100644 --- a/nano/templates/air_alarm.tmpl +++ b/nano/templates/air_alarm.tmpl @@ -30,9 +30,9 @@ Used In File(s): \code\game\machinery\alarm.dm {{:helper.fixed(value.value, 1)}} {{:value.unit}}
{{/for}} - Local Status: {{if value.danger_level == 2}} + Local Status: {{if data.total_danger == 2}} DANGER: Internals Required - {{else value.danger_level == 1}} + {{else data.total_danger == 1}} Caution {{else}} Optimal diff --git a/nano/templates/sleeper.tmpl b/nano/templates/sleeper.tmpl new file mode 100644 index 00000000000..49fb0ae8d75 --- /dev/null +++ b/nano/templates/sleeper.tmpl @@ -0,0 +1,91 @@ +

Sleeper

+{{if !data.power}} +
+
+ NO POWER +
+ {{if data.occupant}} +
+ {{:helper.link("Eject occupant", null, {'eject' : 0})}} +
+ {{/if}} +{{else}} + {{if data.occupant}} +
+
+ Occupant status: +
+
+ Health: {{:data.health}}% ({{:data.stat}}). +
+
+ Pulse: +
+
+ {{:data.pulse}} +
+
+ Brute damage: +
+
+ {{:helper.displayBar(data.brute, 0, 100, (data.brute <= 25) ? 'good' : (data.brute <= 50) ? 'average' : 'bad')}}{{:helper.round(data.brute)}} +
+
+ Burn severity: +
+
+ {{:helper.displayBar(data.burn, 0, 100, (data.burn <= 25) ? 'good' : (data.burn <= 50) ? 'average' : 'bad')}}{{:helper.round(data.burn)}} +
+
+ Respiratory damage: +
+
+ {{:helper.displayBar(data.oxy, 0, 100, (data.oxy <= 25) ? 'good' : (data.oxy <= 50) ? 'average' : 'bad')}}{{:helper.round(data.oxy)}} +
+
+ Toxin content: +
+
+ {{:helper.displayBar(data.tox, 0, 100, (data.tox <= 25) ? 'good' : (data.tox <= 50) ? 'average' : 'bad')}}{{:helper.round(data.tox)}} +
+
+ {{:helper.link(data.filtering ? "Dialysis active" : "Dialysis inactive", null, {'filter' : !data.filtering})}} +
+
+ {{:helper.link("Eject occupant", null, {'eject' : 0})}} +
+
+ {{else}} +
+ No occupant. +
+ {{/if}} +
+ {{for data.reagents}} +
+ {{:value.name}} +
+
+ {{if data.occupant}}Occupant: {{:value.amount}} units{{/if}} + {{:helper.link('Inject 5', null, {'chemical' : value.id, 'amount' : 5}, data.occupant ? null : 'disabled')}}{{:helper.link('Inject 10', null, {'chemical' : value.id, 'amount' : 10}, data.occupant ? null : 'disabled')}} +
+ {{/for}} +
+ {{if data.beaker != -1}} +
+
+ Beaker: +
+
+ {{:data.beaker}} units of free space remaining. + {{:helper.link("Eject", null, {'beaker' : 0})}} +
+
+ {{else}} +
+
+ No beaker inserted. +
+
+ {{/if}} +{{/if}}
AUTHORTITLECATEGORY
TITLEClose

" user << browse(dat, "window=library") onclose(user, "library") - + /obj/machinery/librarycomp/emag_act(var/remaining_charges, var/mob/user) if (src.density && !src.emagged) src.emagged = 1 @@ -389,6 +389,8 @@ datum/borrowbook // Datum used to keep track of who has borrowed what when and f if(isnum(orderid)) var/nhref = "src=\ref[src];targetid=[orderid]" spawn() src.Topic(nhref, params2list(nhref), src) + if(href_list["sort"] in list("author", "title", "category")) + sortby = href_list["sort"] src.add_fingerprint(usr) src.updateUsrDialog() return diff --git a/code/modules/lighting/lighting_atom.dm b/code/modules/lighting/lighting_atom.dm index 6968a4ed63f..c900f17bf8c 100644 --- a/code/modules/lighting/lighting_atom.dm +++ b/code/modules/lighting/lighting_atom.dm @@ -7,11 +7,22 @@ var/list/light_sources /atom/proc/set_light(l_range, l_power, l_color) - if(l_power != null) light_power = l_power - if(l_range != null) light_range = l_range - if(l_color != null) light_color = l_color + . = 0 //make it less costly if nothing's changed - update_light() + if(l_power != null && l_power != light_power) + light_power = l_power + . = 1 + if(l_range != null && l_range != light_range) + light_range = l_range + . = 1 + if(l_color != null && l_color != light_color) + light_color = l_color + . = 1 + + if(.) update_light() + +/atom/proc/copy_light(atom/A) + set_light(A.light_range, A.light_power, A.light_color) /atom/proc/update_light() if(!light_power || !light_range) diff --git a/code/modules/materials/material_recipes.dm b/code/modules/materials/material_recipes.dm index 67e60fc4c48..3ed015fda58 100644 --- a/code/modules/materials/material_recipes.dm +++ b/code/modules/materials/material_recipes.dm @@ -28,7 +28,7 @@ recipes += new/datum/stack_recipe_list("office chairs",list( \ new/datum/stack_recipe("dark office chair", /obj/structure/bed/chair/office/dark, 5, one_per_turf = 1, on_floor = 1), \ new/datum/stack_recipe("light office chair", /obj/structure/bed/chair/office/light, 5, one_per_turf = 1, on_floor = 1) \ - ), 5) + )) recipes += new/datum/stack_recipe_list("comfy chairs", list( \ new/datum/stack_recipe("beige comfy chair", /obj/structure/bed/chair/comfy/beige, 2, one_per_turf = 1, on_floor = 1), \ new/datum/stack_recipe("black comfy chair", /obj/structure/bed/chair/comfy/black, 2, one_per_turf = 1, on_floor = 1), \ @@ -39,7 +39,7 @@ new/datum/stack_recipe("blue comfy chair", /obj/structure/bed/chair/comfy/blue, 2, one_per_turf = 1, on_floor = 1), \ new/datum/stack_recipe("purple comfy chair", /obj/structure/bed/chair/comfy/purp, 2, one_per_turf = 1, on_floor = 1), \ new/datum/stack_recipe("green comfy chair", /obj/structure/bed/chair/comfy/green, 2, one_per_turf = 1, on_floor = 1), \ - ), 2) + )) recipes += new/datum/stack_recipe("table frame", /obj/structure/table, 1, time = 10, one_per_turf = 1, on_floor = 1) recipes += new/datum/stack_recipe("rack", /obj/structure/table/rack, 1, time = 5, one_per_turf = 1, on_floor = 1) @@ -69,7 +69,7 @@ new/datum/stack_recipe("high security airlock assembly", /obj/structure/door_assembly/door_assembly_highsecurity, 4, time = 50, one_per_turf = 1, on_floor = 1), \ new/datum/stack_recipe("emergency shutter", /obj/structure/firedoor_assembly, 4, time = 50, one_per_turf = 1, on_floor = 1), \ new/datum/stack_recipe("multi-tile airlock assembly", /obj/structure/door_assembly/multi_tile, 4, time = 50, one_per_turf = 1, on_floor = 1), \ - ), 4) + )) recipes += new/datum/stack_recipe("grenade casing", /obj/item/weapon/grenade/chem_grenade) recipes += new/datum/stack_recipe("light fixture frame", /obj/item/frame/light, 2) @@ -86,7 +86,7 @@ /material/sandstone/generate_recipes() ..() - recipes += new/datum/stack_recipe("pile of dirt", /obj/machinery/portable_atmospherics/hydroponics/soil, 3, time = 10, one_per_turf = 1, on_floor = 1) + recipes += new/datum/stack_recipe("planting bed", /obj/machinery/portable_atmospherics/hydroponics/soil, 3, time = 10, one_per_turf = 1, on_floor = 1) /material/plastic/generate_recipes() ..() @@ -103,7 +103,10 @@ recipes += new/datum/stack_recipe("wood floor tile", /obj/item/stack/tile/wood, 1, 4, 20) recipes += new/datum/stack_recipe("wooden chair", /obj/structure/bed/chair/wood, 3, time = 10, one_per_turf = 1, on_floor = 1) recipes += new/datum/stack_recipe("crossbow frame", /obj/item/weapon/crossbowframe, 5, time = 25, one_per_turf = 0, on_floor = 0) - recipes += new/datum/stack_recipe("coffin", /obj/structure/closet/coffin, 5, time = 15, one_per_turf = 1, on_floor = 1) + recipes += new/datum/stack_recipe("coffin", /obj/structure/closet/coffin, 5, time = 15, one_per_turf = 1, on_floor = 1) + recipes += new/datum/stack_recipe("beehive assembly", /obj/item/beehive_assembly, 4) + recipes += new/datum/stack_recipe("beehive frame", /obj/item/honey_frame, 1) + recipes += new/datum/stack_recipe("book shelf", /obj/structure/bookcase, 5, time = 15, one_per_turf = 1, on_floor = 1) /material/cardboard/generate_recipes() ..() @@ -122,4 +125,4 @@ new/datum/stack_recipe("red folder", /obj/item/weapon/folder/red), \ new/datum/stack_recipe("white folder", /obj/item/weapon/folder/white), \ new/datum/stack_recipe("yellow folder", /obj/item/weapon/folder/yellow), \ - ), 3) \ No newline at end of file + )) diff --git a/code/modules/materials/materials.dm b/code/modules/materials/materials.dm index 1645a2b575f..153b4313c48 100644 --- a/code/modules/materials/materials.dm +++ b/code/modules/materials/materials.dm @@ -359,7 +359,7 @@ var/list/name_to_material weight = 15 door_icon_base = "stone" destruction_desc = "shatters" - window_options = list("One Direction", "Full Window") + window_options = list("One Direction" = 1, "Full Window" = 4) created_window = /obj/structure/window/basic wire_product = /obj/item/stack/light_w rod_product = /obj/item/stack/material/glass/reinforced @@ -417,9 +417,8 @@ var/list/name_to_material return 1 var/build_path = /obj/structure/windoor_assembly - var/sheets_needed = 4 + var/sheets_needed = window_options[choice] if(choice == "Windoor") - sheets_needed = 5 build_dir = user.dir else build_path = created_window @@ -450,7 +449,7 @@ var/list/name_to_material weight = 30 stack_origin_tech = "materials=2" composite_material = list(DEFAULT_WALL_MATERIAL = 1875,"glass" = 3750) - window_options = list("One Direction", "Full Window", "Windoor") + window_options = list("One Direction" = 1, "Full Window" = 4, "Windoor" = 5) created_window = /obj/structure/window/reinforced wire_product = null rod_product = null diff --git a/code/modules/mob/dead/observer/observer.dm b/code/modules/mob/dead/observer/observer.dm index 892558d293c..59368b9ef76 100644 --- a/code/modules/mob/dead/observer/observer.dm +++ b/code/modules/mob/dead/observer/observer.dm @@ -188,8 +188,7 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp /mob/dead/observer/Stat() ..() - statpanel("Status") - if (client.statpanel == "Status") + if(statpanel("Status")) stat(null, "Station Time: [worldtime2text()]") if(emergency_shuttle) var/eta_status = emergency_shuttle.get_status_panel_eta() @@ -217,6 +216,7 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp return mind.current.ajourn=0 mind.current.key = key + mind.current.aghosted = null if(!admin_ghosted) announce_ghost_joinleave(mind, 0, "They now occupy their body again.") return 1 @@ -319,16 +319,56 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp if(following && following == target) return following = target - src << "\blue Now following [target]" - spawn(0) - while(target && following == target && client) - var/turf/T = get_turf(target) - if(!T) - break - // To stop the ghost flickering. - if(loc != T) - loc = T - sleep(15) + src << "Now following [target]" + if(ismob(target)) + loc = get_turf(target) + var/mob/M = target + M.following_mobs += src + else + spawn(0) + while(target && following == target && client) + var/turf/T = get_turf(target) + if(!T) + break + // To stop the ghost flickering. + if(loc != T) + loc = T + sleep(15) + +/mob/proc/update_following() + . = get_turf(src) + for(var/mob/dead/observer/M in following_mobs) + if(M.following != src) + following_mobs -= M + else + if(M.loc != .) + M.loc = . + +/mob + var/list/following_mobs = list() + +/mob/Destroy() + for(var/mob/dead/observer/M in following_mobs) + M.following = null + following_mobs = null + return ..() + +/mob/dead/observer/Destroy() + if(ismob(following)) + var/mob/M = following + M.following_mobs -= src + following = null + return ..() + +/mob/Move() + . = ..() + if(.) + update_following() + +/mob/Life() + // to catch teleports etc which directly set loc + update_following() + return ..() /mob/proc/check_holy(var/turf/T) return 0 @@ -560,13 +600,13 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp if(src.invisibility != 0) user.visible_message( \ - "[user] drags ghost, [src], to our plane of reality!", \ + "\The [user] drags ghost, [src], to our plane of reality!", \ "You drag [src] to our plane of reality!" \ ) toggle_visibility(1) else user.visible_message ( \ - "[user] just tried to smash \his book into that ghost! It's not very effective.", \ + "\The [user] just tried to smash \his book into that ghost! It's not very effective.", \ "You get the feeling that the ghost can't become any more visible." \ ) diff --git a/code/modules/mob/freelook/update_triggers.dm b/code/modules/mob/freelook/update_triggers.dm index 8408083ba8b..405e4bdd9e5 100644 --- a/code/modules/mob/freelook/update_triggers.dm +++ b/code/modules/mob/freelook/update_triggers.dm @@ -29,7 +29,6 @@ ..() /obj/structure/New() - ..() updateVisibility(src) // EFFECTS diff --git a/code/modules/mob/gender.dm b/code/modules/mob/gender.dm new file mode 100644 index 00000000000..393e0fb6c2b --- /dev/null +++ b/code/modules/mob/gender.dm @@ -0,0 +1,56 @@ + +/var/list/gender_datums = list() + +/hook/startup/proc/populate_gender_datum_list() + for(var/type in typesof(/datum/gender)) + var/datum/gender/G = new type + gender_datums[G.key] = G + return 1 + +/datum/gender + var/key = "plural" + + var/He = "They" + var/he = "they" + var/His = "Their" + var/his = "their" + var/him = "them" + var/has = "have" + var/is = "are" + var/does = "do" + +/datum/gender/male + key = "male" + + He = "He" + he = "he" + His = "His" + his = "his" + him = "him" + has = "has" + is = "is" + does = "does" + +/datum/gender/female + key = "female" + + He = "She" + he = "she" + His = "Her" + his = "her" + him = "her" + has = "has" + is = "is" + does = "does" + +/datum/gender/neuter + key = "neuter" + + He = "It" + he = "it" + His = "Its" + his = "its" + him = "it" + has = "has" + is = "is" + does = "does" diff --git a/code/modules/mob/holder.dm b/code/modules/mob/holder.dm index 26cbefc4825..862602bd5cf 100644 --- a/code/modules/mob/holder.dm +++ b/code/modules/mob/holder.dm @@ -5,10 +5,12 @@ icon = 'icons/obj/objects.dmi' slot_flags = SLOT_HEAD sprite_sheets = list("Vox" = 'icons/mob/species/vox/head.dmi') + origin_tech = null item_icons = list( slot_l_hand_str = 'icons/mob/items/lefthand_holder.dmi', slot_r_hand_str = 'icons/mob/items/righthand_holder.dmi', ) + pixel_y = 8 /obj/item/weapon/holder/New() ..() @@ -31,6 +33,38 @@ qdel(src) +/obj/item/weapon/holder/proc/sync(var/mob/living/M) + dir = 2 + overlays.Cut() + icon = M.icon + icon_state = M.icon_state + color = M.color + name = M.name + desc = M.desc + overlays |= M.overlays + var/mob/living/carbon/human/H = loc + if(istype(H)) + if(H.l_hand == src) + H.update_inv_l_hand() + else if(H.r_hand == src) + H.update_inv_r_hand() + else + H.regenerate_icons() + +//Mob specific holders. +/obj/item/weapon/holder/diona + origin_tech = list(TECH_MAGNET = 3, TECH_BIO = 5) + slot_flags = SLOT_HEAD | SLOT_OCLOTHING + +/obj/item/weapon/holder/drone + origin_tech = list(TECH_MAGNET = 3, TECH_ENGINERING = 5) + +/obj/item/weapon/holder/mouse + w_class = 1 + +/obj/item/weapon/holder/borer + origin_tech = list(TECH_BIO = 6) + /obj/item/weapon/holder/attackby(obj/item/weapon/W as obj, mob/user as mob) for(var/mob/M in src.contents) M.attackby(W,user) @@ -50,72 +84,5 @@ grabber << "You scoop up [src]." src << "[grabber] scoops you up." grabber.status_flags |= PASSEMOTES + H.sync(src) return H - -//Mob specific holders. - -/obj/item/weapon/holder/diona - name = "diona nymph" - desc = "It's a tiny plant critter." - icon_state = "nymph" - origin_tech = list(TECH_MAGNET = 3, TECH_BIO = 5) - slot_flags = SLOT_HEAD | SLOT_OCLOTHING - -/obj/item/weapon/holder/drone - name = "maintenance drone" - desc = "It's a small maintenance robot." - icon_state = "drone" - origin_tech = list(TECH_MAGNET = 3, TECH_ENGINERING = 5) - -/obj/item/weapon/holder/cat - name = "cat" - desc = "It's a cat. Meow." - icon_state = "cat" - origin_tech = null - -/obj/item/weapon/holder/mouse - name = "mouse" - desc = "It's a small rodent." - icon_state = "mouse_gray" - origin_tech = null - w_class = 1 - -/obj/item/weapon/holder/mouse/gray - icon_state = "mouse_gray" - -/obj/item/weapon/holder/mouse/white - icon_state = "mouse_white" - -/obj/item/weapon/holder/mouse/brown - icon_state = "mouse_brown" - -/obj/item/weapon/holder/borer - name = "cortical borer" - desc = "It's a slimy brain slug. Gross." - icon_state = "borer" - origin_tech = list(TECH_BIO = 6) - -/obj/item/weapon/holder/monkey - name = "monkey" - desc = "It's a monkey. Ook." - icon_state = "monkey" - -/obj/item/weapon/holder/monkey/farwa - name = "farwa" - desc = "It's a farwa." - icon_state = "farwa" - -/obj/item/weapon/holder/monkey/stok - name = "stok" - desc = "It's a stok. stok." - icon_state = "stok" - -/obj/item/weapon/holder/monkey/neaera - name = "neaera" - desc = "It's a neaera." - icon_state = "neara" - -/obj/item/weapon/holder/pai - name = "pAI" - desc = "It's a little robot." - icon_state = "pai" diff --git a/code/modules/mob/language/language.dm b/code/modules/mob/language/language.dm index a69e08df581..bf90079db86 100644 --- a/code/modules/mob/language/language.dm +++ b/code/modules/mob/language/language.dm @@ -182,7 +182,7 @@ if(L == default_language) dat += "[L.name] (:[L.key]) - default - reset
[L.desc]

" else - dat += "[L.name] (:[L.key]) - set default
[L.desc]

" + dat += "[L.name] (:[L.key]) - set default
[L.desc]

" src << browse(dat, "window=checklanguage") @@ -191,8 +191,8 @@ if(href_list["default_lang"] == "reset") set_default_language(null) else - var/datum/language/L = all_languages[href_list["default_lang"]] - if(L) + var/datum/language/L = locate(href_list["default_lang"]) + if(L && (L in languages)) set_default_language(L) check_languages() return 1 diff --git a/code/modules/mob/language/station.dm b/code/modules/mob/language/station.dm index 3d45e84f998..f2427b056c8 100644 --- a/code/modules/mob/language/station.dm +++ b/code/modules/mob/language/station.dm @@ -73,7 +73,7 @@ whisper_verb = "whispers" colour = "solcom" key = "1" - flags = RESTRICTED + flags = WHITELISTED //syllables are at the bottom of the file diff --git a/code/modules/mob/living/carbon/alien/diona/diona.dm b/code/modules/mob/living/carbon/alien/diona/diona.dm index 86dc101eda1..95f01a6dffe 100644 --- a/code/modules/mob/living/carbon/alien/diona/diona.dm +++ b/code/modules/mob/living/carbon/alien/diona/diona.dm @@ -9,6 +9,7 @@ universal_understand = 1 universal_speak = 0 // Dionaea do not need to speak to people other than other dionaea. holder_type = /obj/item/weapon/holder/diona + var/obj/item/hat /mob/living/carbon/alien/diona/New() @@ -32,3 +33,10 @@ /mob/living/carbon/alien/diona/put_in_hands(var/obj/item/W) // No hands. W.loc = get_turf(src) return 1 + +/mob/living/carbon/alien/diona/proc/wear_hat(var/obj/item/new_hat) + if(hat) + return + hat = new_hat + new_hat.loc = src + update_icons() \ No newline at end of file diff --git a/code/modules/mob/living/carbon/alien/diona/diona_attacks.dm b/code/modules/mob/living/carbon/alien/diona/diona_attacks.dm index 956171abf7c..45d1f6fe469 100644 --- a/code/modules/mob/living/carbon/alien/diona/diona_attacks.dm +++ b/code/modules/mob/living/carbon/alien/diona/diona_attacks.dm @@ -6,5 +6,22 @@ return get_scooped(H) return + else if(H.a_intent == "grab" && hat && !(H.l_hand && H.r_hand)) + hat.loc = get_turf(src) + H.put_in_hands(hat) + H.visible_message("\The [H] removes \the [src]'s [hat].") + hat = null + update_icons() else return ..() + +/mob/living/carbon/alien/diona/attackby(var/obj/item/weapon/W, var/mob/user) + if(user.a_intent == "help" && istype(W, /obj/item/clothing/head)) + if(hat) + user << "\The [src] is already wearing \the [hat]." + return + user.unEquip(W) + wear_hat(W) + user.visible_message("\The [user] puts \the [W] on \the [src].") + return + return ..() \ No newline at end of file diff --git a/code/modules/mob/living/carbon/alien/diona/update_icons.dm b/code/modules/mob/living/carbon/alien/diona/update_icons.dm index b39972cdad3..1d694cf6247 100644 --- a/code/modules/mob/living/carbon/alien/diona/update_icons.dm +++ b/code/modules/mob/living/carbon/alien/diona/update_icons.dm @@ -6,3 +6,7 @@ icon_state = "[initial(icon_state)]_sleep" else icon_state = "[initial(icon_state)]" + + overlays.Cut() + if(hat) + overlays |= get_hat_icon(hat, 0, -8) \ No newline at end of file diff --git a/code/modules/mob/living/carbon/carbon.dm b/code/modules/mob/living/carbon/carbon.dm index 534c77c2a10..47aa05aeda0 100644 --- a/code/modules/mob/living/carbon/carbon.dm +++ b/code/modules/mob/living/carbon/carbon.dm @@ -17,6 +17,9 @@ germ_level++ /mob/living/carbon/Destroy() + qdel(ingested) + qdel(touching) + // We don't qdel(bloodstr) because it's the same as qdel(reagents) for(var/guts in internal_organs) qdel(guts) for(var/food in stomach_contents) @@ -257,7 +260,7 @@ var/show_ssd var/mob/living/carbon/human/H = src if(istype(H)) show_ssd = H.species.show_ssd - if(show_ssd && (!client || !key || player_logged)) + if(show_ssd && !client && !aghosted) M.visible_message("[M] shakes [src] trying to wake [t_him] up!", \ "You shake [src], but they do not respond... Maybe they have S.S.D?") else if(lying || src.sleeping) @@ -372,8 +375,8 @@ /mob/living/carbon/fire_act(datum/gas_mixture/air, exposed_temperature, exposed_volume) ..() - var/temp_inc = max(BODYTEMP_HEATING_MAX*(1-get_heat_protection()), 0) - bodytemperature = min(bodytemperature + temp_inc, exposed_temperature) + var/temp_inc = max(min(BODYTEMP_HEATING_MAX*(1-get_heat_protection()), exposed_temperature - bodytemperature), 0) + bodytemperature += temp_inc /mob/living/carbon/can_use_hands() if(handcuffed) diff --git a/code/modules/mob/living/carbon/human/appearance.dm b/code/modules/mob/living/carbon/human/appearance.dm index 9413fa4fc5d..3b8e5669647 100644 --- a/code/modules/mob/living/carbon/human/appearance.dm +++ b/code/modules/mob/living/carbon/human/appearance.dm @@ -154,14 +154,14 @@ return valid_species -/mob/living/carbon/human/proc/generate_valid_hairstyles() +/mob/living/carbon/human/proc/generate_valid_hairstyles(var/check_gender = 1) var/list/valid_hairstyles = new() for(var/hairstyle in hair_styles_list) var/datum/sprite_accessory/S = hair_styles_list[hairstyle] - if(gender == MALE && S.gender == FEMALE) + if(check_gender && gender == MALE && S.gender == FEMALE) continue - if(gender == FEMALE && S.gender == MALE) + if(check_gender && gender == FEMALE && S.gender == MALE) continue if(!(species.name in S.species_allowed)) continue @@ -188,4 +188,4 @@ /mob/living/carbon/human/proc/force_update_limbs() for(var/obj/item/organ/external/O in organs) O.sync_colour_to_human(src) - update_body(0) \ No newline at end of file + update_body(0) diff --git a/code/modules/mob/living/carbon/human/emote.dm b/code/modules/mob/living/carbon/human/emote.dm index 10b2a914778..c1abe448f33 100644 --- a/code/modules/mob/living/carbon/human/emote.dm +++ b/code/modules/mob/living/carbon/human/emote.dm @@ -101,7 +101,7 @@ if ("choke") if(miming) - message = "clutches his throat desperately!" + message = "clutches [get_visible_gender() == MALE ? "his" : get_visible_gender() == FEMALE ? "her" : "their"] throat desperately!" m_type = 1 else if (!muzzled) diff --git a/code/modules/mob/living/carbon/human/examine.dm b/code/modules/mob/living/carbon/human/examine.dm index 0695ec48616..cc25a915cb2 100644 --- a/code/modules/mob/living/carbon/human/examine.dm +++ b/code/modules/mob/living/carbon/human/examine.dm @@ -24,46 +24,18 @@ if(wear_mask) skipface |= wear_mask.flags_inv & HIDEFACE - // crappy hacks because you can't do \his[src] etc. I'm sorry this proc is so unreadable, blame the text macros :< - var/t_He = "They" //capitalised for use at the start of each line. - var/t_he = "they" - var/t_his = "their" - var/t_him = "them" - var/t_has = "have" - var/t_is = "are" - var/t_does = "do" - var/msg = "*---------*\nThis is " - //big suits/masks/helmets make it hard to tell their gender - if(!skipjumpsuit || !skipface) + var/datum/gender/T = gender_datums[gender] + if(skipjumpsuit && skipface) //big suits/masks/helmets make it hard to tell their gender + T = gender_datums[PLURAL] + else if(icon) msg += "\icon[icon] " //fucking BYOND: this should stop dreamseeker crashing if we -somehow- examine somebody before their icon is generated - switch(gender) - if(MALE) - t_He = "He" - t_he = "he" - t_his = "his" - t_him = "him" - t_has = "has" - t_is = "is" - t_does = "does" - if(FEMALE) - t_He = "She" - t_he = "she" - t_his = "her" - t_him = "her" - t_has = "has" - t_is = "is" - t_does = "does" - if(NEUTER) - t_He = "It" - t_he = "it" - t_his = "its" - t_him = "it" - t_has = "has" - t_is = "is" - t_does = "does" + + if(!T) + // Just in case someone VVs the gender to something strange. It'll runtime anyway when it hits usages, better to CRASH() now with a helpful message. + CRASH("Gender datum was null; key was '[(skipjumpsuit && skipface) ? PLURAL : gender]'") msg += "[src.name]" if(species.name != "Human") @@ -80,111 +52,111 @@ tie_msg += ". Attached to it is [lowertext(english_list(U.accessories))]" if(w_uniform.blood_DNA) - msg += "[t_He] [t_is] wearing \icon[w_uniform] [w_uniform.gender==PLURAL?"some":"a"] [(w_uniform.blood_color != "#030303") ? "blood" : "oil"]-stained [w_uniform.name][tie_msg]!\n" + msg += "[T.He] [T.is] wearing \icon[w_uniform] [w_uniform.gender==PLURAL?"some":"a"] [(w_uniform.blood_color != "#030303") ? "blood" : "oil"]-stained [w_uniform.name][tie_msg]!\n" else - msg += "[t_He] [t_is] wearing \icon[w_uniform] \a [w_uniform][tie_msg].\n" + msg += "[T.He] [T.is] wearing \icon[w_uniform] \a [w_uniform][tie_msg].\n" //head if(head) if(head.blood_DNA) - msg += "[t_He] [t_is] wearing \icon[head] [head.gender==PLURAL?"some":"a"] [(head.blood_color != "#030303") ? "blood" : "oil"]-stained [head.name] on [t_his] head!\n" + msg += "[T.He] [T.is] wearing \icon[head] [head.gender==PLURAL?"some":"a"] [(head.blood_color != "#030303") ? "blood" : "oil"]-stained [head.name] on [T.his] head!\n" else - msg += "[t_He] [t_is] wearing \icon[head] \a [head] on [t_his] head.\n" + msg += "[T.He] [T.is] wearing \icon[head] \a [head] on [T.his] head.\n" //suit/armour if(wear_suit) if(wear_suit.blood_DNA) - msg += "[t_He] [t_is] wearing \icon[wear_suit] [wear_suit.gender==PLURAL?"some":"a"] [(wear_suit.blood_color != "#030303") ? "blood" : "oil"]-stained [wear_suit.name]!\n" + msg += "[T.He] [T.is] wearing \icon[wear_suit] [wear_suit.gender==PLURAL?"some":"a"] [(wear_suit.blood_color != "#030303") ? "blood" : "oil"]-stained [wear_suit.name]!\n" else - msg += "[t_He] [t_is] wearing \icon[wear_suit] \a [wear_suit].\n" + msg += "[T.He] [T.is] wearing \icon[wear_suit] \a [wear_suit].\n" //suit/armour storage if(s_store && !skipsuitstorage) if(s_store.blood_DNA) - msg += "[t_He] [t_is] carrying \icon[s_store] [s_store.gender==PLURAL?"some":"a"] [(s_store.blood_color != "#030303") ? "blood" : "oil"]-stained [s_store.name] on [t_his] [wear_suit.name]!\n" + msg += "[T.He] [T.is] carrying \icon[s_store] [s_store.gender==PLURAL?"some":"a"] [(s_store.blood_color != "#030303") ? "blood" : "oil"]-stained [s_store.name] on [T.his] [wear_suit.name]!\n" else - msg += "[t_He] [t_is] carrying \icon[s_store] \a [s_store] on [t_his] [wear_suit.name].\n" + msg += "[T.He] [T.is] carrying \icon[s_store] \a [s_store] on [T.his] [wear_suit.name].\n" //back if(back) if(back.blood_DNA) - msg += "[t_He] [t_has] \icon[back] [back.gender==PLURAL?"some":"a"] [(back.blood_color != "#030303") ? "blood" : "oil"]-stained [back] on [t_his] back.\n" + msg += "[T.He] [T.has] \icon[back] [back.gender==PLURAL?"some":"a"] [(back.blood_color != "#030303") ? "blood" : "oil"]-stained [back] on [T.his] back.\n" else - msg += "[t_He] [t_has] \icon[back] \a [back] on [t_his] back.\n" + msg += "[T.He] [T.has] \icon[back] \a [back] on [T.his] back.\n" //left hand if(l_hand) if(l_hand.blood_DNA) - msg += "[t_He] [t_is] holding \icon[l_hand] [l_hand.gender==PLURAL?"some":"a"] [(l_hand.blood_color != "#030303") ? "blood" : "oil"]-stained [l_hand.name] in [t_his] left hand!\n" + msg += "[T.He] [T.is] holding \icon[l_hand] [l_hand.gender==PLURAL?"some":"a"] [(l_hand.blood_color != "#030303") ? "blood" : "oil"]-stained [l_hand.name] in [T.his] left hand!\n" else - msg += "[t_He] [t_is] holding \icon[l_hand] \a [l_hand] in [t_his] left hand.\n" + msg += "[T.He] [T.is] holding \icon[l_hand] \a [l_hand] in [T.his] left hand.\n" //right hand if(r_hand) if(r_hand.blood_DNA) - msg += "[t_He] [t_is] holding \icon[r_hand] [r_hand.gender==PLURAL?"some":"a"] [(r_hand.blood_color != "#030303") ? "blood" : "oil"]-stained [r_hand.name] in [t_his] right hand!\n" + msg += "[T.He] [T.is] holding \icon[r_hand] [r_hand.gender==PLURAL?"some":"a"] [(r_hand.blood_color != "#030303") ? "blood" : "oil"]-stained [r_hand.name] in [T.his] right hand!\n" else - msg += "[t_He] [t_is] holding \icon[r_hand] \a [r_hand] in [t_his] right hand.\n" + msg += "[T.He] [T.is] holding \icon[r_hand] \a [r_hand] in [T.his] right hand.\n" //gloves if(gloves && !skipgloves) if(gloves.blood_DNA) - msg += "[t_He] [t_has] \icon[gloves] [gloves.gender==PLURAL?"some":"a"] [(gloves.blood_color != "#030303") ? "blood" : "oil"]-stained [gloves.name] on [t_his] hands!\n" + msg += "[T.He] [T.has] \icon[gloves] [gloves.gender==PLURAL?"some":"a"] [(gloves.blood_color != "#030303") ? "blood" : "oil"]-stained [gloves.name] on [T.his] hands!\n" else - msg += "[t_He] [t_has] \icon[gloves] \a [gloves] on [t_his] hands.\n" + msg += "[T.He] [T.has] \icon[gloves] \a [gloves] on [T.his] hands.\n" else if(blood_DNA) - msg += "[t_He] [t_has] [(hand_blood_color != "#030303") ? "blood" : "oil"]-stained hands!\n" + msg += "[T.He] [T.has] [(hand_blood_color != "#030303") ? "blood" : "oil"]-stained hands!\n" //handcuffed? //handcuffed? if(handcuffed) if(istype(handcuffed, /obj/item/weapon/handcuffs/cable)) - msg += "[t_He] [t_is] \icon[handcuffed] restrained with cable!\n" + msg += "[T.He] [T.is] \icon[handcuffed] restrained with cable!\n" else - msg += "[t_He] [t_is] \icon[handcuffed] handcuffed!\n" + msg += "[T.He] [T.is] \icon[handcuffed] handcuffed!\n" //buckled if(buckled) - msg += "[t_He] [t_is] \icon[buckled] buckled to [buckled]!\n" + msg += "[T.He] [T.is] \icon[buckled] buckled to [buckled]!\n" //belt if(belt) if(belt.blood_DNA) - msg += "[t_He] [t_has] \icon[belt] [belt.gender==PLURAL?"some":"a"] [(belt.blood_color != "#030303") ? "blood" : "oil"]-stained [belt.name] about [t_his] waist!\n" + msg += "[T.He] [T.has] \icon[belt] [belt.gender==PLURAL?"some":"a"] [(belt.blood_color != "#030303") ? "blood" : "oil"]-stained [belt.name] about [T.his] waist!\n" else - msg += "[t_He] [t_has] \icon[belt] \a [belt] about [t_his] waist.\n" + msg += "[T.He] [T.has] \icon[belt] \a [belt] about [T.his] waist.\n" //shoes if(shoes && !skipshoes) if(shoes.blood_DNA) - msg += "[t_He] [t_is] wearing \icon[shoes] [shoes.gender==PLURAL?"some":"a"] [(shoes.blood_color != "#030303") ? "blood" : "oil"]-stained [shoes.name] on [t_his] feet!\n" + msg += "[T.He] [T.is] wearing \icon[shoes] [shoes.gender==PLURAL?"some":"a"] [(shoes.blood_color != "#030303") ? "blood" : "oil"]-stained [shoes.name] on [T.his] feet!\n" else - msg += "[t_He] [t_is] wearing \icon[shoes] \a [shoes] on [t_his] feet.\n" + msg += "[T.He] [T.is] wearing \icon[shoes] \a [shoes] on [T.his] feet.\n" else if(feet_blood_DNA) - msg += "[t_He] [t_has] [(feet_blood_color != "#030303") ? "blood" : "oil"]-stained feet!\n" + msg += "[T.He] [T.has] [(feet_blood_color != "#030303") ? "blood" : "oil"]-stained feet!\n" //mask if(wear_mask && !skipmask) if(wear_mask.blood_DNA) - msg += "[t_He] [t_has] \icon[wear_mask] [wear_mask.gender==PLURAL?"some":"a"] [(wear_mask.blood_color != "#030303") ? "blood" : "oil"]-stained [wear_mask.name] on [t_his] face!\n" + msg += "[T.He] [T.has] \icon[wear_mask] [wear_mask.gender==PLURAL?"some":"a"] [(wear_mask.blood_color != "#030303") ? "blood" : "oil"]-stained [wear_mask.name] on [T.his] face!\n" else - msg += "[t_He] [t_has] \icon[wear_mask] \a [wear_mask] on [t_his] face.\n" + msg += "[T.He] [T.has] \icon[wear_mask] \a [wear_mask] on [T.his] face.\n" //eyes if(glasses && !skipeyes) if(glasses.blood_DNA) - msg += "[t_He] [t_has] \icon[glasses] [glasses.gender==PLURAL?"some":"a"] [(glasses.blood_color != "#030303") ? "blood" : "oil"]-stained [glasses] covering [t_his] eyes!\n" + msg += "[T.He] [T.has] \icon[glasses] [glasses.gender==PLURAL?"some":"a"] [(glasses.blood_color != "#030303") ? "blood" : "oil"]-stained [glasses] covering [T.his] eyes!\n" else - msg += "[t_He] [t_has] \icon[glasses] \a [glasses] covering [t_his] eyes.\n" + msg += "[T.He] [T.has] \icon[glasses] \a [glasses] covering [T.his] eyes.\n" //left ear if(l_ear && !skipears) - msg += "[t_He] [t_has] \icon[l_ear] \a [l_ear] on [t_his] left ear.\n" + msg += "[T.He] [T.has] \icon[l_ear] \a [l_ear] on [T.his] left ear.\n" //right ear if(r_ear && !skipears) - msg += "[t_He] [t_has] \icon[r_ear] \a [r_ear] on [t_his] right ear.\n" + msg += "[T.He] [T.has] \icon[r_ear] \a [r_ear] on [T.his] right ear.\n" //ID if(wear_id) @@ -196,70 +168,71 @@ var/obj/item/weapon/card/id/idcard = wear_id id = idcard.registered_name if(id && (id != real_name) && (get_dist(src, usr) <= 1) && prob(10)) - msg += "[t_He] [t_is] wearing \icon[wear_id] \a [wear_id] yet something doesn't seem right...\n" + msg += "[T.He] [T.is] wearing \icon[wear_id] \a [wear_id] yet something doesn't seem right...\n" else*/ - msg += "[t_He] [t_is] wearing \icon[wear_id] \a [wear_id].\n" + msg += "[T.He] [T.is] wearing \icon[wear_id] \a [wear_id].\n" //Jitters if(is_jittery) if(jitteriness >= 300) - msg += "[t_He] [t_is] convulsing violently!\n" + msg += "[T.He] [T.is] convulsing violently!\n" else if(jitteriness >= 200) - msg += "[t_He] [t_is] extremely jittery.\n" + msg += "[T.He] [T.is] extremely jittery.\n" else if(jitteriness >= 100) - msg += "[t_He] [t_is] twitching ever so slightly.\n" + msg += "[T.He] [T.is] twitching ever so slightly.\n" //splints for(var/organ in list("l_leg","r_leg","l_arm","r_arm")) var/obj/item/organ/external/o = get_organ(organ) if(o && o.status & ORGAN_SPLINTED) - msg += "[t_He] [t_has] a splint on [t_his] [o.name]!\n" + msg += "[T.He] [T.has] a splint on [T.his] [o.name]!\n" if(suiciding) - msg += "[t_He] appears to have commited suicide... there is no hope of recovery.\n" + msg += "[T.He] appears to have commited suicide... there is no hope of recovery.\n" if(mSmallsize in mutations) - msg += "[t_He] [t_is] small halfling!\n" + msg += "[T.He] [T.is] small halfling!\n" var/distance = get_dist(usr,src) if(istype(usr, /mob/dead/observer) || usr.stat == 2) // ghosts can see anything distance = 1 if (src.stat) - msg += "[t_He] [t_is]n't responding to anything around [t_him] and seems to be asleep.\n" + msg += "[T.He] [T.is]n't responding to anything around [T.him] and seems to be asleep.\n" if((stat == 2 || src.losebreath) && distance <= 3) - msg += "[t_He] [t_does] not appear to be breathing.\n" + msg += "[T.He] [T.does] not appear to be breathing.\n" if(istype(usr, /mob/living/carbon/human) && !usr.stat && Adjacent(usr)) usr.visible_message("[usr] checks [src]'s pulse.", "You check [src]'s pulse.") spawn(15) if(distance <= 1 && usr.stat != 1) if(pulse == PULSE_NONE) - usr << "[t_He] [t_has] no pulse[src.client ? "" : " and [t_his] soul has departed"]..." + usr << "[T.He] [T.has] no pulse[src.client ? "" : " and [T.his] soul has departed"]..." else - usr << "[t_He] [t_has] a pulse!" + usr << "[T.He] [T.has] a pulse!" + if(fire_stacks) - msg += "[t_He] [t_is] covered in some liquid.\n" + msg += "[T.He] [T.is] covered in some liquid.\n" if(on_fire) - msg += "[t_He] [t_is] on fire!.\n" + msg += "[T.He] [T.is] on fire!.\n" msg += "" if(nutrition < 100) - msg += "[t_He] [t_is] severely malnourished.\n" + msg += "[T.He] [T.is] severely malnourished.\n" else if(nutrition >= 500) /*if(usr.nutrition < 100) - msg += "[t_He] [t_is] plump and delicious looking - Like a fat little piggy. A tasty piggy.\n" + msg += "[T.He] [T.is] plump and delicious looking - Like a fat little piggy. A tasty piggy.\n" else*/ - msg += "[t_He] [t_is] quite chubby.\n" + msg += "[T.He] [T.is] quite chubby.\n" msg += "" if(getBrainLoss() >= 60) - msg += "[t_He] [t_has] a stupid expression on [t_his] face.\n" + msg += "[T.He] [T.has] a stupid expression on [T.his] face.\n" if(species.show_ssd && (!species.has_organ["brain"] || has_brain()) && stat != DEAD) if(!key) - msg += "[t_He] [t_is] fast asleep. It doesn't look like [t_he] [t_is] waking up anytime soon.\n" + msg += "[T.He] [T.is] [species.show_ssd]. It doesn't look like [T.he] [T.is] waking up anytime soon.\n" else if(!client) - msg += "[t_He] [t_is] [species.show_ssd].\n" + msg += "[T.He] [T.is] [species.show_ssd].\n" var/list/wound_flavor_text = list() var/list/is_destroyed = list() @@ -273,9 +246,9 @@ var/obj/item/organ/external/E = organs_by_name[organ_tag] if(!E) - wound_flavor_text["[organ_descriptor]"] = "[t_He] is missing [t_his] [organ_descriptor].\n" + wound_flavor_text["[organ_descriptor]"] = "[T.He] [T.is] missing [T.his] [organ_descriptor].\n" else if(E.is_stump()) - wound_flavor_text["[organ_descriptor]"] = "[t_He] has a stump where [t_his] [organ_descriptor] should be.\n" + wound_flavor_text["[organ_descriptor]"] = "[T.He] [T.has] a stump where [T.his] [organ_descriptor] should be.\n" else is_destroyed["organ_descriptor"] = 0 continue @@ -284,24 +257,24 @@ if(temp) if(temp.status & ORGAN_DESTROYED) is_destroyed["[temp.name]"] = 1 - wound_flavor_text["[temp.name]"] = "[t_He] [t_is] missing [t_his] [temp.name].\n" + wound_flavor_text["[temp.name]"] = "[T.He] [T.is] missing [T.his] [temp.name].\n" continue if(temp.status & ORGAN_ROBOT) if(!(temp.brute_dam + temp.burn_dam)) - wound_flavor_text["[temp.name]"] = "[t_He] has a robot [temp.name]!\n" + wound_flavor_text["[temp.name]"] = "[T.He] [T.has] a robot [temp.name]!\n" continue else - wound_flavor_text["[temp.name]"] = "[t_He] has a robot [temp.name]. It has[temp.get_wounds_desc()]!\n" + wound_flavor_text["[temp.name]"] = "[T.He] [T.has] a robot [temp.name]. It has[temp.get_wounds_desc()]!\n" else if(temp.wounds.len > 0 || temp.open) - wound_flavor_text["[temp.name]"] = "[t_He] has [temp.get_wounds_desc()] on [t_his] [temp.name].
" + wound_flavor_text["[temp.name]"] = "[T.He] [T.has] [temp.get_wounds_desc()] on [T.his] [temp.name].
" if(temp.status & ORGAN_BLEEDING) - is_bleeding["[temp.name]"] = "[capitalize(t_his)] [temp.name] is bleeding!
" + is_bleeding["[temp.name]"] = "[T.His] [temp.name] is bleeding!
" else wound_flavor_text["[temp.name]"] = "" if(temp.dislocated == 2) - wound_flavor_text["[temp.name]"] += "[capitalize(t_his)] [temp.joint] is dislocated!
" + wound_flavor_text["[temp.name]"] += "[T.His] [temp.joint] is dislocated!
" if(((temp.status & ORGAN_BROKEN) && temp.brute_dam > temp.min_broken_damage) || (temp.status & ORGAN_MUTATED)) - wound_flavor_text["[temp.name]"] += "[capitalize(t_his)] [temp.name] is dented and swollen!
" + wound_flavor_text["[temp.name]"] += "[T.His] [temp.name] is dented and swollen!
" //Handles the text strings being added to the actual description. //If they have something that covers the limb, and it is not missing, put flavortext. If it is covered but bleeding, add other flavortext. @@ -318,7 +291,7 @@ if(wound_flavor_text["head"] && (is_destroyed["head"] || (!skipmask && !(wear_mask && istype(wear_mask, /obj/item/clothing/mask/gas))))) msg += wound_flavor_text["head"] else if(is_bleeding["head"]) - msg += "[src] [t_has] blood running down [t_his] face!\n" + msg += "[src] [T.has] blood running down [T.his] face!\n" if(wound_flavor_text["upper body"] && !w_uniform && !skipjumpsuit) //No need. A missing chest gibs you. msg += wound_flavor_text["upper body"] @@ -369,11 +342,11 @@ display_shoes = 1 if(display_chest) - msg += "[src] [t_has] blood soaking through from under [t_his] clothing!\n" + msg += "[src] [T.has] blood soaking through from under [T.his] clothing!\n" if(display_shoes) - msg += "[src] [t_has] blood running from [t_his] shoes!\n" + msg += "[src] [T.has] blood running from [T.his] shoes!\n" if(display_gloves) - msg += "[src] [t_has] blood running from under [t_his] gloves!\n" + msg += "[src] [T.has] blood running from under [T.his] gloves!\n" */ for(var/limb in wound_flavor_text) @@ -382,9 +355,9 @@ for(var/limb in is_bleeding) msg += is_bleeding[limb] for(var/implant in get_visible_implants(0)) - msg += "[src] [t_has] \a [implant] sticking out of [t_his] flesh!\n" + msg += "[src] [T.has] \a [implant] sticking out of [T.his] flesh!\n" if(digitalcamo) - msg += "[t_He] [t_is] repulsively uncanny!\n" + msg += "[T.He] [T.is] repulsively uncanny!\n" if(hasHUD(usr,"security")) var/perpname = "wot" @@ -438,7 +411,7 @@ if (pose) if( findtext(pose,".",lentext(pose)) == 0 && findtext(pose,"!",lentext(pose)) == 0 && findtext(pose,"?",lentext(pose)) == 0 ) pose = addtext(pose,".") //Makes sure all emotes end with a period. - msg += "\n[t_He] [t_is] [pose]" + msg += "\n[T.He] [T.is] [pose]" user << msg diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm index 5aff5ae1d17..59a8f2c8128 100644 --- a/code/modules/mob/living/carbon/human/human.dm +++ b/code/modules/mob/living/carbon/human/human.dm @@ -54,16 +54,13 @@ /mob/living/carbon/human/Stat() ..() - statpanel("Status") - - stat(null, "Intent: [a_intent]") - stat(null, "Move Mode: [m_intent]") - if(emergency_shuttle) - var/eta_status = emergency_shuttle.get_status_panel_eta() - if(eta_status) - stat(null, eta_status) - - if (client.statpanel == "Status") + if(statpanel("Status")) + stat(null, "Intent: [a_intent]") + stat(null, "Move Mode: [m_intent]") + if(emergency_shuttle) + var/eta_status = emergency_shuttle.get_status_panel_eta() + if(eta_status) + stat(null, eta_status) if (internal) if (!internal.air_contents) @@ -210,6 +207,9 @@ /mob/living/carbon/human/show_inv(mob/user as mob) + if(user.incapacitated()) + return + var/obj/item/clothing/under/suit = null if (istype(w_uniform, /obj/item/clothing/under)) suit = w_uniform @@ -723,7 +723,7 @@ /mob/living/carbon/human/proc/play_xylophone() if(!src.xylophone) - visible_message("\red [src] begins playing his ribcage like a xylophone. It's quite spooky.","\blue You begin to play a spooky refrain on your ribcage.","\red You hear a spooky xylophone melody.") + visible_message("\red \The [src] begins playing \his ribcage like a xylophone. It's quite spooky.","\blue You begin to play a spooky refrain on your ribcage.","\red You hear a spooky xylophone melody.") var/song = pick('sound/effects/xylophone1.ogg','sound/effects/xylophone2.ogg','sound/effects/xylophone3.ogg') playsound(loc, song, 50, 1, -1) xylophone = 1 @@ -1022,23 +1022,29 @@ return(visible_implants) +/mob/living/carbon/human/embedded_needs_process() + for(var/obj/item/organ/external/organ in src.organs) + for(var/obj/item/O in organ.implants) + if(!istype(O, /obj/item/weapon/implant)) //implant type items do not cause embedding effects, see handle_embedded_objects() + return 1 + return 0 + /mob/living/carbon/human/proc/handle_embedded_objects() for(var/obj/item/organ/external/organ in src.organs) if(organ.status & ORGAN_SPLINTED) //Splints prevent movement. continue - for(var/obj/item/weapon/O in organ.implants) + for(var/obj/item/O in organ.implants) if(!istype(O,/obj/item/weapon/implant) && prob(5)) //Moving with things stuck in you could be bad. // All kinds of embedded objects cause bleeding. - var/msg = null - switch(rand(1,3)) - if(1) - msg ="A spike of pain jolts your [organ.name] as you bump [O] inside." - if(2) - msg ="Your movement jostles [O] in your [organ.name] painfully." - if(3) - msg ="[O] in your [organ.name] twists painfully as you move." - src << msg + if(species.flags & NO_PAIN) + src << "You feel [O] moving inside your [organ.name]." + else + var/msg = pick( \ + "A spike of pain jolts your [organ.name] as you bump [O] inside.", \ + "Your movement jostles [O] in your [organ.name] painfully.", \ + "Your movement jostles [O] in your [organ.name] painfully.") + src << msg organ.take_damage(rand(1,3), 0, 0) if(!(organ.status & ORGAN_ROBOT) && !(species.flags & NO_BLOOD)) //There is no blood in protheses. @@ -1365,4 +1371,4 @@ /mob/living/carbon/human/Check_Shoegrip() if(istype(shoes, /obj/item/clothing/shoes/magboots) && (shoes.flags & NOSLIP)) //magboots + dense_object = no floating return 1 - return 0 + return 0 diff --git a/code/modules/mob/living/carbon/human/human_attackhand.dm b/code/modules/mob/living/carbon/human/human_attackhand.dm index 7451e6ae6a6..8224d3e518d 100644 --- a/code/modules/mob/living/carbon/human/human_attackhand.dm +++ b/code/modules/mob/living/carbon/human/human_attackhand.dm @@ -1,3 +1,9 @@ +/mob/living/carbon/human/proc/get_unarmed_attack(var/mob/living/carbon/human/target, var/hit_zone) + for(var/datum/unarmed_attack/u_attack in species.unarmed_attacks) + if(u_attack.is_usable(src, target, hit_zone)) + return u_attack + return null + /mob/living/carbon/human/attack_hand(mob/living/carbon/M as mob) var/mob/living/carbon/human/H = M @@ -184,18 +190,7 @@ miss_type = 2 // See what attack they use - var/possible_moves = list() - var/datum/unarmed_attack/attack = null - for(var/part in list("l_hand","r_hand","l_foot","r_foot","head")) - var/obj/item/organ/external/E = H.get_organ(part) - possible_moves |= E.species.unarmed_attacks - - for(var/datum/unarmed_attack/u_attack in possible_moves) - if(!u_attack.is_usable(H, src, hit_zone)) - continue - else - attack = u_attack - break + var/datum/unarmed_attack/attack = H.get_unarmed_attack(src, hit_zone) if(!attack) return 0 diff --git a/code/modules/mob/living/carbon/human/human_organs.dm b/code/modules/mob/living/carbon/human/human_organs.dm index 2dec075afa6..d69f6e57cc2 100644 --- a/code/modules/mob/living/carbon/human/human_organs.dm +++ b/code/modules/mob/living/carbon/human/human_organs.dm @@ -134,28 +134,29 @@ continue if(E.is_broken() || E.is_dislocated()) - if(E.body_part == HAND_LEFT) - if(!l_hand) - continue - drop_from_inventory(l_hand) - else - if(!r_hand) - continue - drop_from_inventory(r_hand) + switch(E.body_part) + if(HAND_LEFT, ARM_LEFT) + if(!l_hand) + continue + drop_from_inventory(l_hand) + if(HAND_RIGHT, ARM_RIGHT) + if(!r_hand) + continue + drop_from_inventory(r_hand) var/emote_scream = pick("screams in pain and ", "lets out a sharp cry and ", "cries out and ") emote("me", 1, "[(species.flags & NO_PAIN) ? "" : emote_scream ]drops what they were holding in their [E.name]!") else if(E.is_malfunctioning()) - - if(E.body_part == HAND_LEFT) - if(!l_hand) - continue - drop_from_inventory(l_hand) - else - if(!r_hand) - continue - drop_from_inventory(r_hand) + switch(E.body_part) + if(HAND_LEFT, ARM_LEFT) + if(!l_hand) + continue + drop_from_inventory(l_hand) + if(HAND_RIGHT, ARM_RIGHT) + if(!r_hand) + continue + drop_from_inventory(r_hand) emote("me", 1, "drops what they were holding, their [E.name] malfunctioning!") @@ -176,4 +177,4 @@ /mob/living/carbon/human/proc/sync_organ_dna() var/list/all_bits = internal_organs|organs for(var/obj/item/organ/O in all_bits) - O.set_dna(dna) \ No newline at end of file + O.set_dna(dna) diff --git a/code/modules/mob/living/carbon/human/inventory.dm b/code/modules/mob/living/carbon/human/inventory.dm index a75a4b16300..f3f399c8864 100644 --- a/code/modules/mob/living/carbon/human/inventory.dm +++ b/code/modules/mob/living/carbon/human/inventory.dm @@ -41,7 +41,7 @@ This saves us from having to call add_fingerprint() any time something is put in /mob/living/carbon/human/proc/has_organ(name) var/obj/item/organ/external/O = organs_by_name[name] - return (O && !(O.status & ORGAN_DESTROYED) && !O.is_stump()) + return (O && !(O.status & ORGAN_DESTROYED) && !O.is_stump()) /mob/living/carbon/human/proc/has_organ_for_slot(slot) switch(slot) diff --git a/code/modules/mob/living/carbon/human/life.dm b/code/modules/mob/living/carbon/human/life.dm index cdd556034d4..ac8848dcb1c 100644 --- a/code/modules/mob/living/carbon/human/life.dm +++ b/code/modules/mob/living/carbon/human/life.dm @@ -915,9 +915,12 @@ if(status_flags & GODMODE) return 0 //SSD check, if a logged player is awake put them back to sleep! - if(sleeping < 2 && species.show_ssd && (!client || !key || player_logged)) + if(species.show_ssd && !client && !aghosted) sleeping = 2 + //SSD check, if a logged player is awake put them back to sleep! + if(species.show_ssd && !client && !aghosted) + Sleeping(2) if(stat == DEAD) //DEAD. BROWN BREAD. SWIMMING WITH THE SPESS CARP blinded = 1 silent = 0 @@ -984,10 +987,8 @@ adjustHalLoss(-3) if (mind) //Are they SSD? If so we'll keep them asleep but work off some of that sleep var in case of stoxin or similar. - if(player_logged) - sleeping = max(sleeping-1, 2) - else - sleeping = max(sleeping-1, 0) + if(client || sleeping > 3) + AdjustSleeping(-1) blinded = 1 stat = UNCONSCIOUS animate_tail_reset() @@ -1015,6 +1016,10 @@ // Check everything else. + //Periodically double-check embedded_flag + if(embedded_flag && !(life_tick % 10)) + if(!embedded_needs_process()) + embedded_flag = 0 //Vision var/obj/item/organ/vision if(species.vision_organ) diff --git a/code/modules/mob/living/carbon/human/say.dm b/code/modules/mob/living/carbon/human/say.dm index bbf1844c45b..44b8e6f238d 100644 --- a/code/modules/mob/living/carbon/human/say.dm +++ b/code/modules/mob/living/carbon/human/say.dm @@ -6,9 +6,6 @@ message = sanitize(message) ..(message, alt_name = alt_name) -/mob/living/carbon/human/is_muzzled() - return istype(src.wear_mask, /obj/item/clothing/mask/muzzle) - /mob/living/carbon/human/proc/forcesay(list/append) if(stat == CONSCIOUS) if(client) @@ -132,11 +129,11 @@ if(silent || (sdisabilities & MUTE)) message = "" speech_problem_flag = 1 - else if(istype(wear_mask, /obj/item/clothing/mask/horsehead)) - var/obj/item/clothing/mask/horsehead/hoers = wear_mask - if(hoers.voicechange) - message = pick("NEEIIGGGHHHH!", "NEEEIIIIGHH!", "NEIIIGGHH!", "HAAWWWWW!", "HAAAWWW!") - verb = pick("whinnies","neighs", "says") + else if(istype(wear_mask, /obj/item/clothing/mask)) + var/obj/item/clothing/mask/M = wear_mask + if(M.voicechange) + message = pick(M.say_messages) + verb = pick(M.say_verbs) speech_problem_flag = 1 if(message != "") diff --git a/code/modules/mob/living/carbon/human/species/outsider/vox.dm b/code/modules/mob/living/carbon/human/species/outsider/vox.dm index 926781abe10..905e962dd12 100644 --- a/code/modules/mob/living/carbon/human/species/outsider/vox.dm +++ b/code/modules/mob/living/carbon/human/species/outsider/vox.dm @@ -5,6 +5,7 @@ deform = 'icons/mob/human_races/r_def_vox.dmi' default_language = "Vox-pidgin" language = "Galactic Common" + num_alternate_languages = 1 unarmed_types = list(/datum/unarmed_attack/stomp, /datum/unarmed_attack/kick, /datum/unarmed_attack/claws/strong, /datum/unarmed_attack/bite/strong) rarity_value = 2 blurb = "The Vox are the broken remnants of a once-proud race, now reduced to little more than \ @@ -65,7 +66,7 @@ H.equip_to_slot_or_del(new /obj/item/weapon/storage/box/vox(H.back), slot_in_backpack) H.internal = H.r_hand H.internals.icon_state = "internal1" - + /datum/species/vox/can_shred(var/mob/living/carbon/human/H, var/ignore_intent) if(!H.mind || !H.mind.special_role) // Pariah check. diff --git a/code/modules/mob/living/carbon/human/species/species.dm b/code/modules/mob/living/carbon/human/species/species.dm index 85d7f45c452..47063874b76 100644 --- a/code/modules/mob/living/carbon/human/species/species.dm +++ b/code/modules/mob/living/carbon/human/species/species.dm @@ -34,9 +34,10 @@ // Language/culture vars. var/default_language = "Galactic Common" // Default language is used when 'say' is used without modifiers. var/language = "Galactic Common" // Default racial language, if any. - var/secondary_langs = list() // The names of secondary languages that are available to this species. + var/list/secondary_langs = list() // The names of secondary languages that are available to this species. var/list/speech_sounds // A list of sounds to potentially play when speaking. var/list/speech_chance // The likelihood of a speech sound playing. + var/num_alternate_languages = 0 // How many secondary languages are available to select at character creation // Combat vars. var/total_health = 100 // Point at which the mob will enter crit. 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 c3312b9a7a9..466b1bd2aba 100644 --- a/code/modules/mob/living/carbon/human/species/species_attack.dm +++ b/code/modules/mob/living/carbon/human/species/species_attack.dm @@ -9,11 +9,15 @@ /datum/unarmed_attack/diona attack_verb = list("lashed", "bludgeoned") attack_noun = list("tendril") + eye_attack_text = "a tendril" + eye_attack_text_victim = "a tendril" damage = 5 /datum/unarmed_attack/claws attack_verb = list("scratched", "clawed", "slashed") attack_noun = list("claws") + eye_attack_text = "claws" + eye_attack_text_victim = "sharp claws" attack_sound = 'sound/weapons/slice.ogg' miss_sound = 'sound/weapons/slashmiss.ogg' damage = 5 diff --git a/code/modules/mob/living/carbon/human/species/station/monkey.dm b/code/modules/mob/living/carbon/human/species/station/monkey.dm index db6c69b4092..6ae24db2f63 100644 --- a/code/modules/mob/living/carbon/human/species/station/monkey.dm +++ b/code/modules/mob/living/carbon/human/species/station/monkey.dm @@ -37,7 +37,6 @@ bump_flag = MONKEY swap_flags = MONKEY|SLIME|SIMPLE_ANIMAL push_flags = MONKEY|SLIME|SIMPLE_ANIMAL|ALIEN - var/holder_type = /obj/item/weapon/holder/monkey /datum/species/monkey/handle_npc(var/mob/living/carbon/human/H) if(H.stat != CONSCIOUS) @@ -47,10 +46,6 @@ if(prob(1)) H.emote(pick("scratch","jump","roll","tail")) -/datum/species/monkey/handle_post_spawn(var/mob/living/carbon/human/H) - ..() - H.holder_type = holder_type - /datum/species/monkey/get_random_name() return "[lowertext(name)] ([rand(100,999)])" @@ -66,7 +61,6 @@ flesh_color = "#AFA59E" base_color = "#333333" tail = "farwatail" - holder_type = /obj/item/weapon/holder/monkey/farwa /datum/species/monkey/skrell name = "Neara" @@ -81,7 +75,6 @@ blood_color = "#1D2CBF" reagent_tag = IS_SKRELL tail = null - holder_type = /obj/item/weapon/holder/monkey/neaera /datum/species/monkey/unathi name = "Stok" @@ -96,4 +89,3 @@ flesh_color = "#34AF10" base_color = "#066000" reagent_tag = IS_UNATHI - holder_type = /obj/item/weapon/holder/monkey/stok 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 8e0402b91a8..5ba275057ba 100644 --- a/code/modules/mob/living/carbon/human/species/station/station.dm +++ b/code/modules/mob/living/carbon/human/species/station/station.dm @@ -1,7 +1,6 @@ /datum/species/human name = "Human" name_plural = "Humans" - language = "Sol Common" primitive_form = "Monkey" unarmed_types = list(/datum/unarmed_attack/stomp, /datum/unarmed_attack/kick, /datum/unarmed_attack/punch, /datum/unarmed_attack/bite) blurb = "Humanity originated in the Sol system, and over the last five centuries has spread \ @@ -9,6 +8,8 @@ While the central Sol government maintains control of its far-flung people, powerful corporate \ interests, rampant cyber and bio-augmentation and secretive factions make life on most human \ worlds tumultous at best." + num_alternate_languages = 2 + secondary_langs = list("Sol Common") flags = CAN_JOIN | HAS_SKIN_TONE | HAS_LIPS | HAS_UNDERWEAR | HAS_EYE_COLOR @@ -17,13 +18,14 @@ name_plural = "Unathi" icobase = 'icons/mob/human_races/r_lizard.dmi' deform = 'icons/mob/human_races/r_def_lizard.dmi' - language = "Sinta'unathi" tail = "sogtail" tail_animation = 'icons/mob/species/unathi/tail.dmi' unarmed_types = list(/datum/unarmed_attack/stomp, /datum/unarmed_attack/kick, /datum/unarmed_attack/claws, /datum/unarmed_attack/bite/sharp) primitive_form = "Stok" darksight = 3 gluttonous = 1 + num_alternate_languages = 2 + secondary_langs = list("Sinta'unathi") blurb = "A heavily reptillian species, Unathi (or 'Sinta as they call themselves) hail from the \ Uuosa-Eso system, which roughly translates to 'burning mother'.

Coming from a harsh, radioactive \ @@ -69,13 +71,14 @@ name_plural = "Tajaran" icobase = 'icons/mob/human_races/r_tajaran.dmi' deform = 'icons/mob/human_races/r_def_tajaran.dmi' - language = "Siik'tajr" tail = "tajtail" tail_animation = 'icons/mob/species/tajaran/tail.dmi' unarmed_types = list(/datum/unarmed_attack/stomp, /datum/unarmed_attack/kick, /datum/unarmed_attack/claws, /datum/unarmed_attack/bite/sharp) darksight = 8 slowdown = -1 brute_mod = 1.2 + num_alternate_languages = 2 + secondary_langs = list("Siik'tajr") blurb = "The Tajaran race is a species of feline-like bipeds hailing from the planet of Ahdomai in the \ S'randarr system. They have been brought up into the space age by the Humans and Skrell, and have been \ @@ -116,7 +119,6 @@ icobase = 'icons/mob/human_races/r_skrell.dmi' deform = 'icons/mob/human_races/r_def_skrell.dmi' eyes = "skrell_eyes_s" - language = "Skrellian" primitive_form = "Neara" unarmed_types = list(/datum/unarmed_attack/punch) blurb = "An amphibious species, Skrell come from the star system known as Qerr'Vallis, which translates to 'Star of \ @@ -124,6 +126,8 @@ of the Qerr'Katish, a caste within their society which keeps the empire of the Skrell running smoothly. Skrell are \ herbivores on the whole and tend to be co-operative with the other species of the galaxy, although they rarely reveal \ the secrets of their empire to their allies." + num_alternate_languages = 2 + secondary_langs = list("Skrellian") flags = CAN_JOIN | IS_WHITELISTED | HAS_LIPS | HAS_UNDERWEAR | HAS_SKIN_COLOR @@ -147,6 +151,7 @@ siemens_coefficient = 0.3 eyes = "blank_eyes" show_ssd = "completely quiescent" + num_alternate_languages = 1 blurb = "Commonly referred to (erroneously) as 'plant people', the Dionaea are a strange space-dwelling collective \ @@ -251,6 +256,7 @@ language = "Encoded Audio Language" unarmed_types = list(/datum/unarmed_attack/punch) rarity_value = 2 + num_alternate_languages = 1 // potentially could be 2? eyes = "blank_eyes" brute_mod = 1.875 // 100% * 1.875 * 0.8 (robolimbs) ~= 150% diff --git a/code/modules/mob/living/carbon/human/stripping.dm b/code/modules/mob/living/carbon/human/stripping.dm index 8eaef158611..72b7ae0aba7 100644 --- a/code/modules/mob/living/carbon/human/stripping.dm +++ b/code/modules/mob/living/carbon/human/stripping.dm @@ -3,6 +3,10 @@ if(!slot_to_strip || !istype(user)) return + if(user.incapacitated()) + user << browse(null, text("window=mob[src.name]")) + return + var/obj/item/target_slot = get_equipped_item(text2num(slot_to_strip)) switch(slot_to_strip) diff --git a/code/modules/mob/living/carbon/human/unarmed_attack.dm b/code/modules/mob/living/carbon/human/unarmed_attack.dm index 155a1f23b78..289b4a22733 100644 --- a/code/modules/mob/living/carbon/human/unarmed_attack.dm +++ b/code/modules/mob/living/carbon/human/unarmed_attack.dm @@ -8,8 +8,11 @@ var/shredding = 0 // Calls the old attack_alien() behavior on objects/mobs when on harm intent. var/sharp = 0 var/edge = 0 + + var/eye_attack_text + var/eye_attack_text_victim -/datum/unarmed_attack/proc/is_usable(var/mob/living/carbon/human/user) +/datum/unarmed_attack/proc/is_usable(var/mob/living/carbon/human/user, var/mob/living/carbon/human/target, var/zone) if(user.restrained()) return 0 @@ -78,6 +81,13 @@ user.visible_message("[user] [pick(attack_verb)] [target] in the [affecting.name]!") playsound(user.loc, attack_sound, 25, 1, -1) +/datum/unarmed_attack/proc/handle_eye_attack(var/mob/living/carbon/human/user, var/mob/living/carbon/human/target) + var/obj/item/organ/eyes/eyes = target.internal_organs_by_name["eyes"] + eyes.take_damage(rand(3,4), 1) + + user.visible_message("[user] presses \his [eye_attack_text] into [target]'s [eyes.name]!") + target << "You experience[(target.species.flags & NO_PAIN)? "" : " immense pain as you feel" ] [eye_attack_text_victim] being pressed into your [eyes.name][(target.species.flags & NO_PAIN)? "." : "!"]" + /datum/unarmed_attack/bite attack_verb = list("bit") attack_sound = 'sound/weapons/bite.ogg' @@ -97,6 +107,8 @@ /datum/unarmed_attack/punch attack_verb = list("punched") attack_noun = list("fist") + eye_attack_text = "fingers" + eye_attack_text_victim = "digits" damage = 0 /datum/unarmed_attack/punch/show_attack(var/mob/living/carbon/human/user, var/mob/living/carbon/human/target, var/zone, var/attack_damage) diff --git a/code/modules/mob/living/life.dm b/code/modules/mob/living/life.dm index d7f475ec5b2..5e7a6e2d90f 100644 --- a/code/modules/mob/living/life.dm +++ b/code/modules/mob/living/life.dm @@ -2,6 +2,8 @@ set invisibility = 0 set background = BACKGROUND_ENABLED + ..() + if (transforming) return if(!loc) @@ -125,7 +127,8 @@ //this handles hud updates. Calls update_vision() and handle_hud_icons() /mob/living/handle_regular_hud_updates() - if(!client) return 0 + if(!client) + return 0 ..() handle_vision() diff --git a/code/modules/mob/living/living_defense.dm b/code/modules/mob/living/living_defense.dm index 2a643044010..009d7d191c9 100644 --- a/code/modules/mob/living/living_defense.dm +++ b/code/modules/mob/living/living_defense.dm @@ -378,7 +378,3 @@ src.attack_log += "\[[time_stamp()]\] Got knifed by [user.name] ([user.ckey]) with [W.name] (INTENT: [uppertext(user.a_intent)]) (DAMTYE: [uppertext(W.damtype)])" msg_admin_attack("[key_name(user)] knifed [key_name(src)] with [W.name] (INTENT: [uppertext(user.a_intent)]) (DAMTYE: [uppertext(W.damtype)])" ) return - -/mob/living/incapacitated() - if(stat || paralysis || stunned || weakened || restrained()) - return 1 diff --git a/code/modules/mob/living/login.dm b/code/modules/mob/living/login.dm index 383a81f13b5..b41baabef97 100644 --- a/code/modules/mob/living/login.dm +++ b/code/modules/mob/living/login.dm @@ -5,6 +5,5 @@ mind_initialize() //updates the mind (or creates and initializes one if one doesn't exist) mind.active = 1 //indicates that the mind is currently synced with a client //If they're SSD, remove it so they can wake back up. - player_logged = 0 update_antag_icons(mind) return . diff --git a/code/modules/mob/living/logout.dm b/code/modules/mob/living/logout.dm index 1f2551b6b85..577221a03ed 100644 --- a/code/modules/mob/living/logout.dm +++ b/code/modules/mob/living/logout.dm @@ -1,8 +1,6 @@ /mob/living/Logout() ..() - if (mind) - if(!key) //key and mind have become seperated. I believe this is for when a staff member aghosts. + if (mind) + //Per BYOND docs key remains set if the player DCs, becomes null if switching bodies. + if(!key) //key and mind have become seperated. mind.active = 0 //This is to stop say, a mind.transfer_to call on a corpse causing a ghost to re-enter its body. - //This tags a player as SSD. See appropriate life.dm files for furthering SSD effects such as falling asleep. - if(mind.active) - player_logged = 1 diff --git a/code/modules/mob/living/say.dm b/code/modules/mob/living/say.dm index 90f82d9304e..20e8ba14d63 100644 --- a/code/modules/mob/living/say.dm +++ b/code/modules/mob/living/say.dm @@ -139,10 +139,6 @@ proc/get_radio_key_from_channel(var/channel) return say_dead(message) return - if(is_muzzled()) - src << "You're muzzled and cannot speak!" - return - var/message_mode = parse_message_mode(message, "headset") switch(copytext(message,1,2)) @@ -180,6 +176,10 @@ proc/get_radio_key_from_channel(var/channel) else verb = say_quote(message) + if(is_muzzled()) + src << "You're muzzled and cannot speak!" + return + message = trim_left(message) if(!(speaking && (speaking.flags & NO_STUTTER))) diff --git a/code/modules/mob/living/silicon/ai/malf.dm b/code/modules/mob/living/silicon/ai/malf.dm index 0510a04535d..d86faeb3ea3 100644 --- a/code/modules/mob/living/silicon/ai/malf.dm +++ b/code/modules/mob/living/silicon/ai/malf.dm @@ -63,7 +63,7 @@ // Off-Station APCs should not count towards CPU generation. for(var/obj/machinery/power/apc/A in hacked_apcs) if(A.z in config.station_levels) - cpu_gain += 0.002 + cpu_gain += 0.004 cpu_storage += 10 research.max_cpu = cpu_storage + override_CPUStorage @@ -124,7 +124,7 @@ if(src.research) stat(null, "Available CPU: [src.research.stored_cpu] TFlops") stat(null, "Maximal CPU: [src.research.max_cpu] TFlops") - stat(null, "CPU generation rate: [src.research.cpu_increase_per_tick] TFlops/s") + stat(null, "CPU generation rate: [src.research.cpu_increase_per_tick * 10] TFlops/s") stat(null, "Current research focus: [src.research.focus ? src.research.focus.name : "None"]") if(src.research.focus) stat(null, "Research completed: [round(src.research.focus.invested, 0.1)]/[round(src.research.focus.price)]") @@ -138,3 +138,4 @@ if(psupply) del(psupply) psupply = new/obj/machinery/ai_powersupply(src) + diff --git a/code/modules/mob/living/silicon/pai/pai.dm b/code/modules/mob/living/silicon/pai/pai.dm index ad06c58d6ea..4641c7d2de7 100644 --- a/code/modules/mob/living/silicon/pai/pai.dm +++ b/code/modules/mob/living/silicon/pai/pai.dm @@ -6,7 +6,6 @@ emote_type = 2 // pAIs emotes are heard, not seen, so they can be seen through a container (eg. person) small = 1 pass_flags = 1 - holder_type = /obj/item/weapon/holder/pai var/network = "SS13" var/obj/machinery/camera/current = null @@ -430,4 +429,4 @@ get_scooped(H) return else - return ..() + return ..() diff --git a/code/modules/mob/living/silicon/robot/custom_sprites.dm b/code/modules/mob/living/silicon/robot/custom_sprites.dm index 5966796f4d3..c3632cd62e7 100644 --- a/code/modules/mob/living/silicon/robot/custom_sprites.dm +++ b/code/modules/mob/living/silicon/robot/custom_sprites.dm @@ -25,6 +25,6 @@ var/list/robot_custom_icons var/rname = robot_custom_icons[ckey] if(rname && rname == real_name) custom_sprite = 1 - icon = 'icons/mob/custom_synthetic.dmi' + icon = CUSTOM_ITEM_SYNTH if(icon_state == "robot") icon_state = "[ckey]-Standard" diff --git a/code/modules/mob/living/silicon/robot/drone/drone.dm b/code/modules/mob/living/silicon/robot/drone/drone.dm index 89df6fad397..37c40d71619 100644 --- a/code/modules/mob/living/silicon/robot/drone/drone.dm +++ b/code/modules/mob/living/silicon/robot/drone/drone.dm @@ -1,3 +1,23 @@ +var/list/mob_hat_cache = list() +/proc/get_hat_icon(var/obj/item/hat, var/offset_x = 0, var/offset_y = 0) + var/t_state = hat.icon_state + if(hat.item_state_slots && hat.item_state_slots[slot_head_str]) + t_state = hat.item_state_slots[slot_head_str] + else if(hat.item_state) + t_state = hat.item_state + var/key = "[t_state]_[offset_x]_[offset_y]" + if(!mob_hat_cache[key]) // Not ideal as there's no guarantee all hat icon_states + var/t_icon = INV_HEAD_DEF_ICON // are unique across multiple dmis, but whatever. + if(hat.icon_override) + t_icon = hat.icon_override + else if(hat.item_icons && (slot_head_str in hat.item_icons)) + t_icon = hat.item_icons[slot_head_str] + var/image/I = image(icon = t_icon, icon_state = t_state) + I.pixel_x = offset_x + I.pixel_y = offset_y + mob_hat_cache[key] = I + return mob_hat_cache[key] + /mob/living/silicon/robot/drone name = "drone" real_name = "drone" @@ -29,9 +49,26 @@ var/module_type = /obj/item/weapon/robot_module/drone var/can_pull_size = 2 var/can_pull_mobs + var/obj/item/hat + var/hat_x_offset = 0 + var/hat_y_offset = -13 holder_type = /obj/item/weapon/holder/drone +/mob/living/silicon/robot/drone/Destroy() + if(hat) + hat.loc = get_turf(src) + ..() + +/mob/living/silicon/robot/drone/construction + icon_state = "constructiondrone" + law_type = /datum/ai_laws/construction_drone + module_type = /obj/item/weapon/robot_module/drone/construction + can_pull_size = 5 + can_pull_mobs = 1 + hat_x_offset = 1 + hat_y_offset = -12 + /mob/living/silicon/robot/drone/New() ..() @@ -82,6 +119,8 @@ overlays += "eyes-[icon_state]" else overlays -= "eyes" + if(hat) // Let the drones wear hats. + overlays |= get_hat_icon(hat, hat_x_offset, hat_y_offset) /mob/living/silicon/robot/drone/choose_icon() return @@ -89,10 +128,25 @@ /mob/living/silicon/robot/drone/pick_module() return -//Drones cannot be upgraded with borg modules so we need to catch some items before they get used in ..(). -/mob/living/silicon/robot/drone/attackby(obj/item/weapon/W as obj, mob/user as mob) +/mob/living/silicon/robot/drone/proc/wear_hat(var/obj/item/new_hat) + if(hat) + return + hat = new_hat + new_hat.loc = src + updateicon() - if(istype(W, /obj/item/borg/upgrade/)) +//Drones cannot be upgraded with borg modules so we need to catch some items before they get used in ..(). +/mob/living/silicon/robot/drone/attackby(var/obj/item/weapon/W, var/mob/user) + + if(user.a_intent == "help" && istype(W, /obj/item/clothing/head)) + if(hat) + user << "\The [src] is already wearing \the [hat]." + return + user.unEquip(W) + wear_hat(W) + user.visible_message("\The [user] puts \the [W] on \the [src].") + return + else if(istype(W, /obj/item/borg/upgrade/)) user << "\The [src] is not compatible with \the [W]." return @@ -135,7 +189,7 @@ return ..() - + /mob/living/silicon/robot/drone/emag_act(var/remaining_charges, var/mob/user) if(!client || stat == 2) user << "There's not much point subverting this heap of junk." @@ -160,11 +214,11 @@ clear_supplied_laws() clear_inherent_laws() laws = new /datum/ai_laws/syndicate_override - set_zeroth_law("Only [user.real_name] and people he designates as being such are operatives.") + set_zeroth_law("Only [user.real_name] and people \he designates as being such are operatives.") src << "Obey these laws:" laws.show_laws(src) - src << "ALERT: [user.real_name] is your new master. Obey your new laws and his commands." + src << "ALERT: [user.real_name] is your new master. Obey your new laws and \his commands." return 1 //DRONE LIFE/DEATH @@ -261,19 +315,17 @@ /mob/living/silicon/robot/drone/start_pulling(var/atom/movable/AM) - if(istype(AM,/obj/item/pipe) || istype(AM,/obj/structure/disposalconstruct)) - ..() - else if(istype(AM,/obj/item)) - var/obj/item/O = AM - if(O.w_class > can_pull_size) - src << "You are too small to pull that." - return + if(!(istype(AM,/obj/item/pipe) || istype(AM,/obj/structure/disposalconstruct))) + if(istype(AM,/obj/item)) + var/obj/item/O = AM + if(O.w_class > can_pull_size) + src << "You are too small to pull that." + return else - ..() - else - if(!can_pull_mobs) - src << "You are too small to pull that." - return + if(!can_pull_mobs) + src << "You are too small to pull that." + return + ..() /mob/living/silicon/robot/drone/add_robot_verbs() src.verbs |= silicon_subsystems @@ -281,13 +333,6 @@ /mob/living/silicon/robot/drone/remove_robot_verbs() src.verbs -= silicon_subsystems -/mob/living/silicon/robot/drone/construction - icon_state = "constructiondrone" - law_type = /datum/ai_laws/construction_drone - module_type = /obj/item/weapon/robot_module/drone/construction - can_pull_size = 5 - can_pull_mobs = 1 - /mob/living/silicon/robot/drone/construction/welcome_drone() src << "You are a construction drone, an autonomous engineering and fabrication system.." src << "You are assigned to a Sol Central construction project. The name is irrelevant. Your task is to complete construction and subsystem integration as soon as possible." @@ -300,4 +345,4 @@ /mob/living/silicon/robot/drone/construction/updatename() real_name = "construction drone ([rand(100,999)])" - name = real_name \ No newline at end of file + name = real_name diff --git a/code/modules/mob/living/silicon/robot/drone/drone_abilities.dm b/code/modules/mob/living/silicon/robot/drone/drone_abilities.dm index 0eaf1c87793..e5aa936a086 100644 --- a/code/modules/mob/living/silicon/robot/drone/drone_abilities.dm +++ b/code/modules/mob/living/silicon/robot/drone/drone_abilities.dm @@ -10,13 +10,13 @@ mail_destination = "" return - src << "\blue You configure your internal beacon, tagging yourself for delivery to '[new_tag]'." + src << "You configure your internal beacon, tagging yourself for delivery to '[new_tag]'." mail_destination = new_tag //Auto flush if we use this verb inside a disposal chute. var/obj/machinery/disposal/D = src.loc if(istype(D)) - src << "\blue \The [D] acknowledges your signal." + src << "\The [D] acknowledges your signal." D.flush_count = D.flush_every_ticks return @@ -27,5 +27,11 @@ if(H.a_intent == "help") get_scooped(H) return + else if(H.a_intent == "grab" && hat && !(H.l_hand && H.r_hand)) + hat.loc = get_turf(src) + H.put_in_hands(hat) + H.visible_message("\The [H] removes \the [src]'s [hat].") + hat = null + updateicon() else return ..() \ No newline at end of file diff --git a/code/modules/mob/living/silicon/robot/drone/drone_console.dm b/code/modules/mob/living/silicon/robot/drone/drone_console.dm index c707f85c68b..88dd1d66175 100644 --- a/code/modules/mob/living/silicon/robot/drone/drone_console.dm +++ b/code/modules/mob/living/silicon/robot/drone/drone_console.dm @@ -2,9 +2,10 @@ name = "Maintenance Drone Control" desc = "Used to monitor the station's drone population and the assembler that services them." icon = 'icons/obj/computer.dmi' - icon_state = "power" + icon_keyboard = "power_key" + icon_screen = "power" req_access = list(access_engine_equip) - circuit = "/obj/item/weapon/circuitboard/drone_control" + circuit = /obj/item/weapon/circuitboard/drone_control //Used when pinging drones. var/drone_call_area = "Engineering" 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 84611ecb95c..0ec65be4201 100644 --- a/code/modules/mob/living/silicon/robot/drone/drone_items.dm +++ b/code/modules/mob/living/silicon/robot/drone/drone_items.dm @@ -14,6 +14,7 @@ /obj/item/weapon/firealarm_electronics, /obj/item/weapon/airalarm_electronics, /obj/item/weapon/airlock_electronics, + /obj/item/weapon/tracker_electronics, /obj/item/weapon/module/power_control, /obj/item/weapon/stock_parts, /obj/item/frame, diff --git a/code/modules/mob/living/silicon/robot/drone/drone_manufacturer.dm b/code/modules/mob/living/silicon/robot/drone/drone_manufacturer.dm index a292ead1b14..171fc299333 100644 --- a/code/modules/mob/living/silicon/robot/drone/drone_manufacturer.dm +++ b/code/modules/mob/living/silicon/robot/drone/drone_manufacturer.dm @@ -78,7 +78,8 @@ flick("h_lathe_leave",src) time_last_drone = world.time - var/mob/living/silicon/robot/drone/new_drone = new drone_type(get_turf(src)) + if(player.mob && player.mob.mind) player.mob.mind.reset() + var/mob/living/silicon/robot/drone/new_drone = PoolOrNew(drone_type, get_turf(src)) new_drone.transfer_personality(player) new_drone.master_fabricator = src @@ -90,7 +91,6 @@ set name = "Join As Drone" set desc = "If there is a powered, enabled fabricator in the game world with a prepared chassis, join as a maintenance drone." - if(ticker.current_state < GAME_STATE_PLAYING) src << "The game hasn't started yet!" return @@ -108,17 +108,11 @@ if(jobban_isbanned(src,"Cyborg")) usr << "You are banned from playing synthetics and cannot spawn as a drone." return - + if(!MayRespawn(1)) return var/deathtime = world.time - src.timeofdeath - if(istype(src,/mob/dead/observer)) - var/mob/dead/observer/G = src - if(G.has_enabled_antagHUD == 1 && config.antag_hud_restricted) - usr << "Upon using the antagHUD you forfeighted the ability to join the round." - return - var/deathtimeminutes = round(deathtime / 600) var/pluralcheck = "minute" if(deathtimeminutes == 0) diff --git a/code/modules/mob/living/silicon/robot/emote.dm b/code/modules/mob/living/silicon/robot/emote.dm index 34df63d397a..dca60f597c6 100644 --- a/code/modules/mob/living/silicon/robot/emote.dm +++ b/code/modules/mob/living/silicon/robot/emote.dm @@ -65,12 +65,12 @@ m_type = 2 if ("flap") if (!src.restrained()) - message = "flaps his wings." + message = "flaps its wings." m_type = 2 if ("aflap") if (!src.restrained()) - message = "flaps his wings ANGRILY!" + message = "flaps its wings ANGRILY!" m_type = 2 if ("twitch") @@ -213,4 +213,4 @@ if ((message && src.stat == 0)) custom_emote(m_type,message) - return \ No newline at end of file + return diff --git a/code/modules/mob/living/silicon/robot/life.dm b/code/modules/mob/living/silicon/robot/life.dm index c9d08b2b497..8e8ab59ca6c 100644 --- a/code/modules/mob/living/silicon/robot/life.dm +++ b/code/modules/mob/living/silicon/robot/life.dm @@ -65,9 +65,9 @@ if(src.camera && !scrambledcodes) if(src.stat == 2 || wires.IsIndexCut(BORG_WIRE_CAMERA)) - src.camera.status = 0 + src.camera.set_status(0) else - src.camera.status = 1 + src.camera.set_status(1) updatehealth() diff --git a/code/modules/mob/living/silicon/robot/robot.dm b/code/modules/mob/living/silicon/robot/robot.dm index 82a9426b771..1159545a54d 100644 --- a/code/modules/mob/living/silicon/robot/robot.dm +++ b/code/modules/mob/living/silicon/robot/robot.dm @@ -182,7 +182,7 @@ aiCamera = new/obj/item/device/camera/siliconcam/robot_camera(src) laws = new /datum/ai_laws/syndicate_override - module = new /obj/item/weapon/robot_module/syndicate(src) + new /obj/item/weapon/robot_module/syndicate(src) radio.keyslot = new /obj/item/device/encryptionkey/syndicate(radio) radio.recalculateChannels() @@ -263,7 +263,7 @@ return var/module_type = robot_modules[modtype] - module = new module_type(src) + new module_type(src) hands.icon_state = lowertext(modtype) feedback_inc("cyborg_[lowertext(modtype)]",1) @@ -421,8 +421,7 @@ // update the status screen display /mob/living/silicon/robot/Stat() ..() - statpanel("Status") - if (client.statpanel == "Status") + if (statpanel("Status")) show_cell_power() show_jetpack_pressure() stat(null, text("Lights: [lights_on ? "ON" : "OFF"]")) @@ -997,7 +996,7 @@ if(ROBOT_NOTIFICATION_NEW_MODULE) //New Module connected_ai << "

NOTICE - [braintype] module change detected: [name] has loaded the [first_arg].
" if(ROBOT_NOTIFICATION_MODULE_RESET) - connected_ai << "

NOTICE - [braintype] module reset detected: [name] has unladed the [first_arg].
" + connected_ai << "

NOTICE - [braintype] module reset detected: [name] has unloaded the [first_arg].
" if(ROBOT_NOTIFICATION_NEW_NAME) //New Name if(first_arg != second_arg) connected_ai << "

NOTICE - [braintype] reclassification detected: [first_arg] is now designated as [second_arg].
" @@ -1049,25 +1048,25 @@ laws = new /datum/ai_laws/syndicate_override var/time = time2text(world.realtime,"hh:mm:ss") lawchanges.Add("[time] : [user.name]([user.key]) emagged [name]([key])") - set_zeroth_law("Only [user.real_name] and people he designates as being such are operatives.") + set_zeroth_law("Only [user.real_name] and people \he designates as being such are operatives.") . = 1 spawn() - src << "\red ALERT: Foreign software detected." + src << "ALERT: Foreign software detected." sleep(5) - src << "\red Initiating diagnostics..." + src << "Initiating diagnostics..." sleep(20) - src << "\red SynBorg v1.7.1 loaded." + src << "SynBorg v1.7.1 loaded." sleep(5) - src << "\red LAW SYNCHRONISATION ERROR" + src << "LAW SYNCHRONISATION ERROR" sleep(5) - src << "\red Would you like to send a report to NanoTraSoft? Y/N" + src << "Would you like to send a report to NanoTraSoft? Y/N" sleep(10) - src << "\red > N" + src << "> N" sleep(20) - src << "\red ERRORERRORERROR" + src << "ERRORERRORERROR" src << "Obey these laws:" laws.show_laws(src) - src << "\red \b ALERT: [user.real_name] is your new master. Obey your new laws and his commands." + src << "ALERT: [user.real_name] is your new master. Obey your new laws and his commands." if(src.module) var/rebuild = 0 for(var/obj/item/weapon/pickaxe/borgdrill/D in src.module.modules) @@ -1081,4 +1080,4 @@ user << "You fail to hack [src]'s interface." src << "Hack attempt detected." return 1 - return + return diff --git a/code/modules/mob/living/silicon/robot/robot_modules.dm b/code/modules/mob/living/silicon/robot/robot_modules.dm index 4d7179bbfce..a36cca1710a 100644 --- a/code/modules/mob/living/silicon/robot/robot_modules.dm +++ b/code/modules/mob/living/silicon/robot/robot_modules.dm @@ -39,6 +39,8 @@ var/global/list/robot_modules = list( /obj/item/weapon/robot_module/New(var/mob/living/silicon/robot/R) ..() + R.module = src + add_camera_networks(R) add_languages(R) add_subsystems(R) @@ -69,7 +71,7 @@ var/global/list/robot_modules = list( synths = null emag = null jetpack = null - ..() + return ..() /obj/item/weapon/robot_module/emp_act(severity) if(modules) @@ -505,7 +507,7 @@ var/global/list/robot_modules = list( src.modules += new /obj/item/weapon/tray/robotray(src) src.modules += new /obj/item/weapon/reagent_containers/borghypo/service(src) - src.emag = new /obj/item/weapon/reagent_containers/food/drinks/cans/beer(src) + src.emag = new /obj/item/weapon/reagent_containers/food/drinks/bottle/small/beer(src) var/datum/reagents/R = new/datum/reagents(50) src.emag.reagents = R @@ -538,7 +540,7 @@ var/global/list/robot_modules = list( var/obj/item/weapon/reagent_containers/food/condiment/enzyme/E = locate() in src.modules E.reagents.add_reagent("enzyme", 2 * amount) if(src.emag) - var/obj/item/weapon/reagent_containers/food/drinks/cans/beer/B = src.emag + var/obj/item/weapon/reagent_containers/food/drinks/bottle/small/beer/B = src.emag B.reagents.add_reagent("beer2", 2 * amount) /obj/item/weapon/robot_module/miner diff --git a/code/modules/mob/living/silicon/silicon.dm b/code/modules/mob/living/silicon/silicon.dm index adb95b72715..9bb71d22103 100644 --- a/code/modules/mob/living/silicon/silicon.dm +++ b/code/modules/mob/living/silicon/silicon.dm @@ -224,7 +224,7 @@ if(L == default_language) default_str = " - default - reset" else - default_str = " - set default" + default_str = " - set default" var/synth = (L in speech_synthesizer_langs) dat += "[L.name] (:[L.key])[synth ? default_str : null]
Speech Synthesizer: [synth ? "YES" : "NOT SUPPORTED"]
[L.desc]

" diff --git a/code/modules/mob/living/simple_animal/bees.dm b/code/modules/mob/living/simple_animal/bees.dm deleted file mode 100644 index fc2a1cd72ea..00000000000 --- a/code/modules/mob/living/simple_animal/bees.dm +++ /dev/null @@ -1,179 +0,0 @@ - -/mob/living/simple_animal/bee - name = "bees" - icon = 'icons/obj/apiary_bees_etc.dmi' - icon_state = "bees1" - icon_dead = "bees1" - mob_size = 1 - var/strength = 1 - var/feral = 0 - var/mut = 0 - var/toxic = 0 - var/turf/target_turf - var/mob/target_mob - var/obj/machinery/apiary/parent - pass_flags = PASSTABLE - turns_per_move = 6 - var/obj/machinery/portable_atmospherics/hydroponics/my_hydrotray - -/mob/living/simple_animal/bee/New(loc, var/obj/machinery/apiary/new_parent) - ..() - parent = new_parent - -/mob/living/simple_animal/bee/Destroy() - if(parent) - parent.owned_bee_swarms.Remove(src) - ..() - -/mob/living/simple_animal/bee/Life() - ..() - - if(stat == CONSCIOUS) - //if we're strong enough, sting some people - var/mob/living/carbon/human/M = target_mob - var/sting_prob = 40 // Bees will always try to sting. - if(M in view(src,1)) // Can I see my target? - if(prob(max(feral * 10, 0))) // Am I mad enough to want to sting? And yes, when I initially appear, I AM mad enough - var/obj/item/clothing/worn_suit = M.wear_suit - var/obj/item/clothing/worn_helmet = M.head - if(worn_suit) // Are you wearing clothes? - sting_prob -= min(worn_suit.armor["bio"],70) // Is it sealed? I can't get to 70% of your body. - if(worn_helmet) - sting_prob -= min(worn_helmet.armor["bio"],30) // Is your helmet sealed? I can't get to 30% of your body. - if( prob(sting_prob) && (M.stat == CONSCIOUS || (M.stat == UNCONSCIOUS && prob(25))) ) // Try to sting! If you're not moving, think about stinging. - M.apply_damage(min(strength,2)+mut, BRUTE, sharp=1) // Stinging. The more mutated I am, the harder I sting. - M.apply_damage((round(feral/10,1)*(max((round(strength/20,1)),1)))+toxic, TOX) // Bee venom based on how angry I am and how many there are of me! - M << "\red You have been stung!" - M.flash_pain() - - //if we're chasing someone, get a little bit angry - if(target_mob && prob(5)) - feral++ - - //calm down a little bit - if(feral > 0) - if(prob(feral * 20)) - feral -= 1 - else - //if feral is less than 0, we're becalmed by smoke or steam - if(feral < 0) - feral += 1 - - if(target_mob) - target_mob = null - target_turf = null - if(strength > 5) - //calm down and spread out a little - var/mob/living/simple_animal/bee/B = new(get_turf(pick(orange(src,1)))) - B.strength = rand(1,5) - src.strength -= B.strength - if(src.strength <= 5) - src.icon_state = "bees[src.strength]" - B.icon_state = "bees[B.strength]" - if(src.parent) - B.parent = src.parent - src.parent.owned_bee_swarms.Add(B) - - //make some noise - if(prob(0.5)) - src.visible_message("\blue [pick("Buzzzz.","Hmmmmm.","Bzzz.")]") - - //smoke, water and steam calms us down - var/calming = 0 - var/list/calmers = list(/obj/effect/effect/smoke/chem, \ - /obj/effect/effect/water, \ - /obj/effect/effect/foam, \ - /obj/effect/effect/steam, \ - /obj/effect/mist) - - for(var/this_type in calmers) - var/mob/living/simple_animal/check_effect = locate() in src.loc - if(istype(check_effect)) - if(check_effect.type == this_type) - calming = 1 - break - - if(calming) - if(feral > 0) - src.visible_message("\blue The bees calm down!") - feral = -10 - target_mob = null - target_turf = null - wander = 1 - - for(var/mob/living/simple_animal/bee/B in src.loc) - if(B == src) - continue - - if(feral > 0) - src.strength += B.strength - qdel(B) - src.icon_state = "bees[src.strength]" - if(strength > 5) - icon_state = "bees_swarm" - else if(prob(10)) - //make the other swarm of bees stronger, then move away - var/total_bees = B.strength + src.strength - if(total_bees < 10) - B.strength = min(5, total_bees) - src.strength = total_bees - B.strength - - B.icon_state = "bees[B.strength]" - if(src.strength <= 0) - qdel(src) - return - src.icon_state = "bees[B.strength]" - var/turf/simulated/floor/T = get_turf(get_step(src, pick(1,2,4,8))) - density = 1 - if(T.Enter(src, get_turf(src))) - src.loc = T - density = 0 - break - - if(target_mob) - if(target_mob in view(src,7)) - target_turf = get_turf(target_mob) - wander = 0 - - else // My target's gone! But I might still be pissed! You there. You look like a good stinging target! - for(var/mob/living/carbon/G in view(src,7)) - target_mob = G - break - - if(target_turf) - if (!(DirBlocked(get_step(src, get_dir(src,target_turf)),get_dir(src,target_turf)))) // Check for windows and doors! - Move(get_step(src, get_dir(src,target_turf))) - if (prob(0.1)) - src.visible_message("\blue The bees swarm after [target_mob]!") - if(src.loc == target_turf) - target_turf = null - wander = 1 - else - //find some flowers, harvest - //angry bee swarms don't hang around - if(feral > 0) - turns_per_move = rand(1,3) - else if(feral < 0) - turns_since_move = 0 - else if(!my_hydrotray || my_hydrotray.loc != src.loc || my_hydrotray.dead || !my_hydrotray.seed) - var/obj/machinery/portable_atmospherics/hydroponics/my_hydrotray = locate() in src.loc - if(my_hydrotray) - if(!my_hydrotray.dead && my_hydrotray.seed) - turns_per_move = rand(20,50) - else - my_hydrotray = null - - pixel_x = rand(-12,12) - pixel_y = rand(-12,12) - - if(!parent && prob(10)) - strength -= 1 - if(strength <= 0) - qdel(src) - else if(strength <= 5) - icon_state = "bees[strength]" - - //debugging - /*icon_state = "[strength]" - if(strength > 5) - icon_state = "unknown"*/ diff --git a/code/modules/mob/living/simple_animal/friendly/cat.dm b/code/modules/mob/living/simple_animal/friendly/cat.dm index 3197c6023cc..daf7b3768e9 100644 --- a/code/modules/mob/living/simple_animal/friendly/cat.dm +++ b/code/modules/mob/living/simple_animal/friendly/cat.dm @@ -59,8 +59,13 @@ var/mob/dead/observer/spook = locate() in range(src,5) if(spook) var/turf/T = spook.loc - var/obj/O = pick(T.contents) - visible_emote("suddenly stops and stares at something unseen[istype(O) ? " near [O]":""].") + var/list/visible = list() + for(var/obj/O in T.contents) + if(!O.invisibility && O.name) + visible += O + if(visible.len) + var/atom/A = pick(visible) + visible_emote("suddenly stops and stares at something unseen[istype(A) ? " near [A]":""].") /mob/living/simple_animal/cat/proc/handle_movement_target() //if our target is neither inside a turf or inside a human(???), stop diff --git a/code/modules/mob/living/simple_animal/friendly/mouse.dm b/code/modules/mob/living/simple_animal/friendly/mouse.dm index 70f7282b8e3..e0ffc718ff0 100644 --- a/code/modules/mob/living/simple_animal/friendly/mouse.dm +++ b/code/modules/mob/living/simple_animal/friendly/mouse.dm @@ -63,13 +63,6 @@ if(!body_color) body_color = pick( list("brown","gray","white") ) - switch(body_color) - if("brown") - holder_type = /obj/item/weapon/holder/mouse/brown - if("gray") - holder_type = /obj/item/weapon/holder/mouse/gray - if("white") - holder_type = /obj/item/weapon/holder/mouse/white icon_state = "mouse_[body_color]" icon_living = "mouse_[body_color]" icon_dead = "mouse_[body_color]_dead" @@ -125,17 +118,14 @@ /mob/living/simple_animal/mouse/white body_color = "white" icon_state = "mouse_white" - holder_type = /obj/item/weapon/holder/mouse/white /mob/living/simple_animal/mouse/gray body_color = "gray" icon_state = "mouse_gray" - holder_type = /obj/item/weapon/holder/mouse/gray /mob/living/simple_animal/mouse/brown body_color = "brown" icon_state = "mouse_brown" - holder_type = /obj/item/weapon/holder/mouse/brown //TOM IS ALIVE! SQUEEEEEEEE~K :) /mob/living/simple_animal/mouse/brown/Tom diff --git a/code/modules/mob/living/simple_animal/hostile/syndicate.dm b/code/modules/mob/living/simple_animal/hostile/syndicate.dm index fa742733a24..9156f24c7f2 100644 --- a/code/modules/mob/living/simple_animal/hostile/syndicate.dm +++ b/code/modules/mob/living/simple_animal/hostile/syndicate.dm @@ -107,7 +107,7 @@ rapid = 1 icon_state = "syndicateranged" icon_living = "syndicateranged" - casingtype = /obj/item/ammo_casing/a12mm + casingtype = /obj/item/ammo_casing/a10mm projectilesound = 'sound/weapons/Gunshot_light.ogg' projectiletype = /obj/item/projectile/bullet/pistol/medium diff --git a/code/modules/mob/mob.dm b/code/modules/mob/mob.dm index 44077731194..9aec67001eb 100644 --- a/code/modules/mob/mob.dm +++ b/code/modules/mob/mob.dm @@ -2,7 +2,15 @@ mob_list -= src dead_mob_list -= src living_mob_list -= src + unset_machine() qdel(hud_used) + if(client) + for(var/obj/screen/movable/spell_master/spell_master in spell_masters) + qdel(spell_master) + remove_screen_obj_references() + for(var/atom/movable/AM in client.screen) + qdel(AM) + client.screen = list() if(mind && mind.current == src) spellremove(src) for(var/infection in viruses) @@ -10,6 +18,32 @@ ghostize() ..() +/mob/proc/remove_screen_obj_references() + flash = null + blind = null + hands = null + pullin = null + purged = null + internals = null + oxygen = null + i_select = null + m_select = null + toxin = null + fire = null + bodytemp = null + healths = null + throw_icon = null + nutrition_icon = null + pressure = null + damageoverlay = null + pain = null + item_use_icon = null + gun_move_icon = null + gun_run_icon = null + gun_setting_icon = null + spell_masters = null + zone_sel = null + /mob/New() mob_list += src if(stat == DEAD) @@ -119,7 +153,7 @@ return /mob/proc/incapacitated() - return + return (stat || paralysis || stunned || weakened || restrained()) /mob/proc/restrained() return @@ -617,31 +651,35 @@ /mob/Stat() ..() + . = (client && client.inactivity < 1200) - if(client && client.holder) - if(statpanel("Status")) - statpanel("Status","Location:","([x], [y], [z])") - statpanel("Status","CPU:","[world.cpu]") - statpanel("Status","Instances:","[world.contents.len]") - if(statpanel("Status") && processScheduler && processScheduler.getIsRunning()) - for(var/datum/controller/process/P in processScheduler.processes) - statpanel("Status",P.getStatName(), P.getTickTime()) - else - statpanel("Status","processScheduler is not running.") + if(.) + if(client.holder) + if(statpanel("Status")) + statpanel("Status","Location:","([x], [y], [z])") + statpanel("Status","CPU:","[world.cpu]") + statpanel("Status","Instances:","[world.contents.len]") + if(statpanel("Status") && processScheduler && processScheduler.getIsRunning()) + for(var/datum/controller/process/P in processScheduler.processes) + statpanel("Status",P.getStatName(), P.getTickTime()) + else + statpanel("Status","processScheduler is not running.") - if(listed_turf && client) - if(!TurfAdjacent(listed_turf)) - listed_turf = null - else - statpanel(listed_turf.name, null, listed_turf) - for(var/atom/A in listed_turf) - if(!A.mouse_opacity) - continue - if(A.invisibility > see_invisible) - continue - if(is_type_in_list(A, shouldnt_see)) - continue - statpanel(listed_turf.name, null, A) + if(listed_turf && client) + if(!TurfAdjacent(listed_turf)) + listed_turf = null + else + statpanel(listed_turf.name, null, listed_turf) + for(var/atom/A in listed_turf) + if(!A.mouse_opacity) + continue + if(A.invisibility > see_invisible) + continue + if(is_type_in_list(A, shouldnt_see)) + continue + statpanel(listed_turf.name, null, A) + + sleep(4) //Prevent updating the stat panel for the next .4 seconds, prevents clientside latency from updates // facing verbs /mob/proc/canface() @@ -834,6 +872,9 @@ visible_implants += O return visible_implants +/mob/proc/embedded_needs_process() + return (embedded.len > 0) + mob/proc/yank_out_object() set category = "Object" set name = "Yank out object" @@ -1048,4 +1089,4 @@ mob/proc/yank_out_object() /mob/proc/throw_mode_on() src.in_throw_mode = 1 if(src.throw_icon) - src.throw_icon.icon_state = "act_throw_on" \ No newline at end of file + src.throw_icon.icon_state = "act_throw_on" diff --git a/code/modules/mob/mob_defines.dm b/code/modules/mob/mob_defines.dm index cee9e723a46..06fbd2d8f4b 100644 --- a/code/modules/mob/mob_defines.dm +++ b/code/modules/mob/mob_defines.dm @@ -214,8 +214,8 @@ var/stance_damage = 0 //Whether this mob's ability to stand has been affected - //SSD var, changed it up some so people can have special things happen for different mobs when SSD. - var/player_logged = 0 + //Indicates if a clientless mob is actually an admin aghosting + var/mob/dead/observer/aghosted = null var/turf/listed_turf = null //the current turf being examined in the stat panel var/list/shouldnt_see = list() //list of objects that this mob shouldn't see in the stat panel. this silliness is needed because of AI alt+click and cult blood runes diff --git a/code/modules/mob/mob_grab.dm b/code/modules/mob/mob_grab.dm index 60d2bf419b9..acc95fbe40b 100644 --- a/code/modules/mob/mob_grab.dm +++ b/code/modules/mob/mob_grab.dm @@ -351,6 +351,11 @@ if(I_HURT) if(hit_zone == "eyes") + var/mob/living/carbon/human/H = affecting + var/datum/unarmed_attack/attack = H.get_unarmed_attack(src, hit_zone) + if(!attack) + return + if(state < GRAB_NECK) assailant << "You require a better grab to do this." return @@ -362,16 +367,11 @@ if(!affecting.has_eyes()) assailant << "You cannot locate any eyes on [affecting]!" return - assailant.visible_message("[assailant] pressed \his fingers into [affecting]'s eyes!") - affecting << "You experience immense pain as you feel digits being pressed into your eyes!" - assailant.attack_log += text("\[[time_stamp()]\] Pressed fingers into the eyes of [affecting.name] ([affecting.ckey])") - affecting.attack_log += text("\[[time_stamp()]\] Had fingers pressed into their eyes by [assailant.name] ([assailant.ckey])") - msg_admin_attack("[key_name(assailant)] has pressed his fingers into [key_name(affecting)]'s eyes.") - var/obj/item/organ/eyes/eyes = affecting:internal_organs_by_name["eyes"] - eyes.damage += rand(3,4) - if (eyes.damage >= eyes.min_broken_damage) - if(affecting.stat != 2) - affecting << "\red You go blind!" + assailant.attack_log += text("\[[time_stamp()]\] Attacked [affecting.name]'s eyes using grab ([affecting.ckey])") + affecting.attack_log += text("\[[time_stamp()]\] Had eyes attacked by [assailant.name]'s grab ([assailant.ckey])") + msg_admin_attack("[key_name(assailant)] attacked [key_name(affecting)]'s eyes using a grab action.") + + attack.handle_eye_attack(assailant, affecting) else if(hit_zone != "head") if(state < GRAB_NECK) assailant << "You require a better grab to do this." diff --git a/code/modules/mob/new_player/new_player.dm b/code/modules/mob/new_player/new_player.dm index f29330f5bd4..45698b5e9de 100644 --- a/code/modules/mob/new_player/new_player.dm +++ b/code/modules/mob/new_player/new_player.dm @@ -439,12 +439,12 @@ new_character.lastarea = get_area(loc) - var/datum/language/chosen_language - if(client.prefs.language) - chosen_language = all_languages["[client.prefs.language]"] - if(chosen_language) - if(is_alien_whitelisted(src, client.prefs.language) || !config.usealienwhitelist || !(chosen_language.flags & WHITELISTED) || (new_character.species && (chosen_language.name in new_character.species.secondary_langs))) - new_character.add_language("[client.prefs.language]") + for(var/lang in client.prefs.alternate_languages) + var/datum/language/chosen_language = all_languages[lang] + if(chosen_language) + if(!config.usealienwhitelist || !(chosen_language.flags & WHITELISTED) || is_alien_whitelisted(src, lang) || has_admin_rights() \ + || (new_character.species && (chosen_language.name in new_character.species.secondary_langs))) + new_character.add_language(lang) if(ticker.random_players) new_character.gender = pick(MALE, FEMALE) diff --git a/code/modules/nano/interaction/outside.dm b/code/modules/nano/interaction/outside.dm new file mode 100644 index 00000000000..9ae0e24fe01 --- /dev/null +++ b/code/modules/nano/interaction/outside.dm @@ -0,0 +1,6 @@ +/var/global/datum/topic_state/default/outside/outside_state = new() + +/datum/topic_state/default/outside/can_use_topic(var/src_object, var/mob/user) + if(user in src_object) + return STATUS_CLOSE + return ..() diff --git a/code/modules/nano/modules/crew_monitor.dm b/code/modules/nano/modules/crew_monitor.dm index a0a9280653e..4074ea1b925 100644 --- a/code/modules/nano/modules/crew_monitor.dm +++ b/code/modules/nano/modules/crew_monitor.dm @@ -1,6 +1,5 @@ /datum/nano_module/crew_monitor name = "Crew monitor" - var/list/tracked = new /datum/nano_module/crew_monitor/Topic(href, href_list) if(..()) return 1 @@ -17,51 +16,11 @@ return 1 /datum/nano_module/crew_monitor/ui_interact(mob/user, ui_key = "main", var/datum/nanoui/ui = null, var/force_open = 1, var/datum/topic_state/state = default_state) - // TODO: Move this to a singleton instance that does the scan every X seconds (if the info is being requested), to offer some antag balance and to reduce load in the case of multiple viewers. - src.scan() - var/data[0] var/turf/T = get_turf(nano_host()) - var/list/crewmembers = list() - for(var/obj/item/clothing/under/C in src.tracked) - - var/turf/pos = get_turf(C) - - if((C) && (C.has_sensor) && (pos) && (T && pos.z == T.z) && (C.sensor_mode != SUIT_SENSOR_OFF)) - if(istype(C.loc, /mob/living/carbon/human)) - - var/mob/living/carbon/human/H = C.loc - if(H.w_uniform != C) - continue - - var/list/crewmemberData = list("dead"=0, "oxy"=-1, "tox"=-1, "fire"=-1, "brute"=-1, "area"="", "x"=-1, "y"=-1, "ref" = "\ref[H]") - - crewmemberData["sensor_type"] = C.sensor_mode - crewmemberData["name"] = H.get_authentification_name(if_no_id="Unknown") - crewmemberData["rank"] = H.get_authentification_rank(if_no_id="Unknown", if_no_job="No Job") - crewmemberData["assignment"] = H.get_assignment(if_no_id="Unknown", if_no_job="No Job") - - if(C.sensor_mode >= SUIT_SENSOR_BINARY) - crewmemberData["dead"] = H.stat > 1 - - if(C.sensor_mode >= SUIT_SENSOR_VITAL) - crewmemberData["oxy"] = round(H.getOxyLoss(), 1) - crewmemberData["tox"] = round(H.getToxLoss(), 1) - crewmemberData["fire"] = round(H.getFireLoss(), 1) - crewmemberData["brute"] = round(H.getBruteLoss(), 1) - - if(C.sensor_mode >= SUIT_SENSOR_TRACKING) - var/area/A = get_area(H) - crewmemberData["area"] = sanitize(A.name) - crewmemberData["x"] = pos.x - crewmemberData["y"] = pos.y - - crewmembers[++crewmembers.len] = crewmemberData - - crewmembers = sortByKey(crewmembers, "name") data["isAI"] = user.isMobAI() - data["crewmembers"] = crewmembers + data["crewmembers"] = crew_repository.health_data(T) ui = nanomanager.try_update_ui(user, src, ui_key, ui, data, force_open) if(!ui) @@ -78,10 +37,11 @@ // should make the UI auto-update; doesn't seem to? ui.set_auto_update(1) -/datum/nano_module/crew_monitor/proc/scan() +/*/datum/nano_module/crew_monitor/proc/scan() for(var/mob/living/carbon/human/H in mob_list) if(istype(H.w_uniform, /obj/item/clothing/under)) var/obj/item/clothing/under/C = H.w_uniform if (C.has_sensor) tracked |= C return 1 +*/ \ No newline at end of file diff --git a/code/modules/nano/modules/human_appearance.dm b/code/modules/nano/modules/human_appearance.dm index 3b3deff06c1..4486a0fb82f 100644 --- a/code/modules/nano/modules/human_appearance.dm +++ b/code/modules/nano/modules/human_appearance.dm @@ -155,5 +155,5 @@ if(!valid_species.len) valid_species = owner.generate_valid_species(check_whitelist, whitelist, blacklist) if(!valid_hairstyles.len || !valid_facial_hairstyles.len) - valid_hairstyles = owner.generate_valid_hairstyles() - valid_facial_hairstyles = owner.generate_valid_facial_hairstyles() \ No newline at end of file + valid_hairstyles = owner.generate_valid_hairstyles(check_gender = 0) + valid_facial_hairstyles = owner.generate_valid_facial_hairstyles() diff --git a/code/modules/nano/nanomanager.dm b/code/modules/nano/nanomanager.dm index f6325fd4f71..64c59bcefa4 100644 --- a/code/modules/nano/nanomanager.dm +++ b/code/modules/nano/nanomanager.dm @@ -105,6 +105,26 @@ update_count++ return update_count + /** + * Close all /nanoui uis attached to src_object + * + * @param src_object /obj|/mob The obj or mob which the uis are attached to + * + * @return int The number of uis close + */ +/datum/nanomanager/proc/close_uis(src_object) + var/src_object_key = "\ref[src_object]" + if (isnull(open_uis[src_object_key]) || !istype(open_uis[src_object_key], /list)) + return 0 + + var/close_count = 0 + for (var/ui_key in open_uis[src_object_key]) + for (var/datum/nanoui/ui in open_uis[src_object_key][ui_key]) + if(ui && ui.src_object && ui.user && ui.src_object.nano_host()) + ui.close() + close_count++ + return close_count + /** * Update /nanoui uis belonging to user * diff --git a/code/modules/organs/organ_external.dm b/code/modules/organs/organ_external.dm index ad4021adf39..1b6108c2385 100644 --- a/code/modules/organs/organ_external.dm +++ b/code/modules/organs/organ_external.dm @@ -53,7 +53,7 @@ var/joint = "joint" // Descriptive string used in dislocation. var/amputation_point // Descriptive string used in amputation. var/dislocated = 0 // If you target a joint, you can dislocate the limb, causing temporary damage to the organ. - var/can_grasp + var/can_grasp //It would be more appropriate if these two were named "affects_grasp" and "affects_stand" at this point var/can_stand /obj/item/organ/external/Destroy() diff --git a/code/modules/organs/organ_internal.dm b/code/modules/organs/organ_internal.dm index a67e74c8f97..39a8a142cf0 100644 --- a/code/modules/organs/organ_internal.dm +++ b/code/modules/organs/organ_internal.dm @@ -79,6 +79,21 @@ owner.b_eyes ? owner.b_eyes : 0 ) +/obj/item/organ/eyes/take_damage(amount, var/silent=0) + var/oldbroken = is_broken() + ..() + if(is_broken() && !oldbroken && owner && !owner.stat) + owner << "You go blind!" + +/obj/item/organ/eyes/process() //Eye damage replaces the old eye_stat var. + ..() + if(!owner) + return + if(is_bruised()) + owner.eye_blurry = 20 + if(is_broken()) + owner.eye_blind = 20 + /obj/item/organ/liver name = "liver" icon_state = "liver" diff --git a/code/modules/paperwork/paper.dm b/code/modules/paperwork/paper.dm index f72fa474fd7..d7b41e80cb3 100644 --- a/code/modules/paperwork/paper.dm +++ b/code/modules/paperwork/paper.dm @@ -107,6 +107,15 @@ return /obj/item/weapon/paper/attack_self(mob/living/user as mob) + if(user.a_intent == I_HURT) + if(icon_state == "scrap") + user.show_message("\The [src] is already crumpled.") + return + //crumple dat paper + info = stars(info,85) + user.visible_message("\The [user] crumples \the [src] into a ball!") + icon_state = "scrap" + return user.examinate(src) if(rigged && (Holiday == "April Fool's Day")) if(spam_flag == 0) @@ -442,6 +451,10 @@ B.update_icon() else if(istype(P, /obj/item/weapon/pen)) + if(icon_state == "scrap") + usr << "\The [src] is too crumpled to write on." + return + var/obj/item/weapon/pen/robopen/RP = P if ( istype(RP) && RP.mode == 2 ) RP.RenamePaper(user,src) diff --git a/code/modules/paperwork/paperbin.dm b/code/modules/paperwork/paperbin.dm index 4ef6f1eef5b..963243107f6 100644 --- a/code/modules/paperwork/paperbin.dm +++ b/code/modules/paperwork/paperbin.dm @@ -17,7 +17,17 @@ if((user == usr && (!( usr.restrained() ) && (!( usr.stat ) && (usr.contents.Find(src) || in_range(src, usr)))))) if(!istype(usr, /mob/living/carbon/slime) && !istype(usr, /mob/living/simple_animal)) if( !usr.get_active_hand() ) //if active hand is empty - attack_hand(usr, 1, 1) + var/mob/living/carbon/human/H = user + var/obj/item/organ/external/temp = H.organs_by_name["r_hand"] + + if (H.hand) + temp = H.organs_by_name["l_hand"] + if(temp && !temp.is_usable()) + user << "You try to move your [temp.name], but cannot!" + return + + user << "You pick up the [src]." + user.put_in_hands(src) return diff --git a/code/modules/paperwork/photography.dm b/code/modules/paperwork/photography.dm index 46853a978c9..90ed7ccf59e 100644 --- a/code/modules/paperwork/photography.dm +++ b/code/modules/paperwork/photography.dm @@ -253,10 +253,9 @@ var/global/photo_count = 0 var/viewer = user if(user.client) //To make shooting through security cameras possible viewer = user.client.eye - var/can_see = (dummy in viewers(world.view, viewer)) != null + var/can_see = (dummy in viewers(world.view, viewer)) - dummy.loc = null - dummy = null //Alas, nameless creature //garbage collect it instead + qdel(dummy) return can_see /obj/item/device/camera/proc/captureimage(atom/target, mob/user, flag) diff --git a/code/modules/power/apc.dm b/code/modules/power/apc.dm index 67a20104854..c1a42eeb8af 100644 --- a/code/modules/power/apc.dm +++ b/code/modules/power/apc.dm @@ -714,7 +714,7 @@ if(!user) return - if(wiresexposed /*&& (!istype(user, /mob/living/silicon))*/) //Commented out the typecheck to allow engiborgs to repair damaged apcs. + if(wiresexposed && !istype(user, /mob/living/silicon/ai)) wires.Interact(user) return ui_interact(user) diff --git a/code/modules/power/cable.dm b/code/modules/power/cable.dm index 8960113159e..da83d1471ca 100644 --- a/code/modules/power/cable.dm +++ b/code/modules/power/cable.dm @@ -619,66 +619,23 @@ obj/structure/cable/proc/cableColor(var/colorC) /obj/item/stack/cable_coil/cyborg/can_merge() return 1 -/obj/item/stack/cable_coil/attackby(obj/item/weapon/W, mob/user) - ..() - if( istype(W, /obj/item/weapon/wirecutters) && src.get_amount() > 1) - src.use(1) - new/obj/item/stack/cable_coil(user.loc, 1,color) - user << "You cut a piece off the cable coil." - src.update_icon() +/obj/item/stack/cable_coil/transfer_to(obj/item/stack/cable_coil/S) + if(!istype(S)) + return + if(!can_merge(S)) return - else if(istype(W, /obj/item/stack/cable_coil)) - var/obj/item/stack/cable_coil/C = W - if(!can_merge(C)) - user << "These coils do not go together." - return + ..() - if(C.get_amount() >= get_max_amount()) - user << "The coil is too long, you cannot add any more cable to it." - return - - if( (C.get_amount() + src.get_amount() <= get_max_amount()) ) - user << "You join the cable coils together." - C.give(src.get_amount()) // give it cable - src.use(src.get_amount()) // make sure this one cleans up right - return - - else - var/amt = get_max_amount() - C.get_amount() - user << "You transfer [amt] length\s of cable from one coil to the other." - C.give(amt) - src.use(amt) - return - -//remove cables from the stack -/* This is probably reduntant -/obj/item/stack/cable_coil/use(var/used) - if(src.amount < used) - return 0 - else if (src.amount == used) - if(ismob(loc)) //handle mob icon update - var/mob/M = loc - M.unEquip(src) - qdel(src) - return 1 - else - amount -= used - update_icon() - return 1 -*/ -/obj/item/stack/cable_coil/use(var/used) +/obj/item/stack/cable_coil/use() . = ..() update_icon() return -//add cables to the stack -/obj/item/stack/cable_coil/proc/give(var/extra) - if(amount + extra > MAXCOIL) - amount = MAXCOIL - else - amount += extra +/obj/item/stack/cable_coil/add() + . = ..() update_icon() + return /////////////////////////////////////////////// // Cable laying procedures diff --git a/code/modules/projectiles/ammunition/boxes.dm b/code/modules/projectiles/ammunition/boxes.dm index ac0dde64c08..e4e6b4b08ab 100644 --- a/code/modules/projectiles/ammunition/boxes.dm +++ b/code/modules/projectiles/ammunition/boxes.dm @@ -110,18 +110,18 @@ /obj/item/ammo_magazine/c9mm/empty initial_ammo = 0 -/obj/item/ammo_magazine/a12mm - name = "magazine (12mm)" +/obj/item/ammo_magazine/a10mm + name = "magazine (10mm)" icon_state = "12mm" origin_tech = list(TECH_COMBAT = 2) mag_type = MAGAZINE - caliber = "12mm" + caliber = "10mm" matter = list(DEFAULT_WALL_MATERIAL = 1500) - ammo_type = "/obj/item/ammo_casing/a12mm" + ammo_type = /obj/item/ammo_casing/a10mm max_ammo = 20 multiple_sprites = 1 -/obj/item/ammo_magazine/a12mm/empty +/obj/item/ammo_magazine/a10mm/empty initial_ammo = 0 /obj/item/ammo_magazine/a556 diff --git a/code/modules/projectiles/ammunition/bullets.dm b/code/modules/projectiles/ammunition/bullets.dm index ce22fd271f3..345752835bd 100644 --- a/code/modules/projectiles/ammunition/bullets.dm +++ b/code/modules/projectiles/ammunition/bullets.dm @@ -64,9 +64,9 @@ caliber = ".45" projectile_type = /obj/item/projectile/energy/flash -/obj/item/ammo_casing/a12mm - desc = "A 12mm bullet casing." - caliber = "12mm" +/obj/item/ammo_casing/a10mm + desc = "A 10mm bullet casing." + caliber = "10mm" projectile_type = /obj/item/projectile/bullet/pistol/medium diff --git a/code/modules/projectiles/gun.dm b/code/modules/projectiles/gun.dm index 14e70bcfa44..1d1b905c456 100644 --- a/code/modules/projectiles/gun.dm +++ b/code/modules/projectiles/gun.dm @@ -1,32 +1,28 @@ /* Defines a firing mode for a gun. - burst number of shots fired when the gun is used - burst_delay tick delay between shots in a burst - fire_delay tick delay after the last shot before the gun may be used again - move_delay tick delay after the last shot before the player may move - dispersion dispersion of each shot in the burst measured in tiles per 7 tiles angle ratio - accuracy accuracy modifier applied to each shot in tiles. - applied on top of the base weapon accuracy. + A firemode is created from a list of fire mode settings. Each setting modifies the value of the gun var with the same name. + If the fire mode value for a setting is null, it will be replaced with the initial value of that gun's variable when the firemode is created. + Obviously not compatible with variables that take a null value. If a setting is not present, then the corresponding var will not be modified. */ /datum/firemode var/name = "default" - var/burst = 1 - var/burst_delay = null - var/fire_delay = null - var/move_delay = 1 - var/list/accuracy = list(0) - var/list/dispersion = list(0) + var/list/settings = list() -//using a list makes defining fire modes for new guns much nicer, -//however we convert the lists to datums in part so that firemodes can be VVed if necessary. -/datum/firemode/New(list/properties = null) +/datum/firemode/New(obj/item/weapon/gun/gun, list/properties = null) ..() if(!properties) return - for(var/propname in vars) - if(!isnull(properties[propname])) - src.vars[propname] = properties[propname] + for(var/propname in properties) + var/propvalue = properties[propname] + if(isnull(propvalue)) + settings[propname] = gun.vars[propname] //better than initial() as it handles list vars like burst_accuracy + else + settings[propname] = propvalue + +/datum/firemode/proc/apply_to(obj/item/weapon/gun/gun) + for(var/propname in settings) + gun.vars[propname] = settings[propname] //Parent gun type. Guns are weapons that can be aimed at mobs and act over a distance /obj/item/weapon/gun @@ -51,8 +47,10 @@ attack_verb = list("struck", "hit", "bashed") zoomdevicename = "scope" + var/burst = 1 var/fire_delay = 6 //delay after shooting before the gun can be used again var/burst_delay = 2 //delay between shots, if firing in bursts + var/move_delay = 1 var/fire_sound = 'sound/weapons/Gunshot.ogg' var/fire_sound_text = "gunshot" var/recoil = 0 //screen shake @@ -60,12 +58,13 @@ var/muzzle_flash = 3 var/accuracy = 0 //accuracy is measured in tiles. +1 accuracy means that everything is effectively one tile closer for the purpose of miss chance, -1 means the opposite. launchers are not supported, at the moment. var/scoped_accuracy = null + var/list/burst_accuracy = list(0) //allows for different accuracies for each shot in a burst. Applied on top of accuracy + var/list/dispersion = list(0) var/next_fire_time = 0 var/sel_mode = 1 //index of the currently selected mode var/list/firemodes = list() - var/firemode_type = /datum/firemode //for subtypes that need custom firemode data //aiming system stuff var/keep_aim = 1 //1 for keep shooting until aim is lowered @@ -78,11 +77,8 @@ /obj/item/weapon/gun/New() ..() - if(!firemodes.len) - firemodes += new firemode_type - else - for(var/i in 1 to firemodes.len) - firemodes[i] = new firemode_type(firemodes[i]) + for(var/i in 1 to firemodes.len) + firemodes[i] = new /datum/firemode(src, firemodes[i]) if(isnull(scoped_accuracy)) scoped_accuracy = accuracy @@ -156,28 +152,21 @@ user << "[src] is not ready to fire again!" return - //unpack firemode data - var/datum/firemode/firemode = firemodes[sel_mode] - var/_burst = firemode.burst - var/_burst_delay = isnull(firemode.burst_delay)? src.burst_delay : firemode.burst_delay - var/_fire_delay = isnull(firemode.fire_delay)? src.fire_delay : firemode.fire_delay - var/_move_delay = firemode.move_delay - - var/shoot_time = (_burst - 1)*_burst_delay + var/shoot_time = (burst - 1)* burst_delay user.next_move = world.time + shoot_time //no clicking on things while shooting if(user.client) user.client.move_delay = world.time + shoot_time //no moving while shooting either next_fire_time = world.time + shoot_time //actually attempt to shoot var/turf/targloc = get_turf(target) //cache this in case target gets deleted during shooting, e.g. if it was a securitron that got destroyed. - for(var/i in 1 to _burst) + for(var/i in 1 to burst) var/obj/projectile = consume_next_projectile(user) if(!projectile) handle_click_empty(user) break - var/acc = firemode.accuracy[min(i, firemode.accuracy.len)] - var/disp = firemode.dispersion[min(i, firemode.dispersion.len)] + var/acc = burst_accuracy[min(i, burst_accuracy.len)] + var/disp = dispersion[min(i, dispersion.len)] process_accuracy(projectile, user, target, acc, disp) if(pointblank) @@ -187,8 +176,8 @@ handle_post_fire(user, target, pointblank, reflex) update_icon() - if(i < _burst) - sleep(_burst_delay) + if(i < burst) + sleep(burst_delay) if(!(target && target.loc)) target = targloc @@ -198,8 +187,8 @@ //update timing user.next_move = world.time + 4 - if(user.client) user.client.move_delay = world.time + _move_delay - next_fire_time = world.time + _fire_delay + if(user.client) user.client.move_delay = world.time + move_delay + next_fire_time = world.time + fire_delay if(muzzle_flash) set_light(0) @@ -311,7 +300,7 @@ y_offset = rand(-1,1) x_offset = rand(-1,1) - return !P.launch(target, user, src, target_zone, x_offset, y_offset) + return !P.launch_from_gun(target, user, src, target_zone, x_offset, y_offset) //Suicide handling. /obj/item/weapon/gun/var/mouthshoot = 0 //To stop people from suiciding twice... >.> @@ -379,14 +368,20 @@ var/datum/firemode/current_mode = firemodes[sel_mode] user << "The fire selector is set to [current_mode.name]." -/obj/item/weapon/gun/proc/switch_firemodes(mob/user=null) +/obj/item/weapon/gun/proc/switch_firemodes() + if(firemodes.len <= 1) + return null + sel_mode++ if(sel_mode > firemodes.len) sel_mode = 1 var/datum/firemode/new_mode = firemodes[sel_mode] - user << "\The [src] is now set to [new_mode.name]." + new_mode.apply_to(src) + + return new_mode /obj/item/weapon/gun/attack_self(mob/user) - if(firemodes.len > 1) - switch_firemodes(user) + var/datum/firemode/new_mode = switch_firemodes(user) + if(new_mode) + user << "\The [src] is now set to [new_mode.name]." diff --git a/code/modules/projectiles/guns/energy.dm b/code/modules/projectiles/guns/energy.dm index 05b4fd3de35..532ba47134d 100644 --- a/code/modules/projectiles/guns/energy.dm +++ b/code/modules/projectiles/guns/energy.dm @@ -1,16 +1,9 @@ -/datum/firemode/energy - var/projectile_type = null - var/modifystate = null - var/charge_cost = null - var/fire_sound = null - /obj/item/weapon/gun/energy name = "energy gun" desc = "A basic energy-based gun." icon_state = "energy" fire_sound = 'sound/weapons/Taser.ogg' fire_sound_text = "laser blast" - firemode_type = /datum/firemode/energy var/obj/item/weapon/cell/power_supply //What type of power cell this uses var/charge_cost = 200 //How much energy is needed to fire. @@ -26,15 +19,8 @@ var/recharge_time = 4 var/charge_tick = 0 -/obj/item/weapon/gun/energy/switch_firemodes(mob/user=null) - ..() - var/datum/firemode/energy/current_mode = firemodes[sel_mode] - if(istype(current_mode)) - projectile_type = isnull(current_mode.projectile_type)? initial(projectile_type) : current_mode.projectile_type - modifystate = isnull(current_mode.modifystate)? initial(modifystate) : current_mode.modifystate - charge_cost = isnull(current_mode.charge_cost)? initial(charge_cost) : current_mode.charge_cost - fire_sound = isnull(current_mode.fire_sound)? initial(fire_sound) : current_mode.fire_sound - +/obj/item/weapon/gun/energy/switch_firemodes() + if(..()) update_icon() /obj/item/weapon/gun/energy/emp_act(severity) diff --git a/code/modules/projectiles/guns/energy/laser.dm b/code/modules/projectiles/guns/energy/laser.dm index ba1340ea967..b1c47fd6052 100644 --- a/code/modules/projectiles/guns/energy/laser.dm +++ b/code/modules/projectiles/guns/energy/laser.dm @@ -1,14 +1,14 @@ /obj/item/weapon/gun/energy/laser name = "laser carbine" - desc = "A common laser weapon, designed to kill with concentrated energy blasts." + desc = "An Hesphaistos Industries G40E carbine, designed to kill with concentrated energy blasts." icon_state = "laser" item_state = "laser" fire_sound = 'sound/weapons/Laser.ogg' slot_flags = SLOT_BELT|SLOT_BACK w_class = 3 force = 10 - origin_tech = list(TECH_COMBAT = 3, TECH_MAGNET = 2) - matter = list(DEFAULT_WALL_MATERIAL = 2000) + origin_tech = list(TECH_COMBAT = 3, TECH_MAGNET = 2) + matter = list(DEFAULT_WALL_MATERIAL = 2000) projectile_type = /obj/item/projectile/beam fire_delay = 1 //rapid fire @@ -17,15 +17,15 @@ use_external_power = 1 /obj/item/weapon/gun/energy/laser/practice - name = "practice laser gun" - desc = "A modified version of the basic laser gun, this one fires less concentrated energy bolts designed for target practice." + name = "practice laser carbine" + desc = "A modified version of the HI G40E, this one fires less concentrated energy bolts designed for target practice." projectile_type = /obj/item/projectile/beam/practice obj/item/weapon/gun/energy/retro name = "retro laser" icon_state = "retro" item_state = "retro" - desc = "An older model of the basic lasergun, no longer used by Nanotrasen's security or military forces. Nevertheless, it is still quite deadly and easy to maintain, making it a favorite amongst pirates and other outlaws." + desc = "An older model of the basic lasergun. Nevertheless, it is still quite deadly and easy to maintain, making it a favorite amongst pirates and other outlaws." fire_sound = 'sound/weapons/Laser.ogg' slot_flags = SLOT_BELT w_class = 3 @@ -36,7 +36,7 @@ obj/item/weapon/gun/energy/retro name = "antique laser gun" icon_state = "caplaser" item_state = "caplaser" - desc = "This is an antique laser gun. All craftsmanship is of the highest quality. It is decorated with assistant leather and chrome. The object menaces with spikes of energy. On the item is an image of Space Station 13. The station is exploding." + desc = "A rare weapon, handcrafted by a now defunct specialty manufacturer on Luna for a small fortune. It's certainly aged well" force = 5 fire_sound = 'sound/weapons/Laser.ogg' slot_flags = SLOT_BELT @@ -78,8 +78,8 @@ obj/item/weapon/gun/energy/retro fire_delay = 1 /obj/item/weapon/gun/energy/sniperrifle - name = "\improper L.W.A.P. sniper rifle" - desc = "A high-power laser rifle fitted with a SMART aiming-system scope." + name = "marksman energy rifle" + desc = "The HI DMR 9E is an older design of Hesphaistos Industries. A designated marksman rifle capable of shooting powerful ionized beams, this is a weapon to kill from a distance." icon_state = "sniper" item_state = "laser" fire_sound = 'sound/weapons/marauder.ogg' diff --git a/code/modules/projectiles/guns/energy/nuclear.dm b/code/modules/projectiles/guns/energy/nuclear.dm index fe209aeadc3..0c222a9c342 100644 --- a/code/modules/projectiles/guns/energy/nuclear.dm +++ b/code/modules/projectiles/guns/energy/nuclear.dm @@ -1,6 +1,6 @@ /obj/item/weapon/gun/energy/gun name = "energy gun" - desc = "An energy-based gun with two settings: Stun and kill." + desc = "Another bestseller of Lawson Arms and the FTU, the LAEP90 Perun is a versatile energy based sidearm, capable of switching between low and high capacity projectile settings. In other words: Stun or Kill." icon_state = "energystun100" item_state = null //so the human update icon uses the icon_state instead. fire_sound = 'sound/weapons/Taser.ogg' @@ -24,9 +24,9 @@ name = "advanced energy gun" desc = "An energy gun with an experimental miniaturized reactor." icon_state = "nucgun" - origin_tech = list(TECH_COMBAT = 3, TECH_MATERIAL = 5, TECH_POWER = 3) + origin_tech = list(TECH_COMBAT = 3, TECH_MATERIAL = 5, TECH_POWER = 3) slot_flags = SLOT_BELT - force = 8 //looks heavier than a pistol + force = 8 //looks heavier than a pistol self_recharge = 1 modifystate = null @@ -34,7 +34,7 @@ list(name="stun", projectile_type=/obj/item/projectile/beam/stun, fire_sound='sound/weapons/Taser.ogg'), list(name="lethal", projectile_type=/obj/item/projectile/beam, fire_sound='sound/weapons/Laser.ogg'), ) - + var/lightfail = 0 //override for failcheck behaviour diff --git a/code/modules/projectiles/guns/energy/pulse.dm b/code/modules/projectiles/guns/energy/pulse.dm index 507bc22735b..2af6758e0a8 100644 --- a/code/modules/projectiles/guns/energy/pulse.dm +++ b/code/modules/projectiles/guns/energy/pulse.dm @@ -11,8 +11,8 @@ max_shots = 10 firemodes = list( - list(name="stun", projectile_type=/obj/item/projectile/beam/stun, fire_sound='sound/weapons/Taser.ogg'), - list(name="lethal", projectile_type=/obj/item/projectile/beam, fire_sound='sound/weapons/Laser.ogg'), + list(name="stun", projectile_type=/obj/item/projectile/beam/stun, fire_sound='sound/weapons/Taser.ogg', fire_delay=null, charge_cost=null), + list(name="lethal", projectile_type=/obj/item/projectile/beam, fire_sound='sound/weapons/Laser.ogg', fire_delay=null, charge_cost=null), list(name="DESTROY", projectile_type=/obj/item/projectile/beam/pulse, fire_sound='sound/weapons/pulse.ogg', fire_delay=25, charge_cost=400), ) diff --git a/code/modules/projectiles/guns/energy/special.dm b/code/modules/projectiles/guns/energy/special.dm index 7f1457d6387..738ab8fa7b9 100644 --- a/code/modules/projectiles/guns/energy/special.dm +++ b/code/modules/projectiles/guns/energy/special.dm @@ -1,6 +1,6 @@ /obj/item/weapon/gun/energy/ionrifle name = "ion rifle" - desc = "A man portable anti-armor weapon designed to disable mechanical threats" + desc = "The NT Mk60 EW Halicon is a man portable anti-armor weapon designed to disable mechanical threats, produced by NT. Not the best of its type." icon_state = "ionrifle" item_state = "ionrifle" fire_sound = 'sound/weapons/Laser.ogg' @@ -28,9 +28,9 @@ desc = "A gun that discharges high amounts of controlled radiation to slowly break a target into component elements." icon_state = "decloner" item_state = "decloner" - fire_sound = 'sound/weapons/pulse3.ogg' + fire_sound = 'sound/weapons/pulse3.ogg' origin_tech = list(TECH_COMBAT = 5, TECH_MATERIAL = 4, TECH_POWER = 3) - max_shots = 10 + max_shots = 10 projectile_type = /obj/item/projectile/energy/declone /obj/item/weapon/gun/energy/floragun diff --git a/code/modules/projectiles/guns/energy/stun.dm b/code/modules/projectiles/guns/energy/stun.dm index 05a3c579e59..72392da29aa 100644 --- a/code/modules/projectiles/guns/energy/stun.dm +++ b/code/modules/projectiles/guns/energy/stun.dm @@ -1,6 +1,6 @@ /obj/item/weapon/gun/energy/taser name = "taser gun" - desc = "A small, low capacity gun used for non-lethal takedowns." + desc = "The NT Mk30 NL is a small, low capacity gun used for non-lethal takedowns. Produced by NT, it's actually a licensed version of a W-T design." icon_state = "taser" item_state = null //so the human update icon uses the icon_state instead. fire_sound = 'sound/weapons/Taser.ogg' @@ -20,11 +20,11 @@ /obj/item/weapon/gun/energy/stunrevolver name = "stun revolver" - desc = "A high-tech revolver that fires stun cartridges. The stun cartridges can be recharged using a conventional energy weapon recharger." + desc = "A LAEP20 Zeus. Designed by Lawson Arms and produced under the wing of the FTU, several TSCs have been trying to get a hold of the blueprints for half a decade." icon_state = "stunrevolver" item_state = "stunrevolver" - fire_sound = 'sound/weapons/Gunshot.ogg' - origin_tech = list(TECH_COMBAT = 3, TECH_MATERIAL = 3, TECH_POWER = 2) + fire_sound = 'sound/weapons/Gunshot.ogg' + origin_tech = list(TECH_COMBAT = 3, TECH_MATERIAL = 3, TECH_POWER = 2) projectile_type = /obj/item/projectile/energy/electrode max_shots = 8 @@ -35,8 +35,8 @@ icon_state = "crossbow" w_class = 2.0 item_state = "crossbow" - origin_tech = list(TECH_COMBAT = 2, TECH_MAGNET = 2, TECH_ILLEGAL = 5) - matter = list(DEFAULT_WALL_MATERIAL = 2000) + origin_tech = list(TECH_COMBAT = 2, TECH_MAGNET = 2, TECH_ILLEGAL = 5) + matter = list(DEFAULT_WALL_MATERIAL = 2000) slot_flags = SLOT_BELT silenced = 1 fire_sound = 'sound/weapons/Genhit.ogg' diff --git a/code/modules/projectiles/guns/projectile/automatic.dm b/code/modules/projectiles/guns/projectile/automatic.dm index 1fd6a6bb0c1..110b009c7e8 100644 --- a/code/modules/projectiles/guns/projectile/automatic.dm +++ b/code/modules/projectiles/guns/projectile/automatic.dm @@ -1,6 +1,6 @@ /obj/item/weapon/gun/projectile/automatic //Hopefully someone will find a way to make these fire in bursts or something. --Superxpdude - name = "submachine gun" - desc = "A lightweight, fast firing gun. Uses 9mm rounds." + name = "prototype SMG" + desc = "A protoype lightweight, fast firing gun. Uses 9mm rounds." icon_state = "saber" //ugly w_class = 3 load_method = SPEEDLOADER //yup. until someone sprites a magazine for it. @@ -10,16 +10,17 @@ slot_flags = SLOT_BELT ammo_type = /obj/item/ammo_casing/c9mm multi_aim = 1 + burst_delay = 2 firemodes = list( - list(name="semiauto", burst=1, fire_delay=0), - list(name="3-round bursts", burst=3, move_delay=4, accuracy = list(0,-1,-1,-2,-2), dispersion = list(0.0, 0.6, 1.0)), - list(name="short bursts", burst=5, move_delay=4, accuracy = list(0,-1,-1,-2,-2), dispersion = list(0.6, 1.0, 1.0, 1.0, 1.2)), + list(name="semiauto", burst=1, fire_delay=0, move_delay=null, burst_accuracy=null, dispersion=null), + list(name="3-round bursts", burst=3, fire_delay=null, move_delay=4, burst_accuracy=list(0,-1,-1), dispersion=list(0.0, 0.6, 1.0)), + list(name="short bursts", burst=5, fire_delay=null, move_delay=4, burst_accuracy=list(0,-1,-1,-2,-2), dispersion=list(0.6, 1.0, 1.0, 1.0, 1.2)), ) /obj/item/weapon/gun/projectile/automatic/mini_uzi name = "\improper Uzi" - desc = "A lightweight, fast firing gun, for when you want someone dead. Uses .45 rounds." + desc = "The UZI is a lightweight, fast firing gun. For when you want someone dead. Uses .45 rounds." icon_state = "mini-uzi" w_class = 3 load_method = SPEEDLOADER //yup. until someone sprites a magazine for it. @@ -29,18 +30,18 @@ ammo_type = /obj/item/ammo_casing/c45 /obj/item/weapon/gun/projectile/automatic/c20r - name = "\improper C-20r SMG" - desc = "A lightweight, fast firing gun, for when you REALLY need someone dead. Uses 12mm pistol rounds. Has a 'Scarborough Arms - Per falcis, per pravitas' buttstamp" + name = "submachine gun" + desc = "The C-20r is a lightweight and rapid firing SMG, for when you REALLY need someone dead. Uses 10mm rounds. Has a 'Scarborough Arms - Per falcis, per pravitas' buttstamp." icon_state = "c20r" item_state = "c20r" w_class = 3 force = 10 - caliber = "12mm" + caliber = "10mm" origin_tech = list(TECH_COMBAT = 5, TECH_MATERIAL = 2, TECH_ILLEGAL = 8) slot_flags = SLOT_BELT|SLOT_BACK fire_sound = 'sound/weapons/Gunshot_light.ogg' load_method = MAGAZINE - magazine_type = /obj/item/ammo_magazine/a12mm + magazine_type = /obj/item/ammo_magazine/a10mm auto_eject = 1 auto_eject_sound = 'sound/weapons/smg_empty_alarm.ogg' @@ -53,8 +54,8 @@ return /obj/item/weapon/gun/projectile/automatic/sts35 - name = "\improper STS-35 automatic rifle" - desc = "A durable, rugged looking automatic weapon of a make popular on the frontier worlds. Uses 7.62mm rounds. It is unmarked." + name = "assault rifle" + desc = "The rugged STS-35 is a durable automatic weapon of a make popular on the frontier worlds. Uses 7.62mm rounds. This one is unmarked." icon_state = "arifle" item_state = null w_class = 4 @@ -66,9 +67,9 @@ magazine_type = /obj/item/ammo_magazine/c762 firemodes = list( - list(name="semiauto", burst=1, fire_delay=0), - list(name="3-round bursts", burst=3, move_delay=6, accuracy = list(0,-1,-1,-2,-2), dispersion = list(0.0, 0.6, 0.6)), - list(name="short bursts", burst=5, move_delay=6, accuracy = list(0,-1,-1,-2,-2), dispersion = list(0.6, 1.0, 1.0, 1.0, 1.2)), + list(name="semiauto", burst=1, fire_delay=0, move_delay=null, burst_accuracy=null, dispersion=null), + list(name="3-round bursts", burst=3, fire_delay=null, move_delay=6, burst_accuracy=list(0,-1,-2), dispersion=list(0.0, 0.6, 0.6)), + list(name="short bursts", burst=5, fire_delay=null, move_delay=6, burst_accuracy=list(0,-1,-2,-2,-3), dispersion=list(0.6, 1.0, 1.0, 1.0, 1.2)), ) /obj/item/weapon/gun/projectile/automatic/sts35/update_icon() @@ -77,8 +78,8 @@ update_held_icon() /obj/item/weapon/gun/projectile/automatic/wt550 - name = "\improper W-T 550 Saber" - desc = "A cheap, mass produced Ward-Takahashi PDW. Uses 9mm rounds." + name = "machine pistol" + desc = "The W-T 550 Saber is a cheap self-defense weapon, mass-produced by Ward-Takahashi for paramilitary and private use. Uses 9mm rounds." icon_state = "wt550" item_state = "wt550" w_class = 3 @@ -98,12 +99,9 @@ icon_state = "wt550" return -/datum/firemode/z8 - var/use_launcher = 0 - /obj/item/weapon/gun/projectile/automatic/z8 - name = "\improper Z8 Bulldog" - desc = "An older model bullpup carbine, made by the now defunct Zendai Foundries. Uses armor piercing 5.56mm rounds. Makes you feel like a space marine when you hold it." + name = "bullpup assault rifle" + desc = "The Z8 Bulldog is an older model bullpup carbine, made by the now defunct Zendai Foundries. Uses armor piercing 5.56mm rounds. Makes you feel like a space marine when you hold it." icon_state = "carbine" item_state = "z8carbine" w_class = 4 @@ -119,13 +117,13 @@ auto_eject_sound = 'sound/weapons/smg_empty_alarm.ogg' burst_delay = 4 - firemode_type = /datum/firemode/z8 firemodes = list( - list(name="semiauto", burst=1, fire_delay=0), - list(name="3-round bursts", burst=3, move_delay=6, accuracy = list(0,-1,-1), dispersion = list(0.0, 0.6, 0.6)), - list(name="fire grenades", use_launcher=1) + list(name="semiauto", burst=1, fire_delay=0, move_delay=null, use_launcher=null, burst_accuracy=null, dispersion=null), + list(name="3-round bursts", burst=3, fire_delay=null, move_delay=6, use_launcher=null, burst_accuracy=list(0,-1,-1), dispersion=list(0.0, 0.6, 0.6)), + list(name="fire grenades", burst=null, fire_delay=null, move_delay=null, use_launcher=1, burst_accuracy=null, dispersion=null) ) + var/use_launcher = 0 var/obj/item/weapon/gun/launcher/grenade/underslung/launcher /obj/item/weapon/gun/projectile/automatic/z8/New() @@ -139,15 +137,13 @@ ..() /obj/item/weapon/gun/projectile/automatic/z8/attack_hand(mob/user) - var/datum/firemode/z8/current_mode = firemodes[sel_mode] - if(user.get_inactive_hand() == src && current_mode.use_launcher) + if(user.get_inactive_hand() == src && use_launcher) launcher.unload(user) else ..() /obj/item/weapon/gun/projectile/automatic/z8/Fire(atom/target, mob/living/user, params, pointblank=0, reflex=0) - var/datum/firemode/z8/current_mode = firemodes[sel_mode] - if(current_mode.use_launcher) + if(use_launcher) launcher.Fire(target, user, params, pointblank, reflex) if(!launcher.chambered) switch_firemodes() //switch back automatically @@ -170,8 +166,8 @@ user << "\The [launcher] is empty." /obj/item/weapon/gun/projectile/automatic/l6_saw - name = "\improper L6 SAW" - desc = "A rather traditionally made light machine gun with a pleasantly lacquered wooden pistol grip. Has 'Aussec Armoury- 2531' engraved on the reciever" + name = "light machine gun" + desc = "A rather traditionally made L6 SAW with a pleasantly lacquered wooden pistol grip. Has 'Aussec Armoury- 2531' engraved on the reciever" icon_state = "l6closed100" item_state = "l6closedmag" w_class = 4 @@ -187,8 +183,8 @@ magazine_type = /obj/item/ammo_magazine/a762 firemodes = list( - list(name="short bursts", burst=5, move_delay=6, accuracy = list(0,-1,-1,-2,-2,-2,-3,-3), dispersion = list(0.6, 1.0, 1.0, 1.0, 1.2)), - list(name="long bursts", burst=8, move_delay=8, accuracy = list(0,-1,-1,-2,-2,-2,-3,-3), dispersion = list(1.0, 1.0, 1.0, 1.0, 1.2)), + list(name="short bursts", burst=5, move_delay=6, burst_accuracy = list(0,-1,-1,-2,-2), dispersion = list(0.6, 1.0, 1.0, 1.0, 1.2)), + list(name="long bursts", burst=8, move_delay=8, burst_accuracy = list(0,-1,-1,-2,-2,-2,-3,-3), dispersion = list(1.0, 1.0, 1.0, 1.0, 1.2)), ) var/cover_open = 0 diff --git a/code/modules/projectiles/guns/projectile/dartgun.dm b/code/modules/projectiles/guns/projectile/dartgun.dm index e484d95d70c..4f72eff5009 100644 --- a/code/modules/projectiles/guns/projectile/dartgun.dm +++ b/code/modules/projectiles/guns/projectile/dartgun.dm @@ -43,7 +43,7 @@ /obj/item/weapon/gun/projectile/dartgun name = "dart gun" - desc = "A small gas-powered dartgun, capable of delivering chemical cocktails swiftly across short distances." + desc = "Zeng-Hu Pharmaceutical's entry into the arms market, the Z-H P Artemis is a gas-powered dart gun capable of delivering chemical cocktails swiftly across short distances." icon_state = "dartgun-empty" item_state = null @@ -203,4 +203,4 @@ starting_chems = list("kelotane","bicaridine","anti_toxin") /obj/item/weapon/gun/projectile/dartgun/vox/raider - starting_chems = list("space_drugs","stoxin","impedrezene") \ No newline at end of file + starting_chems = list("space_drugs","stoxin","impedrezene") diff --git a/code/modules/projectiles/guns/projectile/pistol.dm b/code/modules/projectiles/guns/projectile/pistol.dm index f3d37c84b66..05e2a08c6be 100644 --- a/code/modules/projectiles/guns/projectile/pistol.dm +++ b/code/modules/projectiles/guns/projectile/pistol.dm @@ -1,6 +1,6 @@ /obj/item/weapon/gun/projectile/colt - name = "\improper Colt M1911" - desc = "A cheap Martian knock-off of a Colt M1911." + name = "vintage .45 pistol" + desc = "A cheap Martian knock-off of a Colt M1911. Uses .45 rounds." magazine_type = /obj/item/ammo_magazine/c45m icon_state = "colt" caliber = ".45" @@ -9,7 +9,6 @@ load_method = MAGAZINE /obj/item/weapon/gun/projectile/colt/detective - desc = "A cheap Martian knock-off of a Colt M1911. Uses .45 rounds." magazine_type = /obj/item/ammo_magazine/c45m/rubber /obj/item/weapon/gun/projectile/colt/detective/verb/rename_gun() @@ -31,8 +30,8 @@ return 1 /obj/item/weapon/gun/projectile/sec - desc = "A NanoTrasen designed sidearm, found pretty much everywhere humans are. Uses .45 rounds." - name = "\improper NT Mk58" + name = ".45 pistol" + desc = "The NT Mk58 is a cheap, ubiquitous sidearm, produced by a Nanotrasen subsidiary. Found pretty much everywhere humans are. Uses .45 rounds." icon_state = "secguncomp" magazine_type = /obj/item/ammo_magazine/c45m/rubber caliber = ".45" @@ -41,12 +40,12 @@ load_method = MAGAZINE /obj/item/weapon/gun/projectile/sec/flash - name = "\improper NT Mk58 signal pistol" + name = ".45 signal pistol" magazine_type = /obj/item/ammo_magazine/c45m/flash /obj/item/weapon/gun/projectile/sec/wood - desc = "A Nanotrasen designed sidearm, this one has a sweet wooden grip. Uses .45 rounds." - name = "\improper Custom NT Mk58" + desc = "The NT Mk58 is a cheap, ubiquitous sidearm, produced by a Nanotrasen subsidiary. This one has a sweet wooden grip. Uses .45 rounds." + name = "custom .45 Pistol" icon_state = "secgundark" /obj/item/weapon/gun/projectile/silenced @@ -106,8 +105,8 @@ icon_state = "gyropistol" /obj/item/weapon/gun/projectile/pistol - name = "\improper Stechtkin pistol" - desc = "A small, easily concealable gun. Uses 9mm rounds." + name = "holdout pistol" + desc = "The Lumoco Arms P3 Whisper. A small, easily concealable gun. Uses 9mm rounds." icon_state = "pistol" item_state = null w_class = 2 @@ -119,8 +118,7 @@ magazine_type = /obj/item/ammo_magazine/mc9mm /obj/item/weapon/gun/projectile/pistol/flash - name = "\improper Stechtkin signal pistol" - desc = "A small, easily concealable gun. Uses 9mm rounds." + name = "holdout signal pistol" magazine_type = /obj/item/ammo_magazine/mc9mm/flash /obj/item/weapon/gun/projectile/pistol/attack_hand(mob/user as mob) @@ -166,19 +164,19 @@ w_class = 2 /obj/item/weapon/gun/projectile/pirate - name = "zipgun" + name = "zip gun" desc = "Little more than a barrel, handle, and firing mechanism, cheap makeshift firearms like this one are not uncommon in frontier systems." icon_state = "sawnshotgun" item_state = "sawnshotgun" handle_casings = CYCLE_CASINGS //player has to take the old casing out manually before reloading load_method = SINGLE_CASING max_shells = 1 //literally just a barrel - + var/global/list/ammo_types = list( /obj/item/ammo_casing/a357 = ".357", /obj/item/ammo_casing/c9mmf = "9mm", /obj/item/ammo_casing/c45f = ".45", - /obj/item/ammo_casing/a12mm = "12mm", + /obj/item/ammo_casing/a10mm = "10mm", /obj/item/ammo_casing/shotgun = "12 gauge", /obj/item/ammo_casing/shotgun = "12 gauge", /obj/item/ammo_casing/shotgun/pellet = "12 gauge", @@ -194,7 +192,7 @@ /obj/item/weapon/gun/projectile/pirate/New() ammo_type = pick(ammo_types) desc += " Uses [ammo_types[ammo_type]] rounds." - + var/obj/item/ammo_casing/ammo = ammo_type caliber = initial(ammo.caliber) ..() diff --git a/code/modules/projectiles/guns/projectile/revolver.dm b/code/modules/projectiles/guns/projectile/revolver.dm index 2cfcaeb1530..785c532d04f 100644 --- a/code/modules/projectiles/guns/projectile/revolver.dm +++ b/code/modules/projectiles/guns/projectile/revolver.dm @@ -1,6 +1,6 @@ /obj/item/weapon/gun/projectile/revolver name = "revolver" - desc = "A classic revolver. Uses .357 ammo" + desc = "The Lumoco Arms HE Colt is a choice revolver for when you absolutely, positively need to put a hole in the other guy. Uses .357 ammo." icon_state = "revolver" item_state = "revolver" caliber = "357" @@ -11,7 +11,6 @@ /obj/item/weapon/gun/projectile/revolver/mateba name = "mateba" - desc = "When you absolutely, positively need a 10mm hole in the other guy. Uses .357 ammo." //>10mm hole >.357 icon_state = "mateba" origin_tech = list(TECH_COMBAT = 2, TECH_MATERIAL = 2) diff --git a/code/modules/projectiles/guns/projectile/shotgun.dm b/code/modules/projectiles/guns/projectile/shotgun.dm index 377b8c7742f..85c4522d8dd 100644 --- a/code/modules/projectiles/guns/projectile/shotgun.dm +++ b/code/modules/projectiles/guns/projectile/shotgun.dm @@ -1,6 +1,6 @@ /obj/item/weapon/gun/projectile/shotgun/pump name = "shotgun" - desc = "Useful for sweeping alleys." + desc = "The mass-produced W-T Remmington 29x shotgun is a favourite of police and security forces on many worlds. Useful for sweeping alleys." icon_state = "shotgun" item_state = "shotgun" max_shells = 4 @@ -41,6 +41,7 @@ /obj/item/weapon/gun/projectile/shotgun/pump/combat name = "combat shotgun" + desc = "Built for close quarters combat, the Hesphaistos Industries KS-40 is widely regarded as a weapon of choice for repelling boarders." icon_state = "cshotgun" item_state = "cshotgun" origin_tech = list(TECH_COMBAT = 5, TECH_MATERIAL = 2) diff --git a/code/modules/projectiles/guns/projectile/sniper.dm b/code/modules/projectiles/guns/projectile/sniper.dm index b3a3c7580c9..e38740e732f 100644 --- a/code/modules/projectiles/guns/projectile/sniper.dm +++ b/code/modules/projectiles/guns/projectile/sniper.dm @@ -1,6 +1,6 @@ /obj/item/weapon/gun/projectile/heavysniper - name = "\improper PTR-7 rifle" - desc = "A portable anti-armour rifle fitted with a scope. Originally designed to used against armoured exosuits, it is capable of punching through windows and non-reinforced walls with ease. Fires armor piercing 14.5mm shells." + name = "anti-materiel rifle" + desc = "A portable anti-armour rifle fitted with a scope, the HI PTR-7 Rifle was originally designed to used against armoured exosuits. It is capable of punching through windows and non-reinforced walls with ease. Fires armor piercing 14.5mm shells." icon_state = "heavysniper" item_state = "l6closednomag" //placeholder w_class = 4 diff --git a/code/modules/projectiles/projectile.dm b/code/modules/projectiles/projectile.dm index 6d8c40c16c2..ae6e91fea56 100644 --- a/code/modules/projectiles/projectile.dm +++ b/code/modules/projectiles/projectile.dm @@ -26,7 +26,7 @@ var/xo = null var/current = null var/obj/shot_from = null // the object which shot us - var/atom/original = null // the original target clicked + var/atom/original = null // the target clicked (not necessarily where the projectile is headed). Should probably be renamed to 'target' or something. var/turf/starting = null // the projectile's starting turf var/list/permutated = list() // we've passed through these atoms, don't try to hit them again @@ -110,21 +110,13 @@ p_x = between(0, p_x + rand(-radius, radius), world.icon_size) p_y = between(0, p_y + rand(-radius, radius), world.icon_size) -//called to launch a projectile from a gun -/obj/item/projectile/proc/launch(atom/target, mob/user, obj/item/weapon/gun/launcher, var/target_zone, var/x_offset=0, var/y_offset=0) - var/turf/curloc = get_turf(user) +//called to launch a projectile +/obj/item/projectile/proc/launch(atom/target, var/target_zone, var/x_offset=0, var/y_offset=0) + var/turf/curloc = get_turf(src) var/turf/targloc = get_turf(target) if (!istype(targloc) || !istype(curloc)) return 1 - firer = user - def_zone = target_zone - - if(user == target) //Shooting yourself - user.bullet_act(src, target_zone) - on_impact(user) - qdel(src) - return 0 if(targloc == curloc) //Shooting something in the same turf target.bullet_act(src, target_zone) on_impact(target) @@ -132,31 +124,39 @@ return 0 original = target - loc = curloc - starting = curloc - current = curloc - yo = targloc.y - curloc.y + y_offset - xo = targloc.x - curloc.x + x_offset - - shot_from = launcher - silenced = launcher.silenced + def_zone = target_zone spawn() + setup_trajectory(curloc, targloc, x_offset, y_offset) //plot the initial trajectory process() return 0 +//called to launch a projectile from a gun +/obj/item/projectile/proc/launch_from_gun(atom/target, mob/user, obj/item/weapon/gun/launcher, var/target_zone, var/x_offset=0, var/y_offset=0) + if(user == target) //Shooting yourself + user.bullet_act(src, target_zone) + on_impact(user) + qdel(src) + return 0 + + loc = get_turf(user) //move the projectile out into the world + + firer = user + shot_from = launcher + silenced = launcher.silenced + + return launch(target, target_zone, x_offset, y_offset) + //Used to change the direction of the projectile in flight. /obj/item/projectile/proc/redirect(var/new_x, var/new_y, var/atom/starting_loc, var/mob/new_firer=null) - original = locate(new_x, new_y, src.z) - starting = starting_loc - current = starting_loc + var/turf/new_target = locate(new_x, new_y, src.z) + + original = new_target if(new_firer) firer = src - yo = new_y - starting_loc.y - xo = new_x - starting_loc.x - setup_trajectory() + setup_trajectory(starting_loc, new_target) //Called when the projectile intercepts a mob. Returns 1 if the projectile hit the mob, 0 if it missed and should keep flying. /obj/item/projectile/proc/attack_mob(var/mob/living/target_mob, var/distance, var/miss_modifier=0) @@ -166,12 +166,12 @@ //roll to-hit miss_modifier = max(15*(distance-2) - round(15*accuracy) + miss_modifier, 0) var/hit_zone = get_zone_with_miss_chance(def_zone, target_mob, miss_modifier, ranged_attack=(distance > 1 || original != target_mob)) //if the projectile hits a target we weren't originally aiming at then retain the chance to miss - + var/result = PROJECTILE_FORCE_MISS if(hit_zone) def_zone = hit_zone //set def_zone, so if the projectile ends up hitting someone else later (to be implemented), it is more likely to hit the same part result = target_mob.bullet_act(src, def_zone) - + if(result == PROJECTILE_FORCE_MISS) visible_message("\The [src] misses [target_mob] narrowly!") return 0 @@ -275,9 +275,6 @@ /obj/item/projectile/process() var/first_step = 1 - //plot the initial trajectory - setup_trajectory() - spawn while(src && src.loc) if(kill_count-- < 1) on_impact(src.loc) //for any final impact behaviours @@ -314,13 +311,16 @@ if(!hitscan) sleep(step_delay) //add delay between movement iterations if it's not a hitscan weapon -/obj/item/projectile/proc/process_step(first_step = 0) - return - /obj/item/projectile/proc/before_move() return -/obj/item/projectile/proc/setup_trajectory() +/obj/item/projectile/proc/setup_trajectory(turf/startloc, turf/targloc, var/x_offset = 0, var/y_offset = 0) + // setup projectile state + starting = startloc + current = startloc + yo = targloc.y - startloc.y + y_offset + xo = targloc.x - startloc.x + x_offset + // trajectory dispersion var/offset = 0 if(dispersion) @@ -379,7 +379,6 @@ invisibility = 101 //Nope! Can't see me! yo = null xo = null - var/target = null var/result = 0 //To pass the message back to the gun. /obj/item/projectile/test/Bump(atom/A as mob|obj|turf|area) @@ -394,25 +393,24 @@ result = 1 return -/obj/item/projectile/test/process() +/obj/item/projectile/test/launch(atom/target) var/turf/curloc = get_turf(src) var/turf/targloc = get_turf(target) if(!curloc || !targloc) return 0 - yo = targloc.y - curloc.y - xo = targloc.x - curloc.x - target = targloc + original = target - starting = curloc - + //plot the initial trajectory - setup_trajectory() + setup_trajectory(curloc, targloc) + return process(targloc) +/obj/item/projectile/test/process(var/turf/targloc) while(src) //Loop on through! if(result) return (result - 1) - if((!( target ) || loc == target)) - target = locate(min(max(x + xo, 1), world.maxx), min(max(y + yo, 1), world.maxy), z) //Finding the target turf at map edge + if((!( targloc ) || loc == targloc)) + targloc = locate(min(max(x + xo, 1), world.maxx), min(max(y + yo, 1), world.maxy), z) //Finding the target turf at map edge trajectory.increment() // increment the current location location = trajectory.return_location(location) // update the locally stored location data @@ -423,18 +421,22 @@ if(istype(M)) //If there is someting living... return 1 //Return 1 else - M = locate() in get_step(src,target) + M = locate() in get_step(src,targloc) if(istype(M)) return 1 -/proc/check_trajectory(atom/target as mob|obj, atom/firer as mob|obj, var/pass_flags=PASSTABLE|PASSGLASS|PASSGRILLE, flags=null) //Checks if you can hit them or not. +//Helper proc to check if you can hit them or not. +/proc/check_trajectory(atom/target as mob|obj, atom/firer as mob|obj, var/pass_flags=PASSTABLE|PASSGLASS|PASSGRILLE, flags=null) if(!istype(target) || !istype(firer)) return 0 + var/obj/item/projectile/test/trace = new /obj/item/projectile/test(get_turf(firer)) //Making the test.... - trace.target = target + + //Set the flags and pass flags to that of the real projectile... if(!isnull(flags)) - trace.flags = flags //Set the flags... - trace.pass_flags = pass_flags //And the pass flags to that of the real projectile... - var/output = trace.process() //Test it! + trace.flags = flags + trace.pass_flags = pass_flags + + var/output = trace.launch(target) //Test it! qdel(trace) //No need for it anymore return output //Send it back to the gun! diff --git a/code/modules/reagents/Chemistry-Holder.dm b/code/modules/reagents/Chemistry-Holder.dm index d012b1fed67..8147c0ff56e 100644 --- a/code/modules/reagents/Chemistry-Holder.dm +++ b/code/modules/reagents/Chemistry-Holder.dm @@ -292,9 +292,15 @@ return trans_to_obj(target, amount, multiplier, copy) return 0 -//Using this in case we want to differentiate splashing an atom from transferring reagents to it later down the road. -//For now it just calls trans_to. -/datum/reagents/proc/splash(var/atom/target, var/amount = 1, var/multiplier = 1, var/copy = 0) +//Splashing reagents is messier than trans_to, the target's loc gets some of the reagents as well. +/datum/reagents/proc/splash(var/atom/target, var/amount = 1, var/multiplier = 1, var/copy = 0, var/min_spill=0, var/max_spill=60) + var/spill = 0 + if(!isturf(target) && target.loc) + spill = amount*(rand(min_spill, max_spill)/100) + amount -= spill + if(spill) + splash(target.loc, spill, multiplier, copy, min_spill, max_spill) + trans_to(target, amount, multiplier, copy) /datum/reagents/proc/trans_id_to(var/atom/target, var/id, var/amount = 1) @@ -386,7 +392,7 @@ if(!target) return - var/datum/reagents/R = new /datum/reagents(maximum_volume) + var/datum/reagents/R = new /datum/reagents(amount * multiplier) . = trans_to_holder(R, amount, multiplier, copy) R.touch_turf(target) return @@ -396,7 +402,7 @@ return if(!target.reagents) - var/datum/reagents/R = new /datum/reagents(maximum_volume) + var/datum/reagents/R = new /datum/reagents(amount * multiplier) . = trans_to_holder(R, amount, multiplier, copy) R.touch_obj(target) return diff --git a/code/modules/reagents/Chemistry-Reagents.dm b/code/modules/reagents/Chemistry-Reagents.dm index d77f7b412f4..0df72664fdf 100644 --- a/code/modules/reagents/Chemistry-Reagents.dm +++ b/code/modules/reagents/Chemistry-Reagents.dm @@ -51,7 +51,7 @@ return if(!affects_dead && M.stat == DEAD) return - if(overdose && (dose > overdose) && (location == CHEM_BLOOD)) + if(overdose && (dose > overdose) && (location != CHEM_TOUCH)) overdose(M, alien) var/removed = metabolism if(ingest_met && (location == CHEM_INGEST)) diff --git a/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Core.dm b/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Core.dm index 41b78fbda42..302c6e6000a 100644 --- a/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Core.dm +++ b/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Core.dm @@ -112,6 +112,19 @@ M.resistances += data return +// pure concentrated antibodies +/datum/reagent/antibodies + data = list("antibodies"=list()) + name = "Antibodies" + id = "antibodies" + reagent_state = LIQUID + color = "#0050F0" + +/datum/reagent/antibodies/affect_blood(var/mob/living/carbon/M, var/alien, var/removed) + if(src.data) + M.antibodies |= src.data["antibodies"] + ..() + #define WATER_LATENT_HEAT 19000 // How much heat is removed when applied to a hot turf, in J/unit (19000 makes 120 u of water roughly equivalent to 4L) /datum/reagent/water name = "Water" @@ -145,7 +158,7 @@ environment.add_thermal_energy(-removed_heat) if (prob(5)) T.visible_message("The water sizzles as it lands on \the [T]!") - + else if(volume >= 10) if(T.wet >= 1) return diff --git a/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Food-Drinks.dm b/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Food-Drinks.dm index 2f9cc0f548e..e355180df16 100644 --- a/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Food-Drinks.dm +++ b/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Food-Drinks.dm @@ -43,6 +43,13 @@ return ..() +/datum/reagent/nutriment/honey + name = "Honey" + id = "honey" + description = "A golden yellow syrup, loaded with sugary sweetness." + nutriment_factor = 10 + color = "#FFFF00" + /datum/reagent/nutriment/flour name = "flour" id = "flour" @@ -572,9 +579,10 @@ ..() if(alien == IS_DIONA) return - M.make_jittery(5) if(adj_temp > 0) holder.remove_reagent("frostoil", 10 * removed) + if(dose > 45) + M.make_jittery(5) /datum/reagent/drink/coffee/icecoffee name = "Iced Coffee" diff --git a/code/modules/reagents/dispenser/cartridge.dm b/code/modules/reagents/dispenser/cartridge.dm index 569da4cc731..2f7369cba0d 100644 --- a/code/modules/reagents/dispenser/cartridge.dm +++ b/code/modules/reagents/dispenser/cartridge.dm @@ -9,6 +9,7 @@ amount_per_transfer_from_this = 50 // Large, but inaccurate. Use a chem dispenser or beaker for accuracy. possible_transfer_amounts = list(50, 100) + unacidable = 1 var/spawn_reagent = null var/label = "" diff --git a/code/modules/reagents/reagent_containers/dropper.dm b/code/modules/reagents/reagent_containers/dropper.dm index f18a1457f93..bdb1754ca81 100644 --- a/code/modules/reagents/reagent_containers/dropper.dm +++ b/code/modules/reagents/reagent_containers/dropper.dm @@ -65,7 +65,7 @@ return else - trans = reagents.splash(target, amount_per_transfer_from_this) //sprinkling reagents on generic non-mobs + trans = reagents.trans_to(target, amount_per_transfer_from_this) //sprinkling reagents on generic non-mobs user << "You transfer [trans] units of the solution." else // Taking from something diff --git a/code/modules/reagents/reagent_containers/food/cans.dm b/code/modules/reagents/reagent_containers/food/cans.dm index 8155207b7e4..7d72b8bf51f 100644 --- a/code/modules/reagents/reagent_containers/food/cans.dm +++ b/code/modules/reagents/reagent_containers/food/cans.dm @@ -1,43 +1,12 @@ /obj/item/weapon/reagent_containers/food/drinks/cans + volume = 40 //just over one and a half cups amount_per_transfer_from_this = 5 - flags = 0 - - attack_self(mob/user as mob) - if (!is_open_container()) - playsound(loc,'sound/effects/canopen.ogg', rand(10,50), 1) - user << "You open the drink with an audible pop!" - flags |= OPENCONTAINER - else - return - - attack(mob/M as mob, mob/user as mob, def_zone) - if(!is_open_container()) - user << "You need to open the drink!" - return - - return ..() - - - afterattack(obj/target, mob/user, proximity) - if(!proximity) return - - if(istype(target, /obj/structure/reagent_dispensers)) //A dispenser. Transfer FROM it TO us. - if(!is_open_container()) - user << "You need to open the drink!" - return - - - else if(target.is_open_container()) //Something like a glass. Player probably wants to transfer TO it. - if(!is_open_container()) - user << "You need to open the drink!" - return - - return ..() + flags = 0 //starts closed //DRINKS /obj/item/weapon/reagent_containers/food/drinks/cans/cola - name = "Space Cola" + name = "\improper Space Cola" desc = "Cola. in space." icon_state = "cola" center_of_mass = list("x"=16, "y"=10) @@ -46,7 +15,7 @@ reagents.add_reagent("cola", 30) /obj/item/weapon/reagent_containers/food/drinks/cans/waterbottle - name = "Bottled Water" + name = "bottled water" desc = "Introduced to the vending machines by Skrellian request, this water comes straight from the Martian poles." icon_state = "waterbottle" center_of_mass = list("x"=15, "y"=8) @@ -54,28 +23,8 @@ ..() reagents.add_reagent("water", 30) -/obj/item/weapon/reagent_containers/food/drinks/cans/beer - name = "Space Beer" - desc = "Contains only water, malt and hops." - icon_state = "beer" - center_of_mass = list("x"=16, "y"=12) - New() - ..() - reagents.add_reagent("beer", 30) - -/obj/item/weapon/reagent_containers/food/drinks/cans/ale - name = "Magm-Ale" - desc = "A true dorf's drink of choice." - icon_state = "alebottle" - item_state = "beer" - center_of_mass = list("x"=16, "y"=10) - New() - ..() - reagents.add_reagent("ale", 30) - - /obj/item/weapon/reagent_containers/food/drinks/cans/space_mountain_wind - name = "Space Mountain Wind" + name = "\improper Space Mountain Wind" desc = "Blows right through you like a space wind." icon_state = "space_mountain_wind" center_of_mass = list("x"=16, "y"=10) @@ -84,7 +33,7 @@ reagents.add_reagent("spacemountainwind", 30) /obj/item/weapon/reagent_containers/food/drinks/cans/thirteenloko - name = "Thirteen Loko" + name = "\improper Thirteen Loko" desc = "The CMO has advised crew members that consumption of Thirteen Loko may result in seizures, blindness, drunkeness, or even death. Please Drink Responsibly." icon_state = "thirteen_loko" center_of_mass = list("x"=16, "y"=8) @@ -93,7 +42,7 @@ reagents.add_reagent("thirteenloko", 30) /obj/item/weapon/reagent_containers/food/drinks/cans/dr_gibb - name = "Dr. Gibb" + name = "\improper Dr. Gibb" desc = "A delicious mixture of 42 different flavors." icon_state = "dr_gibb" center_of_mass = list("x"=16, "y"=10) @@ -102,7 +51,7 @@ reagents.add_reagent("dr_gibb", 30) /obj/item/weapon/reagent_containers/food/drinks/cans/starkist - name = "Star-kist" + name = "\improper Star-kist" desc = "The taste of a star in liquid form. And, a bit of tuna...?" icon_state = "starkist" center_of_mass = list("x"=16, "y"=10) @@ -111,7 +60,7 @@ reagents.add_reagent("brownstar", 30) /obj/item/weapon/reagent_containers/food/drinks/cans/space_up - name = "Space-Up" + name = "\improper Space-Up" desc = "Tastes like a hull breach in your mouth." icon_state = "space-up" center_of_mass = list("x"=16, "y"=10) @@ -120,7 +69,7 @@ reagents.add_reagent("space_up", 30) /obj/item/weapon/reagent_containers/food/drinks/cans/lemon_lime - name = "Lemon-Lime" + name = "\improper Lemon-Lime" desc = "You wanted ORANGE. It gave you Lemon Lime." icon_state = "lemon-lime" center_of_mass = list("x"=16, "y"=10) @@ -129,7 +78,7 @@ reagents.add_reagent("lemon_lime", 30) /obj/item/weapon/reagent_containers/food/drinks/cans/iced_tea - name = "Vrisk Serket Iced Tea" + name = "\improper Vrisk Serket Iced Tea" desc = "That sweet, refreshing southern earthy flavor. That's where it's from, right? South Earth?" icon_state = "ice_tea_can" center_of_mass = list("x"=16, "y"=10) @@ -138,7 +87,7 @@ reagents.add_reagent("icetea", 30) /obj/item/weapon/reagent_containers/food/drinks/cans/grape_juice - name = "Grapel Juice" + name = "\improper Grapel Juice" desc = "500 pages of rules of how to appropriately enter into a combat with this juice!" icon_state = "purple_can" center_of_mass = list("x"=16, "y"=10) @@ -147,7 +96,7 @@ reagents.add_reagent("grapejuice", 30) /obj/item/weapon/reagent_containers/food/drinks/cans/tonic - name = "T-Borg's Tonic Water" + name = "\improper T-Borg's Tonic Water" desc = "Quinine tastes funny, but at least it'll keep that Space Malaria away." icon_state = "tonic" center_of_mass = list("x"=16, "y"=10) @@ -156,7 +105,7 @@ reagents.add_reagent("tonic", 50) /obj/item/weapon/reagent_containers/food/drinks/cans/sodawater - name = "Soda Water" + name = "soda water" desc = "A can of soda water. Still water's more refreshing cousin." icon_state = "sodawater" center_of_mass = list("x"=16, "y"=10) diff --git a/code/modules/reagents/reagent_containers/food/drinks.dm b/code/modules/reagents/reagent_containers/food/drinks.dm index f70e06f421a..7fd9bec3a20 100644 --- a/code/modules/reagents/reagent_containers/food/drinks.dm +++ b/code/modules/reagents/reagent_containers/food/drinks.dm @@ -14,12 +14,18 @@ return attack_self(mob/user as mob) - return + if(!is_open_container()) + open(user) - attack(mob/M as mob, mob/user as mob, def_zone) - if(standard_feed_mob(user, M)) + proc/open(mob/user) + playsound(loc,'sound/effects/canopen.ogg', rand(10,50), 1) + user << "You open [src] with an audible pop!" + flags |= OPENCONTAINER + + attack(mob/M as mob, mob/user as mob, def_zone) + if(standard_feed_mob(user, M)) return - + return 0 afterattack(obj/target, mob/user, proximity) @@ -29,7 +35,24 @@ return if(standard_pour_into(user, target)) return + return ..() + standard_feed_mob(var/mob/user, var/mob/target) + if(!is_open_container()) + user << "You need to open [src]!" + return 1 + return ..() + + standard_dispenser_refill(var/mob/user, var/obj/structure/reagent_dispensers/target) + if(!is_open_container()) + user << "You need to open [src]!" + return 1 + return ..() + + standard_pour_into(var/mob/user, var/atom/target) + if(!is_open_container()) + user << "You need to open [src]!" + return 1 return ..() self_feed_message(var/mob/user) diff --git a/code/modules/reagents/reagent_containers/food/drinks/bottle.dm b/code/modules/reagents/reagent_containers/food/drinks/bottle.dm index 7e289a45f35..5c557ce9501 100644 --- a/code/modules/reagents/reagent_containers/food/drinks/bottle.dm +++ b/code/modules/reagents/reagent_containers/food/drinks/bottle.dm @@ -4,19 +4,57 @@ /obj/item/weapon/reagent_containers/food/drinks/bottle amount_per_transfer_from_this = 10 - volume = 120 + volume = 100 item_state = "broken_beer" //Generic held-item sprite until unique ones are made. - var/const/duration = 13 //Directly relates to the 'weaken' duration. Lowered by armor (i.e. helmets) + force = 5 + var/smash_duration = 5 //Directly relates to the 'weaken' duration. Lowered by armor (i.e. helmets) var/isGlass = 1 //Whether the 'bottle' is made of glass or not so that milk cartons dont shatter when someone gets hit by it -/obj/item/weapon/reagent_containers/food/drinks/bottle/proc/smash(mob/living/target as mob, mob/living/user as mob) + var/obj/item/weapon/reagent_containers/glass/rag/rag = null + var/rag_underlay = "rag" + +/obj/item/weapon/reagent_containers/food/drinks/bottle/New() + ..() + if(isGlass) unacidable = 1 + +/obj/item/weapon/reagent_containers/food/drinks/bottle/Destroy() + if(rag) + rag.forceMove(src.loc) + rag = null + return ..() + +//when thrown on impact, bottles smash and spill their contents +/obj/item/weapon/reagent_containers/food/drinks/bottle/throw_impact(atom/hit_atom, var/speed) + ..() + + var/mob/M = thrower + if(isGlass && istype(M) && M.a_intent == I_HURT) + var/throw_dist = get_dist(throw_source, loc) + if(speed >= throw_speed && smash_check(throw_dist)) //not as reliable as smashing directly + if(reagents) + hit_atom.visible_message("The contents of the [src] splash all over [hit_atom]!") + reagents.splash(hit_atom, reagents.total_volume) + src.smash(loc, hit_atom) + +/obj/item/weapon/reagent_containers/food/drinks/bottle/proc/smash_check(var/distance) + if(!isGlass || !smash_duration) + return 0 + + var/list/chance_table = list(90, 90, 85, 85, 60, 35, 15) //starting from distance 0 + var/idx = max(distance + 1, 1) //since list indices start at 1 + if(idx > chance_table.len) + return 0 + return prob(chance_table[idx]) + +/obj/item/weapon/reagent_containers/food/drinks/bottle/proc/smash(var/newloc, atom/against = null) + if(ismob(loc)) + var/mob/M = loc + M.drop_from_inventory(src) //Creates a shattering noise and replaces the bottle with a broken_bottle - user.drop_item() - var/obj/item/weapon/broken_bottle/B = new /obj/item/weapon/broken_bottle(user.loc) - user.put_in_active_hand(B) + var/obj/item/weapon/broken_bottle/B = new /obj/item/weapon/broken_bottle(newloc) if(prob(33)) - new/obj/item/weapon/material/shard(target.loc) // Create a glass shard at the target's location! + new/obj/item/weapon/material/shard(newloc) // Create a glass shard at the target's location! B.icon_state = src.icon_state var/icon/I = new('icons/obj/drinks.dmi', src.icon_state) @@ -24,23 +62,68 @@ I.SwapColor(rgb(255, 0, 220, 255), rgb(0, 0, 0, 0)) B.icon = I + if(rag && rag.on_fire && isliving(against)) + rag.forceMove(loc) + var/mob/living/L = against + L.IgniteMob() + playsound(src, "shatter", 70, 1) - user.put_in_active_hand(B) src.transfer_fingerprints_to(B) qdel(src) + return B + +/obj/item/weapon/reagent_containers/food/drinks/bottle/attackby(obj/item/W, mob/user) + if(!rag && istype(W, /obj/item/weapon/reagent_containers/glass/rag)) + insert_rag(W, user) + return + if(rag && istype(W, /obj/item/weapon/flame)) + rag.attackby(W, user) + return + ..() + +/obj/item/weapon/reagent_containers/food/drinks/bottle/attack_self(mob/user) + if(rag) + remove_rag(user) + else + ..() + +/obj/item/weapon/reagent_containers/food/drinks/bottle/proc/insert_rag(obj/item/weapon/reagent_containers/glass/rag/R, mob/user) + if(!isGlass || rag) return + if(user.unEquip(R)) + user << "You stuff [R] into [src]." + rag = R + rag.forceMove(src) + flags &= ~OPENCONTAINER + update_icon() + +/obj/item/weapon/reagent_containers/food/drinks/bottle/proc/remove_rag(mob/user) + if(!rag) return + user.put_in_hands(rag) + rag = null + flags |= (initial(flags) & OPENCONTAINER) + update_icon() + +/obj/item/weapon/reagent_containers/food/drinks/bottle/open(mob/user) + if(rag) return + ..() + +/obj/item/weapon/reagent_containers/food/drinks/bottle/update_icon() + underlays.Cut() + if(rag) + var/underlay_image = image(icon='icons/obj/drinks.dmi', icon_state=rag.on_fire? "[rag_underlay]_lit" : rag_underlay) + underlays += underlay_image + copy_light(rag) + else + set_light(0) /obj/item/weapon/reagent_containers/food/drinks/bottle/attack(mob/living/target as mob, mob/living/user as mob) - if(!target) return if(user.a_intent != I_HURT || !isGlass) return ..() - - force = 15 //Smashing bottles over someoen's head hurts. - var/obj/item/organ/external/affecting = user.zone_sel.selecting //Find what the player is aiming at var/armor_block = 0 //Get the target's armour values for normal attack damage. @@ -48,13 +131,16 @@ //Calculating duration and calculating damage. armor_block = target.run_armor_check(affecting, "melee") - armor_duration = duration + force - target.getarmor(affecting, "melee") + + //force will counteract armour, but will never increase duration + armor_duration = smash_duration + min(0, force - target.getarmor(affecting, "melee") + 10) //Apply the damage! target.apply_damage(force, BRUTE, affecting, armor_block, sharp=0) // You are going to knock someone out for longer if they are not wearing a helmet. - if(affecting == "head" && istype(target, /mob/living/carbon/)) + var/do_smash = smash_check(1) //won't always break on the first hit + if(affecting == "head" && istype(target, /mob/living/carbon/) && do_smash) //Display an attack message. for(var/mob/O in viewers(user, null)) @@ -62,8 +148,7 @@ else O.show_message(text("\red [target] hit \himself with a bottle of [src.name] on the head!"), 1) //Weaken the target for the duration that we calculated and divide it by 5. if(armor_duration) - target.apply_effect(min(armor_duration, 10) , WEAKEN, armor_block) // Never weaken more than a flash! - + target.apply_effect(min(armor_duration, 5) , WEAKEN, armor_block) // Never weaken more than a flash! else //Default attack message and don't weaken the target. for(var/mob/O in viewers(user, null)) @@ -75,13 +160,15 @@ target.attack_log += text("\[[time_stamp()]\] Has been smashed with a bottle by [user.name] ([user.ckey])") msg_admin_attack("[user.name] ([user.ckey]) attacked [target.name] ([target.ckey]) with a bottle. (INTENT: [uppertext(user.a_intent)]) (JMP)") - //The reagents in the bottle splash all over the target, thanks for the idea Nodrak - if(reagents) - user.visible_message("The contents of the [src] splash all over [target]!") - reagents.splash(target, reagents.total_volume) + if(do_smash) + //The reagents in the bottle splash all over the target, thanks for the idea Nodrak + if(reagents) + user.visible_message("The contents of the [src] splash all over [target]!") + reagents.splash(target, reagents.total_volume) - //Finally, smash the bottle. This kills (qdel) the bottle. - src.smash(target, user) + //Finally, smash the bottle. This kills (qdel) the bottle. + var/obj/item/weapon/broken_bottle/B = src.smash(target.loc, target) + user.put_in_active_hand(B) return @@ -92,8 +179,8 @@ desc = "A bottle with a sharp broken bottom." icon = 'icons/obj/drinks.dmi' icon_state = "broken_bottle" - force = 9.0 - throwforce = 5.0 + force = 9 + throwforce = 5 throw_speed = 3 throw_range = 5 item_state = "beer" @@ -314,3 +401,31 @@ New() ..() reagents.add_reagent("limejuice", 100) + +//Small bottles +/obj/item/weapon/reagent_containers/food/drinks/bottle/small + volume = 50 + smash_duration = 1 + flags = 0 //starts closed + rag_underlay = "rag_small" + +/obj/item/weapon/reagent_containers/food/drinks/bottle/small/beer + name = "space beer" + desc = "Contains only water, malt and hops." + icon_state = "beer" + center_of_mass = list("x"=16, "y"=12) + New() + ..() + reagents.add_reagent("beer", 30) + +/obj/item/weapon/reagent_containers/food/drinks/bottle/small/ale + name = "\improper Magm-Ale" + desc = "A true dorf's drink of choice." + icon_state = "alebottle" + item_state = "beer" + center_of_mass = list("x"=16, "y"=10) + New() + ..() + reagents.add_reagent("ale", 30) + + diff --git a/code/modules/reagents/reagent_containers/food/drinks/drinkingglass.dm b/code/modules/reagents/reagent_containers/food/drinks/drinkingglass.dm index 0dc30124935..c7f0f0a9fee 100644 --- a/code/modules/reagents/reagent_containers/food/drinks/drinkingglass.dm +++ b/code/modules/reagents/reagent_containers/food/drinks/drinkingglass.dm @@ -6,6 +6,7 @@ icon_state = "glass_empty" amount_per_transfer_from_this = 5 volume = 30 + unacidable = 1 //glass center_of_mass = list("x"=16, "y"=10) on_reagent_change() diff --git a/code/modules/reagents/reagent_containers/food/drinks/jar.dm b/code/modules/reagents/reagent_containers/food/drinks/jar.dm index 7cca924261b..47abb8637a3 100644 --- a/code/modules/reagents/reagent_containers/food/drinks/jar.dm +++ b/code/modules/reagents/reagent_containers/food/drinks/jar.dm @@ -8,6 +8,7 @@ icon_state = "jar" item_state = "beaker" center_of_mass = list("x"=15, "y"=8) + unacidable = 1 New() ..() reagents.add_reagent("slime", 50) diff --git a/code/modules/reagents/reagent_containers/food/snacks.dm b/code/modules/reagents/reagent_containers/food/snacks.dm index db5229b680c..69d98f11d63 100644 --- a/code/modules/reagents/reagent_containers/food/snacks.dm +++ b/code/modules/reagents/reagent_containers/food/snacks.dm @@ -463,6 +463,7 @@ desc = "An egg!" icon_state = "egg" filling_color = "#FDFFD1" + volume = 10 /obj/item/weapon/reagent_containers/food/snacks/egg/New() ..() diff --git a/code/modules/reagents/reagent_containers/glass.dm b/code/modules/reagents/reagent_containers/glass.dm index 123bbc9d1fa..223484b3d93 100644 --- a/code/modules/reagents/reagent_containers/glass.dm +++ b/code/modules/reagents/reagent_containers/glass.dm @@ -14,6 +14,7 @@ volume = 60 w_class = 2 flags = OPENCONTAINER + unacidable = 1 //glass doesn't dissolve in acid var/label_text = "" @@ -34,7 +35,6 @@ /obj/machinery/iv_drip, /obj/machinery/disease2/incubator, /obj/machinery/disposal, - /obj/machinery/apiary, /mob/living/simple_animal/cow, /mob/living/simple_animal/hostile/retaliate/goat, /obj/machinery/computer/centrifuge, @@ -219,6 +219,7 @@ possible_transfer_amounts = list(10,20,30,60,120) volume = 120 flags = OPENCONTAINER + unacidable = 0 attackby(var/obj/D, mob/user as mob) if(isprox(D)) diff --git a/code/modules/reagents/reagent_containers/hypospray.dm b/code/modules/reagents/reagent_containers/hypospray.dm index ec5923c73d7..7632f8456fc 100644 --- a/code/modules/reagents/reagent_containers/hypospray.dm +++ b/code/modules/reagents/reagent_containers/hypospray.dm @@ -9,6 +9,7 @@ item_state = "hypo" icon_state = "hypo" amount_per_transfer_from_this = 5 + unacidable = 1 volume = 30 possible_transfer_amounts = null flags = OPENCONTAINER diff --git a/code/modules/reagents/reagent_containers/spray.dm b/code/modules/reagents/reagent_containers/spray.dm index 662099a7161..91d82b9bc1b 100644 --- a/code/modules/reagents/reagent_containers/spray.dm +++ b/code/modules/reagents/reagent_containers/spray.dm @@ -11,6 +11,7 @@ throw_speed = 2 throw_range = 10 amount_per_transfer_from_this = 10 + unacidable = 1 //plastic possible_transfer_amounts = list(5,10) //Set to null instead of list, if there is only one. var/spray_size = 3 var/list/spray_sizes = list(1,3) diff --git a/code/modules/reagents/reagent_containers/syringes.dm b/code/modules/reagents/reagent_containers/syringes.dm index 420990def00..c06b57d54c8 100644 --- a/code/modules/reagents/reagent_containers/syringes.dm +++ b/code/modules/reagents/reagent_containers/syringes.dm @@ -18,6 +18,7 @@ w_class = 1 slot_flags = SLOT_EARS sharp = 1 + unacidable = 1 //glass var/mode = SYRINGE_DRAW var/image/filling //holds a reference to the current filling overlay var/visible_name = "a syringe" diff --git a/code/modules/recycling/disposal.dm b/code/modules/recycling/disposal.dm index 9dd8d1f9560..88148916104 100644 --- a/code/modules/recycling/disposal.dm +++ b/code/modules/recycling/disposal.dm @@ -187,10 +187,6 @@ update() return -// can breath normally in the disposal -/obj/machinery/disposal/alter_health() - return get_turf(src) - // attempt to move while inside /obj/machinery/disposal/relaymove(mob/user as mob) if(user.stat || src.flushing) diff --git a/code/modules/research/rdconsole.dm b/code/modules/research/rdconsole.dm index 1cf31e63ed5..3a5ccd7440a 100644 --- a/code/modules/research/rdconsole.dm +++ b/code/modules/research/rdconsole.dm @@ -29,7 +29,8 @@ won't update every console in existence) but it's more of a hassle to do. Also, /obj/machinery/computer/rdconsole name = "R&D control console" - icon_state = "rdcomp" + icon_keyboard = "rd_key" + icon_screen = "rdcomp" light_color = "#a97faa" circuit = /obj/item/weapon/circuitboard/rdconsole var/datum/research/files //Stores all the collected research data. @@ -151,7 +152,7 @@ won't update every console in existence) but it's more of a hassle to do. Also, src.updateUsrDialog() return - + /obj/machinery/computer/rdconsole/emp_act(var/remaining_charges, var/mob/user) if(!emagged) playsound(src.loc, 'sound/effects/sparks4.ogg', 75, 1) @@ -259,9 +260,9 @@ won't update every console in existence) but it's more of a hassle to do. Also, linked_destroy.loaded_item = null for(var/obj/I in linked_destroy.contents) for(var/mob/M in I.contents) - M.death() + M.death() if(istype(I,/obj/item/stack/material))//Only deconsturcts one sheet at a time instead of the entire stack - var/obj/item/stack/material/S = I + var/obj/item/stack/material/S = I if(S.get_amount() > 1) S.use(1) linked_destroy.loaded_item = S diff --git a/code/modules/research/server.dm b/code/modules/research/server.dm index 893ef3383f9..6553820f5b4 100644 --- a/code/modules/research/server.dm +++ b/code/modules/research/server.dm @@ -119,8 +119,8 @@ if(default_deconstruction_screwdriver(user, O)) return if(default_deconstruction_crowbar(user, O)) - return - if(default_part_replacement(user, O)) + return + if(default_part_replacement(user, O)) return /obj/machinery/r_n_d/server/centcom @@ -155,7 +155,8 @@ /obj/machinery/computer/rdservercontrol name = "R&D Server Controller" - icon_state = "rdcomp" + icon_keyboard = "rd_key" + icon_screen = "rdcomp" light_color = "#a97faa" circuit = /obj/item/weapon/circuitboard/rdservercontrol var/screen = 0 diff --git a/code/modules/security levels/security levels.dm b/code/modules/security levels/security levels.dm index 1892af891ed..4b73c0dd28d 100644 --- a/code/modules/security levels/security levels.dm +++ b/code/modules/security levels/security levels.dm @@ -25,46 +25,31 @@ if(SEC_LEVEL_GREEN) security_announcement_down.Announce("[config.alert_desc_green]", "Attention! Security level lowered to green") security_level = SEC_LEVEL_GREEN - for(var/obj/machinery/firealarm/FA in machines) - if(FA.z in config.contact_levels) - FA.overlays = list() - FA.overlays += image('icons/obj/monitors.dmi', "overlay_green") if(SEC_LEVEL_BLUE) if(security_level < SEC_LEVEL_BLUE) security_announcement_up.Announce("[config.alert_desc_blue_upto]", "Attention! Security level elevated to blue") else security_announcement_down.Announce("[config.alert_desc_blue_downto]", "Attention! Security level lowered to blue") security_level = SEC_LEVEL_BLUE - for(var/obj/machinery/firealarm/FA in machines) - if(FA.z in config.contact_levels) - FA.overlays = list() - FA.overlays += image('icons/obj/monitors.dmi', "overlay_blue") if(SEC_LEVEL_RED) if(security_level < SEC_LEVEL_RED) security_announcement_up.Announce("[config.alert_desc_red_upto]", "Attention! Code red!") else security_announcement_down.Announce("[config.alert_desc_red_downto]", "Attention! Code red!") security_level = SEC_LEVEL_RED - /* - At the time of commit, setting status displays didn't work properly var/obj/machinery/computer/communications/CC = locate(/obj/machinery/computer/communications,world) if(CC) CC.post_status("alert", "redalert")*/ - - for(var/obj/machinery/firealarm/FA in machines) - if(FA.z in config.contact_levels) - FA.overlays = list() - FA.overlays += image('icons/obj/monitors.dmi', "overlay_red") - if(SEC_LEVEL_DELTA) security_announcement_up.Announce("[config.alert_desc_delta]", "Attention! Delta security level reached!", new_sound = 'sound/effects/siren.ogg') security_level = SEC_LEVEL_DELTA - for(var/obj/machinery/firealarm/FA in machines) - if(FA.z in config.contact_levels) - FA.overlays = list() - FA.overlays += image('icons/obj/monitors.dmi', "overlay_delta") - else - return + + var/newlevel = get_security_level() + for(var/obj/machinery/firealarm/FA in machines) + if(FA.z in config.contact_levels) + FA.set_security_level(newlevel) + /proc/get_security_level() switch(security_level) diff --git a/code/modules/shuttles/shuttle_console.dm b/code/modules/shuttles/shuttle_console.dm index 3ee70b12c7d..b60e5e52341 100644 --- a/code/modules/shuttles/shuttle_console.dm +++ b/code/modules/shuttles/shuttle_console.dm @@ -1,7 +1,8 @@ /obj/machinery/computer/shuttle_control name = "shuttle control console" icon = 'icons/obj/computer.dmi' - icon_state = "shuttle" + icon_keyboard = "atmos_key" + icon_screen = "shuttle" circuit = null var/shuttle_tag // Used to coordinate data in shuttle controller. @@ -15,7 +16,7 @@ if(!allowed(user)) user << "\red Access Denied." return 1 - + ui_interact(user) /obj/machinery/computer/shuttle_control/ui_interact(mob/user, ui_key = "main", var/datum/nanoui/ui = null, var/force_open = 1) diff --git a/code/modules/shuttles/shuttles_multi.dm b/code/modules/shuttles/shuttles_multi.dm index 141cf97d8aa..7bdac463ebd 100644 --- a/code/modules/shuttles/shuttles_multi.dm +++ b/code/modules/shuttles/shuttles_multi.dm @@ -34,12 +34,12 @@ destination_dock_controllers[destination] = docking_controller else var/datum/computer/file/embedded_program/docking/C = locate(controller_tag) - + if(!istype(C)) world << "warning: shuttle with docking tag [controller_tag] could not find it's controller!" else destination_dock_controllers[destination] = C - + //might as well set this up here. if(origin) last_departed = origin last_location = start_location @@ -70,7 +70,8 @@ /obj/machinery/computer/shuttle_control/multi - icon_state = "syndishuttle" + icon_keyboard = "syndie_key" + icon_screen = "syndishuttle" /obj/machinery/computer/shuttle_control/multi/attack_hand(user as mob) @@ -99,7 +100,7 @@ dat += "
Toggle cloaking field
" dat += "Move ship
" dat += "Return to base" - + //Docking dat += "


" if(MS.skip_docking_checks()) @@ -107,7 +108,7 @@ else var/override_en = MS.docking_controller.override_enabled var/docking_status = MS.docking_controller.get_docking_status() - + dat += "Docking Status: " switch(docking_status) if("undocked") @@ -118,11 +119,11 @@ dat += "Undocking" if("docked") dat += "Docked" - + if(override_en) dat += " (Override Enabled)" - + dat += ". \[Refresh\]

" - + switch(docking_status) if("undocked") dat += "Dock
" @@ -139,11 +140,11 @@ var/choice = alert("The shuttle is currently docked! Please undock before continuing.","Error","Cancel","Force Launch") if(choice == "Cancel") return 0 - + choice = alert("Forcing a shuttle launch while docked may result in severe injury, death and/or damage to property. Are you sure you wish to continue?", "Force Launch", "Force Launch", "Cancel") if(choice == "Cancel") return 0 - + return 1 /obj/machinery/computer/shuttle_control/multi/Topic(href, href_list) @@ -165,11 +166,11 @@ if (MS.moving_status != SHUTTLE_IDLE) usr << "\blue [shuttle_tag] vessel is moving." return - + if(href_list["dock_command"]) MS.dock() return - + if(href_list["undock_command"]) MS.undock() return @@ -178,7 +179,7 @@ if(MS.at_origin) usr << "\red You are already at your home base." return - + if((MS.last_move + MS.cooldown*10) > world.time) usr << "\red The ship's drive is inoperable while the engines are charging." return @@ -186,7 +187,7 @@ if(!check_docking(MS)) updateUsrDialog() return - + if(!MS.return_warning) usr << "\red Returning to your home base will end your mission. If you are sure, press the button again." //TODO: Actually end the mission. @@ -207,11 +208,11 @@ if((MS.last_move + MS.cooldown*10) > world.time) usr << "\red The ship's drive is inoperable while the engines are charging." return - + if(!check_docking(MS)) updateUsrDialog() return - + var/choice = input("Select a destination.") as null|anything in MS.destinations if(!choice) return diff --git a/code/modules/spells/aoe_turf/aoe_turf.dm b/code/modules/spells/aoe_turf/aoe_turf.dm index 9a70eb18c67..32657610776 100644 --- a/code/modules/spells/aoe_turf/aoe_turf.dm +++ b/code/modules/spells/aoe_turf/aoe_turf.dm @@ -1,25 +1,25 @@ -/* -Aoe turf spells target a ring of tiles around the user -This ring has an outer radius (range) and an inner radius (inner_radius) -Aoe turf spells have two useful flags: IGNOREDENSE and IGNORESPACE. These are explained in setup.dm -*/ - -/spell/aoe_turf //affects all turfs in view or range (depends) - spell_flags = IGNOREDENSE - var/inner_radius = -1 //for all your ring spell needs - -/spell/aoe_turf/choose_targets(mob/user = usr) - var/list/targets = list() - - for(var/turf/target in view_or_range(range,user,selection_type)) - if(!(target in view_or_range(inner_radius,user,selection_type))) - if(target.density && (spell_flags & IGNOREDENSE)) - continue - if(istype(target, /turf/space) && (spell_flags & IGNORESPACE)) - continue - targets += target - - if(!targets.len) //doesn't waste the spell - return - +/* +Aoe turf spells target a ring of tiles around the user +This ring has an outer radius (range) and an inner radius (inner_radius) +Aoe turf spells have two useful flags: IGNOREDENSE and IGNORESPACE. These are explained in setup.dm +*/ + +/spell/aoe_turf //affects all turfs in view or range (depends) + spell_flags = IGNOREDENSE + var/inner_radius = -1 //for all your ring spell needs + +/spell/aoe_turf/choose_targets(mob/user = usr) + var/list/targets = list() + + for(var/turf/target in view_or_range(range, holder, selection_type)) + if(!(target in view_or_range(inner_radius, holder, selection_type))) + if(target.density && (spell_flags & IGNOREDENSE)) + continue + if(istype(target, /turf/space) && (spell_flags & IGNORESPACE)) + continue + targets += target + + if(!targets.len) //doesn't waste the spell + return + return targets \ No newline at end of file diff --git a/code/modules/spells/spell_code.dm b/code/modules/spells/spell_code.dm index ba631391b46..1e8274757ec 100644 --- a/code/modules/spells/spell_code.dm +++ b/code/modules/spells/spell_code.dm @@ -1,9 +1,9 @@ var/list/spells = typesof(/spell) //needed for the badmin verb for now /spell - name = "Spell" - desc = "A spell" - parent_type = /atom/movable + var/name = "Spell" + var/desc = "A spell" + parent_type = /datum var/panel = "Spells"//What panel the proc holder needs to go on. var/school = "evocation" //not relevant at now, but may be important later if there are changes to how spells work. the ones I used for now will probably be changed... maybe spell presets? lacking flexibility but with some other benefit? @@ -25,8 +25,7 @@ var/list/spells = typesof(/spell) //needed for the badmin verb for now var/range = 7 //the range of the spell; outer radius for aoe spells var/message = "" //whatever it says to the guy affected by it var/selection_type = "view" //can be "range" or "view" - var/atom/movable/holder //where the spell is. Normally the user, can be a projectile - + var/atom/movable/holder //where the spell is. Normally the user, can be an item var/duration = 0 //how long the spell lasts var/list/spell_levels = list(Sp_SPEED = 0, Sp_POWER = 0) //the current spell levels - total spell levels can be obtained by just adding the two values @@ -53,6 +52,8 @@ var/list/spells = typesof(/spell) //needed for the badmin verb for now var/hud_state = "" //name of the icon used in generating the spell hud object var/override_base = "" + var/obj/screen/connected_button + /////////////////////// ///SETUP AND PROCESS/// /////////////////////// @@ -69,11 +70,6 @@ var/list/spells = typesof(/spell) //needed for the badmin verb for now sleep(1) return -/spell/Click() - ..() - - perform(usr) - ///////////////// /////CASTING///// ///////////////// @@ -182,18 +178,19 @@ var/list/spells = typesof(/spell) //needed for the badmin verb for now /spell/proc/cast_check(skipcharge = 0,mob/user = usr) //checks if the spell can be cast based on its settings; skipcharge is used when an additional cast_check is called inside the spell - if(!(src in user.spell_list)) + if(!(src in user.spell_list) && holder == user) + error("[user] utilized the spell '[src]' without having it.") user << "You shouldn't have this spell! Something's wrong." return 0 if(silenced > 0) return - var/turf/Turf = get_turf(user) - if(!Turf) + var/turf/user_turf = get_turf(user) + if(!user_turf) user << "You cannot cast spells in null space!" - if(spell_flags & Z2NOCAST && (Turf.z in config.admin_levels)) //Certain spells are not allowed on the centcomm zlevel + if(spell_flags & Z2NOCAST && (user_turf.z in config.admin_levels)) //Certain spells are not allowed on the centcomm zlevel return 0 if(spell_flags & CONSTRUCT_CHECK) @@ -201,7 +198,7 @@ var/list/spells = typesof(/spell) //needed for the badmin verb for now if(findNullRod(T)) return 0 - if(istype(user, /mob/living/simple_animal)) + if(istype(user, /mob/living/simple_animal) && holder == user) var/mob/living/simple_animal/SA = user if(SA.purge) SA << "The nullrod's power interferes with your own!" @@ -210,7 +207,7 @@ var/list/spells = typesof(/spell) //needed for the badmin verb for now if(!src.check_charge(skipcharge, user)) //sees if we can cast based on charges alone return 0 - if(!(spell_flags & GHOSTCAST)) + if(!(spell_flags & GHOSTCAST) && holder == user) if(user.stat && !(spell_flags & STATALLOWED)) usr << "Not when you're incapacitated." return 0 @@ -221,7 +218,7 @@ var/list/spells = typesof(/spell) //needed for the badmin verb for now return 0 var/spell/noclothes/spell = locate() in user.spell_list - if((spell_flags & NEEDSCLOTHES) && !(spell && istype(spell)))//clothes check + if((spell_flags & NEEDSCLOTHES) && !(spell && istype(spell)) && holder == user)//clothes check if(!user.wearing_wiz_garb()) return 0 diff --git a/code/modules/spells/spell_projectile.dm b/code/modules/spells/spell_projectile.dm index f3e69b9b6cb..c94131b252c 100644 --- a/code/modules/spells/spell_projectile.dm +++ b/code/modules/spells/spell_projectile.dm @@ -6,6 +6,7 @@ var/spell/targeted/projectile/carried + penetrating = 0 kill_count = 10 //set by the duration of the spell var/proj_trail = 0 //if it leaves a trail @@ -15,18 +16,15 @@ var/list/trails = new() /obj/item/projectile/spell_projectile/Destroy() - ..() for(var/trail in trails) qdel(trail) + carried = null + return ..() /obj/item/projectile/spell_projectile/ex_act() return /obj/item/projectile/spell_projectile/before_move() - if(carried) - var/list/targets = carried.choose_prox_targets(user = carried.holder, spell_holder = src) - if(targets.len) - src.prox_cast(targets) if(proj_trail && src && src.loc) //pretty trails var/obj/effect/overlay/trail = PoolOrNew(/obj/effect/overlay, src.loc) trails += trail @@ -44,19 +42,14 @@ return /obj/item/projectile/spell_projectile/Bump(var/atom/A) - if(loc) + if(loc && carried) prox_cast(carried.choose_prox_targets(user = carried.holder, spell_holder = src)) - return + return 1 /obj/item/projectile/spell_projectile/on_impact() - if(loc) + if(loc && carried) prox_cast(carried.choose_prox_targets(user = carried.holder, spell_holder = src)) - return + return 1 /obj/item/projectile/spell_projectile/seeking name = "seeking spell" - -/obj/item/projectile/spell_projectile/seeking/process_step() - ..() - if(original && !isnull(src.loc)) - current = original //update the target diff --git a/code/modules/spells/spellbook.dm b/code/modules/spells/spellbook.dm index ae71bf82499..6f619e1cce5 100644 --- a/code/modules/spells/spellbook.dm +++ b/code/modules/spells/spellbook.dm @@ -34,8 +34,6 @@ This spell fires several, slow moving, magic projectiles at nearby targets. If they hit a target, it is paralyzed and takes minor damage.
Fireball (10)
This spell fires a fireball in the direction you're facing and does not require wizard garb. Be careful not to fire it at people that are standing next to you.
- Disintegrate (60)
- This spell instantly kills somebody adjacent to you with the vilest of magick. It has a long cooldown.
Disable Technology (60)
This spell disables all weapons, cameras and most other technology in range.
Smoke (10)
@@ -60,8 +58,6 @@ This spell opens nearby doors and does not require wizard garb.
Curse of the Horseman (15)
This spell will curse a person to wear an unremovable horse mask (it has glue on the inside) and speak like a horse. It does not require wizard garb.
- Flesh to Stone (60)
- This spell will curse a person to immediately turn into an unmoving statue. The effect will eventually wear off if the statue is not destroyed.
Remove Clothes Requirement Warning: this takes away 2 spell choices.

Artefacts:
@@ -125,7 +121,7 @@ uses-- /* */ - var/list/available_spells = list(magicmissile = "Magic Missile", fireball = "Fireball", disintegrate = "Disintegrate", disabletech = "Disable Tech", smoke = "Smoke", blind = "Blind", subjugation = "Subjugation", mindswap = "Mind Transfer", forcewall = "Forcewall", blink = "Blink", teleport = "Teleport", mutate = "Mutate", etherealjaunt = "Ethereal Jaunt", knock = "Knock", horseman = "Curse of the Horseman", staffchange = "Staff of Change", mentalfocus = "Mental Focus", soulstone = "Six Soul Stone Shards and the spell Artificer", armor = "Mastercrafted Armor Set", staffanimate = "Staff of Animation", noclothes = "No Clothes",fleshtostone = "Flesh to Stone") + var/list/available_spells = list(magicmissile = "Magic Missile", fireball = "Fireball", disabletech = "Disable Tech", smoke = "Smoke", blind = "Blind", subjugation = "Subjugation", mindswap = "Mind Transfer", forcewall = "Forcewall", blink = "Blink", teleport = "Teleport", mutate = "Mutate", etherealjaunt = "Ethereal Jaunt", knock = "Knock", horseman = "Curse of the Horseman", staffchange = "Staff of Change", mentalfocus = "Mental Focus", soulstone = "Six Soul Stone Shards and the spell Artificer", armor = "Mastercrafted Armor Set", staffanimate = "Staff of Animation", noclothes = "No Clothes") var/already_knows = 0 for(var/spell/aspell in H.spell_list) if(available_spells[href_list["spell_choice"]] == initial(aspell.name)) @@ -165,10 +161,6 @@ feedback_add_details("wizard_spell_learned","FB") //please do not change the abbreviation to keep data processing consistent. Add a unique id to any new spells H.add_spell(new/spell/targeted/projectile/dumbfire/fireball) temp = "You have learned fireball." - if("disintegrate") - feedback_add_details("wizard_spell_learned","DG") //please do not change the abbreviation to keep data processing consistent. Add a unique id to any new spells - H.add_spell(new/spell/targeted/disintegrate) - temp = "You have learned disintegrate." if("disabletech") feedback_add_details("wizard_spell_learned","DT") //please do not change the abbreviation to keep data processing consistent. Add a unique id to any new spells H.add_spell(new/spell/aoe_turf/disable_tech) @@ -215,12 +207,8 @@ temp = "You have learned knock." if("horseman") feedback_add_details("wizard_spell_learned","HH") //please do not change the abbreviation to keep data processing consistent. Add a unique id to any new spells - H.add_spell(new/spell/targeted/horsemask) + H.add_spell(new/spell/targeted/equip_item/horsemask) temp = "You have learned curse of the horseman." - if("fleshtostone") - feedback_add_details("wizard_spell_learned","FS") //please do not change the abbreviation to keep data processing consistent. Add a unique id to any new spells - H.add_spell(new/spell/targeted/flesh_to_stone) - temp = "You have learned flesh to stone." if("staffchange") feedback_add_details("wizard_spell_learned","ST") //please do not change the abbreviation to keep data processing consistent. Add a unique id to any new spells new /obj/item/weapon/gun/energy/staff(get_turf(H)) @@ -258,7 +246,7 @@ H.sight |= (SEE_MOBS|SEE_OBJS|SEE_TURFS) H.see_in_dark = 8 H.see_invisible = SEE_INVISIBLE_LEVEL_TWO - H << "\blue The walls suddenly disappear." + H << "The walls suddenly disappear." temp = "You have purchased a scrying orb, and gained x-ray vision." max_uses-- else @@ -429,7 +417,7 @@ user.Weaken(20) /obj/item/weapon/spellbook/oneuse/horsemask - spell = /spell/targeted/horsemask + spell = /spell/targeted/equip_item/horsemask spellname = "horses" icon_state ="bookhorses" desc = "This book is more horse than your mind has room for." diff --git a/code/modules/spells/spells.dm b/code/modules/spells/spells.dm index d20eea00dc8..5e378f46a39 100644 --- a/code/modules/spells/spells.dm +++ b/code/modules/spells/spells.dm @@ -1,20 +1,37 @@ +/datum/mind + var/list/learned_spells + /mob/Life() ..() if(spell_masters && spell_masters.len) for(var/obj/screen/movable/spell_master/spell_master in spell_masters) spell_master.update_spells(0, src) -/mob/Stat() +/mob/Login() ..() - if(spell_list && spell_list.len && statpanel("Spells")) + if(spell_masters) + for(var/obj/screen/movable/spell_master/spell_master in spell_masters) + spell_master.toggle_open(1) + client.screen -= spell_master + +/mob/Stat() + . = ..() + if(. && spell_list && spell_list.len) for(var/spell/S in spell_list) + if((!S.connected_button) || !statpanel(S.panel)) + continue //Not showing the noclothes spell switch(S.charge_type) if(Sp_RECHARGE) - statpanel("Spells","[S.charge_counter/10.0]/[S.charge_max/10]",S) + statpanel(S.panel,"[S.charge_counter/10.0]/[S.charge_max/10]",S.connected_button) if(Sp_CHARGES) - statpanel("Spells","[S.charge_counter]/[S.charge_max]",S) + statpanel(S.panel,"[S.charge_counter]/[S.charge_max]",S.connected_button) if(Sp_HOLDVAR) - statpanel("Spells","[S.holder_var_type] [S.holder_var_amount]",S) + statpanel(S.panel,"[S.holder_var_type] [S.holder_var_amount]",S.connected_button) + +/hook/clone/proc/restore_spells(var/mob/H) + if(H.mind && H.mind.learned_spells) + for(var/spell/spell_to_add in H.mind.learned_spells) + H.add_spell(spell_to_add) /mob/proc/add_spell(var/spell/spell_to_add, var/spell_base = "wiz_spell_ready", var/master_type = /obj/screen/movable/spell_master) if(!spell_masters) @@ -36,6 +53,11 @@ new_spell_master.icon_state = spell_base spell_masters.Add(new_spell_master) spell_list.Add(spell_to_add) + if(mind) + if(!mind.learned_spells) + mind.learned_spells = list() + mind.learned_spells += spell_to_add + return 1 /mob/proc/remove_spell(var/spell/spell_to_remove) @@ -48,6 +70,8 @@ if(!spell_masters || !spell_masters.len) return + if(mind && mind.learned_spells) + mind.learned_spells.Remove(spell_to_remove) spell_list.Remove(spell_to_remove) for(var/obj/screen/movable/spell_master/spell_master in spell_masters) spell_master.remove_spell(spell_to_remove) diff --git a/code/modules/spells/targeted/disintegrate.dm b/code/modules/spells/targeted/disintegrate.dm deleted file mode 100644 index c3f0ee80e97..00000000000 --- a/code/modules/spells/targeted/disintegrate.dm +++ /dev/null @@ -1,27 +0,0 @@ -/spell/targeted/disintegrate - name = "Disintegrate" - desc = "This spell instantly kills somebody adjacent to you with the vilest of magick." - - school = "evocation" - charge_max = 600 - spell_flags = NEEDSCLOTHES - invocation = "EI NATH" - invocation_type = SpI_SHOUT - range = 1 - cooldown_min = 200 //100 deciseconds reduction per rank - - sparks_spread = 1 - sparks_amt = 4 - - hud_state = "wiz_disint" - -/spell/targeted/disintegrate/cast(var/list/targets) - ..() - for(var/mob/living/target in targets) - if(ishuman(target)) - var/mob/living/carbon/C = target - if(!C.has_brain()) // Their brain is already taken out - var/obj/item/organ/brain/B = new(C.loc) - B.transfer_identity(C) - target.gib() - return \ No newline at end of file diff --git a/code/modules/spells/targeted/equip/equip.dm b/code/modules/spells/targeted/equip/equip.dm new file mode 100644 index 00000000000..735daf78e8f --- /dev/null +++ b/code/modules/spells/targeted/equip/equip.dm @@ -0,0 +1,40 @@ +//You can set duration to 0 to have the items last forever + +/spell/targeted/equip_item + name = "equipment spell" + + var/list/equipped_summons = list() //assoc list of text ids and paths to spawn + + var/list/summoned_items = list() //list of items we summoned and will dispose when the spell runs out + + var/delete_old = 1 //if the item previously in the slot is deleted - otherwise, it's dropped + +/spell/targeted/equip_item/cast(list/targets, mob/user = usr) + ..() + for(var/mob/living/L in targets) + for(var/slot_id in equipped_summons) + var/to_create = equipped_summons[slot_id] + slot_id = text2num(slot_id) //because the index is text, we access this instead + var/obj/item/new_item = summon_item(to_create) + var/obj/item/old_item = L.get_equipped_item(slot_id) + L.equip_to_slot(new_item, slot_id) + if(old_item) + L.remove_from_mob(old_item) + if(delete_old) + qdel(old_item) + else + old_item.loc = L.loc + + if(duration) + summoned_items += new_item //we store it in a list to remove later + + if(duration) + spawn(duration) + for(var/obj/item/to_remove in summoned_items) + if(istype(to_remove.loc, /mob)) + var/mob/M = to_remove.loc + M.remove_from_mob(to_remove) + qdel(to_remove) + +/spell/targeted/equip_item/proc/summon_item(var/newtype) + return new newtype diff --git a/code/modules/spells/targeted/horsemask.dm b/code/modules/spells/targeted/equip/horsemask.dm similarity index 63% rename from code/modules/spells/targeted/horsemask.dm rename to code/modules/spells/targeted/equip/horsemask.dm index dad2032b721..92b85fdb364 100644 --- a/code/modules/spells/targeted/horsemask.dm +++ b/code/modules/spells/targeted/equip/horsemask.dm @@ -1,35 +1,39 @@ -/spell/targeted/horsemask - name = "Curse of the Horseman" - desc = "This spell triggers a curse on a target, causing them to wield an unremovable horse head mask. They will speak like a horse! Any masks they are wearing will be disintegrated. This spell does not require robes." - school = "transmutation" - charge_type = Sp_RECHARGE - charge_max = 150 - charge_counter = 0 - spell_flags = 0 - invocation = "KN'A FTAGHU, PUCK 'BTHNK!" - invocation_type = SpI_SHOUT - range = 7 - max_targets = 1 - cooldown_min = 30 //30 deciseconds reduction per rank - selection_type = "range" - - compatible_mobs = list(/mob/living/carbon/human) - - hud_state = "wiz_horse" - -/spell/targeted/horsemask/cast(list/targets, mob/user = usr) - ..() - for(var/mob/living/target in targets) - var/obj/item/clothing/mask/horsehead/magichead = new /obj/item/clothing/mask/horsehead - magichead.canremove = 0 //curses! - magichead.flags_inv = null //so you can still see their face - magichead.voicechange = 1 //NEEEEIIGHH - target.visible_message( "[target]'s face lights up in fire, and after the event a horse's head takes its place!", \ - "Your face burns up, and shortly after the fire you realise you have the face of a horse!") - var/obj/old_mask = target.wear_mask - if(old_mask) - target.drop_from_inventory(old_mask) - qdel(old_mask) //get rid of this shit - target.equip_to_slot_if_possible(magichead, slot_wear_mask, 1, 1) - - flick("e_flash", target.flash) \ No newline at end of file +/spell/targeted/equip_item/horsemask + name = "Curse of the Horseman" + desc = "This spell triggers a curse on a target, causing them to wield an unremovable horse head mask. They will speak like a horse! Any masks they are wearing will be disintegrated. This spell does not require robes." + school = "transmutation" + charge_type = Sp_RECHARGE + charge_max = 150 + charge_counter = 0 + spell_flags = 0 + invocation = "KN'A FTAGHU, PUCK 'BTHNK!" + invocation_type = SpI_SHOUT + range = 7 + max_targets = 1 + cooldown_min = 30 //30 deciseconds reduction per rank + selection_type = "range" + + compatible_mobs = list(/mob/living/carbon/human) + + hud_state = "wiz_horse" + +/spell/targeted/equip_item/horsemask/New() + ..() + equipped_summons = list("[slot_wear_mask]" = /obj/item/clothing/mask/horsehead) + +/spell/targeted/equip_item/horsemask/cast(list/targets, mob/user = usr) + ..() + for(var/mob/living/target in targets) + target.visible_message( "[target]'s face lights up in fire, and after the event a horse's head takes its place!", \ + "Your face burns up, and shortly after the fire you realise you have the face of a horse!") + flick("e_flash", target.flash) + +/spell/targeted/equip_item/horsemask/summon_item(var/new_type) + var/obj/item/new_item = new new_type + new_item.canremove = 0 //curses! + new_item.unacidable = 1 + if(istype(new_item, /obj/item/clothing/mask/horsehead)) + var/obj/item/clothing/mask/horsehead/magichead = new_item + magichead.flags_inv = null //so you can still see their face + magichead.voicechange = 1 //NEEEEIIGHH + return new_item diff --git a/code/modules/spells/targeted/flesh_to_stone.dm b/code/modules/spells/targeted/flesh_to_stone.dm deleted file mode 100644 index e640fba5c65..00000000000 --- a/code/modules/spells/targeted/flesh_to_stone.dm +++ /dev/null @@ -1,21 +0,0 @@ -/spell/targeted/flesh_to_stone - name = "Flesh to Stone" - desc = "This spell turns a single person into an inert statue for a long period of time." - - school = "transmutation" - charge_max = 600 - spell_flags = NEEDSCLOTHES - range = 3 - max_targets = 1 - invocation = "STAUN EI" - invocation_type = SpI_SHOUT - amt_stunned = 5//just exists to make sure the statue "catches" them - cooldown_min = 200 //100 deciseconds reduction per rank - - hud_state = "wiz_statue" - -/spell/targeted/flesh_to_stone/cast(var/list/targets, mob/user) - ..() - for(var/mob/living/target in targets) - new /obj/structure/closet/statue(target.loc, target) //makes the statue - return \ No newline at end of file diff --git a/code/modules/spells/targeted/genetic.dm b/code/modules/spells/targeted/genetic.dm index 028cdafba0b..045fbc7d413 100644 --- a/code/modules/spells/targeted/genetic.dm +++ b/code/modules/spells/targeted/genetic.dm @@ -57,7 +57,7 @@ code\game\dna\genes\goon_powers.dm spell_flags = Z2NOCAST | NEEDSCLOTHES | INCLUDEUSER invocation = "BIRUZ BENNAR" invocation_type = SpI_SHOUT - message = "\blue You feel strong! You feel a pressure building behind your eyes!" + message = "You feel strong! You feel a pressure building behind your eyes!" range = 0 max_targets = 1 diff --git a/code/modules/spells/targeted/mind_transfer.dm b/code/modules/spells/targeted/mind_transfer.dm index 2e1860da35e..a3668a53d1d 100644 --- a/code/modules/spells/targeted/mind_transfer.dm +++ b/code/modules/spells/targeted/mind_transfer.dm @@ -51,7 +51,10 @@ ghost.spell_list = victim.spell_list//If they have spells, transfer them. Now we basically have a backup mob. caster.mind.transfer_to(victim) - victim.spell_list = caster.spell_list//Now they are inside the victim's body. + victim.spell_list = list() //clear those out + for(var/spell/S in caster.spell_list) + victim.add_spell(S) //Now they are inside the victim's body - this also generates the HUD + caster.spell_list = list() //clean that out as well if(victim.mind.special_verbs.len)//To add all the special verbs for the original caster. for(var/V in caster.mind.special_verbs)//Not too important but could come into play. @@ -59,7 +62,9 @@ ghost.mind.transfer_to(caster) caster.key = ghost.key //have to transfer the key since the mind was not active - caster.spell_list = ghost.spell_list + for(var/spell/S in ghost.spell_list) + caster.add_spell(S) + ghost.spell_list = list() if(caster.mind.special_verbs.len)//If they had any special verbs, we add them here. for(var/V in caster.mind.special_verbs) @@ -71,4 +76,4 @@ //After a certain amount of time the victim gets a message about being in a different body. spawn(msg_wait) - caster << "\red You feel woozy and lightheaded. Your body doesn't seem like your own." + caster << "You feel woozy and lightheaded. Your body doesn't seem like your own." diff --git a/code/modules/spells/targeted/targeted.dm b/code/modules/spells/targeted/targeted.dm index 96bbab9905f..498d363408e 100644 --- a/code/modules/spells/targeted/targeted.dm +++ b/code/modules/spells/targeted/targeted.dm @@ -1,145 +1,145 @@ -/* -Targeted spells (with the exception of dumbfire) select from all the mobs in the defined range -Targeted spells have two useful flags: INCLUDEUSER and SELECTABLE. These are explained in setup.dm -*/ - - -/spell/targeted //can mean aoe for mobs (limited/unlimited number) or one target mob - var/max_targets = 1 //leave 0 for unlimited targets in range, more for limited number of casts (can all target one guy, depends on target_ignore_prev) in range - var/target_ignore_prev = 1 //only important if max_targets > 1, affects if the spell can be cast multiple times at one person from one cast - - - var/amt_weakened = 0 - var/amt_paralysis = 0 - var/amt_stunned = 0 - - var/amt_dizziness = 0 - var/amt_confused = 0 - var/amt_stuttering = 0 - - //set to negatives for healing - var/amt_dam_fire = 0 - var/amt_dam_brute = 0 - var/amt_dam_oxy = 0 - var/amt_dam_tox = 0 - - var/amt_eye_blind = 0 - var/amt_eye_blurry = 0 - - var/list/compatible_mobs = list() - - -/spell/targeted/choose_targets(mob/user = usr) - var/list/targets = list() - - if(max_targets == 0) //unlimited - if(range == -2) - targets = living_mob_list - else - for(var/mob/living/target in view_or_range(range, user, selection_type)) - targets += target - - else if(max_targets == 1) //single target can be picked - if((range == 0 || range == -1) && spell_flags & INCLUDEUSER) - targets += user - else - var/list/possible_targets = list() - var/list/starting_targets - if(range == -2) - starting_targets = living_mob_list - else - starting_targets = view_or_range(range, user, selection_type) - - for(var/mob/living/M in starting_targets) - if(!(spell_flags & INCLUDEUSER) && M == user) - continue - if(compatible_mobs && compatible_mobs.len) - if(!is_type_in_list(M, compatible_mobs)) continue - if(compatible_mobs && compatible_mobs.len && !is_type_in_list(M, compatible_mobs)) - continue - possible_targets += M - - if(possible_targets.len) - if(spell_flags & SELECTABLE) //if we are allowed to choose. see setup.dm for details - var/mob/temp_target = input(user, "Choose the target for the spell.", "Targeting") as null|mob in possible_targets - if(temp_target) - targets += temp_target - else - targets += pick(possible_targets) - //Adds a safety check post-input to make sure those targets are actually in range. - - - else - var/list/possible_targets = list() - var/list/starting_targets - - if(range == -2) - starting_targets = living_mob_list - else - starting_targets = view_or_range(range, user, selection_type) - - for(var/mob/living/target in starting_targets) - if(!(spell_flags & INCLUDEUSER) && target == user) - continue - if(compatible_mobs && !is_type_in_list(target, compatible_mobs)) - continue - possible_targets += target - - if(spell_flags & SELECTABLE) - for(var/i = 1; i<=max_targets, i++) - if(!possible_targets.len) - break - var/mob/M = input(user, "Choose the target for the spell.", "Targeting") as null|mob in possible_targets - if(!M) - break - if(range != -2) - if(!(M in view_or_range(range, user, selection_type))) - continue - targets += M - possible_targets -= M - else - for(var/i=1,i<=max_targets,i++) - if(!possible_targets.len) - break - if(target_ignore_prev) - var/target = pick(possible_targets) - possible_targets -= target - targets += target - else - targets += pick(possible_targets) - - if(!(spell_flags & INCLUDEUSER) && (user in targets)) - targets -= user - - if(compatible_mobs && compatible_mobs.len) - for(var/mob/living/target in targets) //filters out all the non-compatible mobs - if(!is_type_in_list(target, compatible_mobs)) - targets -= target - - return targets - -/spell/targeted/cast(var/list/targets, mob/user) - for(var/mob/living/target in targets) - if(range >= 0) - if(!(target in view_or_range(range, user, selection_type))) //filter at time of casting - targets -= target - continue - apply_spell_damage(target) - -/spell/targeted/proc/apply_spell_damage(mob/living/target) - target.adjustBruteLoss(amt_dam_brute) - target.adjustFireLoss(amt_dam_fire) - target.adjustToxLoss(amt_dam_tox) - target.adjustOxyLoss(amt_dam_oxy) - //disabling - target.Weaken(amt_weakened) - target.Paralyse(amt_paralysis) - target.Stun(amt_stunned) - if(amt_weakened || amt_paralysis || amt_stunned) - if(target.buckled) - target.buckled = null - target.eye_blind += amt_eye_blind - target.eye_blurry += amt_eye_blurry - target.dizziness += amt_dizziness - target.confused += amt_confused +/* +Targeted spells (with the exception of dumbfire) select from all the mobs in the defined range +Targeted spells have two useful flags: INCLUDEUSER and SELECTABLE. These are explained in setup.dm +*/ + + +/spell/targeted //can mean aoe for mobs (limited/unlimited number) or one target mob + var/max_targets = 1 //leave 0 for unlimited targets in range, more for limited number of casts (can all target one guy, depends on target_ignore_prev) in range + var/target_ignore_prev = 1 //only important if max_targets > 1, affects if the spell can be cast multiple times at one person from one cast + + + var/amt_weakened = 0 + var/amt_paralysis = 0 + var/amt_stunned = 0 + + var/amt_dizziness = 0 + var/amt_confused = 0 + var/amt_stuttering = 0 + + //set to negatives for healing + var/amt_dam_fire = 0 + var/amt_dam_brute = 0 + var/amt_dam_oxy = 0 + var/amt_dam_tox = 0 + + var/amt_eye_blind = 0 + var/amt_eye_blurry = 0 + + var/list/compatible_mobs = list() + + +/spell/targeted/choose_targets(mob/user = usr) + var/list/targets = list() + + if(max_targets == 0) //unlimited + if(range == -2) + targets = living_mob_list + else + for(var/mob/living/target in view_or_range(range, holder, selection_type)) + targets += target + + else if(max_targets == 1) //single target can be picked + if((range == 0 || range == -1) && spell_flags & INCLUDEUSER) + targets += user + else + var/list/possible_targets = list() + var/list/starting_targets + if(range == -2) + starting_targets = living_mob_list + else + starting_targets = view_or_range(range, holder, selection_type) + + for(var/mob/living/M in starting_targets) + if(!(spell_flags & INCLUDEUSER) && M == user) + continue + if(compatible_mobs && compatible_mobs.len) + if(!is_type_in_list(M, compatible_mobs)) continue + if(compatible_mobs && compatible_mobs.len && !is_type_in_list(M, compatible_mobs)) + continue + possible_targets += M + + if(possible_targets.len) + if(spell_flags & SELECTABLE) //if we are allowed to choose. see setup.dm for details + var/mob/temp_target = input(user, "Choose the target for the spell.", "Targeting") as null|mob in possible_targets + if(temp_target) + targets += temp_target + else + targets += pick(possible_targets) + //Adds a safety check post-input to make sure those targets are actually in range. + + + else + var/list/possible_targets = list() + var/list/starting_targets + + if(range == -2) + starting_targets = living_mob_list + else + starting_targets = view_or_range(range, holder, selection_type) + + for(var/mob/living/target in starting_targets) + if(!(spell_flags & INCLUDEUSER) && target == user) + continue + if(compatible_mobs && !is_type_in_list(target, compatible_mobs)) + continue + possible_targets += target + + if(spell_flags & SELECTABLE) + for(var/i = 1; i<=max_targets, i++) + if(!possible_targets.len) + break + var/mob/M = input(user, "Choose the target for the spell.", "Targeting") as null|mob in possible_targets + if(!M) + break + if(range != -2) + if(!(M in view_or_range(range, holder, selection_type))) + continue + targets += M + possible_targets -= M + else + for(var/i=1,i<=max_targets,i++) + if(!possible_targets.len) + break + if(target_ignore_prev) + var/target = pick(possible_targets) + possible_targets -= target + targets += target + else + targets += pick(possible_targets) + + if(!(spell_flags & INCLUDEUSER) && (user in targets)) + targets -= user + + if(compatible_mobs && compatible_mobs.len) + for(var/mob/living/target in targets) //filters out all the non-compatible mobs + if(!is_type_in_list(target, compatible_mobs)) + targets -= target + + return targets + +/spell/targeted/cast(var/list/targets, mob/user) + for(var/mob/living/target in targets) + if(range >= 0) + if(!(target in view_or_range(range, holder, selection_type))) //filter at time of casting + targets -= target + continue + apply_spell_damage(target) + +/spell/targeted/proc/apply_spell_damage(mob/living/target) + target.adjustBruteLoss(amt_dam_brute) + target.adjustFireLoss(amt_dam_fire) + target.adjustToxLoss(amt_dam_tox) + target.adjustOxyLoss(amt_dam_oxy) + //disabling + target.Weaken(amt_weakened) + target.Paralyse(amt_paralysis) + target.Stun(amt_stunned) + if(amt_weakened || amt_paralysis || amt_stunned) + if(target.buckled) + target.buckled = null + target.eye_blind += amt_eye_blind + target.eye_blurry += amt_eye_blurry + target.dizziness += amt_dizziness + target.confused += amt_confused target.stuttering += amt_stuttering \ No newline at end of file diff --git a/code/modules/tables/debug.dm b/code/modules/tables/debug.dm new file mode 100644 index 00000000000..d1b7a968a93 --- /dev/null +++ b/code/modules/tables/debug.dm @@ -0,0 +1,22 @@ + +// Mostly for debugging table connections +// This file is not #included in the .dme. + +/obj/structure/table/debug + New() + material = get_material_by_name("debugium") + ..() + +/material/debug + name = "debugium" + stack_type = /obj/item/stack/material/debug + icon_base = "debug" + icon_reinf = "rdebug" + icon_colour = "#FFFFFF" + +/obj/item/stack/material/debug + name = "debugium" + icon = 'icons/obj/tables.dmi' + icon_state = "debugium" + default_type = "debugium" + diff --git a/code/modules/tables/tables.dm b/code/modules/tables/tables.dm index a496e32c81f..7ff4f8fe201 100644 --- a/code/modules/tables/tables.dm +++ b/code/modules/tables/tables.dm @@ -296,29 +296,33 @@ icon_state = "blank" overlays.Cut() + var/image/I + // Base frame shape. Mostly done for glass/diamond tables, where this is visible. - for(var/n in connections) - overlays += n + for(var/i = 1 to 4) + I = image(icon, dir = 1<<(i-1), icon_state = connections[i]) + overlays += I // Standard table image if(material) - for(var/n in connections) - var/image/I = image(icon, "[material.icon_base]_[n]") + for(var/i = 1 to 4) + I = image(icon, "[material.icon_base]_[connections[i]]", dir = 1<<(i-1)) I.color = material.icon_colour I.alpha = 255 * material.opacity overlays += I // Reinforcements if(reinforced) - for(var/n in connections) - var/image/I = image(icon, "[reinforced.icon_reinf]_[n]") + for(var/i = 1 to 4) + I = image(icon, "[reinforced.icon_reinf]_[connections[i]]", dir = 1<<(i-1)) I.color = reinforced.icon_colour I.alpha = 255 * reinforced.opacity overlays += I if(carpeted) - for(var/n in connections) - overlays += "carpet_[n]" + for(var/i = 1 to 4) + I = image(icon, "carpet_[connections[i]]", dir = 1<<(i-1)) + overlays += I else overlays.Cut() var/type = 0 @@ -353,13 +357,12 @@ overlays += I if(carpeted) - for(var/n in connections) - overlays += "carpet_flip[type]" + overlays += "carpet_flip[type]" // set propagate if you're updating a table that should update tables around it too, for example if it's a new table or something important has changed (like material). /obj/structure/table/proc/update_connections(propagate=0) if(!material) - connections = list("nw0", "ne0", "sw0", "se0") + connections = list("0", "0", "0", "0") if(propagate) for(var/obj/structure/table/T in oview(src, 1)) @@ -369,7 +372,7 @@ var/list/blocked_dirs = list() for(var/obj/structure/window/W in get_turf(src)) if(W.is_fulltile()) - connections = list("nw0", "ne0", "sw0", "se0") + connections = list("0", "0", "0", "0") return blocked_dirs |= W.dir @@ -412,40 +415,27 @@ connections = dirs_to_corner_states(connection_dirs) #define CORNER_NONE 0 -#define CORNER_EASTWEST 1 +#define CORNER_CLOCKWISE 1 #define CORNER_DIAGONAL 2 -#define CORNER_NORTHSOUTH 4 +#define CORNER_COUNTERCLOCKWISE 4 /proc/dirs_to_corner_states(list/dirs) if(!istype(dirs)) return - var/NE = CORNER_NONE - var/NW = CORNER_NONE - var/SE = CORNER_NONE - var/SW = CORNER_NONE + var/list/ret = list(NORTHWEST, SOUTHEAST, NORTHEAST, SOUTHWEST) - if(NORTH in dirs) - NE |= CORNER_NORTHSOUTH - NW |= CORNER_NORTHSOUTH - if(SOUTH in dirs) - SW |= CORNER_NORTHSOUTH - SE |= CORNER_NORTHSOUTH - if(EAST in dirs) - SE |= CORNER_EASTWEST - NE |= CORNER_EASTWEST - if(WEST in dirs) - NW |= CORNER_EASTWEST - SW |= CORNER_EASTWEST - if(NORTHWEST in dirs) - NW |= CORNER_DIAGONAL - if(NORTHEAST in dirs) - NE |= CORNER_DIAGONAL - if(SOUTHEAST in dirs) - SE |= CORNER_DIAGONAL - if(SOUTHWEST in dirs) - SW |= CORNER_DIAGONAL + for(var/i = 1 to ret.len) + var/dir = ret[i] + . = CORNER_NONE + if(dir in dirs) + . |= CORNER_DIAGONAL + if(turn(dir,45) in dirs) + . |= CORNER_CLOCKWISE + if(turn(dir,-45) in dirs) + . |= CORNER_COUNTERCLOCKWISE + ret[i] = "[.]" - return list("ne[NE]", "se[SE]", "sw[SW]", "nw[NW]") + return ret #undef CORNER_NONE #undef CORNER_EASTWEST diff --git a/code/modules/virus2/antibodies.dm b/code/modules/virus2/antibodies.dm index a340aae4ddd..85df77447a9 100644 --- a/code/modules/virus2/antibodies.dm +++ b/code/modules/virus2/antibodies.dm @@ -1,44 +1,5 @@ //This file was auto-corrected by findeclaration.exe on 25.5.2012 20:42:33 -/* -// reserving some numbers for later special antigens -var/global/const/ANTIGEN_A = 1 -var/global/const/ANTIGEN_B = 2 -var/global/const/ANTIGEN_C = 4 -var/global/const/ANTIGEN_D = 8 -var/global/const/ANTIGEN_E = 16 -var/global/const/ANTIGEN_M = 32 -var/global/const/ANTIGEN_N = 64 -var/global/const/ANTIGEN_O = 128 -var/global/const/ANTIGEN_P = 256 -var/global/const/ANTIGEN_Q = 512 -var/global/const/ANTIGEN_U = 1024 -var/global/const/ANTIGEN_V = 2048 -var/global/const/ANTIGEN_W = 4096 -var/global/const/ANTIGEN_X = 8192 -var/global/const/ANTIGEN_Y = 16384 -var/global/const/ANTIGEN_Z = 32768 - -var/global/list/ANTIGENS = list( -"[ANTIGEN_A]" = "A", -"[ANTIGEN_B]" = "B", -"[ANTIGEN_C]" = "C", -"[ANTIGEN_E]" = "E", -"[ANTIGEN_D]" = "D", -"[ANTIGEN_M]" = "M", -"[ANTIGEN_N]" = "N", -"[ANTIGEN_O]" = "O", -"[ANTIGEN_P]" = "P", -"[ANTIGEN_Q]" = "Q", -"[ANTIGEN_U]" = "U", -"[ANTIGEN_V]" = "V", -"[ANTIGEN_W]" = "W", -"[ANTIGEN_X]" = "X", -"[ANTIGEN_Y]" = "Y", -"[ANTIGEN_Z]" = "Z" -) -*/ - var/global/list/ALL_ANTIGENS = list( "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z" ) @@ -47,23 +8,6 @@ var/global/list/ALL_ANTIGENS = list( ALL_ANTIGENS = shuffle(ALL_ANTIGENS) return 1 -// pure concentrated antibodies -datum/reagent/antibodies - data = list("antibodies"=list()) - name = "Antibodies" - id = "antibodies" - reagent_state = LIQUID - color = "#0050F0" - - reaction_mob(var/mob/M, var/method=CHEM_TOUCH, var/volume) - if(istype(M,/mob/living/carbon)) - var/mob/living/carbon/C = M - if(src.data && method == CHEM_INGEST) - //if(C.virus2) if(src.data["antibodies"] & C.virus2.antigen) - // C.virus2.dead = 1 - C.antibodies |= src.data["antibodies"] - return - // iterate over the list of antigens and see what matches /proc/antigens2string(list/antigens, none="None") if(!istype(antigens)) diff --git a/code/modules/virus2/disease2.dm b/code/modules/virus2/disease2.dm index 0aa60d02e51..1edfec1280a 100644 --- a/code/modules/virus2/disease2.dm +++ b/code/modules/virus2/disease2.dm @@ -50,9 +50,12 @@ if(meat.len) var/num = rand(1,meat.len) for(var/i=0,i + --> diff --git a/html/changelog.html b/html/changelog.html index 7e11154c81e..5785c14fd92 100644 --- a/html/changelog.html +++ b/html/changelog.html @@ -25,7 +25,7 @@
Space Station 13
-

+

Code licensed under AGPLv3. Content licensed under CC BY-SA 3.0.

Visit our IRC channel: #bs12 on irc.sorcery.net
Space Station 13
-

+

Code licensed under AGPLv3. Content licensed under CC BY-SA 3.0.

Visit our IRC channel: #bs12 on irc.sorcery.net