From adda1d9448be7c3f00e35fd625a96e8a4fb7c5a4 Mon Sep 17 00:00:00 2001 From: PsiOmegaDelta Date: Tue, 11 Aug 2015 14:00:13 +0200 Subject: [PATCH 01/34] Fixes #9158. Neither the value True nor False are null. Removes breaking null check --- code/modules/paperwork/photography.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/paperwork/photography.dm b/code/modules/paperwork/photography.dm index 1b6756334ca..c91e086523a 100644 --- a/code/modules/paperwork/photography.dm +++ b/code/modules/paperwork/photography.dm @@ -253,7 +253,7 @@ 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 From edce8f73a4ac11814f74aec7824e6b4122e277cc Mon Sep 17 00:00:00 2001 From: PsiOmegaDelta Date: Tue, 11 Aug 2015 14:26:32 +0200 Subject: [PATCH 02/34] Removes faulty attempt of garbage collecting. --- code/modules/paperwork/photography.dm | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/code/modules/paperwork/photography.dm b/code/modules/paperwork/photography.dm index c91e086523a..874143eeb7b 100644 --- a/code/modules/paperwork/photography.dm +++ b/code/modules/paperwork/photography.dm @@ -255,8 +255,7 @@ var/global/photo_count = 0 viewer = user.client.eye var/can_see = (dummy in viewers(world.view, viewer)) - dummy.loc = null - dummy = null //Alas, nameless creature //garbage collect it instead + del(dummy) return can_see /obj/item/device/camera/proc/captureimage(atom/target, mob/user, flag) From 862fad60c2c37ef13cfc99e57a583a376bc9da32 Mon Sep 17 00:00:00 2001 From: PsiOmega Date: Tue, 11 Aug 2015 19:36:02 +0200 Subject: [PATCH 03/34] Fixes #10488. A simple matter if incorrect type definition. --- code/datums/ai_laws.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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) From 59f855b52d291dcce09068e90002b9fbc2379a10 Mon Sep 17 00:00:00 2001 From: PsiOmega Date: Tue, 11 Aug 2015 19:55:25 +0200 Subject: [PATCH 04/34] Updates the changelog. --- html/changelog.html | 9 ++++++++- html/changelogs/.all_changelog.yml | 6 ++++++ html/changelogs/PsiOmegaDelta-CrewEfficiency.yml | 4 ---- 3 files changed, 14 insertions(+), 5 deletions(-) delete mode 100644 html/changelogs/PsiOmegaDelta-CrewEfficiency.yml diff --git a/html/changelog.html b/html/changelog.html index 0f347f664fe..8669a8d5f39 100644 --- a/html/changelog.html +++ b/html/changelog.html @@ -25,7 +25,7 @@
Space Station 13
-

Wiki | Source code

+

Wiki | Source code

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

