From e77180fcf9c4ce0de46a75e348740b579125d8f0 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 4 Sep 2023 17:45:06 +0000 Subject: [PATCH 001/158] Bump actions/checkout from 3.6.0 to 4.0.0 Bumps [actions/checkout](https://github.com/actions/checkout) from 3.6.0 to 4.0.0. - [Release notes](https://github.com/actions/checkout/releases) - [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md) - [Commits](https://github.com/actions/checkout/compare/f43a0e5ff2bd294095638e18286ca9a3d1956744...3df4ab11eba7bda6032a0b82a6bb43b11571feac) --- updated-dependencies: - dependency-name: actions/checkout dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- .github/workflows/changelog_generation.yml | 2 +- .github/workflows/codeql-analysis.yml | 2 +- .github/workflows/generate_documentation.yml | 4 ++-- .github/workflows/make_changelogs.yml | 2 +- .github/workflows/test.yml | 12 ++++++------ 5 files changed, 11 insertions(+), 11 deletions(-) diff --git a/.github/workflows/changelog_generation.yml b/.github/workflows/changelog_generation.yml index 81993e4fc51b4..543202245befc 100644 --- a/.github/workflows/changelog_generation.yml +++ b/.github/workflows/changelog_generation.yml @@ -16,7 +16,7 @@ jobs: if: github.repository == 'SierraBay/SierraBay12' # to prevent this running on forks steps: - name: Checkout - uses: actions/checkout@f43a0e5ff2bd294095638e18286ca9a3d1956744 + uses: actions/checkout@3df4ab11eba7bda6032a0b82a6bb43b11571feac with: fetch-depth: 0 # Otherwise, we will fail to push refs ref: dev-sierra diff --git a/.github/workflows/codeql-analysis.yml b/.github/workflows/codeql-analysis.yml index d56debffc3df4..6bf94dca867f0 100644 --- a/.github/workflows/codeql-analysis.yml +++ b/.github/workflows/codeql-analysis.yml @@ -39,7 +39,7 @@ jobs: steps: - name: Checkout repository - uses: actions/checkout@f43a0e5ff2bd294095638e18286ca9a3d1956744 + uses: actions/checkout@3df4ab11eba7bda6032a0b82a6bb43b11571feac # Initializes the CodeQL tools for scanning. - name: Initialize CodeQL diff --git a/.github/workflows/generate_documentation.yml b/.github/workflows/generate_documentation.yml index 503df0cea34e3..35348e833c27f 100644 --- a/.github/workflows/generate_documentation.yml +++ b/.github/workflows/generate_documentation.yml @@ -17,7 +17,7 @@ jobs: runs-on: ubuntu-latest steps: - name: checkout - uses: actions/checkout@f43a0e5ff2bd294095638e18286ca9a3d1956744 + uses: actions/checkout@3df4ab11eba7bda6032a0b82a6bb43b11571feac - name: paths-filter uses: dorny/paths-filter@4512585405083f25c027a35db413c2b3b9006d50 id: filter @@ -37,7 +37,7 @@ jobs: group: ${{ github.workflow }}-${{ github.ref }} cancel-in-progress: true steps: - - uses: actions/checkout@f43a0e5ff2bd294095638e18286ca9a3d1956744 + - uses: actions/checkout@3df4ab11eba7bda6032a0b82a6bb43b11571feac - name: Setup Cache uses: actions/cache@88522ab9f39a2ea568f7027eddc7d8d8bc9d59c8 with: diff --git a/.github/workflows/make_changelogs.yml b/.github/workflows/make_changelogs.yml index fcb69fe7eae0f..24f741313aba8 100644 --- a/.github/workflows/make_changelogs.yml +++ b/.github/workflows/make_changelogs.yml @@ -16,7 +16,7 @@ jobs: if: github.repository == 'SierraBay/SierraBay12' # to prevent this running on forks steps: - name: Checkout - uses: actions/checkout@f43a0e5ff2bd294095638e18286ca9a3d1956744 + uses: actions/checkout@3df4ab11eba7bda6032a0b82a6bb43b11571feac with: fetch-depth: 25 - name: Python setup diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index e2429b77bd165..1c5a2d2e7e208 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -17,7 +17,7 @@ jobs: runs-on: ubuntu-latest steps: - name: checkout - uses: actions/checkout@f43a0e5ff2bd294095638e18286ca9a3d1956744 + uses: actions/checkout@3df4ab11eba7bda6032a0b82a6bb43b11571feac - name: paths-filter uses: dorny/paths-filter@4512585405083f25c027a35db413c2b3b9006d50 id: filter @@ -30,7 +30,7 @@ jobs: needs: PreFlight if: needs.PreFlight.outputs.dm == 'true' steps: - - uses: actions/checkout@f43a0e5ff2bd294095638e18286ca9a3d1956744 + - uses: actions/checkout@3df4ab11eba7bda6032a0b82a6bb43b11571feac - name: Setup Cache uses: actions/cache@88522ab9f39a2ea568f7027eddc7d8d8bc9d59c8 with: @@ -58,7 +58,7 @@ jobs: - DreamChecker if: needs.PreFlight.outputs.dm == 'true' steps: - - uses: actions/checkout@f43a0e5ff2bd294095638e18286ca9a3d1956744 + - uses: actions/checkout@3df4ab11eba7bda6032a0b82a6bb43b11571feac - name: Setup Cache uses: actions/cache@88522ab9f39a2ea568f7027eddc7d8d8bc9d59c8 with: @@ -88,7 +88,7 @@ jobs: - DreamChecker if: needs.PreFlight.outputs.dm == 'true' steps: - - uses: actions/checkout@f43a0e5ff2bd294095638e18286ca9a3d1956744 + - uses: actions/checkout@3df4ab11eba7bda6032a0b82a6bb43b11571feac - name: Setup Cache uses: actions/cache@88522ab9f39a2ea568f7027eddc7d8d8bc9d59c8 with: @@ -117,7 +117,7 @@ jobs: - DreamChecker if: needs.PreFlight.outputs.dm == 'true' steps: - - uses: actions/checkout@f43a0e5ff2bd294095638e18286ca9a3d1956744 + - uses: actions/checkout@3df4ab11eba7bda6032a0b82a6bb43b11571feac - name: Setup Cache uses: actions/cache@88522ab9f39a2ea568f7027eddc7d8d8bc9d59c8 with: @@ -146,7 +146,7 @@ jobs: - DreamChecker if: needs.PreFlight.outputs.dm == 'true' steps: - - uses: actions/checkout@f43a0e5ff2bd294095638e18286ca9a3d1956744 + - uses: actions/checkout@3df4ab11eba7bda6032a0b82a6bb43b11571feac - name: Setup Cache uses: actions/cache@88522ab9f39a2ea568f7027eddc7d8d8bc9d59c8 with: From 3c93a7ffb92f00c7107c36861c3d6575357bd9e2 Mon Sep 17 00:00:00 2001 From: cuddleandtea <105150564+cuddleandtea@users.noreply.github.com> Date: Mon, 4 Sep 2023 20:08:04 +0300 Subject: [PATCH 002/158] [MIRROR] Aghost fix --- code/modules/admin/admin.dm | 1 + code/modules/admin/verbs/debug.dm | 2 ++ 2 files changed, 3 insertions(+) diff --git a/code/modules/admin/admin.dm b/code/modules/admin/admin.dm index 6fc727f6fc515..7ea71ed730636 100644 --- a/code/modules/admin/admin.dm +++ b/code/modules/admin/admin.dm @@ -1427,6 +1427,7 @@ GLOBAL_VAR_INIT(skip_allow_lists, FALSE) message_admins(SPAN_CLASS("adminnotice", "[key_name_admin(usr)] has put [frommob.ckey] in control of [tomob.name].")) log_admin("[key_name(usr)] stuffed [frommob.ckey] into [tomob.name].") tomob.ckey = frommob.ckey + tomob.teleop = null qdel(frommob) return 1 diff --git a/code/modules/admin/verbs/debug.dm b/code/modules/admin/verbs/debug.dm index 8efc0305b2077..b3a50edc990f1 100644 --- a/code/modules/admin/verbs/debug.dm +++ b/code/modules/admin/verbs/debug.dm @@ -158,6 +158,8 @@ log_and_message_admins("assumed direct control of [M].") var/mob/adminmob = src.mob M.ckey = src.ckey + M.teleop = null + adminmob.teleop = null if(isghost(adminmob)) qdel(adminmob) From cb1cc79a294feafb6622c3cd9aba222eda29c0df Mon Sep 17 00:00:00 2001 From: Sierra Helper <125094432+SierraHelper@users.noreply.github.com> Date: Mon, 4 Sep 2023 20:53:58 +0300 Subject: [PATCH 003/158] =?UTF-8?q?=D0=A7=D0=B5=D0=B9=D0=BD=D0=B4=D0=B6?= =?UTF-8?q?=D0=BB=D0=BE=D0=B3=20=D0=B4=D0=BB=D1=8F=20PR=20#953=20[ci=20ski?= =?UTF-8?q?p]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- html/changelogs/AutoChangeLog-sierra-pr-953.yml | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-sierra-pr-953.yml diff --git a/html/changelogs/AutoChangeLog-sierra-pr-953.yml b/html/changelogs/AutoChangeLog-sierra-pr-953.yml new file mode 100644 index 0000000000000..aca8440345567 --- /dev/null +++ b/html/changelogs/AutoChangeLog-sierra-pr-953.yml @@ -0,0 +1,5 @@ +author: cuddleandtea +delete-after: true +changes: + - bugfix: admins can now re-exit their old mobs after entering other mobs and going + back From 85516b97ace800730cd2f6ffc1b48c81e2ac1380 Mon Sep 17 00:00:00 2001 From: Sierra Helper <125094432+SierraHelper@users.noreply.github.com> Date: Tue, 5 Sep 2023 01:14:18 +0000 Subject: [PATCH 004/158] =?UTF-8?q?=D0=90=D0=B2=D1=82=D0=BE=D0=BC=D0=B0?= =?UTF-8?q?=D1=82=D0=B8=D1=87=D0=B5=D1=81=D0=BA=D0=B0=D1=8F=20=D0=BA=D0=BE?= =?UTF-8?q?=D0=BC=D0=BF=D0=B8=D0=BB=D1=8F=D1=86=D0=B8=D1=8F=20=D1=87=D0=B5?= =?UTF-8?q?=D0=B9=D0=BD=D0=B4=D0=B6=D0=BB=D0=BE=D0=B3=D0=BE=D0=B2=20[ci=20?= =?UTF-8?q?skip]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- html/changelog.html | 10 ++++++++++ html/changelogs/.all_changelog.yml | 7 +++++++ html/changelogs/AutoChangeLog-sierra-pr-949.yml | 4 ---- html/changelogs/AutoChangeLog-sierra-pr-953.yml | 5 ----- 4 files changed, 17 insertions(+), 9 deletions(-) delete mode 100644 html/changelogs/AutoChangeLog-sierra-pr-949.yml delete mode 100644 html/changelogs/AutoChangeLog-sierra-pr-953.yml diff --git a/html/changelog.html b/html/changelog.html index 9e20c6b33f535..a7abb756c2e1c 100644 --- a/html/changelog.html +++ b/html/changelog.html @@ -28,6 +28,16 @@

Sierra SS13

-->
+

05.09 - 2023

+

Обновления SuhEugene:

+
+
Добавил скачивание логов.
+
+

Обновления cuddleandtea:

+
+
admins can now re-exit their old mobs after entering other mobs and going back
+
+

04.09 - 2023

Обновления Mucker:

diff --git a/html/changelogs/.all_changelog.yml b/html/changelogs/.all_changelog.yml index 1834938800387..63926af772cc1 100644 --- a/html/changelogs/.all_changelog.yml +++ b/html/changelogs/.all_changelog.yml @@ -21712,3 +21712,10 @@ DO NOT EDIT THIS FILE BY HAND! AUTOMATICALLY GENERATED BY sierra_genchangelog.p SierraKomodo: - maptweak: The GUP now has a charging station for IPCs and borgs, replacing one of the many seats it has. +2023-09-05: + SuhEugene: + - admin: "\u0414\u043E\u0431\u0430\u0432\u0438\u043B \u0441\u043A\u0430\u0447\u0438\ + \u0432\u0430\u043D\u0438\u0435 \u043B\u043E\u0433\u043E\u0432." + cuddleandtea: + - bugfix: admins can now re-exit their old mobs after entering other mobs and going + back diff --git a/html/changelogs/AutoChangeLog-sierra-pr-949.yml b/html/changelogs/AutoChangeLog-sierra-pr-949.yml deleted file mode 100644 index 7cfb27d0f255d..0000000000000 --- a/html/changelogs/AutoChangeLog-sierra-pr-949.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: SuhEugene -delete-after: true -changes: - - admin: Добавил скачивание логов. diff --git a/html/changelogs/AutoChangeLog-sierra-pr-953.yml b/html/changelogs/AutoChangeLog-sierra-pr-953.yml deleted file mode 100644 index aca8440345567..0000000000000 --- a/html/changelogs/AutoChangeLog-sierra-pr-953.yml +++ /dev/null @@ -1,5 +0,0 @@ -author: cuddleandtea -delete-after: true -changes: - - bugfix: admins can now re-exit their old mobs after entering other mobs and going - back From abdcbd2d0098eafdde68d76b7aea6a9e47faeebb Mon Sep 17 00:00:00 2001 From: SuhEugene <32931701+SuhEugene@users.noreply.github.com> Date: Tue, 5 Sep 2023 17:33:43 +0300 Subject: [PATCH 005/158] Fix unit tests (#955) --- maps/sierra/sierra.dm | 1 - mods/global_modpacks.dm | 2 ++ packs/infinity/items/grown.dm | 14 -------------- packs/sierra-tweaks/client/verbs.dm | 4 ++-- packs/sierra-tweaks/objects/items/fruit_jar.dm | 12 ++++++++++++ 5 files changed, 16 insertions(+), 17 deletions(-) diff --git a/maps/sierra/sierra.dm b/maps/sierra/sierra.dm index f335e00579bde..36973a53dcc72 100644 --- a/maps/sierra/sierra.dm +++ b/maps/sierra/sierra.dm @@ -192,7 +192,6 @@ #include "../../packs/factions/iccgn/_pack.dm" #include "../../packs/factions/scga/_pack.dm" #include "../../packs/infinity/_pack.dm" - #include "../../packs/sierra-tweaks/_pack.dm" #include "../../packs/deepmaint/_pack.dm" diff --git a/mods/global_modpacks.dm b/mods/global_modpacks.dm index 3a93cde9be2b7..ff9ae27b988a0 100644 --- a/mods/global_modpacks.dm +++ b/mods/global_modpacks.dm @@ -10,3 +10,5 @@ #include "nyc_posters/_nyc_posters.dme" #include "ssinput/_ssinput.dme" #include "utf8/_utf8.dme" + +#include "../packs/sierra-tweaks/_pack.dm" diff --git a/packs/infinity/items/grown.dm b/packs/infinity/items/grown.dm index 80454f0c27abe..8886fa9a0cb85 100644 --- a/packs/infinity/items/grown.dm +++ b/packs/infinity/items/grown.dm @@ -4,17 +4,3 @@ /obj/item/reagent_containers/food/snacks/grown/poppy plantname = "poppies" - - -// Edible -/obj/item/reagent_containers/food/snacks/grown/apple - plantname = "apple" - -/obj/item/reagent_containers/food/snacks/grown/orange - plantname = "orange" - -/obj/item/reagent_containers/food/snacks/grown/lime - plantname = "lime" - -/obj/item/reagent_containers/food/snacks/grown/lemon - plantname = "lemon" diff --git a/packs/sierra-tweaks/client/verbs.dm b/packs/sierra-tweaks/client/verbs.dm index 69fa015e484ec..c65bdd82529ab 100644 --- a/packs/sierra-tweaks/client/verbs.dm +++ b/packs/sierra-tweaks/client/verbs.dm @@ -40,7 +40,7 @@ message_admins("[key_name_admin(src)] accessed file: [path]") log_admin("[key_name_admin(src)] accessed file: [path]") - src << ftp(file(path)) + to_target(src, ftp(file(path))) to_chat(src, "Attempting to send file, this may take a fair few minutes if the file is very large.") return @@ -79,7 +79,7 @@ This can be changed by modifying FTPDELAY's value above. PLEASE USE RESPONSIBLY, Some log files canr each sizes of 4MB! */ -var/fileaccess_timer = 0 +var/global/fileaccess_timer = 0 /client/proc/file_spam_check() var/time_to_wait = fileaccess_timer - world.time if(time_to_wait > 0) diff --git a/packs/sierra-tweaks/objects/items/fruit_jar.dm b/packs/sierra-tweaks/objects/items/fruit_jar.dm index 92baeaa602000..2f68205ae3ec8 100644 --- a/packs/sierra-tweaks/objects/items/fruit_jar.dm +++ b/packs/sierra-tweaks/objects/items/fruit_jar.dm @@ -17,3 +17,15 @@ icon_state = "fruitjar" else icon_state = "fruitjar_empty" + +/obj/item/reagent_containers/food/snacks/grown/apple + plantname = "apple" + +/obj/item/reagent_containers/food/snacks/grown/orange + plantname = "orange" + +/obj/item/reagent_containers/food/snacks/grown/lime + plantname = "lime" + +/obj/item/reagent_containers/food/snacks/grown/lemon + plantname = "lemon" From 8cd30c3813b1703d6f6092d1663e975256f40be6 Mon Sep 17 00:00:00 2001 From: emmanuelbassil <6874235+emmanuelbassil@users.noreply.github.com> Date: Tue, 5 Sep 2023 17:03:33 +0300 Subject: [PATCH 006/158] [MIRROR] Fixes parrot icon on death --- .../simple_animal/hostile/retaliate/parrot.dm | 9 ++++----- icons/mob/parrot.dmi | Bin 24832 -> 0 bytes 2 files changed, 4 insertions(+), 5 deletions(-) delete mode 100644 icons/mob/parrot.dmi diff --git a/code/modules/mob/living/simple_animal/hostile/retaliate/parrot.dm b/code/modules/mob/living/simple_animal/hostile/retaliate/parrot.dm index 1cdb4cd5381ba..9c3882d9e9afc 100644 --- a/code/modules/mob/living/simple_animal/hostile/retaliate/parrot.dm +++ b/code/modules/mob/living/simple_animal/hostile/retaliate/parrot.dm @@ -114,6 +114,10 @@ var/headset = pick(spawn_headset_options) ears = new headset(src) + icon_state = "[icon_set]_fly" + icon_living = "[icon_set]_fly" + icon_dead = "[icon_set]_dead" + parrot_sleep_dur = parrot_sleep_max //In case someone decides to change the max without changing the duration var verbs += /mob/living/simple_animal/hostile/retaliate/parrot/proc/steal_from_ground @@ -134,11 +138,6 @@ . = ..() stat("Held Item", held_item) -/mob/living/simple_animal/hostile/retaliate/parrot/on_update_icon() - icon_state = "[icon_set]_fly" - icon_living = "[icon_set]_fly" - icon_dead = "[icon_set]_dead" - /* * Inventory */ diff --git a/icons/mob/parrot.dmi b/icons/mob/parrot.dmi deleted file mode 100644 index 1a7ffcc8a470fa28b316d80c856d3bec13aae177..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 24832 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 Kl`0gh-~Sf|9k%EI From 91973cbebb9ca8fba3509eb2c80077dc91ffe00f Mon Sep 17 00:00:00 2001 From: cuddleandtea <105150564+cuddleandtea@users.noreply.github.com> Date: Tue, 5 Sep 2023 17:03:25 +0300 Subject: [PATCH 007/158] [MIRROR] New cryo cell sprite --- code/game/machinery/cryo.dm | 2 +- .../obj/machines/medical/cryogenics_split.dmi | Bin 5694 -> 8892 bytes 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/code/game/machinery/cryo.dm b/code/game/machinery/cryo.dm index 3a32cde5d6cc0..37b7b08303f8d 100644 --- a/code/game/machinery/cryo.dm +++ b/code/game/machinery/cryo.dm @@ -225,7 +225,7 @@ if(occupant) var/image/pickle = image(occupant.icon, occupant.icon_state) pickle.CopyOverlays(occupant) - pickle.pixel_z = 18 + pickle.pixel_z = 11 AddOverlays(pickle) I = image(icon, "lid[on]") diff --git a/icons/obj/machines/medical/cryogenics_split.dmi b/icons/obj/machines/medical/cryogenics_split.dmi index 5ebe2fc53fd375ab3a86b89204d41ebdc6d37072..ae3b6b8f63befbf69b799a876a95773a1ab1c142 100644 GIT binary patch literal 8892 zcmai)c|25K{Qs|gUnZdtV~es&S;ELJGDHlLCE2otkZokiQkIAihGa`2`x0Xfm3_}X zcCw7E8D_@s`uu*6-(TO~>M+rB(E|X$q^GNSAKd1G zzc5;A@c+$Ydv0)39B7L0)qLXf*xSX+*TvHV00Oe&6Ti_%NVC3Ln=v7*TgLtI`+Z*k zlUojb`RN|?CjYCnmJk~KyogI44H3I%J7t|U+b0nF^^KAxdm>}P!8d{9%IlZCvbgNE zrst{EH{9CRrVF7?+qFFxwnd?@a#V%5BKiFhBntq50(zQvOarpELxSA6Cz@B~ zHSV(vUpUHjXcmvEz9{17R#&;CR8wA1R+lhcUB~1%&7Iq7-9dJode56p?pW(juIT=x zrlkGo)WRGI(uVxo{6UN4JS=3@6vU*jU1>Ngw59A;E|yX4@OC`nlcrv9%8k=*+?#&J zHNE=++*k@~0jK`o^3ewy@@xM68J_8H-$LG9D9=*vn@2z8{`}Mx+ZN3yXywUXS2K@3 z5ViKhZuTuY%aKQS#5&6fl!?q=VHVk}n-iW|J4UH;bD$#yCY$_O$Zs5^AI2|EJx-J< zHIs=*nt&bS1O-dG9uPOVBlb@|tkiWS=TtZU(QlcMNxP>Xe4J+aBF(N;F-QM1wo0pX z)`k{rSwDonG=UnS>^eEN!zvmYNespOW5^aKfjCRc?f!8{E&T-vEk}da%sW`SXyr*QPMGKc%8V!)JW&+T2 zpt8{7lmRP$F4fLXi;!qZC2B(nA*a8i>>BrNlTU76Tj;CPd6EBw55E{zQd{td*f1C# z?e3BE5XXbAVVcmati+&Y*#HrAt+;mZ^ZQD7sluy&pQNH z-3haxvCg7yPs=b(FIeCb-=)A_^OynNpf?$Z@v*S*3-&__9OZL7W)f<4=d%YPhxS|k z;F-9eQC$rVvSsg^TuRi}oJ=FNH{pUP@rzTJHvMf*=Lq6;-j&m)4=P9tySYJy_h9o}8Rm z`*8{I^U&xaN>Ak3e$5CFR>TVv zVCQG2OVt#OgLB{?mT6}NZ_BkWy12~`mG?~F9}8a|In}vp6Y|)o)B}JHsMA$<(f~*E z^D!s>p)3jaR!3nEY!a7867S+NR<#e_-eL*WAU9>>gYXhBiyB1MogGd|tJH3JH~i)y z2W-oq=N38LxT=nd+Y(o9C7V2r_iW?a!=$dAsjkfsOvoZTM(jJXpd7F7{_(q8_gFyH z-(RHcA-9RLR5Pg$Y$RcQ?4Dk5W5uNLS^sVuG`=}#bjvexUUV~HJVmzEW?vjZH{?vI zqVnN&paF9$k%hpX#<{jIsOPc1cr7{jyT2dhe2^Dwiymz5_U+`Vf!d(cg`J(wASa#9 zfxF#eRE_oUHmJn-**JPGq~kYfBf}!m{c)+?V$qr)uhnY?%`op!k2BS`Hs)cLLy1CH zU|b}f!b`?RrCY)roPV^I%?w(^zM3>zGo-SR^%+77mFH%r#$FOn{V0-Z$y^|Fm(U4T zb>yr<&B-0J;C^4Tm3Jp6WB*b)`b-6A{i>#0dP3FKSpB!xQE`u{;j(Nu5cH4!2(G-} zbM_PqpL&;&M|}f~x>orkw{LJBx*09PjS0f2H)?9H;gY!s|8Z|XA^2b3uH9(@i3dA$IyaBx z;}Ep_?!8}Kk`qq-G}XSgH`=_?XluB#+p#9Eu#xL``^Qhp)@SFAkiL@e@zrB1fxLjw zTJ537|+l+rD=;U;fc4Ed6&Aif^He~tqwcgt> z99O-!MdNqevNt}3wj%rqIV%{S4Q2q`B;PMi^UfRX-V+xOteg@@SRCIK;do}_JTf>D z6!?-?BDCXs8pnJ8P>=q{F2*o(mCzqOZ=8qIQtA%gsnxN>(;gJ$P2gX)k>ReAgKKl1 z`&LMCS;?@9NL7r;{q*J&;l|kzuYbO_z7D2Y5aQ3?k>JNEY@nGQa+{y*CJ>hGfN-b_ z_L`Ow-Y?LG+?#;+qU=T~eZ)=ka33VHL56ifBi;B|EiMsM`CKe}{JdjEHcsVpp?3+6 zg`p+F;;w{3LEF4K3*o^lbt&d(&FS$|+tSMLCs7>XX6<=(%s{d%7Jv2AEdO1L&$BzM zo*yV8DD34KGa7|xEZ~2_(1AzK>u>qBdiX;*tQ5=fUYa+=csIBHs@z)TE1w;eW+>JA z+i;5=(!s!6I?L>#idp2&e&nJ2-DRCO1Y3gTX6MVzs&K|~U&u`#+SG)RS51{m(}(jw zl67_K$h5v)e)vA7NXF;hb=7tnpc@sG;pytC;bb0t>9XEMp&J@tC}2xr+qYm2REbSG z{Cz>dL4dS0(EMBMsEh0!?T)5E)li~~>z=mLs`7Ze#9X~R*lrH92F7GboletyCF&U6B$rq%AqVpx#S=q?7>1EksK1RS24+R0Xq~7 zE{?XgUO>KJ{<>eeref3V%YXd|xpPyI_zGzypA+K0u5BIOK-z;vTFKx;MGnEmtZVl) zgFl77QX4~Y*vxP~a_O8ef$dx@pn5zzi4jJtJu<=(YX6tuX9ntzezZjwp;JUBLUTR{Rj_gQI#g6UAOka z1V;m0uwsY%@+r7G)BZDE>M|aR5meT0lPubvp|&#kk_fAJDK6K)naOkT=t}waag2b& z`w_nm2dxF<#?K?{avHA*p>R6v@DoMB5xy11-t)qcKf6E7E&zKg>${-pu<@5jP{Cc2 zX!e-=Z2r0HdKSBi5C=1SiDW&^nr@Myx$uD&`XPZ{Bf?3N@wAA1{aI62h&H-jTybul z^Szz1Lg-eTwT>sMLE3=t{pwgd;XY+eAGd9+a*NF(QFrK9|sS+kU|0tcNpV83EV+V&V9-s2|w zbUuV5yoQ3=$hu_4`pcNXb;S84_l7BT?RBx_UdGizC*kaDQVBqKDFfF27(g1kS+hP# zYaB@`37d484aKz@1L+F?diNrw7B$V^vr zu)hEfuU-f0$L}TWPZL6MMUnk8U_YNtq2cR{b6`ZCkh0dio~q@m7&}V8B?|FB)#k8ZGd1qVYTS2Kj zSIZa=@zC<%K;_R+w5{{O_}t{m)4n0R#oFL(b~9Shx5t!RV6BddybyYeJfolRL!j`_gyCR3O4dvt%35lNbaQxVPmPv>Q9&OVX006 zfwR`1HC!m~vb21dn%mkLRy;k5uDk$+#z^NN+6(ma>wR4=0u>GZuS*^$?Jr-#b|!zs zElbOen%#M3e5=lus~V92`zH%OnFIJC_}Ql2Ydbo!F8AkR)|dC-RHoA}I(hWYHA8)% z4?>21PES+m){ab&lFf^E1%OK@oBke6wlJ@v=bcXuAT8u_dZYgV!G zh4|_Xiy+!;!T`OCL6{5_Ry!&czFe9sSCQ5Pv!nT4WZM-lXl{mI! zGf+YPgMc@HCH`43QET}C= z(5}cNMHVdAk(aIwm>0vYbVGZAH1UW_){i7rZ`J{dun0MijKgk0(O0-pTulYX|1P{r z*l-^GaUrL^S^J=U8P}2Bm~Nu|+D1}U*jdXd6NMxRFL3UrW27!><5DZq&g(e2AQhTs z?SAqZ!h;3qwpq+2o(D*Rf>D$7zJJY4>?+!_{bN@-r9H%H6+_W5?xo4-=z)6LH^9-s zSEiIRYG7nGjWT30af5wFH;|v^%}6HM@0ZRN*5FnUPm%5S52`?uF8B0Psf^X!R1|oJ z`^mllccOOFY}kbWe{zT%9P`<|7B&W<62;gN(I}W*3Eo0&uP9$C{4!EW|Mf3!x~RAB z6hHmC9Tp3F$ocQua{7Ej$3?W|d)BotBgfsRByBB{`ljbaOM+Y|VJ|Q1^)?u5FJ(=z zlWoIAZFaqHem-GKOGZ(}z-IFWQ(9zt51*+di8^)a_b0)!?~sDUe^%rA#$l*_7l}}E z3_Jjo{0#!>hfm|w22gtqHZ5O*5(*aH8)y&iN8dOsi}UJ?xaw4#;0Rrz1Bl+;hCNUx=s0uo$7K{P#9V zzK(gqEtvs-Qi^L@VC7kHnJA%1;o4xQScsQ&gI+5VSa#A2W6;v z8Ij{$vWi_6OpUYom%*y-w^cJfM#UCO8G{4v_&VhMT3v#R>;#?Gx@y2wRJQCgxxQ~~ zSoAsMvWDK2YcK4-#)dK`1rzAd%}>bY-SBAKaavS3kxswYlj* z@`Kzv;*xrhD!_tlv;vG~=gPQ3+}yv;9Ugw^9xwE~@<9sC_4_x2+)t@)OVAFI7^YnFQ(nf7gqcidW$}8WI~uY&QHPU+qpBT4Q5(t2|Ob zlzQU1V+xkd-6)uko*)14l&HS$PVwe4NAj(QGu(5B!Mvb*2#ytI1Xp(rmC!#ZFHi=x zWu&&q{z0)K^eAJ@`I`r)YY23=o0JAeM_-*wvG)|{K#qrDFdntK#ql|mpcrnyc>RN-+pAaj%C~ncZ<01MqRNSte` zs*_GW9Eu46dVw%Z6#{6G}6Ytit@SM9`&%&VRhHd5KJoVO=pc(&vn?tOnujXcc?DN>mtXVJWjKi2Xv z(h{#vn@XUo!HvLqo6{Xz;onIxv>x`rwl#u=!LcCz4vsC6*mt&wxcVg0=HE>w*p(*P z{<%2&b(?LOnIz=u3|}{Xhbg=U@e;REG|`=(NBgS9J^bu1U$=a<+yW=jihk8*`-Bg< z^JLD#JQ{q@5Mq1Q;VI!%6?}6*)&j5%Fk&*x;parfiRvPC$hzIMsK$wri?b~+ z89J`ATb{pJ4tcLlV2b)aiz~a5L8(0wNd4Uy$uzsqG3#&k!FFFtI#*pEW~QXXKDpd! z@v5Yq`joLXJrrp9%XEE$d#6z;4e|ByJhk^1oplSD)8m;s%Te+K6>TgJxlwG`7W2v~ z909S7<^Ly=rSh+LacrR>WVLo}m*f8LsGAK(n|L65U?Lx8t%wD$RJis=N6{z%L1^Pgq{z5g>8)O{ z%Xo7N9_R_1SwkJq#C0oKWb4s7+}w~*N{4|@g8KaOZue5$lQ$rn`3g|#m49ND|547l z%2NM`xbZUzS)+E!<~obHH-^-KktR;j5m5DoCKh6i(N!DpMt{#Apfn0ZWBsg1b%B<_ z?WnA}m1UE&?A!jY_1j2c-d{wJjou4L(t3x6)c5BcH;??}>g0oejrMMaB?RV8Gpr#` z7HpU{wyV;PIH^R37n2(1Ii!v$7=aKgfAG(V0og^-_M z#2yg8ww@dpiP3~|!FiRW54T_s!H0Y;fib~iB#xu4XCyK9YnT0&eLzm4Xqv{>ogJQ#t<#4c2ZzjEhTEFb>*!Acm} zUR7mcKfT{JUe-Z%O0l}g;sp68@e*cTLd3@Pl}8%Lh32#{MH9{+l^@l%%z zznnf|v)-696>iyRY+J>^Y*k5KXQx~DVG8(vW5-1)r;G7(O)i!12(F~yUob`GlJ4?X zlinA<6;Mu^9xDUlCmop>iZBsoW=4sVjUx1{WU zrSZ>}S!PKuf?c5qa|)>F9PqnI*r+C8fwq{U#&3{}3)qpQgQ|AYBb88Lp-Bbk%(iWL zsUqqYmVj`(MiykvB*362ly+2v6B|SM&L^SS)>IYUs!8YJREXgP@hc#$BpU|?JFL(} zF)eFT`?#LH?^@DbphmgNimdnW=WD?QuhbMc;$5V{_@L`N*YSl6_DgzOQfVY`)6qJ$R4ej34k7 z(kaG?-{)k|#&1mTnbQ^Eh(4CJ-pG1tv)PCQXj9u_{0|J`(IYcCE%8Fw6{Z&>YD`_L zo|VquD_8+_NUz@wLctGL<Q1e>#nIV8m?cN>4^2%-UUc$z>ro@LOso z^|&}X4?%Dpe7e;;pXm~b9)%v+eAQ8(X5mvf;9O%txL4V~j561c^afvjDl=)#DW;|> z7JW*goWK1;y&}=biCb70)Cw)DQA#9b>uj{YHuq%K$%iQL7;5H2o~ht>ycCSlN0Pm& z=Qz0nCw#GOt~rP`J)`@RCnHGs-TJONrioG0(15ur;jT=bR_}wN(%foWP+fAwn;TDf zHg6RxpO6{FhXU+c8jvoTAN1q$op}oOOw=(MMhWS_oya3c3sG#yGrX)))0;lpl7&(h zu?jH4cC3K0}>GMy|zEupyNcosmkI z(Q7u~=H!ku9xEm)B^ubFng5oDjGg`usy{DfCYYUwzi#wOGtAOj>RUbQ16?_x`PA`i zS_T++w4(^C39qMQ6wI2cAWBrtGT57}3u7$959!i=(rCE_-c|1Q1NbLXk}vx^P>tqV zR@&8CMZMeI*rmZ1ZEfu8=s)GY?;=?ge2utqT~y)=U>mRV@-wv%+vQ32!mWmfW#1=` z4$B>KK<4}4wSJ?>16O1#{W$YqeU0)15NNJ@xVC-VrB050M|$)EnxktsAuC@cQ2-1_vsaH{!5H^ zj~ClI?0s}Qbq-dx;Qs#?K6V|imD;-7X8+F&aZO36Zx*8UYt}n@_>2UW(3u{=;GmxH_PYHuLVq6luG&_kNGddUoI&a2Y*pdppJt}q#PWuw{y7Q7$|7-XF~Oh&?HfBxNe zEc(>vGKzvToe{sn_I3@M-&T=MtrIb?2Vf6^X{@L=ZOIl!V>vG))#`Oy=lR0Z&U&kXo;X11!ZOEBzgL$hGs|jB^7C`A(a1kB=N&^knwQKsfS_H(0)^89@q`KeZs#A(6)W@}rY6H1^*<@*q|CyEB(SYh{4d z-b=<~h6{{=*3~(QLgu?aQyzn)D-M&AKMHEdy#XhVildkfodYqWm-Z2H9KWz@k5={O zxuHS==%9ZpT@jFOivKS_Q>=HcTY8CLWFU?y_}7!I0m`BLQ8e~4538rYp>1CsQLTvG zO(pF!_m+dMA_zZP7HLz{3Cuhi{580Q?*U N(9<&1EK|1)|6k4&pt%45 literal 5694 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 Date: Tue, 5 Sep 2023 17:03:18 +0300 Subject: [PATCH 008/158] [MIRROR] Drag and drop tables --- code/modules/tables/tables.dm | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/code/modules/tables/tables.dm b/code/modules/tables/tables.dm index cc4f50223e69e..5923731050b1e 100644 --- a/code/modules/tables/tables.dm +++ b/code/modules/tables/tables.dm @@ -227,11 +227,16 @@ return TRUE -/obj/structure/table/MouseDrop_T(obj/item/stack/material/what) - if(can_reinforce && isliving(usr) && (!usr.stat) && istype(what) && usr.get_active_hand() == what && Adjacent(usr)) - reinforce_table(what, usr) - else - return ..() +/obj/structure/table/MouseDrop_T(atom/dropped, mob/user) + // Place held objects on table + if (user.IsHolding(dropped)) + if (!user.use_sanity_check(src, dropped, SANITY_CHECK_DEFAULT | SANITY_CHECK_TOOL_UNEQUIP)) + return TRUE + user.unEquip(dropped, get_turf(src)) + return TRUE + + return ..() + /obj/structure/table/proc/reinforce_table(obj/item/stack/material/S, mob/user) if(reinforced) From c77733c41e1c5ef53758fd844991cef79ebcb498 Mon Sep 17 00:00:00 2001 From: SierraKomodo <11140088+SierraKomodo@users.noreply.github.com> Date: Tue, 5 Sep 2023 17:03:12 +0300 Subject: [PATCH 009/158] [MIRROR] Allow intent-agnostic table frame interactions --- code/modules/tables/tables.dm | 32 ++++++++++++++++++++++---------- 1 file changed, 22 insertions(+), 10 deletions(-) diff --git a/code/modules/tables/tables.dm b/code/modules/tables/tables.dm index 5923731050b1e..0da1ba4e3b3ca 100644 --- a/code/modules/tables/tables.dm +++ b/code/modules/tables/tables.dm @@ -143,15 +143,9 @@ // Material - Plate table if (istype(weapon, /obj/item/stack/material)) - if (material) - reinforce_table(weapon, user) - return TRUE - material = common_material_add(weapon, user, "plat") - if (material) - update_connections(TRUE) - update_icon() - update_desc() - update_material() + if (!material) + return FALSE // Handled by `use_tool()` + reinforce_table(weapon, user) return TRUE // Welding Tool - Repair damage @@ -216,10 +210,28 @@ /obj/structure/table/use_tool(obj/item/tool, mob/user, list/click_params) SHOULD_CALL_PARENT(FALSE) - // Put things on table + // Unfinished table - Construction stuff if (can_plate && !material) + // Material - Plate table + if (istype(tool, /obj/item/stack/material)) + material = common_material_add(tool, user, "plat") + if (material) + update_connections(TRUE) + update_icon() + update_desc() + update_material() + return TRUE + + // Wrench - Dismantle + if (isWrench(tool)) + dismantle(tool, user) + return TRUE + + // Anything else - Can't put it on an unfinished table USE_FEEDBACK_FAILURE("\The [src] needs to be plated before you can put \the [tool] on it.") return TRUE + + // Put things on table if (!user.unEquip(tool, loc)) FEEDBACK_UNEQUIP_FAILURE(user, tool) return TRUE From a4ced31a23e39cde28c35bc694534002724b9e07 Mon Sep 17 00:00:00 2001 From: Sierra Helper <125094432+SierraHelper@users.noreply.github.com> Date: Tue, 5 Sep 2023 18:21:07 +0300 Subject: [PATCH 010/158] =?UTF-8?q?=D0=A7=D0=B5=D0=B9=D0=BD=D0=B4=D0=B6?= =?UTF-8?q?=D0=BB=D0=BE=D0=B3=20=D0=B4=D0=BB=D1=8F=20PR=20#976=20[ci=20ski?= =?UTF-8?q?p]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- html/changelogs/AutoChangeLog-sierra-pr-976.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-sierra-pr-976.yml diff --git a/html/changelogs/AutoChangeLog-sierra-pr-976.yml b/html/changelogs/AutoChangeLog-sierra-pr-976.yml new file mode 100644 index 0000000000000..25aaa043a3648 --- /dev/null +++ b/html/changelogs/AutoChangeLog-sierra-pr-976.yml @@ -0,0 +1,4 @@ +author: emmanuelbassil +delete-after: true +changes: + - bugfix: Parrot icon properly updates on death again From dd1c8ac2ecdc85c3994c22437e429f11c8c7c86d Mon Sep 17 00:00:00 2001 From: Sierra Helper <125094432+SierraHelper@users.noreply.github.com> Date: Tue, 5 Sep 2023 18:21:13 +0300 Subject: [PATCH 011/158] =?UTF-8?q?=D0=A7=D0=B5=D0=B9=D0=BD=D0=B4=D0=B6?= =?UTF-8?q?=D0=BB=D0=BE=D0=B3=20=D0=B4=D0=BB=D1=8F=20PR=20#974=20[ci=20ski?= =?UTF-8?q?p]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- html/changelogs/AutoChangeLog-sierra-pr-974.yml | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-sierra-pr-974.yml diff --git a/html/changelogs/AutoChangeLog-sierra-pr-974.yml b/html/changelogs/AutoChangeLog-sierra-pr-974.yml new file mode 100644 index 0000000000000..be1e8d8a8fcba --- /dev/null +++ b/html/changelogs/AutoChangeLog-sierra-pr-974.yml @@ -0,0 +1,6 @@ +author: SierraKomodo +delete-after: true +changes: + - rscdel: Click+dragging a stack of metal on a table no longer reinforces the table. + - rscadd: Click+dragging held items onto a table now puts that item on the table + regardless of intent. From b0dc6e0fe65b13892d1b5fe785b99a47f6fd844e Mon Sep 17 00:00:00 2001 From: Sierra Helper <125094432+SierraHelper@users.noreply.github.com> Date: Tue, 5 Sep 2023 18:21:19 +0300 Subject: [PATCH 012/158] =?UTF-8?q?=D0=A7=D0=B5=D0=B9=D0=BD=D0=B4=D0=B6?= =?UTF-8?q?=D0=BB=D0=BE=D0=B3=20=D0=B4=D0=BB=D1=8F=20PR=20#975=20[ci=20ski?= =?UTF-8?q?p]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- html/changelogs/AutoChangeLog-sierra-pr-975.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-sierra-pr-975.yml diff --git a/html/changelogs/AutoChangeLog-sierra-pr-975.yml b/html/changelogs/AutoChangeLog-sierra-pr-975.yml new file mode 100644 index 0000000000000..efd359e8d6ed5 --- /dev/null +++ b/html/changelogs/AutoChangeLog-sierra-pr-975.yml @@ -0,0 +1,4 @@ +author: cuddleandtea +delete-after: true +changes: + - imageadd: new cryo cell sprite From 776b81323992b31c9c45b99aececfc0873656ed4 Mon Sep 17 00:00:00 2001 From: Sierra Helper <125094432+SierraHelper@users.noreply.github.com> Date: Tue, 5 Sep 2023 18:21:39 +0300 Subject: [PATCH 013/158] =?UTF-8?q?=D0=A7=D0=B5=D0=B9=D0=BD=D0=B4=D0=B6?= =?UTF-8?q?=D0=BB=D0=BE=D0=B3=20=D0=B4=D0=BB=D1=8F=20PR=20#973=20[ci=20ski?= =?UTF-8?q?p]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- html/changelogs/AutoChangeLog-sierra-pr-973.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-sierra-pr-973.yml diff --git a/html/changelogs/AutoChangeLog-sierra-pr-973.yml b/html/changelogs/AutoChangeLog-sierra-pr-973.yml new file mode 100644 index 0000000000000..2cbce13c0d0bb --- /dev/null +++ b/html/changelogs/AutoChangeLog-sierra-pr-973.yml @@ -0,0 +1,4 @@ +author: SierraKomodo +delete-after: true +changes: + - bugfix: Table frames can now be plated or dismantled regardless of user intent. From ce5669b2b0c2538d536829d4e017f2083b05eff5 Mon Sep 17 00:00:00 2001 From: SuhEugene <32931701+SuhEugene@users.noreply.github.com> Date: Tue, 5 Sep 2023 17:43:51 +0300 Subject: [PATCH 014/158] Remove ICGNV Ship --- maps/sierra/sierra.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/maps/sierra/sierra.dm b/maps/sierra/sierra.dm index 36973a53dcc72..386aed4a3e8db 100644 --- a/maps/sierra/sierra.dm +++ b/maps/sierra/sierra.dm @@ -160,7 +160,7 @@ #include "../away/mininghome/mininghome.dm" #include "../away/scavver/scavver_gantry.dm" #include "../away/abandoned_hotel/abandoned_hotel.dm" - #include "../event/iccgn_ship/icgnv_hound.dm" // SIERRA TODO: Пофиксить или удалить + // #include "../event/iccgn_ship/icgnv_hound.dm" // SIERRA TODO: Пофиксить или удалить // USED MODS // Keep them in ascending alphabetical order, please From c9e5a28eadef3b0993adbb5bfd0e1fb68fb60099 Mon Sep 17 00:00:00 2001 From: Sierra Helper <125094432+SierraHelper@users.noreply.github.com> Date: Wed, 6 Sep 2023 01:15:44 +0000 Subject: [PATCH 015/158] =?UTF-8?q?=D0=90=D0=B2=D1=82=D0=BE=D0=BC=D0=B0?= =?UTF-8?q?=D1=82=D0=B8=D1=87=D0=B5=D1=81=D0=BA=D0=B0=D1=8F=20=D0=BA=D0=BE?= =?UTF-8?q?=D0=BC=D0=BF=D0=B8=D0=BB=D1=8F=D1=86=D0=B8=D1=8F=20=D1=87=D0=B5?= =?UTF-8?q?=D0=B9=D0=BD=D0=B4=D0=B6=D0=BB=D0=BE=D0=B3=D0=BE=D0=B2=20[ci=20?= =?UTF-8?q?skip]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- html/changelog.html | 32 +++++++++---------- html/changelogs/.all_changelog.yml | 10 ++++++ .../AutoChangeLog-sierra-pr-973.yml | 4 --- .../AutoChangeLog-sierra-pr-974.yml | 6 ---- .../AutoChangeLog-sierra-pr-975.yml | 4 --- .../AutoChangeLog-sierra-pr-976.yml | 4 --- 6 files changed, 26 insertions(+), 34 deletions(-) delete mode 100644 html/changelogs/AutoChangeLog-sierra-pr-973.yml delete mode 100644 html/changelogs/AutoChangeLog-sierra-pr-974.yml delete mode 100644 html/changelogs/AutoChangeLog-sierra-pr-975.yml delete mode 100644 html/changelogs/AutoChangeLog-sierra-pr-976.yml diff --git a/html/changelog.html b/html/changelog.html index a7abb756c2e1c..cdaa97ab03b08 100644 --- a/html/changelog.html +++ b/html/changelog.html @@ -28,6 +28,22 @@

Sierra SS13

-->
+

06.09 - 2023

+

Обновления SierraKomodo:

+
+
Table frames can now be plated or dismantled regardless of user intent.
+
Click+dragging a stack of metal on a table no longer reinforces the table.
+
Click+dragging held items onto a table now puts that item on the table regardless of intent.
+
+

Обновления cuddleandtea:

+
+
new cryo cell sprite
+
+

Обновления emmanuelbassil:

+
+
Parrot icon properly updates on death again
+
+

05.09 - 2023

Обновления SuhEugene:

@@ -495,22 +511,6 @@

Обновления Ryan180602:

The Torch will be removed from the overmap during jump.
If the drive is missing/destroyed, there will be no jump, round will simply end after the same amount of time.
- -

05.07 - 2023

-

Обновления SuhEugene:

-
-
Fixed overmap placeholder objects visibility and big objects positioning.
-
Fixed overmap animation of distant objects.
-
Sensors mute now mutes sensors.
-
Sensor scan progress formula has changed completely to be less vessel-mass-based. Sensors scan everything a way more faster than before.
-
Placed a little better sensors on Torch.
-
Scan progress added to UI instead of chat spamming.
-
Sensors have a memory and will remember anyone who goes out of range, however every turn off progress goes down by 18 percents.
-
Sensors view is round now.
-
Slightly improved sensor scan display look.
-
Slavage Gantry now twice as heavy.
-
Made overmap darker, much better on the eyes.
-
diff --git a/html/changelogs/.all_changelog.yml b/html/changelogs/.all_changelog.yml index 63926af772cc1..d94298871d37d 100644 --- a/html/changelogs/.all_changelog.yml +++ b/html/changelogs/.all_changelog.yml @@ -21719,3 +21719,13 @@ DO NOT EDIT THIS FILE BY HAND! AUTOMATICALLY GENERATED BY sierra_genchangelog.p cuddleandtea: - bugfix: admins can now re-exit their old mobs after entering other mobs and going back +2023-09-06: + SierraKomodo: + - bugfix: Table frames can now be plated or dismantled regardless of user intent. + - rscdel: Click+dragging a stack of metal on a table no longer reinforces the table. + - rscadd: Click+dragging held items onto a table now puts that item on the table + regardless of intent. + cuddleandtea: + - imageadd: new cryo cell sprite + emmanuelbassil: + - bugfix: Parrot icon properly updates on death again diff --git a/html/changelogs/AutoChangeLog-sierra-pr-973.yml b/html/changelogs/AutoChangeLog-sierra-pr-973.yml deleted file mode 100644 index 2cbce13c0d0bb..0000000000000 --- a/html/changelogs/AutoChangeLog-sierra-pr-973.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: SierraKomodo -delete-after: true -changes: - - bugfix: Table frames can now be plated or dismantled regardless of user intent. diff --git a/html/changelogs/AutoChangeLog-sierra-pr-974.yml b/html/changelogs/AutoChangeLog-sierra-pr-974.yml deleted file mode 100644 index be1e8d8a8fcba..0000000000000 --- a/html/changelogs/AutoChangeLog-sierra-pr-974.yml +++ /dev/null @@ -1,6 +0,0 @@ -author: SierraKomodo -delete-after: true -changes: - - rscdel: Click+dragging a stack of metal on a table no longer reinforces the table. - - rscadd: Click+dragging held items onto a table now puts that item on the table - regardless of intent. diff --git a/html/changelogs/AutoChangeLog-sierra-pr-975.yml b/html/changelogs/AutoChangeLog-sierra-pr-975.yml deleted file mode 100644 index efd359e8d6ed5..0000000000000 --- a/html/changelogs/AutoChangeLog-sierra-pr-975.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: cuddleandtea -delete-after: true -changes: - - imageadd: new cryo cell sprite diff --git a/html/changelogs/AutoChangeLog-sierra-pr-976.yml b/html/changelogs/AutoChangeLog-sierra-pr-976.yml deleted file mode 100644 index 25aaa043a3648..0000000000000 --- a/html/changelogs/AutoChangeLog-sierra-pr-976.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: emmanuelbassil -delete-after: true -changes: - - bugfix: Parrot icon properly updates on death again From c23066d24dcfa7356a68149097237c52f86289b2 Mon Sep 17 00:00:00 2001 From: Sierra Helper <125094432+SierraHelper@users.noreply.github.com> Date: Thu, 7 Sep 2023 01:15:35 +0000 Subject: [PATCH 016/158] =?UTF-8?q?=D0=90=D0=B2=D1=82=D0=BE=D0=BC=D0=B0?= =?UTF-8?q?=D1=82=D0=B8=D1=87=D0=B5=D1=81=D0=BA=D0=B0=D1=8F=20=D0=BA=D0=BE?= =?UTF-8?q?=D0=BC=D0=BF=D0=B8=D0=BB=D1=8F=D1=86=D0=B8=D1=8F=20=D1=87=D0=B5?= =?UTF-8?q?=D0=B9=D0=BD=D0=B4=D0=B6=D0=BB=D0=BE=D0=B3=D0=BE=D0=B2=20[ci=20?= =?UTF-8?q?skip]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- html/changelog.html | 20 -------------------- 1 file changed, 20 deletions(-) diff --git a/html/changelog.html b/html/changelog.html index cdaa97ab03b08..79fec546f0c34 100644 --- a/html/changelog.html +++ b/html/changelog.html @@ -491,26 +491,6 @@

Обновления Mucker:

The 'Remove Accessory' Verb now uses a radial menu.
- -

06.07 - 2023

-

Обновления Alex6511:

-
-
Torch side navigation light colors are laterally accurate. Dorsal and ventral colors also included, should someone do something absurd and vertical!
-
-

Обновления Dr. Farson:

-
-
Split armor tags into separate loadout options - flags, blood type, and corporate insignia.
-
Added a fleet flag armor tag.
-
-

Обновления Fre3bie:

-
-
Corpse Cube now copies the flavour text with the DNA sampler.
-
-

Обновления Ryan180602:

-
-
The Torch will be removed from the overmap during jump.
-
If the drive is missing/destroyed, there will be no jump, round will simply end after the same amount of time.
-
Icons by Icons8
From b8200f52667e2c5021e93ae69ea288c1fefea22a Mon Sep 17 00:00:00 2001 From: Sierra Helper <125094432+SierraHelper@users.noreply.github.com> Date: Fri, 8 Sep 2023 01:15:55 +0000 Subject: [PATCH 017/158] =?UTF-8?q?=D0=90=D0=B2=D1=82=D0=BE=D0=BC=D0=B0?= =?UTF-8?q?=D1=82=D0=B8=D1=87=D0=B5=D1=81=D0=BA=D0=B0=D1=8F=20=D0=BA=D0=BE?= =?UTF-8?q?=D0=BC=D0=BF=D0=B8=D0=BB=D1=8F=D1=86=D0=B8=D1=8F=20=D1=87=D0=B5?= =?UTF-8?q?=D0=B9=D0=BD=D0=B4=D0=B6=D0=BB=D0=BE=D0=B3=D0=BE=D0=B2=20[ci=20?= =?UTF-8?q?skip]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- html/changelog.html | 11 ----------- 1 file changed, 11 deletions(-) diff --git a/html/changelog.html b/html/changelog.html index 79fec546f0c34..feeb6f1b0fb1c 100644 --- a/html/changelog.html +++ b/html/changelog.html @@ -480,17 +480,6 @@

Обновления LordNest:

Ported input subsystem and keybinding from Nebula. Added Gliding for mob movement.
- -

07.07 - 2023

-

Обновления Jux:

-
-
The adminpm noise is now plays at a lower volume by default, and also plays when someone in your line of sight is paralyzed.
-
The staffwarn noise is significantly quieter, and staffwarns only notify staff when a player joins the round.
-
-

Обновления Mucker:

-
-
The 'Remove Accessory' Verb now uses a radial menu.
-
Icons by Icons8
From 017cc570b73c7bafc474869af13fde008acc4b31 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 8 Sep 2023 17:18:50 +0000 Subject: [PATCH 018/158] Bump actions/cache from 3.3.1 to 3.3.2 Bumps [actions/cache](https://github.com/actions/cache) from 3.3.1 to 3.3.2. - [Release notes](https://github.com/actions/cache/releases) - [Changelog](https://github.com/actions/cache/blob/main/RELEASES.md) - [Commits](https://github.com/actions/cache/compare/88522ab9f39a2ea568f7027eddc7d8d8bc9d59c8...704facf57e6136b1bc63b828d79edcd491f0ee84) --- updated-dependencies: - dependency-name: actions/cache dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- .github/workflows/generate_documentation.yml | 2 +- .github/workflows/test.yml | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/.github/workflows/generate_documentation.yml b/.github/workflows/generate_documentation.yml index 35348e833c27f..5304115f1bfb2 100644 --- a/.github/workflows/generate_documentation.yml +++ b/.github/workflows/generate_documentation.yml @@ -39,7 +39,7 @@ jobs: steps: - uses: actions/checkout@3df4ab11eba7bda6032a0b82a6bb43b11571feac - name: Setup Cache - uses: actions/cache@88522ab9f39a2ea568f7027eddc7d8d8bc9d59c8 + uses: actions/cache@704facf57e6136b1bc63b828d79edcd491f0ee84 with: path: ~/spaceman_dmm/${{ env.SPACEMAN_DMM_VERSION }} key: ${{ runner.os }}-spacemandmm-${{ env.SPACEMAN_DMM_VERSION }} diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 1c5a2d2e7e208..89f79e02b99f1 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -32,7 +32,7 @@ jobs: steps: - uses: actions/checkout@3df4ab11eba7bda6032a0b82a6bb43b11571feac - name: Setup Cache - uses: actions/cache@88522ab9f39a2ea568f7027eddc7d8d8bc9d59c8 + uses: actions/cache@704facf57e6136b1bc63b828d79edcd491f0ee84 with: path: ~/spaceman_dmm/${{ env.SPACEMAN_DMM_VERSION }} key: ${{ runner.os }}-spacemandmm-${{ env.SPACEMAN_DMM_VERSION }} @@ -60,7 +60,7 @@ jobs: steps: - uses: actions/checkout@3df4ab11eba7bda6032a0b82a6bb43b11571feac - name: Setup Cache - uses: actions/cache@88522ab9f39a2ea568f7027eddc7d8d8bc9d59c8 + uses: actions/cache@704facf57e6136b1bc63b828d79edcd491f0ee84 with: path: ~/BYOND-${{ env.BYOND_MAJOR }}.${{ env.BYOND_MINOR }} key: ${{ runner.os }}-byond-${{ env.BYOND_MAJOR }}-${{ env.BYOND_MINOR }} @@ -90,7 +90,7 @@ jobs: steps: - uses: actions/checkout@3df4ab11eba7bda6032a0b82a6bb43b11571feac - name: Setup Cache - uses: actions/cache@88522ab9f39a2ea568f7027eddc7d8d8bc9d59c8 + uses: actions/cache@704facf57e6136b1bc63b828d79edcd491f0ee84 with: path: ~/BYOND-${{ env.BYOND_MAJOR }}.${{ env.BYOND_MINOR }} key: ${{ runner.os }}-byond-${{ env.BYOND_MAJOR }}-${{ env.BYOND_MINOR }} @@ -119,7 +119,7 @@ jobs: steps: - uses: actions/checkout@3df4ab11eba7bda6032a0b82a6bb43b11571feac - name: Setup Cache - uses: actions/cache@88522ab9f39a2ea568f7027eddc7d8d8bc9d59c8 + uses: actions/cache@704facf57e6136b1bc63b828d79edcd491f0ee84 with: path: ~/BYOND-${{ env.BYOND_MAJOR }}.${{ env.BYOND_MINOR }} key: ${{ runner.os }}-byond-${{ env.BYOND_MAJOR }}-${{ env.BYOND_MINOR }} @@ -148,7 +148,7 @@ jobs: steps: - uses: actions/checkout@3df4ab11eba7bda6032a0b82a6bb43b11571feac - name: Setup Cache - uses: actions/cache@88522ab9f39a2ea568f7027eddc7d8d8bc9d59c8 + uses: actions/cache@704facf57e6136b1bc63b828d79edcd491f0ee84 with: path: ~/BYOND-${{ env.BYOND_MAJOR }}.${{ env.BYOND_MINOR }} key: ${{ runner.os }}-byond-${{ env.BYOND_MAJOR }}-${{ env.BYOND_MINOR }} From b79dad1446fbfec62963c559cd7c7ba1f53ee75d Mon Sep 17 00:00:00 2001 From: SuhEugene <32931701+SuhEugene@users.noreply.github.com> Date: Fri, 8 Sep 2023 22:59:20 +0300 Subject: [PATCH 019/158] [MIRROR] Fix faxes take and reply --- code/modules/admin/topic.dm | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/code/modules/admin/topic.dm b/code/modules/admin/topic.dm index 81a05475b4263..4e9a1776f9356 100644 --- a/code/modules/admin/topic.dm +++ b/code/modules/admin/topic.dm @@ -1364,7 +1364,7 @@ // call dibs on IC messages (prays, emergency comms, faxes) else if(href_list["take_ic"]) - var/mob/M = locate(href_list["take_question"]) + var/mob/M = locate(href_list["take_ic"]) if(ismob(M)) var/take_msg = SPAN_NOTICE("[key_name(usr.client)] is attending to [key_name(M)]'s message.") for(var/client/X as anything in GLOB.admins) @@ -1594,6 +1594,7 @@ P.admindatum = src P.origin = replyorigin + P.department = fax.department P.destinations = get_fax_machines_by_department(fax.department) P.sender = sender From 972dcfc39b981af94e604a3cb79ee4d018d43f70 Mon Sep 17 00:00:00 2001 From: Sierra Helper <125094432+SierraHelper@users.noreply.github.com> Date: Fri, 8 Sep 2023 23:47:59 +0300 Subject: [PATCH 020/158] =?UTF-8?q?=D0=A7=D0=B5=D0=B9=D0=BD=D0=B4=D0=B6?= =?UTF-8?q?=D0=BB=D0=BE=D0=B3=20=D0=B4=D0=BB=D1=8F=20PR=20#985=20[ci=20ski?= =?UTF-8?q?p]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- html/changelogs/AutoChangeLog-sierra-pr-985.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-sierra-pr-985.yml diff --git a/html/changelogs/AutoChangeLog-sierra-pr-985.yml b/html/changelogs/AutoChangeLog-sierra-pr-985.yml new file mode 100644 index 0000000000000..7aa37c917e39e --- /dev/null +++ b/html/changelogs/AutoChangeLog-sierra-pr-985.yml @@ -0,0 +1,4 @@ +author: SuhEugene +delete-after: true +changes: + - bugfix: Fixed admin faxes reply. From f17d295826346998f5492c89baef3f797a91d6b4 Mon Sep 17 00:00:00 2001 From: SuhEugene <32931701+SuhEugene@users.noreply.github.com> Date: Fri, 8 Sep 2023 22:59:29 +0300 Subject: [PATCH 021/158] [MIRROR] Fix player panel sends you to nullspace --- code/modules/mob/mob_transformation_simple.dm | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/code/modules/mob/mob_transformation_simple.dm b/code/modules/mob/mob_transformation_simple.dm index 7da3ef65315d0..ededaa5d492bd 100644 --- a/code/modules/mob/mob_transformation_simple.dm +++ b/code/modules/mob/mob_transformation_simple.dm @@ -43,7 +43,8 @@ if(mind) mind.transfer_to(M) - else + + if(key) M.key = key if(subspecies && istype(M,/mob/living/carbon/human)) From da5093caed815bd1cca42ba28b83482e4691a902 Mon Sep 17 00:00:00 2001 From: Sierra Helper <125094432+SierraHelper@users.noreply.github.com> Date: Fri, 8 Sep 2023 23:56:35 +0300 Subject: [PATCH 022/158] =?UTF-8?q?=D0=A7=D0=B5=D0=B9=D0=BD=D0=B4=D0=B6?= =?UTF-8?q?=D0=BB=D0=BE=D0=B3=20=D0=B4=D0=BB=D1=8F=20PR=20#986=20[ci=20ski?= =?UTF-8?q?p]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- html/changelogs/AutoChangeLog-sierra-pr-986.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-sierra-pr-986.yml diff --git a/html/changelogs/AutoChangeLog-sierra-pr-986.yml b/html/changelogs/AutoChangeLog-sierra-pr-986.yml new file mode 100644 index 0000000000000..fcc98933ce164 --- /dev/null +++ b/html/changelogs/AutoChangeLog-sierra-pr-986.yml @@ -0,0 +1,4 @@ +author: SuhEugene +delete-after: true +changes: + - bugfix: Player panel rudimentary transformation no longer sends you to nullspace. From e614d68f71f84a95fba6fc0986b8f21fabf00e5e Mon Sep 17 00:00:00 2001 From: Sierra Helper <125094432+SierraHelper@users.noreply.github.com> Date: Sat, 9 Sep 2023 01:13:29 +0000 Subject: [PATCH 023/158] =?UTF-8?q?=D0=90=D0=B2=D1=82=D0=BE=D0=BC=D0=B0?= =?UTF-8?q?=D1=82=D0=B8=D1=87=D0=B5=D1=81=D0=BA=D0=B0=D1=8F=20=D0=BA=D0=BE?= =?UTF-8?q?=D0=BC=D0=BF=D0=B8=D0=BB=D1=8F=D1=86=D0=B8=D1=8F=20=D1=87=D0=B5?= =?UTF-8?q?=D0=B9=D0=BD=D0=B4=D0=B6=D0=BB=D0=BE=D0=B3=D0=BE=D0=B2=20[ci=20?= =?UTF-8?q?skip]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- html/changelog.html | 13 +++++++------ html/changelogs/.all_changelog.yml | 4 ++++ html/changelogs/AutoChangeLog-sierra-pr-985.yml | 4 ---- html/changelogs/AutoChangeLog-sierra-pr-986.yml | 4 ---- 4 files changed, 11 insertions(+), 14 deletions(-) delete mode 100644 html/changelogs/AutoChangeLog-sierra-pr-985.yml delete mode 100644 html/changelogs/AutoChangeLog-sierra-pr-986.yml diff --git a/html/changelog.html b/html/changelog.html index feeb6f1b0fb1c..2f355ed0b4bc6 100644 --- a/html/changelog.html +++ b/html/changelog.html @@ -28,6 +28,13 @@

Sierra SS13

-->
+

09.09 - 2023

+

Обновления SuhEugene:

+
+
Player panel rudimentary transformation no longer sends you to nullspace.
+
Fixed admin faxes reply.
+
+

06.09 - 2023

Обновления SierraKomodo:

@@ -474,12 +481,6 @@

Обновления Mucker:

Fixed radial menus breaking with too many options.
Fixed being able to remove non-removable accessories.
- -

08.07 - 2023

-

Обновления LordNest:

-
-
Ported input subsystem and keybinding from Nebula. Added Gliding for mob movement.
-
Icons by Icons8
diff --git a/html/changelogs/.all_changelog.yml b/html/changelogs/.all_changelog.yml index d94298871d37d..725903ebc1d45 100644 --- a/html/changelogs/.all_changelog.yml +++ b/html/changelogs/.all_changelog.yml @@ -21729,3 +21729,7 @@ DO NOT EDIT THIS FILE BY HAND! AUTOMATICALLY GENERATED BY sierra_genchangelog.p - imageadd: new cryo cell sprite emmanuelbassil: - bugfix: Parrot icon properly updates on death again +2023-09-09: + SuhEugene: + - bugfix: Player panel rudimentary transformation no longer sends you to nullspace. + - bugfix: Fixed admin faxes reply. diff --git a/html/changelogs/AutoChangeLog-sierra-pr-985.yml b/html/changelogs/AutoChangeLog-sierra-pr-985.yml deleted file mode 100644 index 7aa37c917e39e..0000000000000 --- a/html/changelogs/AutoChangeLog-sierra-pr-985.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: SuhEugene -delete-after: true -changes: - - bugfix: Fixed admin faxes reply. diff --git a/html/changelogs/AutoChangeLog-sierra-pr-986.yml b/html/changelogs/AutoChangeLog-sierra-pr-986.yml deleted file mode 100644 index fcc98933ce164..0000000000000 --- a/html/changelogs/AutoChangeLog-sierra-pr-986.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: SuhEugene -delete-after: true -changes: - - bugfix: Player panel rudimentary transformation no longer sends you to nullspace. From ea0fda55be93a494748d53d43f69d4dd60a54036 Mon Sep 17 00:00:00 2001 From: Reishi42 <20622495+Reishi42@users.noreply.github.com> Date: Sat, 9 Sep 2023 20:45:09 +0300 Subject: [PATCH 024/158] [MIRROR] Fix glass shard --- code/game/objects/items/weapons/material/shards.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/game/objects/items/weapons/material/shards.dm b/code/game/objects/items/weapons/material/shards.dm index e920fac66b3bd..212b4503fac56 100644 --- a/code/game/objects/items/weapons/material/shards.dm +++ b/code/game/objects/items/weapons/material/shards.dm @@ -51,7 +51,7 @@ if(isWelder(W) && material.shard_can_repair) var/obj/item/weldingtool/WT = W if(WT.remove_fuel(0, user)) - material.place_sheet(loc) + material.place_sheet(get_turf(src)) qdel(src) return return ..() From 8a9948b90f87064e478ea77849d4ac03642b748d Mon Sep 17 00:00:00 2001 From: Sierra Helper <125094432+SierraHelper@users.noreply.github.com> Date: Sat, 9 Sep 2023 21:05:40 +0300 Subject: [PATCH 025/158] =?UTF-8?q?=D0=A7=D0=B5=D0=B9=D0=BD=D0=B4=D0=B6?= =?UTF-8?q?=D0=BB=D0=BE=D0=B3=20=D0=B4=D0=BB=D1=8F=20PR=20#988=20[ci=20ski?= =?UTF-8?q?p]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- html/changelogs/AutoChangeLog-sierra-pr-988.yml | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-sierra-pr-988.yml diff --git a/html/changelogs/AutoChangeLog-sierra-pr-988.yml b/html/changelogs/AutoChangeLog-sierra-pr-988.yml new file mode 100644 index 0000000000000..c95cb3bf17240 --- /dev/null +++ b/html/changelogs/AutoChangeLog-sierra-pr-988.yml @@ -0,0 +1,5 @@ +author: Reishi42 +delete-after: true +changes: + - bugfix: The shard of glass in your hands was not melted into a sheet of glass + if you pressed it with welding tool in your hands. From 0408d697d7e2af8263f4b8738bfc3aa8dcb0b330 Mon Sep 17 00:00:00 2001 From: Sierra Helper <125094432+SierraHelper@users.noreply.github.com> Date: Sun, 10 Sep 2023 01:19:39 +0000 Subject: [PATCH 026/158] =?UTF-8?q?=D0=90=D0=B2=D1=82=D0=BE=D0=BC=D0=B0?= =?UTF-8?q?=D1=82=D0=B8=D1=87=D0=B5=D1=81=D0=BA=D0=B0=D1=8F=20=D0=BA=D0=BE?= =?UTF-8?q?=D0=BC=D0=BF=D0=B8=D0=BB=D1=8F=D1=86=D0=B8=D1=8F=20=D1=87=D0=B5?= =?UTF-8?q?=D0=B9=D0=BD=D0=B4=D0=B6=D0=BB=D0=BE=D0=B3=D0=BE=D0=B2=20[ci=20?= =?UTF-8?q?skip]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- html/changelog.html | 13 ++++++------- html/changelogs/.all_changelog.yml | 4 ++++ html/changelogs/AutoChangeLog-sierra-pr-988.yml | 5 ----- 3 files changed, 10 insertions(+), 12 deletions(-) delete mode 100644 html/changelogs/AutoChangeLog-sierra-pr-988.yml diff --git a/html/changelog.html b/html/changelog.html index 2f355ed0b4bc6..d7fd505dc9995 100644 --- a/html/changelog.html +++ b/html/changelog.html @@ -28,6 +28,12 @@

Sierra SS13

-->
+

10.09 - 2023

+

Обновления Reishi42:

+
+
The shard of glass in your hands was not melted into a sheet of glass if you pressed it with welding tool in your hands.
+
+

09.09 - 2023

Обновления SuhEugene:

@@ -474,13 +480,6 @@

Обновления TheNightingale:

Suit sensor consoles now beep when someone's critical.
Chem dispensers and chemmasters now accept IV bags.
- -

09.07 - 2023

-

Обновления Mucker:

-
-
Fixed radial menus breaking with too many options.
-
Fixed being able to remove non-removable accessories.
-
Icons by Icons8
diff --git a/html/changelogs/.all_changelog.yml b/html/changelogs/.all_changelog.yml index 725903ebc1d45..a80c0bef35702 100644 --- a/html/changelogs/.all_changelog.yml +++ b/html/changelogs/.all_changelog.yml @@ -21733,3 +21733,7 @@ DO NOT EDIT THIS FILE BY HAND! AUTOMATICALLY GENERATED BY sierra_genchangelog.p SuhEugene: - bugfix: Player panel rudimentary transformation no longer sends you to nullspace. - bugfix: Fixed admin faxes reply. +2023-09-10: + Reishi42: + - bugfix: The shard of glass in your hands was not melted into a sheet of glass + if you pressed it with welding tool in your hands. diff --git a/html/changelogs/AutoChangeLog-sierra-pr-988.yml b/html/changelogs/AutoChangeLog-sierra-pr-988.yml deleted file mode 100644 index c95cb3bf17240..0000000000000 --- a/html/changelogs/AutoChangeLog-sierra-pr-988.yml +++ /dev/null @@ -1,5 +0,0 @@ -author: Reishi42 -delete-after: true -changes: - - bugfix: The shard of glass in your hands was not melted into a sheet of glass - if you pressed it with welding tool in your hands. From 2dcf36d3823952707812a3a5815542abf9c6b3b2 Mon Sep 17 00:00:00 2001 From: Sierra Helper <125094432+SierraHelper@users.noreply.github.com> Date: Mon, 11 Sep 2023 01:16:29 +0000 Subject: [PATCH 027/158] =?UTF-8?q?=D0=90=D0=B2=D1=82=D0=BE=D0=BC=D0=B0?= =?UTF-8?q?=D1=82=D0=B8=D1=87=D0=B5=D1=81=D0=BA=D0=B0=D1=8F=20=D0=BA=D0=BE?= =?UTF-8?q?=D0=BC=D0=BF=D0=B8=D0=BB=D1=8F=D1=86=D0=B8=D1=8F=20=D1=87=D0=B5?= =?UTF-8?q?=D0=B9=D0=BD=D0=B4=D0=B6=D0=BB=D0=BE=D0=B3=D0=BE=D0=B2=20[ci=20?= =?UTF-8?q?skip]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- html/changelog.html | 29 ----------------------------- 1 file changed, 29 deletions(-) diff --git a/html/changelog.html b/html/changelog.html index d7fd505dc9995..89e672d1d9933 100644 --- a/html/changelog.html +++ b/html/changelog.html @@ -451,35 +451,6 @@

Обновления TheNightingale:

Adds rainbow table flags to the Torch.
- -

10.07 - 2023

-

Обновления Mucker:

-
-
Fixed the boots loadout menu select, jungle boots have been readded as 'tan' SCGA boots.
-
Added rogue construction drones to the rogue maintenance drone event (moderate - major only).
-
RUST observation shutters work again.
-
-

Обновления PurplePineapple, Escalation1984 Developers:

-
-
Adds autoclick functionality to clients.
-
can_autofire on guns now uses the autoclick to allow for more natural automatic fire by holding the mouse down in one place.
-
Click-drag automatic fire has been removed now that it has been replaced with the autoclick.
-
-

Обновления SierraKomodo:

-
-
The lift now declares Telecommunications on Deck 4 instead of Deck 3.
-
Fixes certain floor decals disappearing when a turf initializes or updates its icons.
-
-

Обновления TheNightingale:

-
-
Exosuit medigel dispensers now come with a built-in health analyzer alternate mode.
-
Exosuits now require harm intent to slam, preventing unintentional slams when changing equipment.
-
Exosuit cameras now actually work.
-
Exosuit sleepers no longer act as power sinks when empty.
-
Exosuit floodlights are no longer required in order to climb ladders.
-
Suit sensor consoles now beep when someone's critical.
-
Chem dispensers and chemmasters now accept IV bags.
-
Icons by Icons8
From bf4a719d33b3bfaca86dcc06c4a7d62c64ca4722 Mon Sep 17 00:00:00 2001 From: Reishi42 <20622495+Reishi42@users.noreply.github.com> Date: Mon, 11 Sep 2023 00:55:09 +0300 Subject: [PATCH 028/158] [MIRROR] Replace Join Response Team and Join as Actor verb from IC to Ghost tab --- code/game/antagonist/outsider/actors.dm | 4 ++-- code/game/response_team.dm | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/code/game/antagonist/outsider/actors.dm b/code/game/antagonist/outsider/actors.dm index 3368e97ca4922..bb3f751c4fde2 100644 --- a/code/game/antagonist/outsider/actors.dm +++ b/code/game/antagonist/outsider/actors.dm @@ -35,8 +35,8 @@ GLOBAL_DATUM_INIT(actor, /datum/antagonist/actor, new) return 1 -/client/verb/join_as_actor() - set category = "IC" +/mob/observer/ghost/verb/join_as_actor() + set category = "Ghost" set name = "Join as Actor" set desc = "Join as an Actor to entertain the crew through television!" diff --git a/code/game/response_team.dm b/code/game/response_team.dm index 3d22c40d476bc..0443cfb526307 100644 --- a/code/game/response_team.dm +++ b/code/game/response_team.dm @@ -46,10 +46,10 @@ var/global/can_call_ert log_admin("[key_name(usr)] used Dispatch Response Team.") trigger_armed_response_team(1, reason) -/client/verb/JoinResponseTeam() +/mob/observer/ghost/verb/JoinResponseTeam() set name = "Join Response Team" - set category = "IC" + set category = "Ghost" if(!MayRespawn(1)) to_chat(usr, SPAN_WARNING("You cannot join the response team at this time.")) From e52a5bb08d70c7fe72eff9365bd288600600b31e Mon Sep 17 00:00:00 2001 From: Sbotkin <5092934+Sbotkin@users.noreply.github.com> Date: Mon, 11 Sep 2023 00:55:16 +0300 Subject: [PATCH 029/158] [MIRROR] Prevents smearing of blood and oil on the floor on creep intent --- code/game/objects/effects/decals/Cleanable/humans.dm | 2 ++ 1 file changed, 2 insertions(+) diff --git a/code/game/objects/effects/decals/Cleanable/humans.dm b/code/game/objects/effects/decals/Cleanable/humans.dm index f2141a9316bb4..3c9439ea20eff 100644 --- a/code/game/objects/effects/decals/Cleanable/humans.dm +++ b/code/game/objects/effects/decals/Cleanable/humans.dm @@ -101,6 +101,8 @@ var/global/list/image/splatter_cache=list() return if(amount < 1) return + if(MOVING_DELIBERATELY(perp)) + return var/obj/item/organ/external/l_foot = perp.get_organ(BP_L_FOOT) var/obj/item/organ/external/r_foot = perp.get_organ(BP_R_FOOT) From 79e4dc558d3065aa27a555897491743069353ccc Mon Sep 17 00:00:00 2001 From: Sierra Helper <125094432+SierraHelper@users.noreply.github.com> Date: Mon, 11 Sep 2023 08:47:35 +0300 Subject: [PATCH 030/158] =?UTF-8?q?=D0=A7=D0=B5=D0=B9=D0=BD=D0=B4=D0=B6?= =?UTF-8?q?=D0=BB=D0=BE=D0=B3=20=D0=B4=D0=BB=D1=8F=20PR=20#989=20[ci=20ski?= =?UTF-8?q?p]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- html/changelogs/AutoChangeLog-sierra-pr-989.yml | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-sierra-pr-989.yml diff --git a/html/changelogs/AutoChangeLog-sierra-pr-989.yml b/html/changelogs/AutoChangeLog-sierra-pr-989.yml new file mode 100644 index 0000000000000..c815daab40227 --- /dev/null +++ b/html/changelogs/AutoChangeLog-sierra-pr-989.yml @@ -0,0 +1,5 @@ +author: Reishi42 +delete-after: true +changes: + - bugfix: It was strange that "Join Response Team" or "Join as Actor" is on the + IC tab of living human. From 2dd4f7b62aed85a13350713fea063b17eda2af82 Mon Sep 17 00:00:00 2001 From: Sierra Helper <125094432+SierraHelper@users.noreply.github.com> Date: Mon, 11 Sep 2023 08:47:59 +0300 Subject: [PATCH 031/158] =?UTF-8?q?=D0=A7=D0=B5=D0=B9=D0=BD=D0=B4=D0=B6?= =?UTF-8?q?=D0=BB=D0=BE=D0=B3=20=D0=B4=D0=BB=D1=8F=20PR=20#990=20[ci=20ski?= =?UTF-8?q?p]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- html/changelogs/AutoChangeLog-sierra-pr-990.yml | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-sierra-pr-990.yml diff --git a/html/changelogs/AutoChangeLog-sierra-pr-990.yml b/html/changelogs/AutoChangeLog-sierra-pr-990.yml new file mode 100644 index 0000000000000..51513c0445700 --- /dev/null +++ b/html/changelogs/AutoChangeLog-sierra-pr-990.yml @@ -0,0 +1,5 @@ +author: Sbotkin +delete-after: true +changes: + - tweak: Carefully stepping (creep intent) on spilled liquids prevents from smearing + it. From 969e0bc80fb90872c29fe6e044e2ef68d04e654a Mon Sep 17 00:00:00 2001 From: gy1ta23 <44277885+gy1ta23@users.noreply.github.com> Date: Mon, 11 Sep 2023 01:00:09 +0300 Subject: [PATCH 032/158] [MIRROR] makes cigarette cases start empty, cleans up a bunch of smoking-related descriptions/actions --- code/game/objects/items/weapons/ecigs.dm | 2 +- .../weapons/storage/fancy/smokable/basic.dm | 7 ++----- code/game/objects/items/weapons/storage/misc.dm | 16 ++++++++-------- .../objects/items/weapons/storage/storage.dm | 2 +- code/modules/clothing/masks/chewable.dm | 6 +++--- code/modules/clothing/masks/cig_crafting.dm | 12 ++++++------ 6 files changed, 21 insertions(+), 24 deletions(-) diff --git a/code/game/objects/items/weapons/ecigs.dm b/code/game/objects/items/weapons/ecigs.dm index 65703a7f6b928..dd47f843c66ea 100644 --- a/code/game/objects/items/weapons/ecigs.dm +++ b/code/game/objects/items/weapons/ecigs.dm @@ -46,7 +46,7 @@ /obj/item/clothing/mask/smokable/ecig/util name = "electronic cigarette" - desc = "A popular utilitarian model electronic cigarette, the ONI-55. Comes in a variety of colors." + desc = "A popular utilitarian model of electronic cigarette, the ONI-55. Comes in a variety of colors." icon_state = "ecigoff1" icon_off = "ecigoff1" icon_empty = "ecigoff1" diff --git a/code/game/objects/items/weapons/storage/fancy/smokable/basic.dm b/code/game/objects/items/weapons/storage/fancy/smokable/basic.dm index 9652982b7df41..55d1457b200c8 100644 --- a/code/game/objects/items/weapons/storage/fancy/smokable/basic.dm +++ b/code/game/objects/items/weapons/storage/fancy/smokable/basic.dm @@ -1,6 +1,6 @@ /obj/item/storage/fancy/smokable/case name = "cigarette case" - desc = "A fancy little case for holding cigarettes in it." + desc = "A fancy little case for holding cigarettes. It has a spring-loaded click-open mechanism." icon = 'icons/obj/cigarettes.dmi' icon_state = "cigscase" item_state = "syringe_kit" @@ -9,9 +9,6 @@ sealed = FALSE storage_slots = 6 key_type = list(/obj/item/clothing/mask/smokable/cigarette, /obj/item/material/coin) - startswith = list( - /obj/item/clothing/mask/smokable/cigarette = 6 - ) /obj/item/storage/fancy/smokable/case/on_update_icon() ClearOverlays() @@ -147,7 +144,7 @@ /obj/item/storage/fancy/smokable/cigar name = "cigar case" - desc = "A case for holding your cigars when you are not smoking them." + desc = "A case for holding your cigars, in the short interstice before you smoke them." icon_state = "cigarcase" item_state = "cigpacket" max_storage_space = null diff --git a/code/game/objects/items/weapons/storage/misc.dm b/code/game/objects/items/weapons/storage/misc.dm index 5dcfbb8bdbeaa..18668a6dfd5e5 100644 --- a/code/game/objects/items/weapons/storage/misc.dm +++ b/code/game/objects/items/weapons/storage/misc.dm @@ -51,7 +51,7 @@ //misc tobacco nonsense /obj/item/storage/cigpaper name = "\improper Gen. Eric cigarette paper" - desc = "A ubiquitous brand of cigarette paper, allegedly endorsed by 24th century war hero General Eric Osmundsun for rolling your own cigarettes. Osmundsun died in a freak kayak accident. As it ate him alive during his last campaign. It was pretty freaky." + desc = "A ubiquitous brand of cigarette rolling-paper endorsed by Commonwealth Civil War General Eric Osmundsun, of the Terran Commonwealth. Osmundsun, known as 'The Aresian Butcher' for his valorant service, died in a freak white-water kayak accident in 2231." icon = 'icons/obj/cigarettes.dmi' icon_state = "cigpaperbook" item_state = "cigpacket" @@ -69,14 +69,14 @@ /obj/item/storage/cigpaper/fancy name = "\improper Trident cigarette paper" - desc = "A fancy brand of Trident cigarette paper, for rolling your own cigarettes. Like a person who appreciates the finer things in life." + desc = "A book of Trident-brand cigarette paper, for rolling to impress. Made to cater to individuals who appreciates the finer things in life." icon = 'icons/obj/cigarettes.dmi' icon_state = "fancycigpaperbook" startswith = list(/obj/item/paper/cig/fancy = 10) /obj/item/storage/cigpaper/filters name = "box of cigarette filters" - desc = "A box of generic cigarette filters for those who rolls their own but prefers others to inhale the fumes. Not endorsed by Late General Osmundsun." + desc = "A box of generic cigarette filters, for those who roll their own and prefer to reduce the tar concentration in their lungs. Not endorsed by the late General Osmundsun." icon = 'icons/obj/cigarettes.dmi' icon_state = "filterbin" startswith = list(/obj/item/paper/cig/filter = 10) @@ -101,7 +101,7 @@ /obj/item/storage/chewables/rollable/bad name = "bag of Men at Arms tobacco" - desc = "A bag of coarse gritty tobacco marketed towards leather-necks." + desc = "A bag of coarse, gritty tobacco, marketed towards leather-necks." startswith = list(/obj/item/reagent_containers/food/snacks/grown/dried_tobacco/bad = 8) icon_state = "rollcoarse" @@ -113,13 +113,13 @@ /obj/item/storage/chewables/rollable/fine name = "bag of Golden Sol tobacco" - desc = "A exclusive brand of overpriced tobacco, allegedly grown at a lagrange point station in Sol system." + desc = "A exclusive brand of overpriced tobacco, allegedly grown at a hidden lagrange point station somewhere in Sol." startswith = list(/obj/item/reagent_containers/food/snacks/grown/dried_tobacco/fine = 8) icon_state = "rollfine" /obj/item/storage/chewables/rollable/rollingkit name = "bag of Crewman's First tobacco" - desc = "Generic middling quality tobacco for the recently enlisted and cost-conscious smokers. This bag comes with rolling papers and filters!" + desc = "Generic, middling quality dried tobacco for the recently enlisted and cost-conscious smokers. This bag comes with rolling papers and filters to kick-start your new habit." startswith = list( /obj/item/reagent_containers/food/snacks/grown/dried_tobacco = 8, /obj/item/storage/cigpaper = 1, @@ -130,14 +130,14 @@ //chewing tobacco /obj/item/storage/chewables/tobacco name = "tin of Lenny's brand chewing tobacco" - desc = "A generic brand of chewing tobacco, for when you can't even be assed to light up." + desc = "A dark-brown tin of Lenny's chewing tobacco, favored by the more elder end of Hellshen algae technicians." icon_state = "chew_levi" item_state = "Dpacket" startswith = list(/obj/item/clothing/mask/chewable/tobacco/lenni = 6) /obj/item/storage/chewables/tobacco2 name = "tin of Red Lady chewing tobacco" - desc = "A finer grade of chewing tobacco." + desc = "A platinum-colored tin filled with high-grade chewing tobacco. The slender, red-haired, red-dressed woman on the front is more recognizable than some religious institutions." icon_state = "chew_redman" item_state = "redlady" startswith = list(/obj/item/clothing/mask/chewable/tobacco/redlady = 6) diff --git a/code/game/objects/items/weapons/storage/storage.dm b/code/game/objects/items/weapons/storage/storage.dm index c378c313ac51b..003ddc0329a49 100644 --- a/code/game/objects/items/weapons/storage/storage.dm +++ b/code/game/objects/items/weapons/storage/storage.dm @@ -104,7 +104,7 @@ if(!opened && src.open_sound) playsound(src.loc, src.open_sound, 50, 0, -5) open_sound_played = TRUE - to_chat(user, "You open \the [src]") + to_chat(user, "You open \the [src].") queue_icon_update() if (src.use_sound && !open_sound_played) playsound(src.loc, src.use_sound, 50, 0, -5) diff --git a/code/modules/clothing/masks/chewable.dm b/code/modules/clothing/masks/chewable.dm index 6e823c1a6b483..41e6c9432acb7 100644 --- a/code/modules/clothing/masks/chewable.dm +++ b/code/modules/clothing/masks/chewable.dm @@ -58,7 +58,7 @@ /obj/item/clothing/mask/chewable/tobacco name = "wad" - desc = "A chewy wad of tobacco. Cut in long strands and treated with syrups so it doesn't taste like a ash-tray when you stuff it into your face." + desc = "A chewy wad of tobacco. Cut in long strands and treated with syrups so it doesn't taste like an ashtray when you stuff it into your mouth." throw_speed = 0.5 icon_state = "chew" type_butt = /obj/item/trash/cigbutt/spitwad @@ -89,12 +89,12 @@ /obj/item/clothing/mask/chewable/tobacco/lenni name = "chewing tobacco" - desc = "A chewy wad of tobacco. Cut in long strands and treated with syrups so it tastes less like a ash-tray when you stuff it into your face." + desc = "A chewy wad of tobacco. Cut in long strands and treated with syrups so it tastes less like an ashtray when you stuff it into your mouth." filling = list(/datum/reagent/tobacco = 2) /obj/item/clothing/mask/chewable/tobacco/redlady name = "chewing tobacco" - desc = "A chewy wad of fine tobacco. Cut in long strands and treated with syrups so it doesn't taste like a ash-tray when you stuff it into your face." + desc = "A chewy wad of fine tobacco. Cut in long strands and treated with syrups so it doesn't taste like an ashtray when you stuff it into your mouth." filling = list(/datum/reagent/tobacco/fine = 2) /obj/item/clothing/mask/chewable/tobacco/nico diff --git a/code/modules/clothing/masks/cig_crafting.dm b/code/modules/clothing/masks/cig_crafting.dm index 0058337a72c8e..4fd8d14c4b1b4 100644 --- a/code/modules/clothing/masks/cig_crafting.dm +++ b/code/modules/clothing/masks/cig_crafting.dm @@ -1,6 +1,6 @@ /obj/item/clothing/mask/smokable/cigarette/rolled name = "rolled cigarette" - desc = "A hand rolled cigarette using dried plant matter." + desc = "A hand-rolled cigarette filled with dried plant matter." icon_state = "cigroll" item_state = "cigoff" type_butt = /obj/item/trash/cigbutt @@ -12,7 +12,7 @@ /obj/item/clothing/mask/smokable/cigarette/rolled/examine(mob/user) . = ..() if(filter) - to_chat(user, "Capped off one end with a filter.") + to_chat(user, "One of the ends is capped off by a filter.") /obj/item/clothing/mask/smokable/cigarette/rolled/on_update_icon() . = ..() @@ -31,12 +31,12 @@ /obj/item/paper/cig/fancy name = "\improper Trident rolling paper" - desc = "A thin piece of trident branded paper used to make fine smokeables." + desc = "A thin piece of Trident-branded paper used to make fine smokeables." icon_state = "cig_paperf" /obj/item/paper/cig/filter name = "cigarette filter" - desc = "A small nub like filter for cigarettes." + desc = "A small nub-like filter for cigarettes." icon_state = "cig_filter" w_class = ITEM_SIZE_TINY @@ -65,7 +65,7 @@ to_chat(user, SPAN_WARNING("[src] is lit already!")) return if(user.unEquip(I)) - to_chat(user, SPAN_NOTICE("You stick [I] into \the [src]")) + to_chat(user, SPAN_NOTICE("You stick [I] onto \the [src].")) filter = 1 SetName("filtered [name]") brand = "[brand] with a filter" @@ -84,7 +84,7 @@ R.chem_volume = reagents.total_volume R.brand = "[src] handrolled in \the [I]." reagents.trans_to_holder(R.reagents, R.chem_volume) - to_chat(user, SPAN_NOTICE("You roll \the [src] into \the [I]")) + to_chat(user, SPAN_NOTICE("You roll \the [src] into \the [I].")) user.put_in_active_hand(R) qdel(I) qdel(src) From f65b1dc0a0e9a62b477cb56414b12dacf677c479 Mon Sep 17 00:00:00 2001 From: Sierra Helper <125094432+SierraHelper@users.noreply.github.com> Date: Mon, 11 Sep 2023 08:49:01 +0300 Subject: [PATCH 033/158] =?UTF-8?q?=D0=A7=D0=B5=D0=B9=D0=BD=D0=B4=D0=B6?= =?UTF-8?q?=D0=BB=D0=BE=D0=B3=20=D0=B4=D0=BB=D1=8F=20PR=20#991=20[ci=20ski?= =?UTF-8?q?p]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- html/changelogs/AutoChangeLog-sierra-pr-991.yml | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-sierra-pr-991.yml diff --git a/html/changelogs/AutoChangeLog-sierra-pr-991.yml b/html/changelogs/AutoChangeLog-sierra-pr-991.yml new file mode 100644 index 0000000000000..9058f311c1f86 --- /dev/null +++ b/html/changelogs/AutoChangeLog-sierra-pr-991.yml @@ -0,0 +1,5 @@ +author: gy1ta23, joeynosegay +delete-after: true +changes: + - tweak: Some smokeables have better item descriptions. + - tweak: Cigarette cases start empty. From 91bacae143482143182d3560a71bfc9a890321ab Mon Sep 17 00:00:00 2001 From: SingingSpock <29682682+SingingSpock@users.noreply.github.com> Date: Mon, 11 Sep 2023 01:00:16 +0300 Subject: [PATCH 034/158] [MIRROR] Rust output SMES no longer starts fully charged --- maps/torch/torch4_deck2.dmm | 4 ++-- maps/torch/torch_presets.dm | 12 +++++++++++- 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/maps/torch/torch4_deck2.dmm b/maps/torch/torch4_deck2.dmm index 4576ba20b5ff4..f56122e7bc1a4 100644 --- a/maps/torch/torch4_deck2.dmm +++ b/maps/torch/torch4_deck2.dmm @@ -14852,10 +14852,10 @@ pixel_x = 25; req_access = list(list("ACCESS_ENGINE_EQUIP","ACCESS_ATMOS")) }, -/obj/machinery/power/smes/buildable/preset/torch/engine_main{ +/obj/structure/cable, +/obj/machinery/power/smes/buildable/preset/torch/engine_empty{ RCon_tag = "R-UST - Main" }, -/obj/structure/cable, /turf/simulated/floor/tiled/monotile, /area/vacant/prototype/control) "Nm" = ( diff --git a/maps/torch/torch_presets.dm b/maps/torch/torch_presets.dm index 4ef3a78ec6802..3fb59da9267c7 100644 --- a/maps/torch/torch_presets.dm +++ b/maps/torch/torch_presets.dm @@ -109,7 +109,7 @@ var/global/const/NETWORK_FIFTH_DECK = "Fifth Deck" /obj/machinery/power/smes/buildable/preset/torch/substation_full/rust uncreated_component_parts = list(/obj/item/stock_parts/smes_coil/super_io = 2) -// Main Engine output SMES +// Supermatter output SMES /obj/machinery/power/smes/buildable/preset/torch/engine_main uncreated_component_parts = list( /obj/item/stock_parts/smes_coil/super_io = 2, @@ -120,6 +120,16 @@ var/global/const/NETWORK_FIFTH_DECK = "Fifth Deck" _output_on = TRUE _fully_charged = TRUE +//RUST Output SMES +/obj/machinery/power/smes/buildable/preset/torch/engine_empty + uncreated_component_parts = list( + /obj/item/stock_parts/smes_coil/super_io = 2, + /obj/item/stock_parts/smes_coil/super_capacity = 2) + _input_maxed = TRUE + _output_maxed = TRUE + _input_on = TRUE + _output_on = TRUE + // Shuttle SMES /obj/machinery/power/smes/buildable/preset/torch/shuttle uncreated_component_parts = list( From f947bf5e613122db6b2b4b8ea5bd773f5d50affb Mon Sep 17 00:00:00 2001 From: Ryan180602 <50071611+Ryan180602@users.noreply.github.com> Date: Mon, 11 Sep 2023 01:25:07 +0300 Subject: [PATCH 035/158] [MIRROR] Remove BD probability for denying interaction + increase threshold for denying interaction --- code/game/machinery/_machines_base/machinery.dm | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/code/game/machinery/_machines_base/machinery.dm b/code/game/machinery/_machines_base/machinery.dm index 66d7df13fb0fa..6063100f8822f 100644 --- a/code/game/machinery/_machines_base/machinery.dm +++ b/code/game/machinery/_machines_base/machinery.dm @@ -238,12 +238,9 @@ return TRUE if(ishuman(user)) var/mob/living/carbon/human/H = user - if(H.getBrainLoss() >= 55) + if(H.getBrainLoss() >= 80) visible_message(SPAN_WARNING("\The [H] stares cluelessly at \the [src].")) return TRUE - else if(prob(H.getBrainLoss())) - to_chat(user, SPAN_WARNING("You momentarily forget how to use \the [src].")) - return TRUE if((. = component_attack_hand(user))) return if(wires && (. = wires.Interact(user))) From e2fd97ad808c295956d3d147ecb98c477ac69be6 Mon Sep 17 00:00:00 2001 From: Sierra Helper <125094432+SierraHelper@users.noreply.github.com> Date: Mon, 11 Sep 2023 09:04:00 +0300 Subject: [PATCH 036/158] =?UTF-8?q?=D0=A7=D0=B5=D0=B9=D0=BD=D0=B4=D0=B6?= =?UTF-8?q?=D0=BB=D0=BE=D0=B3=20=D0=B4=D0=BB=D1=8F=20PR=20#992=20[ci=20ski?= =?UTF-8?q?p]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- html/changelogs/AutoChangeLog-sierra-pr-992.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-sierra-pr-992.yml diff --git a/html/changelogs/AutoChangeLog-sierra-pr-992.yml b/html/changelogs/AutoChangeLog-sierra-pr-992.yml new file mode 100644 index 0000000000000..a954f12ac7f86 --- /dev/null +++ b/html/changelogs/AutoChangeLog-sierra-pr-992.yml @@ -0,0 +1,4 @@ +author: SingingSpock +delete-after: true +changes: + - maptweak: The Rust output SMES no longer has charge in it to start From 96d69688f2865e2cb0234d0e39fb753dc2425b10 Mon Sep 17 00:00:00 2001 From: Sierra Helper <125094432+SierraHelper@users.noreply.github.com> Date: Mon, 11 Sep 2023 09:04:22 +0300 Subject: [PATCH 037/158] =?UTF-8?q?=D0=A7=D0=B5=D0=B9=D0=BD=D0=B4=D0=B6?= =?UTF-8?q?=D0=BB=D0=BE=D0=B3=20=D0=B4=D0=BB=D1=8F=20PR=20#998=20[ci=20ski?= =?UTF-8?q?p]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- html/changelogs/AutoChangeLog-sierra-pr-998.yml | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-sierra-pr-998.yml diff --git a/html/changelogs/AutoChangeLog-sierra-pr-998.yml b/html/changelogs/AutoChangeLog-sierra-pr-998.yml new file mode 100644 index 0000000000000..47f6daf371d5d --- /dev/null +++ b/html/changelogs/AutoChangeLog-sierra-pr-998.yml @@ -0,0 +1,6 @@ +author: Ryan180602 +delete-after: true +changes: + - tweak: Remove probability for the "You momentarily forget ..!" interaction when + brain damaged. + - tweak: Increase threshold to 80 brain damage for "You look at x cluelessly" interaction. From 555b24ade6f644f17362704c7b3ed3d642e3d8d8 Mon Sep 17 00:00:00 2001 From: MuckerMayhem <1161516+MuckerMayhem@users.noreply.github.com> Date: Mon, 11 Sep 2023 01:20:10 +0300 Subject: [PATCH 038/158] [MIRROR] remove e-machette from borgs --- .../living/silicon/robot/flying/module_flying_cultivator.dm | 3 +-- maps/torch/robot/module_flying_surveyor.dm | 3 +-- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/code/modules/mob/living/silicon/robot/flying/module_flying_cultivator.dm b/code/modules/mob/living/silicon/robot/flying/module_flying_cultivator.dm index 66aa38dfeca91..ee72c0163f823 100644 --- a/code/modules/mob/living/silicon/robot/flying/module_flying_cultivator.dm +++ b/code/modules/mob/living/silicon/robot/flying/module_flying_cultivator.dm @@ -23,8 +23,7 @@ emag_gear = list( /obj/item/melee/baton/robot/electrified_arm, /obj/item/device/flash, - /obj/item/gun/energy/gun, - /obj/item/melee/energy/machete + /obj/item/gun/energy/gun ) skills = list( diff --git a/maps/torch/robot/module_flying_surveyor.dm b/maps/torch/robot/module_flying_surveyor.dm index 0b34a27442706..27d5afdb69261 100644 --- a/maps/torch/robot/module_flying_surveyor.dm +++ b/maps/torch/robot/module_flying_surveyor.dm @@ -48,8 +48,7 @@ emag_gear = list( /obj/item/melee/baton/robot/electrified_arm, - /obj/item/gun/energy/gun, - /obj/item/melee/energy/machete + /obj/item/gun/energy/gun ) /obj/item/robot_module/flying/surveyor/finalize_synths() From f9c17ad45d60de75f7f6fc8b3362eec6d6b452cf Mon Sep 17 00:00:00 2001 From: Sierra Helper <125094432+SierraHelper@users.noreply.github.com> Date: Mon, 11 Sep 2023 09:06:22 +0300 Subject: [PATCH 039/158] =?UTF-8?q?=D0=A7=D0=B5=D0=B9=D0=BD=D0=B4=D0=B6?= =?UTF-8?q?=D0=BB=D0=BE=D0=B3=20=D0=B4=D0=BB=D1=8F=20PR=20#996=20[ci=20ski?= =?UTF-8?q?p]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- html/changelogs/AutoChangeLog-sierra-pr-996.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-sierra-pr-996.yml diff --git a/html/changelogs/AutoChangeLog-sierra-pr-996.yml b/html/changelogs/AutoChangeLog-sierra-pr-996.yml new file mode 100644 index 0000000000000..d73194e448533 --- /dev/null +++ b/html/changelogs/AutoChangeLog-sierra-pr-996.yml @@ -0,0 +1,4 @@ +author: Mucker +delete-after: true +changes: + - rscdel: Removed the Energy Machette from emagged flying borg's modules. From 77c453f4f42fff6d1b291b46c1bde8c8f8c09ae8 Mon Sep 17 00:00:00 2001 From: SierraKomodo <11140088+SierraKomodo@users.noreply.github.com> Date: Mon, 11 Sep 2023 01:10:13 +0300 Subject: [PATCH 040/158] [MIRROR] Remove unused fuel pipes from supermatter --- maps/torch/torch4_deck2.dmm | 48 ++++--------------------------------- 1 file changed, 4 insertions(+), 44 deletions(-) diff --git a/maps/torch/torch4_deck2.dmm b/maps/torch/torch4_deck2.dmm index f56122e7bc1a4..85ed29982722c 100644 --- a/maps/torch/torch4_deck2.dmm +++ b/maps/torch/torch4_deck2.dmm @@ -661,18 +661,6 @@ }, /turf/simulated/floor/tiled/techfloor/grid, /area/engineering/engine_room) -"bp" = ( -/obj/effect/floor_decal/industrial/warning{ - dir = 1; - icon_state = "warning" - }, -/obj/machinery/atmospherics/pipe/simple/heat_exchanging{ - dir = 9 - }, -/turf/simulated/floor/reinforced{ - map_airless = 1 - }, -/area/engineering/engine_room) "bq" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /obj/structure/catwalk, @@ -6171,7 +6159,6 @@ icon_state = "tube1" }, /obj/effect/floor_decal/industrial/warning, -/obj/machinery/atmospherics/pipe/cap/visible/fuel, /turf/simulated/floor/tiled/techfloor, /area/engineering/engine_room) "ol" = ( @@ -11214,9 +11201,6 @@ /area/maintenance/seconddeck/aftport) "Ck" = ( /obj/effect/floor_decal/industrial/warning, -/obj/machinery/atmospherics/pipe/simple/heat_exchanging{ - dir = 10 - }, /turf/simulated/floor/reinforced{ map_airless = 1 }, @@ -11444,9 +11428,7 @@ /obj/effect/floor_decal/industrial/warning{ dir = 1 }, -/obj/machinery/atmospherics/pipe/cap/visible/fuel{ - dir = 1 - }, +/obj, /turf/simulated/floor/tiled/techfloor, /area/engineering/engine_room) "CN" = ( @@ -14252,15 +14234,6 @@ /obj/machinery/atmospherics/pipe/simple/visible/cyan, /turf/simulated/floor/tiled/techfloor, /area/engineering/engine_room) -"Le" = ( -/obj/machinery/door/blast/regular{ - id_tag = "SupermatterPort"; - name = "Reactor Blast Door" - }, -/obj/effect/wallframe_spawn/reinforced_phoron, -/obj/machinery/atmospherics/pipe/simple/visible/fuel, -/turf/simulated/floor/reinforced, -/area/engineering/engine_room) "Lf" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -16076,9 +16049,6 @@ /obj/effect/floor_decal/industrial/warning/corner{ dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/heat_exchanging/junction{ - dir = 1 - }, /turf/simulated/floor/reinforced{ map_airless = 1 }, @@ -16471,7 +16441,6 @@ /area/vacant/prototype/control) "Sk" = ( /obj/effect/floor_decal/industrial/warning, -/obj/machinery/atmospherics/pipe/simple/heat_exchanging/junction, /obj/machinery/camera/network/engineering{ c_tag = "Engineering - Engine Core"; dir = 8 @@ -16784,7 +16753,6 @@ /obj/effect/floor_decal/industrial/warning{ dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/heat_exchanging, /turf/simulated/floor/reinforced{ map_airless = 1 }, @@ -17055,7 +17023,6 @@ }, /obj/machinery/power/supermatter, /obj/effect/engine_setup/core, -/obj/machinery/atmospherics/pipe/simple/heat_exchanging, /turf/simulated/floor/greengrid{ map_airless = 1 }, @@ -17266,7 +17233,6 @@ /turf/simulated/floor/tiled/techfloor, /area/engineering/engine_room) "Vo" = ( -/obj/machinery/atmospherics/pipe/simple/heat_exchanging, /turf/simulated/floor/greengrid{ map_airless = 1 }, @@ -18425,9 +18391,6 @@ use_power = 1 }, /obj/effect/floor_decal/industrial/warning/corner, -/obj/machinery/atmospherics/pipe/simple/heat_exchanging{ - dir = 6 - }, /turf/simulated/floor/reinforced{ map_airless = 1 }, @@ -18495,9 +18458,6 @@ dir = 1; icon_state = "warning" }, -/obj/machinery/atmospherics/pipe/simple/heat_exchanging{ - dir = 5 - }, /turf/simulated/floor/reinforced{ map_airless = 1 }, @@ -44793,7 +44753,7 @@ qc Zh To Rd -Le +qc CM jL uI @@ -45193,10 +45153,10 @@ jO jO lZ ok -Le +qc Sk Vo -bp +Zo qc tf tY From 5656100295917bec8b16cf78f8f89e0a14bf0dcb Mon Sep 17 00:00:00 2001 From: Sierra Helper <125094432+SierraHelper@users.noreply.github.com> Date: Mon, 11 Sep 2023 09:07:08 +0300 Subject: [PATCH 041/158] =?UTF-8?q?=D0=A7=D0=B5=D0=B9=D0=BD=D0=B4=D0=B6?= =?UTF-8?q?=D0=BB=D0=BE=D0=B3=20=D0=B4=D0=BB=D1=8F=20PR=20#995=20[ci=20ski?= =?UTF-8?q?p]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- html/changelogs/AutoChangeLog-sierra-pr-995.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-sierra-pr-995.yml diff --git a/html/changelogs/AutoChangeLog-sierra-pr-995.yml b/html/changelogs/AutoChangeLog-sierra-pr-995.yml new file mode 100644 index 0000000000000..b9ff975a6ae95 --- /dev/null +++ b/html/changelogs/AutoChangeLog-sierra-pr-995.yml @@ -0,0 +1,4 @@ +author: SierraKomodo +delete-after: true +changes: + - maptweak: Removed the unused and unnecessary fuel pipes from the supermatter core. From dd6621fefc5f2a6a6e8b692afef5c2a64e1ade35 Mon Sep 17 00:00:00 2001 From: emmanuelbassil <6874235+emmanuelbassil@users.noreply.github.com> Date: Mon, 11 Sep 2023 01:10:06 +0300 Subject: [PATCH 042/158] [MIRROR] Allows to iron mobs on any surface! --- code/game/objects/structures/ironing_board.dm | 88 ++++++++----------- 1 file changed, 39 insertions(+), 49 deletions(-) diff --git a/code/game/objects/structures/ironing_board.dm b/code/game/objects/structures/ironing_board.dm index 5d653cee4c8c8..380aaff0b518b 100644 --- a/code/game/objects/structures/ironing_board.dm +++ b/code/game/objects/structures/ironing_board.dm @@ -123,49 +123,7 @@ if (clothing) to_chat(user, "\A [clothing] is spread out across it.") - -/obj/structure/ironing_board/use_weapon(obj/item/weapon, mob/user, list/click_params) - // Iron - Iron mob - if (istype(weapon, /obj/item/ironing_iron) && buckled_mob) - var/obj/item/ironing_iron/iron = weapon - var/zone = user.zone_sel.selecting - if (!iron.iron_enabled) - buckled_mob.use_weapon(iron, user) - return TRUE - var/mob/living/carbon/human/human - var/obj/item/organ/external/organ - if (ishuman(buckled_mob)) - human = buckled_mob - organ = human.get_organ(zone) - if (!organ) - USE_FEEDBACK_FAILURE("\The [buckled_mob] has no [parse_zone(zone)] to iron.") - return TRUE - user.visible_message( - SPAN_WARNING("\The [user] starts ironing \the [buckled_mob][human ? "'s [parse_zone(zone)]" : null] with \a [weapon]!"), - SPAN_DANGER("You start ironing \the [buckled_mob][human ? "'s [parse_zone(zone)]" : null] with \a [weapon]!"), - exclude_mobs = list(buckled_mob) - ) - buckled_mob.show_message( - SPAN_DANGER("\The [user] starts ironing you[human ? "r [parse_zone(zone)]" : null] with \a [weapon]!"), - VISIBLE_MESSAGE, - SPAN_DANGER("You feel a hot, searing pain[human ? " in your [parse_zone(zone)]" : null]!") - ) - var/sound_token = GLOB.sound_player.PlayLoopingSound(src, "\ref[src]", 'sound/effects/iron_sizzle.ogg', 80) - for (var/i = 1 to 5) - if (!do_after(user, 1 SECOND, buckled_mob, DO_PUBLIC_UNIQUE) || !user.use_sanity_check(src, weapon)) - break - if (organ) - organ.take_external_damage(0, rand(3, 5), used_weapon = "Hot metal") - else - buckled_mob.take_overall_damage(0, rand(3, 5), "Hot metal") - qdel(sound_token) - return TRUE - - return ..() - - /obj/structure/ironing_board/use_grab(obj/item/grab/grab, list/click_params) - // Put victim on board if (deployed) if (buckled_mob) USE_FEEDBACK_GRAB_FAILURE("\The [src] already has \the [buckled_mob] on it.") @@ -188,7 +146,10 @@ return TRUE if (!user_buckle_mob(grab.affecting, grab.assailant)) return TRUE - qdel_self() + + deployed = TRUE + grab.affecting.remove_grabs_and_pulls() + update_icon() return TRUE @@ -217,7 +178,6 @@ // Iron - Iron contents or add iron if (istype(tool, /obj/item/ironing_iron)) - var/obj/item/ironing_iron/iron = tool // Clothing if (clothing) user.visible_message( @@ -236,11 +196,6 @@ ) return TRUE - // Mob - Feedback hint, this only works on harm. - if (buckled_mob) - USE_FEEDBACK_FAILURE("You refrain from ironing \the [buckled_mob].") - return TRUE - // Add Iron if (iron) USE_FEEDBACK_FAILURE("\The [src] already has \a [iron] on it.") @@ -306,6 +261,7 @@ icon_state = "iron" item_state = "ironingiron" slot_flags = SLOT_BELT + item_flags = ITEM_FLAG_TRY_ATTACK throwforce = 10 throw_range = 6 force = 8 @@ -321,6 +277,40 @@ range = 3 ) +/obj/item/ironing_iron/attack(mob/living/subject, mob/living/user, click_parameters) + if (!istype(subject) || !istype(user)) + return + if (iron_enabled && subject.incapacitated()) + var/zone = user.zone_sel.selecting + var/mob/living/carbon/human/human + var/obj/item/organ/external/organ + if (ishuman(subject)) + human = subject + organ = human.get_organ(zone) + if (!organ) + USE_FEEDBACK_FAILURE("\The [subject] has no [parse_zone(zone)] to iron.") + return TRUE + user.visible_message( + SPAN_WARNING("\The [user] starts ironing \the [subject][human ? "'s [parse_zone(zone)]" : null] with \a [src]!"), + SPAN_DANGER("You start ironing \the [subject][human ? "'s [parse_zone(zone)]" : null] with \a [src]!"), + exclude_mobs = list(subject) + ) + subject.show_message( + SPAN_DANGER("\The [user] starts ironing you[human ? "r [parse_zone(zone)]" : null] with \a [src]!"), + VISIBLE_MESSAGE, + SPAN_DANGER("You feel a hot, searing pain[human ? " in your [parse_zone(zone)]" : null]!") + ) + var/sound_token = GLOB.sound_player.PlayLoopingSound(src, "\ref[src]", 'sound/effects/iron_sizzle.ogg', 80) + for (var/i = 1 to 5) + if (!do_after(user, 1 SECOND, subject, DO_PUBLIC_UNIQUE) || !user.use_sanity_check(subject, src)) + break + if (organ) + organ.take_external_damage(0, rand(3, 5), used_weapon = "Hot metal") + else + subject.take_overall_damage(0, rand(3, 5), "Hot metal") + qdel(sound_token) + return TRUE + /obj/random/ironing_board_structure name = "random deployed ironing board" From 65816328ac8e69e64b6e961f2c0eac56d15750d2 Mon Sep 17 00:00:00 2001 From: Sierra Helper <125094432+SierraHelper@users.noreply.github.com> Date: Mon, 11 Sep 2023 09:08:19 +0300 Subject: [PATCH 043/158] =?UTF-8?q?=D0=A7=D0=B5=D0=B9=D0=BD=D0=B4=D0=B6?= =?UTF-8?q?=D0=BB=D0=BE=D0=B3=20=D0=B4=D0=BB=D1=8F=20PR=20#994=20[ci=20ski?= =?UTF-8?q?p]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- html/changelogs/AutoChangeLog-sierra-pr-994.yml | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-sierra-pr-994.yml diff --git a/html/changelogs/AutoChangeLog-sierra-pr-994.yml b/html/changelogs/AutoChangeLog-sierra-pr-994.yml new file mode 100644 index 0000000000000..2c65289211cc4 --- /dev/null +++ b/html/changelogs/AutoChangeLog-sierra-pr-994.yml @@ -0,0 +1,8 @@ +author: emmanuelbassil +delete-after: true +changes: + - tweak: Can now iron any incapacitated mob wherever they may be, all you need is + an enabled ironing iron! + - bugfix: Fixed ironing boards deleting themselves when buckling a mob to them using + a grab + - bugfix: Fixed ironing boards never allowing you to place an iron on them From f0093e9e90241ddb750df271c4c7305444e41f7d Mon Sep 17 00:00:00 2001 From: Sierra Helper <125094432+SierraHelper@users.noreply.github.com> Date: Tue, 12 Sep 2023 01:14:01 +0000 Subject: [PATCH 044/158] =?UTF-8?q?=D0=90=D0=B2=D1=82=D0=BE=D0=BC=D0=B0?= =?UTF-8?q?=D1=82=D0=B8=D1=87=D0=B5=D1=81=D0=BA=D0=B0=D1=8F=20=D0=BA=D0=BE?= =?UTF-8?q?=D0=BC=D0=BF=D0=B8=D0=BB=D1=8F=D1=86=D0=B8=D1=8F=20=D1=87=D0=B5?= =?UTF-8?q?=D0=B9=D0=BD=D0=B4=D0=B6=D0=BB=D0=BE=D0=B3=D0=BE=D0=B2=20[ci=20?= =?UTF-8?q?skip]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- html/changelog.html | 64 +++++++++++-------- html/changelogs/.all_changelog.yml | 26 ++++++++ .../AutoChangeLog-sierra-pr-989.yml | 5 -- .../AutoChangeLog-sierra-pr-990.yml | 5 -- .../AutoChangeLog-sierra-pr-991.yml | 5 -- .../AutoChangeLog-sierra-pr-992.yml | 4 -- .../AutoChangeLog-sierra-pr-994.yml | 8 --- .../AutoChangeLog-sierra-pr-995.yml | 4 -- .../AutoChangeLog-sierra-pr-996.yml | 4 -- .../AutoChangeLog-sierra-pr-998.yml | 6 -- 10 files changed, 64 insertions(+), 67 deletions(-) delete mode 100644 html/changelogs/AutoChangeLog-sierra-pr-989.yml delete mode 100644 html/changelogs/AutoChangeLog-sierra-pr-990.yml delete mode 100644 html/changelogs/AutoChangeLog-sierra-pr-991.yml delete mode 100644 html/changelogs/AutoChangeLog-sierra-pr-992.yml delete mode 100644 html/changelogs/AutoChangeLog-sierra-pr-994.yml delete mode 100644 html/changelogs/AutoChangeLog-sierra-pr-995.yml delete mode 100644 html/changelogs/AutoChangeLog-sierra-pr-996.yml delete mode 100644 html/changelogs/AutoChangeLog-sierra-pr-998.yml diff --git a/html/changelog.html b/html/changelog.html index 89e672d1d9933..01c7a1857f4e2 100644 --- a/html/changelog.html +++ b/html/changelog.html @@ -28,6 +28,44 @@

Sierra SS13

-->
+

12.09 - 2023

+

Обновления Mucker:

+
+
Removed the Energy Machette from emagged flying borg's modules.
+
+

Обновления Reishi42:

+
+
It was strange that "Join Response Team" or "Join as Actor" is on the IC tab of living human.
+
+

Обновления Ryan180602:

+
+
Remove probability for the "You momentarily forget ..!" interaction when brain damaged.
+
Increase threshold to 80 brain damage for "You look at x cluelessly" interaction.
+
+

Обновления Sbotkin:

+
+
Carefully stepping (creep intent) on spilled liquids prevents from smearing it.
+
+

Обновления SierraKomodo:

+
+
Removed the unused and unnecessary fuel pipes from the supermatter core.
+
+

Обновления SingingSpock:

+
+
The Rust output SMES no longer has charge in it to start
+
+

Обновления emmanuelbassil:

+
+
Can now iron any incapacitated mob wherever they may be, all you need is an enabled ironing iron!
+
Fixed ironing boards deleting themselves when buckling a mob to them using a grab
+
Fixed ironing boards never allowing you to place an iron on them
+
+

Обновления gy1ta23, joeynosegay:

+
+
Some smokeables have better item descriptions.
+
Cigarette cases start empty.
+
+

10.09 - 2023

Обновления Reishi42:

@@ -425,32 +463,6 @@

Обновления Mucker:

Giant spider counts are now capped at 30 globally (to start) so they don't consume everything everywhere.
Fixed the Paralyze verb not working.
- -

11.07 - 2023

-

Обновления Azlan, Jux:

-
-
Adds a select fire, drum fed shotgun to gun spawners and merc uplinks, sprited by Azlan!
-
Adds shotgun drums to lathes and uplinks, sprited by Azlan!
-
Individual shotgun shells are now a little less than half their old material cost.
-
The random projectile weapon spawner now favors old-fashioned items less.
-
-

Обновления Jux:

-
-
The SEV Torch now issues ballistic weapons instead of laser weapons.
-
-

Обновления Mucker:

-
-
Spider nurses will now lay eggs if left undisturbed for too long, making spiders a persistent threat if not totally eradicated.
-
Moved the 'path' variable type in VV menus to 'type'.
-
-

Обновления SierraKomodo:

-
-
Decals on turfs now disappear when their tiles are removed.
-
-

Обновления TheNightingale:

-
-
Adds rainbow table flags to the Torch.
-
Icons by Icons8
diff --git a/html/changelogs/.all_changelog.yml b/html/changelogs/.all_changelog.yml index a80c0bef35702..25dc68396661c 100644 --- a/html/changelogs/.all_changelog.yml +++ b/html/changelogs/.all_changelog.yml @@ -21737,3 +21737,29 @@ DO NOT EDIT THIS FILE BY HAND! AUTOMATICALLY GENERATED BY sierra_genchangelog.p Reishi42: - bugfix: The shard of glass in your hands was not melted into a sheet of glass if you pressed it with welding tool in your hands. +2023-09-12: + Mucker: + - rscdel: Removed the Energy Machette from emagged flying borg's modules. + Reishi42: + - bugfix: It was strange that "Join Response Team" or "Join as Actor" is on the + IC tab of living human. + Ryan180602: + - tweak: Remove probability for the "You momentarily forget ..!" interaction when + brain damaged. + - tweak: Increase threshold to 80 brain damage for "You look at x cluelessly" interaction. + Sbotkin: + - tweak: Carefully stepping (creep intent) on spilled liquids prevents from smearing + it. + SierraKomodo: + - maptweak: Removed the unused and unnecessary fuel pipes from the supermatter core. + SingingSpock: + - maptweak: The Rust output SMES no longer has charge in it to start + emmanuelbassil: + - tweak: Can now iron any incapacitated mob wherever they may be, all you need is + an enabled ironing iron! + - bugfix: Fixed ironing boards deleting themselves when buckling a mob to them using + a grab + - bugfix: Fixed ironing boards never allowing you to place an iron on them + gy1ta23, joeynosegay: + - tweak: Some smokeables have better item descriptions. + - tweak: Cigarette cases start empty. diff --git a/html/changelogs/AutoChangeLog-sierra-pr-989.yml b/html/changelogs/AutoChangeLog-sierra-pr-989.yml deleted file mode 100644 index c815daab40227..0000000000000 --- a/html/changelogs/AutoChangeLog-sierra-pr-989.yml +++ /dev/null @@ -1,5 +0,0 @@ -author: Reishi42 -delete-after: true -changes: - - bugfix: It was strange that "Join Response Team" or "Join as Actor" is on the - IC tab of living human. diff --git a/html/changelogs/AutoChangeLog-sierra-pr-990.yml b/html/changelogs/AutoChangeLog-sierra-pr-990.yml deleted file mode 100644 index 51513c0445700..0000000000000 --- a/html/changelogs/AutoChangeLog-sierra-pr-990.yml +++ /dev/null @@ -1,5 +0,0 @@ -author: Sbotkin -delete-after: true -changes: - - tweak: Carefully stepping (creep intent) on spilled liquids prevents from smearing - it. diff --git a/html/changelogs/AutoChangeLog-sierra-pr-991.yml b/html/changelogs/AutoChangeLog-sierra-pr-991.yml deleted file mode 100644 index 9058f311c1f86..0000000000000 --- a/html/changelogs/AutoChangeLog-sierra-pr-991.yml +++ /dev/null @@ -1,5 +0,0 @@ -author: gy1ta23, joeynosegay -delete-after: true -changes: - - tweak: Some smokeables have better item descriptions. - - tweak: Cigarette cases start empty. diff --git a/html/changelogs/AutoChangeLog-sierra-pr-992.yml b/html/changelogs/AutoChangeLog-sierra-pr-992.yml deleted file mode 100644 index a954f12ac7f86..0000000000000 --- a/html/changelogs/AutoChangeLog-sierra-pr-992.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: SingingSpock -delete-after: true -changes: - - maptweak: The Rust output SMES no longer has charge in it to start diff --git a/html/changelogs/AutoChangeLog-sierra-pr-994.yml b/html/changelogs/AutoChangeLog-sierra-pr-994.yml deleted file mode 100644 index 2c65289211cc4..0000000000000 --- a/html/changelogs/AutoChangeLog-sierra-pr-994.yml +++ /dev/null @@ -1,8 +0,0 @@ -author: emmanuelbassil -delete-after: true -changes: - - tweak: Can now iron any incapacitated mob wherever they may be, all you need is - an enabled ironing iron! - - bugfix: Fixed ironing boards deleting themselves when buckling a mob to them using - a grab - - bugfix: Fixed ironing boards never allowing you to place an iron on them diff --git a/html/changelogs/AutoChangeLog-sierra-pr-995.yml b/html/changelogs/AutoChangeLog-sierra-pr-995.yml deleted file mode 100644 index b9ff975a6ae95..0000000000000 --- a/html/changelogs/AutoChangeLog-sierra-pr-995.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: SierraKomodo -delete-after: true -changes: - - maptweak: Removed the unused and unnecessary fuel pipes from the supermatter core. diff --git a/html/changelogs/AutoChangeLog-sierra-pr-996.yml b/html/changelogs/AutoChangeLog-sierra-pr-996.yml deleted file mode 100644 index d73194e448533..0000000000000 --- a/html/changelogs/AutoChangeLog-sierra-pr-996.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: Mucker -delete-after: true -changes: - - rscdel: Removed the Energy Machette from emagged flying borg's modules. diff --git a/html/changelogs/AutoChangeLog-sierra-pr-998.yml b/html/changelogs/AutoChangeLog-sierra-pr-998.yml deleted file mode 100644 index 47f6daf371d5d..0000000000000 --- a/html/changelogs/AutoChangeLog-sierra-pr-998.yml +++ /dev/null @@ -1,6 +0,0 @@ -author: Ryan180602 -delete-after: true -changes: - - tweak: Remove probability for the "You momentarily forget ..!" interaction when - brain damaged. - - tweak: Increase threshold to 80 brain damage for "You look at x cluelessly" interaction. From ee721ce9e3c586ada007216fa93c445cbe471ceb Mon Sep 17 00:00:00 2001 From: SingingSpock <29682682+SingingSpock@users.noreply.github.com> Date: Mon, 11 Sep 2023 01:05:07 +0300 Subject: [PATCH 045/158] [MIRROR] Guns no longer ignore safety on harm with good skills --- code/modules/projectiles/gun.dm | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/code/modules/projectiles/gun.dm b/code/modules/projectiles/gun.dm index 6406b3e72127d..d268ee0d100ea 100644 --- a/code/modules/projectiles/gun.dm +++ b/code/modules/projectiles/gun.dm @@ -234,11 +234,8 @@ return if(safety()) - if(user.a_intent == I_HURT && user.skill_check(SKILL_WEAPONS, SKILL_EXPERIENCED)) - toggle_safety(user) - else - handle_click_safety(user) - return + handle_click_safety(user) + return if(world.time < next_fire_time) if (world.time % 3) //to prevent spam From 67c53137c0fdb17a4f8c2737f4b74bcb8f2a90fd Mon Sep 17 00:00:00 2001 From: SuhEugene <32931701+SuhEugene@users.noreply.github.com> Date: Tue, 12 Sep 2023 15:54:30 +0300 Subject: [PATCH 046/158] Revert: Guns no longer ignore safety... Commit: Guns no longer ignore safety on harm with good skills PR: #993 / Baystation12#34139 --- code/modules/projectiles/gun.dm | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/code/modules/projectiles/gun.dm b/code/modules/projectiles/gun.dm index d268ee0d100ea..c76ea4ee684e0 100644 --- a/code/modules/projectiles/gun.dm +++ b/code/modules/projectiles/gun.dm @@ -234,7 +234,14 @@ return if(safety()) - handle_click_safety(user) + // [SIERRA-EDIT] - Mirror revert + // handle_click_safety(user) // SIERRA-EDIT - ORIGINAL + if(user.a_intent == I_HURT && user.skill_check(SKILL_WEAPONS, SKILL_EXPERIENCED)) + toggle_safety(user) + else + handle_click_safety(user) + return + // [/SIERRA-EDIT] return if(world.time < next_fire_time) From a04e06b87e444707c345e37744b4893f424aebed Mon Sep 17 00:00:00 2001 From: Sierra Helper <125094432+SierraHelper@users.noreply.github.com> Date: Tue, 12 Sep 2023 15:55:52 +0300 Subject: [PATCH 047/158] =?UTF-8?q?=D0=A7=D0=B5=D0=B9=D0=BD=D0=B4=D0=B6?= =?UTF-8?q?=D0=BB=D0=BE=D0=B3=20=D0=B4=D0=BB=D1=8F=20PR=20#993=20[ci=20ski?= =?UTF-8?q?p]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- html/changelogs/AutoChangeLog-sierra-pr-993.yml | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-sierra-pr-993.yml diff --git a/html/changelogs/AutoChangeLog-sierra-pr-993.yml b/html/changelogs/AutoChangeLog-sierra-pr-993.yml new file mode 100644 index 0000000000000..f7131691d72f7 --- /dev/null +++ b/html/changelogs/AutoChangeLog-sierra-pr-993.yml @@ -0,0 +1,5 @@ +author: SingingSpock +delete-after: true +changes: + - tweak: Guns no longer ignore having the safety toggled on when you're on harm + intent and click From 5cab39889bc2970d95e46aad6b5f374264c77727 Mon Sep 17 00:00:00 2001 From: Sierra Helper <125094432+SierraHelper@users.noreply.github.com> Date: Wed, 13 Sep 2023 01:17:04 +0000 Subject: [PATCH 048/158] =?UTF-8?q?=D0=90=D0=B2=D1=82=D0=BE=D0=BC=D0=B0?= =?UTF-8?q?=D1=82=D0=B8=D1=87=D0=B5=D1=81=D0=BA=D0=B0=D1=8F=20=D0=BA=D0=BE?= =?UTF-8?q?=D0=BC=D0=BF=D0=B8=D0=BB=D1=8F=D1=86=D0=B8=D1=8F=20=D1=87=D0=B5?= =?UTF-8?q?=D0=B9=D0=BD=D0=B4=D0=B6=D0=BB=D0=BE=D0=B3=D0=BE=D0=B2=20[ci=20?= =?UTF-8?q?skip]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- html/changelog.html | 19 ++++++------------- html/changelogs/.all_changelog.yml | 4 ++++ .../AutoChangeLog-sierra-pr-993.yml | 5 ----- 3 files changed, 10 insertions(+), 18 deletions(-) delete mode 100644 html/changelogs/AutoChangeLog-sierra-pr-993.yml diff --git a/html/changelog.html b/html/changelog.html index 01c7a1857f4e2..3c172879c1bfe 100644 --- a/html/changelog.html +++ b/html/changelog.html @@ -28,6 +28,12 @@

Sierra SS13

-->
+

13.09 - 2023

+

Обновления SingingSpock:

+
+
Guns no longer ignore having the safety toggled on when you're on harm intent and click
+
+

12.09 - 2023

Обновления Mucker:

@@ -450,19 +456,6 @@

Обновления jux:

10mm rubber bullets do 15 brute, up from 5, and 15 agony, down from 30. Holdout rubber bullets do 10 brute, up from 5, and 10 agony, down from 20. Shotgun beanbags do 20 brute, down from 25, and 30 agony, down from 60.
Projectiles that deal agony reduce agony dealt by the armor blocking it.
- -

12.07 - 2023

-

Обновления Jux:

-
-
Secarm has been divided in two, with more advanced ballistic weaponry, the ammo for said weapons and lethal handgun ammo requiring COS access.
-
Secarm now has ion pistols instead of ion rifles.
-
The BC and COS no longer spawn with lethal ammo in their lockers, and FTs now have an m19.
-
-

Обновления Mucker:

-
-
Giant spider counts are now capped at 30 globally (to start) so they don't consume everything everywhere.
-
Fixed the Paralyze verb not working.
-
Icons by Icons8
diff --git a/html/changelogs/.all_changelog.yml b/html/changelogs/.all_changelog.yml index 25dc68396661c..5a105bdf17c8f 100644 --- a/html/changelogs/.all_changelog.yml +++ b/html/changelogs/.all_changelog.yml @@ -21763,3 +21763,7 @@ DO NOT EDIT THIS FILE BY HAND! AUTOMATICALLY GENERATED BY sierra_genchangelog.p gy1ta23, joeynosegay: - tweak: Some smokeables have better item descriptions. - tweak: Cigarette cases start empty. +2023-09-13: + SingingSpock: + - tweak: Guns no longer ignore having the safety toggled on when you're on harm + intent and click diff --git a/html/changelogs/AutoChangeLog-sierra-pr-993.yml b/html/changelogs/AutoChangeLog-sierra-pr-993.yml deleted file mode 100644 index f7131691d72f7..0000000000000 --- a/html/changelogs/AutoChangeLog-sierra-pr-993.yml +++ /dev/null @@ -1,5 +0,0 @@ -author: SingingSpock -delete-after: true -changes: - - tweak: Guns no longer ignore having the safety toggled on when you're on harm - intent and click From 417539397012ea35aecfc32f1b8b8def825f837f Mon Sep 17 00:00:00 2001 From: SuhEugene <32931701+SuhEugene@users.noreply.github.com> Date: Wed, 13 Sep 2023 04:20:27 +0300 Subject: [PATCH 049/158] [MIRROR] Fix spacedrift `has_gravity` check --- code/game/area/areas.dm | 1 - 1 file changed, 1 deletion(-) diff --git a/code/game/area/areas.dm b/code/game/area/areas.dm index 105d8dc66dff8..655161d041727 100644 --- a/code/game/area/areas.dm +++ b/code/game/area/areas.dm @@ -241,7 +241,6 @@ if(!istype(A,/mob/living)) return var/mob/living/L = A - if(!L.ckey) return if(!L.lastarea) L.lastarea = get_area(L.loc) From 64ebc9d4ded02c62ed23ab6b2f192673b5703180 Mon Sep 17 00:00:00 2001 From: Sierra Helper <125094432+SierraHelper@users.noreply.github.com> Date: Wed, 13 Sep 2023 07:17:46 +0300 Subject: [PATCH 050/158] =?UTF-8?q?=D0=A7=D0=B5=D0=B9=D0=BD=D0=B4=D0=B6?= =?UTF-8?q?=D0=BB=D0=BE=D0=B3=20=D0=B4=D0=BB=D1=8F=20PR=20#999=20[ci=20ski?= =?UTF-8?q?p]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- html/changelogs/AutoChangeLog-sierra-pr-999.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-sierra-pr-999.yml diff --git a/html/changelogs/AutoChangeLog-sierra-pr-999.yml b/html/changelogs/AutoChangeLog-sierra-pr-999.yml new file mode 100644 index 0000000000000..740812a625c10 --- /dev/null +++ b/html/changelogs/AutoChangeLog-sierra-pr-999.yml @@ -0,0 +1,4 @@ +author: SuhEugene +delete-after: true +changes: + - bugfix: Fixes exosuit space movement. They're no longer able to walk in space. From 4408e8f430ab9929a278bcc5f554a90551af0b71 Mon Sep 17 00:00:00 2001 From: Sierra Helper <125094432+SierraHelper@users.noreply.github.com> Date: Thu, 14 Sep 2023 01:14:54 +0000 Subject: [PATCH 051/158] =?UTF-8?q?=D0=90=D0=B2=D1=82=D0=BE=D0=BC=D0=B0?= =?UTF-8?q?=D1=82=D0=B8=D1=87=D0=B5=D1=81=D0=BA=D0=B0=D1=8F=20=D0=BA=D0=BE?= =?UTF-8?q?=D0=BC=D0=BF=D0=B8=D0=BB=D1=8F=D1=86=D0=B8=D1=8F=20=D1=87=D0=B5?= =?UTF-8?q?=D0=B9=D0=BD=D0=B4=D0=B6=D0=BB=D0=BE=D0=B3=D0=BE=D0=B2=20[ci=20?= =?UTF-8?q?skip]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- html/changelog.html | 6 ++++++ html/changelogs/.all_changelog.yml | 3 +++ html/changelogs/AutoChangeLog-sierra-pr-999.yml | 4 ---- 3 files changed, 9 insertions(+), 4 deletions(-) delete mode 100644 html/changelogs/AutoChangeLog-sierra-pr-999.yml diff --git a/html/changelog.html b/html/changelog.html index 3c172879c1bfe..b6742adc7c29a 100644 --- a/html/changelog.html +++ b/html/changelog.html @@ -28,6 +28,12 @@

Sierra SS13

-->
+

14.09 - 2023

+

Обновления SuhEugene:

+
+
Fixes exosuit space movement. They're no longer able to walk in space.
+
+

13.09 - 2023

Обновления SingingSpock:

diff --git a/html/changelogs/.all_changelog.yml b/html/changelogs/.all_changelog.yml index 5a105bdf17c8f..c958274d0f511 100644 --- a/html/changelogs/.all_changelog.yml +++ b/html/changelogs/.all_changelog.yml @@ -21767,3 +21767,6 @@ DO NOT EDIT THIS FILE BY HAND! AUTOMATICALLY GENERATED BY sierra_genchangelog.p SingingSpock: - tweak: Guns no longer ignore having the safety toggled on when you're on harm intent and click +2023-09-14: + SuhEugene: + - bugfix: Fixes exosuit space movement. They're no longer able to walk in space. diff --git a/html/changelogs/AutoChangeLog-sierra-pr-999.yml b/html/changelogs/AutoChangeLog-sierra-pr-999.yml deleted file mode 100644 index 740812a625c10..0000000000000 --- a/html/changelogs/AutoChangeLog-sierra-pr-999.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: SuhEugene -delete-after: true -changes: - - bugfix: Fixes exosuit space movement. They're no longer able to walk in space. From d7ed0e6037a38dde5fda68e1d0f2ca58f655b2dd Mon Sep 17 00:00:00 2001 From: SuhEugene <32931701+SuhEugene@users.noreply.github.com> Date: Thu, 14 Sep 2023 08:30:26 +0300 Subject: [PATCH 052/158] [MIRROR] Remove unwanted projectile knockback variable --- code/modules/projectiles/projectile.dm | 1 - 1 file changed, 1 deletion(-) diff --git a/code/modules/projectiles/projectile.dm b/code/modules/projectiles/projectile.dm index da27df93da897..14b310f74aefb 100644 --- a/code/modules/projectiles/projectile.dm +++ b/code/modules/projectiles/projectile.dm @@ -57,7 +57,6 @@ var/agony = 0 var/embed = FALSE // whether or not the projectile can embed itself in the mob var/penetration_modifier = 0.2 //How likely this projectile is to embed or rupture artery - var/knockback = 0 //SIERRA var/space_knockback = 0 //whether or not it will knock things back in space var/hitscan = FALSE // whether the projectile should be hitscan From c9258a057e1fbe1778583914b91ab327258cacb4 Mon Sep 17 00:00:00 2001 From: MuckerMayhem <1161516+MuckerMayhem@users.noreply.github.com> Date: Fri, 15 Sep 2023 00:12:30 +0300 Subject: [PATCH 053/158] [MIRROR] fix some morpheus head icons --- .../cyberlimbs/morpheus/morpheus_airborne.dmi | Bin 470 -> 559 bytes .../cyberlimbs/morpheus/morpheus_blitz.dmi | Bin 436 -> 538 bytes .../cyberlimbs/morpheus/morpheus_prime.dmi | Bin 424 -> 515 bytes 3 files changed, 0 insertions(+), 0 deletions(-) diff --git a/icons/mob/human_races/cyberlimbs/morpheus/morpheus_airborne.dmi b/icons/mob/human_races/cyberlimbs/morpheus/morpheus_airborne.dmi index 2b3fd738f139a75c81fe413b7eb4de6a90d994dd..e5d8b3390bdd0830c6ba30df0d2cede0a7dd2072 100644 GIT binary patch literal 559 zcmV+~0?_@5P)g+CahI4{J%i}000~u9Q?vdz`($}gx?(i0004WQchCV=-0C=2JR&a84_w-Y6@%7{?OD!tS%+FJ>RWQ*r;NmRL zOex6#a*U0*I5Sc+(=$pSoZ^zil2jm5DI+y8B|cY)i!&v&s2HS+i!-e#F*g;&HbhgF zhD({Uf~%hk*m?kBXeDGp!K2Xt00BEmL_t(oh3%IyOT$nUg`d_$vgsf=YBHr$Nkq^| z>>p6@lA*JKcIuMF-CZISUdI$7>7M_mgTp=d3U4V+_uI}3_a<51$8qkzI6uRjUSZB| z9v~ml3*@-Gg?wBz6&zf=6KrV9;)CbDrg6>k0!<`+@X@Li7XW3x((h(ia-h52PGCMITPX8gZF0000S92~4wG5o?ywe*e100001bW%=J06^y0W&i*H zb$V1-bVOxyV{&P5bZKvH004NLC5^idKtK=x>)Wr`(2G~A5h4nHK~5~U1t)ul-}mZf znwb#Gx@mi?x)x3n$9BU4^C$*&@#M`TSqjP!FUJ4ky!P~9uv*y-9d6Jpqm_*UP!o%L z1E6NnE4`dRh;?6miyPmMA2Q#vAE^KU0N+VOK~zYI?bN*rf>0R7ar=@(Q_;|B4x(G} zHrWyl-9Q|$Eu^I8Za@U%xC(|f1y0T0U~ayTb4%f~{qQeG2i3H1Z9GDo2D(E_@E|y0 zFuBs2I|}@eTb~kbxgVx;=Rvm$Hrx-nPvOWNk>pMTGvk4n(Zc4=mCE5En-8V39IOeY z&wfmuc0MuJAZytR+?vfLbl_{BONebf7f4{aa%v>fDh|C&E`8;HZa={KG4+7ndGAn z)x@%88Ok1qGh1kC8lgbXG9Y?30DgqsTsrpA_bvJJC_^h36h%>kH$MUoq#4dmh5Ie>ydOwk#K?Xie32O7{XqI6aV6dlq%RWi reh~R0afIU^9r++a^aJ&QqWlwX#veji#`#G}00000NkvXXu0mjfoZi1> delta 347 zcmV-h0i^z#1hfMsiBL{Q4GJ0x0000DNk~Le0000$0000$1Oos709Z$C?EnA(8<8a+ z6_@sS82|tP0d!JMQvg8b*k%9#0CSOCNq;xLs30S?v^YK~C$pqViHkEOv#1!Pn~O88 zC^0t`#5UwoR&e!m0hj0002UNkl ze*-vJUS2e4drZwvbjxj}mUt|S$R$kL(U+n!+Bp7cO~ zKcbn&s>7TH=03&On!9d}Y@ko6I^Z$0e+N$C*!zk@c*l+oxVN9Xr`{jm)M4qvje4`C zn5pM<$!x%f`AiS;G_KU~*qOH({lE^U1(<*B%mHy@1CUp!dMjQ4jqp}De98mEFpOt# ziQndWFJd=P*Lu;Ufb11oFPaXo^tM)e0rz~_h^oCf#XQmhwHI#0u+jsq7j8jhW51~O z0zOvmS})*5xY`TDFpTFA`+@95f!q&dFABtdQ1qfe><6+JC2~Iyy?8Ld_XF9B60si? vy(r=PLD7o`pAf;2y(kg;f$W8082^-CvrjOu+C*(=00000NkvXXu0mjf7i`4L delta 362 zcmZo>S-~9E8Q|y6%O%Cdz`(%k>ERLtq#Zz*g&9ajxaYhDQW60^A+84w98gnJb8>P@ zOG^Wa$;ikk_$|`E{`**E{}dpfu_VYZn8D%M4UlB<#7NJ2^ZhFnl(%lN*tbB#*gUke z+gNq;3W+7NyN%as7@CV7F?$jeR`9i$aW+3gQH$)~TQ~3i0_xoF>EamT(fRg@t2;*W{+9DbMAF^(+*r7C zn_}c@H{EK3x?)xt15es61(%`|;XS(-EMx6WuiMT3dft_2x%4;#y*YMolD_R(U?lY^ z^wQ$lKk^mMZ81>zWVs?KF{WFb;f_W5(>+U{hJRx74VH+AVegvEzzy_`r>mdKI;Vst E0D}IBNB{r; From 6ee47abb042f9cb594cd0612a7246f6b4df8c145 Mon Sep 17 00:00:00 2001 From: Sierra Helper <125094432+SierraHelper@users.noreply.github.com> Date: Fri, 15 Sep 2023 00:14:50 +0300 Subject: [PATCH 054/158] =?UTF-8?q?=D0=A7=D0=B5=D0=B9=D0=BD=D0=B4=D0=B6?= =?UTF-8?q?=D0=BB=D0=BE=D0=B3=20=D0=B4=D0=BB=D1=8F=20PR=20#1003=20[ci=20sk?= =?UTF-8?q?ip]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- html/changelogs/AutoChangeLog-sierra-pr-1003.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-sierra-pr-1003.yml diff --git a/html/changelogs/AutoChangeLog-sierra-pr-1003.yml b/html/changelogs/AutoChangeLog-sierra-pr-1003.yml new file mode 100644 index 0000000000000..8c6606c59cb1d --- /dev/null +++ b/html/changelogs/AutoChangeLog-sierra-pr-1003.yml @@ -0,0 +1,4 @@ +author: Mucker +delete-after: true +changes: + - bugfix: Fixed the Morpheus ariborne, blitz, and prime head icons being invisible. From 563647cc0caf37d67e155c802bf38f74da9530fd Mon Sep 17 00:00:00 2001 From: Sierra Helper <125094432+SierraHelper@users.noreply.github.com> Date: Fri, 15 Sep 2023 00:34:55 +0300 Subject: [PATCH 055/158] [MIRROR] attack/use_weapon consistancy fixes (#1018) Co-authored-by: SierraKomodo <11140088+SierraKomodo@users.noreply.github.com> --- code/__defines/mobs.dm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/code/__defines/mobs.dm b/code/__defines/mobs.dm index 507910a68cc35..a396d8e790099 100644 --- a/code/__defines/mobs.dm +++ b/code/__defines/mobs.dm @@ -126,9 +126,9 @@ #define DEFAULT_ATTACK_COOLDOWN 8 //Default timeout for aggressive actions #define DEFAULT_QUICK_COOLDOWN 4 -#define FAST_WEAPON_COOLDOWN 5 -#define DEFAULT_WEAPON_COOLDOWN 10 -#define SLOW_WEAPON_COOLDOWN 15 +#define FAST_WEAPON_COOLDOWN 3 +#define DEFAULT_WEAPON_COOLDOWN 5 +#define SLOW_WEAPON_COOLDOWN 7 #define MIN_SUPPLIED_LAW_NUMBER 15 #define MAX_SUPPLIED_LAW_NUMBER 50 From dfd7e023a61cc94d1ef61313df785d8557b95a5f Mon Sep 17 00:00:00 2001 From: Spookerton <918997+Spookerton@users.noreply.github.com> Date: Fri, 15 Sep 2023 00:26:44 +0300 Subject: [PATCH 056/158] [MIRROR] fix beehive assembly icon --- .../modules/hydroponics/beekeeping/beehive.dm | 2 +- icons/obj/beekeeping.dmi | Bin 5311 -> 5309 bytes 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/hydroponics/beekeeping/beehive.dm b/code/modules/hydroponics/beekeeping/beehive.dm index 649c5460b6320..6b02cddf5223a 100644 --- a/code/modules/hydroponics/beekeeping/beehive.dm +++ b/code/modules/hydroponics/beekeeping/beehive.dm @@ -255,7 +255,7 @@ name = "beehive assembly" desc = "Contains everything you need to build a beehive." icon = 'icons/obj/beekeeping.dmi' - icon_state = "beepack" + icon_state = "apiary" /obj/item/beehive_assembly/attack_self(mob/user) to_chat(user, SPAN_NOTICE("You start assembling \the [src]...")) diff --git a/icons/obj/beekeeping.dmi b/icons/obj/beekeeping.dmi index 93a68bf58ac135c0038903a63bf68526c2d1fdac..01fc2f6d672e454a1817fa0429a53aec92a4f3cc 100644 GIT binary patch delta 4998 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 Sh{|0+{_d-4tCT8PKl?uk6TXH3 delta 4988 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 UJLxC;D1bT)bd7aNZ^NJe4}Rms00000 From 83b548c3c6d700026fd464fbb5b6d0ab6ceadb99 Mon Sep 17 00:00:00 2001 From: Spookerton <918997+Spookerton@users.noreply.github.com> Date: Fri, 15 Sep 2023 00:26:55 +0300 Subject: [PATCH 057/158] [MIRROR] re-add augment implanter sprite --- code/modules/augment/implanter.dm | 6 +++--- icons/obj/tools/augment_implanter.dmi | Bin 0 -> 351 bytes 2 files changed, 3 insertions(+), 3 deletions(-) create mode 100644 icons/obj/tools/augment_implanter.dmi diff --git a/code/modules/augment/implanter.dm b/code/modules/augment/implanter.dm index a93a12bf2450e..e8192778a23f6 100644 --- a/code/modules/augment/implanter.dm +++ b/code/modules/augment/implanter.dm @@ -1,8 +1,8 @@ /obj/item/device/augment_implanter - name = "augment autodoc" + name = "augment implanter" desc = "An oblong box with an irregular shape and a seam running down the center." - icon = 'icons/obj/tools/implanter.dmi' - icon_state = "compact_bionic_module" + icon = 'icons/obj/tools/augment_implanter.dmi' + icon_state = "augment_implanter" w_class = ITEM_SIZE_NORMAL origin_tech = list(TECH_DATA = 3, TECH_ESOTERIC = 3) var/obj/item/organ/internal/augment/augment diff --git a/icons/obj/tools/augment_implanter.dmi b/icons/obj/tools/augment_implanter.dmi new file mode 100644 index 0000000000000000000000000000000000000000..46dc2a534bfb3af153086d6b12565af3f723f219 GIT binary patch literal 351 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE3?yBabR7dy#sNMdt_Kbrkd~HClU8tbb)6RG z|Lb_(+6Ke;`1qZzrL`J*LPA37>gqL`n!y6%TH2bMHf?%%Grw;|Bs)+$V@Z%-FoVOh z8)-mJX;nx>iA!p6a#3bMNoIZ?14G4};IM+C((hk_3qF2*qUEitb?(gh;0>V$7mXi0 z(mC&=d6J>1r+0^iaggz4V=sj{k0u?N6rvEUxzWVd+;qK)o$+=Bb;I>4TRl3vja4_V zkkCj!adc+blo_+R61BB={My;DmVx1}uDrUd%jS1L2Sj?hIEGmCzCC9x)}X-Sa#0{) zf`7^X)uk(x#1<}mvh2xRV}aam%cFe{|Gx|Uz*tdOaHgr)PB65Kb6ug5c&K-)nco+O vo(6#vx@ijh=Xk7&5B*W$x?041YhN7yWA-y&*tpGrmN0m_`njxgN@xNA`g(*Y literal 0 HcmV?d00001 From 898ace79d0575e3ccf97b326bf8909335b961bb4 Mon Sep 17 00:00:00 2001 From: MuckerMayhem <1161516+MuckerMayhem@users.noreply.github.com> Date: Fri, 15 Sep 2023 00:27:58 +0300 Subject: [PATCH 058/158] [MIRROR] fixed plant genes not being randomized --- code/controllers/subsystems/plants.dm | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/code/controllers/subsystems/plants.dm b/code/controllers/subsystems/plants.dm index a2dc20fd643c5..55e14b431bd4b 100644 --- a/code/controllers/subsystems/plants.dm +++ b/code/controllers/subsystems/plants.dm @@ -103,8 +103,9 @@ SUBSYSTEM_DEF(plants) var/list/gene_datums = GET_SINGLETON_SUBTYPE_MAP(/singleton/plantgene) var/list/used_masks = list() + var/list/plant_genes = shuffle(ALL_GENES) - for (var/tag in ALL_GENES) + for (var/tag in plant_genes) var/mask = uppertext(num2hex(rand(0, 0xFF))) while (mask in used_masks) mask = uppertext(num2hex(rand(0, 0xFF))) From 83dd8ca052c849d6b4253f636214a774b94923cc Mon Sep 17 00:00:00 2001 From: SierraKomodo <11140088+SierraKomodo@users.noreply.github.com> Date: Fri, 15 Sep 2023 00:27:50 +0300 Subject: [PATCH 059/158] [MIRROR] Anchored navlights --- code/modules/power/nav_light.dm | 1 + 1 file changed, 1 insertion(+) diff --git a/code/modules/power/nav_light.dm b/code/modules/power/nav_light.dm index 0d7343c846f79..f44345b19c808 100644 --- a/code/modules/power/nav_light.dm +++ b/code/modules/power/nav_light.dm @@ -4,6 +4,7 @@ icon = 'icons/obj/structures/nav_light.dmi' icon_state = "nav_light" color = "#f0f0f0" + anchored = TRUE /obj/machinery/nav_light/Initialize() From 61cde33659ebad2b47d3c68257a48fb8ef88dc93 Mon Sep 17 00:00:00 2001 From: SierraKomodo <11140088+SierraKomodo@users.noreply.github.com> Date: Fri, 15 Sep 2023 00:27:40 +0300 Subject: [PATCH 060/158] [MIRROR] Fix augment surgery messages --- code/modules/surgery/robotics.dm | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/code/modules/surgery/robotics.dm b/code/modules/surgery/robotics.dm index 70cd7c0aa1ef1..254fd07da9591 100644 --- a/code/modules/surgery/robotics.dm +++ b/code/modules/surgery/robotics.dm @@ -446,14 +446,18 @@ return FALSE /singleton/surgery_step/robotics/detatch_organ_robotic/begin_step(mob/user, mob/living/carbon/human/target, target_zone, obj/item/tool) - user.visible_message("[user] starts to decouple [target]'s [LAZYACCESS(target.surgeries_in_progress, target_zone)] with \the [tool].", \ - "You start to decouple [target]'s [LAZYACCESS(target.surgeries_in_progress, target_zone)] with \the [tool]." ) + var/obj/affected = target.get_organ(target_zone) + var/obj/removing = target.internal_organs_by_name[LAZYACCESS(target.surgeries_in_progress, target_zone)] + user.visible_message("[user] starts to decouple \the [removing] from \the [target]'s [affected.name] with \the [tool].", \ + "You start to decouple \the [removing] from \the [target]'s [affected.name] with \the [tool]." ) playsound(target.loc, 'sound/items/Deconstruct.ogg', 15, 1) ..() /singleton/surgery_step/robotics/detatch_organ_robotic/end_step(mob/living/user, mob/living/carbon/human/target, target_zone, obj/item/tool) - user.visible_message(SPAN_NOTICE("[user] has decoupled [target]'s [LAZYACCESS(target.surgeries_in_progress, target_zone)] with \the [tool].") , \ - SPAN_NOTICE("You have decoupled [target]'s [LAZYACCESS(target.surgeries_in_progress, target_zone)] with \the [tool].")) + var/obj/affected = target.get_organ(target_zone) + var/obj/removing = target.internal_organs_by_name[LAZYACCESS(target.surgeries_in_progress, target_zone)] + user.visible_message(SPAN_NOTICE("[user] has decoupled \the [removing] from \the [target]'s [affected.name] with \the [tool].") , \ + SPAN_NOTICE("You have decoupled \the [removing] from \the [target]'s [affected.name] with \the [tool].")) var/obj/item/organ/internal/I = target.internal_organs_by_name[LAZYACCESS(target.surgeries_in_progress, target_zone)] if(I && istype(I)) @@ -508,8 +512,10 @@ /singleton/surgery_step/robotics/attach_organ_robotic/begin_step(mob/user, mob/living/carbon/human/target, target_zone, obj/item/tool) - user.visible_message("[user] begins reattaching [target]'s [LAZYACCESS(target.surgeries_in_progress, target_zone)] with \the [tool].", \ - "You start reattaching [target]'s [LAZYACCESS(target.surgeries_in_progress, target_zone)] with \the [tool].") + var/obj/affected = target.get_organ(target_zone) + var/obj/attaching = target.internal_organs_by_name[LAZYACCESS(target.surgeries_in_progress, target_zone)] + user.visible_message("[user] begins reattaching \the [attaching] from \the [target]'s [affected.name] with \the [tool].", \ + "You start reattaching \the [attaching] from \the [target]'s [affected.name] with \the [tool].") playsound(target.loc, 'sound/items/Screwdriver.ogg', 15, 1) ..() From 2d464a149a5abce5d257add863faf4d42761c8a0 Mon Sep 17 00:00:00 2001 From: Sierra Helper <125094432+SierraHelper@users.noreply.github.com> Date: Fri, 15 Sep 2023 00:37:56 +0300 Subject: [PATCH 061/158] =?UTF-8?q?=D0=A7=D0=B5=D0=B9=D0=BD=D0=B4=D0=B6?= =?UTF-8?q?=D0=BB=D0=BE=D0=B3=20=D0=B4=D0=BB=D1=8F=20PR=20#1018=20[ci=20sk?= =?UTF-8?q?ip]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- html/changelogs/AutoChangeLog-sierra-pr-1018.yml | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-sierra-pr-1018.yml diff --git a/html/changelogs/AutoChangeLog-sierra-pr-1018.yml b/html/changelogs/AutoChangeLog-sierra-pr-1018.yml new file mode 100644 index 0000000000000..8d0d8c056a889 --- /dev/null +++ b/html/changelogs/AutoChangeLog-sierra-pr-1018.yml @@ -0,0 +1,5 @@ +author: SierraKomodo +delete-after: true +changes: + - bugfix: Weapon attacks now generate attack logs again. + - bugfix: Weapon attacks can now be blocked by auras and things using aura code. From 6a675c9dcd6aeb89cb4ddd0520df9bde2c85c03b Mon Sep 17 00:00:00 2001 From: Sierra Helper <125094432+SierraHelper@users.noreply.github.com> Date: Fri, 15 Sep 2023 00:38:18 +0300 Subject: [PATCH 062/158] =?UTF-8?q?=D0=A7=D0=B5=D0=B9=D0=BD=D0=B4=D0=B6?= =?UTF-8?q?=D0=BB=D0=BE=D0=B3=20=D0=B4=D0=BB=D1=8F=20PR=20#1008=20[ci=20sk?= =?UTF-8?q?ip]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- html/changelogs/AutoChangeLog-sierra-pr-1008.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-sierra-pr-1008.yml diff --git a/html/changelogs/AutoChangeLog-sierra-pr-1008.yml b/html/changelogs/AutoChangeLog-sierra-pr-1008.yml new file mode 100644 index 0000000000000..c26e48786bc79 --- /dev/null +++ b/html/changelogs/AutoChangeLog-sierra-pr-1008.yml @@ -0,0 +1,4 @@ +author: Mucker +delete-after: true +changes: + - bugfix: Plant genes are now properly randomized again. From 7a643a79c40945b3b1d3b1ae6b025774a2a124d6 Mon Sep 17 00:00:00 2001 From: Sierra Helper <125094432+SierraHelper@users.noreply.github.com> Date: Fri, 15 Sep 2023 00:38:26 +0300 Subject: [PATCH 063/158] =?UTF-8?q?=D0=A7=D0=B5=D0=B9=D0=BD=D0=B4=D0=B6?= =?UTF-8?q?=D0=BB=D0=BE=D0=B3=20=D0=B4=D0=BB=D1=8F=20PR=20#1007=20[ci=20sk?= =?UTF-8?q?ip]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- html/changelogs/AutoChangeLog-sierra-pr-1007.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-sierra-pr-1007.yml diff --git a/html/changelogs/AutoChangeLog-sierra-pr-1007.yml b/html/changelogs/AutoChangeLog-sierra-pr-1007.yml new file mode 100644 index 0000000000000..bb9187a147e28 --- /dev/null +++ b/html/changelogs/AutoChangeLog-sierra-pr-1007.yml @@ -0,0 +1,4 @@ +author: SierraKomodo +delete-after: true +changes: + - bugfix: Navigational lights no longer fly away when you maneuver. From dfb55b5bc88d127bd28f84a54e1fecf01af61c3a Mon Sep 17 00:00:00 2001 From: Sierra Helper <125094432+SierraHelper@users.noreply.github.com> Date: Fri, 15 Sep 2023 00:38:41 +0300 Subject: [PATCH 064/158] =?UTF-8?q?=D0=A7=D0=B5=D0=B9=D0=BD=D0=B4=D0=B6?= =?UTF-8?q?=D0=BB=D0=BE=D0=B3=20=D0=B4=D0=BB=D1=8F=20PR=20#1006=20[ci=20sk?= =?UTF-8?q?ip]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- html/changelogs/AutoChangeLog-sierra-pr-1006.yml | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-sierra-pr-1006.yml diff --git a/html/changelogs/AutoChangeLog-sierra-pr-1006.yml b/html/changelogs/AutoChangeLog-sierra-pr-1006.yml new file mode 100644 index 0000000000000..917d966713a83 --- /dev/null +++ b/html/changelogs/AutoChangeLog-sierra-pr-1006.yml @@ -0,0 +1,5 @@ +author: SierraKomodo +delete-after: true +changes: + - bugfix: Attaching and removing augments now displays the augment's name instead + of, i.e., "r_arm_aug". From 08eb0610e0fb8dd6e7933d2166ac46832d363980 Mon Sep 17 00:00:00 2001 From: Sbotkin <5092934+Sbotkin@users.noreply.github.com> Date: Fri, 15 Sep 2023 00:28:31 +0300 Subject: [PATCH 065/158] [MIRROR] Fixes the Petrov R&D server access --- code/game/machinery/telecomms/logbrowser.dm | 2 +- code/game/machinery/telecomms/telemonitor.dm | 2 +- code/modules/research/rdconsole.dm | 2 +- code/modules/research/server.dm | 6 +++--- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/code/game/machinery/telecomms/logbrowser.dm b/code/game/machinery/telecomms/logbrowser.dm index 98e26663de471..d919fca05075e 100644 --- a/code/game/machinery/telecomms/logbrowser.dm +++ b/code/game/machinery/telecomms/logbrowser.dm @@ -194,6 +194,6 @@ playsound(src.loc, 'sound/effects/sparks4.ogg', 75, 1) emagged = TRUE req_access.Cut() - to_chat(user, SPAN_NOTICE("You you disable the security protocols")) + to_chat(user, SPAN_NOTICE("You disable the security protocols")) src.updateUsrDialog() return 1 diff --git a/code/game/machinery/telecomms/telemonitor.dm b/code/game/machinery/telecomms/telemonitor.dm index 8c32a3db7f822..8b7543e064807 100644 --- a/code/game/machinery/telecomms/telemonitor.dm +++ b/code/game/machinery/telecomms/telemonitor.dm @@ -129,6 +129,6 @@ playsound(src.loc, 'sound/effects/sparks4.ogg', 75, 1) emagged = TRUE req_access.Cut() - to_chat(user, SPAN_NOTICE("You you disable the security protocols")) + to_chat(user, SPAN_NOTICE("You disable the security protocols")) src.updateUsrDialog() return 1 diff --git a/code/modules/research/rdconsole.dm b/code/modules/research/rdconsole.dm index ea4458f592c14..05eb04d97e21e 100644 --- a/code/modules/research/rdconsole.dm +++ b/code/modules/research/rdconsole.dm @@ -160,7 +160,7 @@ won't update every console in existence) but it's more of a hassle to do. Also, playsound(src.loc, 'sound/effects/sparks4.ogg', 75, 1) emagged = TRUE req_access.Cut() - to_chat(user, SPAN_NOTICE("You you disable the security protocols.")) + to_chat(user, SPAN_NOTICE("You disable the security protocols.")) return 1 /obj/machinery/computer/rdconsole/CanUseTopic(mob/user, datum/topic_state/state, href_list) diff --git a/code/modules/research/server.dm b/code/modules/research/server.dm index b41b471dafed1..6f21d80ca71b1 100644 --- a/code/modules/research/server.dm +++ b/code/modules/research/server.dm @@ -266,14 +266,14 @@ playsound(src.loc, 'sound/effects/sparks4.ogg', 75, 1) emagged = TRUE req_access.Cut() - to_chat(user, SPAN_NOTICE("You you disable the security protocols.")) + to_chat(user, SPAN_NOTICE("You disable the security protocols.")) src.updateUsrDialog() return 1 /obj/machinery/r_n_d/server/robotics name = "robotics R&D server" - id_with_upload_string = "1;2" - id_with_download_string = "1;2" + id_with_upload_string = "1;2;3" + id_with_download_string = "1;2;3" server_id = 2 /obj/machinery/r_n_d/server/core From b459709c946b06aedb0302251d77c3de265f21ac Mon Sep 17 00:00:00 2001 From: Sierra Helper <125094432+SierraHelper@users.noreply.github.com> Date: Fri, 15 Sep 2023 00:42:11 +0300 Subject: [PATCH 066/158] =?UTF-8?q?=D0=A7=D0=B5=D0=B9=D0=BD=D0=B4=D0=B6?= =?UTF-8?q?=D0=BB=D0=BE=D0=B3=20=D0=B4=D0=BB=D1=8F=20PR=20#1013=20[ci=20sk?= =?UTF-8?q?ip]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- html/changelogs/AutoChangeLog-sierra-pr-1013.yml | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-sierra-pr-1013.yml diff --git a/html/changelogs/AutoChangeLog-sierra-pr-1013.yml b/html/changelogs/AutoChangeLog-sierra-pr-1013.yml new file mode 100644 index 0000000000000..9ba1b843c69e6 --- /dev/null +++ b/html/changelogs/AutoChangeLog-sierra-pr-1013.yml @@ -0,0 +1,5 @@ +author: Sbotkin +delete-after: true +changes: + - bugfix: The Petrov's R&D console now correctly synchronizes with the robotics + server. From e7e7c7a3cec1bda9a5b67628b03ec338049789ec Mon Sep 17 00:00:00 2001 From: SierraKomodo <11140088+SierraKomodo@users.noreply.github.com> Date: Fri, 15 Sep 2023 00:28:53 +0300 Subject: [PATCH 067/158] [MIRROR] Remove language when removing changeling --- code/game/antagonist/station/changeling.dm | 1 + 1 file changed, 1 insertion(+) diff --git a/code/game/antagonist/station/changeling.dm b/code/game/antagonist/station/changeling.dm index 5e454a21ee605..cad98abb3195d 100644 --- a/code/game/antagonist/station/changeling.dm +++ b/code/game/antagonist/station/changeling.dm @@ -28,6 +28,7 @@ GLOBAL_DATUM_INIT(changelings, /datum/antagonist/changeling, new) if(. && player && player.current) player.current.remove_changeling_powers() player.current.verbs -= /datum/changeling/proc/EvolutionMenu + player.current.remove_language(LANGUAGE_CHANGELING_GLOBAL) QDEL_NULL(player.changeling) /datum/antagonist/changeling/create_objectives(datum/mind/changeling) From 9b4389d90106ed0f1a140e342a76146bae0910da Mon Sep 17 00:00:00 2001 From: SierraKomodo <11140088+SierraKomodo@users.noreply.github.com> Date: Fri, 15 Sep 2023 00:28:44 +0300 Subject: [PATCH 068/158] [MIRROR] Fix incorrect waddle targeting --- code/modules/mob/animations.dm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/code/modules/mob/animations.dm b/code/modules/mob/animations.dm index 5333c4a486422..8ecf723d929ea 100644 --- a/code/modules/mob/animations.dm +++ b/code/modules/mob/animations.dm @@ -312,8 +312,8 @@ note dizziness decrements automatically in the mob's Life() proc. /mob/proc/make_waddle() waddling = TRUE - GLOB.moved_event.register(usr, src, .proc/waddle) + GLOB.moved_event.register(src, src, .proc/waddle) /mob/proc/stop_waddle() waddling = FALSE - GLOB.moved_event.unregister(usr, src, .proc/waddle) + GLOB.moved_event.unregister(src, src, .proc/waddle) From fec69c4c1329723fffdf8b29212472024d816400 Mon Sep 17 00:00:00 2001 From: MuckerMayhem <1161516+MuckerMayhem@users.noreply.github.com> Date: Fri, 15 Sep 2023 00:28:38 +0300 Subject: [PATCH 069/158] [MIRROR] fix bluespace turfs not reverting entirely --- code/modules/events/bsd_instability.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/events/bsd_instability.dm b/code/modules/events/bsd_instability.dm index 2a0d4bc48a429..8303674075ee7 100644 --- a/code/modules/events/bsd_instability.dm +++ b/code/modules/events/bsd_instability.dm @@ -110,7 +110,7 @@ drive.set_light(1, 5, 15, 10, COLOR_CYAN) for (var/turf/simulated/floor/floor in range(turf_conversion_range, drive)) if (istype(floor.flooring, /singleton/flooring/bluespace)) - floor.set_flooring(GET_SINGLETON(initial(floor.flooring))) + floor.ChangeTurf(/turf/simulated/floor/plating) for (var/obj/structure/stairs/stair in stairs) stair.bluespace_affected = FALSE for (var/obj/structure/ladder/ladder in ladders) From 2ae3623fdce5f5aa30dea07177b4ff113a80a19b Mon Sep 17 00:00:00 2001 From: Merlin1230 <76177064+Merlin1230@users.noreply.github.com> Date: Fri, 15 Sep 2023 00:28:24 +0300 Subject: [PATCH 070/158] [MIRROR] Allows machines inside an obj to actually be able to get power --- code/game/machinery/_machines_base/machinery_power.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/game/machinery/_machines_base/machinery_power.dm b/code/game/machinery/_machines_base/machinery_power.dm index ae87d38893d56..f2bfabf91b130 100644 --- a/code/game/machinery/_machines_base/machinery_power.dm +++ b/code/game/machinery/_machines_base/machinery_power.dm @@ -23,7 +23,7 @@ This is /obj/machinery level code to properly manage power usage from the area. // return 1 if(!check_area) - check_area = loc.loc // make sure it's in an area + check_area = get_area(src) // make sure it's in an area if(!check_area || !isarea(check_area)) return FALSE // if not, then not powered if(chan == POWER_CHAN) From 63f3db985f8e0e220081b1869c595c21b1128826 Mon Sep 17 00:00:00 2001 From: Sierra Helper <125094432+SierraHelper@users.noreply.github.com> Date: Fri, 15 Sep 2023 00:43:18 +0300 Subject: [PATCH 071/158] =?UTF-8?q?=D0=A7=D0=B5=D0=B9=D0=BD=D0=B4=D0=B6?= =?UTF-8?q?=D0=BB=D0=BE=D0=B3=20=D0=B4=D0=BB=D1=8F=20PR=20#1016=20[ci=20sk?= =?UTF-8?q?ip]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- html/changelogs/AutoChangeLog-sierra-pr-1016.yml | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-sierra-pr-1016.yml diff --git a/html/changelogs/AutoChangeLog-sierra-pr-1016.yml b/html/changelogs/AutoChangeLog-sierra-pr-1016.yml new file mode 100644 index 0000000000000..6d8118bb31ff9 --- /dev/null +++ b/html/changelogs/AutoChangeLog-sierra-pr-1016.yml @@ -0,0 +1,5 @@ +author: SierraKomodo +delete-after: true +changes: + - bugfix: Mobs no longer keep access to the changeling hivemind when their changeling + status is removed. From ce4a94ef0fb893256a148ee77ca7705a8816092c Mon Sep 17 00:00:00 2001 From: Sierra Helper <125094432+SierraHelper@users.noreply.github.com> Date: Fri, 15 Sep 2023 00:43:33 +0300 Subject: [PATCH 072/158] =?UTF-8?q?=D0=A7=D0=B5=D0=B9=D0=BD=D0=B4=D0=B6?= =?UTF-8?q?=D0=BB=D0=BE=D0=B3=20=D0=B4=D0=BB=D1=8F=20PR=20#1014=20[ci=20sk?= =?UTF-8?q?ip]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- html/changelogs/AutoChangeLog-sierra-pr-1014.yml | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-sierra-pr-1014.yml diff --git a/html/changelogs/AutoChangeLog-sierra-pr-1014.yml b/html/changelogs/AutoChangeLog-sierra-pr-1014.yml new file mode 100644 index 0000000000000..a4e21e5ac7d6c --- /dev/null +++ b/html/changelogs/AutoChangeLog-sierra-pr-1014.yml @@ -0,0 +1,5 @@ +author: Mucker +delete-after: true +changes: + - bugfix: Bluespace turfs made from the BSD event now properly revert to normal + floors. From cf9b0ab73fd49c35a6d45f21c600d12d52e6abd0 Mon Sep 17 00:00:00 2001 From: Sierra Helper <125094432+SierraHelper@users.noreply.github.com> Date: Fri, 15 Sep 2023 00:43:43 +0300 Subject: [PATCH 073/158] =?UTF-8?q?=D0=A7=D0=B5=D0=B9=D0=BD=D0=B4=D0=B6?= =?UTF-8?q?=D0=BB=D0=BE=D0=B3=20=D0=B4=D0=BB=D1=8F=20PR=20#1012=20[ci=20sk?= =?UTF-8?q?ip]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- html/changelogs/AutoChangeLog-sierra-pr-1012.yml | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-sierra-pr-1012.yml diff --git a/html/changelogs/AutoChangeLog-sierra-pr-1012.yml b/html/changelogs/AutoChangeLog-sierra-pr-1012.yml new file mode 100644 index 0000000000000..de4102bc76213 --- /dev/null +++ b/html/changelogs/AutoChangeLog-sierra-pr-1012.yml @@ -0,0 +1,6 @@ +author: Merlin1230 +delete-after: true +changes: + - bugfix: Fixes items that had internal machines that needed to be powered so they + could actually get powered from a powered area, which includes the press camera + drone From 4e7ec9f4c474c56d342b88550afb7923cfea9d86 Mon Sep 17 00:00:00 2001 From: SierraKomodo <11140088+SierraKomodo@users.noreply.github.com> Date: Fri, 15 Sep 2023 00:28:59 +0300 Subject: [PATCH 074/158] [MIRROR] Nabber Kill Grab Fixes --- code/modules/mob/grab/nab/grab_nab.dm | 10 ++++++---- code/modules/mob/grab/nab/nab_kill.dm | 2 ++ 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/code/modules/mob/grab/nab/grab_nab.dm b/code/modules/mob/grab/nab/grab_nab.dm index 384c42bd84249..81fa6fffe6a25 100644 --- a/code/modules/mob/grab/nab/grab_nab.dm +++ b/code/modules/mob/grab/nab/grab_nab.dm @@ -34,13 +34,14 @@ affecting.visible_message(SPAN_DANGER("[assailant] begins crushing [affecting]!")) G.attacking = 1 - if(do_after(assailant, action_cooldown - 1, affecting, DO_DEFAULT | DO_USER_UNIQUE_ACT | DO_PUBLIC_PROGRESS)) + if(do_after(assailant, action_cooldown - 1, affecting, DO_DEFAULT | DO_USER_UNIQUE_ACT | DO_PUBLIC_PROGRESS) && assailant.use_sanity_check(affecting, G)) G.attacking = 0 G.action_used() crush(G, crush_damage) return TRUE else - G.attacking = 0 + if (G) // In case the grab was deleted during the timer + G.attacking = 0 affecting.visible_message(SPAN_NOTICE("[assailant] stops crushing [affecting]!")) return TRUE @@ -53,13 +54,14 @@ affecting.visible_message(SPAN_DANGER("[assailant] begins chewing on [affecting]!")) G.attacking = 1 - if(do_after(assailant, action_cooldown - 1, affecting, DO_DEFAULT | DO_USER_UNIQUE_ACT | DO_PUBLIC_PROGRESS)) + if(do_after(assailant, action_cooldown - 1, affecting, DO_DEFAULT | DO_USER_UNIQUE_ACT | DO_PUBLIC_PROGRESS) && assailant.use_sanity_check(affecting, G)) G.attacking = 0 G.action_used() masticate(G, masticate_damage) return TRUE else - G.attacking = 0 + if (G) // In case the grab was deleted during the timer + G.attacking = 0 affecting.visible_message(SPAN_NOTICE("[assailant] stops chewing on [affecting].")) return TRUE diff --git a/code/modules/mob/grab/nab/nab_kill.dm b/code/modules/mob/grab/nab/nab_kill.dm index 8e3b7fb20c01d..d9e8832050b99 100644 --- a/code/modules/mob/grab/nab/nab_kill.dm +++ b/code/modules/mob/grab/nab/nab_kill.dm @@ -18,6 +18,8 @@ process_effect(G) /datum/grab/nab/kill/process_effect(obj/item/grab/G) + if (G.attacking) + return var/mob/living/carbon/human/assailant = G.assailant var/mob/living/carbon/human/affecting = G.affecting From a679cad9d9cd3dba37cc8ad213c8dd81aa3dc8ed Mon Sep 17 00:00:00 2001 From: Sierra Helper <125094432+SierraHelper@users.noreply.github.com> Date: Fri, 15 Sep 2023 00:44:41 +0300 Subject: [PATCH 075/158] =?UTF-8?q?=D0=A7=D0=B5=D0=B9=D0=BD=D0=B4=D0=B6?= =?UTF-8?q?=D0=BB=D0=BE=D0=B3=20=D0=B4=D0=BB=D1=8F=20PR=20#1017=20[ci=20sk?= =?UTF-8?q?ip]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- html/changelogs/AutoChangeLog-sierra-pr-1017.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-sierra-pr-1017.yml diff --git a/html/changelogs/AutoChangeLog-sierra-pr-1017.yml b/html/changelogs/AutoChangeLog-sierra-pr-1017.yml new file mode 100644 index 0000000000000..0a215ba057a15 --- /dev/null +++ b/html/changelogs/AutoChangeLog-sierra-pr-1017.yml @@ -0,0 +1,4 @@ +author: SierraKomodo +delete-after: true +changes: + - bugfix: Nabber (GAS) kill-grabs no longer repeatedly cancel themselves. From 783321e22dc99d36a34dc16bc4220eb54940b6b5 Mon Sep 17 00:00:00 2001 From: emmanuelbassil <6874235+emmanuelbassil@users.noreply.github.com> Date: Fri, 15 Sep 2023 00:28:16 +0300 Subject: [PATCH 076/158] [MIRROR] Fixes parrying --- code/_onclick/item_attack.dm | 12 +++++++++++ code/modules/mob/living/damage_procs.dm | 12 ++++++++++- code/modules/mob/living/living_defense.dm | 16 +++++++++++++++ .../mob/living/simple_animal/defense.dm | 20 +++++++++++++++++++ 4 files changed, 59 insertions(+), 1 deletion(-) diff --git a/code/_onclick/item_attack.dm b/code/_onclick/item_attack.dm index 2f5378278baba..fbb82033fa9fc 100644 --- a/code/_onclick/item_attack.dm +++ b/code/_onclick/item_attack.dm @@ -298,6 +298,7 @@ avoid code duplication. This includes items that may sometimes act as a standard SPAN_WARNING("You felt something bounce off you harmlessly.") ) return TRUE +<<<<<<< ours var/hit_zone = resolve_item_attack(weapon, user, user.zone_sel? user.zone_sel.selecting : ran_zone()) if (!hit_zone) @@ -323,6 +324,12 @@ avoid code duplication. This includes items that may sometimes act as a standard "Was attacked with \a [weapon] (DAMTYE: [uppertext(weapon.damtype)])", "used \a [weapon] (DAMTYE: [uppertext(weapon.damtype)]) to attack" ) +======= + + var/hit_zone = resolve_item_attack(weapon, user, user.zone_sel? user.zone_sel.selecting : ran_zone()) + if (!hit_zone) + return TRUE +>>>>>>> theirs var/datum/attack_result/result = hit_zone if (istype(result)) @@ -451,6 +458,11 @@ avoid code duplication. This includes items that may sometimes act as a standard * Returns boolean to indicate whether or not damage was dealt. */ /obj/item/proc/apply_hit_effect(mob/living/target, mob/living/user, hit_zone) +<<<<<<< ours +======= + if (hitsound) + playsound(loc, hitsound, 75, TRUE) +>>>>>>> theirs var/power = force if (MUTATION_HULK in user.mutations && damtype == DAMAGE_BRUTE) //Repeat this check here because it is only used under use_weapon to check if it's even possible to damage the mob. Value not carried over here. power *= 2 diff --git a/code/modules/mob/living/damage_procs.dm b/code/modules/mob/living/damage_procs.dm index ab9716a9142a3..99c4230d32ba1 100644 --- a/code/modules/mob/living/damage_procs.dm +++ b/code/modules/mob/living/damage_procs.dm @@ -18,6 +18,14 @@ if(!damage) return FALSE + switch (damagetype) + if (DAMAGE_EMP, DAMAGE_FIRE) + return FALSE // These damages are handled separately by existing legacy code + if (DAMAGE_BIO) + damagetype = DAMAGE_TOXIN + if (DAMAGE_EXPLODE, DAMAGE_PSIONIC) + damagetype = DAMAGE_BRUTE + switch(damagetype) if (DAMAGE_BRUTE) adjustBruteLoss(damage) @@ -31,12 +39,14 @@ adjustOxyLoss(damage) if (DAMAGE_GENETIC) adjustCloneLoss(damage) - if (DAMAGE_PAIN) + if (DAMAGE_STUN, DAMAGE_PAIN) adjustHalLoss(damage) if (DAMAGE_SHOCK) electrocute_act(damage, used_weapon, 1, def_zone) if (DAMAGE_RADIATION) apply_radiation(damage) + if (DAMAGE_BRAIN) + adjustBrainLoss(damage) updatehealth() return TRUE diff --git a/code/modules/mob/living/living_defense.dm b/code/modules/mob/living/living_defense.dm index 85170b9e950a6..99675b77b0c25 100644 --- a/code/modules/mob/living/living_defense.dm +++ b/code/modules/mob/living/living_defense.dm @@ -133,6 +133,22 @@ ///Called when the mob is hit with an item in combat. Returns the blocked result /mob/living/proc/hit_with_weapon(obj/item/I, mob/living/user, effective_force, hit_zone) +<<<<<<< ours +======= + var/weapon_mention + if(I.attack_message_name()) + weapon_mention = " with [I.attack_message_name()]" + visible_message(SPAN_DANGER("\The [src] has been [length(I.attack_verb)? pick(I.attack_verb) : "attacked"][weapon_mention] by \the [user]!")) + + . = standard_weapon_hit_effects(I, user, effective_force, hit_zone) + + if (I.damtype == DAMAGE_BRUTE && prob(33)) // Added blood for whacking non-humans too + var/turf/simulated/location = get_turf(src) + if(istype(location)) location.add_blood_floor(src) + +///returns false if the effects failed to apply for some reason, true otherwise. +/mob/living/proc/standard_weapon_hit_effects(obj/item/I, mob/living/user, effective_force, hit_zone) +>>>>>>> theirs if(!effective_force) return FALSE diff --git a/code/modules/mob/living/simple_animal/defense.dm b/code/modules/mob/living/simple_animal/defense.dm index 353eb5dc511ff..a05330f10827a 100644 --- a/code/modules/mob/living/simple_animal/defense.dm +++ b/code/modules/mob/living/simple_animal/defense.dm @@ -59,6 +59,10 @@ return +<<<<<<< ours +======= + +>>>>>>> theirs /mob/living/simple_animal/use_tool(obj/item/tool, mob/user, list/click_params) // Butcher's Cleaver - Butcher dead mob if (istype(tool, /obj/item/material/knife/kitchen/cleaver)) @@ -121,14 +125,25 @@ return ..() +<<<<<<< ours /mob/living/simple_animal/post_use_item(obj/item/tool, mob/living/user, interaction_handled, use_call) +======= +/mob/living/simple_animal/post_use_item(obj/item/tool, mob/living/user, interaction_handled, use_call, click_params) +>>>>>>> theirs if (interaction_handled && ai_holder && (use_call == "attack" || use_call == "weapon")) ai_holder.react_to_attack(user) ..() +<<<<<<< ours /mob/living/simple_animal/hit_with_weapon(obj/item/O, mob/living/user, effective_force, hit_zone) if(O.force <= resistance) +======= +/mob/living/simple_animal/hit_with_weapon(obj/item/O, mob/living/user, effective_force, hit_zone) + + visible_message(SPAN_DANGER("\The [src] has been attacked with \the [O] by [user]!")) + if (O.force <= resistance) +>>>>>>> theirs to_chat(user, SPAN_DANGER("This weapon is ineffective; it does no damage.")) return FALSE @@ -143,6 +158,11 @@ adjustBruteLoss(damage) if (O.edge || O.sharp) adjustBleedTicks(damage) +<<<<<<< ours +======= + if (ai_holder) + ai_holder.react_to_attack(user) +>>>>>>> theirs return TRUE /mob/living/simple_animal/proc/reflect_unarmed_damage(mob/living/carbon/human/attacker, damage_type, description) From 38c5fb6f80bb35e8268c3d2daa4ea0a5a50c9709 Mon Sep 17 00:00:00 2001 From: SuhEugene <32931701+SuhEugene@users.noreply.github.com> Date: Fri, 15 Sep 2023 00:32:49 +0300 Subject: [PATCH 077/158] Resolve conflicts --- code/_onclick/item_attack.dm | 12 ----------- code/modules/mob/living/living_defense.dm | 16 --------------- .../mob/living/simple_animal/defense.dm | 20 ------------------- 3 files changed, 48 deletions(-) diff --git a/code/_onclick/item_attack.dm b/code/_onclick/item_attack.dm index fbb82033fa9fc..2f5378278baba 100644 --- a/code/_onclick/item_attack.dm +++ b/code/_onclick/item_attack.dm @@ -298,7 +298,6 @@ avoid code duplication. This includes items that may sometimes act as a standard SPAN_WARNING("You felt something bounce off you harmlessly.") ) return TRUE -<<<<<<< ours var/hit_zone = resolve_item_attack(weapon, user, user.zone_sel? user.zone_sel.selecting : ran_zone()) if (!hit_zone) @@ -324,12 +323,6 @@ avoid code duplication. This includes items that may sometimes act as a standard "Was attacked with \a [weapon] (DAMTYE: [uppertext(weapon.damtype)])", "used \a [weapon] (DAMTYE: [uppertext(weapon.damtype)]) to attack" ) -======= - - var/hit_zone = resolve_item_attack(weapon, user, user.zone_sel? user.zone_sel.selecting : ran_zone()) - if (!hit_zone) - return TRUE ->>>>>>> theirs var/datum/attack_result/result = hit_zone if (istype(result)) @@ -458,11 +451,6 @@ avoid code duplication. This includes items that may sometimes act as a standard * Returns boolean to indicate whether or not damage was dealt. */ /obj/item/proc/apply_hit_effect(mob/living/target, mob/living/user, hit_zone) -<<<<<<< ours -======= - if (hitsound) - playsound(loc, hitsound, 75, TRUE) ->>>>>>> theirs var/power = force if (MUTATION_HULK in user.mutations && damtype == DAMAGE_BRUTE) //Repeat this check here because it is only used under use_weapon to check if it's even possible to damage the mob. Value not carried over here. power *= 2 diff --git a/code/modules/mob/living/living_defense.dm b/code/modules/mob/living/living_defense.dm index 99675b77b0c25..85170b9e950a6 100644 --- a/code/modules/mob/living/living_defense.dm +++ b/code/modules/mob/living/living_defense.dm @@ -133,22 +133,6 @@ ///Called when the mob is hit with an item in combat. Returns the blocked result /mob/living/proc/hit_with_weapon(obj/item/I, mob/living/user, effective_force, hit_zone) -<<<<<<< ours -======= - var/weapon_mention - if(I.attack_message_name()) - weapon_mention = " with [I.attack_message_name()]" - visible_message(SPAN_DANGER("\The [src] has been [length(I.attack_verb)? pick(I.attack_verb) : "attacked"][weapon_mention] by \the [user]!")) - - . = standard_weapon_hit_effects(I, user, effective_force, hit_zone) - - if (I.damtype == DAMAGE_BRUTE && prob(33)) // Added blood for whacking non-humans too - var/turf/simulated/location = get_turf(src) - if(istype(location)) location.add_blood_floor(src) - -///returns false if the effects failed to apply for some reason, true otherwise. -/mob/living/proc/standard_weapon_hit_effects(obj/item/I, mob/living/user, effective_force, hit_zone) ->>>>>>> theirs if(!effective_force) return FALSE diff --git a/code/modules/mob/living/simple_animal/defense.dm b/code/modules/mob/living/simple_animal/defense.dm index a05330f10827a..353eb5dc511ff 100644 --- a/code/modules/mob/living/simple_animal/defense.dm +++ b/code/modules/mob/living/simple_animal/defense.dm @@ -59,10 +59,6 @@ return -<<<<<<< ours -======= - ->>>>>>> theirs /mob/living/simple_animal/use_tool(obj/item/tool, mob/user, list/click_params) // Butcher's Cleaver - Butcher dead mob if (istype(tool, /obj/item/material/knife/kitchen/cleaver)) @@ -125,25 +121,14 @@ return ..() -<<<<<<< ours /mob/living/simple_animal/post_use_item(obj/item/tool, mob/living/user, interaction_handled, use_call) -======= -/mob/living/simple_animal/post_use_item(obj/item/tool, mob/living/user, interaction_handled, use_call, click_params) ->>>>>>> theirs if (interaction_handled && ai_holder && (use_call == "attack" || use_call == "weapon")) ai_holder.react_to_attack(user) ..() -<<<<<<< ours /mob/living/simple_animal/hit_with_weapon(obj/item/O, mob/living/user, effective_force, hit_zone) if(O.force <= resistance) -======= -/mob/living/simple_animal/hit_with_weapon(obj/item/O, mob/living/user, effective_force, hit_zone) - - visible_message(SPAN_DANGER("\The [src] has been attacked with \the [O] by [user]!")) - if (O.force <= resistance) ->>>>>>> theirs to_chat(user, SPAN_DANGER("This weapon is ineffective; it does no damage.")) return FALSE @@ -158,11 +143,6 @@ adjustBruteLoss(damage) if (O.edge || O.sharp) adjustBleedTicks(damage) -<<<<<<< ours -======= - if (ai_holder) - ai_holder.react_to_attack(user) ->>>>>>> theirs return TRUE /mob/living/simple_animal/proc/reflect_unarmed_damage(mob/living/carbon/human/attacker, damage_type, description) From 63da478ed18051e2c64c9647fb9548828b137212 Mon Sep 17 00:00:00 2001 From: Sierra Helper <125094432+SierraHelper@users.noreply.github.com> Date: Fri, 15 Sep 2023 00:49:09 +0300 Subject: [PATCH 078/158] =?UTF-8?q?=D0=A7=D0=B5=D0=B9=D0=BD=D0=B4=D0=B6?= =?UTF-8?q?=D0=BB=D0=BE=D0=B3=20=D0=B4=D0=BB=D1=8F=20PR=20#1011=20[ci=20sk?= =?UTF-8?q?ip]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- html/changelogs/AutoChangeLog-sierra-pr-1011.yml | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-sierra-pr-1011.yml diff --git a/html/changelogs/AutoChangeLog-sierra-pr-1011.yml b/html/changelogs/AutoChangeLog-sierra-pr-1011.yml new file mode 100644 index 0000000000000..190d9ee397844 --- /dev/null +++ b/html/changelogs/AutoChangeLog-sierra-pr-1011.yml @@ -0,0 +1,6 @@ +author: emmanuelbassil, Mucker +delete-after: true +changes: + - bugfix: Restored ability to parry attacks. + - bugfix: Restored ability for melee attacks with weapons to miss. + - bugfix: Some melee weapons no longer ignore armor From 9492d0a354483dfaf228ebcce4e62eb7d8b33483 Mon Sep 17 00:00:00 2001 From: SierraKomodo <11140088+SierraKomodo@users.noreply.github.com> Date: Fri, 15 Sep 2023 00:29:11 +0300 Subject: [PATCH 079/158] [MIRROR] Fix grabs dropping when swapping hands --- code/modules/mob/grab/grab_object.dm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/code/modules/mob/grab/grab_object.dm b/code/modules/mob/grab/grab_object.dm index ff18665851478..777ace239e26a 100644 --- a/code/modules/mob/grab/grab_object.dm +++ b/code/modules/mob/grab/grab_object.dm @@ -349,8 +349,8 @@ /obj/item/grab/proc/use_sanity_check(atom/target, flags = SANITY_CHECK_DEFAULT) if (QDELETED(src) || QDELETED(assailant)) return FALSE - // Sanity check the grab itself - if (!assailant.use_sanity_check(target, src, flags)) + // Sanity check the grab itself, allowing hand swapping + if (!assailant.use_sanity_check(target, src, flags & ~SANITY_CHECK_TOOL_IN_HAND)) return FALSE // Sanity check the victim if (!assailant.use_sanity_check(target, affecting, flags)) From afe2f06efb0607151bf7edae645ed67fc8f74a38 Mon Sep 17 00:00:00 2001 From: MuckerMayhem <1161516+MuckerMayhem@users.noreply.github.com> Date: Fri, 15 Sep 2023 00:28:11 +0300 Subject: [PATCH 080/158] [MIRROR] fixed masks blocking speech problems --- code/modules/mob/living/carbon/human/say.dm | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/code/modules/mob/living/carbon/human/say.dm b/code/modules/mob/living/carbon/human/say.dm index 9144d48b8146a..7a089a3163c1e 100644 --- a/code/modules/mob/living/carbon/human/say.dm +++ b/code/modules/mob/living/carbon/human/say.dm @@ -148,19 +148,18 @@ return verb /mob/living/carbon/human/handle_speech_problems(list/message_data) - if(silent || (sdisabilities & MUTED)) + if (silent || (sdisabilities & MUTED)) message_data[1] = "" - . = 1 + return TRUE - else if(istype(wear_mask, /obj/item/clothing/mask)) + if (istype(wear_mask, /obj/item/clothing/mask)) var/obj/item/clothing/mask/M = wear_mask if(M.voicechange) message_data[1] = pick(M.say_messages) message_data[2] = pick(M.say_verbs) - . = 1 + return TRUE - else - . = ..(message_data) + return ..(message_data) /mob/living/carbon/human/handle_message_mode(message_mode, message, verb, speaking, used_radios, alt_name) switch(message_mode) From 5c21b70faa2d7f7e0594e0821547c5ffc811e6c3 Mon Sep 17 00:00:00 2001 From: MuckerMayhem <1161516+MuckerMayhem@users.noreply.github.com> Date: Fri, 15 Sep 2023 00:28:03 +0300 Subject: [PATCH 081/158] [MIRROR] fix chameleon items not being usable --- code/datums/extensions/chameleon.dm | 1 + 1 file changed, 1 insertion(+) diff --git a/code/datums/extensions/chameleon.dm b/code/datums/extensions/chameleon.dm index 28a049aedd8b4..c66da8eb58cd6 100644 --- a/code/datums/extensions/chameleon.dm +++ b/code/datums/extensions/chameleon.dm @@ -24,6 +24,7 @@ atom_holder = holder chameleon_verb = /atom/proc/chameleon_appearance + atom_holder.verbs += chameleon_verb /datum/extension/chameleon/Destroy() . = ..() From 3201c2f5f384ba46bf4e91971130c3c0202313ec Mon Sep 17 00:00:00 2001 From: Sierra Helper <125094432+SierraHelper@users.noreply.github.com> Date: Fri, 15 Sep 2023 00:50:03 +0300 Subject: [PATCH 082/158] =?UTF-8?q?=D0=A7=D0=B5=D0=B9=D0=BD=D0=B4=D0=B6?= =?UTF-8?q?=D0=BB=D0=BE=D0=B3=20=D0=B4=D0=BB=D1=8F=20PR=20#1019=20[ci=20sk?= =?UTF-8?q?ip]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- html/changelogs/AutoChangeLog-sierra-pr-1019.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-sierra-pr-1019.yml diff --git a/html/changelogs/AutoChangeLog-sierra-pr-1019.yml b/html/changelogs/AutoChangeLog-sierra-pr-1019.yml new file mode 100644 index 0000000000000..3deae4ad198ba --- /dev/null +++ b/html/changelogs/AutoChangeLog-sierra-pr-1019.yml @@ -0,0 +1,4 @@ +author: SierraKomodo +delete-after: true +changes: + - bugfix: Grabs no longer drop themselves when you switch hands. From a14bb56caaa100d7286c38f3faed307097d92be7 Mon Sep 17 00:00:00 2001 From: Sierra Helper <125094432+SierraHelper@users.noreply.github.com> Date: Fri, 15 Sep 2023 00:50:05 +0300 Subject: [PATCH 083/158] =?UTF-8?q?=D0=A7=D0=B5=D0=B9=D0=BD=D0=B4=D0=B6?= =?UTF-8?q?=D0=BB=D0=BE=D0=B3=20=D0=B4=D0=BB=D1=8F=20PR=20#1010=20[ci=20sk?= =?UTF-8?q?ip]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- html/changelogs/AutoChangeLog-sierra-pr-1010.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-sierra-pr-1010.yml diff --git a/html/changelogs/AutoChangeLog-sierra-pr-1010.yml b/html/changelogs/AutoChangeLog-sierra-pr-1010.yml new file mode 100644 index 0000000000000..5cd92d04f3233 --- /dev/null +++ b/html/changelogs/AutoChangeLog-sierra-pr-1010.yml @@ -0,0 +1,4 @@ +author: Mucker +delete-after: true +changes: + - bugfix: Masks no longer prevent speech problems. From 1b220372a43398dfb0c69846a8170c28fb27a7d0 Mon Sep 17 00:00:00 2001 From: Sierra Helper <125094432+SierraHelper@users.noreply.github.com> Date: Fri, 15 Sep 2023 00:50:43 +0300 Subject: [PATCH 084/158] =?UTF-8?q?=D0=A7=D0=B5=D0=B9=D0=BD=D0=B4=D0=B6?= =?UTF-8?q?=D0=BB=D0=BE=D0=B3=20=D0=B4=D0=BB=D1=8F=20PR=20#1009=20[ci=20sk?= =?UTF-8?q?ip]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- html/changelogs/AutoChangeLog-sierra-pr-1009.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-sierra-pr-1009.yml diff --git a/html/changelogs/AutoChangeLog-sierra-pr-1009.yml b/html/changelogs/AutoChangeLog-sierra-pr-1009.yml new file mode 100644 index 0000000000000..3bcd97a952a73 --- /dev/null +++ b/html/changelogs/AutoChangeLog-sierra-pr-1009.yml @@ -0,0 +1,4 @@ +author: Mucker +delete-after: true +changes: + - bugfix: Fixed chameleon kit items not working. From d7953af2cb05168afb558c63ce18bad36acb6192 Mon Sep 17 00:00:00 2001 From: SuhEugene <32931701+SuhEugene@users.noreply.github.com> Date: Thu, 14 Sep 2023 23:13:53 +0300 Subject: [PATCH 085/158] Improve closet appearance --- baystation12.dme | 1 + .../closets/_closet_appearance_definitions.dm | 5 +++++ .../icons/obj/closets/bases/closet.dmi | Bin 0 -> 1861 bytes .../icons/obj/closets/bases/wall.dmi | Bin 0 -> 1606 bytes 4 files changed, 6 insertions(+) create mode 100644 mods/_master_files/code/game/objects/structures/crates_lockers/closets/_closet_appearance_definitions.dm create mode 100644 mods/_master_files/icons/obj/closets/bases/closet.dmi create mode 100644 mods/_master_files/icons/obj/closets/bases/wall.dmi diff --git a/baystation12.dme b/baystation12.dme index 027450f3ddc53..2c6cfe5742c08 100644 --- a/baystation12.dme +++ b/baystation12.dme @@ -3312,6 +3312,7 @@ #include "mods\_modpack.dm" #include "mods\global_modpacks.dm" #include "mods\_master_files\code\game\objects\effects\decals\contraband.dm" +#include "mods\_master_files\code\game\objects\structures\crates_lockers\closets\_closet_appearance_definitions.dm" #include "mods\_master_files\code\modules\client\asset_cache.dm" #include "mods\_master_files\code\modules\events\gravity.dm" #include "mods\_master_files\code\modules\mob\new_player\new_player.dm" diff --git a/mods/_master_files/code/game/objects/structures/crates_lockers/closets/_closet_appearance_definitions.dm b/mods/_master_files/code/game/objects/structures/crates_lockers/closets/_closet_appearance_definitions.dm new file mode 100644 index 0000000000000..9ab1e94bd47bb --- /dev/null +++ b/mods/_master_files/code/game/objects/structures/crates_lockers/closets/_closet_appearance_definitions.dm @@ -0,0 +1,5 @@ +/singleton/closet_appearance + base_icon = 'mods/_master_files/icons/obj/closets/bases/closet.dmi' + +/singleton/closet_appearance/wall + base_icon = 'icons/obj/closets/bases/wall.dmi' diff --git a/mods/_master_files/icons/obj/closets/bases/closet.dmi b/mods/_master_files/icons/obj/closets/bases/closet.dmi new file mode 100644 index 0000000000000000000000000000000000000000..0f7b71d0069771b3fcc439dc3adfefc366d02c0b GIT binary patch literal 1861 zcma)-c{JOJ7RP@T1yp;A|+;QEhHP7Q|K2&Dd%x%YanJew@jdrGa=L0O233Fp03c?E z!?>I%GWg%c+;of-P=_)$0%0voTbYdD5;bLnAR1YdG0RR|p zhp}{xE?zCUg7b5ScMomC^2}^j4CjzH$z|#1e^hl~d=JHfEu9yc4LyAsiq5qS^-VNz z3p^RoL`GquzBiY&xBVbwX&M@AIO|JCy;E-#d=`oDBInro=0y3#?Y3rZ9w*W0MX^~k zK7$s`dVDIR)&`c+>DGg&S~;tm!T{I9qnul__Lm4~r=TlBj`zz>>xd+iG8bcvug zHru{~sBdg+EG$9}s5JwKx)K!A6Eaz#)YQt#N*0IX)wIgvmCdJ4TVg>wySw(QGl*dsQsr`kR`E-=S}6rogg+j(&)cJ`p3%u7jK)c#|z zo}nEc7l*9Sjaondr>_%hVi-)F$H1})1&a{W??#y?MQSKy8Y5Jl{Iw~ zP_A=og3EO=n>jp;3ND=(EPEG+ypIC4OWhEspYJtY8A zP*$!;PlxqN#;a!IXqAC)Q25!Z%D}|oV<|Z+cgmcXCDCWuVuwc;CH~}FCr7nX)%kb@ zdvI`&sLo`4&}^v&dk_drGy?5i<335ZwY8;AaX1|6IVYLY@qf0YiF<*L(o8~q;={t6 zmO2oct_P#6CZR)F4`*fJ+SD9TTIpWMPN;n{Xjw}Vad|_<(bi7wNobX}^U$7K_g6Sx zsK@c50dV%A0T8CwB9FL#zryGoBQH&UcA>u%)^_lDV?0RhFC8;8Pe)aoGLr%K-YDuL zy<>Q7-<2o$XpT2`VnY8=iIF8Mp29B?);BWxJdq*B7~(WMK=I-_IuM`Hz<#cxaTBZR@4nLcjnfsH)9Bh`Q*7@C825eys1eUTh=C*${ zdBH64z|Cg29pi9jcGtb;E(WtiF64T8zF$+JKh6`S?Z+imCf;ln+KUTcpjJ=%;UyXD zhTN8xui@cZ1(3()(=?-FFcRdD5}^iGT!3t7aF*)9iapNc;V=_tjB+S znBbi}*DE9Q8yO@kD{B}UWgNe~D7k&{zHj92D`woBKPd@6S+RFy-Tkf(kfs$JZSN-p z>||@VZ*3V~3T8p3NR-jh(P^wU7K53ZnleF_pigPigJjo?oazA=+Pe559P`*U|FJ9bd-zJ6{r(pS*l-f4Oa6P!TB3}^O_KS zq{J5p$;=a--BCsxt70irj-@0rOdau8@ZPD9zpp^bA+@!&l-?+aiEO(PWRXfR*)n3=UTtKu2bmoNIQwcN(}SKm#zmX&WBXVd*gu35dN*s(9=aI!#F&~ zo^s>Mpf$pD5sEMfZybwj$QQZri(=0fH5sru(qfL6*6Fx)2Wo;Ei;C`DOK&E)_gnD- zPUF+s3DPcERoOk1{Nt)E`iz{-t{jQ@+?^E?GzKv5UYtMcwjzLwnY0?ig!j3ePEhnn zU@PfV7v8v7J#=QMH?>3e26HU~F?-Wt5+X1+Ve07$Z+}TyJxqDgHTVM-3tFB$L~$J( zzr4tQ_t>Nu+43xyLO6hqs&slkOb?4D5b=g3oL~jc{N>C0lE2-9zW2hiO14+RDfZ8&uEd#YSiSgt) zY_{~;2+otJ8*O)?dsu3CdK#%CPL%8c22gn*1w}>ww;-f|{GX@mjXm1l9`>D-2=7(9 zJOmaN6=fSAA8&PgXlQ6f9Kw3*BsuZngX*_!7KkngqWcAi;3{0|=T3eKqxcxONAfI( SUDww+838-&RZO)NG5KG=AYS?a literal 0 HcmV?d00001 diff --git a/mods/_master_files/icons/obj/closets/bases/wall.dmi b/mods/_master_files/icons/obj/closets/bases/wall.dmi new file mode 100644 index 0000000000000000000000000000000000000000..006d30111ef7236b07f8c52b04d9e4bd649bab26 GIT binary patch literal 1606 zcmb7EdsNZ~6#n@HX&Qp&tCYxHV#cHe0CbvzSF)wc?QTRH?njv%kz#cc@5k$ z>IrcxKkHU%Nt>btEC@d6^sqmy8BY;qhOyiy>#Oq#)s8UBs|wRfF@7E>pzi6$830i8 z@_^DL-c}4_s6Pyeir4xU@$ZbS*#|3 zXmK%TSt8NI2pK^duIQmTiAlpI?+LR<3kwVAyZGQ>Tw)*|kH@h`KmKMi-=(6|SG@Yc zhS$-!cTFmIIX32R(K<1KBo&4?%jf5z%2EP~j;##Kcarytd?fWPtJ8-PZk~31VQ;8) zp2_#YVoe*(#`oNoiShm#h*snZ?`a1L9GBrieAj>R)~T7qh2pw#5&4yKHk{i?j| z{_xDVYYD)prH#$2mT^A6d~`IpdMU11Fw5idLYnyRWzHjPKr9xY?Y)9^xLVOlaMjb( z^Ao?9tW>9`t09p!T(O^cD{{A^W4sS~E_I`LJ1FZ+^tzCiceJj|4%1|W{xvn}>uy$C z6v#I%ObgmT5`J?t&?^=WORWGVnXksjw<3{vZe~W+k^1cq;6e4=gNk`$bKGN{COc9+ z+9Dfxa=l+=BQ{{xOJ_K^BLxStzXtKizM(D$^i#hGf` zPAIPOq|$1loTtzHuIwU1cUtR~_`0olDI~(B-l$DY|BMuI?{QG}fcRV=cIOL9gkP9O zAB^XoMsv!AS-Wx$V;Pha?s`TEHwGTwLak9bFXp;o`Cn6Euw8V-4JVhM%?P^qzPZ$) zO@+X41gCjS=c8}clN}4f zQ{Wz@&vpAd3-mVqs39CVMactjWYOj-Kas0i8z&7c%pX-X_``YGR;pWp_G Date: Wed, 13 Sep 2023 22:30:27 +0300 Subject: [PATCH 086/158] =?UTF-8?q?Fix=20README.md=20`=D1=83=D1=8F=D0=B7?= =?UTF-8?q?=D0=B2=D0=B8=D1=81=D0=BE=D1=81=D1=82=D0=B8`=20typo?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 13a0de1973b53..f6cb459979435 100644 --- a/README.md +++ b/README.md @@ -31,7 +31,7 @@ ### Безопасность -С Политикой Безопасности этого репозитория, а также с тем, как репортить уязвисости ты можешь ознакомиться в [`/docs/SECURITY.md`](/docs/SECURITY.md). +С Политикой Безопасности этого репозитория, а также с тем, как репортить уязвимости ты можешь ознакомиться в [`/docs/SECURITY.md`](/docs/SECURITY.md). --- From 39156d762b992c709cc90d4663d041d8dd17596b Mon Sep 17 00:00:00 2001 From: Sierra Helper <125094432+SierraHelper@users.noreply.github.com> Date: Fri, 15 Sep 2023 00:52:12 +0300 Subject: [PATCH 087/158] =?UTF-8?q?=D0=A7=D0=B5=D0=B9=D0=BD=D0=B4=D0=B6?= =?UTF-8?q?=D0=BB=D0=BE=D0=B3=20=D0=B4=D0=BB=D1=8F=20PR=20#1002=20[ci=20sk?= =?UTF-8?q?ip]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- html/changelogs/AutoChangeLog-sierra-pr-1002.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-sierra-pr-1002.yml diff --git a/html/changelogs/AutoChangeLog-sierra-pr-1002.yml b/html/changelogs/AutoChangeLog-sierra-pr-1002.yml new file mode 100644 index 0000000000000..7371022172989 --- /dev/null +++ b/html/changelogs/AutoChangeLog-sierra-pr-1002.yml @@ -0,0 +1,4 @@ +author: HonkEmo +delete-after: true +changes: + - imageadd: Спрайт клозета сделан контрастнее. From bef6f45ab5333afa6551a3ec9de6773532372e77 Mon Sep 17 00:00:00 2001 From: MuckerMayhem <1161516+MuckerMayhem@users.noreply.github.com> Date: Fri, 15 Sep 2023 00:52:41 +0300 Subject: [PATCH 088/158] [MIRROR] fix rig mounted rcds not working --- code/game/objects/items/weapons/RCD.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/game/objects/items/weapons/RCD.dm b/code/game/objects/items/weapons/RCD.dm index 1e61c58570581..e35774ade7db4 100644 --- a/code/game/objects/items/weapons/RCD.dm +++ b/code/game/objects/items/weapons/RCD.dm @@ -97,7 +97,7 @@ "Computer Frame" = mutable_appearance('icons/screen/radial.dmi', "computer_dir"), "Deconstruction" = mutable_appearance('icons/screen/radial.dmi', "delete"), ) - var/choice = show_radial_menu(user, src, options, require_near = TRUE, radius = 42, tooltips = TRUE, check_locs = list(src)) + var/choice = show_radial_menu(user, user, options, require_near = TRUE, radius = 42, tooltips = TRUE, check_locs = list(src)) if (!choice || !user.use_sanity_check(src)) return From ef67090b8d81081f0fbd9eaf0a39069e9c70b347 Mon Sep 17 00:00:00 2001 From: Sierra Helper <125094432+SierraHelper@users.noreply.github.com> Date: Fri, 15 Sep 2023 01:16:42 +0300 Subject: [PATCH 089/158] =?UTF-8?q?=D0=A7=D0=B5=D0=B9=D0=BD=D0=B4=D0=B6?= =?UTF-8?q?=D0=BB=D0=BE=D0=B3=20=D0=B4=D0=BB=D1=8F=20PR=20#1020=20[ci=20sk?= =?UTF-8?q?ip]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- html/changelogs/AutoChangeLog-sierra-pr-1020.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-sierra-pr-1020.yml diff --git a/html/changelogs/AutoChangeLog-sierra-pr-1020.yml b/html/changelogs/AutoChangeLog-sierra-pr-1020.yml new file mode 100644 index 0000000000000..9ace41730d541 --- /dev/null +++ b/html/changelogs/AutoChangeLog-sierra-pr-1020.yml @@ -0,0 +1,4 @@ +author: Mucker +delete-after: true +changes: + - bugfix: Fixed rig-mounted RCDs. From e868d1d55ce13d60075aed20dc459a968d200b08 Mon Sep 17 00:00:00 2001 From: Sbotkin <5092934+Sbotkin@users.noreply.github.com> Date: Mon, 11 Sep 2023 01:20:17 +0300 Subject: [PATCH 090/158] [MIRROR] Removes locks from fridges --- baystation12.dme | 2 +- .../crates_lockers/closets/fridge.dm | 31 +++++++++ .../crates_lockers/closets/secure/freezer.dm | 60 ------------------ .../reagent_containers/food/snacks/bugmeat.dm | 23 ------- icons/obj/closets/fridge.dmi | Bin 959 -> 961 bytes maps/antag_spawn/ert/ert_base.dmm | 6 +- maps/antag_spawn/heist/heist_base.dmm | 4 +- maps/antag_spawn/mercenary/mercenary_base.dmm | 4 +- .../abandoned_hotel/abandoned_hotel-1.dmm | 2 +- maps/away/bearcat/bearcat-2.dmm | 4 +- maps/away/bearcat/bearcat_access.dm | 8 +-- maps/away/casino/casino.dmm | 8 +-- maps/away/derelict/derelict-station.dmm | 5 +- maps/away/errant_pisces/errant_pisces.dmm | 22 +++---- maps/away/lar_maria/lar_maria-1.dmm | 4 +- maps/away/lar_maria/lar_maria-2.dmm | 12 ++-- .../lost_supply_base/lost_supply_base.dmm | 8 +-- maps/away/magshield/magshield.dmm | 6 +- maps/away/mininghome/mininghome.dmm | 2 +- maps/away/miningstation/miningstation.dmm | 6 +- maps/away/scavver/scavver_gantry-2.dmm | 2 +- maps/away/scavver/scavver_gantry.dm | 10 --- maps/away/slavers/slavers_base.dmm | 2 +- maps/away/yacht/yacht.dmm | 10 +-- maps/example/example-2.dmm | 4 +- .../exoplanet_ruins/oldlab/oldlab.dmm | 4 +- .../exoplanet_ruins/oldlab2/oldlab2.dmm | 4 +- .../exoplanet_ruins/playablecolony/colony.dmm | 4 +- .../playablecolony2/colony2.dmm | 4 +- maps/torch/torch3_deck3.dmm | 12 ++-- maps/torch/z1_admin.dmm | 10 +-- .../deepmaint_rooms/core/archive.dmm | 2 +- .../deepmaint/deepmaint_rooms/core/diner.dmm | 2 +- .../deepmaint/deepmaint_rooms/core/medbay.dmm | 4 +- 34 files changed, 107 insertions(+), 184 deletions(-) create mode 100644 code/game/objects/structures/crates_lockers/closets/fridge.dm delete mode 100644 code/game/objects/structures/crates_lockers/closets/secure/freezer.dm diff --git a/baystation12.dme b/baystation12.dme index 2c6cfe5742c08..f8c41a625641e 100644 --- a/baystation12.dme +++ b/baystation12.dme @@ -1248,6 +1248,7 @@ #include "code\game\objects\structures\crates_lockers\closets\coffin.dm" #include "code\game\objects\structures\crates_lockers\closets\crittercrate.dm" #include "code\game\objects\structures\crates_lockers\closets\fitness.dm" +#include "code\game\objects\structures\crates_lockers\closets\fridge.dm" #include "code\game\objects\structures\crates_lockers\closets\gimmick.dm" #include "code\game\objects\structures\crates_lockers\closets\job_closets.dm" #include "code\game\objects\structures\crates_lockers\closets\l3closet.dm" @@ -1260,7 +1261,6 @@ #include "code\game\objects\structures\crates_lockers\closets\secure\bar.dm" #include "code\game\objects\structures\crates_lockers\closets\secure\cargo.dm" #include "code\game\objects\structures\crates_lockers\closets\secure\engineering.dm" -#include "code\game\objects\structures\crates_lockers\closets\secure\freezer.dm" #include "code\game\objects\structures\crates_lockers\closets\secure\guncabinet.dm" #include "code\game\objects\structures\crates_lockers\closets\secure\hydroponics.dm" #include "code\game\objects\structures\crates_lockers\closets\secure\medical.dm" diff --git a/code/game/objects/structures/crates_lockers/closets/fridge.dm b/code/game/objects/structures/crates_lockers/closets/fridge.dm new file mode 100644 index 0000000000000..c0e18b4f93d83 --- /dev/null +++ b/code/game/objects/structures/crates_lockers/closets/fridge.dm @@ -0,0 +1,31 @@ +/obj/structure/closet/kitchen + name = "kitchen cabinet" + +/obj/structure/closet/kitchen/WillContain() + return list( + /obj/item/reagent_containers/food/condiment/salt = 1, + /obj/item/reagent_containers/food/condiment/flour = 7, + /obj/item/reagent_containers/food/condiment/sugar = 2, + /obj/item/reagent_containers/glass/bottle/dye/polychromic = 2 + ) + +/obj/structure/closet/fridge + name = "refrigerator" + desc = "It's a refrigerated storage unit." + icon = 'icons/obj/closets/fridge.dmi' + icon_state = "closed_unlocked" + closet_appearance = null + +/obj/structure/closet/fridge/WillContain() + return list( + /obj/item/reagent_containers/food/drinks/milk = 6, + /obj/item/reagent_containers/food/drinks/soymilk = 4, + /obj/item/storage/fancy/egg_box/full = 4 + ) + +/obj/structure/closet/fridge/meat/WillContain() + return list( + /obj/item/reagent_containers/food/snacks/meat/beef = 5, + /obj/random/fish = 5, + /obj/item/storage/fancy/bugmeat = 6 + ) diff --git a/code/game/objects/structures/crates_lockers/closets/secure/freezer.dm b/code/game/objects/structures/crates_lockers/closets/secure/freezer.dm deleted file mode 100644 index 8d0d6dbf6c69e..0000000000000 --- a/code/game/objects/structures/crates_lockers/closets/secure/freezer.dm +++ /dev/null @@ -1,60 +0,0 @@ -/obj/structure/closet/secure_closet/freezer/kitchen - name = "kitchen cabinet" - req_access = list(access_kitchen) - -/obj/structure/closet/secure_closet/freezer/kitchen/WillContain() - return list( - /obj/item/reagent_containers/food/condiment/salt = 1, - /obj/item/reagent_containers/food/condiment/flour = 7, - /obj/item/reagent_containers/food/condiment/sugar = 2, - /obj/item/reagent_containers/glass/bottle/dye/polychromic = 2 - ) - -/obj/structure/closet/secure_closet/freezer/kitchen/mining - req_access = list() - -/obj/structure/closet/secure_closet/freezer/meat - name = "meat fridge" - icon = 'icons/obj/closets/fridge.dmi' - icon_state = "closed" - closet_appearance = null - -/obj/structure/closet/secure_closet/freezer/meat/WillContain() - return list( - /obj/item/reagent_containers/food/snacks/meat/beef = 5, - /obj/random/fish = 5, - /obj/item/storage/fancy/bugmeat = 6 - ) - -/obj/structure/closet/secure_closet/freezer/fridge - name = "refrigerator" - icon = 'icons/obj/closets/fridge.dmi' - icon_state = "closed" - closet_appearance = null - -/obj/structure/closet/secure_closet/freezer/fridge/WillContain() - return list( - /obj/item/reagent_containers/food/drinks/milk = 6, - /obj/item/reagent_containers/food/drinks/soymilk = 4, - /obj/item/storage/fancy/egg_box/full = 4 - ) - -/obj/structure/closet/secure_closet/freezer/money - name = "secure locker" - icon = 'icons/obj/closets/fridge.dmi' - icon_state = "closed" - closet_appearance = null - req_access = list(access_heads_vault) - -/obj/structure/closet/secure_closet/freezer/money/Initialize() - . = ..() - //let's make hold a substantial amount. - var/created_size = 0 - for(var/i = 1 to 200) //sanity loop limit - var/obj/item/cash_type = pick(3; /obj/item/spacecash/bundle/c1000, 4; /obj/item/spacecash/bundle/c500, 5; /obj/item/spacecash/bundle/c200) - var/bundle_size = initial(cash_type.w_class) / 2 - if(created_size + bundle_size <= storage_capacity) - created_size += bundle_size - new cash_type(src) - else - break diff --git a/code/modules/reagents/reagent_containers/food/snacks/bugmeat.dm b/code/modules/reagents/reagent_containers/food/snacks/bugmeat.dm index 7543c0bad6989..61379f8003eca 100644 --- a/code/modules/reagents/reagent_containers/food/snacks/bugmeat.dm +++ b/code/modules/reagents/reagent_containers/food/snacks/bugmeat.dm @@ -92,26 +92,3 @@ containertype = /obj/item/storage/backpack/dufflebag containername = "insect protein dufflebag" cost = 20 - - -/obj/structure/closet/secure_closet/freezer/meat/bugmeat/WillContain() - return list( - /obj/item/storage/fancy/bugmeat = 3 - ) - - -/obj/structure/closet/secure_closet/freezer/fridge/bugmeat/WillContain() - return list( - /obj/item/reagent_containers/food/drinks/milk = 2, - /obj/item/reagent_containers/food/drinks/soymilk = 2, - /obj/item/storage/fancy/egg_box/full = 1 - ) - - -/obj/structure/closet/secure_closet/freezer/kitchen/bugmeat/WillContain() - return list( - /obj/item/reagent_containers/food/condiment/salt = 1, - /obj/item/reagent_containers/food/condiment/flour = 3, - /obj/item/reagent_containers/food/condiment/sugar = 1, - /obj/item/reagent_containers/glass/bottle/dye/polychromic = 4 - ) diff --git a/icons/obj/closets/fridge.dmi b/icons/obj/closets/fridge.dmi index a71db3d5c7fd25a258bcd2d8cd48c8ed2ae9f920..9f4ac7cc7a73032d70bde7c91c2852ff927980d4 100644 GIT binary patch delta 58 zcmV-A0LA~m2f+uBb^(f!cWEi9Ca5gGAT^Ijv*JthNU}RVKP`hSZB4lQFvj+jV0?Yyz2><{9 delta 56 zcmV-80LTBq2fqi9b^(ZycWEc9F3lrSeSSe|9+8F;Yj=KH8d28bQ>d)q>gNIuE&wu0 OS|)S?j#je?0k{H>1r`1P diff --git a/maps/antag_spawn/ert/ert_base.dmm b/maps/antag_spawn/ert/ert_base.dmm index 8d85e1873e150..3b17c4ed1cc41 100644 --- a/maps/antag_spawn/ert/ert_base.dmm +++ b/maps/antag_spawn/ert/ert_base.dmm @@ -308,7 +308,7 @@ }, /area/map_template/rescue_base/base) "aO" = ( -/obj/structure/closet/secure_closet/freezer/fridge, +/obj/structure/closet/fridge, /obj/effect/floor_decal/corner/blue/diagonal, /turf/unsimulated/floor{ icon_state = "dark" @@ -316,7 +316,7 @@ /area/map_template/rescue_base/base) "aP" = ( /obj/effect/floor_decal/corner/blue/diagonal, -/obj/structure/closet/secure_closet/freezer/meat, +/obj/structure/closet/fridge/meat, /turf/unsimulated/floor{ icon_state = "dark" }, @@ -648,7 +648,7 @@ "bz" = ( /obj/effect/floor_decal/corner/blue/diagonal, /obj/item/storage/box/donkpocket_premium, -/obj/structure/closet/secure_closet/freezer/kitchen, +/obj/structure/closet/kitchen, /obj/item/reagent_containers/food/condiment/enzyme, /turf/unsimulated/floor{ icon_state = "dark" diff --git a/maps/antag_spawn/heist/heist_base.dmm b/maps/antag_spawn/heist/heist_base.dmm index 4c9e75334fe7b..5d95201666014 100644 --- a/maps/antag_spawn/heist/heist_base.dmm +++ b/maps/antag_spawn/heist/heist_base.dmm @@ -21,7 +21,7 @@ }, /area/map_template/syndicate_mothership/raider_base) "ag" = ( -/obj/structure/closet/secure_closet/freezer/kitchen, +/obj/structure/closet/kitchen, /turf/unsimulated/floor{ icon_state = "white" }, @@ -48,7 +48,7 @@ }, /area/map_template/syndicate_mothership/raider_base) "ak" = ( -/obj/structure/closet/secure_closet/freezer/fridge, +/obj/structure/closet/fridge, /turf/unsimulated/floor{ icon_state = "white" }, diff --git a/maps/antag_spawn/mercenary/mercenary_base.dmm b/maps/antag_spawn/mercenary/mercenary_base.dmm index c32d498fae443..6da4ea00b1f03 100644 --- a/maps/antag_spawn/mercenary/mercenary_base.dmm +++ b/maps/antag_spawn/mercenary/mercenary_base.dmm @@ -2572,7 +2572,7 @@ /turf/simulated/floor/tiled/dark, /area/map_template/merc_spawn) "Gn" = ( -/obj/structure/closet/secure_closet/freezer/meat, +/obj/structure/closet/fridge/meat, /obj/item/reagent_containers/food/snacks/meat, /obj/item/reagent_containers/food/snacks/meat, /obj/item/reagent_containers/food/snacks/meat, @@ -2775,7 +2775,7 @@ /turf/simulated/floor/tiled, /area/map_template/merc_spawn) "Nn" = ( -/obj/structure/closet/secure_closet/freezer/meat, +/obj/structure/closet/fridge/meat, /obj/item/reagent_containers/food/snacks/meat, /obj/item/reagent_containers/food/snacks/meat, /obj/item/reagent_containers/food/snacks/meat, diff --git a/maps/away/abandoned_hotel/abandoned_hotel-1.dmm b/maps/away/abandoned_hotel/abandoned_hotel-1.dmm index 257b70638f160..6fcb0833992c8 100644 --- a/maps/away/abandoned_hotel/abandoned_hotel-1.dmm +++ b/maps/away/abandoned_hotel/abandoned_hotel-1.dmm @@ -249,7 +249,7 @@ /turf/simulated/floor/tiled/kafel_full, /area/abandoned_hotel/kitchen) "cm" = ( -/obj/structure/closet/secure_closet/freezer/fridge, +/obj/structure/closet/fridge, /turf/simulated/floor/tiled/freezer, /area/abandoned_hotel/kitchen) "cp" = ( diff --git a/maps/away/bearcat/bearcat-2.dmm b/maps/away/bearcat/bearcat-2.dmm index d4bbc89e4d352..41f865e4508ab 100644 --- a/maps/away/bearcat/bearcat-2.dmm +++ b/maps/away/bearcat/bearcat-2.dmm @@ -1807,7 +1807,7 @@ /turf/simulated/floor/tiled, /area/ship/scrap/crew/kitchen) "dG" = ( -/obj/structure/closet/secure_closet/freezer/fridge/bearcat, +/obj/structure/closet/fridge, /obj/machinery/light/small{ dir = 4; icon_state = "bulb1" @@ -2488,7 +2488,7 @@ /turf/simulated/floor/tiled, /area/ship/scrap/crew/kitchen) "eF" = ( -/obj/structure/closet/secure_closet/freezer/meat/bearcat, +/obj/structure/closet/fridge/meat, /obj/machinery/atmospherics/unary/vent_scrubber/on{ dir = 1 }, diff --git a/maps/away/bearcat/bearcat_access.dm b/maps/away/bearcat/bearcat_access.dm index 04134abbb7e60..39f90a11d848a 100644 --- a/maps/away/bearcat/bearcat_access.dm +++ b/maps/away/bearcat/bearcat_access.dm @@ -28,12 +28,6 @@ var/global/const/access_bearcat_captain = "ACCESS_BEARCAT_CAPTAIN" //999 /obj/structure/closet/secure_closet/engineering_welding/bearcat req_access = list(access_bearcat) -/obj/structure/closet/secure_closet/freezer/fridge/bearcat - req_access = list(access_bearcat) - -/obj/structure/closet/secure_closet/freezer/meat/bearcat - req_access = list(access_bearcat) - /obj/machinery/vending/engineering/bearcat req_access = list(access_bearcat) @@ -44,4 +38,4 @@ var/global/const/access_bearcat_captain = "ACCESS_BEARCAT_CAPTAIN" //999 req_access = list(access_bearcat) /obj/machinery/suit_cycler/salvage/bearcat - req_access = list(access_bearcat) \ No newline at end of file + req_access = list(access_bearcat) diff --git a/maps/away/casino/casino.dmm b/maps/away/casino/casino.dmm index 4d2017e84c6b1..69f48253054f1 100644 --- a/maps/away/casino/casino.dmm +++ b/maps/away/casino/casino.dmm @@ -2887,7 +2887,7 @@ /turf/simulated/floor/tiled, /area/casino/casino_kitchen) "il" = ( -/obj/structure/closet/secure_closet/freezer/fridge, +/obj/structure/closet/fridge, /obj/machinery/atmospherics/unary/vent_pump/on{ dir = 8; level = 2 @@ -2903,7 +2903,7 @@ /turf/simulated/floor/tiled, /area/casino/casino_kitchen) "im" = ( -/obj/structure/closet/secure_closet/freezer/fridge, +/obj/structure/closet/fridge, /obj/machinery/atmospherics/unary/vent_scrubber/on{ dir = 8 }, @@ -2912,7 +2912,7 @@ /turf/simulated/floor/tiled, /area/casino/casino_kitchen) "in" = ( -/obj/structure/closet/secure_closet/freezer/fridge, +/obj/structure/closet/fridge, /obj/item/reagent_containers/food/condiment/flour, /turf/simulated/floor/tiled, /area/casino/casino_kitchen) @@ -3035,7 +3035,7 @@ /obj/structure/window/basic{ dir = 8 }, -/obj/structure/closet/secure_closet/freezer/meat, +/obj/structure/closet/fridge/meat, /obj/item/reagent_containers/food/snacks/meat, /obj/item/reagent_containers/food/snacks/meat, /obj/item/reagent_containers/food/snacks/meat, diff --git a/maps/away/derelict/derelict-station.dmm b/maps/away/derelict/derelict-station.dmm index f569b6c521623..eaba1a63f3856 100644 --- a/maps/away/derelict/derelict-station.dmm +++ b/maps/away/derelict/derelict-station.dmm @@ -950,10 +950,7 @@ /turf/simulated/floor/tiled/dark, /area/constructionsite/bridge) "da" = ( -/obj/structure/closet/secure_closet/freezer/fridge{ - icon_state = "fridgebroken"; - locked = 0 - }, +/obj/structure/closet/fridge, /obj/random/contraband, /turf/simulated/floor, /area/constructionsite/hallway/fore) diff --git a/maps/away/errant_pisces/errant_pisces.dmm b/maps/away/errant_pisces/errant_pisces.dmm index 5e210d56159af..6b54f7ad84781 100644 --- a/maps/away/errant_pisces/errant_pisces.dmm +++ b/maps/away/errant_pisces/errant_pisces.dmm @@ -3866,7 +3866,7 @@ /turf/simulated/floor/tiled/freezer, /area/errant_pisces/dorms) "jw" = ( -/obj/structure/closet/secure_closet/freezer/meat, +/obj/structure/closet/fridge/meat, /turf/simulated/floor/tiled/freezer, /area/errant_pisces/dorms) "jx" = ( @@ -3997,9 +3997,7 @@ /turf/simulated/floor/tiled/freezer, /area/errant_pisces/dorms) "jP" = ( -/obj/structure/closet/secure_closet/freezer/kitchen{ - req_access = newlist() - }, +/obj/structure/closet/kitchen, /turf/simulated/floor/tiled/freezer, /area/errant_pisces/dorms) "jQ" = ( @@ -4320,7 +4318,7 @@ /turf/simulated/floor/tiled, /area/errant_pisces/science_wing) "kF" = ( -/obj/structure/closet/secure_closet/freezer/fridge, +/obj/structure/closet/fridge, /turf/simulated/floor/tiled, /area/errant_pisces/science_wing) "kG" = ( @@ -4400,7 +4398,7 @@ /turf/simulated/wall, /area/errant_pisces/general_storage) "kU" = ( -/obj/structure/closet/secure_closet/freezer/fridge, +/obj/structure/closet/fridge, /obj/item/reagent_containers/food/snacks/fish/space_carp, /turf/simulated/floor/tiled/freezer, /area/errant_pisces/prod_storage) @@ -4408,7 +4406,7 @@ /turf/simulated/floor/tiled/freezer, /area/errant_pisces/prod_storage) "kW" = ( -/obj/structure/closet/secure_closet/freezer/fridge, +/obj/structure/closet/fridge, /turf/simulated/floor/tiled/freezer, /area/errant_pisces/prod_storage) "kX" = ( @@ -4487,14 +4485,14 @@ /turf/simulated/floor/plating, /area/errant_pisces/general_storage) "lj" = ( -/obj/structure/closet/secure_closet/freezer/fridge, +/obj/structure/closet/fridge, /obj/machinery/light/small{ dir = 8 }, /turf/simulated/floor/tiled/freezer, /area/errant_pisces/prod_storage) "lk" = ( -/obj/structure/closet/secure_closet/freezer/fridge, +/obj/structure/closet/fridge, /obj/item/reagent_containers/food/snacks/cubancarp, /turf/simulated/floor/tiled/freezer, /area/errant_pisces/prod_storage) @@ -4716,7 +4714,7 @@ /turf/simulated/floor/tiled/white, /area/errant_pisces/science_wing) "lW" = ( -/obj/structure/closet/secure_closet/freezer/fridge, +/obj/structure/closet/fridge, /obj/item/reagent_containers/food/snacks/fish/space_carp, /obj/item/reagent_containers/food/snacks/fish/space_carp, /turf/simulated/floor/tiled/freezer, @@ -4734,7 +4732,7 @@ /turf/simulated/floor/tiled/freezer, /area/errant_pisces/prod_storage) "lZ" = ( -/obj/structure/closet/secure_closet/freezer/meat, +/obj/structure/closet/fridge/meat, /turf/simulated/floor/plating, /area/errant_pisces/live_storage) "ma" = ( @@ -5971,7 +5969,7 @@ /turf/simulated/floor/tiled/freezer, /area/errant_pisces/fishing_wing) "oF" = ( -/obj/structure/closet/secure_closet/freezer/fridge, +/obj/structure/closet/fridge, /turf/simulated/floor/tiled/freezer, /area/errant_pisces/fishing_wing) "oG" = ( diff --git a/maps/away/lar_maria/lar_maria-1.dmm b/maps/away/lar_maria/lar_maria-1.dmm index 142ccecd14495..c9a77bcdadfe5 100644 --- a/maps/away/lar_maria/lar_maria-1.dmm +++ b/maps/away/lar_maria/lar_maria-1.dmm @@ -793,7 +793,7 @@ /turf/simulated/floor/tiled/white, /area/lar_maria/vir_main) "cq" = ( -/obj/structure/closet/secure_closet/freezer/fridge, +/obj/structure/closet/fridge, /turf/simulated/floor/tiled/white, /area/lar_maria/vir_main) "cr" = ( @@ -965,7 +965,7 @@ /turf/simulated/floor/tiled/white, /area/lar_maria/vir_main) "cK" = ( -/obj/structure/closet/secure_closet/freezer/fridge, +/obj/structure/closet/fridge, /obj/machinery/light, /turf/simulated/floor/tiled/white, /area/lar_maria/vir_main) diff --git a/maps/away/lar_maria/lar_maria-2.dmm b/maps/away/lar_maria/lar_maria-2.dmm index df645f7b72420..ba2c30051dae7 100644 --- a/maps/away/lar_maria/lar_maria-2.dmm +++ b/maps/away/lar_maria/lar_maria-2.dmm @@ -2566,15 +2566,13 @@ /turf/simulated/floor/tiled/white, /area/lar_maria/mess_hall) "hn" = ( -/obj/structure/closet/secure_closet/freezer/meat, +/obj/structure/closet/fridge/meat, /obj/random/snack, /obj/random/snack, /turf/simulated/floor/tiled/freezer, /area/lar_maria/mess_hall) "ho" = ( -/obj/structure/closet/secure_closet/freezer/kitchen{ - req_access = newlist() - }, +/obj/structure/closet/kitchen, /turf/simulated/floor/tiled/freezer, /area/lar_maria/mess_hall) "hp" = ( @@ -2775,7 +2773,7 @@ /turf/simulated/floor/tiled/white, /area/lar_maria/mess_hall) "hK" = ( -/obj/structure/closet/secure_closet/freezer/meat, +/obj/structure/closet/fridge/meat, /obj/random/snack, /turf/simulated/floor/tiled/freezer, /area/lar_maria/mess_hall) @@ -2902,7 +2900,7 @@ /turf/simulated/floor/tiled/white, /area/lar_maria/mess_hall) "ig" = ( -/obj/structure/closet/secure_closet/freezer/fridge, +/obj/structure/closet/fridge, /obj/random/snack, /obj/random/snack, /turf/simulated/floor/tiled/freezer, @@ -3097,7 +3095,7 @@ /turf/simulated/floor/tiled/white, /area/lar_maria/mess_hall) "iF" = ( -/obj/structure/closet/secure_closet/freezer/fridge, +/obj/structure/closet/fridge, /obj/random/snack, /turf/simulated/floor/tiled/freezer, /area/lar_maria/mess_hall) diff --git a/maps/away/lost_supply_base/lost_supply_base.dmm b/maps/away/lost_supply_base/lost_supply_base.dmm index 501b0f09de72a..97c1121744e7f 100644 --- a/maps/away/lost_supply_base/lost_supply_base.dmm +++ b/maps/away/lost_supply_base/lost_supply_base.dmm @@ -1010,12 +1010,12 @@ /turf/simulated/floor/tiled, /area/lost_supply_base/common) "cz" = ( -/obj/structure/closet/secure_closet/freezer/meat, +/obj/structure/closet/fridge/meat, /obj/machinery/cooker/oven, /turf/simulated/floor/tiled, /area/lost_supply_base/common) "cA" = ( -/obj/structure/closet/secure_closet/freezer/meat, +/obj/structure/closet/fridge/meat, /obj/machinery/light{ dir = 1 }, @@ -1024,8 +1024,8 @@ }, /area/lost_supply_base/common) "cB" = ( -/obj/structure/closet/secure_closet/freezer/meat, -/obj/structure/closet/secure_closet/freezer/meat, +/obj/structure/closet/fridge/meat, +/obj/structure/closet/fridge/meat, /turf/simulated/floor/tiled, /area/lost_supply_base/common) "cC" = ( diff --git a/maps/away/magshield/magshield.dmm b/maps/away/magshield/magshield.dmm index 32a8ba56508a5..e32893347bb60 100644 --- a/maps/away/magshield/magshield.dmm +++ b/maps/away/magshield/magshield.dmm @@ -3499,7 +3499,7 @@ /turf/simulated/floor/tiled/freezer, /area/magshield/south) "jB" = ( -/obj/structure/closet/secure_closet/freezer/fridge, +/obj/structure/closet/fridge, /turf/simulated/floor/tiled/freezer, /area/magshield/south) "jC" = ( @@ -3762,7 +3762,7 @@ /turf/simulated/floor/tiled/freezer, /area/magshield/south) "kp" = ( -/obj/structure/closet/secure_closet/freezer/fridge, +/obj/structure/closet/fridge, /obj/item/reagent_containers/food/snacks/hotdog, /turf/simulated/floor/tiled/freezer, /area/magshield/south) @@ -3936,7 +3936,7 @@ /turf/simulated/floor/tiled/freezer, /area/magshield/south) "kL" = ( -/obj/structure/closet/secure_closet/freezer/meat, +/obj/structure/closet/fridge/meat, /obj/item/reagent_containers/food/snacks/meat, /obj/item/reagent_containers/food/snacks/meat, /obj/item/reagent_containers/food/snacks/meat, diff --git a/maps/away/mininghome/mininghome.dmm b/maps/away/mininghome/mininghome.dmm index cdabb0f8bd12f..e85cd7e782735 100644 --- a/maps/away/mininghome/mininghome.dmm +++ b/maps/away/mininghome/mininghome.dmm @@ -3070,7 +3070,7 @@ /area/map_template/mininghome_solars) "AZ" = ( /obj/machinery/atmospherics/unary/vent_pump/on, -/obj/structure/closet/secure_closet/freezer/fridge, +/obj/structure/closet/fridge, /turf/simulated/floor/tiled/freezer, /area/map_template/mininghome_mess) "Bc" = ( diff --git a/maps/away/miningstation/miningstation.dmm b/maps/away/miningstation/miningstation.dmm index 8fe8d6b2d8ca1..7f6ed1ab5e898 100644 --- a/maps/away/miningstation/miningstation.dmm +++ b/maps/away/miningstation/miningstation.dmm @@ -5823,7 +5823,7 @@ /obj/machinery/light{ dir = 1 }, -/obj/structure/closet/secure_closet/freezer/meat, +/obj/structure/closet/fridge/meat, /turf/simulated/floor/tiled/freezer, /area/miningstation/walkin) "nz" = ( @@ -6872,11 +6872,11 @@ /turf/simulated/floor/tiled/white, /area/miningstation/kitchen) "pM" = ( -/obj/structure/closet/secure_closet/freezer/meat, +/obj/structure/closet/fridge/meat, /turf/simulated/floor/tiled/freezer, /area/miningstation/walkin) "pN" = ( -/obj/structure/closet/secure_closet/freezer/meat, +/obj/structure/closet/fridge/meat, /obj/machinery/light, /turf/simulated/floor/tiled/freezer, /area/miningstation/walkin) diff --git a/maps/away/scavver/scavver_gantry-2.dmm b/maps/away/scavver/scavver_gantry-2.dmm index 31368a91f21bc..3bbdccc4d3006 100644 --- a/maps/away/scavver/scavver_gantry-2.dmm +++ b/maps/away/scavver/scavver_gantry-2.dmm @@ -2934,7 +2934,7 @@ /turf/simulated/floor, /area/scavver/yachtup) "wI" = ( -/obj/structure/closet/secure_closet/freezer/fridge/scavver, +/obj/structure/closet/fridge, /obj/item/material/kitchen/utensil/spork, /obj/item/material/kitchen/utensil/spork, /obj/item/reagent_containers/food/condiment/enzyme, diff --git a/maps/away/scavver/scavver_gantry.dm b/maps/away/scavver/scavver_gantry.dm index 17b309ce5ca7b..27ce38303334b 100644 --- a/maps/away/scavver/scavver_gantry.dm +++ b/maps/away/scavver/scavver_gantry.dm @@ -193,13 +193,3 @@ suit= /obj/item/clothing/suit/space/void/engineering/salvage helmet = /obj/item/clothing/head/helmet/space/void/engineering/salvage/pilot mask = /obj/item/clothing/mask/breath - -/obj/structure/closet/secure_closet/freezer/fridge/scavver - req_access = list() - -/obj/structure/closet/secure_closet/freezer/fridge/scavver/WillContain() - return list( - /obj/item/reagent_containers/food/drinks/milk = 6, - /obj/item/reagent_containers/food/drinks/soymilk = 4, - /obj/item/storage/fancy/egg_box/full = 4 - ) diff --git a/maps/away/slavers/slavers_base.dmm b/maps/away/slavers/slavers_base.dmm index 4b3556b4a1aa2..15581962f3e13 100644 --- a/maps/away/slavers/slavers_base.dmm +++ b/maps/away/slavers/slavers_base.dmm @@ -3200,7 +3200,7 @@ /turf/simulated/floor/tiled, /area/slavers_base/dorms) "ib" = ( -/obj/structure/closet/secure_closet/freezer/fridge, +/obj/structure/closet/fridge, /turf/simulated/floor/tiled, /area/slavers_base/dorms) "ic" = ( diff --git a/maps/away/yacht/yacht.dmm b/maps/away/yacht/yacht.dmm index 744f1a152a75e..3d31692fbd6dd 100644 --- a/maps/away/yacht/yacht.dmm +++ b/maps/away/yacht/yacht.dmm @@ -404,7 +404,7 @@ /turf/simulated/floor/wood/yew, /area/yacht/living) "bg" = ( -/obj/structure/closet/secure_closet/freezer/fridge, +/obj/structure/closet/fridge, /obj/effect/decal/cleanable/dirt, /turf/simulated/floor/wood/yew, /area/yacht/living) @@ -699,7 +699,7 @@ /turf/simulated/floor/plating, /area/yacht/engine) "ca" = ( -/obj/structure/closet/secure_closet/freezer/kitchen, +/obj/structure/closet/kitchen, /obj/effect/decal/cleanable/dirt, /turf/simulated/floor/plating, /area/yacht/engine) @@ -1030,7 +1030,7 @@ /turf/simulated/floor/plating, /area/yacht/engine) "cW" = ( -/obj/structure/closet/secure_closet/freezer/kitchen, +/obj/structure/closet/kitchen, /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, /turf/simulated/floor/wood/yew, @@ -1454,7 +1454,7 @@ /turf/simulated/floor/plating, /area/yacht/engine) "ub" = ( -/obj/structure/closet/secure_closet/freezer/meat, +/obj/structure/closet/fridge/meat, /obj/effect/decal/cleanable/dirt, /turf/simulated/floor/plating, /area/yacht/engine) @@ -1490,7 +1490,7 @@ /turf/simulated/floor/plating, /area/yacht/engine) "Ty" = ( -/obj/structure/closet/secure_closet/freezer/meat, +/obj/structure/closet/fridge/meat, /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, /turf/simulated/floor/wood/yew, diff --git a/maps/example/example-2.dmm b/maps/example/example-2.dmm index 159ca93424c32..c085f1f524643 100644 --- a/maps/example/example-2.dmm +++ b/maps/example/example-2.dmm @@ -26,7 +26,7 @@ dir = 5 }, /obj/effect/floor_decal/corner/blue/diagonal, -/obj/structure/closet/secure_closet/freezer/fridge, +/obj/structure/closet/fridge, /obj/item/reagent_containers/food/condiment/enzyme, /obj/item/reagent_containers/food/condiment/barbecue, /turf/simulated/floor/tiled/white, @@ -87,7 +87,7 @@ /area/medical/surgery) "jM" = ( /obj/effect/floor_decal/corner/blue/diagonal, -/obj/structure/closet/secure_closet/freezer/meat, +/obj/structure/closet/fridge/meat, /turf/simulated/floor/tiled/white, /area/medical/surgery) "jS" = ( diff --git a/maps/random_ruins/exoplanet_ruins/oldlab/oldlab.dmm b/maps/random_ruins/exoplanet_ruins/oldlab/oldlab.dmm index b43e10fa4d97a..92454c6b408b4 100644 --- a/maps/random_ruins/exoplanet_ruins/oldlab/oldlab.dmm +++ b/maps/random_ruins/exoplanet_ruins/oldlab/oldlab.dmm @@ -1693,7 +1693,7 @@ /turf/simulated/floor/tiled/white, /area/map_template/oldlab/station/hall) "Cz" = ( -/obj/structure/closet/secure_closet/freezer/fridge, +/obj/structure/closet/fridge, /obj/machinery/atmospherics/unary/vent_pump/on{ level = 2 }, @@ -1834,7 +1834,7 @@ /turf/simulated/floor/tiled/white, /area/map_template/oldlab/station/xenobio) "EE" = ( -/obj/structure/closet/secure_closet/freezer/fridge, +/obj/structure/closet/fridge, /turf/simulated/floor/tiled/freezer, /area/map_template/oldlab/station/breakroom) "EH" = ( diff --git a/maps/random_ruins/exoplanet_ruins/oldlab2/oldlab2.dmm b/maps/random_ruins/exoplanet_ruins/oldlab2/oldlab2.dmm index 782624baeb8e6..caf130e4e914b 100644 --- a/maps/random_ruins/exoplanet_ruins/oldlab2/oldlab2.dmm +++ b/maps/random_ruins/exoplanet_ruins/oldlab2/oldlab2.dmm @@ -5374,7 +5374,7 @@ /turf/simulated/floor/tiled/techfloor/grid, /area/map_template/oldlab2/living6) "CK" = ( -/obj/structure/closet/secure_closet/freezer/meat, +/obj/structure/closet/fridge/meat, /turf/simulated/floor/tiled/freezer, /area/map_template/oldlab2/mess) "CN" = ( @@ -7227,7 +7227,7 @@ /turf/simulated/floor/tiled/dark, /area/map_template/oldlab2/living) "LW" = ( -/obj/structure/closet/secure_closet/freezer/meat, +/obj/structure/closet/fridge/meat, /obj/machinery/atmospherics/unary/vent_scrubber/on, /obj/machinery/light/small{ dir = 1 diff --git a/maps/random_ruins/exoplanet_ruins/playablecolony/colony.dmm b/maps/random_ruins/exoplanet_ruins/playablecolony/colony.dmm index 5d7734003631c..3213f38e499b8 100644 --- a/maps/random_ruins/exoplanet_ruins/playablecolony/colony.dmm +++ b/maps/random_ruins/exoplanet_ruins/playablecolony/colony.dmm @@ -3392,7 +3392,7 @@ dir = 1; level = 2 }, -/obj/structure/closet/secure_closet/freezer/fridge, +/obj/structure/closet/fridge, /obj/item/storage/box/snack/tastybread, /obj/item/storage/box/snack/tastybread, /obj/item/storage/box/snack/noraisin, @@ -3469,7 +3469,7 @@ /turf/simulated/floor/tiled/techfloor, /area/map_template/colony) "gz" = ( -/obj/structure/closet/secure_closet/freezer/meat, +/obj/structure/closet/fridge/meat, /turf/simulated/floor/tiled/freezer, /area/map_template/colony/messhall) "gA" = ( diff --git a/maps/random_ruins/exoplanet_ruins/playablecolony2/colony2.dmm b/maps/random_ruins/exoplanet_ruins/playablecolony2/colony2.dmm index d58caa7fcc477..7cff5f7013ecc 100644 --- a/maps/random_ruins/exoplanet_ruins/playablecolony2/colony2.dmm +++ b/maps/random_ruins/exoplanet_ruins/playablecolony2/colony2.dmm @@ -102,7 +102,7 @@ /turf/simulated/floor/tiled/techmaint, /area/map_template/colony2/ship) "cq" = ( -/obj/structure/closet/secure_closet/freezer/fridge, +/obj/structure/closet/fridge, /obj/item/storage/box/snack/tastybread, /obj/item/storage/box/glasses, /obj/effect/floor_decal/corner/paleblue/mono, @@ -413,7 +413,7 @@ /area/map_template/colony2/ship) "fT" = ( /obj/effect/floor_decal/corner/paleblue/mono, -/obj/structure/closet/secure_closet/freezer/meat, +/obj/structure/closet/fridge/meat, /turf/simulated/floor/tiled/dark/monotile, /area/map_template/colony2/commons) "fU" = ( diff --git a/maps/torch/torch3_deck3.dmm b/maps/torch/torch3_deck3.dmm index b7ac34cf113c2..74ae80be75a16 100644 --- a/maps/torch/torch3_deck3.dmm +++ b/maps/torch/torch3_deck3.dmm @@ -2325,7 +2325,7 @@ /turf/simulated/floor/tiled, /area/hallway/primary/thirddeck/fore) "fy" = ( -/obj/structure/closet/secure_closet/freezer/meat, +/obj/structure/closet/fridge/meat, /obj/item/reagent_containers/food/condiment/barbecue, /obj/structure/window/basic{ dir = 1 @@ -2904,7 +2904,7 @@ /turf/simulated/floor/tiled/dark, /area/vacant/mess) "gJ" = ( -/obj/structure/closet/secure_closet/freezer/fridge, +/obj/structure/closet/fridge, /obj/random/single/cola, /obj/random/single/cola, /obj/random/single/cola, @@ -3131,7 +3131,7 @@ /area/crew_quarters/gym) "hm" = ( /obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/structure/closet/secure_closet/freezer/meat, +/obj/structure/closet/fridge/meat, /obj/item/reagent_containers/food/condiment/enzyme, /obj/structure/window/basic{ dir = 1 @@ -7040,7 +7040,7 @@ /obj/machinery/light{ dir = 8 }, -/obj/structure/closet/secure_closet/freezer/fridge, +/obj/structure/closet/fridge, /obj/structure/window/basic{ dir = 1 }, @@ -16836,9 +16836,7 @@ /turf/simulated/floor/tiled/dark/monotile, /area/crew_quarters/observation) "PI" = ( -/obj/structure/closet/secure_closet/freezer/kitchen{ - req_access = newlist() - }, +/obj/structure/closet/kitchen, /obj/item/reagent_containers/food/snacks/mint, /obj/item/stack/material/plastic/ten, /turf/simulated/floor/tiled/freezer, diff --git a/maps/torch/z1_admin.dmm b/maps/torch/z1_admin.dmm index d3d23d8ef0998..553e87cb307fd 100644 --- a/maps/torch/z1_admin.dmm +++ b/maps/torch/z1_admin.dmm @@ -2549,7 +2549,7 @@ /turf/simulated/floor/shuttle/white, /area/shuttle/administration/centcom) "auE" = ( -/obj/structure/closet/secure_closet/freezer/meat, +/obj/structure/closet/fridge/meat, /turf/simulated/floor/shuttle/white, /area/shuttle/administration/centcom) "auF" = ( @@ -2645,7 +2645,7 @@ }, /area/centcom/living) "auV" = ( -/obj/structure/closet/secure_closet/freezer/meat, +/obj/structure/closet/fridge/meat, /turf/unsimulated/floor{ icon_state = "freezerfloor" }, @@ -3567,7 +3567,7 @@ }, /area/centcom/test) "axC" = ( -/obj/structure/closet/secure_closet/freezer/meat, +/obj/structure/closet/fridge/meat, /turf/unsimulated/floor{ icon_state = "white" }, @@ -6972,13 +6972,13 @@ }, /area/tdome/tdomeobserve) "aKt" = ( -/obj/structure/closet/secure_closet/freezer/meat, +/obj/structure/closet/fridge/meat, /turf/unsimulated/floor{ icon_state = "white" }, /area/tdome) "aKu" = ( -/obj/structure/closet/secure_closet/freezer/fridge, +/obj/structure/closet/fridge, /turf/unsimulated/floor{ icon_state = "white" }, diff --git a/packs/deepmaint/deepmaint_rooms/core/archive.dmm b/packs/deepmaint/deepmaint_rooms/core/archive.dmm index bb7cbb7707ae9..379e74c591152 100644 --- a/packs/deepmaint/deepmaint_rooms/core/archive.dmm +++ b/packs/deepmaint/deepmaint_rooms/core/archive.dmm @@ -23,7 +23,7 @@ /turf/simulated/wall, /area/map_template/deepmaint) "ag" = ( -/obj/structure/closet/secure_closet/freezer/meat, +/obj/structure/closet/fridge/meat, /obj/random/mre, /obj/random/mre, /obj/random/mre, diff --git a/packs/deepmaint/deepmaint_rooms/core/diner.dmm b/packs/deepmaint/deepmaint_rooms/core/diner.dmm index 47edb9f9855da..bb791bf555233 100644 --- a/packs/deepmaint/deepmaint_rooms/core/diner.dmm +++ b/packs/deepmaint/deepmaint_rooms/core/diner.dmm @@ -384,7 +384,7 @@ /turf/simulated/floor/wood/yew, /area/map_template/deepmaint) "Rs" = ( -/obj/structure/closet/secure_closet/freezer/meat, +/obj/structure/closet/fridge/meat, /turf/simulated/floor/tiled/freezer, /area/map_template/deepmaint) "Ru" = ( diff --git a/packs/deepmaint/deepmaint_rooms/core/medbay.dmm b/packs/deepmaint/deepmaint_rooms/core/medbay.dmm index b61f4322f8fb1..2af0fedeb00c6 100644 --- a/packs/deepmaint/deepmaint_rooms/core/medbay.dmm +++ b/packs/deepmaint/deepmaint_rooms/core/medbay.dmm @@ -45,7 +45,7 @@ /turf/simulated/floor/tiled/white, /area/map_template/deepmaint) "dy" = ( -/obj/structure/closet/secure_closet/freezer/blood, +/obj/structure/closet/fridge/blood, /turf/simulated/floor/tiled/steel/techfloor, /area/map_template/deepmaint) "dF" = ( @@ -497,7 +497,7 @@ /turf/simulated/wall, /area/map_template/deepmaint) "VO" = ( -/obj/structure/closet/secure_closet/freezer/blood, +/obj/structure/closet/fridge/blood, /obj/item/stock_parts/matter_bin, /obj/item/stock_parts/matter_bin, /turf/simulated/floor/tiled/steel/techfloor, From 030cea684fc7572607576042ce0524f89a5573a7 Mon Sep 17 00:00:00 2001 From: SuhEugene <32931701+SuhEugene@users.noreply.github.com> Date: Fri, 15 Sep 2023 01:03:27 +0300 Subject: [PATCH 091/158] Remove locks from fridges on sierra maps --- maps/sierra/z1-3_sierra.dmm | 6 +++--- maps/sierra/z4_admin.dmm | 14 +++++++------- mods/_maps/farfleet/maps/farfleet-2.dmm | 6 +++--- mods/_maps/liberia/maps/liberia.dmm | 4 ++-- mods/_maps/sentinel/maps/sentinel-2.dmm | 6 +++--- 5 files changed, 18 insertions(+), 18 deletions(-) diff --git a/maps/sierra/z1-3_sierra.dmm b/maps/sierra/z1-3_sierra.dmm index b01ee66fac92f..56db781498f23 100644 --- a/maps/sierra/z1-3_sierra.dmm +++ b/maps/sierra/z1-3_sierra.dmm @@ -757,7 +757,7 @@ "bYj" = (/obj/structure/filingcabinet/chestdrawer,/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/effect/floor_decal/spline/fancy/black,/turf/simulated/floor/tiled/dark/monotile,/area/bridge/nano) "bYY" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 10},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/tiled,/area/quartermaster/exploration) "bZf" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/portables_connector{dir = 1},/obj/machinery/portable_atmospherics/canister/air/airlock,/obj/effect/floor_decal/industrial/outline/yellow,/obj/machinery/door/window/northright,/turf/simulated/floor/tiled/techfloor,/area/maintenance/substation/seconddeck) -"bZq" = (/obj/structure/closet/secure_closet/freezer/kitchen,/obj/machinery/firealarm{dir = 1; pixel_y = -20},/obj/machinery/light_switch{dir = 8; pixel_x = 23},/obj/item/reagent_containers/food/condiment/enzyme,/obj/item/reagent_containers/food/condiment/barbecue,/obj/effect/floor_decal/spline/fancy/black{dir = 6},/obj/effect/floor_decal/snow,/turf/simulated/floor/tiled/freezer,/area/crew_quarters/galley/backroom) +"bZq" = (/obj/structure/closet/kitchen,/obj/machinery/firealarm{dir = 1; pixel_y = -20},/obj/machinery/light_switch{dir = 8; pixel_x = 23},/obj/item/reagent_containers/food/condiment/enzyme,/obj/item/reagent_containers/food/condiment/barbecue,/obj/effect/floor_decal/spline/fancy/black{dir = 6},/obj/effect/floor_decal/snow,/turf/simulated/floor/tiled/freezer,/area/crew_quarters/galley/backroom) "bZs" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 9},/obj/effect/floor_decal/borderfloor{dir = 4},/obj/effect/floor_decal/corner/lime/border{dir = 4},/obj/machinery/navbeacon/sierra/SD_fore5,/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor/tiled,/area/hallway/primary/seconddeck/fore) "bZz" = (/obj/machinery/atmospherics/pipe/simple/visible/cyan,/obj/structure/cable/cyan{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/effect/floor_decal/techfloor/orange{dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/tiled/techfloor,/area/engineering/engine_room) "bZA" = (/turf/simulated/wall/r_wall/prepainted,/area/turret_protected/ai) @@ -1115,7 +1115,7 @@ "cUN" = (/obj/machinery/atmospherics/pipe/simple/hidden,/obj/effect/floor_decal/borderfloor,/obj/effect/floor_decal/industrial/danger,/turf/simulated/floor/tiled/steel_grid,/area/shuttle/escape_pod/escape_pod2/station) "cVf" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 4},/turf/simulated/floor/tiled,/area/command/exploration_leader) "cVk" = (/obj/machinery/atmospherics/unary/heat_exchanger{dir = 8},/obj/effect/floor_decal/industrial/outline/blue,/obj/structure/railing/mapped{dir = 8},/obj/structure/railing/mapped,/turf/simulated/floor/tiled/techfloor,/area/engineering/engine_room) -"cVn" = (/obj/structure/closet/secure_closet/freezer/fridge,/obj/effect/floor_decal/spline/fancy/black{dir = 1},/obj/effect/floor_decal/snow,/obj/item/reagent_containers/food/drinks/milk,/obj/item/reagent_containers/food/drinks/milk,/obj/item/reagent_containers/food/drinks/milk,/obj/item/reagent_containers/food/drinks/milk,/obj/item/reagent_containers/food/drinks/milk,/obj/item/reagent_containers/food/drinks/milk,/obj/item/reagent_containers/food/drinks/soymilk,/obj/item/reagent_containers/food/drinks/soymilk,/obj/item/reagent_containers/food/drinks/soymilk,/obj/item/reagent_containers/food/drinks/soymilk,/obj/item/storage/fancy/egg_box,/obj/item/storage/fancy/egg_box,/obj/item/storage/fancy/egg_box,/obj/item/storage/fancy/egg_box,/obj/machinery/light/spot{dir = 1},/turf/simulated/floor/tiled/freezer,/area/crew_quarters/galley/backroom) +"cVn" = (/obj/structure/closet/fridge,/obj/effect/floor_decal/spline/fancy/black{dir = 1},/obj/effect/floor_decal/snow,/obj/item/reagent_containers/food/drinks/milk,/obj/item/reagent_containers/food/drinks/milk,/obj/item/reagent_containers/food/drinks/milk,/obj/item/reagent_containers/food/drinks/milk,/obj/item/reagent_containers/food/drinks/milk,/obj/item/reagent_containers/food/drinks/milk,/obj/item/reagent_containers/food/drinks/soymilk,/obj/item/reagent_containers/food/drinks/soymilk,/obj/item/reagent_containers/food/drinks/soymilk,/obj/item/reagent_containers/food/drinks/soymilk,/obj/item/storage/fancy/egg_box,/obj/item/storage/fancy/egg_box,/obj/item/storage/fancy/egg_box,/obj/item/storage/fancy/egg_box,/obj/machinery/light/spot{dir = 1},/turf/simulated/floor/tiled/freezer,/area/crew_quarters/galley/backroom) "cVp" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 8},/obj/effect/floor_decal/borderfloor/corner,/obj/effect/floor_decal/corner/green/bordercorner,/turf/simulated/floor/tiled,/area/security/prison) "cVx" = (/obj/structure/railing/mapped{dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/obj/effect/floor_decal/borderfloor{dir = 8},/obj/effect/floor_decal/industrial/danger{dir = 8},/turf/simulated/floor/tiled,/area/hallway/primary/firstdeck/central_stairwell) "cVA" = (/obj/machinery/atmospherics/binary/circulator{anchored = 1; dir = 8},/obj/structure/railing/mapped{dir = 8},/obj/structure/railing/mapped,/obj/structure/railing/mapped{dir = 4},/turf/simulated/floor/tiled/techfloor/grid,/area/engineering/engine_room) @@ -3199,7 +3199,7 @@ "ivk" = (/obj/machinery/alarm{dir = 8; pixel_x = 24},/obj/structure/table/rack,/obj/random/maintenance,/obj/structure/railing/mapped{dir = 8},/obj/structure/railing/mapped{dir = 1},/turf/simulated/floor/plating,/area/maintenance/seconddeck/aftport) "ivt" = (/obj/structure/table/woodentable_reinforced/walnut,/obj/item/flora/pottedplantsmall/leaf{pixel_x = 6},/turf/simulated/floor/wood/mahogany,/area/crew_quarters/lounge_big) "ivw" = (/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/wall/r_wall/prepainted,/area/bridge/adjutants) -"ivy" = (/obj/effect/floor_decal/spline/fancy/black{dir = 1},/obj/effect/floor_decal/snow,/obj/structure/closet/secure_closet/freezer/meat,/obj/item/reagent_containers/food/snacks/meat/beef,/obj/item/reagent_containers/food/snacks/meat/beef,/obj/item/reagent_containers/food/snacks/meat/beef,/obj/item/reagent_containers/food/snacks/meat/beef,/obj/item/reagent_containers/food/snacks/meat/beef,/obj/item/reagent_containers/food/snacks/meat/beef,/obj/item/reagent_containers/food/snacks/meat/beef,/obj/item/reagent_containers/food/snacks/meat/beef,/obj/item/reagent_containers/food/snacks/fish,/obj/item/reagent_containers/food/snacks/fish,/obj/item/reagent_containers/food/snacks/fish,/obj/item/reagent_containers/food/snacks/fish,/turf/simulated/floor/tiled/freezer,/area/crew_quarters/galley/backroom) +"ivy" = (/obj/effect/floor_decal/spline/fancy/black{dir = 1},/obj/effect/floor_decal/snow,/obj/structure/closet/fridge/meat,/obj/item/reagent_containers/food/snacks/meat/beef,/obj/item/reagent_containers/food/snacks/meat/beef,/obj/item/reagent_containers/food/snacks/meat/beef,/obj/item/reagent_containers/food/snacks/meat/beef,/obj/item/reagent_containers/food/snacks/meat/beef,/obj/item/reagent_containers/food/snacks/meat/beef,/obj/item/reagent_containers/food/snacks/meat/beef,/obj/item/reagent_containers/food/snacks/meat/beef,/obj/item/reagent_containers/food/snacks/fish,/obj/item/reagent_containers/food/snacks/fish,/obj/item/reagent_containers/food/snacks/fish,/obj/item/reagent_containers/food/snacks/fish,/turf/simulated/floor/tiled/freezer,/area/crew_quarters/galley/backroom) "ivA" = (/obj/effect/floor_decal/borderfloorblack{dir = 4},/obj/effect/floor_decal/corner/darkblue/border{dir = 4},/obj/effect/floor_decal/borderfloorblack/corner2{dir = 5},/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable/green{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/effect/floor_decal/spline/fancy/black/corner{dir = 1},/obj/effect/floor_decal/spline/fancy/black/corner,/obj/effect/floor_decal/corner/darkblue/bordercorner2{dir = 5},/turf/simulated/floor/tiled/dark,/area/bridge/nano) "ivB" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 6},/obj/structure/catwalk,/turf/simulated/floor/plating,/area/maintenance/thirddeck/starboard) "ivC" = (/obj/effect/wallframe_spawn/reinforced/polarized/no_grille{id = "pathfinder_office"},/obj/machinery/door/firedoor,/turf/simulated/floor/plating,/area/command/exploration_leader) diff --git a/maps/sierra/z4_admin.dmm b/maps/sierra/z4_admin.dmm index 733c7dbb0683a..4a4d863a7a9bd 100644 --- a/maps/sierra/z4_admin.dmm +++ b/maps/sierra/z4_admin.dmm @@ -4129,13 +4129,13 @@ /turf/unsimulated/floor/techfloor, /area/centcom/holding) "ayc" = ( -/obj/structure/closet/secure_closet/freezer/fridge, +/obj/structure/closet/fridge, /turf/unsimulated/floor{ icon_state = "white" }, /area/tdome/tdomeobserve) "ayd" = ( -/obj/structure/closet/secure_closet/freezer/kitchen{ +/obj/structure/closet/kitchen{ req_access = null }, /turf/unsimulated/floor{ @@ -8570,7 +8570,7 @@ }, /area/centcom/living) "dqW" = ( -/obj/structure/closet/secure_closet/freezer/meat, +/obj/structure/closet/fridge/meat, /obj/effect/floor_decal/corner/paleblue/diagonal, /obj/effect/floor_decal/corner/white/diagonal{ dir = 4 @@ -16250,7 +16250,7 @@ }, /area/centcom/creed) "tvT" = ( -/obj/structure/closet/secure_closet/freezer/meat, +/obj/structure/closet/fridge/meat, /obj/effect/floor_decal/borderfloorblack{ dir = 1 }, @@ -17084,7 +17084,7 @@ /turf/simulated/floor/tiled, /area/shuttle/transport1/centcom) "vlM" = ( -/obj/structure/closet/secure_closet/freezer/kitchen, +/obj/structure/closet/kitchen, /obj/effect/floor_decal/corner/paleblue/diagonal, /obj/effect/floor_decal/corner/white/diagonal{ dir = 4 @@ -17377,7 +17377,7 @@ }, /area/centcom/living) "vNh" = ( -/obj/structure/closet/secure_closet/freezer/fridge, +/obj/structure/closet/fridge, /obj/effect/floor_decal/borderfloorblack{ dir = 1 }, @@ -18335,7 +18335,7 @@ /turf/unsimulated/floor/techfloor, /area/centcom/holding) "ylw" = ( -/obj/structure/closet/secure_closet/freezer/fridge, +/obj/structure/closet/fridge, /obj/effect/floor_decal/corner/paleblue/diagonal, /obj/effect/floor_decal/corner/white/diagonal{ dir = 4 diff --git a/mods/_maps/farfleet/maps/farfleet-2.dmm b/mods/_maps/farfleet/maps/farfleet-2.dmm index 95e1b2769853b..4c52922927f40 100644 --- a/mods/_maps/farfleet/maps/farfleet-2.dmm +++ b/mods/_maps/farfleet/maps/farfleet-2.dmm @@ -457,7 +457,7 @@ /turf/simulated/floor/tiled/techmaint, /area/ship/farfleet/maintenance/anomaly) "er" = ( -/obj/structure/closet/secure_closet/freezer/fridge, +/obj/structure/closet/fridge, /turf/simulated/floor/tiled/freezer, /area/ship/farfleet/crew/freezer) "et" = ( @@ -4066,7 +4066,7 @@ /turf/simulated/wall/r_wall, /area/ship/farfleet/crew/brig/css) "NW" = ( -/obj/structure/closet/secure_closet/freezer/meat, +/obj/structure/closet/fridge/meat, /obj/machinery/light/small{ dir = 1 }, @@ -5314,7 +5314,7 @@ /turf/simulated/floor/plating, /area/ship/farfleet/command/snz_hangar) "Zz" = ( -/obj/structure/closet/secure_closet/freezer/kitchen{ +/obj/structure/closet/kitchen{ req_access = list() }, /obj/machinery/light/small{ diff --git a/mods/_maps/liberia/maps/liberia.dmm b/mods/_maps/liberia/maps/liberia.dmm index 0e06921c3e22c..7bbba579ecdc6 100644 --- a/mods/_maps/liberia/maps/liberia.dmm +++ b/mods/_maps/liberia/maps/liberia.dmm @@ -4595,7 +4595,7 @@ dir = 4; pixel_x = -21 }, -/obj/structure/closet/secure_closet/freezer/kitchen{ +/obj/structure/closet/kitchen{ req_access = newlist() }, /turf/simulated/floor/tiled/freezer, @@ -4605,7 +4605,7 @@ /turf/simulated/floor/tiled/freezer, /area/liberia/bar) "hS" = ( -/obj/structure/closet/secure_closet/freezer/fridge, +/obj/structure/closet/fridge, /obj/effect/floor_decal/industrial/outline/yellow, /obj/item/reagent_containers/food/condiment/enzyme, /turf/simulated/floor/tiled/freezer, diff --git a/mods/_maps/sentinel/maps/sentinel-2.dmm b/mods/_maps/sentinel/maps/sentinel-2.dmm index 0006d0f638c19..962138ddf3930 100644 --- a/mods/_maps/sentinel/maps/sentinel-2.dmm +++ b/mods/_maps/sentinel/maps/sentinel-2.dmm @@ -3508,7 +3508,7 @@ /area/ship/patrol/crew/kitchen) "gE" = ( /obj/effect/floor_decal/industrial/outline/yellow, -/obj/structure/closet/secure_closet/freezer/kitchen{ +/obj/structure/closet/kitchen{ req_access = list() }, /turf/simulated/floor/tiled/freezer, @@ -3664,7 +3664,7 @@ /turf/simulated/floor/tiled/freezer, /area/ship/patrol/crew/kitchen) "gV" = ( -/obj/structure/closet/secure_closet/freezer/fridge, +/obj/structure/closet/fridge, /obj/effect/floor_decal/industrial/outline/yellow, /obj/machinery/alarm{ dir = 8; @@ -3789,7 +3789,7 @@ /turf/simulated/floor/tiled/freezer, /area/ship/patrol/crew/kitchen) "hi" = ( -/obj/structure/closet/secure_closet/freezer/meat, +/obj/structure/closet/fridge/meat, /obj/effect/floor_decal/industrial/outline/yellow, /obj/machinery/alarm{ dir = 1; From e4923ba3a71d8c8b8fc4f340973c8769f47c7578 Mon Sep 17 00:00:00 2001 From: Sierra Helper <125094432+SierraHelper@users.noreply.github.com> Date: Fri, 15 Sep 2023 01:24:06 +0300 Subject: [PATCH 092/158] =?UTF-8?q?=D0=A7=D0=B5=D0=B9=D0=BD=D0=B4=D0=B6?= =?UTF-8?q?=D0=BB=D0=BE=D0=B3=20=D0=B4=D0=BB=D1=8F=20PR=20#997=20[ci=20ski?= =?UTF-8?q?p]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- html/changelogs/AutoChangeLog-sierra-pr-997.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-sierra-pr-997.yml diff --git a/html/changelogs/AutoChangeLog-sierra-pr-997.yml b/html/changelogs/AutoChangeLog-sierra-pr-997.yml new file mode 100644 index 0000000000000..1c3866272d8f8 --- /dev/null +++ b/html/changelogs/AutoChangeLog-sierra-pr-997.yml @@ -0,0 +1,4 @@ +author: Sbotkin +delete-after: true +changes: + - tweak: Removes locks from the fridges and the kitchen cabinet. From 9a82abe10f216ad7bd97381a00d8165a3e035bb4 Mon Sep 17 00:00:00 2001 From: SuhEugene <32931701+SuhEugene@users.noreply.github.com> Date: Fri, 15 Sep 2023 01:32:11 +0300 Subject: [PATCH 093/158] Revert "[MIRROR] Exoplanet Gen tweaks" This reverts commit 5e33b899feeda82db1ad14b6d16f5d19c085ddfe. --- code/__defines/misc.dm | 12 ++--- code/modules/ZAS/Fire.dm | 3 +- code/modules/overmap/exoplanets/_exoplanet.dm | 15 +++++- .../exoplanets/exoplanet_atmosphere.dm | 48 +++++++------------ .../overmap/exoplanets/planet_types/barren.dm | 11 +++-- .../exoplanets/planet_types/chlorine.dm | 20 +++----- .../overmap/exoplanets/planet_types/desert.dm | 13 +++-- .../overmap/exoplanets/planet_types/grass.dm | 46 +++++------------- .../exoplanets/planet_types/shrouded.dm | 19 ++++---- .../overmap/exoplanets/planet_types/snow.dm | 19 ++++---- .../exoplanets/planet_types/volcanic.dm | 14 +++--- code/modules/xgm/xgm_gas_mixture.dm | 20 ++------ 12 files changed, 97 insertions(+), 143 deletions(-) diff --git a/code/__defines/misc.dm b/code/__defines/misc.dm index 96267ad1f27dc..0d86253502bdd 100644 --- a/code/__defines/misc.dm +++ b/code/__defines/misc.dm @@ -259,14 +259,10 @@ //Lying animation #define ANIM_LYING_TIME 2 - -//Planet habitability weight -#define HABITABILITY_LOCKED 1 -#define HABITABILITY_TYPICAL 2 -#define HABITABILITY_BAD 3 -#define HABITABILITY_EXTREME 4 -#define HABITABILITY_RANDOM 5 - +//Planet habitability class +#define HABITABILITY_IDEAL 1 +#define HABITABILITY_OKAY 2 +#define HABITABILITY_BAD 3 #ifndef WINDOWS_HTTP_POST_DLL_LOCATION #define WINDOWS_HTTP_POST_DLL_LOCATION "lib/byhttp.dll" diff --git a/code/modules/ZAS/Fire.dm b/code/modules/ZAS/Fire.dm index 34828849db51e..cfe59cf749212 100644 --- a/code/modules/ZAS/Fire.dm +++ b/code/modules/ZAS/Fire.dm @@ -271,8 +271,7 @@ If it gains pressure too slowly, it may leak or just rupture instead of explodin adjust_gas(gas_data.burn_product[g], burned_fuel.gas[g]) //calculate the energy produced by the reaction and then set the new temperature of the mix - var/energy = starting_energy + vsc.fire_fuel_energy_release * (used_gas_fuel) - add_thermal_energy(energy) + temperature = (starting_energy + vsc.fire_fuel_energy_release * (used_gas_fuel)) / heat_capacity() update_values() #ifdef FIREDBG diff --git a/code/modules/overmap/exoplanets/_exoplanet.dm b/code/modules/overmap/exoplanets/_exoplanet.dm index 84c1d5d0fab3d..4b22bddd8ce97 100644 --- a/code/modules/overmap/exoplanets/_exoplanet.dm +++ b/code/modules/overmap/exoplanets/_exoplanet.dm @@ -62,8 +62,18 @@ GLOBAL_VAR(planet_repopulation_disabled) var/list/spawned_features //Either a type or a list of types and weights. You must include all types if it's a list + var/list/habitability_distribution = list( + HABITABILITY_IDEAL = 10, + HABITABILITY_OKAY = 40, + HABITABILITY_BAD = 50 + ) + var/habitability_class - var/habitability_weight = HABITABILITY_TYPICAL +/obj/effect/overmap/visitable/sector/exoplanet/proc/generate_habitability() + if (isnum(habitability_distribution)) + habitability_class = habitability_distribution + else + habitability_class = pickweight_index(habitability_distribution) /obj/effect/overmap/visitable/sector/exoplanet/New(nloc, max_x, max_y) if (!GLOB.using_map.use_overmap) @@ -105,13 +115,14 @@ GLOBAL_VAR(planet_repopulation_disabled) ..() /obj/effect/overmap/visitable/sector/exoplanet/proc/build_level() + generate_habitability() generate_atmosphere() for (var/datum/exoplanet_theme/T in themes) T.adjust_atmosphere(src) if (atmosphere) //Set up gases for living things if (!length(breathgas)) - var/list/goodgases = atmosphere.gas.Copy() + var/list/goodgases = gas_data.gases.Copy() var/gasnum = min(rand(1,3), length(goodgases)) for (var/i = 1 to gasnum) var/gas = pick(goodgases) diff --git a/code/modules/overmap/exoplanets/exoplanet_atmosphere.dm b/code/modules/overmap/exoplanets/exoplanet_atmosphere.dm index ace7ef80b3526..bc6e1a4a08910 100644 --- a/code/modules/overmap/exoplanets/exoplanet_atmosphere.dm +++ b/code/modules/overmap/exoplanets/exoplanet_atmosphere.dm @@ -1,10 +1,9 @@ /obj/effect/overmap/visitable/sector/exoplanet/proc/generate_atmosphere() atmosphere = new - if (habitability_weight == HABITABILITY_LOCKED) + if (habitability_class == HABITABILITY_IDEAL) atmosphere.adjust_gas(GAS_OXYGEN, MOLES_O2STANDARD, 0) atmosphere.adjust_gas(GAS_NITROGEN, MOLES_N2STANDARD) else //let the fuckery commence - var/habitability var/list/newgases = gas_data.gases.Copy() if (prob(90)) //all phoron planet should be rare newgases -= GAS_PHORON @@ -12,50 +11,37 @@ newgases -= GAS_ALIEN newgases -= GAS_STEAM - switch(habitability_weight) - if (HABITABILITY_TYPICAL) - habitability = NORMAL_RAND - if (HABITABILITY_BAD) - habitability = LINEAR_RAND - if (HABITABILITY_EXTREME) - habitability = SQUARE_RAND - else - habitability = UNIFORM_RAND - - var/total_moles = MOLES_CELLSTANDARD * (rand(7, 40) / 10) - var/generator/new_moles = generator("num", 0.05 * total_moles, 0.5 * total_moles, habitability) + var/total_moles = MOLES_CELLSTANDARD * rand(80,120)/100 var/badflag = 0 - var/gasnum = rand(max(habitability_weight - 1, 1), 4) - var/i = 0 + //Breathable planet + if (habitability_class == HABITABILITY_OKAY) + atmosphere.gas[GAS_OXYGEN] += MOLES_O2STANDARD + total_moles -= MOLES_O2STANDARD + badflag = XGM_GAS_FUEL|XGM_GAS_CONTAMINANT + var/gasnum = rand(1,4) + var/i = 1 + var/sanity = prob(99.9) while (i <= gasnum && total_moles && length(newgases)) - if (badflag) + if (badflag && sanity) for(var/g in newgases) if (gas_data.flags[g] & badflag) newgases -= g - var/ng = pick_n_take(newgases) //pick a gas - - if (gas_data.flags[ng] & XGM_GAS_OXIDIZER) - badflag |= XGM_GAS_OXIDIZER - if (prob(33)) - badflag |= (XGM_GAS_FUSION_FUEL | XGM_GAS_FUEL) - - if ((gas_data.flags[ng] & XGM_GAS_FUEL) || (gas_data.flags[ng] & XGM_GAS_FUSION_FUEL)) - badflag |= (XGM_GAS_FUSION_FUEL | XGM_GAS_FUEL) - if (prob(33)) + if (sanity) //make sure atmosphere is not flammable... always + if (gas_data.flags[ng] & XGM_GAS_OXIDIZER) + badflag |= XGM_GAS_FUEL + if (gas_data.flags[ng] & XGM_GAS_FUEL) badflag |= XGM_GAS_OXIDIZER + sanity = 0 - var/part = min(0.33 * total_moles, new_moles.Rand()) //allocate percentage to it + var/part = total_moles * rand(3,80)/100 //allocate percentage to it if (i == gasnum || !length(newgases)) //if it's last gas, let it have all remaining moles part = total_moles - atmosphere.gas[ng] += part total_moles = max(total_moles - part, 0) i++ - atmosphere.update_values() - /obj/effect/overmap/visitable/sector/exoplanet/proc/get_atmosphere_color() var/list/colors = list() diff --git a/code/modules/overmap/exoplanets/planet_types/barren.dm b/code/modules/overmap/exoplanets/planet_types/barren.dm index bd3dd403d9d80..0d6faa1098b07 100644 --- a/code/modules/overmap/exoplanets/planet_types/barren.dm +++ b/code/modules/overmap/exoplanets/planet_types/barren.dm @@ -4,20 +4,23 @@ color = "#6c6c6c" planetary_area = /area/exoplanet/barren rock_colors = list(COLOR_BEIGE, COLOR_GRAY80, COLOR_BROWN) + possible_themes = list(/datum/exoplanet_theme/mountains) map_generators = list(/datum/random_map/noise/exoplanet/barren, /datum/random_map/noise/ore/rich) ruin_tags_blacklist = RUIN_HABITAT|RUIN_WATER features_budget = 6 surface_color = "#807d7a" water_color = null - habitability_weight = HABITABILITY_LOCKED + habitability_distribution = HABITABILITY_BAD has_trees = FALSE /obj/effect/overmap/visitable/sector/exoplanet/barren/generate_atmosphere() - atmosphere = new - return + ..() + atmosphere.remove_ratio(0.9) /obj/effect/overmap/visitable/sector/exoplanet/barren/generate_flora() - return + if(prob(10)) + flora_diversity = 1 + ..() /datum/random_map/noise/exoplanet/barren descriptor = "barren exoplanet" diff --git a/code/modules/overmap/exoplanets/planet_types/chlorine.dm b/code/modules/overmap/exoplanets/planet_types/chlorine.dm index 1d1dad811e962..4b15ab2077924 100644 --- a/code/modules/overmap/exoplanets/planet_types/chlorine.dm +++ b/code/modules/overmap/exoplanets/planet_types/chlorine.dm @@ -9,19 +9,17 @@ ruin_tags_blacklist = RUIN_HABITAT|RUIN_WATER surface_color = "#a3b879" water_color = COLOR_BOTTLE_GREEN - habitability_weight = HABITABILITY_BAD + habitability_distribution = HABITABILITY_BAD has_trees = FALSE flora_diversity = 5 fauna_types = list(/mob/living/simple_animal/thinbug, /mob/living/simple_animal/hostile/retaliate/beast/samak/alt, /mob/living/simple_animal/yithian, /mob/living/simple_animal/tindalos, /mob/living/simple_animal/hostile/retaliate/jelly) megafauna_types = list(/mob/living/simple_animal/hostile/retaliate/jelly/mega) /obj/effect/overmap/visitable/sector/exoplanet/chlorine/get_atmosphere_color() - var/air_color = ..() - return MixColors("#e5f2bd", air_color) - + return "#e5f2bd" /obj/effect/overmap/visitable/sector/exoplanet/chlorine/generate_map() - if (prob(50)) + if(prob(50)) lightlevel = rand(7,10)/10 //It could be night. else lightlevel = 0.1 @@ -29,14 +27,10 @@ /obj/effect/overmap/visitable/sector/exoplanet/chlorine/generate_atmosphere() ..() - var/chlorine = (rand(1, 6) / 10) * (atmosphere.total_moles) - atmosphere = atmosphere.remove(chlorine) - atmosphere.adjust_gas(GAS_CHLORINE, chlorine) - - var/datum/species/H = all_species[SPECIES_HUMAN] - var/generator/new_temp = generator("num", H.cold_level_1 + 40, H.heat_level_1 + 10, UNIFORM_RAND) - atmosphere.temperature = new_temp.Rand() - atmosphere.update_values() + if(atmosphere) + atmosphere.adjust_gas(GAS_CHLORINE, MOLES_O2STANDARD) + atmosphere.temperature = T100C - rand(0, 100) + atmosphere.update_values() /datum/random_map/noise/exoplanet/chlorine descriptor = "chlorine exoplanet" diff --git a/code/modules/overmap/exoplanets/planet_types/desert.dm b/code/modules/overmap/exoplanets/planet_types/desert.dm index f91565b67b4cb..22dbcbe9c6600 100644 --- a/code/modules/overmap/exoplanets/planet_types/desert.dm +++ b/code/modules/overmap/exoplanets/planet_types/desert.dm @@ -8,7 +8,7 @@ map_generators = list(/datum/random_map/noise/exoplanet/desert, /datum/random_map/noise/ore/rich) surface_color = "#d6cca4" water_color = null - habitability_weight = HABITABILITY_TYPICAL + habitability_distribution = list(HABITABILITY_IDEAL = 30, HABITABILITY_OKAY = 50, HABITABILITY_BAD = 10) has_trees = FALSE flora_diversity = 4 fauna_types = list(/mob/living/simple_animal/thinbug, /mob/living/simple_animal/tindalos, /mob/living/simple_animal/hostile/voxslug, /mob/living/simple_animal/hostile/retaliate/beast/antlion) @@ -21,10 +21,13 @@ /obj/effect/overmap/visitable/sector/exoplanet/desert/generate_atmosphere() ..() - var/datum/species/H = all_species[SPECIES_HUMAN] - var/generator/new_temp = generator("num", H.heat_level_1, 2 * H.heat_level_1, NORMAL_RAND) - atmosphere.temperature = new_temp.Rand() - atmosphere.update_values() + if(atmosphere) + var/limit = 1000 + if(habitability_class <= HABITABILITY_OKAY) + var/datum/species/human/H = /datum/species/human + limit = initial(H.heat_level_1) - rand(1,10) + atmosphere.temperature = min(T20C + rand(20, 100), limit) + atmosphere.update_values() /obj/effect/overmap/visitable/sector/exoplanet/desert/adapt_seed(datum/seed/S) ..() diff --git a/code/modules/overmap/exoplanets/planet_types/grass.dm b/code/modules/overmap/exoplanets/planet_types/grass.dm index f0eedaad6cd12..a548a8089a8d4 100644 --- a/code/modules/overmap/exoplanets/planet_types/grass.dm +++ b/code/modules/overmap/exoplanets/planet_types/grass.dm @@ -6,18 +6,11 @@ rock_colors = list(COLOR_ASTEROID_ROCK, COLOR_GRAY80, COLOR_BROWN) plant_colors = list("#0e1e14","#1a3e38","#5a7467","#9eab88","#6e7248", "RANDOM") map_generators = list(/datum/random_map/noise/exoplanet/grass) - habitability_weight = HABITABILITY_TYPICAL + habitability_distribution = list(HABITABILITY_IDEAL = 70, HABITABILITY_OKAY = 20, HABITABILITY_BAD = 5) has_trees = TRUE flora_diversity = 7 - fauna_types = list( - /mob/living/simple_animal/yithian, - /mob/living/simple_animal/tindalos, - /mob/living/simple_animal/hostile/retaliate/jelly - ) - megafauna_types = list( - /mob/living/simple_animal/hostile/retaliate/parrot/space/megafauna, - /mob/living/simple_animal/hostile/retaliate/goose/dire - ) + fauna_types = list(/mob/living/simple_animal/yithian, /mob/living/simple_animal/tindalos, /mob/living/simple_animal/hostile/retaliate/jelly) + megafauna_types = list(/mob/living/simple_animal/hostile/retaliate/parrot/space/megafauna, /mob/living/simple_animal/hostile/retaliate/goose/dire) /obj/effect/overmap/visitable/sector/exoplanet/grass/generate_map() if(prob(40)) @@ -26,10 +19,9 @@ /obj/effect/overmap/visitable/sector/exoplanet/grass/generate_atmosphere() ..() - var/datum/species/H = all_species[SPECIES_HUMAN] - var/generator/new_temp = generator("num", T0C, H.heat_level_1 - 10, UNIFORM_RAND) - atmosphere.temperature = new_temp.Rand() - atmosphere.update_values() + if(atmosphere) + atmosphere.temperature = T20C + rand(10, 30) + atmosphere.update_values() /obj/effect/overmap/visitable/sector/exoplanet/grass/get_surface_color() return grass_color @@ -87,20 +79,8 @@ lightlevel = 0.5 has_trees = TRUE flora_diversity = 8 - fauna_types = list( - /mob/living/simple_animal/passive/cat, - /mob/living/simple_animal/passive/chicken, - /mob/living/simple_animal/passive/mouse, - /mob/living/simple_animal/passive/opossum, - /mob/living/simple_animal/hostile/retaliate/goat, - /mob/living/simple_animal/hostile/retaliate/goose, - /mob/living/simple_animal/passive/cow - ) - megafauna_types = list( - /mob/living/simple_animal/hostile/retaliate/parrot/space/megafauna, - /mob/living/simple_animal/hostile/retaliate/goose/dire - ) - habitability_weight = HABITABILITY_LOCKED + fauna_types = list(/mob/living/simple_animal/passive/cat, /mob/living/simple_animal/passive/chicken, /mob/living/simple_animal/passive/mouse, /mob/living/simple_animal/passive/opossum, /mob/living/simple_animal/hostile/retaliate/goat, /mob/living/simple_animal/hostile/retaliate/goose, /mob/living/simple_animal/passive/cow) + megafauna_types = list(/mob/living/simple_animal/hostile/retaliate/parrot/space/megafauna, /mob/living/simple_animal/hostile/retaliate/goose/dire) //Animals being named alien creature is a bit odd as these would just be earth transplants species = list( /mob/living/simple_animal/passive/cat = "wild cat", @@ -111,14 +91,14 @@ /mob/living/simple_animal/hostile/retaliate/goose = "goose", /mob/living/simple_animal/passive/cow = "wild cow") +/obj/effect/overmap/visitable/sector/exoplanet/grass/terraformed/generate_habitability() + habitability_class = HABITABILITY_IDEAL /obj/effect/overmap/visitable/sector/exoplanet/grass/terraformed/generate_atmosphere() ..() - var/datum/species/H = all_species[SPECIES_HUMAN] - var/generator/new_temp = generator("num", T20C, H.heat_level_1 - 15) - atmosphere.temperature = new_temp.Rand() - to_debug_listeners("[name] temperature set to [atmosphere.temperature]. Alternative value could be [new_temp.Rand()].") - atmosphere.update_values() + if(atmosphere) + atmosphere.temperature = T0C + rand(0, 50) + atmosphere.update_values() /obj/effect/overmap/visitable/sector/exoplanet/grass/generate_map() lightlevel = rand(0.7,0.9)/10 diff --git a/code/modules/overmap/exoplanets/planet_types/shrouded.dm b/code/modules/overmap/exoplanets/planet_types/shrouded.dm index 3243bfbf9fc46..7c1b939fbeb32 100644 --- a/code/modules/overmap/exoplanets/planet_types/shrouded.dm +++ b/code/modules/overmap/exoplanets/planet_types/shrouded.dm @@ -12,23 +12,20 @@ water_color = "#2b2840" has_trees = TRUE flora_diversity = 4 - fauna_types = list( - /mob/living/simple_animal/hostile/retaliate/royalcrab, - /mob/living/simple_animal/hostile/retaliate/jelly/alt, - /mob/living/simple_animal/hostile/retaliate/beast/shantak/alt, - /mob/living/simple_animal/hostile/leech - ) + fauna_types = list(/mob/living/simple_animal/hostile/retaliate/royalcrab, + /mob/living/simple_animal/hostile/retaliate/jelly/alt, + /mob/living/simple_animal/hostile/retaliate/beast/shantak/alt, + /mob/living/simple_animal/hostile/leech) /obj/effect/overmap/visitable/sector/exoplanet/shrouded/generate_atmosphere() ..() - if (atmosphere) - atmosphere.temperature = rand(T0C, T20C) + if(atmosphere) + atmosphere.temperature = T20C - rand(10, 20) atmosphere.update_values() /obj/effect/overmap/visitable/sector/exoplanet/shrouded/get_atmosphere_color() - var/air_color = ..() - return MixColors(COLOR_BLACK, air_color) + return COLOR_BLACK /datum/random_map/noise/exoplanet/shrouded descriptor = "shrouded exoplanet" @@ -44,7 +41,7 @@ /datum/random_map/noise/exoplanet/shrouded/get_additional_spawns(value, turf/T) ..() - if (prob(0.1)) + if(prob(0.1)) new/obj/structure/leech_spawner(T) /area/exoplanet/shrouded diff --git a/code/modules/overmap/exoplanets/planet_types/snow.dm b/code/modules/overmap/exoplanets/planet_types/snow.dm index 41e3405b5d1e4..0c12acbf0c14c 100644 --- a/code/modules/overmap/exoplanets/planet_types/snow.dm +++ b/code/modules/overmap/exoplanets/planet_types/snow.dm @@ -8,22 +8,21 @@ map_generators = list(/datum/random_map/noise/exoplanet/snow, /datum/random_map/noise/ore/poor) surface_color = "#e8faff" water_color = "#b5dfeb" - habitability_weight = HABITABILITY_BAD + habitability_distribution = list(HABITABILITY_IDEAL = 30, HABITABILITY_OKAY = 50, HABITABILITY_BAD = 10) has_trees = TRUE flora_diversity = 4 - fauna_types = list( - /mob/living/simple_animal/hostile/retaliate/beast/samak, - /mob/living/simple_animal/hostile/retaliate/beast/diyaab, - /mob/living/simple_animal/hostile/retaliate/beast/shantak - ) + fauna_types = list(/mob/living/simple_animal/hostile/retaliate/beast/samak, /mob/living/simple_animal/hostile/retaliate/beast/diyaab, /mob/living/simple_animal/hostile/retaliate/beast/shantak) megafauna_types = list(/mob/living/simple_animal/hostile/retaliate/giant_crab) /obj/effect/overmap/visitable/sector/exoplanet/snow/generate_atmosphere() ..() - var/datum/species/H = all_species[SPECIES_HUMAN] - var/generator/new_temp = generator("num", H.cold_level_1 - 50, H.cold_level_3, NORMAL_RAND) - atmosphere.temperature = new_temp.Rand() - atmosphere.update_values() + if(atmosphere) + var/limit = 0 + if(habitability_class <= HABITABILITY_OKAY) + var/datum/species/human/H = /datum/species/human + limit = initial(H.cold_level_1) + rand(1,10) + atmosphere.temperature = max(T0C - rand(10, 100), limit) + atmosphere.update_values() /datum/random_map/noise/exoplanet/snow descriptor = "snow exoplanet" diff --git a/code/modules/overmap/exoplanets/planet_types/volcanic.dm b/code/modules/overmap/exoplanets/planet_types/volcanic.dm index 275e3924c3ad6..a2adbb188812d 100644 --- a/code/modules/overmap/exoplanets/planet_types/volcanic.dm +++ b/code/modules/overmap/exoplanets/planet_types/volcanic.dm @@ -5,27 +5,25 @@ planetary_area = /area/exoplanet/volcanic rock_colors = list(COLOR_DARK_GRAY) plant_colors = list("#a23c05","#3f1f0d","#662929","#ba6222","#7a5b3a","#120309") + possible_themes = list() map_generators = list(/datum/random_map/automata/cave_system/mountains/volcanic, /datum/random_map/noise/exoplanet/volcanic, /datum/random_map/noise/ore/filthy_rich) ruin_tags_blacklist = RUIN_HABITAT|RUIN_WATER surface_color = "#261e19" water_color = "#c74d00" - habitability_weight = HABITABILITY_EXTREME + habitability_distribution = HABITABILITY_BAD has_trees = FALSE flora_diversity = 3 fauna_types = list(/mob/living/simple_animal/thinbug, /mob/living/simple_animal/hostile/retaliate/beast/shantak/lava, /mob/living/simple_animal/hostile/retaliate/beast/charbaby) megafauna_types = list(/mob/living/simple_animal/hostile/drake) /obj/effect/overmap/visitable/sector/exoplanet/volcanic/get_atmosphere_color() - var/air_color = ..() - return MixColors(COLOR_GRAY20, air_color) + return COLOR_GRAY20 /obj/effect/overmap/visitable/sector/exoplanet/volcanic/generate_atmosphere() ..() - var/datum/species/H = all_species[SPECIES_HUMAN] - var/xtreme = H.heat_level_2 + (rand(1,3) * H.heat_level_2) - var/generator/new_temp = generator("num", H.heat_level_2, xtreme, UNIFORM_RAND) - atmosphere.temperature = new_temp.Rand() - atmosphere.update_values() + if(atmosphere) + atmosphere.temperature = T20C + rand(220, 800) + atmosphere.update_values() /obj/effect/overmap/visitable/sector/exoplanet/volcanic/adapt_seed(datum/seed/S) ..() diff --git a/code/modules/xgm/xgm_gas_mixture.dm b/code/modules/xgm/xgm_gas_mixture.dm index f46ea732aafd5..fc68597d09e39 100644 --- a/code/modules/xgm/xgm_gas_mixture.dm +++ b/code/modules/xgm/xgm_gas_mixture.dm @@ -145,27 +145,15 @@ /datum/gas_mixture/proc/add_thermal_energy(thermal_energy) if (total_moles == 0) - return FALSE + return 0 - var/thermal_mod = 1 var/heat_capacity = heat_capacity() if (thermal_energy < 0) if (temperature < TCMB) - return FALSE - var/thermal_energy_limit = -(temperature - TCMB) * heat_capacity //ensure temperature does not go below TCMB + return 0 + var/thermal_energy_limit = -(temperature - TCMB)*heat_capacity //ensure temperature does not go below TCMB thermal_energy = max( thermal_energy, thermal_energy_limit ) //thermal_energy and thermal_energy_limit are negative here. - else - switch (temperature) - if (500 to 1000) - thermal_mod = 0.8 - if (1000 to 1500) - thermal_mod = 0.6 - if (1500 to 1750) - thermal_mod = 0.4 - else - thermal_mod = 0.2 - - temperature += thermal_energy / heat_capacity * thermal_mod + temperature += thermal_energy/heat_capacity return thermal_energy //Returns the thermal energy change required to get to a new temperature From 94a85e07792ebfb8c4b24288b2acfc336b446dcc Mon Sep 17 00:00:00 2001 From: MuckerMayhem <1161516+MuckerMayhem@users.noreply.github.com> Date: Fri, 15 Sep 2023 01:37:30 +0300 Subject: [PATCH 094/158] [MIRROR] Made spawning chemicals easier --- code/modules/reagents/dispenser/cartridge_spawn.dm | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/code/modules/reagents/dispenser/cartridge_spawn.dm b/code/modules/reagents/dispenser/cartridge_spawn.dm index ca97145f1317e..4cf5ac8f830d3 100644 --- a/code/modules/reagents/dispenser/cartridge_spawn.dm +++ b/code/modules/reagents/dispenser/cartridge_spawn.dm @@ -1,7 +1,10 @@ -/client/proc/spawn_chemdisp_cartridge(size in list("small", "medium", "large"), reagent in subtypesof(/datum/reagent)) +/client/proc/spawn_chemdisp_cartridge(size in list("small", "medium", "large")) set name = "Spawn Chemical Dispenser Cartridge" set category = "Admin" + var/reagent + reagent = select_subpath(/datum/reagent, /datum/reagent) + var/obj/item/reagent_containers/chem_disp_cartridge/C switch(size) if("small") C = new /obj/item/reagent_containers/chem_disp_cartridge/small(usr.loc) From 5f7ef8e5bd1b2ab124268299a965f6212191f73e Mon Sep 17 00:00:00 2001 From: SierraKomodo <11140088+SierraKomodo@users.noreply.github.com> Date: Fri, 15 Sep 2023 01:39:11 +0300 Subject: [PATCH 095/158] [MIRROR] Sort and label options in `run-unit-tests` --- code/unit_tests/unit_test.dm | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/code/unit_tests/unit_test.dm b/code/unit_tests/unit_test.dm index 0929421ef4b7b..43e3b1831d6e3 100644 --- a/code/unit_tests/unit_test.dm +++ b/code/unit_tests/unit_test.dm @@ -158,19 +158,26 @@ var/global/ascii_reset = "[ascii_esc]\[0m" else log_unit_test("[ascii_red]**** \[[failed_unit_tests]\\[total_unit_tests]\] Unit Tests Failed [skipped_message]****[ascii_reset]") -/datum/admins/proc/run_unit_test(datum/unit_test/unit_test_type in get_test_datums()) +/datum/admins/proc/run_unit_test() set name = "Run Unit Test" set desc = "Runs the selected unit test - Remember to enable Debug Log Messages" set category = "Debug" - if(!unit_test_type) + if(!check_rights(R_DEBUG)) return - if(!check_rights(R_DEBUG)) + var/list/options = list() + var/list/test_datums = get_test_datums() + for (var/datum/unit_test/unit_test_type as anything in test_datums) + options["[initial(unit_test_type.name)]"] = unit_test_type + options = sortAssoc(options) + var/datum/unit_test/selected_unit_test_type = input(usr, "Runs the selected unit test - Remember to enable Debug Log Messages", "Run Unit Test", null) as null|anything in options + if (!selected_unit_test_type || !options["[selected_unit_test_type]"]) return + selected_unit_test_type = options["[selected_unit_test_type]"] - log_and_message_admins("has started the unit test '[initial(unit_test_type.name)]'") - var/datum/unit_test/test = new unit_test_type + log_and_message_admins("has started the unit test '[initial(selected_unit_test_type.name)]'") + var/datum/unit_test/test = new selected_unit_test_type var/end_unit_tests = world.time + MAX_UNIT_TEST_RUN_TIME do_unit_test(test, end_unit_tests, FALSE) if(test.async) From c459b7a04fc308691533d2c0636211162cb2e25e Mon Sep 17 00:00:00 2001 From: Sierra Helper <125094432+SierraHelper@users.noreply.github.com> Date: Fri, 15 Sep 2023 01:47:14 +0300 Subject: [PATCH 096/158] =?UTF-8?q?=D0=A7=D0=B5=D0=B9=D0=BD=D0=B4=D0=B6?= =?UTF-8?q?=D0=BB=D0=BE=D0=B3=20=D0=B4=D0=BB=D1=8F=20PR=20#1023=20[ci=20sk?= =?UTF-8?q?ip]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- html/changelogs/AutoChangeLog-sierra-pr-1023.yml | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-sierra-pr-1023.yml diff --git a/html/changelogs/AutoChangeLog-sierra-pr-1023.yml b/html/changelogs/AutoChangeLog-sierra-pr-1023.yml new file mode 100644 index 0000000000000..d700fd28216af --- /dev/null +++ b/html/changelogs/AutoChangeLog-sierra-pr-1023.yml @@ -0,0 +1,5 @@ +author: Mucker +delete-after: true +changes: + - tweak: The 'Spawn Chemical Dispenser Cartridge' verb now takes an input for the + reagent, instead of a giant list. From d4930eb0ada6142b56159b2cf13c88be9f14ccbf Mon Sep 17 00:00:00 2001 From: Sierra Helper <125094432+SierraHelper@users.noreply.github.com> Date: Fri, 15 Sep 2023 01:47:26 +0300 Subject: [PATCH 097/158] =?UTF-8?q?=D0=A7=D0=B5=D0=B9=D0=BD=D0=B4=D0=B6?= =?UTF-8?q?=D0=BB=D0=BE=D0=B3=20=D0=B4=D0=BB=D1=8F=20PR=20#1025=20[ci=20sk?= =?UTF-8?q?ip]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- html/changelogs/AutoChangeLog-sierra-pr-1025.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-sierra-pr-1025.yml diff --git a/html/changelogs/AutoChangeLog-sierra-pr-1025.yml b/html/changelogs/AutoChangeLog-sierra-pr-1025.yml new file mode 100644 index 0000000000000..ca8da1c63a59d --- /dev/null +++ b/html/changelogs/AutoChangeLog-sierra-pr-1025.yml @@ -0,0 +1,4 @@ +author: SierraKomodo +delete-after: true +changes: + - admin: run-unit-tests now displays the test names, and is sorted alphabetically. From a7aeb5792e995339c9c90d1dcc2a705fbfbb78dd Mon Sep 17 00:00:00 2001 From: SierraKomodo <11140088+SierraKomodo@users.noreply.github.com> Date: Fri, 15 Sep 2023 01:38:25 +0300 Subject: [PATCH 098/158] [MIRROR] Make station wires test aware of breaker boxes --- code/unit_tests/map_tests.dm | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/code/unit_tests/map_tests.dm b/code/unit_tests/map_tests.dm index f087c372d559f..bc1516c428b7c 100644 --- a/code/unit_tests/map_tests.dm +++ b/code/unit_tests/map_tests.dm @@ -663,10 +663,13 @@ target_turf = get_step(C, dir) var/connected = FALSE - for(var/obj/structure/cable/revC in target_turf) - if(revC.d1 == rev_dir || revC.d2 == rev_dir) - connected = TRUE - break + if (dir != UP & dir != DOWN && (locate(/obj/machinery/power/breakerbox) in target_turf)) + connected = TRUE + else + for(var/obj/structure/cable/revC in target_turf) + if(revC.d1 == rev_dir || revC.d2 == rev_dir) + connected = TRUE + break if(!connected) log_bad("Disconnected wire: [dir2text(dir)] - [log_info_line(C)]") From 47f63206423e428fc573fa34ec4e39b4a45825d7 Mon Sep 17 00:00:00 2001 From: SierraKomodo <11140088+SierraKomodo@users.noreply.github.com> Date: Fri, 15 Sep 2023 01:35:13 +0300 Subject: [PATCH 099/158] [MIRROR] Self destruct tile fixes --- code/game/machinery/nuclear_bomb.dm | 32 ++++++++++---------- code/game/turfs/flooring/flooring.dm | 5 ++- code/game/turfs/flooring/flooring_premade.dm | 11 ++++++- maps/torch/torch5_deck1.dmm | 14 ++++----- 4 files changed, 37 insertions(+), 25 deletions(-) diff --git a/code/game/machinery/nuclear_bomb.dm b/code/game/machinery/nuclear_bomb.dm index 850797ee82bbe..4238fcc546482 100644 --- a/code/game/machinery/nuclear_bomb.dm +++ b/code/game/machinery/nuclear_bomb.dm @@ -451,7 +451,6 @@ var/global/bomb_set deployable = 1 extended = 1 - var/list/flash_tiles = list() var/list/inserters = list() var/last_turf_state @@ -463,14 +462,17 @@ var/global/bomb_set maxTime = 900 /obj/machinery/nuclearbomb/station/Initialize() - . = ..() + ..() verbs -= /obj/machinery/nuclearbomb/verb/toggle_deployable - for(var/turf/simulated/floor/T in get_area(src)) - if(istype(T.flooring, /singleton/flooring/reinforced/circuit/red)) - flash_tiles += T - update_icon() for(var/obj/machinery/self_destruct/ch in get_area(src)) inserters += ch + return INITIALIZE_HINT_LATELOAD + + +/obj/machinery/nuclearbomb/station/LateInitialize(mapload, ...) + // Relies on turfs to have their `flooring` var set, which is done during init. + queue_icon_update() + /obj/machinery/nuclearbomb/station/attackby(obj/item/O as obj, mob/user as mob) if(isWrench(O)) @@ -498,10 +500,6 @@ var/global/bomb_set return ..() -/obj/machinery/nuclearbomb/station/Destroy() - flash_tiles.Cut() - return ..() - /obj/machinery/nuclearbomb/station/Process() ..() if(timeleft > 0 && GAME_STATE < RUNLEVEL_POSTGAME) @@ -526,27 +524,29 @@ var/global/bomb_set /obj/machinery/nuclearbomb/station/on_update_icon() var/target_icon_state + var/turf_color = COLOR_BLACK if(lighthack) target_icon_state = "rcircuit_off" icon_state = "idle" else if(timing == -1) target_icon_state = "rcircuitanim" icon_state = "exploding" + turf_color = COLOR_RED else if(timing) target_icon_state = "rcircuitanim" icon_state = "urgent" + turf_color = COLOR_RED else if(!safety) target_icon_state = "rcircuit" icon_state = "greenlight" + turf_color = COLOR_RED else target_icon_state = "rcircuit_off" icon_state = "idle" if(!last_turf_state || target_icon_state != last_turf_state) - for(var/thing in flash_tiles) - var/turf/simulated/floor/T = thing - if(!istype(T.flooring, /singleton/flooring/reinforced/circuit/red)) - flash_tiles -= T - continue - T.icon_state = target_icon_state + for (var/turf/simulated/floor/floor in get_area(src)) + if (istype(floor.flooring, /singleton/flooring/reinforced/circuit/selfdestruct)) + floor.icon_state = target_icon_state + floor.set_light(l_color = turf_color) last_turf_state = target_icon_state diff --git a/code/game/turfs/flooring/flooring.dm b/code/game/turfs/flooring/flooring.dm index 3bc636defd54b..2c2cb7f19dd52 100644 --- a/code/game/turfs/flooring/flooring.dm +++ b/code/game/turfs/flooring/flooring.dm @@ -307,8 +307,11 @@ /singleton/flooring/reinforced/circuit/red icon_base = "rcircuit" + +/singleton/flooring/reinforced/circuit/selfdestruct + icon_base = "rcircuit_off" flags = TURF_ACID_IMMUNE - can_paint = 0 + can_paint = FALSE /singleton/flooring/reinforced/cult name = "engraved floor" diff --git a/code/game/turfs/flooring/flooring_premade.dm b/code/game/turfs/flooring/flooring_premade.dm index 6d6d040007528..2c8ce0cf64573 100644 --- a/code/game/turfs/flooring/flooring_premade.dm +++ b/code/game/turfs/flooring/flooring_premade.dm @@ -23,7 +23,7 @@ light_max_bright = 3 light_color = COLOR_GREEN -/turf/simulated/floor/blackgrid +/turf/simulated/floor/redgrid name = "mainframe floor" icon = 'icons/turf/flooring/circuit.dmi' icon_state = "rcircuit" @@ -32,6 +32,15 @@ light_max_bright = 2 light_color = COLOR_RED +/turf/simulated/floor/selfestructgrid + name = "self-destruct mainframe floor" + icon = 'icons/turf/flooring/circuit.dmi' + icon_state = "rcircuit_off" + initial_flooring = /singleton/flooring/reinforced/circuit/selfdestruct + light_outer_range = 2 + light_max_bright = 2 + light_color = COLOR_BLACK + /turf/simulated/floor/wood name = "wooden floor" icon = 'icons/turf/flooring/wood.dmi' diff --git a/maps/torch/torch5_deck1.dmm b/maps/torch/torch5_deck1.dmm index 144ea3a3da164..6d53de302444a 100644 --- a/maps/torch/torch5_deck1.dmm +++ b/maps/torch/torch5_deck1.dmm @@ -22423,7 +22423,7 @@ /obj/machinery/keycard_auth/torch{ pixel_x = -28 }, -/turf/simulated/floor/blackgrid, +/turf/simulated/floor/selfestructgrid, /area/security/nuke_storage) "mGj" = ( /obj/machinery/atmospherics/pipe/simple/visible/cyan{ @@ -22436,7 +22436,7 @@ dir = 1; icon_state = "warning" }, -/turf/simulated/floor/blackgrid, +/turf/simulated/floor/selfestructgrid, /area/security/nuke_storage) "mHr" = ( /obj/machinery/atmospherics/pipe/simple/visible/cyan{ @@ -22555,7 +22555,7 @@ dir = 4 }, /obj/random_multi/single_item/poppy, -/turf/simulated/floor/blackgrid, +/turf/simulated/floor/selfestructgrid, /area/security/nuke_storage) "mOb" = ( /obj/effect/floor_decal/industrial/warning{ @@ -22635,7 +22635,7 @@ /obj/machinery/nuclearbomb/station{ name = "ship self-destruct terminal" }, -/turf/simulated/floor/blackgrid, +/turf/simulated/floor/selfestructgrid, /area/security/nuke_storage) "mVW" = ( /obj/effect/wallframe_spawn/reinforced/polarized{ @@ -22721,7 +22721,7 @@ /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 }, -/turf/simulated/floor/blackgrid, +/turf/simulated/floor/selfestructgrid, /area/security/nuke_storage) "nfb" = ( /obj/effect/floor_decal/industrial/warning{ @@ -22923,11 +22923,11 @@ /obj/machinery/keycard_auth/torch{ pixel_x = -28 }, -/turf/simulated/floor/blackgrid, +/turf/simulated/floor/selfestructgrid, /area/security/nuke_storage) "nob" = ( /obj/effect/floor_decal/industrial/warning, -/turf/simulated/floor/blackgrid, +/turf/simulated/floor/selfestructgrid, /area/security/nuke_storage) "npb" = ( /obj/structure/table/standard, From a764c2ad1029f95bbacf0963563a7364461ca70f Mon Sep 17 00:00:00 2001 From: SuhEugene <32931701+SuhEugene@users.noreply.github.com> Date: Fri, 15 Sep 2023 01:45:49 +0300 Subject: [PATCH 100/158] Fix self-desctruct tiles on sierra --- maps/sierra/z1-3_sierra.dmm | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/maps/sierra/z1-3_sierra.dmm b/maps/sierra/z1-3_sierra.dmm index 56db781498f23..7545b84279c9e 100644 --- a/maps/sierra/z1-3_sierra.dmm +++ b/maps/sierra/z1-3_sierra.dmm @@ -2388,7 +2388,7 @@ "glj" = (/obj/machinery/disposal,/obj/machinery/requests_console{announcementConsole = 1; department = "Chief of Security's Desk"; departmentType = 5; name = "Chief of Security RC"; pixel_x = -32},/obj/structure/disposalpipe/trunk{dir = 4},/obj/machinery/light{dir = 1},/obj/effect/floor_decal/borderfloorblack{dir = 9},/obj/effect/floor_decal/corner/red/border{dir = 9},/turf/simulated/floor/tiled/dark,/area/crew_quarters/heads/office/hos) "gll" = (/obj/machinery/door/firedoor,/obj/machinery/navbeacon/sierra/SD_forehallway2,/obj/effect/floor_decal/industrial/hatch/yellow,/turf/simulated/floor/tiled/monotile,/area/hallway/primary/seconddeck/center) "glD" = (/turf/simulated/wall/prepainted,/area/hallway/primary/thirddeck/fore) -"glM" = (/obj/machinery/keycard_auth/sierra{pixel_y = -21},/obj/effect/floor_decal/borderfloor{dir = 4},/turf/simulated/floor/blackgrid,/area/security/nuke_storage) +"glM" = (/obj/machinery/keycard_auth/sierra{pixel_y = -21},/obj/effect/floor_decal/borderfloor{dir = 4},/turf/simulated/floor/selfestructgrid,/area/security/nuke_storage) "glQ" = (/obj/machinery/alarm{dir = 4; pixel_x = -24},/obj/effect/floor_decal/borderfloor{dir = 8},/obj/effect/floor_decal/corner/purple/border{dir = 8},/turf/simulated/floor/tiled,/area/quartermaster/exploration) "glU" = (/obj/effect/floor_decal/borderfloorwhite{dir = 4},/turf/simulated/floor/tiled/white,/area/shuttle/petrov/gas) "gmb" = (/obj/machinery/atmospherics/pipe/simple/hidden,/obj/effect/floor_decal/borderfloorblack{dir = 4},/obj/effect/floor_decal/corner/lime/border{dir = 4},/obj/machinery/navbeacon/sierra/TD_port,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/tiled/dark,/area/hallway/primary/thirddeck/center) @@ -3302,7 +3302,7 @@ "iHt" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/effect/floor_decal/techfloor,/obj/effect/floor_decal/corner_techfloor_grid{dir = 4},/obj/effect/floor_decal/techfloor/orange/corner{dir = 4},/obj/machinery/power/apc/high{name = "south bump"; pixel_y = -24},/obj/structure/cable/green{d2 = 4; icon_state = "0-4"},/turf/simulated/floor/tiled/techfloor,/area/crew_quarters/sleep/cryo/upper) "iHw" = (/obj/effect/floor_decal/techfloor{dir = 8},/turf/simulated/floor/tiled/techfloor,/area/engineering/hardstorage) "iHE" = (/obj/machinery/door/blast/regular/open{dir = 4; id_tag = "security_lockdown"; name = "Security Department Lockdown"},/obj/machinery/door/blast/shutters/open{dir = 4; id_tag = "interrogation_shutters"; name = "Interrogation Shutters"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable/green{d2 = 2; icon_state = "0-2"},/obj/effect/wallframe_spawn/reinforced,/turf/simulated/floor/plating,/area/security/sierra/interrogation) -"iHX" = (/obj/effect/floor_decal/borderfloor{dir = 4},/turf/simulated/floor/blackgrid,/area/security/nuke_storage) +"iHX" = (/obj/effect/floor_decal/borderfloor{dir = 4},/turf/simulated/floor/selfestructgrid,/area/security/nuke_storage) "iIc" = (/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/door/firedoor,/obj/machinery/door/airlock/hatch/maintenance,/obj/effect/floor_decal/industrial/hatch/yellow,/turf/simulated/floor/tiled/techmaint,/area/maintenance/compactor) "iIm" = (/obj/structure/bed/chair/wood/walnut{dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 5},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/tiled/dark,/area/chapel/office) "iIC" = (/obj/structure/catwalk,/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/meter,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/plating,/area/maintenance/firstdeck/centralstarboard) @@ -3716,7 +3716,7 @@ "jHM" = (/obj/structure/sign/nanotrasen,/turf/simulated/wall/r_wall/hull,/area/hallway/primary/thirddeck/fore) "jHO" = (/obj/machinery/meter,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plating,/area/shuttle/petrov/ship) "jHP" = (/obj/machinery/r_n_d/server/core,/obj/machinery/atmospherics/unary/vent_scrubber/on,/turf/simulated/floor/bluegrid,/area/rnd/servers) -"jHQ" = (/obj/item/modular_computer/telescreen/preset/generic{pixel_y = 24},/obj/effect/floor_decal/borderfloor{dir = 8},/turf/simulated/floor/blackgrid,/area/security/nuke_storage) +"jHQ" = (/obj/item/modular_computer/telescreen/preset/generic{pixel_y = 24},/obj/effect/floor_decal/borderfloor{dir = 8},/turf/simulated/floor/selfestructgrid,/area/security/nuke_storage) "jHY" = (/obj/effect/floor_decal/borderfloor{dir = 1},/obj/effect/floor_decal/corner/brown/border{dir = 1},/obj/effect/floor_decal/borderfloor/corner2{dir = 4},/obj/effect/floor_decal/corner/brown/bordercorner2{dir = 4},/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/aft) "jIm" = (/obj/machinery/door/airlock/research{dir = 4; name = "Robotics Laboratory"; req_access = newlist()},/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/effect/floor_decal/industrial/hatch/yellow,/obj/machinery/door/firedoor{dir = 4},/turf/simulated/floor/tiled/white,/area/rnd/research) "jIo" = (/obj/effect/floor_decal/borderfloor{dir = 4},/obj/machinery/light{dir = 4},/obj/effect/floor_decal/corner/lime/border{dir = 4},/turf/simulated/floor/tiled,/area/hallway/primary/seconddeck/fore) @@ -3952,7 +3952,7 @@ "knc" = (/obj/structure/closet/crate/freezer/rations,/obj/effect/floor_decal/industrial/outline/yellow,/turf/simulated/floor/tiled/steel_ridged,/area/shuttle/escape_pod/escape_pod5/station) "knk" = (/obj/machinery/atmospherics/pipe/simple/hidden/green{dir = 4},/obj/structure/sign/warning/compressed_gas{dir = 1; pixel_y = -32},/turf/simulated/floor/reinforced,/area/thruster/d1starboard) "knG" = (/obj/machinery/door/airlock/engineering{name = "Shield Generator"; req_access = newlist()},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/tiled/techfloor,/area/shield/seconddeck) -"knH" = (/obj/effect/floor_decal/borderfloor{dir = 8},/turf/simulated/floor/blackgrid,/area/security/nuke_storage) +"knH" = (/obj/effect/floor_decal/borderfloor{dir = 8},/turf/simulated/floor/selfestructgrid,/area/security/nuke_storage) "knK" = (/obj/structure/catwalk,/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plating,/area/maintenance/firstdeck/centralport) "knM" = (/obj/structure/closet/secure_closet/quartermaster_sierra,/obj/item/device/eftpos{eftpos_name = "Quartermaster EFTPOS scanner"},/obj/effect/floor_decal/borderfloor,/obj/effect/floor_decal/corner/grey/border,/turf/simulated/floor/tiled,/area/quartermaster/deckofficer) "knN" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4},/obj/machinery/door/airlock/external/bolted/cycling{dir = 4; frequency = 1380; id_tag = "nuke_shuttle_dock_airlock_inner"; name = "Docking Port Airlock"},/obj/effect/floor_decal/techfloor{dir = 1},/obj/effect/floor_decal/techfloor,/turf/simulated/floor/tiled/techfloor/grid,/area/hallway/primary/thirddeck/fore) @@ -4308,7 +4308,7 @@ "lhC" = (/obj/effect/floor_decal/borderfloor{dir = 8},/obj/effect/floor_decal/corner/lime/border{dir = 8},/obj/effect/floor_decal/borderfloor/corner2{dir = 10},/obj/effect/floor_decal/corner/lime/bordercorner2{dir = 10},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/tiled,/area/hallway/primary/seconddeck/center) "lhK" = (/obj/structure/catwalk,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/power/apc{dir = 1; name = "north bump"; pixel_y = 24},/obj/structure/cable/green{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/plating,/area/maintenance/thirddeck/port) "lhN" = (/obj/machinery/door/firedoor,/obj/machinery/door/blast/shutters{dir = 2; id_tag = "firingspace"; name = "Firing Range Shields"},/obj/machinery/door/blast/regular/open{id_tag = "security_lockdown"; name = "Security Department Lockdown"},/obj/structure/cable/green,/obj/structure/cable/green{d2 = 4; icon_state = "0-4"},/obj/structure/cable/green{d2 = 8; icon_state = "0-8"},/obj/effect/wallframe_spawn/reinforced/polarized/full,/turf/simulated/floor/plating,/area/security/range) -"lhO" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/blackgrid,/area/security/nuke_storage) +"lhO" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/selfestructgrid,/area/security/nuke_storage) "lhV" = (/obj/structure/disposalpipe/junction,/obj/effect/floor_decal/borderfloorwhite/corner{dir = 8},/obj/effect/floor_decal/corner/paleblue/bordercorner{dir = 8},/obj/effect/floor_decal/steeldecal/steel_decals6{dir = 5},/turf/simulated/floor/tiled/white,/area/hallway/infirmary) "lih" = (/obj/effect/floor_decal/techfloor{dir = 8},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers,/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 1},/obj/machinery/door/window/phoronreinforced{dir = 8},/turf/simulated/floor/tiled/techfloor/grid,/area/rnd/servers) "lij" = (/obj/machinery/cryopod{dir = 4},/obj/item/device/radio/intercom{dir = 4; pixel_x = -24},/turf/simulated/floor/tiled/steel_ridged,/area/shuttle/escape_pod/escape_pod2/station) @@ -6218,7 +6218,7 @@ "qfu" = (/obj/structure/catwalk,/obj/structure/sign/warning/high_voltage{pixel_y = 32},/turf/simulated/floor/plating,/area/maintenance/seconddeck/foreport) "qfw" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 4},/obj/machinery/light{dir = 8},/obj/effect/floor_decal/techfloor{dir = 8},/turf/simulated/floor/tiled/techfloor,/area/teleporter/seconddeck) "qfz" = (/obj/machinery/status_display{pixel_x = 32},/obj/effect/floor_decal/borderfloor{dir = 4},/obj/effect/floor_decal/corner/lightgrey/border{dir = 4},/obj/structure/closet/emcloset,/turf/simulated/floor/tiled,/area/hallway/primary/firstdeck/fore_stairwell) -"qgt" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/blackgrid,/area/security/nuke_storage) +"qgt" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/selfestructgrid,/area/security/nuke_storage) "qgM" = (/obj/structure/catwalk,/obj/machinery/alarm{pixel_y = 24},/turf/simulated/floor/plating,/area/maintenance/seconddeck/foreport) "qgS" = (/obj/machinery/camera/network/engineering{c_tag = "Bluespace Drive"; dir = 4},/obj/machinery/computer/modular/preset/engineering{dir = 4},/obj/machinery/status_light{alert_temperature = 340; id_tag = "BSDrive"; name = "Bluespace Drive status indicator"; pixel_x = -24},/obj/effect/floor_decal/techfloor{dir = 8},/turf/simulated/floor/tiled/techfloor,/area/engineering/bluespace) "qgT" = (/obj/effect/floor_decal/borderfloorwhite{dir = 1},/obj/effect/floor_decal/corner/beige/border{dir = 1},/obj/structure/hygiene/sink{dir = 1; pixel_y = 27},/turf/simulated/floor/tiled/white,/area/medical/chemistry) @@ -6386,7 +6386,7 @@ "qCU" = (/obj/structure/railing/mapped{dir = 1},/obj/structure/table/rack,/obj/effect/floor_decal/industrial/outline/grey,/obj/random/action_figure,/obj/random/maintenance,/turf/simulated/floor/tiled/techfloor,/area/maintenance/firstdeck/aftport) "qCX" = (/obj/machinery/door/window/southleft{name = "HoP's Desk"; req_access = newlist()},/obj/machinery/door/firedoor,/obj/machinery/door/blast/shutters{density = 0; dir = 2; icon_state = "shutter0"; id_tag = "hop_shutters"; name = "HoP Desk's Shutters"; opacity = 0},/obj/structure/wall_frame/standard,/obj/structure/table/wallf,/turf/simulated/floor/plating,/area/crew_quarters/heads/office/hop) "qCZ" = (/obj/structure/table/steel,/obj/item/paper_bin,/obj/item/pen,/obj/item/device/eftpos{eftpos_name = "Warden's EFTPOS scanner"},/obj/machinery/button/blast_door{dir = 8; id_tag = "security_sergeant_shutters"; name = "Desk Shutters"; pixel_x = 23; req_access = list("ACCESS_WARDEN")},/obj/machinery/button/alternate/door{desc = "A remote control-switch for the office door."; id_tag = "security_entry_airlock_exit"; name = "Security Exit Airlock"; pixel_x = -5; pixel_y = 9; req_access = list("ACCESS_WARDEN")},/obj/machinery/button/alternate/door{desc = "A remote control-switch for the office door."; id_tag = "security_entry_airlock_enter"; name = "Security Entry Airlock"; pixel_x = 5; pixel_y = 9; req_access = list("ACCESS_WARDEN")},/obj/effect/floor_decal/borderfloorblack/corner2{dir = 6},/obj/effect/floor_decal/borderfloorblack/corner2{dir = 5},/obj/effect/floor_decal/corner/red/bordercorner2{dir = 5},/obj/effect/floor_decal/corner/red/bordercorner2{dir = 6},/turf/simulated/floor/tiled/dark,/area/security/sierra/sergeant) -"qDa" = (/obj/item/modular_computer/telescreen/preset/generic{pixel_y = 24},/obj/effect/floor_decal/borderfloor{dir = 4},/turf/simulated/floor/blackgrid,/area/security/nuke_storage) +"qDa" = (/obj/item/modular_computer/telescreen/preset/generic{pixel_y = 24},/obj/effect/floor_decal/borderfloor{dir = 4},/turf/simulated/floor/selfestructgrid,/area/security/nuke_storage) "qDd" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 6},/obj/machinery/atmospherics/pipe/manifold4w/hidden/scrubbers,/obj/machinery/atmospherics/pipe/manifold4w/hidden/supply,/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/navbeacon/sierra/TD_fore4,/obj/effect/floor_decal/borderfloor{dir = 4},/obj/effect/floor_decal/borderfloor/corner2{dir = 6},/obj/effect/floor_decal/borderfloor/corner2{dir = 5},/obj/effect/floor_decal/corner/red/bordercorner2{dir = 5},/obj/effect/floor_decal/corner/red/bordercorner2{dir = 6},/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/fore) "qDk" = (/obj/machinery/computer/prisoner{dir = 4},/obj/effect/floor_decal/corner/red/mono,/obj/effect/floor_decal/spline/fancy/black{dir = 8},/turf/simulated/floor/tiled/dark/monotile,/area/bridge/nano) "qDl" = (/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable/green{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 1},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 6},/turf/simulated/floor/tiled,/area/crew_quarters/heads/office/ce) @@ -7016,7 +7016,7 @@ "sgw" = (/obj/structure/closet/toolcloset,/obj/item/storage/belt,/obj/item/stack/cable_coil{pixel_x = 3; pixel_y = -7},/obj/item/device/multitool,/obj/structure/extinguisher_cabinet{dir = 8; pixel_x = 24},/turf/simulated/floor/tiled/techfloor,/area/tcommsat/computer) "sgU" = (/obj/machinery/radiocarbon_spectrometer,/obj/effect/floor_decal/borderfloorwhite,/obj/effect/floor_decal/industrial/outline/yellow,/turf/simulated/floor/tiled/white/monotile,/area/shuttle/petrov/scan) "sgY" = (/obj/structure/iv_stand,/obj/machinery/power/apc{dir = 1; name = "north bump"; pixel_y = 24},/obj/effect/floor_decal/techfloor{dir = 6},/obj/effect/floor_decal/techfloor/corner{dir = 1},/obj/effect/floor_decal/industrial/outline/yellow,/obj/structure/cable/cyan{d2 = 2; icon_state = "0-2"},/turf/simulated/floor/tiled/techfloor/grid,/area/medical/backstorage) -"shb" = (/obj/machinery/keycard_auth/sierra{pixel_y = -21},/obj/effect/floor_decal/borderfloor{dir = 8},/turf/simulated/floor/blackgrid,/area/security/nuke_storage) +"shb" = (/obj/machinery/keycard_auth/sierra{pixel_y = -21},/obj/effect/floor_decal/borderfloor{dir = 8},/turf/simulated/floor/selfestructgrid,/area/security/nuke_storage) "shx" = (/obj/machinery/computer/guestpass{pixel_y = 29},/obj/effect/floor_decal/borderfloor{dir = 1},/obj/effect/floor_decal/corner/lime/border{dir = 1},/obj/effect/floor_decal/borderfloor/corner2{dir = 1},/obj/effect/floor_decal/corner/lime/bordercorner2{dir = 1},/turf/simulated/floor/tiled,/area/hallway/primary/seconddeck/center) "shG" = (/obj/machinery/button/blast_door{dir = 4; id_tag = "infimary_hall_lockdown"; name = "Infirmary Entrance Lockdown Control"; pixel_x = -24; pixel_y = 6; req_access = list("ACCESS_MEDICAL")},/obj/machinery/button/blast_door{dir = 4; id_tag = "infimary_staging_lockdown"; name = "Infimary Staging Lockdown"; pixel_x = -32; pixel_y = 6; req_access = list("ACCESS_MEDICAL")},/obj/machinery/button/blast_door{dir = 4; id_tag = "infimary_window_lockdown"; name = "Infimary window lockdown"; pixel_x = -24; pixel_y = -6; req_access = list("ACCESS_MEDICAL")},/obj/effect/floor_decal/borderfloorwhite{dir = 8},/obj/effect/floor_decal/corner/paleblue/border{dir = 8},/obj/machinery/button/blast_door{dir = 4; id_tag = "infimary_storage_lockdown"; name = "Infimary Storage Lockdown"; pixel_x = -32; pixel_y = -6; req_access = list("ACCESS_MEDICAL")},/mob/living/simple_animal/passive/cat/fluff/Runtime,/turf/simulated/floor/tiled/white,/area/crew_quarters/heads/office/cmo) "shJ" = (/obj/effect/wallframe_spawn/reinforced/no_grille,/obj/machinery/door/firedoor,/obj/machinery/door/blast/regular/open{dir = 4; id_tag = "EngineBlast"; name = "Engine Monitoring Room Blast Doors"},/turf/simulated/floor/plating,/area/engineering/engine_monitoring) From 687678fa7c5b241f813bf0d266037316ae314f68 Mon Sep 17 00:00:00 2001 From: Sierra Helper <125094432+SierraHelper@users.noreply.github.com> Date: Fri, 15 Sep 2023 01:54:29 +0300 Subject: [PATCH 101/158] =?UTF-8?q?=D0=A7=D0=B5=D0=B9=D0=BD=D0=B4=D0=B6?= =?UTF-8?q?=D0=BB=D0=BE=D0=B3=20=D0=B4=D0=BB=D1=8F=20PR=20#1022=20[ci=20sk?= =?UTF-8?q?ip]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- html/changelogs/AutoChangeLog-sierra-pr-1022.yml | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-sierra-pr-1022.yml diff --git a/html/changelogs/AutoChangeLog-sierra-pr-1022.yml b/html/changelogs/AutoChangeLog-sierra-pr-1022.yml new file mode 100644 index 0000000000000..4e5ad228617df --- /dev/null +++ b/html/changelogs/AutoChangeLog-sierra-pr-1022.yml @@ -0,0 +1,7 @@ +author: SierraKomodo +delete-after: true +changes: + - bugfix: Circuitry in the self-destruct room now starts the round with the correct + unlit state. + - bugfix: Circuitry in the self-destruct room now properly update their lighting + color. From cd8053050a8adecc19309bb66283e169a5f00126 Mon Sep 17 00:00:00 2001 From: Sierra Helper <125094432+SierraHelper@users.noreply.github.com> Date: Fri, 15 Sep 2023 01:17:08 +0000 Subject: [PATCH 102/158] =?UTF-8?q?=D0=90=D0=B2=D1=82=D0=BE=D0=BC=D0=B0?= =?UTF-8?q?=D1=82=D0=B8=D1=87=D0=B5=D1=81=D0=BA=D0=B0=D1=8F=20=D0=BA=D0=BE?= =?UTF-8?q?=D0=BC=D0=BF=D0=B8=D0=BB=D1=8F=D1=86=D0=B8=D1=8F=20=D1=87=D0=B5?= =?UTF-8?q?=D0=B9=D0=BD=D0=B4=D0=B6=D0=BB=D0=BE=D0=B3=D0=BE=D0=B2=20[ci=20?= =?UTF-8?q?skip]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- html/changelog.html | 72 +++++++++++-------- html/changelogs/.all_changelog.yml | 42 +++++++++++ .../AutoChangeLog-sierra-pr-1002.yml | 4 -- .../AutoChangeLog-sierra-pr-1003.yml | 4 -- .../AutoChangeLog-sierra-pr-1006.yml | 5 -- .../AutoChangeLog-sierra-pr-1007.yml | 4 -- .../AutoChangeLog-sierra-pr-1008.yml | 4 -- .../AutoChangeLog-sierra-pr-1009.yml | 4 -- .../AutoChangeLog-sierra-pr-1010.yml | 4 -- .../AutoChangeLog-sierra-pr-1011.yml | 6 -- .../AutoChangeLog-sierra-pr-1012.yml | 6 -- .../AutoChangeLog-sierra-pr-1013.yml | 5 -- .../AutoChangeLog-sierra-pr-1014.yml | 5 -- .../AutoChangeLog-sierra-pr-1016.yml | 5 -- .../AutoChangeLog-sierra-pr-1017.yml | 4 -- .../AutoChangeLog-sierra-pr-1018.yml | 5 -- .../AutoChangeLog-sierra-pr-1019.yml | 4 -- .../AutoChangeLog-sierra-pr-1020.yml | 4 -- .../AutoChangeLog-sierra-pr-1022.yml | 7 -- .../AutoChangeLog-sierra-pr-1023.yml | 5 -- .../AutoChangeLog-sierra-pr-1025.yml | 4 -- .../AutoChangeLog-sierra-pr-997.yml | 4 -- 22 files changed, 86 insertions(+), 121 deletions(-) delete mode 100644 html/changelogs/AutoChangeLog-sierra-pr-1002.yml delete mode 100644 html/changelogs/AutoChangeLog-sierra-pr-1003.yml delete mode 100644 html/changelogs/AutoChangeLog-sierra-pr-1006.yml delete mode 100644 html/changelogs/AutoChangeLog-sierra-pr-1007.yml delete mode 100644 html/changelogs/AutoChangeLog-sierra-pr-1008.yml delete mode 100644 html/changelogs/AutoChangeLog-sierra-pr-1009.yml delete mode 100644 html/changelogs/AutoChangeLog-sierra-pr-1010.yml delete mode 100644 html/changelogs/AutoChangeLog-sierra-pr-1011.yml delete mode 100644 html/changelogs/AutoChangeLog-sierra-pr-1012.yml delete mode 100644 html/changelogs/AutoChangeLog-sierra-pr-1013.yml delete mode 100644 html/changelogs/AutoChangeLog-sierra-pr-1014.yml delete mode 100644 html/changelogs/AutoChangeLog-sierra-pr-1016.yml delete mode 100644 html/changelogs/AutoChangeLog-sierra-pr-1017.yml delete mode 100644 html/changelogs/AutoChangeLog-sierra-pr-1018.yml delete mode 100644 html/changelogs/AutoChangeLog-sierra-pr-1019.yml delete mode 100644 html/changelogs/AutoChangeLog-sierra-pr-1020.yml delete mode 100644 html/changelogs/AutoChangeLog-sierra-pr-1022.yml delete mode 100644 html/changelogs/AutoChangeLog-sierra-pr-1023.yml delete mode 100644 html/changelogs/AutoChangeLog-sierra-pr-1025.yml delete mode 100644 html/changelogs/AutoChangeLog-sierra-pr-997.yml diff --git a/html/changelog.html b/html/changelog.html index b6742adc7c29a..10f4f58533554 100644 --- a/html/changelog.html +++ b/html/changelog.html @@ -28,6 +28,50 @@

Sierra SS13

-->
+

15.09 - 2023

+

Обновления HonkEmo:

+
+
Спрайт клозета сделан контрастнее.
+
+

Обновления Merlin1230:

+
+
Fixes items that had internal machines that needed to be powered so they could actually get powered from a powered area, which includes the press camera drone
+
+

Обновления Mucker:

+
+
Plant genes are now properly randomized again.
+
Fixed chameleon kit items not working.
+
The 'Spawn Chemical Dispenser Cartridge' verb now takes an input for the reagent, instead of a giant list.
+
Bluespace turfs made from the BSD event now properly revert to normal floors.
+
Masks no longer prevent speech problems.
+
Fixed rig-mounted RCDs.
+
Fixed the Morpheus ariborne, blitz, and prime head icons being invisible.
+
+

Обновления Sbotkin:

+
+
Removes locks from the fridges and the kitchen cabinet.
+
The Petrov's R&D console now correctly synchronizes with the robotics server.
+
+

Обновления SierraKomodo:

+
+
run-unit-tests now displays the test names, and is sorted alphabetically.
+
Mobs no longer keep access to the changeling hivemind when their changeling status is removed.
+
Attaching and removing augments now displays the augment's name instead of, i.e., "r_arm_aug".
+
Grabs no longer drop themselves when you switch hands.
+
Weapon attacks now generate attack logs again.
+
Weapon attacks can now be blocked by auras and things using aura code.
+
Navigational lights no longer fly away when you maneuver.
+
Nabber (GAS) kill-grabs no longer repeatedly cancel themselves.
+
Circuitry in the self-destruct room now starts the round with the correct unlit state.
+
Circuitry in the self-destruct room now properly update their lighting color.
+
+

Обновления emmanuelbassil, Mucker:

+
+
Restored ability to parry attacks.
+
Restored ability for melee attacks with weapons to miss.
+
Some melee weapons no longer ignore armor
+
+

14.09 - 2023

Обновления SuhEugene:

@@ -434,34 +478,6 @@

Обновления SuhEugene:

Point To arrow is animated now and visible only if the pointing player is visible.
Tooltips are no longer displayed on the radar waves.
- -

14.07 - 2023

-

Обновления Mucker:

-
-
Surgery defaults to the only available option again if only one is available.
-
-

Обновления Ryan180602:

-
-
Reverts accuracy changes to shotguns.
-
-

Обновления Ryan180602, DrFarson:

-
-
Adds colour coded stripes for rubber/practice magazines.
-
Fix inconsistences with bullet sprites.
-
-

Обновления SierraKomodo:

-
-
Action buttons now have tooltips denoting the target object and the action.
-
-

Обновления Spookerton:

-
-
Replaced 1-LT stun with 1-LT confusion when your aorta spits at the sky.
-
-

Обновления jux:

-
-
10mm rubber bullets do 15 brute, up from 5, and 15 agony, down from 30. Holdout rubber bullets do 10 brute, up from 5, and 10 agony, down from 20. Shotgun beanbags do 20 brute, down from 25, and 30 agony, down from 60.
-
Projectiles that deal agony reduce agony dealt by the armor blocking it.
-
Icons by Icons8
diff --git a/html/changelogs/.all_changelog.yml b/html/changelogs/.all_changelog.yml index c958274d0f511..86f5d6d326c90 100644 --- a/html/changelogs/.all_changelog.yml +++ b/html/changelogs/.all_changelog.yml @@ -21770,3 +21770,45 @@ DO NOT EDIT THIS FILE BY HAND! AUTOMATICALLY GENERATED BY sierra_genchangelog.p 2023-09-14: SuhEugene: - bugfix: Fixes exosuit space movement. They're no longer able to walk in space. +2023-09-15: + HonkEmo: + - imageadd: "\u0421\u043F\u0440\u0430\u0439\u0442 \u043A\u043B\u043E\u0437\u0435\ + \u0442\u0430 \u0441\u0434\u0435\u043B\u0430\u043D \u043A\u043E\u043D\u0442\u0440\ + \u0430\u0441\u0442\u043D\u0435\u0435." + Merlin1230: + - bugfix: Fixes items that had internal machines that needed to be powered so they + could actually get powered from a powered area, which includes the press camera + drone + Mucker: + - bugfix: Plant genes are now properly randomized again. + - bugfix: Fixed chameleon kit items not working. + - tweak: The 'Spawn Chemical Dispenser Cartridge' verb now takes an input for the + reagent, instead of a giant list. + - bugfix: Bluespace turfs made from the BSD event now properly revert to normal + floors. + - bugfix: Masks no longer prevent speech problems. + - bugfix: Fixed rig-mounted RCDs. + - bugfix: Fixed the Morpheus ariborne, blitz, and prime head icons being invisible. + Sbotkin: + - tweak: Removes locks from the fridges and the kitchen cabinet. + - bugfix: The Petrov's R&D console now correctly synchronizes with the robotics + server. + SierraKomodo: + - admin: run-unit-tests now displays the test names, and is sorted alphabetically. + - bugfix: Mobs no longer keep access to the changeling hivemind when their changeling + status is removed. + - bugfix: Attaching and removing augments now displays the augment's name instead + of, i.e., "r_arm_aug". + - bugfix: Grabs no longer drop themselves when you switch hands. + - bugfix: Weapon attacks now generate attack logs again. + - bugfix: Weapon attacks can now be blocked by auras and things using aura code. + - bugfix: Navigational lights no longer fly away when you maneuver. + - bugfix: Nabber (GAS) kill-grabs no longer repeatedly cancel themselves. + - bugfix: Circuitry in the self-destruct room now starts the round with the correct + unlit state. + - bugfix: Circuitry in the self-destruct room now properly update their lighting + color. + emmanuelbassil, Mucker: + - bugfix: Restored ability to parry attacks. + - bugfix: Restored ability for melee attacks with weapons to miss. + - bugfix: Some melee weapons no longer ignore armor diff --git a/html/changelogs/AutoChangeLog-sierra-pr-1002.yml b/html/changelogs/AutoChangeLog-sierra-pr-1002.yml deleted file mode 100644 index 7371022172989..0000000000000 --- a/html/changelogs/AutoChangeLog-sierra-pr-1002.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: HonkEmo -delete-after: true -changes: - - imageadd: Спрайт клозета сделан контрастнее. diff --git a/html/changelogs/AutoChangeLog-sierra-pr-1003.yml b/html/changelogs/AutoChangeLog-sierra-pr-1003.yml deleted file mode 100644 index 8c6606c59cb1d..0000000000000 --- a/html/changelogs/AutoChangeLog-sierra-pr-1003.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: Mucker -delete-after: true -changes: - - bugfix: Fixed the Morpheus ariborne, blitz, and prime head icons being invisible. diff --git a/html/changelogs/AutoChangeLog-sierra-pr-1006.yml b/html/changelogs/AutoChangeLog-sierra-pr-1006.yml deleted file mode 100644 index 917d966713a83..0000000000000 --- a/html/changelogs/AutoChangeLog-sierra-pr-1006.yml +++ /dev/null @@ -1,5 +0,0 @@ -author: SierraKomodo -delete-after: true -changes: - - bugfix: Attaching and removing augments now displays the augment's name instead - of, i.e., "r_arm_aug". diff --git a/html/changelogs/AutoChangeLog-sierra-pr-1007.yml b/html/changelogs/AutoChangeLog-sierra-pr-1007.yml deleted file mode 100644 index bb9187a147e28..0000000000000 --- a/html/changelogs/AutoChangeLog-sierra-pr-1007.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: SierraKomodo -delete-after: true -changes: - - bugfix: Navigational lights no longer fly away when you maneuver. diff --git a/html/changelogs/AutoChangeLog-sierra-pr-1008.yml b/html/changelogs/AutoChangeLog-sierra-pr-1008.yml deleted file mode 100644 index c26e48786bc79..0000000000000 --- a/html/changelogs/AutoChangeLog-sierra-pr-1008.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: Mucker -delete-after: true -changes: - - bugfix: Plant genes are now properly randomized again. diff --git a/html/changelogs/AutoChangeLog-sierra-pr-1009.yml b/html/changelogs/AutoChangeLog-sierra-pr-1009.yml deleted file mode 100644 index 3bcd97a952a73..0000000000000 --- a/html/changelogs/AutoChangeLog-sierra-pr-1009.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: Mucker -delete-after: true -changes: - - bugfix: Fixed chameleon kit items not working. diff --git a/html/changelogs/AutoChangeLog-sierra-pr-1010.yml b/html/changelogs/AutoChangeLog-sierra-pr-1010.yml deleted file mode 100644 index 5cd92d04f3233..0000000000000 --- a/html/changelogs/AutoChangeLog-sierra-pr-1010.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: Mucker -delete-after: true -changes: - - bugfix: Masks no longer prevent speech problems. diff --git a/html/changelogs/AutoChangeLog-sierra-pr-1011.yml b/html/changelogs/AutoChangeLog-sierra-pr-1011.yml deleted file mode 100644 index 190d9ee397844..0000000000000 --- a/html/changelogs/AutoChangeLog-sierra-pr-1011.yml +++ /dev/null @@ -1,6 +0,0 @@ -author: emmanuelbassil, Mucker -delete-after: true -changes: - - bugfix: Restored ability to parry attacks. - - bugfix: Restored ability for melee attacks with weapons to miss. - - bugfix: Some melee weapons no longer ignore armor diff --git a/html/changelogs/AutoChangeLog-sierra-pr-1012.yml b/html/changelogs/AutoChangeLog-sierra-pr-1012.yml deleted file mode 100644 index de4102bc76213..0000000000000 --- a/html/changelogs/AutoChangeLog-sierra-pr-1012.yml +++ /dev/null @@ -1,6 +0,0 @@ -author: Merlin1230 -delete-after: true -changes: - - bugfix: Fixes items that had internal machines that needed to be powered so they - could actually get powered from a powered area, which includes the press camera - drone diff --git a/html/changelogs/AutoChangeLog-sierra-pr-1013.yml b/html/changelogs/AutoChangeLog-sierra-pr-1013.yml deleted file mode 100644 index 9ba1b843c69e6..0000000000000 --- a/html/changelogs/AutoChangeLog-sierra-pr-1013.yml +++ /dev/null @@ -1,5 +0,0 @@ -author: Sbotkin -delete-after: true -changes: - - bugfix: The Petrov's R&D console now correctly synchronizes with the robotics - server. diff --git a/html/changelogs/AutoChangeLog-sierra-pr-1014.yml b/html/changelogs/AutoChangeLog-sierra-pr-1014.yml deleted file mode 100644 index a4e21e5ac7d6c..0000000000000 --- a/html/changelogs/AutoChangeLog-sierra-pr-1014.yml +++ /dev/null @@ -1,5 +0,0 @@ -author: Mucker -delete-after: true -changes: - - bugfix: Bluespace turfs made from the BSD event now properly revert to normal - floors. diff --git a/html/changelogs/AutoChangeLog-sierra-pr-1016.yml b/html/changelogs/AutoChangeLog-sierra-pr-1016.yml deleted file mode 100644 index 6d8118bb31ff9..0000000000000 --- a/html/changelogs/AutoChangeLog-sierra-pr-1016.yml +++ /dev/null @@ -1,5 +0,0 @@ -author: SierraKomodo -delete-after: true -changes: - - bugfix: Mobs no longer keep access to the changeling hivemind when their changeling - status is removed. diff --git a/html/changelogs/AutoChangeLog-sierra-pr-1017.yml b/html/changelogs/AutoChangeLog-sierra-pr-1017.yml deleted file mode 100644 index 0a215ba057a15..0000000000000 --- a/html/changelogs/AutoChangeLog-sierra-pr-1017.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: SierraKomodo -delete-after: true -changes: - - bugfix: Nabber (GAS) kill-grabs no longer repeatedly cancel themselves. diff --git a/html/changelogs/AutoChangeLog-sierra-pr-1018.yml b/html/changelogs/AutoChangeLog-sierra-pr-1018.yml deleted file mode 100644 index 8d0d8c056a889..0000000000000 --- a/html/changelogs/AutoChangeLog-sierra-pr-1018.yml +++ /dev/null @@ -1,5 +0,0 @@ -author: SierraKomodo -delete-after: true -changes: - - bugfix: Weapon attacks now generate attack logs again. - - bugfix: Weapon attacks can now be blocked by auras and things using aura code. diff --git a/html/changelogs/AutoChangeLog-sierra-pr-1019.yml b/html/changelogs/AutoChangeLog-sierra-pr-1019.yml deleted file mode 100644 index 3deae4ad198ba..0000000000000 --- a/html/changelogs/AutoChangeLog-sierra-pr-1019.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: SierraKomodo -delete-after: true -changes: - - bugfix: Grabs no longer drop themselves when you switch hands. diff --git a/html/changelogs/AutoChangeLog-sierra-pr-1020.yml b/html/changelogs/AutoChangeLog-sierra-pr-1020.yml deleted file mode 100644 index 9ace41730d541..0000000000000 --- a/html/changelogs/AutoChangeLog-sierra-pr-1020.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: Mucker -delete-after: true -changes: - - bugfix: Fixed rig-mounted RCDs. diff --git a/html/changelogs/AutoChangeLog-sierra-pr-1022.yml b/html/changelogs/AutoChangeLog-sierra-pr-1022.yml deleted file mode 100644 index 4e5ad228617df..0000000000000 --- a/html/changelogs/AutoChangeLog-sierra-pr-1022.yml +++ /dev/null @@ -1,7 +0,0 @@ -author: SierraKomodo -delete-after: true -changes: - - bugfix: Circuitry in the self-destruct room now starts the round with the correct - unlit state. - - bugfix: Circuitry in the self-destruct room now properly update their lighting - color. diff --git a/html/changelogs/AutoChangeLog-sierra-pr-1023.yml b/html/changelogs/AutoChangeLog-sierra-pr-1023.yml deleted file mode 100644 index d700fd28216af..0000000000000 --- a/html/changelogs/AutoChangeLog-sierra-pr-1023.yml +++ /dev/null @@ -1,5 +0,0 @@ -author: Mucker -delete-after: true -changes: - - tweak: The 'Spawn Chemical Dispenser Cartridge' verb now takes an input for the - reagent, instead of a giant list. diff --git a/html/changelogs/AutoChangeLog-sierra-pr-1025.yml b/html/changelogs/AutoChangeLog-sierra-pr-1025.yml deleted file mode 100644 index ca8da1c63a59d..0000000000000 --- a/html/changelogs/AutoChangeLog-sierra-pr-1025.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: SierraKomodo -delete-after: true -changes: - - admin: run-unit-tests now displays the test names, and is sorted alphabetically. diff --git a/html/changelogs/AutoChangeLog-sierra-pr-997.yml b/html/changelogs/AutoChangeLog-sierra-pr-997.yml deleted file mode 100644 index 1c3866272d8f8..0000000000000 --- a/html/changelogs/AutoChangeLog-sierra-pr-997.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: Sbotkin -delete-after: true -changes: - - tweak: Removes locks from the fridges and the kitchen cabinet. From facade28027bb3b996794f86935e49a003abbb61 Mon Sep 17 00:00:00 2001 From: MuckerMayhem <1161516+MuckerMayhem@users.noreply.github.com> Date: Fri, 15 Sep 2023 19:42:03 +0300 Subject: [PATCH 103/158] [MIRROR] restrict robot access to their relevant departments --- code/game/objects/items/weapons/cards_ids.dm | 2 +- .../robot/flying/module_flying_emergency.dm | 1 - .../living/silicon/robot/modules/_module.dm | 21 +++ .../silicon/robot/modules/module_illegal.dm | 4 + .../robot/modules/module_maintenance_drone.dm | 1 + .../silicon/robot/modules/module_research.dm | 1 + .../silicon/robot/modules/module_security.dm | 4 +- maps/mapsystem/maps_jobs.dm | 8 + maps/torch/job/torch_jobs.dm | 6 + maps/torch/robot/_robot_access.dm | 173 ++++++++++++++++++ maps/torch/robot/module_flying_surveyor.dm | 12 ++ maps/torch/torch.dm | 1 + maps/torch/torch_areas.dm | 2 +- 13 files changed, 231 insertions(+), 5 deletions(-) create mode 100644 maps/torch/robot/_robot_access.dm diff --git a/code/game/objects/items/weapons/cards_ids.dm b/code/game/objects/items/weapons/cards_ids.dm index 7295f87237b64..945e2018cc48b 100644 --- a/code/game/objects/items/weapons/cards_ids.dm +++ b/code/game/objects/items/weapons/cards_ids.dm @@ -467,7 +467,7 @@ var/global/const/NO_EMAG_ACT = -50 detail_color = COLOR_AMBER /obj/item/card/id/synthetic/New() - access = get_all_station_access() + access_synth + access = GLOB.using_map.synth_access.Copy() ..() /obj/item/card/id/centcom diff --git a/code/modules/mob/living/silicon/robot/flying/module_flying_emergency.dm b/code/modules/mob/living/silicon/robot/flying/module_flying_emergency.dm index 787e4d0747091..6acd7ab8b6403 100644 --- a/code/modules/mob/living/silicon/robot/flying/module_flying_emergency.dm +++ b/code/modules/mob/living/silicon/robot/flying/module_flying_emergency.dm @@ -48,7 +48,6 @@ SKILL_ELECTRICAL = SKILL_EXPERIENCED ) - /obj/item/robot_module/medical/finalize_emag() . = ..() diff --git a/code/modules/mob/living/silicon/robot/modules/_module.dm b/code/modules/mob/living/silicon/robot/modules/_module.dm index cb97d7acd4492..c5621135ea8df 100644 --- a/code/modules/mob/living/silicon/robot/modules/_module.dm +++ b/code/modules/mob/living/silicon/robot/modules/_module.dm @@ -51,6 +51,13 @@ var/is_emagged = FALSE var/list/emag_gear = list() + /// Access flags that this module grants. Overwrites all existing access flags. + var/list/access = list() + /// Whether or not to include the map's defined `synth_access` list. + var/use_map_synth_access = TRUE + /// Whether or not to apply get_all_station_access() to the access flags. + var/use_all_station_access = FALSE + /obj/item/robot_module/Initialize() @@ -65,6 +72,8 @@ grant_skills(R) add_languages(R) add_subsystems(R) + set_map_specific_access() + set_access(R) apply_status_flags(R) if(R.silicon_radio) @@ -245,3 +254,15 @@ /obj/item/robot_module/proc/reset_skills(mob/living/silicon/robot/R) for(var/datum/skill_buff/buff in R.fetch_buffs_of_type(/datum/skill_buff/robot)) buff.remove() + +/// Updates the robot's access flags with the module's access +/obj/item/robot_module/proc/set_access(mob/living/silicon/robot/R) + R.idcard.access.Cut() + R.idcard.access = access.Copy() + if (use_map_synth_access) + R.idcard.access |= GLOB.using_map.synth_access.Copy() + if (use_all_station_access) + R.idcard.access |= get_all_station_access() + +/obj/item/robot_module/proc/set_map_specific_access() + return diff --git a/code/modules/mob/living/silicon/robot/modules/module_illegal.dm b/code/modules/mob/living/silicon/robot/modules/module_illegal.dm index 598197fec2541..ec9547fad293e 100644 --- a/code/modules/mob/living/silicon/robot/modules/module_illegal.dm +++ b/code/modules/mob/living/silicon/robot/modules/module_illegal.dm @@ -15,6 +15,10 @@ /obj/item/tank/jetpack/carbondioxide ) var/id + access = list( + access_syndicate + ) + use_map_synth_access = FALSE /obj/item/robot_module/syndicate/Initialize() for(var/singleton/hierarchy/skill/skill in GLOB.skills) diff --git a/code/modules/mob/living/silicon/robot/modules/module_maintenance_drone.dm b/code/modules/mob/living/silicon/robot/modules/module_maintenance_drone.dm index fa68082bdf0f4..5fee7c093465d 100644 --- a/code/modules/mob/living/silicon/robot/modules/module_maintenance_drone.dm +++ b/code/modules/mob/living/silicon/robot/modules/module_maintenance_drone.dm @@ -53,6 +53,7 @@ SKILL_CONSTRUCTION = SKILL_EXPERIENCED, SKILL_ELECTRICAL = SKILL_EXPERIENCED ) + use_all_station_access = TRUE /obj/item/robot_module/drone/finalize_equipment(mob/living/silicon/robot/R) . = ..() diff --git a/code/modules/mob/living/silicon/robot/modules/module_research.dm b/code/modules/mob/living/silicon/robot/modules/module_research.dm index b7e88b3e77e31..997e595346f23 100644 --- a/code/modules/mob/living/silicon/robot/modules/module_research.dm +++ b/code/modules/mob/living/silicon/robot/modules/module_research.dm @@ -50,6 +50,7 @@ SKILL_BOTANY = SKILL_EXPERIENCED, SKILL_ELECTRICAL = SKILL_EXPERIENCED ) + /obj/item/robot_module/research/finalize_equipment() . = ..() var/obj/item/stack/nanopaste/N = locate() in equipment diff --git a/code/modules/mob/living/silicon/robot/modules/module_security.dm b/code/modules/mob/living/silicon/robot/modules/module_security.dm index adae494fc1365..a1f643067f8fd 100644 --- a/code/modules/mob/living/silicon/robot/modules/module_security.dm +++ b/code/modules/mob/living/silicon/robot/modules/module_security.dm @@ -20,7 +20,6 @@ SKILL_BUREAUCRACY = SKILL_TRAINED ) - /obj/item/robot_module/security/general name = "security robot module" display_name = "Security" @@ -74,7 +73,8 @@ /obj/item/melee/baton/robot/electrified_arm, /obj/item/gun/projectile/automatic/l6_saw ) - + use_map_synth_access = FALSE + use_all_station_access = TRUE /obj/item/robot_module/security/combat/Initialize() . = ..() diff --git a/maps/mapsystem/maps_jobs.dm b/maps/mapsystem/maps_jobs.dm index ee080dd384916..3421d0810e660 100644 --- a/maps/mapsystem/maps_jobs.dm +++ b/maps/mapsystem/maps_jobs.dm @@ -7,6 +7,14 @@ var/default_assistant_title = "Assistant" + /// List of default access flags provided to all robots on top of their module's flags + var/list/synth_access = list( + access_synth, + access_maint_tunnels, + access_teleporter + ) + + // The white, and blacklist are type specific, any subtypes (of both species and jobs) have to be added explicitly /datum/map/proc/is_species_job_restricted(datum/species/S, datum/job/J) if(!istype(S) || !istype(J)) diff --git a/maps/torch/job/torch_jobs.dm b/maps/torch/job/torch_jobs.dm index 9688d6b42d404..83364a7f04111 100644 --- a/maps/torch/job/torch_jobs.dm +++ b/maps/torch/job/torch_jobs.dm @@ -8,6 +8,12 @@ /datum/species/vox = list(/datum/job/ai, /datum/job/cyborg), /datum/species/human/mule = list(/datum/job/ai, /datum/job/cyborg, /datum/job/merchant) ) + synth_access = list( + access_synth, + access_maint_tunnels, + access_teleporter, + access_solgov_crew + ) #define HUMAN_ONLY_JOBS /datum/job/captain, /datum/job/hop, /datum/job/cmo, /datum/job/chief_engineer, /datum/job/hos, /datum/job/representative, /datum/job/sea, /datum/job/pathfinder, /datum/job/rd species_to_job_blacklist = list( diff --git a/maps/torch/robot/_robot_access.dm b/maps/torch/robot/_robot_access.dm new file mode 100644 index 0000000000000..ada35cedde5a3 --- /dev/null +++ b/maps/torch/robot/_robot_access.dm @@ -0,0 +1,173 @@ +/obj/item/robot_module/clerical/set_map_specific_access() + access += list( + access_emergency_storage, + access_cargo, + access_cargo_bot, + access_commissary, + access_hangar, + access_mailsorting, + access_radio_serv, + access_radio_sup + ) + +/obj/item/robot_module/clerical/butler/set_map_specific_access() + access = list( + access_commissary, + access_hydroponics, + access_kitchen, + access_radio_serv + ) + +/obj/item/robot_module/medical/set_map_specific_access() + access += list( + access_chemistry, + access_crematorium, + access_emergency_storage, + access_eva, + access_external_airlocks, + access_hangar, + access_medical, + access_medical_equip, + access_morgue, + access_senmed, + access_surgery, + access_virology, + access_radio_med + ) + +/obj/item/robot_module/engineering/set_map_specific_access() + access = list( + access_atmospherics, + access_construction, + access_emergency_storage, + access_engine, + access_engine_equip, + access_eva, + access_external_airlocks, + access_hangar, + access_network, + access_robotics, + access_seneng, + access_tcomsat, + access_tech_storage, + access_radio_eng + ) + +/obj/item/robot_module/janitor/set_map_specific_access() + access = list( + access_emergency_storage, + access_janitor, + access_radio_serv + ) + +/obj/item/robot_module/miner/set_map_specific_access() + access = list( + access_eva, + access_expedition_shuttle, + access_guppy, + access_hangar, + access_mining, + access_mining_office, + access_mining_station, + access_radio_exp, + access_radio_sup + ) + +/obj/item/robot_module/research/set_map_specific_access() + access = list( + access_expedition_shuttle, + access_hangar, + access_mining_office, + access_mining_station, + access_petrov, + access_petrov_analysis, + access_petrov_chemistry, + access_petrov_maint, + access_petrov_phoron, + access_petrov_toxins, + access_research, + access_tox, + access_tox_storage, + access_xenoarch, + access_xenobiology, + access_radio_exp, + access_radio_sci + ) + +/obj/item/robot_module/flying/cultivator/set_map_specific_access() + access = list( + access_hydroponics, + access_kitchen, + access_research, + access_radio_sci, + access_radio_serv + ) + +/obj/item/robot_module/flying/emergency/set_map_specific_access() + access = list( + access_chemistry, + access_crematorium, + access_emergency_storage, + access_eva, + access_external_airlocks, + access_hangar, + access_medical, + access_medical_equip, + access_morgue, + access_senmed, + access_surgery, + access_virology, + access_radio_med + ) + +/obj/item/robot_module/flying/filing/set_map_specific_access() + access = list( + access_emergency_storage, + access_cargo, + access_cargo_bot, + access_commissary, + access_hangar, + access_mailsorting, + access_radio_serv, + access_radio_sup + ) + +/obj/item/robot_module/flying/forensics/set_map_specific_access() + access = list( + access_brig, + access_emergency_storage, + access_forensics_lockers, + access_morgue, + access_sec_doors, + access_security, + access_radio_sec + ) + +/obj/item/robot_module/flying/repair/set_map_specific_access() + access = list( + access_atmospherics, + access_construction, + access_emergency_storage, + access_engine, + access_engine_equip, + access_eva, + access_external_airlocks, + access_hangar, + access_network, + access_robotics, + access_seneng, + access_tcomsat, + access_tech_storage, + access_radio_eng + ) + +/obj/item/robot_module/security/set_map_specific_access() + access = list( + access_brig, + access_emergency_storage, + access_eva, + access_external_airlocks, + access_sec_doors, + access_security, + access_radio_sec + ) diff --git a/maps/torch/robot/module_flying_surveyor.dm b/maps/torch/robot/module_flying_surveyor.dm index 27d5afdb69261..c7542ab387b8d 100644 --- a/maps/torch/robot/module_flying_surveyor.dm +++ b/maps/torch/robot/module_flying_surveyor.dm @@ -50,6 +50,18 @@ /obj/item/melee/baton/robot/electrified_arm, /obj/item/gun/energy/gun ) + access = list( + access_emergency_storage, + access_eva, + access_expedition_shuttle, + access_explorer, + access_guppy, + access_hangar, + access_petrov, + access_research, + access_radio_exp, + access_radio_sci + ) /obj/item/robot_module/flying/surveyor/finalize_synths() . = ..() diff --git a/maps/torch/torch.dm b/maps/torch/torch.dm index e931cde4f100a..f871a0fb3a8bf 100644 --- a/maps/torch/torch.dm +++ b/maps/torch/torch.dm @@ -122,6 +122,7 @@ #include "outfits/scgec.dm" + #include "robot/_robot_access.dm" #include "robot/module_flying_surveyor.dm" #include "structures/signs.dm" diff --git a/maps/torch/torch_areas.dm b/maps/torch/torch_areas.dm index 6e40cb2eb2e8e..a277c891827f5 100644 --- a/maps/torch/torch_areas.dm +++ b/maps/torch/torch_areas.dm @@ -1589,7 +1589,7 @@ /area/assembly/robotics/laboratory name = "\improper Robotics Laboratory" - req_access = list(list(access_medical,access_robotics)) + req_access = list(list(access_medical,access_robotics, access_synth)) /area/assembly/robotics/office name = "\improper Robotics Office" From cccfc6c8086456f5ce3cf4eecb034fc6c80ab35e Mon Sep 17 00:00:00 2001 From: SuhEugene <32931701+SuhEugene@users.noreply.github.com> Date: Sat, 16 Sep 2023 00:02:31 +0300 Subject: [PATCH 104/158] Set default synth Sierra access to full --- maps/sierra/job/jobs.dm | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/maps/sierra/job/jobs.dm b/maps/sierra/job/jobs.dm index 7226cbe8e0c61..813819106c097 100644 --- a/maps/sierra/job/jobs.dm +++ b/maps/sierra/job/jobs.dm @@ -51,6 +51,13 @@ ACCESS_REGION_SUPPLY = list(access_qm, access_change_ids), ) + // It will autoinit in New() + synth_access = list(access_synth) + +/datum/map/sierra/New() + . = ..() + synth_access += get_all_station_access() + // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ GAS JOBS ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // GRADE C From a892dd602d420cc4f87a07ba94e6d89f4271ce74 Mon Sep 17 00:00:00 2001 From: Sierra Helper <125094432+SierraHelper@users.noreply.github.com> Date: Sat, 16 Sep 2023 00:30:35 +0300 Subject: [PATCH 105/158] =?UTF-8?q?=D0=A7=D0=B5=D0=B9=D0=BD=D0=B4=D0=B6?= =?UTF-8?q?=D0=BB=D0=BE=D0=B3=20=D0=B4=D0=BB=D1=8F=20PR=20#1026=20[ci=20sk?= =?UTF-8?q?ip]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- html/changelogs/AutoChangeLog-sierra-pr-1026.yml | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-sierra-pr-1026.yml diff --git a/html/changelogs/AutoChangeLog-sierra-pr-1026.yml b/html/changelogs/AutoChangeLog-sierra-pr-1026.yml new file mode 100644 index 0000000000000..1e2cb655f4587 --- /dev/null +++ b/html/changelogs/AutoChangeLog-sierra-pr-1026.yml @@ -0,0 +1,7 @@ +author: Mucker, SuhEugene +delete-after: true +changes: + - balance: Robots no longer have all access, and can only access their relevant + department doors. By default, all robots have access to the teleporter and maintenance + tunnels, as well as robotics. - Mucker + - balance: Идея выше полная фигня, поэтому доступы боргам возвращены - SuhEugene From 48b85d32f118fb4e374d0722134b031baf0732c5 Mon Sep 17 00:00:00 2001 From: Sierra Helper <125094432+SierraHelper@users.noreply.github.com> Date: Sat, 16 Sep 2023 01:14:26 +0000 Subject: [PATCH 106/158] =?UTF-8?q?=D0=90=D0=B2=D1=82=D0=BE=D0=BC=D0=B0?= =?UTF-8?q?=D1=82=D0=B8=D1=87=D0=B5=D1=81=D0=BA=D0=B0=D1=8F=20=D0=BA=D0=BE?= =?UTF-8?q?=D0=BC=D0=BF=D0=B8=D0=BB=D1=8F=D1=86=D0=B8=D1=8F=20=D1=87=D0=B5?= =?UTF-8?q?=D0=B9=D0=BD=D0=B4=D0=B6=D0=BB=D0=BE=D0=B3=D0=BE=D0=B2=20[ci=20?= =?UTF-8?q?skip]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- html/changelog.html | 27 +++++-------------- html/changelogs/.all_changelog.yml | 10 +++++++ .../AutoChangeLog-sierra-pr-1026.yml | 7 ----- 3 files changed, 17 insertions(+), 27 deletions(-) delete mode 100644 html/changelogs/AutoChangeLog-sierra-pr-1026.yml diff --git a/html/changelog.html b/html/changelog.html index 10f4f58533554..790f593ff9cf7 100644 --- a/html/changelog.html +++ b/html/changelog.html @@ -28,6 +28,13 @@

Sierra SS13

-->
+

16.09 - 2023

+

Обновления Mucker, SuhEugene:

+
+
Robots no longer have all access, and can only access their relevant department doors. By default, all robots have access to the teleporter and maintenance tunnels, as well as robotics. - Mucker
+
Идея выше полная фигня, поэтому доступы боргам возвращены - SuhEugene
+
+

15.09 - 2023

Обновления HonkEmo:

@@ -458,26 +465,6 @@

Обновления TheNightingale:

Adds species fall sounds for when you've fallen and can't get up.
- -

15.07 - 2023

-

Обновления Jux:

-
-
No more autoshotgun in uplinks.
-
-

Обновления Ryan180602:

-
-
Makes robot surgery less successful for non-roboticists.
-
Makes resin apply brittle to prosthetics (and damage if used further). All depending on skill and chance.
-
Roboticists now get Experienced CD by default.
-
Spiders bite less hard.
-
Spiders have less health.
-
Phoron spider bites even less, but can blow up quicker.
-
-

Обновления SuhEugene:

-
-
Point To arrow is animated now and visible only if the pointing player is visible.
-
Tooltips are no longer displayed on the radar waves.
-
Icons by Icons8
diff --git a/html/changelogs/.all_changelog.yml b/html/changelogs/.all_changelog.yml index 86f5d6d326c90..a0070997f1887 100644 --- a/html/changelogs/.all_changelog.yml +++ b/html/changelogs/.all_changelog.yml @@ -21812,3 +21812,13 @@ DO NOT EDIT THIS FILE BY HAND! AUTOMATICALLY GENERATED BY sierra_genchangelog.p - bugfix: Restored ability to parry attacks. - bugfix: Restored ability for melee attacks with weapons to miss. - bugfix: Some melee weapons no longer ignore armor +2023-09-16: + Mucker, SuhEugene: + - balance: Robots no longer have all access, and can only access their relevant + department doors. By default, all robots have access to the teleporter and maintenance + tunnels, as well as robotics. - Mucker + - balance: "\u0418\u0434\u0435\u044F \u0432\u044B\u0448\u0435 \u043F\u043E\u043B\ + \u043D\u0430\u044F \u0444\u0438\u0433\u043D\u044F, \u043F\u043E\u044D\u0442\u043E\ + \u043C\u0443 \u0434\u043E\u0441\u0442\u0443\u043F\u044B \u0431\u043E\u0440\u0433\ + \u0430\u043C \u0432\u043E\u0437\u0432\u0440\u0430\u0449\u0435\u043D\u044B -\ + \ SuhEugene" diff --git a/html/changelogs/AutoChangeLog-sierra-pr-1026.yml b/html/changelogs/AutoChangeLog-sierra-pr-1026.yml deleted file mode 100644 index 1e2cb655f4587..0000000000000 --- a/html/changelogs/AutoChangeLog-sierra-pr-1026.yml +++ /dev/null @@ -1,7 +0,0 @@ -author: Mucker, SuhEugene -delete-after: true -changes: - - balance: Robots no longer have all access, and can only access their relevant - department doors. By default, all robots have access to the teleporter and maintenance - tunnels, as well as robotics. - Mucker - - balance: Идея выше полная фигня, поэтому доступы боргам возвращены - SuhEugene From 4f4b6e24e127fd17d494270e84de992cc1d97dde Mon Sep 17 00:00:00 2001 From: wb13 <26555013+wb13@users.noreply.github.com> Date: Sun, 17 Sep 2023 20:55:59 +0300 Subject: [PATCH 107/158] [MIRROR] Fixes zombies' destructive capabilities, cleans up NPC behaviour --- code/_onclick/other_mobs.dm | 2 + code/game/machinery/doors/door.dm | 19 ++++ code/game/turfs/simulated/wall_attacks.dm | 6 +- code/modules/mechs/mech_interaction.dm | 1 + .../modules/mob/living/silicon/robot/robot.dm | 7 +- code/modules/species/outsider/zombie.dm | 88 ++++++++++++++----- 6 files changed, 95 insertions(+), 28 deletions(-) diff --git a/code/_onclick/other_mobs.dm b/code/_onclick/other_mobs.dm index b879696a5b851..4e405e3aa5cef 100644 --- a/code/_onclick/other_mobs.dm +++ b/code/_onclick/other_mobs.dm @@ -32,6 +32,8 @@ SPAN_DANGER("\The [user] smashes through \the [src]!"), SPAN_DANGER("You smash through \the [src]!") ) + if (MUTATION_FERAL in user.mutations) + qdel(src) else user.visible_message( SPAN_DANGER("\The [user] [attack_verb] \the [src]!"), diff --git a/code/game/machinery/doors/door.dm b/code/game/machinery/doors/door.dm index 15278284e8f8c..80d1a019f7430 100644 --- a/code/game/machinery/doors/door.dm +++ b/code/game/machinery/doors/door.dm @@ -170,7 +170,26 @@ do_animate("deny") return +/obj/machinery/door/airlock/attack_generic(mob/user) + if (MUTATION_FERAL in user.mutations) + user.setClickCooldown(DEFAULT_ATTACK_COOLDOWN*2) + playsound(loc, damage_hitsound, 50, 1) + attack_animation(user) + + if((MACHINE_IS_BROKEN(src)||!arePowerSystemsOn(src)) && density) + visible_message(SPAN_DANGER("\The [user] manages to pry \the [src] open!")) + open(1) + else + visible_message(SPAN_DANGER("\The [user] smashes into \the [src]!")) + damage_health(10) + return + ..() + /obj/machinery/door/attack_hand(mob/user) + if (MUTATION_FERAL in user.mutations) + attack_generic(user, 15) + return + ..() if (allowed(user) && operable()) if (density) diff --git a/code/game/turfs/simulated/wall_attacks.dm b/code/game/turfs/simulated/wall_attacks.dm index 4e83590c90e38..bfa606fd3f5b0 100644 --- a/code/game/turfs/simulated/wall_attacks.dm +++ b/code/game/turfs/simulated/wall_attacks.dm @@ -114,9 +114,9 @@ playsound(src, pick(GLOB.punch_sound), 20) if (MUTATION_FERAL in user.mutations) M.visible_message(SPAN_DANGER("[M.name] slams into \the [src]!"), SPAN_DANGER("You slam into \the [src]!")) - playsound(src, pick(GLOB.punch_sound), 45) - damage_health(5, DAMAGE_BRUTE) - user.setClickCooldown(DEFAULT_ATTACK_COOLDOWN*2) //Additional cooldown + playsound(src, 'sound/effects/clang.ogg', 45, 1) + damage_health(20, DAMAGE_BRUTE) + user.setClickCooldown(DEFAULT_ATTACK_COOLDOWN*5) //Additional cooldown attack_animation(user) else M.visible_message(SPAN_DANGER("[M.name] punches \the [src]!"), SPAN_DANGER("You punch \the [src]!")) diff --git a/code/modules/mechs/mech_interaction.dm b/code/modules/mechs/mech_interaction.dm index b69062bd8f014..1b26188a0a9ef 100644 --- a/code/modules/mechs/mech_interaction.dm +++ b/code/modules/mechs/mech_interaction.dm @@ -555,6 +555,7 @@ return /mob/living/exosuit/attack_generic(mob/user, damage, attack_message = "smashes into") + ..() if(damage) playsound(loc, body.damage_sound, 40, 1) diff --git a/code/modules/mob/living/silicon/robot/robot.dm b/code/modules/mob/living/silicon/robot/robot.dm index 8785bb07dc675..a73a3eff911c9 100644 --- a/code/modules/mob/living/silicon/robot/robot.dm +++ b/code/modules/mob/living/silicon/robot/robot.dm @@ -839,8 +839,11 @@ if(istype(user,/mob/living/carbon/human)) var/mob/living/carbon/human/H = user - if(H.species.can_shred(H)) - attack_generic(H, rand(30,50), "slashed") + if(H.species.can_shred(H) || (MUTATION_FERAL in H.mutations)) + attack_generic(H, rand(10,20), "slashed") + playsound(loc, 'sound/weapons/bite.ogg', 50, 1) + if (prob(20)) + playsound(loc, 'sound/effects/sparks1.ogg', 50, 1) return if(opened && !wiresexposed && (!istype(user, /mob/living/silicon))) diff --git a/code/modules/species/outsider/zombie.dm b/code/modules/species/outsider/zombie.dm index 92845268b1dd8..347806c253dc1 100644 --- a/code/modules/species/outsider/zombie.dm +++ b/code/modules/species/outsider/zombie.dm @@ -176,24 +176,61 @@ GLOBAL_LIST_INIT(zombie_species, list(\ addtimer(new Callback(src, .proc/handle_action, H), rand(10, 20)) +/datum/species/zombie/proc/is_valid_target(mob/living/T) + if (!istype(T, /mob/living/carbon/human)) //Ignore Diona and unconscious non-humans + if (istype(T, /mob/living/carbon/alien/diona)) + return FALSE + if (T.stat != CONSCIOUS) + return FALSE + + var/mob/living/carbon/human/H = T + if (H.is_species(SPECIES_ZOMBIE) || H.is_species(SPECIES_DIONA)) + return FALSE + + if (H.isSynthetic() && H.stat != CONSCIOUS) + return FALSE + + if (istype(T, /mob/living/exosuit)) + var/mob/living/exosuit/X = T + if (!LAZYLEN(X.pilots)) + return FALSE //Don't attack empty mechs + + return TRUE + +/datum/species/zombie/proc/is_consumable(mob/living/T) + if (!istype(T, /mob/living/carbon/human)) + return FALSE + + if (T.isSynthetic()) + return FALSE + + return is_valid_target(T) + +/datum/species/zombie/proc/is_being_consumed(mob/living/T, mob/living/carbon/human/H) + //Will exclude consumption candidates if there's another zombie on top of them + if (!is_consumable(T)) + return FALSE + for (var/mob/living/carbon/human/M in T.loc.contents) + if (M != H && M.stat == CONSCIOUS && M.is_species(SPECIES_ZOMBIE)) + return TRUE + return FALSE + /datum/species/zombie/proc/handle_action(mob/living/carbon/human/H) var/dist = 128 - for(var/mob/living/M in hearers(H, 15)) - if ((ishuman(M) || istype(M, /mob/living/exosuit)) && !M.is_species(SPECIES_ZOMBIE) && !M.is_species(SPECIES_DIONA)) //Don't attack fellow zombies, or diona - if (istype(M, /mob/living/exosuit)) - var/mob/living/exosuit/MC = M - if (!LAZYLEN(MC.pilots)) - continue //Don't attack empty mechs - if (M.stat == DEAD && target) + for (var/mob/living/M in hearers(H, 15)) + if (is_valid_target(M)) //Don't attack fellow zombies, or diona + if (target && M.stat != CONSCIOUS) continue //Only eat corpses when no living (and able) targets are around + if (is_being_consumed(M, H)) + continue //Don't queue up to eat var/D = get_dist(M, H) if (D <= dist * 0.5) //Must be significantly closer to change targets - target = M //For closest target + target = M //Switch to closest target dist = D H.setClickCooldown(DEFAULT_ATTACK_COOLDOWN*2) if (target) - if (target.is_species(SPECIES_ZOMBIE)) + if (!is_valid_target(target) || is_being_consumed(target, H)) target = null return @@ -203,25 +240,24 @@ GLOBAL_LIST_INIT(zombie_species, list(\ var/obj/obstacle = locate(type) in dir if (obstacle) H.face_atom(obstacle) - obstacle.attack_generic(H, 10, "smashes") + obstacle.attack_hand(H) break walk_to(H, target.loc, 1, H.move_intent.move_delay * 1.25) else - if (!target.lying) //Subdue meals - H.face_atom(target) + if ((is_consumable(target) && target.lying)) //Eat the victim + walk_to(H, target.loc, 0, H.move_intent.move_delay * 2.5) //Move over them + if (H.Adjacent(target)) //Check we're still next to them + H.consume() + else //Otherwise subdue them + H.face_atom(target) if (!H.zone_sel) H.zone_sel = new /obj/screen/zone_sel(null) H.zone_sel.selecting = BP_CHEST target.attack_hand(H) - else //Eat said meals - walk_to(H, target.loc, 0, H.move_intent.move_delay * 2.5) //Move over them - if (H.Adjacent(target)) //Check we're still next to them - H.consume() - for(var/mob/living/M in hearers(H, 15)) if (target == M) //If our target is still nearby return @@ -258,7 +294,7 @@ GLOBAL_LIST_INIT(zombie_species, list(\ . = ..() if (!.) return FALSE - if (!target || target.is_species(SPECIES_ZOMBIE)) + if (istype(target, /mob/living/carbon/human) && target.is_species(SPECIES_ZOMBIE)) to_chat(usr, SPAN_WARNING("They don't look very appetizing!")) return FALSE return TRUE @@ -266,9 +302,9 @@ GLOBAL_LIST_INIT(zombie_species, list(\ /datum/unarmed_attack/bite/sharp/zombie/apply_effects(mob/living/carbon/human/user, mob/living/carbon/human/target, attack_damage, zone) ..() admin_attack_log(user, target, "Bit their victim.", "Was bitten.", "bit") - if (!(target.species.name in GLOB.zombie_species) || target.is_species(SPECIES_DIONA) || target.isSynthetic()) //No need to check infection for FBPs + if (!istype(target, /mob/living/carbon/human) || !(target.species.name in GLOB.zombie_species) || target.is_species(SPECIES_DIONA) || target.isSynthetic()) //No need to check infection for FBPs return - target.adjustHalLoss(9) //To help bring down targets in voidsuits + target.adjustHalLoss(6) //To help bring down targets in voidsuits var/vuln = 1 - target.get_blocked_ratio(zone, DAMAGE_TOXIN, damage_flags = DAMAGE_FLAG_BIO) //Are they protected from bites? if (vuln > 0.05) if (prob(vuln * 100)) //Protective infection chance @@ -309,8 +345,6 @@ GLOBAL_LIST_INIT(zombie_species, list(\ M.bodytemperature += 7.5 if (prob(3)) to_chat(M, SPAN_WARNING(FONT_NORMAL(pick(GLOB.zombie_messages["stage1"])))) - if (M.getBrainLoss() < 20) - M.adjustBrainLoss(rand(1, 2)) if (true_dose >= 90) M.add_chemical_effect(CE_MIND, -2) @@ -356,6 +390,13 @@ GLOBAL_LIST_INIT(zombie_species, list(\ new /obj/effect/decal/cleanable/vomit(T) playsound(T, 'sound/effects/splat.ogg', 20, 1) + var/obj/item/held_l = get_equipped_item(slot_l_hand) + var/obj/item/held_r = get_equipped_item(slot_r_hand) + if(held_l) + drop_from_inventory(held_l) + if(held_r) + drop_from_inventory(held_r) + addtimer(new Callback(src, .proc/transform_zombie), 20) /mob/living/carbon/human/proc/transform_zombie() @@ -451,7 +492,7 @@ GLOBAL_LIST_INIT(zombie_species, list(\ src.visible_message(SPAN_DANGER("\The [src] hunkers down over \the [target], tearing into their flesh.")) playsound(loc, 'sound/effects/bonebreak3.ogg', 20, 1) - target.adjustHalLoss(50) + target.adjustHalLoss(25) if (do_after(src, 5 SECONDS, target, DO_DEFAULT | DO_USER_UNIQUE_ACT, INCAPACITATION_KNOCKOUT)) admin_attack_log(src, target, "Consumed their victim.", "Was consumed.", "consumed") @@ -476,6 +517,7 @@ GLOBAL_LIST_INIT(zombie_species, list(\ if (target.is_species(SPECIES_ZOMBIE)) //Just in case they turn whilst being eaten return + target.adjustHalLoss(25) target.apply_damage(rand(50, 60), DAMAGE_BRUTE, BP_CHEST) target.adjustBruteLoss(20) target.update_surgery() //Update broken ribcage sprites etc. From 288b72c6906666795d3e48c53d32bcda46db5d53 Mon Sep 17 00:00:00 2001 From: Sierra Helper <125094432+SierraHelper@users.noreply.github.com> Date: Sun, 17 Sep 2023 22:16:01 +0300 Subject: [PATCH 108/158] =?UTF-8?q?=D0=A7=D0=B5=D0=B9=D0=BD=D0=B4=D0=B6?= =?UTF-8?q?=D0=BB=D0=BE=D0=B3=20=D0=B4=D0=BB=D1=8F=20PR=20#1041=20[ci=20sk?= =?UTF-8?q?ip]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- html/changelogs/AutoChangeLog-sierra-pr-1041.yml | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-sierra-pr-1041.yml diff --git a/html/changelogs/AutoChangeLog-sierra-pr-1041.yml b/html/changelogs/AutoChangeLog-sierra-pr-1041.yml new file mode 100644 index 0000000000000..558d66598f13e --- /dev/null +++ b/html/changelogs/AutoChangeLog-sierra-pr-1041.yml @@ -0,0 +1,11 @@ +author: wb13 +delete-after: true +changes: + - bugfix: Zombies can now attack borgs and mechs, which were previously invulnerable + to them. + - bugfix: Mobs now drop any handheld items after zombifying. + - bugfix: Zombies can once again destroy doors, shutters, and unreinforced walls + -- albeit very slowly. + - tweak: Zombie NPCs are better at prioritizing prey, and will defend themselves + against non-human mobs. + - balance: Nerfs the pain damage of zombie attacks, reducing their ability to incapacitate. From 1c096f24c05de76135d46ed7cd7d1aff58309b09 Mon Sep 17 00:00:00 2001 From: Sierra Helper <125094432+SierraHelper@users.noreply.github.com> Date: Mon, 18 Sep 2023 01:16:51 +0000 Subject: [PATCH 109/158] =?UTF-8?q?=D0=90=D0=B2=D1=82=D0=BE=D0=BC=D0=B0?= =?UTF-8?q?=D1=82=D0=B8=D1=87=D0=B5=D1=81=D0=BA=D0=B0=D1=8F=20=D0=BA=D0=BE?= =?UTF-8?q?=D0=BC=D0=BF=D0=B8=D0=BB=D1=8F=D1=86=D0=B8=D1=8F=20=D1=87=D0=B5?= =?UTF-8?q?=D0=B9=D0=BD=D0=B4=D0=B6=D0=BB=D0=BE=D0=B3=D0=BE=D0=B2=20[ci=20?= =?UTF-8?q?skip]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- html/changelog.html | 20 +++++++++---------- html/changelogs/.all_changelog.yml | 10 ++++++++++ .../AutoChangeLog-sierra-pr-1041.yml | 11 ---------- 3 files changed, 20 insertions(+), 21 deletions(-) delete mode 100644 html/changelogs/AutoChangeLog-sierra-pr-1041.yml diff --git a/html/changelog.html b/html/changelog.html index 790f593ff9cf7..fa05d9d1db249 100644 --- a/html/changelog.html +++ b/html/changelog.html @@ -28,6 +28,16 @@

Sierra SS13

-->
+

18.09 - 2023

+

Обновления wb13:

+
+
Zombies can now attack borgs and mechs, which were previously invulnerable to them.
+
Mobs now drop any handheld items after zombifying.
+
Zombies can once again destroy doors, shutters, and unreinforced walls -- albeit very slowly.
+
Zombie NPCs are better at prioritizing prey, and will defend themselves against non-human mobs.
+
Nerfs the pain damage of zombie attacks, reducing their ability to incapacitate.
+
+

16.09 - 2023

Обновления Mucker, SuhEugene:

@@ -455,16 +465,6 @@

Обновления emmanuelbassil:

Fixed bug where a mob could not be buckled if mob was grabbing itself.
Grabs and pulls now properly release when you put a mob in a sleeper, cryopod, body scanner, or cryotube
- -

17.07 - 2023

-

Обновления Fre3bie:

-
-
Forehead writing is now removed after using the cosmetic surgery kit.
-
-

Обновления TheNightingale:

-
-
Adds species fall sounds for when you've fallen and can't get up.
-
Icons by Icons8
diff --git a/html/changelogs/.all_changelog.yml b/html/changelogs/.all_changelog.yml index a0070997f1887..236436d9e2965 100644 --- a/html/changelogs/.all_changelog.yml +++ b/html/changelogs/.all_changelog.yml @@ -21822,3 +21822,13 @@ DO NOT EDIT THIS FILE BY HAND! AUTOMATICALLY GENERATED BY sierra_genchangelog.p \u043C\u0443 \u0434\u043E\u0441\u0442\u0443\u043F\u044B \u0431\u043E\u0440\u0433\ \u0430\u043C \u0432\u043E\u0437\u0432\u0440\u0430\u0449\u0435\u043D\u044B -\ \ SuhEugene" +2023-09-18: + wb13: + - bugfix: Zombies can now attack borgs and mechs, which were previously invulnerable + to them. + - bugfix: Mobs now drop any handheld items after zombifying. + - bugfix: Zombies can once again destroy doors, shutters, and unreinforced walls + -- albeit very slowly. + - tweak: Zombie NPCs are better at prioritizing prey, and will defend themselves + against non-human mobs. + - balance: Nerfs the pain damage of zombie attacks, reducing their ability to incapacitate. diff --git a/html/changelogs/AutoChangeLog-sierra-pr-1041.yml b/html/changelogs/AutoChangeLog-sierra-pr-1041.yml deleted file mode 100644 index 558d66598f13e..0000000000000 --- a/html/changelogs/AutoChangeLog-sierra-pr-1041.yml +++ /dev/null @@ -1,11 +0,0 @@ -author: wb13 -delete-after: true -changes: - - bugfix: Zombies can now attack borgs and mechs, which were previously invulnerable - to them. - - bugfix: Mobs now drop any handheld items after zombifying. - - bugfix: Zombies can once again destroy doors, shutters, and unreinforced walls - -- albeit very slowly. - - tweak: Zombie NPCs are better at prioritizing prey, and will defend themselves - against non-human mobs. - - balance: Nerfs the pain damage of zombie attacks, reducing their ability to incapacitate. From f62e710df76246fc90eab37e9632ee92ee360a48 Mon Sep 17 00:00:00 2001 From: Sierra Helper <125094432+SierraHelper@users.noreply.github.com> Date: Tue, 19 Sep 2023 01:16:59 +0000 Subject: [PATCH 110/158] =?UTF-8?q?=D0=90=D0=B2=D1=82=D0=BE=D0=BC=D0=B0?= =?UTF-8?q?=D1=82=D0=B8=D1=87=D0=B5=D1=81=D0=BA=D0=B0=D1=8F=20=D0=BA=D0=BE?= =?UTF-8?q?=D0=BC=D0=BF=D0=B8=D0=BB=D1=8F=D1=86=D0=B8=D1=8F=20=D1=87=D0=B5?= =?UTF-8?q?=D0=B9=D0=BD=D0=B4=D0=B6=D0=BB=D0=BE=D0=B3=D0=BE=D0=B2=20[ci=20?= =?UTF-8?q?skip]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- html/changelog.html | 15 --------------- 1 file changed, 15 deletions(-) diff --git a/html/changelog.html b/html/changelog.html index fa05d9d1db249..7a514d9a790a0 100644 --- a/html/changelog.html +++ b/html/changelog.html @@ -450,21 +450,6 @@

Обновления gy1ta23:

The showers make sound.
- -

18.07 - 2023

-

Обновления TheNightingale:

-
-
Vitals monitors can now be upgraded with scanning modules to show broken bones and arterial bleeding.
-
Vitals monitors now show BP, BO and temperature by default.
-
-

Обновления emmanuelbassil:

-
-
Can now use grabs to put mobs in sleepers. This is already existing behavior for cryopods and bodyscanners.
-
Can no longer put a mob in a sleeper/cryotube/cryopod/body scanners if they are being grabbed by someone other than you.
-
Added eject verb to sleeper. Remember, you can use Alt+Click to eject people from sleepers.
-
Fixed bug where a mob could not be buckled if mob was grabbing itself.
-
Grabs and pulls now properly release when you put a mob in a sleeper, cryopod, body scanner, or cryotube
-
Icons by Icons8
From fd1384a65d4cbf9929c2c47fa127b531a661cb6e Mon Sep 17 00:00:00 2001 From: emmanuelbassil <6874235+emmanuelbassil@users.noreply.github.com> Date: Tue, 19 Sep 2023 19:40:55 +0300 Subject: [PATCH 111/158] [MIRROR] Attack() refactor fixes --- code/game/objects/items/stacks/medical.dm | 12 ++++++------ code/game/objects/items/stacks/nanopaste.dm | 2 ++ code/game/objects/items/weapons/material/coins.dm | 2 ++ code/game/objects/items/weapons/tools/weldingtool.dm | 8 +++++--- .../reagents/reagent_containers/glass/bottle.dm | 1 - code/modules/surgery/surgery.dm | 7 +++++++ 6 files changed, 22 insertions(+), 10 deletions(-) diff --git a/code/game/objects/items/stacks/medical.dm b/code/game/objects/items/stacks/medical.dm index 3ff9e374cd259..5f8e66c78ee0d 100644 --- a/code/game/objects/items/stacks/medical.dm +++ b/code/game/objects/items/stacks/medical.dm @@ -25,7 +25,6 @@ else . = TRUE -///Clickon() with medical stacks will never go past attack() because this proc will never return FALSE. If needed, this is where to change it. Returns TRUE if handled and cannot progress. /obj/item/stack/medical/attack(mob/living/carbon/M, mob/user) . = FALSE if (!istype(M)) @@ -179,11 +178,12 @@ if (..()) return TRUE - var/list/all_surgeries = GET_SINGLETON_SUBTYPE_MAP(/singleton/surgery_step) - for (var/singleton in all_surgeries) - var/singleton/surgery_step/S = all_surgeries[singleton] - if (S.name && S.tool_quality(src) && S.can_use(user, M, user.zone_sel.selecting, src)) - return FALSE + if (check_possible_surgeries(M, user)) + return FALSE + + var/turf/T = get_turf(M) + if (locate(/obj/machinery/optable, T) && user.a_intent == I_HELP) + return FALSE if (istype(M, /mob/living/carbon/human)) var/mob/living/carbon/human/H = M diff --git a/code/game/objects/items/stacks/nanopaste.dm b/code/game/objects/items/stacks/nanopaste.dm index cf6626c57ba1c..ead5fcf30640a 100644 --- a/code/game/objects/items/stacks/nanopaste.dm +++ b/code/game/objects/items/stacks/nanopaste.dm @@ -30,6 +30,8 @@ if (istype(M,/mob/living/carbon/human)) //Repairing robolimbs var/mob/living/carbon/human/H = M var/obj/item/organ/external/S = H.get_organ(user.zone_sel.selecting) + if (check_possible_surgeries(M, user)) + return FALSE if(!S) to_chat(user, SPAN_WARNING("\The [M] is missing that body part.")) diff --git a/code/game/objects/items/weapons/material/coins.dm b/code/game/objects/items/weapons/material/coins.dm index 3e6a92b1e7710..f8e9bb2c8743e 100644 --- a/code/game/objects/items/weapons/material/coins.dm +++ b/code/game/objects/items/weapons/material/coins.dm @@ -46,6 +46,8 @@ attack_self(user) return TRUE if (ismob(target)) + if (check_possible_surgeries(target, user)) + return FALSE if (user.a_intent == I_HURT) user.visible_message( SPAN_WARNING("\The [user] menaces \the [target] with \a [src]."), diff --git a/code/game/objects/items/weapons/tools/weldingtool.dm b/code/game/objects/items/weapons/tools/weldingtool.dm index 62f0b18210171..48a66a1674c5e 100644 --- a/code/game/objects/items/weapons/tools/weldingtool.dm +++ b/code/game/objects/items/weapons/tools/weldingtool.dm @@ -281,7 +281,6 @@ update_icon() /obj/item/weldingtool/attack(mob/living/M, mob/living/user) - . = FALSE if (ishuman(M)) var/target_zone = user.zone_sel.selecting var/mob/living/carbon/human/H = M @@ -290,6 +289,9 @@ if (!S || !BP_IS_ROBOTIC(S) || user.a_intent != I_HELP) return FALSE + if (check_possible_surgeries(M, user)) + return FALSE + if (BP_IS_BRITTLE(S)) to_chat(user, SPAN_WARNING("\The [M]'s [S.name] is hard and brittle - \the [src] cannot repair it.")) return TRUE @@ -300,8 +302,8 @@ if (S.robo_repair(15, DAMAGE_BRUTE, "some dents", src, user)) remove_fuel(1, user) - return TRUE - + return TRUE + else return FALSE /obj/item/weldingtool/IsFlameSource() return isOn() diff --git a/code/modules/reagents/reagent_containers/glass/bottle.dm b/code/modules/reagents/reagent_containers/glass/bottle.dm index 1e22725805cdc..df85553bac931 100644 --- a/code/modules/reagents/reagent_containers/glass/bottle.dm +++ b/code/modules/reagents/reagent_containers/glass/bottle.dm @@ -9,7 +9,6 @@ amount_per_transfer_from_this = 10 possible_transfer_amounts = "5;10;15;25;30;60" w_class = ITEM_SIZE_SMALL - item_flags = 0 obj_flags = 0 volume = 60 diff --git a/code/modules/surgery/surgery.dm b/code/modules/surgery/surgery.dm index a34bcdaa2e9fb..748285c2f09f3 100644 --- a/code/modules/surgery/surgery.dm +++ b/code/modules/surgery/surgery.dm @@ -258,3 +258,10 @@ GLOBAL_LIST_INIT(surgery_tool_exception_cache, new) /obj/item/stack/handle_post_surgery() use(1) + +/obj/item/proc/check_possible_surgeries(mob/living/carbon/M, mob/user) + var/list/all_surgeries = GET_SINGLETON_SUBTYPE_MAP(/singleton/surgery_step) + for (var/singleton in all_surgeries) + var/singleton/surgery_step/S = all_surgeries[singleton] + if (S.name && S.tool_quality(src) && S.can_use(user, M, user.zone_sel.selecting, src)) + return TRUE From e8372225d13dec741d4eb4ae08da39d74a582da0 Mon Sep 17 00:00:00 2001 From: wb13 <26555013+wb13@users.noreply.github.com> Date: Tue, 19 Sep 2023 19:46:05 +0300 Subject: [PATCH 112/158] [MIRROR] Fixes runtime when removing airlock electronics --- code/game/objects/structures/door_assembly.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/game/objects/structures/door_assembly.dm b/code/game/objects/structures/door_assembly.dm index 3eabe26cf6561..421c4481e3adb 100644 --- a/code/game/objects/structures/door_assembly.dm +++ b/code/game/objects/structures/door_assembly.dm @@ -199,7 +199,6 @@ return TRUE electronics.dropInto(loc) electronics.add_fingerprint(user) - electronics = null state = ASSEMBLY_STATE_WIRED update_state() playsound(src, 'sound/items/Crowbar.ogg', 50, TRUE) @@ -207,6 +206,7 @@ SPAN_NOTICE("\The [user] removes \the [src]'s [electronics.name] with \a [tool]."), SPAN_NOTICE("You remove \the [src]'s [electronics.name] with \the [tool].") ) + electronics = null return TRUE // Material Stack - Add glass/plating From 7f34b1442ba6aee1ded444140e3647466b6a2b2f Mon Sep 17 00:00:00 2001 From: Sierra Helper <125094432+SierraHelper@users.noreply.github.com> Date: Tue, 19 Sep 2023 19:56:40 +0300 Subject: [PATCH 113/158] =?UTF-8?q?=D0=A7=D0=B5=D0=B9=D0=BD=D0=B4=D0=B6?= =?UTF-8?q?=D0=BB=D0=BE=D0=B3=20=D0=B4=D0=BB=D1=8F=20PR=20#1044=20[ci=20sk?= =?UTF-8?q?ip]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- html/changelogs/AutoChangeLog-sierra-pr-1044.yml | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-sierra-pr-1044.yml diff --git a/html/changelogs/AutoChangeLog-sierra-pr-1044.yml b/html/changelogs/AutoChangeLog-sierra-pr-1044.yml new file mode 100644 index 0000000000000..6cdad4b755dca --- /dev/null +++ b/html/changelogs/AutoChangeLog-sierra-pr-1044.yml @@ -0,0 +1,9 @@ +author: emmanuelbassil +delete-after: true +changes: + - tweak: Bruise kits no longer patch up external damage on mobs placed on optables + if on help intent. Need to switch to non-help intent. This is to prevent accidental + closures during surgeries. This does not apply to ghetto surgeries. + - bugfix: Fixes welders and nano-paste not working during surgeries. + - bugfix: Fixes coins not working in ghetto robotic surgeries. + - bugfix: Fixes being unable to drink from glass bottles. From 77f1203594ff4569c33996dc3581baa6d4a37e4b Mon Sep 17 00:00:00 2001 From: Sierra Helper <125094432+SierraHelper@users.noreply.github.com> Date: Tue, 19 Sep 2023 23:48:07 +0300 Subject: [PATCH 114/158] [MIRROR] guns ignoring safety on harm intent is a preference Co-authored-by: That0nePerson <63219222+That0nePerson@users.noreply.github.com> --- code/modules/client/preference_setup/global/preferences.dm | 4 ++++ code/modules/projectiles/gun.dm | 6 +----- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/code/modules/client/preference_setup/global/preferences.dm b/code/modules/client/preference_setup/global/preferences.dm index a1d6c3cc3179d..21fea4f93dc16 100644 --- a/code/modules/client/preference_setup/global/preferences.dm +++ b/code/modules/client/preference_setup/global/preferences.dm @@ -217,6 +217,10 @@ var/global/list/_client_preferences_by_type description = "Draw gun based on intent" key = "HOLSTER_ON_INTENT" +/datum/client_preference/safety_toggle_on_intent + description = "Ignore safety on harm intent" + key = "SAFETY_ON_INTENT" + /datum/client_preference/show_credits description = "Show End Titles" key = "SHOW_CREDITS" diff --git a/code/modules/projectiles/gun.dm b/code/modules/projectiles/gun.dm index c76ea4ee684e0..c4ea836edeb14 100644 --- a/code/modules/projectiles/gun.dm +++ b/code/modules/projectiles/gun.dm @@ -234,15 +234,11 @@ return if(safety()) - // [SIERRA-EDIT] - Mirror revert - // handle_click_safety(user) // SIERRA-EDIT - ORIGINAL - if(user.a_intent == I_HURT && user.skill_check(SKILL_WEAPONS, SKILL_EXPERIENCED)) + if(user.a_intent == I_HURT && user.skill_check(SKILL_WEAPONS, SKILL_EXPERIENCED) && user.client?.get_preference_value(/datum/client_preference/safety_toggle_on_intent) == GLOB.PREF_YES) toggle_safety(user) else handle_click_safety(user) return - // [/SIERRA-EDIT] - return if(world.time < next_fire_time) if (world.time % 3) //to prevent spam From 19af548b4eb51033ec5934feed2e66b39070bd13 Mon Sep 17 00:00:00 2001 From: Sierra Helper <125094432+SierraHelper@users.noreply.github.com> Date: Tue, 19 Sep 2023 23:48:41 +0300 Subject: [PATCH 115/158] =?UTF-8?q?=D0=A7=D0=B5=D0=B9=D0=BD=D0=B4=D0=B6?= =?UTF-8?q?=D0=BB=D0=BE=D0=B3=20=D0=B4=D0=BB=D1=8F=20PR=20#1045=20[ci=20sk?= =?UTF-8?q?ip]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- html/changelogs/AutoChangeLog-sierra-pr-1045.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-sierra-pr-1045.yml diff --git a/html/changelogs/AutoChangeLog-sierra-pr-1045.yml b/html/changelogs/AutoChangeLog-sierra-pr-1045.yml new file mode 100644 index 0000000000000..366d1acd3ac82 --- /dev/null +++ b/html/changelogs/AutoChangeLog-sierra-pr-1045.yml @@ -0,0 +1,4 @@ +author: That0nePerson +delete-after: true +changes: + - tweak: Guns ignoring their safety on harm intent or not is now a preference From b247c2df332a375394e4c94cba2b4a201e7b216b Mon Sep 17 00:00:00 2001 From: Sierra Helper <125094432+SierraHelper@users.noreply.github.com> Date: Wed, 20 Sep 2023 01:16:14 +0000 Subject: [PATCH 116/158] =?UTF-8?q?=D0=90=D0=B2=D1=82=D0=BE=D0=BC=D0=B0?= =?UTF-8?q?=D1=82=D0=B8=D1=87=D0=B5=D1=81=D0=BA=D0=B0=D1=8F=20=D0=BA=D0=BE?= =?UTF-8?q?=D0=BC=D0=BF=D0=B8=D0=BB=D1=8F=D1=86=D0=B8=D1=8F=20=D1=87=D0=B5?= =?UTF-8?q?=D0=B9=D0=BD=D0=B4=D0=B6=D0=BB=D0=BE=D0=B3=D0=BE=D0=B2=20[ci=20?= =?UTF-8?q?skip]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- html/changelog.html | 13 +++++++++++++ html/changelogs/.all_changelog.yml | 10 ++++++++++ html/changelogs/AutoChangeLog-sierra-pr-1044.yml | 9 --------- html/changelogs/AutoChangeLog-sierra-pr-1045.yml | 4 ---- 4 files changed, 23 insertions(+), 13 deletions(-) delete mode 100644 html/changelogs/AutoChangeLog-sierra-pr-1044.yml delete mode 100644 html/changelogs/AutoChangeLog-sierra-pr-1045.yml diff --git a/html/changelog.html b/html/changelog.html index 7a514d9a790a0..fac200a356d77 100644 --- a/html/changelog.html +++ b/html/changelog.html @@ -28,6 +28,19 @@

Sierra SS13

-->
+

20.09 - 2023

+

Обновления That0nePerson:

+
+
Guns ignoring their safety on harm intent or not is now a preference
+
+

Обновления emmanuelbassil:

+
+
Bruise kits no longer patch up external damage on mobs placed on optables if on help intent. Need to switch to non-help intent. This is to prevent accidental closures during surgeries. This does not apply to ghetto surgeries.
+
Fixes welders and nano-paste not working during surgeries.
+
Fixes coins not working in ghetto robotic surgeries.
+
Fixes being unable to drink from glass bottles.
+
+

18.09 - 2023

Обновления wb13:

diff --git a/html/changelogs/.all_changelog.yml b/html/changelogs/.all_changelog.yml index 236436d9e2965..6a1c6f3f6b2db 100644 --- a/html/changelogs/.all_changelog.yml +++ b/html/changelogs/.all_changelog.yml @@ -21832,3 +21832,13 @@ DO NOT EDIT THIS FILE BY HAND! AUTOMATICALLY GENERATED BY sierra_genchangelog.p - tweak: Zombie NPCs are better at prioritizing prey, and will defend themselves against non-human mobs. - balance: Nerfs the pain damage of zombie attacks, reducing their ability to incapacitate. +2023-09-20: + That0nePerson: + - tweak: Guns ignoring their safety on harm intent or not is now a preference + emmanuelbassil: + - tweak: Bruise kits no longer patch up external damage on mobs placed on optables + if on help intent. Need to switch to non-help intent. This is to prevent accidental + closures during surgeries. This does not apply to ghetto surgeries. + - bugfix: Fixes welders and nano-paste not working during surgeries. + - bugfix: Fixes coins not working in ghetto robotic surgeries. + - bugfix: Fixes being unable to drink from glass bottles. diff --git a/html/changelogs/AutoChangeLog-sierra-pr-1044.yml b/html/changelogs/AutoChangeLog-sierra-pr-1044.yml deleted file mode 100644 index 6cdad4b755dca..0000000000000 --- a/html/changelogs/AutoChangeLog-sierra-pr-1044.yml +++ /dev/null @@ -1,9 +0,0 @@ -author: emmanuelbassil -delete-after: true -changes: - - tweak: Bruise kits no longer patch up external damage on mobs placed on optables - if on help intent. Need to switch to non-help intent. This is to prevent accidental - closures during surgeries. This does not apply to ghetto surgeries. - - bugfix: Fixes welders and nano-paste not working during surgeries. - - bugfix: Fixes coins not working in ghetto robotic surgeries. - - bugfix: Fixes being unable to drink from glass bottles. diff --git a/html/changelogs/AutoChangeLog-sierra-pr-1045.yml b/html/changelogs/AutoChangeLog-sierra-pr-1045.yml deleted file mode 100644 index 366d1acd3ac82..0000000000000 --- a/html/changelogs/AutoChangeLog-sierra-pr-1045.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: That0nePerson -delete-after: true -changes: - - tweak: Guns ignoring their safety on harm intent or not is now a preference From b8ded81700d0e62784932a3cabdf908458a0f302 Mon Sep 17 00:00:00 2001 From: wb13 <26555013+wb13@users.noreply.github.com> Date: Wed, 20 Sep 2023 15:40:59 +0300 Subject: [PATCH 117/158] [MIRROR] Installing items using a gripper no longer fails sanity checks --- code/_onclick/item_attack.dm | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/code/_onclick/item_attack.dm b/code/_onclick/item_attack.dm index 2f5378278baba..180465f46795c 100644 --- a/code/_onclick/item_attack.dm +++ b/code/_onclick/item_attack.dm @@ -217,10 +217,15 @@ avoid code duplication. This includes items that may sometimes act as a standard if (!silent) FEEDBACK_UNEQUIP_FAILURE(src, tool) return FALSE - if (HAS_FLAGS(flags, SANITY_CHECK_TOOL_IN_HAND) && get_active_hand() != tool) - if (!silent) - FEEDBACK_FAILURE(src, "\The [tool] must stay in your active hand.") - return FALSE + if (HAS_FLAGS(flags, SANITY_CHECK_TOOL_IN_HAND)) + var/active = get_active_hand() + if (istype(active, /obj/item/gripper)) + var/obj/item/gripper/gripper = active + active = gripper.wrapped + if (active != tool) + if (!silent) + FEEDBACK_FAILURE(src, "\The [tool] must stay in your active hand.") + return FALSE return TRUE From a41a2f9ae10cc52a6184c2786d486480c79bf47f Mon Sep 17 00:00:00 2001 From: Sierra Helper <125094432+SierraHelper@users.noreply.github.com> Date: Wed, 20 Sep 2023 20:51:56 +0300 Subject: [PATCH 118/158] =?UTF-8?q?=D0=A7=D0=B5=D0=B9=D0=BD=D0=B4=D0=B6?= =?UTF-8?q?=D0=BB=D0=BE=D0=B3=20=D0=B4=D0=BB=D1=8F=20PR=20#1047=20[ci=20sk?= =?UTF-8?q?ip]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- html/changelogs/AutoChangeLog-sierra-pr-1047.yml | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-sierra-pr-1047.yml diff --git a/html/changelogs/AutoChangeLog-sierra-pr-1047.yml b/html/changelogs/AutoChangeLog-sierra-pr-1047.yml new file mode 100644 index 0000000000000..dd0641341fa23 --- /dev/null +++ b/html/changelogs/AutoChangeLog-sierra-pr-1047.yml @@ -0,0 +1,5 @@ +author: wb13 +delete-after: true +changes: + - bugfix: Installing items using a gripper no longer causes errors. This mainly + includes airlock electronics. From 4ad7172a93a82a8c2e7a5e78c74632e9d33abc35 Mon Sep 17 00:00:00 2001 From: Sierra Helper <125094432+SierraHelper@users.noreply.github.com> Date: Thu, 21 Sep 2023 01:16:09 +0000 Subject: [PATCH 119/158] =?UTF-8?q?=D0=90=D0=B2=D1=82=D0=BE=D0=BC=D0=B0?= =?UTF-8?q?=D1=82=D0=B8=D1=87=D0=B5=D1=81=D0=BA=D0=B0=D1=8F=20=D0=BA=D0=BE?= =?UTF-8?q?=D0=BC=D0=BF=D0=B8=D0=BB=D1=8F=D1=86=D0=B8=D1=8F=20=D1=87=D0=B5?= =?UTF-8?q?=D0=B9=D0=BD=D0=B4=D0=B6=D0=BB=D0=BE=D0=B3=D0=BE=D0=B2=20[ci=20?= =?UTF-8?q?skip]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- html/changelog.html | 6 ++++++ html/changelogs/.all_changelog.yml | 4 ++++ html/changelogs/AutoChangeLog-sierra-pr-1047.yml | 5 ----- 3 files changed, 10 insertions(+), 5 deletions(-) delete mode 100644 html/changelogs/AutoChangeLog-sierra-pr-1047.yml diff --git a/html/changelog.html b/html/changelog.html index fac200a356d77..61016a1f57bc8 100644 --- a/html/changelog.html +++ b/html/changelog.html @@ -28,6 +28,12 @@

Sierra SS13

-->
+

21.09 - 2023

+

Обновления wb13:

+
+
Installing items using a gripper no longer causes errors. This mainly includes airlock electronics.
+
+

20.09 - 2023

Обновления That0nePerson:

diff --git a/html/changelogs/.all_changelog.yml b/html/changelogs/.all_changelog.yml index 6a1c6f3f6b2db..0e878915c419b 100644 --- a/html/changelogs/.all_changelog.yml +++ b/html/changelogs/.all_changelog.yml @@ -21842,3 +21842,7 @@ DO NOT EDIT THIS FILE BY HAND! AUTOMATICALLY GENERATED BY sierra_genchangelog.p - bugfix: Fixes welders and nano-paste not working during surgeries. - bugfix: Fixes coins not working in ghetto robotic surgeries. - bugfix: Fixes being unable to drink from glass bottles. +2023-09-21: + wb13: + - bugfix: Installing items using a gripper no longer causes errors. This mainly + includes airlock electronics. diff --git a/html/changelogs/AutoChangeLog-sierra-pr-1047.yml b/html/changelogs/AutoChangeLog-sierra-pr-1047.yml deleted file mode 100644 index dd0641341fa23..0000000000000 --- a/html/changelogs/AutoChangeLog-sierra-pr-1047.yml +++ /dev/null @@ -1,5 +0,0 @@ -author: wb13 -delete-after: true -changes: - - bugfix: Installing items using a gripper no longer causes errors. This mainly - includes airlock electronics. From 44fc1abb1d39cb96056128bb47091c66df8349a6 Mon Sep 17 00:00:00 2001 From: emmanuelbassil <6874235+emmanuelbassil@users.noreply.github.com> Date: Thu, 21 Sep 2023 17:01:13 +0300 Subject: [PATCH 120/158] [MIRROR] Fixes #34153 --- code/game/objects/structures/bedsheet_bin.dm | 11 +++++------ .../objects/structures/stool_bed_chair_nest/bed.dm | 4 ++-- .../objects/structures/stool_bed_chair_nest/stools.dm | 2 +- .../materials/definitions/materials_organic.dm | 4 ++-- test/check-paths.sh | 2 +- 5 files changed, 11 insertions(+), 12 deletions(-) diff --git a/code/game/objects/structures/bedsheet_bin.dm b/code/game/objects/structures/bedsheet_bin.dm index 294c464ae334a..1ded51310c401 100644 --- a/code/game/objects/structures/bedsheet_bin.dm +++ b/code/game/objects/structures/bedsheet_bin.dm @@ -19,16 +19,15 @@ LINEN BINS throw_range = 2 w_class = ITEM_SIZE_SMALL -/obj/item/bedsheet/attackby(obj/item/I, mob/user) - if(is_sharp(I)) - user.visible_message(SPAN_NOTICE("\The [user] begins cutting up \the [src] with \a [I]."), SPAN_NOTICE("You begin cutting up \the [src] with \the [I].")) - if(do_after(user, 5 SECONDS, src, DO_REPAIR_CONSTRUCT)) +/obj/item/bedsheet/use_tool(obj/item/tool, mob/living/user, list/click_params) + if (is_sharp(tool)) + user.visible_message(SPAN_NOTICE("\The [user] begins cutting up \the [src] with \a [tool]."), SPAN_NOTICE("You begin cutting up \the [src] with \the [tool].")) + if (do_after(user, 5 SECONDS, src, DO_REPAIR_CONSTRUCT)) to_chat(user, SPAN_NOTICE("You cut \the [src] into pieces!")) for(var/i in 1 to rand(2,5)) new /obj/item/reagent_containers/glass/rag(get_turf(src)) qdel(src) - return - ..() + return TRUE /obj/item/bedsheet/blue icon_state = "sheetblue" diff --git a/code/game/objects/structures/stool_bed_chair_nest/bed.dm b/code/game/objects/structures/stool_bed_chair_nest/bed.dm index 33bb5fa60eb19..0243362d4ed15 100644 --- a/code/game/objects/structures/stool_bed_chair_nest/bed.dm +++ b/code/game/objects/structures/stool_bed_chair_nest/bed.dm @@ -113,8 +113,8 @@ add_padding(padding_type) return TRUE - // Wirecutters - Remove padding - if (isWirecutter(tool)) + // Sharp items - Remove padding + if (is_sharp(tool)) if (!padding_material) USE_FEEDBACK_FAILURE("\The [src] has no padding to remove.") return TRUE diff --git a/code/game/objects/structures/stool_bed_chair_nest/stools.dm b/code/game/objects/structures/stool_bed_chair_nest/stools.dm index bb25a9df415f1..e21c6a04a46a9 100644 --- a/code/game/objects/structures/stool_bed_chair_nest/stools.dm +++ b/code/game/objects/structures/stool_bed_chair_nest/stools.dm @@ -147,7 +147,7 @@ var/global/list/stool_cache = list() //haha stool to_chat(user, "You add padding to \the [src].") add_padding(padding_type) return - else if(isWirecutter(W)) + else if (is_sharp(W)) if(!padding_material) to_chat(user, "\The [src] has no padding to remove.") return diff --git a/code/modules/materials/definitions/materials_organic.dm b/code/modules/materials/definitions/materials_organic.dm index fb0b9b884c1b8..051d623cf6b94 100644 --- a/code/modules/materials/definitions/materials_organic.dm +++ b/code/modules/materials/definitions/materials_organic.dm @@ -61,7 +61,7 @@ flags = MATERIAL_PADDING brute_armor = 1 conductive = 0 - stack_type = null + stack_type = /obj/item/stack/material/cloth hidden_from_codex = TRUE construction_difficulty = MATERIAL_NORMAL_DIY @@ -133,7 +133,7 @@ sheet_singular_name = "tile" sheet_plural_name = "tiles" conductive = 0 - stack_type = null + stack_type = /obj/item/stack/tile/carpet construction_difficulty = MATERIAL_NORMAL_DIY /material/skin diff --git a/test/check-paths.sh b/test/check-paths.sh index 194b7c6e0d776..a419f41432cac 100755 --- a/test/check-paths.sh +++ b/test/check-paths.sh @@ -57,7 +57,7 @@ exactly 0 "simulated = 0/1" 'simulated\s*=\s*\d' -P exactly 2 "var/ in proc arguments" '(^/[^/].+/.+?\(.*?)var/' -P exactly 0 "tmp/ vars" 'var.*/tmp/' -P exactly 6 "uses of .len" '\.len\b' -P -exactly 389 "attackby() override" '\/attackby\((.*)\)' -P +exactly 388 "attackby() override" '\/attackby\((.*)\)' -P exactly 15 "uses of examine()" '[.|\s]examine\(' -P # If this fails it's likely because you used '/atom/proc/examine(mob)' instead of '/proc/examinate(mob, atom)' - Exception: An examine()-proc may call other examine()-procs exactly 7 "direct modifications of overlays list" '\boverlays((\s*[|^=+&-])|(\.(Cut)|(Add)|(Copy)|(Remove)|(Remove)))' -P # With the potential exception of << if you increase any of these numbers you're probably doing it wrong From 491866803c4942677511047b0f10cbbdce36a607 Mon Sep 17 00:00:00 2001 From: Sierra Helper <125094432+SierraHelper@users.noreply.github.com> Date: Thu, 21 Sep 2023 18:30:59 +0300 Subject: [PATCH 121/158] =?UTF-8?q?=D0=A7=D0=B5=D0=B9=D0=BD=D0=B4=D0=B6?= =?UTF-8?q?=D0=BB=D0=BE=D0=B3=20=D0=B4=D0=BB=D1=8F=20PR=20#1052=20[ci=20sk?= =?UTF-8?q?ip]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- html/changelogs/AutoChangeLog-sierra-pr-1052.yml | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-sierra-pr-1052.yml diff --git a/html/changelogs/AutoChangeLog-sierra-pr-1052.yml b/html/changelogs/AutoChangeLog-sierra-pr-1052.yml new file mode 100644 index 0000000000000..1483abb748404 --- /dev/null +++ b/html/changelogs/AutoChangeLog-sierra-pr-1052.yml @@ -0,0 +1,6 @@ +author: emmanuelbassil +delete-after: true +changes: + - bugfix: Padded beds and brown bar stools now properly drop cloth and carpet respectively + when padding is removed. + - tweak: Can now remove padding with any sharp item, not only wirecutters. From c30fc33a1ee9a944062d4f395c64062db3b8b12c Mon Sep 17 00:00:00 2001 From: MuckerMayhem <1161516+MuckerMayhem@users.noreply.github.com> Date: Thu, 21 Sep 2023 17:01:05 +0300 Subject: [PATCH 122/158] [MIRROR] allow examining of items people are wearing --- code/game/objects/items.dm | 9 +++++++++ code/modules/clothing/_clothing.dm | 4 +++- 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/code/game/objects/items.dm b/code/game/objects/items.dm index 296aef917200c..3511e07031eab 100644 --- a/code/game/objects/items.dm +++ b/code/game/objects/items.dm @@ -885,6 +885,8 @@ modules/mob/living/carbon/human/life.dm if you die, you will be zoomed out. var/ID = GetIdCard() if(ID) . += " \[Look at ID\]" + else + . += " \[?\]" /obj/item/proc/on_active_hand(mob/M) @@ -951,3 +953,10 @@ modules/mob/living/carbon/human/life.dm if you die, you will be zoomed out. /// Virtual for behavior to do after successful do_after if equip_delay is set /obj/item/proc/equip_delay_after(mob/user, slot, equip_flags) return + +/obj/item/OnTopic(href, href_list, datum/topic_state/state) + . = ..() + + if (href_list["examine"]) + examinate(usr, src) + return TOPIC_HANDLED diff --git a/code/modules/clothing/_clothing.dm b/code/modules/clothing/_clothing.dm index 8c92136887814..6dfad07833ae1 100644 --- a/code/modules/clothing/_clothing.dm +++ b/code/modules/clothing/_clothing.dm @@ -188,13 +188,15 @@ return STATUS_INTERACTIVE /obj/item/clothing/OnTopic(user, list/href_list, datum/topic_state/state) + . = ..() + if(href_list["list_ungabunga"]) var/list/visible = get_visible_accessories() if (length(visible)) var/list/display = list() for (var/obj/item/clothing/accessory/A in visible) if (!(A.accessory_flags & ACCESSORY_HIDDEN)) - display += "[icon2html(A, user)] \a [A]" + display += "[icon2html(A, user)] \a [A]\[?\]" to_chat(user, "Attached to \the [src] are [english_list(display)].") return TOPIC_HANDLED if(href_list["list_armor_damage"]) From 7a158e69ada1166e32879b3d0cd95ac1efc58419 Mon Sep 17 00:00:00 2001 From: Sierra Helper <125094432+SierraHelper@users.noreply.github.com> Date: Thu, 21 Sep 2023 19:15:35 +0300 Subject: [PATCH 123/158] =?UTF-8?q?=D0=A7=D0=B5=D0=B9=D0=BD=D0=B4=D0=B6?= =?UTF-8?q?=D0=BB=D0=BE=D0=B3=20=D0=B4=D0=BB=D1=8F=20PR=20#1051=20[ci=20sk?= =?UTF-8?q?ip]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- html/changelogs/AutoChangeLog-sierra-pr-1051.yml | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-sierra-pr-1051.yml diff --git a/html/changelogs/AutoChangeLog-sierra-pr-1051.yml b/html/changelogs/AutoChangeLog-sierra-pr-1051.yml new file mode 100644 index 0000000000000..b36582831b016 --- /dev/null +++ b/html/changelogs/AutoChangeLog-sierra-pr-1051.yml @@ -0,0 +1,5 @@ +author: Mucker +delete-after: true +changes: + - rscadd: You can now examine items people are wearing by clicking the '?' next + to items listed when examine a person. From 1e4d37f8608b6a7e7e9e33f1c69adf84d01ea6e7 Mon Sep 17 00:00:00 2001 From: SomeAngryMiner <53237389+SomeAngryMiner@users.noreply.github.com> Date: Thu, 21 Sep 2023 16:55:58 +0300 Subject: [PATCH 124/158] [MIRROR] even more sprite fixes --- code/game/machinery/cryopod.dm | 6 +- .../objects/items/stacks/tiles/tile_types.dm | 1 + .../clothing/spacesuits/miscellaneous.dm | 1 + .../detectivework/microscope/dnascanner.dm | 1 - code/modules/paperwork/papershredder.dm | 2 +- code/modules/persistence/noticeboards.dm | 10 +- icons/mob/light_overlays.dmi | Bin 3264 -> 3242 bytes icons/obj/light_overlays.dmi | Bin 2474 -> 2513 bytes icons/obj/machines/medical/bodyscanner.dmi | Bin 19860 -> 21636 bytes icons/obj/machines/robot_charger.dmi | Bin 4689 -> 4780 bytes maps/away/mining/mining-signal.dmm | 130 +++++++----------- .../exoplanet_ruins/oldlab/oldlab.dmm | 9 +- 12 files changed, 66 insertions(+), 94 deletions(-) diff --git a/code/game/machinery/cryopod.dm b/code/game/machinery/cryopod.dm index 22ed99086c848..8f8cf922d2778 100644 --- a/code/game/machinery/cryopod.dm +++ b/code/game/machinery/cryopod.dm @@ -199,9 +199,9 @@ desc = "A man-sized pod for entering suspended animation. Dubbed 'cryocoffin' by more cynical spacers, it is pretty barebone, counting on stasis system to keep the victim alive rather than packing extended supply of food or air. Can be ordered with symbols of common religious denominations to be used in space funerals too." on_store_name = "Life Pod Oversight" time_till_despawn = 20 MINUTES - icon_state = "redpod0" - base_icon_state = "redpod0" - occupied_icon_state = "redpod1" + icon_state = "lifepod_0" + base_icon_state = "lifepod_0" + occupied_icon_state = "lifepod_1" var/launched = 0 var/datum/gas_mixture/airtank diff --git a/code/game/objects/items/stacks/tiles/tile_types.dm b/code/game/objects/items/stacks/tiles/tile_types.dm index b9bf5e0070f54..337d5b977d70d 100644 --- a/code/game/objects/items/stacks/tiles/tile_types.dm +++ b/code/game/objects/items/stacks/tiles/tile_types.dm @@ -14,6 +14,7 @@ randpixel = 7 w_class = ITEM_SIZE_NORMAL max_amount = 100 + icon_state = "tile" icon = 'icons/obj/tiles.dmi' force = 1 diff --git a/code/modules/clothing/spacesuits/miscellaneous.dm b/code/modules/clothing/spacesuits/miscellaneous.dm index e538cd941c3f4..fcba02a7c2641 100644 --- a/code/modules/clothing/spacesuits/miscellaneous.dm +++ b/code/modules/clothing/spacesuits/miscellaneous.dm @@ -57,5 +57,6 @@ name = "spacesuit helmet" desc = "A special helmet designed for work in a hazardous, low-pressure environment. The tinting can be toggled for flash protection at the cost of worse visibility." icon_state = "spacebowl" + item_state = "spacebowl" light_overlay = "yellow_light" tinted = FALSE diff --git a/code/modules/detectivework/microscope/dnascanner.dm b/code/modules/detectivework/microscope/dnascanner.dm index e47850d1319a4..5ffddc1bfd22f 100644 --- a/code/modules/detectivework/microscope/dnascanner.dm +++ b/code/modules/detectivework/microscope/dnascanner.dm @@ -104,7 +104,6 @@ if(bloodsamp) var/obj/item/paper/P = new(src) P.SetName("[src] report #[++report_num]: [bloodsamp.name]") - P.stamped = list(/obj/item/stamp) P.SetOverlays("paper_stamped") var/data = "No scan information available." if(bloodsamp.dna != null || bloodsamp.trace_dna != null) diff --git a/code/modules/paperwork/papershredder.dm b/code/modules/paperwork/papershredder.dm index d7db824017447..7baa3ef57133d 100644 --- a/code/modules/paperwork/papershredder.dm +++ b/code/modules/paperwork/papershredder.dm @@ -133,7 +133,7 @@ /obj/item/shreddedp name = "shredded paper" - icon = 'icons/obj/paper.dmi' + icon = 'icons/obj/machines/bureaucracy/papershredder.dmi' icon_state = "shredp" randpixel = 5 throwforce = 0 diff --git a/code/modules/persistence/noticeboards.dm b/code/modules/persistence/noticeboards.dm index 5179ee17158a5..5e15834195e01 100644 --- a/code/modules/persistence/noticeboards.dm +++ b/code/modules/persistence/noticeboards.dm @@ -214,33 +214,33 @@ P.SetName("Memo RE: proper analysis procedure") P.info = "
We keep test dummies in pens here for a reason, so standard procedure should be to activate newfound alien artifacts and place the two in close proximity. Promising items I might even approve monkey testing on." P.stamped = list(/obj/item/stamp/rd) - P.AddOverlays("paper_stamped_rd") + P.AddOverlays("paper_stamp-circle") add_paper(P, skip_icon_update = TRUE) P = new() P.SetName("Memo RE: materials gathering") P.info = "Corasang,
the hands-on approach to gathering our samples may very well be slow at times, but it's safer than allowing the blundering miners to roll willy-nilly over our dig sites in their mechs, destroying everything in the process. And don't forget the escavation tools on your way out there!
- R.W" P.stamped = list(/obj/item/stamp/rd) - P.AddOverlays("paper_stamped_rd") + P.AddOverlays("paper_stamp-circle") add_paper(P, skip_icon_update = TRUE) P = new() P.SetName("Memo RE: ethical quandaries") P.info = "Darion-

I don't care what his rank is, our business is that of science and knowledge - questions of moral application do not come into this. Sure, so there are those who would employ the energy-wave particles my modified device has managed to abscond for their own personal gain, but I can hardly see the practical benefits of some of these artifacts our benefactors left behind. Ward--" P.stamped = list(/obj/item/stamp/rd) - P.AddOverlays("paper_stamped_rd") + P.AddOverlays("paper_stamp-circle") add_paper(P, skip_icon_update = TRUE) P = new() P.SetName("READ ME! Before you people destroy any more samples") P.info = "how many times do i have to tell you people, these xeno-arch samples are del-i-cate, and should be handled so! careful application of a focussed, concentrated heat or some corrosive liquids should clear away the extraneous carbon matter, while application of an energy beam will most decidedly destroy it entirely - like someone did to the chemical dispenser! W, the one who signs your paychecks" P.stamped = list(/obj/item/stamp/rd) - P.AddOverlays("paper_stamped_rd") + P.AddOverlays("paper_stamp-circle") add_paper(P, skip_icon_update = TRUE) P = new() P.SetName("Reminder regarding the anomalous material suits") P.info = "Do you people think the anomaly suits are cheap to come by? I'm about a hair trigger away from instituting a log book for the damn things. Only wear them if you're going out for a dig, and for god's sake don't go tramping around in them unless you're field testing something, R" P.stamped = list(/obj/item/stamp/rd) - P.AddOverlays("paper_stamped_rd") + P.AddOverlays("paper_stamp-circle") add_paper(P) diff --git a/icons/mob/light_overlays.dmi b/icons/mob/light_overlays.dmi index ff92cea1dabacfe829740e24603b6dd5692c90bd..688fb9575b440068a330cd5372396ffac26551a1 100644 GIT binary patch delta 2798 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 N!L6OF8Z3Mg{sVx%wE6%5 diff --git a/icons/obj/light_overlays.dmi b/icons/obj/light_overlays.dmi index 65ce38b92a26312bcbf216cc57acd499d9a78893..48b4d9e697b731bec01529cd088db5d7b2cd5cf2 100644 GIT binary patch literal 2513 zcmaJ@c{tSH8vl-AETLbdne3z(#2`Xx3Kfzi`-n#KE5pQ4rr{QbCPTJpFL{enXL@PPmjnwgc-DA|G#Cr@+W+Uch@ zi@b7WzB}ww%)Qs%Ygq%o?j(kPPkIwA2&Wwm_kByu?lYQz3U_vzvy`)NW(Adxbe;8$ zrL_wxz3FdS28!Ci9;tdH<7l!Wqf2m1rg;0v*ES{49^)L2`dat_U$W7%WnhZKYtxQr*% z{9yv7`VHY?MUe!gI;sY)*GhhNuA_hgo3*(0{Jcbft!^V#3Sr)3fh}qEXCC^d0vNC0qYOgadqz#x8AKzAPI}n2AiCo zo2e!w?}g~7c$7EMhMu*}L(Lqd2hdZh{PABO!p*3Kmol}vdIX)cTt{(SQ6d&q2X6jj#XU{?%zqv{Cn61oxozp>m`(50#=7i+V5CN(0}l(D z*2hZ3uB*q2y9}WE^ebtpPVEixr-ZHXDlSom z$8fv`OGtjy%4^Mo6s{X!m(Fv2gd8ywH(fhq69HBGeXDHd-N*@D>C&DE_)3wny~~LN zhY+EaqBdT#u;94xS`l)fuA=JwTQ||D%t`Qd!5*i($rzbnajP$#3MWklYW)|5l&lIYPdCZEiNZ>?di@U!pJvnub#kgjV0av8<$XvRCtlrS^sFdNzWl{9 zjcgL}>2u`|-oR_Or;j}Y@n!YsiK975s;!ltJD`mu9DR97VrD%twV#FIHBYfNeV!z$ zf?-QSpNDHF%BzwuP&-tXms*6|Hp++?k;iu-h|Bsd?G9H0lnOLcEjV9xPkf%ACLI_; z)bdP@l(6c$SwS`DK?#pU4Pcr>l|-j1duiBWhYBTlb%FYg^U||=vQBrRe${l4GwMEm z4D8Cp`lze;O+Q;MoZAdB+R$QWZ>g6y5XDl7?;f{_!RY>St6FTP3FK!<&2C5(bbXTDTVX=+TORF*a1n@HKKa`Ce9LN>CO66wrs zBMWX)p^>DOj049rpFtW>3olCP(?n>Yh3MYSi4xA}uIJYVCudUQX1c1&b8XEF#DV;Ri1|Ino!zOBb$ z%g?|K#d1Y+3t!F`gh^^Cd*r3b3I_=?i6D8sAJTfH-``3C6QG5djoJgt6XF*X>86kLd^&52byqwL7|cLDrwV*gVc|4+!dp!oqk?fSy6 z$dsnR5$c#?c}cm91KdymEx@$9K|{R7?&7P%udtsIzE=YL+B!$V87uQhO z8Djul;t?|4I2ca^(DJF5gcbI zFC&qQ{dawTZOGANzMqdTIlX_?3vD={CbywB7u_tvUgQ<#Y~BtC7fSlHDb9QnHoHh^ ze18cRaHMyJ*c&9P&>!)t<>o4gA>b~!@Wi7E`(X8O!-;~G@zu+kIqKikJ{thUX2f>E z!$WO18wJ@qkos3w0HXRCrL2IY<4e4_-m|{ln4FKp8aEP#T9repy8`yyiQBDpYx7x} ztdq^0vrVGR%1;BM5$BHfM+Uy;N?&znEx2*Dl$k($?GSf-e$@>rKUSv%u0f8#JZ1e7 z!l#TAX*xf-CH0NXtE|;XdCzsii${8?A*Kq|1O7!|_t(k^IMht1D^j}dF-$(gwh~no zNibEwjpCvSxdZ;;h5g?);dt5$>8Deao1v$Are6}o%ew)RRLgVo+!JT^URPRx1qardFi50d9QE(kf)70 zq;*PK4mm@a_FeX)``Ej(f4S=hjs4J^%@lbM4XT_5k>r3Td<06N0U^`9Ychs~8^gG? ziE19!S67t=6#a{a#87Rv&de#rLQVb$zw;PjO#V$ZP8~Z|d=OIl)ONuRZ0t4to9j<7 zeeYYOwiC_gp|UG8V@aa%ga7csSeepsf6tBM@-ZroV?wDrO~Mv5yLjN0L83O7-=hK6 Mr|m3@&C$_+2TS3n6aWAK literal 2474 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 diff --git a/icons/obj/machines/medical/bodyscanner.dmi b/icons/obj/machines/medical/bodyscanner.dmi index 3ae302b0c242ea3bafee3c192a880a772194b8b5..db7d9d375d52e64ce3f19a15340d7c7e8efa0ea6 100644 GIT binary patch literal 21636 zcma&O1z1$k+BQ6dqzD4ijS5Ig2#AzODIuVAcSwpf44{BWqtYcQ-Hmh#NP~2D#}ETE z{A=`_^SQ6L6bmz<6wc` z^hajpfgg(=uQZ*XnY}e}vT|^?vbTdk+>(-`n($hAh=SHv*ly|N^OxF?<;n$}-g){) zi8@qX-ha5-)uF@?p;o)OaJg4=$!SzStwHeRopdop`r$21((R<^#GzaaG-@UJptaE~ zS(4AsanQ-Ii?JznR%x&%J;;A_+_*RO0S6uLdAOt=k3Zy8D|$Ssj`aGi=jz}uwPSao z#GqqAp`2$KuQ6~8-8-|l`rGN1Zz4mLs*DcaYHoTu8w8LQdI!ga{a$jX9dPU96Jsle zTX|RfOkh6Mk5Gd@Elcf*NY!mEV*6IW?ty)Jyw%G3lwuSDVSva#lYHftwEM$T^OZ)* zKBDkJ1LTt+Ri&+B!YQ%bXN_a${O?`3N9WOYBK8SN&-HQ&E>BA88^wP`N>$Ca6g8}hM=j4K> z3)wgBYus<1-(i`dVPh>BCH}3d|I5IG=5_iwgsO1S(Kt4Bw#H8|cRtplzjc^eFmr!f zTSuyutY9f=_E}*Y6+#$<8o@j5^!Kz z!UEODz^GA7zlAA=Vl*es1*}LC7?G3=bw%%rn)!;HZR7+*n8N|1JJ@5z+tAY#m@w-ma)FzAbAhF;pVNNuZ;4$2OC1+Oqf=EL_m}4CAHAs9ECeHU*MzO)`h3TeQUw< z64T2CfyXPD$x!dg@8o!AF7vLg$WT}&0mE@8ZZnqahMUP$)< zIqzYxvjSnY8g6ySuU{g!acu&aZ`^n~zsnVxmE??;R$WbqKw!i@e)k{+YKIS|_NLcy z3#A*fmJ{_m_$Bt>^fWoC`A!)1M*XaryAlVB7kF-oylD00V3(W*>|^^u#mtScvsdbM zD_FLZ@qApUfz?-&A1xPj5>lXH9ZXe5FcFV)$l~FB_(Clh$;9XLq0~gyWNVZyF5y(b zd8YP#xQHu{z^)CrAYNxUZ6QUVE_Vuki=5v^Q&Hs|@v21+ajcS}%CFnS{(@{hs^{MY zeGR-019Bxpm%O3-Ow7%T{-!Yg(#Z8V-iA|m+1&1bof0oh@Vi<++<*5QxSN= zjXBgG<&SPu7Kl`j?}HJx$k{3fe}DI$(kjVq=b@xNv>tz9K>w1wFChi%T9mx;Fw9Es zIZZ%n(-BqG8~vcv>#Nt0=6R$oV>nGA_z5%kR=qEVJnzyu2)*sFY)*|t6eICFdy7OM zhEj@(x~I6(?9Z;rAy*i_9FTpC-)~fMG9pCpbD#}M=p}C3)2kR@(BO8@|HOdQS@aW! z8BAf+99oGy!8LKrDJQQM@o+Ht9>e4Q(^MgamlEQz+(|IAx6zXPOW%#SbEz|DH}2~x z1i4cQl{_oZq8JSROd=dkN{SXtc=LA1`QBjDp}DZ$-)a$VZh2CK%kgV>rvj0=mQ z;~Y;;jd9JhM1A4#d86@y_>Fyf2@4BCu_i}+dHGET6~ z&c@D;B=j0$-k-o0sOSla_@U{K)GBvyWxb_zGK8*@=n{dAC^w(nsw>NCm>CndA)6AV zyLq#tqZE4&%Y@_%GLxDR_~D_+;fkMuaq9=%8Xp8KGmq0Kv!^R1t;eS!_d zubEF~w!6M_PcwOzClTqNT{=RoseB%r7cl#H>iq206X#?l!rF%|zbk68J)lZc4AqMa zK#k>h$h|loBlIG@ONw#}DE{tl^+PBU-RrDAWC7-J*hzhdf~Fy&?r||`Rnf1ImX=Gm z z;m9vvLgV=?mOd+s#lUecJv@iz#eMtwZtB*bmX6Zw)z9AP(OG3(*xtbF4GrU5UF9;6 zb>4uoi9_4Zq?|A;N!+<Ys zdN%DllW&K{#P9jR9mN`5?@}?0e(`vY-4aq zC3bb->h;!Dshw3%jH*`L8aptQTI(Z(S~YTZ8viFjQq{~W@YNM@UXbPZFU zraCMsD0)J?sA!1&8#Vox^Ev@^sf2oZu95KNd$sJ^){(=ECS0Hf&G{o#)Kwk+tBe~L(S#c71NMO%0bzGf zI#(ndZ1;}_*H-3f67XMy-V=_sSL_Kkf2Hw$(c72i7R&fzuTdD})F7YdiWly<_83{V z=-|AdXh`sh@Cz;^viyncV|6D7?zLaZ)J}G4Y9uaC&eBin;l=_G!}a4t4(jxF$6z<> zP3NRWFSRq>@na$Qvk)ZB`U2L=fF%sGr@xM9IP_0SoC~UoZbJsA^6U(|FG9#gL#OIw zNa(j=eoW^3)&b*tr#B<(F@|xrm^a*Z z?FBd)PaZeL?+oS6uk4)0ovHVcKH%!fL~XsBpG)w`vqkiYz|9b;n<>9WrdB`Y(V;DYf8@;?{@5#}yu0%4R=lK=#(Ux8mnUP z`@eFd@uz6Y3$*j{Ci6V*<7yPMd7MY}xXl_<_7gJm#zH2t6kX8waiqd4oe4`;si;1i z8zQYbo9|WMKk|vn&igj4!c4&l|D5oH?!;Ybll}!5a&tbxdQ{BgfQzfD(`nW|Z7X5@ z{DAIYDhYl{asLsS$Zh(1)KN)0rUgG!eAQOrFQSS$<9y5Ke9~BM;+6+5rJE$!k%_p9 z@1py*mSwb-iwtM{Jiq<%HV23BgN8b*a(u%kZqXX#n*p{d!&+`Th(KhMWDX}!453Ub zbxqAiT;%8arTtqZBBLbO7sHsiD=6bP89Mi0xszveIs{Poi_g~Jntm)|lW-6p)haG)F*cJP zKfs&HW$Tf29PW(C+yqCa%tnQ`-Q)apX0qb$gb0FhbBH{E7~B4SU_DD}PSd!`?-_KI zQgioP5po7%Z3rW<6Yx^n`;<0cy+wJ1U1?&hw1>C$RN_ofMa)#Q%p}qDYE&~dmToDd zii!P(#Sa7Rgs6k%zIR0k{kj3in$1E|7C(xXdm>fecx=oD5re574hU()gne9rFh=m5 zBXqT+`Ameo7Pc2@51II$vor7J009Ft7_gglF04BBcB=};_v;1pgoI)UgpAum@o`F2 zJeS!Qa07BLlGA@LzTe)ZOkTr9c006RQd(Ia9=^Ex1M zR{8SIp_W6}Gxb~$y})|N)6MbZA>*zmE{D<&lhip8wP>ThrfKHIg#E|bhsgc?%|I<) z`Rg~s}-$aiv&xGE|yeS;=#AbjQu6G`)VkI?Iw*gI5~We0iv z*~?T(vCW26bJ7YCRa*iUeR1L0+4TvB+GE`6CoJD#2pJNEO4FO$0|aSU^=EHxK;Ard z`R)8W-8(CLIVV}G60e;2L;+HthVL7_IK=03q#`_ATI7->(~qMr;EbIWPzfoK;P=Ws zd_7`hA`cb$hMo2)BplZquC?n+EkUs2qxoVj>>ydR7%8nhPShFC{}>A8tGZ}2Eq*#-$~KIV*6%|eE-Vcb*_po zrdn8b_WgxT3xcp#Hb!nQnf3TGem}Cl0fJn=9xI!sFj@8Nt??^s&%m&R;g8hGF=5oH zIB=hot`nOH%%L#Cf$IFZfi=$hSIg-`o?IU7pO8un6HRM{2V)Q`gd%nG z3n`KISTV8Ny>DJ5JbWG-A#*wyexgM2v<}N~jnm44q}?hQI{v%RsZ@&<`R zP3DdA>2`uB&An>))34Tk%!^t@%vW{vK|eSpk-@$~I3-mQGumG$Bx@H9^;mt!4V)JT z?TtqoKb5A7GfrVk_!@CTs5ns<-M>$Nh$mSVf)1OzgqISO@XIe2#qgVEnv(a9R#Ejg>5!IzL3a!a5Vin?#8&vlj>2-UkDWu zx`rw9RpOZLc+C)dWH&)WS3U3UQ~lqM?7Yx#Y*%5#x83liXxdCg;QFl`4)=bmgk|rY zfw!msTwVjCw^Ccj-WYBHZC#9h$$Y+7G$4@E8t*5x)yZoOH&EU#F(d2F+sR#e6E@b; zmH0!f!s60l{4#4*2&|?J#elnUWi-fd=Id|E_ZRl_$_}B4&$Hj}7 z_MiK;`aRdV3+oDa0G4VMg(M4OXT)o$8dl^(N6J`H?Nbvz}GymIiFMVrOI)j_lDe2AF9uxvt5A z7#~e`GQ~;1bf_kY^mUYnQndeUaSye3AbJ|CW8{y*CuF zl9Ll@zPO=z)%D5Tv&S7%Xr^%r`Q4cH`LM zK{$GE1m%yt8DYMxKKqG}Y=uojPw4^Ql$5`2E%+Lf`jryF8A11~Y^`#qk1|%Ad!Vsa z8INKXZ%ApB7t?*ZJjMPI9fMH$Fdy^DT*dS7LGUEJSPZ9!varr|gwVyrqz=FRpzcrl z+ zu{1Lwv;#jVj&e!o_QcYn-+M+SJrP@}8F1BjNKiln@ZgdCHe&RYdI!Y1Fkuo@~^&CGxe*XE4%&?*C z6Z4lkggi5cHZ3sMaLd6|YKdDxB-NIW{6Yx71mlx&4Mc^1rJ2dE;eQ2e!VEen}b%qgwE0 zG$rl(u2wRpQo^pGjR}!UiuqojNZP;IE0~31oX7r#Sf~@T!1=<^Wm^fietsqM)6Lj> z>)0V2!+G5OK0QX0+>NmWYeKv+*bEUrYZy8cNvjlXDli8wYnX6&aH886fNuh&70g+L zcL|o}H8F}yj4NvG_|H63%qT^m12!5LE4p6N2F7Hp0@cHiQ*L<}{jI=`4F|L7on~xL z_CQG1m=Mzq)D_+#;;ns)A0^3ZZ;@tWLYBCU1GGBNc)yZtdTR+Y>0Y1TkAYe6`o1mu zT>8NC>0k=Jb-_PKT+r&zA-@!sy4jKV)&RY;4%j-pD-W4~_0mo<%q~Qbc&@oax(l-m zt&$i}CRWXAJqoLUG(g+ZD%lil^_T&OTFu4kikHpaW!Js#Ui^S8)kF#qFleO>!d5if z$nS4EYi+*&c4j6(J;&-a#LGM4DB2$Zh$1>f=TU&l+hP9Y1Gbz=kx}gE`##f=rZ<8t?)dK6r+IxWG3|O( zFwZkN?yYjBp^kI(wB%YlK%z>oqJrDH>fA9WgXD$F8!4mlpJ|uh#9<5Yw+O4y21rmk;E6D3@?Jw0+?t~N#Amv!$%r?iqpVMKgC9kf?peEJLqX+zC(W>GrHV~^ zOm)P&O9=C3kTjjXQITV6`WF6cmBb6Q!`){yq)tv6X;_^Nvu&Ud3D+RuAEcnO_Z@0v z7cD<}qTlv^_dv;3FQY=_$qTB`y$fpmk{P}UahFASh$WQ-pUrV^n~poqQINfJ3ge4A zZY@{3y=PWf9`zl7S4i~hEasy{irzj+A^6v+*QnBjJ`{_i%LKyZ-Rd2ta-&y`WIeHk z7_wEwh?ttl$Ag!2uMG<#&_xEO{0Awib)oNWjzKOx;E_UHDzK}@l*Y&dmnWF@XPRU0 zeSQP-uURKqGDfHnk`tp;y@rhi(MqTPy^5fNtnm>}h`)j||7vz>&AOiQ$JK?(+`K>| zmhIP+L6!*qh3I7u?I6x_2#|_*e!w)a=>ZfCrtG$9?Z?I}Tb{ys>iaPYb6=W&bVa1j zM%ii6=fDiUirxu&p6b26teS#+b<;D8!FWt1>p5VdOAz-C<%FoMgERX2G0i;omI_{TRn*{=sA9vkIpZ z7bQU%-lU$-SxO=6l*T7;t!+VtDla{Om_BNg$2$Nf<7U^QWSZrsWFP24O&kzm+xFcM z?b}@(M*$SxjrEqc1ft4G;~28iECCBE!ME@=R0ut5+O^*XnEK?Pp8U435%_iymK2lV z1CI*NCF+0~LN-kGmrmR$;dh}Gg+f2d2`EJo^vzbW4u)>S#$riC>+MlGy3*5v^~5l2 zoL>bM77cTWF$xkn$%6Rfwy~|W;z*^J4J*RryX?~L9gLeowSoE;kJ!E(_1OzxI3a40 zr3FoUuY{(IMp)GoneQG)Rdzran2#g3F7AE?3XK3SKj;ZxFJEB;5s}=JG4i~pb6eIg z2y=fVZ!RCLXOjlD%ZpQI^>K46@OubQ7Ku-YkHaPk(GqqQsxAwSoH_aUCe-12`i`ub zL_%M0m4Ckz31BXUk8vV(o4yymeTw!#1vnYNz%cI4QFW`oggn2sC+&1}9=R+wuh+p} z;&jse0laozKodRgCop18(GhVw>qr zfNk<9Y`gVu*cP}=PYtgJEiiuNzt|>df6tEDs)U)2Z*aRsn%9T32KfuX8<*WU{{|Jn zx3=Kd=^ppxGTFpl-sjS+{SQax-%t*UOBoJo{O=%Yi909*N4WQ`|6~6ioG;_X(I>x* zf%0GlC(-1@G_QK`YT6^J4Sr9Ex6poN_>zXk32)o&ox#uV!#) zpEGH}G*@Uv&`VH72d7B0fnf#Uj(`6J5=)?tb4|_-<1KiC4-24jB$`~>GUktqaxPRf zU0y*9d$W10l@iQp#8A2)E-~Crc!8j>QjNUvKu*Y3N#q|7tGmiG=2W`>kES>73AY6+ zlhRrIB!}+kIMiGsUjTBE#~`yTSjNphAx@ePpDYx&AxXM50Gk*W|Au^zZ)x3#4guze zz$QJw>*3(_xp!zAtra)83c8<5zJ8Cqb@d!gJ;IPf)8&HE$H_ z_12jb(g|JAW=pc8R#OV=h%^b5ts(vT^q&tgo-xZOpcQQYbVPiO+SV8wEWFIQGsmh6U8WeD z-!(O^NRzc>s-#Px1A<=QM}OMa63nUi%0k4WV|v2~`h?F82-qTAM7jM6^43X1PB7(j zJ-PtT+AiHKrrjXvM}=&C0()xe-rpYNB^%Zv;SPvo7PLYAITm%J+I6|m)?uPEOjRPS z9OJQZ0b@{7zZcq=KF63ape%y!JlzvE0?4K2Nu(JtXJ^0M$@218{d^8$s*L%g&j?ma zK^dU-RR28m7oS-?UI$DgXnUV#D7|SE)7<^H46P({OT~?%$ncjJKT4EHb8H|>M2*Pr z?Z6k5P>8MkD|oo3m*w!c=&P*5pEp$ z5JHaQWs&AP+nZ8LHP6P50rWj>omRnVosBQd5jW%_6e?``a=)nQp5_U5=sFq;jPQ8~ z8ba!3+Le+0%sD3BxNR4#BK(_hl$s-ui;I}VC~ynf{1>>DKB95?XBME`YqxxkduRt{ z1&(+nmib4O0g@?kz2g5*k-ke&|{soGu!UUNntlH$k7w|^bB4th{-o0n6 z@7)Jxi1g)iM_>-1(2X(oCr7+sr}J;%O#KhK{gIW?%MU2WnEvR>Zj@wnu+Y!Bmt4W) zIV(b&th%-i7s}&|@|~v5Zm~+7zWUMnmBa8B7^c5wyM8 zKAdvs5d#n~``-`{7~CA3;;-}_&3Hj-#VuIFXbOkO^xXr?&|@2ne8a!$)takByNHAceEGW&|^IujHtC03;Q{kM-4 zHa+{gpJaN7)rzO%sK~c8$W0rakmOCfQd1ggRGk+5QX1V;xd6v*`6P&cVjmK`kSkZCz8Cd3spWm7(IP>3Dh3ehOF51n9e{6WN;|93>hMIqw(eYz73 z0pAYnpC6J|g(YcQOe>^q(4_xU`sLdG=rVf0O+Virg4_~l{x?)4`43c-{tr}~Zx2Q) zs4X%rV!!*_Q8;rKg;f0!fT!qp{+9q;N2ji36iK?U9HB;x=S6d$)qEd&KIq2-$J}gY+j@b$Y9*VeTFlhD+C_d;k^S6 zl!4t&#c|dLi_q)apufd^Gr?g446VPQpPSHr70h+&kb5A<>xCP~Z#n04C^vS=P_j$F zKA;#&;`G^|=ObO{`T~5LEr5xX1y;+1GqaSr$023o?FJyCU78vW_cBf=OvqF0FK(36nCc&RWT z2?cks$)W=RvhMsv)}Za;V)5n_?4&`1hjvBcd;lJTGt4=dp}(mG#r#0e$x*bB*_5mq zIIlw6h~Yt)#=lELzIUSTaRBOo@ElCQGXt*AcQn2P?43~qPH;LA1+0?EZK>l1^@i(9 z&$@N4ctIJ`-)I?nplVn2lqU7-xWxPDeE)He?;jY7@>mrDoQR_@dZwqtvoTOQB_A#e zQy{w7AiVvyGxVjs2XCJAuX`Di>i>h5D8NPp_CNx&sr#u-gl|!0Ok|8W96iG}uXfM8 z%@chZ^&C8Szf-Y8bzjg4PR!RJ18=6y1|;9Ocp3_HPDNE<3X9UVUq<@pr{KSW0`k8H ziRu~`);{HJQbU3BVy6}2oyL2{DC#?+Q=*4qPxpdI(b-vRL0qY@;;KMyt=gtNbX)x9 zg!m(r`r^_*ariB}h+|C{q3Jn(+~0|TX`w#Fr@ycG;(pr5uf+c`K=qH3LQcP?H!MXu zC+SKR^CkXqK@-sa0Pnbg>jRqIzt|Ri(LH4hiHvfWgLy^Ee>(k&6)+~162BU+u8)Ir zHw6WU_U|gQf=1_loj6{+Rl}27%1jMYU5h2ZPxT|=CTbeD;oIYoewX{xh;g2}nD}@b zb_7?k5UDCo((@p#Q9L=IPJ81cw+CPmW~f#1l@%bGNQ&pf6*aboS#QWa>@y}|cdu^8 z)cqo3DotUJm3wdI%GfRAya8I~QGT3>y;390I$r4t)qk<;7432%8s$0m9-K~tDFy{I zs2=EpDUAoLuy>J|-Quf2+*W!^QL@MD;zu)T@?sg#1~P&pGY1hp-;KTr`R zxjT&Nq>~rurZCg8gZp^9{)<4kIyaZ?yNAAaDHWvT_(E~0=>v}JZ2;131ZjBx3j{Hr z+dP!_uqgef|4D|)ZZoA1) z#+Qv|B9+z-@-8iBfuiT7dNt_{e;eA}S+VS_iOtnf*;Z?sAtnAzgZZs-0zNC=iFq8L zL=UXn+%vP3jKrFNpuj5+-8Xx{GJJXD^ekN(Ac^qQT?m|R!bRBvm)vD`;$Q7;y}I?H ze>$TNqf{Uh24HwQTd634$UsfR{?9&j)F~0Ff2f_C7d%h(K9RJl}Tiw+SDVG z<2>cV*i!qw){h!gYLG4KPJk=^r&_ex3;BsRN&XIM7Qg_-xh#H-V>&IGak+#Q#pyG% zxzP>)@MT;j?}pEYvS>kLOJQJaF&@+Wfp%2E!a+fR?>0RkZl^Hif3rN{vNGm%&P%nf zdXTzTi4dSn;vR4K+37{NkXb1I5b6l!O;W#zUNZIOceL8giC+rAT>Osq`QqLPzOL@|;(^ESEb-=OY(Pb#2SPXYvA$Htt2H?|w8vnAGrcpJ=n>4u4}^=N|5~RNcp*qk zkt4{qz?Waka9MR|vj?3aZm~-^C4%4rEjkDVd{KtHqiu9trQ^Dcg8QT{l&RsyC?Pl=jg8FP{eON$VWRQHu+5LQ= zv7LSc2E2yjo_!)}Zc3*rnmR*26z~DyQ855%u)qgjn7Vg-iwsJ8#~dZGi}n@t`;u@` z;HYN!$NvWwVgf7_mkk5S?$$Cs z3z>$hJgky)iFlB9WBJY;7g}Y>nI^Z-@fsywFwFeNo*J6hKdCG{6MEx-5Y{$5JC%8i zTa~7d(ZKy7)SnY1(v(tt5-*n2Wm`~=D1^aLJAKbil|P4j{!1&DZrm??f65wU5+f?3 z50RKS|KD*;RElHr$B%fs;PfAQbp`ah!QOB8wn(bk{Jrr`he;d%?D(?Ya2WD&s><-Z{;K+%wsZtD`ww=z?7Vm$WTAIIRg61EefcA)F7y}Jwm@^c zv+t&YK(hw*FJ{hnc*oMyQ}!7=z32MbPE0?z*=0X$4+OuCySeaxg6S@&saC*l|EGZ& zVUIAORK#F~zNeZcv%lNm7XpCV6vG;2W2uzb)$)yPz{X@oVyVe?kT`;7#FAG`7dc&Ni>L1 z{6a|i54)FdKP2zQKLDH?^Dlr)kKckymvuz^mo^n|ghgQAtZn&_=r9V|60h;iUSo&& zc7*7E4!1DPenGkVCzhq4*nEQzooes#Y#kp}MbeMTV$o1b)_;?xdoZRBxl#JT;hqL$ z!4yVm22^O!D_va=ry!6;z}LJuA{T=WqV&~Oz8^CFuH#D;5--+>D17<(-VoGeXFz64h;<|Y;J?giYdbe&2G2J^f-h2Xg z{nbA8&C2u5zq*xdm`AM^&M9m!NG$)~x|K5i$f4Hp5RCIVF|<^@CjUMHw(dRJFkRiR z>RIwrJh!<|qUY@vFivgwCLn5R(WQnmIeRyHUW((|lPeLZyDGJCdnTw&o_}=r};( zCS-cD$o@OlIf&6QI_joxU4RJWu+uXjcmo(_ekD4u0fV$%??UviE@)VgE|j@9D(c|yyLei`=huk%3hXx{;@Y6x)W!6K-_D2ywSkq^q9c-? z!ErRyY$d=J<$sshi4^6$q1hx^&shd|!pPxfz!?1cpPf<(dC)0k zehp=SH0#p6oY1&VD9wfn@t8siN#B(J1NmPY+2A;86VlvCCiVZ!@|Z(cT6AZT*rxvu zNEZ16+YH{tRF~fp*=Op6DSp1loNxjf=Qb)%H~3c> zx5o^s^b)Pu4tO+9y7?~jJs$`i^c;!C-KaRWYpL5+twAOJKE*y+2jN8!Wc>#@xF4XJ za#2Y3;7=*q-cSn2pnVi(Tq*pNmtITf7KE3VFgHb+SAM8*IIYB^o3H%I$WMGUzjigy z|5zz3syd0BnvNIag4#Vdl1n-%SNVB$)cPz#<1^@uRU;35?Fa_{hJjcnct?I_uHFfH zisz@c$rGZD#s=KtNgPMSvd*=pY&GG_V37SOU9KgU68qXZt#^a_-+kYo|FnhO*iT`;7V$Ij`Q7E85%E8&sE$01 zYh{a?9+ehB8y50%bBCTt+FP)37MT06J5tNPr#+1G(JiPRCh)G~L|ltbE_1Gzn_k!tfe=ropgXL?8q)l0U9bb8GII^BJ^mv9ji>+*NupI;$AEcCwnN`WvLY-52?!NH^_ofLj4lln7V629+Xm3acB~ zM*D6b@0PD0Nw$4AFnS7KeIcNkDr(#S-^1n8FddgJ)E3C;Ou(}`mY)ltizJ!$Soi%g zj2BGJLY9mxDh@FM2Qt=|fOx*#7J96B7p4)SgFj5O4y*(a0Jc`7zmO4i;gXOK)l^)* zl=7T~A9VkGwRsJ)y{O1fUf^QZ*2H?&vZ)#VocH=&UszSvy}95_q;Fku7BR4jio}^` zAX^em{a;<~sU@-*zI!2WSVJjIwzOkS7Xm_}*p!k}=V-#|k8dBkvmGd%2F^50itVTY4rp}mB)f`Z%wJD@K z>~GG`A@y?IlXyF=csZYS zo=Ipk2ouk~ogh2|um5~OTC6p~|uy)*2TjewG(_nJR2 z^?Q!;$GcvPTa_u9V*oRhQQq2~nrCD>6 z{y`459e1Aaog}_vVXG8$)48-Q=zmT~<$HeMB?7?|kSrXBtmOL-QtQv>k!L0tXm5R4 z{9G2;be|={qNo-ynhJx-f0*rUmrKNQ(0e=$fBV>Wm}g)wMt4;{FlZP=ggE#nm%6}C z501%Ff&eY{_j^I0U6kkJvV|I95Yo41qFe60Qh5xL(c3o`z~DO9#bJJar6ptW&~2q( z?b=rtZ_w6bO2@8FKyaP-l~9&saNyoIpVm@2$)+(&QX5~}-RgVq!Il9DFvK(yevbI2 zf9r$0$(VZ#`Y>4Kaw+I6@Q#k&=YFrYswbs~1;~>2$8tg2omJ*p>&S}PJo3SDv4)^v zFM0RjR2DJ%Dm3)6ZCxQ18?+MRSR^woC(zLgKso3pN37w>%gZ+(9o!q1kM?-uVV#ps0412n5k5vy-R-zlY z!v0+hElA(MI-Yq`imO}qgrK)InJJMCY#U1qOlWp(;w7sBx#*KMmdY?IoWh~+V@?H+ z80E0NP&u_$VDxJ8h)*~OdAMJKL|Jpb$S-V417oj`QH)K&DtE6lZ2UnfOUk1!YWdZp zBm<0~o`cnuA_;=IF7c~O#*L{FvYJc~bN;5P>-^YvA-1D4Oj+(S;S0@-jpaiOZ783> z-TD*3Wi`uKWc$!`u(VDx*gJH7=;{p9;P=HY_B^m!fBNRfIc~{paArURY9>!xI?i|C zV5zjYosW+v#+@c}+^;4V22rJ#*DW{V-aWgwhnx9c+v>hQ4bv&uX40`5N0DIU5s+A< zqNuab`l*04kMLE}Ct2&x=L5ksI*DJyN57a}wJB2_XsRCwgP?@|xjflaz4s??A1A4E zP^@#a<<44$E0qfG^W;l1ugBY>cljfIk&n`xzEs^1^|?w;L&JsNkfYCWWip*5dlfzx z?z)n4hhQN)hj>8|j+xaf+x3jV!RCUcTPzy#ii%L&q|-SxaU|l7mRdYkfQB&yLL!6u zTmX?}T=P?xv?y0!>V8a)-iMrVsWw8%?TA1hI@MImA7!^O+r?UPV(yzLx$r(JqWiUi zYM3Nc&&B>yd4IBh+eG%)*LuuN$r4f*`NYhRm*43-CS0q$b;~BvWzlYeJnpL(LVaX8LDNV~ko&Ns4#a3=v zjE@A%*bop@Pg{-6?N*@T(ap$86aySu@`Y-YzsyZ317(Aknq_90uXpB5GzcH}MQ%f9Nzh0umN|=L(@D%fhvPrs;#s#InrBrNM^_dYv$ieW@m_!@_Ak z6#^S9P>&YF_H=}0O3nrr-*Dm&en~zpj#CR_Sv|=4oA0g=JZ8>l%k1wnVY_hh$ygDExsz{s>bRq_QBPaJg_MWsa zPCut{w$-yA4B-w;ld{=XtodOe`;V5>D6|ucQ&bv|_E61cz^>Uj!{wDb=l|yZwMp1P z?*C1h?swIsl<~1Ak4#GzCuujUD0maV5bia-cnb2u3UMSm4oac)R_0o^kF~APrxl;U zuodbt0}^ZBlJTN8+}r~Db%LI3y9z{fd=N$q=cskdUIWOJQm2n8ny=5dD*s_aOg#$uP8OwNYkcP|$;Tl^xMQO<^3KbmOst3DGzx_3m5fDy=q{T1y8=?ZO}~C_EB#?zx`g4+%Q8xT>Bbu zXaYgMW$EkMx8_vvMnj~6G%c!gAB}vz83QG*K^rv!J(e~xJlU7*Pps9F`p6y? zIyeV@)3~W(g9kc7^0bpHA{TezwICWu^{790VTw@=+X}aEE5tEGI7r`?H>rc zH#pPa&^?P2vBPaX_?m4<2Gg~QB8);qt;lj&Rv0i^LKHe+ZZB-H5eg1QUI+M7asd1yWW~GqaV!Dmj z-DCFI&ruZ)2-$EXe*ye0#&zI;hUmi!f`Nmp6_-3jQ*rgB@lxS;QYoqr@tB;Xtyf=~2jiyL3w`69n@ z44Q^hRo_CVJ~12xFW)7Qq1@Anr#s0Vzpyt?$#00cyZ>GNaaVWcSDZaQsz$*dk_13% zZR`V;@sLLAiIG_@U4DFOcp~Yui%$$UwkvX~OEOz>S3jOOcnIGeKL?=|5m|mP2MjC^ z*w{U1$Dfv3jX-IK5}kRb;g$w_ATDpFZX%Cy&J|kZ~A^NQnyFkIsUcv(24x zU)P`f*okc_>BlMGd(%A>2tHxtm5TalU5V3cI*8$HorUu+^NjQ*a?RQYgl1;N+f*%M z`5O3?gl6bOmrbg3O&`Ql`9D^WG(DXT6bGA5_luv@Vl^N1g`tkJ{{f5PlmVXUe3Mml zTla@YWhAeU>R{>Ky!J0*dp_ z&{s0QmBK6Y^juVY-dagAJ8TabE?qajbhMki3qI-v3w*#z`lquwPiiFr$$8Ix+b76# zLV@M|Mo$)29}$K_=v9vZE2S10T?17!io=pEiB0@pd`dcdrt-8J&ig?mxO1NSyF?g6 zKc4BP#PV~8d9fJbvMsYL{x}<5hq=uEFzJ@~akN6!(_IE8fw*pe&PXgZ8|)Z&G&>&9 z_HXQk#(GC$K^jiGa8RQ|ufu&%?0!4L{M^&gsvA}TUks&cYC^&i8Rua&nmzP$voHs`C$PW6$I3oRQ% z89W{*tZq*-7M;+LlHyoGyIoa>mg0^5q_6v4>#!B5uWeC!8Mo=A|i(Wr;=-r zN@82%1E_#ce59r+V|t-eX!#D>b!FPqm}@ zObJmcHBB>5Mv9_g4+YE$1K|$cwa#7Z{&&}!HM91tnc3gB_ny6f-}mkB_W=X=IyFgx zkf&L%V!GFEfD!h|gN0RT3pdAP>t6c6LDN>&@vrPKfD;BZU@>d%zSYc0XrGMFPTW*) z>2MluWaQm`$x+)O7fEfjks%GumoP`u3{q7f1~uiaP&_b7H}SMiixR4ukAz|l2V#FE zgK9~jb77Yzbma2%>i4hZ#@5R`Y@VEFYMAk3Nf1Q?90p<}VbrZ;P>=zh+m)+4*%;D~ z2Nd;In>eI`&-$w~UJh&QWLOfd$SGB=`Oj3Se9z=2jaD{aTH^d|C%O#doV(jgH>7HIF!% zY~N@7lZS_;Taxy)t>)xBg(oK&17ws2U7m_+1+=iA5RRxCAX(r8r`G`PfH%xnBX8~8 zx|pfe3@=p>y`iujnUO^8wXTOo%P843V=HA+A04rJ7Rv8Tk zG&Er8ayWAY1|R^fZK^+YRw&!h7@gM?zMp>B#W;6*R>LKC?Mr8W0gR~ly#UpqT;ZU& zD-u`er1h${>!!?jtz-_zooOD&u5q+bwu2e`0aIaNLpx6f>GZ&&J?AQ{J-X0~Qf(SS`2%lv+iI1}K1#if`0mHU zWUc?J;?tc7C*=Tbl-Ce1tmyhWHwUKimDL?2=yA?t7<)1uY;ZJvJ);UtkoS=|m^P3t zHt^jN8c{uUc*OxrJMTaxDHvflWFzVynw2lyFr2$xkk;c+gnB zI%xEd>6ai9o;Xd-F3R3hC<(ee zUNTX9Y?*QhPGY~kTY z>s)62a_r`9c}OJEi9jHPbXoqu&NtKKF2lpa)bct5pH$`cj#jHi%gxW_g#fuI^yq{e z`Y2Zq*DpQ6#Yv!9wfgG~&(OvmUuSXsI|;rCCaV$L!L~btW;1r9@IIXy)BGH_ zXBE4~;Eq7yCuQF)Y=l87(B89ZA+?*5tqNTIX5g~Dvdy1>IC%;_Lj)ax9KATjA|*DA zzj3dg`KE4Zvq!mO%>TW2;I#Ju8HlF)NuNT;hAr6Ka|35*X1A9hPj z2(!>y^f0djRhzT5LYV9F^y2=b`uCk$T*?ccWQz`GZxQrQM(??q*7Pqs#MG%|dOVuC zMdC%rw#~l)TfbPk0!sCr25ACWAsMc6uPELmYp`F{RcrvNH$$vA3KQO&Kz^ zn0KlZ`~TUaF)#eGXQ;xHLsgj0$~vg| zIc-?FTZYtt^<8Ofc@j9a zA?*^1ef;G^9P>6L8tsr{<+dv!1=n+6Sdu?Fp^9>3#_A6+mf0;^c2u@T-tj1LosZto{mJXspfbdD77zPIRx;8O@JG?dCrq@lqoX6Z&P6qW zCpj%r^`?GX6Yt5-EBib(#m2_z2?lo`)NLI3ICxhRNK#0#{@JCbW`!{iI_hKJt$F(V zdB1yR2xH|1|6PpyRV*@Zw6Bl;+i#(2nAkV`1Nn@y*qJ^~e_mg4^w6P0w>wF}>Lu~i z3w{Fx(I79Q{ephB?b;{P-+=OWWG`SQ)s-pFAn2_aoEWqeFJ6C*hy5Tkh5*NgBS-Kv zqixs;(Giy0Y3_S$BkS!nYrimsD=TO@2`pOF1`P?u%tP5q5kzzm&wC((krVw^Mkt;p z19{S|IHGc*2=X7=U13hQu866Q9Qv{>`2%2`rpPP`NI1V1iUB=x*{%-MB{aPWFn+jn z?va(8SyJ#hp8K)?OVFS|>f@s1*f%qG=eA7vDvDL_vCMLnB4fO6chy1rKCP*jalIXb zxkbma3PZBjUQwgL4hztUZP(qD*b5#~m`7vUHyby|XFPW7P4L@Q>XR`}_R$>9-??C;oy?O_9|H=Gc1vVwMRn|bqiKn-Q>+15pzqw6&$Q;|a zN-fYu-^CzaJ`I7|=I~jaOanJz)C(scu2mWK z%;%bOoxNk!aWf){16@pGp}0vPACeu)G~3?*o1hY)6fHG3Q0$mi9<<5O9;%6O722Km zGuIlb0($9kwFMcP#ss}xYg)S8p{xkqGYE@5SBt^3tj0J#UP9 zLz|~3fa0(=Tf)>|(OTk4hg@0#|0&@(!H9b^Avug8k3gS}F)D$D3ecnOoX7t?XA(*) zX&>8Y7M{o$3+#h5DMDq#j?LfGG)ujr9Tyx-xFMtxmf&PJeSd11ZA1NE{r=BJQK)*J XMG#}_A0|VzqJZC~z>N<)!!rI2AP0Cp literal 19860 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 TURg;H00000NkvXXu0mjfQzTw+ diff --git a/icons/obj/machines/robot_charger.dmi b/icons/obj/machines/robot_charger.dmi index 152c4f4bf4cad22e0d2bcdaae24ab39a7b313a60..8180201b4573dce30575f63f234991f820620704 100644 GIT binary patch literal 4780 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 literal 4689 zcma)AcQ72@w_hZPUZO5vQKPpA8^I!KbWsv*McEK-)g{7~z30xHa?j`9bIzTMGB(tvrQ)Ol006YQIvS?LIiE;j zl;p%Q&d~u#oEBf1J@wOY_I31eh55O9c>(}|AJP*$sYrPlREI8D9@$a}SXgIB+Bxu_ z7`InXzZCt&DJpRl8k0}w?9sru5PZ+@dFwCv;E! zJVyU8rs`0E^o7`UfqbxhcJ4?}c`yD3oyx}Gn|yO&=)#YnLDj)ay-74=j)}kQLnBE{ ztg*Uow25&f)>-~^=$FTOh?#8gX`*@Mmzm;eI+YLZ7$hQ`>9Oz+KS!oAujb#r(XFC! z)e3K&YfljmvMRJv%SQwxK5yKXzvSGqjocgQ?Y3sGo4f=77$tNy)XV}uU~@v_xK=}Z z!4xt<5sz>;Sno{>HhhR{4Iq5y)O(@V!d;tgSjcF}TdetJBZ|>(^rJF^L`JZzh)=SK zRdrVVGws(_CB2PRJ^g}@XaqXml2|%A!X_ymxU3fn-a<&q| zeUVw`1IrNtogW+=3_B_M6rQ)}sqAG)P)~Z>W}1nb!&}iAguk6gLHS>hv=aA1w}+uBQ5TrH$Jtcr4;k4Q5$Ea-5K{VLz(~?22jqj99-H_ zb<$*C!Tiz^u7{X zyLedMc*9qGqqp-3)sz%LzjbV`V&fubL}6s;36+8=#coO4ZBmvE zM;ceoJ8~6^#*86>y+!CtyR+v;f~hzA*R^^qQ1a@eqM=_3`y;e;n)y_PQh8V3R2PDQ zEE-PA92Q-v3Dp<=TT>n#9U&vmd*C#Q)@$PcJCiw2X07DW4=zV5q7vIT)G2FC0}(6K z{mPXlgwL!mX~az1CCMb6+Ulg%UQM>W+ukg`wJxuoX1ddtVF_E81hQf=QNfRkYJcT1 zkZyuN36cEV#eR5u``AZD&yTmqAxD)rUN~^s+)vQf%ZZCnL(7Y?JhID;69ptqdNvyFD;813J=}x^JrrBE za&>|we>2kDceHcUSBTGzpR{OK)Z-(C%5wBXZ<_O@iuAzajgv%1X9O#4sR*BcdCV+Q z>ME{1)(*DOrf^7af@_VugO#v)V!SrPgsNoD(2@APF>Rv(s>M$66L zAp~#2b)(KIRm&k@3C)gtN>68=I!e*bM>Aq#c5DuFy6|GgLIxK~sm4jpp(oCqC2iyH zwK{wzFs>agwvwDz5krN?-&}52n8Dr2Npw_Ql1g5i_+|<9OyX0A=3kn+J&}sGE?B zr3eZZc==-ZUEXWe<+51YVLLf|)O44!^_ik0Pg=P>0@ zO+!nQ#M7TV=wxDAh>qMw-b%L+HY%vwMA0kik))Mc0rLd%msr@j*a1o%YAz@y>D0Ux&a{Sk@GzcjTo3=nJhzF`DvUpiXCNtn z3wN$0lH&6G0vN@#)U<|~@Osw1tY~jv?Mc%+sw)3bUlRTuY;H`MCT)=HCmWB;Gssv* zZj+DdQbnulQAnq7K(D8Hq4XV6h}sFS7{u5gl85&RQn5X84}gPoWQ1=pUUneQ-91f1 zD^=5u6YMO>J+X3IiaT{qQ^V3TQ*2h!D$wIu^kOZ^LtW@fFuFQ8G=wXRSYBT%KCqp- z*)bNOA7FWlmwooS^=q4)^M&J=i$aU&o-Kun_Kzjb(9g|}0nJ(gCc?M(l@j%#l$FnS zhTA^-Q|Aih=>G|l%(Xb&;_UKbVWUbF$Pu{HrBYEd*A}bLwFQSDM>IQZ`J2D59|q>e zSj5f|xU9rv-&cSa^pk)??~|Jn1m2uH*5SGis##}MW$AkGscQYVPE4_1*IWBzwirTT zTo|vF4Coz6eo`Kdlxi(zs70Ya~x`PBrO;3ZEJCGb60NTPj}~M4^&21 z)#n+d6Yzc`Ks#~PriyjnSM7v{<_!-{dG-#1Hf0O7JSG`@X-{XsS0CUD4}PE=$5^Ho zKiB2a0_A;Ac|ywFo9?f4jXQUMaAWZa2^qUhmy!U4%z+R92|AJ}DG^=7hk49i1Uci^ z0dx0ZVgO9r$=lZk(u#^!uLw;q`UmQr-L50ntX*;>tS^Ih4(?XoV#|jzw%8*;PVC1* z)PHG=78e*G8k3WgP45ZO3|NAWB>`@j_NoGGEMB67vQJUwU z@SJ64pQ;pX@_F8Qy?m*NuVlIEV3+)AP+ehnm9F)Zl6@eyE02v~B_?%L%`ILdlC_Z_ z{LGTllu#j@UpB%{55`Nks~q&-1n+^5e7aZ1zMWdmuQMAdjU*A&N2(aF%F0~pJ+{4c zkb)!AMIg0zJce%37Jmii$`neI=~#1Iv%~h6)Gitjj-5lLF?%m&>v4ru79)ZCOP%#w z3Xl1TQDl*iTV>yF$`yKlghl_1VirVm6mJYAQLRxm=Dz-+Yg%UZgu+~$)vfCAI1{pZ zim@f@Xt%>Bm9=eKFTA+7-P1I*s`~SpH}z`Fm{n0!M=FyMr4ldRr0mt5 zHO!;v6FZB!tXfYlm;7&n{TD*9`72#?@lY8e8wLh#DM9bW%? zho-(wHb(N+L2L7`X|sPI)|&x`oHxP`IlsdJV>0m;F$7>C~&Wy^d=dHWv>$!rbr^tSATgaPD$M%A!;oKCr*=1k2Z;b5zEi-nNd^HGvuwR6< zA1g61Z^%|T$%Zu(FXFdS=8SIL`FI8+*J3jreOaAl5Y*xGsBqMKj@9hpTD2^%C_u~M z;1B7DaMx8k(>z>PCz*M}Y_<1c3pT=``I%vk%23a-LYl5dAyAl^So~H>&E6~mRPhe9MkPuzM#vT%Z2NC4mG2RyaKV{^J|F3AN5{ozeL=T zQ@=!U)F!ONFnj1Gkilj>8lo|aDhFbd^GPdRL77e%j(1DB!BRG?5`~bU)%5xe^*qYb+xfeRAWJBkFutco=6YkD*v5$}qm(Gz!QH$l4ES>Ap1k{QUb zBd-04Q+gNgN5UqR0q*+5LK69=Nyyv3f5xP+hsut^%nDj&a7@V#M=0ij`0dk*v=d3w z^R~4zHLbB3TjSF91LvD-3>x)TjMX{h_`O6W#L1^$UJNKq8`PjX{AM@-8G6KP&$n;c z=3_pa;QYXJB8*t;-})RlBy-d6tz@}Xm3^LM$dt7G9UV#0_3@YF)>x_IMSuDhqjV46 zuiGIxe%s6bQUd;3;p(TtV#T?5AQbu<9PFcDKLEomA}7YBKQbj z%hIbGTp}jc;aY4MO5fy<*%o_(H4-f=McR{|SM^lf=iE7uY=3EgFqZx-GP^n2oM!Zi z{M{8wK|(JCGkR}^A_h*nKb|{(`z=phG2}OOg>^#$(5r7^$ioE|ocqBSP?Yqi8#^Wf{2*Q%})G7VH~gfBl3gUFlCmBCtCg zjWzU=S-T1RX@SIr=bp8-e{<={&Keku|M+|OOzQ{?3a;O|il$~eTiSW%xn(_7i{NiL zjx2KCdtrynY(T)$mh+TG`#iVTR@~YpgOO_}h&Gj+c3-S+Bi+iE)Z-p0sn85)lN#QUke_4YjNmY8iA=c1`@!(=uH8Kp^3 zpP29cOteM{))eE&$ZZ8CHk>TA=Pvq_1)WvXT=yQe z2XA^kRya8!ft}285H`ZWyIYh=WE6C1h5RY--8on7d~r2*FwulNqx-+q|JV0__7MO2 z{P0CU=H!W@hW57>BrgI+uyMW1^zo8bQ!Vh0IP0zwaAPdm(rVrZV+S! zCiX~#z6R2yA8q1fYN=-#Tf1s1?fYZ@1>Aq!{Qo1q|664Bnxv;zyyLm?3@P!C2%xKJ Ks8OYEAMsz&l^^>6 diff --git a/maps/away/mining/mining-signal.dmm b/maps/away/mining/mining-signal.dmm index 74fc6f32c8a37..3b0841ac8a8d4 100644 --- a/maps/away/mining/mining-signal.dmm +++ b/maps/away/mining/mining-signal.dmm @@ -223,19 +223,13 @@ /turf/simulated/floor/tiled/white, /area/outpost/abandoned) "aX" = ( -/obj/machinery/r_n_d/circuit_imprinter{ - icon_state = "circuit_imprinter_t"; - reason_broken = 1 - }, /obj/effect/floor_decal/corner/paleblue/diagonal, +/obj/machinery/r_n_d/circuit_imprinter, /turf/simulated/floor/tiled/white, /area/outpost/abandoned) "aY" = ( -/obj/machinery/r_n_d/protolathe{ - icon_state = "protolathe_t"; - reason_broken = 1 - }, /obj/effect/floor_decal/corner/paleblue/diagonal, +/obj/machinery/r_n_d/protolathe, /turf/simulated/floor/tiled/white, /area/outpost/abandoned) "aZ" = ( @@ -314,11 +308,7 @@ /turf/simulated/floor/tiled, /area/outpost/abandoned) "bp" = ( -/obj/machinery/door/airlock/glass/science{ - icon_state = "door_locked"; - locked = 1; - secured_wires = 1 - }, +/obj/machinery/door/airlock/glass/science, /turf/simulated/floor/tiled, /area/outpost/abandoned) "bq" = ( @@ -457,19 +447,12 @@ /obj/random/loot, /turf/simulated/floor/tiled/white, /area/outpost/abandoned) -"bH" = ( -/turf/simulated/floor/tiled/white, -/area/outpost/abandoned) "bI" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, /obj/item/trash/cigbutt/cigarbutt, /turf/simulated/floor/diona, /area/outpost/abandoned) -"bJ" = ( -/obj/effect/decal/cleanable/dirt, -/turf/simulated/floor/tiled/white, -/area/outpost/abandoned) "bK" = ( /obj/effect/gibspawner/human, /turf/simulated/floor/tiled/white, @@ -703,7 +686,7 @@ /turf/simulated/floor/wood, /area/outpost/abandoned) "ct" = ( -/obj/machinery/door/airlock/centcom, +/obj/machinery/door/airlock/glass/science, /obj/machinery/door/blast/regular{ id_tag = "mars_blast" }, @@ -1016,9 +999,6 @@ }, /turf/simulated/floor/tiled/white, /area/outpost/abandoned) -"dH" = ( -/turf/simulated/floor/tiled, -/area/outpost/abandoned) "dI" = ( /obj/effect/decal/cleanable/cobweb, /obj/machinery/alarm{ @@ -1198,7 +1178,7 @@ /turf/simulated/floor/plating, /area/outpost/abandoned) "en" = ( -/obj/machinery/door/airlock/centcom, +/obj/machinery/door/airlock/glass/science, /turf/simulated/floor/tiled/dark, /area/outpost/abandoned) "ep" = ( @@ -1705,15 +1685,6 @@ /obj/machinery/light/small, /turf/simulated/floor/tiled/dark, /area/outpost/abandoned) -"fT" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/firealarm{ - dir = 1; - icon_state = "firex"; - pixel_y = -24 - }, -/turf/simulated/floor/tiled/dark, -/area/outpost/abandoned) "fU" = ( /obj/structure/table/standard, /obj/structure/window/reinforced{ @@ -1798,9 +1769,9 @@ /turf/simulated/floor/plating, /area/outpost/abandoned) "gg" = ( -/obj/machinery/computer/power_monitor, /obj/effect/decal/cleanable/cobweb2, /obj/structure/cable, +/obj/machinery/computer/modular/preset/engineering, /turf/simulated/floor/plating, /area/outpost/abandoned) "gh" = ( @@ -2527,11 +2498,6 @@ }, /turf/simulated/floor/plating, /area/outpost/abandoned) -"HD" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/dirt, -/turf/simulated/floor/tiled/white, -/area/outpost/abandoned) "IX" = ( /obj/machinery/door/firedoor, /obj/machinery/door/blast/regular/open, @@ -12151,8 +12117,8 @@ cG dF dV es -HD -HD +bL +bL fF cG aa @@ -12754,7 +12720,7 @@ ce cx cY cG -dH +aI dY ev eP @@ -13968,7 +13934,7 @@ aa af dI ea -dH +aI eV cW fK @@ -14372,7 +14338,7 @@ af af dK cW -dH +aI eX cW fM @@ -14577,7 +14543,7 @@ eb cW eY ft -dH +aI fW aH aH @@ -14767,7 +14733,7 @@ aW bf af bs -bH +dD bP af cg @@ -14779,7 +14745,7 @@ ec eA eW fu -dH +aI af af gj @@ -15171,14 +15137,14 @@ az bg af bt -bJ +dW aA af bZ tb bZ cy -dH +aI cW cw fa @@ -15575,7 +15541,7 @@ aY az af bv -bJ +dW bQ bX ck @@ -15583,11 +15549,11 @@ vb dd dt dP -dH +aI cW eZ cW -dH +aI af af gl @@ -15790,8 +15756,8 @@ eB fb cw fQ -dH -dH +aI +aI cW gy cw @@ -15979,7 +15945,7 @@ aA az af bx -bJ +dW bP af af @@ -15995,7 +15961,7 @@ cw cW cW gm -dH +aI gE gL gO @@ -16181,7 +16147,7 @@ aZ ax af aA -bH +dD bP af aa @@ -16199,7 +16165,7 @@ ga gn gn gF -dH +aI gP cW cW @@ -16406,7 +16372,7 @@ cy gS cW gL -dH +aI hu af aa @@ -16608,7 +16574,7 @@ af cy dM eD -dH +aI hv af aa @@ -16787,7 +16753,7 @@ bb bi af bA -bH +dD bQ af aa @@ -16810,7 +16776,7 @@ ab IX hb hj -dH +aI ht af aa @@ -16989,7 +16955,7 @@ af af af bu -bJ +dW bQ af af @@ -17191,7 +17157,7 @@ ao ao af bB -bJ +dW bP bY cm @@ -17393,7 +17359,7 @@ ao ao bn bx -bH +dD bS bZ cn @@ -18403,7 +18369,7 @@ af af af bC -bJ +dW bP bY cs @@ -18605,7 +18571,7 @@ aI aQ af bC -bJ +dW bU af af @@ -18807,7 +18773,7 @@ aI aI bo by -bH +dD bU af aa @@ -19211,7 +19177,7 @@ aI aI bo bx -bJ +dW bU af aa @@ -19413,7 +19379,7 @@ aI bk af bx -bJ +dW bV af aa @@ -19615,7 +19581,7 @@ aI aI bp bx -bH +dD bP af af @@ -19817,8 +19783,8 @@ af af af bx -bJ -bJ +dW +dW bO af cN @@ -20019,7 +19985,7 @@ ap aH af aA -bH +dD aA bP af @@ -20221,7 +20187,7 @@ aI aa aa aa -bH +dD aA aA af @@ -20424,7 +20390,7 @@ aa aa aa aa -bH +dD bP af cQ @@ -20435,7 +20401,7 @@ en dT dT dT -fT +eL af af aa @@ -20626,7 +20592,7 @@ aI aa aa aa -bH +dD bU af cQ @@ -21029,8 +20995,8 @@ aH aI bq bE -bJ -bJ +dW +dW bP af cR @@ -21232,7 +21198,7 @@ aI af bF aH -bH +dD bP ct cS diff --git a/maps/random_ruins/exoplanet_ruins/oldlab/oldlab.dmm b/maps/random_ruins/exoplanet_ruins/oldlab/oldlab.dmm index 92454c6b408b4..dfca7b43c9362 100644 --- a/maps/random_ruins/exoplanet_ruins/oldlab/oldlab.dmm +++ b/maps/random_ruins/exoplanet_ruins/oldlab/oldlab.dmm @@ -2132,7 +2132,7 @@ /obj/effect/floor_decal/techfloor{ dir = 1 }, -/obj/machinery/computer/power_monitor, +/obj/machinery/computer/modular/preset/engineering, /turf/simulated/floor/tiled/techfloor/grid, /area/map_template/oldlab/solars) "Ku" = ( @@ -2328,6 +2328,11 @@ }, /turf/simulated/floor/tiled/white, /area/map_template/oldlab/station/breakroom) +"MB" = ( +/obj/structure/grille, +/obj/machinery/computer/modular/preset/engineering, +/turf/simulated/floor/exoplanet/concrete/reinforced, +/area/map_template/oldlab/solars) "ME" = ( /obj/structure/cable/yellow{ d1 = 1; @@ -3084,7 +3089,7 @@ /area/map_template/oldlab/solars) (1,1,1) = {" -Xx +MB Xx Xx Xx From 6d276a290e0b1110480efc416ee5b12c1d5b9239 Mon Sep 17 00:00:00 2001 From: Sierra Helper <125094432+SierraHelper@users.noreply.github.com> Date: Thu, 21 Sep 2023 19:16:59 +0300 Subject: [PATCH 125/158] =?UTF-8?q?=D0=A7=D0=B5=D0=B9=D0=BD=D0=B4=D0=B6?= =?UTF-8?q?=D0=BB=D0=BE=D0=B3=20=D0=B4=D0=BB=D1=8F=20PR=20#1049=20[ci=20sk?= =?UTF-8?q?ip]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- html/changelogs/AutoChangeLog-sierra-pr-1049.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-sierra-pr-1049.yml diff --git a/html/changelogs/AutoChangeLog-sierra-pr-1049.yml b/html/changelogs/AutoChangeLog-sierra-pr-1049.yml new file mode 100644 index 0000000000000..8d00ea8361da7 --- /dev/null +++ b/html/changelogs/AutoChangeLog-sierra-pr-1049.yml @@ -0,0 +1,4 @@ +author: SomeAngryMiner +delete-after: true +changes: + - rscadd: Several Sprite issues have been corrected. From 7fef77593b65230bd84a01cb7c21482b94e024f0 Mon Sep 17 00:00:00 2001 From: emmanuelbassil <6874235+emmanuelbassil@users.noreply.github.com> Date: Thu, 21 Sep 2023 17:00:58 +0300 Subject: [PATCH 126/158] [MIRROR] Rewrites unarmed attacks on fellow humans --- .../uplink/stealth_and_camouflage_items.dm | 2 +- code/game/objects/items.dm | 9 +- code/game/objects/items/weapons/RPD.dm | 21 +- .../items/weapons/material/twohanded.dm | 2 +- .../objects/items/weapons/melee/energy.dm | 2 +- .../objects/items/weapons/storage/misc.dm | 9 + code/modules/holodeck/HolodeckObjects.dm | 2 +- .../living/carbon/human/human_attackhand.dm | 256 +++++++----------- .../mob/living/carbon/human/human_defense.dm | 30 +- .../mob/living/simple_animal/defense.dm | 19 +- code/modules/mob/mob_helpers.dm | 25 +- icons/obj/cigarettes.dmi | Bin 19048 -> 19018 bytes 12 files changed, 176 insertions(+), 201 deletions(-) diff --git a/code/datums/uplink/stealth_and_camouflage_items.dm b/code/datums/uplink/stealth_and_camouflage_items.dm index e0dd5a72757d5..c71fe4636d896 100644 --- a/code/datums/uplink/stealth_and_camouflage_items.dm +++ b/code/datums/uplink/stealth_and_camouflage_items.dm @@ -47,7 +47,7 @@ /datum/uplink_item/item/stealth_items/cosmetic_surgery_kit name = "Cosmetic Surgery Auto-Kit" - desc = "A small self-contained auto-surgery device that has the ability to conduct larynxial, facial and even melanin re-structuring surgery, \ + desc = "A small self-contained auto-surgery device that has the ability to conduct laryngeal, facial and even melanin re-structuring surgery, \ in a (mostly) blood-less manner." item_cost = 12 path = /obj/item/device/cosmetic_surgery_kit diff --git a/code/game/objects/items.dm b/code/game/objects/items.dm index 3511e07031eab..52bfe85bcd793 100644 --- a/code/game/objects/items.dm +++ b/code/game/objects/items.dm @@ -548,7 +548,7 @@ var/global/list/slot_flags_enumeration = list( //For non-projectile attacks this usually means the attack is blocked. //Otherwise should return 0 to indicate that the attack is not affected in any way. /obj/item/proc/handle_shield(mob/user, damage, atom/damage_source = null, mob/attacker = null, def_zone = null, attack_text = "the attack") - var/parry_chance = get_parry_chance(user) + var/parry_chance = get_parry_chance(user, attacker) if(parry_chance) if(default_parry_check(user, attacker, damage_source) && prob(parry_chance)) user.visible_message(SPAN_DANGER("\The [user] parries [attack_text] with \the [src]!")) @@ -561,12 +561,15 @@ var/global/list/slot_flags_enumeration = list( /obj/item/proc/on_parry(damage_source) return -/obj/item/proc/get_parry_chance(mob/user) +/obj/item/proc/get_parry_chance(mob/user, mob/attacker) . = base_parry_chance + if (!istype(user) || !istype(attacker)) + return if (user.a_intent == I_HELP) . = 0 if (.) - . += clamp((user.get_skill_value(SKILL_COMBAT) * 10) - 20, 0, 75) + . += (user.get_skill_difference(SKILL_COMBAT, attacker) * 5) + . = clamp(., 0, 75) /obj/item/proc/on_disarm_attempt(mob/target, mob/living/attacker) if(force < 1) diff --git a/code/game/objects/items/weapons/RPD.dm b/code/game/objects/items/weapons/RPD.dm index 5c31bdb16365c..1e78388938413 100644 --- a/code/game/objects/items/weapons/RPD.dm +++ b/code/game/objects/items/weapons/RPD.dm @@ -132,25 +132,28 @@ GLOBAL_LIST_INIT(rpd_pipe_selection_skilled, list( popup.close() /obj/item/rpd/afterattack(atom/A, mob/user, proximity) - if(!proximity) return - if(istype(A, /obj/item/pipe)) + if (!proximity || istype(A, /obj/item/storage)) + return + if (istype(A, /obj/item/pipe)) recycle(A,user) else - if(user.skill_fail_prob(SKILL_ATMOS, 80, SKILL_TRAINED)) + if (user.skill_fail_prob(SKILL_ATMOS, 80, SKILL_TRAINED)) var/C = pick(GLOB.rpd_pipe_selection) P = pick(GLOB.rpd_pipe_selection[C]) - user.visible_message(SPAN_WARNING("[user] cluelessly fumbles with \the [src].")) + user.visible_message(SPAN_WARNING("\The [user] cluelessly fumbles with \the [src].")) var/turf/T = get_turf(A) - if(!T.Adjacent(src.loc)) return //checks so it can't pipe through window and such + if (!T.Adjacent(loc)) + return playsound(get_turf(user), 'sound/machines/click.ogg', 50, 1) - if(T.is_wall()) //pipe through walls! - if(!do_after(user, 3 SECONDS, T, DO_PUBLIC_UNIQUE)) + if (T.is_wall()) + if (!do_after(user, 3 SECONDS, T, DO_PUBLIC_UNIQUE)) return - playsound(get_turf(user), 'sound/items/Deconstruct.ogg', 50, 1) + playsound (get_turf(user), 'sound/items/Deconstruct.ogg', 50, 1) P.Build(P, T, pipe_colors[pipe_color]) - if(prob(20)) src.spark_system.start() + if (prob(20)) + spark_system.start() /obj/item/rpd/examine(mob/user, distance) . = ..() diff --git a/code/game/objects/items/weapons/material/twohanded.dm b/code/game/objects/items/weapons/material/twohanded.dm index a98966a56489e..5aa4036040c88 100644 --- a/code/game/objects/items/weapons/material/twohanded.dm +++ b/code/game/objects/items/weapons/material/twohanded.dm @@ -52,7 +52,7 @@ ..() update_icon() -/obj/item/material/twohanded/get_parry_chance(mob/user) +/obj/item/material/twohanded/get_parry_chance(mob/user, mob/attacker) . = ..() if(wielded) . += wielded_parry_bonus diff --git a/code/game/objects/items/weapons/melee/energy.dm b/code/game/objects/items/weapons/melee/energy.dm index 123ba3afa0afc..5c37dc6390848 100644 --- a/code/game/objects/items/weapons/melee/energy.dm +++ b/code/game/objects/items/weapons/melee/energy.dm @@ -239,7 +239,7 @@ playsound(user.loc, 'sound/weapons/blade1.ogg', 50, 1) -/obj/item/melee/energy/sword/get_parry_chance(mob/user) +/obj/item/melee/energy/sword/get_parry_chance(mob/user, mob/attacker) return active ? ..() : 0 diff --git a/code/game/objects/items/weapons/storage/misc.dm b/code/game/objects/items/weapons/storage/misc.dm index 18668a6dfd5e5..64d901f006cc9 100644 --- a/code/game/objects/items/weapons/storage/misc.dm +++ b/code/game/objects/items/weapons/storage/misc.dm @@ -67,6 +67,12 @@ /obj/item/storage/cigpaper/filters ) +/obj/item/storage/cigpaper/on_update_icon() + if (!length(contents)) + icon_state = "[icon_state]_empty" + else + icon_state = initial(icon_state) + /obj/item/storage/cigpaper/fancy name = "\improper Trident cigarette paper" desc = "A book of Trident-brand cigarette paper, for rolling to impress. Made to cater to individuals who appreciates the finer things in life." @@ -81,6 +87,9 @@ icon_state = "filterbin" startswith = list(/obj/item/paper/cig/filter = 10) +/obj/item/storage/cigpaper/filters/on_update_icon() + return + /obj/item/storage/chewables name = "box of chewing wads master" desc = "A generic brands of Waffle Co Wads, unflavored chews. Why do these exist?" diff --git a/code/modules/holodeck/HolodeckObjects.dm b/code/modules/holodeck/HolodeckObjects.dm index 9974d7d0c86d2..43509ea0cd995 100644 --- a/code/modules/holodeck/HolodeckObjects.dm +++ b/code/modules/holodeck/HolodeckObjects.dm @@ -237,7 +237,7 @@ spark_system.start() playsound(user.loc, 'sound/weapons/blade1.ogg', 50, 1) -/obj/item/holo/esword/get_parry_chance(mob/user) +/obj/item/holo/esword/get_parry_chance(mob/user, mob/attacker) return active ? ..() : 0 /obj/item/holo/esword/Initialize() diff --git a/code/modules/mob/living/carbon/human/human_attackhand.dm b/code/modules/mob/living/carbon/human/human_attackhand.dm index f610be5c1edcd..f764962314c1a 100644 --- a/code/modules/mob/living/carbon/human/human_attackhand.dm +++ b/code/modules/mob/living/carbon/human/human_attackhand.dm @@ -21,62 +21,61 @@ /mob/living/carbon/human/attack_hand(mob/living/carbon/M as mob) var/mob/living/carbon/human/H = M - if(istype(H)) - var/obj/item/organ/external/temp = H.organs_by_name[BP_R_HAND] - if(H.hand) - temp = H.organs_by_name[BP_L_HAND] - if(!temp || !temp.is_usable()) - to_chat(H, SPAN_WARNING("You can't use your hand.")) - return + if (!istype(H)) + if (M.a_intent == I_HURT) + attack_generic(H,rand(1,3),"punched") + return + + var/obj/item/organ/external/temp = H.organs_by_name[BP_R_HAND] + if (H.hand) + temp = H.organs_by_name[BP_L_HAND] + if (!temp || !temp.is_usable()) + to_chat(H, SPAN_WARNING("You can't use your hand.")) + return ..() remove_cloaking_source(species) - // Should this all be in Touch()? - if(istype(H)) - if(H != src && check_shields(0, null, H, H.zone_sel.selecting, H.name)) - H.do_attack_animation(src) - return 0 - if(istype(H.gloves, /obj/item/clothing/gloves/boxing/hologlove)) - H.do_attack_animation(src) - var/damage = rand(0, 9) - if(!damage) - playsound(loc, 'sound/weapons/punchmiss.ogg', 25, 1, -1) - visible_message(SPAN_DANGER("\The [H] has attempted to punch \the [src]!")) - return 0 - var/obj/item/organ/external/affecting = get_organ(ran_zone(H.zone_sel.selecting)) + if (istype(H.gloves, /obj/item/clothing/gloves/boxing/hologlove)) + H.do_attack_animation(src) + var/damage = rand(0, 9) + var/hit_zone = resolve_hand_attack(damage, H, H.zone_sel.selecting) + if (!hit_zone || !damage) + playsound(loc, 'sound/weapons/punchmiss.ogg', 25, 1, -1) + visible_message(SPAN_DANGER("\The [H] has attempted to punch \the [src]!")) + return - if(MUTATION_HULK in H.mutations) - damage += 5 + var/obj/item/organ/external/affecting = get_organ(hit_zone) - playsound(loc, "punch", 25, 1, -1) + if (MUTATION_HULK in H.mutations) + damage += 5 - update_personal_goal(/datum/goal/achievement/fistfight, TRUE) - H.update_personal_goal(/datum/goal/achievement/fistfight, TRUE) + playsound(loc, "punch", 25, 1, -1) - visible_message(SPAN_DANGER("[H] has punched \the [src]!")) + update_personal_goal(/datum/goal/achievement/fistfight, TRUE) + H.update_personal_goal(/datum/goal/achievement/fistfight, TRUE) - apply_damage(damage, DAMAGE_PAIN, affecting) - if(damage >= 9) - visible_message(SPAN_DANGER("[H] has weakened \the [src]!")) - var/armor_block = 100 * get_blocked_ratio(affecting, DAMAGE_BRUTE, damage = damage) - apply_effect(4, EFFECT_WEAKEN, armor_block) + visible_message(SPAN_DANGER("[H] has punched \the [src] in the [affecting.name]!")) - return + apply_damage(damage, DAMAGE_PAIN, affecting) + if (damage >= 9) + visible_message(SPAN_DANGER("[H] has weakened \the [src]!")) + var/armor_block = 100 * get_blocked_ratio(affecting, DAMAGE_BRUTE, damage = damage) + apply_effect(4, EFFECT_WEAKEN, armor_block) + return - if(istype(H)) - for (var/obj/item/grab/G in H) - if (G.assailant == H && G.affecting == src) - if(G.resolve_openhand_attack()) - return 1 + for (var/obj/item/grab/G in H) + if (G.assailant == H && G.affecting == src) + if(G.resolve_openhand_attack()) + return switch(M.a_intent) if(I_HELP) if(MUTATION_FERAL in M.mutations) - return 0 - if(H != src && istype(H) && (is_asystole() || (status_flags & FAKEDEATH) || failed_last_breath) && !(H.zone_sel.selecting == BP_R_ARM || H.zone_sel.selecting == BP_L_ARM)) + return + if (H != src && istype(H) && (is_asystole() || (status_flags & FAKEDEATH) || failed_last_breath) && !(H.zone_sel.selecting == BP_R_ARM || H.zone_sel.selecting == BP_L_ARM)) if (!cpr_time) - return 0 + return var/pumping_skill = max(M.get_skill_value(SKILL_MEDICAL),M.get_skill_value(SKILL_ANATOMY)) var/cpr_delay = 15 * M.skill_delay_mult(SKILL_ANATOMY, 0.2) @@ -84,178 +83,121 @@ H.visible_message(SPAN_NOTICE("\The [H] is trying to perform CPR on \the [src].")) - if(!do_after(H, cpr_delay, src, DO_DEFAULT | DO_USER_UNIQUE_ACT | DO_PUBLIC_PROGRESS)) + if (!do_after(H, cpr_delay, src, DO_DEFAULT | DO_USER_UNIQUE_ACT | DO_PUBLIC_PROGRESS)) cpr_time = 1 return cpr_time = 1 H.visible_message(SPAN_NOTICE("\The [H] performs CPR on \the [src]!")) - if(is_asystole()) - if(prob(5 + 5 * (SKILL_EXPERIENCED - pumping_skill))) + if (is_asystole()) + if (prob(5 + 5 * (SKILL_EXPERIENCED - pumping_skill))) var/obj/item/organ/external/chest = get_organ(BP_CHEST) - if(chest) + if (chest) chest.fracture() var/obj/item/organ/internal/heart/heart = internal_organs_by_name[BP_HEART] - if(heart) + if (heart) heart.external_pump = list(world.time, 0.4 + 0.1*pumping_skill + rand(-0.1,0.1)) - if(stat != DEAD && prob(2 * pumping_skill)) + if (stat != DEAD && prob(2 * pumping_skill)) resuscitate() - if(!H.check_has_mouth()) + if (!H.check_has_mouth()) to_chat(H, SPAN_WARNING("You don't have a mouth, you cannot do mouth-to-mouth resuscitation!")) return - if(!check_has_mouth()) + if (!check_has_mouth()) to_chat(H, SPAN_WARNING("They don't have a mouth, you cannot do mouth-to-mouth resuscitation!")) return - if((H.head && (H.head.body_parts_covered & FACE)) || (H.wear_mask && (H.wear_mask.body_parts_covered & FACE))) + if ((H.head && (H.head.body_parts_covered & FACE)) || (H.wear_mask && (H.wear_mask.body_parts_covered & FACE))) to_chat(H, SPAN_WARNING("You need to remove your mouth covering for mouth-to-mouth resuscitation!")) - return 0 - if((head && (head.body_parts_covered & FACE)) || (wear_mask && (wear_mask.body_parts_covered & FACE))) + return + if ((head && (head.body_parts_covered & FACE)) || (wear_mask && (wear_mask.body_parts_covered & FACE))) to_chat(H, SPAN_WARNING("You need to remove \the [src]'s mouth covering for mouth-to-mouth resuscitation!")) - return 0 + return if (!H.internal_organs_by_name[H.species.breathing_organ]) to_chat(H, SPAN_DANGER("You need lungs for mouth-to-mouth resuscitation!")) return - if(!need_breathe()) + if (!need_breathe()) return var/obj/item/organ/internal/lungs/L = internal_organs_by_name[species.breathing_organ] - if(L) + if (L) var/datum/gas_mixture/breath = H.get_breath_from_environment() var/fail = L.handle_breath(breath, 1) - if(!fail) + if (!fail) if (!L.is_bruised()) losebreath = 0 to_chat(src, SPAN_NOTICE("You feel a breath of fresh air enter your lungs. It feels good.")) - else if(!(M == src && apply_pressure(M, M.zone_sel.selecting))) + else if (!(M == src && apply_pressure(M, M.zone_sel.selecting))) help_shake_act(M) - return 1 + return - if(I_GRAB) + if (I_GRAB) + if (H != src && check_shields(0, null, H, H.zone_sel.selecting, H.name)) + H.do_attack_animation(src) + return return H.species.attempt_grab(H, src) - if(I_HURT) + if (I_HURT) + var/datum/unarmed_attack/attack = H.get_unarmed_attack(src, H.zone_sel.selecting) + var/rand_damage = rand(1, 5) + if (!attack) + return if(H.incapacitated()) to_chat(H, SPAN_NOTICE("You can't attack while incapacitated.")) return - if(!istype(H)) - attack_generic(H,rand(1,3),"punched") - return - - var/rand_damage = rand(1, 5) - var/block = 0 - var/accurate = 0 - var/hit_zone = H.zone_sel.selecting - var/obj/item/organ/external/affecting = get_organ(hit_zone) - - // See what attack they use - var/datum/unarmed_attack/attack = H.get_unarmed_attack(src, hit_zone) - if(!attack) - return 0 - if(world.time < H.last_attack + attack.delay) + if (world.time < H.last_attack + attack.delay) to_chat(H, SPAN_NOTICE("You can't attack again so soon.")) - return 0 + return else H.last_attack = world.time - if(!affecting || affecting.is_stump()) - to_chat(M, SPAN_DANGER("They are missing that limb!")) - return 1 - - switch(src.a_intent) - if(I_HELP) - // We didn't see this coming, so we get the full blow - rand_damage = 5 - accurate = 1 - if(I_HURT, I_GRAB) - // We're in a fighting stance, there's a chance we block - if(MayMove() && src!=H && prob(20)) - block = 1 - - if (length(M.grabbed_by)) - // Someone got a good grip on them, they won't be able to do much damage - rand_damage = max(1, rand_damage - 2) - - if(length(src.grabbed_by) || !src.MayMove() || src==H || H.species.species_flags & SPECIES_FLAG_NO_BLOCK) - accurate = 1 // certain circumstances make it impossible for us to evade punches - rand_damage = 5 - - // Process evasion and blocking - var/miss_type = 0 - var/attack_message - if(!accurate) - /* ~Hubblenaut - This place is kind of convoluted and will need some explaining. - ran_zone() will pick out of 11 zones, thus the chance for hitting - our target where we want to hit them is circa 9.1%. - - Now since we want to statistically hit our target organ a bit more - often than other organs, we add a base chance of 20% for hitting it. - - This leaves us with the following chances: - - If aiming for chest: - 27.3% chance you hit your target organ - 70.5% chance you hit a random other organ - 2.2% chance you miss - - If aiming for something else: - 23.2% chance you hit your target organ - 56.8% chance you hit a random other organ - 15.0% chance you miss - - Note: We don't use get_zone_with_miss_chance() here since the chances - were made for projectiles. - TODO: proc for melee combat miss chances depending on organ? - */ - if(prob(80)) - hit_zone = ran_zone(hit_zone) - if(prob(15) && hit_zone != BP_CHEST) // Missed! - if(!src.lying) - attack_message = "[H] attempted to strike [src], but missed!" - else - attack_message = "[H] attempted to strike [src], but \he rolled out of the way!" - src.set_dir(pick(GLOB.cardinal)) - miss_type = 1 - - if(!miss_type && block) - attack_message = "[H] went for [src]'s [affecting.name] but was blocked!" - miss_type = 2 - H.do_attack_animation(src) - if(!attack_message) - attack.show_attack(H, src, hit_zone, rand_damage) - else - H.visible_message(SPAN_DANGER("[attack_message]")) + var/hit_zone = resolve_hand_attack(rand_damage, H, H.zone_sel.selecting) + if (!hit_zone) + H.visible_message(SPAN_DANGER("[H] attempted to strike [src], but missed!")) + playsound(loc, attack.miss_sound, 25, 1, -1) + return - playsound(loc, ((miss_type) ? (miss_type == 1 ? attack.miss_sound : 'sound/weapons/thudswoosh.ogg') : attack.attack_sound), 25, 1, -1) - if (attack.should_attack_log) - admin_attack_log(H, src, "[miss_type ? (miss_type == 1 ? "Has missed" : "Was blocked by") : "Has [pick(attack.attack_verb)]"] their victim.", "[miss_type ? (miss_type == 1 ? "Missed" : "Blocked") : "[pick(attack.attack_verb)]"] their attacker", "[miss_type ? (miss_type == 1 ? "has missed" : "was blocked by") : "has [pick(attack.attack_verb)]"]") + var/obj/item/organ/external/affecting = get_organ(hit_zone) + if (!affecting) + return + + if (hit_zone != H.zone_sel.selecting) //If resolve_hand_attack returned a different zone, that means you're not as accurate. + if (prob(15) && hit_zone != BP_CHEST && lying) + H.visible_message(SPAN_DANGER("\The [H] attempted to strike \the [src], but \he rolled out of the way!")) + set_dir(pick(GLOB.cardinal)) + playsound(loc, attack.miss_sound, 25, 1, -1) + return - if(miss_type) - return 0 + if (a_intent == I_HELP || buckled || lying) + rand_damage = 5 + for (var/obj/item/grab/G in grabbed_by) + if (G.stop_move()) + rand_damage = 5 var/real_damage = rand_damage real_damage += attack.get_unarmed_damage(H) - if(MUTATION_HULK in H.mutations) - real_damage *= 2 // Hulks do twice the damage - rand_damage *= 2 + if (MUTATION_HULK in H.mutations) + real_damage *= 2 real_damage = max(1, real_damage) - // Apply additional unarmed effects. - attack.apply_effects(H, src, rand_damage, hit_zone) - // Finally, apply damage to target + attack.show_attack(H, src, hit_zone, real_damage) + playsound(loc, attack.attack_sound, 25, 1, -1) + attack.apply_effects(H, src, real_damage, hit_zone) apply_damage(real_damage, attack.get_damage_type(), hit_zone, damage_flags=attack.damage_flags()) + if (attack.should_attack_log) + admin_attack_log(H, src, "Has [pick(attack.attack_verb)] their victim.", "was [pick(attack.attack_verb)]] by their attacker", "has [pick(attack.attack_verb)]") - if(I_DISARM) - if(H.species) + if (I_DISARM) + if (H.species) + if (H != src && check_shields(0, null, H, H.zone_sel.selecting, H.name)) + H.do_attack_animation(src) + return admin_attack_log(M, src, "Disarmed their victim.", "Was disarmed.", "disarmed") H.species.disarm_attackhand(H, src) - return /mob/living/carbon/human/attack_generic(mob/user, damage, attack_message, environment_smash, damtype = DAMAGE_BRUTE, armorcheck = "melee", dam_flags = EMPTY_BITFIELD) diff --git a/code/modules/mob/living/carbon/human/human_defense.dm b/code/modules/mob/living/carbon/human/human_defense.dm index ada564bce8e91..c8b430823ef18 100644 --- a/code/modules/mob/living/carbon/human/human_defense.dm +++ b/code/modules/mob/living/carbon/human/human_defense.dm @@ -156,13 +156,33 @@ meteor_act if(.) return return 0 +/mob/living/carbon/human/proc/resolve_hand_attack(damage, mob/living/user, target_zone) + if (user == src || species.species_flags & SPECIES_FLAG_NO_BLOCK) + return target_zone + + var/accuracy_penalty = user.melee_accuracy_mods() + accuracy_penalty += 5*get_skill_difference(SKILL_COMBAT, user) + var/hit_zone = get_zone_with_miss_chance(target_zone, src, accuracy_penalty) + + if (!hit_zone) + return + if (check_shields(damage, null, user, hit_zone, user.name)) + return + + var/obj/item/organ/external/affecting = get_organ(hit_zone) + if (!affecting || affecting.is_stump()) + to_chat(user, SPAN_DANGER("They are missing that limb!")) + return + + return hit_zone + /mob/living/carbon/human/resolve_item_attack(obj/item/I, mob/living/user, target_zone) for (var/obj/item/grab/G in grabbed_by) if (G.resolve_item_attack(user, I, target_zone)) - return null + return - if (user == src) + if (user == src || species.species_flags & SPECIES_FLAG_NO_BLOCK) return target_zone var/accuracy_penalty = user.melee_accuracy_mods() @@ -174,15 +194,15 @@ meteor_act if (!hit_zone) visible_message(SPAN_DANGER("\The [user] misses [src] with \the [I]!")) - return null + return if (check_shields(I.force, I, user, hit_zone, "the [I.name]")) - return null + return var/obj/item/organ/external/affecting = get_organ(hit_zone) if (!affecting || affecting.is_stump()) to_chat(user, SPAN_DANGER("They are missing that limb!")) - return null + return return hit_zone diff --git a/code/modules/mob/living/simple_animal/defense.dm b/code/modules/mob/living/simple_animal/defense.dm index 353eb5dc511ff..9f1b1bf5f8c6d 100644 --- a/code/modules/mob/living/simple_animal/defense.dm +++ b/code/modules/mob/living/simple_animal/defense.dm @@ -28,30 +28,29 @@ /mob/living/simple_animal/attack_hand(mob/living/carbon/human/M as mob) ..() - - switch(M.a_intent) - - if(I_HELP) + switch (M.a_intent) + if (I_HELP) if (health > 0) - M.visible_message(SPAN_NOTICE("[M] [response_help] \the [src].")) + M.visible_message(SPAN_NOTICE("\The [M] [response_help] \the [src].")) M.update_personal_goal(/datum/goal/achievement/specific_object/pet, type) - if(I_DISARM) - M.visible_message(SPAN_NOTICE("[M] [response_disarm] \the [src].")) + if (I_DISARM) + M.visible_message(SPAN_NOTICE("\The [M] [response_disarm] \the [src].")) M.do_attack_animation(src) - if(I_HURT) + if (I_HURT) var/dealt_damage = harm_intent_damage var/harm_verb = response_harm - if(ishuman(M) && M.species) + if (ishuman(M) && M.species) var/datum/unarmed_attack/attack = M.get_unarmed_attack(src) dealt_damage = attack.damage <= dealt_damage ? dealt_damage : attack.damage harm_verb = pick(attack.attack_verb) + playsound(loc, attack.attack_sound, 25, 1, -1) if(attack.sharp || attack.edge) adjustBleedTicks(dealt_damage) adjustBruteLoss(dealt_damage) - M.visible_message(SPAN_WARNING("[M] [harm_verb] \the [src]!")) + M.visible_message(SPAN_WARNING("\The [M] [harm_verb] \the [src]!")) M.do_attack_animation(src) if (ai_holder) diff --git a/code/modules/mob/mob_helpers.dm b/code/modules/mob/mob_helpers.dm index 6f94efee32980..c8b5ce39363b3 100644 --- a/code/modules/mob/mob_helpers.dm +++ b/code/modules/mob/mob_helpers.dm @@ -93,6 +93,8 @@ //The base miss chance for the different defence zones var/global/list/base_miss_chance = list( BP_HEAD = 70, + BP_EYES = 70, + BP_MOUTH = 70, BP_CHEST = 10, BP_GROIN = 20, BP_L_LEG = 60, @@ -157,22 +159,19 @@ var/global/list/organ_rel_size = list( return ran_zone -// Emulates targetting a specific body part, and miss chances -// May return null if missed -// miss_chance_mod may be negative. +///Emulates targetting a specific body part, and miss chances +/// May return null if missed. Miss_chance_mod may be negative. +///In order to make this proc compatible with melee and projectile attacks, only return projectile compatible zones if not point blank. /proc/get_zone_with_miss_chance(zone, mob/target, miss_chance_mod = 0, ranged_attack=0) - zone = check_zone(zone) - - if(!ranged_attack) - // target isn't trying to fight - if(target.a_intent == I_HELP) + if (ranged_attack) + zone = check_zone(zone) + else + if (target.a_intent == I_HELP) return zone - // you cannot miss if your target is prone or restrained - if(target.buckled || target.lying) + if (target.buckled || target.lying) return zone - // if your target is being grabbed aggressively by someone you cannot miss either - for(var/obj/item/grab/G in target.grabbed_by) - if(G.stop_move()) + for (var/obj/item/grab/G in target.grabbed_by) + if (G.stop_move()) return zone var/miss_chance = 10 diff --git a/icons/obj/cigarettes.dmi b/icons/obj/cigarettes.dmi index 60e7fe627183f64e57cd6700ba44702530d93d04..036d0628d7be202ceab7cb72e3e0883f70184245 100644 GIT binary patch delta 17323 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%0ATv4xGY)C46CDuj?akIl7`k=Ws31LKv8j8udY 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 From 01fa871d16058b03abf39186e6ad94f2b2edd94f Mon Sep 17 00:00:00 2001 From: Sierra Helper <125094432+SierraHelper@users.noreply.github.com> Date: Thu, 21 Sep 2023 19:27:51 +0300 Subject: [PATCH 127/158] =?UTF-8?q?=D0=A7=D0=B5=D0=B9=D0=BD=D0=B4=D0=B6?= =?UTF-8?q?=D0=BB=D0=BE=D0=B3=20=D0=B4=D0=BB=D1=8F=20PR=20#1050=20[ci=20sk?= =?UTF-8?q?ip]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- html/changelogs/AutoChangeLog-sierra-pr-1050.yml | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-sierra-pr-1050.yml diff --git a/html/changelogs/AutoChangeLog-sierra-pr-1050.yml b/html/changelogs/AutoChangeLog-sierra-pr-1050.yml new file mode 100644 index 0000000000000..c6992074cc553 --- /dev/null +++ b/html/changelogs/AutoChangeLog-sierra-pr-1050.yml @@ -0,0 +1,10 @@ +author: emmanuelbassil +delete-after: true +changes: + - tweak: Rewrote unarmed attack code to use the same miss/parry code as melee attacks + with weapons. + - bugfix: Holo-boxing gloves no longer target the wrong limb 100% of the time. + - bugfix: Punching simple animals should make a punching noise again. + - bugfix: Fixed cigarette wrapping paper icons, now becomes empty when out of wrapping + paper. + - bugfix: Rapid pipe deployer no longer creates a pipe as you put it into storage. From 568612c9ab6c84e8917eacf08a4cd1653c76d3a9 Mon Sep 17 00:00:00 2001 From: Qlonever <42286723+Qlonever@users.noreply.github.com> Date: Thu, 21 Sep 2023 17:01:20 +0300 Subject: [PATCH 128/158] [MIRROR] Increase surgeons' chances of repairing robotic organs in organic bodies --- code/modules/surgery/robotics.dm | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/code/modules/surgery/robotics.dm b/code/modules/surgery/robotics.dm index 254fd07da9591..8675be7bcc0e6 100644 --- a/code/modules/surgery/robotics.dm +++ b/code/modules/surgery/robotics.dm @@ -375,6 +375,14 @@ else return SURGERY_SKILLS_ROBOTIC_ON_MEAT +/singleton/surgery_step/robotics/fix_organ_robotic/success_chance(mob/living/user, mob/living/carbon/human/target, obj/item/tool) + . = ..() + if(!target.isSynthetic()) + if(user.skill_check(SKILL_ANATOMY, SKILL_EXPERIENCED)) + . += 30 + if(user.skill_check(SKILL_MEDICAL, SKILL_EXPERIENCED)) + . += 30 + /singleton/surgery_step/robotics/fix_organ_robotic/assess_bodypart(mob/living/user, mob/living/carbon/human/target, target_zone, obj/item/tool) var/obj/item/organ/external/affected = ..() if(affected) From 5d4503bfec8ae720079598dd010d423ccd424228 Mon Sep 17 00:00:00 2001 From: Sierra Helper <125094432+SierraHelper@users.noreply.github.com> Date: Thu, 21 Sep 2023 19:47:44 +0300 Subject: [PATCH 129/158] =?UTF-8?q?=D0=A7=D0=B5=D0=B9=D0=BD=D0=B4=D0=B6?= =?UTF-8?q?=D0=BB=D0=BE=D0=B3=20=D0=B4=D0=BB=D1=8F=20PR=20#1053=20[ci=20sk?= =?UTF-8?q?ip]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- html/changelogs/AutoChangeLog-sierra-pr-1053.yml | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-sierra-pr-1053.yml diff --git a/html/changelogs/AutoChangeLog-sierra-pr-1053.yml b/html/changelogs/AutoChangeLog-sierra-pr-1053.yml new file mode 100644 index 0000000000000..6fbc2e89bd0bc --- /dev/null +++ b/html/changelogs/AutoChangeLog-sierra-pr-1053.yml @@ -0,0 +1,5 @@ +author: Qlonever +delete-after: true +changes: + - tweak: Improved surgeons' chances of repairing robotic organs inside of organic + bodies. From 315943b725bcaa6a39c7e7f26dcdfaa07ebd65b0 Mon Sep 17 00:00:00 2001 From: juxjux9930 <68120725+juxjux9930@users.noreply.github.com> Date: Tue, 19 Sep 2023 19:35:57 +0300 Subject: [PATCH 130/158] [MIRROR] Particles stuff --- code/__defines/_renderer.dm | 16 +- code/_helpers/global_lists.dm | 8 +- code/_helpers/maths.dm | 17 ++ code/game/atoms_movable.dm | 2 + code/game/machinery/bluespace_drive.dm | 18 +- .../objects/effects/particles/particles.dm | 182 ++++++++++++++---- code/modules/power/fusion/core/_core.dm | 4 +- code/modules/power/fusion/core/core_field.dm | 29 ++- .../power/fusion/fusion_particle_catcher.dm | 4 +- .../particle_accelerator/particle.dm | 4 +- 10 files changed, 199 insertions(+), 85 deletions(-) diff --git a/code/__defines/_renderer.dm b/code/__defines/_renderer.dm index e8f04987068af..90ff79719959c 100644 --- a/code/__defines/_renderer.dm +++ b/code/__defines/_renderer.dm @@ -299,22 +299,18 @@ GLOBAL_LIST_EMPTY(zmimic_renderers) vis_contents -= gas_heat_object if (quality == GLOB.PREF_LOW) - if(!istype(gas_heat_object, /obj/effect/heat)) - QDEL_NULL(gas_heat_object) - gas_heat_object = new /obj/effect/heat(null) + QDEL_NULL(gas_heat_object) + gas_heat_object = new /obj/effect/heat(null) else - if(!istype(gas_heat_object, /obj/particle_emitter/heat)) - QDEL_NULL(gas_heat_object) - gas_heat_object = new /obj/particle_emitter/heat(null, -1) + QDEL_NULL(gas_heat_object) if (quality == GLOB.PREF_MED) - gas_heat_object.particles?.count = 250 - gas_heat_object.particles?.spawning = 15 + gas_heat_object = new /obj/particle_emitter/heat(null) else if (quality == GLOB.PREF_HIGH) - gas_heat_object.particles?.count = 600 - gas_heat_object.particles?.spawning = 35 + gas_heat_object = new /obj/particle_emitter/heat/high(null) vis_contents += gas_heat_object + /atom/movable/renderer/heat/Initialize() . = ..() Setup() diff --git a/code/_helpers/global_lists.dm b/code/_helpers/global_lists.dm index 2455fb039f32f..0b480b8131fb7 100644 --- a/code/_helpers/global_lists.dm +++ b/code/_helpers/global_lists.dm @@ -22,6 +22,7 @@ var/global/list/language_keys[0] // Table of say codes for all languages var/global/list/playable_species = list(SPECIES_HUMAN) // A list of ALL playable species, whitelisted, latejoin or otherwise. +GLOBAL_LIST_EMPTY(all_particles) // Grabs var/global/list/all_grabstates[0] @@ -165,7 +166,12 @@ var/global/list/string_slot_flags = list( var/datum/grab/G = all_grabstates[grabstate_name] G.refresh_updown() - return 1 + paths = typesof(/particles) + for (var/path in paths) + var/particles/P = new path() + GLOB.all_particles[P.name] = P + + return TRUE //*** params cache var/global/list/paramslist_cache = list() diff --git a/code/_helpers/maths.dm b/code/_helpers/maths.dm index a45f28553cc06..c0a102af8f91c 100644 --- a/code/_helpers/maths.dm +++ b/code/_helpers/maths.dm @@ -236,3 +236,20 @@ var/d = max - min var/t = round((val - min) / d) return val - (t * d) + + +/proc/MakeGenerator(g_type, g_min, g_max, g_rand = UNIFORM_RAND) + switch (g_rand) + if (1) + g_rand = NORMAL_RAND + if (2) + g_rand = LINEAR_RAND + if (3) + g_rand = SQUARE_RAND + else + g_rand = UNIFORM_RAND + + if (!isnum(g_min) || !isnum(g_max)) + return null + + return generator(g_type, g_min, g_max, g_rand) diff --git a/code/game/atoms_movable.dm b/code/game/atoms_movable.dm index ed0a282712098..86cf810c8b69c 100644 --- a/code/game/atoms_movable.dm +++ b/code/game/atoms_movable.dm @@ -155,6 +155,8 @@ virtual_mob = null if (em_block) QDEL_NULL(em_block) + if (particles) + particles = null return ..() /atom/movable/Bump(atom/A, yes) diff --git a/code/game/machinery/bluespace_drive.dm b/code/game/machinery/bluespace_drive.dm index 1a547e7d7cb18..1e84f0d607d94 100644 --- a/code/game/machinery/bluespace_drive.dm +++ b/code/game/machinery/bluespace_drive.dm @@ -37,7 +37,7 @@ /obj/machinery/bluespacedrive/Initialize() . = ..() drive_sound = GLOB.sound_player.PlayLoopingSound(src, "\ref[src]", 'sound/machines/BSD_idle.ogg', 50, 7) - particles = new /particles/bluespace_torus + AddParticles(/particles/torus/bluespace) set_light(1, 5, 15, 10, COLOR_CYAN) update_icon() @@ -165,22 +165,6 @@ floor.ChangeTurf(/turf/simulated/floor/bluespace) - - -/particles/bluespace_torus - width = 700 - height = 700 - count = 2700 - spawning = 260 - lifespan = 0.75 SECONDS - fade = 0.95 SECONDS - position = generator("circle", 16, 24, NORMAL_RAND) - velocity = generator("circle", -6, 6, NORMAL_RAND) - friction = 0.15 - gradient = list(0, COLOR_WHITE, 0.75, COLOR_BLUE_LIGHT) - color_change = 0.125 - drift = generator("vector", list(-0.2, -0.2), list(0.2, 0.2)) - /datum/bubble_effect/bluespace_pulse ///List of mobs that can be swapped around when the pulse hits var/list/mob/living/mobs_to_switch = list() diff --git a/code/game/objects/effects/particles/particles.dm b/code/game/objects/effects/particles/particles.dm index 9e984f6ca78c8..948f921173732 100644 --- a/code/game/objects/effects/particles/particles.dm +++ b/code/game/objects/effects/particles/particles.dm @@ -1,7 +1,63 @@ -/* A series of particle systems. Some are based on F0lak's particle systems -*/ +/atom/movable/proc/AddParticles(type, create_new = FALSE) + if (ispath(type)) + if (create_new) + particles = new type() + GLOB.all_particles[src.name] = particles + else + var/particles/P = type + var/index = initial(P.name) + particles = GLOB.all_particles[index] + else + if (GLOB.all_particles[type]) + particles = GLOB.all_particles[type] + return + + +/atom/movable/proc/MakeParticleEmitter(type, create_new = FALSE) + var/obj/particle_emitter/pe + pe = new /obj/particle_emitter(loc) + pe.AddParticles(type, create_new) + + +/atom/movable/proc/RemoveParticles(delete = FALSE) + if (delete) + QDEL_NULL(particles) + particles = null + if (/obj/particle_emitter in vis_contents) + vis_contents -= /obj/particle_emitter + + +/atom/movable/proc/ModParticles(target, min, max, type = "circle", random = 1) + if (particles) + particles.ModParticles(target, min, max, type = "circle", random = 1) + + +/particles + var/name = "particles" + + +/particles/proc/ModParticles(target, min, max, type = "circle", random = 1) + if (!(type in list("vector", "box", "circle", "sphere", "square", "cube"))) // Valid types for generator(), sans color + return + + if (target in list("width", "height", "count", "spawning", "bound1", "bound2", "gravity", "gradient", "transform")) // These vars cannot be generators, per reference doc, and changing some breaks things anyways + return + + if (target in vars) + vars[target] = MakeGenerator(type, min, max, random) + + +/particles/proc/SetGradient(...) + var/counter = 0 + var/list/new_gradient = list() + for (var/i in args) + new_gradient += counter + counter += 1/length(args) + new_gradient += i + gradient = new_gradient /particles/fire + name = "fire" width = 500 height = 500 count = 3000 @@ -12,10 +68,11 @@ position = generator("circle", 0, 8, NORMAL_RAND) drift = generator("vector", list(0, -0.2), list(0, 0.2)) gravity = list(0, 0.65) - color = "white" + /particles/smoke + name = "smoke" width = 500 height = 1000 count = 3000 @@ -24,12 +81,13 @@ fade = 40 velocity = generator("box", list(-1, 2), list(1, 2), NORMAL_RAND) gravity = list(0, 1) - friction = 0.1 drift = generator("vector", list(-0.2, -0.3), list(0.2, 0.3)) color = "white" + /particles/fire_sparks + name = "fire sparks" width = 500 height = 500 count = 3000 @@ -44,7 +102,9 @@ gradient = list(0, "yellow", 1, "red") color = "yellow" + /particles/drill_sparks + name = "drill sparks" width = 124 height = 124 count = 1600 @@ -60,7 +120,9 @@ color = 0 transform = list(1,0,0,0, 0,1,0,0, 0,0,1,1/5, 0,0,0,1) + /particles/flare_sparks + name = "flare sparks" width = 500 height = 500 count = 2000 @@ -73,11 +135,13 @@ gradient = list(0, COLOR_WHITE, 0.4, COLOR_RED) color_change = 0.125 + /particles/dust + name = "dust" width = 124 height = 124 count = 256 - spawning = 999999 //spawn all instantly + spawning = 256 lifespan = 0.75 SECONDS fade = 0.35 SECONDS position = generator("box", list(-16, -16), list(16, 16), NORMAL_RAND) @@ -85,11 +149,13 @@ friction = 0.125 color = COLOR_OFF_WHITE + /particles/debris + name = "debris" width = 124 height = 124 count = 16 - spawning = 999999 //spawn all instantly + spawning = 16 lifespan = 0.75 SECONDS fade = 0.35 SECONDS position = generator("box", list(-10, -10), list(10, 10), NORMAL_RAND) @@ -98,9 +164,11 @@ gravity = list(0, -1) icon = 'icons/effects/particles.dmi' icon_state = list("rock1", "rock2", "rock3", "rock4", "rock5") - rotation = generator("num", 0, 360, NORMAL_RAND) + rotation = generator("num", 0, 360) + /particles/drill_sparks/debris + name = "drill debris" friction = 0.25 gradient = null color = COLOR_WHITE @@ -108,26 +176,46 @@ icon = 'icons/effects/particles.dmi' icon_state = list("rock1", "rock2", "rock3", "rock4", "rock5") -/particles/fusion - width = 500 - height = 500 - count = 4000 - spawning = 260 - lifespan = 0.85 SECONDS - fade = 0.95 SECONDS - position = generator("circle", 2.5 * 32 - 5, 2.5 * 32 + 5, NORMAL_RAND) - velocity = generator("circle", 0, 3, NORMAL_RAND) + +/particles/torus + name = "torus" + width = 800 + height = 800 + count = 900 + spawning = 45 + lifespan = 1 SECONDS + fade = 0.5 SECONDS + position = generator("circle", 8, 16, NORMAL_RAND) + velocity = generator("circle", -2, 2, NORMAL_RAND) friction = 0.15 - gradient = list(0, COLOR_WHITE, 0.75, COLOR_BLUE_LIGHT) + gradient = list(0, COLOR_WHITE, 1, COLOR_BLUE_LIGHT) color_change = 0.1 color = 0 - drift = generator("circle", 0.2, NORMAL_RAND) + drift = generator("sphere", -1, 1, NORMAL_RAND) + + +/particles/torus/fusion + name = "fusion torus" + count = 3600 + spawning = 180 + position = generator("circle", 2.5 * 32 - 5, 2.5 * 32 + 5, NORMAL_RAND) + velocity = generator("circle", -6, 6, NORMAL_RAND) + + +/particles/torus/bluespace + name = "bluespace torus" + count = 1800 + spawning = 90 + position = generator("circle", 16, 24, NORMAL_RAND) + velocity = generator("circle", -4, 4, NORMAL_RAND) + /particles/heat + name = "heat" width = 500 height = 500 - count = 600 - spawning = 35 + count = 250 + spawning = 15 lifespan = 1.85 SECONDS fade = 1.25 SECONDS position = generator("box", list(-16, -16), list(16, 0), NORMAL_RAND) @@ -139,30 +227,39 @@ drift = generator("circle", 0.4, NORMAL_RAND) velocity = generator("circle", 0, 3, NORMAL_RAND) + +/particles/heat/high + name = "high heat" + count = 600 + spawning = 35 + + //Spawner object //Maybe we could pool them in and out + /obj/particle_emitter name = "" anchored = TRUE mouse_opacity = 0 appearance_flags = PIXEL_SCALE + var/particle_type = null + /obj/particle_emitter/Initialize(mapload, time, _color) . = ..() - if(time > 0) + if (particle_type) + particles = GLOB.all_particles[particle_type] + + if (time > 0) QDEL_IN(src, time) color = _color -/obj/particle_emitter/proc/enable(on) - if(on) - particles.spawning = initial(particles.spawning) - else - particles.spawning = 0 /obj/particle_emitter/sparks - particles = new/particles/drill_sparks + particle_type = "drill sparks" plane = EFFECTS_ABOVE_LIGHTING_PLANE + /obj/particle_emitter/sparks/set_dir(dir) ..() var/list/min @@ -180,43 +277,58 @@ min = list(-1, 3, 0) max = list(-6, 12, 0) - particles.velocity = generator("box", min, max, NORMAL_RAND) + particles.velocity = generator("box", min, max) + /obj/particle_emitter/sparks/debris - particles = new/particles/drill_sparks/debris + particle_type = "drill debris" plane = DEFAULT_PLANE + /obj/particle_emitter/burst/Initialize(mapload, time) . = ..() //Burst emitters turn off after 1 tick - addtimer(new Callback(src, .proc/enable, FALSE), 1) + QDEL_IN(src, time) + + /obj/particle_emitter/burst/rocks - particles = new/particles/debris + particle_type = "debris" + /obj/particle_emitter/burst/dust - particles = new/particles/dust + particle_type = "dust" + /obj/particle_emitter/smoke layer = FIRE_LAYER - particles = new/particles/smoke + particle_type = "smoke" + /obj/particle_emitter/smoke/Initialize(mapload, time, _color) . = ..() filters = filter(type="blur", size=1.5) + /obj/particle_emitter/sparks_flare plane = EFFECTS_ABOVE_LIGHTING_PLANE - particles = new/particles/flare_sparks + particle_type = "flare" mouse_opacity = 1 + /obj/particle_emitter/sparks_flare/Initialize(mapload, time, _color) . = ..() filters = filter(type="bloom", size=3, offset = 0.5, alpha = 220) + /obj/particle_emitter/heat - particles = new/particles/heat + particle_type = "heat low" render_target = HEAT_EFFECT_TARGET + /obj/particle_emitter/heat/Initialize() . = ..() filters += filter(type = "blur", size = 1) + + +/obj/particle_emitter/heat/high + particle_type = "heat high" diff --git a/code/modules/power/fusion/core/_core.dm b/code/modules/power/fusion/core/_core.dm index 9d615ee6561e6..93ffe06fd1574 100644 --- a/code/modules/power/fusion/core/_core.dm +++ b/code/modules/power/fusion/core/_core.dm @@ -66,9 +66,9 @@ owned_field = null update_use_power(POWER_USE_IDLE) -/obj/machinery/power/fusion_core/proc/AddParticles(name, quantity = 1) +/obj/machinery/power/fusion_core/proc/AddReactants(name, quantity = 1) if(owned_field) - owned_field.AddParticles(name, quantity) + owned_field.AddReactants(name, quantity) . = 1 /obj/machinery/power/fusion_core/bullet_act(obj/item/projectile/Proj) diff --git a/code/modules/power/fusion/core/core_field.dm b/code/modules/power/fusion/core/core_field.dm index 2dcf68fa381af..b280a56e904cf 100644 --- a/code/modules/power/fusion/core/core_field.dm +++ b/code/modules/power/fusion/core/core_field.dm @@ -42,21 +42,16 @@ var/last_reactants = 0 - particles = new/particles/fusion - var/animating_ripple = FALSE /obj/effect/fusion_em_field/proc/UpdateVisuals() - //Take the particle system and edit it - - //size var/radius = ((size-1) / 2) * WORLD_ICON_SIZE particles.position = generator("circle", radius - size, radius + size, NORMAL_RAND) //Radiation affects drift - var/radiationfactor = clamp((radiation * 0.001), 0, 0.5) - particles.drift = generator("circle", (0.2 + radiationfactor), NORMAL_RAND) + var/radiationfactor = clamp((radiation * 0.001), 0, 0.5) + 0.2 + particles.drift = generator("circle", -radiationfactor, radiationfactor, , NORMAL_RAND) particles.spawning = last_reactants * 0.9 + Interpolate(0, 200, clamp(plasma_temperature / 70000, 0, 1)) @@ -64,6 +59,11 @@ /obj/effect/fusion_em_field/New(loc, obj/machinery/power/fusion_core/new_owned_core) ..() + owned_core = new_owned_core + if (!owned_core) + qdel(src) + return + filters = list(filter(type = "ripple", size = 4, "radius" = 1, "falloff" = 1) , filter(type="outline", size = 2, color = COLOR_RED) , filter(type="bloom", size=3, offset = 0.5, alpha = 235)) @@ -72,10 +72,7 @@ last_range = light_min_range last_power = light_min_power - owned_core = new_owned_core - if(!owned_core) - qdel(src) - return + AddParticles(/particles/torus/fusion, TRUE) particles.spawning = 0 //Turn off particles until something calls for it @@ -154,7 +151,7 @@ last_range = use_range last_power = use_power //Temperature based color - particles.gradient = list(0, COLOR_WHITE, 0.85, light_color) + particles.gradient = list(0, COLOR_WHITE, 1, light_color) UNLINT(var/dm_filter/outline = filters[2]) UNLINT(outline.color = light_color) UNLINT(var/dm_filter/bloom = filters[3]) @@ -174,7 +171,7 @@ if(uptake_gas && uptake_gas.total_moles) for(var/gasname in uptake_gas.gas) if(uptake_gas.gas[gasname]*10 > reactants[gasname]) - AddParticles(gasname, uptake_gas.gas[gasname]*10) + AddReactants(gasname, uptake_gas.gas[gasname]*10) uptake_gas.adjust_gas(gasname, -(uptake_gas.gas[gasname]), update=FALSE) added_particles = TRUE if(added_particles) @@ -327,7 +324,7 @@ plasma_temperature += 1 UpdateVisuals() -/obj/effect/fusion_em_field/proc/AddParticles(name, quantity = 1) +/obj/effect/fusion_em_field/proc/AddReactants(name, quantity = 1) if(name in reactants) reactants[name] += quantity else if(name != "proton" && name != "electron" && name != "neutron") @@ -513,11 +510,11 @@ // Loop through the newly produced reactants and add them to the pool. for(var/reactant in produced_reactants) - AddParticles(reactant, produced_reactants[reactant]) + AddReactants(reactant, produced_reactants[reactant]) // Check whether there are reactants left, and add them back to the pool. for(var/reactant in react_pool) - AddParticles(reactant, react_pool[reactant]) + AddReactants(reactant, react_pool[reactant]) UpdateVisuals() diff --git a/code/modules/power/fusion/fusion_particle_catcher.dm b/code/modules/power/fusion/fusion_particle_catcher.dm index de6a9bdd36c07..ad40db433b6bd 100644 --- a/code/modules/power/fusion/fusion_particle_catcher.dm +++ b/code/modules/power/fusion/fusion_particle_catcher.dm @@ -17,9 +17,9 @@ mysize = newsize UpdateSize() -/obj/effect/fusion_particle_catcher/proc/AddParticles(name, quantity = 1) +/obj/effect/fusion_particle_catcher/proc/AddReactants(name, quantity = 1) if(parent && parent.size >= mysize) - parent.AddParticles(name, quantity) + parent.AddReactants(name, quantity) return 1 return 0 diff --git a/code/modules/power/singularity/particle_accelerator/particle.dm b/code/modules/power/singularity/particle_accelerator/particle.dm index 24e0c41e0f2f3..86b0191f00231 100644 --- a/code/modules/power/singularity/particle_accelerator/particle.dm +++ b/code/modules/power/singularity/particle_accelerator/particle.dm @@ -34,14 +34,14 @@ else if(istype(A,/obj/machinery/power/fusion_core)) var/obj/machinery/power/fusion_core/collided_core = A if(particle_type && particle_type != "neutron") - if(collided_core.AddParticles(particle_type, 1 + additional_particles)) + if (collided_core.AddReactants(particle_type, 1 + additional_particles)) collided_core.owned_field.plasma_temperature += mega_energy collided_core.owned_field.energy += energy qdel(src) else if(istype(A, /obj/effect/fusion_particle_catcher)) var/obj/effect/fusion_particle_catcher/PC = A if(particle_type && particle_type != "neutron") - if(PC.parent.owned_core.AddParticles(particle_type, 1 + additional_particles)) + if (PC.parent.owned_core.AddReactants(particle_type, 1 + additional_particles)) PC.parent.plasma_temperature += mega_energy PC.parent.energy += energy qdel(src) From c6257f190d94fe7d5b85f94e37f8a2822d1f3d55 Mon Sep 17 00:00:00 2001 From: Sierra Helper <125094432+SierraHelper@users.noreply.github.com> Date: Thu, 21 Sep 2023 19:52:39 +0300 Subject: [PATCH 131/158] =?UTF-8?q?=D0=A7=D0=B5=D0=B9=D0=BD=D0=B4=D0=B6?= =?UTF-8?q?=D0=BB=D0=BE=D0=B3=20=D0=B4=D0=BB=D1=8F=20PR=20#1043=20[ci=20sk?= =?UTF-8?q?ip]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- html/changelogs/AutoChangeLog-sierra-pr-1043.yml | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-sierra-pr-1043.yml diff --git a/html/changelogs/AutoChangeLog-sierra-pr-1043.yml b/html/changelogs/AutoChangeLog-sierra-pr-1043.yml new file mode 100644 index 0000000000000..f9577a73b3361 --- /dev/null +++ b/html/changelogs/AutoChangeLog-sierra-pr-1043.yml @@ -0,0 +1,6 @@ +author: Jux +delete-after: true +changes: + - admin: Particle effects can be more easily added live using AddParticles(). Arguments + are for the type, duration in seconds (0 for infinte) and colour. They can also + be removed with RemoveParticles(). From 18f8129bbc341950b7fda95646bd433ed1b541c4 Mon Sep 17 00:00:00 2001 From: Sierra Helper <125094432+SierraHelper@users.noreply.github.com> Date: Thu, 21 Sep 2023 19:52:55 +0300 Subject: [PATCH 132/158] [MIRROR] Tweak/protected roles Co-authored-by: SierraKomodo <11140088+SierraKomodo@users.noreply.github.com> --- code/controllers/configuration.dm | 5 ----- code/game/antagonist/antagonist.dm | 3 --- code/game/antagonist/station/changeling.dm | 2 +- code/game/antagonist/station/cultist.dm | 3 +-- code/game/antagonist/station/revolutionary.dm | 3 +-- code/game/antagonist/station/traitor.dm | 2 +- maps/sierra/sierra_antagonism.dm | 10 +++++----- maps/torch/torch_antagonism.dm | 11 +++++------ packs/sierra-tweaks/gamemodes/revolutionary.dm | 3 +-- 9 files changed, 15 insertions(+), 27 deletions(-) diff --git a/code/controllers/configuration.dm b/code/controllers/configuration.dm index b1634e8f976d8..3100d3345740b 100644 --- a/code/controllers/configuration.dm +++ b/code/controllers/configuration.dm @@ -108,9 +108,6 @@ /// if objectives are disabled or not var/static/objectives_disabled = FALSE - /// If security and such can be traitor/cult/other - var/static/protect_roles_from_antagonist = FALSE - /// Gamemodes which end instantly will instead keep on going until the round ends by escape shuttle or nuke. var/static/continous_rounds = FALSE @@ -644,8 +641,6 @@ else log_misc("Incorrect objective disabled definition: [value]") objectives_disabled = CONFIG_OBJECTIVE_NONE - if ("protect_roles_from_antagonist") - protect_roles_from_antagonist = TRUE if ("probability") var/regex/flatten = new (@"\s+", "g") for (var/entry in value) diff --git a/code/game/antagonist/antagonist.dm b/code/game/antagonist/antagonist.dm index 6d24c39a44cbb..14f24fd147f36 100644 --- a/code/game/antagonist/antagonist.dm +++ b/code/game/antagonist/antagonist.dm @@ -2,7 +2,6 @@ // Text shown when becoming this antagonist. var/list/restricted_jobs = list() // Jobs that cannot be this antagonist at roundstart (depending on config) - var/list/protected_jobs = list() // As above. var/list/blacklisted_jobs = list(/datum/job/submap) // Jobs that can NEVER be this antagonist // Strings. @@ -96,8 +95,6 @@ get_starting_locations() if(!role_text_plural) role_text_plural = role_text - if(config.protect_roles_from_antagonist) - restricted_jobs |= protected_jobs if(antaghud_indicator) if(!GLOB.hud_icon_reference) GLOB.hud_icon_reference = list() diff --git a/code/game/antagonist/station/changeling.dm b/code/game/antagonist/station/changeling.dm index cad98abb3195d..68a4e5ac44750 100644 --- a/code/game/antagonist/station/changeling.dm +++ b/code/game/antagonist/station/changeling.dm @@ -6,7 +6,7 @@ GLOBAL_DATUM_INIT(changelings, /datum/antagonist/changeling, new) role_text_plural = "Changelings" feedback_tag = "changeling_objective" blacklisted_jobs = list(/datum/job/ai, /datum/job/cyborg, /datum/job/submap) - protected_jobs = list(/datum/job/officer, /datum/job/warden, /datum/job/detective, /datum/job/captain, /datum/job/hos) + restricted_jobs = list(/datum/job/officer, /datum/job/warden, /datum/job/detective, /datum/job/captain, /datum/job/hos) welcome_text = "Use say \"%LANGUAGE_PREFIX%g message\" to communicate with your fellow changelings. Remember: you get all of their absorbed DNA if you absorb them." flags = ANTAG_SUSPICIOUS | ANTAG_RANDSPAWN | ANTAG_VOTABLE antaghud_indicator = "hudchangeling" diff --git a/code/game/antagonist/station/cultist.dm b/code/game/antagonist/station/cultist.dm index c21eedd0e9f56..2e93b7df68be3 100644 --- a/code/game/antagonist/station/cultist.dm +++ b/code/game/antagonist/station/cultist.dm @@ -24,8 +24,7 @@ GLOBAL_DATUM_INIT(cult, /datum/antagonist/cultist, new) id = MODE_CULTIST role_text = "Cultist" role_text_plural = "Cultists" - restricted_jobs = list(/datum/job/lawyer, /datum/job/captain, /datum/job/hos) - protected_jobs = list(/datum/job/officer, /datum/job/warden, /datum/job/detective) + restricted_jobs = list(/datum/job/lawyer, /datum/job/captain, /datum/job/hos, /datum/job/officer, /datum/job/warden, /datum/job/detective) blacklisted_jobs = list(/datum/job/ai, /datum/job/cyborg, /datum/job/chaplain, /datum/job/psychiatrist, /datum/job/submap) feedback_tag = "cult_objective" antag_indicator = "hudcultist" diff --git a/code/game/antagonist/station/revolutionary.dm b/code/game/antagonist/station/revolutionary.dm index ae296ded2c76d..c26b60cbd58b5 100644 --- a/code/game/antagonist/station/revolutionary.dm +++ b/code/game/antagonist/station/revolutionary.dm @@ -30,8 +30,7 @@ GLOBAL_DATUM_INIT(revs, /datum/antagonist/revolutionary, new) faction = "revolutionary" blacklisted_jobs = list(/datum/job/ai, /datum/job/cyborg) - restricted_jobs = list(/datum/job/captain, /datum/job/hop, /datum/job/hos, /datum/job/chief_engineer, /datum/job/rd, /datum/job/cmo, /datum/job/lawyer) - protected_jobs = list(/datum/job/officer, /datum/job/warden, /datum/job/detective) + restricted_jobs = list(/datum/job/captain, /datum/job/hop, /datum/job/hos, /datum/job/chief_engineer, /datum/job/rd, /datum/job/cmo, /datum/job/lawyer, /datum/job/officer, /datum/job/warden, /datum/job/detective) /datum/antagonist/revolutionary/create_global_objectives() diff --git a/code/game/antagonist/station/traitor.dm b/code/game/antagonist/station/traitor.dm index 144fe926d0463..64dbf3fd2327d 100644 --- a/code/game/antagonist/station/traitor.dm +++ b/code/game/antagonist/station/traitor.dm @@ -5,7 +5,7 @@ GLOBAL_DATUM_INIT(traitors, /datum/antagonist/traitor, new) id = MODE_TRAITOR antaghud_indicator = "hud_traitor" blacklisted_jobs = list(/datum/job/ai, /datum/job/submap) - protected_jobs = list(/datum/job/officer, /datum/job/warden, /datum/job/detective, /datum/job/captain, /datum/job/lawyer, /datum/job/hos) + restricted_jobs = list(/datum/job/captain, /datum/job/lawyer, /datum/job/hos) flags = ANTAG_SUSPICIOUS | ANTAG_RANDSPAWN | ANTAG_VOTABLE skill_setter = /datum/antag_skill_setter/station diff --git a/maps/sierra/sierra_antagonism.dm b/maps/sierra/sierra_antagonism.dm index 86b9eee30c8b9..19d62c06111c8 100644 --- a/maps/sierra/sierra_antagonism.dm +++ b/maps/sierra/sierra_antagonism.dm @@ -1,26 +1,26 @@ //Makes sure we don't get any merchant antags as a balance concern. Can also be used for future Sierra specific antag restrictions. /datum/antagonist/changeling blacklisted_jobs = list(/datum/job/ai, /datum/job/cyborg, /datum/job/submap) - protected_jobs = list(/datum/job/captain, /datum/job/hop, /datum/job/hos, /datum/job/rd, /datum/job/cmo, /datum/job/chief_engineer, /datum/job/detective, /datum/job/warden, /datum/job/officer, ) + restricted_jobs = list(/datum/job/captain, /datum/job/hop, /datum/job/hos, /datum/job/rd, /datum/job/cmo, /datum/job/chief_engineer, /datum/job/detective, /datum/job/warden, /datum/job/officer, ) /datum/antagonist/godcultist blacklisted_jobs = list(/datum/job/ai, /datum/job/cyborg, /datum/job/chaplain, /datum/job/submap) - protected_jobs = list(/datum/job/captain, /datum/job/hop, /datum/job/hos, /datum/job/rd, /datum/job/cmo, /datum/job/chief_engineer, /datum/job/detective, /datum/job/warden, /datum/job/officer, /datum/job/iaa, ) + restricted_jobs = list(/datum/job/captain, /datum/job/hop, /datum/job/hos, /datum/job/rd, /datum/job/cmo, /datum/job/chief_engineer, /datum/job/detective, /datum/job/warden, /datum/job/officer, /datum/job/iaa, ) /datum/antagonist/cultist blacklisted_jobs = list(/datum/job/ai, /datum/job/cyborg, /datum/job/chaplain, /datum/job/submap) - protected_jobs = list(/datum/job/captain, /datum/job/hop, /datum/job/hos, /datum/job/rd, /datum/job/cmo, /datum/job/chief_engineer, /datum/job/detective, /datum/job/warden, /datum/job/officer, /datum/job/iaa, ) + restricted_jobs = list(/datum/job/captain, /datum/job/hop, /datum/job/hos, /datum/job/rd, /datum/job/cmo, /datum/job/chief_engineer, /datum/job/detective, /datum/job/warden, /datum/job/officer, /datum/job/iaa, ) /datum/antagonist/loyalists blacklisted_jobs = list(/datum/job/ai, /datum/job/cyborg, /datum/job/submap, ) /datum/antagonist/revolutionary blacklisted_jobs = list(/datum/job/ai, /datum/job/cyborg, /datum/job/submap) - protected_jobs = list(/datum/job/iaa) + restricted_jobs = list(/datum/job/iaa) /datum/antagonist/traitor blacklisted_jobs = list(/datum/job/ai, /datum/job/cyborg, /datum/job/submap) - protected_jobs = list(/datum/job/captain, /datum/job/hop, /datum/job/hos, /datum/job/rd, /datum/job/cmo, /datum/job/chief_engineer, /datum/job/warden, /datum/job/detective, /datum/job/officer, /datum/job/iaa, ) + restricted_jobs = list(/datum/job/captain, /datum/job/hop, /datum/job/hos, /datum/job/rd, /datum/job/cmo, /datum/job/chief_engineer, /datum/job/warden, /datum/job/detective, /datum/job/officer, /datum/job/iaa, ) /datum/antagonist/ert/equip(mob/living/carbon/human/player) if(!..()) diff --git a/maps/torch/torch_antagonism.dm b/maps/torch/torch_antagonism.dm index 35b07c6730005..c87850cc8b1ef 100644 --- a/maps/torch/torch_antagonism.dm +++ b/maps/torch/torch_antagonism.dm @@ -1,24 +1,23 @@ //Makes sure we don't get any merchant antags as a balance concern. Can also be used for future Torch specific antag restrictions. /datum/antagonist/changeling blacklisted_jobs = list(/datum/job/ai, /datum/job/cyborg, /datum/job/merchant, /datum/job/captain, /datum/job/hop, /datum/job/submap) - protected_jobs = list(/datum/job/medical_trainee, /datum/job/engineer_trainee, /datum/job/junior_doctor) + restricted_jobs = list(/datum/job/medical_trainee, /datum/job/engineer_trainee, /datum/job/junior_doctor) /datum/antagonist/godcultist blacklisted_jobs = list(/datum/job/ai, /datum/job/cyborg, /datum/job/chaplain, /datum/job/merchant, /datum/job/captain, /datum/job/hop, /datum/job/hos, /datum/job/submap) - protected_jobs = list(/datum/job/medical_trainee, /datum/job/engineer_trainee, /datum/job/junior_doctor) + restricted_jobs = list(/datum/job/medical_trainee, /datum/job/engineer_trainee, /datum/job/junior_doctor) /datum/antagonist/cultist blacklisted_jobs = list(/datum/job/ai, /datum/job/cyborg, /datum/job/chaplain, /datum/job/psychiatrist, /datum/job/merchant, /datum/job/captain, /datum/job/hop, /datum/job/hos, /datum/job/submap) - protected_jobs = list(/datum/job/medical_trainee, /datum/job/engineer_trainee, /datum/job/junior_doctor) + restricted_jobs = list(/datum/job/medical_trainee, /datum/job/engineer_trainee, /datum/job/junior_doctor) /datum/antagonist/loyalists blacklisted_jobs = list(/datum/job/ai, /datum/job/cyborg, /datum/job/submap, /datum/job/merchant) - protected_jobs = list(/datum/job/officer, /datum/job/medical_trainee, /datum/job/engineer_trainee, /datum/job/junior_doctor) + restricted_jobs = list(/datum/job/officer, /datum/job/medical_trainee, /datum/job/engineer_trainee, /datum/job/junior_doctor) /datum/antagonist/revolutionary blacklisted_jobs = list(/datum/job/ai, /datum/job/cyborg, /datum/job/submap, /datum/job/merchant) - restricted_jobs = list(/datum/job/captain, /datum/job/hop) - protected_jobs = list(/datum/job/officer, /datum/job/medical_trainee, /datum/job/engineer_trainee, /datum/job/junior_doctor) + restricted_jobs = list(/datum/job/captain, /datum/job/hop, /datum/job/officer, /datum/job/medical_trainee, /datum/job/engineer_trainee, /datum/job/junior_doctor) /datum/antagonist/traitor blacklisted_jobs = list(/datum/job/merchant, /datum/job/captain, /datum/job/hop, /datum/job/ai, /datum/job/submap, /datum/job/hos, /datum/job/medical_trainee, /datum/job/engineer_trainee, /datum/job/junior_doctor) diff --git a/packs/sierra-tweaks/gamemodes/revolutionary.dm b/packs/sierra-tweaks/gamemodes/revolutionary.dm index e2b67d7fde35e..7bd30b2cbaef7 100644 --- a/packs/sierra-tweaks/gamemodes/revolutionary.dm +++ b/packs/sierra-tweaks/gamemodes/revolutionary.dm @@ -1,8 +1,7 @@ //Overriding loyalists and making them adminspawn only due to their imbalance /datum/antagonist/revolutionary blacklisted_jobs = list(/datum/job/ai, /datum/job/cyborg, /datum/job/captain, /datum/job/hop, /datum/job/hos, /datum/job/chief_engineer, /datum/job/rd, /datum/job/cmo, /datum/job/lawyer) - restricted_jobs = list(/datum/job/detective) - protected_jobs = list(/datum/job/officer, /datum/job/warden) + restricted_jobs = list(/datum/job/detective, /datum/job/officer, /datum/job/warden) /datum/game_mode/revolution antag_tags = list(MODE_REVOLUTIONARY, MODE_MERCENARY) From a4aa8e438fb22fea1017a6c57f9ef99e9cb7261e Mon Sep 17 00:00:00 2001 From: Sierra Helper <125094432+SierraHelper@users.noreply.github.com> Date: Fri, 22 Sep 2023 01:17:01 +0000 Subject: [PATCH 133/158] =?UTF-8?q?=D0=90=D0=B2=D1=82=D0=BE=D0=BC=D0=B0?= =?UTF-8?q?=D1=82=D0=B8=D1=87=D0=B5=D1=81=D0=BA=D0=B0=D1=8F=20=D0=BA=D0=BE?= =?UTF-8?q?=D0=BC=D0=BF=D0=B8=D0=BB=D1=8F=D1=86=D0=B8=D1=8F=20=D1=87=D0=B5?= =?UTF-8?q?=D0=B9=D0=BD=D0=B4=D0=B6=D0=BB=D0=BE=D0=B3=D0=BE=D0=B2=20[ci=20?= =?UTF-8?q?skip]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- html/changelog.html | 28 +++++++++++++++++++ html/changelogs/.all_changelog.yml | 24 ++++++++++++++++ .../AutoChangeLog-sierra-pr-1043.yml | 6 ---- .../AutoChangeLog-sierra-pr-1049.yml | 4 --- .../AutoChangeLog-sierra-pr-1050.yml | 10 ------- .../AutoChangeLog-sierra-pr-1051.yml | 5 ---- .../AutoChangeLog-sierra-pr-1052.yml | 6 ---- .../AutoChangeLog-sierra-pr-1053.yml | 5 ---- 8 files changed, 52 insertions(+), 36 deletions(-) delete mode 100644 html/changelogs/AutoChangeLog-sierra-pr-1043.yml delete mode 100644 html/changelogs/AutoChangeLog-sierra-pr-1049.yml delete mode 100644 html/changelogs/AutoChangeLog-sierra-pr-1050.yml delete mode 100644 html/changelogs/AutoChangeLog-sierra-pr-1051.yml delete mode 100644 html/changelogs/AutoChangeLog-sierra-pr-1052.yml delete mode 100644 html/changelogs/AutoChangeLog-sierra-pr-1053.yml diff --git a/html/changelog.html b/html/changelog.html index 61016a1f57bc8..c09a6db00c364 100644 --- a/html/changelog.html +++ b/html/changelog.html @@ -28,6 +28,34 @@

Sierra SS13

-->
+

22.09 - 2023

+

Обновления Jux:

+
+
Particle effects can be more easily added live using AddParticles(). Arguments are for the type, duration in seconds (0 for infinte) and colour. They can also be removed with RemoveParticles().
+
+

Обновления Mucker:

+
+
You can now examine items people are wearing by clicking the '?' next to items listed when examine a person.
+
+

Обновления Qlonever:

+
+
Improved surgeons' chances of repairing robotic organs inside of organic bodies.
+
+

Обновления SomeAngryMiner:

+
+
Several Sprite issues have been corrected.
+
+

Обновления emmanuelbassil:

+
+
Padded beds and brown bar stools now properly drop cloth and carpet respectively when padding is removed.
+
Can now remove padding with any sharp item, not only wirecutters.
+
Rewrote unarmed attack code to use the same miss/parry code as melee attacks with weapons.
+
Holo-boxing gloves no longer target the wrong limb 100% of the time.
+
Punching simple animals should make a punching noise again.
+
Fixed cigarette wrapping paper icons, now becomes empty when out of wrapping paper.
+
Rapid pipe deployer no longer creates a pipe as you put it into storage.
+
+

21.09 - 2023

Обновления wb13:

diff --git a/html/changelogs/.all_changelog.yml b/html/changelogs/.all_changelog.yml index 0e878915c419b..c3e4e07d094c1 100644 --- a/html/changelogs/.all_changelog.yml +++ b/html/changelogs/.all_changelog.yml @@ -21846,3 +21846,27 @@ DO NOT EDIT THIS FILE BY HAND! AUTOMATICALLY GENERATED BY sierra_genchangelog.p wb13: - bugfix: Installing items using a gripper no longer causes errors. This mainly includes airlock electronics. +2023-09-22: + Jux: + - admin: Particle effects can be more easily added live using AddParticles(). Arguments + are for the type, duration in seconds (0 for infinte) and colour. They can also + be removed with RemoveParticles(). + Mucker: + - rscadd: You can now examine items people are wearing by clicking the '?' next + to items listed when examine a person. + Qlonever: + - tweak: Improved surgeons' chances of repairing robotic organs inside of organic + bodies. + SomeAngryMiner: + - rscadd: Several Sprite issues have been corrected. + emmanuelbassil: + - bugfix: Padded beds and brown bar stools now properly drop cloth and carpet respectively + when padding is removed. + - tweak: Can now remove padding with any sharp item, not only wirecutters. + - tweak: Rewrote unarmed attack code to use the same miss/parry code as melee attacks + with weapons. + - bugfix: Holo-boxing gloves no longer target the wrong limb 100% of the time. + - bugfix: Punching simple animals should make a punching noise again. + - bugfix: Fixed cigarette wrapping paper icons, now becomes empty when out of wrapping + paper. + - bugfix: Rapid pipe deployer no longer creates a pipe as you put it into storage. diff --git a/html/changelogs/AutoChangeLog-sierra-pr-1043.yml b/html/changelogs/AutoChangeLog-sierra-pr-1043.yml deleted file mode 100644 index f9577a73b3361..0000000000000 --- a/html/changelogs/AutoChangeLog-sierra-pr-1043.yml +++ /dev/null @@ -1,6 +0,0 @@ -author: Jux -delete-after: true -changes: - - admin: Particle effects can be more easily added live using AddParticles(). Arguments - are for the type, duration in seconds (0 for infinte) and colour. They can also - be removed with RemoveParticles(). diff --git a/html/changelogs/AutoChangeLog-sierra-pr-1049.yml b/html/changelogs/AutoChangeLog-sierra-pr-1049.yml deleted file mode 100644 index 8d00ea8361da7..0000000000000 --- a/html/changelogs/AutoChangeLog-sierra-pr-1049.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: SomeAngryMiner -delete-after: true -changes: - - rscadd: Several Sprite issues have been corrected. diff --git a/html/changelogs/AutoChangeLog-sierra-pr-1050.yml b/html/changelogs/AutoChangeLog-sierra-pr-1050.yml deleted file mode 100644 index c6992074cc553..0000000000000 --- a/html/changelogs/AutoChangeLog-sierra-pr-1050.yml +++ /dev/null @@ -1,10 +0,0 @@ -author: emmanuelbassil -delete-after: true -changes: - - tweak: Rewrote unarmed attack code to use the same miss/parry code as melee attacks - with weapons. - - bugfix: Holo-boxing gloves no longer target the wrong limb 100% of the time. - - bugfix: Punching simple animals should make a punching noise again. - - bugfix: Fixed cigarette wrapping paper icons, now becomes empty when out of wrapping - paper. - - bugfix: Rapid pipe deployer no longer creates a pipe as you put it into storage. diff --git a/html/changelogs/AutoChangeLog-sierra-pr-1051.yml b/html/changelogs/AutoChangeLog-sierra-pr-1051.yml deleted file mode 100644 index b36582831b016..0000000000000 --- a/html/changelogs/AutoChangeLog-sierra-pr-1051.yml +++ /dev/null @@ -1,5 +0,0 @@ -author: Mucker -delete-after: true -changes: - - rscadd: You can now examine items people are wearing by clicking the '?' next - to items listed when examine a person. diff --git a/html/changelogs/AutoChangeLog-sierra-pr-1052.yml b/html/changelogs/AutoChangeLog-sierra-pr-1052.yml deleted file mode 100644 index 1483abb748404..0000000000000 --- a/html/changelogs/AutoChangeLog-sierra-pr-1052.yml +++ /dev/null @@ -1,6 +0,0 @@ -author: emmanuelbassil -delete-after: true -changes: - - bugfix: Padded beds and brown bar stools now properly drop cloth and carpet respectively - when padding is removed. - - tweak: Can now remove padding with any sharp item, not only wirecutters. diff --git a/html/changelogs/AutoChangeLog-sierra-pr-1053.yml b/html/changelogs/AutoChangeLog-sierra-pr-1053.yml deleted file mode 100644 index 6fbc2e89bd0bc..0000000000000 --- a/html/changelogs/AutoChangeLog-sierra-pr-1053.yml +++ /dev/null @@ -1,5 +0,0 @@ -author: Qlonever -delete-after: true -changes: - - tweak: Improved surgeons' chances of repairing robotic organs inside of organic - bodies. From d20f1952878b4682c6eee94f328863b20e8cac74 Mon Sep 17 00:00:00 2001 From: SierraKomodo <11140088+SierraKomodo@users.noreply.github.com> Date: Fri, 22 Sep 2023 06:11:22 +0300 Subject: [PATCH 134/158] [MIRROR] Fix runtimes from mouse-dropping non-items on tables --- code/modules/tables/tables.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/tables/tables.dm b/code/modules/tables/tables.dm index 0da1ba4e3b3ca..e4006ebd3cd9f 100644 --- a/code/modules/tables/tables.dm +++ b/code/modules/tables/tables.dm @@ -241,7 +241,7 @@ /obj/structure/table/MouseDrop_T(atom/dropped, mob/user) // Place held objects on table - if (user.IsHolding(dropped)) + if (isitem(dropped) && user.IsHolding(dropped)) if (!user.use_sanity_check(src, dropped, SANITY_CHECK_DEFAULT | SANITY_CHECK_TOOL_UNEQUIP)) return TRUE user.unEquip(dropped, get_turf(src)) From 7c563ed49f179950de16b603f0dbdb804e0abeb6 Mon Sep 17 00:00:00 2001 From: emmanuelbassil <6874235+emmanuelbassil@users.noreply.github.com> Date: Fri, 22 Sep 2023 06:11:28 +0300 Subject: [PATCH 135/158] [MIRROR] Improves parapen feedback --- code/modules/paperwork/pen/reagent_pen.dm | 42 ++++++++++++++--------- 1 file changed, 26 insertions(+), 16 deletions(-) diff --git a/code/modules/paperwork/pen/reagent_pen.dm b/code/modules/paperwork/pen/reagent_pen.dm index 056413ca706c4..abbb10f191411 100644 --- a/code/modules/paperwork/pen/reagent_pen.dm +++ b/code/modules/paperwork/pen/reagent_pen.dm @@ -7,27 +7,37 @@ create_reagents(30) /obj/item/pen/reagent/attack(mob/living/M, mob/user) - . = FALSE if (!istype(M)) return FALSE + if (!reagents.total_volume) + return FALSE var/target_zone = user.zone_sel.selecting var/allow = M.can_inject(user, target_zone) - if (allow) - if (allow == INJECTION_PORT) - if (M != user) - to_chat(user, SPAN_WARNING("You begin hunting for an injection port on \the [M]'s suit!")) - else - to_chat(user, SPAN_NOTICE("You begin hunting for an injection port on your suit.")) - if (!user.do_skilled(INJECTION_PORT_DELAY, SKILL_MEDICAL, M, do_flags = DO_MEDICAL)) - return TRUE - if (reagents.total_volume) - if (M.reagents) - var/should_admin_log = reagents.should_admin_log() - var/contained_reagents = reagents.get_reagents() - var/trans = reagents.trans_to_mob(M, 30, CHEM_BLOOD) - if (should_admin_log) - admin_inject_log(user, M, src, contained_reagents, trans) + if (!allow) + return TRUE + + if (allow == INJECTION_PORT) + if (M != user) + to_chat(user, SPAN_WARNING("You begin hunting for an injection port on \the [M]'s suit!")) + else + to_chat(user, SPAN_NOTICE("You begin hunting for an injection port on your suit.")) + + if (!user.do_skilled(INJECTION_PORT_DELAY, SKILL_MEDICAL, M, do_flags = DO_MEDICAL)) + return TRUE + + if (M.reagents) + var/should_admin_log = reagents.should_admin_log() + var/contained_reagents = reagents.get_reagents() + var/trans = reagents.trans_to_mob(M, 30, CHEM_BLOOD) + if (should_admin_log) + admin_inject_log(user, M, src, contained_reagents, trans) + + if (user.a_intent == I_HURT && allow != INJECTION_PORT) + return M.use_weapon(src, user) + else + to_chat(user, SPAN_WARNING("You prick \the [M] with \the [src].")) + to_chat(M, SPAN_NOTICE("You feel a tiny prick.")) return TRUE /* From 12ca7102c5a0ff2130099d14bf39fe6ca671b088 Mon Sep 17 00:00:00 2001 From: SierraKomodo <11140088+SierraKomodo@users.noreply.github.com> Date: Fri, 22 Sep 2023 06:11:15 +0300 Subject: [PATCH 136/158] [MIRROR] Remove extra wrong-direction light from hydroponics --- maps/torch/torch3_deck3.dmm | 3 --- 1 file changed, 3 deletions(-) diff --git a/maps/torch/torch3_deck3.dmm b/maps/torch/torch3_deck3.dmm index 74ae80be75a16..bc447287c99c0 100644 --- a/maps/torch/torch3_deck3.dmm +++ b/maps/torch/torch3_deck3.dmm @@ -18094,9 +18094,6 @@ /turf/simulated/floor/plating, /area/maintenance/thirddeck/aftport) "Tm" = ( -/obj/machinery/light{ - dir = 8 - }, /obj/effect/floor_decal/corner/green{ dir = 5 }, From bb3acaa2688a4652fc913a6369a9b0c6470cc951 Mon Sep 17 00:00:00 2001 From: SierraKomodo <11140088+SierraKomodo@users.noreply.github.com> Date: Fri, 22 Sep 2023 06:11:35 +0300 Subject: [PATCH 137/158] [MIRROR] Cryo temperature lights --- code/game/machinery/cryo.dm | 27 ++++++++++++++++-- .../obj/machines/medical/cryogenics_split.dmi | Bin 8892 -> 10031 bytes 2 files changed, 25 insertions(+), 2 deletions(-) diff --git a/code/game/machinery/cryo.dm b/code/game/machinery/cryo.dm index 37b7b08303f8d..b7e0296e6bb39 100644 --- a/code/game/machinery/cryo.dm +++ b/code/game/machinery/cryo.dm @@ -28,6 +28,9 @@ var/current_heat_capacity = 50 + var/temperature_warning_threshhold = 170 + var/temperature_danger_threshhold = T0C + /obj/machinery/atmospherics/unary/cryo_cell/Initialize() . = ..() icon = 'icons/obj/machines/medical/cryogenics_split.dmi' @@ -82,6 +85,7 @@ temperature_archived = air_contents.temperature heat_gas_contents() expel_gas() + queue_icon_update() if(abs(temperature_archived-air_contents.temperature) > 1) network.update = 1 @@ -138,9 +142,9 @@ data["cellTemperature"] = round(air_contents.temperature) data["cellTemperatureStatus"] = "good" - if(air_contents.temperature > T0C) // if greater than 273.15 kelvin (0 celsius) + if(air_contents.temperature >= temperature_danger_threshhold) // if greater than 273.15 kelvin (0 celsius) data["cellTemperatureStatus"] = "bad" - else if(air_contents.temperature > 225) + else if(air_contents.temperature >= temperature_warning_threshhold) data["cellTemperatureStatus"] = "average" data["isBeakerLoaded"] = beaker ? 1 : 0 @@ -235,6 +239,25 @@ I.pixel_z = 32 AddOverlays(I) + if (powered()) + var/warn_state = "off" + if (on) + warn_state = "safe" + if (air_contents.temperature >= temperature_danger_threshhold) + warn_state = "danger" + else if (air_contents.temperature >= temperature_warning_threshhold) + warn_state = "warn" + I = overlay_image(icon, "lights_[warn_state]") + AddOverlays(I) + I = overlay_image(icon, "lights_[warn_state]_top") + I.pixel_z = 32 + AddOverlays(I) + AddOverlays(emissive_appearance(icon, "lights_mask")) + I = emissive_appearance(icon, "lights_mask_top") + I.pixel_z = 32 + AddOverlays(I) + + /obj/machinery/atmospherics/unary/cryo_cell/proc/process_occupant() if(air_contents.total_moles < 10) return diff --git a/icons/obj/machines/medical/cryogenics_split.dmi b/icons/obj/machines/medical/cryogenics_split.dmi index ae3b6b8f63befbf69b799a876a95773a1ab1c142..695089a9eb2744de45cc70004fc13521d341ca23 100644 GIT binary patch literal 10031 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 X*>M+rB(E|X$q^GNSAKd1G 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 N(9<&1EK|1)|6k4&pt%45 From 4877417565c72c51a2c48bb06555030630643c38 Mon Sep 17 00:00:00 2001 From: Sierra Helper <125094432+SierraHelper@users.noreply.github.com> Date: Fri, 22 Sep 2023 10:19:35 +0300 Subject: [PATCH 138/158] =?UTF-8?q?=D0=A7=D0=B5=D0=B9=D0=BD=D0=B4=D0=B6?= =?UTF-8?q?=D0=BB=D0=BE=D0=B3=20=D0=B4=D0=BB=D1=8F=20PR=20#1059=20[ci=20sk?= =?UTF-8?q?ip]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- html/changelogs/AutoChangeLog-sierra-pr-1059.yml | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-sierra-pr-1059.yml diff --git a/html/changelogs/AutoChangeLog-sierra-pr-1059.yml b/html/changelogs/AutoChangeLog-sierra-pr-1059.yml new file mode 100644 index 0000000000000..62b19295b15b2 --- /dev/null +++ b/html/changelogs/AutoChangeLog-sierra-pr-1059.yml @@ -0,0 +1,11 @@ +author: SierraKomodo +delete-after: true +changes: + - tweak: The threshhold for the cryo interface displaying a temperature n warning + (orange) colors adjusted to 170, matching the effective temperature limit of + cryoxadone and clonexadone. + - imageadd: Cryo tubes now have color-coded lights, indicating power status and + temperature status. Blue = powered but turned off. Green = powered and safe. + Yellow/orange = powered and above 170. Red = powered and above 237K (0C). No + light = Unpowered. + - imageadd: Cryo tube lights are now emmissive. From ffee4b5bc45c7a482a5c516cafaf124d348150cf Mon Sep 17 00:00:00 2001 From: LordNest <77477080+LordNest@users.noreply.github.com> Date: Fri, 22 Sep 2023 06:11:42 +0300 Subject: [PATCH 139/158] [MIRROR] Corporate Mining outpost --- maps/away/mining/mining-corporate.dmm | 44406 ++++++++++++++++++++++++ maps/away/mining/mining.dm | 1 + maps/away/mining/mining_corporate.dm | 199 + 3 files changed, 44606 insertions(+) create mode 100644 maps/away/mining/mining-corporate.dmm create mode 100644 maps/away/mining/mining_corporate.dm diff --git a/maps/away/mining/mining-corporate.dmm b/maps/away/mining/mining-corporate.dmm new file mode 100644 index 0000000000000..3a61d2247dc43 --- /dev/null +++ b/maps/away/mining/mining-corporate.dmm @@ -0,0 +1,44406 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"aa" = ( +/turf/simulated/mineral, +/area/mine/unexplored) +"ab" = ( +/turf/unsimulated/mask, +/area/mine/unexplored) +"ac" = ( +/obj/structure/grille, +/obj/structure/lattice, +/turf/space, +/area/space) +"ad" = ( +/obj/structure/catwalk, +/obj/structure/cable/yellow{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/structure/cable/yellow{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/turf/simulated/floor/airless, +/area/outpost/mining/solar) +"ae" = ( +/obj/machinery/power/tracker, +/obj/effect/floor_decal/solarpanel, +/obj/structure/cable/yellow{ + d2 = 2; + icon_state = "0-2" + }, +/turf/simulated/floor/airless, +/area/outpost/mining/solar) +"af" = ( +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, +/obj/structure/catwalk, +/turf/space, +/area/space) +"ag" = ( +/obj/structure/cable/yellow{ + d2 = 4; + icon_state = "0-4" + }, +/obj/effect/floor_decal/solarpanel, +/obj/machinery/power/solar, +/turf/simulated/floor/airless, +/area/outpost/mining/solar) +"ah" = ( +/obj/structure/cable/yellow{ + d2 = 8; + icon_state = "0-8" + }, +/obj/effect/floor_decal/solarpanel, +/obj/machinery/power/solar, +/turf/simulated/floor/airless, +/area/outpost/mining/solar) +"ai" = ( +/turf/simulated/wall/prepainted/mining_corporate, +/area/outpost/mining/cenral) +"aj" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/yellow{ + dir = 5; + icon_state = "intact" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/effect/catwalk_plated, +/turf/simulated/floor/plating, +/area/outpost/mining) +"ak" = ( +/obj/machinery/atmospherics/pipe/manifold/hidden/yellow{ + dir = 1; + icon_state = "map" + }, +/obj/effect/floor_decal/corner/brown{ + dir = 6 + }, +/turf/simulated/floor/tiled, +/area/outpost/mining) +"al" = ( +/obj/effect/floor_decal/industrial/outline/yellow, +/obj/machinery/suit_storage_unit{ + name = "Mining Voidsuit Storage Unit" + }, +/turf/simulated/floor/tiled/monotile, +/area/outpost/mining/voidsuits) +"am" = ( +/obj/machinery/suit_storage_unit{ + isopen = 1; + name = "Mining Voidsuit Storage Unit" + }, +/obj/effect/floor_decal/industrial/outline/yellow, +/obj/machinery/light/small{ + dir = 1 + }, +/turf/simulated/floor/tiled/monotile, +/area/outpost/mining/voidsuits) +"an" = ( +/obj/effect/floor_decal/industrial/outline/yellow, +/obj/machinery/firealarm{ + dir = 4; + pixel_x = 24 + }, +/obj/machinery/suit_storage_unit/mining/alt, +/turf/simulated/floor/tiled/monotile, +/area/outpost/mining/voidsuits) +"ao" = ( +/obj/effect/shuttle_landmark/corporate/nav1, +/turf/space, +/area/space) +"ap" = ( +/turf/simulated/floor/asteroid, +/area/mine/unexplored) +"aq" = ( +/mob/living/simple_animal/hostile/carp, +/turf/simulated/floor/asteroid, +/area/mine/unexplored) +"ar" = ( +/obj/structure/grille/broken, +/obj/structure/lattice, +/turf/space, +/area/space) +"as" = ( +/obj/effect/shuttle_landmark/corporate/nav9, +/turf/space, +/area/space) +"at" = ( +/obj/structure/lattice, +/obj/structure/grille, +/turf/space, +/area/space) +"au" = ( +/obj/structure/lattice, +/turf/space, +/area/space) +"av" = ( +/obj/structure/catwalk, +/obj/structure/cable/yellow{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/structure/cable/yellow{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/structure/cable/yellow{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/simulated/floor/airless, +/area/outpost/mining/solar) +"aw" = ( +/obj/structure/railing/mapped, +/turf/space, +/area/space) +"ax" = ( +/obj/structure/catwalk, +/obj/structure/cable/yellow{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/simulated/floor/airless, +/area/outpost/mining/solar) +"ay" = ( +/obj/structure/lattice, +/obj/structure/railing/mapped{ + dir = 4; + icon_state = "railing0-1" + }, +/turf/space, +/area/space) +"az" = ( +/obj/structure/catwalk, +/obj/structure/cable/yellow{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/turf/simulated/floor/airless, +/area/outpost/mining/solar) +"aA" = ( +/obj/structure/catwalk, +/obj/structure/cable/yellow{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/simulated/floor/airless, +/area/outpost/mining/solar) +"aB" = ( +/obj/structure/catwalk, +/obj/structure/cable/yellow{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/obj/structure/cable/yellow{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/simulated/floor/airless, +/area/outpost/mining/solar) +"aC" = ( +/obj/structure/catwalk, +/obj/structure/cable/yellow{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/turf/simulated/floor/airless, +/area/outpost/mining/solar) +"aD" = ( +/obj/effect/shuttle_landmark/corporate/nav6, +/turf/space, +/area/space) +"aE" = ( +/obj/structure/lattice, +/obj/structure/railing/mapped{ + dir = 1; + icon_state = "railing0-1" + }, +/obj/structure/railing/mapped{ + dir = 8; + icon_state = "railing0-1" + }, +/turf/space, +/area/space) +"aF" = ( +/turf/simulated/wall/r_wall/prepainted, +/area/outpost/mining/hangar) +"aG" = ( +/obj/effect/floor_decal/corner/brown/three_quarters{ + dir = 8; + icon_state = "corner_white_three_quarters" + }, +/turf/simulated/floor/tiled, +/area/outpost/mining/hangar) +"aH" = ( +/obj/effect/floor_decal/corner/brown{ + dir = 5; + icon_state = "corner_white" + }, +/turf/simulated/floor/tiled, +/area/outpost/mining/hangar) +"aI" = ( +/obj/effect/floor_decal/corner/brown{ + dir = 5; + icon_state = "corner_white" + }, +/obj/machinery/light/small{ + dir = 1; + icon_state = "bulb_map" + }, +/turf/simulated/floor/tiled, +/area/outpost/mining/hangar) +"aJ" = ( +/obj/effect/floor_decal/corner/brown/three_quarters{ + dir = 1; + icon_state = "corner_white_three_quarters" + }, +/turf/simulated/floor/tiled, +/area/outpost/mining/hangar) +"aK" = ( +/obj/effect/floor_decal/corner/brown{ + dir = 9 + }, +/turf/simulated/floor/tiled, +/area/outpost/mining/hangar) +"aO" = ( +/obj/effect/floor_decal/corner/brown{ + dir = 6 + }, +/turf/simulated/floor/tiled, +/area/outpost/mining/hangar) +"aP" = ( +/obj/structure/railing/mapped{ + dir = 8; + icon_state = "railing0-1" + }, +/turf/space, +/area/space) +"aR" = ( +/turf/simulated/floor/plating, +/area/outpost/mining/hangar) +"aS" = ( +/turf/simulated/floor/tiled/monotile, +/area/outpost/mining/hangar) +"aT" = ( +/obj/effect/floor_decal/corner/brown{ + dir = 9 + }, +/obj/machinery/light/small{ + dir = 8 + }, +/turf/simulated/floor/tiled, +/area/outpost/mining/hangar) +"aU" = ( +/obj/effect/floor_decal/corner/brown{ + dir = 6 + }, +/obj/machinery/light/small{ + dir = 4; + icon_state = "bulb_map" + }, +/turf/simulated/floor/tiled, +/area/outpost/mining/hangar) +"aV" = ( +/obj/effect/catwalk_plated, +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/turf/simulated/floor/plating, +/area/outpost/mining/hangar) +"aW" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/simulated/floor/tiled/monotile, +/area/outpost/mining/hangar) +"aX" = ( +/obj/structure/grille, +/turf/space, +/area/space) +"aY" = ( +/obj/effect/catwalk_plated, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/simulated/floor/plating, +/area/outpost/mining/hangar) +"aZ" = ( +/obj/structure/lattice, +/obj/structure/railing/mapped, +/turf/space, +/area/space) +"ba" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/catwalk, +/obj/machinery/access_button/airlock_exterior{ + master_tag = "mbase_airlock_space"; + pixel_y = -21 + }, +/turf/space, +/area/space) +"bb" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/catwalk, +/turf/space, +/area/space) +"bc" = ( +/obj/structure/disposaloutlet{ + dir = 1 + }, +/obj/structure/catwalk, +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/turf/space, +/area/space) +"bd" = ( +/turf/simulated/wall/r_wall/prepainted, +/area/outpost/mining/power) +"be" = ( +/obj/structure/cable/yellow{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/door/firedoor, +/obj/machinery/door/blast/shutters{ + id_tag = "mbase_room_shutters_solar"; + name = "Space Shutters" + }, +/obj/effect/wallframe_spawn/reinforced/no_grille, +/turf/simulated/floor/plating, +/area/outpost/mining/power) +"bf" = ( +/turf/simulated/wall/prepainted/mining_corporate, +/area/outpost/mining/power) +"bg" = ( +/obj/machinery/door/airlock/external/bolted/cycling{ + id_tag = "mbase_airlock_space_outer" + }, +/obj/structure/disposalpipe/segment, +/turf/simulated/floor/tiled/techfloor/grid, +/area/outpost/mining/cenral) +"bh" = ( +/turf/simulated/wall/r_wall/prepainted, +/area/outpost/mining/cenral) +"bi" = ( +/obj/structure/railing/mapped{ + dir = 1; + icon_state = "railing0-1" + }, +/turf/space, +/area/space) +"bj" = ( +/obj/structure/catwalk, +/obj/structure/table/steel, +/obj/item/paper_bin, +/obj/item/pen, +/obj/machinery/button/blast_door{ + dir = 2; + id_tag = "mbase_room_shutters_solar"; + name = "Space Shutters Control"; + pixel_x = 0; + pixel_y = 26 + }, +/turf/simulated/floor/plating, +/area/outpost/mining/power) +"bk" = ( +/obj/structure/catwalk, +/obj/machinery/power/solar_control/autostart, +/obj/structure/cable/yellow, +/obj/structure/cable/yellow{ + d2 = 4; + icon_state = "0-4" + }, +/turf/simulated/floor/plating, +/area/outpost/mining/power) +"bl" = ( +/obj/structure/catwalk, +/obj/structure/table/steel, +/obj/structure/cable/yellow{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/turf/simulated/floor/plating, +/area/outpost/mining/power) +"bm" = ( +/obj/effect/catwalk_plated, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/light/small{ + dir = 8 + }, +/turf/simulated/floor/plating, +/area/outpost/mining/hangar) +"bn" = ( +/obj/effect/shuttle_landmark/corporate/nav8, +/turf/simulated/floor/plating, +/area/outpost/mining/hangar) +"bo" = ( +/turf/simulated/wall/prepainted/mining_corporate, +/area/outpost/mining/hangar) +"bp" = ( +/obj/structure/catwalk, +/obj/machinery/embedded_controller/radio/airlock/airlock_controller{ + id_tag = "mbase_airlock_space"; + pixel_x = -24 + }, +/obj/machinery/atmospherics/unary/vent_pump/high_volume/airlock{ + dir = 4; + id_tag = "mbase_airlock_space_pump" + }, +/obj/effect/floor_decal/industrial/warning/cee{ + dir = 1; + icon_state = "stripecee" + }, +/turf/simulated/floor/plating, +/area/outpost/mining/cenral) +"bq" = ( +/obj/machinery/atmospherics/pipe/manifold/hidden/yellow{ + dir = 1; + icon_state = "map" + }, +/obj/structure/disposalpipe/segment, +/turf/simulated/floor/tiled/techfloor/grid, +/area/outpost/mining/cenral) +"br" = ( +/obj/structure/catwalk, +/obj/machinery/airlock_sensor{ + id_tag = "mbase_airlock_space_sensor"; + master_tag = "mbase_airlock_space"; + pixel_x = 24 + }, +/obj/machinery/atmospherics/unary/vent_pump/high_volume/airlock{ + dir = 8; + id_tag = "mbase_airlock_space_pump" + }, +/obj/effect/floor_decal/industrial/warning/cee{ + dir = 1; + icon_state = "stripecee" + }, +/turf/simulated/floor/plating, +/area/outpost/mining/cenral) +"bs" = ( +/turf/simulated/wall/r_wall/prepainted, +/area/outpost/mining/recreation) +"bt" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/blast/shutters{ + id_tag = "mbase_room_shutters1"; + name = "Space Shutters" + }, +/obj/effect/wallframe_spawn/reinforced/no_grille, +/turf/simulated/floor/plating, +/area/outpost/mining/recreation) +"bu" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/blast/shutters{ + id_tag = "mbase_room_shutters2"; + name = "Space Shutters" + }, +/obj/effect/wallframe_spawn/reinforced/no_grille, +/turf/simulated/floor/plating, +/area/outpost/mining/recreation) +"bv" = ( +/obj/structure/catwalk, +/obj/machinery/light/small{ + dir = 8 + }, +/obj/structure/table/steel, +/obj/item/reagent_containers/food/drinks/coffee, +/turf/simulated/floor/plating, +/area/outpost/mining/power) +"bw" = ( +/obj/structure/catwalk, +/obj/structure/bed/chair/padded/brown{ + dir = 1; + icon_state = "chair_preview" + }, +/turf/simulated/floor/plating, +/area/outpost/mining/power) +"bx" = ( +/obj/structure/catwalk, +/obj/structure/table/steel, +/obj/structure/cable/yellow{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/firealarm{ + dir = 4; + pixel_x = 24 + }, +/obj/item/stack/cable_coil, +/turf/simulated/floor/plating, +/area/outpost/mining/power) +"by" = ( +/obj/structure/catwalk, +/obj/machinery/light/small{ + dir = 8 + }, +/obj/machinery/atmospherics/unary/vent_pump/high_volume/airlock{ + dir = 4; + id_tag = "mbase_airlock_space_pump" + }, +/obj/effect/floor_decal/industrial/warning/cee, +/turf/simulated/floor/plating, +/area/outpost/mining/cenral) +"bz" = ( +/obj/machinery/atmospherics/pipe/manifold4w/hidden/yellow, +/obj/structure/disposalpipe/segment, +/turf/simulated/floor/tiled/techfloor/grid, +/area/outpost/mining/cenral) +"bA" = ( +/obj/machinery/atmospherics/unary/vent_pump/high_volume/airlock{ + dir = 8; + id_tag = "mbase_airlock_space_pump" + }, +/obj/effect/floor_decal/industrial/warning/cee, +/turf/simulated/floor/plating, +/area/outpost/mining/cenral) +"bB" = ( +/obj/structure/closet/cabinet, +/turf/simulated/floor/wood/walnut, +/area/outpost/mining/recreation) +"bC" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 6 + }, +/obj/structure/sign/poster{ + pixel_y = 32 + }, +/obj/structure/bed/chair/comfy/brown{ + dir = 4 + }, +/turf/simulated/floor/wood/walnut, +/area/outpost/mining/recreation) +"bD" = ( +/obj/machinery/atmospherics/unary/vent_scrubber/on{ + dir = 8 + }, +/obj/machinery/button/blast_door{ + dir = 8; + id_tag = "mbase_room_shutters1"; + name = "Space Shutters Control"; + pixel_x = 24 + }, +/obj/structure/table/woodentable/walnut, +/turf/simulated/floor/wood/walnut, +/area/outpost/mining/recreation) +"bE" = ( +/turf/simulated/wall/prepainted/mining_corporate, +/area/outpost/mining/recreation) +"bF" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 6 + }, +/turf/simulated/floor/carpet, +/area/outpost/mining/recreation) +"bG" = ( +/obj/machinery/atmospherics/unary/vent_scrubber/on{ + dir = 8 + }, +/obj/item/pen, +/obj/machinery/button/blast_door{ + dir = 8; + id_tag = "mbase_room_shutters2"; + name = "Space Shutters Control"; + pixel_x = 24 + }, +/obj/structure/table/woodentable/walnut, +/turf/simulated/floor/wood/walnut, +/area/outpost/mining/recreation) +"bH" = ( +/obj/machinery/alarm{ + dir = 4; + icon_state = "alarm0"; + pixel_x = -23 + }, +/obj/structure/bed/padded, +/obj/item/bedsheet/mime, +/turf/simulated/floor/carpet, +/area/outpost/mining/recreation) +"bI" = ( +/obj/structure/catwalk, +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/structure/cable{ + d2 = 4; + icon_state = "0-4" + }, +/obj/machinery/power/apc/inactive{ + dir = 8; + name = "west bump"; + pixel_x = -25 + }, +/turf/simulated/floor/plating, +/area/outpost/mining/power) +"bJ" = ( +/obj/structure/catwalk, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 6 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/simulated/floor/plating, +/area/outpost/mining/power) +"bK" = ( +/obj/structure/catwalk, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/obj/structure/cable/yellow{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/simulated/floor/plating, +/area/outpost/mining/power) +"bL" = ( +/obj/machinery/door/airlock/mining{ + name = "Power Comparement" + }, +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/simulated/floor/tiled/techfloor/grid, +/area/outpost/mining/power) +"bM" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 10 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 10 + }, +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/turf/simulated/floor/tiled/monotile, +/area/outpost/mining/hangar) +"bN" = ( +/obj/machinery/door/airlock/external/glass/bolted/cycling{ + id_tag = "mbase_airlock_space_inner"; + name = "External Airlock" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/yellow{ + dir = 2; + icon_state = "intact" + }, +/obj/structure/disposalpipe/segment, +/turf/simulated/floor/tiled/techfloor/grid, +/area/outpost/mining/cenral) +"bO" = ( +/obj/item/device/flashlight/lamp{ + on = 0 + }, +/obj/machinery/atmospherics/unary/vent_pump/on{ + dir = 8 + }, +/obj/structure/table/woodentable/walnut, +/turf/simulated/floor/wood/walnut, +/area/outpost/mining/recreation) +"bP" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/machinery/door/airlock/civilian{ + name = "Living Room" + }, +/obj/machinery/door/firedoor, +/obj/effect/floor_decal/industrial/hatch/yellow, +/turf/simulated/floor/tiled/monotile, +/area/outpost/mining/recreation) +"bQ" = ( +/obj/machinery/alarm{ + dir = 4; + icon_state = "alarm0"; + pixel_x = -23 + }, +/obj/structure/bed/padded, +/obj/item/bedsheet/yellow, +/turf/simulated/floor/carpet, +/area/outpost/mining/recreation) +"bR" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/door/airlock/civilian{ + name = "Living Room" + }, +/obj/machinery/door/firedoor, +/obj/effect/floor_decal/industrial/hatch/yellow, +/turf/simulated/floor/tiled/monotile, +/area/outpost/mining/recreation) +"bS" = ( +/obj/structure/catwalk, +/obj/item/cell/crap/empty, +/obj/item/cell/standard, +/obj/structure/table/steel, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/simulated/floor/plating, +/area/outpost/mining/power) +"bT" = ( +/obj/structure/catwalk, +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/turf/simulated/floor/plating, +/area/outpost/mining/power) +"bU" = ( +/obj/structure/catwalk, +/obj/machinery/cell_charger, +/obj/structure/table/steel, +/obj/structure/cable/yellow{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/simulated/floor/plating, +/area/outpost/mining/power) +"bV" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/simulated/floor/plating, +/area/outpost/mining/hangar) +"bW" = ( +/obj/structure/closet/emcloset, +/obj/effect/floor_decal/industrial/outline/yellow, +/turf/simulated/floor/tiled/monotile, +/area/outpost/mining/cenral) +"bX" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/yellow{ + dir = 2; + icon_state = "intact" + }, +/obj/effect/catwalk_plated, +/obj/structure/disposalpipe/segment, +/turf/simulated/floor/plating, +/area/outpost/mining/cenral) +"bY" = ( +/obj/machinery/access_button/airlock_interior{ + master_tag = "mbase_airlock_space"; + pixel_x = -6; + pixel_y = 26 + }, +/obj/machinery/recharge_station, +/obj/effect/floor_decal/industrial/outline/yellow, +/turf/simulated/floor/tiled/monotile, +/area/outpost/mining/cenral) +"bZ" = ( +/obj/machinery/portable_atmospherics/canister/air/airlock, +/obj/machinery/atmospherics/portables_connector, +/obj/effect/floor_decal/industrial/outline/yellow, +/turf/simulated/floor/tiled/monotile, +/area/outpost/mining/cenral) +"ca" = ( +/obj/effect/floor_decal/industrial/outline/yellow, +/obj/machinery/light{ + dir = 1 + }, +/obj/structure/table/standard, +/obj/item/stack/material/wood/walnut/twentyfive, +/turf/simulated/floor/tiled/monotile, +/area/outpost/mining/recreation) +"cb" = ( +/obj/machinery/atmospherics/unary/vent_pump/high_volume/airlock{ + dir = 8; + id_tag = "mbase_airlock_pump" + }, +/obj/structure/catwalk, +/obj/effect/floor_decal/industrial/warning{ + dir = 8 + }, +/obj/effect/floor_decal/industrial/warning{ + dir = 4 + }, +/turf/simulated/floor/plating, +/area/outpost/mining) +"cc" = ( +/turf/simulated/wall/r_wall/prepainted, +/area/outpost/mining/medical) +"cd" = ( +/obj/structure/railing/mapped{ + dir = 1; + icon_state = "railing0-1" + }, +/obj/effect/floor_decal/industrial/warning/corner, +/obj/machinery/atmospherics/unary/vent_pump/on{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/simulated/floor/tiled/techfloor, +/area/outpost/mining/power) +"ce" = ( +/obj/effect/floor_decal/industrial/warning, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 9; + pixel_y = 0 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 5 + }, +/turf/simulated/floor/tiled/techfloor, +/area/outpost/mining/power) +"cf" = ( +/obj/structure/railing/mapped{ + dir = 1; + icon_state = "railing0-1" + }, +/obj/effect/floor_decal/industrial/warning/corner{ + dir = 8; + icon_state = "warningcorner" + }, +/obj/machinery/atmospherics/unary/vent_scrubber/on{ + dir = 8 + }, +/obj/structure/cable/yellow{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/alarm{ + dir = 8; + pixel_x = 23 + }, +/turf/simulated/floor/tiled/techfloor, +/area/outpost/mining/power) +"cg" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/item/device/scanner/gas, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/simulated/floor/plating, +/area/outpost/mining/hangar) +"ch" = ( +/obj/effect/floor_decal/industrial/outline/yellow, +/turf/simulated/floor/tiled/monotile, +/area/outpost/mining/cenral) +"ci" = ( +/obj/effect/catwalk_plated, +/obj/machinery/atmospherics/pipe/simple/hidden/yellow{ + dir = 5; + icon_state = "intact" + }, +/obj/structure/disposalpipe/segment, +/turf/simulated/floor/plating, +/area/outpost/mining/cenral) +"cj" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/yellow{ + dir = 4; + icon_state = "intact" + }, +/obj/effect/catwalk_plated, +/turf/simulated/floor/plating, +/area/outpost/mining/cenral) +"ck" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/yellow{ + dir = 4; + icon_state = "intact" + }, +/obj/machinery/light/small{ + dir = 1 + }, +/turf/simulated/floor/plating, +/area/outpost/mining/cenral) +"cl" = ( +/obj/item/wrench, +/obj/machinery/atmospherics/pipe/manifold4w/hidden/yellow, +/turf/simulated/floor/plating, +/area/outpost/mining/cenral) +"cm" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/yellow{ + dir = 9; + icon_state = "intact" + }, +/obj/effect/catwalk_plated, +/obj/machinery/alarm{ + dir = 8; + pixel_x = 23 + }, +/turf/simulated/floor/plating, +/area/outpost/mining/cenral) +"cn" = ( +/obj/machinery/portable_atmospherics/canister/air/airlock, +/obj/machinery/atmospherics/portables_connector, +/obj/effect/floor_decal/industrial/outline/yellow, +/obj/structure/sign/poster{ + pixel_y = 32 + }, +/turf/simulated/floor/tiled/monotile, +/area/outpost/mining/cenral) +"co" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ + dir = 8; + icon_state = "map-scrubbers" + }, +/turf/simulated/floor/tiled, +/area/outpost/mining/recreation) +"cp" = ( +/obj/machinery/atmospherics/unary/vent_scrubber/on{ + dir = 8 + }, +/turf/simulated/floor/tiled/monotile, +/area/outpost/mining/recreation) +"cq" = ( +/obj/structure/table/standard, +/obj/machinery/alarm{ + pixel_y = 30 + }, +/obj/item/newspaper, +/obj/item/pen, +/turf/simulated/floor/tiled/monotile, +/area/outpost/mining/recreation) +"cr" = ( +/obj/machinery/atmospherics/unary/vent_scrubber/on{ + dir = 4; + icon_state = "map_scrubber_on" + }, +/turf/simulated/floor/tiled/monotile, +/area/outpost/mining/recreation) +"cs" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ + dir = 4 + }, +/turf/simulated/floor/tiled, +/area/outpost/mining/recreation) +"ct" = ( +/turf/simulated/floor/tiled, +/area/outpost/mining/recreation) +"cu" = ( +/obj/machinery/washing_machine, +/obj/effect/floor_decal/industrial/outline/yellow, +/obj/machinery/light{ + dir = 1 + }, +/turf/simulated/floor/tiled/monotile, +/area/outpost/mining/recreation) +"cv" = ( +/turf/simulated/wall/prepainted/mining_corporate, +/area/outpost/mining/medical) +"cw" = ( +/obj/structure/table/standard, +/obj/machinery/firealarm{ + dir = 2; + pixel_y = 24 + }, +/obj/effect/floor_decal/corner/paleblue/three_quarters{ + dir = 8; + icon_state = "corner_white_three_quarters" + }, +/obj/item/storage/firstaid/trauma, +/obj/item/storage/firstaid/fire, +/turf/simulated/floor/tiled/white, +/area/outpost/mining/medical) +"cx" = ( +/obj/structure/table/standard, +/obj/effect/floor_decal/corner/paleblue{ + dir = 5; + icon_state = "corner_white" + }, +/obj/item/storage/firstaid/toxin, +/obj/item/storage/firstaid/o2, +/turf/simulated/floor/tiled/white, +/area/outpost/mining/medical) +"cy" = ( +/obj/structure/table/standard, +/obj/structure/closet/medical_wall/filled{ + pixel_y = 30 + }, +/obj/effect/floor_decal/corner/paleblue/three_quarters{ + dir = 1; + icon_state = "corner_white_three_quarters" + }, +/turf/simulated/floor/tiled/white, +/area/outpost/mining/medical) +"cz" = ( +/obj/effect/floor_decal/industrial/warning{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/obj/machinery/light/small{ + dir = 8 + }, +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/turf/simulated/floor/tiled/techfloor, +/area/outpost/mining/power) +"cA" = ( +/turf/simulated/wall/prepainted/mining_corporate, +/area/outpost/mining/maints) +"cB" = ( +/obj/effect/floor_decal/industrial/warning{ + dir = 8 + }, +/obj/structure/cable/yellow, +/obj/machinery/power/port_gen/pacman, +/obj/machinery/power/terminal{ + dir = 8 + }, +/turf/simulated/floor/tiled/techfloor, +/area/outpost/mining/power) +"cC" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/effect/catwalk_plated, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/light/small{ + dir = 8 + }, +/turf/simulated/floor/plating, +/area/outpost/mining/hangar) +"cD" = ( +/obj/machinery/atmospherics/unary/vent_pump/on, +/turf/simulated/floor/tiled/monotile, +/area/outpost/mining/hangar) +"cF" = ( +/obj/machinery/atmospherics/unary/vent_scrubber/on, +/turf/simulated/floor/tiled/monotile, +/area/outpost/mining/hangar) +"cG" = ( +/obj/effect/floor_decal/corner/brown{ + dir = 9 + }, +/turf/simulated/floor/tiled, +/area/outpost/mining/recreation) +"cH" = ( +/obj/machinery/firealarm{ + dir = 8; + pixel_x = -24 + }, +/obj/machinery/atmospherics/unary/vent_scrubber/on, +/turf/simulated/floor/tiled, +/area/outpost/mining/cenral) +"cI" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 6 + }, +/obj/structure/disposalpipe/segment, +/turf/simulated/floor/tiled, +/area/outpost/mining/cenral) +"cJ" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/universal{ + dir = 4 + }, +/obj/effect/catwalk_plated, +/turf/simulated/floor/plating, +/area/outpost/mining/cenral) +"cK" = ( +/obj/machinery/atmospherics/binary/pump/on{ + dir = 4; + target_pressure = 200 + }, +/turf/simulated/floor/tiled, +/area/outpost/mining/cenral) +"cL" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/yellow{ + dir = 9; + icon_state = "intact" + }, +/turf/simulated/floor/tiled, +/area/outpost/mining/cenral) +"cM" = ( +/obj/machinery/atmospherics/unary/vent_pump/on, +/turf/simulated/floor/tiled, +/area/outpost/mining/cenral) +"cN" = ( +/obj/machinery/door/firedoor, +/obj/effect/wallframe_spawn/no_grille, +/turf/simulated/floor/plating, +/area/outpost/mining/recreation) +"cO" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers, +/turf/simulated/floor/tiled, +/area/outpost/mining/cenral) +"cP" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/turf/simulated/floor/tiled, +/area/outpost/mining/recreation) +"cQ" = ( +/obj/structure/bed/chair/comfy/brown{ + dir = 4 + }, +/turf/simulated/floor/tiled/monotile, +/area/outpost/mining/recreation) +"cR" = ( +/obj/structure/table/standard, +/obj/item/trash/snack_bowl, +/obj/item/material/kitchen/utensil/spoon, +/obj/item/reagent_containers/food/drinks/glass2/shot, +/turf/simulated/floor/tiled/monotile, +/area/outpost/mining/recreation) +"cS" = ( +/obj/structure/bed/chair/comfy/brown{ + dir = 8 + }, +/turf/simulated/floor/tiled/monotile, +/area/outpost/mining/recreation) +"cT" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/turf/simulated/floor/tiled, +/area/outpost/mining/recreation) +"cU" = ( +/obj/structure/table/standard, +/obj/item/storage/box/detergent, +/obj/effect/floor_decal/industrial/outline/yellow, +/obj/item/ironing_board, +/obj/item/ironing_iron, +/turf/simulated/floor/tiled/monotile, +/area/outpost/mining/recreation) +"cV" = ( +/obj/machinery/door/firedoor, +/obj/effect/wallframe_spawn/no_grille, +/turf/simulated/floor/plating, +/area/outpost/mining/medical) +"cW" = ( +/obj/effect/floor_decal/corner/paleblue{ + dir = 1 + }, +/turf/simulated/floor/tiled/white, +/area/outpost/mining/medical) +"cX" = ( +/obj/machinery/atmospherics/unary/vent_scrubber/on, +/turf/simulated/floor/tiled/white, +/area/outpost/mining/medical) +"cY" = ( +/obj/machinery/sleeper, +/obj/effect/floor_decal/corner/paleblue{ + dir = 6; + icon_state = "corner_white" + }, +/turf/simulated/floor/tiled/white, +/area/outpost/mining/medical) +"cZ" = ( +/obj/machinery/door/firedoor, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/door/airlock/maintenance, +/turf/simulated/floor/tiled/techfloor/grid, +/area/outpost/mining/power) +"da" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 5 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 5 + }, +/obj/effect/catwalk_plated, +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/turf/simulated/floor/plating, +/area/outpost/mining/hangar) +"db" = ( +/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ + dir = 1 + }, +/obj/effect/catwalk_plated, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/manifold/hidden/supply, +/turf/simulated/floor/plating, +/area/outpost/mining/hangar) +"dc" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/effect/catwalk_plated, +/obj/machinery/atmospherics/pipe/manifold/hidden/supply{ + dir = 1; + icon_state = "map-supply" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/turf/simulated/floor/plating, +/area/outpost/mining/hangar) +"dd" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/effect/catwalk_plated, +/obj/machinery/alarm{ + dir = 1; + pixel_y = -20 + }, +/turf/simulated/floor/plating, +/area/outpost/mining/hangar) +"de" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/effect/catwalk_plated, +/obj/machinery/firealarm{ + dir = 1; + pixel_x = 0; + pixel_y = -24 + }, +/turf/simulated/floor/plating, +/area/outpost/mining/hangar) +"df" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/turf/simulated/floor/plating, +/area/outpost/mining/hangar) +"dg" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/effect/catwalk_plated, +/turf/simulated/floor/plating, +/area/outpost/mining/hangar) +"dh" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/obj/effect/catwalk_plated, +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/turf/simulated/floor/plating, +/area/outpost/mining/hangar) +"di" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers, +/turf/simulated/floor/tiled/monotile, +/area/outpost/mining/hangar) +"dj" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/turf/simulated/floor/tiled, +/area/outpost/mining/hangar) +"dk" = ( +/obj/machinery/door/airlock/mining{ + name = "Hangar" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/door/firedoor, +/obj/effect/floor_decal/industrial/hatch/yellow, +/turf/simulated/floor/tiled/monotile, +/area/outpost/mining/hangar) +"dl" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/hidden/supply, +/turf/simulated/floor/tiled, +/area/outpost/mining/cenral) +"dm" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/effect/catwalk_plated, +/obj/machinery/atmospherics/pipe/manifold/hidden/supply, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/turf/simulated/floor/plating, +/area/outpost/mining/cenral) +"dn" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/effect/catwalk_plated, +/turf/simulated/floor/plating, +/area/outpost/mining/cenral) +"do" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/effect/catwalk_plated, +/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/manifold/hidden/supply{ + dir = 1 + }, +/turf/simulated/floor/plating, +/area/outpost/mining/cenral) +"dp" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/effect/catwalk_plated, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/turf/simulated/floor/plating, +/area/outpost/mining/cenral) +"dq" = ( +/obj/structure/table/standard, +/obj/structure/bedsheetbin, +/obj/effect/floor_decal/corner/brown{ + dir = 10 + }, +/turf/simulated/floor/tiled, +/area/outpost/mining/cenral) +"dr" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/door/airlock/glass/civilian{ + name = "Recreation Section" + }, +/obj/machinery/door/firedoor, +/obj/effect/floor_decal/industrial/hatch/yellow, +/turf/simulated/floor/tiled/monotile, +/area/outpost/mining/recreation) +"ds" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/simulated/floor/tiled, +/area/outpost/mining/recreation) +"dt" = ( +/obj/machinery/atmospherics/pipe/manifold4w/hidden/scrubbers, +/obj/machinery/atmospherics/pipe/manifold4w/hidden/supply, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/turf/simulated/floor/tiled, +/area/outpost/mining/recreation) +"du" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/machinery/hologram/holopad/longrange, +/turf/simulated/floor/tiled, +/area/outpost/mining/recreation) +"dv" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/hidden/supply, +/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers, +/turf/simulated/floor/tiled, +/area/outpost/mining/recreation) +"dw" = ( +/obj/machinery/atmospherics/pipe/manifold/hidden/supply{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ + dir = 1 + }, +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/simulated/floor/tiled, +/area/outpost/mining/recreation) +"dx" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/simulated/floor/tiled, +/area/outpost/mining/recreation) +"dy" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/glass/medical{ + name = "Medical Comparement" + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/simulated/floor/tiled/white/monotile, +/area/outpost/mining/medical) +"dz" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/turf/simulated/floor/tiled/white, +/area/outpost/mining/medical) +"dA" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 10 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 9 + }, +/turf/simulated/floor/tiled/white, +/area/outpost/mining/medical) +"dB" = ( +/obj/machinery/light{ + dir = 4; + icon_state = "tube_map" + }, +/obj/effect/floor_decal/corner/paleblue{ + dir = 6; + icon_state = "corner_white" + }, +/turf/simulated/floor/tiled/white, +/area/outpost/mining/medical) +"dC" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/obj/structure/bed/chair, +/turf/simulated/floor/airless, +/area/outpost/mining) +"dD" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/obj/structure/catwalk, +/turf/simulated/floor/plating, +/area/outpost/mining/maints) +"dE" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/catwalk, +/turf/simulated/floor/plating, +/area/outpost/mining/maints) +"dF" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/structure/catwalk, +/turf/simulated/floor/plating, +/area/outpost/mining/maints) +"dG" = ( +/turf/simulated/wall/prepainted/mining_corporate, +/area/outpost/mining/atmos) +"dH" = ( +/obj/machinery/door/airlock/mining{ + name = "Atmospheric Comparement" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/universal, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/door/firedoor, +/turf/simulated/floor/tiled/techfloor/grid, +/area/outpost/mining/atmos) +"dI" = ( +/obj/machinery/atmospherics/pipe/simple/visible/universal, +/turf/simulated/wall/prepainted/mining_corporate, +/area/outpost/mining/atmos) +"dJ" = ( +/obj/structure/table/steel, +/obj/item/storage/toolbox/mechanical, +/obj/item/stack/cable_coil, +/obj/effect/floor_decal/industrial/outline/yellow, +/obj/machinery/light/small, +/turf/simulated/floor/tiled/monotile, +/area/outpost/mining/hangar) +"dK" = ( +/obj/structure/cable, +/obj/effect/catwalk_plated, +/obj/machinery/power/apc/inactive{ + name = "south bump"; + pixel_y = -25 + }, +/turf/simulated/floor/plating, +/area/outpost/mining/hangar) +"dL" = ( +/obj/effect/floor_decal/industrial/hatch/yellow, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/simulated/floor/tiled/monotile, +/area/outpost/mining/hangar) +"dM" = ( +/obj/machinery/portable_atmospherics/powered/pump/filled, +/obj/effect/floor_decal/industrial/outline/yellow, +/turf/simulated/floor/tiled/monotile, +/area/outpost/mining/hangar) +"dN" = ( +/obj/structure/reagent_dispensers/fueltank, +/obj/effect/floor_decal/industrial/outline/yellow, +/turf/simulated/floor/tiled/monotile, +/area/outpost/mining/hangar) +"dO" = ( +/obj/machinery/light/small, +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, +/obj/effect/floor_decal/corner/brown{ + dir = 10 + }, +/obj/machinery/disposal, +/turf/simulated/floor/tiled, +/area/outpost/mining/cenral) +"dP" = ( +/obj/structure/cable{ + d2 = 4; + icon_state = "0-4" + }, +/obj/effect/floor_decal/corner/brown{ + dir = 10 + }, +/obj/machinery/power/apc/inactive{ + name = "south bump"; + pixel_y = -25 + }, +/turf/simulated/floor/tiled, +/area/outpost/mining/cenral) +"dQ" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/turf/simulated/floor/tiled, +/area/outpost/mining/cenral) +"dR" = ( +/obj/item/storage/toolbox/mechanical, +/obj/structure/table/standard, +/obj/machinery/light/small, +/obj/effect/floor_decal/corner/brown{ + dir = 10 + }, +/turf/simulated/floor/tiled, +/area/outpost/mining/cenral) +"dS" = ( +/obj/structure/table/standard, +/obj/machinery/recharger, +/obj/effect/floor_decal/corner/brown{ + dir = 10 + }, +/turf/simulated/floor/tiled, +/area/outpost/mining/cenral) +"dT" = ( +/obj/effect/floor_decal/corner/brown{ + dir = 9 + }, +/obj/structure/flora/pottedplant/dead, +/turf/simulated/floor/tiled, +/area/outpost/mining/recreation) +"dU" = ( +/obj/effect/floor_decal/corner/brown{ + dir = 6 + }, +/turf/simulated/floor/tiled, +/area/outpost/mining/recreation) +"dV" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/simulated/floor/tiled, +/area/outpost/mining/recreation) +"dW" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/simulated/floor/tiled, +/area/outpost/mining/recreation) +"dY" = ( +/obj/machinery/atmospherics/unary/vent_pump/on{ + dir = 8 + }, +/obj/structure/table/standard, +/obj/item/storage/box/checkers, +/obj/item/board, +/obj/effect/floor_decal/corner/brown/half, +/turf/simulated/floor/tiled/monotile, +/area/outpost/mining/recreation) +"dZ" = ( +/obj/structure/cable, +/obj/machinery/power/apc{ + dir = 2; + name = "south bump"; + operating = 1; + pixel_y = -24 + }, +/obj/item/storage/box/freezer/blood/human, +/obj/effect/floor_decal/corner/paleblue{ + dir = 10; + icon_state = "corner_white" + }, +/obj/structure/table/standard, +/turf/simulated/floor/tiled/white, +/area/outpost/mining/medical) +"ea" = ( +/obj/machinery/atmospherics/unary/vent_pump/on{ + dir = 1 + }, +/obj/effect/floor_decal/corner/paleblue{ + dir = 10; + icon_state = "corner_white" + }, +/obj/structure/roller_bed, +/turf/simulated/floor/tiled/white, +/area/outpost/mining/medical) +"eb" = ( +/obj/structure/iv_stand, +/obj/machinery/alarm{ + dir = 1; + pixel_y = -20 + }, +/obj/effect/floor_decal/corner/paleblue/three_quarters{ + dir = 4; + icon_state = "corner_white_three_quarters" + }, +/turf/simulated/floor/tiled/white, +/area/outpost/mining/medical) +"ec" = ( +/obj/structure/girder, +/turf/simulated/floor/plating, +/area/outpost/mining/maints) +"ed" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/simulated/floor/tiled/techfloor/grid, +/area/outpost/mining/maints) +"ee" = ( +/obj/structure/closet/crate, +/obj/item/tank/hydrogen, +/obj/structure/catwalk, +/obj/machinery/light/small{ + dir = 1; + icon_state = "bulb_map" + }, +/turf/simulated/floor/plating, +/area/outpost/mining/atmos) +"ef" = ( +/obj/machinery/atmospherics/pipe/simple/visible/red, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/simulated/floor/tiled/techfloor, +/area/outpost/mining/atmos) +"eg" = ( +/obj/structure/catwalk, +/obj/machinery/atmospherics/pipe/manifold/visible{ + dir = 8 + }, +/obj/machinery/firealarm{ + dir = 2; + pixel_y = 24 + }, +/turf/simulated/floor/plating, +/area/outpost/mining/atmos) +"eh" = ( +/obj/machinery/atmospherics/unary/tank/air{ + dir = 8 + }, +/obj/structure/railing/mapped{ + dir = 8; + icon_state = "railing0-1" + }, +/turf/simulated/floor/tiled/techfloor, +/area/outpost/mining/atmos) +"ei" = ( +/turf/simulated/wall/prepainted/mining_corporate, +/area/outpost/mining/voidsuits) +"ej" = ( +/obj/machinery/door/firedoor, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/door/airlock/maintenance, +/turf/simulated/floor/tiled/techfloor/grid, +/area/outpost/mining/maints) +"ek" = ( +/turf/simulated/wall/prepainted/mining_corporate, +/area/outpost/mining) +"el" = ( +/turf/simulated/wall/prepainted/mining_corporate, +/area/outpost/mining/kitchen) +"em" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/mining{ + name = "Mining Equipment" + }, +/obj/effect/floor_decal/industrial/hatch/yellow, +/turf/simulated/floor/tiled/monotile, +/area/outpost/mining) +"en" = ( +/obj/effect/floor_decal/industrial/outline/yellow, +/obj/machinery/firealarm{ + dir = 8; + pixel_x = -24 + }, +/obj/structure/closet/firecloset, +/turf/simulated/floor/tiled/monotile, +/area/outpost/mining/recreation) +"eo" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/machinery/atmospherics/pipe/manifold/hidden/supply{ + dir = 8; + icon_state = "map-supply" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/simulated/floor/tiled, +/area/outpost/mining/recreation) +"ep" = ( +/obj/effect/floor_decal/industrial/warning/full, +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/obj/machinery/power/smes/buildable, +/turf/simulated/floor/tiled/techfloor, +/area/outpost/mining/power) +"eq" = ( +/obj/machinery/atmospherics/unary/vent_pump/on{ + dir = 4 + }, +/obj/structure/table/standard, +/obj/item/paper_bin, +/obj/machinery/light, +/obj/effect/floor_decal/corner/brown/half, +/turf/simulated/floor/tiled/monotile, +/area/outpost/mining/recreation) +"er" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/obj/machinery/computer/modular/preset/civilian{ + dir = 1 + }, +/obj/effect/floor_decal/corner/brown/half, +/turf/simulated/floor/tiled/monotile, +/area/outpost/mining/recreation) +"es" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold/hidden/supply{ + dir = 8 + }, +/turf/simulated/floor/tiled, +/area/outpost/mining) +"et" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/machinery/atmospherics/pipe/manifold/hidden/supply{ + dir = 4; + icon_state = "map-supply" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/simulated/floor/tiled, +/area/outpost/mining/recreation) +"eu" = ( +/obj/effect/floor_decal/industrial/outline/yellow, +/obj/structure/flora/pottedplant/stoutbush, +/turf/simulated/floor/tiled/monotile, +/area/outpost/mining/recreation) +"ev" = ( +/obj/structure/mopbucket, +/obj/item/mop, +/obj/item/reagent_containers/glass/bucket, +/turf/simulated/floor/plating, +/area/outpost/mining/maints) +"ew" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/catwalk, +/turf/simulated/floor/plating, +/area/outpost/mining/maints) +"ex" = ( +/obj/structure/catwalk, +/obj/machinery/atmospherics/pipe/simple/visible/red{ + dir = 6; + icon_state = "intact" + }, +/obj/machinery/alarm{ + dir = 4; + icon_state = "alarm0"; + pixel_x = -23 + }, +/turf/simulated/floor/plating, +/area/outpost/mining/atmos) +"ey" = ( +/obj/machinery/atmospherics/omni/filter{ + tag_east = 4; + tag_north = 1; + tag_south = 3; + tag_west = 2 + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/simulated/floor/tiled/techfloor, +/area/outpost/mining/atmos) +"ez" = ( +/obj/structure/catwalk, +/obj/machinery/atmospherics/pipe/manifold4w/visible, +/turf/simulated/floor/plating, +/area/outpost/mining/atmos) +"eA" = ( +/obj/structure/table/rack, +/obj/random/maintenance, +/turf/simulated/floor/plating, +/area/outpost/mining/maints) +"eB" = ( +/turf/simulated/floor/plating, +/area/outpost/mining/maints) +"eC" = ( +/obj/machinery/firealarm{ + dir = 2; + pixel_y = 24 + }, +/obj/machinery/atmospherics/unary/vent_pump/on, +/obj/effect/floor_decal/corner/brown/three_quarters{ + dir = 8; + icon_state = "corner_white_three_quarters" + }, +/turf/simulated/floor/tiled, +/area/outpost/mining) +"eD" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/simulated/floor/tiled, +/area/outpost/mining/voidsuits) +"eE" = ( +/obj/effect/floor_decal/industrial/outline/yellow, +/obj/machinery/atmospherics/pipe/simple/hidden/universal{ + dir = 4 + }, +/obj/machinery/alarm{ + pixel_y = 30 + }, +/turf/simulated/floor/tiled/monotile, +/area/outpost/mining) +"eF" = ( +/obj/effect/floor_decal/industrial/outline/yellow, +/obj/structure/ore_box, +/obj/machinery/atmospherics/pipe/simple/hidden/yellow{ + dir = 10; + icon_state = "intact" + }, +/turf/simulated/floor/tiled/monotile, +/area/outpost/mining) +"eG" = ( +/turf/simulated/wall/prepainted/mining_corporate, +/area/outpost/mining/toilet) +"eH" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/door/airlock/civilian{ + name = "Kitchen" + }, +/obj/machinery/door/firedoor, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/simulated/floor/tiled/old_tile, +/area/outpost/mining/kitchen) +"eI" = ( +/obj/machinery/door/firedoor, +/obj/effect/wallframe_spawn/no_grille, +/turf/simulated/floor/plating, +/area/outpost/mining/kitchen) +"eJ" = ( +/obj/structure/girder, +/obj/item/stack/material/plasteel, +/turf/simulated/floor/plating, +/area/shuttle/abadoned_data_capsule) +"eK" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/door/airlock/civilian{ + name = "Restroom" + }, +/obj/machinery/door/firedoor, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/simulated/floor/tiled/freezer, +/area/outpost/mining/toilet) +"eL" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/effect/catwalk_plated, +/turf/simulated/floor/plating, +/area/outpost/mining) +"eM" = ( +/obj/machinery/atmospherics/binary/pump/on{ + target_pressure = 15000 + }, +/turf/simulated/floor/plating, +/area/outpost/mining/atmos) +"eN" = ( +/obj/machinery/atmospherics/pipe/manifold/visible{ + dir = 8 + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/simulated/floor/tiled/techfloor, +/area/outpost/mining/atmos) +"eO" = ( +/obj/machinery/atmospherics/pipe/manifold/visible, +/turf/simulated/floor/plating, +/area/outpost/mining/atmos) +"eP" = ( +/obj/machinery/atmospherics/unary/tank/air{ + dir = 8 + }, +/obj/structure/railing/mapped{ + dir = 8; + icon_state = "railing0-1" + }, +/obj/structure/railing/mapped, +/turf/simulated/floor/tiled/techfloor, +/area/outpost/mining/atmos) +"eQ" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/structure/catwalk, +/obj/structure/cable{ + d2 = 4; + icon_state = "0-4" + }, +/obj/machinery/power/apc/inactive{ + dir = 8; + name = "west bump"; + pixel_x = -25 + }, +/turf/simulated/floor/plating, +/area/outpost/mining/maints) +"eR" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/catwalk, +/turf/simulated/floor/plating, +/area/outpost/mining/maints) +"eS" = ( +/obj/machinery/door/firedoor, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/door/airlock/maintenance, +/turf/simulated/floor/tiled/techfloor/grid, +/area/outpost/mining/voidsuits) +"eT" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 6 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/turf/simulated/floor/tiled, +/area/outpost/mining/voidsuits) +"eU" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/simulated/floor/tiled, +/area/outpost/mining/voidsuits) +"eV" = ( +/obj/machinery/atmospherics/pipe/manifold/hidden/supply, +/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ + dir = 1; + icon_state = "map-scrubbers" + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/simulated/floor/tiled, +/area/outpost/mining) +"eW" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/obj/machinery/door/airlock/mining{ + name = "Mining Voidsuits" + }, +/obj/effect/floor_decal/industrial/hatch/yellow, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/simulated/floor/tiled/monotile, +/area/outpost/mining/voidsuits) +"eX" = ( +/obj/effect/overmap/visitable/sector/corporate, +/turf/space, +/area/space) +"eY" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 9 + }, +/obj/effect/catwalk_plated, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 9 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/yellow{ + dir = 6; + icon_state = "intact" + }, +/turf/simulated/floor/plating, +/area/outpost/mining) +"eZ" = ( +/obj/machinery/atmospherics/binary/pump/on{ + dir = 8; + target_pressure = 200 + }, +/turf/simulated/floor/tiled/monotile, +/area/outpost/mining) +"fa" = ( +/obj/machinery/light/small{ + dir = 4; + pixel_y = 0 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/yellow{ + dir = 9; + icon_state = "intact" + }, +/turf/simulated/floor/tiled/monotile, +/area/outpost/mining) +"fb" = ( +/obj/structure/closet/fridge, +/obj/item/reagent_containers/food/drinks/cans/waterbottle, +/obj/item/reagent_containers/food/snacks/sandwich, +/obj/item/reagent_containers/food/snacks/omelette, +/obj/item/reagent_containers/food/snacks/meat/chicken, +/obj/machinery/firealarm{ + dir = 2; + pixel_y = 24 + }, +/obj/item/reagent_containers/food/drinks/glass2/shot, +/obj/item/reagent_containers/food/drinks/glass2/shot, +/obj/random/drinkbottle, +/turf/simulated/floor/tiled/old_tile, +/area/outpost/mining/kitchen) +"fc" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 5 + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/simulated/floor/tiled/old_tile, +/area/outpost/mining/kitchen) +"fd" = ( +/obj/machinery/atmospherics/unary/vent_scrubber/on{ + dir = 8 + }, +/turf/simulated/floor/tiled/old_tile, +/area/outpost/mining/kitchen) +"fe" = ( +/obj/structure/table/reinforced, +/obj/machinery/microwave, +/turf/simulated/floor/tiled/old_tile, +/area/outpost/mining/kitchen) +"ff" = ( +/obj/structure/table/standard, +/obj/machinery/light/small{ + dir = 1 + }, +/obj/machinery/firealarm{ + dir = 8; + pixel_x = -24 + }, +/turf/simulated/floor/tiled/freezer, +/area/outpost/mining/toilet) +"fg" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/simulated/floor/tiled/freezer, +/area/outpost/mining/toilet) +"fh" = ( +/obj/structure/curtain/open/shower, +/obj/structure/hygiene/toilet{ + dir = 8; + icon_state = "toilet00" + }, +/turf/simulated/floor/tiled/freezer, +/area/outpost/mining/toilet) +"fi" = ( +/obj/machinery/atmospherics/portables_connector{ + dir = 1 + }, +/turf/simulated/floor/plating, +/area/outpost/mining/atmos) +"fj" = ( +/obj/machinery/atmospherics/pipe/simple/visible{ + dir = 5; + icon_state = "intact" + }, +/obj/structure/cable, +/obj/machinery/power/apc/inactive{ + name = "south bump"; + pixel_y = -25 + }, +/turf/simulated/floor/tiled/techfloor, +/area/outpost/mining/atmos) +"fk" = ( +/obj/machinery/atmospherics/binary/pump{ + dir = 8 + }, +/turf/simulated/floor/plating, +/area/outpost/mining/atmos) +"fl" = ( +/obj/machinery/atmospherics/portables_connector{ + dir = 8 + }, +/obj/machinery/light/small, +/turf/simulated/floor/tiled/techfloor, +/area/outpost/mining/atmos) +"fm" = ( +/obj/structure/table/rack, +/obj/item/storage/box/lights/mixed, +/turf/simulated/floor/plating, +/area/outpost/mining/maints) +"fn" = ( +/obj/effect/catwalk_plated, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/simulated/floor/plating, +/area/outpost/mining/voidsuits) +"fo" = ( +/obj/structure/dispenser/oxygen{ + oxygentanks = 3 + }, +/obj/effect/floor_decal/industrial/outline/yellow, +/turf/simulated/floor/tiled/monotile, +/area/outpost/mining/voidsuits) +"fp" = ( +/obj/machinery/door/firedoor, +/obj/effect/wallframe_spawn/reinforced/no_grille, +/turf/simulated/floor/plating, +/area/outpost/mining/voidsuits) +"fq" = ( +/obj/machinery/atmospherics/unary/vent_scrubber/on{ + dir = 1 + }, +/obj/effect/floor_decal/corner/brown{ + dir = 9 + }, +/turf/simulated/floor/tiled, +/area/outpost/mining) +"fr" = ( +/obj/effect/catwalk_plated, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/yellow, +/turf/simulated/floor/plating, +/area/outpost/mining) +"fs" = ( +/obj/effect/floor_decal/industrial/outline/yellow, +/obj/structure/railing/mapped, +/turf/simulated/floor/tiled/monotile, +/area/outpost/mining) +"ft" = ( +/obj/structure/table/standard, +/obj/item/material/kitchen/utensil/fork, +/obj/item/material/kitchen/utensil/fork, +/obj/item/material/kitchen/utensil/spoon, +/obj/structure/cable{ + d2 = 4; + icon_state = "0-4" + }, +/obj/machinery/power/apc/inactive{ + dir = 8; + name = "west bump"; + pixel_x = -25 + }, +/turf/simulated/floor/tiled/old_tile, +/area/outpost/mining/kitchen) +"fu" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 5 + }, +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/turf/simulated/floor/tiled/old_tile, +/area/outpost/mining/kitchen) +"fv" = ( +/obj/machinery/atmospherics/unary/vent_pump/on{ + dir = 8 + }, +/turf/simulated/floor/tiled/old_tile, +/area/outpost/mining/kitchen) +"fw" = ( +/obj/structure/table/reinforced, +/turf/simulated/floor/tiled/old_tile, +/area/outpost/mining/kitchen) +"fx" = ( +/obj/machinery/atmospherics/unary/vent_scrubber/on{ + dir = 4; + icon_state = "map_scrubber_on" + }, +/obj/structure/hygiene/sink{ + dir = 8; + icon_state = "sink"; + pixel_x = -22; + pixel_y = 0 + }, +/obj/item/storage/mirror{ + pixel_x = -32 + }, +/turf/simulated/floor/tiled/freezer, +/area/outpost/mining/toilet) +"fy" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 9 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/simulated/floor/tiled/freezer, +/area/outpost/mining/toilet) +"fz" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/maintenance, +/turf/simulated/floor/tiled/techfloor/grid, +/area/outpost/mining/atmos) +"fA" = ( +/obj/machinery/access_button/airlock_exterior{ + master_tag = "mbase_airlock"; + pixel_y = 28 + }, +/turf/simulated/floor/airless, +/area/mine/unexplored) +"fB" = ( +/obj/machinery/suit_storage_unit{ + isopen = 1; + name = "Mining Voidsuit Storage Unit" + }, +/obj/effect/floor_decal/industrial/outline/yellow, +/obj/machinery/light/small{ + dir = 8 + }, +/turf/simulated/floor/tiled/monotile, +/area/outpost/mining/voidsuits) +"fC" = ( +/obj/machinery/portable_atmospherics/canister/oxygen, +/obj/effect/floor_decal/industrial/outline/yellow, +/turf/simulated/floor/tiled/monotile, +/area/outpost/mining/voidsuits) +"fD" = ( +/obj/structure/cable{ + d2 = 4; + icon_state = "0-4" + }, +/obj/effect/floor_decal/corner/brown{ + dir = 9 + }, +/obj/machinery/power/apc/inactive{ + dir = 8; + name = "west bump"; + pixel_x = -25 + }, +/turf/simulated/floor/tiled, +/area/outpost/mining) +"fE" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/yellow, +/obj/machinery/door/airlock/external/glass/bolted/cycling{ + id_tag = "mbase_airlock_inner"; + name = "External Airlock" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/simulated/floor/tiled/techfloor/grid, +/area/outpost/mining) +"fF" = ( +/obj/machinery/atmospherics/pipe/manifold/hidden/yellow{ + dir = 8; + icon_state = "map" + }, +/obj/effect/floor_decal/corner/brown{ + dir = 6 + }, +/turf/simulated/floor/tiled, +/area/outpost/mining) +"fG" = ( +/obj/machinery/atmospherics/portables_connector{ + dir = 8 + }, +/obj/machinery/portable_atmospherics/canister/air/airlock, +/obj/effect/floor_decal/industrial/outline/yellow, +/turf/simulated/floor/tiled/monotile, +/area/outpost/mining) +"fH" = ( +/obj/structure/table/standard, +/obj/item/reagent_containers/food/drinks/glass2, +/obj/item/reagent_containers/food/drinks/glass2, +/obj/machinery/alarm{ + dir = 4; + icon_state = "alarm0"; + pixel_x = -23 + }, +/turf/simulated/floor/tiled/old_tile, +/area/outpost/mining/kitchen) +"fI" = ( +/obj/structure/hygiene/sink, +/turf/simulated/floor/tiled/old_tile, +/area/outpost/mining/kitchen) +"fJ" = ( +/obj/structure/table/reinforced, +/obj/item/trash/snack_bowl, +/obj/machinery/light, +/turf/simulated/floor/tiled/old_tile, +/area/outpost/mining/kitchen) +"fK" = ( +/obj/structure/table/reinforced, +/obj/item/material/kitchen/rollingpin, +/obj/item/material/knife/kitchen, +/turf/simulated/floor/tiled/old_tile, +/area/outpost/mining/kitchen) +"fL" = ( +/obj/structure/flora/pottedplant/aquatic, +/obj/structure/cable{ + d2 = 4; + icon_state = "0-4" + }, +/obj/machinery/power/apc/inactive{ + dir = 8; + name = "west bump"; + pixel_x = -25 + }, +/turf/simulated/floor/tiled/freezer, +/area/outpost/mining/toilet) +"fM" = ( +/obj/machinery/atmospherics/unary/vent_pump/on{ + dir = 1 + }, +/obj/machinery/alarm{ + dir = 1; + pixel_y = -20 + }, +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/turf/simulated/floor/tiled/freezer, +/area/outpost/mining/toilet) +"fN" = ( +/obj/structure/hygiene/shower{ + dir = 8; + icon_state = "shower"; + pixel_x = 9 + }, +/obj/structure/curtain/open/shower, +/obj/item/soap, +/turf/simulated/floor/tiled/freezer, +/area/outpost/mining/toilet) +"fO" = ( +/obj/machinery/door/firedoor, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/simulated/floor/tiled/techfloor/grid, +/area/outpost/mining/maints) +"fP" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/catwalk, +/obj/machinery/alarm{ + dir = 1; + pixel_y = -23 + }, +/turf/simulated/floor/plating, +/area/outpost/mining/maints) +"fQ" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/obj/structure/catwalk, +/turf/simulated/floor/plating, +/area/outpost/mining/maints) +"fR" = ( +/obj/machinery/suit_storage_unit{ + isopen = 1; + name = "Mining Voidsuit Storage Unit" + }, +/obj/effect/floor_decal/industrial/outline/yellow, +/turf/simulated/floor/tiled/monotile, +/area/outpost/mining/voidsuits) +"fS" = ( +/obj/effect/catwalk_plated, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 5 + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/simulated/floor/plating, +/area/outpost/mining/voidsuits) +"fT" = ( +/obj/machinery/atmospherics/unary/vent_pump/on{ + dir = 8 + }, +/obj/machinery/suit_cycler/mining, +/obj/effect/floor_decal/corner/brown{ + dir = 6 + }, +/turf/simulated/floor/tiled/monotile, +/area/outpost/mining/voidsuits) +"fU" = ( +/obj/machinery/light/small{ + dir = 8 + }, +/obj/item/stack/flag/yellow, +/obj/item/stack/flag/yellow, +/obj/structure/table/rack, +/obj/effect/floor_decal/corner/brown{ + dir = 9 + }, +/turf/simulated/floor/tiled, +/area/outpost/mining) +"fV" = ( +/obj/machinery/atmospherics/pipe/manifold4w/hidden/yellow, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/simulated/floor/tiled/techfloor/grid, +/area/outpost/mining) +"fW" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/yellow{ + dir = 6; + icon_state = "intact" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/simulated/floor/tiled, +/area/outpost/mining) +"fX" = ( +/obj/machinery/portable_atmospherics/canister/air/airlock, +/obj/machinery/atmospherics/portables_connector{ + dir = 8 + }, +/obj/machinery/light/small{ + dir = 4; + pixel_y = 0 + }, +/obj/effect/floor_decal/industrial/outline/yellow, +/turf/simulated/floor/tiled/monotile, +/area/outpost/mining) +"fY" = ( +/turf/simulated/wall/r_wall/prepainted, +/area/outpost/mining) +"ga" = ( +/obj/structure/table/steel, +/obj/item/storage/ore, +/obj/machinery/alarm{ + dir = 4; + icon_state = "alarm0"; + pixel_x = -23 + }, +/obj/effect/floor_decal/corner/brown/three_quarters, +/turf/simulated/floor/tiled/monotile, +/area/outpost/mining/voidsuits) +"gb" = ( +/obj/structure/table/steel, +/obj/machinery/atmospherics/unary/vent_scrubber/on{ + dir = 1 + }, +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/obj/item/clothing/glasses/meson, +/obj/machinery/light/small, +/obj/item/device/radio/off, +/obj/item/device/radio/off, +/obj/effect/floor_decal/corner/brown{ + dir = 10 + }, +/turf/simulated/floor/tiled/monotile, +/area/outpost/mining/voidsuits) +"gc" = ( +/obj/structure/table/steel, +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/obj/item/pickaxe, +/obj/effect/floor_decal/corner/brown/three_quarters{ + dir = 4; + icon_state = "corner_white_three_quarters" + }, +/obj/machinery/power/apc/inactive{ + dir = 4; + name = "east bump"; + pixel_x = 25 + }, +/turf/simulated/floor/tiled/monotile, +/area/outpost/mining/voidsuits) +"gd" = ( +/obj/effect/floor_decal/industrial/outline/yellow, +/obj/machinery/mech_recharger, +/turf/simulated/floor/tiled/monotile, +/area/outpost/mining) +"ge" = ( +/obj/machinery/atmospherics/pipe/manifold/hidden/yellow, +/obj/item/trash/cigbutt, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/simulated/floor/tiled/techfloor/grid, +/area/outpost/mining) +"gf" = ( +/obj/machinery/atmospherics/pipe/manifold/hidden/yellow, +/obj/machinery/access_button/airlock_interior{ + master_tag = "mbase_airlock"; + pixel_y = -21 + }, +/obj/effect/floor_decal/corner/brown{ + dir = 6 + }, +/turf/simulated/floor/tiled, +/area/outpost/mining) +"gg" = ( +/obj/machinery/portable_atmospherics/canister/air/airlock, +/obj/machinery/atmospherics/portables_connector{ + dir = 8 + }, +/obj/effect/floor_decal/industrial/outline/yellow, +/turf/simulated/floor/tiled/monotile, +/area/outpost/mining) +"gh" = ( +/obj/machinery/atmospherics/unary/vent_pump/high_volume/airlock{ + dir = 4; + id_tag = "mbase_airlock_pump" + }, +/obj/structure/catwalk, +/obj/machinery/light/small{ + dir = 8 + }, +/obj/effect/floor_decal/industrial/warning/cee{ + dir = 1; + icon_state = "stripecee" + }, +/turf/simulated/floor/plating, +/area/outpost/mining) +"gi" = ( +/obj/machinery/door/airlock/external/bolted/cycling{ + id_tag = "mbase_airlock_outer" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/simulated/floor/tiled/techfloor/grid, +/area/outpost/mining) +"gj" = ( +/obj/machinery/atmospherics/unary/vent_pump/high_volume/airlock{ + dir = 8; + id_tag = "mbase_airlock_pump" + }, +/obj/structure/catwalk, +/obj/machinery/light/small{ + dir = 4; + pixel_y = 0 + }, +/obj/effect/floor_decal/industrial/warning/cee{ + dir = 1; + icon_state = "stripecee" + }, +/turf/simulated/floor/plating, +/area/outpost/mining) +"gk" = ( +/obj/machinery/atmospherics/unary/vent_pump/high_volume/airlock{ + dir = 4; + id_tag = "mbase_airlock_pump" + }, +/obj/structure/catwalk, +/obj/machinery/embedded_controller/radio/airlock/airlock_controller{ + id_tag = "mbase_airlock"; + pixel_x = -24 + }, +/obj/effect/floor_decal/industrial/warning{ + dir = 8 + }, +/obj/effect/floor_decal/industrial/warning{ + dir = 4 + }, +/turf/simulated/floor/plating, +/area/outpost/mining) +"gl" = ( +/obj/effect/floor_decal/industrial/outline/yellow, +/obj/machinery/suit_storage_unit{ + name = "Mining Voidsuit Storage Unit" + }, +/obj/structure/sign/poster{ + pixel_x = -32; + pixel_y = 0 + }, +/turf/simulated/floor/tiled/monotile, +/area/outpost/mining/voidsuits) +"gm" = ( +/obj/machinery/atmospherics/unary/vent_pump/high_volume/airlock{ + dir = 4; + id_tag = "mbase_airlock_pump" + }, +/obj/structure/catwalk, +/obj/effect/floor_decal/industrial/warning{ + dir = 8 + }, +/obj/effect/floor_decal/industrial/warning{ + dir = 4 + }, +/turf/simulated/floor/plating, +/area/outpost/mining) +"gn" = ( +/obj/machinery/atmospherics/unary/vent_pump/high_volume/airlock{ + dir = 8; + id_tag = "mbase_airlock_pump" + }, +/obj/structure/catwalk, +/obj/machinery/airlock_sensor{ + id_tag = "mbase_airlock_sensor"; + master_tag = "mbase_airlock"; + pixel_x = 24 + }, +/obj/effect/floor_decal/industrial/warning{ + dir = 8 + }, +/obj/effect/floor_decal/industrial/warning{ + dir = 4 + }, +/turf/simulated/floor/plating, +/area/outpost/mining) +"go" = ( +/obj/structure/sign/warning/detailed{ + dir = 4; + name = "\improper COMMUNICATION STATION"; + pixel_x = -32; + pixel_y = 0 + }, +/obj/machinery/light/small/red{ + dir = 1; + icon_state = "bulb_map" + }, +/obj/structure/bed/chair{ + dir = 4; + icon_state = "chair_preview" + }, +/turf/simulated/floor/airless, +/area/outpost/mining/relay) +"gp" = ( +/obj/machinery/atmospherics/unary/vent_pump/high_volume/airlock{ + dir = 8; + id_tag = "mbase_airlock_pump" + }, +/obj/structure/catwalk, +/obj/machinery/light/small{ + dir = 4; + pixel_y = 0 + }, +/obj/structure/bed/chair{ + dir = 8; + icon_state = "chair_preview" + }, +/obj/effect/floor_decal/industrial/warning/cee, +/turf/simulated/floor/plating, +/area/outpost/mining) +"gq" = ( +/obj/effect/shuttle_landmark/corporate/nav4, +/turf/space, +/area/space) +"gr" = ( +/obj/machinery/hologram/holopad/longrange/remoteship, +/obj/effect/floor_decal/industrial/outline/yellow, +/turf/simulated/floor/tiled/techfloor/grid, +/area/outpost/mining/relay) +"gs" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/catwalk, +/turf/simulated/floor/airless, +/area/mine/unexplored) +"gt" = ( +/obj/structure/table/steel, +/obj/machinery/photocopier/faxmachine, +/obj/machinery/alarm/server{ + pixel_y = 32 + }, +/turf/simulated/floor/tiled/techfloor/grid, +/area/outpost/mining/relay) +"gu" = ( +/turf/simulated/floor/asteroid, +/area/mine/explored) +"gv" = ( +/obj/effect/shuttle_landmark/corporate/nav2, +/turf/space, +/area/space) +"gw" = ( +/obj/structure/ore_box, +/turf/simulated/floor/asteroid, +/area/mine/unexplored) +"gx" = ( +/obj/effect/shuttle_landmark/corporate/nav3, +/turf/space, +/area/space) +"gy" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/structure/catwalk, +/turf/simulated/floor/airless, +/area/mine/unexplored) +"gz" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/obj/structure/catwalk, +/turf/simulated/floor/airless, +/area/mine/unexplored) +"gA" = ( +/obj/effect/shuttle_landmark/corporate/nav5, +/turf/simulated/floor/asteroid, +/area/mine/explored) +"gB" = ( +/turf/space, +/area/space) +"gC" = ( +/obj/effect/wallframe_spawn/reinforced/no_grille, +/obj/machinery/door/firedoor, +/obj/machinery/door/blast/shutters/open{ + dir = 4; + id_tag = "mbase_roomrelay_shutters" + }, +/turf/simulated/floor/plating, +/area/outpost/mining/relay) +"gD" = ( +/obj/machinery/portable_atmospherics/powered/pump/filled, +/obj/effect/floor_decal/industrial/outline/grey, +/obj/machinery/button/blast_door{ + dir = 2; + id_tag = "mbase_roomrelay_shutters"; + name = "Space Shutters Control"; + pixel_x = 0; + pixel_y = 26 + }, +/turf/simulated/floor/tiled/techfloor, +/area/outpost/mining/relay) +"gE" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/catwalk, +/turf/simulated/floor/airless, +/area/mine/unexplored) +"gF" = ( +/turf/simulated/floor/tiled/techfloor, +/area/outpost/mining/relay) +"gG" = ( +/obj/machinery/atmospherics/portables_connector, +/obj/machinery/portable_atmospherics/canister/air, +/obj/effect/floor_decal/industrial/outline/grey, +/obj/machinery/light/small/red{ + dir = 1; + icon_state = "bulb_map" + }, +/turf/simulated/floor/tiled/techfloor, +/area/outpost/mining/relay) +"gH" = ( +/obj/machinery/access_button/airlock_exterior{ + master_tag = "mbaserelay_airlock"; + pixel_x = -24 + }, +/turf/simulated/floor/airless, +/area/mine/unexplored) +"gI" = ( +/obj/machinery/portable_atmospherics/powered/scrubber, +/obj/effect/floor_decal/industrial/outline/grey, +/turf/simulated/floor/tiled/techfloor, +/area/outpost/mining/relay) +"gJ" = ( +/obj/random/junk, +/turf/simulated/floor/asteroid, +/area/mine/unexplored) +"gK" = ( +/obj/structure/catwalk, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/simulated/floor/plating, +/area/outpost/mining/relay) +"gL" = ( +/obj/structure/catwalk, +/obj/machinery/atmospherics/pipe/simple/hidden/yellow{ + dir = 5; + icon_state = "intact" + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/simulated/floor/plating, +/area/outpost/mining/relay) +"gM" = ( +/obj/machinery/door/airlock/external/bolted/cycling{ + id_tag = "mbaserelay_airlock_inner" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/yellow{ + dir = 4; + icon_state = "intact" + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/simulated/floor/tiled/techfloor/grid, +/area/outpost/mining/relay) +"gN" = ( +/obj/machinery/atmospherics/pipe/manifold/hidden/yellow{ + dir = 1; + icon_state = "map" + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/simulated/floor/tiled/techfloor/grid, +/area/outpost/mining/relay) +"gO" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/yellow{ + dir = 10; + icon_state = "intact" + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/simulated/floor/tiled/techfloor/grid, +/area/outpost/mining/relay) +"gP" = ( +/obj/machinery/door/airlock/external/bolted/cycling{ + id_tag = "mbaserelay_airlock_outer" + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/simulated/floor/tiled/techfloor/grid, +/area/outpost/mining/relay) +"gQ" = ( +/obj/effect/catwalk_plated, +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/simulated/floor/plating, +/area/outpost/mining/hangar) +"gR" = ( +/obj/structure/catwalk, +/obj/machinery/power/apc{ + dir = 2; + name = "south bump"; + operating = 1; + pixel_y = -24 + }, +/obj/structure/cable, +/obj/structure/bed/chair{ + dir = 4; + icon_state = "chair_preview" + }, +/turf/simulated/floor/plating, +/area/outpost/mining/relay) +"gS" = ( +/obj/structure/table/steel, +/turf/simulated/floor/tiled/techfloor, +/area/outpost/mining/relay) +"gT" = ( +/obj/machinery/access_button/airlock_interior{ + master_tag = "mbaserelay_airlock"; + pixel_x = 23 + }, +/obj/structure/bed/chair{ + dir = 8; + icon_state = "chair_preview" + }, +/turf/simulated/floor/tiled/techfloor/grid, +/area/outpost/mining/relay) +"gU" = ( +/obj/structure/catwalk, +/obj/machinery/embedded_controller/radio/airlock/airlock_controller{ + id_tag = "mbaserelay_airlock"; + pixel_x = -24 + }, +/obj/machinery/atmospherics/unary/vent_pump/high_volume/airlock{ + dir = 1; + id_tag = "mbaserelay_airlock_pump" + }, +/turf/simulated/floor/plating, +/area/outpost/mining/relay) +"gV" = ( +/obj/structure/catwalk, +/obj/machinery/airlock_sensor{ + id_tag = "mbaserelay_airlock_sensor"; + master_tag = "mbaserelay_airlock"; + pixel_x = 24 + }, +/obj/machinery/atmospherics/unary/vent_pump/high_volume/airlock{ + dir = 1; + id_tag = "mbaserelay_airlock_pump" + }, +/turf/simulated/floor/plating, +/area/outpost/mining/relay) +"gY" = ( +/mob/living/simple_animal/hostile/hivebot, +/turf/simulated/floor/asteroid, +/area/mine/unexplored) +"gZ" = ( +/obj/random/single/hivebot, +/turf/simulated/floor/asteroid, +/area/mine/unexplored) +"ha" = ( +/mob/living/simple_animal/hostile/carp, +/turf/simulated/floor/asteroid, +/area/mine/explored) +"hb" = ( +/obj/random/trash, +/turf/simulated/floor/tiled/techfloor, +/area/outpost/mining/relay) +"hc" = ( +/turf/simulated/floor/airless, +/area/mine/unexplored) +"hd" = ( +/obj/structure/table/steel, +/obj/item/pen, +/obj/item/paper, +/obj/machinery/light/small/red, +/obj/item/reagent_containers/food/drinks/glass2/shot, +/turf/simulated/floor/tiled/techfloor, +/area/outpost/mining/relay) +"he" = ( +/obj/machinery/computer/modular/preset/civilian{ + dir = 1 + }, +/obj/structure/cable, +/obj/effect/floor_decal/corner/brown/half, +/obj/machinery/power/apc/inactive{ + name = "south bump"; + pixel_y = -25 + }, +/turf/simulated/floor/tiled/monotile, +/area/outpost/mining/recreation) +"hg" = ( +/obj/structure/catwalk, +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/random/junk, +/turf/simulated/floor/plating, +/area/outpost/mining/relay) +"hi" = ( +/obj/structure/mech_wreckage/powerloader, +/turf/simulated/floor/asteroid, +/area/mine/unexplored) +"hk" = ( +/obj/effect/wallframe_spawn/reinforced_phoron/titanium, +/obj/machinery/door/blast/regular{ + id_tag = "data_capsule_shield"; + name = "shield blast door" + }, +/obj/effect/paint/merc, +/obj/effect/paint_stripe/green, +/turf/simulated/floor/plating, +/area/shuttle/abadoned_data_capsule) +"hl" = ( +/turf/simulated/wall/prepainted/mining_corporate, +/area/outpost/mining/relay) +"hm" = ( +/obj/effect/floor_decal/techfloor/corner, +/turf/unsimulated/mask, +/area/mine/unexplored) +"hn" = ( +/turf/unsimulated/mask, +/area/space) +"ho" = ( +/obj/machinery/computer/ship/helm{ + dir = 2 + }, +/obj/effect/floor_decal/techfloor{ + dir = 6; + icon_state = "techfloor_edges" + }, +/obj/machinery/light/small/emergency{ + dir = 8; + icon_state = "bulb_map" + }, +/turf/simulated/floor/tiled/techfloor/grid, +/area/shuttle/abadoned_data_capsule) +"hp" = ( +/obj/machinery/computer/shuttle_control/explore/data_capsule{ + dir = 2 + }, +/obj/effect/floor_decal/techfloor{ + dir = 4; + icon_state = "techfloor_edges" + }, +/obj/effect/floor_decal/techfloor{ + dir = 8 + }, +/turf/simulated/floor/tiled/techfloor/grid, +/area/shuttle/abadoned_data_capsule) +"hq" = ( +/obj/machinery/computer/ship/sensors{ + dir = 2 + }, +/obj/effect/floor_decal/techfloor{ + dir = 10 + }, +/obj/machinery/light/small/emergency{ + dir = 4; + icon_state = "bulb_map" + }, +/turf/simulated/floor/tiled/techfloor/grid, +/area/shuttle/abadoned_data_capsule) +"hr" = ( +/obj/effect/paint/merc, +/obj/effect/paint_stripe/green, +/turf/simulated/wall/ocp_wall, +/area/shuttle/abadoned_data_capsule) +"hs" = ( +/obj/effect/floor_decal/techfloor{ + dir = 1; + icon_state = "techfloor_edges" + }, +/obj/effect/floor_decal/techfloor, +/obj/machinery/power/terminal, +/obj/structure/cable/yellow{ + d2 = 4; + icon_state = "0-4" + }, +/turf/simulated/floor/tiled/techfloor/grid, +/area/shuttle/abadoned_data_capsule) +"ht" = ( +/turf/unsimulated/mask, +/area/mine/explored) +"hu" = ( +/obj/effect/floor_decal/techfloor/corner{ + dir = 1 + }, +/obj/effect/floor_decal/techfloor/corner{ + dir = 4; + icon_state = "techfloor_corners" + }, +/obj/effect/floor_decal/techfloor/corner{ + dir = 8; + icon_state = "techfloor_corners" + }, +/obj/effect/floor_decal/techfloor/corner, +/obj/structure/cable/yellow{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/turf/simulated/floor/tiled/techfloor/grid, +/area/shuttle/abadoned_data_capsule) +"hv" = ( +/obj/effect/floor_decal/techfloor, +/obj/effect/floor_decal/techfloor{ + dir = 1; + icon_state = "techfloor_edges" + }, +/obj/machinery/power/apc/inactive{ + dir = 4; + name = "east bump"; + pixel_x = 25 + }, +/obj/machinery/button/blast_door{ + dir = 8; + id_tag = "data_capsule_door_protect"; + name = "Entrance Protection"; + pixel_x = 24; + pixel_y = 36 + }, +/obj/machinery/button/blast_door{ + dir = 8; + id_tag = "data_capsule_sensors"; + name = "Sensors' Seal"; + pixel_x = 24; + pixel_y = 16 + }, +/obj/machinery/button/blast_door{ + dir = 8; + id_tag = "data_capsule_shield"; + name = "Pilot's Shielding"; + pixel_x = 24; + pixel_y = 26 + }, +/obj/structure/cable/green{ + d2 = 2; + icon_state = "0-2" + }, +/turf/simulated/floor/tiled/techfloor/grid, +/area/shuttle/abadoned_data_capsule) +"hw" = ( +/obj/machinery/shipsensors, +/obj/machinery/door/blast/regular{ + dir = 4; + id_tag = "data_capsule_sensors" + }, +/turf/simulated/floor/plating, +/area/shuttle/abadoned_data_capsule) +"hx" = ( +/obj/machinery/firealarm{ + dir = 8; + pixel_x = -24; + pixel_y = 0 + }, +/obj/machinery/power/smes/buildable{ + uncreated_component_parts = list(/obj/item/stock_parts/smes_coil/super_io=2,/obj/item/stock_parts/smes_coil/super_capacity=2) + }, +/obj/effect/floor_decal/techfloor{ + dir = 5 + }, +/obj/machinery/light/small, +/obj/structure/cable/green{ + d2 = 4; + icon_state = "0-4" + }, +/turf/simulated/floor/tiled/techfloor/grid, +/area/shuttle/abadoned_data_capsule) +"hy" = ( +/obj/effect/floor_decal/techfloor{ + dir = 8 + }, +/obj/effect/floor_decal/techfloor{ + dir = 4; + icon_state = "techfloor_edges" + }, +/obj/structure/cable/green{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/cable/yellow{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/simulated/floor/tiled/techfloor/grid, +/area/shuttle/abadoned_data_capsule) +"hz" = ( +/obj/machinery/computer/ship/engines{ + dir = 1 + }, +/obj/effect/floor_decal/techfloor{ + dir = 9 + }, +/obj/machinery/alarm{ + dir = 8; + pixel_x = 24 + }, +/obj/machinery/light/small, +/obj/structure/cable/green{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/turf/simulated/floor/tiled/techfloor/grid, +/area/shuttle/abadoned_data_capsule) +"hB" = ( +/obj/machinery/door/blast/regular{ + dir = 4 + }, +/turf/simulated/floor/plating, +/area/shuttle/abadoned_data_capsule) +"hC" = ( +/obj/machinery/door/airlock/highsecurity{ + dir = 2 + }, +/obj/structure/cable/yellow{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/simulated/floor/tiled/techfloor/grid, +/area/shuttle/abadoned_data_capsule) +"hD" = ( +/obj/structure/backup_server, +/obj/effect/floor_decal/techfloor{ + dir = 9 + }, +/obj/machinery/light{ + dir = 1; + icon_state = "tube_map" + }, +/turf/simulated/floor/greengrid, +/area/shuttle/abadoned_data_capsule) +"hE" = ( +/obj/effect/floor_decal/techfloor{ + dir = 1 + }, +/turf/simulated/floor/greengrid, +/area/shuttle/abadoned_data_capsule) +"hF" = ( +/obj/effect/floor_decal/techfloor{ + dir = 1 + }, +/obj/structure/cable/yellow{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/simulated/floor/greengrid, +/area/shuttle/abadoned_data_capsule) +"hG" = ( +/obj/structure/backup_server, +/obj/effect/floor_decal/techfloor{ + dir = 5 + }, +/obj/machinery/light{ + dir = 1; + icon_state = "tube_map" + }, +/turf/simulated/floor/greengrid, +/area/shuttle/abadoned_data_capsule) +"hH" = ( +/obj/effect/floor_decal/techfloor{ + dir = 8; + icon_state = "techfloor_edges" + }, +/obj/machinery/light/small/emergency{ + dir = 8 + }, +/obj/structure/broken_cryo{ + dir = 4 + }, +/obj/structure/closet/walllocker/emerglocker/west{ + amount = 3; + spawnitems = list(/obj/item/tank/emergency/oxygen,/obj/item/clothing/mask/breath,/obj/item/inflatable/door,/obj/item/inflatable/wall,/obj/item/inflatable/door,/obj/item/inflatable/wall) + }, +/turf/simulated/floor/greengrid, +/area/shuttle/abadoned_data_capsule) +"hI" = ( +/obj/effect/floor_decal/corner_techfloor_grid, +/obj/effect/floor_decal/techfloor/corner, +/turf/simulated/floor/greengrid, +/area/shuttle/abadoned_data_capsule) +"hJ" = ( +/obj/structure/railing/mapped, +/obj/effect/floor_decal/techfloor, +/obj/structure/cable/yellow{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/effect/overmap/visitable/ship/landable/data_capsule, +/obj/effect/shuttle_landmark/corporate/nav_hiden, +/turf/simulated/floor/greengrid, +/area/shuttle/abadoned_data_capsule) +"hK" = ( +/obj/effect/floor_decal/corner_techfloor_grid{ + dir = 8 + }, +/obj/effect/floor_decal/techfloor/corner{ + dir = 8; + icon_state = "techfloor_corners" + }, +/turf/simulated/floor/greengrid, +/area/shuttle/abadoned_data_capsule) +"hL" = ( +/obj/effect/floor_decal/techfloor{ + dir = 4; + icon_state = "techfloor_edges" + }, +/obj/machinery/light/small/emergency{ + dir = 4; + icon_state = "bulb_map" + }, +/obj/structure/plushie/drone, +/turf/simulated/floor/greengrid, +/area/shuttle/abadoned_data_capsule) +"hM" = ( +/obj/machinery/door/airlock/hatch{ + dir = 4 + }, +/obj/machinery/door/blast/regular{ + dir = 4; + id_tag = "data_capsule_door_protect" + }, +/turf/simulated/floor/reinforced/airmix, +/area/shuttle/abadoned_data_capsule) +"hN" = ( +/obj/effect/floor_decal/techfloor{ + dir = 8; + icon_state = "techfloor_edges" + }, +/turf/simulated/floor/greengrid, +/area/shuttle/abadoned_data_capsule) +"hO" = ( +/obj/structure/railing/mapped{ + dir = 4; + icon_state = "railing0-1" + }, +/obj/effect/floor_decal/techfloor{ + dir = 4; + icon_state = "techfloor_edges" + }, +/turf/simulated/floor/greengrid, +/area/shuttle/abadoned_data_capsule) +"hP" = ( +/obj/structure/decoy{ + icon_state = "ai-empty"; + name = "V.I.K.A. (Sleep mode)" + }, +/obj/structure/cable/yellow{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/simulated/floor/greengrid, +/area/shuttle/abadoned_data_capsule) +"hQ" = ( +/obj/structure/railing/mapped{ + dir = 8 + }, +/obj/effect/floor_decal/techfloor{ + dir = 8 + }, +/turf/simulated/floor/greengrid, +/area/shuttle/abadoned_data_capsule) +"hR" = ( +/obj/effect/floor_decal/techfloor{ + dir = 4; + icon_state = "techfloor_edges" + }, +/turf/simulated/floor/greengrid, +/area/shuttle/abadoned_data_capsule) +"hS" = ( +/obj/effect/floor_decal/corner_techfloor_grid{ + dir = 4 + }, +/obj/effect/floor_decal/techfloor/corner{ + dir = 4; + icon_state = "techfloor_corners" + }, +/turf/simulated/floor/greengrid, +/area/shuttle/abadoned_data_capsule) +"hT" = ( +/obj/structure/railing/mapped{ + dir = 1; + icon_state = "railing0-1" + }, +/obj/effect/floor_decal/techfloor{ + dir = 1; + icon_state = "techfloor_edges" + }, +/obj/structure/cable/yellow{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/turf/simulated/floor/greengrid, +/area/shuttle/abadoned_data_capsule) +"hU" = ( +/obj/effect/floor_decal/corner_techfloor_grid{ + dir = 1 + }, +/obj/effect/floor_decal/techfloor/corner{ + dir = 1 + }, +/obj/structure/cable/yellow{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/simulated/floor/greengrid, +/area/shuttle/abadoned_data_capsule) +"hV" = ( +/obj/effect/floor_decal/techfloor{ + dir = 4; + icon_state = "techfloor_edges" + }, +/obj/machinery/light/small/emergency{ + dir = 4; + icon_state = "bulb_map" + }, +/obj/structure/cable/yellow{ + d2 = 8; + icon_state = "0-8" + }, +/obj/machinery/power/port_gen/pacman, +/obj/structure/closet/walllocker{ + dir = 4; + pixel_x = 32 + }, +/obj/item/stack/material/phoron/fifty, +/obj/machinery/door/window{ + dir = 8 + }, +/obj/structure/window/boron_reinforced{ + dir = 1 + }, +/obj/structure/window/boron_reinforced, +/obj/item/storage/toolbox/syndicate, +/turf/simulated/floor/greengrid, +/area/shuttle/abadoned_data_capsule) +"hW" = ( +/obj/effect/floor_decal/techfloor{ + dir = 10; + icon_state = "techfloor_edges" + }, +/obj/structure/backup_server, +/obj/machinery/light, +/turf/simulated/floor/greengrid, +/area/shuttle/abadoned_data_capsule) +"hX" = ( +/obj/effect/floor_decal/techfloor, +/obj/structure/backup_server, +/turf/simulated/floor/greengrid, +/area/shuttle/abadoned_data_capsule) +"hY" = ( +/obj/effect/floor_decal/techfloor, +/turf/simulated/floor/greengrid, +/area/shuttle/abadoned_data_capsule) +"hZ" = ( +/obj/effect/floor_decal/techfloor{ + dir = 6; + icon_state = "techfloor_edges" + }, +/obj/structure/backup_server, +/obj/machinery/light, +/turf/simulated/floor/greengrid, +/area/shuttle/abadoned_data_capsule) +"ia" = ( +/obj/structure/fuel_port, +/obj/effect/paint/merc, +/obj/effect/paint_stripe/green, +/turf/simulated/wall/ocp_wall, +/area/shuttle/abadoned_data_capsule) +"ib" = ( +/obj/machinery/door/airlock/highsecurity{ + dir = 2 + }, +/turf/simulated/floor/tiled/techfloor/grid, +/area/shuttle/abadoned_data_capsule) +"ic" = ( +/obj/item/stack/material/plasteel, +/turf/simulated/floor/asteroid, +/area/mine/unexplored) +"id" = ( +/obj/structure/girder, +/turf/simulated/floor/plating, +/area/shuttle/abadoned_data_capsule) +"ie" = ( +/obj/machinery/portable_atmospherics/canister/hydrogen, +/turf/simulated/floor/tiled/techfloor/grid, +/area/shuttle/abadoned_data_capsule) +"if" = ( +/obj/effect/floor_decal/techfloor{ + dir = 4; + icon_state = "techfloor_edges" + }, +/obj/effect/floor_decal/techfloor{ + dir = 8 + }, +/obj/machinery/light/small, +/turf/simulated/floor/tiled/techfloor/grid, +/area/shuttle/abadoned_data_capsule) +"ig" = ( +/obj/machinery/portable_atmospherics/canister/carbon_dioxide, +/obj/machinery/atmospherics/portables_connector, +/turf/simulated/floor/tiled/techfloor/grid, +/area/shuttle/abadoned_data_capsule) +"ih" = ( +/obj/machinery/atmospherics/pipe/simple/visible/black{ + dir = 6 + }, +/obj/effect/paint/merc, +/obj/effect/paint_stripe/green, +/turf/simulated/wall/ocp_wall, +/area/shuttle/abadoned_data_capsule) +"ii" = ( +/obj/machinery/atmospherics/pipe/manifold/visible/black{ + dir = 1; + icon_state = "map" + }, +/obj/effect/paint/merc, +/obj/effect/paint_stripe/green, +/turf/simulated/wall/ocp_wall, +/area/shuttle/abadoned_data_capsule) +"ij" = ( +/obj/machinery/atmospherics/pipe/manifold/visible/black{ + dir = 4 + }, +/obj/effect/paint/merc, +/obj/effect/paint_stripe/green, +/turf/simulated/wall/ocp_wall, +/area/shuttle/abadoned_data_capsule) +"ik" = ( +/obj/machinery/atmospherics/unary/engine{ + dir = 1 + }, +/obj/structure/shuttle/engine/heater{ + pixel_y = 32 + }, +/turf/simulated/floor/reinforced{ + map_airless = 1 + }, +/area/shuttle/abadoned_data_capsule) +"QI" = ( +/obj/machinery/atmospherics/unary/vent_pump/high_volume/airlock{ + dir = 4; + id_tag = "mbase_airlock_pump" + }, +/obj/structure/catwalk, +/obj/machinery/light/small{ + dir = 8 + }, +/obj/effect/floor_decal/industrial/warning/cee, +/turf/simulated/floor/plating, +/area/outpost/mining) + +(1,1,1) = {" +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +"} +(2,1,1) = {" +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +"} +(3,1,1) = {" +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +"} +(4,1,1) = {" +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +"} +(5,1,1) = {" +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +"} +(6,1,1) = {" +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +"} +(7,1,1) = {" +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +"} +(8,1,1) = {" +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +"} +(9,1,1) = {" +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +gB +ab +gB +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +"} +(10,1,1) = {" +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +"} +(11,1,1) = {" +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +"} +(12,1,1) = {" +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ap +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +"} +(13,1,1) = {" +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +aq +ap +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +"} +(14,1,1) = {" +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ap +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +ab +gB +ab +ab +gB +gB +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +"} +(15,1,1) = {" +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ap +ap +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +aa +aa +aa +aa +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +"} +(16,1,1) = {" +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ap +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +aa +aa +ap +ap +aa +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +"} +(17,1,1) = {" +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ap +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +aa +ap +ap +aa +aa +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +"} +(18,1,1) = {" +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ap +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +aa +aa +ap +ap +aa +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +"} +(19,1,1) = {" +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ap +gB +ab +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ap +ab +ab +ab +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +aa +ap +ap +aa +aa +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +"} +(20,1,1) = {" +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gv +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ap +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ap +ap +aa +aa +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +"} +(21,1,1) = {" +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ap +aa +aa +aa +aa +aa +hw +hr +hr +hr +hM +hr +eJ +eJ +hr +ap +ap +ap +ap +ap +ap +ap +ap +ap +ab +ap +ap +ap +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +"} +(22,1,1) = {" +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ap +aa +aa +eJ +eJ +eJ +hr +hr +hD +hH +hN +hH +hW +hr +hr +hr +id +ap +ab +ap +ap +ab +ic +ap +ap +ap +ap +ap +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +"} +(23,1,1) = {" +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +aa +aa +aa +hk +ho +hs +hx +hr +hE +hI +hO +hS +hX +ia +ie +ih +ik +ap +ap +ap +ap +ap +ap +ap +ap +ap +ab +ap +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +"} +(24,1,1) = {" +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +ab +gB +gB +ab +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +gB +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +aa +aa +aa +hk +hp +hu +hy +hC +hF +hJ +hP +hT +hY +ib +if +ii +ik +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +"} +(25,1,1) = {" +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +ab +ab +gB +gB +ab +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +aa +aa +aa +aa +hk +hq +hv +hz +hr +hE +hK +hQ +hU +hX +hr +ig +ij +ik +ap +ap +ab +ap +ap +ab +ap +ap +ab +ap +ap +ap +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +"} +(26,1,1) = {" +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +ab +ab +ab +ap +gB +ab +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ap +aa +aa +aa +eJ +hr +hr +hr +hr +hG +hL +hR +hV +hZ +hr +hr +eJ +hr +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +"} +(27,1,1) = {" +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +ab +ab +ab +ab +ap +ap +ab +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +aa +aa +aa +aa +aa +aa +aa +hB +eJ +hr +hr +hM +hr +hr +id +id +ap +ap +ap +ap +ic +ab +ap +ap +ap +ap +ap +ab +ap +ap +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +"} +(28,1,1) = {" +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +aq +ap +ab +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ap +ap +ap +ap +ap +ap +ic +ap +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +"} +(29,1,1) = {" +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ap +ab +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ap +ab +ab +ab +ab +ab +ab +ab +ab +ab +aa +aa +ap +ap +aa +aa +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +"} +(30,1,1) = {" +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ap +ab +ab +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ap +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +aa +aa +ap +ap +aa +aa +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +"} +(31,1,1) = {" +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ap +ap +ab +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ap +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +aa +aa +ap +ap +aa +aa +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +"} +(32,1,1) = {" +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ap +ab +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +gB +ab +gB +gB +gB +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +aa +aa +ap +ap +aa +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +"} +(33,1,1) = {" +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ap +ab +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +aa +aa +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +"} +(34,1,1) = {" +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ap +ab +ab +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +"} +(35,1,1) = {" +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ap +ap +ab +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ap +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +"} +(36,1,1) = {" +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ap +ab +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ap +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +"} +(37,1,1) = {" +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ap +ab +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +aD +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ap +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +"} +(38,1,1) = {" +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ap +ab +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ap +ap +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +"} +(39,1,1) = {" +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ap +ab +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ap +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +"} +(40,1,1) = {" +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ap +ab +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +"} +(41,1,1) = {" +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ap +ab +gB +gB +gB +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +"} +(42,1,1) = {" +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ap +ap +ab +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +"} +(43,1,1) = {" +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ap +ab +ab +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +gB +gB +gB +gB +gB +gB +ab +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +hm +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +"} +(44,1,1) = {" +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ap +ab +ab +gB +gB +gB +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +gB +gB +gB +gB +ab +ab +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +"} +(45,1,1) = {" +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ap +ab +ab +gB +gB +gB +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +gB +gB +gB +ab +ab +ab +ab +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +aa +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +"} +(46,1,1) = {" +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ap +ab +ab +gB +gB +gB +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +gB +gB +ab +ab +ab +ab +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ap +ap +ap +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +aa +aa +aa +ac +ar +ar +ac +ac +ar +ar +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +"} +(47,1,1) = {" +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ap +ap +ab +gB +gB +gB +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +gB +gB +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ap +gY +ap +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +aa +aa +aa +aa +gB +au +gB +au +gB +ac +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +"} +(48,1,1) = {" +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +aq +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ap +ap +ap +ap +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +aa +aa +aa +aa +hl +gC +gC +gC +hl +aa +aa +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +"} +(49,1,1) = {" +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ap +ab +ab +ap +ap +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +aa +aa +aa +hl +hl +gD +gI +hd +hl +aa +aa +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +"} +(50,1,1) = {" +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +gB +gB +gB +gB +ab +ab +ab +ab +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ap +ap +ab +ab +ab +ap +ap +ap +ap +ap +ap +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +aa +aa +hl +gr +gF +hg +gR +hl +aa +aa +aa +aa +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +"} +(51,1,1) = {" +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ap +ab +ab +ab +ab +ab +ab +ab +ab +ab +ap +ap +ap +ap +ap +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +aa +aa +hl +gt +hb +gK +gS +hl +aa +aa +aa +aa +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +"} +(52,1,1) = {" +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ap +ap +ap +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ap +ap +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ap +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +aa +aa +hl +hl +gG +gL +gT +hl +aa +aa +aa +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +"} +(53,1,1) = {" +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ap +gY +ap +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ap +ap +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ap +ap +ap +ap +ap +ap +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +aa +aa +hl +hl +gM +hl +hl +aa +aa +aa +ab +ap +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +"} +(54,1,1) = {" +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +gB +ab +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +gB +ab +ab +ab +ab +ab +ap +ap +ap +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ap +ap +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ap +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +aa +aa +aa +hl +gN +gU +hl +aa +aa +ab +ab +ap +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +"} +(55,1,1) = {" +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ap +ap +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ap +ap +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ap +ap +ap +ab +ab +ab +ab +ab +ab +ab +ab +aa +aa +aa +hl +gO +gV +hl +aa +aa +ab +ab +ap +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +"} +(56,1,1) = {" +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ap +ap +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ap +ap +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ap +ap +ap +ap +ab +ab +ab +ab +ab +aa +aa +hl +hl +gP +hl +hl +aa +aa +ab +ab +ab +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +"} +(57,1,1) = {" +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ap +ap +ap +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ap +ap +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ap +gY +ap +ab +ab +ab +ab +ab +aa +aa +hl +go +gE +gH +aa +aa +ab +ab +ab +ab +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +"} +(58,1,1) = {" +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ap +ap +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ap +ap +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ap +ap +ap +ab +ab +ab +ab +ab +aa +aa +aa +hc +gE +ap +aa +aa +ab +ab +ab +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +"} +(59,1,1) = {" +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ap +ap +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ap +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +aa +gJ +ap +ap +gE +ap +aa +aa +ab +ab +ab +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +"} +(60,1,1) = {" +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ap +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ap +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gJ +ap +ap +ap +gE +ap +aa +ab +ab +ab +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +"} +(61,1,1) = {" +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ap +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ap +ap +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ap +ap +ap +ap +ap +gE +ap +ab +ab +ab +ab +ab +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +"} +(62,1,1) = {" +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ap +ap +ap +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ap +ap +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ap +ap +ab +ab +ab +ab +ab +ab +ap +ap +ab +ab +ab +ap +ap +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ap +ap +ap +ap +ap +gE +ap +ab +ab +ab +ab +ab +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +"} +(63,1,1) = {" +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ap +gY +ap +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ap +ap +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +gE +ap +ab +ab +ab +ab +ab +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +"} +(64,1,1) = {" +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ap +ap +ap +ap +ab +ab +ab +ab +ab +ab +ab +ap +ap +ap +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ap +ap +gy +gs +gs +gs +gs +gs +gs +gs +gs +gs +gs +gs +gs +gs +gs +gs +gs +gs +gs +gs +gs +gs +gs +gs +gs +gs +gs +gs +gs +gs +gs +gs +gs +gs +gs +gs +gs +gz +ap +ap +ap +ap +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +"} +(65,1,1) = {" +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ap +ab +ab +ab +ab +ab +ab +ap +ap +ap +ap +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ap +gE +ap +ap +ap +ap +ap +ap +ap +ap +ap +gJ +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +"} +(66,1,1) = {" +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ap +ap +ab +ab +ab +ab +ap +ap +ab +ab +ap +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ap +gE +ap +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ap +ap +ap +ap +ap +ap +ap +ap +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +"} +(67,1,1) = {" +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ao +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ap +ap +ab +ab +ap +ap +ab +ab +ab +ab +ap +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ap +gE +ap +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ap +ap +ap +ap +ap +ap +ap +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +"} +(68,1,1) = {" +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ap +ap +ap +ap +ab +ab +ab +ab +ab +ab +ap +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ap +gE +ap +ap +gY +ap +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ap +ap +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +"} +(69,1,1) = {" +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ap +ap +ab +ab +ab +ab +ab +ab +ab +ap +ap +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ap +gE +ap +ap +ap +ap +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +ab +ab +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +"} +(70,1,1) = {" +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ap +ap +ab +ab +ab +ab +ab +ab +ab +ab +ap +ap +ab +ab +ab +ab +ab +ab +ab +ab +ap +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ap +gE +ap +ab +ap +ap +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +ab +ab +ab +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +"} +(71,1,1) = {" +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ap +ap +ab +ab +ab +ab +ab +ab +ab +ab +ap +ap +ab +ab +ab +ab +ab +ab +ab +ap +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ap +gE +ap +ab +ap +ap +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +ap +ab +ab +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +"} +(72,1,1) = {" +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ap +ab +ab +ab +ab +ab +ab +ab +ab +ab +ap +ab +ab +ab +ab +ab +ab +ab +gY +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ap +gE +ap +ab +ap +ap +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +ab +ap +ap +ap +ab +ap +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +"} +(73,1,1) = {" +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +aa +gB +gB +aa +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ap +ab +ab +ab +ab +ab +ab +ab +ab +ab +ap +ap +ap +ap +ab +ab +ap +ap +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ap +gE +ap +ab +ab +ap +ap +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ap +ap +ap +ap +ap +ab +gB +gB +gB +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +"} +(74,1,1) = {" +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +aa +aa +au +aa +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ap +ap +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ap +ap +ap +ap +ap +ap +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ap +gE +ap +ab +ab +ap +ap +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ap +ap +ap +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +"} +(75,1,1) = {" +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +aa +aa +aa +ab +ab +aa +aa +ab +ab +ab +ab +ab +aa +gB +gB +aa +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ap +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ap +gE +ap +ab +ab +ab +ap +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +aq +ap +ap +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +"} +(76,1,1) = {" +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +gB +au +aa +aa +aa +ab +aa +au +gB +gB +ab +aa +aa +aa +gB +gB +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ap +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ap +gE +ap +ab +ab +ab +ap +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ap +ap +ap +ap +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +"} +(77,1,1) = {" +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +gB +gB +at +aa +aa +aa +gB +gB +au +gB +gB +gB +gB +au +gB +gB +gB +ap +aa +aa +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ap +ap +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ap +gE +ap +ab +ab +ab +ap +ap +ab +ab +ab +ab +ap +ap +gZ +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ap +ap +ap +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +"} +(78,1,1) = {" +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +gB +gB +gB +at +gB +au +gB +gB +gB +au +gB +gB +gB +gB +gB +gB +gB +gB +au +ap +aa +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ap +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ap +gE +ap +ab +ab +ab +ab +ap +ab +ab +ab +ap +ap +ap +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ap +ap +ap +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +"} +(79,1,1) = {" +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +au +gB +gB +au +gB +gB +gB +gB +gB +gB +gB +au +gB +gB +gB +au +gB +aa +aa +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ap +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ap +gE +ap +ap +ap +ab +ab +ap +ab +ab +ab +ap +ap +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ap +ap +ap +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +"} +(80,1,1) = {" +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ac +au +au +au +au +au +au +au +au +au +au +au +au +gB +gB +gB +gB +ap +aa +aa +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ap +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ap +gE +ap +ab +ab +ap +ap +ap +ab +ab +ab +ap +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ap +ap +ap +ap +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +"} +(81,1,1) = {" +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ar +gB +gB +au +gB +gB +au +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ap +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ap +gE +ap +ab +ab +ab +ap +ap +ap +ab +ab +ap +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ap +ap +ap +ap +ap +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +"} +(82,1,1) = {" +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ar +au +gB +au +gB +gB +gB +gB +gB +gB +gB +au +gB +gB +gB +gB +au +gB +gB +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +ab +ab +ap +ap +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ap +gE +ap +ab +ab +ab +ab +ab +ap +ap +ap +ap +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ap +ap +ap +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +"} +(83,1,1) = {" +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ac +gB +gB +gB +gB +gB +au +gB +gB +gB +gB +au +gB +gB +gB +gB +au +gB +gB +bd +bf +bf +bf +bf +bf +bf +bf +cA +cA +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ap +ap +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ap +gE +ap +ab +ab +ab +ab +ab +ab +ab +ap +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ap +aq +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +"} +(84,1,1) = {" +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ac +au +au +au +au +au +au +au +au +au +ay +ay +au +ay +ay +ay +ay +ay +au +bd +bj +bv +bI +bS +cd +cz +cZ +dD +cA +cA +cA +cA +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ap +ap +ap +ap +ap +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gJ +gE +ap +ab +ab +ab +ab +ab +ab +ab +ap +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +"} +(85,1,1) = {" +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +au +gB +gB +au +gB +gB +au +gB +gB +aw +az +ax +ax +ax +ax +ax +ax +ax +ax +be +bk +bw +bJ +bT +ce +ep +bf +dE +ec +ev +eA +cA +cA +cA +cA +aa +aa +aa +aa +aa +aa +aa +ap +ap +ap +ap +ap +ap +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ap +gE +ap +ab +ab +ab +ab +ab +ab +ab +ap +ap +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +"} +(86,1,1) = {" +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ac +gB +gB +au +gB +gB +au +gB +gB +gB +aA +aE +gB +gB +aP +aP +au +aP +aP +bd +bl +bx +bK +bU +cf +cB +bf +dF +ed +ew +ew +ew +ew +dD +cA +aa +ap +aa +aa +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ap +gE +ap +ap +ab +ab +ab +ab +ab +ab +ab +ap +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +hn +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +"} +(87,1,1) = {" +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ar +gB +ag +ag +ag +ag +ag +ag +ag +aw +aA +aF +aF +aF +aF +aF +aF +aF +aF +bd +bf +bf +bL +bf +bf +bf +bf +dG +dG +dG +dG +dG +dG +fO +cA +aa +ap +ap +ap +ap +ap +ap +ap +ap +ap +aa +aa +ap +ap +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ap +gE +ap +ap +ab +ab +ab +ab +ab +ab +ab +ap +ap +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +"} +(88,1,1) = {" +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ac +au +ad +av +av +av +av +av +av +ax +aB +aF +aG +aK +aK +aT +aV +aY +gQ +aY +bm +aY +bM +bV +cg +cC +da +dG +ee +ex +eM +fi +dG +dE +cA +aa +aa +ap +ap +ap +ap +ap +ap +ap +aa +aa +aa +ap +ap +ab +ab +ab +ab +ab +ab +ab +ab +ap +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ap +gE +ap +ap +ab +ab +ab +ab +ab +ab +ab +ab +ap +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +"} +(89,1,1) = {" +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ac +ac +gB +ah +ah +ah +ah +ah +ah +ah +gB +aA +aF +aH +aS +aS +aS +aW +aS +aW +aS +aS +aS +aS +aS +aS +cD +db +dH +ef +ey +eN +fj +dG +fP +cA +aa +aa +aa +ap +ap +aq +ap +ap +aa +aa +aa +aa +aa +ap +ap +ab +ab +ab +ab +ab +ab +ap +ap +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ap +gE +ap +ab +ab +ab +ab +ab +ab +ab +ab +ab +ap +ap +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +"} +(90,1,1) = {" +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ac +gB +gB +au +gB +gB +au +gB +gB +au +aw +aA +aF +aI +aS +aR +aR +aR +aR +aR +aR +aR +aR +aR +aR +aR +aS +dc +dI +eg +ez +eO +fk +fz +dE +cA +aa +aa +ap +ap +ap +ap +ap +ap +ap +aa +aa +aa +aa +ap +ap +ap +ab +ab +ab +ab +ap +ap +ap +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ap +gE +ap +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ap +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +"} +(91,1,1) = {" +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ac +gB +gB +ag +ag +ag +ag +ag +ag +ag +gB +aA +aF +aH +aS +aR +aR +aR +aR +aR +aR +aR +aR +aR +aR +aR +aS +dd +dG +eh +eh +eP +fl +dG +dE +cA +aa +aa +ap +ap +ap +ap +ap +ap +ap +ap +aa +aa +aa +ap +ap +ap +ap +ab +ab +ap +ap +ap +ap +ap +ab +ab +ab +ab +ab +ab +ab +ap +ap +ap +gE +ap +ab +ab +ab +ab +ab +ab +ab +ab +ab +ap +ap +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +"} +(92,1,1) = {" +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ac +au +ae +av +av +av +av +av +av +av +ax +aB +aF +aH +aS +aR +aR +aR +aR +aR +aR +aR +aR +aR +aR +aR +aS +de +dG +dG +dG +dG +dG +dG +fO +cA +aa +aa +ap +ap +ap +ap +ap +ap +ap +ap +aa +aa +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ab +ab +ab +ab +ab +ab +ab +ab +ap +gY +ap +gE +ap +ab +ab +ab +ab +ab +ap +ap +ap +ap +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +"} +(93,1,1) = {" +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ac +gB +gB +ah +ah +ah +ah +ah +ah +ah +gB +aA +aF +aH +aS +aR +aR +aR +aR +aR +bn +aR +aR +aR +aR +aR +aS +df +dJ +cA +eA +eQ +ew +ew +fQ +cA +aa +aa +ap +ap +ap +ap +ap +ap +aa +aa +aa +aa +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ab +ab +ab +ab +ab +ab +ab +ab +ab +ap +ap +ap +gE +ap +ab +ab +ab +ab +ab +ap +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +"} +(94,1,1) = {" +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ar +gB +gB +au +gB +gB +au +gB +gB +au +aw +aA +aF +aI +aS +aR +aR +aR +aR +aR +aR +aR +aR +aR +aR +aR +aS +dg +dK +cA +eB +dE +fm +cA +cA +cA +aa +aa +ap +ap +ap +ap +ap +ap +aa +aa +aa +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ap +gE +ap +ab +ab +ab +ab +ap +ap +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ap +ap +ap +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +"} +(95,1,1) = {" +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ac +ac +gB +ag +ag +ag +ag +ag +ag +ag +gB +aA +aF +aH +aS +aR +aR +aR +aR +aR +aR +aR +aR +aR +aR +aR +aS +dh +dL +ej +ew +eR +eA +cA +aa +aa +aa +aa +ap +ap +ap +ap +ap +ap +ap +aa +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ap +gE +ap +ab +ab +ab +ab +ap +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ap +gY +ap +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +"} +(96,1,1) = {" +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ar +au +ad +av +av +av +av +av +av +ax +aC +aF +aH +aS +aS +aS +aS +aS +aS +aS +aS +aS +aS +aS +aS +cF +di +dM +ei +ei +eS +ei +ei +ei +ei +ei +aa +ap +ap +ap +ap +ap +ap +ap +aa +ap +ap +ap +ap +ap +aa +ap +ap +ap +ab +ab +ab +ap +ap +ap +ab +ab +ab +ab +ab +ab +ab +ab +ap +gE +ap +ab +ab +ab +ap +ap +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ap +ap +ap +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +"} +(97,1,1) = {" +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ac +gB +ah +ah +ah +ah +ah +ah +ah +gB +au +aF +aJ +aO +aO +aU +aO +aO +aO +aO +aU +aO +aO +aO +aO +aU +dj +dN +ei +gl +eD +al +fB +fR +ga +ei +aa +aa +aa +ap +aa +ap +ap +ap +ap +ap +ap +ap +ap +aa +aa +ap +ap +ap +ab +ab +ap +ap +ap +ap +ap +ap +ab +ab +ab +ab +ab +ap +ap +gE +ap +ap +ap +ap +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ap +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +"} +(98,1,1) = {" +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ac +gB +gB +gB +gB +au +gB +au +gB +gB +au +aF +aF +aF +aF +aF +aF +aF +aF +aF +bo +bo +bo +bo +bo +bo +dk +bo +ei +am +eT +fn +fn +fS +gb +ei +aa +aa +aa +aa +aa +ap +ap +ap +ap +ap +ap +ap +ap +aa +aa +aa +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +gE +ap +ap +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +ab +ap +ap +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ap +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +"} +(99,1,1) = {" +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ac +gB +au +gB +gB +au +gB +au +gB +gB +au +gB +gB +au +gB +gB +au +gB +au +ai +bp +by +ai +bW +ch +cH +cO +dq +ei +an +eU +fo +fC +fT +gc +ei +aa +aa +aa +aa +aa +aa +ap +ap +ap +ap +ap +ap +ap +aa +aa +ap +ap +ap +gy +gs +gs +gs +gs +gs +gs +gs +gs +gs +gs +gs +gs +gs +gs +gz +ap +ap +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +ab +ap +gY +ap +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ap +ap +ap +ab +ab +gB +gB +gB +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +"} +(100,1,1) = {" +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +au +ac +au +ac +ac +au +ac +au +au +au +au +au +au +au +au +au +au +aZ +af +bg +bq +bz +bN +bX +ci +cI +dm +dO +ei +ei +eW +fp +ei +ei +ei +ei +ek +ek +ek +ek +fY +aa +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +gE +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ap +ap +ab +ab +ab +ab +ab +ab +ab +ab +ab +ap +ab +ab +ab +ab +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +"} +(101,1,1) = {" +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +at +gB +gB +au +gB +gB +gB +au +gB +gB +au +gB +ba +bh +br +bA +ai +bY +cj +cJ +dn +dP +ek +eC +eV +fq +fD +fU +gd +ek +gh +gk +gm +QI +fY +dC +ap +ap +ap +gy +gs +gs +gs +gs +gs +gs +gs +gs +gz +ap +ap +ap +ap +ab +ab +ab +ap +ab +ab +ab +ab +ab +ab +ab +ab +ap +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ap +ap +ab +ab +ab +ab +ab +ab +ab +ab +ap +ab +ab +ab +ab +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +"} +(102,1,1) = {" +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ac +gB +gB +au +gB +gB +gB +au +gB +gB +au +aw +bb +bh +bh +bh +bh +ai +ck +cK +do +dQ +em +es +eY +fr +aj +eL +fW +fE +fV +fV +fV +ge +gi +gs +gs +gs +gs +gz +ap +ap +ap +ap +ap +ap +ap +ap +ap +gJ +ap +ap +ab +ab +ab +ap +ab +ab +ab +ab +ab +ab +ab +ab +ab +ap +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ap +ap +ab +ab +ab +ab +ab +ab +ap +ap +ab +ab +ab +ab +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +"} +(103,1,1) = {" +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ar +au +at +at +ar +ar +ac +au +at +at +ac +au +bb +au +au +au +bh +cn +cl +cL +dp +dR +ek +eE +eZ +fs +ak +fF +gf +ek +gj +cb +gn +gp +fY +fA +ap +ap +ap +ap +ap +aa +aa +aa +ap +ap +ap +ap +ap +ap +ap +ap +ab +ab +ab +ap +ab +ab +ab +ab +ab +ab +ab +ab +ab +ap +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ap +ap +ab +ab +ab +ab +ab +ap +ab +ab +ab +ab +ab +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +"} +(104,1,1) = {" +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +at +aw +bb +bi +au +gB +bh +bZ +cm +cM +dl +dS +ek +eF +fa +fs +fG +fX +gg +ek +ek +ek +ek +ek +fY +aa +ap +ap +ap +ap +gw +aa +aa +aa +aa +ap +ap +ap +ap +ap +ap +ab +ab +ab +ab +ap +ab +ab +ab +ab +ab +ab +ab +ab +ab +ap +ap +ab +ab +ab +ab +ab +ab +ab +ab +gu +gu +gu +gu +gu +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ap +ap +ab +ab +ab +ab +ap +ab +ab +ab +ab +ab +ab +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +"} +(105,1,1) = {" +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +eX +gB +au +au +bc +au +bs +bs +bs +bE +bE +cN +dr +cN +ek +ek +ek +ek +ek +ek +ek +ek +aa +aa +aa +aa +aa +aa +ap +ap +ap +ap +aa +aa +aa +aa +aa +aa +ap +ap +ap +ap +ab +ab +ab +ab +ap +ap +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ap +ab +ab +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +ab +ab +ab +au +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +hi +ap +ab +ab +ab +ap +ab +ab +ab +ab +ab +ab +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +"} +(106,1,1) = {" +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ar +gB +au +gB +bs +bB +bH +bE +ca +cG +ds +dT +en +el +fb +ft +fH +el +aa +aa +aa +aa +aa +aa +aa +ap +ap +ap +ap +ap +aa +aa +aa +aa +aa +aa +ap +ap +ap +ab +ab +ab +ab +ab +ap +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +ha +gu +gu +gu +gu +ab +au +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ap +ap +ap +ab +ap +ab +ab +ab +ab +ab +ab +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +"} +(107,1,1) = {" +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ac +gB +au +gB +bs +bC +bF +bP +co +cP +dt +dV +eo +eH +fc +fu +fI +el +aa +aa +ap +gJ +gJ +aa +ap +ap +ap +ap +ap +ap +ap +aa +aa +aa +ap +ap +ap +ap +ap +ap +ab +ab +ab +ab +ap +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +au +au +au +au +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ap +ap +ap +ab +ab +ab +ab +ab +ab +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +"} +(108,1,1) = {" +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ac +gB +au +gB +bt +bD +bO +bE +cp +cQ +ds +ct +dY +eI +fd +fv +fJ +el +aa +aa +gJ +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +aa +ap +ap +ap +ap +ap +ap +ab +ab +ab +ap +ap +ap +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gB +gB +gB +au +au +au +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ap +ap +ab +ab +ab +ab +ab +ab +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +"} +(109,1,1) = {" +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +au +au +au +au +bs +bE +bE +bE +cq +cR +du +dW +he +el +fe +fw +fK +el +aa +ap +gJ +gJ +ap +ap +ap +aa +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ab +ab +ap +ap +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gB +gB +gB +gB +au +au +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ap +ab +ab +ab +ab +ab +ab +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +"} +(110,1,1) = {" +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ac +gB +au +gB +bs +bB +bQ +bE +cr +cS +ds +ct +eq +eG +eG +eG +eG +eG +aa +aa +ap +ap +ap +ap +aa +aa +ap +ap +ap +ap +ap +aa +ap +ap +ap +ap +ap +ap +ap +ap +ab +ab +ap +ap +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gB +gB +gB +gB +gB +au +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ap +ab +ab +ab +ab +ab +ab +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +"} +(111,1,1) = {" +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ar +gB +au +gB +bs +bC +bF +bR +cs +cT +dv +ct +er +eG +ff +fx +fL +eG +aa +aa +ap +aa +ap +ap +ap +aa +aa +ap +ap +ap +ap +aa +aa +aa +ap +ap +ap +ap +ap +ab +ab +ab +ap +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gB +gB +gB +gB +gB +gB +au +ht +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ap +ap +ab +ab +ab +ab +ab +ab +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +"} +(112,1,1) = {" +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ac +gB +au +gB +bu +bG +bO +bE +ct +ct +dw +dV +et +eK +fg +fy +fM +eG +aa +aa +ap +aa +aa +ap +ap +ap +ap +ap +ap +ap +ap +ap +aa +aa +aa +ap +ap +ap +ap +ab +ap +ap +ap +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gB +gB +gB +gB +gB +gB +gB +gu +ht +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ap +ap +ap +ab +ab +ab +ab +ab +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +"} +(113,1,1) = {" +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ac +gB +au +gB +bs +bs +bs +bs +cu +cU +dx +dU +eu +eG +fh +eG +fN +eG +aa +aa +ap +aa +aa +aa +ap +ap +ap +ap +ap +ap +ap +ap +aa +aa +aa +ap +ap +ap +ap +ab +ap +ap +ap +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gB +gB +gB +gB +gB +gB +gB +gB +gu +ht +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ap +gY +ap +ab +ab +ab +ab +ab +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +"} +(114,1,1) = {" +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +au +au +au +au +au +au +au +cc +cv +cV +dy +cV +cv +eG +eG +eG +eG +eG +aa +ap +ap +ap +aa +ap +ap +ap +ap +ap +ap +ab +ap +ap +aa +aa +aa +ap +ap +ap +ap +ap +ap +ap +ap +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gu +gu +gu +gu +gu +gu +ha +gu +gu +gu +gB +gB +gB +gB +gB +gB +gB +gB +gB +gu +gu +gu +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +ab +ab +ab +ab +ab +ab +ab +ap +ap +ap +ab +ab +ab +ab +ab +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +"} +(115,1,1) = {" +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +as +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ac +gB +au +gB +gB +gB +gB +cc +cw +cW +dz +dZ +cv +aa +aa +aa +aa +aa +aa +ap +ap +aa +aa +ap +ap +ap +ap +ap +ap +ab +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ab +ab +ab +gu +gu +gu +gu +gu +gu +gu +gu +gu +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gu +gu +gu +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +"} +(116,1,1) = {" +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ac +gB +au +gB +gB +au +gB +cc +cx +cX +dA +ea +cv +aa +aa +ab +ab +ab +ab +ab +ap +ap +aa +ap +ap +ap +ap +ab +ab +ab +ab +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ap +ab +ab +ab +gu +gu +gu +gu +gu +gu +gu +gu +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gu +gu +gu +gu +ab +ab +ab +ab +ab +ap +ap +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +"} +(117,1,1) = {" +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ac +gB +au +gB +gB +au +gB +cc +cy +cY +dB +eb +cv +aa +aa +ab +ab +ab +ab +ap +ap +aa +aa +ap +ap +ap +ap +ab +ab +ab +ab +ap +ap +ap +ap +ap +ap +ap +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ap +ab +ab +ab +gu +gu +gu +gu +gu +gu +gu +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gu +gu +gu +gu +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +"} +(118,1,1) = {" +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ac +gB +au +gB +gB +au +au +cc +cc +cc +cc +cc +cc +aa +ab +ab +ab +ab +ab +ap +ap +ap +ap +ap +ap +ab +ab +ab +ab +ab +ab +ap +ap +ap +ap +ap +ap +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ap +ab +ab +ab +gu +gu +gu +gu +gu +gu +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gu +gu +gu +gu +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +"} +(119,1,1) = {" +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +au +au +au +gB +au +au +au +au +au +ap +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ap +ap +ap +ap +ap +ab +ab +ab +ab +ab +ab +ap +ap +ap +ap +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ap +ab +ab +ab +gu +gu +gu +gu +gu +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gu +gu +gu +gu +ht +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +"} +(120,1,1) = {" +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ac +gB +au +gB +gB +au +gB +gB +gB +ap +ab +ab +ab +ab +ab +ab +ab +ab +ap +ap +ap +ap +ap +ap +ap +ab +ab +ab +ab +ab +ab +ab +ap +ap +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ap +ab +ab +ab +gu +gu +gu +gu +gu +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gu +gu +gu +gu +gu +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +"} +(121,1,1) = {" +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ac +gB +au +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ap +ap +ap +ap +ap +ap +ab +ab +ab +ab +ab +ab +ab +ap +ap +ap +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ap +ab +ab +ab +gu +gu +gu +gu +au +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gu +gu +gu +gu +gu +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +"} +(122,1,1) = {" +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ar +gB +au +gB +gB +au +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ap +aq +ap +ap +ab +ab +ab +ab +ab +ab +ab +ab +ap +ap +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ap +ab +ab +ab +gu +gu +gu +au +au +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gu +gu +gu +gu +gu +ap +ab +ab +ab +ab +ab +ab +ab +ab +ab +ap +ap +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +"} +(123,1,1) = {" +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +aX +gB +au +gB +gB +au +gB +gB +gB +aa +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ap +ap +ap +ap +ab +ab +ab +ab +ab +ab +ab +ab +ap +aq +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ap +ab +ab +ab +gu +gu +gu +au +au +au +au +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gu +gu +gu +gu +gu +ap +ap +ab +ab +ab +ab +ab +ab +ap +ap +ap +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +"} +(124,1,1) = {" +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +aX +au +au +au +au +au +au +au +au +aa +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ap +ap +ap +ab +ab +ab +ab +ab +ab +ab +ab +ap +ap +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ap +ab +ab +ab +gu +gu +gB +gB +au +au +gu +gu +gu +gu +gB +gB +gB +gB +gB +gB +gu +gu +gu +gu +gu +ap +ab +ap +ap +ab +ab +ab +ab +ab +ap +ap +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +"} +(125,1,1) = {" +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +au +gB +au +gB +gB +gB +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +ab +ab +ap +ap +ap +ap +ab +ab +ab +ab +ab +ab +ab +ap +ap +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ap +ab +ab +ab +gu +gu +gB +gB +au +gu +gu +gu +gu +gu +gu +gu +gB +gB +gB +gB +gu +gu +gu +gu +gu +ap +ab +ab +ap +ap +ab +ab +ab +ap +ap +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +"} +(126,1,1) = {" +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +aa +aa +ap +ap +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ap +ap +ab +ab +ab +ab +ab +ab +ap +ap +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ap +ab +ab +ab +gu +gB +gB +gB +gB +gu +gu +ht +ht +ht +ht +gu +gu +gB +gB +gB +gu +gu +gu +gu +gu +ap +ab +ab +ab +ap +ap +ab +ap +ap +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +"} +(127,1,1) = {" +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +aa +aa +aa +aa +aa +ap +aa +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ap +ab +ab +ab +gu +gB +gB +gB +gB +gu +ht +ht +ht +ht +ht +ht +gu +gB +gB +gB +gu +gu +gu +ap +ap +ab +ab +ab +ab +ab +ap +ap +ap +ap +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +"} +(128,1,1) = {" +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +aa +aa +aa +aa +ap +ap +aa +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +gB +gB +gB +gB +gu +gu +ht +ht +ht +ht +ht +ht +gu +gB +gB +gB +gu +gu +gu +ap +ap +ab +ab +ab +ab +ab +ap +ap +ap +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +"} +(129,1,1) = {" +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +aa +ap +ap +aa +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gu +gu +gu +ht +ht +ht +ht +gu +gu +gB +gB +gB +gu +gu +ap +ap +ap +ab +ab +ab +ab +ab +ab +ap +ap +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +"} +(130,1,1) = {" +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gu +gu +gu +gu +gu +gu +gu +gu +au +gB +gB +gu +gu +ap +ab +ab +ab +ab +ab +ab +ab +ap +ap +ap +ap +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +"} +(131,1,1) = {" +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gu +gu +gu +gu +gu +au +au +gB +gB +gu +gu +ap +ab +ab +ab +ab +ab +ap +ap +ap +ab +ap +ap +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +"} +(132,1,1) = {" +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +au +au +au +au +au +ap +ap +ab +ab +ab +ab +ab +ab +ap +ap +ab +ab +ab +ap +ap +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +"} +(133,1,1) = {" +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +au +au +ap +ab +ab +ab +ab +ab +ab +ab +aq +ab +ab +ab +ap +ap +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +"} +(134,1,1) = {" +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +au +ap +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ap +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +"} +(135,1,1) = {" +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ap +ap +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +"} +(136,1,1) = {" +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ap +ap +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +"} +(137,1,1) = {" +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ap +ap +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +"} +(138,1,1) = {" +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ap +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +"} +(139,1,1) = {" +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ap +ap +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +"} +(140,1,1) = {" +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ap +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +"} +(141,1,1) = {" +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ap +ap +ap +ap +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +"} +(142,1,1) = {" +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ap +aq +ap +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +"} +(143,1,1) = {" +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ap +ap +ap +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +"} +(144,1,1) = {" +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +"} +(145,1,1) = {" +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +"} +(146,1,1) = {" +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +"} +(147,1,1) = {" +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +"} +(148,1,1) = {" +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gu +gu +ab +ab +ab +ab +ab +ab +ab +ab +gu +ab +ab +ab +ab +ab +ab +gu +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +"} +(149,1,1) = {" +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gu +gu +gu +gu +gu +ab +ab +ab +ab +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +"} +(150,1,1) = {" +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +"} +(151,1,1) = {" +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +gB +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +gB +gB +gB +gB +gB +gB +gB +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +ha +gu +gu +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +"} +(152,1,1) = {" +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +"} +(153,1,1) = {" +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +gB +gB +gB +gB +gB +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gx +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +"} +(154,1,1) = {" +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +gB +gB +gB +gB +gB +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +"} +(155,1,1) = {" +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +gB +gB +gB +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +"} +(156,1,1) = {" +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +gB +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +"} +(157,1,1) = {" +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +"} +(158,1,1) = {" +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +"} +(159,1,1) = {" +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +"} +(160,1,1) = {" +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gA +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +"} +(161,1,1) = {" +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +"} +(162,1,1) = {" +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +"} +(163,1,1) = {" +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +"} +(164,1,1) = {" +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +"} +(165,1,1) = {" +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +"} +(166,1,1) = {" +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gu +ab +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +"} +(167,1,1) = {" +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +"} +(168,1,1) = {" +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +"} +(169,1,1) = {" +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gq +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +"} +(170,1,1) = {" +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +ab +ab +ab +ab +gu +gu +gu +gu +gu +gu +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +"} +(171,1,1) = {" +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +gu +ab +ab +ab +ab +ab +ab +ab +ab +gu +gu +gu +gu +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +"} +(172,1,1) = {" +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +gu +gu +gu +gu +gu +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gu +gu +gu +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +"} +(173,1,1) = {" +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gu +gu +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +"} +(174,1,1) = {" +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gu +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +"} +(175,1,1) = {" +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gu +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +"} +(176,1,1) = {" +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gu +gu +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +"} +(177,1,1) = {" +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gu +gu +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +"} +(178,1,1) = {" +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gu +gu +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +"} +(179,1,1) = {" +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gu +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +"} +(180,1,1) = {" +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gu +gu +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +"} +(181,1,1) = {" +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gu +gu +gu +gu +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +"} +(182,1,1) = {" +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gu +ha +gu +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +"} +(183,1,1) = {" +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gu +gu +gu +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +"} +(184,1,1) = {" +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +"} +(185,1,1) = {" +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +"} +(186,1,1) = {" +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +"} +(187,1,1) = {" +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +"} +(188,1,1) = {" +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +"} +(189,1,1) = {" +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +"} +(190,1,1) = {" +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +"} +(191,1,1) = {" +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +"} +(192,1,1) = {" +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +"} +(193,1,1) = {" +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +"} +(194,1,1) = {" +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +"} +(195,1,1) = {" +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +"} +(196,1,1) = {" +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +ab +ab +ab +ab +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +"} +(197,1,1) = {" +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +"} +(198,1,1) = {" +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +"} +(199,1,1) = {" +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +"} +(200,1,1) = {" +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +gB +"} diff --git a/maps/away/mining/mining.dm b/maps/away/mining/mining.dm index d6fe12cfc0374..7b81009331bc0 100644 --- a/maps/away/mining/mining.dm +++ b/maps/away/mining/mining.dm @@ -1,4 +1,5 @@ #include "mining_areas.dm" +#include "mining_corporate.dm" //MINING-1 // CLUSTER /obj/effect/overmap/visitable/sector/cluster diff --git a/maps/away/mining/mining_corporate.dm b/maps/away/mining/mining_corporate.dm new file mode 100644 index 0000000000000..94aeccb73f539 --- /dev/null +++ b/maps/away/mining/mining_corporate.dm @@ -0,0 +1,199 @@ +/obj/effect/overmap/visitable/sector/corporate + name = "Mining - NanoTrasen outpost" + desc = "Sensors capture corporate signal: For authorized NanoTrasen personnel only." + icon_state = "sector" + initial_restricted_waypoints = list( + "Guppy" = list("nav_corporate_8", "nav_corporate_hiden"), + "Data Capsule" = list("nav_corporate_hiden") + ) + initial_generic_waypoints = list( + "nav_corporate_1", + "nav_corporate_2", + "nav_corporate_3", + "nav_corporate_4", + "nav_corporate_5", + "nav_corporate_6", + "nav_corporate_7", + "nav_corporate_9" + ) + +/obj/effect/overmap/visitable/sector/corporate/generate_skybox() + var/image/res = overlay_image('icons/skybox/rockbox.dmi', "rockbox", COLOR_ASTEROID_ROCK, RESET_COLOR) + res.blend_mode = BLEND_OVERLAY + return res + +/obj/effect/overmap/visitable/sector/corporate/get_skybox_representation() + var/image/res = overlay_image('icons/skybox/rockbox.dmi', "rockbox", COLOR_ASTEROID_ROCK, RESET_COLOR) + res.blend_mode = BLEND_OVERLAY + res.SetTransform(scale = 0.5) + return res + +/datum/map_template/ruin/away_site/mining_corporate + name = "Mining - Corporate" + id = "awaysite_mining_corporate" + description = "A medium-sized asteroid full of minerals. Old mining facility detected at one of sides, owner - NanoTrasen." + suffixes = list("mining/mining-corporate.dmm") + spawn_cost = 1 + accessibility_weight = 10 + generate_mining_by_z = 1 + area_usage_test_exempted_root_areas = list(/area/mine, /area/outpost) + area_usage_test_exempted_areas = list(/area/djstation, /area/shuttle/abadoned_data_capsule) + apc_test_exempt_areas = list( + /area/mine/explored = NO_SCRUBBER|NO_VENT|NO_APC, + /area/mine/unexplored = NO_SCRUBBER|NO_VENT|NO_APC, + /area/outpost/mining/solar = NO_SCRUBBER|NO_VENT|NO_APC, + /area/outpost/mining/maints = NO_SCRUBBER|NO_VENT, + /area/outpost/mining/atmos = NO_SCRUBBER|NO_VENT, + /area/outpost/mining/relay = NO_SCRUBBER|NO_VENT, + /area/shuttle/abadoned_data_capsule = NO_SCRUBBER|NO_VENT + ) + area_coherency_test_exempt_areas = list(/area/mine/explored, /area/mine/unexplored) + + shuttles_to_initialise = list(/datum/shuttle/autodock/overmap/data_capsule) + +/obj/effect/shuttle_landmark/corporate/nav1 + name = "Asteroid Navpoint #1" + landmark_tag = "nav_corporate_1" + +/obj/effect/shuttle_landmark/corporate/nav2 + name = "Asteroid Navpoint #2" + landmark_tag = "nav_corporate_2" + +/obj/effect/shuttle_landmark/corporate/nav4 + name = "Asteroid Navpoint #3" + landmark_tag = "nav_corporate_3" + +/obj/effect/shuttle_landmark/corporate/nav6 + name = "Asteroid Navpoint #4" + landmark_tag = "nav_corporate_4" + +/obj/effect/shuttle_landmark/corporate/nav5 + name = "Asteroid Landing zone #1" + landmark_tag = "nav_corporate_5" + base_area = /area/mine/explored + base_turf = /turf/simulated/floor/asteroid + +/obj/effect/shuttle_landmark/corporate/nav7 + name = "Asteroid Landing zone #2" + landmark_tag = "nav_corporate_6" + base_area = /area/mine/explored + base_turf = /turf/simulated/floor/asteroid + +/obj/effect/shuttle_landmark/corporate/nav8 + name = "Asteroid Mining Outpost Hangar" + landmark_tag = "nav_corporate_7" + base_area = /area/outpost/mining/hangar + base_turf = /turf/simulated/floor/plating + +/obj/effect/shuttle_landmark/corporate/nav9 + name = "Asteroid Mining Outpost" + landmark_tag = "nav_corporate_8" + +/obj/effect/shuttle_landmark/corporate/nav3 + name = "Mining Asteroid Center" + landmark_tag = "nav_corporate_antag" + +// PREPAINTED WALLS + +/turf/simulated/wall/prepainted/mining_corporate/paint_color = COLOR_WALL_GUNMETAL + +// DATA CAPSULE SHUTTLE + +/obj/effect/shuttle_landmark/corporate/nav_hiden + name = "Mining Asteroid ???" + landmark_tag = "nav_corporate_hiden" + base_area = /area/mine/unexplored + base_turf = /turf/simulated/floor/asteroid + +/area/shuttle/abadoned_data_capsule + name = "Data Capsule" + icon_state = "shuttlegrn" + requires_power = TRUE + dynamic_lighting = TRUE + area_flags = AREA_FLAG_RAD_SHIELDED | AREA_FLAG_ION_SHIELDED + +/datum/shuttle/autodock/overmap/data_capsule + name = "Data Capsule" + move_time = 30 + shuttle_area = list(/area/shuttle/abadoned_data_capsule) + current_location = "nav_corporate_hiden" + landmark_transition = "nav_transit_blueriver" + + sound_takeoff = 'sound/effects/rocket.ogg' + sound_landing = 'sound/effects/rocket_backwards.ogg' + + range = 1 + fuel_consumption = 2 + warmup_time = 5 + defer_initialisation = TRUE + skill_needed = SKILL_BASIC + + ceiling_type = /turf/simulated/floor/shuttle_ceiling + +/obj/machinery/computer/shuttle_control/explore/data_capsule + name = "data capsule control console" + shuttle_tag = "Data Capsule" + +/obj/effect/overmap/visitable/ship/landable/data_capsule + name = "Data Capsule" + shuttle = "Data Capsule" + max_speed = 1/(10 SECONDS) + burn_delay = 2 SECONDS + vessel_mass = 250 + fore_dir = SOUTH + vessel_size = SHIP_SIZE_TINY + skill_needed = SKILL_BASIC + +// AREAS + +/area/outpost/mining + name = "Mining Outpost Equipment" + icon_state = "outpost_mine_main" + area_flags = AREA_FLAG_IS_NOT_PERSISTENT + sound_env = STANDARD_STATION + base_turf = /turf/simulated/floor/asteroid + req_access = list(list(access_mining, access_xenoarch)) + +/area/outpost/mining/hangar + name = "Mining Outpost Hangar" + sound_env = LARGE_ENCLOSED + +/area/outpost/mining/recreation + name = "Mining Outpost Recreation Section" + +/area/outpost/mining/kitchen + name = "Mining Outpost Kitchen" + +/area/outpost/mining/toilet + name = "Mining Outpost Restroom" + sound_env = SMALL_ENCLOSED + +/area/outpost/mining/power + name = "Mining Outpost Solar Control" + +/area/outpost/mining/atmos + name = "Mining Outpost Atmospheric" + +/area/outpost/mining/voidsuits + name = "Mining Outpost Voidsuits" + +/area/outpost/mining/cenral + name = "Mining Outpost Central" + +/area/outpost/mining/maints + name = "Mining Outpost Maintenance" + +/area/outpost/mining/medical + name = "Mining Outpost Medical Comparement" + +/area/outpost/mining/relay + name = "Mining Outpost Communication Relay" + +/area/outpost/mining/solar + name = "Mining Outpost Solar Array" + area_flags = AREA_FLAG_EXTERNAL + requires_power = TRUE + always_unpowered = TRUE + has_gravity = FALSE + base_turf = /turf/space + turf_initializer = null From 6aab8d8ed551d0302817663d85478624354aa9c8 Mon Sep 17 00:00:00 2001 From: Sierra Helper <125094432+SierraHelper@users.noreply.github.com> Date: Fri, 22 Sep 2023 10:55:49 +0300 Subject: [PATCH 140/158] =?UTF-8?q?=D0=A7=D0=B5=D0=B9=D0=BD=D0=B4=D0=B6?= =?UTF-8?q?=D0=BB=D0=BE=D0=B3=20=D0=B4=D0=BB=D1=8F=20PR=20#1060=20[ci=20sk?= =?UTF-8?q?ip]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- html/changelogs/AutoChangeLog-sierra-pr-1060.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-sierra-pr-1060.yml diff --git a/html/changelogs/AutoChangeLog-sierra-pr-1060.yml b/html/changelogs/AutoChangeLog-sierra-pr-1060.yml new file mode 100644 index 0000000000000..e4899e4d3015f --- /dev/null +++ b/html/changelogs/AutoChangeLog-sierra-pr-1060.yml @@ -0,0 +1,4 @@ +author: LordNest +delete-after: true +changes: + - maptweak: Added another away map with a crashed shuttle on it From 4a5bc992312a412e234d9a89e4733cfa5bb1aa77 Mon Sep 17 00:00:00 2001 From: SuhEugene <32931701+SuhEugene@users.noreply.github.com> Date: Fri, 22 Sep 2023 17:35:58 +0300 Subject: [PATCH 141/158] [MIRROR] Fix multitile doors opacity --- code/game/machinery/doors/door.dm | 90 ++++++++++++++++++++----- code/game/machinery/doors/multi_tile.dm | 69 ++++++++++++++----- 2 files changed, 127 insertions(+), 32 deletions(-) diff --git a/code/game/machinery/doors/door.dm b/code/game/machinery/doors/door.dm index 80d1a019f7430..36e411a4c70bd 100644 --- a/code/game/machinery/doors/door.dm +++ b/code/game/machinery/doors/door.dm @@ -50,6 +50,8 @@ /// Integer. Width of the door in tiles. var/width = 1 + /// List. Player view blocking fillers for multi-tile doors. + var/list/fillers // Integer. Used for intercepting clicks on our turf. Set 0 to disable click interception. Passed directly to `/datum/extension/turf_hand`. var/turf_hand_priority = 3 @@ -67,14 +69,7 @@ else layer = open_layer - - if(width > 1) - if(dir in list(EAST, WEST)) - bound_width = width * world.icon_size - bound_height = world.icon_size - else - bound_width = world.icon_size - bound_height = width * world.icon_size + update_bounds() if (turf_hand_priority) set_extension(src, /datum/extension/turf_hand, turf_hand_priority) @@ -367,13 +362,19 @@ do_animate("opening") icon_state = "door0" set_opacity(0) + if(width > 1) + set_fillers_opacity(0) sleep(3) src.set_density(0) + if(width > 1) + set_fillers_density(0) update_nearby_tiles() sleep(7) src.layer = open_layer update_icon() set_opacity(0) + if(width > 1) + set_fillers_opacity(0) operating = DOOR_OPERATING_NO if(autoclose) @@ -393,6 +394,8 @@ close_door_at = 0 do_animate("closing") src.set_density(1) + if(width > 1) + set_fillers_density(1) sleep(3) src.layer = closed_layer update_nearby_tiles() @@ -400,6 +403,8 @@ update_icon() if (visible && !glass) set_opacity(1) //caaaaarn! + if(width > 1) + set_fillers_opacity(1) operating = DOOR_OPERATING_NO //I shall not add a check every x ticks if a door has closed over some fire. @@ -438,15 +443,9 @@ /obj/machinery/door/Move(new_loc, new_dir) update_nearby_tiles() + update_bounds() . = ..() - if(width > 1) - if(dir in list(EAST, WEST)) - bound_width = width * world.icon_size - bound_height = world.icon_size - else - bound_width = world.icon_size - bound_height = width * world.icon_size if(.) deconstruct(null, TRUE) @@ -534,6 +533,67 @@ if (heat_proof) . += 4000 +/** + * Checks which way the airlock is facing and adjusts the direction accordingly. + * For use with multi-tile airlocks. + */ +/obj/machinery/door/proc/get_adjusted_dir(dir) + if(dir in list(NORTH, SOUTH)) + return EAST + else + return NORTH + +/** + * Sets the bounds of the airlock. For use with multi-tile airlocks. + * If the airlock is multi-tile, it will set the bounds to be the size of the airlock. + * If the airlock doesn't already have fillers, it will create them. + * If the airlock already has fillers, it will move them to the correct location. + */ +/obj/machinery/door/proc/update_bounds() + if(width <= 1) + return + + if(dir in list(NORTH, SOUTH)) + bound_width = width * world.icon_size + bound_height = world.icon_size + else + bound_width = world.icon_size + bound_height = width * world.icon_size + + LAZYINITLIST(fillers) + + var/adjusted_dir = get_adjusted_dir(dir) + var/obj/last_filler = src + for (var/i = 1, i < width, i++) + var/obj/airlock_filler_object/filler + + if (length(fillers) < i) + filler = new + filler.pair_airlock(src) + fillers.Add(filler) + else + filler = fillers[i] + + filler.loc = get_step(last_filler, adjusted_dir) + filler.density = density + filler.set_opacity(opacity) + + last_filler = filler + +/obj/machinery/door/proc/set_fillers_density(density) + if (!length(fillers)) + return + + for (var/obj/airlock_filler_object/filler as anything in fillers) + filler.density = density + +/obj/machinery/door/proc/set_fillers_opacity(opacity) + if (!length(fillers)) + return + + for (var/obj/airlock_filler_object/filler as anything in fillers) + filler.set_opacity(opacity) + // Public access /singleton/public_access/public_method/open_door diff --git a/code/game/machinery/doors/multi_tile.dm b/code/game/machinery/doors/multi_tile.dm index 53bb593fedb0c..ed28f2b655b4f 100644 --- a/code/game/machinery/doors/multi_tile.dm +++ b/code/game/machinery/doors/multi_tile.dm @@ -20,23 +20,6 @@ opacity = 1 assembly_type = /obj/structure/door_assembly/multi_tile -/obj/machinery/door/airlock/multi_tile/New() - ..() - SetBounds() - -/obj/machinery/door/airlock/multi_tile/Move() - . = ..() - SetBounds() - -/obj/machinery/door/airlock/multi_tile/proc/SetBounds() - if(dir in list(NORTH, SOUTH)) - bound_width = width * world.icon_size - bound_height = world.icon_size - else - bound_width = world.icon_size - bound_height = width * world.icon_size - - /obj/machinery/door/airlock/multi_tile/on_update_icon(state=0) ..() if(connections in list(NORTH, SOUTH, NORTH|SOUTH)) @@ -81,6 +64,57 @@ dirs |= direction connections = dirs + +/obj/airlock_filler_object + name = "airlock fluff" + desc = "You shouldn't be able to see this fluff!" + icon = null + icon_state = null + density = TRUE + opacity = TRUE + anchored = TRUE + invisibility = INVISIBILITY_MAXIMUM + atmos_canpass = CANPASS_DENSITY + /// The door/airlock this fluff panel is attached to + var/obj/machinery/door/filled_airlock + +/obj/airlock_filler_object/Bumped(atom/A) + if(isnull(filled_airlock)) + crash_with("Someone bumped into an airlock filler with no parent airlock specified!") + return filled_airlock.Bumped(A) + +/obj/airlock_filler_object/Destroy() + filled_airlock = null + return ..() + +/// Multi-tile airlocks pair with a filler panel, if one goes so does the other. +/obj/airlock_filler_object/proc/pair_airlock(obj/machinery/door/parent_airlock) + if(isnull(parent_airlock)) + crash_with("Attempted to pair an airlock filler with no parent airlock specified!") + + filled_airlock = parent_airlock + GLOB.destroyed_event.register(filled_airlock, src, .proc/no_airlock) + +/obj/airlock_filler_object/proc/no_airlock() + GLOB.destroyed_event.unregister(filled_airlock, src) + qdel_self() + +/// Multi-tile airlocks (using a filler panel) have special handling for movables with PASS_FLAG_GLASS +/obj/airlock_filler_object/CanPass(atom/movable/mover, turf/target) + . = ..() + if(.) + return + + if(istype(mover) && mover.checkpass(PASS_FLAG_GLASS)) + return !opacity + +/obj/airlock_filler_object/singularity_act() + return + +/obj/airlock_filler_object/singularity_pull(S, current_size) + return + + /obj/machinery/door/airlock/multi_tile/command door_color = COLOR_COMMAND_BLUE @@ -134,6 +168,7 @@ name = "Glass Airlock" damage_hitsound = 'sound/effects/Glasshit.ogg' glass = TRUE + opacity = 0 /obj/machinery/door/airlock/multi_tile/glass/command door_color = COLOR_COMMAND_BLUE From 8ff228785de0cd9ddc53cad731d4cb94fec2201c Mon Sep 17 00:00:00 2001 From: Sierra Helper <125094432+SierraHelper@users.noreply.github.com> Date: Fri, 22 Sep 2023 17:53:01 +0300 Subject: [PATCH 142/158] =?UTF-8?q?=D0=A7=D0=B5=D0=B9=D0=BD=D0=B4=D0=B6?= =?UTF-8?q?=D0=BB=D0=BE=D0=B3=20=D0=B4=D0=BB=D1=8F=20PR=20#1061=20[ci=20sk?= =?UTF-8?q?ip]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- html/changelogs/AutoChangeLog-sierra-pr-1061.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-sierra-pr-1061.yml diff --git a/html/changelogs/AutoChangeLog-sierra-pr-1061.yml b/html/changelogs/AutoChangeLog-sierra-pr-1061.yml new file mode 100644 index 0000000000000..ecfecd8ff90bc --- /dev/null +++ b/html/changelogs/AutoChangeLog-sierra-pr-1061.yml @@ -0,0 +1,4 @@ +author: SuhEugene +delete-after: true +changes: + - bugfix: Fixed multitile doors opacity. From c58def90b053378a61236b569cc68aaf57ef76c3 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 22 Sep 2023 17:55:21 +0000 Subject: [PATCH 143/158] Bump actions/checkout from 4.0.0 to 4.1.0 Bumps [actions/checkout](https://github.com/actions/checkout) from 4.0.0 to 4.1.0. - [Release notes](https://github.com/actions/checkout/releases) - [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md) - [Commits](https://github.com/actions/checkout/compare/3df4ab11eba7bda6032a0b82a6bb43b11571feac...8ade135a41bc03ea155e62e844d188df1ea18608) --- updated-dependencies: - dependency-name: actions/checkout dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- .github/workflows/changelog_generation.yml | 2 +- .github/workflows/codeql-analysis.yml | 2 +- .github/workflows/generate_documentation.yml | 4 ++-- .github/workflows/make_changelogs.yml | 2 +- .github/workflows/test.yml | 12 ++++++------ 5 files changed, 11 insertions(+), 11 deletions(-) diff --git a/.github/workflows/changelog_generation.yml b/.github/workflows/changelog_generation.yml index 543202245befc..dde965777d541 100644 --- a/.github/workflows/changelog_generation.yml +++ b/.github/workflows/changelog_generation.yml @@ -16,7 +16,7 @@ jobs: if: github.repository == 'SierraBay/SierraBay12' # to prevent this running on forks steps: - name: Checkout - uses: actions/checkout@3df4ab11eba7bda6032a0b82a6bb43b11571feac + uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 with: fetch-depth: 0 # Otherwise, we will fail to push refs ref: dev-sierra diff --git a/.github/workflows/codeql-analysis.yml b/.github/workflows/codeql-analysis.yml index 6bf94dca867f0..eb04dcf6ebad7 100644 --- a/.github/workflows/codeql-analysis.yml +++ b/.github/workflows/codeql-analysis.yml @@ -39,7 +39,7 @@ jobs: steps: - name: Checkout repository - uses: actions/checkout@3df4ab11eba7bda6032a0b82a6bb43b11571feac + uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # Initializes the CodeQL tools for scanning. - name: Initialize CodeQL diff --git a/.github/workflows/generate_documentation.yml b/.github/workflows/generate_documentation.yml index 5304115f1bfb2..a378f67ea165e 100644 --- a/.github/workflows/generate_documentation.yml +++ b/.github/workflows/generate_documentation.yml @@ -17,7 +17,7 @@ jobs: runs-on: ubuntu-latest steps: - name: checkout - uses: actions/checkout@3df4ab11eba7bda6032a0b82a6bb43b11571feac + uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 - name: paths-filter uses: dorny/paths-filter@4512585405083f25c027a35db413c2b3b9006d50 id: filter @@ -37,7 +37,7 @@ jobs: group: ${{ github.workflow }}-${{ github.ref }} cancel-in-progress: true steps: - - uses: actions/checkout@3df4ab11eba7bda6032a0b82a6bb43b11571feac + - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 - name: Setup Cache uses: actions/cache@704facf57e6136b1bc63b828d79edcd491f0ee84 with: diff --git a/.github/workflows/make_changelogs.yml b/.github/workflows/make_changelogs.yml index 24f741313aba8..48df19dacffad 100644 --- a/.github/workflows/make_changelogs.yml +++ b/.github/workflows/make_changelogs.yml @@ -16,7 +16,7 @@ jobs: if: github.repository == 'SierraBay/SierraBay12' # to prevent this running on forks steps: - name: Checkout - uses: actions/checkout@3df4ab11eba7bda6032a0b82a6bb43b11571feac + uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 with: fetch-depth: 25 - name: Python setup diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 89f79e02b99f1..5a2c93c0b3387 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -17,7 +17,7 @@ jobs: runs-on: ubuntu-latest steps: - name: checkout - uses: actions/checkout@3df4ab11eba7bda6032a0b82a6bb43b11571feac + uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 - name: paths-filter uses: dorny/paths-filter@4512585405083f25c027a35db413c2b3b9006d50 id: filter @@ -30,7 +30,7 @@ jobs: needs: PreFlight if: needs.PreFlight.outputs.dm == 'true' steps: - - uses: actions/checkout@3df4ab11eba7bda6032a0b82a6bb43b11571feac + - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 - name: Setup Cache uses: actions/cache@704facf57e6136b1bc63b828d79edcd491f0ee84 with: @@ -58,7 +58,7 @@ jobs: - DreamChecker if: needs.PreFlight.outputs.dm == 'true' steps: - - uses: actions/checkout@3df4ab11eba7bda6032a0b82a6bb43b11571feac + - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 - name: Setup Cache uses: actions/cache@704facf57e6136b1bc63b828d79edcd491f0ee84 with: @@ -88,7 +88,7 @@ jobs: - DreamChecker if: needs.PreFlight.outputs.dm == 'true' steps: - - uses: actions/checkout@3df4ab11eba7bda6032a0b82a6bb43b11571feac + - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 - name: Setup Cache uses: actions/cache@704facf57e6136b1bc63b828d79edcd491f0ee84 with: @@ -117,7 +117,7 @@ jobs: - DreamChecker if: needs.PreFlight.outputs.dm == 'true' steps: - - uses: actions/checkout@3df4ab11eba7bda6032a0b82a6bb43b11571feac + - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 - name: Setup Cache uses: actions/cache@704facf57e6136b1bc63b828d79edcd491f0ee84 with: @@ -146,7 +146,7 @@ jobs: - DreamChecker if: needs.PreFlight.outputs.dm == 'true' steps: - - uses: actions/checkout@3df4ab11eba7bda6032a0b82a6bb43b11571feac + - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 - name: Setup Cache uses: actions/cache@704facf57e6136b1bc63b828d79edcd491f0ee84 with: From 165add0b0ab1674d20de36e79277a8247da3e584 Mon Sep 17 00:00:00 2001 From: Sierra Helper <125094432+SierraHelper@users.noreply.github.com> Date: Sat, 23 Sep 2023 01:14:31 +0000 Subject: [PATCH 144/158] =?UTF-8?q?=D0=90=D0=B2=D1=82=D0=BE=D0=BC=D0=B0?= =?UTF-8?q?=D1=82=D0=B8=D1=87=D0=B5=D1=81=D0=BA=D0=B0=D1=8F=20=D0=BA=D0=BE?= =?UTF-8?q?=D0=BC=D0=BF=D0=B8=D0=BB=D1=8F=D1=86=D0=B8=D1=8F=20=D1=87=D0=B5?= =?UTF-8?q?=D0=B9=D0=BD=D0=B4=D0=B6=D0=BB=D0=BE=D0=B3=D0=BE=D0=B2=20[ci=20?= =?UTF-8?q?skip]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- html/changelog.html | 16 ++++++++++++++++ html/changelogs/.all_changelog.yml | 14 ++++++++++++++ html/changelogs/AutoChangeLog-sierra-pr-1059.yml | 11 ----------- html/changelogs/AutoChangeLog-sierra-pr-1060.yml | 4 ---- html/changelogs/AutoChangeLog-sierra-pr-1061.yml | 4 ---- 5 files changed, 30 insertions(+), 19 deletions(-) delete mode 100644 html/changelogs/AutoChangeLog-sierra-pr-1059.yml delete mode 100644 html/changelogs/AutoChangeLog-sierra-pr-1060.yml delete mode 100644 html/changelogs/AutoChangeLog-sierra-pr-1061.yml diff --git a/html/changelog.html b/html/changelog.html index c09a6db00c364..28590417adbab 100644 --- a/html/changelog.html +++ b/html/changelog.html @@ -28,6 +28,22 @@

Sierra SS13

-->
+

23.09 - 2023

+

Обновления LordNest:

+
+
Added another away map with a crashed shuttle on it
+
+

Обновления SierraKomodo:

+
+
The threshhold for the cryo interface displaying a temperature n warning (orange) colors adjusted to 170, matching the effective temperature limit of cryoxadone and clonexadone.
+
Cryo tubes now have color-coded lights, indicating power status and temperature status. Blue = powered but turned off. Green = powered and safe. Yellow/orange = powered and above 170. Red = powered and above 237K (0C). No light = Unpowered.
+
Cryo tube lights are now emmissive.
+
+

Обновления SuhEugene:

+
+
Fixed multitile doors opacity.
+
+

22.09 - 2023

Обновления Jux:

diff --git a/html/changelogs/.all_changelog.yml b/html/changelogs/.all_changelog.yml index c3e4e07d094c1..72fef1ea3cef0 100644 --- a/html/changelogs/.all_changelog.yml +++ b/html/changelogs/.all_changelog.yml @@ -21870,3 +21870,17 @@ DO NOT EDIT THIS FILE BY HAND! AUTOMATICALLY GENERATED BY sierra_genchangelog.p - bugfix: Fixed cigarette wrapping paper icons, now becomes empty when out of wrapping paper. - bugfix: Rapid pipe deployer no longer creates a pipe as you put it into storage. +2023-09-23: + LordNest: + - maptweak: Added another away map with a crashed shuttle on it + SierraKomodo: + - tweak: The threshhold for the cryo interface displaying a temperature n warning + (orange) colors adjusted to 170, matching the effective temperature limit of + cryoxadone and clonexadone. + - imageadd: Cryo tubes now have color-coded lights, indicating power status and + temperature status. Blue = powered but turned off. Green = powered and safe. + Yellow/orange = powered and above 170. Red = powered and above 237K (0C). No + light = Unpowered. + - imageadd: Cryo tube lights are now emmissive. + SuhEugene: + - bugfix: Fixed multitile doors opacity. diff --git a/html/changelogs/AutoChangeLog-sierra-pr-1059.yml b/html/changelogs/AutoChangeLog-sierra-pr-1059.yml deleted file mode 100644 index 62b19295b15b2..0000000000000 --- a/html/changelogs/AutoChangeLog-sierra-pr-1059.yml +++ /dev/null @@ -1,11 +0,0 @@ -author: SierraKomodo -delete-after: true -changes: - - tweak: The threshhold for the cryo interface displaying a temperature n warning - (orange) colors adjusted to 170, matching the effective temperature limit of - cryoxadone and clonexadone. - - imageadd: Cryo tubes now have color-coded lights, indicating power status and - temperature status. Blue = powered but turned off. Green = powered and safe. - Yellow/orange = powered and above 170. Red = powered and above 237K (0C). No - light = Unpowered. - - imageadd: Cryo tube lights are now emmissive. diff --git a/html/changelogs/AutoChangeLog-sierra-pr-1060.yml b/html/changelogs/AutoChangeLog-sierra-pr-1060.yml deleted file mode 100644 index e4899e4d3015f..0000000000000 --- a/html/changelogs/AutoChangeLog-sierra-pr-1060.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: LordNest -delete-after: true -changes: - - maptweak: Added another away map with a crashed shuttle on it diff --git a/html/changelogs/AutoChangeLog-sierra-pr-1061.yml b/html/changelogs/AutoChangeLog-sierra-pr-1061.yml deleted file mode 100644 index ecfecd8ff90bc..0000000000000 --- a/html/changelogs/AutoChangeLog-sierra-pr-1061.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: SuhEugene -delete-after: true -changes: - - bugfix: Fixed multitile doors opacity. From 687ebfa319af848220ea34a573b78ce8c97ae5c3 Mon Sep 17 00:00:00 2001 From: SuhEugene <32931701+SuhEugene@users.noreply.github.com> Date: Sat, 23 Sep 2023 19:49:55 +0300 Subject: [PATCH 145/158] Add mod-creating scripts --- mods/CREATE_MOD.ps1 | 58 +++++++++++++++++++++++++++++++++++++++++ mods/CREATE_MOD.py | 63 +++++++++++++++++++++++++++++++++++++++++++++ mods/CREATE_MOD.sh | 62 ++++++++++++++++++++++++++++++++++++++++++++ mods/README.md | 20 ++++++++++++++ 4 files changed, 203 insertions(+) create mode 100644 mods/CREATE_MOD.ps1 create mode 100644 mods/CREATE_MOD.py create mode 100644 mods/CREATE_MOD.sh diff --git a/mods/CREATE_MOD.ps1 b/mods/CREATE_MOD.ps1 new file mode 100644 index 0000000000000..8add13e2aa775 --- /dev/null +++ b/mods/CREATE_MOD.ps1 @@ -0,0 +1,58 @@ +$COLOR_RESET = [char]27 + '[0m' +$COLOR_GREEN = [char]27 + '[32m' +$COLOR_BLUE = [char]27 + '[36m' + +$script_dir = Split-Path -Parent $MyInvocation.MyCommand.Path +$mod_name = "" +$mod_name_upper = "" +$mod_name_lower = "" + +while (-not $mod_name) { + Write-Host "${COLOR_GREEN}| ${COLOR_RESET}Название мода пишется заглавными буквами, а также с" + Write-Host "${COLOR_GREEN}| ${COLOR_RESET}использованием подчёркиваний вместо пробелов или тире." + Write-Host "${COLOR_GREEN}| ${COLOR_RESET}Пример: COOKIE_FACTORY" + $mod_name = Read-Host "${COLOR_BLUE}> ${COLOR_RESET}Введи название мода" + Write-Host + $mod_name = $mod_name -replace '\s|-', '_' + + $mod_name_upper = $mod_name.ToUpper() + $mod_name_lower = $mod_name.ToLower() + + Write-Host "${COLOR_GREEN}| ${COLOR_RESET}Выбранное название: ${mod_name_upper} / ${mod_name_lower}" + $confirmation = Read-Host "${COLOR_BLUE}> ${COLOR_RESET}Всё верно? (Y/n)" + Write-Host + if ($confirmation -and $confirmation.ToLower() -ne "y") { + $mod_name = "" + } +} + +if (-Not (Test-Path "$script_dir\_example" -PathType Container)) { + Write-Host "Папка mods\_example не найдена. Убедись что она существует и попробуй ещё раз." + Exit +} + +$modpack_dir = Join-Path -Path $script_dir -ChildPath $mod_name_lower +if (Test-Path "$modpack_dir" -PathType Container) { + Write-Host "Папка mods\$mod_name_lower уже существует." + Exit +} + +New-Item -ItemType Directory -Path "$modpack_dir" | Out-Null +Copy-Item -Path "$script_dir\_example\*" -Destination "$modpack_dir" + +# Rename files +Get-ChildItem "$modpack_dir" | ForEach-Object { + $newName = $_.Name -replace "_example", "_$mod_name_lower" + Rename-Item -Path $_.FullName -NewName $newName +} + +# Process and update content of all the files +Get-ChildItem "$modpack_dir\*.*" | ForEach-Object { + $content = Get-Content $_.FullName | ForEach-Object { + $_ -creplace "EXAMPLE", $mod_name_upper -creplace "example", $mod_name_lower + } + $content | Set-Content $_.FullName +} + +Write-Host "Готово! Файлы для мода $mod_name_upper созданы." +Write-Host "Находятся они в папке mods/$mod_name_lower." diff --git a/mods/CREATE_MOD.py b/mods/CREATE_MOD.py new file mode 100644 index 0000000000000..a2047e6ea6b20 --- /dev/null +++ b/mods/CREATE_MOD.py @@ -0,0 +1,63 @@ +import os + +COLOR_RESET = '\033[0m' +COLOR_GREEN = '\033[32m' +COLOR_BLUE = '\033[36m' + +script_dir = os.path.dirname(os.path.realpath(__file__)) +mod_name = "" +mod_name_upper = "" +mod_name_lower = "" + + +while not mod_name: + print(f"{COLOR_GREEN}| {COLOR_RESET}Название мода пишется заглавными буквами, а также с") + print(f"{COLOR_GREEN}| {COLOR_RESET}использованием подчёркиваний вместо пробелов или тире.") + print(f"{COLOR_GREEN}| {COLOR_RESET}Пример: COOKIE_FACTORY") + mod_name = input(f"{COLOR_BLUE}> {COLOR_RESET}Введи название мода: ") + print() + mod_name = mod_name.replace(' ', '_') + mod_name = mod_name.replace('-', '_') + + mod_name_upper = mod_name.upper() + mod_name_lower = mod_name.lower() + + print(f"{COLOR_GREEN}| {COLOR_RESET}Выбранное название: {mod_name_upper} / {mod_name_lower}") + confirmation = input(f"{COLOR_BLUE}> {COLOR_RESET}Всё верно? (Y/n) ").lower() + print() + if confirmation and confirmation != "y": + mod_name = "" + +if not os.path.exists(f"{script_dir}/_example"): + print("Папка mods/_example не найдена. Убедись что она существует и попробуй ещё раз.") + print() + input("Нажмите Enter для закрытия...") + exit() + +if os.path.exists(f"{script_dir}/{mod_name_lower}"): + print(f"Папка mods/{mod_name_lower} уже существует.") + print() + input("Нажмите Enter для закрытия...") + exit() + +os.mkdir(f"{script_dir}/{mod_name_lower}") + +for filename in os.listdir(f"{script_dir}/_example"): + source = f"{script_dir}/_example/{filename}" + destination = f"{script_dir}/{mod_name_lower}/{filename}" + if os.path.isdir(source): + continue + with open(source, 'r', encoding="utf8") as src_file, open(destination, 'w', encoding="utf8") as dest_file: + dest_file.write(src_file.read().replace("EXAMPLE", mod_name_upper).replace("example", mod_name_lower)) + + +# Rename files +for filename in os.listdir(f"{script_dir}/{mod_name_lower}"): + new_name = filename.replace("_example", f"_{mod_name_lower}") + os.rename(f"{script_dir}/{mod_name_lower}/{filename}", f"{script_dir}/{mod_name_lower}/{new_name}") + + +print(f"Готово! Файлы для мода {mod_name_upper} созданы.") +print(f"Находятся они в папке mods/{mod_name_lower}.") +print() +input("Нажмите Enter для закрытия...") diff --git a/mods/CREATE_MOD.sh b/mods/CREATE_MOD.sh new file mode 100644 index 0000000000000..1b20f822258b1 --- /dev/null +++ b/mods/CREATE_MOD.sh @@ -0,0 +1,62 @@ +#!/bin/bash + +COLOR_RESET='\033[0m' +COLOR_GREEN='\033[32m' +COLOR_BLUE='\033[36m' + +mod_name="" +mod_name_upper="" +mod_name_lower="" + +script_dir=$(dirname "$0") + +while [ -z "$mod_name" ]; do + echo -e "${COLOR_GREEN}| ${COLOR_RESET}Название мода пишется заглавными буквами, а также с" + echo -e "${COLOR_GREEN}| ${COLOR_RESET}использованием подчёркиваний вместо пробелов или тире." + echo -e "${COLOR_GREEN}| ${COLOR_RESET}Пример: COOKIE_FACTORY" + echo -en "${COLOR_BLUE}> ${COLOR_RESET}Введи название мода: " + read mod_name + echo + + mod_name=$(echo "$mod_name" | sed -E 's/\s|-/_/g') + + mod_name_upper=$(echo "$mod_name" | tr '[:lower:]' '[:upper:]') + mod_name_lower=$(echo "$mod_name" | tr '[:upper:]' '[:lower:]') + + echo -e "${COLOR_GREEN}| ${COLOR_RESET}Выбранное название: ${mod_name_upper} / ${mod_name_lower}" + echo -en "${COLOR_BLUE}> ${COLOR_RESET}Всё верно? (Y/n) " + read confirmation + echo + + confirmation=${confirmation:-y} + if [ "${confirmation,,}" != "y" ]; then + mod_name="" + fi +done + +if [ ! -d "$script_dir/_example" ]; then + echo "Папка mods/_example не найдена. Убедись что она существует и попробуй ещё раз." + exit 1 +fi + +if [ -d "$script_dir/$mod_name_lower" ]; then + echo "Папка mods/$mod_name_lower уже существует." + exit 1 +fi + +mkdir -p "$script_dir/$mod_name_lower" +cp "$script_dir/_example/"* "$script_dir/$mod_name_lower/" + +# Rename files +for file in "$script_dir/$mod_name_lower"/*example*; do + new_name=$(echo "$file" | sed -E "s/_example/_$mod_name_lower/") + mv "$file" "$new_name" +done + +# Process and update content of all the files +for file in "$script_dir/$mod_name_lower"/*; do + sed -i'' -e "s/EXAMPLE/$mod_name_upper/g" -e "s/example/$mod_name_lower/g" "$file" +done + +echo "Готово! Файлы для мода $mod_name_upper созданы." +echo "Находятся они в папке mods/$mod_name_lower." diff --git a/mods/README.md b/mods/README.md index 5a48d264f27d4..857a29a00994b 100644 --- a/mods/README.md +++ b/mods/README.md @@ -127,6 +127,26 @@ mods/hello_world ``` ### Быстрое создание основы мода +#### Автоматически + +**Для любой системы** с установленным Python 3 - запустить файл `mods/CREATE_MOD.py`. + +В **Windows** можно это сделать ещё двумя способами: +1. Открыть конмандную строку в папке SierraBay и прописать: + ```bat + powershell mods\CREATE_MOD.ps1 + ``` +2. Открыть PowerShell в папке SierraBay и прописать: + ```ps + .\mods\CREATE_MOD.ps1 + ``` + +Те, кто пользуется **Linux или WSL** могут использовать bash файл: +```bash +./mods/CREATE_MOD.sh +``` + +#### Вручную Чтобы реализовать основу мода достаточно выполнить три действия: - Создать папку `mods/hello_world/`. - Скопировать в папку `mods/hello_world/` все файлы из [`/mods/_example/`](/mods/_example/). From f1dbb98eeaf7df68c328347f0366239540be4286 Mon Sep 17 00:00:00 2001 From: AzzyIsNotHere <29222142+AzzyIsNotHere@users.noreply.github.com> Date: Sun, 24 Sep 2023 15:08:26 +0300 Subject: [PATCH 146/158] [MIRROR] Make Medical OSHA-compliant --- maps/torch/torch5_deck1.dmm | 3 +++ 1 file changed, 3 insertions(+) diff --git a/maps/torch/torch5_deck1.dmm b/maps/torch/torch5_deck1.dmm index 6d53de302444a..8441f253cf1b7 100644 --- a/maps/torch/torch5_deck1.dmm +++ b/maps/torch/torch5_deck1.dmm @@ -16423,6 +16423,9 @@ /obj/machinery/atmospherics/pipe/simple/hidden{ dir = 9 }, +/obj/structure/closet/hydrant{ + pixel_x = 32 + }, /turf/simulated/floor/tiled/white, /area/medical/sleeper) "ecI" = ( From 3352cd071af5d63548b6643667dfd10285b1959b Mon Sep 17 00:00:00 2001 From: Sierra Helper <125094432+SierraHelper@users.noreply.github.com> Date: Sun, 24 Sep 2023 16:50:29 +0300 Subject: [PATCH 147/158] =?UTF-8?q?=D0=A7=D0=B5=D0=B9=D0=BD=D0=B4=D0=B6?= =?UTF-8?q?=D0=BB=D0=BE=D0=B3=20=D0=B4=D0=BB=D1=8F=20PR=20#1066=20[ci=20sk?= =?UTF-8?q?ip]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- html/changelogs/AutoChangeLog-sierra-pr-1066.yml | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-sierra-pr-1066.yml diff --git a/html/changelogs/AutoChangeLog-sierra-pr-1066.yml b/html/changelogs/AutoChangeLog-sierra-pr-1066.yml new file mode 100644 index 0000000000000..fd4dd0ddde0c6 --- /dev/null +++ b/html/changelogs/AutoChangeLog-sierra-pr-1066.yml @@ -0,0 +1,5 @@ +author: Azzy +delete-after: true +changes: + - maptweak: Medical now has a wall fire-locker, right above the Chemistry door. + This will open to the vent west of it. From ef4055184a651da17327094f25c05c1d1b9dcd01 Mon Sep 17 00:00:00 2001 From: Sierra Helper <125094432+SierraHelper@users.noreply.github.com> Date: Mon, 25 Sep 2023 01:17:10 +0000 Subject: [PATCH 148/158] =?UTF-8?q?=D0=90=D0=B2=D1=82=D0=BE=D0=BC=D0=B0?= =?UTF-8?q?=D1=82=D0=B8=D1=87=D0=B5=D1=81=D0=BA=D0=B0=D1=8F=20=D0=BA=D0=BE?= =?UTF-8?q?=D0=BC=D0=BF=D0=B8=D0=BB=D1=8F=D1=86=D0=B8=D1=8F=20=D1=87=D0=B5?= =?UTF-8?q?=D0=B9=D0=BD=D0=B4=D0=B6=D0=BB=D0=BE=D0=B3=D0=BE=D0=B2=20[ci=20?= =?UTF-8?q?skip]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- html/changelog.html | 6 ++++++ html/changelogs/.all_changelog.yml | 4 ++++ html/changelogs/AutoChangeLog-sierra-pr-1066.yml | 5 ----- 3 files changed, 10 insertions(+), 5 deletions(-) delete mode 100644 html/changelogs/AutoChangeLog-sierra-pr-1066.yml diff --git a/html/changelog.html b/html/changelog.html index 28590417adbab..b6815af28d7ae 100644 --- a/html/changelog.html +++ b/html/changelog.html @@ -28,6 +28,12 @@

Sierra SS13

-->
+

25.09 - 2023

+

Обновления Azzy:

+
+
Medical now has a wall fire-locker, right above the Chemistry door. This will open to the vent west of it.
+
+

23.09 - 2023

Обновления LordNest:

diff --git a/html/changelogs/.all_changelog.yml b/html/changelogs/.all_changelog.yml index 72fef1ea3cef0..36a6a96fc29ba 100644 --- a/html/changelogs/.all_changelog.yml +++ b/html/changelogs/.all_changelog.yml @@ -21884,3 +21884,7 @@ DO NOT EDIT THIS FILE BY HAND! AUTOMATICALLY GENERATED BY sierra_genchangelog.p - imageadd: Cryo tube lights are now emmissive. SuhEugene: - bugfix: Fixed multitile doors opacity. +2023-09-25: + Azzy: + - maptweak: Medical now has a wall fire-locker, right above the Chemistry door. + This will open to the vent west of it. diff --git a/html/changelogs/AutoChangeLog-sierra-pr-1066.yml b/html/changelogs/AutoChangeLog-sierra-pr-1066.yml deleted file mode 100644 index fd4dd0ddde0c6..0000000000000 --- a/html/changelogs/AutoChangeLog-sierra-pr-1066.yml +++ /dev/null @@ -1,5 +0,0 @@ -author: Azzy -delete-after: true -changes: - - maptweak: Medical now has a wall fire-locker, right above the Chemistry door. - This will open to the vent west of it. From 704a623baf0a47c52e8c55e865e6c60b567cae3c Mon Sep 17 00:00:00 2001 From: SuhEugene <32931701+SuhEugene@users.noreply.github.com> Date: Tue, 26 Sep 2023 14:56:28 +0300 Subject: [PATCH 149/158] [MIRROR] Make chair use icon instead of magic string --- code/game/objects/structures/stool_bed_chair_nest/chairs.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/game/objects/structures/stool_bed_chair_nest/chairs.dm b/code/game/objects/structures/stool_bed_chair_nest/chairs.dm index 069bbce532a59..a685a5d082376 100644 --- a/code/game/objects/structures/stool_bed_chair_nest/chairs.dm +++ b/code/game/objects/structures/stool_bed_chair_nest/chairs.dm @@ -54,7 +54,7 @@ ..() var/cache_key = "[base_icon]-[material.name]-over" if(isnull(stool_cache[cache_key])) - var/image/I = image('icons/obj/structures/furniture.dmi', "[base_icon]_over") + var/image/I = image(icon, "[base_icon]_over") if(material_alteration & MATERIAL_ALTERATION_COLOR) I.color = material.icon_colour I.layer = ABOVE_HUMAN_LAYER From 68d74c2f8f99c1629bfecb0f8888af29d40a8a2d Mon Sep 17 00:00:00 2001 From: CrimsonShrike <29737699+CrimsonShrike@users.noreply.github.com> Date: Tue, 26 Sep 2023 14:56:35 +0300 Subject: [PATCH 150/158] [MIRROR] Fixes heat --- code/game/objects/effects/particles/particles.dm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/code/game/objects/effects/particles/particles.dm b/code/game/objects/effects/particles/particles.dm index 948f921173732..c404f7c9455e9 100644 --- a/code/game/objects/effects/particles/particles.dm +++ b/code/game/objects/effects/particles/particles.dm @@ -321,7 +321,7 @@ /obj/particle_emitter/heat - particle_type = "heat low" + particle_type = "heat" render_target = HEAT_EFFECT_TARGET @@ -331,4 +331,4 @@ /obj/particle_emitter/heat/high - particle_type = "heat high" + particle_type = "high heat" From 3706e7f66dbf481b7d19f36445235d9fc9cad436 Mon Sep 17 00:00:00 2001 From: Qlonever <42286723+Qlonever@users.noreply.github.com> Date: Fri, 29 Sep 2023 15:45:50 +0300 Subject: [PATCH 151/158] [MIRROR] Fix record photos not appearing --- .../modules/modular_computers/file_system/reports/crew_record.dm | 1 + 1 file changed, 1 insertion(+) diff --git a/code/modules/modular_computers/file_system/reports/crew_record.dm b/code/modules/modular_computers/file_system/reports/crew_record.dm index 8be882eb56dd2..5123c04f1bcc9 100644 --- a/code/modules/modular_computers/file_system/reports/crew_record.dm +++ b/code/modules/modular_computers/file_system/reports/crew_record.dm @@ -24,6 +24,7 @@ GLOBAL_VAR_INIT(arrest_security_status, "Arrest") /datum/computer_file/report/crew_record/proc/load_from_mob(mob/living/carbon/human/H) if(istype(H)) + H.ImmediateOverlayUpdate() photo_front = getFlatIcon(H, SOUTH, always_use_defdir = 1) photo_side = getFlatIcon(H, WEST, always_use_defdir = 1) else From 411c8e0a68e5319b10d596778af13fb65be8e18b Mon Sep 17 00:00:00 2001 From: Sierra Helper <125094432+SierraHelper@users.noreply.github.com> Date: Fri, 29 Sep 2023 16:01:28 +0300 Subject: [PATCH 152/158] =?UTF-8?q?=D0=A7=D0=B5=D0=B9=D0=BD=D0=B4=D0=B6?= =?UTF-8?q?=D0=BB=D0=BE=D0=B3=20=D0=B4=D0=BB=D1=8F=20PR=20#1071=20[ci=20sk?= =?UTF-8?q?ip]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- html/changelogs/AutoChangeLog-sierra-pr-1071.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-sierra-pr-1071.yml diff --git a/html/changelogs/AutoChangeLog-sierra-pr-1071.yml b/html/changelogs/AutoChangeLog-sierra-pr-1071.yml new file mode 100644 index 0000000000000..e4491dd9cab6b --- /dev/null +++ b/html/changelogs/AutoChangeLog-sierra-pr-1071.yml @@ -0,0 +1,4 @@ +author: Qlonever +delete-after: true +changes: + - bugfix: Fixed crew records not displaying photos correctly. From bd65090037d39cd40d911fdb7ed6d05b0b501b49 Mon Sep 17 00:00:00 2001 From: MuckerMayhem <1161516+MuckerMayhem@users.noreply.github.com> Date: Thu, 28 Sep 2023 15:50:51 +0300 Subject: [PATCH 153/158] [MIRROR] fix character preview not updating --- code/modules/client/preference_setup/general/05_preview.dm | 1 + 1 file changed, 1 insertion(+) diff --git a/code/modules/client/preference_setup/general/05_preview.dm b/code/modules/client/preference_setup/general/05_preview.dm index 82edeffca298c..7d2a3df38a3e3 100644 --- a/code/modules/client/preference_setup/general/05_preview.dm +++ b/code/modules/client/preference_setup/general/05_preview.dm @@ -97,6 +97,7 @@ var/mob/living/carbon/human/dummy/mannequin/mannequin = get_mannequin(client_ckey) mannequin.delete_inventory(TRUE) dress_preview_mob(mannequin) + mannequin.ImmediateOverlayUpdate() last_built_icon = icon('icons/effects/128x48.dmi', bgstate) last_built_icon.Scale(48+32, 16+32) mannequin.dir = WEST From c218931c0e3cd690f0a00594da3b78c7c61664e8 Mon Sep 17 00:00:00 2001 From: Sierra Helper <125094432+SierraHelper@users.noreply.github.com> Date: Fri, 29 Sep 2023 16:19:09 +0300 Subject: [PATCH 154/158] =?UTF-8?q?=D0=A7=D0=B5=D0=B9=D0=BD=D0=B4=D0=B6?= =?UTF-8?q?=D0=BB=D0=BE=D0=B3=20=D0=B4=D0=BB=D1=8F=20PR=20#1070=20[ci=20sk?= =?UTF-8?q?ip]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- html/changelogs/AutoChangeLog-sierra-pr-1070.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-sierra-pr-1070.yml diff --git a/html/changelogs/AutoChangeLog-sierra-pr-1070.yml b/html/changelogs/AutoChangeLog-sierra-pr-1070.yml new file mode 100644 index 0000000000000..53216241074eb --- /dev/null +++ b/html/changelogs/AutoChangeLog-sierra-pr-1070.yml @@ -0,0 +1,4 @@ +author: Mucker +delete-after: true +changes: + - bugfix: Fixed the character panel preview icon not updating when it should. From 2535476c1caae40b7aad81ff9afd81f53111f019 Mon Sep 17 00:00:00 2001 From: SierraKomodo <11140088+SierraKomodo@users.noreply.github.com> Date: Fri, 22 Sep 2023 06:11:08 +0300 Subject: [PATCH 155/158] [MIRROR] Update override references for `/datum/species` vars outside of base definition --- code/modules/emotes/definitions/_species.dm | 93 ++++++++++----------- code/modules/emotes/skrell.dm | 29 ++++--- code/modules/mob/living/autohiss.dm | 28 +++---- 3 files changed, 70 insertions(+), 80 deletions(-) diff --git a/code/modules/emotes/definitions/_species.dm b/code/modules/emotes/definitions/_species.dm index 0a1063aa30c93..edc3bd3b375dc 100644 --- a/code/modules/emotes/definitions/_species.dm +++ b/code/modules/emotes/definitions/_species.dm @@ -8,59 +8,52 @@ usable_emotes = sortAssoc(usable_emotes) // Specific defines follow. -/datum/species/slime - default_emotes = list( - /singleton/emote/visible/bounce, - /singleton/emote/visible/jiggle, - /singleton/emote/visible/lightup, - /singleton/emote/visible/vibrate - ) +/datum/species/slime/default_emotes = list( + /singleton/emote/visible/bounce, + /singleton/emote/visible/jiggle, + /singleton/emote/visible/lightup, + /singleton/emote/visible/vibrate +) -/datum/species/unathi - default_emotes = list( - /singleton/emote/human/swish, - /singleton/emote/human/wag, - /singleton/emote/human/sway, - /singleton/emote/human/qwag, - /singleton/emote/human/fastsway, - /singleton/emote/human/swag, - /singleton/emote/human/stopsway, - /singleton/emote/audible/lizard_bellow - ) +/datum/species/unathi/default_emotes = list( + /singleton/emote/human/swish, + /singleton/emote/human/wag, + /singleton/emote/human/sway, + /singleton/emote/human/qwag, + /singleton/emote/human/fastsway, + /singleton/emote/human/swag, + /singleton/emote/human/stopsway, + /singleton/emote/audible/lizard_bellow +) -/datum/species/unathi/yeosa - default_emotes = list( - /singleton/emote/human/swish, - /singleton/emote/human/wag, - /singleton/emote/human/sway, - /singleton/emote/human/qwag, - /singleton/emote/human/fastsway, - /singleton/emote/human/swag, - /singleton/emote/human/stopsway, - /singleton/emote/audible/lizard_bellow, - /singleton/emote/audible/lizard_squeal - ) +/datum/species/unathi/yeosa/default_emotes = list( + /singleton/emote/human/swish, + /singleton/emote/human/wag, + /singleton/emote/human/sway, + /singleton/emote/human/qwag, + /singleton/emote/human/fastsway, + /singleton/emote/human/swag, + /singleton/emote/human/stopsway, + /singleton/emote/audible/lizard_bellow, + /singleton/emote/audible/lizard_squeal +) -/datum/species/nabber - default_emotes = list( - /singleton/emote/audible/bug_hiss, - /singleton/emote/audible/bug_buzz, - /singleton/emote/audible/bug_chitter - ) +/datum/species/nabber/default_emotes = list( + /singleton/emote/audible/bug_hiss, + /singleton/emote/audible/bug_buzz, + /singleton/emote/audible/bug_chitter +) -/datum/species/adherent - default_emotes = list( - /singleton/emote/audible/adherent_chime, - /singleton/emote/audible/adherent_ding - ) +/datum/species/adherent/default_emotes = list( + /singleton/emote/audible/adherent_chime, + /singleton/emote/audible/adherent_ding +) -/datum/species/vox - default_emotes = list( - /singleton/emote/audible/vox_shriek - ) +/datum/species/vox/default_emotes = list( + /singleton/emote/audible/vox_shriek +) -/datum/species/diona - default_emotes = list( - /singleton/emote/audible/chirp, - /singleton/emote/audible/multichirp - ) +/datum/species/diona/default_emotes = list( + /singleton/emote/audible/chirp, + /singleton/emote/audible/multichirp +) diff --git a/code/modules/emotes/skrell.dm b/code/modules/emotes/skrell.dm index 6e51a178cf5ff..8cac470d23532 100644 --- a/code/modules/emotes/skrell.dm +++ b/code/modules/emotes/skrell.dm @@ -1,18 +1,17 @@ -/datum/species/skrell - default_emotes = list( - /singleton/emote/audible/skrell_anger, - /singleton/emote/audible/skrell_anger1, - /singleton/emote/audible/skrell_anger2, - /singleton/emote/audible/skrell_laughter, - /singleton/emote/audible/skrell_peep, - /singleton/emote/audible/skrell_trill, - /singleton/emote/audible/skrell_trill1, - /singleton/emote/audible/skrell_trill2, - /singleton/emote/audible/skrell_warble, - /singleton/emote/audible/skrell_warble1, - /singleton/emote/audible/skrell_warble2, - /singleton/emote/audible/skrell_warble3 - ) +/datum/species/skrell/default_emotes = list( + /singleton/emote/audible/skrell_anger, + /singleton/emote/audible/skrell_anger1, + /singleton/emote/audible/skrell_anger2, + /singleton/emote/audible/skrell_laughter, + /singleton/emote/audible/skrell_peep, + /singleton/emote/audible/skrell_trill, + /singleton/emote/audible/skrell_trill1, + /singleton/emote/audible/skrell_trill2, + /singleton/emote/audible/skrell_warble, + /singleton/emote/audible/skrell_warble1, + /singleton/emote/audible/skrell_warble2, + /singleton/emote/audible/skrell_warble3 +) /singleton/emote/audible/skrell_anger diff --git a/code/modules/mob/living/autohiss.dm b/code/modules/mob/living/autohiss.dm index 5ff830cbde24c..fb7a1e60c91c4 100644 --- a/code/modules/mob/living/autohiss.dm +++ b/code/modules/mob/living/autohiss.dm @@ -9,22 +9,20 @@ return message return species.handle_autohiss(message, L, get_preference_value(/datum/client_preference/autohiss)) -/datum/species - var/list/autohiss_basic_map = null - var/list/autohiss_extra_map = null - var/list/autohiss_exempt = null +/datum/species/var/list/autohiss_basic_map = null +/datum/species/var/list/autohiss_extra_map = null +/datum/species/var/list/autohiss_exempt = null -/datum/species/unathi - autohiss_basic_map = list( - "s" = list("ss", "sss", "ssss") - ) - autohiss_extra_map = list( - "x" = list("ks", "kss", "ksss") - ) - autohiss_exempt = list( - LANGUAGE_UNATHI_SINTA, - LANGUAGE_UNATHI_YEOSA - ) +/datum/species/unathi/autohiss_basic_map = list( + "s" = list("ss", "sss", "ssss") +) +/datum/species/unathi/autohiss_extra_map = list( + "x" = list("ks", "kss", "ksss") +) +/datum/species/unathi/autohiss_exempt = list( + LANGUAGE_UNATHI_SINTA, + LANGUAGE_UNATHI_YEOSA +) /datum/species/proc/handle_autohiss(message, datum/language/lang, mode) if(!autohiss_basic_map) From 34eb3a9bc93bb4fdaba5e744d336c82b4967fb04 Mon Sep 17 00:00:00 2001 From: SuhEugene <32931701+SuhEugene@users.noreply.github.com> Date: Sat, 23 Sep 2023 22:27:19 +0300 Subject: [PATCH 156/158] Fix lobby making all the interfaces white --- maps/mapsystem/maps.dm | 3 +++ mods/lobbyscreen/README.md | 1 + 2 files changed, 4 insertions(+) diff --git a/maps/mapsystem/maps.dm b/maps/mapsystem/maps.dm index 45051aae18d3a..bf79c573a4890 100644 --- a/maps/mapsystem/maps.dm +++ b/maps/mapsystem/maps.dm @@ -518,6 +518,9 @@ var/global/const/MAP_HAS_RANK = 2 //Rank system, also togglable if(C.mob) // Check if the client is still connected to something // Hide title screen, allowing player to see the map winset(C, "lobbybrowser", "is-disabled=true;is-visible=false") + // [SIERRA-ADD] - LOBBYSCREEN + show_browser(C, "", "window=lobbybrowser") + // [/SIERRA-ADD] /datum/map/proc/roundend_player_status() for(var/mob/Player in GLOB.player_list) diff --git a/mods/lobbyscreen/README.md b/mods/lobbyscreen/README.md index aa8b0664b77e9..165c0d846417f 100644 --- a/mods/lobbyscreen/README.md +++ b/mods/lobbyscreen/README.md @@ -32,6 +32,7 @@ ID мода: LOBBYSCREEN - `code/modules/client/asset_cache.dm`: `/datum/asset/simple/fontawesome/assets` - `code/modules/client/preferences.dm`: `/datum/preferences/Topic()` - `code/modules/mob/new_player/new_player.dm`: `/mob/new_player/proc/new_player_panel()`, `/mob/new_player/proc/close_spawn_windows()` +- `maps/mapsystem/maps.dm`: `/datum/map/proc/hide_titlescreen()`