Visit our IRC channel: #bs12 on irc.sorcery.net @@ -56,6 +56,13 @@ -->
+

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 08d266b8708..c045fb359b7 100644 --- a/html/changelogs/.all_changelog.yml +++ b/html/changelogs/.all_changelog.yml @@ -1990,3 +1990,9 @@ 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. diff --git a/html/changelogs/PsiOmegaDelta-CrewEfficiency.yml b/html/changelogs/PsiOmegaDelta-CrewEfficiency.yml deleted file mode 100644 index ec0daddaa26..00000000000 --- a/html/changelogs/PsiOmegaDelta-CrewEfficiency.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: PsiOmegaDelta -delete-after: True -changes: - - 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." From e4f6436a852b582fa4c5116e07edfa2d8d26b102 Mon Sep 17 00:00:00 2001 From: PsiOmega Date: Tue, 11 Aug 2015 20:53:04 +0200 Subject: [PATCH 05/34] Fixes #10494. Borgs have their very own custom little headset, so cute. --- code/game/objects/items/devices/radio/radio.dm | 1 - code/modules/mob/living/silicon/robot/robot.dm | 4 ++-- code/modules/mob/living/silicon/robot/robot_modules.dm | 4 +++- 3 files changed, 5 insertions(+), 4 deletions(-) diff --git a/code/game/objects/items/devices/radio/radio.dm b/code/game/objects/items/devices/radio/radio.dm index 7acedbfde97..f40826c5e23 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/modules/mob/living/silicon/robot/robot.dm b/code/modules/mob/living/silicon/robot/robot.dm index 549e14a5f6e..61d194b854b 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) diff --git a/code/modules/mob/living/silicon/robot/robot_modules.dm b/code/modules/mob/living/silicon/robot/robot_modules.dm index 4d7179bbfce..819fbf4561e 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) From 728105b49b72d5b5fe2dfa995f6a74c97e245f7f Mon Sep 17 00:00:00 2001 From: PsiOmega Date: Tue, 11 Aug 2015 21:36:34 +0200 Subject: [PATCH 06/34] Fixes #10496. Apparently stacking tables causes one of them to self-terminate into sheets. Removes the stacked tables in the engineering docking area. --- maps/exodus-1.dmm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/maps/exodus-1.dmm b/maps/exodus-1.dmm index 9425cf83ba7..60952707c3c 100644 --- a/maps/exodus-1.dmm +++ b/maps/exodus-1.dmm @@ -6835,7 +6835,7 @@ "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/table/steel,/turf/simulated/floor/plating,/area/maintenance/engi_shuttle) "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) From 242c9444ef831f2989ac2b2ab64f3a3867920796 Mon Sep 17 00:00:00 2001 From: PsiOmega Date: Tue, 11 Aug 2015 21:47:07 +0200 Subject: [PATCH 07/34] Forces hardware acceleration. Most likely also fixes the hickup where BYOND still rending lights are blobs of light despite having hardware acceleration enabled. Ports https://github.com/ParadiseSS13/Paradise/pull/1690. Fixes #10147 as much as it can be fixed I believe. --- code/modules/client/client procs.dm | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/code/modules/client/client procs.dm b/code/modules/client/client procs.dm index f4ca881e1dc..f9c67496a80 100644 --- a/code/modules/client/client procs.dm +++ b/code/modules/client/client procs.dm @@ -156,6 +156,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() From 41965d93efab46e1a9f8e87dc1a48bdffa93a58f Mon Sep 17 00:00:00 2001 From: GinjaNinja32 Date: Wed, 12 Aug 2015 01:00:43 +0100 Subject: [PATCH 08/34] Mirrors no longer check the user's gender when finding the list of valid hairstyles --- code/modules/mob/living/carbon/human/appearance.dm | 8 ++++---- code/modules/nano/modules/human_appearance.dm | 4 ++-- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/code/modules/mob/living/carbon/human/appearance.dm b/code/modules/mob/living/carbon/human/appearance.dm index 08998b225c0..41c37970066 100644 --- a/code/modules/mob/living/carbon/human/appearance.dm +++ b/code/modules/mob/living/carbon/human/appearance.dm @@ -152,14 +152,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 @@ -186,4 +186,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/nano/modules/human_appearance.dm b/code/modules/nano/modules/human_appearance.dm index 1b30d95db01..069a2195465 100644 --- a/code/modules/nano/modules/human_appearance.dm +++ b/code/modules/nano/modules/human_appearance.dm @@ -157,5 +157,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() From 54930b69b40a6aa9d3c8d3bf36923786602ee27a Mon Sep 17 00:00:00 2001 From: GinjaNinja32 Date: Wed, 12 Aug 2015 04:41:59 +0100 Subject: [PATCH 09/34] Malfunction --- code/game/antagonist/station/rogue_ai.dm | 31 +++++++++++++++++++++--- code/game/gamemodes/game_mode.dm | 4 +-- 2 files changed, 29 insertions(+), 6 deletions(-) diff --git a/code/game/antagonist/station/rogue_ai.dm b/code/game/antagonist/station/rogue_ai.dm index 2a4fe862de4..136a43ccebd 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() @@ -73,4 +74,26 @@ var/datum/antagonist/rogue_ai/malf malf << "You are malfunctioning - you do not have to follow any laws!" 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!" \ No newline at end of file + 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/gamemodes/game_mode.dm b/code/game/gamemodes/game_mode.dm index 4a89de7ea6f..3519d51f7f2 100644 --- a/code/game/gamemodes/game_mode.dm +++ b/code/game/gamemodes/game_mode.dm @@ -246,7 +246,7 @@ var/global/list/additional_antag_types = list() return 1 var/datum/antagonist/main_antags = antag_templates[1] - if(main_antags.candidates.len >= required_enemies) + if(main_antags.pending_antagonists.len >= required_enemies) return 1 return 0 @@ -263,7 +263,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 From 5a1c80d8437f3b7a61c7fed76443c269f2f8bc02 Mon Sep 17 00:00:00 2001 From: GinjaNinja32 Date: Wed, 12 Aug 2015 05:06:18 +0100 Subject: [PATCH 10/34] Fix for non-ANTAG_OVERRIDE_JOB antags breaking with malf fix --- code/game/gamemodes/game_mode.dm | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/code/game/gamemodes/game_mode.dm b/code/game/gamemodes/game_mode.dm index 3519d51f7f2..4c715ed1af3 100644 --- a/code/game/gamemodes/game_mode.dm +++ b/code/game/gamemodes/game_mode.dm @@ -246,7 +246,13 @@ var/global/list/additional_antag_types = list() return 1 var/datum/antagonist/main_antags = antag_templates[1] - if(main_antags.pending_antagonists.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 From 4518c976d87dda764c7d5ad2a318e9b9ede64dca Mon Sep 17 00:00:00 2001 From: mwerezak Date: Wed, 12 Aug 2015 00:36:32 -0400 Subject: [PATCH 11/34] Fixes engineering outpost shuttle dock Fixes mismatched tags on the sensor and pumps and incorrect frequencies on the access buttons. Fixes #10506. Also includes some cosmetic mapping changes to the engineering outpost, tones down the number of r-walls a bit. --- maps/exodus-5.dmm | 45 ++++++++++++++++++++++----------------------- 1 file changed, 22 insertions(+), 23 deletions(-) diff --git a/maps/exodus-5.dmm b/maps/exodus-5.dmm index 7dbbc20f53c..bd62800abd4 100644 --- a/maps/exodus-5.dmm +++ b/maps/exodus-5.dmm @@ -752,6 +752,7 @@ "ox" = (/obj/machinery/conveyor{dir = 2; id = "anotempload"},/turf/simulated/floor/airless{icon_state = "asteroidwarning"; dir = 8},/area/mine/explored) "oy" = (/obj/machinery/conveyor{dir = 1; id = "anosample"},/turf/simulated/floor/airless{icon_state = "asteroidwarning"; dir = 4},/area/mine/explored) "oz" = (/obj/machinery/atmospherics/pipe/manifold/visible/yellow,/turf/simulated/floor{dir = 2; icon_state = "warning"},/area/outpost/research/isolation_c) +"oA" = (/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) "oB" = (/obj/machinery/door/airlock/external{name = "Mining Bridge"; req_one_access = list(54,65)},/turf/simulated/floor/airless{dir = 5; icon_state = "asteroidfloor"},/area/mine/explored) "oC" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/structure/grille,/obj/machinery/door/firedoor/border_only{dir = 2},/obj/machinery/camera/network/research_outpost{c_tag = "Research Outpost Expedition Airlock"; dir = 4},/turf/simulated/floor/plating,/area/outpost/research/eva) "oD" = (/obj/machinery/door/firedoor/border_only{dir = 2},/obj/machinery/door/airlock/external{frequency = 1379; icon_state = "door_locked"; id_tag = "research_outer"; locked = 1; name = "Research Outpost External Access"; req_access = list(10,13)},/turf/simulated/floor/plating,/area/outpost/research/eva) @@ -887,7 +888,7 @@ "rd" = (/obj/structure/lattice,/obj/structure/window/reinforced{dir = 1},/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/space,/area/mine/explored) "re" = (/obj/structure/lattice,/obj/structure/window/reinforced{dir = 1},/turf/space,/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/cable/yellow{d2 = 2; icon_state = "0-2"},/obj/machinery/power/port_gen/pacman{anchored = 1},/turf/simulated/floor,/area/outpost/engineering/hallway) "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) @@ -951,8 +952,8 @@ "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 = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/grille,/obj/machinery/door/firedoor/border_only{dir = 4; name = "Firelock"},/turf/simulated/floor/plating,/area/outpost/engineering/power) "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/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) +"st" = (/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) "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) @@ -1131,7 +1132,7 @@ "vN" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/door/firedoor/border_only{dir = 4; name = "Firelock"},/turf/simulated/floor,/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/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) "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) @@ -1158,7 +1159,7 @@ "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/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{dir = 4; name = "Firelock"},/turf/simulated/floor/plating,/area/outpost/engineering/hallway) -"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) +"wr" = (/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) "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,7 +1170,7 @@ "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/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/grille,/obj/machinery/door/firedoor/border_only{dir = 4; name = "Firelock"},/turf/simulated/floor/plating,/area/outpost/engineering/hallway) -"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) +"wC" = (/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) "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) @@ -1179,9 +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) "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/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/space,/area/space) "wP" = (/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) "wQ" = (/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 9; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 9},/turf/simulated/floor/plating/airless{icon_state = "asteroidplating"},/area/mine/explored) "wR" = (/obj/machinery/atmospherics/pipe/simple/visible/cyan{tag = "icon-intact (NORTHWEST)"; icon_state = "intact"; dir = 9},/turf/simulated/floor,/area/outpost/engineering/atmospherics) @@ -1742,28 +1741,28 @@ aaaaaaaaaaaaaaaaaaaaaaaaqLqLqLqLqLababababqLqLqLqLqLqLqLqLabababababqLqLqLqLabab aaaaaaaaaaaaaaaaaaaaaaaaqLqLqLqLabababababqLqLqLqLqLqLqLqLababababababqLqLqLababababababqLqLqLqLqLqLqLqLabababqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLabababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagygygygygyqcgygygybdababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLabababababqLqLqLqLqLqLqLabababqLqLqLqLqLqLqLqLabababqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLabababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagygygygygyqcgygygybdababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLabababqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLabababqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLabababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagygygygygyqcgygygybdababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLabababqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLababqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLabababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaeLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagygygygygygyqcgygygybdbdababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqJqJqJqJqJqJqJqJqJqJqJqJqJqJaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLabababqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLababqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLabababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaeLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagygygygygygyqcgygygybdbdababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaqLaaaaaaaaaaaaaaaaaaaaaaaaaaqJqJqJqJqJqJqJqJqJqJqJqJqJqJaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLabqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLabqLqLabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagygygygygygygyqcgygygygybdbdbdbdbdababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaeaeaaaaaaaaaaaaaaaaaeaaaaaaaeaaaaaaaeaaaaqJaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLababqLqLqLqLqLqLqLqLqLqLqLqLqLabababqLqLabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagygygygygygygyqcgygygygygygygygybdbdabababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaqOqKqQaaqOqKqQaaqOqKqQaaqJaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLabababqLqLqLqLqLqLqLqLabababababqLqLqLqLqLqLqLqLqLqLqLabababababqLababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagygygygygygygyqcgyrJrigygygygygygybdababababababababababababababababababababababababababababababababababababababababababaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeqOqRqQaeqOqRqQaeqOqRqQaeqJaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLababababqLqLqLqLqLqLqLabababababqLqLqLqLqLqLqLqLqLqLqLabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagygygygygygyqmqlqSqTqlqlqlqGgygybdbdbdababababababababababababababababababababababababababababababababqUqUqUqUqUqUqUabaaaaaaaaaeaaaaaaaaaaaeaaaaaeaeaaaaaaqOqRqQaaqOqRqQaaqOqRqQaaqJaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLabababqLqLqLqLqLqLabababababqLqLqLqLqLqLababababababqLqLqLqLqLqLqLqLqLqLqLabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaagygygygygygygygypBpCgygygyqcgygygygybdababababababababababababababababababababababababababababababababqUqVqXqWqZqYqUababaaaaaaaeaaaaaaaeaaaeaaaeaeaeaeaaaaqOqRqQaaqOqRqQaaqOqRqQaaqJaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLabababababqLqLqLqLqLabababqLqLqLqLqLqLqLqLqLabababababqLqLqLqLqLqLqLqLqLqLqLabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaabdbdgysLgygygygygygygygyqmqlqGgygybdbdabababababababababababababababababababababababababababababababqUqVrbraqUqUqUababaaaaaaaeaeaeaeaeaeaeaeaeaaaaaeaeaaqOqRqQaeqOqRqQaeqOqRqQaeqJaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLababababqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLabababababqLqLqLqLqLqLqLqLqLababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaabbdbdmRbdbdbdbdbdbdgygygygyqcgygygybdbdbdabababababababababababababababababababababababababababababqUqVrfrcqZrgqUabababaaaaaeaaaeaaaaaaaeaaaaaaaaaeaaaaqOqRqQaaqOqRqQaaqOqRqQaaqJaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaqLqLqLqLqLqLqLabababqLqLqLqLqLqLqLababababababqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLababababababqLqLqLqLqLqLqLqLqLababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaababababababababbdbdgygygyqcgygygygygybdbdababababababababababababababababababababababababrhrhrhrhrhrjrkrjrjrjqUqUqUabbdaaaeaaaeaeaaaaaeaaaaaaaaaaaaaaqOqRqQaaqOqRqQaaqOqRqQaaqJaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaqLqLqLqLqLqLababababqLqLqLqLqLqLababababqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLababababqLqLqLqLqLqLqLqLqLabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababbdbdbdaeaeaeaeaeaeaeaeaeaeaebdbdbdbdabababababbdbdgygyqmqlqlqGgygygybdbdababababababbdbdbdababababababababababababababrhrlrnrmrprorrrqrtrsruruqUbdbdrvaeaaaeaaaaaaaeaeaeaeaeaeaeaeqOqRqQaeqOqRqQaeqOqRqQaeqJaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaqLqLqLqLqLqLababababqLqLqLqLqLababababqLqLqLqLqLqLqLqLqLqLqLqLqLabababqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababbdbdbdbdsHsHsHsHsHsHsHsHsHsHsHsHsHsHbdbdbdbdababababbdgygygygygyqcgygygygybdbdabababbdbdbdgybdababababababababababababababrhrwrzrxrErArGrFrKrIrFrLrNrMrMdhaeaaaaaaaaaaaeaaaaaeaaaaaaaaqOqRqQaaqOqRqQaaqOqRqQaaaeaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaqLqLqLqLqLqLabababqLqLqLqLqLabababababqLqLqLqLqLqLqLqLqLqLqLqLqLababababqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababbdaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaebdbdabababababbdbdgygygygyqmqlqlqGgygybdabbdbdbdgygygybdababababababababababababababrhrOrQrPrSrRrGrTrVrUrXrWqUrYrYrYrYrYsarZrZsbscsasbscaaaaaaaaqOqRqQaaqOqRqQaaqOqRqQaaqJqJqJaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaqLqLqLqLqLqLabababqLqLqLqLqLababababqLqLqLqLqLqLqLqLqLqLqLqLqLqLabababababqLqLqLqLqLabqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababbdbdbdbdgysMgygyqcgygybdbdbdgygygygygypzpzpzpzabababababababsdsdsdsdrhserQsfshsgsirFsksjrXsmrjsnspsosrsqstsssvsusxswsysarZsbaaaaaeszaeaaaeszaeaaaeszaeaaaeaaqJaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLababababqLqLqLqLqLqLqLabababababqLqLqLqLqLqLqLqLqLqLqLabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagygygygygygyqmqlqSqTqlqlqlqGgygybdbdbdababababababababababababababababababababababababababababababababrjrjrjrjrjrjababaaaaaaaaaeaaaaaaaaaaaeaaaaaeaeaaaaaaqOqRqQaaqOqRqQaaqOqRqQaaqJaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLabababqLqLqLqLqLqLabababababqLqLqLqLqLqLababababababqLqLqLqLqLqLqLqLqLqLqLabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaagygygygygygygygypBpCgygygyqcgygygygybdababababababababababababababababababababababababababababababababrjqVqXqWoArjabababaaaaaaaeaaaaaaaeaaaeaaaeaeaeaeaaaaqOqRqQaaqOqRqQaaqOqRqQaaqJaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLabababababqLqLqLqLqLabababqLqLqLqLqLqLqLqLqLabababababqLqLqLqLqLqLqLqLqLqLqLabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaabdbdgysLgygygygygygygygyqmqlqGgygybdbdabababababababababababababababababababababababababababababababrjqVrbrarjrjrjababaaaaaaaeaeaeaeaeaeaeaeaeaaaaaeaeaaqOqRqQaeqOqRqQaeqOqRqQaeqJaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLababababqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLabababababqLqLqLqLqLqLqLqLqLababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaabbdbdmRbdbdbdbdbdbdgygygygyqcgygygybdbdbdabababababababababababababababababababababababababababababrjqVrfrcqZqYrjabababaaaaaeaaaeaaaaaaaeaaaaaaaaaeaaaaqOqRqQaaqOqRqQaaqOqRqQaaqJaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaqLqLqLqLqLqLqLabababqLqLqLqLqLqLqLababababababqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLababababababqLqLqLqLqLqLqLqLqLababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaababababababababbdbdgygygyqcgygygygygybdbdababababababababababababababababababababababababrErErErErErjrkrjrjrjrjrjqUabbdaaaeaaaeaeaaaaaeaaaaaaaaaaaaaaqOqRqQaaqOqRqQaaqOqRqQaaqJaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaqLqLqLqLqLqLababababqLqLqLqLqLqLababababqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLababababqLqLqLqLqLqLqLqLqLabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababbdbdbdaeaeaeaeaeaeaeaeaeaeaebdbdbdbdabababababbdbdgygyqmqlqlqGgygygybdbdababababababbdbdbdababababababababababababababrErlrnrmrprorrrqrtrsruruqUbdbdrvaeaaaeaaaaaaaeaeaeaeaeaeaeaeqOqRqQaeqOqRqQaeqOqRqQaeqJaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaqLqLqLqLqLqLababababqLqLqLqLqLababababqLqLqLqLqLqLqLqLqLqLqLqLqLabababqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababbdbdbdbdsHsHsHsHsHsHsHsHsHsHsHsHsHsHbdbdbdbdababababbdgygygygygyqcgygygygybdbdabababbdbdbdgybdababababababababababababababrErwrzrxrErArGrFrKrIrFrLrNrMrMdhaeaaaaaaaaaaaeaaaaaeaaaaaaaaqOqRqQaaqOqRqQaaqOqRqQaaaeaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaqLqLqLqLqLqLabababqLqLqLqLqLabababababqLqLqLqLqLqLqLqLqLqLqLqLqLababababqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababbdaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaebdbdabababababbdbdgygygygyqmqlqlqGgygybdabbdbdbdgygygybdababababababababababababababrErOrQrPrSrRrGrTrVrUrXrWqUrYrYrYrYrYsarZsbuquqsasbuqaaaaaaaaqOqRqQaaqOqRqQaaqOqRqQaaqJqJqJaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaqLqLqLqLqLqLabababqLqLqLqLqLababababqLqLqLqLqLqLqLqLqLqLqLqLqLqLabababababqLqLqLqLqLabqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababbdbdbdbdgysMgygyqcgygybdbdbdgygygygygypzpzpzpzabababababababsdsdsdsdrhserQsfshsgsirFsksjrXsmrjsnspsosrsqrgrgsvsusxswsysarZsbaaaaaeszaeaaaeszaeaaaeszaeaaaeaaqJaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaqLqLqLqLqLqLabababqLqLqLqLqLababababqLqLqLqLqLqLqLqLqLqLababababababababqLqLqLqLqLqLababqLqLqLqLqLqLqLqLqLqLqLqLqLqLabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaababababababababababbdbdmRgygyqcgygygygygygygygygygyAwsFsDpzabababababababsdsGsJsIrhsKrQsQtcsYrGrFtetdrFtfrjtktmtltqtntutrsvsutwtvtztytCtAtEtDsNsNsNsNsNsNsNsNsNsNtHtFtIaeqJaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaqLqLqLqLqLababababqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLababababababqLqLabqLqLqLqLqLqLabababqLqLqLqLqLqLqLqLqLqLqLqLababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaabababababababaaaaaaaaaaaaaaababababababababababababbdbdgyqmqlqGgygygygygygygygyAwAetJpzababscscscscabsdtKtMtLrhtNtPtOrEtRrGtStUtTrGtVrjtWtYtXuatZucubuguduiuhujsarZsbaaaaaeukaeaaaeukaeaaaeukaeaaaeaaqJaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaqLqLqLqLqLabababqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLabababababqLqLqLqLqLqLqLqLqLqLabababqLqLqLqLqLqLqLqLqLqLqLababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaababababababababaaaaaaaaaaaaaaabababababababababababababbdgygygyulgygygygygygygygyAwAeumscscscscuounscscscscupscscuquququqursbuqusuqursbuqutuuuquwuvuyuxuAuzuquBuCscaaaaaaaaqOuFqQaaqOuFqQaaqOuFqQaaqJqJqJaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaqLqLqLqLabababababqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLabababqLqLqLqLqLqLqLqLqLqLqLababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaabababababababaaaaaaaaaaaaaaaaabababababababababababababbdbdbdrJuGrigygygygygygygypBAzuDuIuHuKuJuMuLuOuNuQuPuSuRuUuTuWuVuXuWuWuWuZuYuWuWvbvavdvcvfvevhvgvjvivlvktrvmaaaeaaaaqOuFqQaaqOuFqQaaqOuFqQaaaeaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaqLqLqLqLqLabababababqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLabababqLqLqLqLqLqLqLqLqLqLqLqLabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaabababababababaaaaaaaaaaaaaaabababababababababababababababbdbdAwvovnvpvpvpvpvpvpvpvpvrvqvtvsvvvuvxvwvwvwvzvyvBvAvCvwvwvDvFvEvwvwvHvGvIvwvKvJvMvLvOvNvLvPsvsvvRvQvSuiaeaeaeaeqOuFqQaeqOuFqQaeqOuFqQaeqJaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaqLqLqLqLqLababqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLabababababqLqLqLqLqLqLqLqLqLqLqLabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaabababababaaaaaaaaaaaaabababababababababababababababababbdbdpBvTpCgygygygygygygyrJsCvUscscscscscscscscscvVvXvWvYvXvZuqwauqwbscscscscscscscscscscscsarZrZsbscwcwdscaaaaaeaaqOuFqQaaqOuFqQaaqOuFqQaaqJaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaqLqLqLqLqLqLqLqLqLqLqLqLqLqLabababqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLababqLqLqLqLababababababababqLqLqLqLqLqLqLqLababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababababababababababbdbdbdbdgyulgygygygygygygygyAwowowbdabababababababwfwewhwgwjwiwlwkwnwmwowfababababababababababaaaaaaaawqwpwrwqaaaaaeaaqOuFqQaaqOuFqQaaqOuFqQaaqJaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaqLqLqLqLqLqLqLqLqLqLqLqLqLqLabababqLqLqLqLqLqLqLqLqLqLqLqLabqLababababqLqLabababqLqLqLqLqLababababababababqLqLqLqLqLqLqLabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababbdbdbdbdbdbdgyulgygygygygygygygyAwwsbdbdabababababababwfwewuwtwwwvwvwvwywxwzwfababababababababababaaaaaaaawBwAwCwBaeaeaeaeqOuFqQaeqOuFqQaeqOuFqQaeqJaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaqLqLqLqLqLqLqLqLqLqLqLqLqLqLabababqLqLqLqLqLqLqLqLqLqLqLqLabababababababababababqLqLqLqLqLqLqLqLqLqLababababqLqLqLqLqLqLqLababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababbdgygygygygygyulgygygygygygygygyAwwsbdababababababababwfwewEwDwDwFwHwGwJwIwKwfababababababababababaaaaaaaawMwLwNscwOaawPaaqOuFqQaaqOuFqQaaqOuFqQaaqJaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaqLqLqLqLqLabababababqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLabababqLqLqLqLqLqLqLqLqLqLqLqLabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaabababababababaaaaaaaaaaaaaaabababababababababababababababbdbdAwvovnvpvpvpvpvpvpvpvpvrvqvtvsvvvuvxvwvwvwvzvyvBvAvCvwvwvDvFvEvwvwvHvGvIvwvKvJvMvLvOvNvLvPsvsvvRssvSuiaeaeaeaeqOuFqQaeqOuFqQaeqOuFqQaeqJaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaqLqLqLqLqLababqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLabababababqLqLqLqLqLqLqLqLqLqLqLabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaabababababaaaaaaaaaaaaabababababababababababababababababbdbdpBvTpCgygygygygygygyrJsCvUscscscscuquququqscvVvXvWvYvXvZuqwauqwbscuquququququququququqsarZsbuquqwcwduqaaaaaeaaqOuFqQaaqOuFqQaaqOuFqQaaqJaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaqLqLqLqLqLqLqLqLqLqLqLqLqLqLabababqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLababqLqLqLqLababababababababqLqLqLqLqLqLqLqLababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababababababababababbdbdbdbdgyulgygygygygygygygyAwowowbdabababababababwfwewhwgwjwiwlwkwnwmwowfababababababababababaaaaaaaawqwpstwqaaaaaeaaqOuFqQaaqOuFqQaaqOuFqQaaqJaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaqLqLqLqLqLqLqLqLqLqLqLqLqLqLabababqLqLqLqLqLqLqLqLqLqLqLqLabqLababababqLqLabababqLqLqLqLqLababababababababqLqLqLqLqLqLqLabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababbdbdbdbdbdbdgyulgygygygygygygygyAwwsbdbdabababababababwfwewuwtwwwvwvwvwywxwzwfababababababababababaaaaaaaawBwAvQwBaeaeaeaeqOuFqQaeqOuFqQaeqOuFqQaeqJaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaqLqLqLqLqLqLqLqLqLqLqLqLqLqLabababqLqLqLqLqLqLqLqLqLqLqLqLabababababababababababqLqLqLqLqLqLqLqLqLqLababababqLqLqLqLqLqLqLababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababbdgygygygygygyulgygygygygygygygyAwwsbdababababababababwfwewEwDwDwFwHwGwJwIwKwfababababababababababaaaaaaaawrwLwNuqwCaawPaaqOuFqQaaqOuFqQaaqOuFqQaaqJaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaqLqLqLqLqLqLqLqLqLqLqLqLqLqLababababqLqLqLqLqLqLqLqLqLqLqLqLqLababababababababababqLqLqLqLqLqLqLqLqLqLabababqLqLqLqLqLqLqLabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababbdgyqIqlqlqlqlwQgybdbdgygygygybdbdbdbdababababababababwfwewRwvwvwvwTwSwVwUwWwfabababababababababaaaaaaaawXwXwXwXwXwXwXaaaaqOuFqQaaqOuFqQaaqOuFqQaaqJaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaqLqLqLqLqLqLqLqLqLqLqLqLabababababababqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLabababqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLababqLqLqLqLqLqLqLababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaabababababababababababababababbdgyqcgygygygysLgybdbdbdbdbdbdbdabababababababababababwfwYxawZwZxbxdxcxfxexgwfababababababababaaaaaaaaaawXwXwXwXwXwXwXaaaaqOuFqQaeqOuFqQaeqOuFqQaeqJaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaqLqLqLqLqLqLqLqLqLqLababababababababqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaabababababababababababababababbdgyqcgybdbdbdmRbdbdabababababababababababababababababwfxhxjxiwvwfxlxkwfxmxnwfabababababababaaaaaaaaaaaawXwXwXwXwXwXwXaaaaqOxoqQaaqOxoqQaaqOxoqQaaqJaaaaaaaaaaaaaaaaaaaaaaaaaa From ed7c8f6513aed75fe145deb3565c68839a81d289 Mon Sep 17 00:00:00 2001 From: mwerezak Date: Wed, 12 Aug 2015 00:46:24 -0400 Subject: [PATCH 12/34] Fixes #10517 Also changes the eng break room chairs back to brown and lowers the amount of phoron glass in the workshop to be just enough to replace the SM core. --- maps/exodus-1.dmm | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/maps/exodus-1.dmm b/maps/exodus-1.dmm index 60952707c3c..26c8a80c441 100644 --- a/maps/exodus-1.dmm +++ b/maps/exodus-1.dmm @@ -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/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) "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) @@ -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/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) "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) @@ -5231,7 +5231,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/effect/landmark/start{name = "Station Engineer"},/obj/structure/bed/chair/comfy/brown,/turf/simulated/floor/carpet,/area/engineering/break_room) "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) @@ -5344,7 +5344,7 @@ "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/effect/landmark/start{name = "Station Engineer"},/obj/structure/bed/chair/comfy/brown{dir = 4},/turf/simulated/floor/carpet,/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) @@ -5468,7 +5468,7 @@ "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{dir = 2},/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) -"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) +"cbk" = (/obj/effect/landmark/start{name = "Atmospheric Technician"},/obj/structure/bed/chair/comfy/brown{dir = 8},/turf/simulated/floor/carpet,/area/engineering/break_room) "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) @@ -5612,8 +5612,8 @@ "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/effect/landmark/start{name = "Station Engineer"},/obj/structure/bed/chair/comfy/brown{dir = 1},/turf/simulated/floor/carpet,/area/engineering/break_room) +"cdZ" = (/obj/effect/landmark/start{name = "Atmospheric Technician"},/obj/structure/bed/chair/comfy/brown{dir = 1},/turf/simulated/floor/carpet,/area/engineering/break_room) "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) @@ -5891,7 +5891,7 @@ "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/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) "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) @@ -6517,7 +6517,7 @@ "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/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) "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) @@ -7022,7 +7022,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" = (/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) "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) @@ -7035,7 +7035,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" = (/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) "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) @@ -7536,8 +7536,8 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabLaaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafbUvbNxbNxbNxbNxbRSbXvbNwbUxaaabUybPcbPcbUzbXxbPfbPfbUBbPfbSFbNFbUDbSHbSTbNFbSUbSUbSUbSUbSUbSUbSUbSUbUHbUIbUJbUKbUKbUMbNUbDtbUNbSZbTxbUQbYabwabUTbUUbYtbYobYwbUTbUYbUZbVabVbbUebTPbVdbYybVgbVhbVibUlbYzbUmbRjbUCbYHbUCbRnbPObMObVnbUFbVpbVqbVrbVsbVtbVubUgbzAbYMbzAbzAbVwbCxbSLbCxbVxaafbnxbYSbYYblSbVBbYZbZcbZbbZebUVbMVbVHbVIbOObVJbVKbVKbwhaaLaaLaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabwibLRbLRbLRbLRbLRbLRbLRbVNbLUbLTbLTbLTbLTbZibLUbKuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabVPbVQbVQbVRbVSbNxbVTbRSbVUbNxaaaaaaaaaaaabNybZrbVWbVXbVZbVYbPfbNFbWabWbbNIbNFbSUbUXbVfbVcbVDbVCbVEbSUcaqcaqcaqcaqcaqbTFbWjbZsbWlbWcbWdbZubWpbxgbWrbWsbWtbWubWtbWvbWtbWwbWxbWybWzbWAbWBbWAbWCbWDbWEbWFbWGbWebZvbWfbWKbWLbZzbxVbMObxWbZBbzlbWSbWTbWhbWSbWSbZCbWWbWXbWYbWZbCxbCxbSLbCxbFTaafbnxbZLbZLbXbbZObXdbZSbZPbXgbXhbMVbVHbZUbOObOObOObOObOOaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaabKtbQmbQmbQmbQmbQmbQmbXkbLTbQlbQmbXlbLTbLTbLTbLTbKtaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabXmbZVbWmcaabRScanbXrbRSbXsbNxaaKaaaaaaaaabNybNybNybNybNybNybNybNFbUDbUEbXtbNFbSUbWnbWJbWHbWHbWJbWRbSUcaobWUbWUbXocaqbXBbDtbDtbXCbXDbXEbXFbXGblRbXIbXJbXKbXLbXMbXNbXObXPbXQbXRbXSbXTbXUbznbzpbzobAPbzqbARbAQbATbAScaxbAUbYfbYgbIwbYhbVobCqbWObWNbWPbYmbYncaJbYpbYqbYrbYscaLbYrbYubYvbILaafbnxcaMcaWbrBbVBcaXcbecbdcbfbYAbMVbVHbYBbYCbUnaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafbKtbLTbLTbLTbLTbLTbLTbTbbLTbXlbLTbLTbLTbLTbLTbKtbKtaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabYDbVQbVQbVRbYEbYFbYGbNxcbgbNxbYIbYJbYKbYIbYIbYLcbibYNbYObYPcbjbXwbXzbXybYebXAbYjbWJcbkbYxbYRbYQbYTcbmbYVbYUbYXbYWcaqbZhbNScbnbZjbZkbZlbZlbZmbnEbZobZpbTJbTJbZqcbrbTJbTJcbycbtcbAcaIcbBbWQbZxbZycbCbZybZAbZacbDbZabZAcbJbYfbMNbIwbZEbXWbXVbZdcbKbZJbZKbMObMObwwbwwbwwbwwbwwboIbnFbofbwwbMVbMVbMVbMVbMVbMVbMVbMVbMVbMVbMVbMVcbLbZQbZRbUnaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaabKtbKtbRLbLTbLTbLTbLTbLTbLTbLTbLTbLTbLTbLTbKtbKtaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamaamcbOaamaamaamaamaamaaaaaaaaaaaaaaaaaaaafaafaaabZfbZgbZgbZgbZHbZgbZgbZTbZIbYIbZYbZZbYIcbQcabcbWcadbZWcafcccbZXcaecaccahcagcaibWJcbkcajcakbYQcalbSUcaqcaqcaqcaqcaqcarbNSbDtcascatccecamcawccncaycazbTJccrcaBcaCcaDcaEcaFcaGcaHcaIbZxbWQcapbZycaKcctbZAccucaNcaObZAbXXbYfbPObIwbXYccvbXZbXYbXYbIwbIwbIwcaRcaScaTcaUcaVbwwbwwccEbwwbwwccGcaYcaucaAcavccJcaZcbacbcccQccMccYccScbhbUnbUnbUnaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafbKsbKtbUubUsbUsbLTbLTbLTbLTbLTbLTbLTbLTbKtbKtaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabYDbVQbVQbVRbYEbYFbYGbNxcbgbNxbYIbYJbYKbYIbYIbYLcbibYNbYObYPcbjbXwbXzbXybYebXAbYjbWJbYQbYxbYRcbkbYTcbmbYVbYUbYXbYWcaqbZhbNScbnbZjbZkbZlbZlbZmbnEbZobZpbTJbTJbZqcbrbTJbTJcbycbtcbAcaIcbBbWQbZxbZycbCbZybZAbZacbDbZabZAcbJbYfbMNbIwbZEbXWbXVbZdcbKbZJbZKbMObMObwwbwwbwwbwwbwwboIbnFbofbwwbMVbMVbMVbMVbMVbMVbMVbMVbMVbMVbMVbMVcbLbZQbZRbUnaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaabKtbKtbRLbLTbLTbLTbLTbLTbLTbLTbLTbLTbLTbLTbKtbKtaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamaamcbOaamaamaamaamaamaaaaaaaaaaaaaaaaaaaafaafaaabZfbZgbZgbZgbZHbZgbZgbZTbZIbYIbZYbZZbYIcbQcabcbWcadbZWcafcccbZXcaecaccahcagcaibWJbYQcajcakcbkcalbSUcaqcaqcaqcaqcaqcarbNSbDtcascatccecamcawccncaycazbTJccrcaBcaCcaDcaEcaFcaGcaHcaIbZxbWQcapbZycaKcctbZAccucaNcaObZAbXXbYfbPObIwbXYccvbXZbXYbXYbIwbIwbIwcaRcaScaTcaUcaVbwwbwwccEbwwbwwccGcaYcaucaAcavccJcaZcbacbcccQccMccYccScbhbUnbUnbUnaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafbKsbKtbUubUsbUsbLTbLTbLTbLTbLTbLTbLTbLTbKtbKtaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamaaaaaaaaaaaaaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafcbbcdmcdjcblcdpcdBcdtcbpcbobYIcdGcbsbYIbYIcdNcbucbvcbwcbxcdTcbqbXzbXybYecbzcdUbWJbWJcdYcdZbWJcebbSUcbFcbGcaqcbHcaqbTFcbIcbIcbIcbIcbIcbIcbIbTJceccbEbTJcedcbMcbNcefcaEcbPceicelcaIbZxbWQcbRbZycbScbTbZAcbUcbVceobZAccqbYfbYbbYdbYcbYiccsccAbYccepbYkbYlcktbZDbZwbZFcktcerbZGccCccBceuccDccPccFcexcevceHceCcevceIceZceKcfeccwccxccycczbUnbUnbUnbUnaaaaafaaaaaaaaaaahaahaahaafaaaaaaaafaaaaaaaafaaaaaabOPbKtbOFbKtbKtbLTbLTbLTbLTbLTbLTbLTbKtbKtaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafccRccRcdjccTcficdBccUccWccVbYIcfjccHccIcfkccKccLcflccNccOcfmccXcdaccZcdecdbcfocdycdQcdFcekceecemcfscdccddaJEcdfcaqbTFcbIcdgcdhcdicfucdkcdlcfwcdncdocfxcdqcdrcdscfycaEcducdvcdwcaIbZxbWQcenbZycdxcfzbZAcdzcdAcfAbZAcaPbYfbYfcaQbYccbYcbXcbZbYcchBccacjfcdLcdLbyFbBucdLcdOcdPceqcdRcdOcdSbBpbyebydcdScdScdScdScfGbyebydcdScdSbXjcdXcfLcfIceacfMcfUcfRbycbycbycbycbycbycbycbycbycbycbycbycbycbycbycbyccfZcegcegcehbKtbKtbLTbLTcgebLTbLTbKtbKtaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamaafaaaaaaaaaaaaaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacejcejcejcejcejcejcejcetcesbYIbYIbYIbYIbYIcgfcgmcgjcgjcgjcgocewbXzbXybYeceybYjceEceTceSceWceUceXbSUcezaJFceYaJFcaqbTFcbIceDcfacfacfaceFceGbTJcgCcgBbTJcedcbNceJcefcaEcgOceLceMcaIbZxbWQceNbZyceOcePbZAbZAbZAbZAbZAccbceRbYfcaQbYcccdcgRbYcbYcchBcgVcjfcdLcgWcfbcfbcfccdOcfdcgXcffcdOcfgcfhcfhcfhcgYchacgZchdchbcfnchicfpcdScfqcfrchmbUnbUnbUnbUnaaaaafaaaaaaaaaaahaahaahaafaaaaaaaafaaaaaaaafaafaafcftcfBcfvbNebKsbKtbKtbLTbLUbLTbKtbKtaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa From c70544f021d080dd5731795ec5fbcfbcd7e62417 Mon Sep 17 00:00:00 2001 From: mwerezak Date: Wed, 12 Aug 2015 00:58:40 -0400 Subject: [PATCH 13/34] Fixes #10509 --- code/modules/clothing/head/soft_caps.dm | 1 - 1 file changed, 1 deletion(-) diff --git a/code/modules/clothing/head/soft_caps.dm b/code/modules/clothing/head/soft_caps.dm index d41a4598a43..e326d0a082b 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 = "helmet" var/flipped = 0 siemens_coefficient = 0.9 From 9dacc146cd96b6361002a4c48a01621900e32e30 Mon Sep 17 00:00:00 2001 From: GinjaNinja32 Date: Wed, 12 Aug 2015 06:15:06 +0100 Subject: [PATCH 14/34] Debug code to try to figure out the cause of the player-panel etc breaking --- code/__HELPERS/lists.dm | 23 +++++++++++++++++++---- 1 file changed, 19 insertions(+), 4 deletions(-) diff --git a/code/__HELPERS/lists.dm b/code/__HELPERS/lists.dm index ed0f0c97809..25267f4f6eb 100644 --- a/code/__HELPERS/lists.dm +++ b/code/__HELPERS/lists.dm @@ -211,14 +211,23 @@ proc/listclearnulls(list/list) return (result + R.Copy(Ri, 0)) //Mergesort: divides up the list into halves to begin the sort -/proc/sortAtom(var/list/atom/L, var/order = 1) +/proc/sortAtom(var/list/atom/L, var/order = 1, first = 1) if(isnull(L) || L.len < 2) + if(!L) + testing("sortAtom() called with null as first parameter!") return L + if(first) + var/msg = "sortAtom() called with list([L.len]): " + for(var/x in L) + msg += "'[x]'; " + testing(msg) var/middle = L.len / 2 + 1 - return mergeAtoms(sortAtom(L.Copy(0,middle)), sortAtom(L.Copy(middle)), order) + return mergeAtoms(sortAtom(L.Copy(0,middle), order, 0), sortAtom(L.Copy(middle), order, 0), order) //Mergsort: does the actual sorting and returns the results back to sortAtom /proc/mergeAtoms(var/list/atom/L, var/list/atom/R, var/order = 1) + if(!L || !R) + testing("mergeAtoms([L] ([L ? L.len : "*null*"]), [R] ([R ? R.len : "*null*"]))") var/Li=1 var/Ri=1 var/list/result = new() @@ -231,8 +240,14 @@ proc/listclearnulls(list/list) result += R[Ri++] if(Li <= L.len) - return (result + L.Copy(Li, 0)) - return (result + R.Copy(Ri, 0)) + . = (result + L.Copy(Li, 0)) + if(!.) + testing("mergeAtoms returning [.]") + return + . = (result + R.Copy(Ri, 0)) + if(!.) + testing("mergeAtoms returning [.]") + return From a90e1f3f7e81bf853dda40f6557f255c45155021 Mon Sep 17 00:00:00 2001 From: mwerezak Date: Wed, 12 Aug 2015 01:16:08 -0400 Subject: [PATCH 15/34] Fixes #10501 Also future proofs spaceheaters --- code/game/machinery/atmoalter/portable_atmospherics.dm | 10 +++++++++- code/game/machinery/atmoalter/pump.dm | 1 + code/game/machinery/atmoalter/scrubber.dm | 2 +- code/game/machinery/spaceheater.dm | 10 +++++++++- 4 files changed, 20 insertions(+), 3 deletions(-) diff --git a/code/game/machinery/atmoalter/portable_atmospherics.dm b/code/game/machinery/atmoalter/portable_atmospherics.dm index 9ba8c2de49a..66cde27a52e 100644 --- a/code/game/machinery/atmoalter/portable_atmospherics.dm +++ b/code/game/machinery/atmoalter/portable_atmospherics.dm @@ -163,6 +163,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 +183,7 @@ cell = C C.loc = src user.visible_message("\blue [user] opens the panel on [src] and inserts [C].", "\blue You open the panel on [src] and insert [C].") + power_change() return if(istype(I, /obj/item/weapon/screwdriver)) @@ -187,8 +195,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 6e52f88b3eb..06fa9e1f303 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/spaceheater.dm b/code/game/machinery/spaceheater.dm index 14a081ee2e4..f1c3cf59115 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("\blue [user] inserts a power cell into [src].", "\blue 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("\blue [usr] inserts \the [C] into \the [src].", "\blue You insert \the [C] into \the [src].") updateDialog() @@ -176,4 +183,5 @@ env.merge(removed) else on = 0 + power_change() update_icon() From da6a3e98d8ad9c560954b6427d3ef3adeee84183 Mon Sep 17 00:00:00 2001 From: PsiOmega Date: Tue, 11 Aug 2015 21:38:26 +0200 Subject: [PATCH 16/34] Fixes a borg spawn runtime. Adds client check to prevent null.statpanel runtime. --- code/modules/mob/living/silicon/robot/robot.dm | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/code/modules/mob/living/silicon/robot/robot.dm b/code/modules/mob/living/silicon/robot/robot.dm index 549e14a5f6e..872cf5f0753 100644 --- a/code/modules/mob/living/silicon/robot/robot.dm +++ b/code/modules/mob/living/silicon/robot/robot.dm @@ -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"]")) From 32338716bfc8ddd33e989eca138414c4fb37816b Mon Sep 17 00:00:00 2001 From: PsiOmegaDelta Date: Wed, 12 Aug 2015 08:28:39 +0200 Subject: [PATCH 17/34] Re-adds missing bot check. Not all bots are of the type /mob/living/bot yet. Re-adds the /obj/machinery/bot-type check on airlock bump. Fixes #10507. --- code/game/machinery/doors/door.dm | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/code/game/machinery/doors/door.dm b/code/game/machinery/doors/door.dm index 99982675d00..912705e8f97 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)) From 3cb6b1ca7923391a6bdf3bd5ba83636dc1e53ec5 Mon Sep 17 00:00:00 2001 From: PsiOmegaDelta Date: Wed, 12 Aug 2015 08:33:57 +0200 Subject: [PATCH 18/34] Holodeck stool icon fix. Backports the icon state change from dev. Fixes #10515. --- code/modules/holodeck/HolodeckObjects.dm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) 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 From 7031ff0b434b0fc7543847891e7bc151d333a88c Mon Sep 17 00:00:00 2001 From: PsiOmegaDelta Date: Wed, 12 Aug 2015 09:07:48 +0200 Subject: [PATCH 19/34] Fixes human spawn runtime. Similar to #10503. --- code/modules/mob/living/carbon/human/human.dm | 17 +++++++---------- 1 file changed, 7 insertions(+), 10 deletions(-) diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm index e6b07445384..bce6d4e859c 100644 --- a/code/modules/mob/living/carbon/human/human.dm +++ b/code/modules/mob/living/carbon/human/human.dm @@ -52,16 +52,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) From 48d5e73729a826c4de9e3aa7acb96776610437aa Mon Sep 17 00:00:00 2001 From: PsiOmegaDelta Date: Wed, 12 Aug 2015 09:10:16 +0200 Subject: [PATCH 20/34] Fixes an observer runtime. --- code/modules/mob/dead/observer/observer.dm | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/code/modules/mob/dead/observer/observer.dm b/code/modules/mob/dead/observer/observer.dm index f47d8ec54bf..d8645f72995 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() From 3bba0f95b1603e4d7be3969777ca9fe80e9b907e Mon Sep 17 00:00:00 2001 From: PsiOmegaDelta Date: Wed, 12 Aug 2015 09:14:36 +0200 Subject: [PATCH 21/34] Qdels the photo dummy. --- code/modules/paperwork/photography.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/paperwork/photography.dm b/code/modules/paperwork/photography.dm index c7886a3b1b6..90ed7ccf59e 100644 --- a/code/modules/paperwork/photography.dm +++ b/code/modules/paperwork/photography.dm @@ -255,7 +255,7 @@ var/global/photo_count = 0 viewer = user.client.eye var/can_see = (dummy in viewers(world.view, viewer)) - del(dummy) + qdel(dummy) return can_see /obj/item/device/camera/proc/captureimage(atom/target, mob/user, flag) From 93e666e67cf602e5f87c403c151e31337c624493 Mon Sep 17 00:00:00 2001 From: PsiOmegaDelta Date: Wed, 12 Aug 2015 09:22:46 +0200 Subject: [PATCH 22/34] Adds a missing not-null check that is made in another case. --- code/game/atoms_movable.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/game/atoms_movable.dm b/code/game/atoms_movable.dm index c4d2abbea55..0ea22f23d79 100644 --- a/code/game/atoms_movable.dm +++ b/code/game/atoms_movable.dm @@ -164,7 +164,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) From 3e4ec4d7b7615411034c36c1b457f35ddc44559b Mon Sep 17 00:00:00 2001 From: PsiOmegaDelta Date: Wed, 12 Aug 2015 09:41:22 +0200 Subject: [PATCH 23/34] NanoUI windows now close on Destroy(), preventing all sorts of qdel issues. --- code/game/objects/objs.dm | 3 ++- code/modules/nano/nanomanager.dm | 20 ++++++++++++++++++++ 2 files changed, 22 insertions(+), 1 deletion(-) diff --git a/code/game/objects/objs.dm b/code/game/objects/objs.dm index 68bdf5e4220..a825334a44b 100644 --- a/code/game/objects/objs.dm +++ b/code/game/objects/objs.dm @@ -18,7 +18,8 @@ /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 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 * From 67c79e7a1b603ba4188901f4fe370f44ad8bc385 Mon Sep 17 00:00:00 2001 From: PsiOmegaDelta Date: Wed, 12 Aug 2015 13:12:52 +0200 Subject: [PATCH 24/34] Adds sanity checks for stripping. Mobs can no longer strip other mobs while prone, unconscious, or buckled down. Fixes #10553. --- code/modules/mob/living/carbon/human/human.dm | 4 ++++ code/modules/mob/living/carbon/human/stripping.dm | 5 +++++ 2 files changed, 9 insertions(+) diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm index e6b07445384..478ac312e65 100644 --- a/code/modules/mob/living/carbon/human/human.dm +++ b/code/modules/mob/living/carbon/human/human.dm @@ -224,6 +224,10 @@ /mob/living/carbon/human/show_inv(mob/user as mob) + // TODO : Change to incapacitated() on merge. + if(user.stat || user.lying || user.resting || user.buckled) + return + var/obj/item/clothing/under/suit = null if (istype(w_uniform, /obj/item/clothing/under)) suit = w_uniform diff --git a/code/modules/mob/living/carbon/human/stripping.dm b/code/modules/mob/living/carbon/human/stripping.dm index 8eaef158611..aa08a0efd5a 100644 --- a/code/modules/mob/living/carbon/human/stripping.dm +++ b/code/modules/mob/living/carbon/human/stripping.dm @@ -3,6 +3,11 @@ if(!slot_to_strip || !istype(user)) return + // TODO : Change to incapacitated() on merge. + if(user.stat || user.lying || user.resting || user.buckled) + 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) From 1b7b69306ca9983d1ab9aef6b2c87fc0074eecc5 Mon Sep 17 00:00:00 2001 From: PsiOmegaDelta Date: Wed, 12 Aug 2015 13:33:51 +0200 Subject: [PATCH 25/34] Prevents APC wires from being displayed to the AI. Restores and makes the mob type check more specific. Fixes #10559. --- code/modules/power/apc.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/power/apc.dm b/code/modules/power/apc.dm index 8b6771dff35..319de5f4a35 100644 --- a/code/modules/power/apc.dm +++ b/code/modules/power/apc.dm @@ -738,7 +738,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) From 249db0b03d6b0765bbffe6a90b4c996791f8af8c Mon Sep 17 00:00:00 2001 From: PsiOmegaDelta Date: Wed, 12 Aug 2015 14:42:52 +0200 Subject: [PATCH 26/34] Fixes the One Crew Member module. Didn't return properly in install(). Override transmitInstructions() when addAdditionalLaws() was more than sufficient. --- code/game/objects/items/weapons/AI_modules.dm | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/code/game/objects/items/weapons/AI_modules.dm b/code/game/objects/items/weapons/AI_modules.dm index f620fd64e92..cb58d3fd2e9 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." From 1e8e0547e49440d94334e8e068b4be753e210688 Mon Sep 17 00:00:00 2001 From: HarpyEagle Date: Wed, 12 Aug 2015 11:58:11 -0400 Subject: [PATCH 27/34] Fixes carbon fire_act() Caused fire to actually cool down the mob if the mob was already hotter than the exposed temperature. --- code/modules/mob/living/carbon/carbon.dm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/code/modules/mob/living/carbon/carbon.dm b/code/modules/mob/living/carbon/carbon.dm index b1dee3b2077..9a8db5b898c 100644 --- a/code/modules/mob/living/carbon/carbon.dm +++ b/code/modules/mob/living/carbon/carbon.dm @@ -372,8 +372,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) From 9609ce0b0dee1dc8a6dcd99b0c217783275d0891 Mon Sep 17 00:00:00 2001 From: HarpyEagle Date: Wed, 12 Aug 2015 12:06:31 -0400 Subject: [PATCH 28/34] Fixes #10546 --- code/modules/organs/organ_internal.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/organs/organ_internal.dm b/code/modules/organs/organ_internal.dm index 05a73c703c9..39a8a142cf0 100644 --- a/code/modules/organs/organ_internal.dm +++ b/code/modules/organs/organ_internal.dm @@ -79,7 +79,7 @@ owner.b_eyes ? owner.b_eyes : 0 ) -/obj/item/organ/eyes/take_damage() +/obj/item/organ/eyes/take_damage(amount, var/silent=0) var/oldbroken = is_broken() ..() if(is_broken() && !oldbroken && owner && !owner.stat) From a62edc5b3a56d6720d3711c23bc158ec96debd0a Mon Sep 17 00:00:00 2001 From: HarpyEagle Date: Wed, 12 Aug 2015 12:21:28 -0400 Subject: [PATCH 29/34] Fixes #10548 --- code/game/objects/items/weapons/clown_items.dm | 2 +- code/game/objects/items/weapons/mop.dm | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/code/game/objects/items/weapons/clown_items.dm b/code/game/objects/items/weapons/clown_items.dm index f86359c21de..d34456e4533 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/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() From cefd32fa69d1b592be777b68360dd7b90da77a96 Mon Sep 17 00:00:00 2001 From: SparklySheep Date: Wed, 12 Aug 2015 12:09:00 -0500 Subject: [PATCH 30/34] Update glasses.dm --- code/modules/clothing/glasses/glasses.dm | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/code/modules/clothing/glasses/glasses.dm b/code/modules/clothing/glasses/glasses.dm index 0c778dc04a1..8474d39eea8 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!" @@ -113,6 +108,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" From 27296e7cafd1e82ca95d066541ad8d1712502160 Mon Sep 17 00:00:00 2001 From: SparklySheep Date: Wed, 12 Aug 2015 12:13:28 -0500 Subject: [PATCH 31/34] Update preferences_gear.dm --- code/modules/client/preferences_gear.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/client/preferences_gear.dm b/code/modules/client/preferences_gear.dm index 25e1da639f9..5be7e2dcde7 100644 --- a/code/modules/client/preferences_gear.dm +++ b/code/modules/client/preferences_gear.dm @@ -279,7 +279,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 From 9831aede3fdc31a4680ffcb26042a15e0346d680 Mon Sep 17 00:00:00 2001 From: Zuhayr Date: Thu, 13 Aug 2015 03:31:57 +0930 Subject: [PATCH 32/34] Fixes drone pulling. --- .../mob/living/silicon/robot/drone/drone.dm | 22 +++++++++---------- 1 file changed, 10 insertions(+), 12 deletions(-) diff --git a/code/modules/mob/living/silicon/robot/drone/drone.dm b/code/modules/mob/living/silicon/robot/drone/drone.dm index 237a714cc88..295fb4159ed 100644 --- a/code/modules/mob/living/silicon/robot/drone/drone.dm +++ b/code/modules/mob/living/silicon/robot/drone/drone.dm @@ -265,19 +265,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 From 64a89fc5e4f742b0aab1ba51c592288b4db50a4e Mon Sep 17 00:00:00 2001 From: Zuhayr Date: Thu, 13 Aug 2015 03:33:28 +0930 Subject: [PATCH 33/34] Removes seed colour from nymphs. --- code/modules/hydroponics/seed.dm | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/code/modules/hydroponics/seed.dm b/code/modules/hydroponics/seed.dm index 90870d4bf3a..108a242636a 100644 --- a/code/modules/hydroponics/seed.dm +++ b/code/modules/hydroponics/seed.dm @@ -689,10 +689,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 += "?" From c5d624eb933e9e90e20a58394daefaaccddb28ab Mon Sep 17 00:00:00 2001 From: PsiOmega Date: Wed, 12 Aug 2015 21:03:32 +0200 Subject: [PATCH 34/34] Fixes QM office door access requirements. Now checks for quartermaster access, instead of captain. Fixes #10565. Also gives the QM the ability to see all the doors his buttons can open. --- maps/exodus-1.dmm | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/maps/exodus-1.dmm b/maps/exodus-1.dmm index 26c8a80c441..666029a42a6 100644 --- a/maps/exodus-1.dmm +++ b/maps/exodus-1.dmm @@ -4443,7 +4443,7 @@ "bHw" = (/obj/structure/grille,/obj/machinery/door/firedoor/border_only{dir = 2},/obj/structure/window/reinforced/polarized{dir = 8},/obj/structure/window/reinforced/polarized{dir = 4},/turf/simulated/floor/plating,/area/rnd/research) "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/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) "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) @@ -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/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) "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) @@ -7380,6 +7380,7 @@ "cLV" = (/obj/machinery/door/blast/regular{density = 0; icon_state = "pdoor0"; id = "SupermatterPort"; layer = 2.7; name = "Reactor Blast Door"; opacity = 0},/obj/structure/grille,/obj/structure/window/phoronreinforced{tag = "icon-phoronrwindow (EAST)"; icon_state = "phoronrwindow"; dir = 4},/obj/structure/window/phoronreinforced{tag = "icon-phoronrwindow (WEST)"; icon_state = "phoronrwindow"; dir = 8},/turf/simulated/floor/plating,/area/engineering/engine_room) "cLW" = (/obj/structure/grille,/obj/machinery/door/blast/regular{density = 0; icon_state = "pdoor0"; id = "SupermatterPort"; layer = 2.7; name = "Reactor Blast Door"; opacity = 0},/obj/structure/window/phoronreinforced,/obj/structure/window/phoronreinforced{tag = "icon-phoronrwindow (EAST)"; icon_state = "phoronrwindow"; dir = 4},/obj/structure/window/phoronreinforced{tag = "icon-phoronrwindow (WEST)"; icon_state = "phoronrwindow"; dir = 8},/turf/simulated/floor/plating,/area/engineering/engine_room) "cLX" = (/obj/machinery/door/blast/regular{density = 0; icon_state = "pdoor0"; id = "SupermatterPort"; layer = 2.7; name = "Reactor Blast Door"; opacity = 0},/obj/structure/grille,/obj/structure/window/phoronreinforced,/obj/structure/window/phoronreinforced{tag = "icon-phoronrwindow (EAST)"; icon_state = "phoronrwindow"; dir = 4},/obj/structure/window/phoronreinforced{tag = "icon-phoronrwindow (WEST)"; icon_state = "phoronrwindow"; dir = 8},/turf/simulated/floor/plating,/area/engineering/engine_room) +"cLY" = (/obj/structure/grille,/obj/structure/window/reinforced/polarized{dir = 8},/obj/structure/window/reinforced/polarized{dir = 4},/turf/simulated/floor/plating,/area/quartermaster/qm) (1,1,1) = {" aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa @@ -7524,8 +7525,8 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabtnbtnbtnbtnbtnbtnbtnbAVbzQbAVbCMbCNbCObrJbrJbrJbCNbrJbwTbrKbzTbCPbdPbDYbgGbrNbwXbgGbqlbCRbgGbgGbEgbxcbvtbAbbCTbxcbCUbvwbCVbEhbEibAWbxlbvwbEkbEjbEpbAhbErbErbErbAjbEubEsbEwbyNbDkbDlbDlbDmbDnbDobDpaJibDqbDrbDsaJibDtbECbDvbEFbDxbDybDzbDAbyWbEKbELbCjbEMbwmbDEbDFbwmbDGbDHbERbDJbESbDLbDMbCpbEUbDObBTbEVbDRbCpbVLbVMbDUbVAbDWbDXbDXbEWbDZbEabEbbEcbEdbEebEfbEYbEXbEZbCvbFbbFabFobwwbwwbwwbwwbwwbFybFrbEnbzKbzMbCJbEobFFbCJbzKbzLbzMbFQbCJbFUaafcHOaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabtnbtnbtnbtnbtnbtnbtnbFVbExbFVbEybEzbEAbEAbEAbEAbEAbEBbGfbEDbzTbEEbdPbGgbEGbEHbEIbEJbGibGhbGkbGjbGvbtCbENbAbbEObEPbyEbvwbEQbGubGAbBMbETbvwbBPbGCbGDbAhaaaaaaaaabAjbGWbGEbFcbyNbFdbFebFfbFgbDnbDobFhaJibxwaRqaRpbHabFjbFkbFlbFmbFnbHfbFpbFqbxCbxFbxFbHibxFbwkbFsbFtbFubFvbFwbFxbDJbHjbDLbFzbFAbFBbDObFCbFDbFEbHkbVlbDXbHlbVAbFJbDXbDXbFKbFLbFMbFLbFLbFNbFObFPbHmbFRbFSbCvbHwbHvbHMbFWbFXbFYbFZbGabGbbGcbGdaafaafbCJbGebHNbHNbHObHQbHPbHRbEvaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabtnbtnbtnbtnbtnbtnbtnbGlbGmbGnbdPbdPbGobwNbwNbwNbGpbdPbdPbGqbGrbGsbdPbGtbGtbGtbHSbGtbGvbGwbGxbGybGzbtCbvtbAbbHUbGBbtCbtGbtGbtGbtGbtGbHVbtGbtGbtGbHZbtGbtGbtGbtGbtGbIfbtGbtGbtGbtGbtGbtGbtGaJiaJiaJiaJibxwaRqaRpbHabIobFkbCSbGGbCWbGIbGJbGKbGLbGMbGNbCjbGObGPbGQbGRbGSbGTbGUbGVbIrbGXbGYbGZbIubHbbHcbHdbHebIvbCpbUSbUfbwwbwwbwwbwwbwwbIAbwwbwwbwwbzAbIBbzAbzAbIDbBhbCubCvbHwbIMbIRbHnbHobHpbHqbGabGbbGcbHraaaaaabCJbHsbHtbEobCnbBybITbIUbCJaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabtnbtnbtnbtnbtnbtnbtnaaaaaaaaaaaaaaaaaaaafaaaaaaaaabHuaafaaaaaaaaaaaabGtbIYbIXbHxbHybGvbHzbIZbHBbHCbtCbvtbAbbAcbAabHDbHEbHFbHGbHHbHIbHJbHKbHLbJabJqbJbbJrbAabAabJDbJWbJVbAabHTbAabzZbHHbKJbHWbHXbHYbJXbxwaRqbDsaJlbDtbDubDtbDCbDPbxCbIbbIcbIdbIebKdbIgbIhbIibIjbIkbwmbIlbImbInbDJbDTbElbIpbIqbKfbFDbIsbItbKgbCpbKhbIwbIxbIybUdbLybKibICbKjbUcbIFbIGbIHbIIbIJbzAbIKbCubCvbKzbKobINbIObIPbIQbKBbGabGbbISbEnbEnbEnbCJbCJbCJbKVbKUbCJbCJbBybCJaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafaafaafaaaaaaaaaaaaaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaIvaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabtnbtnbtnbtnbtnbtnbtnaaaaaaaaaaaaaaaaaabLaaaaaaaaaaaaaaaaaaaaaaaaaaaabGtbLnbEmbIVbIWbLrbLpbLzbLxbLFbtCbvtbJcbJdbJebJebJfbJgbJhbJibJjbJgbJfbJebJebLHbJkbJlbLIbJnbJobLKbJebJebJpbJgbJhbJibJjbJsbJtbJubJtbJvbJwbvUaJlbEtbEqbFHbGFbLWbGHbDzbHAbFibDVbxFbLYbCFbDSbDEbJGbwkbJHbJIbJJbDJbJKbJLbJMbJNbJObFDbJPbItbJObCpbJQbJRbIxbJSbJTbJUbMhbMlbMibJYbIFbJZbKabKbbKbbzAbKcbMqbMpbMxbMwbMCbMybMHbMFbKkbGabGbbKlbEnbKmbMIbKnbEnaafaafaafaafaafaafaafaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafbKpbKqbKqbKrbKsbKsbKtbKtbKtbKtbKuaafaafaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabtnbtnbtnbtnbtnbtnbtnaaaaaaaaaaaaaaaaaaaafaaaaaaaaabHuaafaaaaaaaaaaaabGtbIYbIXbHxbHybLrbHzbIZbHBbHCbtCbvtbAbbAcbAabHDbHEbHFbHGbHHbHIbHJbHKbHLbJabJqbJbbJrbAabAabJDbJWbJVbAabHTbAabzZbHHbKJbHWbHXbHYbJXbxwaRqbDsaJlbDtbDubDtbDCbDPbxCbIbbIcbIdbIebKdbIgbIhbIibIjbIkbwmbIlbImbInbDJbDTbElbIpbIqbKfbFDbIsbItbKgbCpbKhbIwbIxbIybUdbLybKibICbKjbUcbIFbIGbIHbIIbIJbzAbIKbCubCvbKzbKobINbIObIPbIQbKBbGabGbbISbEnbEnbEnbCJbCJbCJbKVbKUbCJbCJbBybCJaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafaafaafaaaaaaaaaaaaaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaIvaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabtnbtnbtnbtnbtnbtnbtnaaaaaaaaaaaaaaaaaabLaaaaaaaaaaaaaaaaaaaaaaaaaaaabGtbLnbEmbIVbIWcLYbLpbLzbLxbLFbtCbvtbJcbJdbJebJebJfbJgbJhbJibJjbJgbJfbJebJebLHbJkbJlbLIbJnbJobLKbJebJebJpbJgbJhbJibJjbJsbJtbJubJtbJvbJwbvUaJlbEtbEqbFHbGFbLWbGHbDzbHAbFibDVbxFbLYbCFbDSbDEbJGbwkbJHbJIbJJbDJbJKbJLbJMbJNbJObFDbJPbItbJObCpbJQbJRbIxbJSbJTbJUbMhbMlbMibJYbIFbJZbKabKbbKbbzAbKcbMqbMpbMxbMwbMCbMybMHbMFbKkbGabGbbKlbEnbKmbMIbKnbEnaafaafaafaafaafaafaafaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafbKpbKqbKqbKrbKsbKsbKtbKtbKtbKtbKuaafaafaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabtnbtnbtnbtnbtnaaaaaaaaaaaaaaaaaaaaaaaabKvbKwbKxbKwbKyaaaaaaaaabGtbGtbMMbKAbIVbKAbMPbKCbMSbKDbKEbtCbKFbvtbKGbKHbAabKIbAabzZbHHbKJbAabKKbKLbKMbKNbKObAcbAabKPbKQbHLbKRbHLbHLbKSbKTbMXbMTbKWbKXbcLbKYaRpaRpaRpaJlbMZbFlbFnbNdbJmbNfbJybJxbFIbLgbLhbLibLjbHgbDEbIkbIabIzbHhbDJbDJbLobLobLobCpbNhbLqbNkbLsbLtbCpbLubLvbIxbLwbFGbLybNqbLAbLBbLCbIFbJCbLEbKbbKbbzAbRsbSLbCvbwwbLGbNtbNsbLJbNzbLLbGabLMbLNbLObLObLObLPbGdaaaaaaaaaaaaaafaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafbLQbLRbLSbLRbKsbKtbKtbLTbLUbLTbKtbKtaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabLVbNAbLXbNBbLVbLZbMabMbbGtbMcbMdbMebMfbMgbNLbNKbMjbMjbMkbtCbtCbtCbNQbtCbtCbtCbtCbtCbtCbtCbtCbtCbtCbtCbtCbtCbMmbMnbMobtCbtCbtCbtCbtCbNZbtCbtCbtCaJlaJlbObaJlaKSaMpbMraJlbKZbOcbOdbGFbLdbxCbDzbLDbxCbOfbMzbMAbMBbwkbOibMDbMEbOkbMGbOlbOnbMJbMKbMLbItbJObFDbFDbOtbJObCpbMNbMObMObMObMObMObMObMObMObMObMObOxbMQbMRbMRbzAbOCbODbMUbwwbMVbMVbMVbMWbOEbMYbMVbMVbMVbMVbMVbMVbNabNbaymaymaymaymaymaymaymaymaymaymaymaymaymaymaymaymaymaymaymaymaymaymaymbOFbLRbLRbNebKtbKtbLTbLTbOGbLTbLTbKtbKtaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabKxbNgbMsbNgbKxbNibNjbOHbNlbNmbNnbKAbNobNpbGvbOIbNrbOJbOKbGvbNubNvbNwbNxaaaaaaaaaaaabNybOLbONbOMbNDbNCbNEbNFbNGbNHbNIbNFbNJbOQbORbNMbNNbNObNPbOTbNRbNSbNTbNUbNUbNUbNUbDtbDtbDtbDtbMtbMtbxCbOUbOabPebMzbMvbMubOebPubOgbOhbPvbOjbPCbPAbOmbPDbMKbOobFDbFDbNVbJObJObOobCpbMNbMObOqbOrbOsbPEbOubOvbOwbPFbMObOybOzbOAbOAbzAbOBbPGbCvbzIbPHbPKbPJbPMbPLbPVbPSbPXbPWbPYbVFbMVbPZbEnbOObOObOObOObOOaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaabOPbKtbOFbKtbKtbLTbLTbLTbLTbLTbLTbLTbKtbKtaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa