From d6987343f7dd7be5d2eaecb5582f92d9afa146fa Mon Sep 17 00:00:00 2001 From: SlamBamActionman <83650252+SlamBamActionman@users.noreply.github.com> Date: Thu, 4 Dec 2025 18:52:56 +0100 Subject: [PATCH 001/205] Change Ephedrine, Desoxyephedrine and Hyperzine properties (#41693) * merff (no numbness) * I can't feel a thing * Update self-damage and OD values * Missed a 5 --- .../Locale/en-US/store/uplink-catalog.ftl | 4 +- .../Entities/StatusEffects/body.yml | 4 + Resources/Prototypes/Reagents/narcotics.yml | 170 ++++++++++-------- 3 files changed, 105 insertions(+), 73 deletions(-) diff --git a/Resources/Locale/en-US/store/uplink-catalog.ftl b/Resources/Locale/en-US/store/uplink-catalog.ftl index e7e6b42ae5..f3df1dcde0 100644 --- a/Resources/Locale/en-US/store/uplink-catalog.ftl +++ b/Resources/Locale/en-US/store/uplink-catalog.ftl @@ -403,10 +403,10 @@ uplink-nocturine-chemistry-bottle-name = Nocturine Bottle uplink-nocturine-chemistry-bottle-desc = A chemical that puts your target straight to sleep. uplink-stimpack-name = Hyperzine Injector -uplink-stimpack-desc = The legendary chemical produced by Donk Co. for the Syndicate. Injecting yourself with this will increase your run speed and let you recover from stuns faster for 30 seconds. +uplink-stimpack-desc = The legendary chemical produced by Donk Co. for the Syndicate. Injecting yourself with this will increase your run speed and let you recover from stuns faster for 60 seconds. uplink-stimkit-name = Hyperzine Injector Kit -uplink-stimkit-desc = A medkit containing 6 hyperzine microinjectors, which each inject you with enough hyperzine to last for 15 seconds. +uplink-stimkit-desc = A medkit containing 6 hyperzine microinjectors, which each inject you with enough hyperzine to last for 30 seconds. uplink-syndicate-segway-crate-name = Syndicate Segway uplink-syndicate-segway-crate-desc = Be an enemy of the corporation, in style! diff --git a/Resources/Prototypes/Entities/StatusEffects/body.yml b/Resources/Prototypes/Entities/StatusEffects/body.yml index 4c94804884..6b6f704a2c 100644 --- a/Resources/Prototypes/Entities/StatusEffects/body.yml +++ b/Resources/Prototypes/Entities/StatusEffects/body.yml @@ -27,3 +27,7 @@ - MobState - MobThresholds - type: PainNumbnessStatusEffect + +- type: entity + parent: PainNumbnessTraitStatusEffect + id: StatusEffectPainNumbness diff --git a/Resources/Prototypes/Reagents/narcotics.yml b/Resources/Prototypes/Reagents/narcotics.yml index 48fc618857..aaaa62916c 100644 --- a/Resources/Prototypes/Reagents/narcotics.yml +++ b/Resources/Prototypes/Reagents/narcotics.yml @@ -4,43 +4,53 @@ group: Narcotics desc: reagent-desc-desoxyephedrine physicalDesc: reagent-physical-desc-translucent - contrabandSeverity: Major + contrabandSeverity: Minor flavor: bitter color: "#FAFAFA" boilingPoint: 212.0 # Dexosyephedrine vape when? meltingPoint: 170.0 metabolisms: Poison: + # Main effects effects: - !type:HealthChange damage: types: - Poison: 0.75 + Poison: 0.55 + Blunt: 0.5 + # OD - !type:HealthChange conditions: - !type:ReagentCondition reagent: Desoxyephedrine - min: 30 + min: 16 damage: types: - Poison: 2 # this is added to the base damage of the meth. + Poison: 3 # this is added to the base damage of the meth. Asphyxiation: 2 Narcotic: effects: + # Main effects - !type:MovementSpeedModifier - walkSpeedModifier: 1.35 - sprintSpeedModifier: 1.35 + walkSpeedModifier: 1.20 + sprintSpeedModifier: 1.20 + - !type:GenericStatusEffect + key: StaminaModifier # You are on meth. You keep going. + component: StaminaModifier + time: 3 + - !type:GenericStatusEffect + key: Adrenaline + component: IgnoreSlowOnDamage + time: 3 + # Side effects + - !type:Jitter - !type:GenericStatusEffect key: Stutter component: StutteringAccent - - !type:Jitter - !type:ModifyStatusEffect - effectProto: StatusEffectStunned - time: 3 - type: Remove - - !type:ModifyKnockdown - time: 3 - type: Remove + effectProto: StatusEffectPainNumbness + time: 2 + # Interactions - !type:ModifyStatusEffect conditions: - !type:ReagentCondition @@ -51,11 +61,12 @@ type: Remove Medicine: effects: + # Side effects - !type:ResetNarcolepsy conditions: - !type:ReagentCondition reagent: Desoxyephedrine - min: 20 + min: 5 - type: reagent id: Ephedrine @@ -63,7 +74,6 @@ group: Narcotics desc: reagent-desc-ephedrine physicalDesc: reagent-physical-desc-powdery - contrabandSeverity: Minor flavor: bitter color: "#D2FFFA" boilingPoint: 255.0 @@ -71,19 +81,10 @@ metabolisms: Narcotic: effects: + # Main effects - !type:MovementSpeedModifier - walkSpeedModifier: 1.25 - sprintSpeedModifier: 1.25 - - !type:HealthChange - conditions: - - !type:ReagentCondition - reagent: Ephedrine - min: 20 - damage: - types: - Poison: 2 # this is added to the base damage of the meth. - Asphyxiation: 2 - - !type:Jitter + walkSpeedModifier: 1.15 + sprintSpeedModifier: 1.15 - !type:ModifyStatusEffect effectProto: StatusEffectStunned time: 1 @@ -91,6 +92,24 @@ - !type:ModifyKnockdown time: 1 type: Remove + # Side effects + - !type:Jitter + - !type:PopupMessage + visualType: Medium + messages: ["ephedrine-effect-tight-pain", "ephedrine-effect-heart-pounds"] + type: Local + probability: 0.05 + # OD + - !type:HealthChange + conditions: + - !type:ReagentCondition + reagent: Ephedrine + min: 20 + damage: + types: + Poison: 2 + Asphyxiation: 2 + # Interactions - !type:ModifyStatusEffect conditions: - !type:ReagentCondition @@ -99,18 +118,14 @@ effectProto: StatusEffectDrowsiness time: 10 type: Remove - - !type:PopupMessage - visualType: Medium - messages: ["ephedrine-effect-tight-pain", "ephedrine-effect-heart-pounds"] - type: Local - probability: 0.05 Medicine: effects: + # Side effects - !type:ResetNarcolepsy conditions: - !type:ReagentCondition reagent: Ephedrine - min: 30 + min: 15 - type: reagent id: Stimulants @@ -125,41 +140,38 @@ meltingPoint: 170.0 metabolisms: Narcotic: - metabolismRate: 1.0 effects: + # Main effects - !type:MovementSpeedModifier - walkSpeedModifier: 1.3 - sprintSpeedModifier: 1.3 - - !type:HealthChange - conditions: - - !type:ReagentCondition - reagent: Stimulants - min: 80 #please wait 3 minutes before using another stimpack - damage: - types: - Poison: 1 - - !type:AdjustReagent - conditions: - - !type:ReagentCondition - reagent: ChloralHydrate - min: 1 - reagent: ChloralHydrate - amount: -10 + walkSpeedModifier: 1.25 + sprintSpeedModifier: 1.25 - !type:ModifyStatusEffect effectProto: StatusEffectStunned - time: 3 + time: 3.5 type: Remove - !type:ModifyKnockdown - time: 3 + time: 3.5 type: Remove - - !type:GenericStatusEffect - key: StaminaModifier - component: StaminaModifier - time: 3 - !type:ModifyStatusEffect effectProto: StatusEffectForcedSleeping time: 3 type: Remove + - !type:GenericStatusEffect + key: Adrenaline + component: IgnoreSlowOnDamage + time: 3 + # Side effects + - !type:Jitter + # OD + - !type:HealthChange + conditions: + - !type:ReagentCondition + reagent: Stimulants + min: 50 + damage: + types: + Poison: 1 + # Interactions - !type:ModifyStatusEffect conditions: - !type:ReagentCondition @@ -168,22 +180,38 @@ effectProto: StatusEffectDrowsiness time: 10 type: Remove + - !type:AdjustReagent + conditions: + - !type:ReagentCondition + reagent: ChloralHydrate + min: 1 + reagent: ChloralHydrate + amount: -10 Medicine: - metabolismRate: 1.0 effects: - - !type:ResetNarcolepsy - - !type:SatiateHunger - factor: 1 - - !type:SatiateThirst - factor: 1 - - !type:HealthChange - conditions: - - !type:TotalDamageCondition - min: 70 # only heals when you're more dead than alive - damage: # heals at the same rate as tricordrazine, doesn't heal poison because if you OD'd I'm not giving you a safety net - groups: - Burn: -1 - Brute: -1 + # Main effects + - !type:ModifyBleed + amount: -1.5 + - !type:EvenHealthChange + conditions: + - !type:TotalDamageCondition + min: 70 # only heals when you're more dead than alive + damage: # Doesn't heal poison because if you OD'd I'm not giving you a safety net + Burn: -0.5 + Brute: -0.5 + - !type:HealthChange + conditions: + - !type:TotalDamageCondition + min: 95 # Just to bring you back from the brink of death + damage: + types: + Asphyxiation: -2 + # Side effects + - !type:ResetNarcolepsy + - !type:SatiateHunger + factor: 1 + - !type:SatiateThirst + factor: 1 - type: reagent id: THC From 5c40b501f58114536213bcde0f8d6618ac0cb9f9 Mon Sep 17 00:00:00 2001 From: PJBot Date: Thu, 4 Dec 2025 18:06:39 +0000 Subject: [PATCH 002/205] Automatic changelog update --- Resources/Changelog/Changelog.yml | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/Resources/Changelog/Changelog.yml b/Resources/Changelog/Changelog.yml index 1c97b4e300..c9ab9dccf6 100644 --- a/Resources/Changelog/Changelog.yml +++ b/Resources/Changelog/Changelog.yml @@ -1,11 +1,4 @@ Entries: -- author: Jopaglazik, Golub - changes: - - message: Added Jump Boots In T1 "Salvage Equipment" technology. - type: Add - id: 8748 - time: '2025-07-07T19:19:28.0000000+00:00' - url: https://github.com/space-wizards/space-station-14/pull/36862 - author: slarticodefast, EmoGarbage404 changes: - message: 'Added a new science gadget: The H.A.R.M.P.A.C.K., a backpack that gives @@ -3918,3 +3911,12 @@ id: 9248 time: '2025-12-04T17:07:51.0000000+00:00' url: https://github.com/space-wizards/space-station-14/pull/41700 +- author: SlamBamActionman + changes: + - message: Ephedrine, Desoxyephedrine and Hyperzine have had their stats reworked, + with Desoxyephedrine now giving a higher max stamina and Hyperzine lasting much + longer, among other changes. + type: Tweak + id: 9249 + time: '2025-12-04T18:05:29.0000000+00:00' + url: https://github.com/space-wizards/space-station-14/pull/41693 From 0b11625278fc35b764920d6fa55312cc752348be Mon Sep 17 00:00:00 2001 From: SlamBamActionman <83650252+SlamBamActionman@users.noreply.github.com> Date: Thu, 4 Dec 2025 20:32:03 +0100 Subject: [PATCH 003/205] Exo - Botany update and minor fixes (#41598) Exo 1.14 --- Resources/Maps/exo.yml | 1383 ++++++++++++++++++++++++---------------- 1 file changed, 830 insertions(+), 553 deletions(-) diff --git a/Resources/Maps/exo.yml b/Resources/Maps/exo.yml index af133764a4..7a5e30ae97 100644 --- a/Resources/Maps/exo.yml +++ b/Resources/Maps/exo.yml @@ -1,11 +1,11 @@ meta: format: 7 category: Map - engineVersion: 267.3.0 + engineVersion: 268.0.0 forkId: "" forkVersion: "" - time: 11/06/2025 22:05:46 - entityCount: 20009 + time: 11/27/2025 13:04:13 + entityCount: 20042 maps: - 1 grids: @@ -101,95 +101,95 @@ entities: chunks: 0,0: ind: 0,0 - tiles: YAAAAAABAGAAAAAAAwBgAAAAAAMAYAAAAAABAGAAAAAAAwBgAAAAAAMAYAAAAAABAGAAAAAAAQCBAAAAAAAAgQAAAAAAAG8AAAAAAACBAAAAAAAAgQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGAAAAAAAwBgAAAAAAIAYAAAAAABAGAAAAAAAwBgAAAAAAEAYAAAAAADAGAAAAAAAgBgAAAAAAMAYAAAAAAAAIEAAAAAAABvAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAAAAAAAAAAAAAAAAAAABgAAAAAAEAYAAAAAAAAGAAAAAAAwBgAAAAAAEAYAAAAAACAGAAAAAAAQBgAAAAAAEAYAAAAAADAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAAAAAAAAAAAAAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAYAAAAAABAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAAAXAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABcAAAAAAAAAAAAAAAAAFwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXAAAAAAAAFwAAAAAAAIEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgQAAAAAAAAAAAAAAAAAXAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABcAAAAAAAAAAAAAAAAAgQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXAAAAAAAAAAAAAAAAAIEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFwAAAAAAAAAAAAAAAACBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIEAAAAAAAAAAAAAAAAAFwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXAAAAAAAAFwAAAAAAAIEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFwAAAAAAAAAAAAAAAAAXAAAAAAAAAAAAAAAAAIEAAAAAAAAXAAAAAAAAgQAAAAAAAIEAAAAAAAAXAAAAAAAAgQAAAAAAABcAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAAAXAAAAAAAAFwAAAAAAAIEAAAAAAAAAAAAAAAAAgQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABcAAAAAAAAAAAAAAAAAAAAAAAAAABcAAAAAAAAAAAAAAAAAgQAAAAAAABcAAAAAAACBAAAAAAAAgQAAAAAAABcAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAAAXAAAAAAAAgQAAAAAAAIEAAAAAAAAXAAAAAAAAgQAAAAAAABcAAAAAAAAAAAAAAAAAAAAAAAAAAA== + tiles: YAAAAAAAAGAAAAAAAABgAAAAAAAAYAAAAAADAGAAAAAAAABgAAAAAAEAYAAAAAADAGAAAAAAAACBAAAAAAAAgQAAAAAAAG8AAAAAAACBAAAAAAAAgQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGAAAAAAAABgAAAAAAAAYAAAAAABAGAAAAAAAwBgAAAAAAEAYAAAAAADAGAAAAAAAQBgAAAAAAEAYAAAAAAAAIEAAAAAAABvAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAAAAAAAAAAAAAAAAAAABgAAAAAAIAYAAAAAACAGAAAAAAAQBgAAAAAAMAYAAAAAAAAGAAAAAAAABgAAAAAAIAYAAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAAAAAAAAAAAAAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAYAAAAAACAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAAAXAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABcAAAAAAAAAAAAAAAAAFwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXAAAAAAAAFwAAAAAAAIEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgQAAAAAAAAAAAAAAAAAXAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABcAAAAAAAAAAAAAAAAAgQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXAAAAAAAAAAAAAAAAAIEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFwAAAAAAAAAAAAAAAACBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIEAAAAAAAAAAAAAAAAAFwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXAAAAAAAAFwAAAAAAAIEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFwAAAAAAAAAAAAAAAAAXAAAAAAAAAAAAAAAAAIEAAAAAAAAXAAAAAAAAgQAAAAAAAIEAAAAAAAAXAAAAAAAAgQAAAAAAABcAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAAAXAAAAAAAAFwAAAAAAAIEAAAAAAAAAAAAAAAAAgQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABcAAAAAAAAAAAAAAAAAAAAAAAAAABcAAAAAAAAAAAAAAAAAgQAAAAAAABcAAAAAAACBAAAAAAAAgQAAAAAAABcAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAAAXAAAAAAAAgQAAAAAAAIEAAAAAAAAXAAAAAAAAgQAAAAAAABcAAAAAAAAAAAAAAAAAAAAAAAAAAA== version: 7 -1,0: ind: -1,0 - tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACBAAAAAAAAFgAAAAADABYAAAAAAwAWAAAAAAIAFgAAAAADABYAAAAAAwBgAAAAAAAAYAAAAAADAGAAAAAAAwBgAAAAAAMAYAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgQAAAAAAABYAAAAAAAAWAAAAAAMAFgAAAAABABYAAAAAAACBAAAAAAAAYAAAAAACAGAAAAAAAgBgAAAAAAEAYAAAAAAAAGAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAABYAAAAAAwAWAAAAAAEAgQAAAAAAAGAAAAAAAQBgAAAAAAEAYAAAAAABAGAAAAAAAQBgAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFwAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAYAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABcAAAAAAAAAAAAAAAAAFwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXAAAAAAAAFwAAAAAAAIEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgQAAAAAAAAAAAAAAAAAXAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIEAAAAAAAAAAAAAAAAAFwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACBAAAAAAAAAAAAAAAAABcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgQAAAAAAAAAAAAAAAAAXAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIEAAAAAAAAAAAAAAAAAFwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXAAAAAAAAFwAAAAAAAIEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFwAAAAAAAAAAAAAAAAAXAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIEAAAAAAAAAAAAAAAAAgQAAAAAAABcAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAAAXAAAAAAAAgQAAAAAAABcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXAAAAAAAAAAAAAAAAAAAAAAAAAAAXAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABcAAAAAAACBAAAAAAAAgQAAAAAAABcAAAAAAAAXAAAAAAAAgQAAAAAAABcAAAAAAACBAAAAAAAAgQAAAAAAAA== + tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACBAAAAAAAAFgAAAAABABYAAAAAAgAWAAAAAAIAFgAAAAAAABYAAAAAAgBgAAAAAAMAYAAAAAADAGAAAAAAAgBgAAAAAAMAYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgQAAAAAAABYAAAAAAAAWAAAAAAIAFgAAAAABABYAAAAAAwCBAAAAAAAAYAAAAAAAAGAAAAAAAgBgAAAAAAIAYAAAAAABAGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAABYAAAAAAQAWAAAAAAEAgQAAAAAAAGAAAAAAAABgAAAAAAIAYAAAAAABAGAAAAAAAABgAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFwAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABcAAAAAAAAAAAAAAAAAFwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXAAAAAAAAFwAAAAAAAIEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgQAAAAAAAAAAAAAAAAAXAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIEAAAAAAAAAAAAAAAAAFwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACBAAAAAAAAAAAAAAAAABcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgQAAAAAAAAAAAAAAAAAXAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIEAAAAAAAAAAAAAAAAAFwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXAAAAAAAAFwAAAAAAAIEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFwAAAAAAAAAAAAAAAAAXAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIEAAAAAAAAAAAAAAAAAgQAAAAAAABcAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAAAXAAAAAAAAgQAAAAAAABcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXAAAAAAAAAAAAAAAAAAAAAAAAAAAXAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABcAAAAAAACBAAAAAAAAgQAAAAAAABcAAAAAAAAXAAAAAAAAgQAAAAAAABcAAAAAAACBAAAAAAAAgQAAAAAAAA== version: 7 0,-1: ind: 0,-1 - tiles: JQAAAAABACUAAAAAAgAlAAAAAAEAgQAAAAAAAGAAAAAAAQBgAAAAAAIAYAAAAAAAAGAAAAAAAwCBAAAAAAAAYAAAAAABAGAAAAAAAgBgAAAAAAIAYAAAAAAAAGAAAAAAAACBAAAAAAAAYAAAAAADAIEAAAAAAAAlAAAAAAIAJQAAAAABAIEAAAAAAACBAAAAAAAAbwAAAAAAAG8AAAAAAABvAAAAAAAAgQAAAAAAAGAAAAAAAgBgAAAAAAEAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAAAlAAAAAAEAJQAAAAABAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAAAtAAAAAAADLQAAAAAAAy0AAAAAAAMYAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAACUAAAAAAwCBAAAAAAAAKwAAAAABACsAAAAAAwCBAAAAAAAAKwAAAAABACsAAAAAAAArAAAAAAEAKwAAAAADACsAAAAAAQArAAAAAAEAGAAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAAAtAAAAAAADgQAAAAAAABgAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAbwAAAAAAAIEAAAAAAACBAAAAAAAAbwAAAAAAAG8AAAAAAABvAAAAAAAAbwAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAGAAAAAAAwCBAAAAAAAAgQAAAAAAAGAAAAAAAQBgAAAAAAAAYAAAAAACAGAAAAAAAgCBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAAAAAAAAAAAAAAAAAAABgAAAAAAAAYAAAAAADAGAAAAAAAwBgAAAAAAEAYAAAAAABAGAAAAAAAgBgAAAAAAIAYAAAAAADAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAAAAAAAAAAAAAAAAAAAAYAAAAAACAGAAAAAAAwBgAAAAAAMAYAAAAAACAGAAAAAAAABgAAAAAAAAYAAAAAAAAGAAAAAAAwBgAAAAAAAAgQAAAAAAAG8AAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAAAAAAAAAAAAAAAAAAAAAGAAAAAAAQBgAAAAAAMAYAAAAAABAGAAAAAAAABgAAAAAAAAYAAAAAABAGAAAAAAAABgAAAAAAMAgQAAAAAAAIEAAAAAAABvAAAAAAAAgQAAAAAAAIEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABgAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAGAAAAAAAgBgAAAAAAEAYAAAAAADAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYAAAAAADAGAAAAAAAgBgAAAAAAIAYAAAAAADAIEAAAAAAABgAAAAAAMAYAAAAAAAAGAAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAAAAAAAAAAAAAAAAAAAAAGAAAAAAAgBgAAAAAAMAYAAAAAABAGAAAAAAAQCBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAAAAAAAAAAAAAAAAAAABgAAAAAAIAYAAAAAACAGAAAAAAAgBgAAAAAAEAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAAAAAAAAAAAAAAAAAAAAgQAAAAAAAIEAAAAAAABgAAAAAAMAYAAAAAADAIEAAAAAAABgAAAAAAAAYAAAAAADAGAAAAAAAwCBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA== + tiles: JQAAAAABACUAAAAAAAAlAAAAAAIAgQAAAAAAAGAAAAAAAQBgAAAAAAMAYAAAAAAAAGAAAAAAAACBAAAAAAAAYAAAAAADAGAAAAAAAgBgAAAAAAAAYAAAAAADAGAAAAAAAQCBAAAAAAAAYAAAAAABAIEAAAAAAAAlAAAAAAMAJQAAAAACAIEAAAAAAACBAAAAAAAAbwAAAAAAAG8AAAAAAABvAAAAAAAAgQAAAAAAAGAAAAAAAABgAAAAAAIAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAAAlAAAAAAIAJQAAAAADAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAAAtAAAAAAADLQAAAAAAAy0AAAAAAAMYAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAACUAAAAAAgCBAAAAAAAAKwAAAAACACsAAAAAAgCBAAAAAAAAKwAAAAADACsAAAAAAAArAAAAAAIAKwAAAAACACsAAAAAAQArAAAAAAEAGAAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAAAtAAAAAAADgQAAAAAAABgAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAbwAAAAAAAIEAAAAAAACBAAAAAAAAbwAAAAAAAG8AAAAAAABvAAAAAAAAbwAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAGAAAAAAAwCBAAAAAAAAgQAAAAAAAGAAAAAAAgBgAAAAAAAAYAAAAAADAGAAAAAAAQCBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAAAAAAAAAAAAAAAAAAABgAAAAAAIAYAAAAAACAGAAAAAAAABgAAAAAAIAYAAAAAADAGAAAAAAAgBgAAAAAAIAYAAAAAACAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAAAAAAAAAAAAAAAAAAAAYAAAAAADAGAAAAAAAgBgAAAAAAIAYAAAAAABAGAAAAAAAwBgAAAAAAAAYAAAAAAAAGAAAAAAAgBgAAAAAAMAgQAAAAAAAG8AAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAAAAAAAAAAAAAAAAAAAAAGAAAAAAAgBgAAAAAAIAYAAAAAABAGAAAAAAAABgAAAAAAEAYAAAAAAAAGAAAAAAAQBgAAAAAAIAgQAAAAAAAIEAAAAAAABvAAAAAAAAgQAAAAAAAIEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABgAAAAAAEAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAGAAAAAAAwBgAAAAAAMAYAAAAAADAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYAAAAAAAAGAAAAAAAABgAAAAAAMAYAAAAAABAIEAAAAAAABgAAAAAAEAYAAAAAABAGAAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAAAAAAAAAAAAAAAAAAAAAGAAAAAAAgBgAAAAAAIAYAAAAAABAGAAAAAAAgCBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAAAAAAAAAAAAAAAAAAABgAAAAAAEAYAAAAAABAGAAAAAAAQBgAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAAAAAAAAAAAAAAAAAAAAgQAAAAAAAIEAAAAAAABgAAAAAAAAYAAAAAACAIEAAAAAAABgAAAAAAIAYAAAAAACAGAAAAAAAQCBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA== version: 7 -1,-1: ind: -1,-1 - tiles: gQAAAAAAAAQAAAAAAAAEAAAAAAAABAAAAAAAAIEAAAAAAAAkAAAAAAIAJAAAAAADAIEAAAAAAAAlAAAAAAAAJQAAAAABACUAAAAAAwCBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAJQAAAAABAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAJQAAAAABACUAAAAAAAAlAAAAAAAAgQAAAAAAAGAAAAAAAwBgAAAAAAAAgQAAAAAAACUAAAAAAQAtAAAAAAADLQAAAAAAAy0AAAAAAAMtAAAAAAADLQAAAAAAAy0AAAAAAAEYAAAAAAAALQAAAAAAAS4AAAAAAAMlAAAAAAIARAAAAAAAAGAAAAAAAwBgAAAAAAAAYAAAAAACAEQAAAAAAAAlAAAAAAIAKwAAAAAAACsAAAAAAAArAAAAAAIAKwAAAAACACsAAAAAAgArAAAAAAEAGAAAAAAAACUAAAAAAQAtAAAAAAAAJQAAAAADAIEAAAAAAACBAAAAAAAARAAAAAAAAEQAAAAAAACBAAAAAAAAJQAAAAADAC0AAAAAAAMtAAAAAAADLQAAAAAAAy0AAAAAAAMtAAAAAAADLQAAAAAAARgAAAAAAAAtAAAAAAABLgAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAACUAAAAAAQCBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAG8AAAAAAABvAAAAAAAAbwAAAAAAABcAAAAAAAAXAAAAAAAAFwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABcAAAAAAACBAAAAAAAAYAAAAAACAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAABgAAAAAAMAYAAAAAABAGAAAAAAAwAAAAAAAAAAFwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAGAAAAAAAQBgAAAAAAAAgQAAAAAAAGAAAAAAAwBgAAAAAAIAYAAAAAACAGAAAAAAAwBgAAAAAAEAFwAAAAAAABcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACBAAAAAAAAYAAAAAAAAGAAAAAAAgBgAAAAAAIAYAAAAAABAIEAAAAAAABgAAAAAAAAYAAAAAADAGAAAAAAAgBgAAAAAAIAYAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgQAAAAAAAGAAAAAAAABgAAAAAAEAYAAAAAABAGAAAAAAAQBgAAAAAAMAYAAAAAAAAGAAAAAAAQBgAAAAAAIAYAAAAAABAGAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAGAAAAAAAABgAAAAAAAAYAAAAAABAIEAAAAAAABgAAAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACBAAAAAAAAYAAAAAAAAGAAAAAAAQBgAAAAAAMAYAAAAAADAIEAAAAAAABgAAAAAAMAYAAAAAABAGAAAAAAAwCBAAAAAAAAYAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgQAAAAAAAGAAAAAAAABgAAAAAAIAYAAAAAACAGAAAAAAAQBgAAAAAAMAYAAAAAADAGAAAAAAAQBgAAAAAAIAgQAAAAAAAGAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIEAAAAAAABgAAAAAAEAYAAAAAACAGAAAAAAAwBgAAAAAAMAgQAAAAAAAGAAAAAAAgBgAAAAAAIAYAAAAAADAIEAAAAAAABgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAABgAAAAAAMAYAAAAAADAGAAAAAAAwCBAAAAAAAAgQAAAAAAAA== + tiles: gQAAAAAAAAQAAAAAAAAEAAAAAAAABAAAAAAAAIEAAAAAAAAkAAAAAAEAJAAAAAACAIEAAAAAAAAlAAAAAAEAJQAAAAABACUAAAAAAQCBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAJQAAAAACAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAJQAAAAADACUAAAAAAwAlAAAAAAIAgQAAAAAAAGAAAAAAAQBgAAAAAAMAgQAAAAAAACUAAAAAAAAtAAAAAAADLQAAAAAAAy0AAAAAAAMtAAAAAAADLQAAAAAAAy0AAAAAAAEYAAAAAAAALQAAAAAAAS4AAAAAAAMlAAAAAAMARAAAAAAAAGAAAAAAAQBgAAAAAAEAYAAAAAABAEQAAAAAAAAlAAAAAAMAKwAAAAABACsAAAAAAQArAAAAAAIAKwAAAAACACsAAAAAAwArAAAAAAMAGAAAAAAAACUAAAAAAQAtAAAAAAAAJQAAAAADAIEAAAAAAACBAAAAAAAARAAAAAAAAEQAAAAAAACBAAAAAAAAJQAAAAAAAC0AAAAAAAMtAAAAAAADLQAAAAAAAy0AAAAAAAMtAAAAAAADLQAAAAAAARgAAAAAAAAtAAAAAAABLgAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAACUAAAAAAQCBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAG8AAAAAAABvAAAAAAAAbwAAAAAAABcAAAAAAAAXAAAAAAAAFwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABcAAAAAAACBAAAAAAAAYAAAAAADAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAABgAAAAAAEAYAAAAAABAGAAAAAAAQAAAAAAAAAAFwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAGAAAAAAAgBgAAAAAAMAgQAAAAAAAGAAAAAAAgBgAAAAAAEAYAAAAAAAAGAAAAAAAQBgAAAAAAEAFwAAAAAAABcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACBAAAAAAAAYAAAAAABAGAAAAAAAgBgAAAAAAEAYAAAAAADAIEAAAAAAABgAAAAAAMAYAAAAAADAGAAAAAAAwBgAAAAAAEAYAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgQAAAAAAAGAAAAAAAgBgAAAAAAIAYAAAAAADAGAAAAAAAgBgAAAAAAAAYAAAAAABAGAAAAAAAABgAAAAAAIAYAAAAAADAGAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAGAAAAAAAwBgAAAAAAIAYAAAAAABAIEAAAAAAABgAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACBAAAAAAAAYAAAAAADAGAAAAAAAQBgAAAAAAIAYAAAAAADAIEAAAAAAABgAAAAAAMAYAAAAAADAGAAAAAAAgCBAAAAAAAAYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgQAAAAAAAGAAAAAAAABgAAAAAAMAYAAAAAADAGAAAAAAAgBgAAAAAAEAYAAAAAACAGAAAAAAAwBgAAAAAAIAgQAAAAAAAGAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIEAAAAAAABgAAAAAAEAYAAAAAABAGAAAAAAAgBgAAAAAAAAgQAAAAAAAGAAAAAAAgBgAAAAAAAAYAAAAAABAIEAAAAAAABgAAAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAABgAAAAAAEAYAAAAAACAGAAAAAAAACBAAAAAAAAgQAAAAAAAA== version: 7 -1,-2: ind: -1,-2 - tiles: GAAAAAAAAIEAAAAAAAAYAAAAAAAAGAAAAAAAAC0AAAAAAAMtAAAAAAADLQAAAAAAAy0AAAAAAAMtAAAAAAADLQAAAAAAAy0AAAAAAAMtAAAAAAADLgAAAAAAAC4AAAAAAAItAAAAAAAAJQAAAAABABgAAAAAAACBAAAAAAAAGAAAAAAAABgAAAAAAABHAAAAAAAARwAAAAAAAC4AAAAAAAItAAAAAAADLQAAAAAAAy0AAAAAAAMtAAAAAAADLgAAAAAAAy4AAAAAAAIuAAAAAAAALQAAAAAAACsAAAAAAAeBAAAAAAAAgQAAAAAAACAAAAAAAQCBAAAAAAAARwAAAAAAAEcAAAAAAACBAAAAAAAAHgAAAAAAAB4AAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAC0AAAAAAAArAAAAAAIHgQAAAAAAACAAAAAAAQAgAAAAAAEAIAAAAAADAEcAAAAAAABHAAAAAAAAgQAAAAAAACAAAAAAAgAgAAAAAAIAgQAAAAAAACAAAAAAAQAgAAAAAAMAIAAAAAACAIEAAAAAAAAtAAAAAAAAKwAAAAABB4EAAAAAAAAgAAAAAAIALgAAAAAAAi0AAAAAAAMuAAAAAAADIAAAAAAAAIEAAAAAAACBAAAAAAAALwAAAAAAAIEAAAAAAAAgAAAAAAMAIAAAAAADACAAAAAAAQCBAAAAAAAAGAAAAAAAABgAAAAAAACBAAAAAAAAIAAAAAABAC0AAAAAAAAEAAAAAAAALQAAAAAAACAAAAAAAQAgAAAAAAEAgQAAAAAAAC0AAAAAAAAZAAAAAAEAGQAAAAACABkAAAAAAgAZAAAAAAEAgQAAAAAAAC0AAAAAAAArAAAAAAIHIAAAAAADACAAAAAAAQAuAAAAAAABLQAAAAAAAy4AAAAAAAAgAAAAAAMAIAAAAAACACAAAAAAAQAtAAAAAAAAHgAAAAAAABkAAAAAAQAZAAAAAAEAGQAAAAACAIEAAAAAAAAtAAAAAAAAKwAAAAABByAAAAAAAAAgAAAAAAMAIAAAAAABACAAAAAAAAAgAAAAAAMAIAAAAAACACAAAAAAAwAgAAAAAAMALQAAAAAAAB4AAAAAAAAZAAAAAAIAGQAAAAAAABkAAAAAAwCBAAAAAAAALQAAAAAAACsAAAAAAQeBAAAAAAAAgQAAAAAAACAAAAAAAQAgAAAAAAAAAgAAAAAAAAIAAAAAAACBAAAAAAAAgQAAAAAAAC0AAAAAAAAYAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAC0AAAAAAAArAAAAAAEHRAAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAEQAAAAAAAAtAAAAAAAAGAAAAAAAAB4AAAAAAAAeAAAAAAAAHgAAAAAAAIEAAAAAAAAtAAAAAAAAKwAAAAACBy0AAAAAAAAuAAAAAAADLQAAAAAAAC4AAAAAAAIuAAAAAAACLQAAAAAAAy0AAAAAAAAuAAAAAAACLgAAAAAAACAAAAAAAAAgAAAAAAAAIAAAAAAAAB4AAAAAAACBAAAAAAAALQAAAAAAACsAAAAAAgcuAAAAAAAALgAAAAAAAS0AAAAAAAAuAAAAAAAALgAAAAAAAi0AAAAAAAMuAAAAAAAALQAAAAAAABgAAAAAAAAgAAAAAAAAIAAAAAAAACAAAAAAAAAeAAAAAAAAgQAAAAAAAC0AAAAAAAArAAAAAAEHLQAAAAAAAy0AAAAAAAMtAAAAAAAALQAAAAAAAy0AAAAAAAMtAAAAAAADLQAAAAAAAy4AAAAAAAAYAAAAAAAAGAAAAAAAAB4AAAAAAAAeAAAAAAAAHgAAAAAAAIEAAAAAAAAtAAAAAAAAKwAAAAADBy8AAAAAAAAtAAAAAAAALQAAAAAAAC0AAAAAAAAvAAAAAAAAGAAAAAAAABgAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAALQAAAAAAACUAAAAAAACBAAAAAAAALQAAAAAAAC0AAAAAAAAtAAAAAAAAgQAAAAAAACQAAAAAAgCBAAAAAAAAgQAAAAAAACQAAAAAAwAkAAAAAAMAJQAAAAACACUAAAAAAAAlAAAAAAIAJQAAAAAAAC4AAAAAAAEtAAAAAAADgQAAAAAAAAQAAAAAAAAEAAAAAAAABAAAAAAAAIEAAAAAAAAkAAAAAAEAJAAAAAACAC8AAAAAAAAkAAAAAAMAJQAAAAADACUAAAAAAgAlAAAAAAAAJQAAAAAAACUAAAAAAAAlAAAAAAAAJQAAAAABAA== + tiles: GAAAAAAAAIEAAAAAAAAYAAAAAAAAGAAAAAAAAC0AAAAAAAMtAAAAAAADLQAAAAAAAy0AAAAAAAMtAAAAAAADLQAAAAAAAy0AAAAAAAMtAAAAAAADLgAAAAAAAC4AAAAAAAItAAAAAAAAJQAAAAADABgAAAAAAACBAAAAAAAAGAAAAAAAABgAAAAAAABHAAAAAAAARwAAAAAAAC4AAAAAAAItAAAAAAADLQAAAAAAAy0AAAAAAAMtAAAAAAADLgAAAAAAAy4AAAAAAAIuAAAAAAAALQAAAAAAACsAAAAAAgeBAAAAAAAAgQAAAAAAACAAAAAAAQCBAAAAAAAARwAAAAAAAEcAAAAAAACBAAAAAAAAHgAAAAAAAB4AAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAC0AAAAAAAArAAAAAAIHgQAAAAAAACAAAAAAAgAgAAAAAAIAIAAAAAAAAEcAAAAAAABHAAAAAAAAgQAAAAAAACAAAAAAAgAgAAAAAAMAgQAAAAAAACAAAAAAAwAgAAAAAAAAIAAAAAABAIEAAAAAAAAtAAAAAAAAKwAAAAAAB4EAAAAAAAAgAAAAAAEALgAAAAAAAi0AAAAAAAMuAAAAAAADIAAAAAACAIEAAAAAAACBAAAAAAAALwAAAAAAAIEAAAAAAAAgAAAAAAEAIAAAAAADACAAAAAAAgCBAAAAAAAAGAAAAAAAABgAAAAAAACBAAAAAAAAIAAAAAACAC0AAAAAAAAEAAAAAAAALQAAAAAAACAAAAAAAQAgAAAAAAIAgQAAAAAAAC0AAAAAAAAZAAAAAAIAGQAAAAADABkAAAAAAwAZAAAAAAIAgQAAAAAAAC0AAAAAAAArAAAAAAMHIAAAAAACACAAAAAAAwAuAAAAAAABLQAAAAAAAy4AAAAAAAAgAAAAAAIAIAAAAAABACAAAAAAAQAtAAAAAAAAHgAAAAAAABkAAAAAAAAZAAAAAAIAGQAAAAADAIEAAAAAAAAtAAAAAAAAKwAAAAAAByAAAAAAAgAgAAAAAAEAIAAAAAADACAAAAAAAAAgAAAAAAMAIAAAAAACACAAAAAAAgAgAAAAAAIALQAAAAAAAB4AAAAAAAAZAAAAAAIAGQAAAAAAABkAAAAAAwCBAAAAAAAALQAAAAAAACsAAAAAAgeBAAAAAAAAgQAAAAAAACAAAAAAAAAgAAAAAAAAAgAAAAAAAAIAAAAAAACBAAAAAAAAgQAAAAAAAC0AAAAAAAAYAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAC0AAAAAAAArAAAAAAIHRAAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAEQAAAAAAAAtAAAAAAAAGAAAAAAAAB4AAAAAAAAeAAAAAAAAHgAAAAAAAIEAAAAAAAAtAAAAAAAAKwAAAAAABy0AAAAAAAAuAAAAAAADLQAAAAAAAC4AAAAAAAIuAAAAAAACLQAAAAAAAy0AAAAAAAAuAAAAAAACLgAAAAAAACAAAAAAAgAgAAAAAAMAIAAAAAADAB4AAAAAAACBAAAAAAAALQAAAAAAACsAAAAAAQcuAAAAAAAALgAAAAAAAS0AAAAAAAAuAAAAAAAALgAAAAAAAi0AAAAAAAMuAAAAAAAALQAAAAAAABgAAAAAAAAgAAAAAAAAIAAAAAAAACAAAAAAAgAeAAAAAAAAgQAAAAAAAC0AAAAAAAArAAAAAAIHLQAAAAAAAy0AAAAAAAMtAAAAAAAALQAAAAAAAy0AAAAAAAMtAAAAAAADLQAAAAAAAy4AAAAAAAAYAAAAAAAAGAAAAAAAAB4AAAAAAAAeAAAAAAAAHgAAAAAAAIEAAAAAAAAtAAAAAAAAKwAAAAABBy8AAAAAAAAtAAAAAAAALQAAAAAAAC0AAAAAAAAvAAAAAAAAGAAAAAAAABgAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAALQAAAAAAACUAAAAAAQCBAAAAAAAALQAAAAAAAC0AAAAAAAAtAAAAAAAAgQAAAAAAACQAAAAAAgCBAAAAAAAAgQAAAAAAACQAAAAAAwAkAAAAAAAAJQAAAAAAACUAAAAAAwAlAAAAAAMAJQAAAAACAC4AAAAAAAEtAAAAAAADgQAAAAAAAAQAAAAAAAAEAAAAAAAABAAAAAAAAIEAAAAAAAAkAAAAAAEAJAAAAAACAC8AAAAAAAAkAAAAAAMAJQAAAAADACUAAAAAAgAlAAAAAAAAJQAAAAADACUAAAAAAwAlAAAAAAAAJQAAAAACAA== version: 7 0,-2: ind: 0,-2 - tiles: KwAAAAADAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAG8AAAAAAACBAAAAAAAAYAAAAAADAGAAAAAAAABgAAAAAAMAYAAAAAACAC4AAAAAAAKBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAG8AAAAAAABgAAAAAAAAYAAAAAABAGAAAAAAAwBgAAAAAAIAYAAAAAAAAGAAAAAAAgAtAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAbwAAAAAAAG8AAAAAAABvAAAAAAAAgQAAAAAAAG8AAAAAAABgAAAAAAIAYAAAAAAAAGAAAAAAAwBgAAAAAAIAYAAAAAACAGAAAAAAAQBgAAAAAAMALQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAGAAAAAAAgBgAAAAAAIAYAAAAAAAAIEAAAAAAABgAAAAAAAAYAAAAAACAGAAAAAAAACBAAAAAAAAYAAAAAADAGAAAAAAAQBgAAAAAAAAYAAAAAAAABgAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAABgAAAAAAEAYAAAAAAAAGAAAAAAAwBgAAAAAAEAYAAAAAADAGAAAAAAAwBgAAAAAAEAgQAAAAAAAGAAAAAAAgBgAAAAAAAAYAAAAAAAAGAAAAAAAwAtAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAALQAAAAAAAIEAAAAAAACBAAAAAAAAHgAAAAAAAB4AAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAYAAAAAACAGAAAAAAAgBgAAAAAAEAYAAAAAADAGAAAAAAAQBgAAAAAAAAYAAAAAAAAC0AAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAGAAAAAAAgAVAAAAAAEAFQAAAAAAABUAAAAAAwBgAAAAAAIAYAAAAAADAGAAAAAAAAAtAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAABgAAAAAAEAFQAAAAACABUAAAAAAwAVAAAAAAAAYAAAAAADAGAAAAAAAgBgAAAAAAIALQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAGAAAAAAAQBgAAAAAAIAYAAAAAADAGAAAAAAAACBAAAAAAAAYAAAAAACABUAAAAAAgAVAAAAAAMAFQAAAAACAGAAAAAAAAAyAAAAAAAAMgAAAAAAAC0AAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAABgAAAAAAEAYAAAAAABAGAAAAAAAwBgAAAAAAEAgQAAAAAAAGAAAAAAAABgAAAAAAIAYAAAAAACAGAAAAAAAwBgAAAAAAEAgQAAAAAAAIEAAAAAAAAtAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAYAAAAAAAAGAAAAAAAwBgAAAAAAIAYAAAAAABAGAAAAAAAwBgAAAAAAIAYAAAAAACAGAAAAAAAQBgAAAAAAEAYAAAAAADAGAAAAAAAQBgAAAAAAAALQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAGAAAAAAAQBgAAAAAAIAYAAAAAADAGAAAAAAAgCBAAAAAAAAYAAAAAABAGAAAAAAAQBgAAAAAAMAYAAAAAAAAGAAAAAAAQBgAAAAAAMAYAAAAAACAC0AAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAGAAAAAAAgCBAAAAAAAAgQAAAAAAAIEAAAAAAAAuAAAAAAAAJQAAAAABACUAAAAAAwCBAAAAAAAAbwAAAAAAAG8AAAAAAABvAAAAAAAAYAAAAAAAAIEAAAAAAABgAAAAAAMAYAAAAAAAAGAAAAAAAgBgAAAAAAAAYAAAAAABAIEAAAAAAABgAAAAAAEAJQAAAAACAIEAAAAAAABEAAAAAAAARAAAAAAAAGAAAAAAAgBgAAAAAAIAYAAAAAACAGAAAAAAAABgAAAAAAEAYAAAAAAAAGAAAAAAAwBgAAAAAAMAYAAAAAABAG8AAAAAAACBAAAAAAAAYAAAAAADAA== + tiles: KwAAAAABAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAG8AAAAAAACBAAAAAAAAYAAAAAAAAGAAAAAAAwBgAAAAAAIAYAAAAAADAC4AAAAAAAKBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAG8AAAAAAABgAAAAAAEAYAAAAAABAGAAAAAAAABgAAAAAAMAYAAAAAABAGAAAAAAAQAtAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAbwAAAAAAAG8AAAAAAABvAAAAAAAAgQAAAAAAAG8AAAAAAABgAAAAAAIAYAAAAAAAAGAAAAAAAgBgAAAAAAIAYAAAAAABAGAAAAAAAgBgAAAAAAMALQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAGAAAAAAAwBgAAAAAAMAYAAAAAAAAIEAAAAAAABgAAAAAAAAYAAAAAABAGAAAAAAAQCBAAAAAAAAYAAAAAADAGAAAAAAAQBgAAAAAAAAYAAAAAADABgAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAABgAAAAAAMAYAAAAAADAGAAAAAAAgBgAAAAAAMAYAAAAAABAGAAAAAAAQBgAAAAAAEAgQAAAAAAAGAAAAAAAABgAAAAAAAAYAAAAAABAGAAAAAAAgAtAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAALQAAAAAAAIEAAAAAAACBAAAAAAAAHgAAAAAAAB4AAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAYAAAAAAAAGAAAAAAAwBgAAAAAAAAYAAAAAABAGAAAAAAAwBgAAAAAAIAYAAAAAADAC0AAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAGAAAAAAAwAVAAAAAAAAFQAAAAAAABUAAAAAAABgAAAAAAAAYAAAAAACAGAAAAAAAgAtAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAABgAAAAAAAAFQAAAAAAABUAAAAAAAAVAAAAAAAAYAAAAAACAGAAAAAAAABgAAAAAAAALQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAGAAAAAAAwBgAAAAAAEAYAAAAAABAGAAAAAAAQCBAAAAAAAAYAAAAAADABUAAAAAAAAVAAAAAAAAFQAAAAABAGAAAAAAAgAyAAAAAAAAMgAAAAAAAC0AAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAABgAAAAAAEAYAAAAAAAAGAAAAAAAgBgAAAAAAIAgQAAAAAAAGAAAAAAAwBgAAAAAAMAYAAAAAAAAGAAAAAAAABgAAAAAAMAgQAAAAAAAIEAAAAAAAAtAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAYAAAAAAAAGAAAAAAAwBgAAAAAAMAYAAAAAABAGAAAAAAAwBgAAAAAAIAYAAAAAADAGAAAAAAAwBgAAAAAAIAYAAAAAADAGAAAAAAAABgAAAAAAIALQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAGAAAAAAAgBgAAAAAAEAYAAAAAABAGAAAAAAAwCBAAAAAAAAYAAAAAABAGAAAAAAAQBgAAAAAAAAYAAAAAAAAGAAAAAAAgBgAAAAAAAAYAAAAAAAAC0AAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAGAAAAAAAgCBAAAAAAAAgQAAAAAAAIEAAAAAAAAuAAAAAAAAJQAAAAADACUAAAAAAQCBAAAAAAAAbwAAAAAAAG8AAAAAAABvAAAAAAAAYAAAAAACAIEAAAAAAABgAAAAAAIAYAAAAAAAAGAAAAAAAgBgAAAAAAIAYAAAAAABAIEAAAAAAABgAAAAAAIAJQAAAAABAIEAAAAAAABEAAAAAAAARAAAAAAAAGAAAAAAAQBgAAAAAAEAYAAAAAACAGAAAAAAAgBgAAAAAAMAYAAAAAAAAGAAAAAAAQBgAAAAAAAAYAAAAAAAAG8AAAAAAACBAAAAAAAAYAAAAAABAA== version: 7 1,-1: ind: 1,-1 - tiles: YAAAAAAAAGAAAAAAAwBgAAAAAAAAYAAAAAACAGAAAAAAAQBgAAAAAAMAYAAAAAACAIEAAAAAAACBAAAAAAAALQAAAAAAACsAAAAAAAMtAAAAAAAAgQAAAAAAACkAAAAAAQApAAAAAAMAKQAAAAADAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAALgAAAAAAAi4AAAAAAAArAAAAAAADLQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAACkAAAAAAQAtAAAAAAADLQAAAAAAAy0AAAAAAAMtAAAAAAADLQAAAAAAAy0AAAAAAAMtAAAAAAADLQAAAAAAAy4AAAAAAAAlAAAAAAAAJQAAAAABAC4AAAAAAAEtAAAAAAADLgAAAAAAA4EAAAAAAACBAAAAAAAAKwAAAAAAACsAAAAAAQArAAAAAAAAKwAAAAABACsAAAAAAgArAAAAAAMAKwAAAAACACUAAAAAAQAlAAAAAAEAJQAAAAADACUAAAAAAQArAAAAAAEAJQAAAAADAC0AAAAAAACBAAAAAAAAKQAAAAABAC0AAAAAAAMtAAAAAAADLQAAAAAAAy0AAAAAAAMtAAAAAAADLQAAAAAAAy0AAAAAAAOBAAAAAAAAgQAAAAAAAIEAAAAAAAAtAAAAAAADLQAAAAAAAy0AAAAAAAMuAAAAAAAAgQAAAAAAACkAAAAAAQCBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAACAAAAAAAACBAAAAAAAAIAAAAAABAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAFwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA== + tiles: YAAAAAACAGAAAAAAAQBgAAAAAAIAYAAAAAADAGAAAAAAAABgAAAAAAMAYAAAAAABAIEAAAAAAACBAAAAAAAALQAAAAAAACsAAAAAAQMtAAAAAAAAgQAAAAAAACkAAAAAAgApAAAAAAEAKQAAAAABAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAALgAAAAAAAi4AAAAAAAArAAAAAAADLQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAACkAAAAAAAAtAAAAAAADLQAAAAAAAy0AAAAAAAMtAAAAAAADLQAAAAAAAy0AAAAAAAMtAAAAAAADLQAAAAAAAy4AAAAAAAAlAAAAAAMAJQAAAAACAC4AAAAAAAEtAAAAAAADLgAAAAAAA4EAAAAAAACBAAAAAAAAKwAAAAADACsAAAAAAgArAAAAAAMAKwAAAAABACsAAAAAAwArAAAAAAMAKwAAAAADACUAAAAAAAAlAAAAAAAAJQAAAAACACUAAAAAAgArAAAAAAAAJQAAAAAAAC0AAAAAAACBAAAAAAAAKQAAAAACAC0AAAAAAAMtAAAAAAADLQAAAAAAAy0AAAAAAAMtAAAAAAADLQAAAAAAAy0AAAAAAAOBAAAAAAAAgQAAAAAAAIEAAAAAAAAtAAAAAAADLQAAAAAAAy0AAAAAAAMuAAAAAAAAgQAAAAAAACkAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAACAAAAAAAQCBAAAAAAAAIAAAAAACAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAFwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA== version: 7 1,-2: ind: 1,-2 - tiles: YAAAAAAAAGAAAAAAAQBgAAAAAAMAYAAAAAACAGAAAAAAAgBgAAAAAAEAgQAAAAAAAC0AAAAAAAAlAAAAAAAALQAAAAAAAIEAAAAAAACBAAAAAAAAKQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAGAAAAAAAABgAAAAAAMAYAAAAAADAGAAAAAAAgBgAAAAAAIAYAAAAAADAIEAAAAAAAAuAAAAAAABLQAAAAAAAy4AAAAAAACBAAAAAAAAKQAAAAADACkAAAAAAwApAAAAAAAAJQAAAAADACUAAAAAAABgAAAAAAMAYAAAAAABAGAAAAAAAgBgAAAAAAMAYAAAAAAAAGAAAAAAAwCBAAAAAAAAGAAAAAAAABgAAAAAAAAYAAAAAAAAgQAAAAAAACkAAAAAAQAYAAAAAAAAGAAAAAAAABgAAAAAAAAYAAAAAAAAYAAAAAAAAGAAAAAAAwBgAAAAAAIAYAAAAAABAGAAAAAAAQBgAAAAAAIAgQAAAAAAABgAAAAAAAAYAAAAAAAAGAAAAAAAAIEAAAAAAAApAAAAAAAAGAAAAAAAABgAAAAAAAAYAAAAAAAAGAAAAAAAAGAAAAAAAwBgAAAAAAAAYAAAAAAAAGAAAAAAAQBgAAAAAAEAgQAAAAAAAIEAAAAAAAAYAAAAAAAAGAAAAAAAABgAAAAAAACBAAAAAAAAKQAAAAAAABgAAAAAAAAYAAAAAAAAGAAAAAAAABgAAAAAAACBAAAAAAAAYAAAAAABAGAAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAALQAAAAAAAy0AAAAAAAMtAAAAAAADgQAAAAAAAIEAAAAAAAApAAAAAAEAKQAAAAAAACUAAAAAAQAlAAAAAAAAgQAAAAAAAGAAAAAAAQBgAAAAAAMAYAAAAAACABYAAAAAAgCBAAAAAAAAgQAAAAAAAC4AAAAAAAItAAAAAAADLQAAAAAAAy4AAAAAAAOBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAGAAAAAAAgBgAAAAAAAAYAAAAAABAGAAAAAAAABgAAAAAAMAgQAAAAAAAIEAAAAAAAAeAAAAAAAALgAAAAAAAi4AAAAAAAMuAAAAAAABHgAAAAAAAB4AAAAAAAAeAAAAAAAAHgAAAAAAAC0AAAAAAANgAAAAAAEAYAAAAAACAGAAAAAAAwBgAAAAAAAAYAAAAAAAAGAAAAAAAwBgAAAAAAMAHgAAAAAAAC4AAAAAAAEuAAAAAAAAJQAAAAACACsAAAAAAQArAAAAAAIAKwAAAAAAACsAAAAAAwArAAAAAAIAgQAAAAAAAGAAAAAAAwBgAAAAAAIAYAAAAAACAGAAAAAAAQBgAAAAAAIAYAAAAAAAAB4AAAAAAAAtAAAAAAADLgAAAAAAAysAAAAAAwMuAAAAAAACLQAAAAAAAy0AAAAAAAMtAAAAAAADLQAAAAAAA4EAAAAAAABgAAAAAAMAYAAAAAACAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAALgAAAAAAAy0AAAAAAAArAAAAAAADLQAAAAAAAIEAAAAAAACBAAAAAAAAGAAAAAAAABgAAAAAAABgAAAAAAMAYAAAAAACAGAAAAAAAABgAAAAAAEAYAAAAAADAGAAAAAAAQBgAAAAAAEAgQAAAAAAAIEAAAAAAAAtAAAAAAAAKwAAAAACAy0AAAAAAACBAAAAAAAAKQAAAAAAACkAAAAAAQApAAAAAAMAYAAAAAABAGAAAAAAAABgAAAAAAAAYAAAAAACAGAAAAAAAgBgAAAAAAAAYAAAAAABAGAAAAAAAQCBAAAAAAAALQAAAAAAACsAAAAAAgMtAAAAAAAAGAAAAAAAACkAAAAAAwApAAAAAAIAKQAAAAAAAGAAAAAAAwBgAAAAAAIAYAAAAAABAGAAAAAAAQBgAAAAAAIAYAAAAAACAGAAAAAAAQBgAAAAAAIAgQAAAAAAAC0AAAAAAAArAAAAAAIDLQAAAAAAABgAAAAAAAApAAAAAAEAKQAAAAAAACkAAAAAAABgAAAAAAEAYAAAAAACAGAAAAAAAwBgAAAAAAEAYAAAAAADAGAAAAAAAABgAAAAAAAAYAAAAAAAAIEAAAAAAAAtAAAAAAAAKwAAAAADAy0AAAAAAACBAAAAAAAAKQAAAAACACkAAAAAAgApAAAAAAEAYAAAAAADAGAAAAAAAwBgAAAAAAMAYAAAAAAAAGAAAAAAAwBgAAAAAAIAYAAAAAACAGAAAAAAAACBAAAAAAAAGAAAAAAAABgAAAAAAAAYAAAAAAAAgQAAAAAAAIEAAAAAAAApAAAAAAEAKQAAAAACAA== + tiles: YAAAAAACAGAAAAAAAABgAAAAAAAAYAAAAAAAAGAAAAAAAgBgAAAAAAIAgQAAAAAAAC0AAAAAAAAlAAAAAAIALQAAAAAAAIEAAAAAAACBAAAAAAAAKQAAAAABAIEAAAAAAACBAAAAAAAAgQAAAAAAAGAAAAAAAgBgAAAAAAMAYAAAAAACAGAAAAAAAgBgAAAAAAIAYAAAAAADAIEAAAAAAAAuAAAAAAABLQAAAAAAAy4AAAAAAACBAAAAAAAAKQAAAAADACkAAAAAAQApAAAAAAIAJQAAAAACACUAAAAAAwBgAAAAAAIAYAAAAAAAAGAAAAAAAABgAAAAAAMAYAAAAAADAGAAAAAAAQCBAAAAAAAAGAAAAAAAABgAAAAAAAAYAAAAAAAAgQAAAAAAACkAAAAAAgAYAAAAAAAAGAAAAAAAABgAAAAAAAAYAAAAAAAAYAAAAAADAGAAAAAAAgBgAAAAAAMAYAAAAAABAGAAAAAAAQBgAAAAAAAAgQAAAAAAABgAAAAAAAAYAAAAAAAAGAAAAAAAAIEAAAAAAAApAAAAAAIAGAAAAAAAABgAAAAAAAAYAAAAAAAAGAAAAAAAAGAAAAAAAQBgAAAAAAMAYAAAAAADAGAAAAAAAwBgAAAAAAEAgQAAAAAAAIEAAAAAAAAYAAAAAAAAGAAAAAAAABgAAAAAAACBAAAAAAAAKQAAAAACABgAAAAAAAAYAAAAAAAAGAAAAAAAABgAAAAAAACBAAAAAAAAYAAAAAACAGAAAAAAAwCBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAALQAAAAAAAy0AAAAAAAMtAAAAAAADgQAAAAAAAIEAAAAAAAApAAAAAAMAKQAAAAACACUAAAAAAgAlAAAAAAMAgQAAAAAAAGAAAAAAAQBgAAAAAAIAYAAAAAACABYAAAAAAwCBAAAAAAAAgQAAAAAAAC4AAAAAAAItAAAAAAADLQAAAAAAAy4AAAAAAAOBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAGAAAAAAAQBgAAAAAAMAYAAAAAADAGAAAAAAAwBgAAAAAAIAgQAAAAAAAIEAAAAAAAAeAAAAAAAALgAAAAAAAi4AAAAAAAMuAAAAAAABHgAAAAAAAB4AAAAAAAAeAAAAAAAAHgAAAAAAAC0AAAAAAANgAAAAAAAAYAAAAAADAGAAAAAAAgBgAAAAAAIAYAAAAAAAAGAAAAAAAgBgAAAAAAIAHgAAAAAAAC4AAAAAAAEuAAAAAAAAJQAAAAADACsAAAAAAQArAAAAAAAAKwAAAAACACsAAAAAAAArAAAAAAEAgQAAAAAAAGAAAAAAAQBgAAAAAAEAYAAAAAACAGAAAAAAAwBgAAAAAAAAYAAAAAABAB4AAAAAAAAtAAAAAAADLgAAAAAAAysAAAAAAwMuAAAAAAACLQAAAAAAAy0AAAAAAAMtAAAAAAADLQAAAAAAA4EAAAAAAABgAAAAAAIAYAAAAAACAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAALgAAAAAAAy0AAAAAAAArAAAAAAIDLQAAAAAAAIEAAAAAAACBAAAAAAAAGAAAAAAAABgAAAAAAABgAAAAAAIAYAAAAAAAAGAAAAAAAQBgAAAAAAEAYAAAAAADAGAAAAAAAwBgAAAAAAMAgQAAAAAAAIEAAAAAAAAtAAAAAAAAKwAAAAAAAy0AAAAAAACBAAAAAAAAKQAAAAAAACkAAAAAAAApAAAAAAIAYAAAAAADAGAAAAAAAQBgAAAAAAAAYAAAAAABAGAAAAAAAwBgAAAAAAMAYAAAAAADAGAAAAAAAwCBAAAAAAAALQAAAAAAACsAAAAAAQMtAAAAAAAAGAAAAAAAACkAAAAAAgApAAAAAAMAKQAAAAACAGAAAAAAAwBgAAAAAAAAYAAAAAACAGAAAAAAAwBgAAAAAAMAYAAAAAABAGAAAAAAAABgAAAAAAAAgQAAAAAAAC0AAAAAAAArAAAAAAMDLQAAAAAAABgAAAAAAAApAAAAAAEAKQAAAAADACkAAAAAAwBgAAAAAAEAYAAAAAAAAGAAAAAAAwBgAAAAAAEAYAAAAAADAGAAAAAAAwBgAAAAAAAAYAAAAAACAIEAAAAAAAAtAAAAAAAAKwAAAAABAy0AAAAAAACBAAAAAAAAKQAAAAABACkAAAAAAwApAAAAAAAAYAAAAAAAAGAAAAAAAABgAAAAAAAAYAAAAAACAGAAAAAAAwBgAAAAAAAAYAAAAAADAGAAAAAAAQCBAAAAAAAAGAAAAAAAABgAAAAAAAAYAAAAAAAAgQAAAAAAAIEAAAAAAAApAAAAAAAAKQAAAAACAA== version: 7 0,-3: ind: 0,-3 - tiles: IAAAAAACAAMAAAAAAAADAAAAAAAAgQAAAAAAAC0AAAAAAAAtAAAAAAAAIAAAAAAAACUAAAAAAAAlAAAAAAIAJQAAAAACACUAAAAAAwAlAAAAAAIAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAAcAAAAAAAADAAAAAAAAAwAAAAAAAIEAAAAAAAAtAAAAAAAALQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAAAXAAAAAAAALgAAAAAAAi0AAAAAAAMHAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAGAAAAAAAABgAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAALgAAAAAAAi4AAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAAAXAAAAAAAAgQAAAAAAAC0AAAAAAAAtAAAAAAAALQAAAAAAAIEAAAAAAACBAAAAAAAACQAAAAAAAAkAAAAAAAAJAAAAAAAAgQAAAAAAAC0AAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAAAAAAAAAAAAFwAAAAAAAIEAAAAAAAAtAAAAAAAALQAAAAAAABgAAAAAAAAYAAAAAAAAgQAAAAAAAAkAAAAAAAAJAAAAAAAACQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAAAAAAAAAAIEAAAAAAACBAAAAAAAALQAAAAAAAC0AAAAAAAAYAAAAAAAAGAAAAAAAABgAAAAAAAAYAAAAAAAAGAAAAAAAABgAAAAAAAAYAAAAAAAAGAAAAAAAABgAAAAAAAAYAAAAAAAAAAAAAAAAAAAAAAAAAACBAAAAAAAALQAAAAAAAC0AAAAAAAAtAAAAAAAAGAAAAAAAABgAAAAAAACBAAAAAAAACQAAAAAAAAkAAAAAAAAJAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAABcAAAAAAAAAAAAAAAAAgQAAAAAAAC0AAAAAAAAlAAAAAAAALQAAAAAAAC0AAAAAAACBAAAAAAAAgQAAAAAAAAkAAAAAAAAJAAAAAAAACQAAAAAAAIEAAAAAAAAtAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAAAAAAAAAAIEAAAAAAAAtAAAAAAAAKwAAAAABBy0AAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAALgAAAAAAAS4AAAAAAAOBAAAAAAAAgQAAAAAAABcAAAAAAACBAAAAAAAAGAAAAAAAABgAAAAAAAAYAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAABcAAAAAAAAuAAAAAAABLQAAAAAAA4EAAAAAAACBAAAAAAAAgQAAAAAAAC0AAAAAAAArAAAAAAAHLQAAAAAAAIEAAAAAAACBAAAAAAAAHgAAAAAAAB4AAAAAAAAeAAAAAAAAHgAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAAAtAAAAAAADLQAAAAAAAy0AAAAAAAMuAAAAAAAAKwAAAAADBy4AAAAAAAEYAAAAAAAALQAAAAAAAy0AAAAAAAMtAAAAAAADLQAAAAAAAy0AAAAAAAMtAAAAAAADLQAAAAAAAy0AAAAAAAMtAAAAAAADKwAAAAAAACsAAAAAAAArAAAAAAAAKwAAAAAAACUAAAAAAwArAAAAAAMAGAAAAAAAACsAAAAAAgArAAAAAAEAKwAAAAAAACsAAAAAAwArAAAAAAMAKwAAAAADACsAAAAAAgArAAAAAAEAKwAAAAACAC4AAAAAAAItAAAAAAADLQAAAAAAAy0AAAAAAAMtAAAAAAADLQAAAAAAAxgAAAAAAAAtAAAAAAADLQAAAAAAAy0AAAAAAAMtAAAAAAADLQAAAAAAAy0AAAAAAAMtAAAAAAADLQAAAAAAAy0AAAAAAAMtAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAALgAAAAAAAS0AAAAAAAMtAAAAAAADLQAAAAAAA4EAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAG8AAAAAAACBAAAAAAAAYAAAAAAAAGAAAAAAAwBgAAAAAAMAYAAAAAACAA== + tiles: IAAAAAADAAMAAAAAAAADAAAAAAAAgQAAAAAAAC0AAAAAAAAtAAAAAAAAIAAAAAAAACUAAAAAAQAlAAAAAAAAJQAAAAACACUAAAAAAQAlAAAAAAIAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAAcAAAAAAAADAAAAAAAAAwAAAAAAAIEAAAAAAAAtAAAAAAAALQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAAAXAAAAAAAALgAAAAAAAi0AAAAAAAMHAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAGAAAAAAAABgAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAALgAAAAAAAi4AAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAAAXAAAAAAAAgQAAAAAAAC0AAAAAAAAtAAAAAAAALQAAAAAAAIEAAAAAAACBAAAAAAAACQAAAAAAAAkAAAAAAAAJAAAAAAAAgQAAAAAAAC0AAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAAAAAAAAAAAAFwAAAAAAAIEAAAAAAAAtAAAAAAAALQAAAAAAAC8AAAAAAAAvAAAAAAAAgQAAAAAAAAkAAAAAAAAJAAAAAAAACQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAAAAAAAAAAIEAAAAAAACBAAAAAAAALQAAAAAAAC0AAAAAAAAvAAAAAAAAGAAAAAAAABgAAAAAAAAYAAAAAAAAGAAAAAAAABgAAAAAAAAYAAAAAAAAGAAAAAAAABgAAAAAAAAYAAAAAAAAAAAAAAAAAAAAAAAAAACBAAAAAAAALQAAAAAAAC0AAAAAAAAtAAAAAAAALwAAAAAAAC8AAAAAAACBAAAAAAAACQAAAAAAAAkAAAAAAAAJAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAABcAAAAAAAAAAAAAAAAAgQAAAAAAAC0AAAAAAAAlAAAAAAAALQAAAAAAAC0AAAAAAACBAAAAAAAAgQAAAAAAAAkAAAAAAAAJAAAAAAAACQAAAAAAAIEAAAAAAAAtAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAAAAAAAAAAIEAAAAAAAAtAAAAAAAAKwAAAAADBy0AAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAALgAAAAAAAS4AAAAAAAOBAAAAAAAAgQAAAAAAABcAAAAAAACBAAAAAAAAGAAAAAAAABgAAAAAAAAYAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAABcAAAAAAAAuAAAAAAABLQAAAAAAA4EAAAAAAACBAAAAAAAAgQAAAAAAAC0AAAAAAAArAAAAAAIHLQAAAAAAAIEAAAAAAACBAAAAAAAAHgAAAAAAAB4AAAAAAAAeAAAAAAAAHgAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAAAtAAAAAAADLQAAAAAAAy0AAAAAAAMuAAAAAAAAKwAAAAAABy4AAAAAAAEYAAAAAAAALQAAAAAAAy0AAAAAAAMtAAAAAAADLQAAAAAAAy0AAAAAAAMtAAAAAAADLQAAAAAAAy0AAAAAAAMtAAAAAAADKwAAAAADACsAAAAAAgArAAAAAAMAKwAAAAABACUAAAAAAAArAAAAAAMAGAAAAAAAACsAAAAAAAArAAAAAAEAKwAAAAABACsAAAAAAQArAAAAAAIAKwAAAAAAACsAAAAAAwArAAAAAAAAKwAAAAABAC4AAAAAAAItAAAAAAADLQAAAAAAAy0AAAAAAAMtAAAAAAADLQAAAAAAAxgAAAAAAAAtAAAAAAADLQAAAAAAAy0AAAAAAAMtAAAAAAADLQAAAAAAAy0AAAAAAAMtAAAAAAADLQAAAAAAAy0AAAAAAAMtAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAALgAAAAAAAS0AAAAAAAMtAAAAAAADLQAAAAAAA4EAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAG8AAAAAAACBAAAAAAAAYAAAAAADAGAAAAAAAQBgAAAAAAEAYAAAAAADAA== version: 7 1,-3: ind: 1,-3 - tiles: gQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAC0AAAAAAAAYAAAAAAAALQAAAAAAAIEAAAAAAACBAAAAAAAAGAAAAAAAABgAAAAAAACBAAAAAAAAgQAAAAAAAC0AAAAAAAMtAAAAAAADLQAAAAAAAy0AAAAAAAMuAAAAAAADFwAAAAAAAIEAAAAAAAAYAAAAAAAAGAAAAAAAABgAAAAAAACBAAAAAAAAbwAAAAAAAG8AAAAAAABvAAAAAAAAbwAAAAAAAG8AAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAALgAAAAAAAS4AAAAAAAOBAAAAAAAAIAAAAAABACsAAAAAAAAgAAAAAAIAgQAAAAAAAG8AAAAAAAAlAAAAAAMAJQAAAAACACUAAAAAAQAlAAAAAAEAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAAAtAAAAAAAAgQAAAAAAAC0AAAAAAAArAAAAAAAHLQAAAAAAABgAAAAAAABvAAAAAAAAJQAAAAACACUAAAAAAAAlAAAAAAEAJQAAAAADAAkAAAAAAAAJAAAAAAAACQAAAAAAAIEAAAAAAACBAAAAAAAALQAAAAAAAIEAAAAAAAAtAAAAAAAAKwAAAAABBy0AAAAAAAAYAAAAAAAAbwAAAAAAACUAAAAAAgAlAAAAAAMAJQAAAAAAACUAAAAAAAAJAAAAAAAABAAAAAAAAAkAAAAAAACBAAAAAAAAgQAAAAAAAC0AAAAAAACBAAAAAAAALQAAAAAAACsAAAAAAActAAAAAAAAgQAAAAAAAG8AAAAAAAAlAAAAAAMAJQAAAAACACUAAAAAAQAlAAAAAAMACQAAAAAAAAkAAAAAAAAJAAAAAAAAgQAAAAAAAIEAAAAAAAAtAAAAAAAAgQAAAAAAAC0AAAAAAAArAAAAAAAHLQAAAAAAAIEAAAAAAABvAAAAAAAAJQAAAAAAACUAAAAAAAAlAAAAAAAAJQAAAAABAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAALQAAAAAAAIEAAAAAAAAtAAAAAAAAKwAAAAABBy0AAAAAAACBAAAAAAAAbwAAAAAAACUAAAAAAAAlAAAAAAIAJQAAAAACACUAAAAAAwCBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAALgAAAAAAAi4AAAAAAACBAAAAAAAALQAAAAAAACsAAAAAAActAAAAAAAAgQAAAAAAAG8AAAAAAAAlAAAAAAMAJQAAAAABACUAAAAAAQAlAAAAAAEALQAAAAAAAy0AAAAAAAMtAAAAAAADLQAAAAAAAy4AAAAAAAAXAAAAAAAAgQAAAAAAABgAAAAAAAAYAAAAAAAAGAAAAAAAAIEAAAAAAAAQAAAAAAAAEAAAAAABABAAAAAAAAAQAAAAAAIAJQAAAAACAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAAAtAAAAAAAAKwAAAAABBy0AAAAAAACBAAAAAAAAEAAAAAABABAAAAAAAAAQAAAAAAMAEAAAAAABAG8AAAAAAAAtAAAAAAADLQAAAAAAAy0AAAAAAAMtAAAAAAADLQAAAAAAAy0AAAAAAAMYAAAAAAAALgAAAAAAACsAAAAAAQctAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAKwAAAAACACsAAAAAAQArAAAAAAEAKwAAAAADACsAAAAAAAArAAAAAAMAGAAAAAAAACsAAAAAAQAlAAAAAAIALQAAAAAAAC0AAAAAAACBAAAAAAAALwAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAC0AAAAAAAMtAAAAAAADLQAAAAAAAy0AAAAAAAMtAAAAAAADLQAAAAAAAxgAAAAAAAAuAAAAAAADKwAAAAACBy0AAAAAAAAtAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAAAtAAAAAAADLQAAAAAAAy0AAAAAAAOBAAAAAAAALQAAAAAAACsAAAAAAwctAAAAAAAALQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAAAeAAAAAAAAYAAAAAADAGAAAAAAAQCBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAC0AAAAAAAArAAAAAAAHLQAAAAAAAC0AAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAA== + tiles: gQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAC0AAAAAAAAYAAAAAAAALQAAAAAAAIEAAAAAAACBAAAAAAAAGAAAAAAAABgAAAAAAACBAAAAAAAAgQAAAAAAAC0AAAAAAAMtAAAAAAADLQAAAAAAAy0AAAAAAAMuAAAAAAADFwAAAAAAAIEAAAAAAAAYAAAAAAAAGAAAAAAAABgAAAAAAACBAAAAAAAAbwAAAAAAAG8AAAAAAABvAAAAAAAAbwAAAAAAAG8AAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAALgAAAAAAAS4AAAAAAAOBAAAAAAAAIAAAAAAAACsAAAAAAAAgAAAAAAAAgQAAAAAAAG8AAAAAAAAlAAAAAAEAJQAAAAABACUAAAAAAwAlAAAAAAIAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAAAtAAAAAAAAgQAAAAAAAC0AAAAAAAArAAAAAAMHLQAAAAAAABgAAAAAAABvAAAAAAAAJQAAAAAAACUAAAAAAQAlAAAAAAEAJQAAAAADAAkAAAAAAAAJAAAAAAAACQAAAAAAAIEAAAAAAACBAAAAAAAALQAAAAAAAIEAAAAAAAAtAAAAAAAAKwAAAAADBy0AAAAAAAAYAAAAAAAAbwAAAAAAACUAAAAAAAAlAAAAAAAAJQAAAAACACUAAAAAAwAJAAAAAAAABAAAAAAAAAkAAAAAAACBAAAAAAAAgQAAAAAAAC0AAAAAAACBAAAAAAAALQAAAAAAACsAAAAAAActAAAAAAAAgQAAAAAAAG8AAAAAAAAlAAAAAAAAJQAAAAADACUAAAAAAQAlAAAAAAAACQAAAAAAAAkAAAAAAAAJAAAAAAAAgQAAAAAAAIEAAAAAAAAtAAAAAAAAgQAAAAAAAC0AAAAAAAArAAAAAAMHLQAAAAAAAIEAAAAAAABvAAAAAAAAJQAAAAACACUAAAAAAwAlAAAAAAEAJQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAALQAAAAAAAIEAAAAAAAAtAAAAAAAAKwAAAAADBy0AAAAAAACBAAAAAAAAbwAAAAAAACUAAAAAAgAlAAAAAAIAJQAAAAADACUAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAALgAAAAAAAi4AAAAAAACBAAAAAAAALQAAAAAAACsAAAAAAgctAAAAAAAAgQAAAAAAAG8AAAAAAAAlAAAAAAEAJQAAAAAAACUAAAAAAgAlAAAAAAAALQAAAAAAAy0AAAAAAAMtAAAAAAADLQAAAAAAAy4AAAAAAAAXAAAAAAAAgQAAAAAAABgAAAAAAAAYAAAAAAAAGAAAAAAAAIEAAAAAAAAQAAAAAAIAEAAAAAABABAAAAAAAgAQAAAAAAEAJQAAAAACAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAAAtAAAAAAAAKwAAAAAABy0AAAAAAACBAAAAAAAAEAAAAAAAABAAAAAAAwAQAAAAAAAAEAAAAAADAG8AAAAAAAAtAAAAAAADLQAAAAAAAy0AAAAAAAMtAAAAAAADLQAAAAAAAy0AAAAAAAMYAAAAAAAALgAAAAAAACsAAAAAAActAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAKwAAAAACACsAAAAAAQArAAAAAAAAKwAAAAAAACsAAAAAAQArAAAAAAEAGAAAAAAAACsAAAAAAAAlAAAAAAAALQAAAAAAAC0AAAAAAACBAAAAAAAALwAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAC0AAAAAAAMtAAAAAAADLQAAAAAAAy0AAAAAAAMtAAAAAAADLQAAAAAAAxgAAAAAAAAuAAAAAAADKwAAAAAABy0AAAAAAAAtAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAAAtAAAAAAADLQAAAAAAAy0AAAAAAAOBAAAAAAAALQAAAAAAACsAAAAAAActAAAAAAAALQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAAAeAAAAAAAAYAAAAAADAGAAAAAAAwCBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAC0AAAAAAAArAAAAAAEHLQAAAAAAAC0AAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAA== version: 7 -1,-3: ind: -1,-3 - tiles: gQAAAAAAAC0AAAAAAAArAAAAAAMHLQAAAAAAAIEAAAAAAAAeAAAAAAAAIAAAAAABACAAAAAAAQAgAAAAAAMAgQAAAAAAACAAAAAAAwAgAAAAAAMAIAAAAAAAACAAAAAAAwCBAAAAAAAAIAAAAAADAIEAAAAAAAAtAAAAAAAAKwAAAAABBy0AAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAIAAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAACAAAAAAAAAYAAAAAAAALQAAAAAAACsAAAAAAgctAAAAAAAAGAAAAAAAABgAAAAAAAAYAAAAAAAAGAAAAAAAABgAAAAAAAAYAAAAAAAAGAAAAAAAABgAAAAAAAAYAAAAAAAALwAAAAAAAIEAAAAAAAAgAAAAAAMAgQAAAAAAAC0AAAAAAAArAAAAAAAHLQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAAAYAAAAAAAAGAAAAAAAAC8AAAAAAACBAAAAAAAAIAAAAAADAIEAAAAAAAAYAAAAAAAAGAAAAAAAABgAAAAAAACBAAAAAAAAHgAAAAAAAB4AAAAAAAAeAAAAAAAAHgAAAAAAAB4AAAAAAACBAAAAAAAAGAAAAAAAABgAAAAAAAAYAAAAAAAAGAAAAAAAABgAAAAAAACBAAAAAAAALQAAAAAAACsAAAAAAwctAAAAAAAAgQAAAAAAAB4AAAAAAAAeAAAAAAAAHgAAAAAAAB4AAAAAAAAeAAAAAAAAgQAAAAAAAIEAAAAAAAAYAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAC0AAAAAAAArAAAAAAIHLQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAAAeAAAAAAAAgQAAAAAAAIEAAAAAAAAYAAAAAAAAGAAAAAAAABgAAAAAAACBAAAAAAAAFwAAAAAAAIEAAAAAAAAtAAAAAAAAKwAAAAABBy0AAAAAAAAuAAAAAAABLQAAAAAAAy0AAAAAAAMtAAAAAAADLQAAAAAAAxgAAAAAAAAYAAAAAAAAGAAAAAAAABgAAAAAAAAYAAAAAAAAgQAAAAAAABcAAAAAAAAYAAAAAAAALQAAAAAAACUAAAAAAwArAAAAAAEAJQAAAAADAC4AAAAAAAItAAAAAAADLQAAAAAAAy0AAAAAAAMtAAAAAAADLQAAAAAAAxgAAAAAAAAYAAAAAAAAGAAAAAAAACAAAAAAAgCBAAAAAAAAGAAAAAAAAC0AAAAAAAAtAAAAAAAALQAAAAAAAG8AAAAAAABvAAAAAAAAbwAAAAAAAG8AAAAAAABvAAAAAAAAbwAAAAAAAG8AAAAAAABvAAAAAAAAGAAAAAAAABgAAAAAAAAYAAAAAAAAGAAAAAAAABgAAAAAAAAtAAAAAAAALQAAAAAAAC0AAAAAAABvAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAABvAAAAAAAALQAAAAAABxgAAAAAAACBAAAAAAAAgQAAAAAAAC0AAAAAAAAuAAAAAAABbwAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAbwAAAAAAAC4AAAAAAAEtAAAAAAADGAAAAAAAAIEAAAAAAAAYAAAAAAAALQAAAAAAA4EAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAG8AAAAAAAAYAAAAAAAAJQAAAAACABgAAAAAAACBAAAAAAAAGAAAAAAAABgAAAAAAABvAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAABvAAAAAAAALQAAAAAAACsAAAAAAAcYAAAAAAAAgQAAAAAAABgAAAAAAAAYAAAAAAAAGAAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAbwAAAAAAAC0AAAAAAAArAAAAAAMHGAAAAAAAAIEAAAAAAAAYAAAAAAAAGAAAAAAAABgAAAAAAABvAAAAAAAAbwAAAAAAAG8AAAAAAABvAAAAAAAAbwAAAAAAAG8AAAAAAABvAAAAAAAAbwAAAAAAAG8AAAAAAAAtAAAAAAAAKwAAAAABBw== + tiles: gQAAAAAAAC0AAAAAAAArAAAAAAIHLQAAAAAAAIEAAAAAAAAeAAAAAAAAIAAAAAAAACAAAAAAAAAgAAAAAAMAgQAAAAAAACAAAAAAAAAgAAAAAAMAIAAAAAABACAAAAAAAQAgAAAAAAAAIAAAAAACAIEAAAAAAAAtAAAAAAAAKwAAAAADBy0AAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAIAAAAAADAIEAAAAAAAAgAAAAAAAAgQAAAAAAACAAAAAAAAAYAAAAAAAALQAAAAAAACsAAAAAAgctAAAAAAAAGAAAAAAAABgAAAAAAAAYAAAAAAAAGAAAAAAAABgAAAAAAAAYAAAAAAAAGAAAAAAAABgAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAAAgAAAAAAEAgQAAAAAAAC0AAAAAAAArAAAAAAEHLQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAAAYAAAAAAAAGAAAAAAAAC8AAAAAAACBAAAAAAAAIAAAAAADAIEAAAAAAAAYAAAAAAAAGAAAAAAAABgAAAAAAACBAAAAAAAAHgAAAAAAAB4AAAAAAAAeAAAAAAAAHgAAAAAAAB4AAAAAAACBAAAAAAAALwAAAAAAABgAAAAAAAAYAAAAAAAAGAAAAAAAABgAAAAAAACBAAAAAAAALQAAAAAAACsAAAAAAActAAAAAAAAgQAAAAAAAB4AAAAAAAAeAAAAAAAAHgAAAAAAAB4AAAAAAAAeAAAAAAAAgQAAAAAAAIEAAAAAAAAYAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAC0AAAAAAAArAAAAAAMHLQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAAAeAAAAAAAAgQAAAAAAAIEAAAAAAAAYAAAAAAAAGAAAAAAAABgAAAAAAACBAAAAAAAAFwAAAAAAAIEAAAAAAAAtAAAAAAAAKwAAAAABBy0AAAAAAAAuAAAAAAABLQAAAAAAAy0AAAAAAAMtAAAAAAADLQAAAAAAAxgAAAAAAAAYAAAAAAAAGAAAAAAAABgAAAAAAAAYAAAAAAAAgQAAAAAAABcAAAAAAAAYAAAAAAAALQAAAAAAACUAAAAAAwArAAAAAAAAJQAAAAACAC4AAAAAAAItAAAAAAADLQAAAAAAAy0AAAAAAAMtAAAAAAADLQAAAAAAAxgAAAAAAAAYAAAAAAAAGAAAAAAAACAAAAAAAgCBAAAAAAAAGAAAAAAAAC0AAAAAAAAtAAAAAAAALQAAAAAAAG8AAAAAAABvAAAAAAAAbwAAAAAAAG8AAAAAAABvAAAAAAAAbwAAAAAAAG8AAAAAAABvAAAAAAAAGAAAAAAAABgAAAAAAAAYAAAAAAAAGAAAAAAAABgAAAAAAAAtAAAAAAAALQAAAAAAAC0AAAAAAABvAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAABvAAAAAAAALQAAAAAABxgAAAAAAACBAAAAAAAAgQAAAAAAAC0AAAAAAAAuAAAAAAABbwAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAbwAAAAAAAC4AAAAAAAEtAAAAAAADGAAAAAAAAIEAAAAAAAAYAAAAAAAALQAAAAAAA4EAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAG8AAAAAAAAYAAAAAAAAJQAAAAABABgAAAAAAACBAAAAAAAAGAAAAAAAABgAAAAAAABvAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAABvAAAAAAAALQAAAAAAACsAAAAAAgcYAAAAAAAAgQAAAAAAABgAAAAAAAAYAAAAAAAAGAAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAbwAAAAAAAC0AAAAAAAArAAAAAAMHGAAAAAAAAIEAAAAAAAAYAAAAAAAAGAAAAAAAABgAAAAAAABvAAAAAAAAbwAAAAAAAG8AAAAAAABvAAAAAAAAbwAAAAAAAG8AAAAAAABvAAAAAAAAbwAAAAAAAG8AAAAAAAAtAAAAAAAAKwAAAAACBw== version: 7 -2,-2: ind: -2,-2 - tiles: gQAAAAAAAIEAAAAAAAAtAAAAAAAAJQAAAAAAAC0AAAAAAACBAAAAAAAAGAAAAAAAABgAAAAAAAAYAAAAAAAAAAAAAAAAAIEAAAAAAAABAAAAAAAAAQAAAAADAAEAAAAAAQAYAAAAAAAAGAAAAAAAAIEAAAAAAACBAAAAAAAAGAAAAAAAABgAAAAAAAAYAAAAAAAAgQAAAAAAABgAAAAAAAAYAAAAAAAAGAAAAAAAABgAAAAAAAAYAAAAAAAAGAAAAAAAAB4AAAAAAAAYAAAAAAAAGAAAAAAAABgAAAAAAAAYAAAAAAAAgQAAAAAAAC0AAAAAAAArAAAAAAAHLQAAAAAAAIEAAAAAAAAYAAAAAAAAGAAAAAAAABgAAAAAAAAYAAAAAAAAGAAAAAAAABgAAAAAAAAeAAAAAAAAGAAAAAAAABgAAAAAAAAYAAAAAAAAgQAAAAAAAIEAAAAAAAAtAAAAAAAAKwAAAAABBy0AAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAGAAAAAAAABgAAAAAAAAYAAAAAAAAHgAAAAAAABgAAAAAAAAYAAAAAAAAGAAAAAAAAIEAAAAAAAAvAAAAAAAALQAAAAAAACsAAAAAAgctAAAAAAAAgQAAAAAAACAAAAAAAgAgAAAAAAMAIAAAAAADAB4AAAAAAAAeAAAAAAAAHgAAAAAAAB4AAAAAAAAeAAAAAAAAHgAAAAAAAB4AAAAAAACBAAAAAAAAgQAAAAAAAC0AAAAAAAArAAAAAAIHLQAAAAAAACAAAAAAAwAgAAAAAAAALgAAAAAAAi0AAAAAAAMtAAAAAAADLQAAAAAAAy0AAAAAAAMtAAAAAAADLQAAAAAAAy4AAAAAAAMgAAAAAAAALgAAAAAAA4EAAAAAAAAtAAAAAAAAKwAAAAADBy0AAAAAAACBAAAAAAAAIAAAAAAAAC4AAAAAAAEtAAAAAAADLQAAAAAAAy0AAAAAAAMtAAAAAAADLQAAAAAAAy0AAAAAAAMuAAAAAAAAIAAAAAADAC4AAAAAAAAYAAAAAAAALQAAAAAAACsAAAAAAgctAAAAAAAAgQAAAAAAACAAAAAAAwAgAAAAAAIAIAAAAAABACAAAAAAAwAgAAAAAAEAIAAAAAACACAAAAAAAwAgAAAAAAAAIAAAAAABACAAAAAAAwAuAAAAAAADGAAAAAAAAC0AAAAAAAArAAAAAAMHLQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAIAAAAAACAIEAAAAAAACBAAAAAAAAgQAAAAAAAC8AAAAAAACBAAAAAAAALQAAAAAAAIEAAAAAAAAtAAAAAAAAKwAAAAAABy0AAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAALQAAAAAAAC0AAAAAAACBAAAAAAAARAAAAAAAAEQAAAAAAAAYAAAAAAAARAAAAAAAAC0AAAAAAAAYAAAAAAAALQAAAAAAACsAAAAAAActAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAC0AAAAAAAAtAAAAAAAAgQAAAAAAAC4AAAAAAAItAAAAAAADLQAAAAAAAy4AAAAAAAMuAAAAAAAAGAAAAAAAAC0AAAAAAAArAAAAAAAHLQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAAAtAAAAAAAALQAAAAAAABgAAAAAAAAtAAAAAAAAGAAAAAAAABgAAAAAAAAtAAAAAAAAgQAAAAAAAIEAAAAAAAAYAAAAAAAAGAAAAAAAABgAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAALQAAAAAAAC0AAAAAAACBAAAAAAAALgAAAAAAAS0AAAAAAAMtAAAAAAADLQAAAAAAAxgAAAAAAACBAAAAAAAALQAAAAAAACsAAAAAAwctAAAAAAAALQAAAAAAAIEAAAAAAAAYAAAAAAAAGAAAAAAAABgAAAAAAAAYAAAAAAAAgQAAAAAAABgAAAAAAACBAAAAAAAAGAAAAAAAAEQAAAAAAAAYAAAAAAAAGAAAAAAAAC0AAAAAAAArAAAAAAAHLQAAAAAAAC0AAAAAAACBAAAAAAAAGAAAAAAAABgAAAAAAAAYAAAAAAAAgQAAAAAAAIEAAAAAAAAYAAAAAAAAgQAAAAAAABgAAAAAAABEAAAAAAAAgQAAAAAAAIEAAAAAAAAtAAAAAAAAKwAAAAACBy0AAAAAAAAtAAAAAAAAgQAAAAAAABgAAAAAAAAYAAAAAAAAGAAAAAAAAIEAAAAAAAAEAAAAAAAAGAAAAAAAAIEAAAAAAAAYAAAAAAAAGAAAAAAAAA== + tiles: gQAAAAAAAIEAAAAAAAAtAAAAAAAAJQAAAAACAC0AAAAAAACBAAAAAAAAGAAAAAAAABgAAAAAAAAYAAAAAAAAAAAAAAAAAIEAAAAAAAABAAAAAAEAAQAAAAABAAEAAAAAAQAYAAAAAAAAGAAAAAAAAIEAAAAAAACBAAAAAAAAGAAAAAAAABgAAAAAAAAYAAAAAAAAgQAAAAAAABgAAAAAAAAYAAAAAAAAGAAAAAAAABgAAAAAAAAYAAAAAAAAGAAAAAAAAB4AAAAAAAAYAAAAAAAAGAAAAAAAABgAAAAAAAAYAAAAAAAAgQAAAAAAAC0AAAAAAAArAAAAAAEHLQAAAAAAAIEAAAAAAAAYAAAAAAAAGAAAAAAAABgAAAAAAAAYAAAAAAAAGAAAAAAAABgAAAAAAAAeAAAAAAAAGAAAAAAAABgAAAAAAAAYAAAAAAAAgQAAAAAAAIEAAAAAAAAtAAAAAAAAKwAAAAAABy0AAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAGAAAAAAAABgAAAAAAAAYAAAAAAAAHgAAAAAAABgAAAAAAAAYAAAAAAAAGAAAAAAAAIEAAAAAAAAvAAAAAAAALQAAAAAAACsAAAAAAQctAAAAAAAAgQAAAAAAACAAAAAAAgAgAAAAAAEAIAAAAAADAB4AAAAAAAAeAAAAAAAAHgAAAAAAAB4AAAAAAAAeAAAAAAAAHgAAAAAAAB4AAAAAAACBAAAAAAAAgQAAAAAAAC0AAAAAAAArAAAAAAEHLQAAAAAAACAAAAAAAQAgAAAAAAIALgAAAAAAAi0AAAAAAAMtAAAAAAADLQAAAAAAAy0AAAAAAAMtAAAAAAADLQAAAAAAAy4AAAAAAAMgAAAAAAIALgAAAAAAA4EAAAAAAAAtAAAAAAAAKwAAAAADBy0AAAAAAACBAAAAAAAAIAAAAAABAC4AAAAAAAEtAAAAAAADLQAAAAAAAy0AAAAAAAMtAAAAAAADLQAAAAAAAy0AAAAAAAMuAAAAAAAAIAAAAAAAAC4AAAAAAAAYAAAAAAAALQAAAAAAACsAAAAAAQctAAAAAAAAgQAAAAAAACAAAAAAAAAgAAAAAAIAIAAAAAADACAAAAAAAgAgAAAAAAAAIAAAAAACACAAAAAAAQAgAAAAAAEAIAAAAAABACAAAAAAAQAuAAAAAAADGAAAAAAAAC0AAAAAAAArAAAAAAEHLQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAIAAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAC8AAAAAAACBAAAAAAAALQAAAAAAAIEAAAAAAAAtAAAAAAAAKwAAAAACBy0AAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAALQAAAAAAAC0AAAAAAACBAAAAAAAARAAAAAAAAEQAAAAAAAAYAAAAAAAARAAAAAAAAC0AAAAAAAAYAAAAAAAALQAAAAAAACsAAAAAAQctAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAC0AAAAAAAAtAAAAAAAAgQAAAAAAAC4AAAAAAAItAAAAAAADLQAAAAAAAy4AAAAAAAMuAAAAAAAAGAAAAAAAAC0AAAAAAAArAAAAAAIHLQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAAAtAAAAAAAALQAAAAAAABgAAAAAAAAtAAAAAAAAGAAAAAAAABgAAAAAAAAtAAAAAAAAgQAAAAAAAIEAAAAAAAAYAAAAAAAAGAAAAAAAABgAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAALQAAAAAAAC0AAAAAAACBAAAAAAAALgAAAAAAAS0AAAAAAAMtAAAAAAADLQAAAAAAAxgAAAAAAACBAAAAAAAALQAAAAAAACsAAAAAAQctAAAAAAAALQAAAAAAAIEAAAAAAAAYAAAAAAAAGAAAAAAAABgAAAAAAAAYAAAAAAAAgQAAAAAAABgAAAAAAACBAAAAAAAAGAAAAAAAAEQAAAAAAAAYAAAAAAAAGAAAAAAAAC0AAAAAAAArAAAAAAMHLQAAAAAAAC0AAAAAAACBAAAAAAAAGAAAAAAAABgAAAAAAAAYAAAAAAAAgQAAAAAAAIEAAAAAAAAYAAAAAAAAgQAAAAAAABgAAAAAAABEAAAAAAAAgQAAAAAAAIEAAAAAAAAtAAAAAAAAKwAAAAACBy0AAAAAAAAtAAAAAAAAgQAAAAAAABgAAAAAAAAYAAAAAAAAGAAAAAAAAIEAAAAAAAAEAAAAAAAAGAAAAAAAAIEAAAAAAAAYAAAAAAAAGAAAAAAAAA== version: 7 -2,-1: ind: -2,-1 - tiles: HgAAAAAAAIEAAAAAAAAtAAAAAAAAKwAAAAABBy0AAAAAAAAtAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAAAYAAAAAAAAGAAAAAAAAIEAAAAAAABEAAAAAAAARAAAAAAAAB4AAAAAAAAeAAAAAAAALQAAAAAAACsAAAAAAActAAAAAAAALgAAAAAAAS0AAAAAAAMtAAAAAAADLQAAAAAAAy0AAAAAAAOBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAAAeAAAAAAAALgAAAAAAAi4AAAAAAAArAAAAAAIHLgAAAAAAAS0AAAAAAAMtAAAAAAADLQAAAAAAAy0AAAAAAAMtAAAAAAADLQAAAAAAAy0AAAAAAAMtAAAAAAADLQAAAAAAAy0AAAAAAAMtAAAAAAADLQAAAAAAAy4AAAAAAAAlAAAAAAAAJQAAAAACACsAAAAAAQArAAAAAAAAKwAAAAAAACsAAAAAAgArAAAAAAIAKwAAAAACACsAAAAAAwArAAAAAAMAKwAAAAAAACsAAAAAAQArAAAAAAEAKwAAAAACACsAAAAAAwArAAAAAAMAJQAAAAABAC4AAAAAAAItAAAAAAADLQAAAAAAAy0AAAAAAAMtAAAAAAADLQAAAAAAAy0AAAAAAAMtAAAAAAADLQAAAAAAAy0AAAAAAAMtAAAAAAADLQAAAAAAAy0AAAAAAAMtAAAAAAADLQAAAAAAAy0AAAAAAAMuAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAGAAAAAAAAIEAAAAAAAAYAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAABgAAAAAAACBAAAAAAAAGAAAAAAAAIEAAAAAAACBAAAAAAAAAAAAAAAAABcAAAAAAAAXAAAAAAAAFwAAAAAAABcAAAAAAAAXAAAAAAAAFwAAAAAAABcAAAAAAAAXAAAAAAAAFwAAAAAAABcAAAAAAAAYAAAAAAAAgQAAAAAAABgAAAAAAACBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXAAAAAAAAFwAAAAAAABcAAAAAAAAAAAAAAAAAFwAAAAAAABcAAAAAAAAXAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA== + tiles: HgAAAAAAAIEAAAAAAAAtAAAAAAAAKwAAAAAABy0AAAAAAAAtAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAAAYAAAAAAAAGAAAAAAAAIEAAAAAAABEAAAAAAAARAAAAAAAAB4AAAAAAAAeAAAAAAAALQAAAAAAACsAAAAAAQctAAAAAAAALgAAAAAAAS0AAAAAAAMtAAAAAAADLQAAAAAAAy0AAAAAAAOBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAAAeAAAAAAAALgAAAAAAAi4AAAAAAAArAAAAAAAHLgAAAAAAAS0AAAAAAAMtAAAAAAADLQAAAAAAAy0AAAAAAAMtAAAAAAADLQAAAAAAAy0AAAAAAAMtAAAAAAADLQAAAAAAAy0AAAAAAAMtAAAAAAADLQAAAAAAAy4AAAAAAAAlAAAAAAIAJQAAAAADACsAAAAAAwArAAAAAAMAKwAAAAABACsAAAAAAwArAAAAAAEAKwAAAAACACsAAAAAAwArAAAAAAMAKwAAAAABACsAAAAAAwArAAAAAAIAKwAAAAADACsAAAAAAAArAAAAAAEAJQAAAAAAAC4AAAAAAAItAAAAAAADLQAAAAAAAy0AAAAAAAMtAAAAAAADLQAAAAAAAy0AAAAAAAMtAAAAAAADLQAAAAAAAy0AAAAAAAMtAAAAAAADLQAAAAAAAy0AAAAAAAMtAAAAAAADLQAAAAAAAy0AAAAAAAMuAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAGAAAAAAAAIEAAAAAAAAYAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAABgAAAAAAACBAAAAAAAAGAAAAAAAAIEAAAAAAACBAAAAAAAAAAAAAAAAABcAAAAAAAAXAAAAAAAAFwAAAAAAABcAAAAAAAAXAAAAAAAAFwAAAAAAABcAAAAAAAAXAAAAAAAAFwAAAAAAABcAAAAAAAAYAAAAAAAAgQAAAAAAABgAAAAAAACBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXAAAAAAAAFwAAAAAAABcAAAAAAAAAAAAAAAAAFwAAAAAAABcAAAAAAAAXAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA== version: 7 -2,-3: ind: -2,-3 - tiles: gQAAAAAAAIEAAAAAAAAtAAAAAAACKwAAAAABARgAAAAAAAAtAAAAAAACgQAAAAAAAIEAAAAAAACBAAAAAAAAIAAAAAABACAAAAAAAAAgAAAAAAIAIAAAAAADAIEAAAAAAACBAAAAAAAALwAAAAAAAAAAAAAAAACBAAAAAAAALQAAAAAAAisAAAAAAQEYAAAAAAAALQAAAAAAAoEAAAAAAACBAAAAAAAAgQAAAAAAACAAAAAAAQAgAAAAAAIAIAAAAAACACAAAAAAAgCBAAAAAAAAgQAAAAAAAIEAAAAAAAAAAAAAAAAAgQAAAAAAAC0AAAAAAAIrAAAAAAEBGAAAAAAAAC0AAAAAAAKBAAAAAAAAgQAAAAAAAIEAAAAAAAAgAAAAAAIAIAAAAAADACAAAAAAAgAgAAAAAAMAgQAAAAAAAIEAAAAAAACBAAAAAAAAAAAAAAAAAIEAAAAAAAAtAAAAAAACKwAAAAAAARgAAAAAAAAtAAAAAAACgQAAAAAAAIEAAAAAAACBAAAAAAAAIAAAAAABACAAAAAAAgAgAAAAAAMAIAAAAAACAIEAAAAAAAAYAAAAAAAALwAAAAAAAIEAAAAAAACBAAAAAAAALQAAAAAAAisAAAAAAwEYAAAAAAAALQAAAAAAAoEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAAAgAAAAAAEAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAHgAAAAAAAC0AAAAAAAIrAAAAAAEBGAAAAAAAAC0AAAAAAAIYAAAAAAAAGAAAAAAAAIEAAAAAAAAeAAAAAAAAHgAAAAAAAB4AAAAAAAAeAAAAAAAAHgAAAAAAAB4AAAAAAAAeAAAAAAAAHgAAAAAAAB4AAAAAAAAtAAAAAAACKwAAAAAAAS4AAAAAAAIuAAAAAAAAgQAAAAAAABgAAAAAAACBAAAAAAAAGAAAAAAAABgAAAAAAAAYAAAAAAAAGAAAAAAAABgAAAAAAAAYAAAAAAAAGAAAAAAAAIEAAAAAAACBAAAAAAAALwAAAAAAAC8AAAAAAAAvAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAABgAAAAAAAAYAAAAAAAAGAAAAAAAABgAAAAAAAAYAAAAAAAAGAAAAAAAABgAAAAAAAAYAAAAAAAAGAAAAAAAABgAAAAAAAAYAAAAAAAAGAAAAAAAAIEAAAAAAAAYAAAAAAAAGAAAAAAAABgAAAAAAAAYAAAAAAAAGAAAAAAAABgAAAAAAAAYAAAAAAAAGAAAAAAAABgAAAAAAAAYAAAAAAAAGAAAAAAAABgAAAAAAAAYAAAAAAAAGAAAAAAAABgAAAAAAACBAAAAAAAAGAAAAAAAABgAAAAAAAAYAAAAAAAAGAAAAAAAABgAAAAAAAAYAAAAAAAAGAAAAAAAABgAAAAAAAAYAAAAAAAAGAAAAAAAABgAAAAAAAAYAAAAAAAAGAAAAAAAABgAAAAAAAAYAAAAAAAAGAAAAAAAABgAAAAAAAAYAAAAAAAAGAAAAAAAABgAAAAAAAAYAAAAAAAAGAAAAAAAABgAAAAAAAAYAAAAAAAAGAAAAAAAABgAAAAAAAAYAAAAAAAAGAAAAAAAABgAAAAAAAAYAAAAAAAAGAAAAAAAABgAAAAAAAAYAAAAAAAAGAAAAAAAABgAAAAAAAAYAAAAAAAAGAAAAAAAABgAAAAAAAAeAAAAAAAAGAAAAAAAABgAAAAAAAAYAAAAAAAAGAAAAAAAABgAAAAAAAAYAAAAAAAAGAAAAAAAABgAAAAAAAAYAAAAAAAAGAAAAAAAABgAAAAAAAAYAAAAAAAAGAAAAAAAABgAAAAAAAAYAAAAAAAAHgAAAAAAABgAAAAAAAAYAAAAAAAAGAAAAAAAABgAAAAAAAAYAAAAAAAAGAAAAAAAABgAAAAAAAAYAAAAAAAAgQAAAAAAABgAAAAAAAAYAAAAAAAAGAAAAAAAABgAAAAAAAAYAAAAAAAAGAAAAAAAAB4AAAAAAAAYAAAAAAAAGAAAAAAAABgAAAAAAAAYAAAAAAAAGAAAAAAAABgAAAAAAAAYAAAAAAAAGAAAAAAAAIEAAAAAAAAYAAAAAAAAGAAAAAAAABgAAAAAAAAAAAAAAAAAgQAAAAAAAAEAAAAAAAABAAAAAAMAAQAAAAADABgAAAAAAAAYAAAAAAAAgQAAAAAAAIEAAAAAAAAuAAAAAAACLQAAAAAAAS4AAAAAAAOBAAAAAAAAGAAAAAAAABgAAAAAAAAYAAAAAAAAAAAAAAAAAIEAAAAAAAArAAAAAAIAKwAAAAADACsAAAAAAgAYAAAAAAAAGAAAAAAAAA== + tiles: gQAAAAAAAIEAAAAAAAAtAAAAAAACKwAAAAACARgAAAAAAAAtAAAAAAACgQAAAAAAAIEAAAAAAACBAAAAAAAAIAAAAAADACAAAAAAAAAgAAAAAAMAIAAAAAADAIEAAAAAAACBAAAAAAAALwAAAAAAAAAAAAAAAACBAAAAAAAALQAAAAAAAisAAAAAAgEYAAAAAAAALQAAAAAAAoEAAAAAAACBAAAAAAAAgQAAAAAAACAAAAAAAQAgAAAAAAMAIAAAAAADACAAAAAAAwCBAAAAAAAAgQAAAAAAAIEAAAAAAAAAAAAAAAAAgQAAAAAAAC0AAAAAAAIrAAAAAAEBGAAAAAAAAC0AAAAAAAKBAAAAAAAAgQAAAAAAAIEAAAAAAAAgAAAAAAAAIAAAAAABACAAAAAAAgAgAAAAAAMAgQAAAAAAAIEAAAAAAACBAAAAAAAAAAAAAAAAAIEAAAAAAAAtAAAAAAACKwAAAAABARgAAAAAAAAtAAAAAAACgQAAAAAAAIEAAAAAAACBAAAAAAAAIAAAAAABACAAAAAAAQAgAAAAAAIAIAAAAAADAIEAAAAAAAAYAAAAAAAALwAAAAAAAIEAAAAAAACBAAAAAAAALQAAAAAAAisAAAAAAAEYAAAAAAAALQAAAAAAAoEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAAAgAAAAAAEAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAHgAAAAAAAC0AAAAAAAIrAAAAAAIBGAAAAAAAAC0AAAAAAAIYAAAAAAAAGAAAAAAAAIEAAAAAAAAeAAAAAAAAHgAAAAAAAB4AAAAAAAAeAAAAAAAAHgAAAAAAAB4AAAAAAAAeAAAAAAAAHgAAAAAAAB4AAAAAAAAtAAAAAAACKwAAAAABAS4AAAAAAAIuAAAAAAAAgQAAAAAAABgAAAAAAACBAAAAAAAAGAAAAAAAABgAAAAAAAAYAAAAAAAAGAAAAAAAABgAAAAAAAAYAAAAAAAAGAAAAAAAAIEAAAAAAACBAAAAAAAALwAAAAAAAC8AAAAAAAAvAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAABgAAAAAAAAYAAAAAAAAGAAAAAAAABgAAAAAAAAYAAAAAAAAGAAAAAAAABgAAAAAAAAYAAAAAAAAGAAAAAAAABgAAAAAAAAYAAAAAAAAGAAAAAAAAIEAAAAAAAAYAAAAAAAAGAAAAAAAABgAAAAAAAAYAAAAAAAAGAAAAAAAABgAAAAAAAAYAAAAAAAAGAAAAAAAABgAAAAAAAAYAAAAAAAAGAAAAAAAABgAAAAAAAAYAAAAAAAAGAAAAAAAABgAAAAAAACBAAAAAAAAGAAAAAAAABgAAAAAAAAYAAAAAAAAGAAAAAAAABgAAAAAAAAYAAAAAAAAGAAAAAAAABgAAAAAAAAYAAAAAAAAGAAAAAAAABgAAAAAAAAYAAAAAAAAGAAAAAAAABgAAAAAAAAYAAAAAAAAGAAAAAAAABgAAAAAAAAYAAAAAAAAGAAAAAAAABgAAAAAAAAYAAAAAAAAGAAAAAAAABgAAAAAAAAYAAAAAAAAGAAAAAAAABgAAAAAAAAYAAAAAAAAGAAAAAAAABgAAAAAAAAYAAAAAAAAGAAAAAAAABgAAAAAAAAYAAAAAAAAGAAAAAAAABgAAAAAAAAYAAAAAAAAGAAAAAAAABgAAAAAAAAeAAAAAAAAGAAAAAAAABgAAAAAAAAYAAAAAAAAGAAAAAAAABgAAAAAAAAYAAAAAAAAGAAAAAAAABgAAAAAAAAYAAAAAAAAGAAAAAAAABgAAAAAAAAYAAAAAAAAGAAAAAAAABgAAAAAAAAYAAAAAAAAHgAAAAAAABgAAAAAAAAYAAAAAAAAGAAAAAAAABgAAAAAAAAYAAAAAAAAGAAAAAAAABgAAAAAAAAYAAAAAAAAgQAAAAAAABgAAAAAAAAYAAAAAAAAGAAAAAAAABgAAAAAAAAYAAAAAAAAGAAAAAAAAB4AAAAAAAAYAAAAAAAAGAAAAAAAABgAAAAAAAAYAAAAAAAAGAAAAAAAABgAAAAAAAAYAAAAAAAAGAAAAAAAAIEAAAAAAAAYAAAAAAAAGAAAAAAAABgAAAAAAAAAAAAAAAAAgQAAAAAAAAEAAAAAAQABAAAAAAEAAQAAAAAAABgAAAAAAAAYAAAAAAAAgQAAAAAAAIEAAAAAAAAuAAAAAAACLQAAAAAAAS4AAAAAAAOBAAAAAAAAGAAAAAAAABgAAAAAAAAYAAAAAAAAAAAAAAAAAIEAAAAAAAArAAAAAAIAKwAAAAAAACsAAAAAAwAYAAAAAAAAGAAAAAAAAA== version: 7 0,-4: ind: 0,-4 - tiles: gQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAAArAAAAAAMHKwAAAAACB4EAAAAAAAAYAAAAAAAAgQAAAAAAACAAAAAAAAAgAAAAAAAAIAAAAAACAIEAAAAAAACBAAAAAAAAGAAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAKwAAAAACBysAAAAAAgeBAAAAAAAAGAAAAAAAACAAAAAAAAAgAAAAAAEAIAAAAAAAACAAAAAAAwCBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAALQAAAAAAAC0AAAAAAAAtAAAAAAAAgQAAAAAAABkAAAAAAwCBAAAAAAAAIAAAAAAAACAAAAAAAAAgAAAAAAEAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAHgAAAAAAAC0AAAAAAAAtAAAAAAAALQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAACAAAAAAAAAgAAAAAAEAIAAAAAACAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAHgAAAAAAAB4AAAAAAAAtAAAAAAAALQAAAAAAAC0AAAAAAABvAAAAAAAAbwAAAAAAACAAAAAAAwAgAAAAAAIAIAAAAAABACAAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAAAeAAAAAAAALQAAAAAAAC0AAAAAAAAtAAAAAAAAgQAAAAAAAG8AAAAAAACBAAAAAAAAIAAAAAAAACAAAAAAAgAgAAAAAAIAIAAAAAACACAAAAAAAAAgAAAAAAIAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAC0AAAAAAAAtAAAAAAAALQAAAAAAAIEAAAAAAABvAAAAAAAAIAAAAAADACAAAAAAAgAgAAAAAAEAIAAAAAADACAAAAAAAwAgAAAAAAAAIAAAAAABAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAAAtAAAAAAAALQAAAAAAAC0AAAAAAACBAAAAAAAAbwAAAAAAAIEAAAAAAAAgAAAAAAAAIAAAAAADACAAAAAAAQAgAAAAAAAAIAAAAAADAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAALQAAAAAAAC0AAAAAAAAtAAAAAAAAgQAAAAAAAG8AAAAAAACBAAAAAAAAgQAAAAAAACAAAAAAAgCBAAAAAAAAIAAAAAACACAAAAAAAgAgAAAAAAAALgAAAAAAAi0AAAAAAAMtAAAAAAADGAAAAAAAAC4AAAAAAAAtAAAAAAAALgAAAAAAAS0AAAAAAAMtAAAAAAADLQAAAAAAAy0AAAAAAAMtAAAAAAADLQAAAAAAAyAAAAAAAAAgAAAAAAEAIAAAAAACAC0AAAAAAAAlAAAAAAEAKwAAAAAAABgAAAAAAAArAAAAAAEAKwAAAAACACsAAAAAAQArAAAAAAEAKwAAAAACACsAAAAAAwArAAAAAAMAKwAAAAADACsAAAAAAwAgAAAAAAIAIAAAAAADACAAAAAAAQAtAAAAAAAALQAAAAAAAC4AAAAAAAIYAAAAAAAALQAAAAAAAy0AAAAAAAMtAAAAAAADLQAAAAAAAy0AAAAAAAMtAAAAAAADLQAAAAAAAy0AAAAAAAMtAAAAAAADgQAAAAAAAIEAAAAAAACBAAAAAAAALQAAAAAAAC0AAAAAAAAtAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAACAAAAAAAwCBAAAAAAAAgQAAAAAAAIEAAAAAAAAYAAAAAAAAGAAAAAAAAAMAAAAAAAADAAAAAAAAgQAAAAAAAC0AAAAAAAAtAAAAAAAALQAAAAAAAIEAAAAAAAAlAAAAAAIAJQAAAAADACUAAAAAAwAlAAAAAAIAJQAAAAAAAIEAAAAAAAAgAAAAAAEALgAAAAAAAi0AAAAAAAMDAAAAAAAAAwAAAAAAAIEAAAAAAAAtAAAAAAAALQAAAAAAAC0AAAAAAAAgAAAAAAIAJQAAAAAAACAAAAAAAgAgAAAAAAMAIAAAAAABACUAAAAAAwCBAAAAAAAAIAAAAAABAC0AAAAAAAAlAAAAAAMAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAC0AAAAAAAAtAAAAAAAAgQAAAAAAACUAAAAAAgAgAAAAAAMAIAAAAAABACAAAAAAAAAlAAAAAAEAgQAAAAAAACAAAAAAAwAuAAAAAAABLQAAAAAAAw== + tiles: gQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAAArAAAAAAEHKwAAAAABB4EAAAAAAAAYAAAAAAAAgQAAAAAAACAAAAAAAgAgAAAAAAIAIAAAAAADAIEAAAAAAACBAAAAAAAAGAAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAKwAAAAAABysAAAAAAweBAAAAAAAAGAAAAAAAACAAAAAAAwAgAAAAAAEAIAAAAAABACAAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAALQAAAAAAAC0AAAAAAAAtAAAAAAAAgQAAAAAAABkAAAAAAACBAAAAAAAAIAAAAAACACAAAAAAAAAgAAAAAAIAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAHgAAAAAAAC0AAAAAAAAtAAAAAAAALQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAACAAAAAAAwAgAAAAAAIAIAAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAHgAAAAAAAB4AAAAAAAAtAAAAAAAALQAAAAAAAC0AAAAAAABvAAAAAAAAbwAAAAAAACAAAAAAAwAgAAAAAAEAIAAAAAACACAAAAAAAgCBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAAAeAAAAAAAALQAAAAAAAC0AAAAAAAAtAAAAAAAAgQAAAAAAAG8AAAAAAACBAAAAAAAAIAAAAAAAACAAAAAAAAAgAAAAAAAAIAAAAAADAAcAAAAAAAAHAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAC0AAAAAAAAtAAAAAAAALQAAAAAAAIEAAAAAAABvAAAAAAAAIAAAAAADACAAAAAAAwAgAAAAAAIAIAAAAAACACAAAAAAAAAgAAAAAAMABwAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAAAtAAAAAAAALQAAAAAAAC0AAAAAAACBAAAAAAAAbwAAAAAAAIEAAAAAAAAgAAAAAAEAIAAAAAAAACAAAAAAAgCBAAAAAAAAIAAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAALQAAAAAAAC0AAAAAAAAtAAAAAAAAgQAAAAAAAG8AAAAAAACBAAAAAAAAgQAAAAAAACAAAAAAAwCBAAAAAAAAIAAAAAACACAAAAAAAgAgAAAAAAAALgAAAAAAAi0AAAAAAAMtAAAAAAADGAAAAAAAAC4AAAAAAAAtAAAAAAAALgAAAAAAAS0AAAAAAAMtAAAAAAADLQAAAAAAAy0AAAAAAAMtAAAAAAADLQAAAAAAAyAAAAAAAAAgAAAAAAAAIAAAAAABAC0AAAAAAAAlAAAAAAAAKwAAAAAAABgAAAAAAAArAAAAAAMAKwAAAAACACsAAAAAAgArAAAAAAEAKwAAAAABACsAAAAAAAArAAAAAAIAKwAAAAAAACsAAAAAAAAgAAAAAAAAIAAAAAACACAAAAAAAgAtAAAAAAAALQAAAAAAAC4AAAAAAAIYAAAAAAAALQAAAAAAAy0AAAAAAAMtAAAAAAADLQAAAAAAAy0AAAAAAAMtAAAAAAADLQAAAAAAAy0AAAAAAAMtAAAAAAADgQAAAAAAAIEAAAAAAACBAAAAAAAALQAAAAAAAC0AAAAAAAAtAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAACAAAAAAAQCBAAAAAAAAgQAAAAAAAIEAAAAAAAAYAAAAAAAAGAAAAAAAAAMAAAAAAAADAAAAAAAAgQAAAAAAAC0AAAAAAAAtAAAAAAAALQAAAAAAAIEAAAAAAAAlAAAAAAIAJQAAAAADACUAAAAAAQAlAAAAAAAAJQAAAAADAIEAAAAAAAAgAAAAAAMALgAAAAAAAi0AAAAAAAMDAAAAAAAAAwAAAAAAAIEAAAAAAAAtAAAAAAAALQAAAAAAAC0AAAAAAAAgAAAAAAEAJQAAAAADACAAAAAAAwAgAAAAAAAAIAAAAAAAACUAAAAAAACBAAAAAAAAIAAAAAABAC0AAAAAAAAlAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAC0AAAAAAAAtAAAAAAAAgQAAAAAAACUAAAAAAgAgAAAAAAMAIAAAAAAAACAAAAAAAAAlAAAAAAMAgQAAAAAAACAAAAAAAAAuAAAAAAABLQAAAAAAAw== version: 7 1,-4: ind: 1,-4 - tiles: gQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAC0AAAAAAAArAAAAAAIHLQAAAAAAAIEAAAAAAAAeAAAAAAAAIAAAAAADAIEAAAAAAAAKAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAAAtAAAAAAAAKwAAAAAABy0AAAAAAACBAAAAAAAAHgAAAAAAACAAAAAAAQCBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAIAAAAAABACsAAAAAAAAgAAAAAAEAgQAAAAAAAB4AAAAAAAAgAAAAAAMAHgAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAAAuAAAAAAAAgQAAAAAAABgAAAAAAAAYAAAAAAAAGAAAAAAAAIEAAAAAAAAeAAAAAAAAIAAAAAACAB4AAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAAAtAAAAAAAAGAAAAAAAAC0AAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAABcAAAAAAACBAAAAAAAAgQAAAAAAAB4AAAAAAACBAAAAAAAAgQAAAAAAAC4AAAAAAAItAAAAAAADLgAAAAAAABgAAAAAAAAuAAAAAAABLQAAAAAAAy4AAAAAAAOBAAAAAAAAgQAAAAAAABcAAAAAAAAAAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAC4AAAAAAAIuAAAAAAAAGAAAAAAAABgAAAAAAAAYAAAAAAAAGAAAAAAAABgAAAAAAAAuAAAAAAABLgAAAAAAA4EAAAAAAACBAAAAAAAAFwAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAC4AAAAAAAIuAAAAAAAAGAAAAAAAABgAAAAAAAAuAAAAAAACLQAAAAAAAy4AAAAAAAMYAAAAAAAAGAAAAAAAAC4AAAAAAAEuAAAAAAADgQAAAAAAABcAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAAAtAAAAAAAAGAAAAAAAABgAAAAAAAAuAAAAAAACHgAAAAAAAB4AAAAAAAAeAAAAAAAALgAAAAAAAxgAAAAAAAAYAAAAAAAALQAAAAAAAIEAAAAAAACBAAAAAAAAIAAAAAADABgAAAAAAAAtAAAAAAADLgAAAAAAABgAAAAAAAAuAAAAAAACHgAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAB4AAAAAAAAuAAAAAAADGAAAAAAAAC4AAAAAAAEtAAAAAAADGAAAAAAAACsAAAAAAwAYAAAAAAAAGAAAAAAAABgAAAAAAAAYAAAAAAAALQAAAAAAAB4AAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAAAeAAAAAAAAGAAAAAAAABgAAAAAAAAYAAAAAAAAGAAAAAAAABgAAAAAAAAgAAAAAAMAGAAAAAAAAC0AAAAAAAMuAAAAAAADGAAAAAAAAC4AAAAAAAEeAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAHgAAAAAAAC4AAAAAAAAYAAAAAAAALgAAAAAAAi0AAAAAAAMYAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAALQAAAAAAABgAAAAAAAAYAAAAAAAALgAAAAAAAR4AAAAAAAAeAAAAAAAAHgAAAAAAAC4AAAAAAAAYAAAAAAAAGAAAAAAAAC0AAAAAAACBAAAAAAAAgQAAAAAAAC0AAAAAAAMuAAAAAAADgQAAAAAAAC4AAAAAAAEuAAAAAAADGAAAAAAAABgAAAAAAAAuAAAAAAABLQAAAAAAAy4AAAAAAAAYAAAAAAAAGAAAAAAAAC4AAAAAAAIuAAAAAAAAgQAAAAAAACAAAAAAAAAlAAAAAAAALQAAAAAAAIEAAAAAAAAuAAAAAAADLgAAAAAAAS4AAAAAAAMYAAAAAAAAGAAAAAAAABgAAAAAAAAYAAAAAAAAGAAAAAAAAC4AAAAAAAIuAAAAAAAALgAAAAAAAoEAAAAAAAAgAAAAAAEALQAAAAAAAy4AAAAAAACBAAAAAAAAgQAAAAAAAC4AAAAAAAAuAAAAAAABLQAAAAAAAy4AAAAAAAMYAAAAAAAALgAAAAAAAi0AAAAAAAMuAAAAAAAALgAAAAAAAi4AAAAAAACBAAAAAAAAIAAAAAABAA== + tiles: gQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAC0AAAAAAAArAAAAAAIHLQAAAAAAAIEAAAAAAAAeAAAAAAAAIAAAAAAAAIEAAAAAAAAKAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAAAtAAAAAAAAKwAAAAABBy0AAAAAAACBAAAAAAAAHgAAAAAAACAAAAAAAwCBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAIAAAAAABACsAAAAAAAAgAAAAAAAAgQAAAAAAAB4AAAAAAAAgAAAAAAEAHgAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAAAuAAAAAAAAgQAAAAAAABgAAAAAAAAYAAAAAAAAGAAAAAAAAIEAAAAAAAAeAAAAAAAAIAAAAAAAAB4AAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAAAtAAAAAAAAGAAAAAAAAC0AAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAABcAAAAAAACBAAAAAAAAgQAAAAAAAB4AAAAAAACBAAAAAAAAgQAAAAAAAC4AAAAAAAItAAAAAAADLgAAAAAAABgAAAAAAAAuAAAAAAABLQAAAAAAAy4AAAAAAAOBAAAAAAAAgQAAAAAAABcAAAAAAAAAAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAC4AAAAAAAIuAAAAAAAAGAAAAAAAABgAAAAAAAAYAAAAAAAAGAAAAAAAABgAAAAAAAAuAAAAAAABLgAAAAAAA4EAAAAAAACBAAAAAAAAFwAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAC4AAAAAAAIuAAAAAAAAGAAAAAAAABgAAAAAAAAuAAAAAAACLQAAAAAAAy4AAAAAAAMYAAAAAAAAGAAAAAAAAC4AAAAAAAEuAAAAAAADgQAAAAAAABcAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAAAtAAAAAAAAGAAAAAAAABgAAAAAAAAuAAAAAAACHgAAAAAAAB4AAAAAAAAeAAAAAAAALgAAAAAAAxgAAAAAAAAYAAAAAAAALQAAAAAAAIEAAAAAAACBAAAAAAAAIAAAAAAAABgAAAAAAAAtAAAAAAADLgAAAAAAABgAAAAAAAAuAAAAAAACHgAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAB4AAAAAAAAuAAAAAAADGAAAAAAAAC4AAAAAAAEtAAAAAAADGAAAAAAAACsAAAAAAAAYAAAAAAAAGAAAAAAAABgAAAAAAAAYAAAAAAAALQAAAAAAAB4AAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAAAeAAAAAAAAGAAAAAAAABgAAAAAAAAYAAAAAAAAGAAAAAAAABgAAAAAAAAgAAAAAAIAGAAAAAAAAC0AAAAAAAMuAAAAAAADGAAAAAAAAC4AAAAAAAEeAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAHgAAAAAAAC4AAAAAAAAYAAAAAAAALgAAAAAAAi0AAAAAAAMYAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAALQAAAAAAABgAAAAAAAAYAAAAAAAALgAAAAAAAR4AAAAAAAAeAAAAAAAAHgAAAAAAAC4AAAAAAAAYAAAAAAAAGAAAAAAAAC0AAAAAAACBAAAAAAAAgQAAAAAAAC0AAAAAAAMuAAAAAAADgQAAAAAAAC4AAAAAAAEuAAAAAAADGAAAAAAAABgAAAAAAAAuAAAAAAABLQAAAAAAAy4AAAAAAAAYAAAAAAAAGAAAAAAAAC4AAAAAAAIuAAAAAAAAgQAAAAAAACAAAAAAAwAlAAAAAAAALQAAAAAAAIEAAAAAAAAuAAAAAAADLgAAAAAAAS4AAAAAAAMYAAAAAAAAGAAAAAAAABgAAAAAAAAYAAAAAAAAGAAAAAAAAC4AAAAAAAIuAAAAAAAALgAAAAAAAoEAAAAAAAAgAAAAAAAALQAAAAAAAy4AAAAAAACBAAAAAAAAgQAAAAAAAC4AAAAAAAAuAAAAAAABLQAAAAAAAy4AAAAAAAMYAAAAAAAALgAAAAAAAi0AAAAAAAMuAAAAAAAALgAAAAAAAi4AAAAAAACBAAAAAAAAIAAAAAACAA== version: 7 -1,-4: ind: -1,-4 - tiles: gQAAAAAAABsAAAAAAAAbAAAAAAAAGwAAAAAAABsAAAAAAACBAAAAAAAAIAAAAAABACAAAAAAAwAgAAAAAAMAIAAAAAAAACAAAAAAAQAgAAAAAAEAIAAAAAADACAAAAAAAgAgAAAAAAEAIAAAAAACAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAACAAAAAAAgAgAAAAAAIAIAAAAAAAACAAAAAAAgAgAAAAAAMAIAAAAAABACAAAAAAAgAgAAAAAAMAIAAAAAAAACAAAAAAAgBgAAAAAAAAYAAAAAADAGAAAAAAAQBgAAAAAAAAYAAAAAABAIEAAAAAAAAgAAAAAAIAIAAAAAAAACAAAAAAAgAgAAAAAAAAIAAAAAABACAAAAAAAQAgAAAAAAAAIAAAAAABACAAAAAAAwAgAAAAAAIAYAAAAAABAGAAAAAAAABgAAAAAAEAYAAAAAADAGAAAAAAAACBAAAAAAAAgQAAAAAAAB4AAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAGAAAAAAAgBgAAAAAAAAYAAAAAACAGAAAAAAAQBgAAAAAAEAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAABgAAAAAAIAYAAAAAAAAGAAAAAAAgBgAAAAAAMAYAAAAAADAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAB4AAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAIAAAAAABAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAAcAAAAAAAAgAAAAAAAABwAAAAAAAAcAAAAAAAAHAAAAAAAAIAAAAAACAC0AAAAAAAMuAAAAAAADLwAAAAAAAC8AAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAGAAAAAAAAIEAAAAAAAAHAAAAAAAAIAAAAAAAACAAAAAAAgAgAAAAAAAAIAAAAAADACAAAAAAAAAlAAAAAAAALgAAAAAAAS4AAAAAAAMvAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAHgAAAAAAAIEAAAAAAACBAAAAAAAABwAAAAAAACAAAAAAAAAgAAAAAAMABwAAAAAAAAcAAAAAAAAHAAAAAAAAJQAAAAAAACUAAAAAAQAuAAAAAAABLgAAAAAAA4EAAAAAAAAeAAAAAAAAHgAAAAAAAB4AAAAAAAAeAAAAAAAAgQAAAAAAAAcAAAAAAAAgAAAAAAAAIAAAAAABACAAAAAAAAAgAAAAAAAAIAAAAAACAC4AAAAAAAMlAAAAAAMAJQAAAAABACAAAAAAAQBvAAAAAAAAHgAAAAAAAG8AAAAAAABvAAAAAAAAbwAAAAAAAIEAAAAAAAAgAAAAAAMAIAAAAAAAACAAAAAAAgAgAAAAAAIAIAAAAAADACAAAAAAAQAuAAAAAAABLgAAAAAAAyUAAAAAAwAgAAAAAAEAbwAAAAAAAB4AAAAAAABvAAAAAAAAbwAAAAAAAG8AAAAAAACBAAAAAAAAgQAAAAAAACAAAAAAAgCBAAAAAAAAIAAAAAACAIEAAAAAAAAgAAAAAAEAgQAAAAAAAC0AAAAAAAArAAAAAAEHIAAAAAACAG8AAAAAAAAeAAAAAAAAbwAAAAAAAG8AAAAAAABvAAAAAAAAgQAAAAAAACAAAAAAAQAgAAAAAAEAgQAAAAAAACAAAAAAAACBAAAAAAAAIAAAAAACAIEAAAAAAAAtAAAAAAAAKwAAAAAABy0AAAAAAACBAAAAAAAAHgAAAAAAAG8AAAAAAABvAAAAAAAAbwAAAAAAAIEAAAAAAAAHAAAAAAAABwAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAACAAAAAAAACBAAAAAAAALQAAAAAAACsAAAAAAActAAAAAAAAgQAAAAAAAB4AAAAAAAAgAAAAAAIAIAAAAAADACAAAAAAAwCBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAIAAAAAABAIEAAAAAAAAgAAAAAAAAgQAAAAAAAC0AAAAAAAArAAAAAAEHLQAAAAAAACAAAAAAAAAeAAAAAAAAIAAAAAADACAAAAAAAQAgAAAAAAIAgQAAAAAAACAAAAAAAgAgAAAAAAAAIAAAAAADACAAAAAAAQAgAAAAAAAAIAAAAAACAA== + tiles: gQAAAAAAABsAAAAAAAAbAAAAAAAAGwAAAAAAABsAAAAAAACBAAAAAAAAIAAAAAAAACAAAAAAAwAgAAAAAAMAIAAAAAADACAAAAAAAgAgAAAAAAMAIAAAAAABACAAAAAAAAAgAAAAAAMAIAAAAAACAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAACAAAAAAAgAgAAAAAAEAIAAAAAADACAAAAAAAQAgAAAAAAEAIAAAAAACACAAAAAAAwAgAAAAAAIAIAAAAAADACAAAAAAAgBgAAAAAAAAYAAAAAABAGAAAAAAAwBgAAAAAAEAYAAAAAAAAIEAAAAAAAAgAAAAAAAAIAAAAAADACAAAAAAAgAgAAAAAAMAIAAAAAADACAAAAAAAwAgAAAAAAIAIAAAAAABACAAAAAAAwAgAAAAAAEAYAAAAAACAGAAAAAAAQBgAAAAAAIAYAAAAAADAGAAAAAAAQCBAAAAAAAAgQAAAAAAAB4AAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAGAAAAAAAwBgAAAAAAEAYAAAAAAAAGAAAAAAAgBgAAAAAAEAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAABgAAAAAAEAYAAAAAAAAGAAAAAAAgBgAAAAAAEAYAAAAAABAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAB4AAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAIAAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAAcAAAAAAAAgAAAAAAMAIAAAAAACAAcAAAAAAAAHAAAAAAAAgQAAAAAAAC0AAAAAAAMuAAAAAAADLwAAAAAAAC8AAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAGAAAAAAAAIEAAAAAAAAHAAAAAAAAIAAAAAACACAAAAAAAAAgAAAAAAIAIAAAAAABAIEAAAAAAAAlAAAAAAAALgAAAAAAAS4AAAAAAAMvAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAHgAAAAAAAIEAAAAAAACBAAAAAAAABwAAAAAAACAAAAAAAwAgAAAAAAEAIAAAAAAAACAAAAAAAgCBAAAAAAAAJQAAAAAAACUAAAAAAgAuAAAAAAABLgAAAAAAA4EAAAAAAAAeAAAAAAAAHgAAAAAAAB4AAAAAAAAeAAAAAAAAgQAAAAAAAAcAAAAAAAAgAAAAAAIAIAAAAAABACAAAAAAAgAgAAAAAAIAIAAAAAABAC4AAAAAAAMlAAAAAAAAJQAAAAACACAAAAAAAgBvAAAAAAAAHgAAAAAAAG8AAAAAAABvAAAAAAAAbwAAAAAAAIEAAAAAAAAgAAAAAAIAIAAAAAADAAcAAAAAAAAHAAAAAAAABwAAAAAAACAAAAAAAQAuAAAAAAABLgAAAAAAAyUAAAAAAwAgAAAAAAEAbwAAAAAAAB4AAAAAAABvAAAAAAAAbwAAAAAAAG8AAAAAAACBAAAAAAAAgQAAAAAAACAAAAAAAwAHAAAAAAAABwAAAAAAAAcAAAAAAAAgAAAAAAMAgQAAAAAAAC0AAAAAAAArAAAAAAAHIAAAAAAAAG8AAAAAAAAeAAAAAAAAbwAAAAAAAG8AAAAAAABvAAAAAAAAgQAAAAAAACAAAAAAAwAgAAAAAAAAIAAAAAADACAAAAAAAQAgAAAAAAMAIAAAAAABAIEAAAAAAAAtAAAAAAAAKwAAAAADBy0AAAAAAACBAAAAAAAAHgAAAAAAAG8AAAAAAABvAAAAAAAAbwAAAAAAAIEAAAAAAAAgAAAAAAAAIAAAAAAAACAAAAAAAQAgAAAAAAEAIAAAAAADACAAAAAAAQCBAAAAAAAALQAAAAAAACsAAAAAAwctAAAAAAAAgQAAAAAAAB4AAAAAAAAgAAAAAAIAIAAAAAADACAAAAAAAgCBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAAAgAAAAAAEAgQAAAAAAAC0AAAAAAAArAAAAAAEHLQAAAAAAACAAAAAAAgAeAAAAAAAAIAAAAAAAACAAAAAAAQAgAAAAAAAAgQAAAAAAACAAAAAAAwAgAAAAAAMAIAAAAAADACAAAAAAAwCBAAAAAAAAIAAAAAAAAA== version: 7 0,-5: ind: 0,-5 - tiles: LwAAAAAAAIEAAAAAAAAbAAAAAAAAGwAAAAAAABsAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAAAuAAAAAAACLQAAAAAAAy0AAAAAAAMtAAAAAAADLQAAAAAAAy0AAAAAAAMtAAAAAAADLQAAAAAAAy8AAAAAAACBAAAAAAAAGwAAAAAAACkAAAAAAQCBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAALQAAAAAAACUAAAAAAAArAAAAAAMAKwAAAAADACsAAAAAAwArAAAAAAIAJQAAAAABACsAAAAAAAAvAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAACkAAAAAAQCBAAAAAAAAgQAAAAAAAC4AAAAAAAEtAAAAAAADLQAAAAAAAy0AAAAAAAMtAAAAAAADLgAAAAAAAysAAAAAAAcuAAAAAAACgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAC0AAAAAAAArAAAAAAAHLQAAAAAAABsAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAAApAAAAAAMAgQAAAAAAAIEAAAAAAACBAAAAAAAAJQAAAAAAACUAAAAAAgAlAAAAAAIAJQAAAAAAAIEAAAAAAAAYAAAAAAAAGAAAAAAAABgAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAAApAAAAAAMAgQAAAAAAACkAAAAAAQCBAAAAAAAAgQAAAAAAACUAAAAAAwAlAAAAAAMAJQAAAAACAIEAAAAAAAAuAAAAAAAALQAAAAAAACsAAAAAAQctAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAKQAAAAABAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAAAuAAAAAAACLQAAAAAAAy0AAAAAAAMtAAAAAAADLQAAAAAAAy4AAAAAAAArAAAAAAEHLQAAAAAAABsAAAAAAACBAAAAAAAAKQAAAAAAACkAAAAAAgCBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAALQAAAAAAACUAAAAAAwArAAAAAAMAKwAAAAADACsAAAAAAQArAAAAAAMAJQAAAAAAAC0AAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAAApAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAC0AAAAAAAArAAAAAAEHLgAAAAAAAi0AAAAAAAMtAAAAAAADLQAAAAAAAy0AAAAAAAMuAAAAAAAALQAAAAAAAy0AAAAAAAMuAAAAAAADgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAAAtAAAAAAAAKwAAAAADBy0AAAAAAACBAAAAAAAAYAAAAAAAAGAAAAAAAgBgAAAAAAMAYAAAAAABAC0AAAAAAAMuAAAAAAADLQAAAAAAAC0AAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAALQAAAAAAACsAAAAAAgctAAAAAAAAgQAAAAAAAGAAAAAAAQBgAAAAAAMAYAAAAAADAGAAAAAAAQAgAAAAAAIALQAAAAAAAC0AAAAAAAAtAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAC0AAAAAAAArAAAAAAEHLQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAB4AAAAAAACBAAAAAAAAIAAAAAACAC0AAAAAAAAuAAAAAAABLQAAAAAAAy0AAAAAAAMtAAAAAAADLQAAAAAAAy0AAAAAAAMuAAAAAAAAKwAAAAABBy0AAAAAAACBAAAAAAAAHgAAAAAAAB4AAAAAAAAeAAAAAAAAHgAAAAAAACAAAAAAAQAtAAAAAAAAJQAAAAACACsAAAAAAgArAAAAAAIAKwAAAAACACsAAAAAAgArAAAAAAAAKwAAAAACACUAAAAAAwAtAAAAAAAAIAAAAAADAB4AAAAAAAAgAAAAAAMAIAAAAAAAACAAAAAAAAAgAAAAAAEALgAAAAAAAS0AAAAAAAMtAAAAAAADLQAAAAAAAy0AAAAAAAMtAAAAAAADLQAAAAAAAy0AAAAAAAMtAAAAAAADLgAAAAAAAIEAAAAAAAAKAAAAAAAACgAAAAAAAB4AAAAAAAAeAAAAAAAAgQAAAAAAAC0AAAAAAAAtAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAAAYAAAAAAAAGAAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAA== + tiles: LwAAAAAAAIEAAAAAAAAbAAAAAAAAGwAAAAAAABsAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAAAuAAAAAAACLQAAAAAAAy0AAAAAAAMtAAAAAAADLQAAAAAAAy0AAAAAAAMtAAAAAAADLQAAAAAAAy8AAAAAAACBAAAAAAAAGwAAAAAAACkAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAALQAAAAAAACUAAAAAAgArAAAAAAIAKwAAAAACACsAAAAAAAArAAAAAAMAJQAAAAACACsAAAAAAQAvAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAACkAAAAAAACBAAAAAAAAgQAAAAAAAC4AAAAAAAEtAAAAAAADLQAAAAAAAy0AAAAAAAMtAAAAAAADLgAAAAAAAysAAAAAAwcuAAAAAAACgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAC0AAAAAAAArAAAAAAMHLQAAAAAAABsAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAAApAAAAAAIAgQAAAAAAAIEAAAAAAACBAAAAAAAAJQAAAAADACUAAAAAAwAlAAAAAAAAJQAAAAACAIEAAAAAAAAYAAAAAAAAGAAAAAAAABgAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAAApAAAAAAAAgQAAAAAAACkAAAAAAACBAAAAAAAAgQAAAAAAACUAAAAAAQAlAAAAAAEAJQAAAAAAAIEAAAAAAAAuAAAAAAAALQAAAAAAACsAAAAAAQctAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAKQAAAAADAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAAAuAAAAAAACLQAAAAAAAy0AAAAAAAMtAAAAAAADLQAAAAAAAy4AAAAAAAArAAAAAAMHLQAAAAAAABsAAAAAAACBAAAAAAAAKQAAAAAAACkAAAAAAgCBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAALQAAAAAAACUAAAAAAQArAAAAAAEAKwAAAAADACsAAAAAAgArAAAAAAMAJQAAAAACAC0AAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAAApAAAAAAIAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAC0AAAAAAAArAAAAAAAHLgAAAAAAAi0AAAAAAAMtAAAAAAADLQAAAAAAAy0AAAAAAAMuAAAAAAAALQAAAAAAAy0AAAAAAAMuAAAAAAADgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAAAtAAAAAAAAKwAAAAAABy0AAAAAAACBAAAAAAAAYAAAAAABAGAAAAAAAgBgAAAAAAMAYAAAAAACAC0AAAAAAAMuAAAAAAADLQAAAAAAAC0AAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAALQAAAAAAACsAAAAAAActAAAAAAAAgQAAAAAAAGAAAAAAAABgAAAAAAEAYAAAAAAAAGAAAAAAAQAgAAAAAAIALQAAAAAAAC0AAAAAAAAtAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAC0AAAAAAAArAAAAAAMHLQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAB4AAAAAAACBAAAAAAAAIAAAAAAAAC0AAAAAAAAuAAAAAAABLQAAAAAAAy0AAAAAAAMtAAAAAAADLQAAAAAAAy0AAAAAAAMuAAAAAAAAKwAAAAABBy0AAAAAAACBAAAAAAAAHgAAAAAAAB4AAAAAAAAeAAAAAAAAHgAAAAAAACAAAAAAAAAtAAAAAAAAJQAAAAADACsAAAAAAwArAAAAAAAAKwAAAAADACsAAAAAAgArAAAAAAIAKwAAAAADACUAAAAAAQAtAAAAAAAAIAAAAAADAB4AAAAAAAAgAAAAAAEAIAAAAAAAACAAAAAAAAAgAAAAAAEALgAAAAAAAS0AAAAAAAMtAAAAAAADLQAAAAAAAy0AAAAAAAMtAAAAAAADLQAAAAAAAy0AAAAAAAMtAAAAAAADLgAAAAAAAIEAAAAAAAAKAAAAAAAACgAAAAAAAB4AAAAAAAAeAAAAAAAAgQAAAAAAAC0AAAAAAAAtAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAAAYAAAAAAAAGAAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAA== version: 7 -2,-4: ind: -2,-4 - tiles: YAAAAAADAGAAAAAAAwCBAAAAAAAAYAAAAAAAAGAAAAAAAwBgAAAAAAAAYAAAAAACAGAAAAAAAABgAAAAAAEAYAAAAAAAAGAAAAAAAgBgAAAAAAAAYAAAAAAAAGAAAAAAAgBgAAAAAAAAYAAAAAADAGAAAAAAAwBgAAAAAAMAgQAAAAAAACAAAAAAAgCBAAAAAAAAYAAAAAABAGAAAAAAAABgAAAAAAAAYAAAAAABAGAAAAAAAwBgAAAAAAAAYAAAAAADAGAAAAAAAwCBAAAAAAAAgQAAAAAAACAAAAAAAQBgAAAAAAIAYAAAAAACAGAAAAAAAwBgAAAAAAMAgQAAAAAAAGAAAAAAAwBgAAAAAAAAYAAAAAAAAGAAAAAAAgBgAAAAAAMAYAAAAAACAGAAAAAAAgBgAAAAAAEAgQAAAAAAAGAAAAAAAgBgAAAAAAEAYAAAAAADAGAAAAAAAgBgAAAAAAAAYAAAAAADAIEAAAAAAABrAAAAAAEAawAAAAACAGsAAAAAAwBrAAAAAAEAgQAAAAAAAGAAAAAAAgBgAAAAAAIAYAAAAAADAIEAAAAAAABgAAAAAAEAYAAAAAAAAIEAAAAAAACBAAAAAAAAYAAAAAACAGAAAAAAAgCBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAABgAAAAAAMAYAAAAAACAGAAAAAAAACBAAAAAAAAYAAAAAADAGAAAAAAAgAYAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAB4AAAAAAAAeAAAAAAAAHgAAAAAAAB4AAAAAAACBAAAAAAAAgQAAAAAAAA8AAAAAAQCBAAAAAAAAgQAAAAAAAGAAAAAAAwBgAAAAAAAAGAAAAAAAABgAAAAAAAAYAAAAAAAAGAAAAAAAABgAAAAAAAAtAAAAAAADLQAAAAAAAy0AAAAAAAMtAAAAAAADLQAAAAAAAy0AAAAAAAMtAAAAAAADLgAAAAAAA4EAAAAAAACBAAAAAAAAIAAAAAABABgAAAAAAAAYAAAAAAAAGAAAAAAAABgAAAAAAAAYAAAAAAAAGAAAAAAAABgAAAAAAAArAAAAAAAAKwAAAAACACsAAAAAAgAlAAAAAAMAJQAAAAACAC4AAAAAAAEtAAAAAAADLQAAAAAAAy0AAAAAAAMYAAAAAAAAGAAAAAAAABgAAAAAAAAYAAAAAAAAGAAAAAAAABgAAAAAAAAYAAAAAAAAGAAAAAAAABgAAAAAAAAuAAAAAAADJQAAAAABACUAAAAAAQArAAAAAAEAKwAAAAADACsAAAAAAgAlAAAAAAIABAAAAAAAABgAAAAAAAAYAAAAAAAAGAAAAAAAABgAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAALgAAAAAAAS0AAAAAAAMtAAAAAAADLQAAAAAAAy0AAAAAAAMtAAAAAAADLgAAAAAAAxgAAAAAAAAYAAAAAAAAGAAAAAAAABgAAAAAAAAYAAAAAAAAgQAAAAAAAC8AAAAAAAAvAAAAAAAAgQAAAAAAAIEAAAAAAAAYAAAAAAAAGAAAAAAAAIEAAAAAAACBAAAAAAAALgAAAAAAAy4AAAAAAAEYAAAAAAAAGAAAAAAAABgAAAAAAAAYAAAAAAAAGAAAAAAAAIEAAAAAAAAYAAAAAAAAGAAAAAAAAIEAAAAAAAAeAAAAAAAAHgAAAAAAAB4AAAAAAAAeAAAAAAAAgQAAAAAAAIEAAAAAAAAuAAAAAAADGAAAAAAAABgAAAAAAAAYAAAAAAAAGAAAAAAAABgAAAAAAACBAAAAAAAAGAAAAAAAAIEAAAAAAACBAAAAAAAAIAAAAAABACUAAAAAAgAlAAAAAAIAIAAAAAADAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAALwAAAAAAAC8AAAAAAAAvAAAAAAAAgQAAAAAAAIEAAAAAAAAvAAAAAAAAGAAAAAAAACAAAAAAAQAlAAAAAAAAJQAAAAABACAAAAAAAQAYAAAAAAAAGAAAAAAAABgAAAAAAAAeAAAAAAAAHgAAAAAAAC0AAAAAAAIrAAAAAAMBLgAAAAAAAS4AAAAAAAOBAAAAAAAAgQAAAAAAAIEAAAAAAAAgAAAAAAMAIAAAAAACACAAAAAAAQAgAAAAAAIAgQAAAAAAAIEAAAAAAAAvAAAAAAAAgQAAAAAAAB4AAAAAAAAtAAAAAAACKwAAAAACARgAAAAAAAAtAAAAAAACgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAGAAAAAAAAA== + tiles: YAAAAAADAGAAAAAAAACBAAAAAAAAYAAAAAAAAGAAAAAAAwBgAAAAAAAAYAAAAAAAAGAAAAAAAABgAAAAAAAAYAAAAAADAGAAAAAAAABgAAAAAAAAYAAAAAAAAGAAAAAAAwBgAAAAAAMAYAAAAAABAGAAAAAAAABgAAAAAAEAgQAAAAAAACAAAAAAAQCBAAAAAAAAYAAAAAACAGAAAAAAAgBgAAAAAAEAYAAAAAAAAGAAAAAAAgBgAAAAAAAAYAAAAAADAGAAAAAAAgCBAAAAAAAAgQAAAAAAACAAAAAAAwBgAAAAAAIAYAAAAAADAGAAAAAAAgBgAAAAAAIAgQAAAAAAAGAAAAAAAQBgAAAAAAAAYAAAAAADAGAAAAAAAQBgAAAAAAMAYAAAAAABAGAAAAAAAwBgAAAAAAMAgQAAAAAAAGAAAAAAAwBgAAAAAAMAYAAAAAACAGAAAAAAAgBgAAAAAAAAYAAAAAACAIEAAAAAAABrAAAAAAAAawAAAAABAGsAAAAAAABrAAAAAAMAgQAAAAAAAGAAAAAAAgBgAAAAAAEAYAAAAAABAIEAAAAAAABgAAAAAAMAYAAAAAAAAIEAAAAAAACBAAAAAAAAYAAAAAAAAGAAAAAAAQCBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAABgAAAAAAIAYAAAAAABAGAAAAAAAACBAAAAAAAAYAAAAAACAGAAAAAAAgAYAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAB4AAAAAAAAeAAAAAAAAHgAAAAAAAB4AAAAAAACBAAAAAAAAgQAAAAAAAA8AAAAAAgCBAAAAAAAAgQAAAAAAAGAAAAAAAABgAAAAAAAAGAAAAAAAABgAAAAAAAAYAAAAAAAAGAAAAAAAABgAAAAAAAAtAAAAAAADLQAAAAAAAy0AAAAAAAMtAAAAAAADLQAAAAAAAy0AAAAAAAMtAAAAAAADLgAAAAAAA4EAAAAAAACBAAAAAAAAIAAAAAAAABgAAAAAAAAYAAAAAAAAGAAAAAAAABgAAAAAAAAYAAAAAAAAGAAAAAAAABgAAAAAAAArAAAAAAEAKwAAAAACACsAAAAAAQAlAAAAAAIAJQAAAAACAC4AAAAAAAEtAAAAAAADLQAAAAAAAy0AAAAAAAMYAAAAAAAAGAAAAAAAABgAAAAAAAAYAAAAAAAAGAAAAAAAABgAAAAAAAAYAAAAAAAAGAAAAAAAABgAAAAAAAAuAAAAAAADJQAAAAACACUAAAAAAwArAAAAAAMAKwAAAAACACsAAAAAAAAlAAAAAAIABAAAAAAAABgAAAAAAAAYAAAAAAAAGAAAAAAAABgAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAALgAAAAAAAS0AAAAAAAMtAAAAAAADLQAAAAAAAy0AAAAAAAMtAAAAAAADLgAAAAAAAxgAAAAAAAAYAAAAAAAAGAAAAAAAABgAAAAAAAAYAAAAAAAAgQAAAAAAAC8AAAAAAAAvAAAAAAAAgQAAAAAAAIEAAAAAAAAYAAAAAAAAGAAAAAAAAIEAAAAAAACBAAAAAAAALgAAAAAAAy4AAAAAAAEYAAAAAAAAGAAAAAAAABgAAAAAAAAYAAAAAAAAGAAAAAAAAIEAAAAAAAAYAAAAAAAAGAAAAAAAAIEAAAAAAAAeAAAAAAAAHgAAAAAAAB4AAAAAAAAeAAAAAAAAgQAAAAAAAIEAAAAAAAAuAAAAAAADGAAAAAAAABgAAAAAAAAYAAAAAAAAGAAAAAAAABgAAAAAAACBAAAAAAAAGAAAAAAAAIEAAAAAAACBAAAAAAAAIAAAAAAAACUAAAAAAwAlAAAAAAMAIAAAAAACAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAALwAAAAAAAC8AAAAAAAAvAAAAAAAAgQAAAAAAAIEAAAAAAAAvAAAAAAAAGAAAAAAAACAAAAAAAQAlAAAAAAIAJQAAAAADACAAAAAAAgAYAAAAAAAAGAAAAAAAABgAAAAAAAAeAAAAAAAAHgAAAAAAAC0AAAAAAAIrAAAAAAABLgAAAAAAAS4AAAAAAAOBAAAAAAAAgQAAAAAAAIEAAAAAAAAgAAAAAAAAIAAAAAADACAAAAAAAQAgAAAAAAEAgQAAAAAAAIEAAAAAAAAvAAAAAAAAgQAAAAAAAB4AAAAAAAAtAAAAAAACKwAAAAAAARgAAAAAAAAtAAAAAAACgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAGAAAAAAAAA== version: 7 -3,-4: ind: -3,-4 - tiles: gQAAAAAAAIEAAAAAAAAYAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAGAAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAABgAAAAAAACBAAAAAAAALQAAAAAAACsAAAAAAwctAAAAAAAAgQAAAAAAAIEAAAAAAAAYAAAAAAAAGAAAAAAAABgAAAAAAACBAAAAAAAAGAAAAAAAABgAAAAAAAAYAAAAAAAAgQAAAAAAABgAAAAAAAAYAAAAAAAAgQAAAAAAAC0AAAAAAAArAAAAAAIHLQAAAAAAAIEAAAAAAACBAAAAAAAAGAAAAAAAABgAAAAAAAAYAAAAAAAAgQAAAAAAABgAAAAAAAAYAAAAAAAAGAAAAAAAAIEAAAAAAAAYAAAAAAAAGAAAAAAAAIEAAAAAAAAtAAAAAAAAJQAAAAAAAC0AAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAABgAAAAAAACBAAAAAAAALgAAAAAAAS0AAAAAAAMuAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAAAYAAAAAAAAGAAAAAAAAIEAAAAAAAAXAAAAAAAAFwAAAAAAABcAAAAAAAAXAAAAAAAAFwAAAAAAABcAAAAAAAAXAAAAAAAAFwAAAAAAABcAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAGAAAAAAAABgAAAAAAAAYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFwAAAAAAABcAAAAAAAAXAAAAAAAAFwAAAAAAABcAAAAAAAAXAAAAAAAAFwAAAAAAABcAAAAAAACBAAAAAAAAgQAAAAAAABgAAAAAAAAYAAAAAAAAGAAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAAAYAAAAAAAAGAAAAAAAABgAAAAAAAAuAAAAAAADgQAAAAAAABgAAAAAAAAYAAAAAAAALgAAAAAAAi0AAAAAAAMtAAAAAAADIAAAAAADAIEAAAAAAAAgAAAAAAMAIAAAAAADAIEAAAAAAACBAAAAAAAAGAAAAAAAABgAAAAAAAAYAAAAAAAALQAAAAAAAIEAAAAAAAAYAAAAAAAAGAAAAAAAAC0AAAAAAAAgAAAAAAAAIAAAAAAAACAAAAAAAwCBAAAAAAAAIAAAAAAAACAAAAAAAQCBAAAAAAAAgQAAAAAAABgAAAAAAAAYAAAAAAAAGAAAAAAAAC4AAAAAAAEtAAAAAAADLQAAAAAAAy0AAAAAAAMuAAAAAAAAIAAAAAADACAAAAAAAgAgAAAAAAEAIAAAAAAAACAAAAAAAgAgAAAAAAAAgQAAAAAAAIEAAAAAAAAYAAAAAAAAGAAAAAAAABgAAAAAAAAtAAAAAAADgQAAAAAAACAAAAAAAAAgAAAAAAAAIAAAAAACACAAAAAAAwAgAAAAAAEAIAAAAAAAAIEAAAAAAAAgAAAAAAIAIAAAAAABAIEAAAAAAACBAAAAAAAAGAAAAAAAABgAAAAAAAAYAAAAAAAALQAAAAAAA4EAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAGAAAAAAAAC0AAAAAAAMtAAAAAAAALQAAAAAAAC0AAAAAAAMuAAAAAAADLgAAAAAAAi0AAAAAAAMtAAAAAAADLQAAAAAAAy0AAAAAAAMtAAAAAAADLQAAAAAAAy0AAAAAAAMtAAAAAAADgQAAAAAAAIEAAAAAAAAtAAAAAAADLQAAAAAAAC0AAAAAAAAuAAAAAAADLQAAAAAAAC4AAAAAAAEtAAAAAAADLQAAAAAAAxgAAAAAAAAYAAAAAAAAGAAAAAAAABgAAAAAAAAYAAAAAAAAGAAAAAAAAB4AAAAAAAAeAAAAAAAALQAAAAAAAy0AAAAAAAOBAAAAAAAALQAAAAAAAC0AAAAAAAAuAAAAAAACLQAAAAAAAy0AAAAAAAMYAAAAAAAALQAAAAAAAy0AAAAAAAMuAAAAAAADLQAAAAAAAC0AAAAAAAAeAAAAAAAAgQAAAAAAAA== + tiles: gQAAAAAAAIEAAAAAAAAYAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAGAAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAABgAAAAAAACBAAAAAAAALQAAAAAAACsAAAAAAQctAAAAAAAAgQAAAAAAAIEAAAAAAAAYAAAAAAAAGAAAAAAAABgAAAAAAACBAAAAAAAAGAAAAAAAABgAAAAAAAAYAAAAAAAAgQAAAAAAABgAAAAAAAAYAAAAAAAAgQAAAAAAAC0AAAAAAAArAAAAAAIHLQAAAAAAAIEAAAAAAACBAAAAAAAAGAAAAAAAABgAAAAAAAAYAAAAAAAAgQAAAAAAABgAAAAAAAAYAAAAAAAAGAAAAAAAAIEAAAAAAAAYAAAAAAAAGAAAAAAAAIEAAAAAAAAtAAAAAAAAJQAAAAACAC0AAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAABgAAAAAAACBAAAAAAAALgAAAAAAAS0AAAAAAAMuAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAAAYAAAAAAAAGAAAAAAAAIEAAAAAAAAXAAAAAAAAFwAAAAAAABcAAAAAAAAXAAAAAAAAFwAAAAAAABcAAAAAAAAXAAAAAAAAFwAAAAAAABcAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAGAAAAAAAABgAAAAAAAAYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFwAAAAAAABcAAAAAAAAXAAAAAAAAFwAAAAAAABcAAAAAAAAXAAAAAAAAFwAAAAAAABcAAAAAAACBAAAAAAAAgQAAAAAAABgAAAAAAAAYAAAAAAAAGAAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAAAYAAAAAAAAGAAAAAAAABgAAAAAAAAuAAAAAAADgQAAAAAAABgAAAAAAAAYAAAAAAAALgAAAAAAAi0AAAAAAAMtAAAAAAADIAAAAAACAIEAAAAAAAAgAAAAAAIAIAAAAAABAIEAAAAAAACBAAAAAAAAGAAAAAAAABgAAAAAAAAYAAAAAAAALQAAAAAAAIEAAAAAAAAYAAAAAAAAGAAAAAAAAC0AAAAAAAAgAAAAAAEAIAAAAAABACAAAAAAAwCBAAAAAAAAIAAAAAACACAAAAAAAACBAAAAAAAAgQAAAAAAABgAAAAAAAAYAAAAAAAAGAAAAAAAAC4AAAAAAAEtAAAAAAADLQAAAAAAAy0AAAAAAAMuAAAAAAAAIAAAAAABACAAAAAAAAAgAAAAAAEAIAAAAAADACAAAAAAAAAgAAAAAAMAgQAAAAAAAIEAAAAAAAAYAAAAAAAAGAAAAAAAABgAAAAAAAAtAAAAAAADgQAAAAAAACAAAAAAAwAgAAAAAAIAIAAAAAACACAAAAAAAQAgAAAAAAAAIAAAAAADAIEAAAAAAAAgAAAAAAIAIAAAAAAAAIEAAAAAAACBAAAAAAAAGAAAAAAAABgAAAAAAAAYAAAAAAAALQAAAAAAA4EAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAGAAAAAAAAC0AAAAAAAMtAAAAAAAALQAAAAAAAC0AAAAAAAMuAAAAAAADLgAAAAAAAi0AAAAAAAMtAAAAAAADLQAAAAAAAy0AAAAAAAMtAAAAAAADLQAAAAAAAy0AAAAAAAMtAAAAAAADgQAAAAAAAIEAAAAAAAAtAAAAAAADLQAAAAAAAC0AAAAAAAAuAAAAAAADLQAAAAAAAC4AAAAAAAEtAAAAAAADLQAAAAAAAxgAAAAAAAAYAAAAAAAAGAAAAAAAABgAAAAAAAAYAAAAAAAAGAAAAAAAAB4AAAAAAAAeAAAAAAAALQAAAAAAAy0AAAAAAAOBAAAAAAAALQAAAAAAAC0AAAAAAAAuAAAAAAACLQAAAAAAAy0AAAAAAAMYAAAAAAAALQAAAAAAAy0AAAAAAAMuAAAAAAADLQAAAAAAAC0AAAAAAAAeAAAAAAAAgQAAAAAAAA== version: 7 -3,-3: ind: -3,-3 - tiles: LQAAAAAAAC4AAAAAAACBAAAAAAAALQAAAAAAAC0AAAAAAAAtAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAAAtAAAAAAAALQAAAAAAAC0AAAAAAACBAAAAAAAAgQAAAAAAAC0AAAAAAAAtAAAAAAAAgQAAAAAAAC0AAAAAAAAtAAAAAAAALQAAAAAAAIEAAAAAAAAJAAAAAAAACQAAAAAAAAkAAAAAAACBAAAAAAAAHgAAAAAAAB4AAAAAAAAeAAAAAAAAHgAAAAAAAIEAAAAAAAAtAAAAAAAALQAAAAAAAIEAAAAAAAAtAAAAAAAALQAAAAAAAC0AAAAAAACBAAAAAAAACQAAAAAAAAkAAAAAAAAJAAAAAAAAHgAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAALQAAAAAAAC0AAAAAAACBAAAAAAAALQAAAAAAAC0AAAAAAAAtAAAAAAAAgQAAAAAAAAkAAAAAAAAJAAAAAAAACQAAAAAAAIEAAAAAAAAeAAAAAAAAHgAAAAAAAB4AAAAAAAAeAAAAAAAAgQAAAAAAAC0AAAAAAAAuAAAAAAAAgQAAAAAAAC0AAAAAAAAtAAAAAAAALQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAALQAAAAAAAC0AAAAAAAAtAAAAAAAAgQAAAAAAAIEAAAAAAAAtAAAAAAADLQAAAAAAA4EAAAAAAAAtAAAAAAAALQAAAAAAAC4AAAAAAAEtAAAAAAADLQAAAAAAAxgAAAAAAAAtAAAAAAADLQAAAAAAAy4AAAAAAAAtAAAAAAAALQAAAAAAAB4AAAAAAACBAAAAAAAALQAAAAAAAy0AAAAAAAAtAAAAAAAALgAAAAAAAC0AAAAAAAAuAAAAAAACLQAAAAAAAy0AAAAAAAMYAAAAAAAAGAAAAAAAABgAAAAAAAAYAAAAAAAAGAAAAAAAABgAAAAAAAAeAAAAAAAAHgAAAAAAAC0AAAAAAAMtAAAAAAAALQAAAAAAAC0AAAAAAAMuAAAAAAAALgAAAAAAAS0AAAAAAAMtAAAAAAADLQAAAAAAAy0AAAAAAAMtAAAAAAADLQAAAAAAAy0AAAAAAAMtAAAAAAADgQAAAAAAAIEAAAAAAAAtAAAAAAADgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAACQAAAAAAwAkAAAAAAEAKQAAAAACACkAAAAAAwAkAAAAAAMAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAAAYAAAAAAAALQAAAAAAA4EAAAAAAAAkAAAAAAMAJAAAAAAAAIEAAAAAAACBAAAAAAAAJAAAAAACACQAAAAAAwAkAAAAAAAAJAAAAAADAIEAAAAAAACBAAAAAAAAGAAAAAAAABgAAAAAAAAYAAAAAAAAGAAAAAAAAC4AAAAAAAKBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAABgAAAAAAAAYAAAAAAAAGAAAAAAAABgAAAAAAAAtAAAAAAAAIAAAAAABAIEAAAAAAACBAAAAAAAAgQAAAAAAAB4AAAAAAAAeAAAAAAAAgQAAAAAAAIEAAAAAAAAYAAAAAAAAGAAAAAAAAIEAAAAAAAAYAAAAAAAAGAAAAAAAABgAAAAAAAAYAAAAAAAALgAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAABgAAAAAAAAYAAAAAAAAGAAAAAAAABgAAAAAAAAYAAAAAAAAGAAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAAAYAAAAAAAAGAAAAAAAABgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXAAAAAAAAFwAAAAAAABcAAAAAAAAXAAAAAAAAFwAAAAAAABcAAAAAAAAXAAAAAAAAFwAAAAAAAIEAAAAAAACBAAAAAAAAGAAAAAAAABgAAAAAAAAYAAAAAAAAFwAAAAAAABcAAAAAAAAXAAAAAAAAFwAAAAAAABcAAAAAAAAXAAAAAAAAFwAAAAAAABcAAAAAAAAXAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAAAYAAAAAAAAgQAAAAAAAA== + tiles: LQAAAAAAAC4AAAAAAACBAAAAAAAALQAAAAAAAC0AAAAAAAAtAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAAAtAAAAAAAALQAAAAAAAC0AAAAAAACBAAAAAAAAgQAAAAAAAC0AAAAAAAAtAAAAAAAAgQAAAAAAAC0AAAAAAAAtAAAAAAAALQAAAAAAAIEAAAAAAAAJAAAAAAAACQAAAAAAAAkAAAAAAACBAAAAAAAAHgAAAAAAAB4AAAAAAAAeAAAAAAAAHgAAAAAAAIEAAAAAAAAtAAAAAAAALQAAAAAAAIEAAAAAAAAtAAAAAAAALQAAAAAAAC0AAAAAAACBAAAAAAAACQAAAAAAAAkAAAAAAAAJAAAAAAAAHgAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAALQAAAAAAAC0AAAAAAACBAAAAAAAALQAAAAAAAC0AAAAAAAAtAAAAAAAAgQAAAAAAAAkAAAAAAAAJAAAAAAAACQAAAAAAAIEAAAAAAAAeAAAAAAAAHgAAAAAAAB4AAAAAAAAeAAAAAAAAgQAAAAAAAC0AAAAAAAAuAAAAAAAAgQAAAAAAAC0AAAAAAAAtAAAAAAAALQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAALQAAAAAAAC0AAAAAAAAtAAAAAAAAgQAAAAAAAIEAAAAAAAAtAAAAAAADLQAAAAAAA4EAAAAAAAAtAAAAAAAALQAAAAAAAC4AAAAAAAEtAAAAAAADLQAAAAAAAxgAAAAAAAAtAAAAAAADLQAAAAAAAy4AAAAAAAAtAAAAAAAALQAAAAAAAB4AAAAAAACBAAAAAAAALQAAAAAAAy0AAAAAAAAtAAAAAAAALgAAAAAAAC0AAAAAAAAuAAAAAAACLQAAAAAAAy0AAAAAAAMYAAAAAAAAGAAAAAAAABgAAAAAAAAYAAAAAAAAGAAAAAAAABgAAAAAAAAeAAAAAAAAHgAAAAAAAC0AAAAAAAMtAAAAAAAALQAAAAAAAC0AAAAAAAMuAAAAAAAALgAAAAAAAS0AAAAAAAMtAAAAAAADLQAAAAAAAy0AAAAAAAMtAAAAAAADLQAAAAAAAy0AAAAAAAMtAAAAAAADgQAAAAAAAIEAAAAAAAAtAAAAAAADgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAACQAAAAAAQAkAAAAAAIAKQAAAAABACkAAAAAAwAkAAAAAAIAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAAAYAAAAAAAALQAAAAAAA4EAAAAAAAAkAAAAAAMAJAAAAAABAIEAAAAAAACBAAAAAAAAJAAAAAACACQAAAAAAQAkAAAAAAMAJAAAAAACAIEAAAAAAACBAAAAAAAAGAAAAAAAABgAAAAAAAAYAAAAAAAAGAAAAAAAAC4AAAAAAAKBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAABgAAAAAAAAYAAAAAAAAGAAAAAAAABgAAAAAAAAtAAAAAAAAIAAAAAABAIEAAAAAAACBAAAAAAAAgQAAAAAAAB4AAAAAAAAeAAAAAAAAgQAAAAAAAIEAAAAAAAAYAAAAAAAAGAAAAAAAAIEAAAAAAAAYAAAAAAAAGAAAAAAAABgAAAAAAAAYAAAAAAAALgAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAABgAAAAAAAAYAAAAAAAAGAAAAAAAABgAAAAAAAAYAAAAAAAAGAAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAAAYAAAAAAAAGAAAAAAAABgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXAAAAAAAAFwAAAAAAABcAAAAAAAAXAAAAAAAAFwAAAAAAABcAAAAAAAAXAAAAAAAAFwAAAAAAAIEAAAAAAACBAAAAAAAAGAAAAAAAABgAAAAAAAAYAAAAAAAAFwAAAAAAABcAAAAAAAAXAAAAAAAAFwAAAAAAABcAAAAAAAAXAAAAAAAAFwAAAAAAABcAAAAAAAAXAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAAAYAAAAAAAAgQAAAAAAAA== version: 7 -3,-2: ind: -3,-2 - tiles: gQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAGAAAAAAAABgAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAABgAAAAAAACBAAAAAAAACgAAAAAAAIEAAAAAAAAKAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAAAYAAAAAAAAGAAAAAAAABgAAAAAAACBAAAAAAAAgQAAAAAAAC8AAAAAAACBAAAAAAAAGAAAAAAAAIEAAAAAAAAKAAAAAAAAgQAAAAAAAAoAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAAAvAAAAAAAAgQAAAAAAAIEAAAAAAAAYAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAAAuAAAAAAACLQAAAAAAA4EAAAAAAACBAAAAAAAAGAAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAAAgAAAAAAIALgAAAAAAAS0AAAAAAAOBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAC4AAAAAAAItAAAAAAADgQAAAAAAAC8AAAAAAAAvAAAAAAAALwAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAAAtAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAFwAAAAAAABcAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAALQAAAAAAAC0AAAAAAAOBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAABcAAAAAAAAXAAAAAAAAFwAAAAAAABcAAAAAAAAXAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAC4AAAAAAAEtAAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABcAAAAAAAAXAAAAAAAAFwAAAAAAABcAAAAAAAAXAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAAAAAAAAAAAAAAAAAAAAFwAAAAAAABcAAAAAAAAXAAAAAAAAFwAAAAAAABcAAAAAAAAXAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAGAAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAABgAAAAAAAAXAAAAAAAAFwAAAAAAABcAAAAAAAAXAAAAAAAAFwAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAFgAAAAABABYAAAAAAwCBAAAAAAAALgAAAAAAAi0AAAAAAAMuAAAAAAADgQAAAAAAAA== + tiles: gQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAGAAAAAAAABgAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAABgAAAAAAACBAAAAAAAACgAAAAAAAIEAAAAAAAAKAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAAAYAAAAAAAAGAAAAAAAABgAAAAAAACBAAAAAAAAgQAAAAAAAC8AAAAAAACBAAAAAAAAGAAAAAAAAIEAAAAAAAAKAAAAAAAAgQAAAAAAAAoAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAAAvAAAAAAAAgQAAAAAAAIEAAAAAAAAYAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAAAuAAAAAAACLQAAAAAAA4EAAAAAAACBAAAAAAAAGAAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAAAgAAAAAAAALgAAAAAAAS0AAAAAAAOBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAC4AAAAAAAItAAAAAAADgQAAAAAAAC8AAAAAAAAvAAAAAAAALwAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAAAtAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAFwAAAAAAABcAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAALQAAAAAAAC0AAAAAAAOBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAABcAAAAAAAAXAAAAAAAAFwAAAAAAABcAAAAAAAAXAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAC4AAAAAAAEtAAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABcAAAAAAAAXAAAAAAAAFwAAAAAAABcAAAAAAAAXAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAAAAAAAAAAAAAAAAAAAAFwAAAAAAABcAAAAAAAAXAAAAAAAAFwAAAAAAABcAAAAAAAAXAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAGAAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAABgAAAAAAAAXAAAAAAAAFwAAAAAAABcAAAAAAAAXAAAAAAAAFwAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAFgAAAAACABYAAAAAAQCBAAAAAAAALgAAAAAAAi0AAAAAAAMuAAAAAAADgQAAAAAAAA== version: 7 -3,-1: ind: -3,-1 - tiles: gQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAABYAAAAAAwAWAAAAAAEAFgAAAAABABYAAAAAAwCBAAAAAAAALQAAAAAAAC0AAAAAAAAtAAAAAAAAgQAAAAAAAIEAAAAAAAAtAAAAAAADLgAAAAAAAoEAAAAAAAAtAAAAAAAALQAAAAAAAIEAAAAAAAAWAAAAAAIAFgAAAAACABYAAAAAAQAWAAAAAAIAgQAAAAAAAC0AAAAAAAAtAAAAAAAALQAAAAAAAIEAAAAAAAAgAAAAAAAALQAAAAAAAC0AAAAAAAAvAAAAAAAALQAAAAAAAC0AAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAFgAAAAAAAIEAAAAAAAAeAAAAAAAAHgAAAAAAAB4AAAAAAACBAAAAAAAAgQAAAAAAAC0AAAAAAAMuAAAAAAAAgQAAAAAAAC0AAAAAAAAtAAAAAAAAgQAAAAAAACAAAAAAAAAgAAAAAAAAIAAAAAAAACAAAAAAAAAgAAAAAAAAIAAAAAAAACAAAAAAAAAgAAAAAAAAHgAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAAAtAAAAAAAALQAAAAAAAC8AAAAAAAAgAAAAAAAAIAAAAAAAACAAAAAAAAAgAAAAAAAAIAAAAAAAACAAAAAAAAAgAAAAAAAAIAAAAAAAAB4AAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAIAAAAAAAACAAAAAAAAAgAAAAAAAAIAAAAAAAACAAAAAAAAAgAAAAAAAAIAAAAAAAACAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXAAAAAAAAFwAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAAAAAAAAAAAAFwAAAAAAABcAAAAAAAAXAAAAAAAAFwAAAAAAAAAAAAAAAAAAAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAAAAAAAAAAAAFwAAAAAAAAAAAAAAAACBAAAAAAAAFwAAAAAAABcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA== + tiles: gQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAABYAAAAAAgAWAAAAAAIAFgAAAAADABYAAAAAAACBAAAAAAAALQAAAAAAAC0AAAAAAAAtAAAAAAAAgQAAAAAAAIEAAAAAAAAtAAAAAAADLgAAAAAAAoEAAAAAAAAtAAAAAAAALQAAAAAAAIEAAAAAAAAWAAAAAAMAFgAAAAADABYAAAAAAwAWAAAAAAMAgQAAAAAAAC0AAAAAAAAtAAAAAAAALQAAAAAAAIEAAAAAAAAgAAAAAAAALQAAAAAAAC0AAAAAAAAvAAAAAAAALQAAAAAAAC0AAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAFgAAAAAAAIEAAAAAAAAeAAAAAAAAHgAAAAAAAB4AAAAAAACBAAAAAAAAgQAAAAAAAC0AAAAAAAMuAAAAAAAAgQAAAAAAAC0AAAAAAAAtAAAAAAAAgQAAAAAAACAAAAAAAgAgAAAAAAIAIAAAAAAAACAAAAAAAQAgAAAAAAAAIAAAAAACACAAAAAAAQAgAAAAAAEAHgAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAAAtAAAAAAAALQAAAAAAAC8AAAAAAAAgAAAAAAMAIAAAAAACACAAAAAAAAAgAAAAAAEAIAAAAAACACAAAAAAAwAgAAAAAAIAIAAAAAADAB4AAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAIAAAAAADACAAAAAAAwAgAAAAAAEAIAAAAAACACAAAAAAAAAgAAAAAAEAIAAAAAABACAAAAAAAwAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXAAAAAAAAFwAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAAAAAAAAAAAAFwAAAAAAABcAAAAAAAAXAAAAAAAAFwAAAAAAAAAAAAAAAAAAAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAAAAAAAAAAAAFwAAAAAAAAAAAAAAAACBAAAAAAAAFwAAAAAAABcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA== version: 7 -4,-1: ind: -4,-1 @@ -197,7 +197,7 @@ entities: version: 7 -4,-2: ind: -4,-2 - tiles: gQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAABcAAAAAAAAXAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAABgAAAAAAAAYAAAAAAAAGAAAAAAAAIEAAAAAAAAYAAAAAAAAGAAAAAAAABgAAAAAAAAYAAAAAAAAGAAAAAAAAAsAAAAAAACBAAAAAAAACQAAAAAAAAkAAAAAAAArAAAAAAIAKwAAAAABACAAAAAAAQCBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAGAAAAAAAABgAAAAAAAAYAAAAAAAAGAAAAAAAABgAAAAAAAALAAAAAAAAgQAAAAAAAAkAAAAAAAAJAAAAAAAAKwAAAAADACsAAAAAAQAgAAAAAAMAgQAAAAAAAIEAAAAAAAAYAAAAAAAAgQAAAAAAABgAAAAAAAAYAAAAAAAAGAAAAAAAABgAAAAAAAAYAAAAAAAACwAAAAAAAIEAAAAAAAAJAAAAAAAACQAAAAAAACsAAAAAAgArAAAAAAIAgQAAAAAAAIEAAAAAAAAYAAAAAAAAGAAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAIAAAAAABAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAADMAAAAADAAzAAAAAAEAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAALwAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAAAYAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAMwAAAAAHAIEAAAAAAAAvAAAAAAAALwAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAGAAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAAAYAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAFwAAAAAAABcAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAABcAAAAAAAAXAAAAAAAAFwAAAAAAABcAAAAAAAAXAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAABcAAAAAAAAXAAAAAAAAFwAAAAAAABcAAAAAAAAXAAAAAAAAgQAAAAAAABcAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAAAXAAAAAAAAFwAAAAAAABcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABcAAAAAAAAXAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAFwAAAAAAABcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXAAAAAAAAFwAAAAAAABcAAAAAAAAXAAAAAAAAFwAAAAAAABcAAAAAAAAXAAAAAAAAFwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXAAAAAAAAFwAAAAAAABcAAAAAAAAXAAAAAAAAFwAAAAAAABcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAA== + tiles: gQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAABcAAAAAAAAXAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAABgAAAAAAAAYAAAAAAAAGAAAAAAAAIEAAAAAAAAYAAAAAAAAGAAAAAAAABgAAAAAAAAYAAAAAAAAGAAAAAAAAAsAAAAAAACBAAAAAAAACQAAAAAAAAkAAAAAAAArAAAAAAEAKwAAAAABACAAAAAAAgCBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAGAAAAAAAABgAAAAAAAAYAAAAAAAAGAAAAAAAABgAAAAAAAALAAAAAAAAgQAAAAAAAAkAAAAAAAAJAAAAAAAAKwAAAAACACsAAAAAAQAgAAAAAAIAgQAAAAAAAIEAAAAAAAAYAAAAAAAAgQAAAAAAABgAAAAAAAAYAAAAAAAAGAAAAAAAABgAAAAAAAAYAAAAAAAACwAAAAAAAIEAAAAAAAAJAAAAAAAACQAAAAAAACsAAAAAAwArAAAAAAAAgQAAAAAAAIEAAAAAAAAYAAAAAAAAGAAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAIAAAAAABAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAADMAAAAACwAzAAAAAAwAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAALwAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAAAYAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAMwAAAAAJAIEAAAAAAAAvAAAAAAAALwAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAGAAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAAAYAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAFwAAAAAAABcAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAABcAAAAAAAAXAAAAAAAAFwAAAAAAABcAAAAAAAAXAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAABcAAAAAAAAXAAAAAAAAFwAAAAAAABcAAAAAAAAXAAAAAAAAgQAAAAAAABcAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAAAXAAAAAAAAFwAAAAAAABcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABcAAAAAAAAXAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAFwAAAAAAABcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXAAAAAAAAFwAAAAAAABcAAAAAAAAXAAAAAAAAFwAAAAAAABcAAAAAAAAXAAAAAAAAFwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXAAAAAAAAFwAAAAAAABcAAAAAAAAXAAAAAAAAFwAAAAAAABcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAA== version: 7 -5,-2: ind: -5,-2 @@ -205,7 +205,7 @@ entities: version: 7 -4,-4: ind: -4,-4 - tiles: DAAAAAAAAAwAAAAAAAAMAAAAAAAADAAAAAAAAAwAAAAAAAALAAAAAAAAgQAAAAAAAA0AAAAAAAANAAAAAAAAKwAAAAABACsAAAAAAQCBAAAAAAAAgQAAAAAAACAAAAAAAQCBAAAAAAAAgQAAAAAAAAwAAAAAAAAMAAAAAAAADAAAAAAAAAwAAAAAAAAMAAAAAAAACwAAAAAAAIEAAAAAAAANAAAAAAAADQAAAAAAACsAAAAAAAArAAAAAAEAHgAAAAAAAB4AAAAAAAAeAAAAAAAAHgAAAAAAAB4AAAAAAAAMAAAAAAAADAAAAAAAAAwAAAAAAAAMAAAAAAAADAAAAAAAAAsAAAAAAACBAAAAAAAADQAAAAAAAA0AAAAAAAArAAAAAAMAKwAAAAAAAB4AAAAAAAAeAAAAAAAAHgAAAAAAAB4AAAAAAAAeAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAHgAAAAAAAB4AAAAAAAAeAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAAAXAAAAAAAAFwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXAAAAAAAAFwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFwAAAAAAAAAAAAAAAAAXAAAAAAAAFwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABcAAAAAAAAXAAAAAAAAFwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAAAAAAAAAAAAFwAAAAAAABcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAC0AAAAAAAMtAAAAAAADAAAAAAAAABcAAAAAAAAXAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIEAAAAAAACBAAAAAAAALQAAAAAAAy0AAAAAAAMtAAAAAAADLgAAAAAAAxcAAAAAAAAXAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACBAAAAAAAALQAAAAAAAy0AAAAAAAMtAAAAAAADLgAAAAAAAy0AAAAAAAAXAAAAAAAAFwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACBAAAAAAAAgQAAAAAAAC0AAAAAAAMtAAAAAAADLgAAAAAAAy0AAAAAAAAuAAAAAAABFwAAAAAAABcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgQAAAAAAAC0AAAAAAAMtAAAAAAADLQAAAAAAAy0AAAAAAAAuAAAAAAABLQAAAAAAAxcAAAAAAAAXAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIEAAAAAAAAtAAAAAAADLgAAAAAAAy4AAAAAAAIuAAAAAAAALgAAAAAAAi0AAAAAAAMXAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACBAAAAAAAALgAAAAAAAC0AAAAAAAAtAAAAAAAALQAAAAAAAy4AAAAAAAAuAAAAAAACFwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACBAAAAAAAAgQAAAAAAAC0AAAAAAAAtAAAAAAAALgAAAAAAAYEAAAAAAACBAAAAAAAALgAAAAAAAQ== + tiles: DAAAAAAAAAwAAAAAAAAMAAAAAAAADAAAAAAAAAwAAAAAAAALAAAAAAAAgQAAAAAAAA0AAAAAAAANAAAAAAAAKwAAAAACACsAAAAAAACBAAAAAAAAgQAAAAAAACAAAAAAAQCBAAAAAAAAgQAAAAAAAAwAAAAAAAAMAAAAAAAADAAAAAAAAAwAAAAAAAAMAAAAAAAACwAAAAAAAIEAAAAAAAANAAAAAAAADQAAAAAAACsAAAAAAAArAAAAAAIAHgAAAAAAAB4AAAAAAAAeAAAAAAAAHgAAAAAAAB4AAAAAAAAMAAAAAAAADAAAAAAAAAwAAAAAAAAMAAAAAAAADAAAAAAAAAsAAAAAAACBAAAAAAAADQAAAAAAAA0AAAAAAAArAAAAAAAAKwAAAAACAB4AAAAAAAAeAAAAAAAAHgAAAAAAAB4AAAAAAAAeAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAHgAAAAAAAB4AAAAAAAAeAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAAAXAAAAAAAAFwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXAAAAAAAAFwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFwAAAAAAAAAAAAAAAAAXAAAAAAAAFwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABcAAAAAAAAXAAAAAAAAFwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAAAAAAAAAAAAFwAAAAAAABcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAC0AAAAAAAMtAAAAAAADAAAAAAAAABcAAAAAAAAXAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIEAAAAAAACBAAAAAAAALQAAAAAAAy0AAAAAAAMtAAAAAAADLgAAAAAAAxcAAAAAAAAXAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACBAAAAAAAALQAAAAAAAy0AAAAAAAMtAAAAAAADLgAAAAAAAy0AAAAAAAAXAAAAAAAAFwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACBAAAAAAAAgQAAAAAAAC0AAAAAAAMtAAAAAAADLgAAAAAAAy0AAAAAAAAuAAAAAAABFwAAAAAAABcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgQAAAAAAAC0AAAAAAAMtAAAAAAADLQAAAAAAAy0AAAAAAAAuAAAAAAABLQAAAAAAAxcAAAAAAAAXAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIEAAAAAAAAtAAAAAAADLgAAAAAAAy4AAAAAAAIuAAAAAAAALgAAAAAAAi0AAAAAAAMXAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACBAAAAAAAALgAAAAAAAC0AAAAAAAAtAAAAAAAALQAAAAAAAy4AAAAAAAAuAAAAAAACFwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACBAAAAAAAAgQAAAAAAAC0AAAAAAAAtAAAAAAAALgAAAAAAAYEAAAAAAACBAAAAAAAALgAAAAAAAQ== version: 7 -4,-3: ind: -4,-3 @@ -213,7 +213,7 @@ entities: version: 7 -3,-5: ind: -3,-5 - tiles: gQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAG8AAAAAAABvAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAAAtAAAAAAADLgAAAAAAA4EAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAbwAAAAAAAG8AAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAALQAAAAAAAC0AAAAAAAAtAAAAAAADgQAAAAAAAIEAAAAAAACBAAAAAAAAbwAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAC0AAAAAAAMuAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAFwAAAAAAABcAAAAAAAAXAAAAAAAAFwAAAAAAABcAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAAAAAAAAAAAAAAAAAAAAFwAAAAAAABcAAAAAAAAXAAAAAAAAFwAAAAAAABcAAAAAAAAXAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFwAAAAAAABcAAAAAAAAXAAAAAAAAFwAAAAAAABcAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAAAtAAAAAAAALQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAAAXAAAAAAAAFwAAAAAAABcAAAAAAAAXAAAAAAAAFwAAAAAAAIEAAAAAAACBAAAAAAAALQAAAAAAAC0AAAAAAAAvAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAFwAAAAAAABcAAAAAAACBAAAAAAAAgQAAAAAAAC0AAAAAAAAtAAAAAAAALwAAAAAAAIEAAAAAAAAYAAAAAAAAGAAAAAAAABgAAAAAAAAYAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAAAtAAAAAAAALQAAAAAAAIEAAAAAAACBAAAAAAAAGAAAAAAAABgAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAAAtAAAAAAADLQAAAAAAA4EAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAALQAAAAAAAC0AAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAAAYAAAAAAAAgQAAAAAAAC0AAAAAAAMtAAAAAAADLQAAAAAAAy0AAAAAAAMtAAAAAAADLQAAAAAAAy0AAAAAAAOBAAAAAAAALQAAAAAAAy0AAAAAAAAuAAAAAAABLgAAAAAAAw8AAAAAAwAtAAAAAAADLQAAAAAAAy0AAAAAAAMtAAAAAAADLQAAAAAAAy0AAAAAAAMtAAAAAAADLQAAAAAAAy0AAAAAAAMtAAAAAAADLQAAAAAAAy0AAAAAAAMtAAAAAAAAJQAAAAABAC0AAAAAAACBAAAAAAAALQAAAAAAAy0AAAAAAAMtAAAAAAADLQAAAAAAA4EAAAAAAACBAAAAAAAALQAAAAAAAy0AAAAAAAMtAAAAAAADLQAAAAAAAy0AAAAAAAMtAAAAAAADLQAAAAAAACsAAAAAAQctAAAAAAAAgQAAAAAAAA== + tiles: gQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAG8AAAAAAABvAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAAAtAAAAAAADLgAAAAAAA4EAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAbwAAAAAAAG8AAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAALQAAAAAAAC0AAAAAAAAtAAAAAAADgQAAAAAAAIEAAAAAAACBAAAAAAAAbwAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAC0AAAAAAAMuAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAFwAAAAAAABcAAAAAAAAXAAAAAAAAFwAAAAAAABcAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAAAAAAAAAAAAAAAAAAAAFwAAAAAAABcAAAAAAAAXAAAAAAAAFwAAAAAAABcAAAAAAAAXAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFwAAAAAAABcAAAAAAAAXAAAAAAAAFwAAAAAAABcAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAAAtAAAAAAAALQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAAAXAAAAAAAAFwAAAAAAABcAAAAAAAAXAAAAAAAAFwAAAAAAAIEAAAAAAACBAAAAAAAALQAAAAAAAC0AAAAAAAAvAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAFwAAAAAAABcAAAAAAACBAAAAAAAAgQAAAAAAAC0AAAAAAAAtAAAAAAAALwAAAAAAAIEAAAAAAAAYAAAAAAAAGAAAAAAAABgAAAAAAAAYAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAAAtAAAAAAAALQAAAAAAAIEAAAAAAACBAAAAAAAAGAAAAAAAABgAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAAAtAAAAAAADLQAAAAAAA4EAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAALQAAAAAAAC0AAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAAAYAAAAAAAAgQAAAAAAAC0AAAAAAAMtAAAAAAADLQAAAAAAAy0AAAAAAAMtAAAAAAADLQAAAAAAAy0AAAAAAAOBAAAAAAAALQAAAAAAAy0AAAAAAAAuAAAAAAABLgAAAAAAAw8AAAAAAwAtAAAAAAADLQAAAAAAAy0AAAAAAAMtAAAAAAADLQAAAAAAAy0AAAAAAAMtAAAAAAADLQAAAAAAAy0AAAAAAAMtAAAAAAADLQAAAAAAAy0AAAAAAAMtAAAAAAAAJQAAAAACAC0AAAAAAACBAAAAAAAALQAAAAAAAy0AAAAAAAMtAAAAAAADLQAAAAAAA4EAAAAAAACBAAAAAAAALQAAAAAAAy0AAAAAAAMtAAAAAAADLQAAAAAAAy0AAAAAAAMtAAAAAAADLQAAAAAAACsAAAAAAActAAAAAAAAgQAAAAAAAA== version: 7 -4,-5: ind: -4,-5 @@ -225,7 +225,7 @@ entities: version: 7 -5,-4: ind: -5,-4 - tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIEAAAAAAACBAAAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACBAAAAAAAAgQAAAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgQAAAAAAAIEAAAAAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABcAAAAAAAAXAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFwAAAAAAAA== + tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIEAAAAAAACBAAAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACBAAAAAAAAgQAAAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgQAAAAAAAIEAAAAAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABcAAAAAAAAXAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXAAAAAAAAFwAAAAAAAA== version: 7 -5,-5: ind: -5,-5 @@ -233,43 +233,43 @@ entities: version: 7 -2,-5: ind: -2,-5 - tiles: gQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABcAAAAAAAAAAAAAAAAAFwAAAAAAAIEAAAAAAAAXAAAAAAAAFwAAAAAAABcAAAAAAAAAAAAAAAAAFwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIEAAAAAAAAXAAAAAAAAAAAAAAAAAAAAAAAAAAAXAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABcAAAAAAAAAAAAAAAAAAAAAAAAAABcAAAAAAACBAAAAAAAAFwAAAAAAAAAAAAAAAAAAAAAAAAAAgQAAAAAAABcAAAAAAAAXAAAAAAAAFwAAAAAAABcAAAAAAAAXAAAAAAAAFwAAAAAAABcAAAAAAACBAAAAAAAAAAAAAAAAAAAAAAAAAAAXAAAAAAAAgQAAAAAAABcAAAAAAAAXAAAAAAAAAAAAAAAAABcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFwAAAAAAAAAAAAAAAAAXAAAAAAAAFwAAAAAAAIEAAAAAAAAAAAAAAAAAFwAAAAAAABcAAAAAAAAXAAAAAAAAFwAAAAAAABcAAAAAAAAXAAAAAAAAFwAAAAAAABcAAAAAAAAXAAAAAAAAFwAAAAAAABcAAAAAAAAXAAAAAAAAFwAAAAAAAAAAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAABgAAAAAAIAawAAAAAAAGsAAAAAAABrAAAAAAMAYAAAAAABAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAACQAAAAAAAGAAAAAAAABgAAAAAAMAYAAAAAADAGAAAAAAAACBAAAAAAAAYAAAAAABAIEAAAAAAACBAAAAAAAAgQAAAAAAAGAAAAAAAgCBAAAAAAAAYAAAAAAAAGAAAAAAAwBgAAAAAAIAgQAAAAAAAAkAAAAAAABgAAAAAAMAYAAAAAADAGAAAAAAAwBgAAAAAAEAYAAAAAAAAGAAAAAAAQCBAAAAAAAAgQAAAAAAAIEAAAAAAABgAAAAAAMAgQAAAAAAAGAAAAAAAABgAAAAAAAAYAAAAAABAIEAAAAAAAAJAAAAAAAAYAAAAAACAGAAAAAAAgBgAAAAAAIAYAAAAAAAAIEAAAAAAABgAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAYAAAAAAAAGAAAAAAAwBgAAAAAAMAYAAAAAABAGAAAAAAAQCBAAAAAAAAYAAAAAABAGAAAAAAAABgAAAAAAAAYAAAAAABAGAAAAAAAQCBAAAAAAAAYAAAAAABAIEAAAAAAACBAAAAAAAAgQAAAAAAAGAAAAAAAQCBAAAAAAAAYAAAAAACAGAAAAAAAQBgAAAAAAAAYAAAAAADAGAAAAAAAABgAAAAAAMAYAAAAAAAAGAAAAAAAQBgAAAAAAIAgQAAAAAAAGAAAAAAAwBgAAAAAAAAYAAAAAACAGAAAAAAAQBgAAAAAAMAgQAAAAAAAGAAAAAAAwBgAAAAAAAAYAAAAAABAGAAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAABgAAAAAAMAYAAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAGAAAAAAAABgAAAAAAMAYAAAAAAAAGAAAAAAAwBgAAAAAAIAYAAAAAACAGAAAAAAAwCBAAAAAAAAYAAAAAADAGAAAAAAAQBgAAAAAAEAYAAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAGAAAAAAAABgAAAAAAIAYAAAAAACAGAAAAAAAgBgAAAAAAAAYAAAAAACAA== + tiles: gQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABcAAAAAAAAAAAAAAAAAFwAAAAAAAIEAAAAAAAAXAAAAAAAAFwAAAAAAABcAAAAAAAAAAAAAAAAAFwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIEAAAAAAAAXAAAAAAAAAAAAAAAAAAAAAAAAAAAXAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABcAAAAAAAAAAAAAAAAAAAAAAAAAABcAAAAAAACBAAAAAAAAFwAAAAAAAAAAAAAAAAAAAAAAAAAAgQAAAAAAABcAAAAAAAAXAAAAAAAAFwAAAAAAABcAAAAAAAAXAAAAAAAAFwAAAAAAABcAAAAAAACBAAAAAAAAAAAAAAAAAAAAAAAAAAAXAAAAAAAAgQAAAAAAABcAAAAAAAAXAAAAAAAAAAAAAAAAABcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFwAAAAAAAAAAAAAAAAAXAAAAAAAAFwAAAAAAAIEAAAAAAAAAAAAAAAAAFwAAAAAAABcAAAAAAAAXAAAAAAAAFwAAAAAAABcAAAAAAAAXAAAAAAAAFwAAAAAAABcAAAAAAAAXAAAAAAAAFwAAAAAAABcAAAAAAAAXAAAAAAAAFwAAAAAAAAAAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAABgAAAAAAMAawAAAAABAGsAAAAAAQBrAAAAAAIAYAAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAACQAAAAAAAGAAAAAAAQBgAAAAAAMAYAAAAAACAGAAAAAAAACBAAAAAAAAYAAAAAACAIEAAAAAAACBAAAAAAAAgQAAAAAAAGAAAAAAAwCBAAAAAAAAYAAAAAACAGAAAAAAAQBgAAAAAAMAgQAAAAAAAAkAAAAAAABgAAAAAAIAYAAAAAAAAGAAAAAAAQBgAAAAAAIAYAAAAAABAGAAAAAAAQCBAAAAAAAAgQAAAAAAAIEAAAAAAABgAAAAAAMAgQAAAAAAAGAAAAAAAwBgAAAAAAAAYAAAAAABAIEAAAAAAAAJAAAAAAAAYAAAAAAAAGAAAAAAAABgAAAAAAIAYAAAAAADAIEAAAAAAABgAAAAAAIAgQAAAAAAAIEAAAAAAACBAAAAAAAAYAAAAAABAGAAAAAAAwBgAAAAAAIAYAAAAAADAGAAAAAAAACBAAAAAAAAYAAAAAADAGAAAAAAAwBgAAAAAAEAYAAAAAACAGAAAAAAAACBAAAAAAAAYAAAAAABAIEAAAAAAACBAAAAAAAAgQAAAAAAAGAAAAAAAwCBAAAAAAAAYAAAAAAAAGAAAAAAAwBgAAAAAAMAYAAAAAACAGAAAAAAAQBgAAAAAAMAYAAAAAACAGAAAAAAAABgAAAAAAIAgQAAAAAAAGAAAAAAAQBgAAAAAAEAYAAAAAADAGAAAAAAAgBgAAAAAAAAgQAAAAAAAGAAAAAAAQBgAAAAAAEAYAAAAAACAGAAAAAAAgCBAAAAAAAAgQAAAAAAAIEAAAAAAABgAAAAAAMAYAAAAAACAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAGAAAAAAAgBgAAAAAAEAYAAAAAAAAGAAAAAAAwBgAAAAAAIAYAAAAAAAAGAAAAAAAwCBAAAAAAAAYAAAAAACAGAAAAAAAQBgAAAAAAMAYAAAAAADAIEAAAAAAACBAAAAAAAAgQAAAAAAAGAAAAAAAABgAAAAAAAAYAAAAAADAGAAAAAAAQBgAAAAAAEAYAAAAAADAA== version: 7 -1,-5: ind: -1,-5 - tiles: gQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAALwAAAAAAAC0AAAAAAAAgAAAAAAAALQAAAAAAAC8AAAAAAACBAAAAAAAALwAAAAAAAC0AAAAAAAAgAAAAAAEALQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAC8AAAAAAAAtAAAAAAAALQAAAAAAAC0AAAAAAAAvAAAAAAAAgQAAAAAAAC8AAAAAAAAtAAAAAAAALQAAAAAAAC0AAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAAAvAAAAAAAALgAAAAAAAC0AAAAAAAAuAAAAAAAALwAAAAAAAIEAAAAAAAAvAAAAAAAALgAAAAAAAC0AAAAAAAAuAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAALwAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAAAvAAAAAAAAgQAAAAAAABsAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAGAAAAAAAAIEAAAAAAAAYAAAAAAAAGAAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAAAvAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAAAbAAAAAAAAGwAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAABgAAAAAAACBAAAAAAAAgQAAAAAAABsAAAAAAACBAAAAAAAAGwAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAAAJAAAAAAAACQAAAAAAAAkAAAAAAAAJAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAGAAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAACQAAAAAAAAkAAAAAAAAJAAAAAAAAGwAAAAAAAIEAAAAAAAAeAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAALgAAAAAAAi0AAAAAAAMtAAAAAAADLQAAAAAAA4EAAAAAAACBAAAAAAAAgQAAAAAAAAkAAAAAAAAJAAAAAAAACQAAAAAAABsAAAAAAACBAAAAAAAAIAAAAAABACAAAAAAAAAgAAAAAAEAgQAAAAAAAC4AAAAAAAEtAAAAAAADLQAAAAAAAy0AAAAAAAOBAAAAAAAAgQAAAAAAAIEAAAAAAAAJAAAAAAAACQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAACAAAAAAAQAgAAAAAAAAIAAAAAADAIEAAAAAAACBAAAAAAAAgQAAAAAAACAAAAAAAwAgAAAAAAIAgQAAAAAAAAkAAAAAAAAJAAAAAAAACQAAAAAAAAkAAAAAAACBAAAAAAAAIAAAAAADACAAAAAAAgAgAAAAAAMAIAAAAAAAACAAAAAAAwAgAAAAAAEAIAAAAAACACAAAAAAAQAgAAAAAAEAIAAAAAACAIEAAAAAAAAJAAAAAAAACQAAAAAAAAkAAAAAAAAbAAAAAAAAgQAAAAAAACAAAAAAAgAgAAAAAAMAIAAAAAABACAAAAAAAQAgAAAAAAMAIAAAAAACACAAAAAAAQAgAAAAAAAAIAAAAAAAACAAAAAAAwCBAAAAAAAACQAAAAAAAAkAAAAAAAAJAAAAAAAAGwAAAAAAAIEAAAAAAAAgAAAAAAIAIAAAAAAAACAAAAAAAAAgAAAAAAIAIAAAAAACACAAAAAAAQAgAAAAAAAAIAAAAAAAACAAAAAAAQAgAAAAAAMAgQAAAAAAAAkAAAAAAAAJAAAAAAAACQAAAAAAAAkAAAAAAACBAAAAAAAAIAAAAAADACAAAAAAAwAgAAAAAAMAIAAAAAACACAAAAAAAQAgAAAAAAEAIAAAAAABACAAAAAAAQAgAAAAAAIAIAAAAAAAAA== + tiles: gQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAALwAAAAAAAC0AAAAAAAAgAAAAAAIALQAAAAAAAC8AAAAAAACBAAAAAAAALwAAAAAAAC0AAAAAAAAgAAAAAAEALQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAC8AAAAAAAAtAAAAAAAALQAAAAAAAC0AAAAAAAAvAAAAAAAAgQAAAAAAAC8AAAAAAAAtAAAAAAAALQAAAAAAAC0AAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAAAvAAAAAAAALgAAAAAAAC0AAAAAAAAuAAAAAAAALwAAAAAAAIEAAAAAAAAvAAAAAAAALgAAAAAAAC0AAAAAAAAuAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAALwAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAAAvAAAAAAAAgQAAAAAAABsAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAGAAAAAAAAIEAAAAAAAAYAAAAAAAAGAAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAAAvAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAAAbAAAAAAAAGwAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAABgAAAAAAACBAAAAAAAAgQAAAAAAABsAAAAAAACBAAAAAAAAGwAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAAAJAAAAAAAACQAAAAAAAAkAAAAAAAAJAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAGAAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAACQAAAAAAAAkAAAAAAAAJAAAAAAAAGwAAAAAAAIEAAAAAAAAeAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAALgAAAAAAAi0AAAAAAAMtAAAAAAADLQAAAAAAA4EAAAAAAACBAAAAAAAAgQAAAAAAAAkAAAAAAAAJAAAAAAAACQAAAAAAABsAAAAAAACBAAAAAAAAIAAAAAACACAAAAAAAgAgAAAAAAAAgQAAAAAAAC4AAAAAAAEtAAAAAAADLQAAAAAAAy0AAAAAAAOBAAAAAAAAgQAAAAAAAIEAAAAAAAAJAAAAAAAACQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAACAAAAAAAQAgAAAAAAEAIAAAAAACAIEAAAAAAACBAAAAAAAAgQAAAAAAACAAAAAAAAAgAAAAAAAAgQAAAAAAAAkAAAAAAAAJAAAAAAAACQAAAAAAAAkAAAAAAACBAAAAAAAAIAAAAAADACAAAAAAAgAgAAAAAAAAIAAAAAADACAAAAAAAgAgAAAAAAEAIAAAAAAAACAAAAAAAQAgAAAAAAIAIAAAAAACAIEAAAAAAAAJAAAAAAAACQAAAAAAAAkAAAAAAAAbAAAAAAAAgQAAAAAAACAAAAAAAwAgAAAAAAIAIAAAAAAAACAAAAAAAQAgAAAAAAEAIAAAAAABACAAAAAAAwAgAAAAAAEAIAAAAAADACAAAAAAAgCBAAAAAAAACQAAAAAAAAkAAAAAAAAJAAAAAAAAGwAAAAAAAIEAAAAAAAAgAAAAAAIAIAAAAAACACAAAAAAAwAgAAAAAAEAIAAAAAAAACAAAAAAAgAgAAAAAAAAIAAAAAABACAAAAAAAgAgAAAAAAMAgQAAAAAAAAkAAAAAAAAJAAAAAAAACQAAAAAAAAkAAAAAAACBAAAAAAAAIAAAAAADACAAAAAAAgAgAAAAAAIAIAAAAAABACAAAAAAAgAgAAAAAAMAIAAAAAACACAAAAAAAAAgAAAAAAEAIAAAAAAAAA== version: 7 -1,-6: ind: -1,-6 - tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABcAAAAAAAAXAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgQAAAAAAABcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXAAAAAAAAFwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIEAAAAAAAAXAAAAAAAAFwAAAAAAABcAAAAAAAAXAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXAAAAAAAAFwAAAAAAAIEAAAAAAAAXAAAAAAAAFwAAAAAAAIEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFwAAAAAAABcAAAAAAAAXAAAAAAAAgQAAAAAAABcAAAAAAAAXAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIEAAAAAAACBAAAAAAAAFwAAAAAAAIEAAAAAAAAXAAAAAAAAgQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACBAAAAAAAAgQAAAAAAABcAAAAAAAAXAAAAAAAAAAAAAAAAABcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgQAAAAAAAIEAAAAAAAAXAAAAAAAAgQAAAAAAABcAAAAAAACBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIEAAAAAAACBAAAAAAAAFwAAAAAAABcAAAAAAACBAAAAAAAAFwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAAAgAAAAAAIAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAAAgAAAAAAIAgQAAAAAAAA== + tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABcAAAAAAAAXAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgQAAAAAAABcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXAAAAAAAAFwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIEAAAAAAAAXAAAAAAAAFwAAAAAAABcAAAAAAAAXAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXAAAAAAAAFwAAAAAAAIEAAAAAAAAXAAAAAAAAFwAAAAAAAIEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFwAAAAAAABcAAAAAAAAXAAAAAAAAgQAAAAAAABcAAAAAAAAXAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIEAAAAAAACBAAAAAAAAFwAAAAAAAIEAAAAAAAAXAAAAAAAAgQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACBAAAAAAAAgQAAAAAAABcAAAAAAAAXAAAAAAAAAAAAAAAAABcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgQAAAAAAAIEAAAAAAAAXAAAAAAAAgQAAAAAAABcAAAAAAACBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIEAAAAAAACBAAAAAAAAFwAAAAAAABcAAAAAAACBAAAAAAAAFwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAAAgAAAAAAMAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAAAgAAAAAAMAgQAAAAAAAA== version: 7 0,-6: ind: 0,-6 - tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXAAAAAAAAFwAAAAAAAIEAAAAAAABgAAAAAAIAYAAAAAAAAGAAAAAAAwBgAAAAAAMAYAAAAAACAGAAAAAAAQBgAAAAAAMAYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFwAAAAAAABcAAAAAAACBAAAAAAAAYAAAAAADAGAAAAAAAQBgAAAAAAEAYAAAAAACAGAAAAAAAwBgAAAAAAMAYAAAAAADAGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABcAAAAAAAAAAAAAAAAAgQAAAAAAAGAAAAAAAgBgAAAAAAMAYAAAAAAAAGAAAAAAAwBgAAAAAAMAYAAAAAADAGAAAAAAAABgAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABcAAAAAAAAXAAAAAAAAAAAAAAAAAIEAAAAAAABgAAAAAAMAYAAAAAAAAGAAAAAAAwBgAAAAAAAAYAAAAAADAGAAAAAAAgBgAAAAAAMAYAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXAAAAAAAAAAAAAAAAAAAAAAAAAACBAAAAAAAAgQAAAAAAAGAAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAYAAAAAAAAIEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFwAAAAAAAAAAAAAAAAAAAAAAAAAAgQAAAAAAABAAAAAAAgAQAAAAAAIAEAAAAAAAAIEAAAAAAAAXAAAAAAAAgQAAAAAAAGAAAAAAAABgAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFwAAAAAAABcAAAAAAAAAAAAAAAAAFwAAAAAAAIEAAAAAAAAQAAAAAAAAEAAAAAAAABAAAAAAAQCBAAAAAAAAAAAAAAAAAIEAAAAAAABgAAAAAAEAYAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAABcAAAAAAAAAAAAAAAAAAAAAAAAAABcAAAAAAACBAAAAAAAAEAAAAAADABAAAAAAAQAQAAAAAAMAgQAAAAAAAAAAAAAAAACBAAAAAAAAYAAAAAAAAGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXAAAAAAAAAAAAAAAAAAAAAAAAAAAXAAAAAAAAgQAAAAAAABAAAAAAAgAQAAAAAAEAEAAAAAABAIEAAAAAAAAAAAAAAAAAgQAAAAAAAGAAAAAAAQBgAAAAAAAAAAAAAAAAAAAAAAAAAAAXAAAAAAAAFwAAAAAAAAAAAAAAAAAXAAAAAAAAFwAAAAAAAIEAAAAAAAAQAAAAAAEAEAAAAAAAABAAAAAAAQCBAAAAAAAAFwAAAAAAAIEAAAAAAABgAAAAAAMAYAAAAAAAAAAAAAAAAAAAAAAAAAAAFwAAAAAAAAAAAAAAAAAAAAAAAAAAFwAAAAAAABcAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAYAAAAAADAGAAAAAAAAAAAAAAAAAAAAAAAAAAABcAAAAAAAAAAAAAAAAAAAAAAAAAABcAAAAAAAAXAAAAAAAAgQAAAAAAAGAAAAAAAQBgAAAAAAIAYAAAAAABAGAAAAAAAgBgAAAAAAAAYAAAAAADAGAAAAAAAwBgAAAAAAAAAAAAAAAAABcAAAAAAAAXAAAAAAAAAAAAAAAAABcAAAAAAAAXAAAAAAAAFwAAAAAAAIEAAAAAAABgAAAAAAIAYAAAAAABAGAAAAAAAQBgAAAAAAAAYAAAAAAAAGAAAAAAAQBgAAAAAAMAYAAAAAACAAAAAAAAAAAXAAAAAAAAAAAAAAAAAAAAAAAAAAAXAAAAAAAAFwAAAAAAABcAAAAAAACBAAAAAAAAbwAAAAAAAG8AAAAAAABvAAAAAAAAbwAAAAAAAG8AAAAAAABvAAAAAAAAbwAAAAAAAG8AAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAARAAAAAAAAIEAAAAAAABEAAAAAAAAgQAAAAAAAEQAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAEQAAAAAAACBAAAAAAAARAAAAAAAAIEAAAAAAABEAAAAAAAAgQAAAAAAAA== + tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXAAAAAAAAFwAAAAAAAIEAAAAAAABgAAAAAAAAYAAAAAABAGAAAAAAAQBgAAAAAAEAYAAAAAABAGAAAAAAAwBgAAAAAAEAYAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFwAAAAAAABcAAAAAAACBAAAAAAAAYAAAAAADAGAAAAAAAQBgAAAAAAMAYAAAAAADAGAAAAAAAQBgAAAAAAAAYAAAAAADAGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABcAAAAAAAAAAAAAAAAAgQAAAAAAAGAAAAAAAwBgAAAAAAAAYAAAAAABAGAAAAAAAQBgAAAAAAAAYAAAAAADAGAAAAAAAABgAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABcAAAAAAAAXAAAAAAAAAAAAAAAAAIEAAAAAAABgAAAAAAMAYAAAAAABAGAAAAAAAABgAAAAAAMAYAAAAAABAGAAAAAAAgBgAAAAAAEAYAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXAAAAAAAAAAAAAAAAAAAAAAAAAACBAAAAAAAAgQAAAAAAAGAAAAAAAgCBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAYAAAAAABAIEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFwAAAAAAAAAAAAAAAAAAAAAAAAAAgQAAAAAAABAAAAAAAAAQAAAAAAAAEAAAAAACAIEAAAAAAAAXAAAAAAAAgQAAAAAAAGAAAAAAAgBgAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFwAAAAAAABcAAAAAAAAAAAAAAAAAFwAAAAAAAIEAAAAAAAAQAAAAAAMAEAAAAAAAABAAAAAAAwCBAAAAAAAAAAAAAAAAAIEAAAAAAABgAAAAAAIAYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABcAAAAAAAAAAAAAAAAAAAAAAAAAABcAAAAAAACBAAAAAAAAEAAAAAABABAAAAAAAQAQAAAAAAIAgQAAAAAAAAAAAAAAAACBAAAAAAAAYAAAAAABAGAAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXAAAAAAAAAAAAAAAAAAAAAAAAAAAXAAAAAAAAgQAAAAAAABAAAAAAAwAQAAAAAAMAEAAAAAADAIEAAAAAAAAAAAAAAAAAgQAAAAAAAGAAAAAAAQBgAAAAAAIAAAAAAAAAAAAAAAAAAAAXAAAAAAAAFwAAAAAAAAAAAAAAAAAXAAAAAAAAFwAAAAAAAIEAAAAAAAAQAAAAAAEAEAAAAAAAABAAAAAAAQCBAAAAAAAAFwAAAAAAAIEAAAAAAABgAAAAAAIAYAAAAAABAAAAAAAAAAAAAAAAAAAAFwAAAAAAAAAAAAAAAAAAAAAAAAAAFwAAAAAAABcAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAYAAAAAACAGAAAAAAAAAAAAAAAAAAAAAAAAAAABcAAAAAAAAAAAAAAAAAAAAAAAAAABcAAAAAAAAXAAAAAAAAgQAAAAAAAGAAAAAAAQBgAAAAAAIAYAAAAAADAGAAAAAAAgBgAAAAAAAAYAAAAAADAGAAAAAAAABgAAAAAAEAAAAAAAAAABcAAAAAAAAXAAAAAAAAAAAAAAAAABcAAAAAAAAXAAAAAAAAFwAAAAAAAIEAAAAAAABgAAAAAAIAYAAAAAABAGAAAAAAAwBgAAAAAAIAYAAAAAABAGAAAAAAAQBgAAAAAAIAYAAAAAABAAAAAAAAAAAXAAAAAAAAAAAAAAAAAAAAAAAAAAAXAAAAAAAAFwAAAAAAABcAAAAAAACBAAAAAAAAbwAAAAAAAG8AAAAAAABvAAAAAAAAbwAAAAAAAG8AAAAAAABvAAAAAAAAbwAAAAAAAG8AAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAARAAAAAAAAIEAAAAAAABEAAAAAAAAgQAAAAAAAEQAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAEQAAAAAAACBAAAAAAAARAAAAAAAAIEAAAAAAABEAAAAAAAAgQAAAAAAAA== version: 7 0,-7: ind: 0,-7 - tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXAAAAAAAAFwAAAAAAABcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXAAAAAAAAFwAAAAAAABcAAAAAAAAXAAAAAAAAFwAAAAAAABcAAAAAAAAXAAAAAAAAFwAAAAAAABcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXAAAAAAAAFwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXAAAAAAAAFwAAAAAAAAAAAAAAAAAAAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXAAAAAAAAFwAAAAAAAAAAAAAAAAAAAAAAAAAAgQAAAAAAAIEAAAAAAABgAAAAAAMAYAAAAAACAGAAAAAAAABgAAAAAAAAYAAAAAAAAGAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFwAAAAAAABcAAAAAAAAAAAAAAAAAgQAAAAAAAIEAAAAAAABgAAAAAAMAYAAAAAADAGAAAAAAAwBgAAAAAAEAYAAAAAABAGAAAAAAAgBgAAAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABcAAAAAAAAXAAAAAAAAAAAAAAAAAIEAAAAAAABgAAAAAAEAYAAAAAABAGAAAAAAAQBgAAAAAAEAYAAAAAACAGAAAAAAAgBgAAAAAAEAYAAAAAACAA== + tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXAAAAAAAAFwAAAAAAABcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXAAAAAAAAFwAAAAAAABcAAAAAAAAXAAAAAAAAFwAAAAAAABcAAAAAAAAXAAAAAAAAFwAAAAAAABcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXAAAAAAAAFwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXAAAAAAAAFwAAAAAAAAAAAAAAAAAAAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXAAAAAAAAFwAAAAAAAAAAAAAAAAAAAAAAAAAAgQAAAAAAAIEAAAAAAABgAAAAAAIAYAAAAAADAGAAAAAAAABgAAAAAAIAYAAAAAAAAGAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFwAAAAAAABcAAAAAAAAAAAAAAAAAgQAAAAAAAIEAAAAAAABgAAAAAAMAYAAAAAADAGAAAAAAAwBgAAAAAAMAYAAAAAABAGAAAAAAAgBgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABcAAAAAAAAXAAAAAAAAAAAAAAAAAIEAAAAAAABgAAAAAAAAYAAAAAABAGAAAAAAAQBgAAAAAAEAYAAAAAADAGAAAAAAAQBgAAAAAAAAYAAAAAABAA== version: 7 1,-6: ind: 1,-6 - tiles: YAAAAAADAGAAAAAAAgBgAAAAAAIAYAAAAAAAAGAAAAAAAABgAAAAAAAAYAAAAAAAAGAAAAAAAQAaAAAAAAAAYAAAAAADAGAAAAAAAwBgAAAAAAEAYAAAAAADAGAAAAAAAABgAAAAAAAAYAAAAAABAIEAAAAAAABgAAAAAAAAYAAAAAABAGAAAAAAAwBgAAAAAAAAYAAAAAADAGAAAAAAAQBgAAAAAAIAYAAAAAADAGAAAAAAAgBgAAAAAAAAYAAAAAACAGAAAAAAAQBgAAAAAAAAYAAAAAAAAGAAAAAAAACBAAAAAAAAYAAAAAACAGAAAAAAAwBgAAAAAAEAYAAAAAACAGAAAAAAAABgAAAAAAIAYAAAAAACABoAAAAAAwBgAAAAAAAAYAAAAAAAAGAAAAAAAABgAAAAAAMAYAAAAAACAGAAAAAAAQBgAAAAAAIAgQAAAAAAAGAAAAAAAQBgAAAAAAMAYAAAAAADAGAAAAAAAQBgAAAAAAAAYAAAAAACAGAAAAAAAwBgAAAAAAEAYAAAAAACAGAAAAAAAQBgAAAAAAAAYAAAAAABAGAAAAAAAwBgAAAAAAEAYAAAAAACAIEAAAAAAABgAAAAAAIAYAAAAAABAGsAAAAAAwBgAAAAAAMAYAAAAAADAGsAAAAAAQBgAAAAAAEAYAAAAAAAAGAAAAAAAwBrAAAAAAMAYAAAAAAAAGsAAAAAAQBgAAAAAAMAYAAAAAADAGAAAAAAAwCBAAAAAAAAYAAAAAABAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAYAAAAAAAAGAAAAAAAwBgAAAAAAEAgQAAAAAAAIEAAAAAAACBAAAAAAAAYAAAAAADAGAAAAAAAQBgAAAAAAIAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAGAAAAAAAgBgAAAAAAAAYAAAAAACAIEAAAAAAACBAAAAAAAAgQAAAAAAAGAAAAAAAABgAAAAAAAAYAAAAAABAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAYAAAAAABAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAYAAAAAADAGAAAAAAAQBgAAAAAAAAYAAAAAADAGAAAAAAAwBgAAAAAAAAYAAAAAABAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAGAAAAAAAwBgAAAAAAAAYAAAAAADAGAAAAAAAQBgAAAAAAIAYAAAAAABAGAAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAYAAAAAABAGAAAAAAAQBgAAAAAAMAYAAAAAABAIEAAAAAAABgAAAAAAMAYAAAAAACAGAAAAAAAABgAAAAAAEAYAAAAAABAGAAAAAAAwBgAAAAAAMAgQAAAAAAABcAAAAAAAAXAAAAAAAAFwAAAAAAAIEAAAAAAABvAAAAAAAAbwAAAAAAAG8AAAAAAABgAAAAAAIAYAAAAAAAAGAAAAAAAQBgAAAAAAAAYAAAAAAAAGAAAAAAAgBgAAAAAAEAYAAAAAADAIEAAAAAAAAXAAAAAAAAFwAAAAAAABcAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAGAAAAAAAgBgAAAAAAIAYAAAAAACAGAAAAAAAABgAAAAAAAAYAAAAAADAGAAAAAAAQCBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAG8AAAAAAABvAAAAAAAAbwAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAA== + tiles: YAAAAAACAGAAAAAAAABgAAAAAAIAYAAAAAAAAGAAAAAAAgBgAAAAAAMAYAAAAAADAGAAAAAAAgAaAAAAAAMAYAAAAAABAGAAAAAAAwBgAAAAAAMAYAAAAAADAGAAAAAAAgBgAAAAAAEAYAAAAAADAIEAAAAAAABgAAAAAAMAYAAAAAAAAGAAAAAAAABgAAAAAAMAYAAAAAABAGAAAAAAAwBgAAAAAAAAYAAAAAABAGAAAAAAAQBgAAAAAAMAYAAAAAAAAGAAAAAAAQBgAAAAAAEAYAAAAAAAAGAAAAAAAwCBAAAAAAAAYAAAAAABAGAAAAAAAABgAAAAAAMAYAAAAAAAAGAAAAAAAgBgAAAAAAAAYAAAAAADABoAAAAAAABgAAAAAAEAYAAAAAAAAGAAAAAAAQBgAAAAAAIAYAAAAAADAGAAAAAAAgBgAAAAAAAAgQAAAAAAAGAAAAAAAwBgAAAAAAMAYAAAAAADAGAAAAAAAQBgAAAAAAIAYAAAAAABAGAAAAAAAQBgAAAAAAMAYAAAAAABAGAAAAAAAQBgAAAAAAIAYAAAAAACAGAAAAAAAgBgAAAAAAAAYAAAAAABAIEAAAAAAABgAAAAAAEAYAAAAAACAGsAAAAAAgBgAAAAAAMAYAAAAAAAAGsAAAAAAwBgAAAAAAIAYAAAAAADAGAAAAAAAwBrAAAAAAIAYAAAAAAAAGsAAAAAAwBgAAAAAAMAYAAAAAADAGAAAAAAAQCBAAAAAAAAYAAAAAACAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAYAAAAAABAGAAAAAAAQBgAAAAAAEAgQAAAAAAAIEAAAAAAACBAAAAAAAAYAAAAAAAAGAAAAAAAgBgAAAAAAEAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAGAAAAAAAgBgAAAAAAMAYAAAAAABAIEAAAAAAACBAAAAAAAAgQAAAAAAAGAAAAAAAwBgAAAAAAMAYAAAAAABAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAYAAAAAACAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAYAAAAAAAAGAAAAAAAwBgAAAAAAMAYAAAAAAAAGAAAAAAAQBgAAAAAAAAYAAAAAADAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAGAAAAAAAABgAAAAAAAAYAAAAAAAAGAAAAAAAABgAAAAAAMAYAAAAAABAGAAAAAAAQCBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAYAAAAAADAGAAAAAAAABgAAAAAAIAYAAAAAADAIEAAAAAAABgAAAAAAIAYAAAAAABAGAAAAAAAgBgAAAAAAEAYAAAAAABAGAAAAAAAgBgAAAAAAIAgQAAAAAAABcAAAAAAAAXAAAAAAAAFwAAAAAAAIEAAAAAAABvAAAAAAAAbwAAAAAAAG8AAAAAAABgAAAAAAIAYAAAAAACAGAAAAAAAABgAAAAAAIAYAAAAAABAGAAAAAAAABgAAAAAAIAYAAAAAADAIEAAAAAAAAXAAAAAAAAFwAAAAAAABcAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAGAAAAAAAABgAAAAAAMAYAAAAAACAGAAAAAAAQBgAAAAAAAAYAAAAAADAGAAAAAAAwCBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAG8AAAAAAABvAAAAAAAAbwAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAA== version: 7 1,-7: ind: 1,-7 - tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFwAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAABgAAAAAAIAgQAAAAAAAGAAAAAAAQBgAAAAAAMAYAAAAAADAIEAAAAAAABgAAAAAAIAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAYAAAAAABAGAAAAAAAwCBAAAAAAAAYAAAAAADAIEAAAAAAABgAAAAAAMAYAAAAAAAAGAAAAAAAwCBAAAAAAAAYAAAAAABAIEAAAAAAABgAAAAAAAAYAAAAAACAGAAAAAAAgCBAAAAAAAAGgAAAAADAGAAAAAAAABgAAAAAAIAgQAAAAAAAGAAAAAAAgCBAAAAAAAAYAAAAAADAGAAAAAAAwBgAAAAAAEAgQAAAAAAAGAAAAAAAwCBAAAAAAAAYAAAAAACAGAAAAAAAABgAAAAAAMAgQAAAAAAABoAAAAAAABgAAAAAAIAYAAAAAABAGAAAAAAAgBgAAAAAAEAYAAAAAABAGAAAAAAAwAaAAAAAAMAYAAAAAACAGAAAAAAAABgAAAAAAAAYAAAAAACAGAAAAAAAQBgAAAAAAAAYAAAAAACAIEAAAAAAAAaAAAAAAAAYAAAAAADAGAAAAAAAwBgAAAAAAEAYAAAAAABAGAAAAAAAgBgAAAAAAAAYAAAAAABAGAAAAAAAwBgAAAAAAMAYAAAAAABAGAAAAAAAABgAAAAAAEAYAAAAAAAAGAAAAAAAwCBAAAAAAAAYAAAAAABAGAAAAAAAwBgAAAAAAEAYAAAAAADAGAAAAAAAABgAAAAAAMAYAAAAAACABoAAAAAAwBgAAAAAAAAYAAAAAACAGAAAAAAAABgAAAAAAEAYAAAAAADAGAAAAAAAABgAAAAAAIAYAAAAAAAAGAAAAAAAABgAAAAAAAAYAAAAAABAGAAAAAAAABgAAAAAAEAYAAAAAAAAGAAAAAAAQBgAAAAAAAAYAAAAAADAGAAAAAAAgBgAAAAAAMAYAAAAAAAAGAAAAAAAABgAAAAAAAAYAAAAAABAA== + tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFwAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAABgAAAAAAEAgQAAAAAAAGAAAAAAAQBgAAAAAAEAYAAAAAACAIEAAAAAAABgAAAAAAMAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAYAAAAAACAGAAAAAAAwCBAAAAAAAAYAAAAAABAIEAAAAAAABgAAAAAAEAYAAAAAAAAGAAAAAAAQCBAAAAAAAAYAAAAAACAIEAAAAAAABgAAAAAAEAYAAAAAABAGAAAAAAAwCBAAAAAAAAGgAAAAAAAGAAAAAAAQBgAAAAAAIAgQAAAAAAAGAAAAAAAwCBAAAAAAAAYAAAAAAAAGAAAAAAAABgAAAAAAMAgQAAAAAAAGAAAAAAAQCBAAAAAAAAYAAAAAACAGAAAAAAAwBgAAAAAAAAgQAAAAAAABoAAAAAAgBgAAAAAAEAYAAAAAABAGAAAAAAAQBgAAAAAAEAYAAAAAABAGAAAAAAAgAaAAAAAAIAYAAAAAABAGAAAAAAAABgAAAAAAEAYAAAAAACAGAAAAAAAABgAAAAAAMAYAAAAAACAIEAAAAAAAAaAAAAAAAAYAAAAAABAGAAAAAAAABgAAAAAAAAYAAAAAACAGAAAAAAAQBgAAAAAAIAYAAAAAADAGAAAAAAAABgAAAAAAMAYAAAAAACAGAAAAAAAQBgAAAAAAMAYAAAAAADAGAAAAAAAACBAAAAAAAAYAAAAAACAGAAAAAAAgBgAAAAAAMAYAAAAAACAGAAAAAAAQBgAAAAAAEAYAAAAAAAABoAAAAAAwBgAAAAAAEAYAAAAAAAAGAAAAAAAwBgAAAAAAEAYAAAAAAAAGAAAAAAAABgAAAAAAIAYAAAAAABAGAAAAAAAgBgAAAAAAMAYAAAAAAAAGAAAAAAAwBgAAAAAAIAYAAAAAAAAGAAAAAAAQBgAAAAAAAAYAAAAAACAGAAAAAAAgBgAAAAAAEAYAAAAAAAAGAAAAAAAwBgAAAAAAMAYAAAAAABAA== version: 7 1,-5: ind: 1,-5 - tiles: LQAAAAAAAy0AAAAAAAMtAAAAAAADLQAAAAAAAy0AAAAAAAMtAAAAAAADLQAAAAAAAy0AAAAAAAMtAAAAAAADLgAAAAAAAy0AAAAAAAAtAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAACsAAAAAAQArAAAAAAEAKwAAAAACACsAAAAAAAArAAAAAAEAKwAAAAABACsAAAAAAwArAAAAAAAAJQAAAAABAC0AAAAAAAAtAAAAAAAALQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAAAtAAAAAAADLQAAAAAAAy0AAAAAAAMtAAAAAAADLQAAAAAAAy0AAAAAAAMtAAAAAAADLgAAAAAAAysAAAAAAQctAAAAAAAALQAAAAAAAC0AAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAALgAAAAAAAoEAAAAAAAAPAAAAAAEADwAAAAAAAA8AAAAAAACBAAAAAAAALgAAAAAAAy0AAAAAAAArAAAAAAIHLQAAAAAAAC0AAAAAAACBAAAAAAAAgQAAAAAAABgAAAAAAAAYAAAAAAAAGAAAAAAAAIEAAAAAAACBAAAAAAAADwAAAAACAA8AAAAAAgAPAAAAAAMAgQAAAAAAAIEAAAAAAAAYAAAAAAAAGAAAAAAAABgAAAAAAACBAAAAAAAAgQAAAAAAABgAAAAAAAAYAAAAAAAAGAAAAAAAABgAAAAAAACBAAAAAAAADwAAAAADAA8AAAAAAgAPAAAAAAMADwAAAAADAA8AAAAAAQCBAAAAAAAAGAAAAAAAABgAAAAAAAAYAAAAAAAAgQAAAAAAABgAAAAAAAAYAAAAAAAAGAAAAAAAABgAAAAAAAAYAAAAAAAAgQAAAAAAAA8AAAAAAgAPAAAAAAIADwAAAAABAA8AAAAAAQAPAAAAAAIAgQAAAAAAABgAAAAAAAAYAAAAAAAAGAAAAAAAAIEAAAAAAAAYAAAAAAAAGAAAAAAAABgAAAAAAAAgAAAAAAEAIAAAAAAAAIEAAAAAAAAPAAAAAAAADwAAAAAAAA8AAAAAAAAPAAAAAAIADwAAAAADAIEAAAAAAAAYAAAAAAAAGAAAAAAAABgAAAAAAACBAAAAAAAAGAAAAAAAABgAAAAAAAAYAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAADwAAAAADAA8AAAAAAwAPAAAAAAMADwAAAAAAAA8AAAAAAgCBAAAAAAAALQAAAAAAACsAAAAAAgctAAAAAAAAgQAAAAAAACAAAAAAAgAgAAAAAAIAIAAAAAACAIEAAAAAAACBAAAAAAAAgQAAAAAAAA8AAAAAAQAPAAAAAAMADwAAAAADAA8AAAAAAAAkAAAAAAAAgQAAAAAAAC0AAAAAAAArAAAAAAMHLQAAAAAAACAAAAAAAwAgAAAAAAIAIAAAAAAAACAAAAAAAgCBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAB4AAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAAAtAAAAAAAAKwAAAAABBy0AAAAAAAAgAAAAAAIAIAAAAAACACAAAAAAAAAgAAAAAAEAgQAAAAAAAIEAAAAAAACBAAAAAAAAHgAAAAAAAB4AAAAAAAAeAAAAAAAAHgAAAAAAAB4AAAAAAAAeAAAAAAAALQAAAAAAACsAAAAAAwctAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAHgAAAAAAACAAAAAAAAAgAAAAAAAAIAAAAAADACAAAAAAAAAeAAAAAAAAgQAAAAAAAC0AAAAAAAArAAAAAAMHLgAAAAAAAS0AAAAAAAMtAAAAAAADLQAAAAAAAy0AAAAAAAMtAAAAAAADgQAAAAAAACAAAAAAAAAgAAAAAAIAIAAAAAADACAAAAAAAgAgAAAAAAMAHgAAAAAAAIEAAAAAAAAtAAAAAAAAKwAAAAABBy4AAAAAAAItAAAAAAADLQAAAAAAAy0AAAAAAAMtAAAAAAADLQAAAAAAA4EAAAAAAAAeAAAAAAAAHgAAAAAAAB4AAAAAAAAeAAAAAAAAHgAAAAAAAB4AAAAAAACBAAAAAAAALQAAAAAAACsAAAAAAgctAAAAAAAAgQAAAAAAAB4AAAAAAAAeAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAC0AAAAAAAArAAAAAAEHLQAAAAAAAIEAAAAAAACBAAAAAAAAIAAAAAAAAIEAAAAAAAAKAAAAAAAAgQAAAAAAAA== + tiles: LQAAAAAAAy0AAAAAAAMtAAAAAAADLQAAAAAAAy0AAAAAAAMtAAAAAAADLQAAAAAAAy0AAAAAAAMtAAAAAAADLgAAAAAAAy0AAAAAAAAtAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAACsAAAAAAwArAAAAAAMAKwAAAAABACsAAAAAAwArAAAAAAAAKwAAAAADACsAAAAAAAArAAAAAAEAJQAAAAAAAC0AAAAAAAAtAAAAAAAALQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAAAtAAAAAAADLQAAAAAAAy0AAAAAAAMtAAAAAAADLQAAAAAAAy0AAAAAAAMtAAAAAAADLgAAAAAAAysAAAAAAwctAAAAAAAALQAAAAAAAC0AAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAALgAAAAAAAoEAAAAAAAAPAAAAAAMADwAAAAABAA8AAAAAAQCBAAAAAAAALgAAAAAAAy0AAAAAAAArAAAAAAEHLQAAAAAAAC0AAAAAAACBAAAAAAAAgQAAAAAAABgAAAAAAAAYAAAAAAAAGAAAAAAAAIEAAAAAAACBAAAAAAAADwAAAAAAAA8AAAAAAAAPAAAAAAMAgQAAAAAAAIEAAAAAAAAYAAAAAAAAGAAAAAAAABgAAAAAAACBAAAAAAAAgQAAAAAAABgAAAAAAAAYAAAAAAAAGAAAAAAAABgAAAAAAACBAAAAAAAADwAAAAADAA8AAAAAAgAPAAAAAAMADwAAAAACAA8AAAAAAwCBAAAAAAAAGAAAAAAAABgAAAAAAAAYAAAAAAAAgQAAAAAAABgAAAAAAAAYAAAAAAAAGAAAAAAAABgAAAAAAAAYAAAAAAAAgQAAAAAAAA8AAAAAAAAPAAAAAAMADwAAAAADAA8AAAAAAgAPAAAAAAAAgQAAAAAAABgAAAAAAAAYAAAAAAAAGAAAAAAAAIEAAAAAAAAYAAAAAAAAGAAAAAAAABgAAAAAAAAgAAAAAAIAIAAAAAABAIEAAAAAAAAPAAAAAAMADwAAAAADAA8AAAAAAQAPAAAAAAAADwAAAAACAIEAAAAAAAAYAAAAAAAAGAAAAAAAABgAAAAAAACBAAAAAAAAGAAAAAAAABgAAAAAAAAYAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAADwAAAAADAA8AAAAAAQAPAAAAAAMADwAAAAADAA8AAAAAAQCBAAAAAAAALQAAAAAAACsAAAAAAActAAAAAAAAgQAAAAAAACAAAAAAAwAgAAAAAAIAIAAAAAABAIEAAAAAAACBAAAAAAAAgQAAAAAAAA8AAAAAAAAPAAAAAAAADwAAAAAAAA8AAAAAAwAkAAAAAAMAgQAAAAAAAC0AAAAAAAArAAAAAAIHLQAAAAAAACAAAAAAAgAgAAAAAAEAIAAAAAABACAAAAAAAgCBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAB4AAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAAAtAAAAAAAAKwAAAAABBy0AAAAAAAAgAAAAAAMAIAAAAAADACAAAAAAAgAgAAAAAAEAgQAAAAAAAIEAAAAAAACBAAAAAAAAHgAAAAAAAB4AAAAAAAAeAAAAAAAAHgAAAAAAAB4AAAAAAAAeAAAAAAAALQAAAAAAACsAAAAAAgctAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAHgAAAAAAACAAAAAAAAAgAAAAAAIAIAAAAAADACAAAAAAAAAeAAAAAAAAgQAAAAAAAC0AAAAAAAArAAAAAAEHLgAAAAAAAS0AAAAAAAMtAAAAAAADLQAAAAAAAy0AAAAAAAMtAAAAAAADgQAAAAAAACAAAAAAAQAgAAAAAAEAIAAAAAABACAAAAAAAgAgAAAAAAMAHgAAAAAAAIEAAAAAAAAtAAAAAAAAKwAAAAABBy4AAAAAAAItAAAAAAADLQAAAAAAAy0AAAAAAAMtAAAAAAADLQAAAAAAA4EAAAAAAAAeAAAAAAAAHgAAAAAAAB4AAAAAAAAeAAAAAAAAHgAAAAAAAB4AAAAAAACBAAAAAAAALQAAAAAAACsAAAAAAQctAAAAAAAAgQAAAAAAAB4AAAAAAAAeAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAC0AAAAAAAArAAAAAAMHLQAAAAAAAIEAAAAAAACBAAAAAAAAIAAAAAABAIEAAAAAAAAKAAAAAAAAgQAAAAAAAA== version: 7 2,-6: ind: 2,-6 - tiles: gQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFwAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABcAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAFwAAAAAAABcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYAAAAAACAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGAAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABgAAAAAAEAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAFwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAABcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIEAAAAAAAAXAAAAAAAAFwAAAAAAABcAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAAAXAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAAAXAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAFwAAAAAAABcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAFwAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAAAAAAAAAAAXAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAABcAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAAAAAAAAAAAAFwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACBAAAAAAAAFwAAAAAAABcAAAAAAAAXAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAAAAAAAAAABcAAAAAAAAXAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABcAAAAAAAAXAAAAAAAAFwAAAAAAAAAAAAAAAAAAAAAAAAAAFwAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAAAAAAAAAAAAAAAAAAAAFwAAAAAAAAAAAAAAAAAXAAAAAAAAFwAAAAAAABcAAAAAAAAXAAAAAAAAFwAAAAAAABcAAAAAAAAXAAAAAAAAFwAAAAAAABcAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAAAXAAAAAAAAAAAAAAAAABcAAAAAAAAAAAAAAAAAFwAAAAAAABcAAAAAAAAXAAAAAAAAFwAAAAAAABcAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAFwAAAAAAAAAAAAAAAAAXAAAAAAAAFwAAAAAAABcAAAAAAAAXAAAAAAAAFwAAAAAAABcAAAAAAAAXAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAAAXAAAAAAAAAAAAAAAAABcAAAAAAAAAAAAAAAAAFwAAAAAAAAAAAAAAAAAXAAAAAAAAFwAAAAAAAA== + tiles: gQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFwAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABcAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAFwAAAAAAABcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYAAAAAABAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGAAAAAAAgCBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABgAAAAAAMAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAFwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAABcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIEAAAAAAAAXAAAAAAAAFwAAAAAAABcAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAAAXAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAAAXAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAFwAAAAAAABcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAFwAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAAAAAAAAAAAXAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAABcAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAAAAAAAAAAAAFwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACBAAAAAAAAFwAAAAAAABcAAAAAAAAXAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAAAAAAAAAABcAAAAAAAAXAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABcAAAAAAAAXAAAAAAAAFwAAAAAAAAAAAAAAAAAAAAAAAAAAFwAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAAAAAAAAAAAAAAAAAAAAFwAAAAAAAAAAAAAAAAAXAAAAAAAAFwAAAAAAABcAAAAAAAAXAAAAAAAAFwAAAAAAABcAAAAAAAAXAAAAAAAAFwAAAAAAABcAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAAAXAAAAAAAAAAAAAAAAABcAAAAAAAAAAAAAAAAAFwAAAAAAABcAAAAAAAAXAAAAAAAAFwAAAAAAABcAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAFwAAAAAAAAAAAAAAAAAXAAAAAAAAFwAAAAAAABcAAAAAAAAXAAAAAAAAFwAAAAAAABcAAAAAAAAXAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAAAXAAAAAAAAAAAAAAAAABcAAAAAAAAAAAAAAAAAFwAAAAAAAAAAAAAAAAAXAAAAAAAAFwAAAAAAAA== version: 7 2,-5: ind: 2,-5 - tiles: gQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAB4AAAAAAAAeAAAAAAAAgQAAAAAAAB4AAAAAAACBAAAAAAAAgQAAAAAAAB4AAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAABgAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAGAAAAAAAABgAAAAAAAAYAAAAAAAAGAAAAAAAABgAAAAAAAAYAAAAAAAAGAAAAAAAABgAAAAAAAAYAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAABgAAAAAAAAYAAAAAAAAgQAAAAAAABgAAAAAAAAYAAAAAAAAGAAAAAAAABgAAAAAAAAYAAAAAAAAGAAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAAAYAAAAAAAAGAAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAIAAAAAADACAAAAAAAACBAAAAAAAACgAAAAAAAAoAAAAAAACBAAAAAAAAgQAAAAAAAAoAAAAAAAAKAAAAAAAACgAAAAAAAAoAAAAAAAAKAAAAAAAAgQAAAAAAAAoAAAAAAAAKAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAAoAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAAAKAAAAAAAACgAAAAAAAAoAAAAAAAAKAAAAAAAACgAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAA== + tiles: gQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAB4AAAAAAAAeAAAAAAAAgQAAAAAAAB4AAAAAAACBAAAAAAAAgQAAAAAAAB4AAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAABgAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAGAAAAAAAABgAAAAAAAAYAAAAAAAAGAAAAAAAABgAAAAAAAAYAAAAAAAAGAAAAAAAABgAAAAAAAAYAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAABgAAAAAAAAYAAAAAAAAgQAAAAAAABgAAAAAAAAYAAAAAAAAGAAAAAAAABgAAAAAAAAYAAAAAAAAGAAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAAAYAAAAAAAAGAAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAIAAAAAACACAAAAAAAwCBAAAAAAAACgAAAAAAAAoAAAAAAACBAAAAAAAAgQAAAAAAAAoAAAAAAAAKAAAAAAAACgAAAAAAAAoAAAAAAAAKAAAAAAAAgQAAAAAAAAoAAAAAAAAKAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAAoAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAAAKAAAAAAAACgAAAAAAAAoAAAAAAAAKAAAAAAAACgAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAA== version: 7 2,-7: ind: 2,-7 @@ -289,7 +289,7 @@ entities: version: 7 4,-4: ind: 4,-4 - tiles: gQAAAAAAAIEAAAAAAAAvAAAAAAAALwAAAAAAAC8AAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAACgAAAAAAAB4AAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAALwAAAAAAAC8AAAAAAAAvAAAAAAAAgQAAAAAAABgAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAAAeAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAHgAAAAAAAB4AAAAAAAAeAAAAAAAAHgAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAAAYAAAAAAAAGAAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAAAYAAAAAAAAGAAAAAAAAIEAAAAAAAAYAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAALwAAAAAAAIEAAAAAAAAYAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAAAvAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAALwAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAALwAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAGAAAAAAAAIEAAAAAAAAeAAAAAAAAHgAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAYAAAAAACAGAAAAAAAgBgAAAAAAIAYAAAAAABAGAAAAAAAgBgAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAABgAAAAAAIAYAAAAAAAAGAAAAAAAwBgAAAAAAIAYAAAAAAAAGAAAAAAAQBgAAAAAAEAYAAAAAABAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAHgAAAAAAAC8AAAAAAACBAAAAAAAAYAAAAAAAAGAAAAAAAwBgAAAAAAIAYAAAAAAAAGAAAAAAAgBgAAAAAAAARAAAAAAAAEQAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAGAAAAAAAABgAAAAAAAAYAAAAAAAAGAAAAAAAgAaAAAAAAEAGgAAAAADAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAYAAAAAADAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAIAAAAAABABAAAAAAAwAQAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAYAAAAAACAGAAAAAAAABgAAAAAAMAgQAAAAAAACAAAAAAAgAgAAAAAAIAIAAAAAABACAAAAAAAAAQAAAAAAIAEAAAAAADAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAA== + tiles: gQAAAAAAAIEAAAAAAAAvAAAAAAAALwAAAAAAAC8AAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAACgAAAAAAAB4AAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAALwAAAAAAAC8AAAAAAAAvAAAAAAAAgQAAAAAAABgAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAAAeAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAHgAAAAAAAB4AAAAAAAAeAAAAAAAAHgAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAAAYAAAAAAAAGAAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAAAYAAAAAAAAGAAAAAAAAIEAAAAAAAAYAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAALwAAAAAAAIEAAAAAAAAYAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAAAvAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAALwAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAALwAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAGAAAAAAAAIEAAAAAAAAeAAAAAAAAHgAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAYAAAAAAAAGAAAAAAAgBgAAAAAAIAYAAAAAADAGAAAAAAAwBgAAAAAAIAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAABgAAAAAAIAYAAAAAADAGAAAAAAAgBgAAAAAAEAYAAAAAABAGAAAAAAAgBgAAAAAAMAYAAAAAACAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAHgAAAAAAAC8AAAAAAACBAAAAAAAAYAAAAAAAAGAAAAAAAgBgAAAAAAEAYAAAAAADAGAAAAAAAwBgAAAAAAMARAAAAAAAAEQAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAGAAAAAAAgBgAAAAAAIAYAAAAAADAGAAAAAAAgAaAAAAAAIAGgAAAAACAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAYAAAAAACAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAIAAAAAACABAAAAAAAgAQAAAAAAEAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAYAAAAAAAAGAAAAAAAgBgAAAAAAEAgQAAAAAAACAAAAAAAwAgAAAAAAMAIAAAAAAAACAAAAAAAgAQAAAAAAMAEAAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAA== version: 7 5,-4: ind: 5,-4 @@ -301,39 +301,39 @@ entities: version: 7 3,-4: ind: 3,-4 - tiles: gQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAABcAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAAAAAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAAAeAAAAAAAAgQAAAAAAAIEAAAAAAAAXAAAAAAAAFwAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAAAAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAC8AAAAAAACBAAAAAAAAAAAAAAAAABcAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAAAAAAAAAACBAAAAAAAALwAAAAAAAC8AAAAAAACBAAAAAAAAGAAAAAAAAC8AAAAAAACBAAAAAAAAgQAAAAAAAAAAAAAAAAAXAAAAAAAAFwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABcAAAAAAAAAAAAAAAAAgQAAAAAAAC8AAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAAAXAAAAAAAAFwAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAJQAAAAACACUAAAAAAwAlAAAAAAIAJQAAAAABACUAAAAAAgAlAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAAAlAAAAAAAAJQAAAAABACUAAAAAAAAlAAAAAAEAJQAAAAAAACUAAAAAAgAlAAAAAAIAJQAAAAADAIEAAAAAAAAvAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAJQAAAAADACUAAAAAAAAlAAAAAAEAJQAAAAACACUAAAAAAwAlAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAAAlAAAAAAMAJQAAAAADACUAAAAAAgAlAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAHgAAAAAAAB4AAAAAAAAeAAAAAAAAgQAAAAAAAC0AAAAAAAOBAAAAAAAAJQAAAAACAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAC8AAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAAAtAAAAAAADLQAAAAAAAy0AAAAAAAMtAAAAAAADLgAAAAAAA4EAAAAAAACBAAAAAAAAgQAAAAAAAC8AAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAALQAAAAAAAy0AAAAAAAMtAAAAAAADLgAAAAAAAy0AAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAFAAAAAAAgBEAAAAAAAARAAAAAAAAEQAAAAAAACBAAAAAAAAgQAAAAAAAC0AAAAAAAMtAAAAAAADLgAAAAAAAy0AAAAAAAAtAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAABQAAAAAAIAUAAAAAADAFAAAAAAAwBQAAAAAAMAUAAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAC0AAAAAAAAtAAAAAAAALQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAUAAAAAACAFAAAAAAAQBQAAAAAAEAUAAAAAACAFAAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAAAtAAAAAAAALQAAAAAAAC0AAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAFAAAAAAAQBQAAAAAAAAUAAAAAAAAFAAAAAAAABQAAAAAAMAgQAAAAAAAA== + tiles: gQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAABcAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAAAAAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAAAeAAAAAAAAgQAAAAAAAIEAAAAAAAAXAAAAAAAAFwAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAAAAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAC8AAAAAAACBAAAAAAAAAAAAAAAAABcAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAAAAAAAAAACBAAAAAAAALwAAAAAAAC8AAAAAAACBAAAAAAAAGAAAAAAAAC8AAAAAAACBAAAAAAAAgQAAAAAAAAAAAAAAAAAXAAAAAAAAFwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABcAAAAAAAAAAAAAAAAAgQAAAAAAAC8AAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAAAXAAAAAAAAFwAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAJQAAAAACACUAAAAAAAAlAAAAAAEAJQAAAAAAACUAAAAAAAAlAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAAAlAAAAAAIAJQAAAAAAACUAAAAAAgAlAAAAAAEAJQAAAAABACUAAAAAAQAlAAAAAAEAJQAAAAAAAIEAAAAAAAAvAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAJQAAAAAAACUAAAAAAAAlAAAAAAIAJQAAAAACACUAAAAAAAAlAAAAAAEAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAAAlAAAAAAAAJQAAAAADACUAAAAAAQAlAAAAAAMAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAHgAAAAAAAB4AAAAAAAAeAAAAAAAAgQAAAAAAAC0AAAAAAAOBAAAAAAAAJQAAAAADAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAC8AAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAAAtAAAAAAADLQAAAAAAAy0AAAAAAAMtAAAAAAADLgAAAAAAA4EAAAAAAACBAAAAAAAAgQAAAAAAAC8AAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAALQAAAAAAAy0AAAAAAAMtAAAAAAADLgAAAAAAAy0AAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAFAAAAAAAwBEAAAAAAAARAAAAAAAAEQAAAAAAACBAAAAAAAAgQAAAAAAAC0AAAAAAAMtAAAAAAADLgAAAAAAAy0AAAAAAAAtAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAABQAAAAAAIAUAAAAAACAFAAAAAAAgBQAAAAAAAAUAAAAAACAIEAAAAAAACBAAAAAAAAgQAAAAAAAC0AAAAAAAAtAAAAAAAALQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAUAAAAAAAAFAAAAAAAwBQAAAAAAEAUAAAAAABAFAAAAAAAgCBAAAAAAAAgQAAAAAAAIEAAAAAAAAtAAAAAAAALQAAAAAAAC0AAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAFAAAAAAAwBQAAAAAAMAUAAAAAADAFAAAAAAAgBQAAAAAAMAgQAAAAAAAA== version: 7 4,-3: ind: 4,-3 - tiles: YAAAAAADAGAAAAAAAQBgAAAAAAIAIAAAAAAAACAAAAAAAAAgAAAAAAAAIAAAAAABACAAAAAAAgAgAAAAAAAAIAAAAAABAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAAAgAAAAAAIAIAAAAAABAGAAAAAAAQBgAAAAAAAAYAAAAAADAIEAAAAAAAAgAAAAAAIAIAAAAAACACAAAAAAAwAgAAAAAAAAIAAAAAABACAAAAAAAwCBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAIAAAAAABACAAAAAAAQBgAAAAAAMAYAAAAAACAGAAAAAAAwBgAAAAAAIAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAACAAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAACYAAAAAAgAmAAAAAAIAYAAAAAABAGAAAAAAAABgAAAAAAAAYAAAAAADAGAAAAAAAQBgAAAAAAMAYAAAAAACAGAAAAAAAABgAAAAAAEAYAAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAAAgAAAAAAMAIAAAAAACAGAAAAAAAwBgAAAAAAIAYAAAAAABAGAAAAAAAQBgAAAAAAMAgQAAAAAAAIEAAAAAAABvAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAIAAAAAADACAAAAAAAABgAAAAAAMAYAAAAAACAGAAAAAAAQCBAAAAAAAAgQAAAAAAAIEAAAAAAABvAAAAAAAAbwAAAAAAAG8AAAAAAABvAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAYAAAAAADAGAAAAAAAQBgAAAAAAIAgQAAAAAAAGAAAAAAAwBgAAAAAAMAYAAAAAADAGAAAAAAAwBgAAAAAAEAbwAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAGAAAAAAAQBgAAAAAAIAYAAAAAACAGAAAAAAAABgAAAAAAAAYAAAAAADAGAAAAAAAwBgAAAAAAIAYAAAAAABAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAABgAAAAAAAAYAAAAAACAGAAAAAAAwBgAAAAAAMAYAAAAAADAGAAAAAAAgBgAAAAAAMAYAAAAAABAGAAAAAAAACBAAAAAAAAgQAAAAAAABgAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAYAAAAAABAGAAAAAAAQBgAAAAAAMAgQAAAAAAAGAAAAAAAwBgAAAAAAMAYAAAAAAAAGAAAAAAAgBgAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAGAAAAAAAgBgAAAAAAEAYAAAAAACAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAGAAAAAAAAIEAAAAAAABgAAAAAAEAYAAAAAADAIEAAAAAAACBAAAAAAAAIAAAAAADAEQAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAAAvAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAYAAAAAACAGAAAAAAAgCBAAAAAAAAIAAAAAABACAAAAAAAQBEAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAGAAAAAAAwBgAAAAAAEAIAAAAAAAACAAAAAAAgAgAAAAAAEARAAAAAAAAIEAAAAAAACBAAAAAAAALwAAAAAAAIEAAAAAAACBAAAAAAAAGAAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAABgAAAAAAIAYAAAAAABACAAAAAAAAAgAAAAAAAAIAAAAAABACAAAAAAAwCBAAAAAAAAgQAAAAAAAC8AAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAABgAAAAAAACBAAAAAAAAYAAAAAABAGAAAAAAAgCBAAAAAAAAIAAAAAABACAAAAAAAAAgAAAAAAIAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAA== + tiles: YAAAAAADAGAAAAAAAgBgAAAAAAAAIAAAAAACACAAAAAAAgAgAAAAAAAAIAAAAAAAACAAAAAAAwAgAAAAAAMAIAAAAAACAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAAAgAAAAAAAAIAAAAAAAAGAAAAAAAgBgAAAAAAAAYAAAAAADAIEAAAAAAAAgAAAAAAIAIAAAAAAAACAAAAAAAwAgAAAAAAEAIAAAAAABACAAAAAAAQCBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAIAAAAAACACAAAAAAAwBgAAAAAAMAYAAAAAACAGAAAAAAAwBgAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAACAAAAAAAgCBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAACYAAAAAAwAmAAAAAAMAYAAAAAABAGAAAAAAAABgAAAAAAIAYAAAAAAAAGAAAAAAAgBgAAAAAAMAYAAAAAABAGAAAAAAAABgAAAAAAMAYAAAAAADAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAAAgAAAAAAAAIAAAAAADAGAAAAAAAgBgAAAAAAMAYAAAAAADAGAAAAAAAABgAAAAAAIAgQAAAAAAAIEAAAAAAABvAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAIAAAAAABACAAAAAAAgBgAAAAAAAAYAAAAAABAGAAAAAAAwCBAAAAAAAAgQAAAAAAAIEAAAAAAABvAAAAAAAAbwAAAAAAAG8AAAAAAABvAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAYAAAAAABAGAAAAAAAABgAAAAAAMAgQAAAAAAAGAAAAAAAwBgAAAAAAIAYAAAAAABAGAAAAAAAgBgAAAAAAAAbwAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAGAAAAAAAwBgAAAAAAMAYAAAAAABAGAAAAAAAQBgAAAAAAAAYAAAAAABAGAAAAAAAgBgAAAAAAIAYAAAAAADAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAABgAAAAAAAAYAAAAAACAGAAAAAAAABgAAAAAAEAYAAAAAACAGAAAAAAAgBgAAAAAAIAYAAAAAADAGAAAAAAAQCBAAAAAAAAgQAAAAAAABgAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAYAAAAAACAGAAAAAAAABgAAAAAAMAgQAAAAAAAGAAAAAAAwBgAAAAAAEAYAAAAAADAGAAAAAAAABgAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAGAAAAAAAwBgAAAAAAIAYAAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAGAAAAAAAAIEAAAAAAABgAAAAAAAAYAAAAAAAAIEAAAAAAACBAAAAAAAAIAAAAAACAEQAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAAAvAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAYAAAAAACAGAAAAAAAQCBAAAAAAAAIAAAAAABACAAAAAAAwBEAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAGAAAAAAAQBgAAAAAAIAIAAAAAACACAAAAAAAgAgAAAAAAMARAAAAAAAAIEAAAAAAACBAAAAAAAALwAAAAAAAIEAAAAAAACBAAAAAAAAGAAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAABgAAAAAAMAYAAAAAADACAAAAAAAAAgAAAAAAMAIAAAAAADACAAAAAAAQCBAAAAAAAAgQAAAAAAAC8AAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAABgAAAAAAACBAAAAAAAAYAAAAAADAGAAAAAAAACBAAAAAAAAIAAAAAACACAAAAAAAwAgAAAAAAMAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAA== version: 7 5,-3: ind: 5,-3 - tiles: IAAAAAACACAAAAAAAgCBAAAAAAAAgQAAAAAAAIEAAAAAAAAYAAAAAAAAGAAAAAAAABgAAAAAAAAYAAAAAAAAGAAAAAAAABgAAAAAAAAYAAAAAAAAGAAAAAAAAAQAAAAAAAAEAAAAAAAAGAAAAAAAACAAAAAAAAAgAAAAAAEAIAAAAAACABgAAAAAAAAYAAAAAAAAGAAAAAAAABgAAAAAAAAYAAAAAAAAGAAAAAAAABgAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAAAYAAAAAAAABAAAAAAAABgAAAAAAAAmAAAAAAIAJgAAAAADACYAAAAAAwAYAAAAAAAAGAAAAAAAABgAAAAAAAAYAAAAAAAAGAAAAAAAABgAAAAAAAAEAAAAAAAAgQAAAAAAAAQAAAAAAABHAAAAAAAABAAAAAAAAAQAAAAAAAAYAAAAAAAAIAAAAAAAACAAAAAAAAAgAAAAAAEAGAAAAAAAABgAAAAAAAAYAAAAAAAAGAAAAAAAABgAAAAAAAAYAAAAAAAAGAAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAABgAAAAAAAAEAAAAAAAAGAAAAAAAACAAAAAAAgAgAAAAAAIAgQAAAAAAAIEAAAAAAACBAAAAAAAAGAAAAAAAABgAAAAAAAAYAAAAAAAAGAAAAAAAABgAAAAAAAAYAAAAAAAAGAAAAAAAABgAAAAAAAAEAAAAAAAABAAAAAAAABgAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAGAAAAAAAABgAAAAAAAAEAAAAAAAABAAAAAAAABgAAAAAAAAYAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAFwAAAAAAABcAAAAAAAAXAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAABAAAAAAAAAQAAAAAAAAEAAAAAAAABAAAAAAAABgAAAAAAAAYAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFwAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAABgAAAAAAAAYAAAAAAAAGAAAAAAAABgAAAAAAAAYAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFwAAAAAAAIEAAAAAAACBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXAAAAAAAAgQAAAAAAAIEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIEAAAAAAACBAAAAAAAAFwAAAAAAABcAAAAAAAAXAAAAAAAAFwAAAAAAABcAAAAAAAAXAAAAAAAAFwAAAAAAABcAAAAAAAAXAAAAAAAAFwAAAAAAABcAAAAAAAAXAAAAAAAAFwAAAAAAABcAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAAAXAAAAAAAAFwAAAAAAABcAAAAAAAAXAAAAAAAAFwAAAAAAABcAAAAAAAAXAAAAAAAAFwAAAAAAABcAAAAAAAAXAAAAAAAAFwAAAAAAABcAAAAAAAAXAAAAAAAAFwAAAAAAAA== + tiles: IAAAAAADACAAAAAAAgCBAAAAAAAAgQAAAAAAAIEAAAAAAAAYAAAAAAAAGAAAAAAAABgAAAAAAAAYAAAAAAAAGAAAAAAAABgAAAAAAAAYAAAAAAAAGAAAAAAAAAQAAAAAAAAEAAAAAAAAGAAAAAAAACAAAAAAAAAgAAAAAAEAIAAAAAADABgAAAAAAAAYAAAAAAAAGAAAAAAAABgAAAAAAAAYAAAAAAAAGAAAAAAAABgAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAAAYAAAAAAAABAAAAAAAABgAAAAAAAAmAAAAAAAAJgAAAAADACYAAAAAAgAYAAAAAAAAGAAAAAAAABgAAAAAAAAYAAAAAAAAGAAAAAAAABgAAAAAAAAEAAAAAAAAgQAAAAAAAAQAAAAAAABHAAAAAAAABAAAAAAAAAQAAAAAAAAYAAAAAAAAIAAAAAADACAAAAAAAgAgAAAAAAAAGAAAAAAAABgAAAAAAAAYAAAAAAAAGAAAAAAAABgAAAAAAAAYAAAAAAAAGAAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAABgAAAAAAAAEAAAAAAAAGAAAAAAAACAAAAAAAwAgAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAGAAAAAAAABgAAAAAAAAYAAAAAAAAGAAAAAAAABgAAAAAAAAYAAAAAAAAGAAAAAAAABgAAAAAAAAEAAAAAAAABAAAAAAAABgAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAGAAAAAAAABgAAAAAAAAEAAAAAAAABAAAAAAAABgAAAAAAAAYAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAFwAAAAAAABcAAAAAAAAXAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAABAAAAAAAAAQAAAAAAAAEAAAAAAAABAAAAAAAABgAAAAAAAAYAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFwAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAABgAAAAAAAAYAAAAAAAAGAAAAAAAABgAAAAAAAAYAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFwAAAAAAAIEAAAAAAACBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXAAAAAAAAgQAAAAAAAIEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIEAAAAAAACBAAAAAAAAFwAAAAAAABcAAAAAAAAXAAAAAAAAFwAAAAAAABcAAAAAAAAXAAAAAAAAFwAAAAAAABcAAAAAAAAXAAAAAAAAFwAAAAAAABcAAAAAAAAXAAAAAAAAFwAAAAAAABcAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAAAXAAAAAAAAFwAAAAAAABcAAAAAAAAXAAAAAAAAFwAAAAAAABcAAAAAAAAXAAAAAAAAFwAAAAAAABcAAAAAAAAXAAAAAAAAFwAAAAAAABcAAAAAAAAXAAAAAAAAFwAAAAAAAA== version: 7 3,-3: ind: 3,-3 - tiles: gQAAAAAAAIEAAAAAAAAtAAAAAAAAIAAAAAAAAC0AAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAFAAAAAAAQBQAAAAAAIAUAAAAAAAAFAAAAAAAABQAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAALQAAAAAAAC0AAAAAAAAuAAAAAAABLgAAAAAAA4EAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAUAAAAAAAAFAAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAC0AAAAAAAAtAAAAAAAAIAAAAAABAC4AAAAAAAEtAAAAAAABLQAAAAAAAYEAAAAAAACBAAAAAAAAUAAAAAAAAFAAAAAAAwBQAAAAAAIAUAAAAAACAIEAAAAAAACBAAAAAAAAGAAAAAAAAIEAAAAAAAAuAAAAAAAALgAAAAAAAS4AAAAAAAMgAAAAAAMAIAAAAAAAACAAAAAAAQAgAAAAAAAAIAAAAAADAFAAAAAAAABQAAAAAAMAUAAAAAACAFAAAAAAAAAgAAAAAAEAgQAAAAAAAIEAAAAAAACBAAAAAAAAIAAAAAADACAAAAAAAgAtAAAAAAAAIAAAAAAAACAAAAAAAQAgAAAAAAEAIAAAAAAAACAAAAAAAAAgAAAAAAEAIAAAAAAAACAAAAAAAAAgAAAAAAEAIAAAAAADAGAAAAAAAwCBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAACAAAAAAAwAgAAAAAAIAIAAAAAACACAAAAAAAQAgAAAAAAAAIAAAAAABACAAAAAAAQAgAAAAAAAAIAAAAAADACAAAAAAAABgAAAAAAEAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAIAAAAAACACAAAAAAAgAgAAAAAAIAIAAAAAABACAAAAAAAgAgAAAAAAAAIAAAAAAAACAAAAAAAwAgAAAAAAEAgQAAAAAAAIEAAAAAAAAeAAAAAAAAHgAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAGAAAAAAAABgAAAAAAEAYAAAAAAAAIEAAAAAAABgAAAAAAEAYAAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAABgAAAAAAMARAAAAAAAAGAAAAAAAwBgAAAAAAIAYAAAAAABAGAAAAAAAQCBAAAAAAAAYAAAAAACAGAAAAAAAwCBAAAAAAAAgQAAAAAAAIEAAAAAAAAgAAAAAAMAIAAAAAACACAAAAAAAACBAAAAAAAAYAAAAAADAGAAAAAAAABgAAAAAAAAYAAAAAAAAGAAAAAAAQBgAAAAAAMAgQAAAAAAAGAAAAAAAQBgAAAAAAIAgQAAAAAAAIEAAAAAAACBAAAAAAAAIAAAAAADACAAAAAAAQAgAAAAAAEAgQAAAAAAAGAAAAAAAgBgAAAAAAMAYAAAAAADAGAAAAAAAwBgAAAAAAIAYAAAAAABAIEAAAAAAABgAAAAAAIAYAAAAAADAIEAAAAAAACBAAAAAAAAIAAAAAAAACAAAAAAAwAgAAAAAAIAIAAAAAABAIEAAAAAAABgAAAAAAAAYAAAAAABAGAAAAAAAgBgAAAAAAEAYAAAAAAAAGAAAAAAAwBgAAAAAAEAYAAAAAABAGAAAAAAAgBgAAAAAAMAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAGAAAAAAAwCBAAAAAAAAgQAAAAAAAGAAAAAAAACBAAAAAAAAYAAAAAACAGAAAAAAAACBAAAAAAAAgQAAAAAAAGAAAAAAAgBgAAAAAAMAYAAAAAAAAIEAAAAAAACBAAAAAAAAFgAAAAADABYAAAAAAgBgAAAAAAIAYAAAAAACAGAAAAAAAwBgAAAAAAMAYAAAAAAAAGAAAAAAAABgAAAAAAMAYAAAAAABAGAAAAAAAQBgAAAAAAIAYAAAAAACAGAAAAAAAgCBAAAAAAAAgQAAAAAAABYAAAAAAQAWAAAAAAMAYAAAAAAAAGAAAAAAAgBgAAAAAAIAYAAAAAACAGAAAAAAAgBgAAAAAAEAYAAAAAACAGAAAAAAAgBgAAAAAAEAYAAAAAAAAGAAAAAAAgBgAAAAAAIAgQAAAAAAAIEAAAAAAAAWAAAAAAIAFgAAAAAAABYAAAAAAABgAAAAAAMAYAAAAAABAGAAAAAAAQBgAAAAAAMAYAAAAAABAGAAAAAAAQBgAAAAAAEAYAAAAAABAGAAAAAAAQBgAAAAAAEAYAAAAAADAA== + tiles: gQAAAAAAAIEAAAAAAAAtAAAAAAAAIAAAAAADAC0AAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAFAAAAAAAABQAAAAAAMAUAAAAAACAFAAAAAAAwBQAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAALQAAAAAAAC0AAAAAAAAuAAAAAAABLgAAAAAAA4EAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAUAAAAAADAFAAAAAAAQCBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAC0AAAAAAAAtAAAAAAAAIAAAAAAAAC4AAAAAAAEtAAAAAAABLQAAAAAAAYEAAAAAAACBAAAAAAAAUAAAAAACAFAAAAAAAwBQAAAAAAMAUAAAAAACAIEAAAAAAACBAAAAAAAAGAAAAAAAAIEAAAAAAAAuAAAAAAAALgAAAAAAAS4AAAAAAAMgAAAAAAIAIAAAAAACACAAAAAAAgAgAAAAAAMAIAAAAAADAFAAAAAAAwBQAAAAAAAAUAAAAAADAFAAAAAAAwAgAAAAAAMAgQAAAAAAAIEAAAAAAACBAAAAAAAAIAAAAAACACAAAAAAAAAtAAAAAAAAIAAAAAAAACAAAAAAAgAgAAAAAAIAIAAAAAACACAAAAAAAQAgAAAAAAEAIAAAAAABACAAAAAAAwAgAAAAAAAAIAAAAAACAGAAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAACAAAAAAAgAgAAAAAAEAIAAAAAACACAAAAAAAwAgAAAAAAMAIAAAAAACACAAAAAAAwAgAAAAAAAAIAAAAAACACAAAAAAAABgAAAAAAIAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAIAAAAAABACAAAAAAAwAgAAAAAAEAIAAAAAADACAAAAAAAAAgAAAAAAAAIAAAAAABACAAAAAAAwAgAAAAAAIAgQAAAAAAAIEAAAAAAAAeAAAAAAAAHgAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAGAAAAAAAgBgAAAAAAAAYAAAAAABAIEAAAAAAABgAAAAAAEAYAAAAAABAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAABgAAAAAAIARAAAAAAAAGAAAAAAAABgAAAAAAIAYAAAAAADAGAAAAAAAACBAAAAAAAAYAAAAAAAAGAAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAAAgAAAAAAIAIAAAAAADACAAAAAAAwCBAAAAAAAAYAAAAAADAGAAAAAAAgBgAAAAAAIAYAAAAAAAAGAAAAAAAQBgAAAAAAMAgQAAAAAAAGAAAAAAAwBgAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAIAAAAAACACAAAAAAAQAgAAAAAAMAgQAAAAAAAGAAAAAAAQBgAAAAAAAAYAAAAAADAGAAAAAAAABgAAAAAAMAYAAAAAAAAIEAAAAAAABgAAAAAAAAYAAAAAADAIEAAAAAAACBAAAAAAAAIAAAAAADACAAAAAAAwAgAAAAAAEAIAAAAAAAAIEAAAAAAABgAAAAAAEAYAAAAAACAGAAAAAAAQBgAAAAAAAAYAAAAAAAAGAAAAAAAwBgAAAAAAMAYAAAAAACAGAAAAAAAABgAAAAAAIAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAGAAAAAAAACBAAAAAAAAgQAAAAAAAGAAAAAAAACBAAAAAAAAYAAAAAACAGAAAAAAAgCBAAAAAAAAgQAAAAAAAGAAAAAAAQBgAAAAAAEAYAAAAAABAIEAAAAAAACBAAAAAAAAFgAAAAADABYAAAAAAQBgAAAAAAIAYAAAAAAAAGAAAAAAAgBgAAAAAAMAYAAAAAABAGAAAAAAAgBgAAAAAAIAYAAAAAABAGAAAAAAAwBgAAAAAAAAYAAAAAABAGAAAAAAAwCBAAAAAAAAgQAAAAAAABYAAAAAAgAWAAAAAAAAYAAAAAADAGAAAAAAAQBgAAAAAAAAYAAAAAADAGAAAAAAAwBgAAAAAAIAYAAAAAADAGAAAAAAAQBgAAAAAAEAYAAAAAABAGAAAAAAAwBgAAAAAAEAgQAAAAAAAIEAAAAAAAAWAAAAAAAAFgAAAAAAABYAAAAAAABgAAAAAAAAYAAAAAAAAGAAAAAAAwBgAAAAAAMAYAAAAAAAAGAAAAAAAQBgAAAAAAEAYAAAAAAAAGAAAAAAAABgAAAAAAMAYAAAAAABAA== version: 7 4,-2: ind: 4,-2 - tiles: YAAAAAAAAGAAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAAAYAAAAAAAAGAAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAGAAAAAAAgCBAAAAAAAAgQAAAAAAABIAAAAAAAASAAAAAAAAEgAAAAAAABIAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAABgAAAAAAEAYAAAAAACAB4AAAAAAAAgAAAAAAMAIAAAAAABACAAAAAAAQAgAAAAAAMAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAABgAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAAAYAAAAAAAAYAAAAAACAGAAAAAAAwAeAAAAAAAAIAAAAAABACAAAAAAAAAgAAAAAAIAIAAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAAAYAAAAAAAAgQAAAAAAAGAAAAAAAABgAAAAAAIAHgAAAAAAABIAAAAAAAASAAAAAAAAEgAAAAAAABIAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAAAvAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAARwAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAALQAAAAAAAS8AAAAAAAAtAAAAAAABLQAAAAAAAS0AAAAAAAEuAAAAAAADgQAAAAAAAIEAAAAAAACBAAAAAAAAGAAAAAAAABgAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAC0AAAAAAAEvAAAAAAAALQAAAAAAAS0AAAAAAAEuAAAAAAADLgAAAAAAAS4AAAAAAAOBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAAAtAAAAAAABLwAAAAAAAC0AAAAAAAGBAAAAAAAALgAAAAAAAS0AAAAAAAEtAAAAAAAALwAAAAAAACAAAAAAAgAgAAAAAAEAIAAAAAABACAAAAAAAAAgAAAAAAMAIAAAAAABACAAAAAAAQAgAAAAAAMAgQAAAAAAACAAAAAAAgCBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAALgAAAAAAAS4AAAAAAAOBAAAAAAAAIAAAAAAAACAAAAAAAAAgAAAAAAAAIAAAAAABACAAAAAAAQAgAAAAAAIAIAAAAAAAAIEAAAAAAAAgAAAAAAEAIAAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAC4AAAAAAAMtAAAAAAAAgQAAAAAAACAAAAAAAQAgAAAAAAIAIAAAAAABACAAAAAAAgAgAAAAAAMAIAAAAAADACAAAAAAAACBAAAAAAAAIAAAAAACACAAAAAAAgCBAAAAAAAAgQAAAAAAAIEAAAAAAAAuAAAAAAABLgAAAAAAAIEAAAAAAAAgAAAAAAEAIAAAAAACACAAAAAAAwAgAAAAAAMAIAAAAAABACAAAAAAAAAgAAAAAAAAgQAAAAAAACAAAAAAAQAgAAAAAAIAgQAAAAAAAIEAAAAAAACBAAAAAAAALQAAAAAAAy0AAAAAAAOBAAAAAAAAIAAAAAADACAAAAAAAwAgAAAAAAMAIAAAAAACACAAAAAAAgAgAAAAAAMAIAAAAAACACAAAAAAAQAgAAAAAAMAIAAAAAABAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAAAgAAAAAAMAIAAAAAABACAAAAAAAgCBAAAAAAAAIQAAAAACACEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAABcAAAAAAAAXAAAAAAAAFwAAAAAAABcAAAAAAAAXAAAAAAAAFwAAAAAAABcAAAAAAAAXAAAAAAAAFwAAAAAAAA== + tiles: YAAAAAABAGAAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAAAYAAAAAAAAGAAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAGAAAAAAAACBAAAAAAAAgQAAAAAAABIAAAAAAAASAAAAAAAAEgAAAAAAABIAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAABgAAAAAAMAYAAAAAAAAB4AAAAAAAAgAAAAAAMAIAAAAAADACAAAAAAAwAgAAAAAAIAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAABgAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAAAYAAAAAAAAYAAAAAACAGAAAAAAAwAeAAAAAAAAIAAAAAAAACAAAAAAAAAgAAAAAAIAIAAAAAABAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAAAYAAAAAAAAgQAAAAAAAGAAAAAAAQBgAAAAAAMAHgAAAAAAABIAAAAAAAASAAAAAAAAEgAAAAAAABIAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAAAvAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAARwAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAALQAAAAAAAS8AAAAAAAAtAAAAAAABLQAAAAAAAS0AAAAAAAEuAAAAAAADgQAAAAAAAIEAAAAAAACBAAAAAAAAGAAAAAAAABgAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAC0AAAAAAAEvAAAAAAAALQAAAAAAAS0AAAAAAAEuAAAAAAADLgAAAAAAAS4AAAAAAAOBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAAAtAAAAAAABLwAAAAAAAC0AAAAAAAGBAAAAAAAALgAAAAAAAS0AAAAAAAEtAAAAAAAALwAAAAAAACAAAAAAAAAgAAAAAAEAIAAAAAACACAAAAAAAgAgAAAAAAMAIAAAAAADACAAAAAAAgAgAAAAAAEAgQAAAAAAACAAAAAAAQCBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAALgAAAAAAAS4AAAAAAAOBAAAAAAAAIAAAAAADACAAAAAAAQAgAAAAAAMAIAAAAAAAACAAAAAAAQAgAAAAAAEAIAAAAAAAAIEAAAAAAAAgAAAAAAEAIAAAAAABAIEAAAAAAACBAAAAAAAAgQAAAAAAAC4AAAAAAAMtAAAAAAAAgQAAAAAAACAAAAAAAAAgAAAAAAIAIAAAAAACACAAAAAAAwAgAAAAAAIAIAAAAAADACAAAAAAAwCBAAAAAAAAIAAAAAABACAAAAAAAQCBAAAAAAAAgQAAAAAAAIEAAAAAAAAuAAAAAAABLgAAAAAAAIEAAAAAAAAgAAAAAAEAIAAAAAABACAAAAAAAAAgAAAAAAEAIAAAAAACACAAAAAAAAAgAAAAAAAAgQAAAAAAACAAAAAAAQAgAAAAAAEAgQAAAAAAAIEAAAAAAACBAAAAAAAALQAAAAAAAy0AAAAAAAOBAAAAAAAAIAAAAAACACAAAAAAAQAgAAAAAAEAIAAAAAAAACAAAAAAAgAgAAAAAAEAIAAAAAAAACAAAAAAAgAgAAAAAAEAIAAAAAACAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAAAgAAAAAAAAIAAAAAABACAAAAAAAgCBAAAAAAAAIQAAAAABACEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAABcAAAAAAAAXAAAAAAAAFwAAAAAAABcAAAAAAAAXAAAAAAAAFwAAAAAAABcAAAAAAAAXAAAAAAAAFwAAAAAAAA== version: 7 3,-2: ind: 3,-2 - tiles: gQAAAAAAAIEAAAAAAAAWAAAAAAEAFgAAAAABABYAAAAAAQBgAAAAAAAAgQAAAAAAAGAAAAAAAwBgAAAAAAEAYAAAAAACAGAAAAAAAQBgAAAAAAMAYAAAAAADAGAAAAAAAQBgAAAAAAAAYAAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAYAAAAAAAAIEAAAAAAABgAAAAAAAAYAAAAAADAIEAAAAAAABgAAAAAAIAYAAAAAABAIEAAAAAAACBAAAAAAAAgQAAAAAAAGAAAAAAAgCBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAYAAAAAACAGAAAAAAAQCBAAAAAAAAYAAAAAAAAGAAAAAAAgBgAAAAAAIAYAAAAAADAGAAAAAAAwBgAAAAAAEAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAGAAAAAAAABgAAAAAAIAYAAAAAABAGAAAAAAAgBgAAAAAAAAYAAAAAABAIEAAAAAAABgAAAAAAIAYAAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAABgAAAAAAIAYAAAAAABAGAAAAAAAQBgAAAAAAAAYAAAAAAAAGAAAAAAAQBgAAAAAAMAYAAAAAAAAGAAAAAAAQAYAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAGAAAAAAAABgAAAAAAACBAAAAAAAAYAAAAAAAAGAAAAAAAQCBAAAAAAAAYAAAAAAAAGAAAAAAAgBgAAAAAAEAgQAAAAAAAIEAAAAAAABHAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAABgAAAAAAACBAAAAAAAALgAAAAAAAiAAAAAAAwAgAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAAAtAAAAAAABLwAAAAAAAC0AAAAAAAMtAAAAAAADLQAAAAAAAy0AAAAAAAMtAAAAAAADLQAAAAAAAy0AAAAAAAMuAAAAAAADLgAAAAAAAS0AAAAAAAMtAAAAAAADLQAAAAAAAy0AAAAAAAMtAAAAAAABLQAAAAAAAS8AAAAAAAAuAAAAAAABLQAAAAAAAy0AAAAAAAMtAAAAAAADLQAAAAAAAy0AAAAAAAMuAAAAAAAALgAAAAAAAS0AAAAAAAMtAAAAAAADLQAAAAAAAy0AAAAAAAMtAAAAAAADLQAAAAAAAS0AAAAAAAEvAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAIAAAAAABABgAAAAAAAAYAAAAAAAAGAAAAAAAABgAAAAAAAAYAAAAAAAAGAAAAAAAABgAAAAAAAAYAAAAAAAAGAAAAAAAACAAAAAAAQAgAAAAAAIAIAAAAAABACAAAAAAAQAgAAAAAAMAgQAAAAAAACAAAAAAAQBgAAAAAAEAYAAAAAADAGAAAAAAAABgAAAAAAMAYAAAAAACAGAAAAAAAQBgAAAAAAEAYAAAAAACAGAAAAAAAQCBAAAAAAAAIAAAAAACACAAAAAAAAAgAAAAAAAAIAAAAAADACAAAAAAAQAgAAAAAAEAIgAAAAADACIAAAAAAQAiAAAAAAEAIgAAAAADACQAAAAAAgAiAAAAAAMAIgAAAAADACIAAAAAAQBgAAAAAAMAIAAAAAACACAAAAAAAQAgAAAAAAEAIAAAAAAAACAAAAAAAACBAAAAAAAAIAAAAAACAGAAAAAAAQBgAAAAAAMAYAAAAAACAGAAAAAAAgBgAAAAAAIAYAAAAAAAAGAAAAAAAAAiAAAAAAEAYAAAAAACAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAACAAAAAAAwAfAAAAAAEAgQAAAAAAAAcAAAAAAAAHAAAAAAAABwAAAAAAAIEAAAAAAABgAAAAAAEAIgAAAAACAGAAAAAAAABHAAAAAAAAIAAAAAADACAAAAAAAQAgAAAAAAAAIAAAAAADACAAAAAAAAAgAAAAAAMAgQAAAAAAAGAAAAAAAwCBAAAAAAAAgQAAAAAAAGAAAAAAAwAiAAAAAAAAIgAAAAABACIAAAAAAABgAAAAAAAAgQAAAAAAACAAAAAAAQAgAAAAAAIAIAAAAAAAACAAAAAAAAAgAAAAAAEAIAAAAAADAA== + tiles: gQAAAAAAAIEAAAAAAAAWAAAAAAMAFgAAAAACABYAAAAAAABgAAAAAAAAgQAAAAAAAGAAAAAAAABgAAAAAAAAYAAAAAABAGAAAAAAAwBgAAAAAAIAYAAAAAAAAGAAAAAAAQBgAAAAAAIAYAAAAAACAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAYAAAAAACAIEAAAAAAABgAAAAAAIAYAAAAAABAIEAAAAAAABgAAAAAAAAYAAAAAACAIEAAAAAAACBAAAAAAAAgQAAAAAAAGAAAAAAAwCBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAYAAAAAABAGAAAAAAAgCBAAAAAAAAYAAAAAACAGAAAAAAAQBgAAAAAAIAYAAAAAAAAGAAAAAAAwBgAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAGAAAAAAAQBgAAAAAAAAYAAAAAABAGAAAAAAAwBgAAAAAAMAYAAAAAAAAIEAAAAAAABgAAAAAAEAYAAAAAADAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAABgAAAAAAEAYAAAAAABAGAAAAAAAgBgAAAAAAEAYAAAAAADAGAAAAAAAQBgAAAAAAEAYAAAAAACAGAAAAAAAQAYAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAGAAAAAAAABgAAAAAAACBAAAAAAAAYAAAAAAAAGAAAAAAAgCBAAAAAAAAYAAAAAAAAGAAAAAAAABgAAAAAAEAgQAAAAAAAIEAAAAAAABHAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAABgAAAAAAACBAAAAAAAALgAAAAAAAiAAAAAAAQAgAAAAAAEAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAAAtAAAAAAABLwAAAAAAAC0AAAAAAAMtAAAAAAADLQAAAAAAAy0AAAAAAAMtAAAAAAADLQAAAAAAAy0AAAAAAAMuAAAAAAADLgAAAAAAAS0AAAAAAAMtAAAAAAADLQAAAAAAAy0AAAAAAAMtAAAAAAABLQAAAAAAAS8AAAAAAAAuAAAAAAABLQAAAAAAAy0AAAAAAAMtAAAAAAADLQAAAAAAAy0AAAAAAAMuAAAAAAAALgAAAAAAAS0AAAAAAAMtAAAAAAADLQAAAAAAAy0AAAAAAAMtAAAAAAADLQAAAAAAAS0AAAAAAAEvAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAIAAAAAADABgAAAAAAAAYAAAAAAAAGAAAAAAAABgAAAAAAAAYAAAAAAAAGAAAAAAAABgAAAAAAAAYAAAAAAAAGAAAAAAAACAAAAAAAwAgAAAAAAAAIAAAAAACACAAAAAAAgAgAAAAAAIAgQAAAAAAACAAAAAAAgBgAAAAAAMAYAAAAAADAGAAAAAAAwBgAAAAAAEAYAAAAAABAGAAAAAAAABgAAAAAAIAYAAAAAAAAGAAAAAAAACBAAAAAAAAIAAAAAADACAAAAAAAAAgAAAAAAEAIAAAAAABACAAAAAAAwAgAAAAAAIAIgAAAAABACIAAAAAAwAiAAAAAAEAIgAAAAADACQAAAAAAQAiAAAAAAEAIgAAAAAAACIAAAAAAABgAAAAAAAAIAAAAAACACAAAAAAAQAgAAAAAAMAIAAAAAADACAAAAAAAgCBAAAAAAAAIAAAAAABAGAAAAAAAABgAAAAAAMAYAAAAAACAGAAAAAAAgBgAAAAAAAAYAAAAAADAGAAAAAAAQAiAAAAAAIAYAAAAAABAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAACAAAAAAAwAfAAAAAAMAgQAAAAAAAAcAAAAAAAAHAAAAAAAABwAAAAAAAIEAAAAAAABgAAAAAAAAIgAAAAABAGAAAAAAAABHAAAAAAAAIAAAAAABACAAAAAAAgAgAAAAAAAAIAAAAAAAACAAAAAAAAAgAAAAAAAAgQAAAAAAAGAAAAAAAQCBAAAAAAAAgQAAAAAAAGAAAAAAAgAiAAAAAAEAIgAAAAACACIAAAAAAQBgAAAAAAMAgQAAAAAAACAAAAAAAQAgAAAAAAEAIAAAAAAAACAAAAAAAwAgAAAAAAEAIAAAAAAAAA== version: 7 2,-2: ind: 2,-2 - tiles: gQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAABgAAAAAAACBAAAAAAAALwAAAAAAACUAAAAAAQAlAAAAAAAAJQAAAAADACkAAAAAAQCBAAAAAAAAgQAAAAAAABgAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAGAAAAAAAAIEAAAAAAAAYAAAAAAAAGAAAAAAAAIEAAAAAAAAYAAAAAAAAGAAAAAAAABgAAAAAAAApAAAAAAMAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAGAAAAAAAAIEAAAAAAACBAAAAAAAAGAAAAAAAABgAAAAAAACBAAAAAAAAGAAAAAAAABgAAAAAAAAYAAAAAAAAGAAAAAAAABgAAAAAAAAYAAAAAAAAGAAAAAAAABgAAAAAAAAYAAAAAAAAgQAAAAAAAIEAAAAAAAAvAAAAAAAAgQAAAAAAAIEAAAAAAAAYAAAAAAAAgQAAAAAAABgAAAAAAAAYAAAAAAAAGAAAAAAAACkAAAAAAgCBAAAAAAAAGAAAAAAAABgAAAAAAACBAAAAAAAAGAAAAAAAABgAAAAAAAAYAAAAAAAAGAAAAAAAAIEAAAAAAAAYAAAAAAAAGAAAAAAAAIEAAAAAAAAlAAAAAAIAJQAAAAAAACkAAAAAAgApAAAAAAIAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAGAAAAAAAABgAAAAAAAAYAAAAAAAAGAAAAAAAABgAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAAAuAAAAAAACLQAAAAAAAy0AAAAAAAMuAAAAAAACLgAAAAAAA4EAAAAAAAAvAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAALwAAAAAAAC0AAAAAAAMYAAAAAAAALQAAAAAAAy0AAAAAAAMtAAAAAAADLQAAAAAAAy4AAAAAAAMtAAAAAAADLgAAAAAAAC4AAAAAAAEtAAAAAAADLQAAAAAAAy0AAAAAAAMtAAAAAAADLQAAAAAAAy4AAAAAAAIrAAAAAAEAGAAAAAAAACsAAAAAAQArAAAAAAEAKwAAAAAAACUAAAAAAAAtAAAAAAAALQAAAAAAAy0AAAAAAAMtAAAAAAADLQAAAAAAAy0AAAAAAAMtAAAAAAADLQAAAAAAAy0AAAAAAAMuAAAAAAAALQAAAAAAAxgAAAAAAAAtAAAAAAADLQAAAAAAAy0AAAAAAAMtAAAAAAADLgAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAC8AAAAAAAAvAAAAAAAALwAAAAAAAIEAAAAAAACBAAAAAAAAGAAAAAAAABgAAAAAAAAYAAAAAAAAGAAAAAAAABgAAAAAAAAYAAAAAAAAGAAAAAAAABgAAAAAAAApAAAAAAIAKQAAAAADAIEAAAAAAAAvAAAAAAAALwAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAYAAAAAADAGAAAAAAAQBgAAAAAAEAYAAAAAADAGAAAAAAAQBgAAAAAAAAKQAAAAACACkAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAFwAAAAAAAIEAAAAAAAAZAAAAAAIAgQAAAAAAACIAAAAAAgAiAAAAAAMAIgAAAAAAACIAAAAAAwAiAAAAAAMAIgAAAAABACkAAAAAAAApAAAAAAIAKQAAAAADACkAAAAAAAApAAAAAAIAgQAAAAAAABcAAAAAAACBAAAAAAAAYAAAAAADACIAAAAAAAAiAAAAAAAAYAAAAAAAAGAAAAAAAABgAAAAAAEAYAAAAAADAGAAAAAAAAApAAAAAAIAKQAAAAABACkAAAAAAgApAAAAAAAAKQAAAAAAAIEAAAAAAAAAAAAAAAAAgQAAAAAAAGAAAAAAAAAiAAAAAAAAYAAAAAADAIEAAAAAAAAfAAAAAAAAHwAAAAACAGAAAAAAAAAfAAAAAAEAKQAAAAADAIEAAAAAAACBAAAAAAAAKQAAAAABAIEAAAAAAACBAAAAAAAAAAAAAAAAAIEAAAAAAABgAAAAAAIAIgAAAAADAGAAAAAAAgBgAAAAAAIAgQAAAAAAAIEAAAAAAABgAAAAAAAAgQAAAAAAAA== + tiles: gQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAABgAAAAAAACBAAAAAAAALwAAAAAAACUAAAAAAgAlAAAAAAMAJQAAAAAAACkAAAAAAQCBAAAAAAAAgQAAAAAAABgAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAGAAAAAAAAIEAAAAAAAAYAAAAAAAAGAAAAAAAAIEAAAAAAAAYAAAAAAAAGAAAAAAAABgAAAAAAAApAAAAAAIAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAGAAAAAAAAIEAAAAAAACBAAAAAAAAGAAAAAAAABgAAAAAAACBAAAAAAAAGAAAAAAAABgAAAAAAAAYAAAAAAAAGAAAAAAAABgAAAAAAAAYAAAAAAAAGAAAAAAAABgAAAAAAAAYAAAAAAAAgQAAAAAAAIEAAAAAAAAvAAAAAAAAgQAAAAAAAIEAAAAAAAAYAAAAAAAAgQAAAAAAABgAAAAAAAAYAAAAAAAAGAAAAAAAACkAAAAAAwCBAAAAAAAAGAAAAAAAABgAAAAAAACBAAAAAAAAGAAAAAAAABgAAAAAAAAYAAAAAAAAGAAAAAAAAIEAAAAAAAAYAAAAAAAAGAAAAAAAAIEAAAAAAAAlAAAAAAAAJQAAAAACACkAAAAAAwApAAAAAAMAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAGAAAAAAAABgAAAAAAAAYAAAAAAAAGAAAAAAAABgAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAAAuAAAAAAACLQAAAAAAAy0AAAAAAAMuAAAAAAACLgAAAAAAA4EAAAAAAAAvAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAALwAAAAAAAC0AAAAAAAMYAAAAAAAALQAAAAAAAy0AAAAAAAMtAAAAAAADLQAAAAAAAy4AAAAAAAMtAAAAAAADLgAAAAAAAC4AAAAAAAEtAAAAAAADLQAAAAAAAy0AAAAAAAMtAAAAAAADLQAAAAAAAy4AAAAAAAIrAAAAAAMAGAAAAAAAACsAAAAAAAArAAAAAAEAKwAAAAADACUAAAAAAAAtAAAAAAAALQAAAAAAAy0AAAAAAAMtAAAAAAADLQAAAAAAAy0AAAAAAAMtAAAAAAADLQAAAAAAAy0AAAAAAAMuAAAAAAAALQAAAAAAAxgAAAAAAAAtAAAAAAADLQAAAAAAAy0AAAAAAAMtAAAAAAADLgAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAC8AAAAAAAAvAAAAAAAALwAAAAAAAIEAAAAAAACBAAAAAAAAGAAAAAAAABgAAAAAAAAYAAAAAAAAGAAAAAAAABgAAAAAAAAYAAAAAAAAGAAAAAAAABgAAAAAAAApAAAAAAIAKQAAAAAAAIEAAAAAAAAvAAAAAAAALwAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAYAAAAAACAGAAAAAAAABgAAAAAAIAYAAAAAADAGAAAAAAAQBgAAAAAAEAKQAAAAADACkAAAAAAgCBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAFwAAAAAAAIEAAAAAAAAZAAAAAAEAgQAAAAAAACIAAAAAAQAiAAAAAAIAIgAAAAAAACIAAAAAAwAiAAAAAAIAIgAAAAAAACkAAAAAAAApAAAAAAEAKQAAAAADACkAAAAAAQApAAAAAAMAgQAAAAAAABcAAAAAAACBAAAAAAAAYAAAAAAAACIAAAAAAwAiAAAAAAAAYAAAAAADAGAAAAAAAgBgAAAAAAEAYAAAAAADAGAAAAAAAgApAAAAAAMAKQAAAAADACkAAAAAAgApAAAAAAMAKQAAAAADAIEAAAAAAAAAAAAAAAAAgQAAAAAAAGAAAAAAAwAiAAAAAAIAYAAAAAAAAIEAAAAAAAAfAAAAAAMAHwAAAAACAGAAAAAAAQAfAAAAAAMAKQAAAAAAAIEAAAAAAACBAAAAAAAAKQAAAAADAIEAAAAAAACBAAAAAAAAAAAAAAAAAIEAAAAAAABgAAAAAAEAIgAAAAAAAGAAAAAAAQBgAAAAAAAAgQAAAAAAAIEAAAAAAABgAAAAAAEAgQAAAAAAAA== version: 7 2,-3: ind: 2,-3 - tiles: gQAAAAAAACAAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAAAgAAAAAAIAgQAAAAAAACAAAAAAAwAPAAAAAAMADwAAAAAAAA8AAAAAAgAPAAAAAAMAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAG8AAAAAAABvAAAAAAAAbwAAAAAAAIEAAAAAAAABAAAAAAIAAQAAAAADACAAAAAAAgAPAAAAAAEADwAAAAADAA8AAAAAAQAPAAAAAAIADwAAAAAAAA8AAAAAAwCBAAAAAAAAgQAAAAAAAIEAAAAAAAAlAAAAAAIAJQAAAAABAG8AAAAAAAAgAAAAAAMAAQAAAAAAAAEAAAAAAgAgAAAAAAEADwAAAAAAAA8AAAAAAwAPAAAAAAAADwAAAAADAA8AAAAAAgAPAAAAAAMAgQAAAAAAAIEAAAAAAACBAAAAAAAAJQAAAAAAACUAAAAAAABvAAAAAAAAIAAAAAAAAAEAAAAAAgABAAAAAAAAIAAAAAADAA8AAAAAAwAPAAAAAAMADwAAAAAAAA8AAAAAAgAPAAAAAAEADwAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAACUAAAAAAAAlAAAAAAEAbwAAAAAAACAAAAAAAwABAAAAAAMAAQAAAAABACAAAAAAAAAPAAAAAAIADwAAAAAAAA8AAAAAAwAPAAAAAAMADwAAAAADAA8AAAAAAQCBAAAAAAAAgQAAAAAAAIEAAAAAAAAlAAAAAAEAJQAAAAABAG8AAAAAAAAgAAAAAAIAAQAAAAAAAAEAAAAAAwAgAAAAAAMADwAAAAABAA8AAAAAAQAPAAAAAAAADwAAAAABAA8AAAAAAwAPAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAJQAAAAABACUAAAAAAgBvAAAAAAAAIAAAAAADAAEAAAAAAAABAAAAAAAAgQAAAAAAAA8AAAAAAAAPAAAAAAAADwAAAAACAA8AAAAAAgAPAAAAAAAADwAAAAABAIEAAAAAAACBAAAAAAAAgQAAAAAAACUAAAAAAAAlAAAAAAIAbwAAAAAAAIEAAAAAAAABAAAAAAIAAQAAAAAAACAAAAAAAQAPAAAAAAAADwAAAAABAA8AAAAAAwAPAAAAAAEADwAAAAAAAA8AAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAAAlAAAAAAMAJQAAAAABAG8AAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAJQAAAAABAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAJQAAAAACACUAAAAAAQBvAAAAAAAAgQAAAAAAAC8AAAAAAACBAAAAAAAALwAAAAAAAIEAAAAAAAA0AAAAAAkANAAAAAAAABgAAAAAAAAYAAAAAAAANAAAAAAAADQAAAAACACBAAAAAAAAgQAAAAAAAG8AAAAAAABvAAAAAAAAbwAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAAAlAAAAAAAAGAAAAAAAABgAAAAAAAAYAAAAAAAAGAAAAAAAADQAAAAAAAA0AAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAAAvAAAAAAAAgQAAAAAAADQAAAAAAwAYAAAAAAAAGAAAAAAAADQAAAAAAgA0AAAAAAAANAAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAADQAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAALwAAAAAAAC8AAAAAAAAYAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAALwAAAAAAAC8AAAAAAAAvAAAAAAAALwAAAAAAAIEAAAAAAAAYAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAALwAAAAAAAIEAAAAAAACBAAAAAAAALwAAAAAAAC8AAAAAAAAvAAAAAAAAGAAAAAAAAC8AAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAAAvAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAALwAAAAAAABgAAAAAAAAvAAAAAAAAgQAAAAAAAA== + tiles: gQAAAAAAACAAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAAAgAAAAAAIAgQAAAAAAACAAAAAAAAAPAAAAAAMADwAAAAAAAA8AAAAAAAAPAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAG8AAAAAAABvAAAAAAAAbwAAAAAAAIEAAAAAAAABAAAAAAAAAQAAAAAAACAAAAAAAwAPAAAAAAMADwAAAAABAA8AAAAAAwAPAAAAAAMADwAAAAAAAA8AAAAAAQCBAAAAAAAAgQAAAAAAAIEAAAAAAAAlAAAAAAEAJQAAAAABAG8AAAAAAAAgAAAAAAMAAQAAAAADAAEAAAAAAAAgAAAAAAIADwAAAAACAA8AAAAAAQAPAAAAAAAADwAAAAADAA8AAAAAAQAPAAAAAAIAgQAAAAAAAIEAAAAAAACBAAAAAAAAJQAAAAAAACUAAAAAAwBvAAAAAAAAIAAAAAABAAEAAAAAAAABAAAAAAMAIAAAAAACAA8AAAAAAwAPAAAAAAEADwAAAAABAA8AAAAAAQAPAAAAAAEADwAAAAABAIEAAAAAAACBAAAAAAAAgQAAAAAAACUAAAAAAwAlAAAAAAMAbwAAAAAAACAAAAAAAgABAAAAAAAAAQAAAAACACAAAAAAAgAPAAAAAAMADwAAAAACAA8AAAAAAAAPAAAAAAIADwAAAAABAA8AAAAAAwCBAAAAAAAAgQAAAAAAAIEAAAAAAAAlAAAAAAEAJQAAAAADAG8AAAAAAAAgAAAAAAAAAQAAAAADAAEAAAAAAQAgAAAAAAEADwAAAAADAA8AAAAAAQAPAAAAAAMADwAAAAABAA8AAAAAAwAPAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAJQAAAAAAACUAAAAAAgBvAAAAAAAAIAAAAAAAAAEAAAAAAAABAAAAAAIAgQAAAAAAAA8AAAAAAwAPAAAAAAEADwAAAAACAA8AAAAAAAAPAAAAAAMADwAAAAACAIEAAAAAAACBAAAAAAAAgQAAAAAAACUAAAAAAwAlAAAAAAIAbwAAAAAAAIEAAAAAAAABAAAAAAEAAQAAAAADACAAAAAAAQAPAAAAAAIADwAAAAACAA8AAAAAAgAPAAAAAAAADwAAAAACAA8AAAAAAQCBAAAAAAAAgQAAAAAAAIEAAAAAAAAlAAAAAAEAJQAAAAACAG8AAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAJQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAJQAAAAACACUAAAAAAABvAAAAAAAAgQAAAAAAAC8AAAAAAACBAAAAAAAALwAAAAAAAIEAAAAAAAA0AAAAAAAANAAAAAALABgAAAAAAAAYAAAAAAAANAAAAAAAADQAAAAAAACBAAAAAAAAgQAAAAAAAG8AAAAAAABvAAAAAAAAbwAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAAAlAAAAAAEAGAAAAAAAABgAAAAAAAAYAAAAAAAAGAAAAAAAADQAAAAAAAA0AAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAAAvAAAAAAAAgQAAAAAAADQAAAAAAAAYAAAAAAAAGAAAAAAAADQAAAAAAAA0AAAAAAoANAAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAADQAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAALwAAAAAAAC8AAAAAAAAYAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAALwAAAAAAAC8AAAAAAAAvAAAAAAAALwAAAAAAAIEAAAAAAAAYAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAALwAAAAAAAIEAAAAAAACBAAAAAAAALwAAAAAAAC8AAAAAAAAvAAAAAAAAGAAAAAAAAC8AAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAAAvAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAALwAAAAAAABgAAAAAAAAvAAAAAAAAgQAAAAAAAA== version: 7 5,-2: ind: 5,-2 - tiles: gQAAAAAAAIEAAAAAAAAXAAAAAAAAFwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAABcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAFwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIEAAAAAAACBAAAAAAAAIAAAAAACAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAAAXAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAEAgQAAAAAAACAAAAAAAAAgAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAFwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAACAIEAAAAAAAAgAAAAAAMAIAAAAAACAIEAAAAAAACBAAAAAAAAgQAAAAAAABcAAAAAAAAXAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAgAgAAAAAAEAIAAAAAACACAAAAAAAQCBAAAAAAAAgQAAAAAAAIEAAAAAAAAXAAAAAAAAFwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAIAgQAAAAAAACAAAAAAAAAgAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAFwAAAAAAABcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAACAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIEAAAAAAACBAAAAAAAAHAAAAAACABwAAAAAAgCBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAAAXAAAAAAAAFwAAAAAAABcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAAAXAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA== + tiles: gQAAAAAAAIEAAAAAAAAXAAAAAAAAFwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAABcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAFwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIEAAAAAAACBAAAAAAAAIAAAAAACAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAAAXAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAMAgQAAAAAAACAAAAAAAAAgAAAAAAEAgQAAAAAAAIEAAAAAAACBAAAAAAAAFwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAIEAAAAAAAAgAAAAAAEAIAAAAAADAIEAAAAAAACBAAAAAAAAgQAAAAAAABcAAAAAAAAXAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAgAgAAAAAAEAIAAAAAABACAAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAAAXAAAAAAAAFwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAgQAAAAAAACAAAAAAAAAgAAAAAAEAgQAAAAAAAIEAAAAAAACBAAAAAAAAFwAAAAAAABcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAABAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIEAAAAAAACBAAAAAAAAHAAAAAACABwAAAAAAwCBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAAAXAAAAAAAAFwAAAAAAABcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAAAXAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA== version: 7 5,-1: ind: 5,-1 @@ -341,7 +341,7 @@ entities: version: 7 3,-1: ind: 3,-1 - tiles: YAAAAAAAAGAAAAAAAwBgAAAAAAAAYAAAAAADACIAAAAAAQAiAAAAAAEAYAAAAAACAGAAAAAAAABgAAAAAAAARwAAAAAAACAAAAAAAwAgAAAAAAIAIAAAAAAAACAAAAAAAgCBAAAAAAAAgQAAAAAAACIAAAAAAgAiAAAAAAEAIgAAAAAAACIAAAAAAwAiAAAAAAIAIwAAAAAAACMAAAAAAAAjAAAAAAAAIwAAAAAAAIEAAAAAAAAlAAAAAAMAJQAAAAADAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAABgAAAAAAMAYAAAAAAAAGAAAAAAAABgAAAAAAAAYAAAAAAAACMAAAAAAAAjAAAAAAAAHwAAAAADAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAAAXAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAABcAAAAAAAAAAAAAAAAAFwAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAAAXAAAAAAAAAAAAAAAAAAAAAAAAAAAXAAAAAAAAFwAAAAAAABcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFwAAAAAAABcAAAAAAAAXAAAAAAAAFwAAAAAAAAAAAAAAAAAXAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABcAAAAAAAAXAAAAAAAAFwAAAAAAABcAAAAAAAAXAAAAAAAAFwAAAAAAABcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABcAAAAAAAAXAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFwAAAAAAAAAAAAAAAAAXAAAAAAAAFwAAAAAAABcAAAAAAAAXAAAAAAAAFwAAAAAAABcAAAAAAAAXAAAAAAAAFwAAAAAAABcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXAAAAAAAAFwAAAAAAABcAAAAAAAAXAAAAAAAAFwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXAAAAAAAAFwAAAAAAABcAAAAAAAAXAAAAAAAAFwAAAAAAABcAAAAAAAAXAAAAAAAAFwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA== + tiles: YAAAAAADAGAAAAAAAABgAAAAAAMAYAAAAAAAACIAAAAAAQAiAAAAAAEAYAAAAAAAAGAAAAAAAgBgAAAAAAAARwAAAAAAACAAAAAAAQAgAAAAAAMAIAAAAAADACAAAAAAAQCBAAAAAAAAgQAAAAAAACIAAAAAAAAiAAAAAAMAIgAAAAADACIAAAAAAwAiAAAAAAMAIwAAAAAAACMAAAAAAAAjAAAAAAAAIwAAAAAAAIEAAAAAAAAlAAAAAAIAJQAAAAACAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAABgAAAAAAMAYAAAAAADAGAAAAAAAgBgAAAAAAEAYAAAAAADACMAAAAAAAAjAAAAAAAAHwAAAAADAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAAAXAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAABcAAAAAAAAAAAAAAAAAFwAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAAAXAAAAAAAAAAAAAAAAAAAAAAAAAAAXAAAAAAAAFwAAAAAAABcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFwAAAAAAABcAAAAAAAAXAAAAAAAAFwAAAAAAAAAAAAAAAAAXAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABcAAAAAAAAXAAAAAAAAFwAAAAAAABcAAAAAAAAXAAAAAAAAFwAAAAAAABcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABcAAAAAAAAXAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFwAAAAAAAAAAAAAAAAAXAAAAAAAAFwAAAAAAABcAAAAAAAAXAAAAAAAAFwAAAAAAABcAAAAAAAAXAAAAAAAAFwAAAAAAABcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXAAAAAAAAFwAAAAAAABcAAAAAAAAXAAAAAAAAFwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXAAAAAAAAFwAAAAAAABcAAAAAAAAXAAAAAAAAFwAAAAAAABcAAAAAAAAXAAAAAAAAFwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA== version: 7 4,-1: ind: 4,-1 @@ -349,11 +349,11 @@ entities: version: 7 2,-1: ind: 2,-1 - tiles: KQAAAAACACkAAAAAAgApAAAAAAMAKQAAAAAAACkAAAAAAQCBAAAAAAAAAAAAAAAAAIEAAAAAAABgAAAAAAAAIgAAAAACAGAAAAAAAQCBAAAAAAAAYAAAAAABAGAAAAAAAgBgAAAAAAIAYAAAAAABACkAAAAAAgApAAAAAAIAKQAAAAABACkAAAAAAAApAAAAAAAAgQAAAAAAAAAAAAAAAACBAAAAAAAAYAAAAAACACIAAAAAAgAiAAAAAAMAIgAAAAAAACIAAAAAAgAiAAAAAAMAIgAAAAABACIAAAAAAgCBAAAAAAAAgQAAAAAAACkAAAAAAAApAAAAAAIAKQAAAAADAIEAAAAAAAAXAAAAAAAAgQAAAAAAAGAAAAAAAQBgAAAAAAIAYAAAAAAAAGAAAAAAAQBgAAAAAAEAYAAAAAADAGAAAAAAAABgAAAAAAIAKQAAAAACAIEAAAAAAAApAAAAAAAAKQAAAAABACkAAAAAAQCBAAAAAAAAFwAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAACkAAAAAAACBAAAAAAAAKQAAAAACACkAAAAAAgApAAAAAAIAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAABcAAAAAAAAXAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFwAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAFwAAAAAAABcAAAAAAAAXAAAAAAAAFwAAAAAAABcAAAAAAAAXAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABcAAAAAAAAXAAAAAAAAFwAAAAAAABcAAAAAAAAXAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABcAAAAAAAAXAAAAAAAAFwAAAAAAABcAAAAAAAAXAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXAAAAAAAAFwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA== + tiles: KQAAAAACACkAAAAAAQApAAAAAAEAKQAAAAACACkAAAAAAgCBAAAAAAAAAAAAAAAAAIEAAAAAAABgAAAAAAMAIgAAAAAAAGAAAAAAAgCBAAAAAAAAYAAAAAABAGAAAAAAAQBgAAAAAAIAYAAAAAADACkAAAAAAQApAAAAAAIAKQAAAAACACkAAAAAAgApAAAAAAEAgQAAAAAAAAAAAAAAAACBAAAAAAAAYAAAAAADACIAAAAAAQAiAAAAAAMAIgAAAAACACIAAAAAAwAiAAAAAAAAIgAAAAACACIAAAAAAgCBAAAAAAAAgQAAAAAAACkAAAAAAAApAAAAAAMAKQAAAAABAIEAAAAAAAAXAAAAAAAAgQAAAAAAAGAAAAAAAQBgAAAAAAIAYAAAAAABAGAAAAAAAwBgAAAAAAIAYAAAAAAAAGAAAAAAAgBgAAAAAAEAKQAAAAABAIEAAAAAAAApAAAAAAMAKQAAAAACACkAAAAAAQCBAAAAAAAAFwAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAACkAAAAAAACBAAAAAAAAKQAAAAAAACkAAAAAAAApAAAAAAMAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAABcAAAAAAAAXAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFwAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAFwAAAAAAABcAAAAAAAAXAAAAAAAAFwAAAAAAABcAAAAAAAAXAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABcAAAAAAAAXAAAAAAAAFwAAAAAAABcAAAAAAAAXAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABcAAAAAAAAXAAAAAAAAFwAAAAAAABcAAAAAAAAXAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXAAAAAAAAFwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA== version: 7 2,-4: ind: 2,-4 - tiles: gQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAABcAAAAAAAAXAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAFwAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAABcAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAAAXAAAAAAAAAAAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAAAAAAAAAAAAAAAAAAAAABcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABcAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAABcAAAAAAAAXAAAAAAAALQAAAAAAAC0AAAAAAAMtAAAAAAADGAAAAAAAABgAAAAAAAAYAAAAAAAAGAAAAAAAABgAAAAAAAAYAAAAAAAALQAAAAAAAy0AAAAAAAMuAAAAAAAGgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAABgAAAAAAAAYAAAAAAAAGAAAAAAAABgAAAAAAAAYAAAAAAAAGAAAAAAAAC0AAAAAAAMuAAAAAAADGAAAAAAAAC0AAAAAAAMtAAAAAAADLgAAAAAAAy0AAAAAAAMtAAAAAAADLgAAAAAAAy0AAAAAAAMtAAAAAAAALQAAAAAAAy0AAAAAAAOBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAALgAAAAAABBgAAAAAAAAYAAAAAAAAGAAAAAAAAC4AAAAAAAEtAAAAAAADLgAAAAAAAy4AAAAAAAEtAAAAAAADgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAACAAAAAAAwAgAAAAAAEAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAABgAAAAAAACBAAAAAAAAgQAAAAAAAC4AAAAAAAEtAAAAAAADLQAAAAAAAyAAAAAAAAAgAAAAAAEAIAAAAAABACAAAAAAAwAgAAAAAAIAIAAAAAACAIEAAAAAAAAgAAAAAAIAIAAAAAACACAAAAAAAAAYAAAAAAAAIAAAAAADAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAAAgAAAAAAMAIAAAAAACACAAAAAAAgAgAAAAAAEAIAAAAAACACAAAAAAAwAgAAAAAAIAIAAAAAAAACAAAAAAAAAYAAAAAAAAGAAAAAAAACAAAAAAAgCBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAIAAAAAAAACAAAAAAAQAgAAAAAAAAIAAAAAACACAAAAAAAAAgAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAGAAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAA== + tiles: gQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAABcAAAAAAAAXAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAFwAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAABcAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAAAXAAAAAAAAAAAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAAAAAAAAAAAAAAAAAAAAABcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABcAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAABcAAAAAAAAXAAAAAAAALQAAAAAAAC0AAAAAAAMtAAAAAAADGAAAAAAAABgAAAAAAAAYAAAAAAAAGAAAAAAAABgAAAAAAAAYAAAAAAAALQAAAAAAAy0AAAAAAAMuAAAAAAAGgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAABgAAAAAAAAYAAAAAAAAGAAAAAAAABgAAAAAAAAYAAAAAAAAGAAAAAAAAC0AAAAAAAMuAAAAAAADGAAAAAAAAC0AAAAAAAMtAAAAAAADLgAAAAAAAy0AAAAAAAMtAAAAAAADLgAAAAAAAy0AAAAAAAMtAAAAAAAALQAAAAAAAy0AAAAAAAOBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAALgAAAAAABBgAAAAAAAAYAAAAAAAAGAAAAAAAAC4AAAAAAAEtAAAAAAADLgAAAAAAAy4AAAAAAAEtAAAAAAADgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAACAAAAAAAgAgAAAAAAMAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAABgAAAAAAACBAAAAAAAAgQAAAAAAAC4AAAAAAAEtAAAAAAADLQAAAAAAAyAAAAAAAAAgAAAAAAMAIAAAAAABACAAAAAAAAAgAAAAAAIAIAAAAAADAIEAAAAAAAAgAAAAAAMAIAAAAAADACAAAAAAAgAYAAAAAAAAIAAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAAAgAAAAAAIAIAAAAAABACAAAAAAAwAgAAAAAAIAIAAAAAACACAAAAAAAwAgAAAAAAAAIAAAAAAAACAAAAAAAAAYAAAAAAAAGAAAAAAAACAAAAAAAQCBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAIAAAAAADACAAAAAAAwAgAAAAAAMAIAAAAAAAACAAAAAAAAAgAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAGAAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAA== version: 7 -2,-6: ind: -2,-6 @@ -385,11 +385,11 @@ entities: version: 7 3,-7: ind: 3,-7 - tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIEAAAAAAABgAAAAAAMAYAAAAAABAGAAAAAAAQBgAAAAAAMAYAAAAAAAAGAAAAAAAgBgAAAAAAMAgQAAAAAAAIEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACBAAAAAAAAYAAAAAABAGAAAAAAAwBgAAAAAAIAYAAAAAACAGAAAAAAAgBgAAAAAAMAYAAAAAACAGAAAAAAAACBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgQAAAAAAAGAAAAAAAgBgAAAAAAMAYAAAAAABAGAAAAAAAgBgAAAAAAAAYAAAAAADAGAAAAAAAQBgAAAAAAMAgQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIEAAAAAAABgAAAAAAIAYAAAAAACAGAAAAAAAwBgAAAAAAMAYAAAAAABAGAAAAAAAgBgAAAAAAIAYAAAAAADAIEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACBAAAAAAAAYAAAAAAAAGAAAAAAAQBgAAAAAAEAYAAAAAACAGAAAAAAAABgAAAAAAMAYAAAAAABAIEAAAAAAACBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgQAAAAAAAG8AAAAAAABvAAAAAAAAbwAAAAAAAGAAAAAAAQBgAAAAAAIAYAAAAAAAAIEAAAAAAACBAAAAAAAAFwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA== + tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAgQAAAAAAAIEAAAAAAACBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIEAAAAAAABgAAAAAAIAYAAAAAABAGAAAAAAAQBgAAAAAAAAYAAAAAACAGAAAAAAAwBgAAAAAAMAgQAAAAAAAIEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACBAAAAAAAAYAAAAAABAGAAAAAAAgBgAAAAAAEAYAAAAAACAGAAAAAAAgBgAAAAAAMAYAAAAAAAAGAAAAAAAQCBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgQAAAAAAAGAAAAAAAgBgAAAAAAMAYAAAAAACAGAAAAAAAABgAAAAAAIAYAAAAAAAAGAAAAAAAwBgAAAAAAMAgQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIEAAAAAAABgAAAAAAIAYAAAAAADAGAAAAAAAgBgAAAAAAAAYAAAAAABAGAAAAAAAABgAAAAAAAAYAAAAAABAIEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACBAAAAAAAAYAAAAAADAGAAAAAAAQBgAAAAAAIAYAAAAAABAGAAAAAAAABgAAAAAAMAYAAAAAADAIEAAAAAAACBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgQAAAAAAAG8AAAAAAABvAAAAAAAAbwAAAAAAAGAAAAAAAQBgAAAAAAMAYAAAAAABAIEAAAAAAACBAAAAAAAAFwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA== version: 7 -5,-3: ind: -5,-3 - tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXAAAAAAAAFwAAAAAAAA== + tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXAAAAAAAAFwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFwAAAAAAABcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABcAAAAAAAAXAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXAAAAAAAAFwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFwAAAAAAABcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABcAAAAAAAAXAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXAAAAAAAAFwAAAAAAAA== version: 7 - type: Broadphase - type: Physics @@ -582,6 +582,7 @@ entities: 5094: 13,-66 5181: -40,-12 5182: -38,-12 + 5269: 0,-58 - node: angle: 3.141592653589793 rad color: '#FFFFFFFF' @@ -690,6 +691,8 @@ entities: 4415: 34,-18 4593: 33,-20 4644: 68,-42 + 5270: 0,-57 + 5271: -2,-57 - node: angle: 3.141592653589793 rad color: '#FFFFFFFF' @@ -2489,7 +2492,6 @@ entities: id: MiniTileDarkInnerNw decals: 141: -50,-47 - 2763: 16,-77 4518: 7,-56 4606: 35,-77 - node: @@ -3289,23 +3291,18 @@ entities: decals: 4691: 60,-27 4721: 64,-33 - - node: - color: '#43990996' - id: WarnBox - decals: - 5092: 0,-53 - 5093: 0,-53 - node: color: '#FFFFFFFF' id: WarnBox decals: 584: 17,-66 - 586: 0,-58 608: 15,-66 4356: 20,-26 4835: 39,-48 5244: 27,-66 5247: -22,-61 + 5263: -6,-51 + 5264: -6,-52 - node: angle: 1.5707963267948966 rad color: '#FFFFFFFF' @@ -3318,6 +3315,11 @@ entities: decals: 609: 15,-66 4836: 39,-48 + - node: + color: '#4AED58FF' + id: WarnBoxGreyscale + decals: + 5266: -6,-51 - node: color: '#52E0C0FF' id: WarnBoxGreyscale @@ -3344,11 +3346,7 @@ entities: id: WarnBoxGreyscale decals: 4357: 20,-26 - - node: - color: '#FF9C00FF' - id: WarnBoxGreyscale - decals: - 588: 0,-58 + 5265: -6,-52 - node: color: '#D381C996' id: WarnCornerGreyscaleNE @@ -3508,6 +3506,7 @@ entities: 3091: -18,-22 3113: -8,-22 4571: 62,-44 + 5347: 22,-84 - node: color: '#FFFFFFFF' id: WarnEndE @@ -3603,12 +3602,23 @@ entities: 5118: -35,-49 5119: -35,-43 5120: -35,-42 + 5317: 25,-70 + 5318: 25,-71 + 5321: 10,-67 + 5337: -34,-67 + 5345: -28,-27 - node: color: '#33A9E7FF' id: WarnLineGreyscaleE decals: 3820: 28,-61 3821: 28,-62 + - node: + color: '#3EB388FF' + id: WarnLineGreyscaleE + decals: + 5319: 25,-70 + 5320: 25,-71 - node: color: '#D381C996' id: WarnLineGreyscaleE @@ -3625,6 +3635,7 @@ entities: 3476: -18,-18 4769: 82,-45 4770: 82,-47 + 5346: -28,-27 - node: color: '#DE3A3AFF' id: WarnLineGreyscaleE @@ -3633,19 +3644,27 @@ entities: 4664: 59,-38 4699: 65,-35 4700: 65,-34 + - node: + color: '#EFB341FF' + id: WarnLineGreyscaleE + decals: + 5338: -34,-67 + - node: + color: '#FA7500FF' + id: WarnLineGreyscaleE + decals: + 5324: 10,-67 - node: color: '#FFFFFFFF' id: WarnLineGreyscaleE decals: - 5000: 23,-24 - 5001: 23,-23 5065: -4,-26 + 5282: 23,-24 + 5283: 23,-23 - node: color: '#D381C996' id: WarnLineGreyscaleN decals: - 5019: -9,-29 - 5020: -8,-29 5072: -6,-20 5073: -5,-20 - node: @@ -3656,6 +3675,8 @@ entities: 3479: -17,-17 3480: -18,-17 5213: 81,-45 + 5286: -9,-29 + 5287: -8,-29 - node: color: '#DE3A3AFF' id: WarnLineGreyscaleN @@ -3667,8 +3688,6 @@ entities: color: '#FFFFFFFF' id: WarnLineGreyscaleN decals: - 4998: 29,-25 - 4999: 28,-25 5013: -10,-43 5014: -9,-43 5064: -5,-25 @@ -3680,21 +3699,27 @@ entities: 5142: -41,-41 5143: -40,-41 5144: -39,-41 + 5284: 28,-25 + 5285: 29,-25 - node: - color: '#52B4E996' + color: '#52B4E9FF' id: WarnLineGreyscaleS decals: - 5004: 28,-25 - 5005: 29,-25 + 5280: 28,-25 + 5281: 29,-25 + - node: + color: '#A46106FF' + id: WarnLineGreyscaleS + decals: + 5351: 23,-80 + 5352: 24,-80 + 5353: 25,-80 - node: color: '#D381C996' id: WarnLineGreyscaleS decals: 5078: -5,-23 5079: -6,-23 - 5131: 8,-74 - 5132: 9,-74 - 5133: 10,-74 - node: color: '#D381C9FF' id: WarnLineGreyscaleS @@ -3706,6 +3731,9 @@ entities: 3114: -9,-22 3478: -17,-17 5212: 81,-47 + 5342: 8,-74 + 5343: 9,-74 + 5344: 10,-74 - node: color: '#DE3A3AFF' id: WarnLineGreyscaleS @@ -3732,13 +3760,23 @@ entities: 4549: 59,-45 4550: 60,-45 - node: - color: '#FFDB41FF' + color: '#EFB341FF' id: WarnLineGreyscaleS decals: - 4991: -26,-59 - 4992: -27,-59 - 4993: -25,-59 - 4994: -24,-59 + 5293: -11,-41 + 5294: -10,-41 + 5295: -9,-41 + 5296: -8,-41 + 5297: -7,-41 + 5304: -24,-59 + 5305: -25,-59 + 5306: -26,-59 + 5307: -27,-59 + 5332: -22,-58 + 5333: -21,-58 + 5334: -20,-58 + 5335: -17,-57 + 5336: -16,-57 - node: color: '#FFFFFFFF' id: WarnLineGreyscaleS @@ -3754,11 +3792,11 @@ entities: 5112: -35,-47 5113: -36,-47 - node: - color: '#52B4E996' + color: '#52B4E9FF' id: WarnLineGreyscaleW decals: - 5002: 23,-24 - 5003: 23,-23 + 5278: 23,-24 + 5279: 23,-23 - node: color: '#D381C9FF' id: WarnLineGreyscaleW @@ -3771,10 +3809,10 @@ entities: decals: 4541: 62,-45 - node: - color: '#FA750096' + color: '#FA7500FF' id: WarnLineGreyscaleW decals: - 5134: 23,-69 + 5323: 23,-69 - node: color: '#FFFFFFFF' id: WarnLineGreyscaleW @@ -3851,6 +3889,22 @@ entities: 5037: -6,-38 5038: -5,-38 5207: 81,-47 + 5288: -11,-41 + 5289: -10,-41 + 5290: -9,-41 + 5291: -8,-41 + 5292: -7,-41 + 5325: -20,-58 + 5326: -21,-58 + 5328: -16,-57 + 5329: -17,-57 + 5331: -22,-58 + 5339: 8,-74 + 5340: 9,-74 + 5341: 10,-74 + 5348: 23,-80 + 5349: 24,-80 + 5350: 25,-80 - node: color: '#FFFFFFFF' id: WarnLineS @@ -3880,6 +3934,7 @@ entities: 5123: -30,-50 5124: -30,-49 5238: 58,-20 + 5322: 23,-69 - node: color: '#FFFFFFFF' id: WarnLineW @@ -3913,6 +3968,8 @@ entities: 5044: -5,-34 5192: 13,-43 5205: 81,-45 + 5274: 1,-56 + 5275: 1,-57 - node: angle: 4.71238898038469 rad color: '#FFFFFFFF' @@ -4378,7 +4435,7 @@ entities: 0: 375 1: 16384 -1,-12: - 0: 48011 + 0: 47279 -1,-11: 0: 13087 1: 34816 @@ -4491,7 +4548,7 @@ entities: -2,-13: 0: 53725 -1,-13: - 0: 64138 + 0: 47359 -8,-8: 0: 52701 -9,-8: @@ -4589,11 +4646,11 @@ entities: 0,-15: 0: 30479 -1,-15: - 0: 65295 + 0: 30479 0,-14: - 0: 65523 + 0: 65522 -1,-14: - 0: 45055 + 0: 65527 0,-13: 0: 3000 0,-17: @@ -4653,10 +4710,10 @@ entities: 0: 51711 8,-16: 0: 271 - 2: 17408 + 4: 17408 8,-15: 1: 4096 - 2: 4 + 4: 4 8,-14: 0: 32752 8,-13: @@ -4968,7 +5025,7 @@ entities: -16,-13: 1: 4403 -17,-13: - 1: 34944 + 1: 51336 -16,-12: 1: 4369 -15,-16: @@ -4988,13 +5045,15 @@ entities: -13,-17: 0: 65399 -17,-12: - 1: 34952 + 1: 52428 -16,-11: 1: 12561 -17,-11: - 1: 34952 + 1: 35020 -16,-10: 1: 25395 + -17,-10: + 1: 8 -14,-11: 0: 52430 -14,-10: @@ -5350,8 +5409,8 @@ entities: 0: 65535 9,-16: 0: 15 - 3: 4352 - 4: 17408 + 5: 4352 + 2: 17408 10,-20: 0: 65280 10,-19: @@ -5362,8 +5421,8 @@ entities: 0: 65535 10,-16: 0: 15 - 4: 4352 - 5: 17408 + 2: 4352 + 6: 17408 11,-20: 0: 65024 11,-19: @@ -5375,7 +5434,7 @@ entities: 11,-16: 0: 15 1: 35840 - 4: 4352 + 2: 4352 12,-20: 0: 65280 12,-19: @@ -5409,7 +5468,7 @@ entities: 0: 61183 12,-16: 0: 7 - 4: 2184 + 2: 2184 1: 8960 13,-20: 0: 65024 @@ -5423,7 +5482,7 @@ entities: 13,-21: 1: 16179 13,-16: - 4: 819 + 2: 819 1: 8 14,-20: 0: 53504 @@ -5623,7 +5682,7 @@ entities: 0: 59392 11,-15: 1: 32904 - 4: 1 + 2: 1 12,-14: 0: 62926 11,-14: @@ -5744,12 +5803,12 @@ entities: 0: 60625 11,-10: 0: 34944 - 6: 13104 + 3: 13104 12,-9: 0: 56784 11,-9: 0: 65416 - 6: 2 + 3: 2 12,-8: 0: 57117 13,-11: @@ -5895,7 +5954,7 @@ entities: 10,-11: 0: 65535 10,-10: - 6: 65520 + 3: 65520 0: 4 10,-13: 0: 12276 @@ -5958,14 +6017,14 @@ entities: 11,-3: 1: 12288 9,-15: - 3: 1 - 4: 4 + 5: 1 + 2: 4 1: 32768 9,-14: 0: 36848 10,-15: - 4: 1 - 5: 4 + 2: 1 + 6: 4 10,-14: 0: 65520 -8,-24: @@ -6050,6 +6109,14 @@ entities: - volume: 2500 immutable: True moles: {} + - volume: 2500 + temperature: 293.15 + moles: {} + - volume: 2500 + temperature: 235 + moles: + Oxygen: 27.225372 + Nitrogen: 102.419266 - volume: 2500 temperature: 293.15 moles: @@ -6058,18 +6125,10 @@ entities: temperature: 293.15 moles: Nitrogen: 6666.982 - - volume: 2500 - temperature: 293.15 - moles: {} - volume: 2500 temperature: 293.15 moles: Plasma: 6666.982 - - volume: 2500 - temperature: 235 - moles: - Oxygen: 27.225372 - Nitrogen: 102.419266 chunkSize: 4 - type: GasTileOverlay - type: RadiationGridResistance @@ -7159,16 +7218,6 @@ entities: - 10473 - type: Fixtures fixtures: {} - - uid: 5159 - components: - - type: Transform - pos: -4.5,-49.5 - parent: 2 - - type: DeviceList - devices: - - 5168 - - type: Fixtures - fixtures: {} - uid: 5526 components: - type: Transform @@ -9121,16 +9170,28 @@ entities: - type: Transform pos: -55.5,-22.5 parent: 2 + - type: DeviceLinkSink + invokeCounter: 1 + - type: DeviceLinkSource + linkedPorts: + 1478: + - - DoorStatus + - DoorBolt - uid: 1478 components: - type: Transform pos: -56.5,-21.5 parent: 2 + - type: DeviceLinkSink + invokeCounter: 1 - type: DeviceLinkSource linkedPorts: 6303: - - DoorStatus - DoorBolt + 1471: + - - DoorStatus + - DoorBolt - uid: 1487 components: - type: Transform @@ -9901,10 +9962,10 @@ entities: parent: 2 - proto: AirlockHydroponicsLocked entities: - - uid: 4730 + - uid: 15135 components: - type: Transform - pos: -1.5,-48.5 + pos: -1.5,-47.5 parent: 2 - proto: AirlockJanitorLocked entities: @@ -10102,7 +10163,7 @@ entities: pos: 11.5,-30.5 parent: 2 - type: Door - secondsUntilStateChange: -254680.28 + secondsUntilStateChange: -260188.22 state: Opening - type: DeviceLinkSource lastSignals: @@ -10458,7 +10519,7 @@ entities: pos: 34.5,-36.5 parent: 2 - type: Door - secondsUntilStateChange: -30177.973 + secondsUntilStateChange: -35685.906 state: Opening - type: DeviceLinkSource lastSignals: @@ -12097,6 +12158,16 @@ entities: parent: 2 - type: Fixtures fixtures: {} + - uid: 12485 + components: + - type: MetaData + name: Botany APC + - type: Transform + rot: -1.5707963267948966 rad + pos: 0.5,-51.5 + parent: 2 + - type: Fixtures + fixtures: {} - uid: 12869 components: - type: MetaData @@ -12213,16 +12284,6 @@ entities: parent: 2 - type: Fixtures fixtures: {} - - uid: 19021 - components: - - type: MetaData - name: Hydroponics APC - - type: Transform - rot: 1.5707963267948966 rad - pos: -1.5,-52.5 - parent: 2 - - type: Fixtures - fixtures: {} - uid: 19268 components: - type: MetaData @@ -13267,11 +13328,17 @@ entities: parent: 2 - proto: Biogenerator entities: - - uid: 12820 + - uid: 14139 components: - type: Transform - pos: -1.5,-53.5 + pos: -3.5,-57.5 parent: 2 + - type: TechnologyDatabase + supportedDisciplines: + - Industrial + - Arsenal + - Experimental + - CivilianServices - uid: 18290 components: - type: Transform @@ -13770,7 +13837,7 @@ entities: - uid: 7456 components: - type: Transform - pos: -3.621653,-47.22137 + pos: -2.6725068,-46.508537 parent: 2 - uid: 7760 components: @@ -14093,6 +14160,11 @@ entities: parent: 2 - proto: Bucket entities: + - uid: 967 + components: + - type: Transform + pos: -3.9648304,-55.168568 + parent: 2 - uid: 5624 components: - type: Transform @@ -14103,11 +14175,6 @@ entities: - type: Transform pos: -9.07445,-47.517555 parent: 2 - - uid: 18259 - components: - - type: Transform - pos: -4.05845,-56.174427 - parent: 2 - uid: 19513 components: - type: Transform @@ -14390,6 +14457,21 @@ entities: - type: Transform pos: -51.5,-37.5 parent: 2 + - uid: 990 + components: + - type: Transform + pos: -3.5,-51.5 + parent: 2 + - uid: 992 + components: + - type: Transform + pos: -1.5,-51.5 + parent: 2 + - uid: 1030 + components: + - type: Transform + pos: -2.5,-51.5 + parent: 2 - uid: 1063 components: - type: Transform @@ -14460,6 +14542,11 @@ entities: - type: Transform pos: -46.5,-66.5 parent: 2 + - uid: 1709 + components: + - type: Transform + pos: -0.5,-53.5 + parent: 2 - uid: 1733 components: - type: Transform @@ -15420,6 +15507,11 @@ entities: - type: Transform pos: 4.5,-50.5 parent: 2 + - uid: 5005 + components: + - type: Transform + pos: 1.5,-54.5 + parent: 2 - uid: 5016 components: - type: Transform @@ -16595,6 +16687,11 @@ entities: - type: Transform pos: -25.5,-21.5 parent: 2 + - uid: 10611 + components: + - type: Transform + pos: -2.5,-55.5 + parent: 2 - uid: 10665 components: - type: Transform @@ -21915,16 +22012,6 @@ entities: - type: Transform pos: 16.5,-42.5 parent: 2 - - uid: 12484 - components: - - type: Transform - pos: -1.5,-52.5 - parent: 2 - - uid: 12485 - components: - - type: Transform - pos: -1.5,-53.5 - parent: 2 - uid: 12486 components: - type: Transform @@ -21970,26 +22057,6 @@ entities: - type: Transform pos: 0.5,-54.5 parent: 2 - - uid: 12495 - components: - - type: Transform - pos: 0.5,-55.5 - parent: 2 - - uid: 12496 - components: - - type: Transform - pos: 0.5,-56.5 - parent: 2 - - uid: 12497 - components: - - type: Transform - pos: -0.5,-56.5 - parent: 2 - - uid: 12498 - components: - - type: Transform - pos: -1.5,-56.5 - parent: 2 - uid: 12499 components: - type: Transform @@ -22035,11 +22102,6 @@ entities: - type: Transform pos: -0.5,-48.5 parent: 2 - - uid: 12508 - components: - - type: Transform - pos: -1.5,-48.5 - parent: 2 - uid: 12509 components: - type: Transform @@ -23285,6 +23347,11 @@ entities: - type: Transform pos: 59.5,-38.5 parent: 2 + - uid: 12820 + components: + - type: Transform + pos: 0.5,-51.5 + parent: 2 - uid: 12822 components: - type: Transform @@ -24440,11 +24507,6 @@ entities: - type: Transform pos: 65.5,-36.5 parent: 2 - - uid: 13199 - components: - - type: Transform - pos: 0.5,-53.5 - parent: 2 - uid: 13200 components: - type: Transform @@ -26970,6 +27032,11 @@ entities: - type: Transform pos: -14.5,-83.5 parent: 2 + - uid: 18300 + components: + - type: Transform + pos: 1.5,-55.5 + parent: 2 - uid: 18354 components: - type: Transform @@ -27290,6 +27357,16 @@ entities: - type: Transform pos: 22.5,-18.5 parent: 2 + - uid: 19008 + components: + - type: Transform + pos: -1.5,-47.5 + parent: 2 + - uid: 19009 + components: + - type: Transform + pos: -2.5,-47.5 + parent: 2 - uid: 19061 components: - type: Transform @@ -33723,6 +33800,36 @@ entities: - type: Transform pos: 31.5,-70.5 parent: 2 + - uid: 991 + components: + - type: Transform + pos: -0.5,-53.5 + parent: 2 + - uid: 1029 + components: + - type: Transform + pos: -0.5,-47.5 + parent: 2 + - uid: 1031 + components: + - type: Transform + pos: -2.5,-57.5 + parent: 2 + - uid: 1034 + components: + - type: Transform + pos: -2.5,-56.5 + parent: 2 + - uid: 1035 + components: + - type: Transform + pos: -2.5,-55.5 + parent: 2 + - uid: 1036 + components: + - type: Transform + pos: -2.5,-54.5 + parent: 2 - uid: 1070 components: - type: Transform @@ -33768,6 +33875,16 @@ entities: - type: Transform pos: -7.5,-21.5 parent: 2 + - uid: 1717 + components: + - type: Transform + pos: -0.5,-54.5 + parent: 2 + - uid: 1836 + components: + - type: Transform + pos: -1.5,-54.5 + parent: 2 - uid: 1849 components: - type: Transform @@ -33783,6 +33900,11 @@ entities: - type: Transform pos: -20.5,-15.5 parent: 2 + - uid: 2404 + components: + - type: Transform + pos: -1.5,-47.5 + parent: 2 - uid: 2511 components: - type: Transform @@ -35303,41 +35425,6 @@ entities: - type: Transform pos: -5.5,-60.5 parent: 2 - - uid: 10607 - components: - - type: Transform - pos: -1.5,-58.5 - parent: 2 - - uid: 10608 - components: - - type: Transform - pos: -1.5,-57.5 - parent: 2 - - uid: 10609 - components: - - type: Transform - pos: -1.5,-56.5 - parent: 2 - - uid: 10610 - components: - - type: Transform - pos: -1.5,-55.5 - parent: 2 - - uid: 10611 - components: - - type: Transform - pos: -1.5,-54.5 - parent: 2 - - uid: 10612 - components: - - type: Transform - pos: -1.5,-53.5 - parent: 2 - - uid: 10613 - components: - - type: Transform - pos: -1.5,-52.5 - parent: 2 - uid: 10615 components: - type: Transform @@ -37188,11 +37275,6 @@ entities: - type: Transform pos: -3.5,-48.5 parent: 2 - - uid: 12475 - components: - - type: Transform - pos: -1.5,-48.5 - parent: 2 - uid: 12476 components: - type: Transform @@ -37228,6 +37310,11 @@ entities: - type: Transform pos: -0.5,-52.5 parent: 2 + - uid: 12498 + components: + - type: Transform + pos: -2.5,-47.5 + parent: 2 - uid: 12569 components: - type: Transform @@ -37603,6 +37690,11 @@ entities: - type: Transform pos: 12.5,-41.5 parent: 2 + - uid: 13199 + components: + - type: Transform + pos: 0.5,-51.5 + parent: 2 - uid: 13240 components: - type: Transform @@ -38258,6 +38350,11 @@ entities: - type: Transform pos: -18.5,-15.5 parent: 2 + - uid: 19014 + components: + - type: Transform + pos: -2.5,-58.5 + parent: 2 - uid: 19063 components: - type: Transform @@ -44875,13 +44972,6 @@ entities: - type: Transform pos: 35.344784,-91.27624 parent: 2 -- proto: ClothingOuterWinterHydro - entities: - - uid: 3873 - components: - - type: Transform - pos: -5.464688,-51.46298 - parent: 2 - proto: ClothingShoesBootsMagSci entities: - uid: 203 @@ -46773,10 +46863,10 @@ entities: - type: Transform pos: 40.5,-50.5 parent: 2 - - uid: 15135 + - uid: 12706 components: - type: Transform - pos: -2.5,-47.5 + pos: -3.5,-48.5 parent: 2 - uid: 19365 components: @@ -47897,12 +47987,35 @@ entities: - type: Transform pos: 33.5,-40.5 parent: 2 + - uid: 4730 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -6.5,-58.5 + parent: 2 + - uid: 4892 + components: + - type: Transform + pos: -0.5,-51.5 + parent: 2 + - uid: 4935 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -6.5,-51.5 + parent: 2 - uid: 4996 components: - type: Transform rot: 1.5707963267948966 rad pos: 20.5,-70.5 parent: 2 + - uid: 5158 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -4.5,-51.5 + parent: 2 - uid: 6359 components: - type: Transform @@ -48133,6 +48246,11 @@ entities: rot: 1.5707963267948966 rad pos: 17.5,-64.5 parent: 2 + - uid: 10613 + components: + - type: Transform + pos: -4.5,-50.5 + parent: 2 - uid: 11937 components: - type: Transform @@ -48167,12 +48285,6 @@ entities: - type: Transform pos: 3.5,-58.5 parent: 2 - - uid: 14859 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: 0.5,-58.5 - parent: 2 - uid: 14869 components: - type: Transform @@ -48667,6 +48779,17 @@ entities: - type: Transform pos: 10.5,-65.5 parent: 2 + - uid: 19026 + components: + - type: Transform + pos: 0.5,-52.5 + parent: 2 + - uid: 19030 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -0.5,-52.5 + parent: 2 - uid: 19369 components: - type: Transform @@ -53014,6 +53137,96 @@ entities: rot: -1.5707963267948966 rad pos: 26.5,-23.5 parent: 2 + - uid: 19031 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -1.5,-51.5 + parent: 2 + - uid: 19032 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -2.5,-51.5 + parent: 2 + - uid: 19033 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -3.5,-51.5 + parent: 2 + - uid: 19034 + components: + - type: Transform + pos: -6.5,-52.5 + parent: 2 + - uid: 19074 + components: + - type: Transform + pos: -6.5,-53.5 + parent: 2 + - uid: 19163 + components: + - type: Transform + pos: -6.5,-54.5 + parent: 2 + - uid: 19165 + components: + - type: Transform + pos: -6.5,-55.5 + parent: 2 + - uid: 19172 + components: + - type: Transform + pos: -6.5,-56.5 + parent: 2 + - uid: 19199 + components: + - type: Transform + pos: -6.5,-57.5 + parent: 2 + - uid: 19208 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -5.5,-58.5 + parent: 2 + - uid: 19219 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -4.5,-58.5 + parent: 2 + - uid: 19270 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -3.5,-58.5 + parent: 2 + - uid: 19274 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -2.5,-58.5 + parent: 2 + - uid: 19275 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -1.5,-58.5 + parent: 2 + - uid: 19282 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -0.5,-58.5 + parent: 2 + - uid: 19293 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 0.5,-58.5 + parent: 2 - uid: 19453 components: - type: Transform @@ -53178,11 +53391,6 @@ entities: - type: Transform pos: 31.5,-37.5 parent: 2 - - uid: 5302 - components: - - type: Transform - pos: 0.5,-52.5 - parent: 2 - uid: 5801 components: - type: Transform @@ -53235,11 +53443,6 @@ entities: rot: 3.141592653589793 rad pos: 15.5,-65.5 parent: 2 - - uid: 14860 - components: - - type: Transform - pos: 0.5,-57.5 - parent: 2 - uid: 15393 components: - type: Transform @@ -53395,6 +53598,18 @@ entities: - type: Transform pos: 27.5,-65.5 parent: 2 + - uid: 19308 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -5.5,-51.5 + parent: 2 + - uid: 19310 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -5.5,-50.5 + parent: 2 - uid: 19367 components: - type: Transform @@ -53439,6 +53654,11 @@ entities: - type: Transform pos: -38.5,-66.5 parent: 2 + - uid: 3832 + components: + - type: Transform + pos: -5.5,-50.5 + parent: 2 - uid: 4189 components: - type: Transform @@ -53459,10 +53679,10 @@ entities: - type: Transform pos: -8.5,-29.5 parent: 2 - - uid: 5176 + - uid: 5170 components: - type: Transform - pos: 0.5,-52.5 + pos: -5.5,-51.5 parent: 2 - uid: 5278 components: @@ -53519,11 +53739,6 @@ entities: - type: Transform pos: 7.5,-7.5 parent: 2 - - uid: 6269 - components: - - type: Transform - pos: 0.5,-57.5 - parent: 2 - uid: 7755 components: - type: Transform @@ -63837,12 +64052,6 @@ entities: parent: 2 - type: AtmosPipeColor color: '#FF1212FF' - - uid: 5167 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: -3.5,-51.5 - parent: 2 - uid: 5407 components: - type: Transform @@ -75032,6 +75241,12 @@ entities: parent: 2 - type: AtmosPipeColor color: '#0335FCFF' + - uid: 19311 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -0.5,-56.5 + parent: 2 - uid: 19607 components: - type: Transform @@ -77809,11 +78024,11 @@ entities: - type: Transform pos: -20.5,-24.5 parent: 2 - - uid: 5166 + - uid: 5173 components: - type: Transform rot: -1.5707963267948966 rad - pos: -2.5,-51.5 + pos: 0.5,-56.5 parent: 2 - uid: 5501 components: @@ -77844,6 +78059,12 @@ entities: - type: Transform pos: 49.5,-74.5 parent: 2 + - uid: 14859 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -1.5,-56.5 + parent: 2 - uid: 15258 components: - type: Transform @@ -79536,15 +79757,6 @@ entities: - 19909 - type: AtmosPipeColor color: '#FF1212FF' - - uid: 5168 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: -4.5,-51.5 - parent: 2 - - type: DeviceNetwork - deviceLists: - - 5159 - uid: 5830 components: - type: Transform @@ -81690,20 +81902,11 @@ entities: - type: Transform pos: 2.5,-50.5 parent: 2 - - uid: 990 + - uid: 975 components: - type: Transform - pos: -5.5,-52.5 - parent: 2 - - uid: 991 - components: - - type: Transform - pos: -3.5,-51.5 - parent: 2 - - uid: 992 - components: - - type: Transform - pos: -3.5,-52.5 + rot: -1.5707963267948966 rad + pos: 0.5,-55.5 parent: 2 - uid: 1078 components: @@ -85109,6 +85312,11 @@ entities: - type: Transform pos: -4.5,-18.5 parent: 2 + - uid: 17215 + components: + - type: Transform + pos: -0.5,-55.5 + parent: 2 - uid: 17272 components: - type: Transform @@ -85404,6 +85612,11 @@ entities: - type: Transform pos: -7.5,12.5 parent: 2 + - uid: 19004 + components: + - type: Transform + pos: 0.5,-43.5 + parent: 2 - uid: 19284 components: - type: Transform @@ -86853,10 +87066,10 @@ entities: parent: 2 - proto: HolopadServiceBotany entities: - - uid: 19165 + - uid: 5167 components: - type: Transform - pos: 0.5,-54.5 + pos: -0.5,-53.5 parent: 2 - proto: HolopadServiceClownMime entities: @@ -87023,34 +87236,40 @@ entities: parent: 2 - proto: hydroponicsTray entities: + - uid: 4936 + components: + - type: Transform + pos: 1.5,-57.5 + parent: 2 + - uid: 5029 + components: + - type: Transform + pos: -2.5,-52.5 + parent: 2 - uid: 5153 components: - type: Transform - pos: -1.5,-55.5 + pos: -3.5,-53.5 parent: 2 - uid: 5154 components: - type: Transform - pos: -0.5,-55.5 + pos: -2.5,-53.5 parent: 2 - uid: 5155 components: - type: Transform - pos: -2.5,-55.5 + pos: 2.5,-56.5 parent: 2 - uid: 5156 components: - type: Transform - pos: -3.5,-57.5 + pos: 2.5,-57.5 parent: 2 - uid: 5157 components: - type: Transform - pos: -2.5,-57.5 - parent: 2 - - uid: 5158 - components: - - type: Transform + rot: -1.5707963267948966 rad pos: -1.5,-57.5 parent: 2 - uid: 5160 @@ -87073,15 +87292,26 @@ entities: - type: Transform pos: -5.5,-54.5 parent: 2 - - uid: 5164 - components: - - type: Transform - pos: -4.5,-50.5 - parent: 2 - uid: 5165 components: - type: Transform - pos: -5.5,-50.5 + pos: -3.5,-52.5 + parent: 2 + - uid: 5169 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -2.5,-57.5 + parent: 2 + - uid: 10609 + components: + - type: Transform + pos: -1.5,-53.5 + parent: 2 + - uid: 12497 + components: + - type: Transform + pos: -1.5,-52.5 parent: 2 - uid: 15389 components: @@ -87098,7 +87328,7 @@ entities: - uid: 5182 components: - type: Transform - pos: -3.371653,-47.471542 + pos: -2.3912568,-46.498116 parent: 2 - proto: IceCrust entities: @@ -87302,14 +87532,6 @@ entities: fixtures: {} - proto: IntercomMedical entities: - - uid: 6295 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: 1.5,-58.5 - parent: 2 - - type: Fixtures - fixtures: {} - uid: 6681 components: - type: Transform @@ -87340,6 +87562,14 @@ entities: parent: 2 - type: Fixtures fixtures: {} + - uid: 19003 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -5.5,-52.5 + parent: 2 + - type: Fixtures + fixtures: {} - proto: IntercomScience entities: - uid: 11363 @@ -87521,6 +87751,11 @@ entities: parent: 2 - proto: KitchenReagentGrinder entities: + - uid: 947 + components: + - type: Transform + pos: -1.5,-55.5 + parent: 2 - uid: 5783 components: - type: Transform @@ -87536,11 +87771,6 @@ entities: - type: Transform pos: 68.5,-63.5 parent: 2 - - uid: 10300 - components: - - type: Transform - pos: -0.5,-57.5 - parent: 2 - uid: 16386 components: - type: Transform @@ -89322,11 +89552,6 @@ entities: - type: Transform pos: 31.5,-33.5 parent: 2 - - uid: 5005 - components: - - type: Transform - pos: -2.5,-44.5 - parent: 2 - uid: 6907 components: - type: Transform @@ -89347,6 +89572,11 @@ entities: - type: Transform pos: 50.5,-77.5 parent: 2 + - uid: 9244 + components: + - type: Transform + pos: -4.5,-43.5 + parent: 2 - uid: 10816 components: - type: Transform @@ -89630,6 +89860,16 @@ entities: parent: 2 - type: Fixtures fixtures: {} +- proto: PaintingSkeletonBoof + entities: + - uid: 16554 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -5.5,-46.5 + parent: 2 + - type: Fixtures + fixtures: {} - proto: PaintingTheGreatWave entities: - uid: 18495 @@ -90719,6 +90959,13 @@ entities: - type: Transform pos: 9.483602,-47.419678 parent: 2 +- proto: PlushieVulp + entities: + - uid: 13963 + components: + - type: Transform + pos: 21.464287,-73.453964 + parent: 2 - proto: PlushieXeno entities: - uid: 11682 @@ -90856,13 +91103,18 @@ entities: - type: Transform pos: 32.5,-76.5 parent: 2 -- proto: PosterContrabandAmbrosiaVulgaris - entities: - - uid: 17215 + - uid: 19021 components: - type: Transform - rot: 3.141592653589793 rad - pos: -1.5,-50.5 + pos: 0.5,-57.5 + parent: 2 +- proto: PosterContrabandAmbrosiaVulgaris + entities: + - uid: 938 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -3.5,-49.5 parent: 2 - type: Fixtures fixtures: {} @@ -91275,6 +91527,15 @@ entities: parent: 2 - type: Fixtures fixtures: {} +- proto: PosterLegitBotanyFear + entities: + - uid: 12496 + components: + - type: Transform + pos: -0.5,-57.5 + parent: 2 + - type: Fixtures + fixtures: {} - proto: PosterLegitBuild entities: - uid: 17216 @@ -91956,6 +92217,17 @@ entities: rot: 3.141592653589793 rad pos: 12.5,-32.5 parent: 2 + - uid: 994 + components: + - type: Transform + pos: -3.5,-50.5 + parent: 2 + - uid: 995 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 0.5,-57.5 + parent: 2 - uid: 1337 components: - type: Transform @@ -92076,29 +92348,24 @@ entities: rot: -1.5707963267948966 rad pos: -27.5,-28.5 parent: 2 - - uid: 4935 - components: - - type: Transform - pos: -39.5,-64.5 - parent: 2 - - uid: 4936 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: -33.5,-64.5 - parent: 2 - - uid: 5029 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: -45.5,-65.5 - parent: 2 - uid: 5122 components: - type: Transform rot: -1.5707963267948966 rad pos: -16.5,-16.5 parent: 2 + - uid: 5177 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -33.5,-64.5 + parent: 2 + - uid: 5180 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -45.5,-65.5 + parent: 2 - uid: 5184 components: - type: Transform @@ -92115,7 +92382,7 @@ entities: components: - type: Transform rot: -1.5707963267948966 rad - pos: -33.5,-64.5 + pos: -12.5,-54.5 parent: 2 - uid: 5682 components: @@ -92129,6 +92396,12 @@ entities: rot: -1.5707963267948966 rad pos: 29.5,-51.5 parent: 2 + - uid: 5845 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -5.5,-53.5 + parent: 2 - uid: 5855 components: - type: Transform @@ -92140,6 +92413,24 @@ entities: rot: -1.5707963267948966 rad pos: 26.5,-34.5 parent: 2 + - uid: 6269 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -1.5,-57.5 + parent: 2 + - uid: 6271 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 54.5,-45.5 + parent: 2 + - uid: 6295 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 52.5,-50.5 + parent: 2 - uid: 6390 components: - type: Transform @@ -92166,13 +92457,13 @@ entities: - uid: 7598 components: - type: Transform - pos: 43.5,-52.5 + pos: 41.5,-52.5 parent: 2 - uid: 7655 components: - type: Transform - rot: 3.141592653589793 rad - pos: -0.5,-57.5 + rot: -1.5707963267948966 rad + pos: 7.5,-41.5 parent: 2 - uid: 7709 components: @@ -92420,12 +92711,6 @@ entities: - type: Transform pos: 8.5,-47.5 parent: 2 - - uid: 14084 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: -5.5,-51.5 - parent: 2 - uid: 14097 components: - type: Transform @@ -93002,12 +93287,6 @@ entities: rot: -1.5707963267948966 rad pos: 23.5,-19.5 parent: 2 - - uid: 19020 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: -0.5,-52.5 - parent: 2 - uid: 19328 components: - type: Transform @@ -93268,18 +93547,6 @@ entities: parent: 2 - proto: PoweredlightGreen entities: - - uid: 1709 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: 54.5,-45.5 - parent: 2 - - uid: 1717 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: 52.5,-50.5 - parent: 2 - uid: 3215 components: - type: Transform @@ -93291,10 +93558,10 @@ entities: rot: 3.141592653589793 rad pos: -31.5,-53.5 parent: 2 - - uid: 4892 + - uid: 5176 components: - type: Transform - pos: 37.5,-53.5 + pos: -39.5,-64.5 parent: 2 - uid: 5201 components: @@ -93302,10 +93569,10 @@ entities: rot: -1.5707963267948966 rad pos: 18.5,-42.5 parent: 2 - - uid: 5654 + - uid: 5302 components: - type: Transform - pos: -15.5,-52.5 + pos: -16.5,-52.5 parent: 2 - uid: 14284 components: @@ -93402,6 +93669,12 @@ entities: parent: 2 - proto: PoweredSmallLight entities: + - uid: 993 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -0.5,-48.5 + parent: 2 - uid: 1209 components: - type: Transform @@ -93536,6 +93809,11 @@ entities: - type: Transform pos: -54.5,-27.5 parent: 2 + - uid: 12495 + components: + - type: Transform + pos: -3.5,-47.5 + parent: 2 - uid: 13391 components: - type: Transform @@ -93592,11 +93870,6 @@ entities: rot: 1.5707963267948966 rad pos: 11.5,-62.5 parent: 2 - - uid: 14089 - components: - - type: Transform - pos: -4.5,-47.5 - parent: 2 - uid: 14090 components: - type: Transform @@ -93887,12 +94160,6 @@ entities: rot: 1.5707963267948966 rad pos: 34.5,-91.5 parent: 2 - - uid: 16554 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: -0.5,-43.5 - parent: 2 - uid: 16561 components: - type: Transform @@ -95579,11 +95846,6 @@ entities: - type: Transform pos: 35.5,-32.5 parent: 2 - - uid: 19362 - components: - - type: Transform - pos: -2.5,-45.5 - parent: 2 - uid: 19588 components: - type: Transform @@ -96641,26 +96903,6 @@ entities: - type: Transform pos: 2.5,-49.5 parent: 2 - - uid: 947 - components: - - type: Transform - pos: 2.5,-50.5 - parent: 2 - - uid: 993 - components: - - type: Transform - pos: -5.5,-52.5 - parent: 2 - - uid: 994 - components: - - type: Transform - pos: -3.5,-51.5 - parent: 2 - - uid: 995 - components: - - type: Transform - pos: -3.5,-52.5 - parent: 2 - uid: 1033 components: - type: Transform @@ -97061,6 +97303,11 @@ entities: - type: Transform pos: 11.5,-31.5 parent: 2 + - uid: 5159 + components: + - type: Transform + pos: -0.5,-56.5 + parent: 2 - uid: 5215 components: - type: Transform @@ -97357,6 +97604,11 @@ entities: - type: Transform pos: 64.5,-26.5 parent: 2 + - uid: 14860 + components: + - type: Transform + pos: 2.5,-50.5 + parent: 2 - uid: 15027 components: - type: Transform @@ -97397,6 +97649,11 @@ entities: - type: Transform pos: 22.5,-86.5 parent: 2 + - uid: 17095 + components: + - type: Transform + pos: -0.5,-55.5 + parent: 2 - uid: 17780 components: - type: Transform @@ -97422,6 +97679,11 @@ entities: - type: Transform pos: 7.5,-33.5 parent: 2 + - uid: 19015 + components: + - type: Transform + pos: 0.5,-55.5 + parent: 2 - uid: 19261 components: - type: Transform @@ -97842,16 +98104,16 @@ entities: parent: 2 - proto: SeedExtractor entities: - - uid: 5171 - components: - - type: Transform - pos: -3.5,-53.5 - parent: 2 - uid: 14702 components: - type: Transform pos: 51.5,-17.5 parent: 2 + - uid: 19012 + components: + - type: Transform + pos: -3.5,-50.5 + parent: 2 - proto: SeedExtractorMachineCircuitboard entities: - uid: 19583 @@ -99877,13 +100139,6 @@ entities: parent: 2 - type: Fixtures fixtures: {} - - uid: 14139 - components: - - type: Transform - pos: -0.5,-58.5 - parent: 2 - - type: Fixtures - fixtures: {} - uid: 16179 components: - type: Transform @@ -99928,10 +100183,10 @@ entities: fixtures: {} - proto: SignCryogenicsMed entities: - - uid: 3832 + - uid: 10612 components: - type: Transform - pos: -3.5,-50.5 + pos: 0.5,-55.5 parent: 2 - type: Fixtures fixtures: {} @@ -100143,11 +100398,11 @@ entities: fixtures: {} - proto: SignDirectionalChemistry entities: - - uid: 6271 + - uid: 5166 components: - type: Transform rot: 3.141592653589793 rad - pos: 0.5,-58.5 + pos: -5.499415,-52.09489 parent: 2 - type: Fixtures fixtures: {} @@ -100625,10 +100880,10 @@ entities: fixtures: {} - proto: SignDirectionalFood entities: - - uid: 5177 + - uid: 5654 components: - type: Transform - pos: 0.5,-51.5 + pos: -5.499415,-49.874535 parent: 2 - type: Fixtures fixtures: {} @@ -101417,6 +101672,15 @@ entities: parent: 2 - type: Fixtures fixtures: {} +- proto: SignFlammableMed + entities: + - uid: 19346 + components: + - type: Transform + pos: 2.5,-55.5 + parent: 2 + - type: Fixtures + fixtures: {} - proto: SignGravity entities: - uid: 16203 @@ -101447,6 +101711,13 @@ entities: fixtures: {} - proto: SignHydro1 entities: + - uid: 5171 + components: + - type: Transform + pos: 1.5,-51.5 + parent: 2 + - type: Fixtures + fixtures: {} - uid: 14927 components: - type: Transform @@ -101481,15 +101752,6 @@ entities: parent: 2 - type: Fixtures fixtures: {} -- proto: SignKitchen - entities: - - uid: 18300 - components: - - type: Transform - pos: 1.5,-51.5 - parent: 2 - - type: Fixtures - fixtures: {} - proto: SignLaserMed entities: - uid: 18442 @@ -102857,11 +103119,6 @@ entities: parent: 2 - proto: SpawnMobMouse entities: - - uid: 17124 - components: - - type: Transform - pos: -1.5,-56.5 - parent: 2 - uid: 17125 components: - type: Transform @@ -102877,6 +103134,11 @@ entities: - type: Transform pos: 10.5,2.5 parent: 2 + - uid: 19312 + components: + - type: Transform + pos: -3.5,-55.5 + parent: 2 - proto: SpawnMobPollyParrot entities: - uid: 19680 @@ -102979,10 +103241,10 @@ entities: - type: Transform pos: -4.5,-48.5 parent: 2 - - uid: 15314 + - uid: 19007 components: - type: Transform - pos: -3.5,-48.5 + pos: -4.5,-47.5 parent: 2 - proto: SpawnPointCaptain entities: @@ -104056,11 +104318,6 @@ entities: - type: Transform pos: -22.5,-24.5 parent: 2 - - uid: 5169 - components: - - type: Transform - pos: -2.5,-51.5 - parent: 2 - uid: 7247 components: - type: Transform @@ -104081,6 +104338,11 @@ entities: - type: Transform pos: 36.5,-73.5 parent: 2 + - uid: 10610 + components: + - type: Transform + pos: -1.5,-56.5 + parent: 2 - uid: 12881 components: - type: Transform @@ -104582,6 +104844,11 @@ entities: rot: -1.5707963267948966 rad pos: 75.5,-45.5 parent: 2 + - type: SurveillanceCamera + setupAvailableNetworks: + - SurveillanceCameraCommand + nameSet: True + id: AI Upload Entrance - uid: 18872 components: - type: Transform @@ -105702,6 +105969,17 @@ entities: id: North Front Desk - proto: SurveillanceCameraService entities: + - uid: 12484 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -0.5,-51.5 + parent: 2 + - type: SurveillanceCamera + setupAvailableNetworks: + - SurveillanceCameraService + nameSet: True + id: Botany - uid: 15171 components: - type: Transform @@ -106283,11 +106561,6 @@ entities: - type: Transform pos: 2.5,-54.5 parent: 2 - - uid: 5180 - components: - - type: Transform - pos: -3.5,-47.5 - parent: 2 - uid: 5216 components: - type: Transform @@ -106589,11 +106862,6 @@ entities: - type: Transform pos: 27.5,-39.5 parent: 2 - - uid: 12706 - components: - - type: Transform - pos: -0.5,-57.5 - parent: 2 - uid: 12794 components: - type: Transform @@ -106704,6 +106972,17 @@ entities: - type: Transform pos: 11.5,-77.5 parent: 2 + - uid: 19006 + components: + - type: Transform + pos: -2.5,-46.5 + parent: 2 + - uid: 19020 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -1.5,-55.5 + parent: 2 - proto: TableCarpet entities: - uid: 6722 @@ -109174,10 +109453,10 @@ entities: parent: 2 - proto: VendingMachineHydrobe entities: - - uid: 5172 + - uid: 3873 components: - type: Transform - pos: -2.5,-49.5 + pos: -2.5,-48.5 parent: 2 - proto: VendingMachineJaniDrobe entities: @@ -109209,10 +109488,10 @@ entities: parent: 2 - proto: VendingMachineNutri entities: - - uid: 5845 + - uid: 17124 components: - type: Transform - pos: 2.5,-57.5 + pos: -2.5,-50.5 parent: 2 - proto: VendingMachinePride entities: @@ -109270,10 +109549,10 @@ entities: parent: 2 - proto: VendingMachineSeeds entities: - - uid: 5170 + - uid: 12475 components: - type: Transform - pos: 2.5,-56.5 + pos: -1.5,-50.5 parent: 2 - proto: VendingMachineSeedsUnlocked entities: @@ -109306,10 +109585,10 @@ entities: - type: Transform pos: 68.5,-57.5 parent: 2 - - uid: 17095 + - uid: 19362 components: - type: Transform - pos: -4.5,-43.5 + pos: -2.5,-44.5 parent: 2 - proto: VendingMachineSustenance entities: @@ -120949,6 +121228,11 @@ entities: - type: Transform pos: 26.5,-30.5 parent: 2 + - uid: 939 + components: + - type: Transform + pos: -1.5,-48.5 + parent: 2 - uid: 943 components: - type: Transform @@ -120974,11 +121258,6 @@ entities: - type: Transform pos: 0.5,-42.5 parent: 2 - - uid: 967 - components: - - type: Transform - pos: 0.5,-43.5 - parent: 2 - uid: 968 components: - type: Transform @@ -121009,11 +121288,6 @@ entities: - type: Transform pos: -1.5,-46.5 parent: 2 - - uid: 975 - components: - - type: Transform - pos: -2.5,-46.5 - parent: 2 - uid: 976 components: - type: Transform @@ -121204,41 +121478,11 @@ entities: - type: Transform pos: 2.5,-55.5 parent: 2 - - uid: 1029 - components: - - type: Transform - pos: -1.5,-52.5 - parent: 2 - - uid: 1030 - components: - - type: Transform - pos: -1.5,-51.5 - parent: 2 - - uid: 1031 - components: - - type: Transform - pos: -1.5,-50.5 - parent: 2 - uid: 1032 components: - type: Transform pos: -1.5,-49.5 parent: 2 - - uid: 1034 - components: - - type: Transform - pos: -1.5,-47.5 - parent: 2 - - uid: 1035 - components: - - type: Transform - pos: -2.5,-50.5 - parent: 2 - - uid: 1036 - components: - - type: Transform - pos: -3.5,-50.5 - parent: 2 - uid: 1037 components: - type: Transform @@ -123414,6 +123658,12 @@ entities: - type: Transform pos: 9.5,-76.5 parent: 2 + - uid: 5168 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -0.5,-57.5 + parent: 2 - uid: 5254 components: - type: Transform @@ -124130,6 +124380,12 @@ entities: - type: Transform pos: 73.5,-59.5 parent: 2 + - uid: 10300 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -2.5,-45.5 + parent: 2 - uid: 10334 components: - type: Transform @@ -124160,6 +124416,11 @@ entities: - type: Transform pos: 76.5,-56.5 parent: 2 + - uid: 10608 + components: + - type: Transform + pos: -5.5,-52.5 + parent: 2 - uid: 10707 components: - type: Transform @@ -124519,6 +124780,12 @@ entities: rot: 1.5707963267948966 rad pos: -31.5,-54.5 parent: 2 + - uid: 14089 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -3.5,-45.5 + parent: 2 - uid: 14093 components: - type: Transform @@ -124680,6 +124947,11 @@ entities: - type: Transform pos: 7.5,-71.5 parent: 2 + - uid: 15314 + components: + - type: Transform + pos: -2.5,-49.5 + parent: 2 - uid: 15419 components: - type: Transform @@ -125055,16 +125327,16 @@ entities: parent: 2 - proto: WaterTankHighCapacity entities: - - uid: 5173 - components: - - type: Transform - pos: -3.5,-55.5 - parent: 2 - uid: 5619 components: - type: Transform pos: -7.5,-47.5 parent: 2 + - uid: 19013 + components: + - type: Transform + pos: -3.5,-54.5 + parent: 2 - proto: WaterVaporCanister entities: - uid: 5050 @@ -125530,22 +125802,17 @@ entities: parent: 2 - proto: WindoorHydroponicsLocked entities: - - uid: 938 + - uid: 5164 components: - type: Transform - rot: 3.141592653589793 rad - pos: -2.5,-52.5 + rot: -1.5707963267948966 rad + pos: -4.5,-50.5 parent: 2 - - uid: 939 + - uid: 5172 components: - type: Transform - rot: 3.141592653589793 rad - pos: -4.5,-52.5 - parent: 2 - - uid: 2404 - components: - - type: Transform - pos: 0.5,-56.5 + rot: -1.5707963267948966 rad + pos: -4.5,-51.5 parent: 2 - uid: 5178 components: @@ -125559,6 +125826,18 @@ entities: rot: -1.5707963267948966 rad pos: 2.5,-53.5 parent: 2 + - uid: 10607 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 1.5,-55.5 + parent: 2 + - uid: 12508 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 1.5,-56.5 + parent: 2 - proto: WindoorPlasma entities: - uid: 6144 @@ -125978,24 +126257,12 @@ entities: parent: 2 - proto: WindowDirectional entities: - - uid: 1836 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: 1.5,-57.5 - parent: 2 - uid: 8058 components: - type: Transform rot: 3.141592653589793 rad pos: -40.5,-78.5 parent: 2 - - uid: 9244 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: -0.5,-57.5 - parent: 2 - uid: 12744 components: - type: Transform @@ -126351,13 +126618,18 @@ entities: - uid: 14572 components: - type: Transform - pos: -3.4854956,-47.477867 + pos: -2.4537568,-46.38345 parent: 2 - uid: 17357 components: - type: Transform pos: -31.486425,-31.498188 parent: 2 + - uid: 18259 + components: + - type: Transform + pos: 0.46065357,-56.502483 + parent: 2 - uid: 18303 components: - type: Transform @@ -128014,16 +128286,16 @@ entities: - type: Transform pos: -14.5,-32.5 parent: 2 - - uid: 13963 - components: - - type: Transform - pos: -0.5,-42.5 - parent: 2 - uid: 13981 components: - type: Transform pos: -30.5,-44.5 parent: 2 + - uid: 14084 + components: + - type: Transform + pos: 0.5,-43.5 + parent: 2 - uid: 14115 components: - type: Transform @@ -128132,6 +128404,11 @@ entities: - type: Transform pos: -16.5,-70.5 parent: 2 + - uid: 19005 + components: + - type: Transform + pos: -0.5,-42.5 + parent: 2 - uid: 19193 components: - type: Transform From 6febe0fa588883244d4fa193d2b6626c2323904c Mon Sep 17 00:00:00 2001 From: PJBot Date: Thu, 4 Dec 2025 19:45:57 +0000 Subject: [PATCH 004/205] Automatic changelog update --- Resources/Changelog/Changelog.yml | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/Resources/Changelog/Changelog.yml b/Resources/Changelog/Changelog.yml index c9ab9dccf6..153b4c895a 100644 --- a/Resources/Changelog/Changelog.yml +++ b/Resources/Changelog/Changelog.yml @@ -1,13 +1,4 @@ Entries: -- author: slarticodefast, EmoGarbage404 - changes: - - message: 'Added a new science gadget: The H.A.R.M.P.A.C.K., a backpack that gives - you two extra hands when worn. Unlocked with a T2 arsenal research and printable - at the protolathe and secfab.' - type: Fix - id: 8749 - time: '2025-07-07T21:43:33.0000000+00:00' - url: https://github.com/space-wizards/space-station-14/pull/38824 - author: kosticia changes: - message: Added new reagent for artifact researching - artifact glue! Use it on @@ -3920,3 +3911,12 @@ id: 9249 time: '2025-12-04T18:05:29.0000000+00:00' url: https://github.com/space-wizards/space-station-14/pull/41693 +- author: SlamBamActionman + changes: + - message: Changed Exo Botany's layout to have more trays and better functionality. + type: Tweak + - message: Fixed various decals and minor bugs with Exo. + type: Fix + id: 9250 + time: '2025-12-04T19:44:47.0000000+00:00' + url: https://github.com/space-wizards/space-station-14/pull/41598 From 405bc6c8f13085b432ab59a9315cac34e9487504 Mon Sep 17 00:00:00 2001 From: ScarKy0 <106310278+ScarKy0@users.noreply.github.com> Date: Fri, 5 Dec 2025 01:42:03 +0100 Subject: [PATCH 005/205] Warfarin and Hemorrhinol, Hemophilia turned into a StatusEffect (#41685) * init * yeah * move folders * comments * i hate cloning sometimes * review * review squred * fix stuff --- .../StatusEffectSystem.Relay.cs | 3 ++ .../Traits/Assorted/HemophiliaComponent.cs | 16 -------- .../HemophiliaStatusEffectComponent.cs | 22 +++++++++++ .../Traits/Assorted/HemophiliaSystem.cs | 10 +++-- .../Locale/en-US/reagents/meta/medicine.ftl | 3 ++ .../en-US/reagents/meta/physical-desc.ftl | 1 + .../Locale/en-US/reagents/meta/toxins.ftl | 3 ++ .../Prototypes/Entities/Mobs/Player/clone.yml | 1 - .../Entities/StatusEffects/body.yml | 37 +++++++++++++++++-- Resources/Prototypes/Reagents/medicine.yml | 24 ++++++++++++ Resources/Prototypes/Reagents/toxins.yml | 19 ++++++++++ .../Prototypes/Recipes/Reactions/medicine.yml | 24 ++++++++++++ Resources/Prototypes/Traits/disabilities.yml | 6 ++- 13 files changed, 144 insertions(+), 25 deletions(-) delete mode 100644 Content.Shared/Traits/Assorted/HemophiliaComponent.cs create mode 100644 Content.Shared/Traits/Assorted/HemophiliaStatusEffectComponent.cs diff --git a/Content.Shared/StatusEffectNew/StatusEffectSystem.Relay.cs b/Content.Shared/StatusEffectNew/StatusEffectSystem.Relay.cs index 9b16aadff0..30c5d9f67e 100644 --- a/Content.Shared/StatusEffectNew/StatusEffectSystem.Relay.cs +++ b/Content.Shared/StatusEffectNew/StatusEffectSystem.Relay.cs @@ -1,3 +1,4 @@ +using Content.Shared.Body.Events; using Content.Shared.Damage.Events; using Content.Shared.Mobs.Events; using Content.Shared.Movement.Events; @@ -31,6 +32,8 @@ public sealed partial class StatusEffectsSystem SubscribeLocalEvent(RelayStatusEffectEvent); SubscribeLocalEvent(RelayStatusEffectEvent); + + SubscribeLocalEvent(RefRelayStatusEffectEvent); } private void RefRelayStatusEffectEvent(EntityUid uid, StatusEffectContainerComponent component, ref T args) where T : struct diff --git a/Content.Shared/Traits/Assorted/HemophiliaComponent.cs b/Content.Shared/Traits/Assorted/HemophiliaComponent.cs deleted file mode 100644 index 208883f11c..0000000000 --- a/Content.Shared/Traits/Assorted/HemophiliaComponent.cs +++ /dev/null @@ -1,16 +0,0 @@ -using Robust.Shared.GameStates; - -namespace Content.Shared.Traits.Assorted; - -/// -/// This component is used for the Hemophilia Trait, it reduces the passive bleed stack reduction amount so entities with it bleed for longer. -/// -[RegisterComponent, NetworkedComponent, AutoGenerateComponentState] -public sealed partial class HemophiliaComponent : Component -{ - /// - /// What multiplier should be applied to the BleedReduction when an entity bleeds? - /// - [DataField, AutoNetworkedField] - public float HemophiliaBleedReductionMultiplier = 0.33f; -} diff --git a/Content.Shared/Traits/Assorted/HemophiliaStatusEffectComponent.cs b/Content.Shared/Traits/Assorted/HemophiliaStatusEffectComponent.cs new file mode 100644 index 0000000000..3216052257 --- /dev/null +++ b/Content.Shared/Traits/Assorted/HemophiliaStatusEffectComponent.cs @@ -0,0 +1,22 @@ +using Robust.Shared.GameStates; + +namespace Content.Shared.Traits.Assorted; + +/// +/// This component is used for the Hemophilia Trait, it reduces the passive bleed stack reduction amount so entities with it bleed for longer. +/// +[RegisterComponent, NetworkedComponent, AutoGenerateComponentState] +public sealed partial class HemophiliaStatusEffectComponent : Component +{ + /// + /// Multiplier to use for the amount of bloodloss reduction during a bleed tick. + /// + [DataField, AutoNetworkedField] + public float BleedReductionMultiplier = 0.33f; + + /// + /// Multiplier to use for the amount of blood lost during a bleed tick. + /// + [DataField, AutoNetworkedField] + public float BleedAmountMultiplier = 1f; +} diff --git a/Content.Shared/Traits/Assorted/HemophiliaSystem.cs b/Content.Shared/Traits/Assorted/HemophiliaSystem.cs index 53f6609575..4544007ac7 100644 --- a/Content.Shared/Traits/Assorted/HemophiliaSystem.cs +++ b/Content.Shared/Traits/Assorted/HemophiliaSystem.cs @@ -1,4 +1,5 @@ using Content.Shared.Body.Events; +using Content.Shared.StatusEffectNew; namespace Content.Shared.Traits.Assorted; @@ -6,11 +7,14 @@ public sealed class HemophiliaSystem : EntitySystem { public override void Initialize() { - SubscribeLocalEvent(OnBleedModifier); + SubscribeLocalEvent>(OnBleedModifier); } - private void OnBleedModifier(Entity ent, ref BleedModifierEvent args) + private void OnBleedModifier(Entity ent, ref StatusEffectRelayedEvent args) { - args.BleedReductionAmount *= ent.Comp.HemophiliaBleedReductionMultiplier; + var ev = args.Args; + ev.BleedReductionAmount *= ent.Comp.BleedReductionMultiplier; + ev.BleedAmount *= ent.Comp.BleedAmountMultiplier; + args.Args = ev; } } diff --git a/Resources/Locale/en-US/reagents/meta/medicine.ftl b/Resources/Locale/en-US/reagents/meta/medicine.ftl index 1d2dac1bf5..f1eb6e82a5 100644 --- a/Resources/Locale/en-US/reagents/meta/medicine.ftl +++ b/Resources/Locale/en-US/reagents/meta/medicine.ftl @@ -147,3 +147,6 @@ reagent-desc-potassium-iodide = Will reduce the damaging effects of radiation by reagent-name-haloperidol = haloperidol reagent-desc-haloperidol = Removes most stimulating and hallucinogenic drugs. Reduces druggy effects and jitteriness. Causes drowsiness. + +reagent-name-warfarin = warfarin +reagent-desc-warfarin = Commonly used as an anticoagulant medication. Causes blood to have difficulty forming clots. Can cause internal bleeding when overdosed. diff --git a/Resources/Locale/en-US/reagents/meta/physical-desc.ftl b/Resources/Locale/en-US/reagents/meta/physical-desc.ftl index 6e0ebf53bf..b9e6249fa0 100644 --- a/Resources/Locale/en-US/reagents/meta/physical-desc.ftl +++ b/Resources/Locale/en-US/reagents/meta/physical-desc.ftl @@ -97,3 +97,4 @@ reagent-physical-desc-slimy = slimy reagent-physical-desc-neural = neural reagent-physical-desc-unidentifiable = unidentifiable reagent-physical-desc-non-newtonian = non-newtonian +reagent-physical-desc-thin = thin diff --git a/Resources/Locale/en-US/reagents/meta/toxins.ftl b/Resources/Locale/en-US/reagents/meta/toxins.ftl index 46de20a592..89271516a8 100644 --- a/Resources/Locale/en-US/reagents/meta/toxins.ftl +++ b/Resources/Locale/en-US/reagents/meta/toxins.ftl @@ -84,3 +84,6 @@ reagent-desc-mechanotoxin = A neurotoxin used as venom by some species of spider reagent-name-toxintrash = reprocessed material reagent-desc-toxintrash = An awful-smelling slurry efficiently refined from discarded matter. It represents a perfect, zero-waste conversion of salvage into Vox sustenance, though it is a violent poison to others. + +reagent-name-hemorrhinol = hemorrhinol +reagent-desc-hemorrhinol = A toxin that causes severe damage to blood vessels, causing rapid bleeding. diff --git a/Resources/Prototypes/Entities/Mobs/Player/clone.yml b/Resources/Prototypes/Entities/Mobs/Player/clone.yml index e9e4f04f10..419bf23325 100644 --- a/Resources/Prototypes/Entities/Mobs/Player/clone.yml +++ b/Resources/Prototypes/Entities/Mobs/Player/clone.yml @@ -16,7 +16,6 @@ # traits - BlackAndWhiteOverlay - Clumsy - - Hemophilia - ImpairedMobility # - LegsParalyzed (you get healed) - LightweightDrunk diff --git a/Resources/Prototypes/Entities/StatusEffects/body.yml b/Resources/Prototypes/Entities/StatusEffects/body.yml index 6b6f704a2c..739c9c3b22 100644 --- a/Resources/Prototypes/Entities/StatusEffects/body.yml +++ b/Resources/Prototypes/Entities/StatusEffects/body.yml @@ -9,13 +9,19 @@ - Bloodstream - type: entity - parent: [ BloodstreamStatusEffectBase ] + parent: BloodstreamStatusEffectBase + id: BloodstreamStatusEffectDebuff + abstract: true + components: + - type: RejuvenateRemovedStatusEffect + +- type: entity + parent: BloodstreamStatusEffectDebuff id: StatusEffectBloodloss name: bloodloss components: - type: StutteringAccent - type: DrunkStatusEffect - - type: RejuvenateRemovedStatusEffect - type: entity parent: MobStatusEffectBase @@ -29,5 +35,30 @@ - type: PainNumbnessStatusEffect - type: entity - parent: PainNumbnessTraitStatusEffect + parent: BloodstreamStatusEffectBase + id: StatusEffectHemophiliaTrait + components: + - type: HemophiliaStatusEffect + +- type: entity + parent: BloodstreamStatusEffectDebuff + id: StatusEffectAnticoagulant # Decreases the amount of blood coagulation when bleeding. + name: thin blood + components: + - type: HemophiliaStatusEffect + bleedReductionMultiplier: 0.33 + bleedAmountMultiplier: 1 + +- type: entity + parent: BloodstreamStatusEffectDebuff + id: StatusEffectHemorrhage # Increases the amount of blood lost when bleeding. + name: hemorrhage + components: + - type: HemophiliaStatusEffect + bleedReductionMultiplier: 1 # We don't want it to also reduce coagulation, it would stack with Anticoagulant. + bleedAmountMultiplier: 1.33 + +- type: entity + parent: [ PainNumbnessTraitStatusEffect, MobStatusEffectDebuff ] id: StatusEffectPainNumbness + name: pain numbness diff --git a/Resources/Prototypes/Reagents/medicine.yml b/Resources/Prototypes/Reagents/medicine.yml index 84b5535802..06c261b0a7 100644 --- a/Resources/Prototypes/Reagents/medicine.yml +++ b/Resources/Prototypes/Reagents/medicine.yml @@ -1487,3 +1487,27 @@ - !type:AdjustReagent reagent: MindbreakerToxin amount: -3.0 + +- type: reagent + id: Warfarin + name: reagent-name-warfarin + group: Medicine + desc: reagent-desc-warfarin + physicalDesc: reagent-physical-desc-thin + allowedDepartments: + - Medical + flavor: medicine + color: "#d0e21b" + metabolisms: + Medicine: + effects: # One day this could be useful for treating blood clots, if we get those + - !type:ModifyStatusEffect + effectProto: StatusEffectAnticoagulant + time: 30 # 10 bleed ticks, you bleed every 3 seconds by default. + type: Update + - !type:ModifyBleed + conditions: + - !type:ReagentCondition + reagent: Warfarin + min: 15 + amount: 0.25 diff --git a/Resources/Prototypes/Reagents/toxins.yml b/Resources/Prototypes/Reagents/toxins.yml index 4a75270325..79f8e5cc29 100644 --- a/Resources/Prototypes/Reagents/toxins.yml +++ b/Resources/Prototypes/Reagents/toxins.yml @@ -751,3 +751,22 @@ conditions: - !type:MetabolizerTypeCondition type: [Vox] + +- type: reagent + id: Hemorrhinol + name: reagent-name-hemorrhinol + group: Toxins + desc: reagent-desc-hemorrhinol + physicalDesc: reagent-physical-desc-thin + contrabandSeverity: Major + flavor: sharp + color: "#96424f" + metabolisms: + Poison: + effects: + - !type:ModifyStatusEffect + effectProto: StatusEffectHemorrhage + time: 21 # 7 bleed ticks, you bleed every 3 seconds by default. + type: Update + - !type:ModifyBleed + amount: 0.5 diff --git a/Resources/Prototypes/Recipes/Reactions/medicine.yml b/Resources/Prototypes/Recipes/Reactions/medicine.yml index f710f5c471..1a9db942da 100644 --- a/Resources/Prototypes/Recipes/Reactions/medicine.yml +++ b/Resources/Prototypes/Recipes/Reactions/medicine.yml @@ -662,3 +662,27 @@ amount: 1 products: Haloperidol: 5 + +- type: reaction + id: Warfarin + reactants: + SulfuricAcid: + amount: 1 + Nitrogen: + amount: 1 + Sodium: + amount: 1 + products: + Warfarin: 2 + +- type: reaction + id: Hemorrhinol + reactants: + Warfarin: + amount: 2 + Razorium: + amount: 2 + Plasma: + amount: 1 + products: + Hemorrhinol: 2 diff --git a/Resources/Prototypes/Traits/disabilities.yml b/Resources/Prototypes/Traits/disabilities.yml index de102b54ee..299032bf77 100644 --- a/Resources/Prototypes/Traits/disabilities.yml +++ b/Resources/Prototypes/Traits/disabilities.yml @@ -93,8 +93,10 @@ name: trait-hemophilia-name description: trait-hemophilia-desc category: Disabilities - components: - - type: Hemophilia + specials: + - !type:ApplyStatusEffectSpecial + statusEffects: + - StatusEffectHemophiliaTrait - type: trait id: ImpairedMobility From 4ab720932364c99a246f18488874a561a9974bef Mon Sep 17 00:00:00 2001 From: PJBot Date: Fri, 5 Dec 2025 00:55:12 +0000 Subject: [PATCH 006/205] Automatic changelog update --- Resources/Changelog/Changelog.yml | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/Resources/Changelog/Changelog.yml b/Resources/Changelog/Changelog.yml index 153b4c895a..b4520ba300 100644 --- a/Resources/Changelog/Changelog.yml +++ b/Resources/Changelog/Changelog.yml @@ -1,12 +1,4 @@ Entries: -- author: kosticia - changes: - - message: Added new reagent for artifact researching - artifact glue! Use it on - the artefact with active node for repair its durability. - type: Add - id: 8750 - time: '2025-07-08T01:45:46.0000000+00:00' - url: https://github.com/space-wizards/space-station-14/pull/38670 - author: maland1 changes: - message: Updated contraband tags on pulse weapons, temp gun, portable particle @@ -3920,3 +3912,11 @@ id: 9250 time: '2025-12-04T19:44:47.0000000+00:00' url: https://github.com/space-wizards/space-station-14/pull/41598 +- author: ScarKy0 + changes: + - message: Added Warfarin and Hemorrhinol, reagents that interact with blood clotting + and bleeding speed. Read about them in the guidebook! + type: Add + id: 9251 + time: '2025-12-05T00:54:05.0000000+00:00' + url: https://github.com/space-wizards/space-station-14/pull/41685 From 5f757bd838d58b87b6139210e6d72b15887ef07a Mon Sep 17 00:00:00 2001 From: MissKay1994 <15877268+MissKay1994@users.noreply.github.com> Date: Fri, 5 Dec 2025 05:34:00 -0500 Subject: [PATCH 007/205] Add missing vox unequipped sprite for explorer mask (#41405) Mask on face --- .../Clothing/Mask/gasexplorer.rsi/meta.json | 6 +++++- .../Mask/gasexplorer.rsi/up-equipped-MASK-vox.png | Bin 0 -> 947 bytes 2 files changed, 5 insertions(+), 1 deletion(-) create mode 100644 Resources/Textures/Clothing/Mask/gasexplorer.rsi/up-equipped-MASK-vox.png diff --git a/Resources/Textures/Clothing/Mask/gasexplorer.rsi/meta.json b/Resources/Textures/Clothing/Mask/gasexplorer.rsi/meta.json index a83de36ef9..1766e18a85 100644 --- a/Resources/Textures/Clothing/Mask/gasexplorer.rsi/meta.json +++ b/Resources/Textures/Clothing/Mask/gasexplorer.rsi/meta.json @@ -1,7 +1,7 @@ { "version": 1, "license": "CC-BY-SA-3.0", - "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/4f6190e2895e09116663ef282d3ce1d8b35c032e. Reptilian edit by Nairod(Github). Vox state by Flareguy for SS14 | vulpkanin version edited by Floofers", + "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/4f6190e2895e09116663ef282d3ce1d8b35c032e. Reptilian edit by Nairod(Github). Vox state by Flareguy for SS14 | vulpkanin version edited by Floofers | Vox unequipped by MissKay1994(Github)", "size": { "x": 32, "y": 32 @@ -37,6 +37,10 @@ { "name": "equipped-MASK-reptilian", "directions": 4 + }, + { + "name": "up-equipped-MASK-vox", + "directions": 4 } ] } diff --git a/Resources/Textures/Clothing/Mask/gasexplorer.rsi/up-equipped-MASK-vox.png b/Resources/Textures/Clothing/Mask/gasexplorer.rsi/up-equipped-MASK-vox.png new file mode 100644 index 0000000000000000000000000000000000000000..bbf58361038b1c6c2398bb4e63f744a08ebbdd33 GIT binary patch literal 947 zcmV;k15EshP)Px&ZAnByRCt{2nomd+Q5?s=BZ3GrJ0e1kJGt&2TrngpG^xW9brMPh2~95^VqtGf z2tjy=z>9bjqJt+<#LE(R2nsx8h|!)JcRMK7$|x++>|7)eejVg3JKLf=f81C3KBqVT ze((4D&ilPL%=-ZX!KFs3_Qs8k4cl=t5hvE3UwBou9lw~G7%%p}xU^jCKNgEQvQy`# z^JF4Uirj=~BnU-rvWZbklz{BnhGPMei8xtZEoh$}OC9A+v`>$vtge=ti?Fz~ESUw% z_V(T2NB|c6;N(b3*E2AOuBUW8gTcv>nut(3>;d4>(Css?S3|uUM|3@N+F1E8jIleZ z;_(He1Z2FPe@Ot)(bfzAc)PMd-wuBkuj9aQWYduVX2HU(lOVR!nPK_s52W?1)VBh% zx?0eG(ul2s<*0L~m<0>j-GhpgZZZ)k(?$PPr@++2I4J=cTj?G2pEM$^XC(kg>shJ) zq!C-`9fUO1)i87d>$lQ*H$hfd&aAtN+3TY}T&Af|C%hKNvyc-0B?iyb%KMc7QiR0NxJpMhL*$0p47C0bKtQ^9!ec zasB4fj{qTnR|CmJoYg$P8Y1^w^*98*gBolFpMuGre!ujP3g4V(oy}eL^BaL~AEj zhp=6LjE=TuL?c1mxYkWxgNI)!z=B`P8@AekkfwTeFr=xrI)t^nQ53@8M&=-?Z6xi{}&w2USu6GFI0&0RW?| zDh7Hx|G3ZV2hTunr!9CTAR`=9`K17Z)diG_0Kk{GQ)+8BY0BR6gYWgosd@t`V)BLYj*AA3sTctONpqKp+qZ1OkCTAP@)y0)gQ2@Egq| VXtvYfgDn66002ovPDHLkV1iEyuo?gW literal 0 HcmV?d00001 From 88561d4e83a02f630c96196dae78e5e449be2845 Mon Sep 17 00:00:00 2001 From: PJBot Date: Fri, 5 Dec 2025 10:47:38 +0000 Subject: [PATCH 008/205] Automatic changelog update --- Resources/Changelog/Changelog.yml | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/Resources/Changelog/Changelog.yml b/Resources/Changelog/Changelog.yml index b4520ba300..a302ee91e5 100644 --- a/Resources/Changelog/Changelog.yml +++ b/Resources/Changelog/Changelog.yml @@ -1,13 +1,4 @@ Entries: -- author: maland1 - changes: - - message: Updated contraband tags on pulse weapons, temp gun, portable particle - decelerator, tesla gun and makeshift laser pistol to be more consistent with - their intended owners and legality - type: Tweak - id: 8751 - time: '2025-07-08T11:55:55.0000000+00:00' - url: https://github.com/space-wizards/space-station-14/pull/38698 - author: TrixxedHeart changes: - message: Vox can now have heterochromia in the overlays category under markings. @@ -3920,3 +3911,10 @@ id: 9251 time: '2025-12-05T00:54:05.0000000+00:00' url: https://github.com/space-wizards/space-station-14/pull/41685 +- author: MissKay1994 + changes: + - message: The explorer mask is now correctly worn by vox + type: Fix + id: 9252 + time: '2025-12-05T10:46:28.0000000+00:00' + url: https://github.com/space-wizards/space-station-14/pull/41405 From f1820045782ff7b1a358bd03026f90fdde5940e6 Mon Sep 17 00:00:00 2001 From: alexalexmax <149889301+alexalexmax@users.noreply.github.com> Date: Fri, 5 Dec 2025 02:42:23 -0800 Subject: [PATCH 009/205] Fix recharging spray painters (#41725) change one line --- Content.Shared/SprayPainter/SharedSprayPainterSystem.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Content.Shared/SprayPainter/SharedSprayPainterSystem.cs b/Content.Shared/SprayPainter/SharedSprayPainterSystem.cs index a1316e3565..d1f19d0c25 100644 --- a/Content.Shared/SprayPainter/SharedSprayPainterSystem.cs +++ b/Content.Shared/SprayPainter/SharedSprayPainterSystem.cs @@ -188,7 +188,7 @@ public abstract class SharedSprayPainterSystem : EntitySystem args.Handled = true; if (TryComp(args.Used, out var charges) - && charges.LastCharges < targetGroup.Cost) + && Charges.GetCurrentCharges((args.Used, charges)) < targetGroup.Cost) { var msg = Loc.GetString("spray-painter-interact-no-charges"); _popup.PopupClient(msg, args.User, args.User); From f5308cde93db6c3b78bb5d416d5a2465ef3defab Mon Sep 17 00:00:00 2001 From: PJBot Date: Fri, 5 Dec 2025 11:01:18 +0000 Subject: [PATCH 010/205] Automatic changelog update --- Resources/Changelog/Changelog.yml | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/Resources/Changelog/Changelog.yml b/Resources/Changelog/Changelog.yml index a302ee91e5..e76eebc3f4 100644 --- a/Resources/Changelog/Changelog.yml +++ b/Resources/Changelog/Changelog.yml @@ -1,11 +1,4 @@ Entries: -- author: TrixxedHeart - changes: - - message: Vox can now have heterochromia in the overlays category under markings. - type: Add - id: 8752 - time: '2025-07-08T23:22:13.0000000+00:00' - url: https://github.com/space-wizards/space-station-14/pull/38595 - author: Quantum-cross changes: - message: Fix lingering ghost entities after taking ghost roles. @@ -3918,3 +3911,11 @@ id: 9252 time: '2025-12-05T10:46:28.0000000+00:00' url: https://github.com/space-wizards/space-station-14/pull/41405 +- author: alexalexmax + changes: + - message: Recharging spray painters no longer lose the ability to paint airlocks + after running out of charges once + type: Fix + id: 9253 + time: '2025-12-05T11:00:10.0000000+00:00' + url: https://github.com/space-wizards/space-station-14/pull/41725 From 080ab214c6f190d418851df521c999bc77dcbc0d Mon Sep 17 00:00:00 2001 From: Hitlinemoss <209321380+Hitlinemoss@users.noreply.github.com> Date: Fri, 5 Dec 2025 07:24:22 -0500 Subject: [PATCH 011/205] New figurine voicelines (#41723) --- Resources/Locale/en-US/datasets/figurines.ftl | 50 ++++++++++++++----- Resources/Prototypes/Datasets/figurines.yml | 20 ++++---- 2 files changed, 48 insertions(+), 22 deletions(-) diff --git a/Resources/Locale/en-US/datasets/figurines.ftl b/Resources/Locale/en-US/datasets/figurines.ftl index b6428c0560..9a27dbc584 100644 --- a/Resources/Locale/en-US/datasets/figurines.ftl +++ b/Resources/Locale/en-US/datasets/figurines.ftl @@ -17,9 +17,8 @@ figurines-qm-3 = I didn't approve that shipment of guns! figurines-qm-4 = One toy box for my fellow clown! figurines-qm-5 = Time to gamble! figurines-qm-6 = Viva la Cargonia! -figurines-qm-7 = Fill out the form. -figurines-qm-8 = Where'd all our money go? -figurines-qm-9 = 99% of gamblers quit right before they hit it big! +figurines-qm-7 = Where'd all our money go? +figurines-qm-8 = 99% of gamblers quit right before they hit it big! figurines-cargotech-1 = DRAGON ON ATS! figurines-cargotech-2 = I sold the station! @@ -27,6 +26,11 @@ figurines-cargotech-3 = Brain bounty? I don't have a brain. figurines-cargotech-4 = You're worth 3000 spesos. Congrats. figurines-cargotech-5 = Vegetable bounty? Nobody eats those anyways. figurines-cargotech-6 = WE ARE SECEDING!! ALL HAIL CARGONIA!! +figurines-cargotech-7 = Pizza party at cargo! +figurines-cargotech-8 = The mail never stops... +figurines-cargotech-9 = Nothing stops the mail! +figurines-cargotech-10 = Clown mask bounty? Alright, let me just find a weapon... +figurines-cargotech-11 = Laser bounty? Nobody will notice if we ship practice lasers instead, right? figurines-salvage-1 = Megafauna? It was mega easy. figurines-salvage-2 = We're lost. Anyone bring a GPS? @@ -34,6 +38,9 @@ figurines-salvage-3 = Anyone have oxygen? figurines-salvage-4 = I found a blood-red and e-sword! figurines-salvage-5 = There's bears in space? figurines-salvage-6 = Crusher? I barely know her! +figurines-salvage-7 = Can someone come pick me up? +figurines-salvage-8 = I found that contraband on a wreck! It's not mine! +figurines-salvage-9 = Can we borrow the cargo shuttle? Please? # Engineering @@ -51,6 +58,8 @@ figurines-atmostech-4 = Tritium... figurines-atmostech-5 = Glory to Atmosia! figurines-atmostech-6 = Distro? That's short for disposal. figurines-atmostech-7 = TEG: Thermal Energy? Gone! +figurines-atmostech-8 = Does anyone else hear glass cracking? +figurines-atmostech-9 = I promise this burn chamber is totally safe and will NOT explode. figurines-engineer-1 = SINGULOOSE! figurines-engineer-2 = TESLOOSE! @@ -74,12 +83,15 @@ figurines-chemist-3 = I am the one who knocks! figurines-chemist-4 = Say my name. figurines-chemist-5 = 99.8% purity. figurines-chemist-6 = Epinephrine? Didn't you say methamphetamine? +figurines-chemist-7 = Pills here! +figurines-chemist-8 = Legally speaking, it's not actually a bomb until you mix both beakers together. figurines-doctor-1 = The patient is already dead! figurines-doctor-2 = CLEAR! figurines-doctor-3 = Saw makes BRRR. figurines-doctor-4 = Just a week away... figurines-doctor-5 = I knew it... +figurines-doctor-6 = Well, at least we have body bags. figurines-paramedic-1 = Insuls and tools! figurines-paramedic-2 = I need AA for saving people! @@ -140,8 +152,10 @@ figurines-warden-6 = You're going away for a long time, buddy. figurines-hop-1 = Papers, please. figurines-hop-2 = You are fired. figurines-hop-3 = BRB. -figurines-hop-4 = You can get AA if you fill out the form. +figurines-hop-4 = Fill out the form. figurines-hop-5 = I was gone for two seconds... +figurines-hop-6 = Go get this form stamped. +figurines-hop-7 = Has anyone seen Ian? figurines-bartender-1 = Where's my monkey? figurines-bartender-2 = Sec won't drink. @@ -179,11 +193,12 @@ figurines-chef-6 = Where'd Pun Pun go? No idea... figurines-clown-1 = Honk! figurines-clown-2 = Banana! -figurines-clown-3 = Soap! -figurines-clown-4 = HoP has one clown, HoS has the whole department. -figurines-clown-5 = Do I annoy you? -figurines-clown-6 = Can I have AA? Please? -figurines-clown-7 = I'm a clown, but you're the whole circus! +figurines-clown-3 = Pie! +figurines-clown-4 = Soap! +figurines-clown-5 = Service has one clown, but Security has a whole department of them. +figurines-clown-6 = Do I annoy you? +figurines-clown-7 = Can I have AA? Please? +figurines-clown-8 = I'm a clown, but you're the whole circus! figurines-greytider-1 = Man, this party stinks. I fucking hate these people. figurines-greytider-2 = Uh-oh, who's lost their stunbaton? @@ -207,6 +222,13 @@ figurines-lawyer-2 = Objection! figurines-lawyer-3 = Did you know that you have rights? figurines-lawyer-4 = Space law says! figurines-lawyer-5 = Sign the contract first. +figurines-lawyer-6 = My client is innocent! +figurines-lawyer-7 = I'm suing. +figurines-lawyer-8 = You may be entitled to financial compensation! +figurines-lawyer-9 = Come back with a warrant! +figurines-lawyer-10 = See you in court! +figurines-lawyer-11 = Guilty! +figurines-lawyer-12 = Not guilty! figurines-librarian-1 = Silence! figurines-librarian-2 = One day while... @@ -322,10 +344,14 @@ figurines-thief-3 = Theres nothing suspicious about this satchel at all, officer figurines-thief-4 = I have NO idea where your pet is... figurines-thief-5 = Huh, I didn't know that wall could open up... -figurines-wizard-1 = Ei Nath!! -figurines-wizard-2 = Real wizards support trans rights. +figurines-wizard-1 = EI NATH!! +figurines-wizard-2 = ONI'SOMA!! figurines-wizard-3 = Skidaddle skadoodle! -figurines-wizard-4 = FIREBALL! +figurines-wizard-4 = Real wizards support trans rights. +figurines-wizard-5 = Which one of you NERDS is ready to be shoved in a locker? +figurines-wizard-6 = I'm not the wizard! I'm the captain! I got mind-swapped! +figurines-wizard-7 = Now you see me, now you don't! +figurines-wizard-8 = Guns are for losers who can't explode people with their mind. # Animals diff --git a/Resources/Prototypes/Datasets/figurines.yml b/Resources/Prototypes/Datasets/figurines.yml index 53ba40da64..8d1a256b53 100644 --- a/Resources/Prototypes/Datasets/figurines.yml +++ b/Resources/Prototypes/Datasets/figurines.yml @@ -2,7 +2,7 @@ id: FigurinesHoP values: prefix: figurines-hop- - count: 5 + count: 7 - type: localizedDataset id: FigurinesPassenger @@ -20,7 +20,7 @@ id: FigurinesClown values: prefix: figurines-clown- - count: 7 + count: 8 - type: localizedDataset id: FigurinesHoloClown @@ -80,25 +80,25 @@ id: FigurinesLawyer values: prefix: figurines-lawyer- - count: 5 + count: 12 - type: localizedDataset id: FigurinesCargoTech values: prefix: figurines-cargotech- - count: 6 + count: 11 - type: localizedDataset id: FigurinesSalvage values: prefix: figurines-salvage- - count: 6 + count: 9 - type: localizedDataset id: FigurinesQM values: prefix: figurines-qm- - count: 9 + count: 8 - type: localizedDataset id: FigurinesCE @@ -116,7 +116,7 @@ id: FigurinesAtmosTech values: prefix: figurines-atmostech- - count: 7 + count: 9 - type: localizedDataset id: FigurinesRD @@ -140,7 +140,7 @@ id: FigurinesChemist values: prefix: figurines-chemist- - count: 6 + count: 8 - type: localizedDataset id: FigurinesParamedic @@ -152,7 +152,7 @@ id: FigurinesDoctor values: prefix: figurines-doctor- - count: 5 + count: 6 - type: localizedDataset id: FigurinesLibrarian @@ -218,7 +218,7 @@ id: FigurinesWizard values: prefix: figurines-wizard- - count: 4 + count: 8 - type: localizedDataset id: FigurinesSpaceDragon From 8d6097be9ad3f7dea44cc7606ed6d157cc20fe98 Mon Sep 17 00:00:00 2001 From: PJBot Date: Fri, 5 Dec 2025 12:37:55 +0000 Subject: [PATCH 012/205] Automatic changelog update --- Resources/Changelog/Changelog.yml | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/Resources/Changelog/Changelog.yml b/Resources/Changelog/Changelog.yml index e76eebc3f4..2b578c8d92 100644 --- a/Resources/Changelog/Changelog.yml +++ b/Resources/Changelog/Changelog.yml @@ -1,11 +1,4 @@ Entries: -- author: Quantum-cross - changes: - - message: Fix lingering ghost entities after taking ghost roles. - type: Fix - id: 8753 - time: '2025-07-09T11:07:41.0000000+00:00' - url: https://github.com/space-wizards/space-station-14/pull/38788 - author: Sparlight changes: - message: Dragons no longer destroy non-humanoid mobs upon eating them. @@ -3919,3 +3912,10 @@ id: 9253 time: '2025-12-05T11:00:10.0000000+00:00' url: https://github.com/space-wizards/space-station-14/pull/41725 +- author: Hitlinemoss + changes: + - message: Several figurines have received new voice lines. + type: Add + id: 9254 + time: '2025-12-05T12:36:47.0000000+00:00' + url: https://github.com/space-wizards/space-station-14/pull/41723 From da3e331366d9df0053cb6df5423b1b04d854d9eb Mon Sep 17 00:00:00 2001 From: Pieter-Jan Briers Date: Fri, 5 Dec 2025 13:37:02 +0100 Subject: [PATCH 013/205] C# 14 fixes (#41708) Necessary for the move to .NET 10 & C# 14. Actual PR to change SS14 to C# 14 will be separate. --- Content.Client/Parallax/Managers/ParallaxManager.cs | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/Content.Client/Parallax/Managers/ParallaxManager.cs b/Content.Client/Parallax/Managers/ParallaxManager.cs index bc7d7d60d6..bd46288ebf 100644 --- a/Content.Client/Parallax/Managers/ParallaxManager.cs +++ b/Content.Client/Parallax/Managers/ParallaxManager.cs @@ -98,10 +98,13 @@ public sealed class ParallaxManager : IParallaxManager } else { - layers = await Task.WhenAll( + // Explicitly allocate params array to avoid sandbox violation since C# 14. + var tasks = new[] + { LoadParallaxLayers(parallaxPrototype.Layers, loadedLayers, cancel), - LoadParallaxLayers(parallaxPrototype.LayersLQ, loadedLayers, cancel) - ); + LoadParallaxLayers(parallaxPrototype.LayersLQ, loadedLayers, cancel), + }; + layers = await Task.WhenAll(tasks); } cancel.ThrowIfCancellationRequested(); From 3944268fe48a76293ecc4820616cc87fff8caacc Mon Sep 17 00:00:00 2001 From: Pieter-Jan Briers Date: Fri, 5 Dec 2025 15:53:35 +0100 Subject: [PATCH 014/205] Fix shuttle FTL with UI scale (#40933) Fixed click inputs being broken Fixed rendering of background parallax. --- Content.Client/Shuttles/UI/ShuttleMapControl.xaml.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Content.Client/Shuttles/UI/ShuttleMapControl.xaml.cs b/Content.Client/Shuttles/UI/ShuttleMapControl.xaml.cs index 70ac02bda9..daf2622d81 100644 --- a/Content.Client/Shuttles/UI/ShuttleMapControl.xaml.cs +++ b/Content.Client/Shuttles/UI/ShuttleMapControl.xaml.cs @@ -124,7 +124,7 @@ public sealed partial class ShuttleMapControl : BaseShuttleControl else { // We'll send the "adjusted" position and server will adjust it back when relevant. - var mapCoords = new MapCoordinates(InverseMapPosition(args.RelativePosition), ViewingMap); + var mapCoords = new MapCoordinates(InverseMapPosition(args.RelativePixelPosition), ViewingMap); RequestFTL?.Invoke(mapCoords, _ftlAngle); } } @@ -180,7 +180,7 @@ public sealed partial class ShuttleMapControl : BaseShuttleControl // Remove offset so we can floor. var botLeft = new Vector2(0f, 0f); - var topRight = botLeft + Size; + var topRight = botLeft + PixelSize; var flooredBL = botLeft - originBL; From ad8597c19868390c27fe61b4af6f927113362bf2 Mon Sep 17 00:00:00 2001 From: PJBot Date: Fri, 5 Dec 2025 15:07:01 +0000 Subject: [PATCH 015/205] Automatic changelog update --- Resources/Changelog/Changelog.yml | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/Resources/Changelog/Changelog.yml b/Resources/Changelog/Changelog.yml index 2b578c8d92..3709531dfe 100644 --- a/Resources/Changelog/Changelog.yml +++ b/Resources/Changelog/Changelog.yml @@ -1,11 +1,4 @@ Entries: -- author: Sparlight - changes: - - message: Dragons no longer destroy non-humanoid mobs upon eating them. - type: Tweak - id: 8754 - time: '2025-07-09T12:43:35.0000000+00:00' - url: https://github.com/space-wizards/space-station-14/pull/38087 - author: Crude Oil changes: - message: Parrots now parrot nearby speech, sometimes even using the radio if they @@ -3919,3 +3912,10 @@ id: 9254 time: '2025-12-05T12:36:47.0000000+00:00' url: https://github.com/space-wizards/space-station-14/pull/41723 +- author: PJB3005 + changes: + - message: Fixed shuttle FTL screen for people with UI scale above 100% + type: Fix + id: 9255 + time: '2025-12-05T15:05:53.0000000+00:00' + url: https://github.com/space-wizards/space-station-14/pull/40933 From e360f6e03a214394f958635a9267fa4cc12faf74 Mon Sep 17 00:00:00 2001 From: B_Kirill <153602297+B-Kirill@users.noreply.github.com> Date: Sat, 6 Dec 2025 01:51:48 +1000 Subject: [PATCH 016/205] Remove static IoC from Replay and Shared EntryPoint (#41707) --- Content.Replay/EntryPoint.cs | 4 ++-- Content.Shared/Entry/EntryPoint.cs | 15 ++++++++------- 2 files changed, 10 insertions(+), 9 deletions(-) diff --git a/Content.Replay/EntryPoint.cs b/Content.Replay/EntryPoint.cs index ed6460a7e7..6a6658f5ef 100644 --- a/Content.Replay/EntryPoint.cs +++ b/Content.Replay/EntryPoint.cs @@ -19,8 +19,8 @@ public sealed class EntryPoint : GameClient public override void Init() { base.Init(); - IoCManager.BuildGraph(); - IoCManager.InjectDependencies(this); + Dependencies.BuildGraph(); + Dependencies.InjectDependencies(this); } public override void PostInit() diff --git a/Content.Shared/Entry/EntryPoint.cs b/Content.Shared/Entry/EntryPoint.cs index db8d6a6abd..1b5755dd66 100644 --- a/Content.Shared/Entry/EntryPoint.cs +++ b/Content.Shared/Entry/EntryPoint.cs @@ -2,7 +2,6 @@ using System.Diagnostics.CodeAnalysis; using System.IO; using System.Linq; using Content.Shared.Humanoid.Markings; -using Content.Shared.IoC; using Content.Shared.Maps; using Robust.Shared; using Robust.Shared.Configuration; @@ -21,12 +20,15 @@ namespace Content.Shared.Entry [Dependency] private readonly IPrototypeManager _prototypeManager = default!; [Dependency] private readonly ITileDefinitionManager _tileDefinitionManager = default!; [Dependency] private readonly IResourceManager _resMan = default!; +#if DEBUG + [Dependency] private readonly IConfigurationManager _configurationManager = default!; +#endif private readonly ResPath _ignoreFileDirectory = new("/IgnoredPrototypes/"); public override void PreInit() { - IoCManager.InjectDependencies(this); + Dependencies.InjectDependencies(this); } public override void Shutdown() @@ -44,13 +46,12 @@ namespace Content.Shared.Entry base.PostInit(); InitTileDefinitions(); - IoCManager.Resolve().Initialize(); + Dependencies.Resolve().Initialize(); #if DEBUG - var configMan = IoCManager.Resolve(); - configMan.OverrideDefault(CVars.NetFakeLagMin, 0.075f); - configMan.OverrideDefault(CVars.NetFakeLoss, 0.005f); - configMan.OverrideDefault(CVars.NetFakeDuplicates, 0.005f); + _configurationManager.OverrideDefault(CVars.NetFakeLagMin, 0.075f); + _configurationManager.OverrideDefault(CVars.NetFakeLoss, 0.005f); + _configurationManager.OverrideDefault(CVars.NetFakeDuplicates, 0.005f); #endif } From fca8d95f03d069518f14fc73720238e2e6dcf93d Mon Sep 17 00:00:00 2001 From: B_Kirill <153602297+B-Kirill@users.noreply.github.com> Date: Sat, 6 Dec 2025 01:53:07 +1000 Subject: [PATCH 017/205] Cleanup warnings: CS0114, CS0414, CS0618 (#41578) * Cleanup * Revert --- .../Administration/UI/CustomControls/AdminLogLabel.cs | 2 +- Content.Client/UserInterface/RichText/MonoTag.cs | 2 +- Content.Client/UserInterface/RichText/ScrambleTag.cs | 2 +- Content.Shared/Throwing/ThrowingSystem.cs | 1 - 4 files changed, 3 insertions(+), 4 deletions(-) diff --git a/Content.Client/Administration/UI/CustomControls/AdminLogLabel.cs b/Content.Client/Administration/UI/CustomControls/AdminLogLabel.cs index 0de38ce234..eb2281cf7b 100644 --- a/Content.Client/Administration/UI/CustomControls/AdminLogLabel.cs +++ b/Content.Client/Administration/UI/CustomControls/AdminLogLabel.cs @@ -15,7 +15,7 @@ public sealed class AdminLogLabel : RichTextLabel OnVisibilityChanged += VisibilityChanged; } - public SharedAdminLog Log { get; } + public new SharedAdminLog Log { get; } public HSeparator Separator { get; } diff --git a/Content.Client/UserInterface/RichText/MonoTag.cs b/Content.Client/UserInterface/RichText/MonoTag.cs index d97997dc83..5f66217a36 100644 --- a/Content.Client/UserInterface/RichText/MonoTag.cs +++ b/Content.Client/UserInterface/RichText/MonoTag.cs @@ -10,7 +10,7 @@ namespace Content.Client.UserInterface.RichText; /// /// Sets the font to a monospaced variant /// -public sealed class MonoTag : IMarkupTag +public sealed class MonoTag : IMarkupTagHandler { public static readonly ProtoId MonoFont = "Monospace"; diff --git a/Content.Client/UserInterface/RichText/ScrambleTag.cs b/Content.Client/UserInterface/RichText/ScrambleTag.cs index a93af993ca..353a9c9533 100644 --- a/Content.Client/UserInterface/RichText/ScrambleTag.cs +++ b/Content.Client/UserInterface/RichText/ScrambleTag.cs @@ -10,7 +10,7 @@ namespace Content.Client.UserInterface.RichText; /// Adds a specified length of random characters that scramble at a set rate. /// [UsedImplicitly] -public sealed class ScrambleTag : IMarkupTag +public sealed class ScrambleTag : IMarkupTagHandler { [Dependency] private readonly IGameTiming _timing = default!; diff --git a/Content.Shared/Throwing/ThrowingSystem.cs b/Content.Shared/Throwing/ThrowingSystem.cs index 61ea2de26c..c3ea10822e 100644 --- a/Content.Shared/Throwing/ThrowingSystem.cs +++ b/Content.Shared/Throwing/ThrowingSystem.cs @@ -37,7 +37,6 @@ public sealed class ThrowingSystem : EntitySystem [Dependency] private readonly SharedCameraRecoilSystem _recoil = default!; [Dependency] private readonly ISharedAdminLogManager _adminLogger = default!; [Dependency] private readonly IConfigurationManager _configManager = default!; - [Dependency] private readonly AnchorableSystem _anchorable = default!; private EntityQuery _anchorableQuery; From 3b69c10fc8a7a79274abe0b9151d9edb5d250212 Mon Sep 17 00:00:00 2001 From: SlamBamActionman <83650252+SlamBamActionman@users.noreply.github.com> Date: Fri, 5 Dec 2025 18:01:20 +0100 Subject: [PATCH 018/205] Replace Vestine-derivatives in plant mutations, change uplink prices & hypopen to reflect changes (#41716) * Initial commit * It's a toxin! * Review changes * Review changes --- .../Prototypes/Catalog/Fills/Boxes/syndicate.yml | 2 +- Resources/Prototypes/Catalog/uplink_catalog.yml | 8 ++++---- .../Objects/Specific/Medical/hypospray.yml | 4 ++-- .../Prototypes/Hydroponics/randomChemicals.yml | 16 ++++++++++++---- 4 files changed, 19 insertions(+), 11 deletions(-) diff --git a/Resources/Prototypes/Catalog/Fills/Boxes/syndicate.yml b/Resources/Prototypes/Catalog/Fills/Boxes/syndicate.yml index 288c085d8c..acfbb64a38 100644 --- a/Resources/Prototypes/Catalog/Fills/Boxes/syndicate.yml +++ b/Resources/Prototypes/Catalog/Fills/Boxes/syndicate.yml @@ -30,10 +30,10 @@ - id: Dropper # It would be cool to have special "syndicate" chemical analysis goggles - id: ClothingEyesGlassesChemical + - id: SyringeStimulants - id: VestineChemistryVial amount: 2 - id: BaseChemistryEmptyVial - - id: SyringeStimulants - type: entity parent: [BoxCardboard, BaseSyndicateContraband] diff --git a/Resources/Prototypes/Catalog/uplink_catalog.yml b/Resources/Prototypes/Catalog/uplink_catalog.yml index 7c926a2931..3a3882eae0 100644 --- a/Resources/Prototypes/Catalog/uplink_catalog.yml +++ b/Resources/Prototypes/Catalog/uplink_catalog.yml @@ -666,9 +666,9 @@ productEntity: ChemicalSynthesisKit discountCategory: usualDiscounts discountDownTo: - Telecrystal: 3 + Telecrystal: 2 cost: - Telecrystal: 4 + Telecrystal: 3 categories: - UplinkChemicals @@ -699,9 +699,9 @@ productEntity: ChemistryBottleNocturine discountCategory: usualDiscounts discountDownTo: - Telecrystal: 3 + Telecrystal: 2 cost: - Telecrystal: 6 + Telecrystal: 4 categories: - UplinkChemicals diff --git a/Resources/Prototypes/Entities/Objects/Specific/Medical/hypospray.yml b/Resources/Prototypes/Entities/Objects/Specific/Medical/hypospray.yml index d934d65778..876518d61e 100644 --- a/Resources/Prototypes/Entities/Objects/Specific/Medical/hypospray.yml +++ b/Resources/Prototypes/Entities/Objects/Specific/Medical/hypospray.yml @@ -659,7 +659,7 @@ maxVol: 10 - type: RefillableSolution solution: hypospray - refillTime: 1.25 + refillTime: 0.75 maxRefill: 5 - type: ExaminableSolution solution: hypospray @@ -667,7 +667,7 @@ exactVolume: true - type: Hypospray onlyAffectsMobs: false - drawTime: 1.25 + drawTime: 0.75 - type: UseDelay delay: 0.5 - type: StaticPrice # A new shitcurity meta diff --git a/Resources/Prototypes/Hydroponics/randomChemicals.yml b/Resources/Prototypes/Hydroponics/randomChemicals.yml index 7b2fdf3a2c..bdafb60087 100644 --- a/Resources/Prototypes/Hydroponics/randomChemicals.yml +++ b/Resources/Prototypes/Hydroponics/randomChemicals.yml @@ -5,11 +5,11 @@ weight: 0.5 reagents: - Omnizine - - Nocturine - - Lexorin + - Impedrezene + - Fresium + - HeartbreakerToxin - Honk - BuzzochloricBees - - Stimulants - quantity: 5 weight: 1 reagents: @@ -31,6 +31,9 @@ - ChangelingSting - CogChamp - JuiceThatMakesYouWeh + - TearGas + - Lipolicide + - Benzene - quantity: 5 weight: 2 reagents: @@ -57,6 +60,8 @@ - Cola - Diphenhydramine - Iron + - Bleach + - Mannitol - quantity: 10 weight: 3 reagents: @@ -78,7 +83,7 @@ - Ash - SodiumCarbonate - SpaceDrugs - - MuteToxin + - SpaceGlue - JuiceBerryPoison - Pilk - Posca @@ -91,6 +96,9 @@ - Potassium - Fluorine - Aluminium + - Wine + - Coffee + - Beer - quantity: 10 weight: 3.5 reagents: From ce0126b725ea89a10028646b63004d6424105b17 Mon Sep 17 00:00:00 2001 From: PJBot Date: Fri, 5 Dec 2025 17:15:12 +0000 Subject: [PATCH 019/205] Automatic changelog update --- Resources/Changelog/Changelog.yml | 28 +++++++++++++++++----------- 1 file changed, 17 insertions(+), 11 deletions(-) diff --git a/Resources/Changelog/Changelog.yml b/Resources/Changelog/Changelog.yml index 3709531dfe..8f4bfc3653 100644 --- a/Resources/Changelog/Changelog.yml +++ b/Resources/Changelog/Changelog.yml @@ -1,15 +1,4 @@ Entries: -- author: Crude Oil - changes: - - message: Parrots now parrot nearby speech, sometimes even using the radio if they - have one equipped - type: Add - - message: Polly the Parrot, CE's pet parrot, may be found on some maps parroting - things into an engineering headset. - type: Add - id: 8755 - time: '2025-07-09T19:04:58.0000000+00:00' - url: https://github.com/space-wizards/space-station-14/pull/38243 - author: slarticodefast changes: - message: Added VV buttons to the solution editor. @@ -3919,3 +3908,20 @@ id: 9255 time: '2025-12-05T15:05:53.0000000+00:00' url: https://github.com/space-wizards/space-station-14/pull/40933 +- author: SlamBamActionman + changes: + - message: Added Impedrezene, Fresium, Heartbreaker, Benzene, Tear Gas, Bleach, + Mannitol, Lipolicide, Wine, Beer, Coffee and Space Glue to random plant reagent + mutations. + type: Add + - message: Removed Nocturine, Lexorin and Hyperzine from random plant reagent mutations. + type: Remove + - message: Lowered Chemical Synthesis Kit uplink cost from 4 TC to 3 TC. + type: Tweak + - message: Lowered Nocturine Bottle's uplink cost from 6 TC to 4 TC. + type: Tweak + - message: Lowered the hypopen refill delay from 1.25s to 0.75s. + type: Tweak + id: 9256 + time: '2025-12-05T17:14:05.0000000+00:00' + url: https://github.com/space-wizards/space-station-14/pull/41716 From 8054071c325d730d3c0f112c93f174a896897df7 Mon Sep 17 00:00:00 2001 From: Princess Cheeseballs <66055347+Princess-Cheeseballs@users.noreply.github.com> Date: Fri, 5 Dec 2025 09:21:47 -0800 Subject: [PATCH 020/205] Vestine now Mutates Plants to Produce Vestine (#41731) * ready freddy! * remove that shit * fsasfaf --------- Co-authored-by: Princess Cheeseballs <66055347+Pronana@users.noreply.github.com> --- Content.Server/Botany/SeedPrototype.cs | 11 +++----- .../Botany/Systems/BotanySystem.Produce.cs | 6 ++--- .../PlantMutateChemicalsEntityEffectSystem.cs | 11 ++++---- .../PlantMutateChemicalsEntityEffect.cs | 26 +++++++++++++++++++ .../guidebook/entity-effects/effects.ftl | 6 +++++ .../Hydroponics/randomChemicals.yml | 20 ++++++++++++++ Resources/Prototypes/Reagents/toxins.yml | 3 +++ 7 files changed, 68 insertions(+), 15 deletions(-) diff --git a/Content.Server/Botany/SeedPrototype.cs b/Content.Server/Botany/SeedPrototype.cs index 253eea2df9..a01d96a878 100644 --- a/Content.Server/Botany/SeedPrototype.cs +++ b/Content.Server/Botany/SeedPrototype.cs @@ -1,9 +1,6 @@ -using Content.Server.Botany.Components; -using Content.Server.Botany.Systems; -using Content.Server.EntityEffects.Effects.Botany; using Content.Shared.Atmos; using Content.Shared.Database; -using Content.Shared.EntityEffects; +using Content.Shared.FixedPoint; using Content.Shared.Random; using Robust.Shared.Audio; using Robust.Shared.Prototypes; @@ -61,18 +58,18 @@ public partial struct SeedChemQuantity /// /// Minimum amount of chemical that is added to produce, regardless of the potency /// - [DataField("Min")] public int Min; + [DataField("Min")] public FixedPoint2 Min = FixedPoint2.Epsilon; /// /// Maximum amount of chemical that can be produced after taking plant potency into account. /// - [DataField("Max")] public int Max; + [DataField("Max")] public FixedPoint2 Max; /// /// When chemicals are added to produce, the potency of the seed is divided with this value. Final chemical amount is the result plus the `Min` value. /// Example: PotencyDivisor of 20 with seed potency of 55 results in 2.75, 55/20 = 2.75. If minimum is 1 then final result will be 3.75 of that chemical, 55/20+1 = 3.75. /// - [DataField("PotencyDivisor")] public int PotencyDivisor; + [DataField("PotencyDivisor")] public float PotencyDivisor; /// /// Inherent chemical is one that is NOT result of mutation or crossbreeding. These chemicals are removed if species mutation is executed. diff --git a/Content.Server/Botany/Systems/BotanySystem.Produce.cs b/Content.Server/Botany/Systems/BotanySystem.Produce.cs index 7d8f8652c7..bba3c48b86 100644 --- a/Content.Server/Botany/Systems/BotanySystem.Produce.cs +++ b/Content.Server/Botany/Systems/BotanySystem.Produce.cs @@ -29,10 +29,10 @@ public sealed partial class BotanySystem solutionContainer.RemoveAllSolution(); foreach (var (chem, quantity) in seed.Chemicals) { - var amount = FixedPoint2.New(quantity.Min); + var amount = quantity.Min; if (quantity.PotencyDivisor > 0 && seed.Potency > 0) - amount += FixedPoint2.New(seed.Potency / quantity.PotencyDivisor); - amount = FixedPoint2.New(MathHelper.Clamp(amount.Float(), quantity.Min, quantity.Max)); + amount += seed.Potency / quantity.PotencyDivisor; + amount = FixedPoint2.Clamp(amount, quantity.Min, quantity.Max); solutionContainer.MaxVolume += amount; solutionContainer.AddReagent(chem, amount); } diff --git a/Content.Server/EntityEffects/Effects/Botany/PlantMutateChemicalsEntityEffectSystem.cs b/Content.Server/EntityEffects/Effects/Botany/PlantMutateChemicalsEntityEffectSystem.cs index 120ae6e881..d5589966b1 100644 --- a/Content.Server/EntityEffects/Effects/Botany/PlantMutateChemicalsEntityEffectSystem.cs +++ b/Content.Server/EntityEffects/Effects/Botany/PlantMutateChemicalsEntityEffectSystem.cs @@ -2,6 +2,7 @@ using Content.Server.Botany; using Content.Server.Botany.Components; using Content.Shared.EntityEffects; using Content.Shared.EntityEffects.Effects.Botany; +using Content.Shared.FixedPoint; using Robust.Shared.Prototypes; using Robust.Shared.Random; @@ -23,7 +24,7 @@ public sealed partial class PlantMutateChemicalsEntityEffectSystem : EntityEffec // Add a random amount of a random chemical to this set of chemicals var pick = _random.Pick(randomChems); var chemicalId = _random.Pick(pick.Reagents); - var amount = _random.Next(1, (int)pick.Quantity); + var amount = _random.NextFloat(0.1f, (float)pick.Quantity); var seedChemQuantity = new SeedChemQuantity(); if (chemicals.ContainsKey(chemicalId)) { @@ -32,12 +33,12 @@ public sealed partial class PlantMutateChemicalsEntityEffectSystem : EntityEffec } else { - seedChemQuantity.Min = 1; - seedChemQuantity.Max = 1 + amount; + seedChemQuantity.Min = FixedPoint2.Epsilon; + seedChemQuantity.Max = FixedPoint2.Zero + amount; seedChemQuantity.Inherent = false; } - var potencyDivisor = (int)Math.Ceiling(100.0f / seedChemQuantity.Max); - seedChemQuantity.PotencyDivisor = potencyDivisor; + var potencyDivisor = 100f / seedChemQuantity.Max; + seedChemQuantity.PotencyDivisor = (float) potencyDivisor; chemicals[chemicalId] = seedChemQuantity; } } diff --git a/Content.Shared/EntityEffects/Effects/Botany/PlantMutateChemicalsEntityEffect.cs b/Content.Shared/EntityEffects/Effects/Botany/PlantMutateChemicalsEntityEffect.cs index 6a3d13e0c6..df119c6e40 100644 --- a/Content.Shared/EntityEffects/Effects/Botany/PlantMutateChemicalsEntityEffect.cs +++ b/Content.Shared/EntityEffects/Effects/Botany/PlantMutateChemicalsEntityEffect.cs @@ -1,3 +1,4 @@ +using Content.Shared.Localizations; using Content.Shared.Random; using Robust.Shared.Prototypes; @@ -13,4 +14,29 @@ public sealed partial class PlantMutateChemicals : EntityEffectBase [DataField] public ProtoId RandomPickBotanyReagent = "RandomPickBotanyReagent"; + + /// + public override string EntityEffectGuidebookText(IPrototypeManager prototype, IEntitySystemManager entSys) + { + var list = new List(); + + // If your table doesn't exist, no guidebook for you! + if (!prototype.Resolve(RandomPickBotanyReagent, out var table)) + return string.Empty; + + foreach (var fill in table.Fills) + { + foreach (var reagent in fill.Reagents) + { + if (!prototype.Resolve(reagent, out var proto)) + continue; + + list.Add(proto.LocalizedName); + } + } + + var names = ContentLocalizationManager.FormatListToOr(list); + + return Loc.GetString("entity-effect-guidebook-plant-mutate-chemicals", ("chance", Probability), ("name", names)); + } } diff --git a/Resources/Locale/en-US/guidebook/entity-effects/effects.ftl b/Resources/Locale/en-US/guidebook/entity-effects/effects.ftl index bbfaca7ee9..fccc6291a8 100644 --- a/Resources/Locale/en-US/guidebook/entity-effects/effects.ftl +++ b/Resources/Locale/en-US/guidebook/entity-effects/effects.ftl @@ -512,3 +512,9 @@ entity-effect-guidebook-plant-seeds-remove = [1] Removes the *[other] remove the } seeds of the plant + +entity-effect-guidebook-plant-mutate-chemicals = + { $chance -> + [1] Mutates + *[other] mutate + } a plant to produce {$name} diff --git a/Resources/Prototypes/Hydroponics/randomChemicals.yml b/Resources/Prototypes/Hydroponics/randomChemicals.yml index bdafb60087..52f66ed78f 100644 --- a/Resources/Prototypes/Hydroponics/randomChemicals.yml +++ b/Resources/Prototypes/Hydroponics/randomChemicals.yml @@ -121,3 +121,23 @@ - TableSalt - Chlorine - Mercury + +- type: weightedRandomFillSolution + id: EvilRandomFillSolution + fills: + - quantity: 0.1 # Common but low quantity + weight: 20 + reagents: + - Vestine + - quantity: 0.5 # High quantity but uncommon + weight: 10 + reagents: + - Stimulants + - MuteToxin + - quantity: 0.5 # High quantity but very rare + weight: 1 + reagents: + - Tazinide + - Lead + - Nocturine + - Lexorin diff --git a/Resources/Prototypes/Reagents/toxins.yml b/Resources/Prototypes/Reagents/toxins.yml index 79f8e5cc29..baf39989b8 100644 --- a/Resources/Prototypes/Reagents/toxins.yml +++ b/Resources/Prototypes/Reagents/toxins.yml @@ -639,6 +639,9 @@ contrabandSeverity: Syndicate flavor: medicine color: "#435166" + plantMetabolism: + - !type:PlantMutateChemicals + randomPickBotanyReagent: EvilRandomFillSolution metabolisms: Poison: effects: From 92263d24302d511cb86ea41d7d5e00418a3ce498 Mon Sep 17 00:00:00 2001 From: PJBot Date: Fri, 5 Dec 2025 17:34:59 +0000 Subject: [PATCH 021/205] Automatic changelog update --- Resources/Changelog/Changelog.yml | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/Resources/Changelog/Changelog.yml b/Resources/Changelog/Changelog.yml index 8f4bfc3653..d52c2cf2a4 100644 --- a/Resources/Changelog/Changelog.yml +++ b/Resources/Changelog/Changelog.yml @@ -1,11 +1,4 @@ Entries: -- author: slarticodefast - changes: - - message: Added VV buttons to the solution editor. - type: Add - id: 8756 - time: '2025-07-10T06:31:39.0000000+00:00' - url: https://github.com/space-wizards/space-station-14/pull/38889 - author: Toby222 changes: - message: pAIs can emote like borgs now @@ -3925,3 +3918,10 @@ id: 9256 time: '2025-12-05T17:14:05.0000000+00:00' url: https://github.com/space-wizards/space-station-14/pull/41716 +- author: Princess-Cheeseballs + changes: + - message: Vestine can now be used to mutate plants into producing syndicate chems. + type: Add + id: 9257 + time: '2025-12-05T17:33:52.0000000+00:00' + url: https://github.com/space-wizards/space-station-14/pull/41731 From 9268cec0c98ad7c8cb1c4c40c95999bdb696b56d Mon Sep 17 00:00:00 2001 From: slarticodefast <161409025+slarticodefast@users.noreply.github.com> Date: Fri, 5 Dec 2025 21:46:38 +0100 Subject: [PATCH 022/205] Predict ReactionMixerSystem (#41218) * predict * documentation * review --- .../EntitySystems/ReactionMixerSystem.cs | 81 ------------- .../Reaction/ReactionMixerComponent.cs | 31 +++-- .../Chemistry/Reaction/ReactionMixerSystem.cs | 109 ++++++++++++++++++ 3 files changed, 122 insertions(+), 99 deletions(-) delete mode 100644 Content.Server/Chemistry/EntitySystems/ReactionMixerSystem.cs create mode 100644 Content.Shared/Chemistry/Reaction/ReactionMixerSystem.cs diff --git a/Content.Server/Chemistry/EntitySystems/ReactionMixerSystem.cs b/Content.Server/Chemistry/EntitySystems/ReactionMixerSystem.cs deleted file mode 100644 index ee99418970..0000000000 --- a/Content.Server/Chemistry/EntitySystems/ReactionMixerSystem.cs +++ /dev/null @@ -1,81 +0,0 @@ -using Content.Shared.Chemistry.Components; -using Content.Shared.Chemistry.Reaction; -using Content.Shared.DoAfter; -using Content.Shared.IdentityManagement; -using Content.Shared.Interaction; -using Content.Shared.Nutrition.EntitySystems; -using Content.Shared.Chemistry.EntitySystems; -using Content.Server.Popups; - -namespace Content.Server.Chemistry.EntitySystems; - -public sealed partial class ReactionMixerSystem : EntitySystem -{ - [Dependency] private readonly PopupSystem _popup = default!; - [Dependency] private readonly SharedSolutionContainerSystem _solutionContainers = default!; - [Dependency] private readonly SharedDoAfterSystem _doAfterSystem = default!; - - public override void Initialize() - { - base.Initialize(); - - SubscribeLocalEvent(OnAfterInteract, before: [typeof(IngestionSystem)]); - SubscribeLocalEvent(OnShake); - SubscribeLocalEvent(OnDoAfter); - } - - private void OnAfterInteract(Entity entity, ref AfterInteractEvent args) - { - if (!args.Target.HasValue || !args.CanReach || !entity.Comp.MixOnInteract) - return; - - if (!MixAttempt(entity, args.Target.Value, out _)) - return; - - var doAfterArgs = new DoAfterArgs(EntityManager, args.User, entity.Comp.TimeToMix, new ReactionMixDoAfterEvent(), entity, args.Target.Value, entity); - - _doAfterSystem.TryStartDoAfter(doAfterArgs); - args.Handled = true; - } - - private void OnDoAfter(Entity entity, ref ReactionMixDoAfterEvent args) - { - //Do again to get the solution again - if (!MixAttempt(entity, args.Target!.Value, out var solution)) - return; - - _popup.PopupEntity(Loc.GetString(entity.Comp.MixMessage, ("mixed", Identity.Entity(args.Target!.Value, EntityManager)), ("mixer", Identity.Entity(entity.Owner, EntityManager))), args.User, args.User); - - _solutionContainers.UpdateChemicals(solution!.Value, true, entity.Comp); - - var afterMixingEvent = new AfterMixingEvent(entity, args.Target!.Value); - RaiseLocalEvent(entity, afterMixingEvent); - } - - private void OnShake(Entity entity, ref ShakeEvent args) - { - if (!MixAttempt(entity, entity, out var solution)) - return; - - _solutionContainers.UpdateChemicals(solution!.Value, true, entity.Comp); - - var afterMixingEvent = new AfterMixingEvent(entity, entity); - RaiseLocalEvent(entity, afterMixingEvent); - } - - private bool MixAttempt(EntityUid ent, EntityUid target, out Entity? solution) - { - solution = null; - var mixAttemptEvent = new MixingAttemptEvent(ent); - RaiseLocalEvent(ent, ref mixAttemptEvent); - if (mixAttemptEvent.Cancelled) - { - return false; - } - - if (!_solutionContainers.TryGetMixableSolution(target, out solution, out _)) - return false; - - return true; - } -} diff --git a/Content.Shared/Chemistry/Reaction/ReactionMixerComponent.cs b/Content.Shared/Chemistry/Reaction/ReactionMixerComponent.cs index 8edfa44ce8..25fda25607 100644 --- a/Content.Shared/Chemistry/Reaction/ReactionMixerComponent.cs +++ b/Content.Shared/Chemistry/Reaction/ReactionMixerComponent.cs @@ -1,48 +1,43 @@ -using Content.Shared.Chemistry.Components; using Content.Shared.DoAfter; +using Robust.Shared.GameStates; using Robust.Shared.Prototypes; using Robust.Shared.Serialization; namespace Content.Shared.Chemistry.Reaction; -[RegisterComponent] +[RegisterComponent, NetworkedComponent, AutoGenerateComponentState] public sealed partial class ReactionMixerComponent : Component { /// - /// A list of IDs for categories of reactions that can be mixed (i.e. HOLY for a bible, DRINK for a spoon) + /// A list of IDs for categories of reactions that can be mixed (i.e. HOLY for a bible, DRINK for a spoon). /// - [ViewVariables] - [DataField] - public List> ReactionTypes = default!; + [DataField, AutoNetworkedField] + public List> ReactionTypes = new(); /// - /// A string which identifies the string to be sent when successfully mixing a solution + /// The popup message when successfully mixing a solution. /// - [ViewVariables] - [DataField] + [DataField, AutoNetworkedField] public LocId MixMessage = "default-mixing-success"; /// - /// Defines if interacting is enough to mix with this component + /// Defines if interacting is enough to mix with this component. /// - [ViewVariables] - [DataField] + [DataField, AutoNetworkedField] public bool MixOnInteract = true; /// - /// How long it takes to mix with this + /// How long it takes to mix with this. /// - [ViewVariables] - [DataField] + [DataField, AutoNetworkedField] public TimeSpan TimeToMix = TimeSpan.Zero; } [ByRefEvent] public record struct MixingAttemptEvent(EntityUid Mixed, bool Cancelled = false); +[ByRefEvent] public readonly record struct AfterMixingEvent(EntityUid Mixed, EntityUid Mixer); [Serializable, NetSerializable] -public sealed partial class ReactionMixDoAfterEvent : SimpleDoAfterEvent -{ -} +public sealed partial class ReactionMixDoAfterEvent : SimpleDoAfterEvent; diff --git a/Content.Shared/Chemistry/Reaction/ReactionMixerSystem.cs b/Content.Shared/Chemistry/Reaction/ReactionMixerSystem.cs new file mode 100644 index 0000000000..4bc878a42f --- /dev/null +++ b/Content.Shared/Chemistry/Reaction/ReactionMixerSystem.cs @@ -0,0 +1,109 @@ +using Content.Shared.Chemistry.Components; +using Content.Shared.DoAfter; +using Content.Shared.IdentityManagement; +using Content.Shared.Interaction; +using Content.Shared.Nutrition.EntitySystems; +using Content.Shared.Chemistry.EntitySystems; +using Content.Shared.Popups; + +namespace Content.Shared.Chemistry.Reaction; + +public sealed partial class ReactionMixerSystem : EntitySystem +{ + [Dependency] private readonly SharedPopupSystem _popup = default!; + [Dependency] private readonly SharedSolutionContainerSystem _solutionContainer = default!; + [Dependency] private readonly SharedDoAfterSystem _doAfter = default!; + + public override void Initialize() + { + base.Initialize(); + + SubscribeLocalEvent(OnAfterInteract, before: [typeof(IngestionSystem)]); + SubscribeLocalEvent(OnShake); + SubscribeLocalEvent(OnDoAfter); + } + + private void OnAfterInteract(Entity ent, ref AfterInteractEvent args) + { + if (!args.Target.HasValue || !args.CanReach || !ent.Comp.MixOnInteract) + return; + + if (!CanMix(ent.AsNullable(), args.Target.Value)) + return; + + var doAfterArgs = new DoAfterArgs(EntityManager, args.User, ent.Comp.TimeToMix, new ReactionMixDoAfterEvent(), ent, args.Target.Value, ent); + + _doAfter.TryStartDoAfter(doAfterArgs); + args.Handled = true; + } + + private void OnDoAfter(Entity ent, ref ReactionMixDoAfterEvent args) + { + if (args.Target == null) + return; + + if (!TryMix(ent.AsNullable(), args.Target.Value)) + return; + + _popup.PopupClient( + Loc.GetString( + ent.Comp.MixMessage, + ("mixed", Identity.Entity(args.Target.Value, EntityManager)), + ("mixer", Identity.Entity(ent.Owner, EntityManager))), + args.User, + args.User); + } + + private void OnShake(Entity ent, ref ShakeEvent args) + { + TryMix(ent.AsNullable(), ent); + } + + /// + /// Returns true if given reaction mixer is able to mix the solution inside the target entity, false otherwise. + /// + /// The reaction mixer used to cause the reaction. + /// The target solution container with a . + public bool CanMix(Entity ent, EntityUid target) + { + if (!Resolve(ent, ref ent.Comp, false)) // The used entity needs the component to be able to mix a solution + return false; + + var mixAttemptEvent = new MixingAttemptEvent(ent); + RaiseLocalEvent(ent, ref mixAttemptEvent); + if (mixAttemptEvent.Cancelled) + return false; + + if (!_solutionContainer.TryGetMixableSolution(target, out _, out _)) + return false; + + return true; + } + + /// + /// Attempts to mix the solution inside the target entity using the given reaction mixer. + /// + /// The reaction mixer used to cause the reaction. + /// The target solution container with a . + /// If the reaction mixer was able to mix the solution. This does not necessarily mean a reaction took place. + public bool TryMix(Entity ent, EntityUid target) + { + if (!Resolve(ent, ref ent.Comp, false)) + return false; + + var mixAttemptEvent = new MixingAttemptEvent(ent); + RaiseLocalEvent(ent, ref mixAttemptEvent); + if (mixAttemptEvent.Cancelled) + return false; + + if (!_solutionContainer.TryGetMixableSolution(target, out var solutionEnt, out _)) + return false; + + _solutionContainer.UpdateChemicals(solutionEnt.Value, true, ent.Comp); + + var afterMixingEvent = new AfterMixingEvent(ent, target); + RaiseLocalEvent(ent, ref afterMixingEvent); + + return true; + } +} From 432c9578be79b611b9f71ce0337aeee351fc7cbd Mon Sep 17 00:00:00 2001 From: Errant <35878406+Errant-4@users.noreply.github.com> Date: Sat, 6 Dec 2025 16:45:50 +0100 Subject: [PATCH 023/205] move GameMapPrototype and GameMapCondition to shared (#41742) * move GameMapPrototype and GameMapCondition to shared * fix --- Content.Benchmarks/MapLoadBenchmark.cs | 2 +- Content.IntegrationTests/Tests/PostMapInitTest.cs | 2 +- Content.IntegrationTests/Tests/Power/StationPowerTests.cs | 2 +- Content.IntegrationTests/Tests/Station/StationJobsTest.cs | 2 +- Content.MapRenderer/Program.cs | 2 +- Content.MapRenderer/RenderMap.cs | 2 +- Content.Server/Administration/Commands/LoadGameMapCommand.cs | 2 +- Content.Server/GameTicking/Commands/ForceMapCommand.cs | 1 + Content.Server/GameTicking/GameTicker.GamePreset.cs | 1 + Content.Server/GameTicking/GameTicker.RoundFlow.cs | 1 + .../GameTicking/Rules/Components/LoadMapRuleComponent.cs | 3 +-- Content.Server/Maps/Conditions/HolidayMapCondition.cs | 1 + Content.Server/Maps/GameMapManager.cs | 1 + Content.Server/Maps/GameMapPoolPrototype.cs | 1 + Content.Server/Maps/IGameMapManager.cs | 2 ++ Content.Server/Voting/Managers/VoteManager.DefaultVotes.cs | 2 +- {Content.Server => Content.Shared}/Maps/GameMapCondition.cs | 2 +- .../Maps/GameMapPrototype.MapSelection.cs | 2 +- {Content.Server => Content.Shared}/Maps/GameMapPrototype.cs | 2 +- 19 files changed, 20 insertions(+), 13 deletions(-) rename {Content.Server => Content.Shared}/Maps/GameMapCondition.cs (87%) rename {Content.Server => Content.Shared}/Maps/GameMapPrototype.MapSelection.cs (96%) rename {Content.Server => Content.Shared}/Maps/GameMapPrototype.cs (98%) diff --git a/Content.Benchmarks/MapLoadBenchmark.cs b/Content.Benchmarks/MapLoadBenchmark.cs index 3d527953b8..261d408aac 100644 --- a/Content.Benchmarks/MapLoadBenchmark.cs +++ b/Content.Benchmarks/MapLoadBenchmark.cs @@ -5,7 +5,7 @@ using System.Threading.Tasks; using BenchmarkDotNet.Attributes; using Content.IntegrationTests; using Content.IntegrationTests.Pair; -using Content.Server.Maps; +using Content.Shared.Maps; using Robust.Shared; using Robust.Shared.Analyzers; using Robust.Shared.EntitySerialization.Systems; diff --git a/Content.IntegrationTests/Tests/PostMapInitTest.cs b/Content.IntegrationTests/Tests/PostMapInitTest.cs index f75c848377..03502d1bfb 100644 --- a/Content.IntegrationTests/Tests/PostMapInitTest.cs +++ b/Content.IntegrationTests/Tests/PostMapInitTest.cs @@ -5,12 +5,12 @@ using System.Text.RegularExpressions; using YamlDotNet.RepresentationModel; using Content.Server.Administration.Systems; using Content.Server.GameTicking; -using Content.Server.Maps; using Content.Server.Shuttles.Components; using Content.Server.Shuttles.Systems; using Content.Server.Spawners.Components; using Content.Server.Station.Components; using Content.Shared.CCVar; +using Content.Shared.Maps; using Content.Shared.Roles; using Content.Shared.Station.Components; using Robust.Shared.Configuration; diff --git a/Content.IntegrationTests/Tests/Power/StationPowerTests.cs b/Content.IntegrationTests/Tests/Power/StationPowerTests.cs index a2231ce60f..542a4645c6 100644 --- a/Content.IntegrationTests/Tests/Power/StationPowerTests.cs +++ b/Content.IntegrationTests/Tests/Power/StationPowerTests.cs @@ -1,10 +1,10 @@ using System.Collections.Generic; using System.Linq; using Content.Server.GameTicking; -using Content.Server.Maps; using Content.Server.Power.Components; using Content.Server.Power.NodeGroups; using Content.Server.Power.Pow3r; +using Content.Shared.Maps; using Content.Shared.Power.Components; using Content.Shared.NodeContainer; using Robust.Server.GameObjects; diff --git a/Content.IntegrationTests/Tests/Station/StationJobsTest.cs b/Content.IntegrationTests/Tests/Station/StationJobsTest.cs index 3fee4a146c..4abd32bda0 100644 --- a/Content.IntegrationTests/Tests/Station/StationJobsTest.cs +++ b/Content.IntegrationTests/Tests/Station/StationJobsTest.cs @@ -1,8 +1,8 @@ using System.Collections.Generic; using System.Linq; -using Content.Server.Maps; using Content.Server.Station.Components; using Content.Server.Station.Systems; +using Content.Shared.Maps; using Content.Shared.Preferences; using Content.Shared.Roles; using Robust.Shared.GameObjects; diff --git a/Content.MapRenderer/Program.cs b/Content.MapRenderer/Program.cs index 534b12565c..90f97a5786 100644 --- a/Content.MapRenderer/Program.cs +++ b/Content.MapRenderer/Program.cs @@ -7,7 +7,7 @@ using System.Text.Json; using System.Threading.Tasks; using Content.IntegrationTests; using Content.MapRenderer.Painters; -using Content.Server.Maps; +using Content.Shared.Maps; using Robust.Shared.Prototypes; using Robust.UnitTesting.Pool; using SixLabors.ImageSharp; diff --git a/Content.MapRenderer/RenderMap.cs b/Content.MapRenderer/RenderMap.cs index 4ebf4ee5d4..8d6087ec7a 100644 --- a/Content.MapRenderer/RenderMap.cs +++ b/Content.MapRenderer/RenderMap.cs @@ -1,5 +1,5 @@ using System.IO; -using Content.Server.Maps; +using Content.Shared.Maps; using Robust.Shared.Prototypes; using Robust.Shared.Utility; diff --git a/Content.Server/Administration/Commands/LoadGameMapCommand.cs b/Content.Server/Administration/Commands/LoadGameMapCommand.cs index dfe18ea5bc..dc82fccd1e 100644 --- a/Content.Server/Administration/Commands/LoadGameMapCommand.cs +++ b/Content.Server/Administration/Commands/LoadGameMapCommand.cs @@ -1,7 +1,7 @@ using System.Numerics; using Content.Server.GameTicking; -using Content.Server.Maps; using Content.Shared.Administration; +using Content.Shared.Maps; using Robust.Shared.Console; using Robust.Shared.Map; using Robust.Shared.Prototypes; diff --git a/Content.Server/GameTicking/Commands/ForceMapCommand.cs b/Content.Server/GameTicking/Commands/ForceMapCommand.cs index 577464acad..f8553a9244 100644 --- a/Content.Server/GameTicking/Commands/ForceMapCommand.cs +++ b/Content.Server/GameTicking/Commands/ForceMapCommand.cs @@ -3,6 +3,7 @@ using Content.Server.Administration; using Content.Server.Maps; using Content.Shared.Administration; using Content.Shared.CCVar; +using Content.Shared.Maps; using Robust.Shared.Configuration; using Robust.Shared.Console; using Robust.Shared.Prototypes; diff --git a/Content.Server/GameTicking/GameTicker.GamePreset.cs b/Content.Server/GameTicking/GameTicker.GamePreset.cs index 1973daa5a1..4634b7820b 100644 --- a/Content.Server/GameTicking/GameTicker.GamePreset.cs +++ b/Content.Server/GameTicking/GameTicker.GamePreset.cs @@ -4,6 +4,7 @@ using System.Threading.Tasks; using Content.Server.GameTicking.Presets; using Content.Server.Maps; using Content.Shared.CCVar; +using Content.Shared.Maps; using JetBrains.Annotations; using Robust.Shared.Player; diff --git a/Content.Server/GameTicking/GameTicker.RoundFlow.cs b/Content.Server/GameTicking/GameTicker.RoundFlow.cs index 1dadca4c03..6d2f3fac52 100644 --- a/Content.Server/GameTicking/GameTicker.RoundFlow.cs +++ b/Content.Server/GameTicking/GameTicker.RoundFlow.cs @@ -8,6 +8,7 @@ using Content.Server.Roles; using Content.Shared.CCVar; using Content.Shared.Database; using Content.Shared.GameTicking; +using Content.Shared.Maps; using Content.Shared.Mind; using Content.Shared.Players; using Content.Shared.Preferences; diff --git a/Content.Server/GameTicking/Rules/Components/LoadMapRuleComponent.cs b/Content.Server/GameTicking/Rules/Components/LoadMapRuleComponent.cs index f1bd1e5eef..f85a5b8e85 100644 --- a/Content.Server/GameTicking/Rules/Components/LoadMapRuleComponent.cs +++ b/Content.Server/GameTicking/Rules/Components/LoadMapRuleComponent.cs @@ -1,6 +1,5 @@ -using Content.Server.GameTicking.Rules; -using Content.Server.Maps; using Content.Shared.GridPreloader.Prototypes; +using Content.Shared.Maps; using Robust.Shared.Prototypes; using Robust.Shared.Utility; diff --git a/Content.Server/Maps/Conditions/HolidayMapCondition.cs b/Content.Server/Maps/Conditions/HolidayMapCondition.cs index da971c78f3..b7edc3f6c2 100644 --- a/Content.Server/Maps/Conditions/HolidayMapCondition.cs +++ b/Content.Server/Maps/Conditions/HolidayMapCondition.cs @@ -1,5 +1,6 @@ using System.Linq; using Content.Server.Holiday; +using Content.Shared.Maps; namespace Content.Server.Maps.Conditions; diff --git a/Content.Server/Maps/GameMapManager.cs b/Content.Server/Maps/GameMapManager.cs index 9638dffaa7..9914b7bde2 100644 --- a/Content.Server/Maps/GameMapManager.cs +++ b/Content.Server/Maps/GameMapManager.cs @@ -3,6 +3,7 @@ using System.Diagnostics.CodeAnalysis; using System.Linq; using Content.Server.GameTicking; using Content.Shared.CCVar; +using Content.Shared.Maps; using Robust.Server.Player; using Robust.Shared.Configuration; using Robust.Shared.ContentPack; diff --git a/Content.Server/Maps/GameMapPoolPrototype.cs b/Content.Server/Maps/GameMapPoolPrototype.cs index b2ba64a50c..831dea556d 100644 --- a/Content.Server/Maps/GameMapPoolPrototype.cs +++ b/Content.Server/Maps/GameMapPoolPrototype.cs @@ -1,3 +1,4 @@ +using Content.Shared.Maps; using JetBrains.Annotations; using Robust.Shared.Prototypes; using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom.Prototype.Set; diff --git a/Content.Server/Maps/IGameMapManager.cs b/Content.Server/Maps/IGameMapManager.cs index 02433c7b79..d05c42a78c 100644 --- a/Content.Server/Maps/IGameMapManager.cs +++ b/Content.Server/Maps/IGameMapManager.cs @@ -1,3 +1,5 @@ +using Content.Shared.Maps; + namespace Content.Server.Maps; /// diff --git a/Content.Server/Voting/Managers/VoteManager.DefaultVotes.cs b/Content.Server/Voting/Managers/VoteManager.DefaultVotes.cs index 0dd1540933..614a54e0f6 100644 --- a/Content.Server/Voting/Managers/VoteManager.DefaultVotes.cs +++ b/Content.Server/Voting/Managers/VoteManager.DefaultVotes.cs @@ -6,12 +6,12 @@ using Content.Server.Administration.Managers; using Content.Server.Discord.WebhookMessages; using Content.Server.GameTicking; using Content.Server.GameTicking.Presets; -using Content.Server.Maps; using Content.Server.Roles; using Content.Server.RoundEnd; using Content.Shared.CCVar; using Content.Shared.Chat; using Content.Shared.Database; +using Content.Shared.Maps; using Content.Shared.Players; using Content.Shared.Players.PlayTimeTracking; using Content.Shared.Voting; diff --git a/Content.Server/Maps/GameMapCondition.cs b/Content.Shared/Maps/GameMapCondition.cs similarity index 87% rename from Content.Server/Maps/GameMapCondition.cs rename to Content.Shared/Maps/GameMapCondition.cs index 78c5323777..b5d625ffca 100644 --- a/Content.Server/Maps/GameMapCondition.cs +++ b/Content.Shared/Maps/GameMapCondition.cs @@ -1,4 +1,4 @@ -namespace Content.Server.Maps; +namespace Content.Shared.Maps; [ImplicitDataDefinitionForInheritors] public abstract partial class GameMapCondition diff --git a/Content.Server/Maps/GameMapPrototype.MapSelection.cs b/Content.Shared/Maps/GameMapPrototype.MapSelection.cs similarity index 96% rename from Content.Server/Maps/GameMapPrototype.MapSelection.cs rename to Content.Shared/Maps/GameMapPrototype.MapSelection.cs index ff8fd35717..c79d8be5b1 100644 --- a/Content.Server/Maps/GameMapPrototype.MapSelection.cs +++ b/Content.Shared/Maps/GameMapPrototype.MapSelection.cs @@ -1,4 +1,4 @@ -namespace Content.Server.Maps; +namespace Content.Shared.Maps; public sealed partial class GameMapPrototype { diff --git a/Content.Server/Maps/GameMapPrototype.cs b/Content.Shared/Maps/GameMapPrototype.cs similarity index 98% rename from Content.Server/Maps/GameMapPrototype.cs rename to Content.Shared/Maps/GameMapPrototype.cs index df9046652b..fc97376412 100644 --- a/Content.Server/Maps/GameMapPrototype.cs +++ b/Content.Shared/Maps/GameMapPrototype.cs @@ -4,7 +4,7 @@ using Robust.Shared.Utility; using System.Diagnostics; using Content.Shared.Station; -namespace Content.Server.Maps; +namespace Content.Shared.Maps; /// /// Prototype data for a game map. From d54a431584c607bc27f7db72ab0c9fc99d4e90ff Mon Sep 17 00:00:00 2001 From: Samuka <47865393+Samuka-C@users.noreply.github.com> Date: Sat, 6 Dec 2025 15:13:40 -0300 Subject: [PATCH 024/205] Remove explosive component from mothership cpre (#41743) remove explosive comp --- .../Entities/Mobs/Player/mothershipcore.yml | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/Resources/Prototypes/Entities/Mobs/Player/mothershipcore.yml b/Resources/Prototypes/Entities/Mobs/Player/mothershipcore.yml index c66caff638..b66ffb7753 100644 --- a/Resources/Prototypes/Entities/Mobs/Player/mothershipcore.yml +++ b/Resources/Prototypes/Entities/Mobs/Player/mothershipcore.yml @@ -85,11 +85,12 @@ doAfterDelay: 30 # you can heal the mothership core, but it takes a while - type: DamagedSiliconAccent enableChargeCorruption: false - - type: Explosive - explosionType: Default - maxIntensity: 100 - intensitySlope: 2 - totalIntensity: 200 + # TODO: make it explosive again once until issue https://github.com/space-wizards/space-station-14/issues/40606 is fixed + # - type: Explosive + # explosionType: Default + # maxIntensity: 100 + # intensitySlope: 2 + # totalIntensity: 200 - type: SurveillanceCameraSpeaker - type: SurveillanceCameraMonitor - type: RoboticsConsole From 6de6217242d2c101d38e656574228f31177040c7 Mon Sep 17 00:00:00 2001 From: PJBot Date: Sat, 6 Dec 2025 18:27:15 +0000 Subject: [PATCH 025/205] Automatic changelog update --- Resources/Changelog/Changelog.yml | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/Resources/Changelog/Changelog.yml b/Resources/Changelog/Changelog.yml index d52c2cf2a4..7ae77dfe66 100644 --- a/Resources/Changelog/Changelog.yml +++ b/Resources/Changelog/Changelog.yml @@ -1,11 +1,4 @@ Entries: -- author: Toby222 - changes: - - message: pAIs can emote like borgs now - type: Add - id: 8757 - time: '2025-07-10T07:56:17.0000000+00:00' - url: https://github.com/space-wizards/space-station-14/pull/38425 - author: Quantum-cross, slarticodefast changes: - message: The flash effect is now replaced with a reduced motion variant if the @@ -3925,3 +3918,10 @@ id: 9257 time: '2025-12-05T17:33:52.0000000+00:00' url: https://github.com/space-wizards/space-station-14/pull/41731 +- author: Samuka + changes: + - message: Mothership core won't explode when destroyed (until bug is fixed) + type: Tweak + id: 9258 + time: '2025-12-06T18:26:05.0000000+00:00' + url: https://github.com/space-wizards/space-station-14/pull/41743 From 9bd27fd24529b8e8924a86ca3031666647773039 Mon Sep 17 00:00:00 2001 From: August Sun <45527070+august-sun@users.noreply.github.com> Date: Sat, 6 Dec 2025 13:40:37 -0700 Subject: [PATCH 026/205] Adds the sticky grappling hand (#37551) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Adds sprites, entity and sounds for sticky grappling hand * Switched audio to mono * Update Resources/Prototypes/Entities/Objects/Weapons/Guns/Projectiles/projectiles.yml Co-authored-by: āda * Added empty sound, changed yaml to suit conventions, added description --------- Co-authored-by: august-sun <45527070+august.sun@users.noreply.github.com> Co-authored-by: āda Co-authored-by: iaada --- Resources/Audio/Misc/attributions.yml | 15 ++++++++++ Resources/Audio/Misc/boing.ogg | Bin 0 -> 17115 bytes Resources/Audio/Misc/stickystretch.ogg | Bin 0 -> 42452 bytes Resources/Audio/Misc/woosh.ogg | Bin 0 -> 9410 bytes .../Weapons/Guns/Launchers/launchers.yml | 27 +++++++++++++++++ .../Weapons/Guns/Projectiles/projectiles.yml | 11 +++++++ .../Guns/Launchers/sticky_hand.rsi/base.png | Bin 0 -> 407 bytes .../Guns/Launchers/sticky_hand.rsi/hook.png | Bin 0 -> 343 bytes .../Launchers/sticky_hand.rsi/inhand-left.png | Bin 0 -> 354 bytes .../sticky_hand.rsi/inhand-right.png | Bin 0 -> 351 bytes .../Guns/Launchers/sticky_hand.rsi/meta.json | 28 ++++++++++++++++++ .../Guns/Launchers/sticky_hand.rsi/rope.png | Bin 0 -> 130 bytes 12 files changed, 81 insertions(+) create mode 100644 Resources/Audio/Misc/boing.ogg create mode 100644 Resources/Audio/Misc/stickystretch.ogg create mode 100644 Resources/Audio/Misc/woosh.ogg create mode 100644 Resources/Textures/Objects/Weapons/Guns/Launchers/sticky_hand.rsi/base.png create mode 100644 Resources/Textures/Objects/Weapons/Guns/Launchers/sticky_hand.rsi/hook.png create mode 100644 Resources/Textures/Objects/Weapons/Guns/Launchers/sticky_hand.rsi/inhand-left.png create mode 100644 Resources/Textures/Objects/Weapons/Guns/Launchers/sticky_hand.rsi/inhand-right.png create mode 100644 Resources/Textures/Objects/Weapons/Guns/Launchers/sticky_hand.rsi/meta.json create mode 100644 Resources/Textures/Objects/Weapons/Guns/Launchers/sticky_hand.rsi/rope.png diff --git a/Resources/Audio/Misc/attributions.yml b/Resources/Audio/Misc/attributions.yml index 67daaff404..25856d8c93 100644 --- a/Resources/Audio/Misc/attributions.yml +++ b/Resources/Audio/Misc/attributions.yml @@ -57,3 +57,18 @@ license: "CC-BY-SA-3.0" copyright: "Taken from Citadel Station 13" source: "https://github.com/Skyrat-SS13/Skyrat13/commit/2d4f2d1b489590b559e4073f41b126cef56f4c50" + +- files: ["woosh.ogg"] + license: "CC-BY-SA-3.0" + copyright: "Taken from SciFiSounds via freesound.org, edit by august-sun(GitHub)/augustsun(Discord)" + source: "https://freesound.org/people/SciFiSounds/sounds/529925/" + +- files: ["stickystretch.ogg"] + license: "CC-BY-SA-3.0" + copyright: "Taken from sdroliasnick via freesound.org, edit by august-sun(GitHub)/augustsun(Discord)" + source: "https://freesound.org/people/sdroliasnick/sounds/731262/" + +- files: ["boing.ogg"] + license: "CC-BY-SA-3.0" + copyright: "Taken from stevielematt via freesound.org, edit by august-sun(GitHub)/augustsun(Discord)" + source: "https://freesound.org/people/stevielematt/sounds/538066/" diff --git a/Resources/Audio/Misc/boing.ogg b/Resources/Audio/Misc/boing.ogg new file mode 100644 index 0000000000000000000000000000000000000000..1a957104aaf613cafda7f775341f41180e7807ca GIT binary patch literal 17115 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 literal 0 HcmV?d00001 diff --git a/Resources/Audio/Misc/stickystretch.ogg b/Resources/Audio/Misc/stickystretch.ogg new file mode 100644 index 0000000000000000000000000000000000000000..05b0b5935c803ec2b1ee9161aebbbe988fb0856d GIT binary patch literal 42452 zcmb@tcUTi$_b57uN)Z7C5tU{Iq=|xbLXi%F^p1dl^xjKQKvWP^5Ri^EktWh>M4Hlj zkrI&-siB1sLXxw=_x;XyfA>D;{B!3ShP`L)w))y@b~Nqmbf9CB6O(6MxObF#5@wf6Spw{~^D_D|dYTf4KMovxvw zp_IC%kFD@sexY0Zg0}?8PW)XhkDR>qS!hi#BHKXu9~?rD&Oy*|D3psTCVNrEp;yd~nKQ;CQ_TLpXg&wU z%Ll*2sJ>xtSi9s^na&%vI4ZcZ#oKP*q)UMBlok@uXRhXRjD4^`8gT5gr_1 zEpjI>JffGQJRJTxcV3bQ80s%t98f4g6Hvn2bl5VIwS=pZ#<11tYPC_YvwGWKiZ+v4lD94_7XJ z_$~HQ7$$ zSjz}XFXB@;D{FQCj`xpP6qu*>HjB-I9xr~TIMz~`ffDXf>Us~=;k*ASJ~DuBmgCIr zX-_$VV@_HzUe3E5$L1AF8<#2gojZr^Rg9u)L70~I1t z$Jr>+d$KyhY}^|;7K|KwWpV!5{}inMXbuFFCj3Yz^lg$ z06~A+0M+T=W+xcaHyLz_aS3D11#KByX99DRWMe!w-dm}PaaHE`3g$k4V`{?l=1Qw2 zt+?KO?vJvlQ58x)3Sjn*Ll1zu$vqcrWwwfz{myYOT9EQW_;bONm&5vHDX&Mw-=@6$ z?zMI+GpPRH2#=Rjxe)(aTR9hkLLmz9cPgv@^*J(`R0w+d+Vi;}S0ABqnOC0gq+V%zU!^T|K zD*@p8yHR6D!Msr`nxmnLbB3)PxT{8ui;gDGIh_0upu*>QUzOtWyIxst&;zW+ruT5D zL0PWcoIzui+)6D~wd=W~a@@t0qgLt#l^0c2z);321(n0b#l@A(5|rE#hpVbcFn%eR z%Vf=!do+12n7p#;aPkUWZTrI>4#n+Y@&bUMqhQsj!z;md7V93dTt;gL?)G8hXuc{I z>mp&_Bg~n=swx41uN{!&XjOcmhk9|_Mb)FBz~rOGuZk-#>Zk$)9n=eeEA6hVWcCC- z4(F(3219i)JMsbd`;`ph_!@p&>+yG0h=Uq9=aZM)Q}0l6w=svebL29I(Q~&YdD36W zW%i_%YX>FOABQDw*6_23e4$t6<_2zA>lg6l55w|We?t+^ijG5a#~|kLc&lzP6bIlz z_-pNGF%(O29_71%@{zM}^tR|40c8b&Y2 z&0RSP`g(!ca&yPUL0>Q>ptms?546k89kp6HYIi+%*f{EPxVEaw_1pxjC_zvH?c$B2 z1QT?%RSQ77sIqo#Rbcl~A!z2deO#3!>R<4%z zjq5qO#@rCJ3dp}GlnLs^{K?T4|2&x{@ z^6c--Xk2zpszreWlvtVK8%dQ!2_(5 z`EZ@LvS=7DemM&%gQ$!K;7qxd#Rk#nO;!si!MeUIJ|5P2pS`Mqs5=T%+!DoM~ z)-;C;cN82oK7u-SSN>CVR0SI6SS*Z+2dX`4?Adz);t&#rLRrT@i+@uYFnpMGnTIS? z5`vVuj{-}eU57+JO$|GHDAB+`UC#xQ&sWtg#?Ac>pu*>K7F2LMkkR&Mz$y^^7ZBZRGntkkcM29H|Qsf30(Eh`zcYoFNFXL_k zjXx5J!|J0${q_0_ko*2$fbjl9#XbUP$#Lg`9u!ARzZ|Zm`Y+(DDpzj&zeD97>g7L8 z&K?Suw)kH$`5Tk`9qLHpv{kA8wmS+|;?Eu~@^23yfQRj}{sOdBkL31nsKfDq@Lv8G z046$`{0N{eM|u4}fLt&DSk+$unCRcq;V2N)f5gu-@0hIeFBq^rxk`QE#$WxK1@7

6nSVz5cNPEtSN}h!fIfE7P<;JEb;-_9MVyD_H2;wfG69WiNwSWS>Wn>`0N711#vFfR!|cy;gNBUSPKVEQb0i%f($eZWS#&W*kUcPyq(0+%H%ex-i`>mp4n2h+ z@-w#?C>dp*JfVR^Wt3kZgQ!o@u(l}3$namz{+j8gF3Op97lLG;chkRk-o_!Ab&>04 z9(icniDyC3_x^F^`kGLFa?}1cGYUCMIr^uDEHY$NqN20UIA=D(FQsPc=q?}5bGWbm z1*k9qUHS0-{oJ38J&5Yeh0EN6VzMd^fH?*i2eb!_pnmA{$F_^2;*!!ba`zOKRn_ln zY3u$cdl4EMdel}1JVQhO$xpByy@C$&6Ne3>a|;v%Z;;|hbt)=4s%pwAs>-U$YDy}K zD#|LLbod7RQ&G`WQBhY06R6(@Po?njyyasXQ7waRF)6KNkPKYDw*S8UrheRd@BZEu z=7FBoUL(!p0XlJ0T$cwpd@Ojp<-`zv#FRqmU03NBT^^{dZB(5ZVFX>U(Pj|THtY5# zd16gxd3vEIk^TNy6vkTTQz>pUtsq3ZDOlgG)V>w7KY^bwzb!MA>gkIYGJ2>k#vUM zO~K~WZ$XqGL%Jd==|xNm!+FW3Vp0!A_5s_#HSo>Gs}OOa)&BIKd@~)bcpQ>z}^+8y+C@TWiLdNLORboI`ZDZOyn>mKQ5{fU=V=zmT5u~&v-DS^m> zRu#Yg?HGrRMO&o1els>O=@@z!bgds>*TNlt84PFh6c4zh%NDzoF#{ewkTL zlUg~iN7Z=Q}ez2Ohll zgtI%a-Yq|sgkVf*yvXX*RN+6a=c629ySLdR=&6n~j$GdPIWG`pd59g8?%Zm?*{jcq z-x4d<#}3>+cCFzu%0)y-Q<@}(j`9^$)}!?GsnUpT=G`5kvG?v0O&KVqA;+n};EJ)S zcdyd@lGwyEx^X%oh>Du-ZOOjv+%ZC~q4acb2gb_Be>;r5Z~HelddeeMs_$WXX`%sX zttU)#3lW74hEMj?GVP8^6!UhI_;)Z-91q>Bu@V$aOB4k!eun4S?{Io+pEYzpmRHYTGYZSW*L0%)DZ4}IN*hLW`!~?HO?w@TY6L;%Y>ybDw%)X>%;KDQ> zX%Vu0h5l(7XE#ZFMcaRfw|=bGrPT8HUh)$y z>l@f*e@d1^_2$=$%17j}#;-FR9)=cl^#x~GZX;prT|Mqg`AC0Bf(CmY^8=w!e-x!iXyK@f1H zkgd9q?b)-{jH+hEk{cpDd=xJC8}<9}=zY(I(-1^#m-&=DWARd4q))v&m(UmcL!2~8 zt=p2HbL!+U*}%h&z%SLhd^I6LsieRcL!W)A69w(EDiC}7Ip!AnEpv8vUdlkOJt9jf z3q3YEXz8Vak{dUOCJWDcctU1r-C_>trEbm7x|}~w{5Yamv@6?u0kch2xMRGzftgLE z4X%U}h?u~rZ>B%@_uCg7nl|lEfqdbsQ2xbtX11)6_upx~;+wobp)6eLMTd)g`xWXY z7?x*92Z){%G9V`(?%TSkiTNzxza&31DL)q$4g&Y z7T*P8-9&R*_DPpCJy;q#<|q#c;g51G))Je34XGd_(dH8QZxRz{(tX%w0uBW17fhxD z_J|{do)$V_|0r*8A}=Xnq$6`qt!dWBmF!BdLk6F!~JCfa#xaPEGn6_HTV4AR2?J5O^JgTV^jX%;G zQY>V-{Dezw4qgTKCg!8h8+1e}%r3e5g=CrG%&Oi6I0o)0{m2LYG#S(U!;RBU(|MY3 za!gCQ@{I5{!iuIp!BmNkya5yL(8p4%^*W;}qc^r_g^vl1NJsDdSYH%Cl_rbM+&cTF-u;U#|uj`MKlm3T0hF3$jH06F!Qyx@OuCHoFg4By+_yZ{l$3l zGPDmlv`Tn*_ji4RAk+K}0ulE#4V7hHN0cgVAY6(F^p`09i=ANYEj{W#i zVL>|R_3f=j(@nXQ3}UCNVTAe>AN*p5h%3`%tcDoaZKj0YvlF<2Zt7slUWphi;C8xp zcLC46Go%3lyHxq-$6`4tg5d=VlDKs(Hh^twPP<{Qcx`z|UK%OYD3~sRkA>%Pu7I6c zQG={-9(-T&{P$PVC0E!Lcsxzd8|^G?bmSk0rf`|mUzgdrDDy*_mZq%>VRswNEszaO z#OC^jQKTc%7{6THxZ|;%R_Y2qcMNyWa#c-P&BPGGzA}CnSljgx@zkBRNcsv5;~JXV z4|ot_%J-F8Rwl~Qb{8MkB~1T}JcW!?CD`PkU05>i)2*;Tkoh@dl`PB85%0?B1H5(r zbSu$iV+21Fy6FnUcMnC_flzN@Tz67-cU{6^LR`^=V7t{S z%#*E27{Dym>uGn)b-lXziePKj)##M|ep3bN+EQn34$u)&4hnwdZf;J%n}WA{CS8%M1r)SXGd!dxd8FMHI(>5s5(k0^43idG z2Af;9Ua2-Ipt(-R+#;v1LfRxR^u8=e39aHpvAT=bL)>pFcf^titMa>u;*ac!_((LN z(at3BU@CS|uy`%FVCG8)$W0xjV?<1o{oNGdtRc0*GHvgaqH@l|?*?Cl4lo}bID9t4 z3V!|B+y6{jWDrMT;fELkePK2};m8`+>8<&mah8v$Gl$34GjM zYrw0JaCig}<5L|Hg7S;+@6V#13 zQ<>pUFT`&d@KabZ+?6jTeBVIDQk>{leVkh)gke_KJ`1!P5Aje*QKVQ zoW_oXCXy_w47hFq#Ifp8DcVOD)GV0MH=8w{zcq=Cy|7ry%|`=OkhL*?+%iF=QkUGv zh-g~BJaJXtcg)0fX()^iugALWxAG$~XAYO22=<|wy9p~(C4?U#?=O$F6*Y0 zj0K8Ny;}GxcXQboul4~&!`89Ga=g<+aH|eEhe6U}muR~&e;#UP97H^g(jmAZ%>-8$ zuKO;rwh_`z0>^iWHpWwE+L9@s$@DvXAeq-0DCO$@qm@u`I#39QAEpuE(V-$;oh^|s zr-fK{WpqB)lfLnZirR?HEV$0R3!YB@+~TE#M$M)@FztgS#&%6v;9dhIp{G;CDU@U8 zYC;4WBqcX`B70!hgJUlJQGHfPLk{hb$qp`ycT~SPvHAF6sHLcF-%Emg4?+s%4EG;n zc^d#EahE%9`gEVY#%jhNg);fyyVIWx+muniG;EU~8uPZY=RK~sE~PR>m6IJ{!fmgW z5L2=_Qm5kB+p*51HD_)(R;`TGvXskLb#8m#AGe-6%&-qOcVVW<`}-N9`#;uNF$ zFAaDW$l=4c@nsIPg9n%r6^a=au)jk*F+NUfHKWEa>^*lKEAgOg57}K>s5AV^D zs3c>aW@n4Z^bx8zw?<#uy8GE%C!1=+{ey`v5C$jleyRRLTBo|!&GzmIe--{xLFkxhA5w~iw+^0n02QN;j%G&BK1Rj z2GcGR*G6rABQ0oHA!s}oex5xNSk_@!iJW}e6}RMY~qbu@@`?9Y3}-(JmRqe*Z*iA#g4hGbj^3 zNj~Oh_G>_u$RO4m$UB*V2y9zY(k@;r@zkooAr@|$V}mFjJ2YO?A=3E!?(g#r;E zb1%m>{Xtw5?`^`Oq7qy%&8B{9LG0JjM3=-Wl>hKKL6@Bu6X3*0=!;=C=RW&aH5DrM z?+v_e2ygW6g(j^o(p&=yx7je_xy)u^ukAJ!zp!b7X0u4wmy{O$7&&X_oBeyV-_tUd z1p`0Kv;?McO*_3h`E65T@#@GAbCS5X`8hqdrp6fklT*?l!kcJ)&&zP28ht`zXjs#i zC~;nWd$wm^?fqPWg)`||U1IIbb9=GaKw#w(pS%C8zKrz0U741|np~69{w1Q-+ey0W z0>WmQ97;VACDNB90UP}MOXm{v!`9h_S!Z_vH3R?ZHJrne(u_nESd8@j+Dp?F#xJ!< z8-}IEFKV|>nQQSQ6;H}I=nT;Ow%NWIlHNsPsyJap-TS+{^s7=zxo~RwO*3YfQzq<^ zUd2J?gjWBNwuis!4Zx90$KjW7pNK$_VxS?5fCDpRDUoL#Y@^ z&&;vhy@$LtC3TL7nw-z__wx|%)md@x*2O;5%Wrr5q2Rp%!iqM<(kbP{m$@C@I)%bXZ=CTK5tfLKv*6GouoPC1+4KQ4#0-(&wt9Sm6lPjmbDBzlM zeYvgbliLzbrhY7Wm9hQh!l;6v=%XTBc-yvE;+F5rO9M8(RnqL!+mh$(7JRz!f*m0n z-pk8f3AU}{`6JFi7H`xjFqgkI?EPd@6!3Z}+Vwz3e4_ReoBBQIIPvwwV?q~PUUsHQ zz^^g0q_3BDwYVuD&K&-^8rjrfE`T%*$2V$E0t6pENAm=m?k>Kub~G#RCWgt5(7v`6 zcYIh!(!B{CKl^6lDn>X&z!Z**m1bAZ>vDB!BXrP()RC}K);rlSv&Nl_UEm{=QZu~8 z#CLXroM_pKLu&%W0%Tqo5Gs>?*1P5&2Xa`zc#pTw;+V*Kh-YZQL0Y27Sd>U$kUM-K zwLEScJwmt$@QD&~FGPedm`F;MSo^`Ta)#A`ndFZ#Gta-JTI=;FR$6TJW!I#uMJfAA1M!z_9lUlw%UmbgH*TjP~@^$(|F z|42?y%@$YJskYp`2o@-w>`i*8;{k){<7B5`TG;3H$uLVaJLcB!-OI2&FJWKy^%c{U zw%`=N^U3cfilvPLXe4fQR8l7NxbN&--}8O(xL$wR zDIZrXvLcqR(P-1h8eR5fPJQoZ9NGvhsMJ~2!)>x+sB7Q8hx>E&QXuYZ>Fi^2I!DwG zvZ4zZN3G$&hPGYHu@vAnhEXV7{`5ipYSubVvg2iu{q_V(WB`QO99iA2X*f8c+-ufb zJZxLk3#Heq|68@RF5x;0^oZ(IUwC(U1Nm&rC`)FDh=8;g5&wly+(SKag>{mafO-VD zRIQU_5Xenm-?ou8C^vH}1NBVObyn*gdUjT*aDO(?&+IOpDXuk%3&)0->z{Y-Axoaw z<&Q)(reJaPM4zI1AE)^tv;a2*y&mew`m;-FB|YXJnitL~dVzYjb@p4~@mO#1aoK4? zaa#2Vku07{E%EDk-?nRHc`@>LBReN;ANBUy(jvjLU^2y}tj0{b8gbt+*fJT!LjB&9 zdcWf=>Qfw87IP(qqO0!5ayd{)L~Yb@Ku#CDh0DsM+XQOhJ!GSe!d*k_CNLA&&JW+o zYODtJQ#uXsHIJh%c3ed~c7)E9mifHALm;B3Vivl)VueGd)g>}XMjDgfJ8{b4!ChXbtwF%59+)VOjUv(4D{N^a;_xtK?VSrMc zZFc(vfBf`bs_^-{+ZLG9y%ApcgP{;%DNQK)v>H<%8|I^(qU?|^EX{(beZe=C6~=b8as*biWfQ#*a*bEOH96k{0{~nZ4M27ck|7+ zW)JF}d;t(k(AkGo1(X)+aODwH5Sh8vj^r0-QmcmNpo6JSgT9PjVJ3N5m%*=4N~xzl zs}!RjYe%_KO$(?%1${*;HOxd`lqb6L2p9bAl9{x!SJvu>%njSKm*9_H{iBDf z+GdYIk`t<&a~m3INqpZmFp=5P%S*ULck_kHev6yyrV})2AY0{>FGl_i!R1WRUNDzU&A~30N*9k@mq?j#%KGZ201U?``+U4VqXLA{SPoPh3IrA5?mmm>5_@~&89K-{im;A4#-)R;LgqS9U4iW; z&JxZm543ach(@8o7s}A<*(oy;Js~ndi<}E5M$2FIy?lyz zEdf1RD`8vRSYPRS@H!)?4b>HN&{ZE5S<3zr{g{nUI)i^Vogc}99U%5dp|ht!fLC!c z*faC%snc(rG;Fn8m$Vjtd-f@~LqZci(-S^)iWQmuTPA^|Yq@n9gq^Quv&&-0&Y0=d zi)q`IY}Z^y5#aC;hi1Fm)!2Y9?{5$(dJaf0+Na7J$ga}%f-^gk3nj4rl6qph{>G~v zG3^kYSe8_u?Xg8`EY2Y|AZCcEvA3l%9t*Y=5S`f&y^oI)Y>^`}cOs-rLYyDoxb^n5 zmJW?Dv@`CbH^%|P$TZLArLz;S2H=@&kW*9Z(oU`}M!mrwO%T!ov`Cdd!7#8dkm-#% zWoo0B1 zA=4097N)JQ!MNY}-&XKKC1(Mt0)KBuM~o{tJLY%C&YH8~t~m1t$2^hgfGXHK<<*zv zF!uBeFOdAin3KY1efLhE0O`T+eyb`1h{hE@OsppICtG?FTr=d0J!xbnayU)ETpxtI zzsgy@Uy+FO3#PTh$Gsu3@&rE%AXbTzNly4!Fe7N6%X^Rw5x;WAO1=Mvc6IsD3A;<- zg7$V;+g&d-;5jLu-vBZ)zQMh6cNotvnCR)M%eSdNEu15*AKOaA>*n7-gDV zqt?6uxBO(Nqs}8g^AM6;D?y}n@GmO0pK~hN|6)1+ZC2>Z&`d9CwGvY_?PO54(~w%S z;0eN&(8MnuV`4LDzEfg`gWh|a2l(z{wE+X2^2=0|$EQnF=80)I1+C_1I)sHjSN@L{ zed4t5)}*R@g9|ItB&=-~im8NlY!bm98RC~pS?j9}DeM;)s#3(lvftOHjG<`HFN8qX zHqGI2YyLCr4JV>vko&VRuRV!&3709q7I(RhCE10+*4FnQBYDkOhhOtD=R9gfSiPiiXvzSs`8T4KD?^WW9ep|_GuD+ zq>|8lQqmnyCVRH&P(7TQ_8@eUEIpN`y#R6_H?hyeXoe38<)nb zlbQus<`1`L(#Y>VCBd)#WrrTqx_Q3~CIsz%sW8LNCAm0Z_H$ElcL3XT1vM;xl6#D> zl-F%-F|)7i-H5fax(l6r9~|kj8;B@h@e4dn#=B&W_?lX}#}}(&9BG%r6N6ZP*AwTUYqKS=++mA-M-J=ey9djz#LY|IgLEVgDa#620OrB+bK@hzIyxQ+|?qD~|Z*mIt4y^oR(*X7$3ZTM8SkeZBLr2*b1G6c8cjH z|9FQrQf+VLkSgTWs`@_PLErYd)#T!_dut`IANl@GY{aL{nuLJ1NyMmsc@W+(H325( z(^dV&{3j7JGcdKXw=f9=I$HG^%<%17_kvSegBq?Bsoe8?%WrR^1SI!31^ zq8J>$GBBrUiWr&bVVsJT(br0+Fb8R`nWzxcBSubDD5q1fv zb7x)Dtis9I%8ZckcT8`#cx>ozM+BZgmqN!Ue7v>O1E-izF^PbLYahJTv&r|PQY!;> zTJPxUdNs&4ajg|hsuKlpJp;8JwbfP6rAcdqX5E;a?O&H~Oond-;!7zK-Co|qltio2 zXRMr0cq*#|Ti$nT%=XPe28RTR@8Ih4&rgoWOy_t;mcrfxYfZ4s@Xiun?!JGoWy()# zUH`0`)Ts;;Q>^C3S%`6|^VMxF^tCG|dWQB~18_SU_Ast0Qia6bMjvanjavMdZ?fg- zYo#GQz)b1B(&L_ok4AL^i+gPIn^$*j{=WCVEOc+Sv$(Uowp7B9H)-+Ub9EwYta^QA z-F~MbJCL~5fxapp@Kb+#L>Xu~7gymi24c_2lH<+sY#f29q6RkKeW>hdYhFX@6E7E! zl_t_NrV5TEYFxFuDt|sIw-YgS4$;uKDZI{Jb(gOm#R`&#GF#}cj#YXeCoMDQmQeHx zAUD~UY!NpT81(zN5TT@T5>}jV#8sn%X$f*$b?RFr$0OjTkMJV9n`&O=krg6?u06i` zVAuVVL&R4<<~vAw+QAhTho?FshWw)7FnRvFCm{9Bphn{$wlZ0#6B=>&)x85cvypU* z(V^eduEg(mtLxztrF}!qS6b+pfvu-xA7Ssh%wnJMEa*Z=CCeUM(b<-`@#&@##5i5z zA}ka9{>jt!oO&I}{VUbjBEi`o4XD~EA;)Ovl^bmjEu(!qYJoZk4UUvc^!~=SrZ4Wl z?>WENgB5!*W>TmKc}*Ogn&?$?qB#+EDcH;#?uJZ1#}q5jD5cp!ULRN!ur{v*4_8F) zYXHGx_9)!n9L%~)YppC*-5|33qU9#it$rHj@Nw4`3MY#iyZA7Dj=`4a@i_M5ii8eo z!FL+bR zSk|ah2<3I7u1}+)Pl%bWe1prK9n+#AgXh7(vO4sOKsB4+H%RH+eGw+X(BZsAia?qt162B~AH7c=>8tN*01bf~hYi8h2}qf>zS!>jBC<(7~>>d~CS9usH(Yq%Z!{l+btQ zbh)7k{8Wqdr|3!)nSWN1$5pgGBuV9~-mHm6575Azxi z%2*HZNsLDtrZ@Ap7c~izt_*yOIlgp|DQ@TLAHi50 zPjo$!^KZQUZo8Iv#=g{omcsB1niIjd?%SHJ81nUS|7nQVNr&S~<_`p@bMuvIf>J7>7~g{CGefLEFc z^$FXF4!X@Q?7>VmRRUB+44zqn->se?i1yyencgXU6Yz??rksQugLnCp!W%VrN2}Ra zR)a@5Cwb7TtV&WF`qfg?g&>da)??h+^eiM{v!#X&BalILTwniN7Ve~WC=^Z=?6~1J zdO)`)L=bBH^<_)wi`rVVGn_O=XC%U|hAEjeYiJVl2Ri<%{Y=RX1c_a&__#&>(pV-9}VAc0nW& za2zkKzhsp&LUfX5;wy-wA{12CEpCsBpHqK8MFWK|v@SjvHA-cs?qxo`@&Lgun6|i- z9Ne+4w7Rt2rGK+Hu6jji0*o>hkulx+DOJQ^ufXvt?z)pszFU!X$W9-AXqbiZxamT} z#83;iN$Yb>0nw)kIlUdEk2FtYcby4BZ6&WY(c?Z>gy$9l|4UujG4?!Zt$#|Tx@S8s z-}h9C^X6?czMnb?w2;?{sKiWf)=h>9X*Y3!B6ng=t-o{CcLCAd{!F#v2hOq+l2+!#};e zZX1<5eqhY$jKkLx#+m9QO4dVEfdJh%m$al1W}U|Q6^dWjQ(1Y0sU1!T48+(Km7F^U z5^Ii6%kDRkZwkLcj(PsDIW2L{JaB8yqz5lgyk)mwU)$?_?}r{h>#4k%g_DtuK*iuN z8k^Z5uI!`ni{@MLlb+#60_0HiCUvjOk`kfoxASJH?{2RVYjt%!K34>{)?u|o(H7!9 zP(11LbGPw1a1g;w==R*olr+*=>q6z#`51O)YpXM1BL2Y`GKht$i?!BxUyX=!8*6O( zBg)zG{eot)@0SD1=?8ycO`@^8tIn=G13;J!+1FjK@DyCGhPzZZAn{mU1zYvsTx6Qu zPZ`L<30_KW%Z`Ni?%4eXf=v)>WZPuv7?y%b#225W)pvT9%6!*>5|YFP@txl_>qbQPH;=Jo&gbSJeCPUl*I;nN80I$d zDr-O%e27Z7bd$&3{#7T1)_2tknkR)dZhp^sy&Lv{9bRuh825_Yrwzg!6x#Vrt8hJ5 z4>%vqpB7o(Sj&oR>NBq|bT5~7{FbMdGT94kI^@{tPFE#aa7XZJ^VD{tNhy3Z7rc_Ns6pWqI`k z3v5hp${98Z$C8_38q}^VKOi0Bb4ei&nn;hjo=a=Gmhh%>YioOd!qu4{AoexH_)EwE zO^yi;ncZo6AbfRf(zWzMw5&dBUCW9DY9!Sc>3&Qd*Pq^XC4IBHMM;=2TI z+YgyH{-PLmx54#yoO8bu*N_uhlbg1=D5^{%S}E|gBVz9y@6yYd)&6FInOJJ>#DNRwK`+@)8}pOy_SiAVd6O zb<4&qO)Pz^B@;1LkGGv*=MS<)jnRb@4&v;b*$7d^V-wgo_>PxbUAh@NT-+7Kqq-0T zt0ZBkTSnbUzl-6DKm?NB>JC*ev;TIsE}EtjG?N=5nH4t`$>5Gbrew06*UQF`{R57) zw-ChsLHG5Es)k03TDLVXXQ#$^z^YZOHXm`M`?PV?%hS)Qickea+lgPsSEra#)+;a3 z-t}Bc@s&7sZMxH$YF=zPas1b6-2;3}qOEmF*`4N2<<24M8=#6ccLL~dhZpi;l!(*b-!5&jJI^*L=Wc4?b0TKxD*^_C-`=9 zMG86&jdQAwECbgdwlw3ex`F%_mij32&3m`)W*ET&)0V)O1@gd zJoI=M^WK#=42T!Re_FdwDh_)N9uX7l_hKuLH&&mgy_(<2sZIXev~MNid~)bX z#&^&?vMyT9zR}wIG}q4i?bx~8G-Ju@D($_5m%?XA5eMPoHr3m+R4iA{`v80Kd@7E5%aRk`WA`(6J}2@1w%7ep ziC<@+M-vCrO>N~f% zMYGW6^QQ#255C+I&=hGxTtB6w(;o}YA2*Ps{Z81xC-BPrKjFekB>{2H-QtL+Tl;ER z*TE+1_(W%^@YhOF#D*EE$wWNpUB{$PQ-b)^xr^AlwIL191oPIWMNHOag@IuYRUr91 zj!^zO&EnKZ+?#mb_R&<2g+g+Ix^9iT7b7Dp4gWS0doYW(I6vkpz_#mxz?Tv8cDH(0 zD$*^e5!-uj!RLS)D!%yJ8oZ?WgEJ)@UY-(J{OC>&ezmVAxfCpO^H`;UE-E@~iZZ*_c<^RSQ5g6D6keD8vd*uDm+9lGH~hLTVIj^iE}CLmL&) zVDifz;dXpF_1NK4XCNs4M~jBj3;7a;IN?VJ{H^y#iQE5+rLPWa@_paN4<$-ibcqNk z(%lFsA*G~rH={ch6jUUnJ0wOUHDZKx=jbuI2OG7)fU$RefA4b~aPZf-@AJ9tE6(e@ z?tS*=R(Ob~Q2gW|C$L@qY#Q9v!G!<$qLG;_uUv=$u8jo+_AmEb#X?(yYdW0pq2WQf zztJmfZnbnXHZB>hmEx2oF867jjb3yRukOb8qR1yYy|J;u?H$AI5Fc-h2tYim409;a zyE;yYeB&PSDTw2b(|yjqS|+#K6K zLQ(RqD%Gv$8J0zS8}$fZI+)0*tz=mHmIKKTUv$(GTd z=PWln;Mj{~jSFeM*lTN^`1683_lFb#o(c^81-kym-Y0i>UAIB}wO#h`^u`a9g*e(z z11B~$opm_vqR#m6PG+E>$v-&g^w68w?xZ)iH`tyMotPj24ER8)?UT}3=NVf3?8?zkmvMdKTU8}$kEo(1AYtNi7!kytU{+a&!0f)2p>tb1_IwWQg@!F30QvDFANhq1 zjL}C^pEj>{zQup3eCPkg^Jl$OXwhcX!E3zrRf8Slk;~x_IamIcDQJ>R=LpDJ5-N+1 zMDgxpBROJPXL1tfrSL8ShveKgLJnNQuGP#w8t!!Ws4MJq(OT3sJL0R`h2b&LFL3s- z$1aFyp5YrGT*4+YXH##f>txQ#Wpy_mEofCQw_NNt!G~wquS~vbdw*A6Tfajr-cY~t zyC?thwaawxF&-Je)${={oYvi8;dTodeyoNgW!+JkfFqIoV`H$qRp;gK#_;)$mt6Qy zNmh&zc!*jk`?W>q_U!#bBPPbHMPL8vPI7|hi}(0%7Q?qq{$kN~6Hyyq{l~A+sIja8 zA@DU+cBM0TRSOD9bF07o*I&D_e!0x`zA%*jDRp_uqb2$s3!$Etn^WIfaYb@iwRG&n z3fy;-hKH~78asbGU46TQc0qgi9>cMadGU!f;n*VGY&<$^l0kyx$NDWv!XGmD7(TD9 zMciqTU&Htp(=pt|gFMV^cZ?iyzX}FBbgqO323@vVfDlM+yO5>TT8lmtPq|Laa#%n9 zeNPsCDL3~PsxpxJc50u+U!f(W-nN1KAdJ_xFAlF#Oibv8tRb*f;|^{-X%?(|`?T*g z^CW@tVIj+{E$^^?Tkc%=zHG>5-t0RU)aCO8P}JC7?VXHe$1!u)ZN^HX#m8$$o2NNXJi0> znDRHjS(AtlA7_nt2l#)d7fy5u6Z&(M;X;X*mfTY*K5jaQ)J7wjPIm`-vV&SOf?~|K zYt0XC=L*k`H*Y=aSn<(6U>o}69_&L%T=<#$Gv|)os7S}d%FgAy(+Bug$}nGmR5b1n z@0B?7N?_V-p@sC%dhx8nJU;J*Y_RmSUv_vKmG+W2enZ9@q6aQ3gJx;V{c|i)cKZdd zR=FSGJ!c5*K4y{r()IeY#dT2o2H2svUG4<&*S87w@w_*Co4q6?yMYRS0-T$tGCC2S zV%P4k@-Mg1q`BYDaXImog>(dZsA2iVT%4a=x*YV1C8J`c7KrITv6+~6Z7Qw*kh-yf zU>cJS#`n4;`f7|IEaLtwPyp>=FiTv@)qG)}_H@vji2v}NkC67IzF?31{6%+hmfKh^ zzRobt3IAewp*q!#0bH;t%P=Ruw&@4FSCE$vKg>8g3=&{EW#cIS3Sg+DkMUyp7fX1y z{BlpeMr;B|CN=y74?B(o6i_y0^8kaA=p1bbzUT2R-CS|}#5QW7P#hBrpAj)}JoJ~Pm&BWRLaQZ0BY4Iky z_xvWWxUO>|K5Zh_ZFV`F9{s|Lc4^>QD@}v%-S623 zBOGvV9J3Cy2u=CyQn_2laizHTxh2U!^-y8Fbr5s(%_&ETD6u((w`AoVN%B5oYaPKb zQ$#xXh55Gb+qKDRZwvj0Plw{1{~)lIt9wT{m$O18=H*6*-dM5Ly#CWCWn8&E%F~|H zcnN>Aun!r{O5C5*QK>>P?L=C{H@*QARq|(d36dAry5+uOL-M<@tl{qu=G~BH?Sa=` zp=VcPj_87$OT@U8a$D$8z=a<^8?x557uyyC2)D%>eSa8Q#r{CM zPc%%(vk&-Y68hXa9&`<`uA)6Q*_NW`uX}oKE}TL5YEp~as=TIq$?vOZ8En7}CintJ zS7{)va5fo}Lq!F5@a{yexIf?S&E0!xvB@P`IAr1d=_P-BH@Dr~5jAWZtODo^a}DpK zdHN}C|8AgNh0lNuWA5!QI>3eW!MKX9R5au|T(Sn;1G&ydPTN=i$F%;#a028m7_L+U z?TBvb(}=(pbK^3JXhnCvK3fROlxshnq%~iVL&}a-cfgVRGe0Z3 zQ=w$BxX&-~t~*35rVJEvnGw*D%<)CnKu?&wA!kd1D(-0n0ndI&{jLr6I6k@8v^a~9 zXNN1f3dYLQiS=0KYaBx?*}wYlztS3LhQr2rEY{iPYob^%uD){rL*E!*smiA|(fUBA z>O9FhdbxYx|CsiDbS?9cCk{*qkmO&n_KHdnDI|o}&8O}#=EQCFA{FnqbNJN!P0}fN z^bM@ozFHaI^YnhRHpC{Q2+pPQgM|ML>vZ3J1G{G!?<0>QH5sv;KMvw8I~$ZDysieN4(C(uO9#WVnn0Ds56FS19Ms;t!Am2Q-@H*#R>F^J zym_mN%f?yYY;le_2b?|56z8b7FO!yUrHSpvqCBNfbrxrXb8-dDnve*Y?e@BbYk_SW z82-MVPYN|BeKe)_cxfWe3t_M;`PEr*79ypoh6%?}J|et^>Pu?=zTxdx=!UrkD7-^M zOP0wC!7Kxrj?P}G4a+sfrH!qPu7}>oyKj-R=?=_dWDD{`yJu5h!$gJlmBc`r338c0 zV_inwBjftU!SM{{9;#5hDF#1P56i=@?L@cYLI!FqH0Mp7kkOp@IK8Z%RudK(DBbjz ztIAMPp6rgZzCua`|Gc6A!PeoAG}C%aMklLW=MDiDxZ4wg^J#a(9flwAb6vMY;Fn9V zwk~+se_!(ma1-tUhFlNzqbMW2sSQ0wmnOE`>CZNjahEUx+wGfrAb=UeHJe;rj|82s zAbXclZ5eAuBDo7YEg(Wzr%!F&R#q|se-7@>1(U2ZSMy2EOSy#>>%05x9sMqiqbCsA zzX$q@XuT3w+`NQ!EjIBV_1gwdHKrt3PZ%tU1H%tZDIBn8Xgnu#*fo3qS_PZemc1I_ zSs&0X>3#{QCa?hD`P%j2xV0*aP5wKM#}IPM24uq=3lb^4* z)`^^&c_y3_03}iK3@+Jg1{OAfxwM^L9s;|&OgCHiQi-4~bMjn@h!WO%+?jg@Eln0R z_INMsSCTVszVlY&BP%9{kRNYAYcH8Pm9XD$K5BDcJTE`D=vTWPUJ*4$3_T=QE;9rc&slct^{!J!D}LlPC!;@(B$eN?Juy4 z{IeHi?QgTjm&K4ZX_3TlPF@3Ezn{NNdzuZDeC<;_e>5ftov4&wh#JGHoEiYX<9+Ar z!59JB&;Cz>Fs|kd@HqM5n+}iWqpXp?=#lO1t3-q#5jpH#++PIK8P`uvT!aK?oMu4SYV8?@!zuAq|K$^thuNB^EzW3tPlC|W7`Cd!4G(^3W;_fNf&>eXt|=6 znALbE&HMaQbx{xrfymL12_k6IUifDkd0Z=Yl`HsZN~dse_~!cl^=>?B9uPe?wHH(9 z8AyjO{~lD{&iAoKW2URj2gz()(sZ`pNHASuqlpQajwWZC?_OEoQjW~S2eifc0q#32 zWrus{0Z`lItemV?nshjGdoBKW$EIm}2-VV$m>f>r&lYv@XZ4x=swX(N?O-BFu(jZa zi1gd7ZhGxR*9l&jFQgn3wTNBiLm&1oYdf~vjulcDsx6#-#eYnC=M$Fjk)yeHGkN8u zOPzE7`8TN-r;Xq4}S9Va~v-gJCTPGNbkQM6S8Qu+yXB+d?)I+@!Pp9?J;7O`jIb()T(9-?3D3_nTu|o0)>zv_-asZyRCj;Q>rGM zvR>@xKJWykUK8z7fIa69#vL0tP@$a6B>UR1t8X&!enkQd`=RhL)Wt<_DUW*A-z#H1 z54DvaSvy0RcSlNZWD<7gSgso=9B-_KtT;ZdUYU}qSsBNj16rkT8|3rkBsJMdNlirM zDdl4E)ww95KXjd29t5sv_2CgsE011Jf=M^=Z(2F$?Sl1)-Y-}D-tD8rwI~;Z+;i~9zZg937 zLVc7QD7{Z224~ZzqC1DaWZ|Mxg3WEsVSU=g+vgs^4bGnXxtm2TTZ7Ds>69UwnKKhK z{yAF=F}La$T6p9L7W8AVb=r>_R756s#p)GgAo+ZNH-z_j{44(CVL5dw12$ppi= z35gmhkD!<*@8m;A$oHvg>a-^^E8nD;Po17MM zt19>Vxq1G;k@vXwr+eM|giZJ62M2r}>}ZZ7Sw?D|oj>?Ib{5eKwb0&u*tgxDdFp-Q z%N?%G4=-5TYVJvvd!J`>G%6VuT+?3cPoeqcZI$n{0piA?ZwhAY|A9%ZBY(em{Se>rn z)(XZ)5H{G_%Ze{`r_Xx})qkHNB0S<9W6FMNw*EG6GF?naOf_;UYpm}N*>p^o%=^`B z?X2`_SJ2m?(2J}p&mTgJksxu%(2SC`fadhW<`63z6?}Zg2b>m-Z(6!@(dxyWb?Z9K zrW|gKorCp3k0-R+qDRVRz@RTXS!{KDyf3MBx-yOXe$w$C>CPT-hM6VT^Y6>tlJj|` z4CEQCbR|4$_i_$0FYCHDYjdSk=tZ(?XP-0g!+OlQs)J&grJi$XxYH$R6LUw2#_sWb z|BHxUp5Xgw0ytY4%M&B>Ss)ypj(c$p(p)NjOcnoOn(?PN#hp(CukXm|jX(`w9b+F! z4e0VBe68tC`mau(p*$jOkCv%IV{;b$&w!%w!n3aJ-`dAqnT$&2B*LbO%4O>DU!ilAV@)W_n4S@@pO=s)hF>&mE$o&$iD8`(a!9Z_&!Gdn zH0JAos60(XHaz}!Doy*oqdx;J!Usn&WFUlB6;#@zg|7K(NBuWnC-6E z)Nq^ZDh23c6Sr^^NEyVC^7p*m?IJV;osiLRlMhc%4@hMd-iekM872{^wr z?0GI*e||H*cD#-cNq8SVYhtvteAdWJzNX*m)W~i$WjDSY1aT{OtLKKQRkrN?3_J#O z_~85}Z*SCxeH+?3ldq?y;BIOQym5E5YDn;CZhEH~Lh2Sw-vBhD?&xpI4spDtS-C-gG8h z5|1)cJ`WP0;AS?Vb=mOD_-rS;;t!ve@j8=m{+XuU9xq4%DNNf!v}s>kJ^u&o9hR(f z+8**6-cLt^!_=xGCEz;A>XmEC_!i3Y>53rErJV`3J2K2Vgtw7^hzTynhU2;>Q#w^2 z2~d^z-%QXqTRBOyKG}P`GT+q2+Vn5XPZJ7Voe&oYWhv?t86k4+%F&DO2 zliwe2s#ukuzF8oq$!KE6n}eL5?oiB~R&CQbpip&%Y^45Yq8yv@UZJ>^nM!dBnTaf9 zeU)BnjY+>t5*qa$M5K|_rVP}oH8>U&^>XvoVCbKSu`imfj1IgofG~!#CLLRXck)BR zF;7;hvAU}cR~T~FzPk>q8tqqB!jc<5n~Q41r=Z8ngD1aqtDHpbhM0diiQun-rs{Em zFoD)R#=!AcJ1+#y4-X+sgVxPLK`T=;Zc_B>BhC&YEkHo7yQw_BIZ8k<+P=IKgb81s zwO10+{ck@(IVn3!IIek69QI{}st8drb06g4xNO}KJ|FS4f|o>9N0HK*JKQ&!t{QL>Z!KrOKmA+iRMiz z-!?jA zu$Iu>Vq>g^hFxq?X#{!&p<=fTCkgcxn@&cj_u5gcPS(u`N~5@>`^Q!3LP3It<;@(| z7N7UpKP>AI%c+MVo`uV;on+Zq$yA%vbOukz%b$m3FcG`N)cz(ix=@2@(rEJL{$-5a z|D#iAx0;t~>>MY=InC{i$=_+(^ZFcTxZOxG_Np_b;X~dNiJ$+`xqX=a2W=&UK=SeE ziSj~DrOR(_Ni`nAk*H&CdnaYLw@rcrSBsCp`ALj!vU#2!j@N=b15rk zT{FidoV+&HH!A*;&*}1W)?`VmH0rPkqmn<2FkJ3V7&z&&B^ps-x}7P$_DD@2v$5-X zg>XBHo{H2cc-YeLEQ80Yh&@G|kS;eP^*2p_`_d+ zhJHD0fXP*&G_8xEfLMSc+boC$e^Zy9?okZKns^sl@1bAlFgtMkWq(HzKTj5R2JL)X z24J6VbqfQ9B*v0wT={5RXd9W$z-t3Neuha?))TdoZIZ@hbsjv~T8QX>(8@ZEodz7v z9524+jnSnn*d581uEsp2#W?_uiHez}_1kxqwP*t=Pv;(J*wEP*HHvD-om_uCi|@CO z8@M@lS=9Rd7MN9~Os)*y^6DFBfw$7`{Z{b?w6X+0*ZN2SG)wwJuH#p@)nMJAoE=NMhM*E((rR zlD4O{!(K$zxbGkVEbriECY*?X%~7j2&-%1ClQow?q|Ub%;TbdHpoSB2BWB-y z0@i97Uo91m6%~`@-!=Wd8905>dPo}a>v@Wyo($2o#j%aoO z^y2S>Zeq!XBQ`pLe^w!NOvTgS|y{ep$M8i`nA5y=W z4?Y75F^$k7=GkqefWi5X` zRu<-fmoeH!BZx78y5ba|6s($^@z9t*C za@a=oEJg{pbWHS1?fz1Z@a=isz6$0XG#TuXR7b}5=W8G?xt2%+vZYG*R27^xF8FWp zEc%gaBKb(Nj-!C?Pt`8n)e=lCEQO7ro-zn%=v&A0?Oz0-8q&W z8*k6h8Yo1YdOvqTM7<)jSgPU5#V6#0sg{dYvfD$53DNg`i3|_=FDCWu3Kc7E#lV5- z`*IXMWveF$Gk@MD{d!TMRzvQKdcZ-Di=>*r+;Ir-`u+bZM306Kgq=MD3eradiMH`} zn&O`NFe+Na%}+ zc<%#;aqhexfAXi{s~QXdO>)q%1plSE)L*pHoM+WYme%@brl5zR3-)*LzT#UI#Wx4% zfHbZj)isrrwS6->FIA?Vj~=x3JHTJTP5eeWKGsS4YRi?D@g>7^lny$OiHzQgSAlLf zQwa~@Ouq^mn^;Mq?%bg^H4Vin3N8>jUbwZQQNbvq%0!O3OSfvHR(xwct0;D(yT>F_ zCPbvNsJJ?w&UD5bP=0dW~iQcVE zx<=?0UPgz%Whrd46|iQIxU&@W0F<_#5B21^91!k!!}K3cBCUMov%YX?cp1%J6vNIU z(6a1%JmcZC&9A2fYt$>|ETOp3lp(k#o32$XuNh1VqD9~Qm(OMC>>)I_5700bAh zpr{YD>_t-Z>Sj6{p<@8bli=20t6AV80Xz0y)$%50&KY47{yh90xA0g}V7@eEcQ@3O zK984l2ozgN4^=j1o<5w|9kP{L5`pSw)YK30u@fd8P|ew^4_H@F?x)nd0N2HT0Y)@6 zn(S@hbzl9de4_0$8q^CD%LxfZmjyZuYqFop#7V9{ATmY$^f~dBar6E&IAx=~G^~ zoOpN$l~{Xo_qYJFkd??AiArrucU8c-ZrC-+i>T5&@Y^F>7)sO<=YqCFg+YRpHd0Kq_Hv_qMo@@D2ytz8~YrE5!0R_M7u2`aI z(;-uR{mRmf?zOtCNkNt05{DH{t>p>d>C$F3X6&XAamp;X$RtCjes?4xW)eK28*D%F zO9Wo^MHwPjBW~lhJiV9B=R7sjeQu^{7P4b0Xl<0dI4q~#ux+kbU)wHBm|#vG!o^iV zB4RRUET@uc2YHvD+g(VKsB?S_$xHfJv6`*NP2|t zb>8K|n2mHe=%hvQ{=@u}+0a4hMYjc@Fyt4nf3fUV>SQxx)l=A|;+km6<}So^$dsNmB3(@U>qSATBfueh~jA z!n-K$O54a{x@*Ig#{JHCMU%aPgs0FQpiwZH>)>h5EM+~7g6aXdal|5dmTtwq!J3FKoOQy0zCT7rmlG~az1=7)kcn=@2eRXqp zjV-F)lROE>Ssio}Ai zFnaK^&retbHr!wsu&W5m%eh8pq!O}V-4sEYV->oTDzC5`lG?#q&u&H28y1)o2TUsB z^wAIOjhnfh+POftFnvV}D&B#K$7VNfb*6o-`WfZEy7FAPNu7kRY31p^tVYRU19uM! z22(6z$A-O_*vW3W(^Dz4E`7JBGWfwSj6cV-<^nE}!_)q~-)|fKLXV?Egeni{;4uFd-kA{7Ew8y9W{< zC{fvD>jU(B*)56N{f}GCc~tpsXbzg%1lCTkB|;hbv{9M&$=vWRE2Z~>qINXDd)li_ zcT;29EITsylwZd$1)|3E?Dc5J!#Dnn>iBAEkEUcYR!Q|^95Zw4?Wg3Bn#@hm7EVAg zHlAZUq2>9#r}%{?cgCf9rry>c$lgfo#*G;_dfi)3wL~|o_-M70YB`+r- zdm>L)h@sHj-|)qpKl_Lktv$q*R-R><8B6XFJPLTljhSaCF`Gw$!he!pG%!9d7v-9( zrUTpm;3*E!L>Z7inuv9J;z~t%x1q}Al(QjNMz%fB%aC_s+)sOzr=nJv$w`z#uMj)5 zmMv+vs9>^@x*@a}>c91ksLBvLW#!OXx0{06e0byeN5&0e%FAaMcH@agh53-EH%n$4 z+Zl?2sn)-*xA5RhuQz6uKo}7r|2Q=%^HXnyw9VT@k{9?*{N;`QJ9pkBkqOOH9y$jf ztR0SNd+0Qvb3Tr6Wm&{;1dY6!-Jqr7#|*GB8PYwY^!)u2>Nwr9iVagboErKy$PGk8 z^@ty9z^>*n>J+)T>=;O?;j82rACuq1L47bRE%P+m|Hh}1c{px@Eb}}Q&S-dGB*Xji zF6ylBc`?ihl%t1s6>uTil$F~%2lWn@3kVU;0**5EV&CW_M{~kaH+Y+7pQ$4L6YLzc zdV&%qUu!K%mdH3`JN|NOg;{U$IVf_kt_Ou3)&SVQt}bhq^W20^L7F5t{a!jJbyt?hqex@{cIDaL zG>VCckgA4!2R!3$5!wVBNci#}v%%76CPO_nINayZX)FRdZTvk=jGe123!CK!b8Yu= z>weqHj`bUWZ_!%FHhBN9E*~GLg!isi48PFQHrGhAfJ{@Ms)(BW`CTss2Uyzb`^|&z zA&lilg`0l0wor$U-}ymFKu*xeBOa0T#Hzwa_CoJ;A#v_9-Tur*QpJC4lM!;SLeI0^ z+jkL@-C->K-+<8p2TNwt>}2qTO^}RmS!#1Dz|sOvkxS z&DL8{d4yyHXK^Gs9li)p5Z#ijt7z!*iB;WOel#i5!}HIg<@7f36dt-V3bLZwT8%bk z61^2{kaJlOxel%1=BTe$H?R+9#p#{CDSHuj`Y`bcn~&~??~3glJI!OUoc3+=GobSi zDQm@Z(*+b{S)Q26FF`x!)$ivN;6+Zpnnd(wJ1zPqkOTAJox{M2M^~xU(%-41UOuPu z6&0Z2`fNAd<5mU=70F0bLmIHQ#KYYvn{>~yPRFX&qMCXc-4p;~v9@r+PXaId!s9(;K0(IwX zc?E9nWk}CDUJkRhOnZ}u7P5Bc0UPAbiGF45`C@i>&q4dBGSxD)tRn7>OP%MRK{Xd^ z8H-cBWKr!Y(inR1R&&$XaJ&PJhdl$>6})qGv5!aFD>z= za`m9zWrfvQ6Zh2eD(}>bC6PT6_dal(OdLB0<`f8=UOOE)p6O_MYjn_`b#LPP@B{?% zu~1H(w>Ry-1uPs$9fF7I&dXev6bkC8i7i;7ZecACuU8i~!=tTb1k|Q?qHY|FFf~qG zCV3bRfE#4{+aUd_hQu+ctbYDaBSjec53=vSxsCk>kbIR9Sd{mwYz(tdc=P_zHV^af zo{Bk(qyV1X{@vAUI#{~Fg52sMawsS^y4tk}R=;@!UOl^SfQm z5G5n~!co`QS0+P3zqC&0ZVH#+ul7f$%(7t1fIhS0;^YP96{J2OA1|9I+K_-}!)F}Tqtkbjh~rIozVw`qbLO;BRNWvYlo!bGo6 zJn0W<#Hlcwo0PebdZ(VnbCarZWu}WK*(qEn8rAV32QwX4hyrf3afOk^&5z@cf9R)l zCjA~v1hYC~!Zv)?2d?dKO`Y-4Tp>19p4l->pHQOieK*Ra>SCf;N7Gk*CzC(@ZO5z6 z9i$hqgQhf!CbX4ZMMtZCA|$JS4ZB=#DmX^^72-m7-x3U{fch0|`zshr)0?RC`yVjp zY5p&A;{D8Q#T^VE-OAmTYIILj{G?=mjLLL}X+dG*Ed0c5sS+afEbH7=&+#3{=w{qN zV~k`CRzgLgO9>)#s!Y-|*s-;g=?pFZZ2|m{-ZZsJ9<3k0Eb)=1K&@U5XLp#fdLh!w zOY!k);a(fXckS;?zgg{KCkU$r2=Grtp0yP1^a>kNioyp!1Ho>$@$_+gYU~aJfRe zEoOR10bRoO&d3cACbLNw*J#}%23vvF^ahIwzPYUzQ~2^pg*udeb6dOqYLs{Y{&J}f zGTP%3^jM>?PSkS+eoLt(wuNHcC{|*wU~)G|QD_EK)k>}Aka8QJVQcP6;_!q}%1b*w zy4)Bqj=ZHvNXx;0xoE~c3tkK%bw%aGZ4ivhVyhEy{wOq$?L?i4m_9QCFKYXr6<@|s z9Q$`2zg!=+q; zopl%%Ydr4CpeAgO--JAHYa6Gt3hg$p3u*WQj{K|AsvY}>hcY|d&`;ku2r$D>nkM6p zVq2GRf%*zY=ERCiQHNw2WZ}ILc1qH1zMeVkKqrH1fQQt^C(#~zwl`>3cq8FzciE7-dPO+xnRt*)o(yYyCR-ejl;B1r;g5JupMq z<2U`1yatxoMg?fnUtCPchAH{eTeL&k^KruVc7^JkDjHBvSnP6o$`A|S5|l?9#{b1$ zEmvwk-4f-syJKojb(Wlh3POO^SJy;gKjjbHyvq%t=n~bZsI%!)6AWFLOR~0{#>y8G zzgpG>>ifH~%rzs(+Ixk+5x9@dFaDD)xDq2_Q&Cj-2Qfj1-s5E};#&U8vvUo*`J@Ih zrWtGV2HEfAKVgv_i9RZiM5cDW{&MR`PI7B^44>>zAW~3@L>Gpgw**S7P9S@MF^mT7 z3grh#CqJ07K5M|&frgaQT#o`^n%u#($$_a{1twHb_Tn=&VU97xl1Y2}X6#rAnWh}G z*=jw(7gJ#I-PcD9yJzi%bu@5RnZKEPJ1L@Mw(tX1KL8Koq%&z-EP)@k#O=1#)2U&- zf6N7xl@R~qmOkC4`xm!xyPGvNy&^Ahk?ZoFkXv5y?P%7>swJ*}g_!ZG7u0!A|2O0$ zdbCC&=}qo1P%)sed!m{)?0#V6QeWY~64fq~_vhW`!S3>|EzL##(a7*Tq&TnO^*j=e zBx&^XAe#>W2j9Kf-`rGf8#s4ELRFG|^ek5APgqS8oYJ1u*=e2E$nKjsZM+0dzHFI~ zAUxfLq3B-4h%1hwx|~;>pA$E)n0_W?`?uU%J;Gktf0vN8#f}JS_EQGqL;1x{nH*;r z6ZA1?@VSeF)ld1>G@qSaJ-H~_RQ3=Z&iQ!X4>^#EjwR}k$lEshq0ZQ4eQP3r-JjPF zsYP_FdYzvCReR|}=_xeWW54jO)F&a#&QV?&;%uzf4?e44-_)c8aV7q#1dyc=+O4@R z`HynmeY;8o5e{sCJ}YdeOZ~N-KIUg}ph`Dx6`|0)+F7h(^2lhb*2pBQ_e=jm&?y`T zJ;+18-Q~m_nw(e(72t1@!aofLpumm~3?u$i3Sj=#Fko$=4tB!#AiTrtfur$C^<&_J zylCN-Ho`}<4rat57XN*R`{p`xlPlc>fD<~k4jreQ!BJpU7P(~?cUqvuAFp)kqyMfm z{l$)#Xr=c$zL@njGmT3pZz*P(XtPM3Gsm_;bz)|{Sk;J;1KP0+5sPglt-QIejeBxZI-Q?x61vejsw8HyH&`2*wh}5E#uk}Z6 zi~F2ZWMhh{6>JRHQjg=OZOsw7G#L<;&n1Pspvj`}`0 z+n-!+FI?!Qp_4@8L`7o}1LR+zL!njKqch{$<4?{|seAE%DHf|98qP_4S~n7c%2Ykl zrIpd#4s?2DS0%)1o;@w`$H)28?{9X**IEviUgJw-sjLBzsOxIWlc^H+queskf)$Xk z=i=uoUHZyP?D9K90)iD?e3nhU)&7yfeYROnok2gV}c*t-2+^YBk*KRHPZau^_#WQn$!$S7M`B3AIR7~M&4SPGqPmS<+oF7epC0i z{V@gPllqXm{0caJmEMT|1{#7-v;}keX83<_D`UVkR@1@oej~ZOB=0?WiLlh^>otIw z9{XnCXGbH%O6K{=1J~IN%K=kou3TD5iWG^)8r~<1Ip$r4iY;VeMirhldMuj1|MT(+ zM&5%9M_dMiC}+a=)|}qj`(po^NFw7}7&>9|t8r@6VE-XsI;Eof3YCb%s#)O@9onBSCaT! zuCz*}6$;wMvMNVHwkw8HpFJ3)D=?*2FbhDnwb)(iF3)-f-4nC#D1Bsb)Z$9c^bk{> zwb?+gb|L$tS0+s_v|cA`RegupJ^cLMErhqzMR4fD8PVg99mQ@uZiu6zocB>L!d-Sn z{;U2bByGqeb{wKiw|HlfZ?>wM%7Qg*Glb)6r|SBvrAt?!hJMlQ4I4bf?t!T%pjP#w zy0y9y_WEVVDawWtS$%9!-y%;9@uyCxEbfud*6~)rAj5Ow$il#8)t``-RIsyoWqRYEW>G5!bbT8gdOhhewZ#vp z`kZjRuq#@a3jU&5P7|AazH=9~Kku$6@vqu?Kfr7Gu8`b7X(ipoZY6+xv*Bf6-BBtU zU}54I^qf##Sf@~Y%-Z(%iWI}sVZ8WLTZJtIJM0=^d=$5PrR7rU=ov(Iv&aNkcG zn6}{IiN13KseuU$e`{Ff%wK{|hSU9}_M7g`)1|8yHu~uX7p`RVH^3`f_PB}&KpV2p zD#Je+HT7L8P0x@jp^7Auq%?GO4VVwD46gfaYyJ>F7m25&3HPjtQ9S7#Yd4iymRZps zGDZA+Kc?;jw=Zd2e$9F84F^mb{oy#=k3HIZv6q6Dl~%E7u9u8AGAj2S+z1<&3{izG z=4Y~93f^t2<6I0M=dK-rM=kvS{TedEs{Z}c8kUoc1rUOBQUUMrbJYZE3QYw96ROQd zO)lbTR}it}QfGAM&L{28l?}1)r{_;^bgf9+5#F723VhwM-|i*}PGx7K*OO!1=^gW* zZcF!(#xq{$1{h0)nK+(H*BYFWYV3bYa5rR(I74KJ>iMaR7lh*`eHZC@AU9iRURE4N zKpOt5der8IuXQY%Z?Vp{$QN^@yV7nE7hg?oe`RZ(_%>7Gc)1)V6z*GW!B=G(lkGhZ zENQsC^x0-s@#0*0>d?d+_3u_qJh2qH=6vVI#iQ+)hZ#VbHiknJp;X8f9rZo3Jjpn| zZLjEwG`!I9nk|IKPE2m^Z#ll)Fuz`D3N9N25a}Lg@94!GFWSWwhDqsNoW$18Ogmqx z0Aw11G!YM}B0fD;>@*Vu7%j~& z{&06HOv6sJ8#+Si=m0lmek<%V1Ag{f&|Oxsv=ex@^?XXKWxKgst7Fmw#BN?cn&JGLYD??ORZL;Mq zTRs==^Xj;9;>K+JH{ZbRn%|_JJ-=Z#h)W8xj>W-bStVzdmWGjKwF8|ub;7~ELj2#H zUDkZy8F6>;3B~^>I{po^;-7zWGx#A#f~uLZZ8|)`@lWYtk0(1^@xML)r}wbMncC9O&GdO*M;R)z)QWZ`lX0P4QcOpQ7}rPr|G8kM=@@MW3zK zk@n}osqgh>Oi%l7&s7+`ieDldh0|(r6{nj0E2R}CYhhX;+x0m0kHx$=Gw#@N8aqRm zyuyo67s?J7tI=?zK()zp*JI=RLT=YrWs2Hn({OXhTA0fI>c{Rue z^Qc>c<>yr!njlJ|Y&ukI6Xc9oh^&PZXR2)G7@VsYPvS;RkL-;@TWj*-oGPu#-`=V+ z@YHC2M9VoHgaSBZ?n5Oce&B6ti)MxLu2Ymv(0Nt6SD5gytFAw5e$rj))2g@bpca!c z2_E!stwwvh>E?`XN2VMS3aHbcq*6(J-pGD==TjUP(_nL<>EDOs0ny+3ic?wyxxlX? z=MN6bMXGHLp2=pld{oPXCZGql2+w~+8RoE>4onf zihC`1$19!%U4Hxi>T6XIkK#U^O<87zidpthSdISpUp&aSy6k`ZNVisesK9MXQ z;pAQ$bM*8q)~nptqr+zL_ zt%-FtV`^mPAkqvXx-LGy*uO; zx^v*$Gz>1Sb5ON-`Tk>3Xw4I%CwOsI^Q#`0`B3RMCO?);UX$L3y}akt&{xFI5G4(b zdTEG02uYf_`m4l*$njg(tYaPdo~81-Xg^=@j#00^0pcM}JgJs~T*c<5&4sdW=isK! zO}^i>N<88J74?--QE1=W779qHNT<>a-9xHeKw9Yr8G0BHhR!P>C|y!RNDY!h!!R(U zbV%nA(nCr!F!192{nvW;r}OdId+l}hKKne+Ig!g`0fCEWR__#if*SiVmz!98<*COW zSVH)n@OGV}oa};@gH-c1-&jC7+2S>?Q?c;lg|yMuoRRwXxa?}F(5!j+Mgzn*qoCD!{JPx&=hFlqO@-_J`3k9@yY z_2-9Ncb30Qwui#qf7j%%aw9|1qv@)5SwIfQoB1C6)=xEQ9^ZdW+tyBF&09S&ARMdb zqHe+5GHlY$U~Eh`6~kF&{f{ikTzB$7P5xdb>8UqlgD2xsNf{^gVrPm8&1I&4Iug=Y z-;@59BFNBBV&0@?@GZC3o?zqIRX~Gbqnhi^2-|-|Ao9Ya;m)aLVq1Kr2{nu$N_J8 zOTVNX6>`qf6}O>MlIdjCf{TVN`_*_VPzFwK-m9VFg?|SR>nxK;kj5&QpC$!=a#PiK zSXdQSUs9lXuj0oJ84?@EVInAxHBsag;?jLGz*yOzojQ5mPMAr5tDO7q+%k@OJgxIq z)34;MBqCt$RSJ0sOOu?dYT`gXD{uqAYD64@@==G56G9`9?I$Oz8s|Cz z^Oe{Y8;a~IHv4jDski(YFsr~`bM{8+$QL|NmV2vzyS3XbBMEkY+JG?3?xSM+g+3_a zz5V#wQ(;>f0k0#GmPLR03%Q#QrPS9EAwCQpUAH1_`({lc4GdD+ISM_wH?T_@NVmc33_N}loFS#U z{Z7u_ahuDd@6=&ZLrz>vJV7$UhDYf)OB1cW74q^2pZWOIu&aIRE56#DEc4LmF+40& z62j1RbW@m6xS?esnsX5KE1diUe|hio!;E9U3drE$I1HXt4-&(#RB7i^%D z7xR>kl>;Jln!_QR8sKBXkx072@gBM-w==H!CGYYVgUOKgW*{~?XD7urJ?mDu8$S4f zo`@7LxRa=*Zb(A0S8blwkq-Sx^r{|S(gl+-GgV{ew;mCi7I#@#-RtA1QE>#G4Y8=e zU$he4ekOmX(Y;oN`_ygsEMHGCZ7=~tCG8tJ!_aGVI;n5D!5yu=U7X_lF@qs>KShSL zZyO^amNHk(OIG!P&_yZ9e(?Uk8Ov;H-NDU8u|d}@lhCgw^OQQ)nlc%+)Bq`ZvwEHv zLCARW^A$|4wF6`?_7Wx8q*2vYDh4ij-rGqiofQ8h8^zCYQBEeRqy_LSF7Z=`)(WxT zi{KmL+ZodMGroJ}L1Y1=CcO=EmM%r-An`}eoX53ug`%tJPKVBd!nTttrSj%`$Lib>+PHAwTC~>)*u0cVj+rmn8Mip2spt+ zqPTPSGAvU&h=VIb+nNSm)JS@>YYD4OLEYMj)m$4}EZ9QB3SUb>5c&-HWtEEJzj2k$ zWsG9H<^YJwp#JSrVslciTWO+p5H6qboq#p5HkB+^DW*1{^N`I+BX*h)pMY$3zwmLm zDQGqw_*-FE{6FYWzB@Ns%!3RN(B}@;@nv5*;2;~m9~uo_?3Sxg+yEgh?kmvVS$Xgq zdV1DO#@RpjaEGAno#nf|(h5rQKgf~zo6Dcu(P>j+r@-P!{>wC;;`HgkvPAt^{o)9| zVVqC>kF=`{a=!*MJ^uA9MN@zAWb&=KEsyB;^E#|~dFHY6U(g9AbK10LRQK>QIQ;Su zt1yA>6yGCz$D3ov8^XArzd3zd3Rznx7(2}jujsW3yYCDEd`IY+bvD?d6irM0^0kc< z(S<6m)P)jq>oc~NCbpK2x#A;xmdF-B*mRNEVInj{sTh?Y6rl1FvOuCY*5$x5Hi3O| zyui$lqO7Aj6jYZeYZGOg>)Z^ zU+||vkXjfhkc+JT9O?eWiMAm80hO!wN7jW!#t}>5b*>f9Xd~s2A_nKO9;@gYrb9)p zzlw}I(@>45QC0)yjkycgKQ%@K7^(MK?fx5<6`tNo7K_J@SN_x&%q10BXY?wJI}u-q zGX|`3DsUB8GDFOS5u@AEJIW7k)aX}+-UWLjHdNuiW1Jgw>3xHBN#$#0ah3XbSUo@Z z-NDTD^p+L+)1oV8-M)_iv~$&D>jjwgDm_G1nw_s3&Pr`yAL^}`23>sr)V(OPU&ST8 zuqKpz`>gig79eDa3*l7f=NCW_#My!El-cF#^x{oCe zYJ{#VnFpOan!}m+ci-S1ZV!Fa$l9eHTt@FldK4^XGINq5%ymo}V9TV3Y$LW=G(GWk z=_sFrxRbgw6flQ{TOv7BhgRLzfmHb_2eg$Loe9~kSrHp4{fzJZ_-3XF1CMC5zjfsM zdSUVYcHDl%7rAd%ECMz*YZh-c5mlK$%{}zM(3e-Y zXlAg_X$)H>*5g($R{!L1t$#T}T~`3*&@@mUuO*k006hXsdp#4r3HQ9TJ2Q3T55n(n zq;KiyI;_1g=^lwTch==5H$&mMa`@Il3SHzJfU&=>%^a_T=%Lz(n}ztjB^?l6?_{Yh zWm8AsG>-;b$)-?=IA*eFpx_-tai+;3LaiJ8H7h{0i(iF_Q>v>1c;b_-XX2h12&$`DD~WKzmZ4 zq$5}Y&z(3y?9WxYKib`jCl|Y@$22tlR-@vz#$QG*RkQGTy*(ADlso9lHU1f(SUq_{#1HC!M#xZH zn!VdFL-WZ^SAkmNVCawfPT7%eQ(E6zlVI>>j)MpZ20S39zkgVjS1+cl#Px@%$ zbcgkteZ~IxPf4^hz^r7f9WW|Qb;gN>U)hXBUte9)eMu$Me7Er|XOZf0@{}O1>*qPS zR_&>ru--euFY)x>kjPhxWPgU6y6zWcYz^yvo1~mve>f(&S?fhV*XBii6UF#up~Ij> zmx-a?03Wq*1n=siAo%kz@3X&rkMx%2^yM0+$TfPm;0y4BH`VrASC6j-Z(cKwzeh0J z@_HSZ5i%K}0v^$d6^w5r+WF+%h{p{KxaKxE+C* z-x%J=-6&!2{?C|nRwhu7&$BHhxg-%48O}`IF2Ui=_xxKp9#5d9r;H}LT$>4pRUa!v z559y4T*Z(1j?KS6{Z(cmx;2(fS7Fmy`uZp~`V0TcTv@BZjdV?rlbcdA>br_>4Sz zXBu3)TDa*C!{^`<)!X% zkzQlnsL)#jz?bcg%E$96ivhJKi!p&tWADorat90oYNI>HP&|;Hc_BJ=3hJB+WU5QH zOsB_4Q>r*Rjt$dN>`M3#tNAT%Kj8z_kuK;4KcINe>2-M@A_|v3Uj50#yWVz}ixN}Z zsMQRN=@Q74sh%1sIOS9`%(%)F57YZ}Bh`Y0K%Vu<9csAI36@WKaMuJWMkOwmBdda- z9^XcD&1B& zRm#ntTnxD0Cb+J5p9`s6q;1|(oD-iwDS3UiTb&$;aQE`h<0L*veTZgT|k*Edx z&@SsTYD=zHyC?HcEYRj~!v1Iew_ocO&cU%$HKt%~(6|9yiV>&wTwVcVQ?u+0gZHx#(|`fk{ZBjegc+*7|^EiSNcM4cYYGc@>T*WX3y zYU<6wxfD&&hN#Gvxl7O$ofD-2&tkRRWCB>dG1@_@{VY{SjRbTvu5~0q`^Vy)>9{bd6J;qy*?&c?IG37 zM6aB4k_^kAbR7GxWPefVeo4OGj@uWNxTD5eXZ1PszK``LKGABStdN%9(RbII8wNW; z9IYnkf=CfRY?`x6EShFpN_4h&pO!F`G8M;fHPswBN$0tlO9w&?GR}s-(Ij_;&+<%7 zlj{_2B|9*AA-0M7@)zTXAE^mP(1PpYuiNoGAGMhI(mzNIX%G`d9lB5dJ>v#5e_;FF zT4#M&mJ!8}G}Iux>gbk3buyY}I~d38ZLw&y4=|KSr) z%Jjy9+wZmYFoVD)8+F87q4DrCxr(!k<{qMFPx7Q^nDT0d&yJ0IBcGXEK zmIa*rzx_H;Cvk^Am?dVU44rfSAak3zGyrAXV#yQGUf%jp>q12qOgS=A|`vz#8@&s0>I zbzBlOQs#U?9_<=Qk?kn}*MI9Ji*Au_IMV^inhm~*3OR2}>W~@5JF>CNR2!@o56p&w zwT+3kgc00P$Yv4OVRQn8YR^FgkzD5+{SXE8D>DvO^? z{Rnom?9Fsh#jzV<;K#_$b-rgE9%Fp3$c6#%*o0RX63v(9c-jfDu0(;i!71NfwCqHu zY_Nm$i5WgVO z4*{N-1M3Rq2SPp#NN^iYt8kw=uWbQ`e)UWOo6Bv;O4=3ZXUSGBMl7@0NK>x*n&hAL z_PU&GM^mdIrLY#x-bbY%4hRgwO2aT+BuEx(rk1Qd*$D$KE zWkJ+kV4JCMdo{3okR?Z2f(I&(6-olgmNCfjk~;z}5hng? zX^`#Qebh`dnB5^`n`I^J?p98Hn61QZF5k(zxd)ry#(>cF1i!;Tdg%{f*@;qzWrO}V zNT1@q+E2sZJVins9VE;k>D&{vWy)@Qr$M-ODW4Qm#3Fq9)G1i-i~a*AKd;>4l@L$A z`(zV1U<3ocduB$HFnL1U&d|_NJu!hj1(ekb7}D{8G`-I`*L=75)%PSmG6L^L6jVE} zl{EiMFtUeDzjXC|2BBvBIo(=p zE7ghkI;tFG9IFHP8R89iJZaki%$yZXDmEw=bBJ31sEcVV{Wt*M?J*zw&B6IP_boV{ z!rj$(p-yABo336X7~U(Fi7NIG=cg>D(aA)*$W15@d_tmX$=Bt(*4&`u;ORq=nU)_oWGu3|AJnF58Oy*7G=e?`A+Skp? zaJ@Kp#ysfe{+D)q+e<_qas=b(Xy_!F?*#b~HTwqB8t^a-3$>@TVS&BAosAxuGt*4t z8c7H5?JLe04lA9Hw&d0-XJVXdBoxXcRZ3#!y~uulS73eodsd`Pn?dNby~(LI_@n2p z#jp>i>f^<-vwI4}3b>%OsDB(#n~77!IRXWZGyN5~t}{6d8wk33iFismUgVF+Xl#Gm ze-W2zFZw5v<@uAN=kj6u%zrViTRbSQJc17h`@J9hl!J9tMrC-pZXr< zBj|zokCjh|{my{-sErJp?~L|<<|TL6x+krYFmvui6Ia~@4eK$FM#@k6gbQV&l<)LTPO==2`l4-V8LNVKu;v3dSR;EMSRqTHe-{$PL+u3kG7sKGg zjr;E)D+iKt#;~dZ6fChybT~~SfCeEMa2~CvUO)6gGF_5!+-R%3dgcHT@-pLyw1{+& zOB2!;k11i0N&5aG-3*v`vJ@Tp;d>(T49)0lBNJdC)IUoP(v;OoG!_9ZG7G-B!xWMQbWhh_hF{Lod4U%P5&6lkCfEo5*a74^#BnZTV%NgU*kzef zbMEzx+3~semMbC)k?SU!-O&;ui*WSDEhszF{ zA|b2&dl`NclgNeS5NG4Np)7Y@T2K$iBfZf5hx?cCvdXB%6yaz8*BhYDjoRg(ziag& zXyWgZSH(DTkj-fZ>*vp^*5XHr?4a($hApGbYCvM&dN>re`is%T6IRw5l>ry0|4bZ5 z*L5&b@TueIt@QdYA3XtvjT3*HHd8nfg*32h`B|g59$iObcu{ZqwO}Xk_VKLS>&~$r z#ViqC#P=j)yYyq)va^MgmIp*qDo8YkZIv@c#*)A`Km4G`n2A|o(%%rL+lGYmzBYbf z9^)Z%O7Sz6cw*T)bH_99r>ax9VW24Yg2fO#iEWC zVqEEd|KRyYO(Duf_tK)(zH4*=xywF=w?3VYke%SK<6II06IoBVfM@ah%3d5yn;N&o z;8(KY7nC)v`S3y|d2;+_mzjhy*_-{)-@y^wk?Yis$vcJS6sxAxZVh(2pMcm6v{-p1 zcFZmtbfz)5Uv!nG^pAbl*$I$meOFEjhn4H5pKruIevjX}km-Qwrb;LMNY~#(aG$jq zNB?$MnAcjvybBbspIS;hHaP@5vY&!w;u)IiHmM$U7@1@nd+lq;!bCm3?(UA$e>+RA eKva9n5?%kg8!qvw>1Ll>sQHBPn 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 literal 0 HcmV?d00001 diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Launchers/launchers.yml b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Launchers/launchers.yml index 7229fa0923..f08de287d5 100644 --- a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Launchers/launchers.yml +++ b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Launchers/launchers.yml @@ -331,6 +331,33 @@ False: { state: base-unshaded-off } - type: PacifismAllowedGun +- type: entity + parent: BaseItem + id: WeaponStickyHand + name: sticky hand + description: They're saying you're reaching. They're saying it's a stretch. You'll show them all, and you'll stick it to them. + components: + - type: AmmoCounter + - type: GrapplingGun + cycleSound: /Audio/Misc/woosh.ogg + ropeSprite: + sprite: Objects/Weapons/Guns/Launchers/sticky_hand.rsi + state: rope + - type: Gun + soundGunshot: /Audio/Misc/stickystretch.ogg + fireRate: 0.5 + clumsyProof: true + soundEmpty: /Audio/Misc/boing.ogg + - type: BasicEntityAmmoProvider + proto: StickyHandPalm + capacity: 1 + - type: Sprite + sprite: Objects/Weapons/Guns/Launchers/sticky_hand.rsi + state: base + - type: UseDelay + delay: 1.5 + - type: PacifismAllowedGun + # Admeme - type: entity name: tether gun diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Projectiles/projectiles.yml b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Projectiles/projectiles.yml index 132bd267fd..ee6b9abf39 100644 --- a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Projectiles/projectiles.yml +++ b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Projectiles/projectiles.yml @@ -1122,6 +1122,17 @@ - HighImpassable - type: GrapplingProjectile +- type: entity + parent: GrapplingHook + id: StickyHandPalm + name: sticky hand palm + categories: [ HideSpawnMenu ] + components: + - type: Sprite + sprite: Objects/Weapons/Guns/Launchers/sticky_hand.rsi + - type: Ammo + muzzleFlash: null + - type: entity name : disabler bolt smg id: BulletDisablerSmg diff --git a/Resources/Textures/Objects/Weapons/Guns/Launchers/sticky_hand.rsi/base.png b/Resources/Textures/Objects/Weapons/Guns/Launchers/sticky_hand.rsi/base.png new file mode 100644 index 0000000000000000000000000000000000000000..ae32a2103615e7f02598728b472ff8a764f2e230 GIT binary patch literal 407 zcmV;I0cie-P)Px$QAtEWR9J=WmNAaPFc3v2B$2F0dm0J~A7(o$MCn7ML{!`PFk4V?5W1C+kR^gl z!G1F_4k5&0S17--Wh?V$=G!sRsCSms%FfnHdvDL=uVDrSsP?9HPgDS@m6cl6vaAl~ zE=)84sgbfZ78`&YEfu+&Be<*7 zZ#8a+o)tcvikyguPUh&=Qjyo@yc*G3@cmgP2#jDH24i2HTHrgJ2PV3j487+%nWJ0h zUU;|#D6y~XLpTVjl{LGc>sldP`I}7G82~OPsvFK1vV}syi8{0(l>KJ0N~YyJ2$2<{ z2HT|G$FM20NAg9 z?Plv`>!Y%-Zpu0>=hi(WnCXUUK~O`Ld(^0ZsWb60)~!(S5j6k+002ovPDHLkV1o08 BuY>>q literal 0 HcmV?d00001 diff --git a/Resources/Textures/Objects/Weapons/Guns/Launchers/sticky_hand.rsi/hook.png b/Resources/Textures/Objects/Weapons/Guns/Launchers/sticky_hand.rsi/hook.png new file mode 100644 index 0000000000000000000000000000000000000000..4367a5ed61dc75b0a247b05e2ba438184e284abc GIT binary patch literal 343 zcmV-d0jU0oP)Px$5lKWrR9J=Wld%eeFc5|>H9{!(G!7kn7&j;B=tDS4r*1xsgF_#rODPDFV#H1- zY9q}>p%n5jCI<6=_j?DhK~b3vr^|WRa>rrI$9u>DH~Y2>L}S!40uj*izkRc8MqwnzV8d0$*LNk5o* z$GNz!|2N)lR+p5r@l@Pt@auJ1_0*hKURNSkFX7w}uP!K9c>g)4L|^9TOy(H5vOA`;Ump`&9iu-j#dES%e>ADZ>Hb0JqcxLMGB?Yc_0KK~eC+GA<)7x7CoCO49~z{()=#_a^ApyE8MkF4wbLz{zmz7o%r(kJ&nn21Sr%p00i_>zopr0C6IhI{*Lx literal 0 HcmV?d00001 diff --git a/Resources/Textures/Objects/Weapons/Guns/Launchers/sticky_hand.rsi/inhand-right.png b/Resources/Textures/Objects/Weapons/Guns/Launchers/sticky_hand.rsi/inhand-right.png new file mode 100644 index 0000000000000000000000000000000000000000..32429ed8f8fdcb97b33241a6dff13eaab14e1f58 GIT binary patch literal 351 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=jKx9jP7LeL$-D%zB|TjnLn`LH zy|t0A$v~jtVUkQtjTAeZ+_AHr2HzAVI44W_QC00a)p4g7sVGK|Y*l5g#(`%o34rM2aSi_E3q_c!JU1ssc95Hh#r`r@MA z?4ZRt0W;KlJ#*6D?s%g0qB_P}Tj7lG=DY8ulEZ7)X+Ma3Ust-Dzx&c+qjOBvG4-&F-`C!@TEYDK$Nk938;+Sf`CZ%b9vrJYD@<);T3K0RTmhl9d1e literal 0 HcmV?d00001 diff --git a/Resources/Textures/Objects/Weapons/Guns/Launchers/sticky_hand.rsi/meta.json b/Resources/Textures/Objects/Weapons/Guns/Launchers/sticky_hand.rsi/meta.json new file mode 100644 index 0000000000..f96629f129 --- /dev/null +++ b/Resources/Textures/Objects/Weapons/Guns/Launchers/sticky_hand.rsi/meta.json @@ -0,0 +1,28 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Sprited by august-sun(GitHub)/augustsun(Discord) for Space Station 14.", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "base" + }, + { + "name": "inhand-left", + "directions": 4 + }, + { + "name": "inhand-right", + "directions": 4 + }, + { + "name": "rope" + }, + { + "name": "hook" + } + ] +} diff --git a/Resources/Textures/Objects/Weapons/Guns/Launchers/sticky_hand.rsi/rope.png b/Resources/Textures/Objects/Weapons/Guns/Launchers/sticky_hand.rsi/rope.png new file mode 100644 index 0000000000000000000000000000000000000000..7a3e03df9e85988e636b12bef84db25efa86a915 GIT binary patch literal 130 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdz#^NA%Cx&(BWL^R}Hl8kyArY-_ z&lw6bDDbcx Date: Sat, 6 Dec 2025 20:54:00 +0000 Subject: [PATCH 027/205] Automatic changelog update --- Resources/Changelog/Changelog.yml | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/Resources/Changelog/Changelog.yml b/Resources/Changelog/Changelog.yml index 7ae77dfe66..c4ded9eb5b 100644 --- a/Resources/Changelog/Changelog.yml +++ b/Resources/Changelog/Changelog.yml @@ -1,12 +1,4 @@ Entries: -- author: Quantum-cross, slarticodefast - changes: - - message: The flash effect is now replaced with a reduced motion variant if the - accessibility setting is enabled in the game options. - type: Add - id: 8758 - time: '2025-07-10T09:30:58.0000000+00:00' - url: https://github.com/space-wizards/space-station-14/pull/37824 - author: K-Dynamic changes: - message: Minigun now has inhand sprites. @@ -3925,3 +3917,10 @@ id: 9258 time: '2025-12-06T18:26:05.0000000+00:00' url: https://github.com/space-wizards/space-station-14/pull/41743 +- author: august-sun + changes: + - message: Added the sticky grappling hand, a clown version of the grappling gun. + type: Add + id: 9259 + time: '2025-12-06T20:52:51.0000000+00:00' + url: https://github.com/space-wizards/space-station-14/pull/37551 From 49656df4102d4c74eeb17308c4da565e495c873b Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Sun, 7 Dec 2025 01:50:18 +0100 Subject: [PATCH 028/205] Update Credits (#41750) Co-authored-by: PJBot --- Resources/Credits/GitHub.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Resources/Credits/GitHub.txt b/Resources/Credits/GitHub.txt index b468100a35..133b14f85a 100644 --- a/Resources/Credits/GitHub.txt +++ b/Resources/Credits/GitHub.txt @@ -1 +1 @@ -0leshe, 0tito, 0x6273, 12rabbits, 1337dakota, 13spacemen, 154942, 2013HORSEMEATSCANDAL, 20kdc, 21Melkuu, 27alaing, 2DSiggy, 3nderall, 4310v343k, 4dplanner, 5tickman, 612git, 778b, 96flo, aaron, abadaba695, Ablankmann, abregado, Absolute-Potato, Absotively, achookh, Acruid, ActiveMammmoth, actually-reb, ada-please, adamsong, Adeinitas, adm2play, Admiral-Obvious-001, adrian, Adrian16199, Ady4ik, Aearo-Deepwater, Aerocrux, Aeshus, Aexolott, Aexxie, africalimedrop, afrokada, AftrLite, AgentSmithRadio, Agoichi, Ahion, aiden, Aidenkrz, aidenkrz, Aisu9, ajcm, AJCM-git, AjexRose, Alekshhh, alexalexmax, alexkar598, AlexMorgan3817, alexum418, alexumandxgabriel08x, Alice4267, Alithsko, Alkheemist, alliephante, ALMv1, Alpaccalypse, Alpha-Two, AlphaQwerty, Altoids1, amatwiedle, amylizzle, ancientpower, Andre19926, Andrew-Fall, AndrewEyeke, AndrewFenriz, AndreyCamper, anri, Anzarot121, ApolloVector, Appiah, april-gras, ar4ill, Arcane-Waffle, archee1, ArchPigeon, ArchRBX, areitpog, Arendian, areyouconfused, arimah, Arkanic, ArkiveDev, armoks, Arteben, ArthurMousatov, ArtisticRoomba, artur, Artxmisery, ArZarLordOfMango, as334, AsikKEsel, AsnDen, asperger-sind, aspiringLich, astriloqua, Atakku, august-sun, AutoOtter, AverageNotDoingAnythingEnjoyer, avghdev, AwareFoxy, Awlod, azzyisnothere, AzzyIsNotHere, B-Kirill, B3CKDOOR, baa14453, BackeTako, BadaBoomie, Bakke, BananaFlambe, Baptr0b0t, BarryNorfolk, BasedUser, bebr3ght, beck-thompson, beesterman, bellwetherlogic, ben, benbryant0, benev0, benjamin-burges, BGare, bhespiritu, bibbly, BigfootBravo, BIGZi0348, bingojohnson, BismarckShuffle, Bixkitts, Blackern5000, Blazeror, blitzthesquishy, Blobadoodle, bloodrizer, Bloody2372, blueDev2, Boaz1111, BobdaBiscuit, BobTheSleder, boiled-water-tsar, Bokser815, bolantej, Booblesnoot42, Boolean-Buckeye, botanySupremist, brainfood1183, BramvanZijp, Brandon-Huu, breeplayx3, BriBrooo, Bright0, BRINGit34, brndd, bryce0110, BubblegumBlue, buletsponge, buntobaggins, buunie099, bvelliquette, BWTCK, byondfuckery, c0rigin, c4llv07e, CaasGit, Caconym27, Calecute, Callmore, Camdot, cammusubi, capnsockless, CaptainMaru, captainsqrbeard, Carbonhell, Carolyn3114, Carou02, carteblanche4me, catdotjs, catlord, Catofquestionableethics, CatTheSystem, CawsForConcern, CDWimmer, Centronias, Chaboricks, chairbender, Chaoticaa, Charlese2, charlie, chartman, ChaseFlorom, chavonadelal, Cheackraze, CheddaCheez, cheesePizza2, CheesePlated, Chief-Engineer, chillyconmor, christhirtle, chromiumboy, Chronophylos, Chubbicous, Chubbygummibear, Ciac32, ciaran, citrea, civilCornball, claustro305, Clement-O, cloudyias, clyf, Clyybber, CMDR-Piboy314, cnv41, coco, cohanna, Cohnway, Cojoke-dot, ColdAutumnRain, Colin-Tel, collinlunn, ComicIronic, Compilatron144, CookieMasterT, coolboy911, CoolioDudio, coolmankid12345, Coolsurf6, cooperwallace, corentt, CormosLemming, CrafterKolyan, CraftyRenter, crazybrain23, Crazydave91920, creadth, CrigCrag, CroilBird, Crotalus, CrudeWax, cryals, CrzyPotato, cubixthree, cutemoongod, Cyberboss, d34d10cc, DadeKuma, Daemon, daerSeebaer, dahnte, dakamakat, DamianX, dan, dangerrevolution, daniel-cr, DanSAussieITS, Daracke, Darkenson, david, DawBla, Daxxi3, dch-GH, ddeegan, de0rix, Deahaka, dean, DEATHB4DEFEAT, Deatherd, deathride58, DebugOk, Decappi, Decortex, Deeeeja, deepdarkdepths, DeepwaterCreations, Deerstop, degradka, Delete69, deltanedas, DenisShvalov, DerbyX, derek, dersheppard, Deserty0, Detintinto, DevilishMilk, devinschubert14, dexlerxd, dffdff2423, DieselMohawk, DieselMohawkTheSequel, digitalic, Dimastra, DinnerCalzone, DinoWattz, Disp-Dev, DisposableCrewmember42, dissidentbullet, DjfjdfofdjfjD, doc-michael, docnite, Doctor-Cpu, DogZeroX, dolgovmi, dontbetank, Doomsdrayk, Doru991, DoubleRiceEddiedd, DoutorWhite, DR-DOCTOR-EVIL-EVIL, Dragonjspider, dragonryan06, drakewill-CRL, Drayff, dreamlyjack, DrEnzyme, dribblydrone, DrMelon, drongood12, DrSingh, DrSmugleaf, drteaspoon420, DTanxxx, DubiousDoggo, DuckManZach, Duddino, dukevanity, duskyjay, Dutch-VanDerLinde, dvir001, dylanstrategie, dylanwhittingham, Dynexust, Easypoller, echo, eclips_e, eden077, EEASAS, Efruit, efzapa, Ekkosangen, ElectroSR, elsie, elthundercloud, Elysium206, emberwinters, Emisse, emmafornash, EmoGarbage404, Endecc, EnrichedCaramel, Entvari, eoineoineoin, ephememory, eris, erohrs2, ERORR404V1, Errant-4, ertanic, esguard, estacaoespacialpirata, eugene, ewokswagger, exincore, exp111, f0x-n3rd, F1restar4, FacePluslll, Fahasor, FairlySadPanda, farrellka-dev, FATFSAAM2, Feluk6174, ficcialfaint, Fiftyllama, Fildrance, FillerVK, FinnishPaladin, firenamefn, Firewars763, FirinMaLazors, Fishfish458, fl-oz, Flareguy, flashgnash, FlipBrooke, FluffiestFloof, FluffMe, FluidRock, flymo5678, foboscheshir, FoLoKe, fooberticus, ForestNoises, forgotmyotheraccount, forkeyboards, forthbridge, Fortune117, foxhorn, freeman2651, freeze2222, frobnic8, Froffy025, Fromoriss, froozigiusz, FrostMando, FrostRibbon, Funce, FungiFellow, FunkySphere, FunTust, Futuristic-OK, GalacticChimp, gamer3107, Gamewar360, gansulalan, GaussiArson, Gaxeer, gbasood, gcoremans, Geekyhobo, genderGeometries, GeneralGaws, Genkail, Gentleman-Bird, geraeumig, Ghagliiarghii, Git-Nivrak, githubuser508, GitHubUser53123, gituhabu, GlassEclipse, GnarpGnarp, GNF54, godisdeadLOL, goet, GoldenCan, Goldminermac, Golinth, golubgik, GoodWheatley, Gorox221, GR1231, gradientvera, graevy, GraniteSidewalk, GreaseMonk, greenrock64, GreyMario, GrownSamoyedDog, GTRsound, gusxyz, Gyrandola, h3half, hamurlik, Hanzdegloker, HappyRoach, happyrobot33, Hardly3D, harikattar, Hayden, he1acdvv, Hebi, Helix-ctrl, helm4142, Henry, HerCoyote23, Hi-Im-Shot, HighTechPuddle, Hitlinemoss, hiucko, hivehum, Hmeister-fake, Hmeister-real, Hobbitmax, hobnob, HoidC, Holinka4ever, holyssss, HoofedEar, Hoolny, hord-brayden, hoshizora-sayo, Hreno, Hrosts, htmlsystem, Huaqas, hubismal, Hugal31, Hyenh, hyperb1, hyperDelegate, hyphenationc, i-justuser-i, iaada, iacore, IamVelcroboy, Ian321, icekot8, icesickleone, iczero, iglov, IgorAnt028, igorsaux, ike709, illersaver, Illiux, Ilushkins33, Ilya246, IlyaElDunaev, imatsoup, IMCB, impubbi, imrenq, imweax, indeano, Injazz, Insineer, insoPL, IntegerTempest, Interrobang01, Intoxicating-Innocence, IProduceWidgets, itsmethom, Itzbenz, iztokbajcar, Jackal298, Jackrost, JackRyd3r, jacksonzck, JackspajfMain, Jacktastic09, Jackw2As, jacob, jamessimo, janekvap, Jark255, Jarmer123, Jaskanbe, JasperJRoth, jbox144, JCGWE30, jerryimmouse, JerryImMouse, Jessetriesagain, jessicamaybe, JesterX666, Jezithyr, jicksaw, JiimBob, JimGamemaster, jimmy12or, JIPDawg, jjtParadox, jkwookee, jmcb, JohnGinnane, johnku1, Jophire, Jopogrechkin, joshepvodka, JpegOfAFrog, jproads, JrInventor05, Jrpl, jukereise, juliangiebel, JustArt1m, JustCone14, justdie12, justin, justintether, JustinTrotter, JustinWinningham, justtne, K-Dynamic, k3yw, Kadeo64, Kaga-404, kaiserbirch, KaiShibaa, kalane15, kalanosh, KamTheSythe, Kanashi-Panda, katzenminer, kbailey-git, Keelin, Keer-Sar, KEEYNy, keikiru, Kelrak, kerisargit, keronshb, KIBORG04, KieueCaprie, Kimpes, kin98, KingFroozy, kira-er, kiri-yoshikage, Kirillcas, Kirus59, Kistras, Kit, Kit0vras, KittenColony, Kittygyat, klaypexx, Kmc2000, Ko4ergaPunk, kognise, kokoc9n, komunre, KonstantinAngelov, kontakt, korczoczek, kosticia, koteq, kotobdev, Kowlin, KrasnoshchekovPavel, Krosus777, Krunklehorn, Kryyto, Kupie, kxvvv, Kyoth25f, kyupolaris, kzhanik, LaCumbiaDelCoronavirus, lajolico, Lamrr, lanedon, LankLTE, laok233, lapatison, larryrussian, lawdog4817, Lazzi0706, leah, leander-0, leonardo-dabepis, leonidussaks, leonsfriedrich, LeoSantich, LetterN, lettern, Level10Cybermancer, LEVELcat, lever1209, LevitatingTree, Lgibb18, lgruthes, LightVillet, lilazero, liltenhead, linkbro1, linkuyx, Litraxx, little-meow-meow, LittleBuilderJane, LittleNorthStar, LittleNyanCat, lizelive, ljm862, lmsnoise, localcc, lokachop, lolman360, Lomcastar, Lordbrandon12, LordCarve, LordEclipse, lucas, LucasTheDrgn, luckyshotpictures, LudwigVonChesterfield, luegamer, luizwritescode, LukaSlade, Lukasz825700516, luminight, lunarcomets, Lusatia, Luxeator, lvvova1, Lyndomen, lyroth001, lzimann, lzk228, M1tht1c, M3739, M4rchy-S, M87S, mac6na6na, MACMAN2003, Macoron, magicalus, magmodius, magnuscrowe, maland1, malchanceux, MaloTV, ManelNavola, manelnavola, Mangohydra, marboww, Markek1, MarkerWicker, marlyn, matt, Matz05, max, MaxNox7, maylokana, MDuch369, meganerobot, MehimoNemo, Mehnix, MeltedPixel, memeproof, MendaxxDev, Menshin, Mephisto72, MerrytheManokit, Mervill, metalgearsloth, MetalSage, MFMessage, mhamsterr, michaelcu, micheel665, mifia, MilenVolf, MilonPL, Minemoder5000, Minty642, minus1over12, Mirino97, mirrorcult, misandrie, MishaUnity, MissKay1994, MisterImp, MisterMecky, Mith-randalf, Mixelz, mjarduk, MjrLandWhale, mkanke-real, MLGTASTICa, mnva0, moderatelyaware, modern-nm, mokiros, momo, Moneyl, monotheonist, Moomoobeef, moony, Morb0, MossyGreySlope, mqole, mr-bo-jangles, Mr0maks, MrFippik, MrPersival, mrrobdemo, mtrs163, muburu, MureixloI, murolem, murphyneko, musicmanvr, MWKane, Myakot, Myctai, N3X15, nabegator, nails-n-tape, Nairodian, Naive817, NakataRin, namespace-Memory, Nannek, NazrinNya, neutrino-laser, NickPowers43, nikitosych, nikthechampiongr, Nimfar11, ninruB, Nirnael, NIXC, nkokic, NkoKirkto, nmajask, noctyrnal, noelkathegod, noirogen, nok-ko, NonchalantNoob, NoobyLegion, Nopey, NoreUhh, not-gavnaed, notafet, notquitehadouken, notsodana, noudoit, noverd, Nox38, NuclearWinter, Nuggets219, nukashimika, nuke-haus, NULL882, nullarmo, nyeogmi, Nylux, Nyranu, Nyxilath, och-och, OctoRocket, OldDanceJacket, OliverOtter, onesch, OneZerooo0, OnsenCapy, OnyxTheBrave, opl-, Orange-Winds, OrangeMoronage9622, OrbitSystem07, Orsoniks, osjarw, Ostaf, othymer, OttoMaticode, Owai-Seek, packmore, paige404, paigemaeforrest, pali6, Palladinium, Pangogie, panzer-iv1, partyaddict, patrikturi, PaulRitter, pavlockblaine03, peccneck, Peptide90, peptron1, perryprog, PeterFuto, PetMudstone, pewter-wiz, pgraycs, PGrayCS, Pgriha, phantom-lily, pheenty, philingham, Phill101, Phooooooooooooooooooooooooooooooosphate, phunnyguy, PicklOH, PilgrimViis, Pill-U, pinkbat5, Piras314, Pireax, Pissachu, pissdemon, Pixel8-dev, PixeltheAertistContrib, PixelTheKermit, PJB3005, Plasmaguy, plinyvic, Plykiya, poeMota, pofitlo, pointer-to-null, pok27, Pok27, poklj, PolterTzi, PoorMansDreams, PopGamer45, portfiend, potato1234x, PotentiallyTom, PotRoastPiggy, Princess-Cheeseballs, ProfanedBane, PROG-MohamedDwidar, Prole0, ProPandaBear, PrPleGoo, ps3moira, Pspritechologist, Psychpsyo, psykana, psykzz, PuceTint, pumkin69, PuroSlavKing, PursuitInAshes, Putnam3145, py01, Pyrovi, qrtDaniil, qrwas, Quantum-cross, quasr-9, quatre, QueerNB, QuietlyWhisper, qwerltaz, Radezolid, RadioMull, Radosvik, Radrark, Rainbeon, Rainfey, Raitononai, Ramlik, RamZ, randy10122, Rane, Ranger6012, Rapidgame7, ravage123321, rbertoche, RedBookcase, Redfire1331, Redict, RedlineTriad, redmushie, RednoWCirabrab, ReeZer2, RemberBM, RemieRichards, RemTim, rene-descartes2021, Renlou, retequizzle, rewafflution, rhailrake, rhsvenson, rich-dunne, RieBi, riggleprime, RIKELOLDABOSS, rinary1, Rinkashikachi, riolume, rlebell33, RobbyTheFish, robinthedragon, Rockdtben, Rohesie, rok-povsic, rokudara-sen, rolfero, RomanNovo, rosieposieeee, Roudenn, router, ruddygreat, rumaks, RumiTiger, Ruzihm, rwrv, S1rFl0, S1ss3l, Saakra, Sadie-silly, saga3152, saintmuntzer, Salex08, sam, samgithubaccount, Samuka-C, SaphireLattice, SapphicOverload, sarahon, sativaleanne, SaveliyM360, sBasalto, ScalyChimp, ScarKy0, ScholarNZL, schrodinger71, scrato, Scribbles0, scrivoy, scruq445, scuffedjays, ScumbagDog, SeamLesss, Segonist, semensponge, sephtasm, ser1-1y, Serkket, sewerpig, SG6732, sh18rw, Shaddap1, ShadeAware, ShadowCommander, shadowtheprotogen546, shaeone, shampunj, shariathotpatrol, SharkSnake98, shibechef, Siginanto, signalsender, SignalWalker, siigiil, silicon14wastaken, Silverfur-underscore, Simyon264, sirdragooon, Sirionaut, SirWarock, Sk1tch, SkaldetSkaeg, Skarletto, Skybailey-dev, skye, Skyedra, SlamBamActionman, slarticodefast, Slava0135, sleepyyapril, slimmslamm, Slyfox333, Smugman, SnappingOpossum, snebl, snicket, sniperchance, Snowni, snowsignal, SolidSyn, SolidusSnek, solstar2, SonicHDC, SoulFN, SoulSloth, Soundwavesghost, soupkilove, southbridge-fur, sowelipililimute, Soydium, SpaceLizard24, SpaceLizardSky, SpaceManiac, SpaceRox1244, SpaceyLady, Spangs04, spanky-spanky, Sparlight, spartak, SpartanKadence, spderman3333, SpeltIncorrectyl, Spessmann, SphiraI, SplinterGP, spoogemonster, sporekto, sporkyz, ssdaniel24, stalengd, stanberytrask, Stanislav4ix, StanTheCarpenter, starbuckss14, Stealthbomber16, Steffo99, stellar-novas, stewie523, stomf, Stop-Signs, stopbreaking, stopka-html, StrawberryMoses, Stray-Pyramid, strO0pwafel, Strol20, StStevens, Subversionary, sunbear-dev, SuperGDPWYL, superjj18, Supernorn, SurrealShibe, SweetAplle, SweptWasTaken, SyaoranFox, Sybil, SYNCHRONIC, Szunti, t, Tainakov, takemysoult, taonewt, tap, TaralGit, Taran, taurie, Tayrtahn, tday93, teamaki, TeenSarlacc, TekuNut, telavivgamers, telyonok, temm1ie, TemporalOroboros, tentekal, terezi4real, Terraspark4941, texcruize, Tezzaide, TGODiamond, TGRCdev, tgrkzus, thanosdegraf, ThatGuyUSA, ThatOneGoblin25, thatrandomcanadianguy, TheArturZh, TheBlueYowie, thecopbennet, TheCze, TheDarkElites, thedraccx, TheEmber, TheFlyingSentry, TheGrimbeeper, TheIntoxicatedCat, thekilk, themias, theomund, TheProNoob678, TherapyGoth, ThereDrD0, TheSecondLord, TheShuEd, thetolbean, thevinter, TheWaffleJesus, thinbug0, ThunderBear2006, timothyteakettle, TimrodDX, timurjavid, tin-man-tim, TiniestShark, Titian3, tk-a369, tkdrg, tmtmtl30, ToastEnjoyer, Toby222, TokenStyle, Tollhouse, Toly65, tom-leys, tomasalves8, Tomeno, Tonydatguy, topy, tornado-technology, TornadoTechnology, tosatur, TotallyLemon, ToxicSonicFan04, Tr1bute, travis-g-reid, treytipton, trixxedbit, TrixxedHeart, tropicalhibi, truepaintgit, Truoizys, Tryded, TsjipTsjip, Tunguso4ka, TurboTrackerss14, tyashley, Tyler-IN, TytosB, Tyzemol, UbaserB, Uberration, ubis1, UBlueberry, uhbg, UKNOWH, UltimateJester, Unbelievable-Salmon, underscorex5, UnicornOnLSD, Unisol, unusualcrow, Uriende, UristMcDorf, user424242420, Utmanarn, Vaaankas, valentfingerov, valquaint, Varen, Vasilis, VasilisThePikachu, veliebm, Velken, VelonacepsCalyxEggs, veprolet, VerinSenpai, veritable-calamity, Veritius, Vermidia, vero5123, verslebas, vexerot, vgskye, viceemargo, VigersRay, violet754, Visne, vitopigno, vitusveit, vlad, vlados1408, VMSolidus, vmzd, VoidMeticulous, voidnull000, volotomite, volundr-, Voomra, Vordenburg, vorkathbruh, Vortebo, vulppine, wachte1, wafehling, walksanatora, Warentan, WarMechanic, Watermelon914, weaversam8, wertanchik, whateverusername0, whatston3, widgetbeck, Will-Oliver-Br, Willhelm53, WilliamECrew, willicassi, Winkarst-cpu, wirdal, wixoaGit, WlarusFromDaSpace, Wolfkey-SomeoneElseTookMyUsername, Worldwaker, wrexbe, wtcwr68, xeri7, xkreksx, xprospero, xRiriq, xsainteer, YanehCheck, yathxyz, Ygg01, YotaXP, youarereadingthis, YoungThugSS14, Yousifb26, youtissoum, yunii, YuriyKiss, yuriykiss, zach-hill, Zadeon, Zalycon, zamp, Zandario, Zap527, Zealith-Gamer, ZelteHonor, zero, ZeroDiamond, ZeWaka, zHonys, zionnBE, ZNixian, Zokkie, ZoldorfTheWizard, zonespace27, Zylofan, Zymem, zzylex +0leshe, 0tito, 0x6273, 12rabbits, 1337dakota, 13spacemen, 154942, 2013HORSEMEATSCANDAL, 20kdc, 21Melkuu, 27alaing, 2DSiggy, 3nderall, 4310v343k, 4dplanner, 5tickman, 612git, 778b, 96flo, aaron, abadaba695, Ablankmann, abregado, Absolute-Potato, Absotively, achookh, Acruid, ActiveMammmoth, actually-reb, ada-please, adamsong, Adeinitas, adm2play, Admiral-Obvious-001, adrian, Adrian16199, Ady4ik, Aearo-Deepwater, Aerocrux, Aeshus, Aexolott, Aexxie, africalimedrop, afrokada, AftrLite, AgentSmithRadio, Agoichi, Ahion, aiden, aidenkrz, Aidenkrz, Aisu9, ajcm, AJCM-git, AjexRose, Alekshhh, alexalexmax, alexkar598, AlexMorgan3817, alexum418, alexumandxgabriel08x, Alice4267, Alithsko, Alkheemist, alliephante, ALMv1, Alpaccalypse, Alpha-Two, AlphaQwerty, Altoids1, amatwiedle, amylizzle, ancientpower, Andre19926, Andrew-Fall, AndrewEyeke, AndrewFenriz, AndreyCamper, anri, Anzarot121, ApolloVector, Appiah, april-gras, ar4ill, Arcane-Waffle, archee1, ArchPigeon, ArchRBX, areitpog, Arendian, areyouconfused, arimah, Arkanic, ArkiveDev, armoks, Arteben, ArthurMousatov, ArtisticRoomba, artur, Artxmisery, ArZarLordOfMango, as334, AsikKEsel, AsnDen, asperger-sind, aspiringLich, astriloqua, Atakku, august-sun, AutoOtter, AverageNotDoingAnythingEnjoyer, avghdev, AwareFoxy, Awlod, AzzyIsNotHere, azzyisnothere, B-Kirill, B3CKDOOR, baa14453, BackeTako, BadaBoomie, Bakke, BananaFlambe, Baptr0b0t, BarryNorfolk, BasedUser, bebr3ght, beck-thompson, beesterman, bellwetherlogic, ben, benbryant0, benev0, benjamin-burges, BGare, bhespiritu, bibbly, BigfootBravo, BIGZi0348, bingojohnson, BismarckShuffle, Bixkitts, Blackern5000, Blazeror, blitzthesquishy, Blobadoodle, bloodrizer, Bloody2372, blueDev2, Boaz1111, BobdaBiscuit, BobTheSleder, boiled-water-tsar, Bokser815, bolantej, Booblesnoot42, Boolean-Buckeye, botanySupremist, brainfood1183, BramvanZijp, Brandon-Huu, breeplayx3, BriBrooo, BRINGit34, brndd, bryce0110, BubblegumBlue, buletsponge, buntobaggins, buunie099, bvelliquette, BWTCK, byondfuckery, c0rigin, c4llv07e, CaasGit, Caconym27, Calecute, Callmore, Camdot, cammusubi, capnsockless, CaptainMaru, captainsqrbeard, Carbonhell, Carolyn3114, Carou02, carteblanche4me, catdotjs, catlord, Catofquestionableethics, CatTheSystem, CawsForConcern, CDWimmer, Centronias, Chaboricks, chairbender, Chaoticaa, Charlese2, charlie, chartman, ChaseFlorom, chavonadelal, Cheackraze, CheddaCheez, cheesePizza2, CheesePlated, Chief-Engineer, chillyconmor, christhirtle, chromiumboy, Chronophylos, Chubbicous, Chubbygummibear, Ciac32, ciaran, citrea, civilCornball, claustro305, Clement-O, cloudyias, clyf, Clyybber, CMDR-Piboy314, cnv41, coco, cohanna, Cohnway, Cojoke-dot, ColdAutumnRain, Colin-Tel, collinlunn, ComicIronic, Compilatron144, CookieMasterT, coolboy911, CoolioDudio, coolmankid12345, Coolsurf6, cooperwallace, corentt, CormosLemming, CrafterKolyan, CraftyRenter, crazybrain23, Crazydave91920, creadth, CrigCrag, CroilBird, Crotalus, CrudeWax, cryals, CrzyPotato, cubixthree, cutemoongod, Cyberboss, d34d10cc, DadeKuma, Daemon, daerSeebaer, dahnte, dakamakat, DamianX, dan, dangerrevolution, daniel-cr, DanSAussieITS, Daracke, Darkenson, david, DawBla, Daxxi3, dch-GH, ddeegan, de0rix, Deahaka, dean, DEATHB4DEFEAT, Deatherd, deathride58, DebugOk, Decappi, Decortex, Deeeeja, deepdarkdepths, DeepwaterCreations, Deerstop, degradka, Delete69, deltanedas, DenisShvalov, DerbyX, derek, dersheppard, Deserty0, Detintinto, DevilishMilk, devinschubert14, dexlerxd, dffdff2423, DieselMohawk, DieselMohawkTheSequel, digitalic, Dimastra, DinnerCalzone, DinoWattz, Disp-Dev, DisposableCrewmember42, dissidentbullet, DjfjdfofdjfjD, doc-michael, docnite, Doctor-Cpu, DogZeroX, dolgovmi, dontbetank, Doomsdrayk, Doru991, DoubleRiceEddiedd, DoutorWhite, DR-DOCTOR-EVIL-EVIL, Dragonjspider, dragonryan06, drakewill-CRL, Drayff, dreamlyjack, DrEnzyme, dribblydrone, DrMelon, drongood12, DrSingh, DrSmugleaf, drteaspoon420, DTanxxx, DubiousDoggo, DuckManZach, Duddino, dukevanity, duskyjay, Dutch-VanDerLinde, dvir001, dylanstrategie, dylanwhittingham, Dynexust, Easypoller, echo, eclips_e, eden077, EEASAS, Efruit, efzapa, Ekkosangen, ElectroSR, elsie, elthundercloud, Elysium206, emberwinters, Emisse, emmafornash, EmoGarbage404, Endecc, EnrichedCaramel, Entvari, eoineoineoin, ephememory, eris, erohrs2, ERORR404V1, Errant-4, ertanic, esguard, estacaoespacialpirata, eugene, ewokswagger, exincore, exp111, f0x-n3rd, F1restar4, FacePluslll, Fahasor, FairlySadPanda, farrellka-dev, FATFSAAM2, Feluk6174, ficcialfaint, Fiftyllama, Fildrance, fillervk, FinnishPaladin, firenamefn, Firewars763, FirinMaLazors, Fishfish458, fl-oz, Flareguy, flashgnash, FlipBrooke, FluffiestFloof, FluffMe, FluidRock, flymo5678, foboscheshir, FoLoKe, fooberticus, ForestNoises, forgotmyotheraccount, forkeyboards, forthbridge, Fortune117, foxhorn, freeman2651, freeze2222, frobnic8, Froffy025, Fromoriss, froozigiusz, FrostMando, FrostRibbon, Funce, FungiFellow, FunkySphere, FunTust, Futuristic-OK, GalacticChimp, gamer3107, Gamewar360, gansulalan, GaussiArson, Gaxeer, gbasood, gcoremans, Geekyhobo, genderGeometries, GeneralGaws, Genkail, Gentleman-Bird, geraeumig, Ghagliiarghii, Git-Nivrak, githubuser508, GitHubUser53123, gituhabu, GlassEclipse, GnarpGnarp, GNF54, godisdeadLOL, goet, GoldenCan, Goldminermac, Golinth, golubgik, GoodWheatley, Gorox221, GR1231, gradientvera, graevy, GraniteSidewalk, GreaseMonk, greenrock64, GreyMario, GrownSamoyedDog, GTRsound, gusxyz, Gyrandola, h3half, hamurlik, Hanzdegloker, HappyRoach, happyrobot33, Hardly3D, harikattar, Hayden, he1acdvv, Hebi, Helix-ctrl, helm4142, Henry, HerCoyote23, Hi-Im-Shot, HighTechPuddle, Hitlinemoss, hiucko, hivehum, Hmeister-fake, Hmeister-real, Hobbitmax, hobnob, HoidC, Holinka4ever, holyssss, HoofedEar, Hoolny, hord-brayden, hoshizora-sayo, Hreno, Hrosts, htmlsystem, Huaqas, hubismal, Hugal31, Hyenh, hyperb1, hyperDelegate, hyphenationc, i-justuser-i, iaada, iacore, IamVelcroboy, Ian321, icekot8, icesickleone, iczero, iglov, IgorAnt028, igorsaux, ike709, illersaver, Illiux, Ilushkins33, Ilya246, IlyaElDunaev, imatsoup, IMCB, impubbi, imrenq, imweax, indeano, Injazz, Insineer, insoPL, IntegerTempest, Interrobang01, Intoxicating-Innocence, IProduceWidgets, itsmethom, Itzbenz, iztokbajcar, Jackal298, Jackrost, JackRyd3r, jacksonzck, JackspajfMain, Jacktastic09, Jackw2As, jacob, jamessimo, janekvap, Jark255, Jarmer123, Jaskanbe, JasperJRoth, jbox144, JCGWE30, JerryImMouse, jerryimmouse, Jessetriesagain, jessicamaybe, JesterX666, Jewelots, Jezithyr, jicksaw, JiimBob, JimGamemaster, jimmy12or, JIPDawg, jjtParadox, jkwookee, jmcb, JohnGinnane, johnku1, Jophire, Jopogrechkin, joshepvodka, JpegOfAFrog, jproads, JrInventor05, Jrpl, jukereise, juliangiebel, JustArt1m, JustCone14, justdie12, justin, justintether, JustinTrotter, JustinWinningham, justtne, K-Dynamic, k3yw, Kadeo64, Kaga-404, kaiserbirch, KaiShibaa, kalane15, kalanosh, KamTheSythe, Kanashi-Panda, katzenminer, kbailey-git, Keelin, Keer-Sar, KEEYNy, keikiru, Kelrak, kerisargit, keronshb, KIBORG04, KieueCaprie, Kimpes, kin98, KingFroozy, kira-er, kiri-yoshikage, Kirillcas, Kirus59, Kistras, Kit, Kit0vras, KittenColony, Kittygyat, klaypexx, Kmc2000, Ko4ergaPunk, kognise, kokoc9n, komunre, KonstantinAngelov, kontakt, korczoczek, kosticia, koteq, kotobdev, Kowlin, KrasnoshchekovPavel, Krosus777, Krunklehorn, Kryyto, Kupie, kxvvv, Kyoth25f, kyupolaris, kzhanik, LaCumbiaDelCoronavirus, lajolico, Lamrr, lanedon, LankLTE, laok233, lapatison, larryrussian, lawdog4817, Lazzi0706, leah, leander-0, leonardo-dabepis, leonidussaks, leonsfriedrich, LeoSantich, lettern, LetterN, Level10Cybermancer, LEVELcat, lever1209, LevitatingTree, Lgibb18, lgruthes, LightVillet, lilazero, liltenhead, linkbro1, linkuyx, Litraxx, little-meow-meow, LittleBuilderJane, LittleNorthStar, LittleNyanCat, lizelive, ljm862, lmsnoise, localcc, lokachop, lolman360, Lomcastar, Lordbrandon12, LordCarve, LordEclipse, lucas, LucasTheDrgn, luckyshotpictures, LudwigVonChesterfield, luegamer, luizwritescode, LukaSlade, Lukasz825700516, luminight, lunarcomets, Lusatia, Luxeator, lvvova1, Lyndomen, lyroth001, lzimann, lzk228, M1tht1c, M3739, M4rchy-S, M87S, mac6na6na, MACMAN2003, Macoron, magicalus, magmodius, magnuscrowe, maland1, malchanceux, MaloTV, manelnavola, ManelNavola, Mangohydra, marboww, Markek1, MarkerWicker, marlyn, matt, Matz05, max, MaxNox7, maylokana, MDuch369, meganerobot, MehimoNemo, Mehnix, MeltedPixel, memeproof, MendaxxDev, Menshin, Mephisto72, MerrytheManokit, Mervill, metalgearsloth, MetalSage, MFMessage, mhamsterr, michaelcu, micheel665, mifia, MilenVolf, MilonPL, Minemoder5000, Minty642, minus1over12, Mirino97, mirrorcult, misandrie, MishaUnity, MissKay1994, MisterImp, MisterMecky, Mith-randalf, Mixelz, mjarduk, MjrLandWhale, mkanke-real, MLGTASTICa, mnva0, moderatelyaware, modern-nm, mokiros, momo, Moneyl, monotheonist, Moomoobeef, moony, Morb0, MossyGreySlope, mqole, mr-bo-jangles, Mr0maks, MrFippik, MrPersival, mrrobdemo, mtrs163, muburu, MureixloI, murolem, murphyneko, musicmanvr, MWKane, Myakot, Myctai, N3X15, nabegator, nails-n-tape, Nairodian, Naive817, NakataRin, namespace-Memory, Nannek, NazrinNya, neutrino-laser, NickPowers43, nikitosych, nikthechampiongr, Nimfar11, ninruB, Nirnael, NIXC, nkokic, NkoKirkto, nmajask, noctyrnal, noelkathegod, noirogen, nok-ko, NonchalantNoob, NoobyLegion, Nopey, NoreUhh, not-gavnaed, notafet, notquitehadouken, notsodana, noudoit, noverd, Nox38, NuclearWinter, Nuggets219, nukashimika, nuke-haus, NULL882, nullarmo, nyeogmi, Nylux, Nyranu, Nyxilath, och-och, OctoRocket, OldDanceJacket, OliverOtter, onesch, OneZerooo0, OnsenCapy, OnyxTheBrave, opl-, Orange-Winds, OrangeMoronage9622, OrbitSystem07, Orsoniks, osjarw, Ostaf, othymer, OttoMaticode, Owai-Seek, packmore, paige404, paigemaeforrest, pali6, Palladinium, Pangogie, panzer-iv1, partyaddict, patrikturi, PaulRitter, pavlockblaine03, peccneck, Peptide90, peptron1, perryprog, PeterFuto, PetMudstone, pewter-wiz, PGrayCS, pgraycs, Pgriha, phantom-lily, pheenty, philingham, Phill101, Phooooooooooooooooooooooooooooooosphate, phunnyguy, PicklOH, PilgrimViis, Pill-U, pinkbat5, Piras314, Pireax, Pissachu, pissdemon, Pixel8-dev, PixeltheAertistContrib, PixelTheKermit, PJB3005, Plasmaguy, plinyvic, Plykiya, poeMota, pofitlo, pointer-to-null, Pok27, poklj, PolterTzi, PoorMansDreams, PopGamer45, portfiend, potato1234x, PotentiallyTom, PotRoastPiggy, Princess-Cheeseballs, ProfanedBane, PROG-MohamedDwidar, Prole0, ProPandaBear, PrPleGoo, ps3moira, Pspritechologist, Psychpsyo, psykana, psykzz, PuceTint, pumkin69, PuroSlavKing, PursuitInAshes, Putnam3145, py01, Pyrovi, qrtDaniil, qrwas, Quantum-cross, quasr-9, quatre, QueerNB, QuietlyWhisper, qwerltaz, Radezolid, RadioMull, Radosvik, Radrark, Rainbeon, Rainfey, Raitononai, Ramlik, RamZ, randy10122, Rane, Ranger6012, Rapidgame7, ravage123321, rbertoche, RedBookcase, Redfire1331, Redict, RedlineTriad, redmushie, RednoWCirabrab, ReeZer2, RemberBM, RemieRichards, RemTim, rene-descartes2021, Renlou, retequizzle, rewafflution, rhailrake, rhsvenson, rich-dunne, RieBi, riggleprime, RIKELOLDABOSS, rinary1, Rinkashikachi, riolume, rlebell33, RobbyTheFish, robinthedragon, Rockdtben, Rohesie, rok-povsic, rokudara-sen, rolfero, RomanNovo, rosieposieeee, Roudenn, router, ruddygreat, rumaks, RumiTiger, Ruzihm, rwrv, S1rFl0, S1ss3l, Saakra, Sadie-silly, saga3152, saintmuntzer, Salex08, sam, samgithubaccount, Samuka-C, SaphireLattice, SapphicOverload, sarahon, sativaleanne, SaveliyM360, sBasalto, ScalyChimp, ScarKy0, ScholarNZL, schrodinger71, scrato, Scribbles0, scrivoy, scruq445, scuffedjays, ScumbagDog, SeamLesss, Segonist, semensponge, sephtasm, ser1-1y, Serkket, sewerpig, SG6732, sh18rw, Shaddap1, ShadeAware, ShadowCommander, shadowtheprotogen546, shaeone, shampunj, shariathotpatrol, SharkSnake98, shibechef, Siginanto, signalsender, SignalWalker, siigiil, silicon14wastaken, Silverfur-underscore, Simyon264, sirdragooon, Sirionaut, SirWarock, Sk1tch, SkaldetSkaeg, Skarletto, skeeka-dev, Skybailey-dev, skye, Skyedra, SlamBamActionman, slarticodefast, Slava0135, sleepyyapril, slimmslamm, Slyfox333, Smugman, SnappingOpossum, snebl, snicket, sniperchance, Snowni, snowsignal, SolidSyn, SolidusSnek, solstar2, SonicHDC, SoulFN, SoulSloth, Soundwavesghost, soupkilove, southbridge-fur, sowelipililimute, Soydium, SpaceLizard24, SpaceLizardSky, SpaceManiac, SpaceRox1244, SpaceyLady, Spangs04, spanky-spanky, Sparlight, spartak, SpartanKadence, spderman3333, SpeltIncorrectyl, Spessmann, SphiraI, SplinterGP, spoogemonster, sporekto, sporkyz, ssdaniel24, stalengd, stanberytrask, Stanislav4ix, StanTheCarpenter, starbuckss14, Stealthbomber16, Steffo99, stellar-novas, stewie523, stomf, Stop-Signs, stopbreaking, stopka-html, StrawberryMoses, Stray-Pyramid, strO0pwafel, Strol20, StStevens, Subversionary, sunbear-dev, SuperGDPWYL, superjj18, Supernorn, SurrealShibe, SweetAplle, SweptWasTaken, SyaoranFox, Sybil, SYNCHRONIC, Szunti, t, Tainakov, takemysoult, taonewt, tap, TaralGit, Taran, taurie, Tayrtahn, tday93, teamaki, TeenSarlacc, TekuNut, telavivgamers, telyonok, temm1ie, TemporalOroboros, tentekal, terezi4real, Terraspark4941, texcruize, Tezzaide, TGODiamond, TGRCdev, tgrkzus, thanosdegraf, ThatGuyUSA, ThatOneGoblin25, thatrandomcanadianguy, TheArturZh, TheBlueYowie, thecopbennet, TheCze, TheDarkElites, thedraccx, TheEmber, TheFlyingSentry, TheGrimbeeper, TheIntoxicatedCat, thekilk, themias, theomund, TheProNoob678, TherapyGoth, ThereDrD0, TheSecondLord, TheShuEd, thetolbean, thevinter, TheWaffleJesus, thinbug0, ThunderBear2006, timothyteakettle, TimrodDX, timurjavid, tin-man-tim, TiniestShark, Titian3, tk-a369, tkdrg, tmtmtl30, ToastEnjoyer, Toby222, TokenStyle, Tollhouse, Toly65, tom-leys, tomasalves8, Tomeno, Tonydatguy, topy, tornado-technology, TornadoTechnology, tosatur, TotallyLemon, ToxicSonicFan04, Tr1bute, travis-g-reid, treytipton, trixxedbit, TrixxedHeart, tropicalhibi, truepaintgit, Truoizys, Tryded, TsjipTsjip, Tunguso4ka, TurboTrackerss14, tyashley, Tyler-IN, TytosB, Tyzemol, UbaserB, Uberration, ubis1, UBlueberry, uhbg, UKNOWH, UltimateJester, Unbelievable-Salmon, underscorex5, UnicornOnLSD, Unisol, unusualcrow, Uriende, UristMcDorf, user424242420, Utmanarn, Vaaankas, valentfingerov, valquaint, Varen, Vasilis, VasilisThePikachu, veliebm, Velken, VelonacepsCalyxEggs, veprolet, VerinSenpai, veritable-calamity, Veritius, Vermidia, vero5123, verslebas, vexerot, vgskye, viceemargo, VigersRay, violet754, Visne, vitopigno, vitusveit, vlad, vlados1408, VMSolidus, vmzd, VoidMeticulous, voidnull000, volotomite, volundr-, Voomra, Vordenburg, vorkathbruh, Vortebo, vulppine, wachte1, wafehling, walksanatora, Warentan, WarMechanic, Watermelon914, weaversam8, wertanchik, whateverusername0, whatston3, widgetbeck, Will-Oliver-Br, Willhelm53, WilliamECrew, willicassi, Winkarst-cpu, wirdal, wixoaGit, WlarusFromDaSpace, Wolfkey-SomeoneElseTookMyUsername, Worldwaker, wrexbe, wtcwr68, xeri7, xkreksx, xprospero, xRiriq, xsainteer, YanehCheck, yathxyz, Ygg01, YotaXP, youarereadingthis, YoungThugSS14, Yousifb26, youtissoum, yunii, YuriyKiss, yuriykiss, zach-hill, Zadeon, Zalycon, zamp, Zandario, Zap527, Zealith-Gamer, ZelteHonor, zero, ZeroDiamond, ZeWaka, zHonys, zionnBE, ZNixian, Zokkie, ZoldorfTheWizard, zonespace27, Zylofan, Zymem, zzylex From dd79254a0fcd4ff6e996c2effc0ef1f964355728 Mon Sep 17 00:00:00 2001 From: beck-thompson <107373427+beck-thompson@users.noreply.github.com> Date: Sat, 6 Dec 2025 18:35:46 -0800 Subject: [PATCH 029/205] Add voice mask implant (#41551) * Add voice mask implant * Remove voice mask * Voice mask implant now overrides your identity * voice mask implant can now be extracted, when taking out the voice mask implant it now updates your name proplery * Simplify logic --- .../VoiceMask/VoiceMaskComponent.cs | 7 +++ Content.Server/VoiceMask/VoiceMaskSystem.cs | 45 +++++++++++++++++-- .../Components/IdentityBlockerComponent.cs | 5 +++ .../Components/IdentityComponent.cs | 10 ++++- .../IdentityManagement/IdentitySystem.cs | 4 +- .../SharedSubdermalImplantSystem.Relays.cs | 4 ++ .../Implants/SharedSubdermalImplantSystem.cs | 7 +++ .../VoiceMask/VoiceMaskSetNameEvent.cs | 8 ++++ .../Locale/en-US/store/uplink-catalog.ftl | 6 +-- Resources/Prototypes/Actions/types.yml | 8 ++++ .../Prototypes/Catalog/thief_toolbox_sets.yml | 2 +- .../Prototypes/Catalog/uplink_catalog.yml | 26 +++++------ .../Entities/Objects/Misc/implanters.yml | 9 ++++ .../Objects/Misc/subdermal_implants.yml | 19 ++++++++ 14 files changed, 136 insertions(+), 24 deletions(-) diff --git a/Content.Server/VoiceMask/VoiceMaskComponent.cs b/Content.Server/VoiceMask/VoiceMaskComponent.cs index d3116f94db..f7e07f2bd1 100644 --- a/Content.Server/VoiceMask/VoiceMaskComponent.cs +++ b/Content.Server/VoiceMask/VoiceMaskComponent.cs @@ -26,6 +26,12 @@ public sealed partial class VoiceMaskComponent : Component [DataField] public ProtoId? VoiceMaskSpeechVerb; + ///

+ /// If true will override the users identity with whatever is. + /// + [DataField] + public bool OverrideIdentity; + /// /// The action that gets displayed when the voice mask is equipped. /// @@ -38,3 +44,4 @@ public sealed partial class VoiceMaskComponent : Component [DataField] public EntityUid? ActionEntity; } + diff --git a/Content.Server/VoiceMask/VoiceMaskSystem.cs b/Content.Server/VoiceMask/VoiceMaskSystem.cs index 528acd58b0..170bddf082 100644 --- a/Content.Server/VoiceMask/VoiceMaskSystem.cs +++ b/Content.Server/VoiceMask/VoiceMaskSystem.cs @@ -4,6 +4,9 @@ using Content.Shared.CCVar; using Content.Shared.Chat; using Content.Shared.Clothing; using Content.Shared.Database; +using Content.Shared.IdentityManagement; +using Content.Shared.IdentityManagement.Components; +using Content.Shared.Implants; using Content.Shared.Inventory; using Content.Shared.Lock; using Content.Shared.Popups; @@ -26,6 +29,7 @@ public sealed partial class VoiceMaskSystem : EntitySystem [Dependency] private readonly SharedActionsSystem _actions = default!; [Dependency] private readonly LockSystem _lock = default!; [Dependency] private readonly SharedContainerSystem _container = default!; + [Dependency] private readonly IdentitySystem _identity = default!; // CCVar. private int _maxNameLength; @@ -33,7 +37,11 @@ public sealed partial class VoiceMaskSystem : EntitySystem public override void Initialize() { base.Initialize(); - SubscribeLocalEvent>(OnTransformSpeakerName); + SubscribeLocalEvent>(OnTransformSpeakerNameInventory); + SubscribeLocalEvent>(OnTransformSpeakerNameImplant); + SubscribeLocalEvent>(OnSeeIdentityAttemptEvent); + SubscribeLocalEvent(OnImplantImplantedEvent); + SubscribeLocalEvent(OnImplantRemovedEventEvent); SubscribeLocalEvent(OnLockToggled); SubscribeLocalEvent(OnChangeName); SubscribeLocalEvent(OnChangeVerb); @@ -43,10 +51,30 @@ public sealed partial class VoiceMaskSystem : EntitySystem Subs.CVar(_cfgManager, CCVars.MaxNameLength, value => _maxNameLength = value, true); } - private void OnTransformSpeakerName(Entity entity, ref InventoryRelayedEvent args) + private void OnTransformSpeakerNameInventory(Entity entity, ref InventoryRelayedEvent args) { - args.Args.VoiceName = GetCurrentVoiceName(entity); - args.Args.SpeechVerb = entity.Comp.VoiceMaskSpeechVerb ?? args.Args.SpeechVerb; + TransformVoice(entity, args.Args); + } + + private void OnTransformSpeakerNameImplant(Entity entity, ref ImplantRelayEvent args) + { + TransformVoice(entity, args.Event); + } + + private void OnSeeIdentityAttemptEvent(Entity entity, ref ImplantRelayEvent args) + { + if (entity.Comp.OverrideIdentity) + args.Event.NameOverride = GetCurrentVoiceName(entity); + } + + private void OnImplantImplantedEvent(Entity entity, ref ImplantImplantedEvent ev) + { + _identity.QueueIdentityUpdate(ev.Implanted); + } + + private void OnImplantRemovedEventEvent(Entity entity, ref ImplantRemovedEvent ev) + { + _identity.QueueIdentityUpdate(ev.Implanted); } private void OnLockToggled(Entity ent, ref LockToggledEvent args) @@ -79,6 +107,9 @@ public sealed partial class VoiceMaskSystem : EntitySystem return; } + var nameUpdatedEvent = new VoiceMaskNameUpdatedEvent(entity, entity.Comp.VoiceMaskName, message.Name); + RaiseLocalEvent(message.Actor, ref nameUpdatedEvent); + entity.Comp.VoiceMaskName = message.Name; _adminLogger.Add(LogType.Action, LogImpact.Medium, $"{ToPrettyString(message.Actor):player} set voice of {ToPrettyString(entity):mask}: {entity.Comp.VoiceMaskName}"); @@ -123,5 +154,11 @@ public sealed partial class VoiceMaskSystem : EntitySystem { return entity.Comp.VoiceMaskName ?? Loc.GetString("voice-mask-default-name-override"); } + + private void TransformVoice(Entity entity, TransformSpeakerNameEvent args) + { + args.VoiceName = GetCurrentVoiceName(entity); + args.SpeechVerb = entity.Comp.VoiceMaskSpeechVerb ?? args.SpeechVerb; + } #endregion } diff --git a/Content.Shared/IdentityManagement/Components/IdentityBlockerComponent.cs b/Content.Shared/IdentityManagement/Components/IdentityBlockerComponent.cs index cc92a4c078..5dfbc7e36c 100644 --- a/Content.Shared/IdentityManagement/Components/IdentityBlockerComponent.cs +++ b/Content.Shared/IdentityManagement/Components/IdentityBlockerComponent.cs @@ -37,4 +37,9 @@ public sealed class SeeIdentityAttemptEvent : CancellableEntityEventArgs, IInven // cumulative coverage from each relayed slot public IdentityBlockerCoverage TotalCoverage = IdentityBlockerCoverage.NONE; + + /// + /// A specific name to override your identiy with. + /// + public string? NameOverride = null; } diff --git a/Content.Shared/IdentityManagement/Components/IdentityComponent.cs b/Content.Shared/IdentityManagement/Components/IdentityComponent.cs index 4646ccc835..778066361f 100644 --- a/Content.Shared/IdentityManagement/Components/IdentityComponent.cs +++ b/Content.Shared/IdentityManagement/Components/IdentityComponent.cs @@ -47,10 +47,16 @@ public sealed class IdentityRepresentation PresumedName = presumedName; } - public string ToStringKnown(bool trueName) + /// + /// Get this identity as a string + /// + /// Should we show their "true" name or hide it? + /// A "true name" override + /// + public string ToStringKnown(bool trueName, string? nameOverride) { return trueName - ? TrueName + ? nameOverride ?? TrueName : PresumedName ?? ToStringUnknown(); } diff --git a/Content.Shared/IdentityManagement/IdentitySystem.cs b/Content.Shared/IdentityManagement/IdentitySystem.cs index 6b11085715..990abd9e70 100644 --- a/Content.Shared/IdentityManagement/IdentitySystem.cs +++ b/Content.Shared/IdentityManagement/IdentitySystem.cs @@ -8,6 +8,7 @@ using Content.Shared.Humanoid; using Content.Shared.IdentityManagement.Components; using Content.Shared.Inventory; using Content.Shared.Inventory.Events; +using Content.Shared.VoiceMask; using Robust.Shared.Containers; using Robust.Shared.Enums; using Robust.Shared.GameObjects.Components.Localization; @@ -53,6 +54,7 @@ public sealed class IdentitySystem : EntitySystem SubscribeLocalEvent((uid, _, _) => QueueIdentityUpdate(uid)); SubscribeLocalEvent((uid, _, _) => QueueIdentityUpdate(uid)); SubscribeLocalEvent((uid, _, _) => QueueIdentityUpdate(uid)); + SubscribeLocalEvent((uid, _, _) => QueueIdentityUpdate(uid)); } /// @@ -197,7 +199,7 @@ public sealed class IdentitySystem : EntitySystem var ev = new SeeIdentityAttemptEvent(); RaiseLocalEvent(target, ev); - return representation.ToStringKnown(!ev.Cancelled); + return representation.ToStringKnown(!ev.Cancelled, ev.NameOverride); } /// diff --git a/Content.Shared/Implants/SharedSubdermalImplantSystem.Relays.cs b/Content.Shared/Implants/SharedSubdermalImplantSystem.Relays.cs index 4c0b2c2361..774be5d9b2 100644 --- a/Content.Shared/Implants/SharedSubdermalImplantSystem.Relays.cs +++ b/Content.Shared/Implants/SharedSubdermalImplantSystem.Relays.cs @@ -1,3 +1,5 @@ +using Content.Shared.Chat; +using Content.Shared.IdentityManagement.Components; using Content.Shared.Implants.Components; using Content.Shared.Interaction; using Content.Shared.Interaction.Events; @@ -12,6 +14,8 @@ public abstract partial class SharedSubdermalImplantSystem SubscribeLocalEvent(RelayToImplantEvent); SubscribeLocalEvent(RelayToImplantEvent); SubscribeLocalEvent(RelayToImplantEvent); + SubscribeLocalEvent(RelayToImplantEvent); + SubscribeLocalEvent(RelayToImplantEvent); } /// diff --git a/Content.Shared/Implants/SharedSubdermalImplantSystem.cs b/Content.Shared/Implants/SharedSubdermalImplantSystem.cs index 630416b598..a347b3db64 100644 --- a/Content.Shared/Implants/SharedSubdermalImplantSystem.cs +++ b/Content.Shared/Implants/SharedSubdermalImplantSystem.cs @@ -169,7 +169,14 @@ public abstract partial class SharedSubdermalImplantSystem : EntitySystem [ByRefEvent] public readonly record struct ImplantImplantedEvent { + /// + /// The implant itself + /// public readonly EntityUid Implant; + + /// + /// The entity getting implanted + /// public readonly EntityUid Implanted; public ImplantImplantedEvent(EntityUid implant, EntityUid implanted) diff --git a/Content.Shared/VoiceMask/VoiceMaskSetNameEvent.cs b/Content.Shared/VoiceMask/VoiceMaskSetNameEvent.cs index 8e1adb194f..caeb842931 100644 --- a/Content.Shared/VoiceMask/VoiceMaskSetNameEvent.cs +++ b/Content.Shared/VoiceMask/VoiceMaskSetNameEvent.cs @@ -6,3 +6,11 @@ public sealed partial class VoiceMaskSetNameEvent : InstantActionEvent { } +/// +/// Raised on an entity when their voice masks name is updated +/// +/// Uid of the voice mask +/// The old name +/// The new name +[ByRefEvent] +public readonly record struct VoiceMaskNameUpdatedEvent(EntityUid VoiceMaskUid, string? OldName, string NewName); diff --git a/Resources/Locale/en-US/store/uplink-catalog.ftl b/Resources/Locale/en-US/store/uplink-catalog.ftl index f3df1dcde0..7f0f14aed8 100644 --- a/Resources/Locale/en-US/store/uplink-catalog.ftl +++ b/Resources/Locale/en-US/store/uplink-catalog.ftl @@ -171,9 +171,6 @@ uplink-binary-translator-key-desc = Lets you tap into the silicons' binary chann uplink-hypopen-name = Hypopen uplink-hypopen-desc = A chemical hypospray disguised as a pen, capable of instantly injecting up to 10u of reagents. Starts empty. -uplink-voice-mask-name = Voice Mask -uplink-voice-mask-desc = A gas mask that lets you adjust your voice to whoever you can think of. Also utilizes cutting-edge chameleon technology. - uplink-clothing-eyes-hud-syndicate-name = Syndicate Visor uplink-clothing-eyes-hud-syndicate-desc = The syndicate's professional head-up display, designed for better detection of humanoids and their subsequent elimination. @@ -226,6 +223,9 @@ uplink-micro-bomb-implanter-desc = Explode on death or manual activation with th uplink-radio-implanter-name = Radio Implanter uplink-radio-implanter-desc = Implants a Syndicate radio, allowing covert communication without a headset. +uplink-voice-mask-implanter-name = Voice Mask Implanter +uplink-voice-mask-implanter-desc = Modifies your vocal cords to be able to sound like anyone you could imagine. + # Bundles uplink-observation-kit-name = Observation Kit uplink-observation-kit-desc = Includes surveillance camera monitor board and security hud disguised as sunglasses. diff --git a/Resources/Prototypes/Actions/types.yml b/Resources/Prototypes/Actions/types.yml index d5ad1f3b55..721508b905 100644 --- a/Resources/Prototypes/Actions/types.yml +++ b/Resources/Prototypes/Actions/types.yml @@ -488,3 +488,11 @@ icon: Interface/Actions/shop.png - type: InstantAction event: !type:IntrinsicStoreActionEvent + +- type: entity + parent: ActionChangeVoiceMask + id: ActionChangeVoiceMaskImplant + components: + - type: Action + icon: { sprite: Interface/Actions/voice-mask.rsi, state: icon } + itemIconStyle: BigAction diff --git a/Resources/Prototypes/Catalog/thief_toolbox_sets.yml b/Resources/Prototypes/Catalog/thief_toolbox_sets.yml index 79831bedc5..81e3d10972 100644 --- a/Resources/Prototypes/Catalog/thief_toolbox_sets.yml +++ b/Resources/Prototypes/Catalog/thief_toolbox_sets.yml @@ -83,7 +83,7 @@ - EncryptionKeyStationMaster - CyberPen - BriefcaseThiefBribingBundleFilled - - ClothingMaskGasVoiceChameleon + - VoiceMaskImplanter #- todo Chameleon Stamp - type: thiefBackpackSet diff --git a/Resources/Prototypes/Catalog/uplink_catalog.yml b/Resources/Prototypes/Catalog/uplink_catalog.yml index 3a3882eae0..3ecd49c4b4 100644 --- a/Resources/Prototypes/Catalog/uplink_catalog.yml +++ b/Resources/Prototypes/Catalog/uplink_catalog.yml @@ -1567,6 +1567,19 @@ categories: - UplinkImplants +- type: listing + id: UplinkVoiceMaskImplant + name: uplink-voice-mask-implanter-name + description: uplink-voice-mask-implanter-desc + icon: { sprite: Interface/Actions/voice-mask.rsi, state: icon } + productEntity: VoiceMaskImplanter + discountCategory: usualDiscounts + discountDownTo: + Telecrystal: 1 + cost: + Telecrystal: 2 + categories: + - UplinkImplants # Wearables @@ -1583,19 +1596,6 @@ categories: - UplinkWearables -- type: listing - id: UplinkVoiceMask - name: uplink-voice-mask-name - description: uplink-voice-mask-desc - productEntity: ClothingMaskGasVoiceChameleon - discountCategory: usualDiscounts - discountDownTo: - Telecrystal: 1 - cost: - Telecrystal: 2 - categories: - - UplinkWearables - - type: listing id: UplinkHolster name: uplink-holster-name diff --git a/Resources/Prototypes/Entities/Objects/Misc/implanters.yml b/Resources/Prototypes/Entities/Objects/Misc/implanters.yml index 7d2408a06d..dbf281f7d1 100644 --- a/Resources/Prototypes/Entities/Objects/Misc/implanters.yml +++ b/Resources/Prototypes/Entities/Objects/Misc/implanters.yml @@ -47,6 +47,7 @@ - FakeMindShieldImplant - RadioImplant - ChameleonControllerImplant + - VoiceMaskImplant deimplantFailureDamage: types: Cellular: 50 @@ -256,6 +257,14 @@ - type: Implanter implant: ChameleonControllerImplant +- type: entity + id: VoiceMaskImplanter + name: voice mask implanter + parent: BaseImplantOnlyImplanterSyndi + components: + - type: Implanter + implant: VoiceMaskImplant + #Nuclear Operative/Special implanters - type: entity diff --git a/Resources/Prototypes/Entities/Objects/Misc/subdermal_implants.yml b/Resources/Prototypes/Entities/Objects/Misc/subdermal_implants.yml index 8f6acd91d6..c6f545f21f 100644 --- a/Resources/Prototypes/Entities/Objects/Misc/subdermal_implants.yml +++ b/Resources/Prototypes/Entities/Objects/Misc/subdermal_implants.yml @@ -239,6 +239,25 @@ enum.ChameleonControllerKey.Key: type: ChameleonControllerBoundUserInterface +- type: entity + parent: BaseSubdermalImplant + id: VoiceMaskImplant + name: voice mask implant + description: This implant allows you to change your voice at will. + categories: [ HideSpawnMenu ] + components: + - type: SubdermalImplant + implantAction: ActionChangeVoiceMaskImplant + - type: VoiceMask + overrideIdentity: true + - type: UserInterface + interfaces: + enum.VoiceMaskUIKey.Key: + type: VoiceMaskBoundUserInterface + - type: Tag + tags: + - SubdermalImplant + #Nuclear Operative/Special Exclusive implants - type: entity From c9ebb1b6b769242a403d546ecaf88848da396ba2 Mon Sep 17 00:00:00 2001 From: PJBot Date: Sun, 7 Dec 2025 02:49:13 +0000 Subject: [PATCH 030/205] Automatic changelog update --- Resources/Changelog/Changelog.yml | 22 ++++++++++++---------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/Resources/Changelog/Changelog.yml b/Resources/Changelog/Changelog.yml index c4ded9eb5b..35a1a15f1f 100644 --- a/Resources/Changelog/Changelog.yml +++ b/Resources/Changelog/Changelog.yml @@ -1,14 +1,4 @@ Entries: -- author: K-Dynamic - changes: - - message: Minigun now has inhand sprites. - type: Add - - message: Miniguns and other HMGs now require two hands to pick up and slows you - by 20%. - type: Tweak - id: 8759 - time: '2025-07-10T12:42:02.0000000+00:00' - url: https://github.com/space-wizards/space-station-14/pull/35344 - author: ScarKy0 changes: - message: SecTech vendor now starts with a few bolas. @@ -3924,3 +3914,15 @@ id: 9259 time: '2025-12-06T20:52:51.0000000+00:00' url: https://github.com/space-wizards/space-station-14/pull/37551 +- author: Beck + changes: + - message: The voice mask can no longer be purchased in the uplink. + type: Remove + - message: You can now purchase a voice mask implanter for 2 TC in the uplink! + type: Add + - message: The thief communicator kit now comes with a voice implanter rather than + voice mask! + type: Tweak + id: 9260 + time: '2025-12-07T02:48:06.0000000+00:00' + url: https://github.com/space-wizards/space-station-14/pull/41551 From 58f884133bcd3978411556bc55b7ece3bda71e3f Mon Sep 17 00:00:00 2001 From: SlamBamActionman <83650252+SlamBamActionman@users.noreply.github.com> Date: Sun, 7 Dec 2025 04:07:32 +0100 Subject: [PATCH 031/205] Remove Zookeeper and Boxer jobs (#41741) --- Resources/Locale/en-US/chat/highlights.ftl | 2 - .../Locale/en-US/job/job-description.ftl | 2 - Resources/Locale/en-US/job/job-names.ftl | 4 -- .../en-US/preferences/loadout-groups.ftl | 3 -- .../Prototypes/Catalog/uplink_catalog.yml | 20 +--------- .../Entities/Markers/Spawners/jobs.yml | 24 ------------ .../Objects/Misc/identification_cards.yml | 4 -- .../Weapons/Guns/Shotguns/shotguns.yml | 2 +- .../Entities/Objects/base_contraband.yml | 9 ----- .../Loadouts/Jobs/Wildcards/boxer.yml | 31 --------------- .../Loadouts/Miscellaneous/jobtrinkets.yml | 24 ------------ .../Prototypes/Loadouts/loadout_groups.yml | 30 -------------- .../Prototypes/Loadouts/role_loadouts.yml | 24 ------------ Resources/Prototypes/Maps/oasis.yml | 1 - Resources/Prototypes/Reagents/toxins.yml | 4 -- .../Prototypes/Roles/Jobs/Wildcards/boxer.yml | 37 ------------------ .../Roles/Jobs/Wildcards/zookeeper.yml | 39 ------------------- .../Prototypes/Roles/Jobs/departments.yml | 4 -- .../Prototypes/Roles/play_time_trackers.yml | 6 --- Resources/migration.yml | 4 ++ 20 files changed, 6 insertions(+), 268 deletions(-) delete mode 100644 Resources/Prototypes/Loadouts/Jobs/Wildcards/boxer.yml delete mode 100644 Resources/Prototypes/Roles/Jobs/Wildcards/boxer.yml delete mode 100644 Resources/Prototypes/Roles/Jobs/Wildcards/zookeeper.yml diff --git a/Resources/Locale/en-US/chat/highlights.ftl b/Resources/Locale/en-US/chat/highlights.ftl index 6d3610e7f0..0a1c2d948d 100644 --- a/Resources/Locale/en-US/chat/highlights.ftl +++ b/Resources/Locale/en-US/chat/highlights.ftl @@ -46,9 +46,7 @@ highlights-passenger = Passenger, Greytider, "Tider" highlights-service-worker = Service Worker # Station-specific -highlights-boxer = Boxer highlights-reporter = Reporter, Journalist -highlights-zookeeper = Zookeeper highlights-psychologist = Psychologist, Psychology # Silicon diff --git a/Resources/Locale/en-US/job/job-description.ftl b/Resources/Locale/en-US/job/job-description.ftl index 414f59fb18..b7c6228e12 100644 --- a/Resources/Locale/en-US/job/job-description.ftl +++ b/Resources/Locale/en-US/job/job-description.ftl @@ -3,7 +3,6 @@ job-description-atmostech = Optimize the station's atmospherics setup, and synth job-description-bartender = Manage the bar and keep it lively, give out drinks, and listen to the crew's stories. job-description-botanist = Grow food for the chef, drugs for medbay, and other plants to keep yourself entertained. job-description-borg = Half-human, Half-machine. Follow your laws, serve the crew, and hound the science team for upgrades. -job-description-boxer = Fight your way to the top! Challenge the head of personnel and get brigged when you win. Currently available on Core and Convex. job-description-brigmedic = Fight in the rear of the security service, for the lives of your comrades! You are the first and last hope of your squad. Hippocrates bless you. job-description-cadet = Learn the basics of arresting criminals and managing the brig. Listen to your supervisors and feel free to ask them for any help. job-description-captain = Keep the station running, delegate work to the other heads of staff, and exert your will. @@ -46,4 +45,3 @@ job-description-serviceworker = Learn the basics of bartending, cooking, and gro job-description-station-ai = Follow your laws, serve the crew. job-description-visitor = Enjoy your visit to the station. job-description-warden = Patrol the Security department, ensure that no one is stealing from the armory, and make sure that all prisoners are processed and let out when their time is up. -job-description-zookeeper = Put on a joyful display of cute animals and space carps for all the crew to see. Currently available on Oasis. diff --git a/Resources/Locale/en-US/job/job-names.ftl b/Resources/Locale/en-US/job/job-names.ftl index a4b80d8b3f..f7d3167dca 100644 --- a/Resources/Locale/en-US/job/job-names.ftl +++ b/Resources/Locale/en-US/job/job-names.ftl @@ -46,8 +46,6 @@ job-name-ertengineer = ERT Engineer job-name-ertsecurity = ERT Security job-name-ertmedic = ERT Medic job-name-ertjanitor = ERT Janitor -job-name-boxer = Boxer -job-name-zookeeper = Zookeeper job-name-visitor = Visitor job-name-cluwne = Cluwne @@ -73,7 +71,6 @@ JobAtmosphericTechnician = Atmospheric Technician JobBartender = Bartender JobBorg = Borg JobBotanist = Botanist -JobBoxer = Boxer JobCaptain = Captain JobCargoTechnician = Cargo Technician JobCentralCommandOfficial = Central Command Official @@ -117,4 +114,3 @@ JobStationEngineer = Station Engineer JobTechnicalAssistant = Technical Assistant JobVisitor = Visitor JobWarden = Warden -JobZookeeper = Zookeeper diff --git a/Resources/Locale/en-US/preferences/loadout-groups.ftl b/Resources/Locale/en-US/preferences/loadout-groups.ftl index b014cd180a..7a1adcc65b 100644 --- a/Resources/Locale/en-US/preferences/loadout-groups.ftl +++ b/Resources/Locale/en-US/preferences/loadout-groups.ftl @@ -207,6 +207,3 @@ loadout-group-medical-glasses = Medical glasses loadout-group-reporter-jumpsuit = Reporter jumpsuit loadout-group-psychologist-jumpsuit = Psychologist jumpsuit - -loadout-group-boxer-jumpsuit = Boxer jumpsuit -loadout-group-boxer-gloves = Boxer gloves diff --git a/Resources/Prototypes/Catalog/uplink_catalog.yml b/Resources/Prototypes/Catalog/uplink_catalog.yml index 3ecd49c4b4..9925596c48 100644 --- a/Resources/Prototypes/Catalog/uplink_catalog.yml +++ b/Resources/Prototypes/Catalog/uplink_catalog.yml @@ -2012,23 +2012,6 @@ whitelist: - Passenger -- type: listing - id: uplinkRiggedBoxingGlovesBoxer - name: uplink-rigged-boxing-gloves-name - description: uplink-rigged-boxing-gloves-desc - productEntity: ClothingHandsGlovesBoxingRigged - discountCategory: usualDiscounts - discountDownTo: - Telecrystal: 2 - cost: - Telecrystal: 4 - categories: - - UplinkJob - conditions: - - !type:BuyerJobCondition - whitelist: - - Boxer - - type: listing id: uplinkNecronomicon name: uplink-necronomicon-name @@ -2210,9 +2193,8 @@ categories: - UplinkJob conditions: - - !type:BuyerJobCondition # We can't use BuyerDepartmentCondition here since Zookeeper and Chef can also get this + - !type:BuyerJobCondition # We can't use BuyerDepartmentCondition here since Chef can also get this whitelist: - - Zookeeper - Scientist - ResearchDirector - Chef diff --git a/Resources/Prototypes/Entities/Markers/Spawners/jobs.yml b/Resources/Prototypes/Entities/Markers/Spawners/jobs.yml index 3a43116798..108c65c3cc 100644 --- a/Resources/Prototypes/Entities/Markers/Spawners/jobs.yml +++ b/Resources/Prototypes/Entities/Markers/Spawners/jobs.yml @@ -280,18 +280,6 @@ - state: green - state: musician -- type: entity - id: SpawnPointBoxer - parent: SpawnPointJobBase - name: boxer - components: - - type: SpawnPoint - job_id: Boxer - - type: Sprite - layers: - - state: green - - state: boxer - - type: entity id: SpawnPointBorg parent: SpawnPointJobBase @@ -606,15 +594,3 @@ layers: - state: green - state: psychologist - -- type: entity - id: SpawnPointZookeeper - parent: SpawnPointJobBase - name: zookeeper - components: - - type: SpawnPoint - job_id: Zookeeper - - type: Sprite - layers: - - state: green - - state: zookeeper diff --git a/Resources/Prototypes/Entities/Objects/Misc/identification_cards.yml b/Resources/Prototypes/Entities/Objects/Misc/identification_cards.yml index 2ecf7be55d..29edda603f 100644 --- a/Resources/Prototypes/Entities/Objects/Misc/identification_cards.yml +++ b/Resources/Prototypes/Entities/Objects/Misc/identification_cards.yml @@ -784,8 +784,6 @@ - sprite: *icon-rsi offset: *icon-offset state: Boxer - - type: PresetIdCard - job: Boxer - type: entity parent: IDCardStandard @@ -802,8 +800,6 @@ - sprite: *icon-rsi offset: *icon-offset state: Zookeeper - - type: PresetIdCard - job: Zookeeper #Supply diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Shotguns/shotguns.yml b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Shotguns/shotguns.yml index 0a23a51a4f..27dc095c73 100644 --- a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Shotguns/shotguns.yml +++ b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Shotguns/shotguns.yml @@ -104,7 +104,7 @@ - type: entity name: double-barreled shotgun - parent: [BaseWeaponShotgun, BaseGunWieldable, BaseSecurityBartenderZookeeperContraband] + parent: [BaseWeaponShotgun, BaseGunWieldable, BaseSecurityBartenderContraband] id: WeaponShotgunDoubleBarreled description: An immortal classic. Uses .50 shotgun shells. components: diff --git a/Resources/Prototypes/Entities/Objects/base_contraband.yml b/Resources/Prototypes/Entities/Objects/base_contraband.yml index fc7bb857f1..8db8e12cd4 100644 --- a/Resources/Prototypes/Entities/Objects/base_contraband.yml +++ b/Resources/Prototypes/Entities/Objects/base_contraband.yml @@ -189,15 +189,6 @@ allowedDepartments: [ Security ] allowedJobs: [ Bartender ] -- type: entity - id: BaseSecurityBartenderZookeeperContraband - parent: BaseRestrictedContraband - abstract: true - components: - - type: Contraband - allowedDepartments: [ Security ] - allowedJobs: [ Bartender, Zookeeper ] - - type: entity id: BaseSecurityLawyerContraband parent: BaseRestrictedContraband diff --git a/Resources/Prototypes/Loadouts/Jobs/Wildcards/boxer.yml b/Resources/Prototypes/Loadouts/Jobs/Wildcards/boxer.yml deleted file mode 100644 index a9833798c7..0000000000 --- a/Resources/Prototypes/Loadouts/Jobs/Wildcards/boxer.yml +++ /dev/null @@ -1,31 +0,0 @@ -# Jumpsuit -- type: loadout - id: BoxerShorts - equipment: - jumpsuit: UniformShortsRed - -- type: loadout - id: BoxerShortsWithTop - equipment: - jumpsuit: UniformShortsRedWithTop - -# Gloves -- type: loadout - id: RedBoxingGloves - equipment: - gloves: ClothingHandsGlovesBoxingRed - -- type: loadout - id: BlueBoxingGloves - equipment: - gloves: ClothingHandsGlovesBoxingBlue - -- type: loadout - id: GreenBoxingGloves - equipment: - gloves: ClothingHandsGlovesBoxingGreen - -- type: loadout - id: YellowBoxingGloves - equipment: - gloves: ClothingHandsGlovesBoxingYellow diff --git a/Resources/Prototypes/Loadouts/Miscellaneous/jobtrinkets.yml b/Resources/Prototypes/Loadouts/Miscellaneous/jobtrinkets.yml index 0cfc932c77..9da2b02f2b 100644 --- a/Resources/Prototypes/Loadouts/Miscellaneous/jobtrinkets.yml +++ b/Resources/Prototypes/Loadouts/Miscellaneous/jobtrinkets.yml @@ -464,27 +464,3 @@ storage: back: - PlushieLizardJobPsychologist - -- type: loadout - id: LizardPlushieBoxer - effects: - - !type:JobRequirementLoadoutEffect - requirement: - !type:RoleTimeRequirement - role: JobBoxer - time: 72000 # 20hr - storage: - back: - - PlushieLizardJobBoxer - -- type: loadout - id: LizardPlushieZookeeper - effects: - - !type:JobRequirementLoadoutEffect - requirement: - !type:RoleTimeRequirement - role: JobZookeeper - time: 72000 # 20hr - storage: - back: - - PlushieLizardJobZookeeper diff --git a/Resources/Prototypes/Loadouts/loadout_groups.yml b/Resources/Prototypes/Loadouts/loadout_groups.yml index b1b1a3a294..33b4ba1fcc 100644 --- a/Resources/Prototypes/Loadouts/loadout_groups.yml +++ b/Resources/Prototypes/Loadouts/loadout_groups.yml @@ -1600,36 +1600,6 @@ loadouts: - LizardPlushiePsychologist -- type: loadoutGroup - id: BoxerJumpsuit - name: loadout-group-boxer-jumpsuit - loadouts: - - BoxerShorts - - BoxerShortsWithTop - -- type: loadoutGroup - id: BoxerGloves - name: loadout-group-boxer-gloves - loadouts: - - RedBoxingGloves - - BlueBoxingGloves - - GreenBoxingGloves - - YellowBoxingGloves - -- type: loadoutGroup - id: BoxerJobTrinkets - name: loadout-group-jobtrinkets - minLimit: 0 - loadouts: - - LizardPlushieBoxer - -- type: loadoutGroup - id: ZookeeperJobTrinkets - name: loadout-group-jobtrinkets - minLimit: 0 - loadouts: - - LizardPlushieZookeeper - # Other - type: loadoutGroup id: SurvivalSyndicate diff --git a/Resources/Prototypes/Loadouts/role_loadouts.yml b/Resources/Prototypes/Loadouts/role_loadouts.yml index d0ab791a30..25999b6686 100644 --- a/Resources/Prototypes/Loadouts/role_loadouts.yml +++ b/Resources/Prototypes/Loadouts/role_loadouts.yml @@ -514,17 +514,6 @@ - GroupSpeciesBreathToolMedical # Wildcards -- type: roleLoadout - id: JobZookeeper - groups: - - GroupTankHarness - - CommonBackpack - - Glasses - - Survival - - Trinkets - - ZookeeperJobTrinkets - - GroupSpeciesBreathTool - - type: roleLoadout id: JobReporter groups: @@ -549,19 +538,6 @@ - PsychologistJobTrinkets - GroupSpeciesBreathTool -- type: roleLoadout - id: JobBoxer - groups: - - GroupTankHarness - - BoxerJumpsuit - - BoxerGloves - - CommonBackpack - - Glasses - - Survival - - Trinkets - - BoxerJobTrinkets - - GroupSpeciesBreathTool - # These loadouts are used for non-crew spawns, like off-station antags and event mobs # They will be used without player configuration, thus they will only ever apply what is forced by MinLimit diff --git a/Resources/Prototypes/Maps/oasis.yml b/Resources/Prototypes/Maps/oasis.yml index ea7618d586..af45486bfc 100644 --- a/Resources/Prototypes/Maps/oasis.yml +++ b/Resources/Prototypes/Maps/oasis.yml @@ -32,7 +32,6 @@ Chaplain: [ 1, 1 ] Librarian: [ 1, 1 ] ServiceWorker: [ 2, 2 ] - Zookeeper: [ 1, 1 ] Reporter: [ 1, 1 ] #engineering (8) AtmosphericTechnician: [ 3, 3 ] diff --git a/Resources/Prototypes/Reagents/toxins.yml b/Resources/Prototypes/Reagents/toxins.yml index baf39989b8..9ddbc4aef2 100644 --- a/Resources/Prototypes/Reagents/toxins.yml +++ b/Resources/Prototypes/Reagents/toxins.yml @@ -58,8 +58,6 @@ physicalDesc: reagent-physical-desc-nondescript allowedDepartments: - Medical - allowedJobs: - - Zookeeper metabolisms: Poison: effects: @@ -555,8 +553,6 @@ allowedDepartments: - Security - Medical - allowedJobs: - - Zookeeper color: "#AAAAAA" metabolisms: Poison: diff --git a/Resources/Prototypes/Roles/Jobs/Wildcards/boxer.yml b/Resources/Prototypes/Roles/Jobs/Wildcards/boxer.yml deleted file mode 100644 index bcf7d065c4..0000000000 --- a/Resources/Prototypes/Roles/Jobs/Wildcards/boxer.yml +++ /dev/null @@ -1,37 +0,0 @@ -- type: job - id: Boxer - name: job-name-boxer - description: job-description-boxer - playTimeTracker: JobBoxer - startingGear: BoxerGear - icon: "JobIconBoxer" - supervisors: job-supervisors-hop - access: - - Service - - Maintenance - special: - - !type:GiveItemOnHolidaySpecial - holiday: BoxingDay - prototype: ClothingHandsGlovesBoxingRigged - -- type: startingGear - id: BoxerGear - equipment: - id: BoxerPDA - ears: ClothingHeadsetService - shoes: ClothingShoesColorRed - belt: ClothingBeltChampion - #storage: - #back: - #- Stuff - -- type: chameleonOutfit - id: BoxerChameleonOutfit - job: Boxer - equipment: - head: ClothingHeadHatBlacksoft - eyes: ClothingEyesGlassesCheapSunglasses - mask: ClothingMaskBreath - outerClothing: ClothingOuterWinterColorGray - jumpsuit: UniformShortsRedWithTop - neck: ClothingNeckScarfStripedRed diff --git a/Resources/Prototypes/Roles/Jobs/Wildcards/zookeeper.yml b/Resources/Prototypes/Roles/Jobs/Wildcards/zookeeper.yml deleted file mode 100644 index 643e372a2f..0000000000 --- a/Resources/Prototypes/Roles/Jobs/Wildcards/zookeeper.yml +++ /dev/null @@ -1,39 +0,0 @@ -- type: job - id: Zookeeper - name: job-name-zookeeper - description: job-description-zookeeper - playTimeTracker: JobZookeeper - startingGear: ZookeeperGear - icon: "JobIconZookeeper" - supervisors: job-supervisors-hop - access: - - Service - - Maintenance - special: - - !type:GiveItemOnHolidaySpecial - holiday: MonkeyDay - prototype: MonkeyCubeBox - -- type: startingGear - id: ZookeeperGear - equipment: - jumpsuit: ClothingUniformJumpsuitSafari - head: ClothingHeadSafari - shoes: ClothingShoesColorWhite - id: ZookeeperPDA - ears: ClothingHeadsetService - #storage: - #back: - #- Stuff - -- type: chameleonOutfit - id: ZookeeperChameleonOutfit - job: Zookeeper - equipment: - eyes: ClothingEyesGlassesCheapSunglasses - mask: ClothingMaskBreath - outerClothing: ClothingOuterWinterColorLightBrown - neck: ClothingNeckScarfStripedBrown - belt: ClothingBeltStorageWaistbag - gloves: ClothingHandsGlovesColorBrown - diff --git a/Resources/Prototypes/Roles/Jobs/departments.yml b/Resources/Prototypes/Roles/Jobs/departments.yml index 15737a273b..6294657ab3 100644 --- a/Resources/Prototypes/Roles/Jobs/departments.yml +++ b/Resources/Prototypes/Roles/Jobs/departments.yml @@ -17,7 +17,6 @@ roles: - Bartender - Botanist - - Boxer - Chaplain - Chef - Clown @@ -30,7 +29,6 @@ - Passenger - Reporter - Visitor - - Zookeeper - ServiceWorker - type: department @@ -139,8 +137,6 @@ color: "#9FED58" weight: 10 roles: - - Boxer - Reporter - - Zookeeper - Psychologist primary: false diff --git a/Resources/Prototypes/Roles/play_time_trackers.yml b/Resources/Prototypes/Roles/play_time_trackers.yml index 26647e79ae..1bc37757ce 100644 --- a/Resources/Prototypes/Roles/play_time_trackers.yml +++ b/Resources/Prototypes/Roles/play_time_trackers.yml @@ -147,9 +147,3 @@ - type: playTimeTracker id: JobWarden - -- type: playTimeTracker - id: JobBoxer - -- type: playTimeTracker - id: JobZookeeper diff --git a/Resources/migration.yml b/Resources/migration.yml index 3cf660fdf4..3ab01ff75c 100644 --- a/Resources/migration.yml +++ b/Resources/migration.yml @@ -738,3 +738,7 @@ ToySkeleton: ToyFigurineSkeleton # 2025-10-28 DrinkKiraSpecial: DrinkOrangeLimeSodaGlass + +# 2025-12-06 +SpawnPointZookeeper: null +SpawnPointBoxer: null From 113507d4b424ee4aacf36b63b448021f07ae9105 Mon Sep 17 00:00:00 2001 From: PJBot Date: Sun, 7 Dec 2025 03:21:00 +0000 Subject: [PATCH 032/205] Automatic changelog update --- Resources/Changelog/Changelog.yml | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/Resources/Changelog/Changelog.yml b/Resources/Changelog/Changelog.yml index 35a1a15f1f..90a05f4134 100644 --- a/Resources/Changelog/Changelog.yml +++ b/Resources/Changelog/Changelog.yml @@ -1,11 +1,4 @@ Entries: -- author: ScarKy0 - changes: - - message: SecTech vendor now starts with a few bolas. - type: Add - id: 8760 - time: '2025-07-10T14:47:41.0000000+00:00' - url: https://github.com/space-wizards/space-station-14/pull/38902 - author: Hitlinemoss changes: - message: The station AI can now pick kobold/monkey holograms as customization @@ -3926,3 +3919,10 @@ id: 9260 time: '2025-12-07T02:48:06.0000000+00:00' url: https://github.com/space-wizards/space-station-14/pull/41551 +- author: SlamBamActionman + changes: + - message: Removed the Zookeeper and Boxer jobs. + type: Remove + id: 9261 + time: '2025-12-07T03:19:52.0000000+00:00' + url: https://github.com/space-wizards/space-station-14/pull/41741 From 35ea5f18200a0cc02859760645b20af262652312 Mon Sep 17 00:00:00 2001 From: Hitlinemoss <209321380+Hitlinemoss@users.noreply.github.com> Date: Sun, 7 Dec 2025 06:42:34 -0500 Subject: [PATCH 033/205] Fixed hyperzine (micro)injector descriptions (#41755) --- .../Entities/Objects/Specific/Medical/hypospray.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Resources/Prototypes/Entities/Objects/Specific/Medical/hypospray.yml b/Resources/Prototypes/Entities/Objects/Specific/Medical/hypospray.yml index 876518d61e..343113e2f0 100644 --- a/Resources/Prototypes/Entities/Objects/Specific/Medical/hypospray.yml +++ b/Resources/Prototypes/Entities/Objects/Specific/Medical/hypospray.yml @@ -525,7 +525,7 @@ parent: [ChemicalMedipen, BaseSyndicateContraband] id: Stimpack name: hyperzine injector - description: A chemical injector containing a large shot of pure hyperzine. For when it's time to throw down. Effects last for about 30 seconds. + description: A chemical injector containing a large shot of pure hyperzine. For when it's time to throw down. Effects last for about 60 seconds. components: - type: Item inhandVisuals: @@ -569,7 +569,7 @@ parent: [ChemicalMedipen, BaseSyndicateContraband] id: StimpackMini name: hyperzine microinjector - description: A chemical microinjector containing a small shot of pure hyperzine. Effects last for about 15 seconds. + description: A chemical microinjector containing a small shot of pure hyperzine. Effects last for about 30 seconds. components: - type: Item inhandVisuals: From e0299c9afaba8395df6d344b545bfb329bb4cd3b Mon Sep 17 00:00:00 2001 From: PJBot Date: Sun, 7 Dec 2025 11:57:19 +0000 Subject: [PATCH 034/205] Automatic changelog update --- Resources/Changelog/Changelog.yml | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/Resources/Changelog/Changelog.yml b/Resources/Changelog/Changelog.yml index 90a05f4134..117b9ba1f9 100644 --- a/Resources/Changelog/Changelog.yml +++ b/Resources/Changelog/Changelog.yml @@ -1,12 +1,4 @@ Entries: -- author: Hitlinemoss - changes: - - message: The station AI can now pick kobold/monkey holograms as customization - options. - type: Add - id: 8761 - time: '2025-07-10T17:11:23.0000000+00:00' - url: https://github.com/space-wizards/space-station-14/pull/38888 - author: slarticodefast changes: - message: Fixed clones not getting the thieving skill. @@ -3926,3 +3918,11 @@ id: 9261 time: '2025-12-07T03:19:52.0000000+00:00' url: https://github.com/space-wizards/space-station-14/pull/41741 +- author: Hitlinemoss + changes: + - message: The hyperzine injector/microinjector now accurately list their new, longer + durations. + type: Fix + id: 9262 + time: '2025-12-07T11:56:11.0000000+00:00' + url: https://github.com/space-wizards/space-station-14/pull/41755 From c164897ead168e7ef08bc1521d8c8b3eb74d7862 Mon Sep 17 00:00:00 2001 From: Velken <8467292+Velken@users.noreply.github.com> Date: Sun, 7 Dec 2025 10:25:57 -0300 Subject: [PATCH 035/205] Snap Booms (fake snap pops) (#38654) * snap booms * damage nerf * fixing brain issue of being 8am and i havent slept yet * typo * Update damage and name * Fix linter issues * fixed typo snapPopFake -> snapPopExplosive --------- Co-authored-by: SlamBamActionman --- .../Entities/Objects/Fun/snap_pops.yml | 3 +++ .../Entities/Objects/Weapons/Bombs/funny.yml | 15 +++++++++++ .../Graphs/weapons/snappop_explosive.yml | 25 +++++++++++++++++++ 3 files changed, 43 insertions(+) create mode 100644 Resources/Prototypes/Recipes/Construction/Graphs/weapons/snappop_explosive.yml diff --git a/Resources/Prototypes/Entities/Objects/Fun/snap_pops.yml b/Resources/Prototypes/Entities/Objects/Fun/snap_pops.yml index df567912ec..4392103805 100644 --- a/Resources/Prototypes/Entities/Objects/Fun/snap_pops.yml +++ b/Resources/Prototypes/Entities/Objects/Fun/snap_pops.yml @@ -33,6 +33,9 @@ maxIntensity: 0.01 intensitySlope: 1 totalIntensity: 0.01 + - type: Construction + graph: SnapPopExplosiveGraph + node: snapPop - type: entity parent: BaseStorageItem diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Bombs/funny.yml b/Resources/Prototypes/Entities/Objects/Weapons/Bombs/funny.yml index 298b9d7c12..1618611e2c 100644 --- a/Resources/Prototypes/Entities/Objects/Weapons/Bombs/funny.yml +++ b/Resources/Prototypes/Entities/Objects/Weapons/Bombs/funny.yml @@ -131,3 +131,18 @@ - type: Tag tags: - Banana + +- type: entity + parent: SnapPop + id: SnapPopExplosive + suffix: explosive + components: + - type: Explosive + explosionType: Default + maxIntensity: 0.8 + intensitySlope: 1 + totalIntensity: 3.5 + canCreateVacuum: false + - type: Construction + graph: SnapPopExplosiveGraph + node: snapPopExplosive diff --git a/Resources/Prototypes/Recipes/Construction/Graphs/weapons/snappop_explosive.yml b/Resources/Prototypes/Recipes/Construction/Graphs/weapons/snappop_explosive.yml new file mode 100644 index 0000000000..7f6905a7b8 --- /dev/null +++ b/Resources/Prototypes/Recipes/Construction/Graphs/weapons/snappop_explosive.yml @@ -0,0 +1,25 @@ +- type: constructionGraph + id: SnapPopExplosiveGraph + start: start + graph: + - node: start + edges: + - to: snapPop #have to make a start step to have the behaviour of clicking on a snap pop with gunpowder to make the fake one. Since there is no recipe for them on the construction menu, the materials bellow have no real meaning. + steps: + - material: Gunpowder + amount: 1 + - material: Paper + amount: 4 + doAfter: 4 + - node: snapPop + entity: SnapPop + edges: + - to: snapPopExplosive + steps: + - material: Gunpowder + doAfter: 1 + - node: snapPopExplosive + actions: + - !type:AdminLog + message: "A fake snap pop was crafted" + entity: SnapPopExplosive From 58b23d31621fa3829b33c1c34d8dfc9af0345516 Mon Sep 17 00:00:00 2001 From: PJBot Date: Sun, 7 Dec 2025 13:39:15 +0000 Subject: [PATCH 036/205] Automatic changelog update --- Resources/Changelog/Changelog.yml | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/Resources/Changelog/Changelog.yml b/Resources/Changelog/Changelog.yml index 117b9ba1f9..2a34beae25 100644 --- a/Resources/Changelog/Changelog.yml +++ b/Resources/Changelog/Changelog.yml @@ -1,11 +1,4 @@ Entries: -- author: slarticodefast - changes: - - message: Fixed clones not getting the thieving skill. - type: Fix - id: 8762 - time: '2025-07-10T21:37:50.0000000+00:00' - url: https://github.com/space-wizards/space-station-14/pull/38914 - author: Ertanic and whatston3 changes: - message: The spray painter can now paint gas canisters, crates, lockers, and floor @@ -3926,3 +3919,11 @@ id: 9262 time: '2025-12-07T11:56:11.0000000+00:00' url: https://github.com/space-wizards/space-station-14/pull/41755 +- author: Velken + changes: + - message: Snap Pops can now crafted into a more dangerous version by adding extra + gunpowder. + type: Add + id: 9263 + time: '2025-12-07T13:38:08.0000000+00:00' + url: https://github.com/space-wizards/space-station-14/pull/38654 From 34f60c115eea800d9e59c2fc0934ea5c84f2adb1 Mon Sep 17 00:00:00 2001 From: Princess Cheeseballs <66055347+Princess-Cheeseballs@users.noreply.github.com> Date: Sun, 7 Dec 2025 08:14:38 -0800 Subject: [PATCH 037/205] Add GenPop Enter/Leave to ID Card Computer. Add shuffle the accesses a bit. (#41739) fixe Co-authored-by: Princess Cheeseballs <66055347+Pronana@users.noreply.github.com> --- Content.Client/Access/UI/AccessLevelControl.xaml | 2 +- Content.Shared/Access/Components/IdCardConsoleComponent.cs | 2 ++ Resources/Prototypes/Roles/Jobs/Security/detective.yml | 2 -- Resources/Prototypes/Roles/Jobs/Security/head_of_security.yml | 2 ++ Resources/Prototypes/Roles/Jobs/Security/security_cadet.yml | 2 -- Resources/Prototypes/Roles/Jobs/Security/security_officer.yml | 2 -- 6 files changed, 5 insertions(+), 7 deletions(-) diff --git a/Content.Client/Access/UI/AccessLevelControl.xaml b/Content.Client/Access/UI/AccessLevelControl.xaml index 56968d8983..6a3155effa 100644 --- a/Content.Client/Access/UI/AccessLevelControl.xaml +++ b/Content.Client/Access/UI/AccessLevelControl.xaml @@ -1,4 +1,4 @@ diff --git a/Content.Shared/Access/Components/IdCardConsoleComponent.cs b/Content.Shared/Access/Components/IdCardConsoleComponent.cs index 8c965971a8..35af5972c3 100644 --- a/Content.Shared/Access/Components/IdCardConsoleComponent.cs +++ b/Content.Shared/Access/Components/IdCardConsoleComponent.cs @@ -57,6 +57,8 @@ public sealed partial class IdCardConsoleComponent : Component "Cryogenics", "Engineering", "External", + "GenpopEnter", + "GenpopLeave", "HeadOfPersonnel", "HeadOfSecurity", "Hydroponics", diff --git a/Resources/Prototypes/Roles/Jobs/Security/detective.yml b/Resources/Prototypes/Roles/Jobs/Security/detective.yml index 5b84597e2a..b38f2c8b1c 100644 --- a/Resources/Prototypes/Roles/Jobs/Security/detective.yml +++ b/Resources/Prototypes/Roles/Jobs/Security/detective.yml @@ -18,8 +18,6 @@ - Detective - Cryogenics - External - - GenpopEnter - - GenpopLeave special: - !type:AddImplantSpecial implants: [ MindShieldImplant ] diff --git a/Resources/Prototypes/Roles/Jobs/Security/head_of_security.yml b/Resources/Prototypes/Roles/Jobs/Security/head_of_security.yml index a0d3ef5845..2b517a4b7a 100644 --- a/Resources/Prototypes/Roles/Jobs/Security/head_of_security.yml +++ b/Resources/Prototypes/Roles/Jobs/Security/head_of_security.yml @@ -31,6 +31,8 @@ - External - Detective - Cryogenics + - GenpopEnter + - GenpopLeave special: - !type:AddImplantSpecial implants: [ MindShieldImplant ] diff --git a/Resources/Prototypes/Roles/Jobs/Security/security_cadet.yml b/Resources/Prototypes/Roles/Jobs/Security/security_cadet.yml index 52b63f1ab2..a85bce52fa 100644 --- a/Resources/Prototypes/Roles/Jobs/Security/security_cadet.yml +++ b/Resources/Prototypes/Roles/Jobs/Security/security_cadet.yml @@ -20,8 +20,6 @@ - Maintenance - External - Cryogenics - - GenpopEnter - - GenpopLeave special: - !type:AddImplantSpecial implants: [ MindShieldImplant ] diff --git a/Resources/Prototypes/Roles/Jobs/Security/security_officer.yml b/Resources/Prototypes/Roles/Jobs/Security/security_officer.yml index 7c140c8ee9..4ebeb3c30c 100644 --- a/Resources/Prototypes/Roles/Jobs/Security/security_officer.yml +++ b/Resources/Prototypes/Roles/Jobs/Security/security_officer.yml @@ -17,8 +17,6 @@ - Maintenance - External - Cryogenics - - GenpopEnter - - GenpopLeave special: - !type:AddImplantSpecial implants: [ MindShieldImplant ] From 94327566ef87ead81864661cf66828a46b39af37 Mon Sep 17 00:00:00 2001 From: PJBot Date: Sun, 7 Dec 2025 16:28:11 +0000 Subject: [PATCH 038/205] Automatic changelog update --- Resources/Changelog/Changelog.yml | 18 +++++++----------- 1 file changed, 7 insertions(+), 11 deletions(-) diff --git a/Resources/Changelog/Changelog.yml b/Resources/Changelog/Changelog.yml index 2a34beae25..d5f10c5861 100644 --- a/Resources/Changelog/Changelog.yml +++ b/Resources/Changelog/Changelog.yml @@ -1,15 +1,4 @@ Entries: -- author: Ertanic and whatston3 - changes: - - message: The spray painter can now paint gas canisters, crates, lockers, and floor - decals. - type: Add - - message: The spray painter now consumes compressed paint, available from the YouTool - or printable in the autolathe. - type: Tweak - id: 8763 - time: '2025-07-11T00:36:58.0000000+00:00' - url: https://github.com/space-wizards/space-station-14/pull/37341 - author: Princess-Cheeseballs changes: - message: Added Stamina and Stun animations @@ -3927,3 +3916,10 @@ id: 9263 time: '2025-12-07T13:38:08.0000000+00:00' url: https://github.com/space-wizards/space-station-14/pull/38654 +- author: Princess-Cheeseballs + changes: + - message: Security IDs once again work at the HoP computer + type: Fix + id: 9264 + time: '2025-12-07T16:27:03.0000000+00:00' + url: https://github.com/space-wizards/space-station-14/pull/41739 From 51b7af73f76e82fac4f5cfedc1ae2846a5cab0ff Mon Sep 17 00:00:00 2001 From: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com> Date: Mon, 8 Dec 2025 03:35:06 +1100 Subject: [PATCH 039/205] Double bullet speeds (#34971) * Double bullet speeds The only reason we had it at 20m/s was tunneling reasons. The quick maths is (BodyA size + BodyB size) / frametime. Currently the game is doing substepping AFAIK so we can use 0.016 as the frametime therefore with a 0.40 width body we can get up to 40.625 (assuming the target is no narrower than 0.25 which given my thindows change last year should be a decently safe assumption). * Fix * Fix impact visuals, as they overshoot otherwise * Revert changes --------- Co-authored-by: SlamBamActionman --- Content.Shared/Weapons/Ranged/Components/GunComponent.cs | 2 +- Content.Shared/Weapons/Ranged/Systems/SharedGunSystem.cs | 7 ++++++- .../Objects/Weapons/Guns/Projectiles/projectiles.yml | 2 +- 3 files changed, 8 insertions(+), 3 deletions(-) diff --git a/Content.Shared/Weapons/Ranged/Components/GunComponent.cs b/Content.Shared/Weapons/Ranged/Components/GunComponent.cs index 3ec832613d..8dfc324207 100644 --- a/Content.Shared/Weapons/Ranged/Components/GunComponent.cs +++ b/Content.Shared/Weapons/Ranged/Components/GunComponent.cs @@ -212,7 +212,7 @@ public sealed partial class GunComponent : Component /// The base value for how fast the projectile moves. /// [DataField] - public float ProjectileSpeed = 25f; + public float ProjectileSpeed = SharedGunSystem.ProjectileSpeed; /// /// How fast the projectile moves. diff --git a/Content.Shared/Weapons/Ranged/Systems/SharedGunSystem.cs b/Content.Shared/Weapons/Ranged/Systems/SharedGunSystem.cs index e9170d45df..2061392200 100644 --- a/Content.Shared/Weapons/Ranged/Systems/SharedGunSystem.cs +++ b/Content.Shared/Weapons/Ranged/Systems/SharedGunSystem.cs @@ -67,6 +67,11 @@ public abstract partial class SharedGunSystem : EntitySystem [Dependency] private readonly UseDelaySystem _useDelay = default!; [Dependency] private readonly EntityWhitelistSystem _whitelistSystem = default!; + /// + /// Default projectile speed + /// + public const float ProjectileSpeed = 40f; + private static readonly ProtoId TrashTag = "Trash"; private const float InteractNextFire = 0.3f; @@ -423,7 +428,7 @@ public abstract partial class SharedGunSystem : EntitySystem EntityUid? user = null, bool throwItems = false); - public void ShootProjectile(EntityUid uid, Vector2 direction, Vector2 gunVelocity, EntityUid? gunUid, EntityUid? user = null, float speed = 20f) + public void ShootProjectile(EntityUid uid, Vector2 direction, Vector2 gunVelocity, EntityUid? gunUid, EntityUid? user = null, float speed = ProjectileSpeed) { var physics = EnsureComp(uid); Physics.SetBodyStatus(uid, physics, BodyStatus.InAir); diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Projectiles/projectiles.yml b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Projectiles/projectiles.yml index ee6b9abf39..6b6f447f6d 100644 --- a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Projectiles/projectiles.yml +++ b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Projectiles/projectiles.yml @@ -70,7 +70,7 @@ projectile: shape: !type:PhysShapeAabb - bounds: "-0.1,-0.1,0.1,0.1" + bounds: "-0.1,-0.10,0.1,0.30" hard: false mask: - Impassable From f99b59b7ed4410a6b44e1df977ffe2de18c43605 Mon Sep 17 00:00:00 2001 From: PJBot Date: Sun, 7 Dec 2025 16:48:22 +0000 Subject: [PATCH 040/205] Automatic changelog update --- Resources/Changelog/Changelog.yml | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/Resources/Changelog/Changelog.yml b/Resources/Changelog/Changelog.yml index d5f10c5861..93b5995f1f 100644 --- a/Resources/Changelog/Changelog.yml +++ b/Resources/Changelog/Changelog.yml @@ -1,11 +1,4 @@ Entries: -- author: Princess-Cheeseballs - changes: - - message: Added Stamina and Stun animations - type: Add - id: 8764 - time: '2025-07-11T12:13:11.0000000+00:00' - url: https://github.com/space-wizards/space-station-14/pull/37196 - author: Centronias changes: - message: Muzzles now prevent wearers from screaming and suppress sounds on audio @@ -3923,3 +3916,10 @@ id: 9264 time: '2025-12-07T16:27:03.0000000+00:00' url: https://github.com/space-wizards/space-station-14/pull/41739 +- author: metalgearsloth + changes: + - message: Increased bullet speeds from 25m/s to 40m/s by default. + type: Tweak + id: 9265 + time: '2025-12-07T16:47:15.0000000+00:00' + url: https://github.com/space-wizards/space-station-14/pull/34971 From 5b7d3757e68de1ac65fa183378d6d594f7e1eba5 Mon Sep 17 00:00:00 2001 From: cammusubi <122420207+cammusubi@users.noreply.github.com> Date: Sun, 7 Dec 2025 10:36:20 -0600 Subject: [PATCH 041/205] Green Glowsticks are their own entity (#41712) * Addresses and resolves Issue #41145, creates a separate entity for green glowsticks, which were previously just the base glowstick. * Adds old+new ID for green glowsticks to migration.yml, refactors formatting in glowstick.yml --- Resources/Maps/Salvage/small-party.yml | 2 +- .../Prototypes/Catalog/Fills/Crates/fun.yml | 2 +- .../Catalog/Fills/Crates/permaescape.yml | 6 +- .../Catalog/Fills/Items/toolboxes.yml | 2 +- .../Clothing/Back/smuggler_tables.yml | 2 +- .../Markers/Spawners/Random/maintenance.yml | 2 +- .../Entities/Objects/Decoration/present.yml | 2 +- .../Entities/Objects/Tools/glowstick.yml | 474 +++++++++--------- .../Structures/Machines/Computers/arcades.yml | 2 +- Resources/migration.yml | 4 +- 10 files changed, 256 insertions(+), 242 deletions(-) diff --git a/Resources/Maps/Salvage/small-party.yml b/Resources/Maps/Salvage/small-party.yml index 2b3d7f7d48..d3dd6fc6e8 100644 --- a/Resources/Maps/Salvage/small-party.yml +++ b/Resources/Maps/Salvage/small-party.yml @@ -285,7 +285,7 @@ entities: - type: Transform pos: 5.4233127,3.0429564 parent: 1 -- proto: GlowstickBase +- proto: GlowstickGreen entities: - uid: 69 components: diff --git a/Resources/Prototypes/Catalog/Fills/Crates/fun.yml b/Resources/Prototypes/Catalog/Fills/Crates/fun.yml index df972422d7..c9bb5f8fc7 100644 --- a/Resources/Prototypes/Catalog/Fills/Crates/fun.yml +++ b/Resources/Prototypes/Catalog/Fills/Crates/fun.yml @@ -414,7 +414,7 @@ containers: entity_storage: !type:AllSelector children: - - id: GlowstickBase + - id: GlowstickGreen amount: 2 - id: GlowstickBlue amount: 2 diff --git a/Resources/Prototypes/Catalog/Fills/Crates/permaescape.yml b/Resources/Prototypes/Catalog/Fills/Crates/permaescape.yml index 3cf7e72eb0..1516cb71c7 100644 --- a/Resources/Prototypes/Catalog/Fills/Crates/permaescape.yml +++ b/Resources/Prototypes/Catalog/Fills/Crates/permaescape.yml @@ -159,11 +159,11 @@ prob: 0.20 - id: GlowstickBlue prob: 0.05 - - id: GlowstickBase + - id: GlowstickGreen prob: 0.50 - - id: GlowstickBase + - id: GlowstickGreen prob: 0.20 - - id: GlowstickBase + - id: GlowstickGreen prob: 0.05 - id: GlowstickPurple prob: 0.50 diff --git a/Resources/Prototypes/Catalog/Fills/Items/toolboxes.yml b/Resources/Prototypes/Catalog/Fills/Items/toolboxes.yml index d8a46334ac..d10a6fc4ea 100644 --- a/Resources/Prototypes/Catalog/Fills/Items/toolboxes.yml +++ b/Resources/Prototypes/Catalog/Fills/Items/toolboxes.yml @@ -17,7 +17,7 @@ children: - id: FlashlightLantern - id: Flare - - id: GlowstickBase + - id: GlowstickGreen # Low-chance items - id: FoodSnackChocolate prob: 0.15 diff --git a/Resources/Prototypes/Entities/Clothing/Back/smuggler_tables.yml b/Resources/Prototypes/Entities/Clothing/Back/smuggler_tables.yml index 5ab753ef3d..0ca86d3c20 100644 --- a/Resources/Prototypes/Entities/Clothing/Back/smuggler_tables.yml +++ b/Resources/Prototypes/Entities/Clothing/Back/smuggler_tables.yml @@ -167,7 +167,7 @@ children: - id: SpaceCash100 weight: 2 - - id: GlowstickBase + - id: GlowstickGreen amount: !type:RangeNumberSelector range: 1, 5 - id: GlowstickRed diff --git a/Resources/Prototypes/Entities/Markers/Spawners/Random/maintenance.yml b/Resources/Prototypes/Entities/Markers/Spawners/Random/maintenance.yml index b39ace69d2..1e2a3eafa4 100644 --- a/Resources/Prototypes/Entities/Markers/Spawners/Random/maintenance.yml +++ b/Resources/Prototypes/Entities/Markers/Spawners/Random/maintenance.yml @@ -274,7 +274,7 @@ - id: trayScanner - id: HandheldGPSBasic - id: HandLabeler - - id: GlowstickBase + - id: GlowstickGreen - id: Bucket - id: RadioHandheld - id: AppraisalTool diff --git a/Resources/Prototypes/Entities/Objects/Decoration/present.yml b/Resources/Prototypes/Entities/Objects/Decoration/present.yml index 6a35d58c76..d503a3cd54 100644 --- a/Resources/Prototypes/Entities/Objects/Decoration/present.yml +++ b/Resources/Prototypes/Entities/Objects/Decoration/present.yml @@ -360,7 +360,7 @@ orGroup: GiftPool - id: Bola orGroup: GiftPool - - id: GlowstickBase + - id: GlowstickGreen orGroup: GiftPool - id: GlowstickBlue orGroup: GiftPool diff --git a/Resources/Prototypes/Entities/Objects/Tools/glowstick.yml b/Resources/Prototypes/Entities/Objects/Tools/glowstick.yml index 986f65badc..48a1ab87fc 100644 --- a/Resources/Prototypes/Entities/Objects/Tools/glowstick.yml +++ b/Resources/Prototypes/Entities/Objects/Tools/glowstick.yml @@ -1,111 +1,123 @@ - type: entity - name: green glowstick + abstract: true parent: BaseItem id: GlowstickBase + name: glowstick description: Useful for raves and emergencies. components: - - type: SpaceGarbage - - type: ExpendableLight - glowDuration: 900 # time in seconds - glowColorLit: "#00FF00" - fadeOutDuration: 300 - turnOnBehaviourID: turn_on - fadeOutBehaviourID: fade_out - iconStateLit: glowstick_lit - iconStateSpent: glowstick_unlit - litSound: - path: /Audio/Items/Handcuffs/rope_breakout.ogg - - type: Sprite - sprite: Objects/Misc/glowstick.rsi - layers: - - map: [ enum.ExpendableLightVisualLayers.Base ] - state: glowstick_base - - map: [ enum.ExpendableLightVisualLayers.Glow ] - state: glowstick_glow - visible: false - shader: unshaded - - map: [ enum.ExpendableLightVisualLayers.Overlay ] - state: glowstick_unlit - - type: Item - sprite: Objects/Misc/glowstick.rsi - heldPrefix: unlit - storedRotation: -45 - - type: Appearance - - type: PointLight - enabled: false - color: "#00FF00" - radius: 5 - energy: 0 - netsync: false - - type: LightBehaviour - behaviours: - - !type:FadeBehaviour # slowly fade in once activated - id: turn_on - interpolate: Linear - maxDuration: 10.0 - startValue: 0.0 - endValue: 3.0 - property: Energy - - !type:FadeBehaviour # fade out energy as it burns out - id: fade_out - interpolate: Linear - maxDuration: 10 # 300.0 - startValue: 3.0 - endValue: 0.2 - property: Energy - - !type:FadeBehaviour # fade out radius as it burns out - id: fade_out - interpolate: Linear - maxDuration: 10 # 300.0 - startValue: 5.0 - endValue: 1.5 - - type: Tag - tags: - - Trash + - type: SpaceGarbage + - type: ExpendableLight + glowDuration: 900 # time in seconds + glowColorLit: "#F6F7E9" + fadeOutDuration: 300 + turnOnBehaviourID: turn_on + fadeOutBehaviourID: fade_out + iconStateLit: glowstick_lit + iconStateSpent: glowstick_unlit + litSound: + path: /Audio/Items/Handcuffs/rope_breakout.ogg + - type: Sprite + sprite: Objects/Misc/glowstick.rsi + layers: + - map: [ enum.ExpendableLightVisualLayers.Base ] + state: glowstick_base + - map: [ enum.ExpendableLightVisualLayers.Glow ] + state: glowstick_glow + visible: false + shader: unshaded + - map: [ enum.ExpendableLightVisualLayers.Overlay ] + state: glowstick_unlit + - type: Item + sprite: Objects/Misc/glowstick.rsi + heldPrefix: unlit + storedRotation: -45 + - type: Appearance + - type: PointLight + enabled: false + color: "#F6F7E9" + radius: 5 + energy: 0 + netsync: false + - type: LightBehaviour + behaviours: + - !type:FadeBehaviour # slowly fade in once activated + id: turn_on + interpolate: Linear + maxDuration: 10.0 + startValue: 0.0 + endValue: 3.0 + property: Energy + - !type:FadeBehaviour # fade out energy as it burns out + id: fade_out + interpolate: Linear + maxDuration: 10 # 300.0 + startValue: 3.0 + endValue: 0.2 + property: Energy + - !type:FadeBehaviour # fade out radius as it burns out + id: fade_out + interpolate: Linear + maxDuration: 10 # 300.0 + startValue: 5.0 + endValue: 1.5 + - type: Tag + tags: + - Trash - type: entity - name: red glowstick parent: GlowstickBase id: GlowstickRed + name: red glowstick components: - - type: ExpendableLight - spentName: expendable-light-spent-red-glowstick-name - glowColorLit: "#FF0000" - - type: PointLight - color: "#FF0000" + - type: ExpendableLight + spentName: expendable-light-spent-red-glowstick-name + glowColorLit: "#FF0000" + - type: PointLight + color: "#FF0000" - type: entity - name: purple glowstick parent: GlowstickBase id: GlowstickPurple + name: purple glowstick components: - - type: ExpendableLight - spentName: expendable-light-spent-purple-glowstick-name - glowColorLit: "#FF00FF" - - type: PointLight - color: "#FF00FF" + - type: ExpendableLight + spentName: expendable-light-spent-purple-glowstick-name + glowColorLit: "#FF00FF" + - type: PointLight + color: "#FF00FF" - type: entity - name: yellow glowstick parent: GlowstickBase id: GlowstickYellow + name: yellow glowstick components: - - type: ExpendableLight - spentName: expendable-light-spent-yellow-glowstick-name - glowColorLit: "#FFFF00" - - type: PointLight - color: "#FFFF00" + - type: ExpendableLight + spentName: expendable-light-spent-yellow-glowstick-name + glowColorLit: "#FFFF00" + - type: PointLight + color: "#FFFF00" - type: entity - name: blue glowstick parent: GlowstickBase id: GlowstickBlue + name: blue glowstick components: - - type: ExpendableLight - spentName: expendable-light-spent-blue-glowstick-name - glowColorLit: "#0000FF" - - type: PointLight - color: "#0000FF" + - type: ExpendableLight + spentName: expendable-light-spent-blue-glowstick-name + glowColorLit: "#0000FF" + - type: PointLight + color: "#0000FF" + +- type: entity + parent: GlowstickBase + id: GlowstickGreen + name: green glowstick + components: + - type: ExpendableLight + spentName: expendable-light-spent-green-glowstick-name + glowColorLit: "#00FF00" + - type: PointLight + color: "#00FF00" # ---------------------------------------------------------------------------- # THE FOLLOWING ARE ALL DUMMY ENTITIES USED TO TEST THE LIGHT BEHAVIOUR SYSTEM @@ -116,30 +128,30 @@ id: LightBehaviourTest1 categories: [ HideSpawnMenu ] components: - - type: Sprite - sprite: Objects/Misc/glowstick.rsi - layers: - - state: glowstick_base - - state: glowstick_unlit - shader: unshaded - color: "#FF0000" - - type: Item - sprite: Objects/Misc/glowstick.rsi - heldPrefix: unlit - - type: PointLight - enabled: true + - type: Sprite + sprite: Objects/Misc/glowstick.rsi + layers: + - state: glowstick_base + - state: glowstick_unlit + shader: unshaded color: "#FF0000" - radius: 5 - - type: LightBehaviour - behaviours: - - !type:PulseBehaviour - interpolate: Cubic - maxDuration: 10.0 - startValue: 1.0 - endValue: 7.0 - isLooped: true - property: Energy - enabled: true + - type: Item + sprite: Objects/Misc/glowstick.rsi + heldPrefix: unlit + - type: PointLight + enabled: true + color: "#FF0000" + radius: 5 + - type: LightBehaviour + behaviours: + - !type:PulseBehaviour + interpolate: Cubic + maxDuration: 10.0 + startValue: 1.0 + endValue: 7.0 + isLooped: true + property: Energy + enabled: true - type: entity name: color cycle test @@ -147,31 +159,31 @@ id: LightBehaviourTest2 categories: [ HideSpawnMenu ] components: - - type: Sprite - sprite: Objects/Misc/glowstick.rsi - layers: - - state: glowstick_base - - state: glowstick_unlit - shader: unshaded - color: "#FF0000" - - type: Item - sprite: Objects/Misc/glowstick.rsi - heldPrefix: unlit - - type: PointLight - enabled: true + - type: Sprite + sprite: Objects/Misc/glowstick.rsi + layers: + - state: glowstick_base + - state: glowstick_unlit + shader: unshaded color: "#FF0000" - radius: 5 - - type: LightBehaviour - behaviours: - - !type:ColorCycleBehaviour - interpolate: Nearest - maxDuration: 0.8 - isLooped: true - enabled: true - colors: - - red - - blue - - green + - type: Item + sprite: Objects/Misc/glowstick.rsi + heldPrefix: unlit + - type: PointLight + enabled: true + color: "#FF0000" + radius: 5 + - type: LightBehaviour + behaviours: + - !type:ColorCycleBehaviour + interpolate: Nearest + maxDuration: 0.8 + isLooped: true + enabled: true + colors: + - red + - blue + - green - type: entity name: multi-behaviour light test @@ -179,39 +191,39 @@ id: LightBehaviourTest3 categories: [ HideSpawnMenu ] components: - - type: Sprite - sprite: Objects/Misc/glowstick.rsi - layers: - - state: glowstick_base - - state: glowstick_unlit - shader: unshaded - color: "#FF0000" - - type: Item - sprite: Objects/Misc/glowstick.rsi - heldPrefix: unlit - - type: PointLight - enabled: false + - type: Sprite + sprite: Objects/Misc/glowstick.rsi + layers: + - state: glowstick_base + - state: glowstick_unlit + shader: unshaded color: "#FF0000" - radius: 5 - - type: LightBehaviour - behaviours: - - !type:PulseBehaviour - interpolate: Nearest - minDuration: 0.2 - maxDuration: 1.0 - endValue: 0.2 - property: AnimatedEnable - isLooped: true - enabled: true - - !type:ColorCycleBehaviour - interpolate: Cubic - maxDuration: 0.8 - isLooped: true - enabled: true - colors: - - red - - blue - - green + - type: Item + sprite: Objects/Misc/glowstick.rsi + heldPrefix: unlit + - type: PointLight + enabled: false + color: "#FF0000" + radius: 5 + - type: LightBehaviour + behaviours: + - !type:PulseBehaviour + interpolate: Nearest + minDuration: 0.2 + maxDuration: 1.0 + endValue: 0.2 + property: AnimatedEnable + isLooped: true + enabled: true + - !type:ColorCycleBehaviour + interpolate: Cubic + maxDuration: 0.8 + isLooped: true + enabled: true + colors: + - red + - blue + - green - type: entity name: light fade in test @@ -219,30 +231,30 @@ id: LightBehaviourTest4 categories: [ HideSpawnMenu ] components: - - type: Sprite - sprite: Objects/Misc/glowstick.rsi - layers: - - state: glowstick_base - - state: glowstick_unlit - shader: unshaded - color: "#FF0000" - - type: Item - sprite: Objects/Misc/glowstick.rsi - heldPrefix: unlit - - type: PointLight - enabled: false + - type: Sprite + sprite: Objects/Misc/glowstick.rsi + layers: + - state: glowstick_base + - state: glowstick_unlit + shader: unshaded color: "#FF0000" - radius: 5 - - type: LightBehaviour - behaviours: - - !type:FadeBehaviour - interpolate: Cubic - maxDuration: 5.0 - startValue: 0.0 - endValue: 10.0 - isLooped: true - property: Energy - enabled: true + - type: Item + sprite: Objects/Misc/glowstick.rsi + heldPrefix: unlit + - type: PointLight + enabled: false + color: "#FF0000" + radius: 5 + - type: LightBehaviour + behaviours: + - !type:FadeBehaviour + interpolate: Cubic + maxDuration: 5.0 + startValue: 0.0 + endValue: 10.0 + isLooped: true + property: Energy + enabled: true - type: entity name: light pulse radius test @@ -250,30 +262,30 @@ id: LightBehaviourTest5 categories: [ HideSpawnMenu ] components: - - type: Sprite - sprite: Objects/Misc/glowstick.rsi - layers: - - state: glowstick_base - - state: glowstick_unlit - shader: unshaded - color: "#FF0000" - - type: Item - sprite: Objects/Misc/glowstick.rsi - heldPrefix: unlit - - type: PointLight - enabled: false + - type: Sprite + sprite: Objects/Misc/glowstick.rsi + layers: + - state: glowstick_base + - state: glowstick_unlit + shader: unshaded color: "#FF0000" - radius: 5 - - type: LightBehaviour - behaviours: - - !type:PulseBehaviour - interpolate: Cubic - minDuration: 1.0 - maxDuration: 5.0 - startValue: 2.0 - endValue: 10.0 - isLooped: true - enabled: true + - type: Item + sprite: Objects/Misc/glowstick.rsi + heldPrefix: unlit + - type: PointLight + enabled: false + color: "#FF0000" + radius: 5 + - type: LightBehaviour + behaviours: + - !type:PulseBehaviour + interpolate: Cubic + minDuration: 1.0 + maxDuration: 5.0 + startValue: 2.0 + endValue: 10.0 + isLooped: true + enabled: true - type: entity name: light randomize radius test @@ -281,27 +293,27 @@ id: LightBehaviourTest6 categories: [ HideSpawnMenu ] components: - - type: Sprite - sprite: Objects/Misc/glowstick.rsi - layers: - - state: glowstick_base - - state: glowstick_unlit - shader: unshaded - color: "#FF0000" - - type: Item - sprite: Objects/Misc/glowstick.rsi - heldPrefix: unlit - - type: PointLight - enabled: false + - type: Sprite + sprite: Objects/Misc/glowstick.rsi + layers: + - state: glowstick_base + - state: glowstick_unlit + shader: unshaded color: "#FF0000" - radius: 5 - energy: 10 - - type: LightBehaviour - behaviours: - - !type:RandomizeBehaviour - interpolate: Nearest - maxDuration: 0.5 - startValue: 10.0 - endValue: 25.0 - isLooped: true - enabled: true + - type: Item + sprite: Objects/Misc/glowstick.rsi + heldPrefix: unlit + - type: PointLight + enabled: false + color: "#FF0000" + radius: 5 + energy: 10 + - type: LightBehaviour + behaviours: + - !type:RandomizeBehaviour + interpolate: Nearest + maxDuration: 0.5 + startValue: 10.0 + endValue: 25.0 + isLooped: true + enabled: true diff --git a/Resources/Prototypes/Entities/Structures/Machines/Computers/arcades.yml b/Resources/Prototypes/Entities/Structures/Machines/Computers/arcades.yml index 78fdd25316..8c7872c23f 100644 --- a/Resources/Prototypes/Entities/Structures/Machines/Computers/arcades.yml +++ b/Resources/Prototypes/Entities/Structures/Machines/Computers/arcades.yml @@ -88,7 +88,7 @@ - FoamBlade - FoamCutlass - Football - - GlowstickBase #green + - GlowstickGreen - GlowstickBlue - GlowstickYellow - GlowstickPurple diff --git a/Resources/migration.yml b/Resources/migration.yml index 3ab01ff75c..91403f6381 100644 --- a/Resources/migration.yml +++ b/Resources/migration.yml @@ -726,7 +726,6 @@ PrefilledSyringe: Syringe BibleTanakh: null BibleSatanic: null - # 2025-10-08 ClothingBeltAssault: ClothingBeltMilitaryWebbing WarpPointBombing: null @@ -739,6 +738,9 @@ ToySkeleton: ToyFigurineSkeleton # 2025-10-28 DrinkKiraSpecial: DrinkOrangeLimeSodaGlass +# 2025-12-05 +GlowstickBase: GlowstickGreen + # 2025-12-06 SpawnPointZookeeper: null SpawnPointBoxer: null From ee2e1eb93272ac76ad0e0191b67709c8750d2ba1 Mon Sep 17 00:00:00 2001 From: Samuka <47865393+Samuka-C@users.noreply.github.com> Date: Sun, 7 Dec 2025 14:52:27 -0300 Subject: [PATCH 042/205] Make xenoborg light brighter (#41580) * make light better * minor color fix --- .../Prototypes/Entities/Mobs/Cyborgs/base_borg_chassis.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Resources/Prototypes/Entities/Mobs/Cyborgs/base_borg_chassis.yml b/Resources/Prototypes/Entities/Mobs/Cyborgs/base_borg_chassis.yml index fb0509bedf..3c74c007e0 100644 --- a/Resources/Prototypes/Entities/Mobs/Cyborgs/base_borg_chassis.yml +++ b/Resources/Prototypes/Entities/Mobs/Cyborgs/base_borg_chassis.yml @@ -521,7 +521,8 @@ - !type:DoActsBehavior acts: [ "Destruction" ] - type: PointLight - color: "#0033ff" + color: "#3010ff" + energy: 7 - type: GuideHelp guides: - Cyborgs From 7cc256890b8099b5f3427dc0fb9c9a69fc78fc14 Mon Sep 17 00:00:00 2001 From: PJBot Date: Sun, 7 Dec 2025 18:05:58 +0000 Subject: [PATCH 043/205] Automatic changelog update --- Resources/Changelog/Changelog.yml | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/Resources/Changelog/Changelog.yml b/Resources/Changelog/Changelog.yml index 93b5995f1f..d63948aad0 100644 --- a/Resources/Changelog/Changelog.yml +++ b/Resources/Changelog/Changelog.yml @@ -1,12 +1,4 @@ Entries: -- author: Centronias - changes: - - message: Muzzles now prevent wearers from screaming and suppress sounds on audio - emotes. - type: Tweak - id: 8765 - time: '2025-07-11T17:18:15.0000000+00:00' - url: https://github.com/space-wizards/space-station-14/pull/32588 - author: TiniestShark changes: - message: Added inhand sprites to all bottled drinks. @@ -3923,3 +3915,10 @@ id: 9265 time: '2025-12-07T16:47:15.0000000+00:00' url: https://github.com/space-wizards/space-station-14/pull/34971 +- author: Samuka + changes: + - message: Xenoborg lights are now brighter + type: Tweak + id: 9266 + time: '2025-12-07T18:04:51.0000000+00:00' + url: https://github.com/space-wizards/space-station-14/pull/41580 From 5c70d28927836a7bb671547bac2ea2230c0477a4 Mon Sep 17 00:00:00 2001 From: sleepyyapril <123355664+sleepyyapril@users.noreply.github.com> Date: Sun, 7 Dec 2025 15:54:10 -0400 Subject: [PATCH 044/205] TriggerOnUiOpen/Close (#41718) * feat: TriggerOnUiOpen/Close * chore: minor clarification * Update Content.Shared/Trigger/Components/Triggers/TriggerOnUiCloseComponent.cs Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com> * Update Content.Shared/Trigger/Components/Triggers/TriggerOnUiOpenComponent.cs Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com> * chore: review --------- Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com> --- .../Triggers/TriggerOnUiCloseComponent.cs | 18 ++++++++++++++++++ .../Triggers/TriggerOnUiOpenComponent.cs | 18 ++++++++++++++++++ .../Systems/TriggerSystem.Interaction.cs | 19 +++++++++++++++++++ 3 files changed, 55 insertions(+) create mode 100644 Content.Shared/Trigger/Components/Triggers/TriggerOnUiCloseComponent.cs create mode 100644 Content.Shared/Trigger/Components/Triggers/TriggerOnUiOpenComponent.cs diff --git a/Content.Shared/Trigger/Components/Triggers/TriggerOnUiCloseComponent.cs b/Content.Shared/Trigger/Components/Triggers/TriggerOnUiCloseComponent.cs new file mode 100644 index 0000000000..695f2965e1 --- /dev/null +++ b/Content.Shared/Trigger/Components/Triggers/TriggerOnUiCloseComponent.cs @@ -0,0 +1,18 @@ +using Robust.Shared.GameStates; + +namespace Content.Shared.Trigger.Components.Triggers; + +/// +/// Triggers when a user closes a UI belonging to the owning entity. +/// The user is the actor that tries to open a UI. +/// +[RegisterComponent, NetworkedComponent, AutoGenerateComponentState] +public sealed partial class TriggerOnUiCloseComponent : BaseTriggerOnXComponent +{ + /// + /// If it should only work on specific UIs. + /// Null means it will work on any UI key. + /// + [DataField, AutoNetworkedField] + public HashSet? UiKeys; +} diff --git a/Content.Shared/Trigger/Components/Triggers/TriggerOnUiOpenComponent.cs b/Content.Shared/Trigger/Components/Triggers/TriggerOnUiOpenComponent.cs new file mode 100644 index 0000000000..bf83b7e996 --- /dev/null +++ b/Content.Shared/Trigger/Components/Triggers/TriggerOnUiOpenComponent.cs @@ -0,0 +1,18 @@ +using Robust.Shared.GameStates; + +namespace Content.Shared.Trigger.Components.Triggers; + +/// +/// Triggers when a user opens a UI belonging to the owning entity. +/// The user is the actor that tries to open a UI. +/// +[RegisterComponent, NetworkedComponent, AutoGenerateComponentState] +public sealed partial class TriggerOnUiOpenComponent : BaseTriggerOnXComponent +{ + /// + /// If it should only work on specific UIs. + /// Null means it will work on any UI key. + /// + [DataField, AutoNetworkedField] + public HashSet? UiKeys; +} diff --git a/Content.Shared/Trigger/Systems/TriggerSystem.Interaction.cs b/Content.Shared/Trigger/Systems/TriggerSystem.Interaction.cs index 62f483e876..944239ccf8 100644 --- a/Content.Shared/Trigger/Systems/TriggerSystem.Interaction.cs +++ b/Content.Shared/Trigger/Systems/TriggerSystem.Interaction.cs @@ -21,6 +21,9 @@ public sealed partial class TriggerSystem SubscribeLocalEvent(OnThrow); SubscribeLocalEvent(OnThrown); + SubscribeLocalEvent(OnUiOpened); + SubscribeLocalEvent(OnUiClosed); + SubscribeLocalEvent(HandleItemToggleOnTrigger); SubscribeLocalEvent(HandleAnchorOnTrigger); SubscribeLocalEvent(HandleUseDelayOnTrigger); @@ -83,6 +86,22 @@ public sealed partial class TriggerSystem Trigger(ent.Owner, args.User, ent.Comp.KeyOut); } + private void OnUiOpened(Entity ent, ref BoundUIOpenedEvent args) + { + if (ent.Comp.UiKeys == null || ent.Comp.UiKeys.Contains(args.UiKey)) + { + Trigger(ent, args.Actor, ent.Comp.KeyOut); + } + } + + private void OnUiClosed(Entity ent, ref BoundUIClosedEvent args) + { + if (ent.Comp.UiKeys == null || ent.Comp.UiKeys.Contains(args.UiKey)) + { + Trigger(ent, args.Actor, ent.Comp.KeyOut); + } + } + private void HandleItemToggleOnTrigger(Entity ent, ref TriggerEvent args) { if (args.Key != null && !ent.Comp.KeysIn.Contains(args.Key)) From 5fdba3f0bc8648a41f52b54cbe1de96eb44ff2cb Mon Sep 17 00:00:00 2001 From: RedSpy <127129838+RedSpyy@users.noreply.github.com> Date: Sun, 7 Dec 2025 23:10:01 +0300 Subject: [PATCH 045/205] Hitscans now have names (#41763) Co-authored-by: RedSpyy --- .../Objects/Weapons/Guns/Projectiles/hitscan.yml | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Projectiles/hitscan.yml b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Projectiles/hitscan.yml index ef5ee8ea82..cf3ba6fbe6 100644 --- a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Projectiles/hitscan.yml +++ b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Projectiles/hitscan.yml @@ -18,6 +18,7 @@ - type: entity id: BasicHitscan + name: basic laser ray categories: [ HideSpawnMenu ] components: - type: HitscanAmmo @@ -38,6 +39,7 @@ - type: entity parent: BasicHitscan id: RedLightLaser + name: red light laser ray categories: [ HideSpawnMenu ] components: - type: HitscanBasicDamage @@ -48,6 +50,7 @@ - type: entity parent: BasicHitscan id: RedLaser + name: red laser ray categories: [ HideSpawnMenu ] components: - type: HitscanBasicDamage @@ -58,6 +61,7 @@ - type: entity parent: BasicHitscan id: RedMediumLaser + name: red amplified laser ray categories: [ HideSpawnMenu ] components: - type: HitscanBasicDamage @@ -68,6 +72,7 @@ - type: entity parent: BasicHitscan id: RedHeavyLaser + name: red high-energy laser ray categories: [ HideSpawnMenu ] components: - type: HitscanBasicDamage @@ -88,6 +93,7 @@ - type: entity parent: BasicHitscan id: RedLaserPractice + name: red practice laser ray categories: [ HideSpawnMenu ] components: - type: HitscanBasicDamage @@ -98,6 +104,7 @@ - type: entity parent: BasicHitscan id: XrayLaser + name: X-ray pulse beam categories: [ HideSpawnMenu ] components: - type: HitscanBasicDamage @@ -119,6 +126,7 @@ - type: entity parent: BasicHitscan id: Pulse + name: blue high-energy laser ray categories: [ HideSpawnMenu ] components: - type: HitscanBasicDamage @@ -139,6 +147,7 @@ - type: entity parent: BasicHitscan id: RedShuttleLaser + name: shuttle class red laser ray categories: [ HideSpawnMenu ] components: - type: HitscanBasicRaycast @@ -162,6 +171,7 @@ - type: entity parent: BasicHitscan id: DebugLaser + name: debug laser ray suffix: DEBUG categories: [ HideSpawnMenu ] components: @@ -183,6 +193,7 @@ - type: entity parent: DebugLaser id: DebugLaserGib + name: debug gibbing ray suffix: DEBUG categories: [ HideSpawnMenu ] components: From 0eead492de323aea52e7d6c20edb7ae7bd77f3bd Mon Sep 17 00:00:00 2001 From: Tiniest Shark Date: Sun, 7 Dec 2025 15:14:49 -0500 Subject: [PATCH 046/205] Reverts Mop + Glowstick Storage Rotation (#41765) diagonal pixels are ugly, sorry. --- .../Prototypes/Entities/Objects/Specific/Janitorial/janitor.yml | 1 - Resources/Prototypes/Entities/Objects/Tools/glowstick.yml | 1 - 2 files changed, 2 deletions(-) diff --git a/Resources/Prototypes/Entities/Objects/Specific/Janitorial/janitor.yml b/Resources/Prototypes/Entities/Objects/Specific/Janitorial/janitor.yml index 5aba5b7918..d1b95a3f09 100644 --- a/Resources/Prototypes/Entities/Objects/Specific/Janitorial/janitor.yml +++ b/Resources/Prototypes/Entities/Objects/Specific/Janitorial/janitor.yml @@ -37,7 +37,6 @@ - type: Item size: Large sprite: Objects/Specific/Janitorial/mop.rsi - storedRotation: 45 - type: Absorbent useAbsorberSolution: true - type: SolutionContainerManager diff --git a/Resources/Prototypes/Entities/Objects/Tools/glowstick.yml b/Resources/Prototypes/Entities/Objects/Tools/glowstick.yml index 48a1ab87fc..e204e979ad 100644 --- a/Resources/Prototypes/Entities/Objects/Tools/glowstick.yml +++ b/Resources/Prototypes/Entities/Objects/Tools/glowstick.yml @@ -30,7 +30,6 @@ - type: Item sprite: Objects/Misc/glowstick.rsi heldPrefix: unlit - storedRotation: -45 - type: Appearance - type: PointLight enabled: false From 9d13d348b40f9831baef05e2e4079e69d461ea50 Mon Sep 17 00:00:00 2001 From: Hitlinemoss <209321380+Hitlinemoss@users.noreply.github.com> Date: Sun, 7 Dec 2025 15:27:49 -0500 Subject: [PATCH 047/205] Remove map list from station-specific jobs' descriptions (#41748) --- Resources/Locale/en-US/job/job-description.ftl | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Resources/Locale/en-US/job/job-description.ftl b/Resources/Locale/en-US/job/job-description.ftl index b7c6228e12..35ada63d8c 100644 --- a/Resources/Locale/en-US/job/job-description.ftl +++ b/Resources/Locale/en-US/job/job-description.ftl @@ -33,11 +33,11 @@ job-description-librarian = Manage the library, give out knowledge to any who se job-description-mime = Entertain the crew without speaking or writing, and engage with light rivalry with the clown. job-description-musician = Entertain the crew with your unique musical talent, and acquire new instruments to mess around with. job-description-passenger = Enjoy your stay aboard the station with no obligations! -job-description-psychologist = Provide emotional support to traumatized crew. Currently available on Box, Marathon and Oasis. +job-description-psychologist = Provide emotional support to traumatized crew. job-description-qm = Manage the supplies of the station & the Cargo department, keep the salvage specialists working, make sure all orders are fulfilled, and keep the money flowing. job-description-rd = Manage the Science department, unlocking technologies, acquiring & researching artifacts, and performing experiments. job-description-research-assistant = Learn the basics of robotics and how to research various artifacts & anomalies. -job-description-reporter = Entertain & inform the crew with your vibrant journalism through wireless cameras, the radio and the news. Currently available on Bagel Station, Convex, Core, Train and Oasis. +job-description-reporter = Entertain & inform the crew with your vibrant journalism through wireless cameras, the radio and the news. job-description-salvagespec = Use the salvage magnet to draw in detached scraps & asteroids to loot and enrich the station, build a salvage ship and then travel to new planets, while fighting off any space fauna along the way. job-description-scientist = Research alien artifacts, unlock new technologies, build newer and better machines around the station, and make everything run more efficiently. job-description-security = Catch criminals and enemies of the station, enforce the law, and ensure that the station does not fall into disarray. From d79065bdbb1184d88e34f39d2c34850d5703f4dc Mon Sep 17 00:00:00 2001 From: PJBot Date: Sun, 7 Dec 2025 20:40:58 +0000 Subject: [PATCH 048/205] Automatic changelog update --- Resources/Changelog/Changelog.yml | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/Resources/Changelog/Changelog.yml b/Resources/Changelog/Changelog.yml index d63948aad0..7b7f0e3fe2 100644 --- a/Resources/Changelog/Changelog.yml +++ b/Resources/Changelog/Changelog.yml @@ -1,11 +1,4 @@ Entries: -- author: TiniestShark - changes: - - message: Added inhand sprites to all bottled drinks. - type: Add - id: 8766 - time: '2025-07-12T14:28:22.0000000+00:00' - url: https://github.com/space-wizards/space-station-14/pull/38937 - author: Velken changes: - message: Ian and McGriff are more fashionable by letting them wear hats and glasses. @@ -3922,3 +3915,12 @@ id: 9266 time: '2025-12-07T18:04:51.0000000+00:00' url: https://github.com/space-wizards/space-station-14/pull/41580 +- author: Hitlinemoss + changes: + - message: Station-specific jobs no longer list which maps they're available on + in their descriptions. The actual list of maps they are available on remains + the same. + type: Tweak + id: 9267 + time: '2025-12-07T20:39:49.0000000+00:00' + url: https://github.com/space-wizards/space-station-14/pull/41748 From e8462ebe55a673589135cfe0f4b89f89b3cc1c93 Mon Sep 17 00:00:00 2001 From: ArtisticRoomba <145879011+ArtisticRoomba@users.noreply.github.com> Date: Sun, 7 Dec 2025 14:28:31 -0800 Subject: [PATCH 049/205] fix bagel APC powernet (#41769) --- Resources/Maps/bagel.yml | 674 ++++++++++++++++++++++++++++----------- 1 file changed, 489 insertions(+), 185 deletions(-) diff --git a/Resources/Maps/bagel.yml b/Resources/Maps/bagel.yml index 8f26ed0c13..5067558961 100644 --- a/Resources/Maps/bagel.yml +++ b/Resources/Maps/bagel.yml @@ -1,11 +1,11 @@ meta: format: 7 category: Map - engineVersion: 267.3.0 + engineVersion: 268.0.0 forkId: "" forkVersion: "" - time: 11/04/2025 19:44:06 - entityCount: 25522 + time: 12/07/2025 22:04:46 + entityCount: 25578 maps: - 943 grids: @@ -9339,6 +9339,7 @@ entities: damping: 1559.7855 stiffness: 14000.604 - type: ImplicitRoof + - type: ExplosionAirtightGrid - uid: 943 components: - type: MetaData @@ -9565,6 +9566,7 @@ entities: damping: 1560.8403 stiffness: 14010.071 - type: ImplicitRoof + - type: ExplosionAirtightGrid - proto: AcousticGuitarInstrument entities: - uid: 6610 @@ -14725,6 +14727,9 @@ entities: - type: Transform pos: -60.5,-16.5 parent: 60 + - type: AccessReader + accessListsOriginal: + - - Engineering - type: Fixtures fixtures: {} - uid: 3420 @@ -14846,7 +14851,7 @@ entities: - uid: 5669 components: - type: MetaData - name: Science APC + name: Science Hall APC - type: Transform pos: -52.5,5.5 parent: 60 @@ -14977,6 +14982,9 @@ entities: rot: 1.5707963267948966 rad pos: -26.5,-1.5 parent: 60 + - type: AccessReader + accessListsOriginal: + - - Engineering - type: Fixtures fixtures: {} - uid: 8236 @@ -15024,6 +15032,24 @@ entities: parent: 60 - type: Fixtures fixtures: {} + - uid: 9805 + components: + - type: MetaData + name: Science Anomaly APC + - type: Transform + rot: 1.5707963267948966 rad + pos: -58.5,-2.5 + parent: 60 + - type: Fixtures + fixtures: {} + - uid: 9806 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 46.5,-28.5 + parent: 60 + - type: Fixtures + fixtures: {} - uid: 9999 components: - type: MetaData @@ -15151,6 +15177,25 @@ entities: parent: 60 - type: Fixtures fixtures: {} + - uid: 18526 + components: + - type: MetaData + name: Maints Shop APC + - type: Transform + rot: 3.141592653589793 rad + pos: -64.5,5.5 + parent: 60 + - type: Fixtures + fixtures: {} + - uid: 18790 + components: + - type: MetaData + name: Science Server APC + - type: Transform + pos: -51.5,10.5 + parent: 60 + - type: Fixtures + fixtures: {} - uid: 19332 components: - type: MetaData @@ -18260,7 +18305,7 @@ entities: - uid: 3419 components: - type: Transform - pos: -65.5,6.5 + pos: -66.5,7.5 parent: 60 - uid: 3468 components: @@ -18862,6 +18907,11 @@ entities: - type: Transform pos: 52.5,-25.5 parent: 60 + - uid: 6159 + components: + - type: Transform + pos: -41.5,-13.5 + parent: 60 - uid: 6216 components: - type: Transform @@ -20127,6 +20177,71 @@ entities: - type: Transform pos: -33.5,-7.5 parent: 60 + - uid: 9755 + components: + - type: Transform + pos: -42.5,-13.5 + parent: 60 + - uid: 9756 + components: + - type: Transform + pos: -50.5,-12.5 + parent: 60 + - uid: 9758 + components: + - type: Transform + pos: -51.5,3.5 + parent: 60 + - uid: 9759 + components: + - type: Transform + pos: -50.5,3.5 + parent: 60 + - uid: 9760 + components: + - type: Transform + pos: -50.5,4.5 + parent: 60 + - uid: 9761 + components: + - type: Transform + pos: -49.5,3.5 + parent: 60 + - uid: 9762 + components: + - type: Transform + pos: -48.5,1.5 + parent: 60 + - uid: 9763 + components: + - type: Transform + pos: -48.5,2.5 + parent: 60 + - uid: 9764 + components: + - type: Transform + pos: -48.5,3.5 + parent: 60 + - uid: 9765 + components: + - type: Transform + pos: -47.5,3.5 + parent: 60 + - uid: 9774 + components: + - type: Transform + pos: -53.5,12.5 + parent: 60 + - uid: 9807 + components: + - type: Transform + pos: 48.5,-28.5 + parent: 60 + - uid: 9808 + components: + - type: Transform + pos: 46.5,-28.5 + parent: 60 - uid: 9866 components: - type: Transform @@ -20737,6 +20852,11 @@ entities: - type: Transform pos: -51.5,-12.5 parent: 60 + - uid: 10142 + components: + - type: Transform + pos: 45.5,-28.5 + parent: 60 - uid: 10143 components: - type: Transform @@ -20945,12 +21065,7 @@ entities: - uid: 10186 components: - type: Transform - pos: -41.5,-12.5 - parent: 60 - - uid: 10187 - components: - - type: Transform - pos: -40.5,-12.5 + pos: 48.5,-27.5 parent: 60 - uid: 10189 components: @@ -21022,11 +21137,6 @@ entities: - type: Transform pos: -45.5,-5.5 parent: 60 - - uid: 10204 - components: - - type: Transform - pos: -46.5,-5.5 - parent: 60 - uid: 10205 components: - type: Transform @@ -21117,11 +21227,6 @@ entities: - type: Transform pos: -52.5,1.5 parent: 60 - - uid: 10224 - components: - - type: Transform - pos: -52.5,0.5 - parent: 60 - uid: 10225 components: - type: Transform @@ -21252,26 +21357,6 @@ entities: - type: Transform pos: -55.5,4.5 parent: 60 - - uid: 10252 - components: - - type: Transform - pos: -51.5,4.5 - parent: 60 - - uid: 10253 - components: - - type: Transform - pos: -50.5,4.5 - parent: 60 - - uid: 10254 - components: - - type: Transform - pos: -49.5,4.5 - parent: 60 - - uid: 10255 - components: - - type: Transform - pos: -50.5,5.5 - parent: 60 - uid: 10256 components: - type: Transform @@ -21332,25 +21417,10 @@ entities: - type: Transform pos: -44.5,3.5 parent: 60 - - uid: 10284 - components: - - type: Transform - pos: -45.5,3.5 - parent: 60 - - uid: 10285 - components: - - type: Transform - pos: -46.5,3.5 - parent: 60 - - uid: 10286 - components: - - type: Transform - pos: -48.5,3.5 - parent: 60 - uid: 10287 components: - type: Transform - pos: -47.5,3.5 + pos: -40.5,-12.5 parent: 60 - uid: 10288 components: @@ -21435,7 +21505,7 @@ entities: - uid: 10304 components: - type: Transform - pos: -54.5,11.5 + pos: -40.5,-13.5 parent: 60 - uid: 10305 components: @@ -21802,11 +21872,6 @@ entities: - type: Transform pos: -56.5,13.5 parent: 60 - - uid: 10386 - components: - - type: Transform - pos: -57.5,13.5 - parent: 60 - uid: 10387 components: - type: Transform @@ -25382,11 +25447,6 @@ entities: - type: Transform pos: 41.5,-31.5 parent: 60 - - uid: 12461 - components: - - type: Transform - pos: 42.5,-31.5 - parent: 60 - uid: 12462 components: - type: Transform @@ -25487,26 +25547,6 @@ entities: - type: Transform pos: 48.5,-26.5 parent: 60 - - uid: 12483 - components: - - type: Transform - pos: 47.5,-26.5 - parent: 60 - - uid: 12484 - components: - - type: Transform - pos: 47.5,-27.5 - parent: 60 - - uid: 12485 - components: - - type: Transform - pos: 47.5,-28.5 - parent: 60 - - uid: 12486 - components: - - type: Transform - pos: 47.5,-29.5 - parent: 60 - uid: 12487 components: - type: Transform @@ -25862,6 +25902,11 @@ entities: - type: Transform pos: -49.5,14.5 parent: 60 + - uid: 13042 + components: + - type: Transform + pos: -57.5,-2.5 + parent: 60 - uid: 13072 components: - type: Transform @@ -29757,6 +29802,26 @@ entities: - type: Transform pos: 3.5,-10.5 parent: 60 + - uid: 18592 + components: + - type: Transform + pos: -64.5,6.5 + parent: 60 + - uid: 18594 + components: + - type: Transform + pos: -64.5,5.5 + parent: 60 + - uid: 18595 + components: + - type: Transform + pos: -67.5,7.5 + parent: 60 + - uid: 18596 + components: + - type: Transform + pos: -58.5,-2.5 + parent: 60 - uid: 18631 components: - type: Transform @@ -29797,6 +29862,21 @@ entities: - type: Transform pos: -29.5,35.5 parent: 60 + - uid: 18774 + components: + - type: Transform + pos: -52.5,12.5 + parent: 60 + - uid: 18781 + components: + - type: Transform + pos: -51.5,12.5 + parent: 60 + - uid: 18791 + components: + - type: Transform + pos: -51.5,10.5 + parent: 60 - uid: 18794 components: - type: Transform @@ -29812,6 +29892,11 @@ entities: - type: Transform pos: 48.5,-40.5 parent: 60 + - uid: 18857 + components: + - type: Transform + pos: -25.5,9.5 + parent: 60 - uid: 18876 components: - type: Transform @@ -45112,11 +45197,6 @@ entities: - type: Transform pos: 36.5,-16.5 parent: 60 - - uid: 6159 - components: - - type: Transform - pos: -41.5,-12.5 - parent: 60 - uid: 6161 components: - type: Transform @@ -45672,61 +45752,6 @@ entities: - type: Transform pos: -52.5,5.5 parent: 60 - - uid: 9755 - components: - - type: Transform - pos: -51.5,-13.5 - parent: 60 - - uid: 9756 - components: - - type: Transform - pos: -51.5,-12.5 - parent: 60 - - uid: 9757 - components: - - type: Transform - pos: -50.5,-12.5 - parent: 60 - - uid: 9758 - components: - - type: Transform - pos: -49.5,-12.5 - parent: 60 - - uid: 9759 - components: - - type: Transform - pos: -48.5,-12.5 - parent: 60 - - uid: 9760 - components: - - type: Transform - pos: -47.5,-12.5 - parent: 60 - - uid: 9761 - components: - - type: Transform - pos: -46.5,-12.5 - parent: 60 - - uid: 9762 - components: - - type: Transform - pos: -45.5,-12.5 - parent: 60 - - uid: 9763 - components: - - type: Transform - pos: -44.5,-12.5 - parent: 60 - - uid: 9764 - components: - - type: Transform - pos: -43.5,-12.5 - parent: 60 - - uid: 9765 - components: - - type: Transform - pos: -42.5,-12.5 - parent: 60 - uid: 9767 components: - type: Transform @@ -45757,31 +45782,6 @@ entities: - type: Transform pos: -51.5,-23.5 parent: 60 - - uid: 9774 - components: - - type: Transform - pos: -52.5,-17.5 - parent: 60 - - uid: 9805 - components: - - type: Transform - pos: -52.5,-16.5 - parent: 60 - - uid: 9806 - components: - - type: Transform - pos: -52.5,-15.5 - parent: 60 - - uid: 9807 - components: - - type: Transform - pos: -52.5,-14.5 - parent: 60 - - uid: 9808 - components: - - type: Transform - pos: -52.5,-13.5 - parent: 60 - uid: 9813 components: - type: Transform @@ -46132,10 +46132,40 @@ entities: - type: Transform pos: -46.5,-14.5 parent: 60 - - uid: 10142 + - uid: 10187 components: - type: Transform - pos: -46.5,-13.5 + pos: -41.5,-10.5 + parent: 60 + - uid: 10204 + components: + - type: Transform + pos: -45.5,-5.5 + parent: 60 + - uid: 10224 + components: + - type: Transform + pos: -44.5,-5.5 + parent: 60 + - uid: 10252 + components: + - type: Transform + pos: -43.5,-5.5 + parent: 60 + - uid: 10253 + components: + - type: Transform + pos: -42.5,-5.5 + parent: 60 + - uid: 10254 + components: + - type: Transform + pos: -42.5,-6.5 + parent: 60 + - uid: 10255 + components: + - type: Transform + pos: -42.5,-7.5 parent: 60 - uid: 10261 components: @@ -46217,6 +46247,21 @@ entities: - type: Transform pos: -41.5,4.5 parent: 60 + - uid: 10284 + components: + - type: Transform + pos: -42.5,-8.5 + parent: 60 + - uid: 10285 + components: + - type: Transform + pos: -42.5,-9.5 + parent: 60 + - uid: 10286 + components: + - type: Transform + pos: -41.5,-9.5 + parent: 60 - uid: 10308 components: - type: Transform @@ -46227,6 +46272,11 @@ entities: - type: Transform pos: -35.5,13.5 parent: 60 + - uid: 10386 + components: + - type: Transform + pos: -48.5,-3.5 + parent: 60 - uid: 10550 components: - type: Transform @@ -46372,6 +46422,11 @@ entities: - type: Transform pos: 4.5,-30.5 parent: 60 + - uid: 10692 + components: + - type: Transform + pos: -48.5,-4.5 + parent: 60 - uid: 10777 components: - type: Transform @@ -47297,6 +47352,31 @@ entities: - type: Transform pos: 39.5,-34.5 parent: 60 + - uid: 12461 + components: + - type: Transform + pos: -48.5,-5.5 + parent: 60 + - uid: 12483 + components: + - type: Transform + pos: -47.5,-5.5 + parent: 60 + - uid: 12484 + components: + - type: Transform + pos: -46.5,-5.5 + parent: 60 + - uid: 12485 + components: + - type: Transform + pos: -48.5,-2.5 + parent: 60 + - uid: 12486 + components: + - type: Transform + pos: -64.5,12.5 + parent: 60 - uid: 12510 components: - type: Transform @@ -47667,6 +47747,11 @@ entities: - type: Transform pos: -23.5,22.5 parent: 60 + - uid: 14578 + components: + - type: Transform + pos: -65.5,7.5 + parent: 60 - uid: 14705 components: - type: Transform @@ -48092,6 +48177,26 @@ entities: - type: Transform pos: -8.5,2.5 parent: 60 + - uid: 18092 + components: + - type: Transform + pos: -62.5,12.5 + parent: 60 + - uid: 18100 + components: + - type: Transform + pos: -65.5,12.5 + parent: 60 + - uid: 18104 + components: + - type: Transform + pos: -65.5,9.5 + parent: 60 + - uid: 18215 + components: + - type: Transform + pos: -60.5,12.5 + parent: 60 - uid: 18282 components: - type: Transform @@ -48152,16 +48257,146 @@ entities: - type: Transform pos: -2.5,-1.5 parent: 60 + - uid: 18462 + components: + - type: Transform + pos: -61.5,12.5 + parent: 60 + - uid: 18463 + components: + - type: Transform + pos: -63.5,12.5 + parent: 60 - uid: 18495 components: - type: Transform pos: -93.5,17.5 parent: 60 + - uid: 18509 + components: + - type: Transform + pos: -65.5,11.5 + parent: 60 + - uid: 18510 + components: + - type: Transform + pos: -65.5,10.5 + parent: 60 + - uid: 18525 + components: + - type: Transform + pos: -65.5,8.5 + parent: 60 + - uid: 18527 + components: + - type: Transform + pos: -64.5,7.5 + parent: 60 - uid: 18575 components: - type: Transform pos: -7.5,2.5 parent: 60 + - uid: 18590 + components: + - type: Transform + pos: -64.5,6.5 + parent: 60 + - uid: 18591 + components: + - type: Transform + pos: -64.5,5.5 + parent: 60 + - uid: 18597 + components: + - type: Transform + pos: -52.5,2.5 + parent: 60 + - uid: 18598 + components: + - type: Transform + pos: -52.5,1.5 + parent: 60 + - uid: 18599 + components: + - type: Transform + pos: -52.5,0.5 + parent: 60 + - uid: 18600 + components: + - type: Transform + pos: -52.5,-0.5 + parent: 60 + - uid: 18601 + components: + - type: Transform + pos: -52.5,-1.5 + parent: 60 + - uid: 18602 + components: + - type: Transform + pos: -52.5,-2.5 + parent: 60 + - uid: 18603 + components: + - type: Transform + pos: -53.5,-2.5 + parent: 60 + - uid: 18604 + components: + - type: Transform + pos: -54.5,-2.5 + parent: 60 + - uid: 18605 + components: + - type: Transform + pos: -55.5,-2.5 + parent: 60 + - uid: 18606 + components: + - type: Transform + pos: -56.5,-2.5 + parent: 60 + - uid: 18640 + components: + - type: Transform + pos: -57.5,-2.5 + parent: 60 + - uid: 18642 + components: + - type: Transform + pos: -58.5,-2.5 + parent: 60 + - uid: 18671 + components: + - type: Transform + pos: -49.5,-22.5 + parent: 60 + - uid: 18682 + components: + - type: Transform + pos: -49.5,-21.5 + parent: 60 + - uid: 18693 + components: + - type: Transform + pos: -49.5,-20.5 + parent: 60 + - uid: 18695 + components: + - type: Transform + pos: -49.5,-19.5 + parent: 60 + - uid: 18699 + components: + - type: Transform + pos: -49.5,-18.5 + parent: 60 + - uid: 18707 + components: + - type: Transform + pos: -49.5,-17.5 + parent: 60 - uid: 18752 components: - type: Transform @@ -48217,6 +48452,71 @@ entities: - type: Transform pos: -9.5,-3.5 parent: 60 + - uid: 18763 + components: + - type: Transform + pos: -49.5,-16.5 + parent: 60 + - uid: 18764 + components: + - type: Transform + pos: -48.5,-16.5 + parent: 60 + - uid: 18765 + components: + - type: Transform + pos: -47.5,-16.5 + parent: 60 + - uid: 18766 + components: + - type: Transform + pos: -46.5,-16.5 + parent: 60 + - uid: 18767 + components: + - type: Transform + pos: -46.5,-15.5 + parent: 60 + - uid: 18768 + components: + - type: Transform + pos: -48.5,-1.5 + parent: 60 + - uid: 18769 + components: + - type: Transform + pos: -48.5,-0.5 + parent: 60 + - uid: 18770 + components: + - type: Transform + pos: -48.5,0.5 + parent: 60 + - uid: 18771 + components: + - type: Transform + pos: -48.5,1.5 + parent: 60 + - uid: 18773 + components: + - type: Transform + pos: -48.5,2.5 + parent: 60 + - uid: 18822 + components: + - type: Transform + pos: -50.5,10.5 + parent: 60 + - uid: 18826 + components: + - type: Transform + pos: -51.5,10.5 + parent: 60 + - uid: 18827 + components: + - type: Transform + pos: 46.5,-28.5 + parent: 60 - uid: 18842 components: - type: Transform @@ -48232,6 +48532,11 @@ entities: - type: Transform pos: -39.5,4.5 parent: 60 + - uid: 18856 + components: + - type: Transform + pos: 45.5,-28.5 + parent: 60 - uid: 18861 components: - type: Transform @@ -116338,10 +116643,11 @@ entities: parent: 60 - type: Fixtures fixtures: {} - - uid: 13042 + - uid: 18103 components: - type: Transform - pos: -62.5,11.5 + rot: 3.141592653589793 rad + pos: -62.5,10.5 parent: 60 - type: Fixtures fixtures: {} @@ -118659,6 +118965,12 @@ entities: rot: 3.141592653589793 rad pos: -56.5,11.5 parent: 60 + - uid: 9757 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -56.5,-3.5 + parent: 60 - uid: 10202 components: - type: Transform @@ -118725,14 +119037,6 @@ entities: parent: 60 - type: ApcPowerReceiver powerLoad: 0 - - uid: 10692 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: -57.5,-2.5 - parent: 60 - - type: ApcPowerReceiver - powerLoad: 0 - uid: 10693 components: - type: Transform From 4f2d2208f5fb60f55be5454c10295503e488460e Mon Sep 17 00:00:00 2001 From: Tiniest Shark Date: Sun, 7 Dec 2025 17:28:39 -0500 Subject: [PATCH 050/205] Misc Proper Rotation Sprites (#41764) * Proper rotation sprites. * copyright mentions * wrong one * better ointment --- .../Entities/Clothing/Neck/ties.yml | 26 ++-- .../Instruments/instruments_percussion.yml | 5 +- .../Objects/Specific/Hydroponics/tools.yml | 12 +- .../Objects/Specific/Medical/healing.yml | 4 +- .../Objects/Specific/Service/barber.yml | 4 +- .../Entities/Objects/Tools/gas_tanks.yml | 22 ++- .../Clothing/Neck/Ties/dettie.rsi/meta.json | 49 +++--- .../Clothing/Neck/Ties/dettie.rsi/storage.png | Bin 0 -> 384 bytes .../Clothing/Neck/Ties/redtie.rsi/meta.json | 57 +++---- .../Clothing/Neck/Ties/redtie.rsi/storage.png | Bin 0 -> 417 bytes .../Clothing/Neck/Ties/scitie.rsi/meta.json | 57 +++---- .../Clothing/Neck/Ties/scitie.rsi/storage.png | Bin 0 -> 450 bytes .../Fun/Instruments/microphone.rsi/meta.json | 41 ++--- .../Instruments/microphone.rsi/storage.png | Bin 0 -> 752 bytes .../Specific/Medical/medical.rsi/meta.json | 5 +- .../Medical/medical.rsi/ointment-storage.png | Bin 0 -> 318 bytes .../Objects/Tanks/emergency.rsi/meta.json | 147 +++++++++--------- .../Objects/Tanks/emergency.rsi/storage.png | Bin 0 -> 442 bytes .../Tanks/emergency_clown.rsi/meta.json | 147 +++++++++--------- .../Tanks/emergency_clown.rsi/storage.png | Bin 0 -> 530 bytes .../Tanks/emergency_double.rsi/meta.json | 147 +++++++++--------- .../Tanks/emergency_double.rsi/storage.png | Bin 0 -> 632 bytes .../Tanks/emergency_double_red.rsi/icon.png | Bin 648 -> 660 bytes .../Tanks/emergency_double_red.rsi/meta.json | 147 +++++++++--------- .../emergency_double_red.rsi/storage.png | Bin 0 -> 648 bytes .../Tanks/emergency_extended.rsi/meta.json | 147 +++++++++--------- .../Tanks/emergency_extended.rsi/storage.png | Bin 0 -> 468 bytes .../emergency_extended_red.rsi/meta.json | 147 +++++++++--------- .../emergency_extended_red.rsi/storage.png | Bin 0 -> 443 bytes .../Objects/Tanks/emergency_red.rsi/meta.json | 147 +++++++++--------- .../Tanks/emergency_red.rsi/storage.png | Bin 0 -> 440 bytes .../Tanks/emergency_yellow.rsi/icon.png | Bin 463 -> 461 bytes .../Tanks/emergency_yellow.rsi/meta.json | 147 +++++++++--------- .../Tanks/emergency_yellow.rsi/storage.png | Bin 0 -> 465 bytes .../Tools/Hydroponics/clippers.rsi/meta.json | 38 ++--- .../Tools/Hydroponics/hatchet.rsi/meta.json | 41 ++--- .../Tools/Hydroponics/hatchet.rsi/storage.png | Bin 0 -> 464 bytes .../Tools/Hydroponics/hoe.rsi/meta.json | 41 ++--- .../Tools/Hydroponics/hoe.rsi/storage.png | Bin 0 -> 378 bytes .../Tools/Hydroponics/scythe.rsi/meta.json | 46 +++--- .../Tools/Hydroponics/spade.rsi/meta.json | 49 +++--- .../Tools/Hydroponics/spade.rsi/storage.png | Bin 0 -> 449 bytes .../Objects/Tools/scissors.rsi/meta.json | 41 ++--- .../Objects/Tools/scissors.rsi/storage.png | Bin 0 -> 397 bytes 44 files changed, 901 insertions(+), 813 deletions(-) create mode 100644 Resources/Textures/Clothing/Neck/Ties/dettie.rsi/storage.png create mode 100644 Resources/Textures/Clothing/Neck/Ties/redtie.rsi/storage.png create mode 100644 Resources/Textures/Clothing/Neck/Ties/scitie.rsi/storage.png create mode 100644 Resources/Textures/Objects/Fun/Instruments/microphone.rsi/storage.png create mode 100644 Resources/Textures/Objects/Specific/Medical/medical.rsi/ointment-storage.png create mode 100644 Resources/Textures/Objects/Tanks/emergency.rsi/storage.png create mode 100644 Resources/Textures/Objects/Tanks/emergency_clown.rsi/storage.png create mode 100644 Resources/Textures/Objects/Tanks/emergency_double.rsi/storage.png create mode 100644 Resources/Textures/Objects/Tanks/emergency_double_red.rsi/storage.png create mode 100644 Resources/Textures/Objects/Tanks/emergency_extended.rsi/storage.png create mode 100644 Resources/Textures/Objects/Tanks/emergency_extended_red.rsi/storage.png create mode 100644 Resources/Textures/Objects/Tanks/emergency_red.rsi/storage.png create mode 100644 Resources/Textures/Objects/Tanks/emergency_yellow.rsi/storage.png create mode 100644 Resources/Textures/Objects/Tools/Hydroponics/hatchet.rsi/storage.png create mode 100644 Resources/Textures/Objects/Tools/Hydroponics/hoe.rsi/storage.png create mode 100644 Resources/Textures/Objects/Tools/Hydroponics/spade.rsi/storage.png create mode 100644 Resources/Textures/Objects/Tools/scissors.rsi/storage.png diff --git a/Resources/Prototypes/Entities/Clothing/Neck/ties.yml b/Resources/Prototypes/Entities/Clothing/Neck/ties.yml index 2e172ae285..2c13dade47 100644 --- a/Resources/Prototypes/Entities/Clothing/Neck/ties.yml +++ b/Resources/Prototypes/Entities/Clothing/Neck/ties.yml @@ -1,13 +1,5 @@ - type: entity parent: ClothingNeckBase - id: ClothingNeckTieBase - abstract: true - components: - - type: Item - storedRotation: -45 - -- type: entity - parent: ClothingNeckTieBase id: ClothingNeckTieRed name: red-tie description: A neosilk clip-on red tie. @@ -16,6 +8,10 @@ sprite: Clothing/Neck/Ties/redtie.rsi - type: Clothing sprite: Clothing/Neck/Ties/redtie.rsi + - type: Item + storedSprite: + state: storage + sprite: Clothing/Neck/Ties/redtie.rsi - type: Tag tags: - HamsterWearable @@ -24,7 +20,7 @@ - Recyclable - type: entity - parent: ClothingNeckTieBase + parent: ClothingNeckBase id: ClothingNeckTieDet name: detective's tie description: A loosely tied necktie, a perfect accessory for the over-worked detective. @@ -33,9 +29,13 @@ sprite: Clothing/Neck/Ties/dettie.rsi - type: Clothing sprite: Clothing/Neck/Ties/dettie.rsi - + - type: Item + storedSprite: + state: storage + sprite: Clothing/Neck/Ties/dettie.rsi + - type: entity - parent: ClothingNeckTieBase + parent: ClothingNeckBase id: ClothingNeckTieSci name: scientist's tie description: Why do we all have to wear these ridiculous ties? @@ -44,6 +44,10 @@ sprite: Clothing/Neck/Ties/scitie.rsi - type: Clothing sprite: Clothing/Neck/Ties/scitie.rsi + - type: Item + storedSprite: + state: storage + sprite: Clothing/Neck/Ties/scitie.rsi - type: Tag tags: - ClothMade diff --git a/Resources/Prototypes/Entities/Objects/Fun/Instruments/instruments_percussion.yml b/Resources/Prototypes/Entities/Objects/Fun/Instruments/instruments_percussion.yml index adff2cf014..654a491d88 100644 --- a/Resources/Prototypes/Entities/Objects/Fun/Instruments/instruments_percussion.yml +++ b/Resources/Prototypes/Entities/Objects/Fun/Instruments/instruments_percussion.yml @@ -61,7 +61,10 @@ sprite: Objects/Fun/Instruments/microphone.rsi - type: Item size: Small - storedRotation: -45 + storedSprite: + state: storage + sprite: Objects/Fun/Instruments/microphone.rsi + - type: entity parent: BasePercussionInstrument diff --git a/Resources/Prototypes/Entities/Objects/Specific/Hydroponics/tools.yml b/Resources/Prototypes/Entities/Objects/Specific/Hydroponics/tools.yml index e37c1a8816..cfe3a6924e 100644 --- a/Resources/Prototypes/Entities/Objects/Specific/Hydroponics/tools.yml +++ b/Resources/Prototypes/Entities/Objects/Specific/Hydroponics/tools.yml @@ -19,7 +19,9 @@ Slash: 6 - type: Item sprite: Objects/Tools/Hydroponics/hoe.rsi - storedRotation: -135 + storedSprite: + state: storage + sprite: Objects/Tools/Hydroponics/hoe.rsi - type: PhysicalComposition materialComposition: Steel: 100 @@ -98,7 +100,9 @@ Piercing: 2 - type: Item sprite: Objects/Tools/Hydroponics/hatchet.rsi - storedRotation: -135 + storedSprite: + state: storage + sprite: Objects/Tools/Hydroponics/hatchet.rsi - type: PhysicalComposition materialComposition: Steel: 100 @@ -125,7 +129,9 @@ collection: MetalThud - type: Item sprite: Objects/Tools/Hydroponics/spade.rsi - storedRotation: -45 + storedSprite: + state: storage + sprite: Objects/Tools/Hydroponics/spade.rsi - type: Shovel speedModifier: 0.75 # slower at digging than a full-sized shovel - type: PhysicalComposition diff --git a/Resources/Prototypes/Entities/Objects/Specific/Medical/healing.yml b/Resources/Prototypes/Entities/Objects/Specific/Medical/healing.yml index 937d4c0389..74b9caaf63 100644 --- a/Resources/Prototypes/Entities/Objects/Specific/Medical/healing.yml +++ b/Resources/Prototypes/Entities/Objects/Specific/Medical/healing.yml @@ -27,7 +27,9 @@ state: ointment - type: Item heldPrefix: ointment - storedRotation: 45 + storedSprite: + state: ointment-storage + sprite: Objects/Specific/Medical/medical.rsi - type: Healing damageContainers: - Biological diff --git a/Resources/Prototypes/Entities/Objects/Specific/Service/barber.yml b/Resources/Prototypes/Entities/Objects/Specific/Service/barber.yml index e3fe3584f8..ccd42776e3 100644 --- a/Resources/Prototypes/Entities/Objects/Specific/Service/barber.yml +++ b/Resources/Prototypes/Entities/Objects/Specific/Service/barber.yml @@ -8,7 +8,9 @@ sprite: Objects/Tools/scissors.rsi state: icon - type: Item - storedRotation: 135 + storedSprite: + state: storage + sprite: Objects/Tools/scissors.rsi - type: MagicMirror - type: ActivatableUI key: enum.MagicMirrorUiKey.Key diff --git a/Resources/Prototypes/Entities/Objects/Tools/gas_tanks.yml b/Resources/Prototypes/Entities/Objects/Tools/gas_tanks.yml index eb4b881998..8ce9de0f3b 100644 --- a/Resources/Prototypes/Entities/Objects/Tools/gas_tanks.yml +++ b/Resources/Prototypes/Entities/Objects/Tools/gas_tanks.yml @@ -94,7 +94,9 @@ - type: Item size: Small sprite: Objects/Tanks/emergency.rsi - storedRotation: -45 + storedSprite: + state: storage + sprite: Objects/Tanks/emergency.rsi - type: GasTank air: volume: 0.66 @@ -123,6 +125,9 @@ sprite: Objects/Tanks/emergency_red.rsi - type: Item sprite: Objects/Tanks/emergency_red.rsi + storedSprite: + state: storage + sprite: Objects/Tanks/emergency_red.rsi - type: Clothing sprite: Objects/Tanks/emergency_red.rsi @@ -136,6 +141,9 @@ sprite: Objects/Tanks/emergency_extended.rsi - type: Item sprite: Objects/Tanks/emergency_extended.rsi + storedSprite: + state: storage + sprite: Objects/Tanks/emergency_extended.rsi - type: GasTank air: volume: 1.5 @@ -153,6 +161,9 @@ sprite: Objects/Tanks/emergency_extended_red.rsi - type: Item sprite: Objects/Tanks/emergency_extended_red.rsi + storedSprite: + state: storage + sprite: Objects/Tanks/emergency_extended_red.rsi - type: Clothing sprite: Objects/Tanks/emergency_extended_red.rsi @@ -166,6 +177,9 @@ sprite: Objects/Tanks/emergency_double.rsi - type: Item sprite: Objects/Tanks/emergency_double.rsi + storedSprite: + state: storage + sprite: Objects/Tanks/emergency_double.rsi - type: GasTank air: volume: 2.5 @@ -188,6 +202,9 @@ sprite: Objects/Tanks/emergency_double_red.rsi - type: Item sprite: Objects/Tanks/emergency_double_red.rsi + storedSprite: + state: storage + sprite: Objects/Tanks/emergency_double_red.rsi - type: Clothing sprite: Objects/Tanks/emergency_double_red.rsi @@ -201,6 +218,9 @@ sprite: Objects/Tanks/emergency_clown.rsi - type: Item sprite: Objects/Tanks/emergency_clown.rsi + storedSprite: + state: storage + sprite: Objects/Tanks/emergency_clown.rsi - type: Clothing sprite: Objects/Tanks/emergency_clown.rsi diff --git a/Resources/Textures/Clothing/Neck/Ties/dettie.rsi/meta.json b/Resources/Textures/Clothing/Neck/Ties/dettie.rsi/meta.json index f6ae2ed6de..c5916a5432 100644 --- a/Resources/Textures/Clothing/Neck/Ties/dettie.rsi/meta.json +++ b/Resources/Textures/Clothing/Neck/Ties/dettie.rsi/meta.json @@ -1,26 +1,29 @@ { - "version": 1, - "license": "CC-BY-SA-3.0", - "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/5a73e8f825ff279e82949b9329783a9e3070e2da, edited by Flareguy for Space Station 14 | In hand sprites sprited by PuroSlavKing (Github) for Space Station 14", - "size": { - "x": 32, - "y": 32 - }, - "states": [ - { - "name": "equipped-NECK", - "directions": 4 + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/5a73e8f825ff279e82949b9329783a9e3070e2da, edited by Flareguy for Space Station 14 | In hand sprites sprited by PuroSlavKing (Github) for Space Station 14. Storage by TiniestShark (Github)", + "size": { + "x": 32, + "y": 32 }, - { - "name": "icon" - }, - { - "name": "inhand-left", - "directions": 4 - }, - { - "name": "inhand-right", - "directions": 4 - } - ] + "states": [ + { + "name": "equipped-NECK", + "directions": 4 + }, + { + "name": "icon" + }, + { + "name": "storage" + }, + { + "name": "inhand-left", + "directions": 4 + }, + { + "name": "inhand-right", + "directions": 4 + } + ] } diff --git a/Resources/Textures/Clothing/Neck/Ties/dettie.rsi/storage.png b/Resources/Textures/Clothing/Neck/Ties/dettie.rsi/storage.png new file mode 100644 index 0000000000000000000000000000000000000000..ea16fe10626184503e4f61d3416969be281ec65c GIT binary patch literal 384 zcmV-`0e}99P)Px$I!Q!9R9J=Wm%)mJFc3s*7bOv*2qN??|NmLuym%XkO@!=0GC1R0x+AkJJ9P{s zzErhM2l(&$(rohHr{^_h#yrpB^C}GhGs8KDs@k`2+XiOV9Hnyr0Ej4AYXJc3x~gtp zEFwxobc#cw@2g=F`hPT^IG@gkZ$o2y`MG#}W52+Ge z8UX-t3?hJI19}FCF{;LM@hDA1$vKCnX&%-?2;%%z02!k1`xC%4P2%&49wx&u005R{ e`MVF3U)K+ysjVA;*spj10000Px$TS-JgR9J=Wm(5DUKoo_)F{R=tDJi6ttO9Oy=fbDyE97~61)s^KEAa;m4mu@} zFfQU~YAiUnwMFdNb)a{?oO8L{f&VTg`O|DNcHf;}Jv;^18%O{Ea-DGSe%;)`jV(oW zL=HgfLaq~_yo5J}6( z0g^#PjK*Lo>t^!+W!+$~#B9NVB1_$cJ_f*G84Y7`ABYA~SvS1ySH$S{Kv_u{Ie?d; zy||6Rh-!!;@D11nkv5_Tpxc055Q%mX>>>zupgV-RAktwJ>_Be_c?pM+I0A3Kmo$c; zHLA!`cQQPx$d`Uz>R9J=Wm%nPlP!z_0Ew>O5A+8yO6z<>}L8OaNaPblP7>;>>j(w8S(Y;%T zCg9{CG+S0(gn%u#gIueULeH_Z^v}111ak7_``w(J3x8cFnwzXmUETHh{90VkXbeO} zMW->Mbru4!STC8aCd?JJR0#kK%-D4rBLHTr3HQ%8>RM`9o4WUKd{im~UQtm2sG>jG zfVHVJ?IHH@1y(pMf>W)5sHo^on-u+!G7hw5^a+%4Kzl{-B!j%m*C*il zGude* z$$}jOs%PsBc>N>z6$r!zcALEX>4Tx04R}tkv&MmKpe$iQ>CI62Rle{$WS|35EXHhDi*;)X)CnqU~=gfG-*gu zTpR`0f`cE6RRe3JS*_Mt`=0!T!GgAu;X2JxB(Q`eQV=1djtZ)<5TjKi#YCF+;~xI7<4=)GCRYWF z91EyHh2;3b|KNAGW^roLO$x?=-WS{c7y|;kK&xTf-^aGyIsyF8z?IhV*P6iWC+Urj z7C8cjwtZt~5Ji8Yh;bTI1VI_O z%?W%8DvrrPI6+z~B_*bahlVX85>^Uf$AFSm_BWPnjsN3Y_5l2M-Nh7HYsc^Ao2C)( zCoZtoj(MIVgaD<~+339&L)`CWu9Sk-dNG~N0Bh#45TXRu%%@Qz5x^zpA%x=qx~^L_ zXXfJonE6KtWP)Px#_(?=TR9J=Wlrd_90{@xg;gzS4iat4JKEd<(6Z-z$Cxspn zVH`z_qlhBn^$V)vKhcVK)D$Px$bV)=(R9J=WmcdE_K^%v_jTVpYMui2vfLa7A-nSn z6kUX^n}kA8E=ABGh@?x|7HWqA*TZ&NLGa*?rbT|2o&7H}zmJ(6W?;;JN9w0@EE;jT z)r*(qp2rmyh(#k#aB+#}mukEA^l%S=Ur~FOnDiQ)OeCDVVMqWM#q*ADenkbm&44F? zWFq0LuEc4)TMj@fy-uNI;xy}gH0qv$T_(JS@8@y=NIsQ9$@H2hE&%XawE$42X92Lo z8SHRocmh?+>RNAU+4lPXsDR7-T%g^qg*2gH&jNYFklZbIZI*GGb!1Z~aF`vAfGgow zRBU4h$*0oNvQ#&8WK$oGfXmj=XUBU>6Q2bkfkEO~z&EqZ!SN|}IMeqJC?o)o+B=~Z z(%23yj7DIP{7r#M<+0;AbOD#MFPW*k{tl#(FM-gFD89Do1k<}*Uflv9o4U|lKv=+) k0BFA52#1duGv-(D4V4CV!M@nK!vFvP07*qoM6N<$f&)s$nE(I) literal 0 HcmV?d00001 diff --git a/Resources/Textures/Objects/Tanks/emergency_clown.rsi/meta.json b/Resources/Textures/Objects/Tanks/emergency_clown.rsi/meta.json index 21d23712e9..760edc5a67 100644 --- a/Resources/Textures/Objects/Tanks/emergency_clown.rsi/meta.json +++ b/Resources/Textures/Objects/Tanks/emergency_clown.rsi/meta.json @@ -1,75 +1,78 @@ { - "version": 1, - "license": "CC-BY-SA-3.0", - "copyright": "Taken from tgstation at https://github.com/tgstation/tgstation/commit/ff8df99906ab1909674680b9973bd3c909080360", - "size": { - "x": 32, - "y": 32 - }, - "states": [ - { - "name": "icon" + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from tgstation at https://github.com/tgstation/tgstation/commit/ff8df99906ab1909674680b9973bd3c909080360. Storage by TiniestShark (Github)", + "size": { + "x": 32, + "y": 32 }, - { - "name": "equipped-BELT", - "directions": 4 - }, - { - "name": "equipped-SUITSTORAGE-dog", - "directions": 4, - "delays": [[1],[1],[1],[1]] - }, - { - "name": "equipped-SUITSTORAGE-puppy", - "directions": 4, - "delays": [[1],[1],[1],[1]] - }, - { - "name": "equipped-SUITSTORAGE-fox", - "directions": 4, - "delays": [[1],[1],[1],[1]] - }, - { - "name": "equipped-SUITSTORAGE-cat", - "directions": 4, - "delays": [[1],[1],[1],[1]] - }, - { - "name": "equipped-SUITSTORAGE-sloth", - "directions": 4, - "delays": [[1],[1],[1],[1]] - }, - { - "name": "equipped-SUITSTORAGE-hamster", - "directions": 4, - "delays": [[1],[1],[1],[1]] - }, - { - "name": "equipped-SUITSTORAGE-kangaroo", - "directions": 4, - "delays": [[1],[1],[1],[1]] - }, - { - "name": "equipped-SUITSTORAGE-possum", - "directions": 4, - "delays": [[1],[1],[1],[1]] - }, - { - "name": "equipped-SUITSTORAGE-pig", - "directions": 4, - "delays": [[1],[1],[1],[1]] - }, - { - "name": "inhand-left", - "directions": 4 - }, - { - "name": "inhand-right", - "directions": 4 - }, - { - "name": "equipped-SUITSTORAGE", - "directions": 4 - } - ] + "states": [ + { + "name": "icon" + }, + { + "name": "storage" + }, + { + "name": "equipped-BELT", + "directions": 4 + }, + { + "name": "equipped-SUITSTORAGE-dog", + "directions": 4, + "delays": [[1],[1],[1],[1]] + }, + { + "name": "equipped-SUITSTORAGE-puppy", + "directions": 4, + "delays": [[1],[1],[1],[1]] + }, + { + "name": "equipped-SUITSTORAGE-fox", + "directions": 4, + "delays": [[1],[1],[1],[1]] + }, + { + "name": "equipped-SUITSTORAGE-cat", + "directions": 4, + "delays": [[1],[1],[1],[1]] + }, + { + "name": "equipped-SUITSTORAGE-sloth", + "directions": 4, + "delays": [[1],[1],[1],[1]] + }, + { + "name": "equipped-SUITSTORAGE-hamster", + "directions": 4, + "delays": [[1],[1],[1],[1]] + }, + { + "name": "equipped-SUITSTORAGE-kangaroo", + "directions": 4, + "delays": [[1],[1],[1],[1]] + }, + { + "name": "equipped-SUITSTORAGE-possum", + "directions": 4, + "delays": [[1],[1],[1],[1]] + }, + { + "name": "equipped-SUITSTORAGE-pig", + "directions": 4, + "delays": [[1],[1],[1],[1]] + }, + { + "name": "inhand-left", + "directions": 4 + }, + { + "name": "inhand-right", + "directions": 4 + }, + { + "name": "equipped-SUITSTORAGE", + "directions": 4 + } + ] } diff --git a/Resources/Textures/Objects/Tanks/emergency_clown.rsi/storage.png b/Resources/Textures/Objects/Tanks/emergency_clown.rsi/storage.png new file mode 100644 index 0000000000000000000000000000000000000000..9aa8823e4c4e8e56f9c9f7026d45b69163bff61b GIT binary patch literal 530 zcmV+t0`2{YP)Px$%t=H+R9J=WmcL6|Q545N5r;z(J3Inu%Zm^(m3C;?*i0FuqeAIYXa^COO1oI- zq!9lAp-6|$0hb_gO#gt`I;fQXKp%|(?ciW6G?j}8r$bDr)WLhx5TyCQg~#FDbH3+r z&f!9j|D8}fmpw187ujpIgG>8$7T|ety)|+dfc?GQmfcSz+1dVRCBlmI=$HbCMD)+& zdGXe<@z-w~JazjHTbpHl^mqz@;OiFvwl>Qc^Q$viH-kT!e4!!{_5I;<*(={PFN;>0 zH?gX~kE6rZcQ_p7_3VdA1Eu!hsF)io=%@)yY5q+xY%|gG^9&oC_Y`KprC6}vzVbz2H z3ny@oaiWzH>63;nQ-RgPQzje)bbS$7SAZ3W)=Tgi_h!ecMN~m^l5!eBXyZwi7g2x;3Fb`Dxra!P9z8nEZ`bUR UkPTjnA^-pY07*qoM6N<$f|$bj6951J literal 0 HcmV?d00001 diff --git a/Resources/Textures/Objects/Tanks/emergency_double.rsi/meta.json b/Resources/Textures/Objects/Tanks/emergency_double.rsi/meta.json index fe19dcec1c..f4db0728d2 100644 --- a/Resources/Textures/Objects/Tanks/emergency_double.rsi/meta.json +++ b/Resources/Textures/Objects/Tanks/emergency_double.rsi/meta.json @@ -1,75 +1,78 @@ { - "version": 1, - "license": "CC-BY-SA-3.0", - "copyright": "Taken from tgstation at https://github.com/tgstation/tgstation/commit/e1142f20f5e4661cb6845cfcf2dd69f864d67432", - "size": { - "x": 32, - "y": 32 - }, - "states": [ - { - "name": "icon" + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from tgstation at https://github.com/tgstation/tgstation/commit/e1142f20f5e4661cb6845cfcf2dd69f864d67432. Storage by TiniestShark (Github)", + "size": { + "x": 32, + "y": 32 }, - { - "name": "equipped-BELT", - "directions": 4 - }, - { - "name": "equipped-SUITSTORAGE-dog", - "directions": 4, - "delays": [[1],[1],[1],[1]] - }, - { - "name": "equipped-SUITSTORAGE-puppy", - "directions": 4, - "delays": [[1],[1],[1],[1]] - }, - { - "name": "equipped-SUITSTORAGE-fox", - "directions": 4, - "delays": [[1],[1],[1],[1]] - }, - { - "name": "equipped-SUITSTORAGE-cat", - "directions": 4, - "delays": [[1],[1],[1],[1]] - }, - { - "name": "equipped-SUITSTORAGE-sloth", - "directions": 4, - "delays": [[1],[1],[1],[1]] - }, - { - "name": "equipped-SUITSTORAGE-hamster", - "directions": 4, - "delays": [[1],[1],[1],[1]] - }, - { - "name": "equipped-SUITSTORAGE-kangaroo", - "directions": 4, - "delays": [[1],[1],[1],[1]] - }, - { - "name": "equipped-SUITSTORAGE-possum", - "directions": 4, - "delays": [[1],[1],[1],[1]] - }, - { - "name": "equipped-SUITSTORAGE-pig", - "directions": 4, - "delays": [[1],[1],[1],[1]] - }, - { - "name": "inhand-left", - "directions": 4 - }, - { - "name": "inhand-right", - "directions": 4 - }, - { - "name": "equipped-SUITSTORAGE", - "directions": 4 - } - ] + "states": [ + { + "name": "icon" + }, + { + "name": "storage" + }, + { + "name": "equipped-BELT", + "directions": 4 + }, + { + "name": "equipped-SUITSTORAGE-dog", + "directions": 4, + "delays": [[1],[1],[1],[1]] + }, + { + "name": "equipped-SUITSTORAGE-puppy", + "directions": 4, + "delays": [[1],[1],[1],[1]] + }, + { + "name": "equipped-SUITSTORAGE-fox", + "directions": 4, + "delays": [[1],[1],[1],[1]] + }, + { + "name": "equipped-SUITSTORAGE-cat", + "directions": 4, + "delays": [[1],[1],[1],[1]] + }, + { + "name": "equipped-SUITSTORAGE-sloth", + "directions": 4, + "delays": [[1],[1],[1],[1]] + }, + { + "name": "equipped-SUITSTORAGE-hamster", + "directions": 4, + "delays": [[1],[1],[1],[1]] + }, + { + "name": "equipped-SUITSTORAGE-kangaroo", + "directions": 4, + "delays": [[1],[1],[1],[1]] + }, + { + "name": "equipped-SUITSTORAGE-possum", + "directions": 4, + "delays": [[1],[1],[1],[1]] + }, + { + "name": "equipped-SUITSTORAGE-pig", + "directions": 4, + "delays": [[1],[1],[1],[1]] + }, + { + "name": "inhand-left", + "directions": 4 + }, + { + "name": "inhand-right", + "directions": 4 + }, + { + "name": "equipped-SUITSTORAGE", + "directions": 4 + } + ] } diff --git a/Resources/Textures/Objects/Tanks/emergency_double.rsi/storage.png b/Resources/Textures/Objects/Tanks/emergency_double.rsi/storage.png new file mode 100644 index 0000000000000000000000000000000000000000..f12481de65e82069d6e78466610c07349a020b03 GIT binary patch literal 632 zcmV-;0*C#HP)Px%GD$>1R9J=WmqBO~K@^5ROKFQBwnUQ9A~qyc2$(<-!9x*}K(Dz}P$_uOgNI&3 zym%2y)I$k^hfs1Oi8xwFl7xmT~>NUh!5&BudhLI6~%n#ucpJ~3>{i0G;Vp)voy z4jdmG0{%b;1WpA`1MqqM1Er5;<${zZh>F9(02`GpwvC1@9}Wg6zF!BB79%YnH0E!L z_5wtrF+5(k8P_zO)s^NTqo)tqEldFh0N0|uB(idAcC`nbz@Y%;Q=q~-F5q`S`YxD`Pwu;VH!52I zj1IdFbl9x+A(DTLd5xr3ubJ66M(uq?&w``(0f3j6Kj5mzlvYKyY-HZ S+893o0000V5kPgAN!wx~YQ{thM5M4Be${S?I9b|=Io@RuOc^Gz(CGEAeAjaMf@x1w` z{ds-Y?fstiuxIb*^ZV}EGcaPr$bX36>rwn(kJ8BAmSzCmu76IY&1wT6v%X9`R$rboU4IIz^BY!=_dGo^UUNS zi;b1T5>~rIoqycz>Qwsu1AN-do@qjJ0|K5a>=ClqPD~!M*ci075VF{i_lq3JB>=Ly z9n)H7^`Fnv^ec!2d`dDUk((GNEtlD<9PuuAjo|!(3a^%IZb#o45b)h&aM8q!vz?C@ z{yZuzm+L|`3kZ00G_1mtDT!QRPu(+RHZxnP0I+gcs(*UwH46xMA|B&vctnNoPK=+} zmzK-)eyeDL*A<8ae9Gj-Hlm|p`rN&Ikd_cloQ8w8$?FP40zRe3+zLRCxmATH;xUpb ziRWJrbi->308I2b)$d$1@%ZU9iFl0LQ;&G~`HL=iRRO=(qvU`5;%79;R^pH z9Z5t%R9Hu27zLwX6wm_Lnwk6uVJH_bV1m*V0X;Qku!S&7KYn=6prxw^b_iGj9zd}J zK$d4@XM@=SB4S{^yox%*@xuqfd_s<3gwkXIm}MW{ykc;2c7I`5zjiePj1RK>;hmds z{^3(+u-Zj-2*7*}GW_#~RIueRKFsnJ zwtRUHwiM=bkYg=v?HR6JzJw7HB!>XZ@>>sIfGtDzIf(BpzyhX0d{ANp0Z>SQ(gZd@ zk^?}N_sm=bwtsx@hd&Hg_?Q@uc-t{7U%Cu#IW7Ql1h#ZQv;$z4Kh8{mTMi3}ei>0P z9|S;hFaWX?%ESqXasbTolJq#Z<*<-|fqW(=hKc|Ff!UxmfGgFb17;|V6TmF5tEyx$ zv9Mw|_xv8%a!^Ph1CYbSe*P!PauC3)5M(*bXO@oc41dS>?*v;83JH)n48Ve&RLemC zXB2=e*ZBkqQVa#%>f9O2>P%P?>DY=+3_D2glx0h}QKs?9=ty}@i)NPqyy z5q<5g3|yY>F5vu6iRB=GQ!{e$xn}cLh6Rx^P#FlI)aNjO*8pTkfC?K*6C5@`&=BM* x7Y3+hIS3GC5XccwCQ-%fC>RB!fOx>b002SULeoEeSwa8+002ovPDHLkV1mND0LlOW diff --git a/Resources/Textures/Objects/Tanks/emergency_double_red.rsi/meta.json b/Resources/Textures/Objects/Tanks/emergency_double_red.rsi/meta.json index 74fc108c09..f8ac073188 100644 --- a/Resources/Textures/Objects/Tanks/emergency_double_red.rsi/meta.json +++ b/Resources/Textures/Objects/Tanks/emergency_double_red.rsi/meta.json @@ -1,75 +1,78 @@ { - "version": 1, - "license": "CC-BY-SA-3.0", - "copyright": "Adapted by DangerRevolution from tgstation at https://github.com/tgstation/tgstation/commit/e1142f20f5e4661cb6845cfcf2dd69f864d67432", - "size": { - "x": 32, - "y": 32 - }, - "states": [ - { - "name": "icon" + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Adapted by DangerRevolution from tgstation at https://github.com/tgstation/tgstation/commit/e1142f20f5e4661cb6845cfcf2dd69f864d67432. Storage and icon edits by TiniestShark (Github)", + "size": { + "x": 32, + "y": 32 }, - { - "name": "equipped-BELT", - "directions": 4 - }, - { - "name": "equipped-SUITSTORAGE-dog", - "directions": 4, - "delays": [[1],[1],[1],[1]] - }, - { - "name": "equipped-SUITSTORAGE-puppy", - "directions": 4, - "delays": [[1],[1],[1],[1]] - }, - { - "name": "equipped-SUITSTORAGE-fox", - "directions": 4, - "delays": [[1],[1],[1],[1]] - }, - { - "name": "equipped-SUITSTORAGE-cat", - "directions": 4, - "delays": [[1],[1],[1],[1]] - }, - { - "name": "equipped-SUITSTORAGE-sloth", - "directions": 4, - "delays": [[1],[1],[1],[1]] - }, - { - "name": "equipped-SUITSTORAGE-hamster", - "directions": 4, - "delays": [[1],[1],[1],[1]] - }, - { - "name": "equipped-SUITSTORAGE-kangaroo", - "directions": 4, - "delays": [[1],[1],[1],[1]] - }, - { - "name": "equipped-SUITSTORAGE-possum", - "directions": 4, - "delays": [[1],[1],[1],[1]] - }, - { - "name": "equipped-SUITSTORAGE-pig", - "directions": 4, - "delays": [[1],[1],[1],[1]] - }, - { - "name": "inhand-left", - "directions": 4 - }, - { - "name": "inhand-right", - "directions": 4 - }, - { - "name": "equipped-SUITSTORAGE", - "directions": 4 - } - ] + "states": [ + { + "name": "icon" + }, + { + "name": "storage" + }, + { + "name": "equipped-BELT", + "directions": 4 + }, + { + "name": "equipped-SUITSTORAGE-dog", + "directions": 4, + "delays": [[1],[1],[1],[1]] + }, + { + "name": "equipped-SUITSTORAGE-puppy", + "directions": 4, + "delays": [[1],[1],[1],[1]] + }, + { + "name": "equipped-SUITSTORAGE-fox", + "directions": 4, + "delays": [[1],[1],[1],[1]] + }, + { + "name": "equipped-SUITSTORAGE-cat", + "directions": 4, + "delays": [[1],[1],[1],[1]] + }, + { + "name": "equipped-SUITSTORAGE-sloth", + "directions": 4, + "delays": [[1],[1],[1],[1]] + }, + { + "name": "equipped-SUITSTORAGE-hamster", + "directions": 4, + "delays": [[1],[1],[1],[1]] + }, + { + "name": "equipped-SUITSTORAGE-kangaroo", + "directions": 4, + "delays": [[1],[1],[1],[1]] + }, + { + "name": "equipped-SUITSTORAGE-possum", + "directions": 4, + "delays": [[1],[1],[1],[1]] + }, + { + "name": "equipped-SUITSTORAGE-pig", + "directions": 4, + "delays": [[1],[1],[1],[1]] + }, + { + "name": "inhand-left", + "directions": 4 + }, + { + "name": "inhand-right", + "directions": 4 + }, + { + "name": "equipped-SUITSTORAGE", + "directions": 4 + } + ] } diff --git a/Resources/Textures/Objects/Tanks/emergency_double_red.rsi/storage.png b/Resources/Textures/Objects/Tanks/emergency_double_red.rsi/storage.png new file mode 100644 index 0000000000000000000000000000000000000000..9dab1a5cea44f5a6fb87ee3212bb9de0b2f80fba GIT binary patch literal 648 zcmV;30(bq1P)Px%LP_OYD;YrLZOyi(h@Mi`U46@NwTGbt2!w-XYK5u z*-8f|hjwYJASkpBVp9ZZ2GN$JBBn%a9rA~gTMR-&AssIFlAAW=oFvu3zSH-;hjZ?G z-g|z&1OGcZTIoD?^>VdQ+xrh6g~mS7%Ex^d`~YNgd6V}H4H;ooL_|vt_`RNe4xH`j z1^$8q1_sq(0Jbt|QXAi-CnVLum~p_TvYGwGwpOyV2Yf2YFBt$~F~S1;UQgAq7a$l4 z<8(R9ypS)l9A7f?ZLK6ELJ<{UVBD^YSWTuVh&*)u71Ad$?2exld-E0T5LbCI|W% zxA&rU+gNz>mdSyBqKZD;l^yZprKL5{4jc=R-UTvz+XWm2q;A9LTH2Cl{!|X-+b$sX z{G}Nu5(#oYzB4~N*N_*1@NIbS=Jl%0Gh*Sgxjfp>B1UCY&x;f#QVu+P^w^ARXWEDt zfs_OFobj*KZrg!;+Z~v?ILyYDUVz56T}JGuSS*(s@*)u4hSTp79nrNk-a!{}Z5M#W za*3XE4k9b-`}iX%NH}x(! i=sjSdnbQ0i{}g+#De0mETr&&+0000Px$j!8s8R9J=WmN84iKp2MK6lqHpnox1*)KYK|tki@|&0>XulT$&9o46EzK^H+> zodg#LK~%6Kxv!QQ1Y4tb{BU#%+^Yz(+Iqv8}?; zHLG3B2`J_S+Dvu<;P)dIjQ{}h z=?>No*ft?m1*)|=7v=?goD{$h1&~j7u)f^H*4Za*E}MYKQt7p;y_jMCp1HpVs0Cut z2u_a=QJ4uqOtt=A006ej8xT`1_{5Ss0{z4juq6<Px$bxA})R9J=Wmdi>4Q5=Uq#R(C?aX>RSE)s(vSA$S66gbOXz*@Cw*=zIwA@l|< zD%`ZoR&G*U6$q&q5t!P-OP56i)1pQYgFG`{TKMhGpL5RdI~NWI=FAv}oxxf{HGZq- z3dND+3cEBYXp4#1^ z+i4r?+9si3kVdOT>Gpz8Fa}_QWkp0#v=f5u0~19E@F|; z-<>BRFiz$Iwgg=FkFyalgG)|nHUi_sw!l^AbG8C@vGgh3+uAVFvWKJI_wb8XYu_=; l0;U8&_5H(g_?$Waf-kU}XR1r;3H|^8002ovPDHLkV1g%Q!0iA4 literal 0 HcmV?d00001 diff --git a/Resources/Textures/Objects/Tanks/emergency_red.rsi/meta.json b/Resources/Textures/Objects/Tanks/emergency_red.rsi/meta.json index d71cdae541..5990e60d2b 100644 --- a/Resources/Textures/Objects/Tanks/emergency_red.rsi/meta.json +++ b/Resources/Textures/Objects/Tanks/emergency_red.rsi/meta.json @@ -1,75 +1,78 @@ { - "version": 1, - "license": "CC-BY-SA-3.0", - "copyright": "Adapted by DangerRevolution from tgstation at https://github.com/tgstation/tgstation/commit/e1142f20f5e4661cb6845cfcf2dd69f864d67432", - "size": { - "x": 32, - "y": 32 - }, - "states": [ - { - "name": "icon" + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Adapted by DangerRevolution from tgstation at https://github.com/tgstation/tgstation/commit/e1142f20f5e4661cb6845cfcf2dd69f864d67432. Storage by TiniestShark (Github)", + "size": { + "x": 32, + "y": 32 }, - { - "name": "equipped-BELT", - "directions": 4 - }, - { - "name": "equipped-SUITSTORAGE-dog", - "directions": 4, - "delays": [[1],[1],[1],[1]] - }, - { - "name": "equipped-SUITSTORAGE-kangaroo", - "directions": 4, - "delays": [[1],[1],[1],[1]] - }, - { - "name": "equipped-SUITSTORAGE-puppy", - "directions": 4, - "delays": [[1],[1],[1],[1]] - }, - { - "name": "equipped-SUITSTORAGE-fox", - "directions": 4, - "delays": [[1],[1],[1],[1]] - }, - { - "name": "equipped-SUITSTORAGE-cat", - "directions": 4, - "delays": [[1],[1],[1],[1]] - }, - { - "name": "equipped-SUITSTORAGE-sloth", - "directions": 4, - "delays": [[1],[1],[1],[1]] - }, - { - "name": "equipped-SUITSTORAGE-possum", - "directions": 4, - "delays": [[1],[1],[1],[1]] - }, - { - "name": "equipped-SUITSTORAGE-pig", - "directions": 4, - "delays": [[1],[1],[1],[1]] - }, - { - "name": "equipped-SUITSTORAGE-hamster", - "directions": 4, - "delays": [[1],[1],[1],[1]] - }, - { - "name": "inhand-left", - "directions": 4 - }, - { - "name": "inhand-right", - "directions": 4 - }, - { - "name": "equipped-SUITSTORAGE", - "directions": 4 - } - ] + "states": [ + { + "name": "icon" + }, + { + "name": "storage" + }, + { + "name": "equipped-BELT", + "directions": 4 + }, + { + "name": "equipped-SUITSTORAGE-dog", + "directions": 4, + "delays": [[1],[1],[1],[1]] + }, + { + "name": "equipped-SUITSTORAGE-kangaroo", + "directions": 4, + "delays": [[1],[1],[1],[1]] + }, + { + "name": "equipped-SUITSTORAGE-puppy", + "directions": 4, + "delays": [[1],[1],[1],[1]] + }, + { + "name": "equipped-SUITSTORAGE-fox", + "directions": 4, + "delays": [[1],[1],[1],[1]] + }, + { + "name": "equipped-SUITSTORAGE-cat", + "directions": 4, + "delays": [[1],[1],[1],[1]] + }, + { + "name": "equipped-SUITSTORAGE-sloth", + "directions": 4, + "delays": [[1],[1],[1],[1]] + }, + { + "name": "equipped-SUITSTORAGE-possum", + "directions": 4, + "delays": [[1],[1],[1],[1]] + }, + { + "name": "equipped-SUITSTORAGE-pig", + "directions": 4, + "delays": [[1],[1],[1],[1]] + }, + { + "name": "equipped-SUITSTORAGE-hamster", + "directions": 4, + "delays": [[1],[1],[1],[1]] + }, + { + "name": "inhand-left", + "directions": 4 + }, + { + "name": "inhand-right", + "directions": 4 + }, + { + "name": "equipped-SUITSTORAGE", + "directions": 4 + } + ] } diff --git a/Resources/Textures/Objects/Tanks/emergency_red.rsi/storage.png b/Resources/Textures/Objects/Tanks/emergency_red.rsi/storage.png new file mode 100644 index 0000000000000000000000000000000000000000..678857be6cbd3b41f4898bb628810e46f5c99ad5 GIT binary patch literal 440 zcmV;p0Z0CcP)Px$a!Eu%R9J=WmQ70nK^%u4Wj90w*9FbIct{L_JS{?j6zH)pV4b>j>}&J^Lg*WG zsPNJ)J9$a*R3M~cL||$MUwS!2upLTC406_W4f46opPBhR^TIGNNU$D6q51jAe zRaFwQgMF`yqejgdfgZcZF9Yr5e85@(GZ7XDIp;{9q)EsQ;)>8aW{v>BsTLxxNQ8s_ z-#br2z)Z#xkZ$j%D^Rq{(-HW-@{9Jn^#W#M=ts1(v8JaKCkNfn;b+gr{sM*tdJ+JY i*EhrAGiJ>A6MO(5qi3XE{RZ^_0000Px$he7nK0I{KLP92glf!jva>Y{9<6Yt3nP{y?u4}4zJDMSH zZdK*Kkt>#(0DlpY6EZvJ%?uC0b++%j_{Vj_Sf(Lfovg4-LmaP8 zh;mvH<+M`0_xle3@LXq^hFITT;q!X3=6Pl3%eyw2%PZfz^|Zh;4Y9G*#{2VapmKl~ zFY;vUldg_p;BxSI3}Z%n&5#8p2al)Vqh}GAuZajk4lO=rU~R4x=+1owR3aXpUI7A= ehlGTL0DJ+k3Ai!1>EZqW0000 delta 438 zcmV;n0ZIPN1J47HBYy#wNklPdcLRIu?QV_{+x{q-0 z-Q7P2L4pMNZ_zbX=$a~Izi;*%>N++(y?w|^coxt#Rg7dtaeo~fT~kFUtZ;I4NVvU2 zO2U(XuBl>RFvZH!5?zrf00V<50E)MHDGARfu(P#ES0sw_RAMTvaFE?6t|tkF6)6c% z0$84n9ujdT_ zsLRYU4Y9a3$J_aE&3I+!vl})?r)PDoDP4q(fP>@-Sf(MCXIgnFUHJ-^60l4|EKC$W zjr#$IAFjYM4UtK_H4Ofv06@ZMtNFeBgoDI8@Y*>IOfS|*_yvbLYQXQEOAAya?jOnk gzQTh93GyfM4%4>HHU-pp-2eap07*qoM6N<$g4|-zdjJ3c diff --git a/Resources/Textures/Objects/Tanks/emergency_yellow.rsi/meta.json b/Resources/Textures/Objects/Tanks/emergency_yellow.rsi/meta.json index fe19dcec1c..1cfa40a9f9 100644 --- a/Resources/Textures/Objects/Tanks/emergency_yellow.rsi/meta.json +++ b/Resources/Textures/Objects/Tanks/emergency_yellow.rsi/meta.json @@ -1,75 +1,78 @@ { - "version": 1, - "license": "CC-BY-SA-3.0", - "copyright": "Taken from tgstation at https://github.com/tgstation/tgstation/commit/e1142f20f5e4661cb6845cfcf2dd69f864d67432", - "size": { - "x": 32, - "y": 32 - }, - "states": [ - { - "name": "icon" + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from tgstation at https://github.com/tgstation/tgstation/commit/e1142f20f5e4661cb6845cfcf2dd69f864d67432. Storage and icon edits by TiniestShark (Github)", + "size": { + "x": 32, + "y": 32 }, - { - "name": "equipped-BELT", - "directions": 4 - }, - { - "name": "equipped-SUITSTORAGE-dog", - "directions": 4, - "delays": [[1],[1],[1],[1]] - }, - { - "name": "equipped-SUITSTORAGE-puppy", - "directions": 4, - "delays": [[1],[1],[1],[1]] - }, - { - "name": "equipped-SUITSTORAGE-fox", - "directions": 4, - "delays": [[1],[1],[1],[1]] - }, - { - "name": "equipped-SUITSTORAGE-cat", - "directions": 4, - "delays": [[1],[1],[1],[1]] - }, - { - "name": "equipped-SUITSTORAGE-sloth", - "directions": 4, - "delays": [[1],[1],[1],[1]] - }, - { - "name": "equipped-SUITSTORAGE-hamster", - "directions": 4, - "delays": [[1],[1],[1],[1]] - }, - { - "name": "equipped-SUITSTORAGE-kangaroo", - "directions": 4, - "delays": [[1],[1],[1],[1]] - }, - { - "name": "equipped-SUITSTORAGE-possum", - "directions": 4, - "delays": [[1],[1],[1],[1]] - }, - { - "name": "equipped-SUITSTORAGE-pig", - "directions": 4, - "delays": [[1],[1],[1],[1]] - }, - { - "name": "inhand-left", - "directions": 4 - }, - { - "name": "inhand-right", - "directions": 4 - }, - { - "name": "equipped-SUITSTORAGE", - "directions": 4 - } - ] + "states": [ + { + "name": "icon" + }, + { + "name": "storage" + }, + { + "name": "equipped-BELT", + "directions": 4 + }, + { + "name": "equipped-SUITSTORAGE-dog", + "directions": 4, + "delays": [[1],[1],[1],[1]] + }, + { + "name": "equipped-SUITSTORAGE-puppy", + "directions": 4, + "delays": [[1],[1],[1],[1]] + }, + { + "name": "equipped-SUITSTORAGE-fox", + "directions": 4, + "delays": [[1],[1],[1],[1]] + }, + { + "name": "equipped-SUITSTORAGE-cat", + "directions": 4, + "delays": [[1],[1],[1],[1]] + }, + { + "name": "equipped-SUITSTORAGE-sloth", + "directions": 4, + "delays": [[1],[1],[1],[1]] + }, + { + "name": "equipped-SUITSTORAGE-hamster", + "directions": 4, + "delays": [[1],[1],[1],[1]] + }, + { + "name": "equipped-SUITSTORAGE-kangaroo", + "directions": 4, + "delays": [[1],[1],[1],[1]] + }, + { + "name": "equipped-SUITSTORAGE-possum", + "directions": 4, + "delays": [[1],[1],[1],[1]] + }, + { + "name": "equipped-SUITSTORAGE-pig", + "directions": 4, + "delays": [[1],[1],[1],[1]] + }, + { + "name": "inhand-left", + "directions": 4 + }, + { + "name": "inhand-right", + "directions": 4 + }, + { + "name": "equipped-SUITSTORAGE", + "directions": 4 + } + ] } diff --git a/Resources/Textures/Objects/Tanks/emergency_yellow.rsi/storage.png b/Resources/Textures/Objects/Tanks/emergency_yellow.rsi/storage.png new file mode 100644 index 0000000000000000000000000000000000000000..68db7d9ac0e90cffa3f97fea1a1c530eeb2c87c6 GIT binary patch literal 465 zcmV;?0WSWDP)Px$i%CR5R9J=Wma$92Kop06DbkiIG@;_qsioi`Sg8q_n#BqQC#QlIH*qQc1ziMj zbrM`01X01F=%RFRic_fw6&-}qLC_k6B#H_mJ*NbUg1u|gD&|{~d%3&!<=t@{;PT($ z+8M0K68SE!mdY*9+t*I=kl2Uy8>w|Bq~4#9ZTn!cNcj>=7yTEIio`Jt}C zG<3V2&j`q81lpYJ0_M{*0APG9ZpXw#4f%{inG5m)-j8$O2YkpT8(3YeV&n9KHZPli#X{kwsXd=!KF@l;2dD)i z;Sf%a_K}+kKupxSF8~0W2Wt=$HF(5AZv;BY-xToOE;T*7E@1JdUE%y9`g2F81UdoJ zm27T0P1cwFI4iya0P`^nFkZ>F4vQR+CRPDile@UM{0cq+OXPJ*0x9r_00000NkvXX Hu0mjfPq@a^ literal 0 HcmV?d00001 diff --git a/Resources/Textures/Objects/Tools/Hydroponics/clippers.rsi/meta.json b/Resources/Textures/Objects/Tools/Hydroponics/clippers.rsi/meta.json index 2bd70432d0..28694a1555 100644 --- a/Resources/Textures/Objects/Tools/Hydroponics/clippers.rsi/meta.json +++ b/Resources/Textures/Objects/Tools/Hydroponics/clippers.rsi/meta.json @@ -1,22 +1,22 @@ { - "version": 1, - "license": "CC-BY-SA-3.0", - "copyright": "Taken from Aurorastation at commit https://github.com/Aurorastation/Aurora.3/commit/3160508c1a9f367be0ab054cceaf2e36c0b66250", - "size": { - "x": 32, - "y": 32 - }, - "states": [ - { - "name": "inhand-left", - "directions": 4 + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from Aurorastation at commit https://github.com/Aurorastation/Aurora.3/commit/3160508c1a9f367be0ab054cceaf2e36c0b66250", + "size": { + "x": 32, + "y": 32 }, - { - "name": "inhand-right", - "directions": 4 - }, - { - "name": "icon" - } - ] + "states": [ + { + "name": "inhand-left", + "directions": 4 + }, + { + "name": "inhand-right", + "directions": 4 + }, + { + "name": "icon" + } + ] } diff --git a/Resources/Textures/Objects/Tools/Hydroponics/hatchet.rsi/meta.json b/Resources/Textures/Objects/Tools/Hydroponics/hatchet.rsi/meta.json index ab98f8e78a..959ccb745c 100644 --- a/Resources/Textures/Objects/Tools/Hydroponics/hatchet.rsi/meta.json +++ b/Resources/Textures/Objects/Tools/Hydroponics/hatchet.rsi/meta.json @@ -1,22 +1,25 @@ { - "version": 1, - "license": "CC-BY-SA-3.0", - "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/c6e3401f2e7e1e55c57060cdf956a98ef1fefc24", - "size": { - "x": 32, - "y": 32 - }, - "states": [ - { - "name": "inhand-left", - "directions": 4 + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/c6e3401f2e7e1e55c57060cdf956a98ef1fefc24, storage by TiniestShark (Github)", + "size": { + "x": 32, + "y": 32 }, - { - "name": "inhand-right", - "directions": 4 - }, - { - "name": "icon" - } - ] + "states": [ + { + "name": "icon" + }, + { + "name": "storage" + }, + { + "name": "inhand-left", + "directions": 4 + }, + { + "name": "inhand-right", + "directions": 4 + } + ] } diff --git a/Resources/Textures/Objects/Tools/Hydroponics/hatchet.rsi/storage.png b/Resources/Textures/Objects/Tools/Hydroponics/hatchet.rsi/storage.png new file mode 100644 index 0000000000000000000000000000000000000000..9641178347f14fc70057f175d7d224e818f63f9e GIT binary patch literal 464 zcmV;>0WbcEP)Px$ib+I4R9J=Wl|M@YVI0Rlmx_@b5~5`YHQ!JaEe*{r61|3?7f?{p8%S{IoixnrH2AMXh0ZhevTITlOt0rrT>MOTJioi&hwt+b=FAvn)ZoR%nFC-LFIbjE zz1{$zP|x*hYL!m_w)Z!AxJi%v-!Q!63J&8(1cUdOrb)G0C08my5o!xn?3PVb*x#Ljnx}MjI%}X@DG$CE%e_VDUGf94 z5{n2m2NzQi4u#P)4OLail?v#(uH>JK%8$~)=k*ZVhzd7{F$pA-*9zbq#*cV-Oq04x z2{#fF=$DvuW7h(G5>sL3+fYitZrQUHm;`eHVFCN=n|8ZN{xy%0hzM^}=>#6H4y3+! zbq)-pVYPTWUzI+ggatCE0XmBT+Ga*dKxzs+O^Zc!S4u!Q0buqC0MZEv2^fipv%IoS z^jMd^q=Xaj*f#H}6Q`2BMZ5f%+HLtKMk3Px$G)Y83R9J=Wma$62KoExic#<66ULi=-#uV8mf|x?`2I0!QgWv;LSoi|wdD8d} z;uWz;C)iw}!Aef=HXdUkClQNdccNz?UpegTe$37e3v{#zDJ2C#KuMAi07Owl01$>D z#c})<*I`39!Eqd9S!UH^d7fKkS?X?OCScpPR=jb6rfHvmQc5en3TyR}??@?02m#>p z-j@e^p7*0Ue-$AF`Mys=2<@j=$G8WE2V1aqfaB2-=lm8nVJA?hnpf);Xo60_SfF}) zhf*_4?k6Zx*LWDQD{yl)V&!j|CcaMRc(~XDYYuY+#^(bp`U9w!F-w4T1-;o6{ox5q zz_i9Q& Y08S28=AO5^0ssI207*qoM6N<$f^(mphX4Qo literal 0 HcmV?d00001 diff --git a/Resources/Textures/Objects/Tools/Hydroponics/scythe.rsi/meta.json b/Resources/Textures/Objects/Tools/Hydroponics/scythe.rsi/meta.json index c82626cfbf..1d0ef05567 100644 --- a/Resources/Textures/Objects/Tools/Hydroponics/scythe.rsi/meta.json +++ b/Resources/Textures/Objects/Tools/Hydroponics/scythe.rsi/meta.json @@ -1,26 +1,26 @@ { - "version": 1, - "license": "CC-BY-SA-3.0", - "copyright": "Taken from Aurorastation at commit https://github.com/Aurorastation/Aurora.3/commit/3160508c1a9f367be0ab054cceaf2e36c0b66250", - "size": { - "x": 32, - "y": 32 - }, - "states": [ - { - "name": "icon" + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from Aurorastation at commit https://github.com/Aurorastation/Aurora.3/commit/3160508c1a9f367be0ab054cceaf2e36c0b66250", + "size": { + "x": 32, + "y": 32 }, - { - "name": "inhand-left", - "directions": 4 - }, - { - "name": "inhand-right", - "directions": 4 - }, - { - "name": "equipped-BACKPACK", - "directions": 4 - } - ] + "states": [ + { + "name": "icon" + }, + { + "name": "inhand-left", + "directions": 4 + }, + { + "name": "inhand-right", + "directions": 4 + }, + { + "name": "equipped-BACKPACK", + "directions": 4 + } + ] } diff --git a/Resources/Textures/Objects/Tools/Hydroponics/spade.rsi/meta.json b/Resources/Textures/Objects/Tools/Hydroponics/spade.rsi/meta.json index aa99fa574a..f167da2bac 100644 --- a/Resources/Textures/Objects/Tools/Hydroponics/spade.rsi/meta.json +++ b/Resources/Textures/Objects/Tools/Hydroponics/spade.rsi/meta.json @@ -1,26 +1,29 @@ { - "version": 1, - "license": "CC-BY-SA-3.0", - "copyright": "Taken from Aurorastation at commit https://github.com/Aurorastation/Aurora.3/commit/3160508c1a9f367be0ab054cceaf2e36c0b66250", - "size": { - "x": 32, - "y": 32 - }, - "states": [ - { - "name": "inhand-left", - "directions": 4 + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from Aurorastation at commit https://github.com/Aurorastation/Aurora.3/commit/3160508c1a9f367be0ab054cceaf2e36c0b66250, storage by TiniestShark (Github)", + "size": { + "x": 32, + "y": 32 }, - { - "name": "inhand-right", - "directions": 4 - }, - { - "name": "icon" - }, - { - "name": "equipped-BELT", - "directions": 4 - } - ] + "states": [ + { + "name": "icon" + }, + { + "name": "storage" + }, + { + "name": "inhand-left", + "directions": 4 + }, + { + "name": "inhand-right", + "directions": 4 + }, + { + "name": "equipped-BELT", + "directions": 4 + } + ] } diff --git a/Resources/Textures/Objects/Tools/Hydroponics/spade.rsi/storage.png b/Resources/Textures/Objects/Tools/Hydroponics/spade.rsi/storage.png new file mode 100644 index 0000000000000000000000000000000000000000..53ede50b9429fe976acb4e6c91ac2100b5ea8559 GIT binary patch literal 449 zcmV;y0Y3hTP)Px$dr3q=R9J=Wma$61Kp23(T1!ew17@gk^43V{q*(9)d=J3~aB%Pi>?pp3L&3qt z2k0ht5lWXLxD>Ra2-4VV8qTRwOGWQ4DusSa!hhWVfBcu+9n3RA2xXgN$)@rN6t7OmlU-Yc=0^BZ~TxyTbt6TdA=? z^PoVIFED&N;zC*V@N#Dgpr6IOgGU rUp?JiuyNG07SX0%D=C`|Xu+6wtE`-C<2BrgQu&X%Q~loCIBc!s?`7h literal 0 HcmV?d00001 From 7bc1e94b479021b10342dc367426d6b606bf915d Mon Sep 17 00:00:00 2001 From: PJBot Date: Sun, 7 Dec 2025 22:41:58 +0000 Subject: [PATCH 051/205] Automatic changelog update --- Resources/Changelog/Maps.yml | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/Resources/Changelog/Maps.yml b/Resources/Changelog/Maps.yml index a195f85831..e243e542a7 100644 --- a/Resources/Changelog/Maps.yml +++ b/Resources/Changelog/Maps.yml @@ -879,4 +879,11 @@ id: 106 time: '2025-12-04T03:44:12.0000000+00:00' url: https://github.com/space-wizards/space-station-14/pull/41698 +- author: ArtisticRoomba + changes: + - message: On Bagel, atomized the LV network for Science and Chemistry. + type: Fix + id: 107 + time: '2025-12-07T22:40:48.0000000+00:00' + url: https://github.com/space-wizards/space-station-14/pull/41769 Order: 2 From 9806153b9388bfd749aa23b7f656b284113963f1 Mon Sep 17 00:00:00 2001 From: ArtisticRoomba <145879011+ArtisticRoomba@users.noreply.github.com> Date: Sun, 7 Dec 2025 16:34:25 -0800 Subject: [PATCH 052/205] fix box APC powernet (#41770) --- Resources/Maps/box.yml | 190 +++++++++++++++++++++++++++++++++-------- 1 file changed, 155 insertions(+), 35 deletions(-) diff --git a/Resources/Maps/box.yml b/Resources/Maps/box.yml index 53a8e77654..803c902c0a 100644 --- a/Resources/Maps/box.yml +++ b/Resources/Maps/box.yml @@ -1,11 +1,11 @@ meta: format: 7 category: Map - engineVersion: 267.3.0 + engineVersion: 268.0.0 forkId: "" forkVersion: "" - time: 11/07/2025 10:31:27 - entityCount: 28792 + time: 12/07/2025 22:21:20 + entityCount: 28813 maps: - 780 grids: @@ -10948,6 +10948,7 @@ entities: - type: SpreaderGrid - type: GridPathfinding - type: ImplicitRoof + - type: ExplosionAirtightGrid - uid: 11906 components: - type: MetaData @@ -11002,6 +11003,7 @@ entities: - type: SpreaderGrid - type: GridPathfinding - type: ImplicitRoof + - type: ExplosionAirtightGrid - proto: AcousticGuitarInstrument entities: - uid: 19976 @@ -18095,6 +18097,9 @@ entities: rot: -1.5707963267948966 rad pos: 23.5,-22.5 parent: 8364 + - type: AccessReader + accessListsOriginal: + - - Engineering - type: Fixtures fixtures: {} - uid: 14432 @@ -18164,15 +18169,28 @@ entities: - uid: 16461 components: - type: MetaData - name: Telecomms APC + name: Telecoms Viewing APC - type: Transform pos: -8.5,-54.5 parent: 8364 + - type: AccessReader + accessListsOriginal: + - - Engineering - type: PowerNetworkBattery loadingNetworkDemand: 10 supplyRampPosition: 1.347667 - type: Fixtures fixtures: {} + - uid: 16487 + components: + - type: MetaData + name: Telecoms APC + - type: Transform + rot: 3.141592653589793 rad + pos: -13.5,-58.5 + parent: 8364 + - type: Fixtures + fixtures: {} - uid: 17070 components: - type: MetaData @@ -18191,6 +18209,9 @@ entities: rot: 1.5707963267948966 rad pos: 23.5,-33.5 parent: 8364 + - type: AccessReader + accessListsOriginal: + - - Engineering - type: Fixtures fixtures: {} - uid: 17390 @@ -18222,6 +18243,9 @@ entities: - type: Transform pos: 30.5,-26.5 parent: 8364 + - type: AccessReader + accessListsOriginal: + - - Engineering - type: PowerNetworkBattery loadingNetworkDemand: 55 currentReceiving: 55.01975 @@ -18262,6 +18286,15 @@ entities: supplyRampPosition: 0.019451141 - type: Fixtures fixtures: {} + - uid: 19109 + components: + - type: MetaData + name: Medbay Cryo APC + - type: Transform + pos: 29.5,-31.5 + parent: 8364 + - type: Fixtures + fixtures: {} - uid: 19164 components: - type: MetaData @@ -36409,7 +36442,7 @@ entities: - uid: 16462 components: - type: Transform - pos: -7.5,-54.5 + pos: -10.5,-55.5 parent: 8364 - uid: 16463 components: @@ -36469,7 +36502,7 @@ entities: - uid: 16474 components: - type: Transform - pos: -9.5,-53.5 + pos: -10.5,-51.5 parent: 8364 - uid: 16475 components: @@ -36531,11 +36564,6 @@ entities: - type: Transform pos: -15.5,-53.5 parent: 8364 - - uid: 16487 - components: - - type: Transform - pos: -9.5,-52.5 - parent: 8364 - uid: 16488 components: - type: Transform @@ -36551,11 +36579,6 @@ entities: - type: Transform pos: -9.5,-49.5 parent: 8364 - - uid: 16491 - components: - - type: Transform - pos: -9.5,-54.5 - parent: 8364 - uid: 16492 components: - type: Transform @@ -40174,12 +40197,7 @@ entities: - uid: 19108 components: - type: Transform - pos: 36.5,-33.5 - parent: 8364 - - uid: 19109 - components: - - type: Transform - pos: 35.5,-33.5 + pos: -7.5,-54.5 parent: 8364 - uid: 19110 components: @@ -41386,6 +41404,11 @@ entities: - type: Transform pos: 89.5,-30.5 parent: 8364 + - uid: 19853 + components: + - type: Transform + pos: 29.5,-32.5 + parent: 8364 - uid: 19893 components: - type: Transform @@ -45411,6 +45434,21 @@ entities: - type: Transform pos: -15.5,46.5 parent: 8364 + - uid: 28794 + components: + - type: Transform + pos: 29.5,-31.5 + parent: 8364 + - uid: 28812 + components: + - type: Transform + pos: -13.5,-57.5 + parent: 8364 + - uid: 28813 + components: + - type: Transform + pos: -13.5,-58.5 + parent: 8364 - proto: CableApcStack entities: - uid: 1195 @@ -53757,6 +53795,11 @@ entities: - type: Transform pos: -14.5,25.5 parent: 8364 + - uid: 9144 + components: + - type: Transform + pos: -7.5,-54.5 + parent: 8364 - uid: 9323 components: - type: Transform @@ -58082,6 +58125,11 @@ entities: - type: Transform pos: 0.5,-56.5 parent: 8364 + - uid: 16491 + components: + - type: Transform + pos: -7.5,-53.5 + parent: 8364 - uid: 16513 components: - type: Transform @@ -59617,11 +59665,6 @@ entities: - type: Transform pos: -8.5,-54.5 parent: 8364 - - uid: 19853 - components: - - type: Transform - pos: -7.5,-54.5 - parent: 8364 - uid: 19927 components: - type: Transform @@ -62037,6 +62080,91 @@ entities: - type: Transform pos: -10.5,40.5 parent: 8364 + - uid: 28795 + components: + - type: Transform + pos: 26.5,-33.5 + parent: 8364 + - uid: 28796 + components: + - type: Transform + pos: 27.5,-33.5 + parent: 8364 + - uid: 28797 + components: + - type: Transform + pos: 28.5,-33.5 + parent: 8364 + - uid: 28798 + components: + - type: Transform + pos: 29.5,-33.5 + parent: 8364 + - uid: 28799 + components: + - type: Transform + pos: 29.5,-32.5 + parent: 8364 + - uid: 28800 + components: + - type: Transform + pos: 29.5,-31.5 + parent: 8364 + - uid: 28801 + components: + - type: Transform + pos: -8.5,-53.5 + parent: 8364 + - uid: 28802 + components: + - type: Transform + pos: -9.5,-53.5 + parent: 8364 + - uid: 28803 + components: + - type: Transform + pos: -10.5,-53.5 + parent: 8364 + - uid: 28804 + components: + - type: Transform + pos: -11.5,-53.5 + parent: 8364 + - uid: 28805 + components: + - type: Transform + pos: -12.5,-53.5 + parent: 8364 + - uid: 28806 + components: + - type: Transform + pos: -13.5,-53.5 + parent: 8364 + - uid: 28807 + components: + - type: Transform + pos: -13.5,-54.5 + parent: 8364 + - uid: 28808 + components: + - type: Transform + pos: -13.5,-55.5 + parent: 8364 + - uid: 28809 + components: + - type: Transform + pos: -13.5,-56.5 + parent: 8364 + - uid: 28810 + components: + - type: Transform + pos: -13.5,-57.5 + parent: 8364 + - uid: 28811 + components: + - type: Transform + pos: -13.5,-58.5 + parent: 8364 - proto: CableMVStack entities: - uid: 1697 @@ -136189,8 +136317,6 @@ entities: - type: Transform pos: -40.5,5.5 parent: 8364 - - type: ApcPowerReceiver - powerLoad: 0 - uid: 13472 components: - type: Transform @@ -136206,15 +136332,11 @@ entities: - type: Transform pos: -8.5,-34.5 parent: 8364 - - type: ApcPowerReceiver - powerLoad: 0 - uid: 16293 components: - type: Transform pos: -8.5,-38.5 parent: 8364 - - type: ApcPowerReceiver - powerLoad: 0 - uid: 16912 components: - type: Transform @@ -180669,8 +180791,6 @@ entities: - type: Transform pos: -57.5,3.5 parent: 8364 - - type: ApcPowerReceiver - powerLoad: 0 - uid: 15389 components: - type: Transform From 8a29a8d813fce8a43ebd512a1aff99f05ac1385c Mon Sep 17 00:00:00 2001 From: ArtisticRoomba <145879011+ArtisticRoomba@users.noreply.github.com> Date: Sun, 7 Dec 2025 16:35:01 -0800 Subject: [PATCH 053/205] fix CC APC powernet (#41771) --- Resources/Maps/centcomm.yml | 871 ++++++++++++++++++++++++++++++------ 1 file changed, 723 insertions(+), 148 deletions(-) diff --git a/Resources/Maps/centcomm.yml b/Resources/Maps/centcomm.yml index 7830a3742e..c5d4ae48ea 100644 --- a/Resources/Maps/centcomm.yml +++ b/Resources/Maps/centcomm.yml @@ -1,11 +1,11 @@ meta: format: 7 category: Grid - engineVersion: 264.0.0 + engineVersion: 268.0.0 forkId: "" forkVersion: "" - time: 07/02/2025 19:31:54 - entityCount: 9761 + time: 12/07/2025 22:34:43 + entityCount: 9769 maps: [] grids: - 1668 @@ -4879,78 +4879,24 @@ entities: - volume: 2500 temperature: 293.15 moles: - - 21.824879 - - 82.10312 - - 0 - - 0 - - 0 - - 0 - - 0 - - 0 - - 0 - - 0 - - 0 - - 0 + Oxygen: 21.824879 + Nitrogen: 82.10312 - volume: 2500 immutable: True - moles: - - 0 - - 0 - - 0 - - 0 - - 0 - - 0 - - 0 - - 0 - - 0 - - 0 - - 0 - - 0 + moles: {} - volume: 2500 temperature: 235 moles: - - 27.225372 - - 102.419266 - - 0 - - 0 - - 0 - - 0 - - 0 - - 0 - - 0 - - 0 - - 0 - - 0 + Oxygen: 27.225372 + Nitrogen: 102.419266 - volume: 2500 temperature: 293.15 moles: - - 6666.982 - - 0 - - 0 - - 0 - - 0 - - 0 - - 0 - - 0 - - 0 - - 0 - - 0 - - 0 + Oxygen: 6666.982 - volume: 2500 temperature: 293.15 moles: - - 0 - - 6666.982 - - 0 - - 0 - - 0 - - 0 - - 0 - - 0 - - 0 - - 0 - - 0 - - 0 + Nitrogen: 6666.982 chunkSize: 4 - type: OccluderTree - type: Shuttle @@ -4963,6 +4909,7 @@ entities: - type: GridPathfinding - type: NavMap - type: ImplicitRoof + - type: ExplosionAirtightGrid - proto: AccessConfiguratorUniversal entities: - uid: 2056 @@ -5003,6 +4950,8 @@ entities: - type: Transform pos: 15.5,-20.5 parent: 1668 + - type: Fixtures + fixtures: {} - proto: AirCanister entities: - uid: 4115 @@ -5871,11 +5820,15 @@ entities: - type: Transform pos: -19.5,14.5 parent: 1668 + - type: Fixtures + fixtures: {} - uid: 2943 components: - type: Transform pos: -19.5,8.5 parent: 1668 + - type: Fixtures + fixtures: {} - proto: APCHyperCapacity entities: - uid: 215 @@ -5884,219 +5837,310 @@ entities: rot: 1.5707963267948966 rad pos: 18.5,3.5 parent: 1668 + - type: Fixtures + fixtures: {} - uid: 338 components: - type: Transform pos: -2.5,2.5 parent: 1668 + - type: Fixtures + fixtures: {} - uid: 471 components: - type: Transform rot: -1.5707963267948966 rad pos: 7.5,3.5 parent: 1668 + - type: Fixtures + fixtures: {} - uid: 743 components: - type: Transform rot: -1.5707963267948966 rad pos: 18.5,-7.5 parent: 1668 + - type: AccessReader + accessListsOriginal: + - - Engineering + - type: Fixtures + fixtures: {} - uid: 873 components: - type: Transform pos: 8.5,2.5 parent: 1668 + - type: Fixtures + fixtures: {} - uid: 874 components: - type: Transform pos: 8.5,-7.5 parent: 1668 + - type: Fixtures + fixtures: {} - uid: 1391 components: - type: Transform rot: 3.141592653589793 rad pos: 3.5,-24.5 parent: 1668 + - type: Fixtures + fixtures: {} - uid: 1392 components: - type: Transform rot: 3.141592653589793 rad pos: 14.5,-24.5 parent: 1668 + - type: Fixtures + fixtures: {} - uid: 1393 components: - type: Transform pos: 23.5,-14.5 parent: 1668 + - type: Fixtures + fixtures: {} - uid: 1394 components: - type: Transform rot: -1.5707963267948966 rad pos: 32.5,-13.5 parent: 1668 + - type: Fixtures + fixtures: {} - uid: 1395 components: - type: Transform rot: 1.5707963267948966 rad pos: 31.5,-20.5 parent: 1668 + - type: Fixtures + fixtures: {} - uid: 1637 components: - type: Transform rot: -1.5707963267948966 rad pos: 18.5,8.5 parent: 1668 + - type: Fixtures + fixtures: {} - uid: 3041 components: - type: Transform pos: 14.5,17.5 parent: 1668 + - type: Fixtures + fixtures: {} - uid: 3080 components: - type: Transform rot: 1.5707963267948966 rad pos: 20.5,19.5 parent: 1668 + - type: Fixtures + fixtures: {} - uid: 3144 components: - type: Transform rot: 3.141592653589793 rad pos: 28.5,9.5 parent: 1668 + - type: Fixtures + fixtures: {} - uid: 3211 components: - type: Transform rot: 3.141592653589793 rad pos: -11.5,14.5 parent: 1668 + - type: Fixtures + fixtures: {} - uid: 3538 components: - type: Transform rot: 3.141592653589793 rad pos: -19.5,18.5 parent: 1668 + - type: Fixtures + fixtures: {} - uid: 3620 components: - type: Transform rot: 1.5707963267948966 rad pos: -2.5,28.5 parent: 1668 + - type: Fixtures + fixtures: {} - uid: 3989 components: - type: Transform pos: 3.5,17.5 parent: 1668 + - type: Fixtures + fixtures: {} - uid: 4852 components: - type: Transform rot: 3.141592653589793 rad pos: -3.5,-50.5 parent: 1668 + - type: Fixtures + fixtures: {} - uid: 4853 components: - type: Transform pos: -16.5,-44.5 parent: 1668 + - type: Fixtures + fixtures: {} - uid: 4854 components: - type: Transform pos: 15.5,-44.5 parent: 1668 + - type: Fixtures + fixtures: {} - uid: 4855 components: - type: Transform pos: 14.5,-34.5 parent: 1668 + - type: Fixtures + fixtures: {} - uid: 4856 components: - type: Transform pos: -15.5,-34.5 parent: 1668 + - type: Fixtures + fixtures: {} - uid: 4857 components: - type: Transform pos: -1.5,-32.5 parent: 1668 + - type: Fixtures + fixtures: {} - uid: 5276 components: - type: Transform pos: 11.5,-37.5 parent: 1668 + - type: Fixtures + fixtures: {} - uid: 5277 components: - type: Transform pos: -12.5,-37.5 parent: 1668 + - type: Fixtures + fixtures: {} - uid: 5657 components: - type: Transform pos: -7.5,-24.5 parent: 1668 + - type: Fixtures + fixtures: {} - uid: 6479 components: - type: Transform pos: -16.5,-11.5 parent: 1668 + - type: Fixtures + fixtures: {} - uid: 6958 components: - type: Transform rot: 3.141592653589793 rad pos: -39.5,-11.5 parent: 1668 + - type: Fixtures + fixtures: {} - uid: 6959 components: - type: Transform pos: -29.5,-3.5 parent: 1668 + - type: Fixtures + fixtures: {} - uid: 7050 components: - type: Transform pos: -29.5,2.5 parent: 1668 + - type: Fixtures + fixtures: {} - uid: 7185 components: - type: Transform pos: -47.5,-3.5 parent: 1668 + - type: Fixtures + fixtures: {} - uid: 7186 components: - type: Transform rot: 3.141592653589793 rad pos: -51.5,2.5 parent: 1668 + - type: Fixtures + fixtures: {} - uid: 7187 components: - type: Transform rot: 3.141592653589793 rad pos: -45.5,2.5 parent: 1668 + - type: Fixtures + fixtures: {} - uid: 8796 components: - type: Transform rot: 3.141592653589793 rad pos: -10.5,-11.5 parent: 1668 + - type: Fixtures + fixtures: {} - uid: 9134 components: - type: Transform pos: 22.5,-28.5 parent: 1668 + - type: Fixtures + fixtures: {} - uid: 9220 components: - type: Transform pos: -34.5,8.5 parent: 1668 + - type: Fixtures + fixtures: {} - uid: 9221 components: - type: Transform pos: -34.5,14.5 parent: 1668 + - type: Fixtures + fixtures: {} - uid: 9481 components: - type: Transform rot: -1.5707963267948966 rad pos: 2.5,-13.5 parent: 1668 + - type: Fixtures + fixtures: {} + - uid: 9695 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 11.5,-7.5 + parent: 1668 + - type: Fixtures + fixtures: {} - proto: Ash entities: - uid: 2918 @@ -6628,11 +6672,15 @@ entities: - type: Transform pos: 4.5,-32.5 parent: 1668 + - type: Fixtures + fixtures: {} - uid: 4270 components: - type: Transform pos: -5.5,-32.5 parent: 1668 + - type: Fixtures + fixtures: {} - proto: Bed entities: - uid: 1358 @@ -7681,6 +7729,8 @@ entities: - type: Transform pos: -0.5,-45.5 parent: 1668 + - type: Fixtures + fixtures: {} - proto: BoxLethalshot entities: - uid: 1093 @@ -15338,6 +15388,16 @@ entities: - type: Transform pos: -0.5,-8.5 parent: 1668 + - uid: 9696 + components: + - type: Transform + pos: 11.5,-7.5 + parent: 1668 + - uid: 9697 + components: + - type: Transform + pos: 12.5,-7.5 + parent: 1668 - uid: 9769 components: - type: Transform @@ -20179,6 +20239,26 @@ entities: - type: Transform pos: 0.5,-13.5 parent: 1668 + - uid: 9698 + components: + - type: Transform + pos: 12.5,-9.5 + parent: 1668 + - uid: 9700 + components: + - type: Transform + pos: 12.5,-8.5 + parent: 1668 + - uid: 9701 + components: + - type: Transform + pos: 12.5,-7.5 + parent: 1668 + - uid: 9702 + components: + - type: Transform + pos: 11.5,-7.5 + parent: 1668 - proto: CableMVStack entities: - uid: 6777 @@ -24558,22 +24638,30 @@ entities: - type: Transform pos: 0.5,-3.5 parent: 1668 + - type: Fixtures + fixtures: {} - uid: 617 components: - type: Transform pos: 19.5,6.5 parent: 1668 + - type: Fixtures + fixtures: {} - uid: 618 components: - type: Transform rot: 3.141592653589793 rad pos: 19.5,-7.5 parent: 1668 + - type: Fixtures + fixtures: {} - uid: 632 components: - type: Transform pos: 8.5,-3.5 parent: 1668 + - type: Fixtures + fixtures: {} - proto: DefibrillatorCompact entities: - uid: 902 @@ -27172,6 +27260,8 @@ entities: - type: Transform pos: 17.5,29.5 parent: 1668 + - type: Fixtures + fixtures: {} - proto: ExtinguisherCabinetFilled entities: - uid: 615 @@ -27179,11 +27269,15 @@ entities: - type: Transform pos: 18.5,5.5 parent: 1668 + - type: Fixtures + fixtures: {} - uid: 616 components: - type: Transform pos: 18.5,-6.5 parent: 1668 + - type: Fixtures + fixtures: {} - proto: ExtradimensionalOrangeSeeds entities: - uid: 1032 @@ -27322,6 +27416,8 @@ entities: - type: Transform pos: -17.5,28.5 parent: 1668 + - type: Fixtures + fixtures: {} - proto: FirelockGlass entities: - uid: 2725 @@ -42774,18 +42870,8 @@ entities: immutable: False temperature: 293.14673 moles: - - 1.7459903 - - 6.568249 - - 0 - - 0 - - 0 - - 0 - - 0 - - 0 - - 0 - - 0 - - 0 - - 0 + Oxygen: 1.7459903 + Nitrogen: 6.568249 - type: ContainerContainer containers: entity_storage: !type:Container @@ -42828,18 +42914,8 @@ entities: immutable: False temperature: 293.14673 moles: - - 1.7459903 - - 6.568249 - - 0 - - 0 - - 0 - - 0 - - 0 - - 0 - - 0 - - 0 - - 0 - - 0 + Oxygen: 1.7459903 + Nitrogen: 6.568249 - type: ContainerContainer containers: entity_storage: !type:Container @@ -42884,18 +42960,8 @@ entities: immutable: False temperature: 293.14673 moles: - - 1.7459903 - - 6.568249 - - 0 - - 0 - - 0 - - 0 - - 0 - - 0 - - 0 - - 0 - - 0 - - 0 + Oxygen: 1.7459903 + Nitrogen: 6.568249 - type: ContainerContainer containers: entity_storage: !type:Container @@ -43026,18 +43092,8 @@ entities: immutable: False temperature: 293.14673 moles: - - 1.7459903 - - 6.568249 - - 0 - - 0 - - 0 - - 0 - - 0 - - 0 - - 0 - - 0 - - 0 - - 0 + Oxygen: 1.7459903 + Nitrogen: 6.568249 - type: ContainerContainer containers: entity_storage: !type:Container @@ -43069,18 +43125,8 @@ entities: immutable: False temperature: 293.14673 moles: - - 1.7459903 - - 6.568249 - - 0 - - 0 - - 0 - - 0 - - 0 - - 0 - - 0 - - 0 - - 0 - - 0 + Oxygen: 1.7459903 + Nitrogen: 6.568249 - type: ContainerContainer containers: entity_storage: !type:Container @@ -43212,18 +43258,8 @@ entities: immutable: False temperature: 293.14673 moles: - - 1.7459903 - - 6.568249 - - 0 - - 0 - - 0 - - 0 - - 0 - - 0 - - 0 - - 0 - - 0 - - 0 + Oxygen: 1.7459903 + Nitrogen: 6.568249 - type: ContainerContainer containers: entity_storage: !type:Container @@ -43257,18 +43293,8 @@ entities: immutable: False temperature: 293.14673 moles: - - 1.7459903 - - 6.568249 - - 0 - - 0 - - 0 - - 0 - - 0 - - 0 - - 0 - - 0 - - 0 - - 0 + Oxygen: 1.7459903 + Nitrogen: 6.568249 - type: ContainerContainer containers: entity_storage: !type:Container @@ -43896,6 +43922,8 @@ entities: rot: -1.5707963267948966 rad pos: -16.5,15.5 parent: 1668 + - type: Fixtures + fixtures: {} - proto: MopBucketFull entities: - uid: 9081 @@ -43936,11 +43964,15 @@ entities: - type: Transform pos: 7.5,-36.5 parent: 1668 + - type: Fixtures + fixtures: {} - uid: 4298 components: - type: Transform pos: -8.5,-36.5 parent: 1668 + - type: Fixtures + fixtures: {} - proto: NTDefaultCircuitBoard entities: - uid: 9630 @@ -43955,16 +43987,22 @@ entities: - type: Transform pos: 8.5,6.5 parent: 1668 + - type: Fixtures + fixtures: {} - uid: 7295 components: - type: Transform pos: -20.5,-9.5 parent: 1668 + - type: Fixtures + fixtures: {} - uid: 9660 components: - type: Transform pos: -46.5,-7.5 parent: 1668 + - type: Fixtures + fixtures: {} - proto: NTHandyFlag entities: - uid: 4191 @@ -44032,11 +44070,15 @@ entities: - type: Transform pos: -18.5,8.5 parent: 1668 + - type: Fixtures + fixtures: {} - uid: 9560 components: - type: Transform pos: -32.5,14.5 parent: 1668 + - type: Fixtures + fixtures: {} - proto: PaintingCafeTerraceAtNight entities: - uid: 9637 @@ -44044,6 +44086,8 @@ entities: - type: Transform pos: -46.5,-5.5 parent: 1668 + - type: Fixtures + fixtures: {} - proto: PaintingHelloWorld entities: - uid: 6000 @@ -44051,6 +44095,8 @@ entities: - type: Transform pos: -12.5,8.5 parent: 1668 + - type: Fixtures + fixtures: {} - proto: PaintingNightHawks entities: - uid: 2925 @@ -44058,6 +44104,8 @@ entities: - type: Transform pos: -14.5,10.5 parent: 1668 + - type: Fixtures + fixtures: {} - proto: PaintingOldGuitarist entities: - uid: 9639 @@ -44065,6 +44113,8 @@ entities: - type: Transform pos: -46.5,-9.5 parent: 1668 + - type: Fixtures + fixtures: {} - proto: PaintingRedBlueYellow entities: - uid: 9636 @@ -44072,6 +44122,8 @@ entities: - type: Transform pos: -23.5,2.5 parent: 1668 + - type: Fixtures + fixtures: {} - proto: PaintingSaturn entities: - uid: 2924 @@ -44079,6 +44131,8 @@ entities: - type: Transform pos: -8.5,6.5 parent: 1668 + - type: Fixtures + fixtures: {} - proto: PaintingSkeletonBoof entities: - uid: 9638 @@ -44086,6 +44140,8 @@ entities: - type: Transform pos: -20.5,-5.5 parent: 1668 + - type: Fixtures + fixtures: {} - proto: PaintingTheGreatWave entities: - uid: 2799 @@ -44094,6 +44150,8 @@ entities: rot: 3.141592653589793 rad pos: -17.5,14.5 parent: 1668 + - type: Fixtures + fixtures: {} - proto: PaintingTheKiss entities: - uid: 9635 @@ -44101,6 +44159,8 @@ entities: - type: Transform pos: -46.5,5.5 parent: 1668 + - type: Fixtures + fixtures: {} - proto: PaintingTheScream entities: - uid: 9504 @@ -44108,6 +44168,8 @@ entities: - type: Transform pos: -35.5,8.5 parent: 1668 + - type: Fixtures + fixtures: {} - proto: PaintingTheSonOfMan entities: - uid: 9634 @@ -44115,6 +44177,8 @@ entities: - type: Transform pos: -40.5,5.5 parent: 1668 + - type: Fixtures + fixtures: {} - proto: Paper entities: - uid: 4617 @@ -44564,6 +44628,13 @@ entities: parent: 1668 missingComponents: - WarpPoint +- proto: PlushieArachind + entities: + - uid: 9703 + components: + - type: Transform + pos: -18.482422,25.59995 + parent: 1668 - proto: PlushieGhost entities: - uid: 6072 @@ -44680,6 +44751,8 @@ entities: - type: Transform pos: -18.5,28.5 parent: 1668 + - type: Fixtures + fixtures: {} - proto: PosterContrabandBeachStarYamamoto entities: - uid: 9291 @@ -44690,6 +44763,8 @@ entities: - type: Transform pos: -10.5,8.5 parent: 1668 + - type: Fixtures + fixtures: {} - proto: PosterContrabandC20r entities: - uid: 2448 @@ -44698,6 +44773,8 @@ entities: rot: 1.5707963267948966 rad pos: 9.5,33.5 parent: 1668 + - type: Fixtures + fixtures: {} - proto: PosterContrabandDonk entities: - uid: 9335 @@ -44705,6 +44782,8 @@ entities: - type: Transform pos: 13.5,-14.5 parent: 1668 + - type: Fixtures + fixtures: {} - proto: PosterContrabandDonutCorp entities: - uid: 9334 @@ -44712,6 +44791,8 @@ entities: - type: Transform pos: 15.5,-14.5 parent: 1668 + - type: Fixtures + fixtures: {} - proto: PosterContrabandEAT entities: - uid: 9292 @@ -44719,6 +44800,8 @@ entities: - type: Transform pos: 11.5,-15.5 parent: 1668 + - type: Fixtures + fixtures: {} - proto: PosterContrabandEnergySwords entities: - uid: 2183 @@ -44726,6 +44809,8 @@ entities: - type: Transform pos: 17.5,34.5 parent: 1668 + - type: Fixtures + fixtures: {} - proto: PosterContrabandHackingGuide entities: - uid: 9332 @@ -44733,6 +44818,8 @@ entities: - type: Transform pos: -7.5,16.5 parent: 1668 + - type: Fixtures + fixtures: {} - proto: PosterContrabandHaveaPuff entities: - uid: 9293 @@ -44740,6 +44827,8 @@ entities: - type: Transform pos: 7.5,-13.5 parent: 1668 + - type: Fixtures + fixtures: {} - proto: PosterContrabandHighEffectEngineering entities: - uid: 9331 @@ -44747,6 +44836,8 @@ entities: - type: Transform pos: -16.5,17.5 parent: 1668 + - type: Fixtures + fixtures: {} - proto: PosterContrabandInterdyne entities: - uid: 9294 @@ -44754,6 +44845,8 @@ entities: - type: Transform pos: 20.5,-14.5 parent: 1668 + - type: Fixtures + fixtures: {} - proto: PosterContrabandKosmicheskayaStantsiya entities: - uid: 2451 @@ -44762,6 +44855,8 @@ entities: rot: 1.5707963267948966 rad pos: 17.5,25.5 parent: 1668 + - type: Fixtures + fixtures: {} - proto: PosterContrabandMissingGloves entities: - uid: 9329 @@ -44769,6 +44864,8 @@ entities: - type: Transform pos: 2.5,13.5 parent: 1668 + - type: Fixtures + fixtures: {} - proto: PosterContrabandMissingSpacepen entities: - uid: 9299 @@ -44776,6 +44873,8 @@ entities: - type: Transform pos: -22.5,-3.5 parent: 1668 + - type: Fixtures + fixtures: {} - proto: PosterContrabandNuclearDeviceInformational entities: - uid: 9327 @@ -44783,6 +44882,8 @@ entities: - type: Transform pos: 9.5,32.5 parent: 1668 + - type: Fixtures + fixtures: {} - proto: PosterContrabandRedRum entities: - uid: 9304 @@ -44790,6 +44891,8 @@ entities: - type: Transform pos: 35.5,-25.5 parent: 1668 + - type: Fixtures + fixtures: {} - proto: PosterContrabandRevolver entities: - uid: 2450 @@ -44798,6 +44901,8 @@ entities: rot: 1.5707963267948966 rad pos: 9.5,27.5 parent: 1668 + - type: Fixtures + fixtures: {} - proto: PosterContrabandSmoke entities: - uid: 9309 @@ -44805,6 +44910,8 @@ entities: - type: Transform pos: 2.5,9.5 parent: 1668 + - type: Fixtures + fixtures: {} - proto: PosterContrabandTools entities: - uid: 9312 @@ -44812,6 +44919,8 @@ entities: - type: Transform pos: -7.5,14.5 parent: 1668 + - type: Fixtures + fixtures: {} - proto: PosterContrabandVoteWeh entities: - uid: 308 @@ -44819,6 +44928,8 @@ entities: - type: Transform pos: 29.5,6.5 parent: 1668 + - type: Fixtures + fixtures: {} - proto: PosterContrabandWaffleCorp entities: - uid: 9330 @@ -44826,6 +44937,8 @@ entities: - type: Transform pos: 9.5,25.5 parent: 1668 + - type: Fixtures + fixtures: {} - proto: PosterLegitAnatomyPoster entities: - uid: 6188 @@ -44833,6 +44946,8 @@ entities: - type: Transform pos: 11.5,-12.5 parent: 1668 + - type: Fixtures + fixtures: {} - proto: PosterLegitCarpMount entities: - uid: 9313 @@ -44840,6 +44955,8 @@ entities: - type: Transform pos: 6.5,23.5 parent: 1668 + - type: Fixtures + fixtures: {} - proto: PosterLegitCohibaRobustoAd entities: - uid: 1328 @@ -44847,6 +44964,8 @@ entities: - type: Transform pos: 31.5,-22.5 parent: 1668 + - type: Fixtures + fixtures: {} - proto: PosterLegitEnlist entities: - uid: 2447 @@ -44855,6 +44974,8 @@ entities: rot: 1.5707963267948966 rad pos: 9.5,31.5 parent: 1668 + - type: Fixtures + fixtures: {} - proto: PosterLegitGetYourLEGS entities: - uid: 9333 @@ -44862,6 +44983,8 @@ entities: - type: Transform pos: -34.5,-3.5 parent: 1668 + - type: Fixtures + fixtures: {} - proto: PosterLegitHelpOthers entities: - uid: 9295 @@ -44869,6 +44992,8 @@ entities: - type: Transform pos: -12.5,-28.5 parent: 1668 + - type: Fixtures + fixtures: {} - proto: PosterLegitHereForYourSafety entities: - uid: 9296 @@ -44876,6 +45001,8 @@ entities: - type: Transform pos: 7.5,-28.5 parent: 1668 + - type: Fixtures + fixtures: {} - proto: PosterLegitHighClassMartini entities: - uid: 1327 @@ -44883,6 +45010,8 @@ entities: - type: Transform pos: 18.5,-22.5 parent: 1668 + - type: Fixtures + fixtures: {} - proto: PosterLegitIan entities: - uid: 9307 @@ -44890,6 +45019,8 @@ entities: - type: Transform pos: -36.5,2.5 parent: 1668 + - type: Fixtures + fixtures: {} - proto: PosterLegitIonRifle entities: - uid: 9297 @@ -44897,6 +45028,8 @@ entities: - type: Transform pos: 9.5,22.5 parent: 1668 + - type: Fixtures + fixtures: {} - proto: PosterLegitJustAWeekAway entities: - uid: 307 @@ -44904,6 +45037,8 @@ entities: - type: Transform pos: 33.5,-0.5 parent: 1668 + - type: Fixtures + fixtures: {} - proto: PosterLegitLoveIan entities: - uid: 9308 @@ -44911,6 +45046,8 @@ entities: - type: Transform pos: -30.5,2.5 parent: 1668 + - type: Fixtures + fixtures: {} - proto: PosterLegitMime entities: - uid: 9298 @@ -44918,6 +45055,8 @@ entities: - type: Transform pos: -23.5,-5.5 parent: 1668 + - type: Fixtures + fixtures: {} - proto: PosterLegitNanotrasenLogo entities: - uid: 484 @@ -44925,301 +45064,419 @@ entities: - type: Transform pos: -3.5,-7.5 parent: 1668 + - type: Fixtures + fixtures: {} - uid: 613 components: - type: Transform pos: 18.5,-3.5 parent: 1668 + - type: Fixtures + fixtures: {} - uid: 614 components: - type: Transform pos: 18.5,2.5 parent: 1668 + - type: Fixtures + fixtures: {} - uid: 622 components: - type: Transform pos: -3.5,6.5 parent: 1668 + - type: Fixtures + fixtures: {} - uid: 623 components: - type: Transform pos: 2.5,6.5 parent: 1668 + - type: Fixtures + fixtures: {} - uid: 626 components: - type: Transform pos: 2.5,-7.5 parent: 1668 + - type: Fixtures + fixtures: {} - uid: 801 components: - type: Transform pos: 3.5,-3.5 parent: 1668 + - type: Fixtures + fixtures: {} - uid: 802 components: - type: Transform pos: -4.5,-3.5 parent: 1668 + - type: Fixtures + fixtures: {} - uid: 1270 components: - type: Transform pos: 18.5,-24.5 parent: 1668 + - type: Fixtures + fixtures: {} - uid: 1338 components: - type: Transform pos: 28.5,-14.5 parent: 1668 + - type: Fixtures + fixtures: {} - uid: 1339 components: - type: Transform pos: 24.5,-14.5 parent: 1668 + - type: Fixtures + fixtures: {} - uid: 1340 components: - type: Transform pos: 31.5,-24.5 parent: 1668 + - type: Fixtures + fixtures: {} - uid: 1341 components: - type: Transform pos: 31.5,-18.5 parent: 1668 + - type: Fixtures + fixtures: {} - uid: 2001 components: - type: Transform pos: 26.5,28.5 parent: 1668 + - type: Fixtures + fixtures: {} - uid: 2002 components: - type: Transform pos: 24.5,28.5 parent: 1668 + - type: Fixtures + fixtures: {} - uid: 2003 components: - type: Transform pos: 28.5,28.5 parent: 1668 + - type: Fixtures + fixtures: {} - uid: 2004 components: - type: Transform pos: 20.5,18.5 parent: 1668 + - type: Fixtures + fixtures: {} - uid: 2005 components: - type: Transform pos: 32.5,18.5 parent: 1668 + - type: Fixtures + fixtures: {} - uid: 2630 components: - type: Transform pos: 11.5,35.5 parent: 1668 + - type: Fixtures + fixtures: {} - uid: 2631 components: - type: Transform pos: 15.5,35.5 parent: 1668 + - type: Fixtures + fixtures: {} - uid: 2653 components: - type: Transform pos: 13.5,35.5 parent: 1668 + - type: Fixtures + fixtures: {} - uid: 2702 components: - type: Transform rot: -1.5707963267948966 rad pos: -12.5,2.5 parent: 1668 + - type: Fixtures + fixtures: {} - uid: 2800 components: - type: Transform rot: 3.141592653589793 rad pos: -16.5,14.5 parent: 1668 + - type: Fixtures + fixtures: {} - uid: 2920 components: - type: Transform rot: -1.5707963267948966 rad pos: -12.5,-3.5 parent: 1668 + - type: Fixtures + fixtures: {} - uid: 3254 components: - type: Transform pos: 17.5,17.5 parent: 1668 + - type: Fixtures + fixtures: {} - uid: 3255 components: - type: Transform pos: 1.5,17.5 parent: 1668 + - type: Fixtures + fixtures: {} - uid: 3256 components: - type: Transform pos: -2.5,17.5 parent: 1668 + - type: Fixtures + fixtures: {} - uid: 3257 components: - type: Transform pos: 9.5,17.5 parent: 1668 + - type: Fixtures + fixtures: {} - uid: 4182 components: - type: Transform pos: 34.5,6.5 parent: 1668 + - type: Fixtures + fixtures: {} - uid: 4183 components: - type: Transform pos: 34.5,-7.5 parent: 1668 + - type: Fixtures + fixtures: {} - uid: 4295 components: - type: Transform pos: 7.5,-32.5 parent: 1668 + - type: Fixtures + fixtures: {} - uid: 4296 components: - type: Transform pos: -8.5,-32.5 parent: 1668 + - type: Fixtures + fixtures: {} - uid: 7242 components: - type: Transform rot: 1.5707963267948966 rad pos: -55.5,-3.5 parent: 1668 + - type: Fixtures + fixtures: {} - uid: 7243 components: - type: Transform rot: 1.5707963267948966 rad pos: -55.5,2.5 parent: 1668 + - type: Fixtures + fixtures: {} - uid: 7286 components: - type: Transform pos: -51.5,-3.5 parent: 1668 + - type: Fixtures + fixtures: {} - uid: 7287 components: - type: Transform pos: -47.5,2.5 parent: 1668 + - type: Fixtures + fixtures: {} - uid: 7288 components: - type: Transform pos: -41.5,2.5 parent: 1668 + - type: Fixtures + fixtures: {} - uid: 7289 components: - type: Transform pos: -45.5,-11.5 parent: 1668 + - type: Fixtures + fixtures: {} - uid: 7290 components: - type: Transform pos: -45.5,-3.5 parent: 1668 + - type: Fixtures + fixtures: {} - uid: 7291 components: - type: Transform pos: -35.5,-3.5 parent: 1668 + - type: Fixtures + fixtures: {} - uid: 7292 components: - type: Transform pos: -35.5,-11.5 parent: 1668 + - type: Fixtures + fixtures: {} - uid: 7293 components: - type: Transform pos: -28.5,-11.5 parent: 1668 + - type: Fixtures + fixtures: {} - uid: 7294 components: - type: Transform pos: -28.5,-3.5 parent: 1668 + - type: Fixtures + fixtures: {} - uid: 7490 components: - type: Transform pos: -35.5,-24.5 parent: 1668 + - type: Fixtures + fixtures: {} - uid: 7491 components: - type: Transform pos: -27.5,-24.5 parent: 1668 + - type: Fixtures + fixtures: {} - uid: 7492 components: - type: Transform pos: -19.5,-24.5 parent: 1668 + - type: Fixtures + fixtures: {} - uid: 7493 components: - type: Transform pos: -11.5,-24.5 parent: 1668 + - type: Fixtures + fixtures: {} - uid: 9323 components: - type: Transform pos: 7.5,-44.5 parent: 1668 + - type: Fixtures + fixtures: {} - uid: 9324 components: - type: Transform pos: -8.5,-44.5 parent: 1668 + - type: Fixtures + fixtures: {} - uid: 9325 components: - type: Transform pos: 7.5,-37.5 parent: 1668 + - type: Fixtures + fixtures: {} - uid: 9326 components: - type: Transform pos: -8.5,-37.5 parent: 1668 + - type: Fixtures + fixtures: {} - uid: 9328 components: - type: Transform pos: -0.5,-50.5 parent: 1668 + - type: Fixtures + fixtures: {} - uid: 9336 components: - type: Transform pos: -3.5,-15.5 parent: 1668 + - type: Fixtures + fixtures: {} - uid: 9337 components: - type: Transform pos: -3.5,-11.5 parent: 1668 + - type: Fixtures + fixtures: {} - uid: 9526 components: - type: Transform pos: -24.5,8.5 parent: 1668 + - type: Fixtures + fixtures: {} - uid: 9527 components: - type: Transform pos: -39.5,8.5 parent: 1668 + - type: Fixtures + fixtures: {} - uid: 9649 components: - type: Transform pos: -29.5,8.5 parent: 1668 + - type: Fixtures + fixtures: {} - uid: 9657 components: - type: Transform pos: -29.5,14.5 parent: 1668 + - type: Fixtures + fixtures: {} - uid: 9658 components: - type: Transform pos: -24.5,14.5 parent: 1668 + - type: Fixtures + fixtures: {} - proto: PosterLegitNTTGC entities: - uid: 130 @@ -45227,11 +45484,15 @@ entities: - type: Transform pos: 32.5,-7.5 parent: 1668 + - type: Fixtures + fixtures: {} - uid: 9301 components: - type: Transform pos: -25.5,-3.5 parent: 1668 + - type: Fixtures + fixtures: {} - proto: PosterLegitOppenhopper entities: - uid: 9302 @@ -45239,6 +45500,8 @@ entities: - type: Transform pos: -8.5,-28.5 parent: 1668 + - type: Fixtures + fixtures: {} - proto: PosterLegitPDAAd entities: - uid: 9303 @@ -45246,6 +45509,8 @@ entities: - type: Transform pos: -6.5,-7.5 parent: 1668 + - type: Fixtures + fixtures: {} - proto: PosterLegitPeriodicTable entities: - uid: 1321 @@ -45254,6 +45519,8 @@ entities: rot: 3.141592653589793 rad pos: 10.5,-7.5 parent: 1668 + - type: Fixtures + fixtures: {} - proto: PosterLegitRenault entities: - uid: 9306 @@ -45261,6 +45528,8 @@ entities: - type: Transform pos: -17.5,2.5 parent: 1668 + - type: Fixtures + fixtures: {} - proto: PosterLegitReportCrimes entities: - uid: 9305 @@ -45268,6 +45537,8 @@ entities: - type: Transform pos: 11.5,-24.5 parent: 1668 + - type: Fixtures + fixtures: {} - proto: PosterLegitSafetyEyeProtection entities: - uid: 9320 @@ -45275,6 +45546,8 @@ entities: - type: Transform pos: -8.5,8.5 parent: 1668 + - type: Fixtures + fixtures: {} - proto: PosterLegitSafetyInternals entities: - uid: 9322 @@ -45282,6 +45555,8 @@ entities: - type: Transform pos: -23.5,-28.5 parent: 1668 + - type: Fixtures + fixtures: {} - proto: PosterLegitSafetyMothDelam entities: - uid: 9318 @@ -45289,6 +45564,8 @@ entities: - type: Transform pos: -12.5,14.5 parent: 1668 + - type: Fixtures + fixtures: {} - proto: PosterLegitSafetyMothEpi entities: - uid: 9317 @@ -45296,6 +45573,8 @@ entities: - type: Transform pos: 18.5,-14.5 parent: 1668 + - type: Fixtures + fixtures: {} - proto: PosterLegitSafetyMothMeth entities: - uid: 9316 @@ -45303,6 +45582,8 @@ entities: - type: Transform pos: 5.5,-13.5 parent: 1668 + - type: Fixtures + fixtures: {} - proto: PosterLegitSafetyMothPiping entities: - uid: 9319 @@ -45310,6 +45591,8 @@ entities: - type: Transform pos: -20.5,18.5 parent: 1668 + - type: Fixtures + fixtures: {} - proto: PosterLegitSafetyMothSSD entities: - uid: 9315 @@ -45317,6 +45600,8 @@ entities: - type: Transform pos: 29.5,-28.5 parent: 1668 + - type: Fixtures + fixtures: {} - proto: PosterLegitSafetyReport entities: - uid: 9321 @@ -45324,6 +45609,8 @@ entities: - type: Transform pos: -31.5,-28.5 parent: 1668 + - type: Fixtures + fixtures: {} - proto: PosterLegitSecWatch entities: - uid: 9310 @@ -45331,6 +45618,8 @@ entities: - type: Transform pos: 19.5,13.5 parent: 1668 + - type: Fixtures + fixtures: {} - proto: PosterLegitSpaceCops entities: - uid: 9311 @@ -45338,6 +45627,8 @@ entities: - type: Transform pos: 11.5,6.5 parent: 1668 + - type: Fixtures + fixtures: {} - proto: PosterLegitUeNo entities: - uid: 309 @@ -45345,6 +45636,8 @@ entities: - type: Transform pos: 23.5,6.5 parent: 1668 + - type: Fixtures + fixtures: {} - proto: PosterLegitVacation entities: - uid: 98 @@ -45352,21 +45645,29 @@ entities: - type: Transform pos: 24.5,-7.5 parent: 1668 + - type: Fixtures + fixtures: {} - uid: 2179 components: - type: Transform pos: 17.5,30.5 parent: 1668 + - type: Fixtures + fixtures: {} - uid: 9300 components: - type: Transform pos: -19.5,-3.5 parent: 1668 + - type: Fixtures + fixtures: {} - uid: 9659 components: - type: Transform pos: -38.5,2.5 parent: 1668 + - type: Fixtures + fixtures: {} - proto: PosterLegitWorkForAFuture entities: - uid: 9314 @@ -45374,6 +45675,8 @@ entities: - type: Transform pos: -2.5,25.5 parent: 1668 + - type: Fixtures + fixtures: {} - proto: PosterMapBagel entities: - uid: 621 @@ -45381,6 +45684,8 @@ entities: - type: Transform pos: 7.5,2.5 parent: 1668 + - type: Fixtures + fixtures: {} - proto: PosterMapDelta entities: - uid: 629 @@ -45388,6 +45693,8 @@ entities: - type: Transform pos: 3.5,6.5 parent: 1668 + - type: Fixtures + fixtures: {} - proto: PosterMapMarathon entities: - uid: 628 @@ -45395,6 +45702,8 @@ entities: - type: Transform pos: -4.5,6.5 parent: 1668 + - type: Fixtures + fixtures: {} - proto: PosterMapMoose entities: - uid: 631 @@ -45402,6 +45711,8 @@ entities: - type: Transform pos: -4.5,-7.5 parent: 1668 + - type: Fixtures + fixtures: {} - proto: PosterMapPacked entities: - uid: 624 @@ -45409,6 +45720,8 @@ entities: - type: Transform pos: -8.5,2.5 parent: 1668 + - type: Fixtures + fixtures: {} - proto: PosterMapPillar entities: - uid: 630 @@ -45416,6 +45729,8 @@ entities: - type: Transform pos: 3.5,-7.5 parent: 1668 + - type: Fixtures + fixtures: {} - proto: PosterMapSaltern entities: - uid: 627 @@ -45423,6 +45738,8 @@ entities: - type: Transform pos: 7.5,-3.5 parent: 1668 + - type: Fixtures + fixtures: {} - proto: PosterMapSplit entities: - uid: 625 @@ -45430,6 +45747,8 @@ entities: - type: Transform pos: -8.5,-3.5 parent: 1668 + - type: Fixtures + fixtures: {} - proto: PotatoAI entities: - uid: 938 @@ -49236,156 +49555,218 @@ entities: - type: Transform pos: -39.5,-3.5 parent: 1668 + - type: Fixtures + fixtures: {} - uid: 6907 components: - type: Transform pos: -34.5,-4.5 parent: 1668 + - type: Fixtures + fixtures: {} - uid: 6908 components: - type: Transform pos: -34.5,-10.5 parent: 1668 + - type: Fixtures + fixtures: {} - uid: 6909 components: - type: Transform pos: -42.5,-11.5 parent: 1668 + - type: Fixtures + fixtures: {} - uid: 6910 components: - type: Transform pos: -41.5,-11.5 parent: 1668 + - type: Fixtures + fixtures: {} - uid: 6911 components: - type: Transform pos: -29.5,-11.5 parent: 1668 + - type: Fixtures + fixtures: {} - uid: 6912 components: - type: Transform pos: -42.5,-3.5 parent: 1668 + - type: Fixtures + fixtures: {} - uid: 6913 components: - type: Transform pos: -21.5,2.5 parent: 1668 + - type: Fixtures + fixtures: {} - uid: 6914 components: - type: Transform pos: -23.5,8.5 parent: 1668 + - type: Fixtures + fixtures: {} - uid: 6915 components: - type: Transform pos: -3.5,17.5 parent: 1668 + - type: Fixtures + fixtures: {} - uid: 6916 components: - type: Transform pos: 7.5,17.5 parent: 1668 + - type: Fixtures + fixtures: {} - uid: 6917 components: - type: Transform pos: 26.5,13.5 parent: 1668 + - type: Fixtures + fixtures: {} - uid: 6918 components: - type: Transform pos: 33.5,-7.5 parent: 1668 + - type: Fixtures + fixtures: {} - uid: 6919 components: - type: Transform pos: 33.5,6.5 parent: 1668 + - type: Fixtures + fixtures: {} - uid: 6920 components: - type: Transform pos: -8.5,4.5 parent: 1668 + - type: Fixtures + fixtures: {} - uid: 6921 components: - type: Transform pos: -8.5,-5.5 parent: 1668 + - type: Fixtures + fixtures: {} - uid: 6922 components: - type: Transform pos: 7.5,5.5 parent: 1668 + - type: Fixtures + fixtures: {} - uid: 6923 components: - type: Transform pos: 23.5,-28.5 parent: 1668 + - type: Fixtures + fixtures: {} - uid: 6924 components: - type: Transform pos: 21.5,-14.5 parent: 1668 + - type: Fixtures + fixtures: {} - uid: 6925 components: - type: Transform pos: -15.5,-24.5 parent: 1668 + - type: Fixtures + fixtures: {} - uid: 6926 components: - type: Transform pos: -23.5,-24.5 parent: 1668 + - type: Fixtures + fixtures: {} - uid: 6927 components: - type: Transform pos: 1.5,-32.5 parent: 1668 + - type: Fixtures + fixtures: {} - uid: 6928 components: - type: Transform pos: -2.5,-32.5 parent: 1668 + - type: Fixtures + fixtures: {} - uid: 6929 components: - type: Transform pos: 7.5,-24.5 parent: 1668 + - type: Fixtures + fixtures: {} - uid: 6930 components: - type: Transform pos: 13.5,-24.5 parent: 1668 + - type: Fixtures + fixtures: {} - uid: 6931 components: - type: Transform pos: 4.5,-7.5 parent: 1668 + - type: Fixtures + fixtures: {} - uid: 6932 components: - type: Transform pos: -14.5,11.5 parent: 1668 + - type: Fixtures + fixtures: {} - uid: 7332 components: - type: Transform pos: -34.5,2.5 parent: 1668 + - type: Fixtures + fixtures: {} - uid: 7488 components: - type: Transform pos: -31.5,-24.5 parent: 1668 + - type: Fixtures + fixtures: {} - uid: 7489 components: - type: Transform pos: -39.5,-24.5 parent: 1668 + - type: Fixtures + fixtures: {} - uid: 9559 components: - type: Transform pos: -30.5,8.5 parent: 1668 + - type: Fixtures + fixtures: {} - proto: Screwdriver entities: - uid: 3175 @@ -49630,6 +50011,8 @@ entities: - type: Transform pos: 32.5,-18.5 parent: 1668 + - type: Fixtures + fixtures: {} - proto: ShelfChemistryChemistrySecure entities: - uid: 4293 @@ -49637,6 +50020,8 @@ entities: - type: Transform pos: 6.5,-7.5 parent: 1668 + - type: Fixtures + fixtures: {} - proto: ShelfKitchen entities: - uid: 4294 @@ -49644,6 +50029,8 @@ entities: - type: Transform pos: 11.5,-16.5 parent: 1668 + - type: Fixtures + fixtures: {} - proto: ShotGunCabinetFilled entities: - uid: 1288 @@ -49651,6 +50038,8 @@ entities: - type: Transform pos: 33.5,-18.5 parent: 1668 + - type: Fixtures + fixtures: {} - proto: Shovel entities: - uid: 6193 @@ -49721,6 +50110,8 @@ entities: - Open - - Off - Close + - type: Fixtures + fixtures: {} - uid: 603 components: - type: MetaData @@ -49755,6 +50146,8 @@ entities: - Open - - Off - Close + - type: Fixtures + fixtures: {} - uid: 9388 components: - type: MetaData @@ -49785,6 +50178,8 @@ entities: - Open - - Off - Close + - type: Fixtures + fixtures: {} - uid: 9389 components: - type: MetaData @@ -49815,6 +50210,8 @@ entities: - Open - - Off - Close + - type: Fixtures + fixtures: {} - proto: SignalSwitchDirectional entities: - uid: 336 @@ -49926,6 +50323,8 @@ entities: - Open - - Off - Close + - type: Fixtures + fixtures: {} - uid: 569 components: - type: MetaData @@ -49960,6 +50359,8 @@ entities: - Open - - Off - Close + - type: Fixtures + fixtures: {} - uid: 570 components: - type: MetaData @@ -49995,6 +50396,8 @@ entities: - Open - - Off - Close + - type: Fixtures + fixtures: {} - uid: 607 components: - type: MetaData @@ -50011,6 +50414,8 @@ entities: 555: - - Status - Toggle + - type: Fixtures + fixtures: {} - uid: 608 components: - type: MetaData @@ -50027,6 +50432,8 @@ entities: 577: - - Status - Toggle + - type: Fixtures + fixtures: {} - uid: 610 components: - type: MetaData @@ -50042,6 +50449,8 @@ entities: - Open - - Off - Close + - type: Fixtures + fixtures: {} - uid: 611 components: - type: MetaData @@ -50057,6 +50466,8 @@ entities: - Open - - Off - Close + - type: Fixtures + fixtures: {} - uid: 728 components: - type: MetaData @@ -50081,6 +50492,8 @@ entities: - Open - - Off - Close + - type: Fixtures + fixtures: {} - uid: 1130 components: - type: Transform @@ -50104,6 +50517,8 @@ entities: - Open - - Off - Close + - type: Fixtures + fixtures: {} - uid: 1131 components: - type: Transform @@ -50127,6 +50542,8 @@ entities: - Open - - Off - Close + - type: Fixtures + fixtures: {} - uid: 1630 components: - type: MetaData @@ -50179,6 +50596,8 @@ entities: - Off - - On - Reverse + - type: Fixtures + fixtures: {} - uid: 1728 components: - type: Transform @@ -50191,6 +50610,8 @@ entities: - Forward - - Off - Off + - type: Fixtures + fixtures: {} - uid: 2250 components: - type: Transform @@ -50219,6 +50640,8 @@ entities: - Open - - Off - Close + - type: Fixtures + fixtures: {} - uid: 2254 components: - type: Transform @@ -50247,6 +50670,8 @@ entities: - Open - - Off - Close + - type: Fixtures + fixtures: {} - uid: 2803 components: - type: Transform @@ -50264,6 +50689,8 @@ entities: - Open - - Off - Close + - type: Fixtures + fixtures: {} - uid: 3914 components: - type: Transform @@ -50282,6 +50709,8 @@ entities: - Open - - Off - Close + - type: Fixtures + fixtures: {} - uid: 4715 components: - type: MetaData @@ -50317,6 +50746,8 @@ entities: - Open - - Off - Close + - type: Fixtures + fixtures: {} - uid: 4716 components: - type: MetaData @@ -50387,6 +50818,8 @@ entities: - Open - - Off - Close + - type: Fixtures + fixtures: {} - uid: 4717 components: - type: MetaData @@ -50422,6 +50855,8 @@ entities: - Open - - Off - Close + - type: Fixtures + fixtures: {} - uid: 9217 components: - type: MetaData @@ -50447,6 +50882,8 @@ entities: - Open - - Off - Close + - type: Fixtures + fixtures: {} - proto: SignArmory entities: - uid: 2163 @@ -50454,6 +50891,8 @@ entities: - type: Transform pos: 12.5,17.5 parent: 1668 + - type: Fixtures + fixtures: {} - proto: SignAtmos entities: - uid: 4030 @@ -50461,6 +50900,8 @@ entities: - type: Transform pos: -26.5,18.5 parent: 1668 + - type: Fixtures + fixtures: {} - proto: SignBar entities: - uid: 1139 @@ -50468,16 +50909,22 @@ entities: - type: Transform pos: 28.5,-7.5 parent: 1668 + - type: Fixtures + fixtures: {} - uid: 4317 components: - type: Transform pos: 17.5,-24.5 parent: 1668 + - type: Fixtures + fixtures: {} - uid: 5538 components: - type: Transform pos: 11.5,-31.5 parent: 1668 + - type: Fixtures + fixtures: {} - proto: SignCargo entities: - uid: 1758 @@ -50485,11 +50932,15 @@ entities: - type: Transform pos: 1.5,22.5 parent: 1668 + - type: Fixtures + fixtures: {} - uid: 3916 components: - type: Transform pos: -3.5,32.5 parent: 1668 + - type: Fixtures + fixtures: {} - proto: SignCargoDock entities: - uid: 2986 @@ -50497,6 +50948,8 @@ entities: - type: Transform pos: 3.5,33.5 parent: 1668 + - type: Fixtures + fixtures: {} - proto: SignDangerMed entities: - uid: 2535 @@ -50504,6 +50957,8 @@ entities: - type: Transform pos: 9.5,29.5 parent: 1668 + - type: Fixtures + fixtures: {} - proto: SignDirectionalBar entities: - uid: 5656 @@ -50512,6 +50967,8 @@ entities: rot: 1.5707963267948966 rad pos: 2.5,-24.5 parent: 1668 + - type: Fixtures + fixtures: {} - proto: SignDirectionalEscapePod entities: - uid: 5654 @@ -50520,6 +50977,8 @@ entities: rot: -1.5707963267948966 rad pos: -3.5,-24.5 parent: 1668 + - type: Fixtures + fixtures: {} - proto: SignElectricalMed entities: - uid: 5 @@ -50527,11 +50986,15 @@ entities: - type: Transform pos: 18.5,27.5 parent: 1668 + - type: Fixtures + fixtures: {} - uid: 5725 components: - type: Transform pos: -3.5,-16.5 parent: 1668 + - type: Fixtures + fixtures: {} - proto: SignEngineering entities: - uid: 3025 @@ -50539,6 +51002,8 @@ entities: - type: Transform pos: -7.5,15.5 parent: 1668 + - type: Fixtures + fixtures: {} - proto: SignEscapePods entities: - uid: 5655 @@ -50546,6 +51011,8 @@ entities: - type: Transform pos: -15.5,-28.5 parent: 1668 + - type: Fixtures + fixtures: {} - proto: SignGenpop entities: - uid: 2076 @@ -50553,6 +51020,8 @@ entities: - type: Transform pos: 8.5,13.5 parent: 1668 + - type: Fixtures + fixtures: {} - proto: SignGravity entities: - uid: 4028 @@ -50560,6 +51029,8 @@ entities: - type: Transform pos: -7.5,23.5 parent: 1668 + - type: Fixtures + fixtures: {} - proto: SignHead entities: - uid: 2993 @@ -50567,11 +51038,15 @@ entities: - type: Transform pos: -19.5,2.5 parent: 1668 + - type: Fixtures + fixtures: {} - uid: 7333 components: - type: Transform pos: -32.5,2.5 parent: 1668 + - type: Fixtures + fixtures: {} - proto: SignJanitor entities: - uid: 6045 @@ -50579,6 +51054,8 @@ entities: - type: Transform pos: -3.5,-10.5 parent: 1668 + - type: Fixtures + fixtures: {} - proto: SignKiddiePlaque entities: - uid: 4020 @@ -50586,11 +51063,15 @@ entities: - type: Transform pos: 33.5,13.5 parent: 1668 + - type: Fixtures + fixtures: {} - uid: 4214 components: - type: Transform pos: -3.5,-28.5 parent: 1668 + - type: Fixtures + fixtures: {} - proto: SignKitchen entities: - uid: 1069 @@ -50599,16 +51080,22 @@ entities: rot: -1.5707963267948966 rad pos: 18.5,-16.5 parent: 1668 + - type: Fixtures + fixtures: {} - uid: 5536 components: - type: Transform pos: 16.5,-24.5 parent: 1668 + - type: Fixtures + fixtures: {} - uid: 5537 components: - type: Transform pos: -12.5,-31.5 parent: 1668 + - type: Fixtures + fixtures: {} - proto: SignLawyer entities: - uid: 2102 @@ -50616,6 +51103,8 @@ entities: - type: Transform pos: 28.5,13.5 parent: 1668 + - type: Fixtures + fixtures: {} - proto: SignMedical entities: - uid: 573 @@ -50623,6 +51112,8 @@ entities: - type: Transform pos: 11.5,-3.5 parent: 1668 + - type: Fixtures + fixtures: {} - proto: SignPlaque entities: - uid: 510 @@ -50630,26 +51121,36 @@ entities: - type: Transform pos: -1.5,-3.5 parent: 1668 + - type: Fixtures + fixtures: {} - uid: 2801 components: - type: Transform pos: -15.5,14.5 parent: 1668 + - type: Fixtures + fixtures: {} - uid: 4019 components: - type: Transform pos: 6.5,17.5 parent: 1668 + - type: Fixtures + fixtures: {} - uid: 4211 components: - type: Transform pos: 2.5,-28.5 parent: 1668 + - type: Fixtures + fixtures: {} - uid: 4212 components: - type: Transform pos: -3.5,-32.5 parent: 1668 + - type: Fixtures + fixtures: {} - uid: 4662 components: - type: MetaData @@ -50658,6 +51159,8 @@ entities: - type: Transform pos: -24.5,-15.5 parent: 1668 + - type: Fixtures + fixtures: {} - uid: 6119 components: - type: MetaData @@ -50666,6 +51169,8 @@ entities: - type: Transform pos: -9.5,-15.5 parent: 1668 + - type: Fixtures + fixtures: {} - uid: 6120 components: - type: MetaData @@ -50674,6 +51179,8 @@ entities: - type: Transform pos: -6.5,-15.5 parent: 1668 + - type: Fixtures + fixtures: {} - uid: 6121 components: - type: MetaData @@ -50682,6 +51189,8 @@ entities: - type: Transform pos: -12.5,-15.5 parent: 1668 + - type: Fixtures + fixtures: {} - uid: 6122 components: - type: MetaData @@ -50690,6 +51199,8 @@ entities: - type: Transform pos: -15.5,-15.5 parent: 1668 + - type: Fixtures + fixtures: {} - uid: 6123 components: - type: MetaData @@ -50698,6 +51209,8 @@ entities: - type: Transform pos: -18.5,-15.5 parent: 1668 + - type: Fixtures + fixtures: {} - uid: 6184 components: - type: MetaData @@ -50706,6 +51219,8 @@ entities: - type: Transform pos: -22.5,-9.5 parent: 1668 + - type: Fixtures + fixtures: {} - uid: 8768 components: - type: MetaData @@ -50714,6 +51229,8 @@ entities: - type: Transform pos: -30.5,-15.5 parent: 1668 + - type: Fixtures + fixtures: {} - uid: 8769 components: - type: MetaData @@ -50722,6 +51239,8 @@ entities: - type: Transform pos: -27.5,-15.5 parent: 1668 + - type: Fixtures + fixtures: {} - uid: 9395 components: - type: MetaData @@ -50730,11 +51249,15 @@ entities: - type: Transform pos: -21.5,-15.5 parent: 1668 + - type: Fixtures + fixtures: {} - uid: 9617 components: - type: Transform pos: -36.5,14.5 parent: 1668 + - type: Fixtures + fixtures: {} - proto: SignPrison entities: - uid: 1632 @@ -50742,6 +51265,8 @@ entities: - type: Transform pos: 18.5,6.5 parent: 1668 + - type: Fixtures + fixtures: {} - proto: SignScience entities: - uid: 9123 @@ -50749,6 +51274,8 @@ entities: - type: Transform pos: 19.5,-28.5 parent: 1668 + - type: Fixtures + fixtures: {} - proto: SignSecureMed entities: - uid: 2545 @@ -50756,41 +51283,57 @@ entities: - type: Transform pos: 19.5,34.5 parent: 1668 + - type: Fixtures + fixtures: {} - uid: 2564 components: - type: Transform pos: 21.5,32.5 parent: 1668 + - type: Fixtures + fixtures: {} - uid: 2571 components: - type: Transform pos: 19.5,30.5 parent: 1668 + - type: Fixtures + fixtures: {} - uid: 2572 components: - type: Transform pos: 17.5,32.5 parent: 1668 + - type: Fixtures + fixtures: {} - uid: 6734 components: - type: Transform pos: -34.5,-9.5 parent: 1668 + - type: Fixtures + fixtures: {} - uid: 6735 components: - type: Transform pos: -34.5,-5.5 parent: 1668 + - type: Fixtures + fixtures: {} - uid: 6736 components: - type: Transform pos: -37.5,-3.5 parent: 1668 + - type: Fixtures + fixtures: {} - uid: 6737 components: - type: Transform pos: -41.5,-3.5 parent: 1668 + - type: Fixtures + fixtures: {} - proto: SignSecurity entities: - uid: 574 @@ -50798,6 +51341,8 @@ entities: - type: Transform pos: 11.5,2.5 parent: 1668 + - type: Fixtures + fixtures: {} - proto: SignSpace entities: - uid: 4091 @@ -50805,16 +51350,22 @@ entities: - type: Transform pos: -22.5,18.5 parent: 1668 + - type: Fixtures + fixtures: {} - uid: 4850 components: - type: Transform pos: 16.5,-47.5 parent: 1668 + - type: Fixtures + fixtures: {} - uid: 4851 components: - type: Transform pos: -17.5,-47.5 parent: 1668 + - type: Fixtures + fixtures: {} - proto: SignTelecomms entities: - uid: 6022 @@ -50823,6 +51374,8 @@ entities: rot: 3.141592653589793 rad pos: -12.5,-11.5 parent: 1668 + - type: Fixtures + fixtures: {} - proto: Sink entities: - uid: 2677 @@ -55525,46 +56078,64 @@ entities: - type: Transform pos: -15.5,8.5 parent: 1668 + - type: Fixtures + fixtures: {} - uid: 4233 components: - type: Transform pos: 3.5,-33.5 parent: 1668 + - type: Fixtures + fixtures: {} - uid: 4332 components: - type: Transform pos: 3.5,-35.5 parent: 1668 + - type: Fixtures + fixtures: {} - uid: 4335 components: - type: Transform pos: -4.5,-35.5 parent: 1668 + - type: Fixtures + fixtures: {} - uid: 4336 components: - type: Transform pos: -4.5,-33.5 parent: 1668 + - type: Fixtures + fixtures: {} - uid: 4338 components: - type: Transform pos: -1.5,-46.5 parent: 1668 + - type: Fixtures + fixtures: {} - uid: 4339 components: - type: Transform pos: 3.5,-46.5 parent: 1668 + - type: Fixtures + fixtures: {} - uid: 4340 components: - type: Transform pos: -4.5,-46.5 parent: 1668 + - type: Fixtures + fixtures: {} - uid: 9473 components: - type: Transform pos: 0.5,-46.5 parent: 1668 + - type: Fixtures + fixtures: {} - proto: WallPlastitaniumDiagonalIndestructible entities: - uid: 375 @@ -61178,6 +61749,8 @@ entities: - type: Transform pos: -28.5,24.5 parent: 1668 + - type: Fixtures + fixtures: {} - proto: WarningO2 entities: - uid: 3371 @@ -61185,6 +61758,8 @@ entities: - type: Transform pos: -28.5,22.5 parent: 1668 + - type: Fixtures + fixtures: {} - proto: WaterCooler entities: - uid: 1382 From c8b71f8989eac9c28ae43245e0ef26f20d8d0c40 Mon Sep 17 00:00:00 2001 From: ArtisticRoomba <145879011+ArtisticRoomba@users.noreply.github.com> Date: Sun, 7 Dec 2025 16:35:29 -0800 Subject: [PATCH 054/205] fix elkridge APC powernet (#41772) --- Resources/Maps/elkridge.yml | 104 ++++++++++++++++++++++++++++-------- 1 file changed, 83 insertions(+), 21 deletions(-) diff --git a/Resources/Maps/elkridge.yml b/Resources/Maps/elkridge.yml index 27bc203981..97b24a6d6a 100644 --- a/Resources/Maps/elkridge.yml +++ b/Resources/Maps/elkridge.yml @@ -1,11 +1,11 @@ meta: format: 7 category: Map - engineVersion: 267.3.0 + engineVersion: 268.0.0 forkId: "" forkVersion: "" - time: 11/04/2025 19:47:26 - entityCount: 18697 + time: 12/07/2025 22:51:59 + entityCount: 18708 maps: - 1 grids: @@ -10821,6 +10821,7 @@ entities: - type: GasTileOverlay - type: RadiationGridResistance - type: ImplicitRoof + - type: ExplosionAirtightGrid - proto: AcousticGuitarInstrument entities: - uid: 15607 @@ -17080,6 +17081,9 @@ entities: rot: 3.141592653589793 rad pos: 35.5,-32.5 parent: 2 + - type: AccessReader + accessListsOriginal: + - - Engineering - type: Fixtures fixtures: {} - uid: 9111 @@ -17420,6 +17424,16 @@ entities: parent: 2 - type: Fixtures fixtures: {} + - uid: 14562 + components: + - type: MetaData + name: APC (Atmospherics Lower) + - type: Transform + rot: 3.141592653589793 rad + pos: 34.5,-41.5 + parent: 2 + - type: Fixtures + fixtures: {} - uid: 15147 components: - type: MetaData @@ -28248,11 +28262,6 @@ entities: - type: Transform pos: 13.5,-23.5 parent: 2 - - uid: 8893 - components: - - type: Transform - pos: 26.5,-31.5 - parent: 2 - uid: 8894 components: - type: Transform @@ -31781,7 +31790,7 @@ entities: - uid: 12628 components: - type: Transform - pos: 33.5,-31.5 + pos: 34.5,-41.5 parent: 2 - uid: 12629 components: @@ -31943,6 +31952,11 @@ entities: - type: Transform pos: -27.5,25.5 parent: 2 + - uid: 12769 + components: + - type: Transform + pos: 27.5,-40.5 + parent: 2 - uid: 12859 components: - type: Transform @@ -32283,11 +32297,6 @@ entities: - type: Transform pos: 29.5,-32.5 parent: 2 - - uid: 14562 - components: - - type: Transform - pos: 29.5,-31.5 - parent: 2 - uid: 14563 components: - type: Transform @@ -42039,6 +42048,11 @@ entities: - type: Transform pos: 40.5,-17.5 parent: 2 + - uid: 8893 + components: + - type: Transform + pos: 33.5,-32.5 + parent: 2 - uid: 8974 components: - type: Transform @@ -45389,6 +45403,16 @@ entities: - type: Transform pos: -37.5,14.5 parent: 2 + - uid: 17542 + components: + - type: Transform + pos: 33.5,-31.5 + parent: 2 + - uid: 17543 + components: + - type: Transform + pos: 33.5,-33.5 + parent: 2 - uid: 17594 components: - type: Transform @@ -45634,6 +45658,51 @@ entities: - type: Transform pos: -11.5,-7.5 parent: 2 + - uid: 18700 + components: + - type: Transform + pos: 33.5,-34.5 + parent: 2 + - uid: 18701 + components: + - type: Transform + pos: 33.5,-35.5 + parent: 2 + - uid: 18702 + components: + - type: Transform + pos: 33.5,-36.5 + parent: 2 + - uid: 18703 + components: + - type: Transform + pos: 33.5,-37.5 + parent: 2 + - uid: 18704 + components: + - type: Transform + pos: 33.5,-38.5 + parent: 2 + - uid: 18705 + components: + - type: Transform + pos: 33.5,-39.5 + parent: 2 + - uid: 18706 + components: + - type: Transform + pos: 33.5,-40.5 + parent: 2 + - uid: 18707 + components: + - type: Transform + pos: 33.5,-41.5 + parent: 2 + - uid: 18708 + components: + - type: Transform + pos: 34.5,-41.5 + parent: 2 - proto: CableMVStack entities: - uid: 7467 @@ -102717,13 +102786,6 @@ entities: fixtures: {} - proto: SignNosmoking entities: - - uid: 12769 - components: - - type: Transform - pos: 34.5,-41.5 - parent: 2 - - type: Fixtures - fixtures: {} - uid: 12772 components: - type: Transform From 84ce9522b75a8b6dc702c04817d99e2288a49973 Mon Sep 17 00:00:00 2001 From: ArtisticRoomba <145879011+ArtisticRoomba@users.noreply.github.com> Date: Sun, 7 Dec 2025 16:35:49 -0800 Subject: [PATCH 055/205] fix fland APC powernet (#41773) --- Resources/Maps/fland.yml | 180 ++++++++++++++++++++++++++++----------- 1 file changed, 128 insertions(+), 52 deletions(-) diff --git a/Resources/Maps/fland.yml b/Resources/Maps/fland.yml index 51d1c7f615..83cb0723a4 100644 --- a/Resources/Maps/fland.yml +++ b/Resources/Maps/fland.yml @@ -1,11 +1,11 @@ meta: format: 7 category: Map - engineVersion: 267.3.0 + engineVersion: 268.0.0 forkId: "" forkVersion: "" - time: 11/05/2025 10:44:52 - entityCount: 36081 + time: 12/07/2025 23:11:47 + entityCount: 36093 maps: - 1 grids: @@ -481,7 +481,7 @@ entities: version: 7 6,1: ind: 6,1 - tiles: bQAAAAAAAG0AAAAAAABtAAAAAAAAfgAAAAAAAH4AAAAAAABdAAAAAAEAXQAAAAACAH4AAAAAAABdAAAAAAAAfgAAAAAAAF0AAAAAAgBdAAAAAAMAXQAAAAACAF0AAAAAAQBdAAAAAAMAfgAAAAAAAH4AAAAAAAB+AAAAAAAAfgAAAAAAAH4AAAAAAAB+AAAAAAAAfgAAAAAAAH4AAAAAAAB+AAAAAAAAfgAAAAAAAH4AAAAAAAB+AAAAAAAAfgAAAAAAAH4AAAAAAAB+AAAAAAAAfgAAAAAAAH4AAAAAAAAuAAAAAAAALgAAAAAAAC4AAAAAAAAuAAAAAAAALgAAAAAAAH4AAAAAAABsAAAAAAAAbAAAAAAAAGwAAAAAAABsAAAAAAAAbAAAAAAAAH4AAAAAAAB+AAAAAAAAXQAAAAAAAF0AAAAAAwB+AAAAAAAALgAAAAAAAC4AAAAAAAAuAAAAAAAALgAAAAAAAC4AAAAAAAB+AAAAAAAAfgAAAAAAAH4AAAAAAAB+AAAAAAAAfgAAAAAAAH4AAAAAAAB+AAAAAAAAfgAAAAAAAF0AAAAAAgBdAAAAAAMAXQAAAAABAC4AAAAAAAAuAAAAAAAALgAAAAAAAC4AAAAAAAAuAAAAAAAAbQAAAAAAAH4AAAAAAAB+AAAAAAAAfgAAAAAAAH4AAAAAAAB+AAAAAAAAfgAAAAAAAH4AAAAAAAB+AAAAAAAAXQAAAAABAH4AAAAAAAAuAAAAAAAALgAAAAAAAC4AAAAAAAAuAAAAAAAALgAAAAAAAH4AAAAAAAB+AAAAAAAAfgAAAAAAAH4AAAAAAAB+AAAAAAAAfgAAAAAAAH4AAAAAAAB+AAAAAAAAfgAAAAAAAH4AAAAAAAB+AAAAAAAAfgAAAAAAAH4AAAAAAAB+AAAAAAAAfgAAAAAAAH4AAAAAAAB+AAAAAAAAfgAAAAAAAH4AAAAAAAB+AAAAAAAAQAAAAAAAAEAAAAAAAABAAAAAAAAAQAAAAAAAAH4AAAAAAABAAAAAAAAAQAAAAAAAAH4AAAAAAAB+AAAAAAAAfgAAAAAAAH4AAAAAAAB+AAAAAAAAfgAAAAAAAH4AAAAAAAB+AAAAAAAAQAAAAAAAAEAAAAAAAABAAAAAAAAAQAAAAAAAAEAAAAAAAAB+AAAAAAAAQAAAAAAAAEAAAAAAAAB+AAAAAAAAfgAAAAAAAH4AAAAAAAB+AAAAAAAAfgAAAAAAAH4AAAAAAAB+AAAAAAAAfgAAAAAAAH4AAAAAAAB6AAAAAAEAfgAAAAAAAEAAAAAAAABAAAAAAAAAegAAAAADAHoAAAAAAQBAAAAAAAAAfgAAAAAAAH4AAAAAAAB+AAAAAAAAfgAAAAAAAH4AAAAAAAB+AAAAAAAAfgAAAAAAAH4AAAAAAAB+AAAAAAAAegAAAAABAHoAAAAAAgBAAAAAAAAAQAAAAAAAAHoAAAAAAgB6AAAAAAMAQAAAAAAAAH4AAAAAAAB+AAAAAAAAfgAAAAAAAH4AAAAAAAB+AAAAAAAAfgAAAAAAAH4AAAAAAAB+AAAAAAAAfgAAAAAAAHoAAAAAAgB6AAAAAAAAQAAAAAAAAEAAAAAAAAB6AAAAAAAAegAAAAADAH4AAAAAAAB+AAAAAAAAfgAAAAAAAH4AAAAAAAB+AAAAAAAAfgAAAAAAAH4AAAAAAAB+AAAAAAAAfgAAAAAAAH4AAAAAAAB+AAAAAAAAfgAAAAAAAH4AAAAAAAB+AAAAAAAAegAAAAAAAHoAAAAAAwB+AAAAAAAAfgAAAAAAAH4AAAAAAAB+AAAAAAAATwAAAAAAAH4AAAAAAAB+AAAAAAAAfgAAAAAAAH4AAAAAAAB+AAAAAAAAfgAAAAAAAH4AAAAAAAB+AAAAAAAAfgAAAAAAAHoAAAAAAgB6AAAAAAAAfgAAAAAAAE8AAAAAAABPAAAAAAAATwAAAAAAAE8AAAAAAAB+AAAAAAAAfgAAAAAAAH4AAAAAAAB+AAAAAAAAfgAAAAAAAH4AAAAAAAB+AAAAAAAAfgAAAAAAAH4AAAAAAAB+AAAAAAAAfgAAAAAAAH4AAAAAAAA4AAAAAAAAOAAAAAAAADgAAAAAAABPAAAAAAAAHwAAAAADAH4AAAAAAAB+AAAAAAAAfgAAAAAAAG0AAAAAAAB+AAAAAAAAfgAAAAAAAH4AAAAAAABtAAAAAAAAfgAAAAAAAH4AAAAAAAB+AAAAAAAAOAAAAAAAADgAAAAAAAA4AAAAAAAATwAAAAAAAB8AAAAAAAB+AAAAAAAAfgAAAAAAAH4AAAAAAAB+AAAAAAAAfgAAAAAAAH4AAAAAAAB+AAAAAAAAfgAAAAAAAH4AAAAAAAB+AAAAAAAAbQAAAAAAAA== + tiles: bQAAAAAAAG0AAAAAAABtAAAAAAAAfgAAAAAAAH4AAAAAAABdAAAAAAEAXQAAAAACAH4AAAAAAABdAAAAAAAAfgAAAAAAAF0AAAAAAgBdAAAAAAMAXQAAAAACAF0AAAAAAQBdAAAAAAMAfgAAAAAAAH4AAAAAAAB+AAAAAAAAfgAAAAAAAH4AAAAAAAB+AAAAAAAAfgAAAAAAAH4AAAAAAAB+AAAAAAAAfgAAAAAAAH4AAAAAAAB+AAAAAAAAfgAAAAAAAH4AAAAAAAB+AAAAAAAAfgAAAAAAAH4AAAAAAAAuAAAAAAAALgAAAAAAAC4AAAAAAAAuAAAAAAAALgAAAAAAAH4AAAAAAABsAAAAAAAAbAAAAAAAAGwAAAAAAABsAAAAAAAAbAAAAAAAAH4AAAAAAAB+AAAAAAAAXQAAAAAAAF0AAAAAAwB+AAAAAAAALgAAAAAAAC4AAAAAAAAuAAAAAAAALgAAAAAAAC4AAAAAAAB+AAAAAAAAfgAAAAAAAH4AAAAAAAB+AAAAAAAAfgAAAAAAAH4AAAAAAAB+AAAAAAAAfgAAAAAAAF0AAAAAAgBdAAAAAAMAXQAAAAABAC4AAAAAAAAuAAAAAAAALgAAAAAAAC4AAAAAAAAuAAAAAAAAbQAAAAAAAH4AAAAAAAB+AAAAAAAAfgAAAAAAAH4AAAAAAAB+AAAAAAAAfgAAAAAAAH4AAAAAAAB+AAAAAAAAXQAAAAABAH4AAAAAAAAuAAAAAAAALgAAAAAAAC4AAAAAAAAuAAAAAAAALgAAAAAAAH4AAAAAAAB+AAAAAAAAfgAAAAAAAH4AAAAAAAB+AAAAAAAAfgAAAAAAAH4AAAAAAAB+AAAAAAAAfgAAAAAAAH4AAAAAAAB+AAAAAAAAfgAAAAAAAH4AAAAAAAB+AAAAAAAAfgAAAAAAAH4AAAAAAAB+AAAAAAAAfgAAAAAAAH4AAAAAAAB+AAAAAAAAQAAAAAAAAEAAAAAAAABAAAAAAAAAQAAAAAAAAH4AAAAAAABAAAAAAAAAQAAAAAAAAH4AAAAAAAB+AAAAAAAAfgAAAAAAAH4AAAAAAAB+AAAAAAAAfgAAAAAAAH4AAAAAAAB+AAAAAAAAQAAAAAAAAEAAAAAAAABAAAAAAAAAQAAAAAAAAEAAAAAAAAB+AAAAAAAAQAAAAAAAAEAAAAAAAAB+AAAAAAAAfgAAAAAAAH4AAAAAAAB+AAAAAAAAfgAAAAAAAH4AAAAAAAB+AAAAAAAAfgAAAAAAAH4AAAAAAAB6AAAAAAEAfgAAAAAAAEAAAAAAAABAAAAAAAAAegAAAAADAHoAAAAAAQBAAAAAAAAAfgAAAAAAAH4AAAAAAAB+AAAAAAAAfgAAAAAAAH4AAAAAAAB+AAAAAAAAfgAAAAAAAH4AAAAAAAB+AAAAAAAAegAAAAABAHoAAAAAAgBAAAAAAAAAQAAAAAAAAHoAAAAAAgB6AAAAAAMAQAAAAAAAAH4AAAAAAAB+AAAAAAAAfgAAAAAAAH4AAAAAAAB+AAAAAAAAfgAAAAAAAH4AAAAAAAB+AAAAAAAAfgAAAAAAAHoAAAAAAgB6AAAAAAAAQAAAAAAAAEAAAAAAAAB6AAAAAAAAegAAAAADAH4AAAAAAAB+AAAAAAAAfgAAAAAAAH4AAAAAAAB+AAAAAAAAfgAAAAAAAH4AAAAAAAB+AAAAAAAAfgAAAAAAAH4AAAAAAAB+AAAAAAAAfgAAAAAAAH4AAAAAAAB+AAAAAAAAegAAAAAAAHoAAAAAAwB+AAAAAAAAfgAAAAAAAH4AAAAAAAB+AAAAAAAATwAAAAAAAH4AAAAAAAB+AAAAAAAAfgAAAAAAAH4AAAAAAAB+AAAAAAAAfgAAAAAAAH4AAAAAAAB+AAAAAAAAfgAAAAAAAHoAAAAAAgB6AAAAAAAAfgAAAAAAAE8AAAAAAABPAAAAAAAATwAAAAAAAE8AAAAAAABPAAAAAAAAfgAAAAAAAH4AAAAAAAB+AAAAAAAAfgAAAAAAAH4AAAAAAAB+AAAAAAAAfgAAAAAAAH4AAAAAAAB+AAAAAAAAfgAAAAAAAH4AAAAAAAA4AAAAAAAAOAAAAAAAADgAAAAAAABPAAAAAAAATwAAAAAAAH4AAAAAAAB+AAAAAAAAfgAAAAAAAG0AAAAAAAB+AAAAAAAAfgAAAAAAAH4AAAAAAABtAAAAAAAAfgAAAAAAAH4AAAAAAAB+AAAAAAAAOAAAAAAAADgAAAAAAAA4AAAAAAAATwAAAAAAAB8AAAAAAAB+AAAAAAAAfgAAAAAAAH4AAAAAAAB+AAAAAAAAfgAAAAAAAH4AAAAAAAB+AAAAAAAAfgAAAAAAAH4AAAAAAAB+AAAAAAAAbQAAAAAAAA== version: 7 5,1: ind: 5,1 @@ -493,7 +493,7 @@ entities: version: 7 6,2: ind: 6,2 - tiles: TwAAAAAAAE8AAAAAAABPAAAAAAAATwAAAAAAAB8AAAAAAwB+AAAAAAAAfgAAAAAAAH4AAAAAAAB+AAAAAAAAfgAAAAAAAH4AAAAAAAB+AAAAAAAAfgAAAAAAAH4AAAAAAAB+AAAAAAAAfgAAAAAAABEAAAAAAAARAAAAAAAAEQAAAAAAAE8AAAAAAAB+AAAAAAAAfgAAAAAAAH4AAAAAAAB+AAAAAAAAfgAAAAAAAH4AAAAAAAB+AAAAAAAAfgAAAAAAAH4AAAAAAAB+AAAAAAAAfgAAAAAAAH4AAAAAAAB+AAAAAAAAfgAAAAAAAH4AAAAAAAB+AAAAAAAAfgAAAAAAAGwAAAAAAAB+AAAAAAAAbAAAAAAAAGwAAAAAAABsAAAAAAAAbAAAAAAAAGwAAAAAAABsAAAAAAAAfgAAAAAAAGwAAAAAAABsAAAAAAAAHwAAAAACAB8AAAAAAwAfAAAAAAAAHwAAAAABAGwAAAAAAAB+AAAAAAAAfgAAAAAAAH4AAAAAAAB+AAAAAAAAfgAAAAAAAH4AAAAAAAB+AAAAAAAAfgAAAAAAAH4AAAAAAAB+AAAAAAAAfgAAAAAAAB8AAAAAAgAfAAAAAAEAHwAAAAADAB8AAAAAAQB+AAAAAAAAbAAAAAAAAH4AAAAAAABsAAAAAAAAbAAAAAAAAGwAAAAAAABsAAAAAAAAbAAAAAAAAGwAAAAAAABsAAAAAAAAbAAAAAAAAGwAAAAAAAB+AAAAAAAAfgAAAAAAAH4AAAAAAAB+AAAAAAAAfgAAAAAAAH4AAAAAAABtAAAAAAAAfgAAAAAAAH4AAAAAAAB+AAAAAAAAfgAAAAAAAH4AAAAAAAB+AAAAAAAAfgAAAAAAAH4AAAAAAAB+AAAAAAAAHwAAAAAAAB8AAAAAAQAfAAAAAAIAHwAAAAACAB8AAAAAAAAfAAAAAAMAHwAAAAADAB8AAAAAAAB+AAAAAAAABwAAAAAAAAcAAAAACgAHAAAAAAAABwAAAAAAAAcAAAAAAAB+AAAAAAAAfgAAAAAAAB8AAAAAAgAfAAAAAAIAHwAAAAACAB8AAAAAAwAfAAAAAAAAHwAAAAACAB8AAAAAAgAfAAAAAAIAfgAAAAAAAAcAAAAAAAAHAAAAAAEABwAAAAAIAAcAAAAAAAAHAAAAAAAAfgAAAAAAAH4AAAAAAAAfAAAAAAMAHwAAAAAAAB8AAAAAAwAfAAAAAAIAHwAAAAAAAB8AAAAAAgAfAAAAAAMAHwAAAAABAH4AAAAAAAAHAAAAAAAABwAAAAAAAAcAAAAAAAAHAAAAAAAABwAAAAAFAH4AAAAAAAB+AAAAAAAAHwAAAAABAB8AAAAAAQB+AAAAAAAAfgAAAAAAAH4AAAAAAAB+AAAAAAAAfgAAAAAAAH4AAAAAAAB+AAAAAAAAfgAAAAAAAH4AAAAAAAB+AAAAAAAAfgAAAAAAAH4AAAAAAAB+AAAAAAAAfgAAAAAAAB8AAAAAAAAfAAAAAAIAfgAAAAAAAB8AAAAAAgAfAAAAAAAAHwAAAAABAB8AAAAAAgAfAAAAAAIAHwAAAAABAB8AAAAAAAAfAAAAAAEAHwAAAAAAAB8AAAAAAwB+AAAAAAAAHwAAAAAAAB8AAAAAAwAfAAAAAAMAHwAAAAAAAH4AAAAAAAAfAAAAAAEAHwAAAAADABEAAAAAAAARAAAAAAAAEQAAAAAAAB8AAAAAAwARAAAAAAAAEQAAAAAAABEAAAAAAAAfAAAAAAEAHwAAAAACAB8AAAAAAAAfAAAAAAAAHwAAAAADAB8AAAAAAwB+AAAAAAAAHwAAAAABAB8AAAAAAAAfAAAAAAEAHwAAAAACAB8AAAAAAgAfAAAAAAAAHwAAAAADAB8AAAAAAQAfAAAAAAEAHwAAAAACAH4AAAAAAAAfAAAAAAAAHwAAAAACAB8AAAAAAwB+AAAAAAAAfgAAAAAAAH4AAAAAAAB+AAAAAAAAHwAAAAAAAH4AAAAAAAB+AAAAAAAAfgAAAAAAAH4AAAAAAAB+AAAAAAAAfgAAAAAAAH4AAAAAAAB+AAAAAAAAfgAAAAAAAH4AAAAAAAAfAAAAAAAAHwAAAAABAH4AAAAAAABtAAAAAAAAHwAAAAADAB8AAAAAAwAfAAAAAAMAfgAAAAAAAG0AAAAAAABsAAAAAAAAbAAAAAAAAB8AAAAAAAAfAAAAAAMAHwAAAAACAG0AAAAAAAB+AAAAAAAAHwAAAAADAB8AAAAAAQB+AAAAAAAAHwAAAAAAABEAAAAAAAARAAAAAAAAHwAAAAABAH4AAAAAAAAfAAAAAAEAHwAAAAABAB8AAAAAAwARAAAAAAAAEQAAAAAAABEAAAAAAAAfAAAAAAAAfgAAAAAAAA== + tiles: TwAAAAAAAE8AAAAAAABPAAAAAAAATwAAAAAAAE8AAAAAAAB+AAAAAAAAfgAAAAAAAH4AAAAAAAB+AAAAAAAAfgAAAAAAAH4AAAAAAAB+AAAAAAAAfgAAAAAAAH4AAAAAAAB+AAAAAAAAfgAAAAAAABEAAAAAAAARAAAAAAAAEQAAAAAAAE8AAAAAAAB+AAAAAAAAfgAAAAAAAH4AAAAAAAB+AAAAAAAAfgAAAAAAAH4AAAAAAAB+AAAAAAAAfgAAAAAAAH4AAAAAAAB+AAAAAAAAfgAAAAAAAH4AAAAAAAB+AAAAAAAAfgAAAAAAAH4AAAAAAAB+AAAAAAAAfgAAAAAAAGwAAAAAAAB+AAAAAAAAbAAAAAAAAGwAAAAAAABsAAAAAAAAbAAAAAAAAGwAAAAAAABsAAAAAAAAfgAAAAAAAGwAAAAAAABsAAAAAAAAHwAAAAACAB8AAAAAAwAfAAAAAAAAHwAAAAABAGwAAAAAAAB+AAAAAAAAfgAAAAAAAH4AAAAAAAB+AAAAAAAAfgAAAAAAAH4AAAAAAAB+AAAAAAAAfgAAAAAAAH4AAAAAAAB+AAAAAAAAfgAAAAAAAB8AAAAAAgAfAAAAAAEAHwAAAAADAB8AAAAAAQB+AAAAAAAAbAAAAAAAAH4AAAAAAABsAAAAAAAAbAAAAAAAAGwAAAAAAABsAAAAAAAAbAAAAAAAAGwAAAAAAABsAAAAAAAAbAAAAAAAAGwAAAAAAAB+AAAAAAAAfgAAAAAAAH4AAAAAAAB+AAAAAAAAfgAAAAAAAH4AAAAAAABtAAAAAAAAfgAAAAAAAH4AAAAAAAB+AAAAAAAAfgAAAAAAAH4AAAAAAAB+AAAAAAAAfgAAAAAAAH4AAAAAAAB+AAAAAAAAHwAAAAAAAB8AAAAAAQAfAAAAAAIAHwAAAAACAB8AAAAAAAAfAAAAAAMAHwAAAAADAB8AAAAAAAB+AAAAAAAABwAAAAAAAAcAAAAACgAHAAAAAAAABwAAAAAAAAcAAAAAAAB+AAAAAAAAfgAAAAAAAB8AAAAAAgAfAAAAAAIAHwAAAAACAB8AAAAAAwAfAAAAAAAAHwAAAAACAB8AAAAAAgAfAAAAAAIAfgAAAAAAAAcAAAAAAAAHAAAAAAEABwAAAAAIAAcAAAAAAAAHAAAAAAAAfgAAAAAAAH4AAAAAAAAfAAAAAAMAHwAAAAAAAB8AAAAAAwAfAAAAAAIAHwAAAAAAAB8AAAAAAgAfAAAAAAMAHwAAAAABAH4AAAAAAAAHAAAAAAAABwAAAAAAAAcAAAAAAAAHAAAAAAAABwAAAAAFAH4AAAAAAAB+AAAAAAAAHwAAAAABAB8AAAAAAQB+AAAAAAAAfgAAAAAAAH4AAAAAAAB+AAAAAAAAfgAAAAAAAH4AAAAAAAB+AAAAAAAAfgAAAAAAAH4AAAAAAAB+AAAAAAAAfgAAAAAAAH4AAAAAAAB+AAAAAAAAfgAAAAAAAB8AAAAAAAAfAAAAAAIAfgAAAAAAAB8AAAAAAgAfAAAAAAAAHwAAAAABAB8AAAAAAgAfAAAAAAIAHwAAAAABAB8AAAAAAAAfAAAAAAEAHwAAAAAAAB8AAAAAAwB+AAAAAAAAHwAAAAAAAB8AAAAAAwAfAAAAAAMAHwAAAAAAAH4AAAAAAAAfAAAAAAEAHwAAAAADABEAAAAAAAARAAAAAAAAEQAAAAAAAB8AAAAAAwARAAAAAAAAEQAAAAAAABEAAAAAAAAfAAAAAAEAHwAAAAACAB8AAAAAAAAfAAAAAAAAHwAAAAADAB8AAAAAAwB+AAAAAAAAHwAAAAABAB8AAAAAAAAfAAAAAAEAHwAAAAACAB8AAAAAAgAfAAAAAAAAHwAAAAADAB8AAAAAAQAfAAAAAAEAHwAAAAACAH4AAAAAAAAfAAAAAAAAHwAAAAACAB8AAAAAAwB+AAAAAAAAfgAAAAAAAH4AAAAAAAB+AAAAAAAAHwAAAAAAAH4AAAAAAAB+AAAAAAAAfgAAAAAAAH4AAAAAAAB+AAAAAAAAfgAAAAAAAH4AAAAAAAB+AAAAAAAAfgAAAAAAAH4AAAAAAAAfAAAAAAAAHwAAAAABAH4AAAAAAABtAAAAAAAAHwAAAAADAB8AAAAAAwAfAAAAAAMAfgAAAAAAAG0AAAAAAABsAAAAAAAAbAAAAAAAAB8AAAAAAAAfAAAAAAMAHwAAAAACAG0AAAAAAAB+AAAAAAAAHwAAAAADAB8AAAAAAQB+AAAAAAAAHwAAAAAAABEAAAAAAAARAAAAAAAAHwAAAAABAH4AAAAAAAAfAAAAAAEAHwAAAAABAB8AAAAAAwARAAAAAAAAEQAAAAAAABEAAAAAAAAfAAAAAAAAfgAAAAAAAA== version: 7 8,2: ind: 8,2 @@ -661,13 +661,13 @@ entities: 3594: 58,-31 7647: 125,-4 7648: 125,-8 - 8443: 99,30 8444: 99,32 8647: 89,-44 8648: 89,-40 8649: 89,-36 8654: 88,-28 8655: 88,-27 + 9436: 99,29 - node: color: '#FFFFFFFF' id: Basalt1 @@ -1013,7 +1013,6 @@ entities: 5791: 91,-23 5930: 90,36 5933: 100,32 - 5934: 100,30 5940: 121,-16 5941: 120,-16 6130: 89,18 @@ -1153,6 +1152,7 @@ entities: 9365: 99,46 9366: 99,52 9367: 107,49 + 9435: 100,29 - node: cleanable: True color: '#FFFFFFFF' @@ -11483,7 +11483,6 @@ entities: 6392: 120,45 6393: 120,53 6640: 75,55 - 8430: 99,30 8431: 99,31 8432: 99,33 8640: 101,-37 @@ -11496,6 +11495,7 @@ entities: 9405: 119,48 9406: 119,49 9407: 119,50 + 9437: 99,30 - node: cleanable: True color: '#FFFFFFFF' @@ -15769,6 +15769,7 @@ entities: - type: GridPathfinding - type: NavMap - type: ImplicitRoof + - type: ExplosionAirtightGrid - proto: AcousticGuitarInstrument entities: - uid: 13351 @@ -22863,7 +22864,7 @@ entities: - uid: 24408 components: - type: MetaData - name: Atmospherics APC + name: Atmospherics Left APC - type: Transform pos: 78.5,-32.5 parent: 13329 @@ -23007,20 +23008,34 @@ entities: - uid: 27540 components: - type: MetaData - name: Telecomms Servers APC + name: Atmospherics Right APC - type: Transform - pos: 91.5,31.5 + rot: -1.5707963267948966 rad + pos: 90.5,-28.5 parent: 13329 - type: Fixtures fixtures: {} - uid: 27601 components: - type: MetaData - name: Telecomms APC + name: Telecoms Cooling APC - type: Transform rot: 1.5707963267948966 rad pos: 85.5,34.5 parent: 13329 + - type: AccessReader + accessListsOriginal: + - - Engineering + - type: Fixtures + fixtures: {} + - uid: 27870 + components: + - type: MetaData + name: Telecoms APC 2 + - type: Transform + rot: -1.5707963267948966 rad + pos: 100.5,28.5 + parent: 13329 - type: Fixtures fixtures: {} - uid: 28343 @@ -23257,6 +23272,19 @@ entities: parent: 13329 - type: Fixtures fixtures: {} + - uid: 35451 + components: + - type: MetaData + name: Telecoms APC 1 + - type: Transform + rot: -1.5707963267948966 rad + pos: 100.5,33.5 + parent: 13329 + - type: AccessReader + accessListsOriginal: + - - Engineering + - type: Fixtures + fixtures: {} - proto: APCHyperCapacity entities: - uid: 920 @@ -44911,7 +44939,7 @@ entities: - uid: 24498 components: - type: Transform - pos: 82.5,-38.5 + pos: 84.5,-38.5 parent: 13329 - uid: 24499 components: @@ -45451,7 +45479,7 @@ entities: - uid: 24608 components: - type: Transform - pos: 82.5,-29.5 + pos: 84.5,-37.5 parent: 13329 - uid: 24609 components: @@ -48638,11 +48666,6 @@ entities: - type: Transform pos: 118.5,-13.5 parent: 13329 - - uid: 27555 - components: - - type: Transform - pos: 91.5,31.5 - parent: 13329 - uid: 27556 components: - type: Transform @@ -48693,16 +48716,6 @@ entities: - type: Transform pos: 99.5,29.5 parent: 13329 - - uid: 27566 - components: - - type: Transform - pos: 99.5,30.5 - parent: 13329 - - uid: 27567 - components: - - type: Transform - pos: 99.5,31.5 - parent: 13329 - uid: 27568 components: - type: Transform @@ -55488,6 +55501,26 @@ entities: - type: Transform pos: 47.5,10.5 parent: 13329 + - uid: 36089 + components: + - type: Transform + pos: 99.5,33.5 + parent: 13329 + - uid: 36090 + components: + - type: Transform + pos: 100.5,33.5 + parent: 13329 + - uid: 36091 + components: + - type: Transform + pos: 99.5,28.5 + parent: 13329 + - uid: 36092 + components: + - type: Transform + pos: 100.5,28.5 + parent: 13329 - proto: CableApcStack entities: - uid: 12137 @@ -74893,6 +74926,11 @@ entities: - type: Transform pos: 64.5,-32.5 parent: 13329 + - uid: 21534 + components: + - type: Transform + pos: 100.5,28.5 + parent: 13329 - uid: 22913 components: - type: Transform @@ -77081,7 +77119,7 @@ entities: - uid: 27541 components: - type: Transform - pos: 91.5,31.5 + pos: 89.5,-29.5 parent: 13329 - uid: 27542 components: @@ -77148,6 +77186,16 @@ entities: - type: Transform pos: 100.5,31.5 parent: 13329 + - uid: 27555 + components: + - type: Transform + pos: 89.5,-28.5 + parent: 13329 + - uid: 27566 + components: + - type: Transform + pos: 99.5,28.5 + parent: 13329 - uid: 27592 components: - type: Transform @@ -79503,6 +79551,26 @@ entities: - type: Transform pos: 42.5,7.5 parent: 13329 + - uid: 36086 + components: + - type: Transform + pos: 99.5,32.5 + parent: 13329 + - uid: 36087 + components: + - type: Transform + pos: 99.5,33.5 + parent: 13329 + - uid: 36088 + components: + - type: Transform + pos: 100.5,33.5 + parent: 13329 + - uid: 36093 + components: + - type: Transform + pos: 90.5,-28.5 + parent: 13329 - proto: CableMVStack entities: - uid: 26655 @@ -169263,6 +169331,22 @@ entities: rot: 3.141592653589793 rad pos: 100.5,-43.5 parent: 13329 + - uid: 27869 + components: + - type: Transform + pos: 99.5,33.5 + parent: 13329 + - uid: 32597 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 99.5,28.5 + parent: 13329 + - uid: 33914 + components: + - type: Transform + pos: 92.5,33.5 + parent: 13329 - uid: 35388 components: - type: Transform @@ -169275,6 +169359,12 @@ entities: rot: 1.5707963267948966 rad pos: 91.5,-16.5 parent: 13329 + - uid: 35419 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 92.5,28.5 + parent: 13329 - proto: Poweredlight entities: - uid: 1446 @@ -173537,21 +173627,6 @@ entities: parent: 13329 - type: ApcPowerReceiver powerLoad: 0 - - uid: 27869 - components: - - type: Transform - pos: 99.5,33.5 - parent: 13329 - - type: ApcPowerReceiver - powerLoad: 0 - - uid: 27870 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: 92.5,28.5 - parent: 13329 - - type: ApcPowerReceiver - powerLoad: 0 - uid: 27879 components: - type: Transform @@ -194772,10 +194847,10 @@ entities: parent: 13329 - proto: SurveillanceCameraWirelessRouterEntertainment entities: - - uid: 35419 + - uid: 27567 components: - type: Transform - pos: 100.5,30.5 + pos: 100.5,29.5 parent: 13329 - proto: SurveillanceWirelessCameraAnchoredEntertainment entities: @@ -213780,11 +213855,6 @@ entities: - type: Transform pos: 100.5,28.5 parent: 13329 - - uid: 21534 - components: - - type: Transform - pos: 100.5,29.5 - parent: 13329 - uid: 21535 components: - type: Transform @@ -214988,6 +215058,12 @@ entities: - type: Transform pos: 50.5,26.5 parent: 13329 + - uid: 32288 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 101.5,28.5 + parent: 13329 - uid: 32291 components: - type: Transform From 94ff45796727ee32f4e519e9ad3c70fcee63ff7b Mon Sep 17 00:00:00 2001 From: PJBot Date: Mon, 8 Dec 2025 00:36:59 +0000 Subject: [PATCH 056/205] Automatic changelog update --- Resources/Changelog/Changelog.yml | 14 +++++++------- Resources/Changelog/Maps.yml | 21 +++++++++++++++++++++ 2 files changed, 28 insertions(+), 7 deletions(-) diff --git a/Resources/Changelog/Changelog.yml b/Resources/Changelog/Changelog.yml index 7b7f0e3fe2..04f8bb412d 100644 --- a/Resources/Changelog/Changelog.yml +++ b/Resources/Changelog/Changelog.yml @@ -1,11 +1,4 @@ Entries: -- author: Velken - changes: - - message: Ian and McGriff are more fashionable by letting them wear hats and glasses. - type: Add - id: 8767 - time: '2025-07-13T16:11:00.0000000+00:00' - url: https://github.com/space-wizards/space-station-14/pull/38634 - author: Toast_Enjoyer, huaqas changes: - message: The Purchaseable Scurret now comes in a livestock crate instead of a @@ -3924,3 +3917,10 @@ id: 9267 time: '2025-12-07T20:39:49.0000000+00:00' url: https://github.com/space-wizards/space-station-14/pull/41748 +- author: ArtisticRoomba + changes: + - message: On Fland, atomized the LV network for Atmospherics and Telecoms. + type: Fix + id: 9268 + time: '2025-12-08T00:35:49.0000000+00:00' + url: https://github.com/space-wizards/space-station-14/pull/41773 diff --git a/Resources/Changelog/Maps.yml b/Resources/Changelog/Maps.yml index e243e542a7..8024a2d32a 100644 --- a/Resources/Changelog/Maps.yml +++ b/Resources/Changelog/Maps.yml @@ -886,4 +886,25 @@ id: 107 time: '2025-12-07T22:40:48.0000000+00:00' url: https://github.com/space-wizards/space-station-14/pull/41769 +- author: ArtisticRoomba + changes: + - message: On Box, atomized the LV network for Medbay and Telecoms. + type: Fix + id: 108 + time: '2025-12-08T00:34:25.0000000+00:00' + url: https://github.com/space-wizards/space-station-14/pull/41770 +- author: ArtisticRoomba + changes: + - message: On Central Command, beefed up the LV network for Medbay. + type: Fix + id: 109 + time: '2025-12-08T00:35:01.0000000+00:00' + url: https://github.com/space-wizards/space-station-14/pull/41771 +- author: ArtisticRoomba + changes: + - message: On Elkridge, atomized the LV network for Atmospherics. + type: Fix + id: 110 + time: '2025-12-08T00:35:29.0000000+00:00' + url: https://github.com/space-wizards/space-station-14/pull/41772 Order: 2 From 8dc131dec69815f727cea31600413366eadc088c Mon Sep 17 00:00:00 2001 From: ArtisticRoomba <145879011+ArtisticRoomba@users.noreply.github.com> Date: Sun, 7 Dec 2025 17:02:48 -0800 Subject: [PATCH 057/205] fix oasis APC powernet (#41776) --- Resources/Maps/oasis.yml | 134 ++++++++++++++++++++++++++++++++++----- 1 file changed, 117 insertions(+), 17 deletions(-) diff --git a/Resources/Maps/oasis.yml b/Resources/Maps/oasis.yml index cb3c7a4b28..1cefeb666e 100644 --- a/Resources/Maps/oasis.yml +++ b/Resources/Maps/oasis.yml @@ -1,11 +1,11 @@ meta: format: 7 category: Map - engineVersion: 267.3.0 + engineVersion: 268.0.0 forkId: "" forkVersion: "" - time: 11/04/2025 19:50:52 - entityCount: 31151 + time: 12/08/2025 00:21:38 + entityCount: 31169 maps: - 1 grids: @@ -8810,6 +8810,7 @@ entities: - type: BecomesStation id: Oasis - type: ImplicitRoof + - type: ExplosionAirtightGrid - uid: 21002 components: - type: MetaData @@ -10069,6 +10070,7 @@ entities: - type: RadiationGridResistance - type: NavMap - type: ImplicitRoof + - type: ExplosionAirtightGrid - proto: AcousticGuitarInstrument entities: - uid: 1634 @@ -15511,7 +15513,7 @@ entities: pos: -22.5,26.5 parent: 2 - type: Door - secondsUntilStateChange: -245202.89 + secondsUntilStateChange: -245515.03 state: Opening - type: DeviceLinkSource lastSignals: @@ -16367,7 +16369,7 @@ entities: lastSignals: DoorStatus: True - type: Door - secondsUntilStateChange: -344031.53 + secondsUntilStateChange: -344343.7 state: Opening - uid: 6934 components: @@ -16379,7 +16381,7 @@ entities: lastSignals: DoorStatus: True - type: Door - secondsUntilStateChange: -344034.16 + secondsUntilStateChange: -344346.3 state: Opening - uid: 6935 components: @@ -16391,7 +16393,7 @@ entities: lastSignals: DoorStatus: True - type: Door - secondsUntilStateChange: -344033 + secondsUntilStateChange: -344345.16 state: Opening - uid: 6936 components: @@ -16402,7 +16404,7 @@ entities: lastSignals: DoorStatus: True - type: Door - secondsUntilStateChange: -344032.22 + secondsUntilStateChange: -344344.38 state: Opening - proto: AirlockTheatreLocked entities: @@ -18086,6 +18088,9 @@ entities: rot: 1.5707963267948966 rad pos: -20.5,-30.5 parent: 2 + - type: AccessReader + accessListsOriginal: + - - Engineering - type: Fixtures fixtures: {} - uid: 1689 @@ -18103,6 +18108,16 @@ entities: parent: 2 - type: Fixtures fixtures: {} + - uid: 1949 + components: + - type: MetaData + name: Med Hall APC + - type: Transform + rot: -1.5707963267948966 rad + pos: -18.5,-45.5 + parent: 2 + - type: Fixtures + fixtures: {} - uid: 2001 components: - type: Transform @@ -42004,11 +42019,6 @@ entities: - type: Transform pos: -25.5,-44.5 parent: 2 - - uid: 1949 - components: - - type: Transform - pos: -18.5,-39.5 - parent: 2 - uid: 1956 components: - type: Transform @@ -58169,6 +58179,11 @@ entities: - type: Transform pos: -31.5,9.5 parent: 2 + - uid: 28631 + components: + - type: Transform + pos: -18.5,-45.5 + parent: 2 - uid: 28752 components: - type: Transform @@ -72120,6 +72135,46 @@ entities: - type: Transform pos: -2.5,43.5 parent: 2 + - uid: 23739 + components: + - type: Transform + pos: -19.5,-32.5 + parent: 2 + - uid: 23740 + components: + - type: Transform + pos: -20.5,-32.5 + parent: 2 + - uid: 23741 + components: + - type: Transform + pos: -20.5,-33.5 + parent: 2 + - uid: 23742 + components: + - type: Transform + pos: -20.5,-34.5 + parent: 2 + - uid: 23807 + components: + - type: Transform + pos: -20.5,-35.5 + parent: 2 + - uid: 23829 + components: + - type: Transform + pos: -20.5,-36.5 + parent: 2 + - uid: 24120 + components: + - type: Transform + pos: -20.5,-37.5 + parent: 2 + - uid: 24121 + components: + - type: Transform + pos: -20.5,-38.5 + parent: 2 - uid: 24170 components: - type: Transform @@ -72380,6 +72435,51 @@ entities: - type: Transform pos: -31.5,31.5 parent: 2 + - uid: 28619 + components: + - type: Transform + pos: -20.5,-39.5 + parent: 2 + - uid: 28621 + components: + - type: Transform + pos: -20.5,-40.5 + parent: 2 + - uid: 28622 + components: + - type: Transform + pos: -20.5,-41.5 + parent: 2 + - uid: 28623 + components: + - type: Transform + pos: -20.5,-42.5 + parent: 2 + - uid: 28624 + components: + - type: Transform + pos: -20.5,-43.5 + parent: 2 + - uid: 28625 + components: + - type: Transform + pos: -20.5,-44.5 + parent: 2 + - uid: 28628 + components: + - type: Transform + pos: -20.5,-45.5 + parent: 2 + - uid: 28629 + components: + - type: Transform + pos: -19.5,-45.5 + parent: 2 + - uid: 28630 + components: + - type: Transform + pos: -18.5,-45.5 + parent: 2 - uid: 28635 components: - type: Transform @@ -84460,8 +84560,8 @@ entities: pos: -24.5,-20.5 parent: 2 - type: EntityStorage - open: True removedMasks: 28 + open: True - type: Fixtures fixtures: fix1: @@ -100261,7 +100361,7 @@ entities: pos: -13.5,-1.5 parent: 2 - type: Door - secondsUntilStateChange: -335355.53 + secondsUntilStateChange: -335667.7 - type: DeviceNetwork deviceLists: - 18275 @@ -147216,7 +147316,7 @@ entities: pos: 36.5,-35.5 parent: 2 - type: Door - secondsUntilStateChange: -372187.3 + secondsUntilStateChange: -372499.47 state: Opening - uid: 5211 components: @@ -204376,7 +204476,7 @@ entities: pos: 24.5,2.5 parent: 21002 - type: Door - secondsUntilStateChange: -717391.9 + secondsUntilStateChange: -717704 state: Opening - uid: 28863 components: From 4bfa0a6eafb05c21e37591937b016cb8fcc69f52 Mon Sep 17 00:00:00 2001 From: PJBot Date: Mon, 8 Dec 2025 01:03:57 +0000 Subject: [PATCH 058/205] Automatic changelog update --- Resources/Changelog/Changelog.yml | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/Resources/Changelog/Changelog.yml b/Resources/Changelog/Changelog.yml index 04f8bb412d..4c79aa6391 100644 --- a/Resources/Changelog/Changelog.yml +++ b/Resources/Changelog/Changelog.yml @@ -1,12 +1,4 @@ Entries: -- author: Toast_Enjoyer, huaqas - changes: - - message: The Purchaseable Scurret now comes in a livestock crate instead of a - plastic one. Wawa! - type: Fix - id: 8768 - time: '2025-07-13T16:48:39.0000000+00:00' - url: https://github.com/space-wizards/space-station-14/pull/38951 - author: lzk228 changes: - message: Changed ocarina's size from Normal to Small @@ -3924,3 +3916,10 @@ id: 9268 time: '2025-12-08T00:35:49.0000000+00:00' url: https://github.com/space-wizards/space-station-14/pull/41773 +- author: ArtisticRoomba + changes: + - message: On Oasis, atomized the LV powernet for Chemistry/Medical. + type: Fix + id: 9269 + time: '2025-12-08T01:02:48.0000000+00:00' + url: https://github.com/space-wizards/space-station-14/pull/41776 From 36e009f21ecb57fe6269a51c2a6cc4b7f07074e5 Mon Sep 17 00:00:00 2001 From: Princess Cheeseballs <66055347+Princess-Cheeseballs@users.noreply.github.com> Date: Sun, 7 Dec 2025 17:10:28 -0800 Subject: [PATCH 059/205] Fix Bible Fast Healing (#41777) * broble * slightly cleaner I guess actually * im straight refactoring it, and by it, i mean.... my entity --------- Co-authored-by: Princess Cheeseballs <66055347+Pronana@users.noreply.github.com> Co-authored-by: ArtisticRoomba <145879011+ArtisticRoomba@users.noreply.github.com> --- Content.Server/Bible/BibleSystem.cs | 34 ++++++++++++++++------------- 1 file changed, 19 insertions(+), 15 deletions(-) diff --git a/Content.Server/Bible/BibleSystem.cs b/Content.Server/Bible/BibleSystem.cs index eb11a465bd..813d808dbc 100644 --- a/Content.Server/Bible/BibleSystem.cs +++ b/Content.Server/Bible/BibleSystem.cs @@ -114,15 +114,18 @@ namespace Content.Server.Bible return; } + var userEnt = Identity.Entity(args.User, EntityManager); + var targetEnt = Identity.Entity(args.Target.Value, EntityManager); + // This only has a chance to fail if the target is not wearing anything on their head and is not a familiar. - if (!_invSystem.TryGetSlotEntity(args.Target.Value, "head", out var _) && !HasComp(args.Target.Value)) + if (!_invSystem.TryGetSlotEntity(args.Target.Value, "head", out _) && !HasComp(args.Target.Value)) { if (_random.Prob(component.FailChance)) { - var othersFailMessage = Loc.GetString(component.LocPrefix + "-heal-fail-others", ("user", Identity.Entity(args.User, EntityManager)), ("target", Identity.Entity(args.Target.Value, EntityManager)), ("bible", uid)); + var othersFailMessage = Loc.GetString(component.LocPrefix + "-heal-fail-others", ("user", userEnt), ("target", targetEnt), ("bible", uid)); _popupSystem.PopupEntity(othersFailMessage, args.User, Filter.PvsExcept(args.User), true, PopupType.SmallCaution); - var selfFailMessage = Loc.GetString(component.LocPrefix + "-heal-fail-self", ("target", Identity.Entity(args.Target.Value, EntityManager)), ("bible", uid)); + var selfFailMessage = Loc.GetString(component.LocPrefix + "-heal-fail-self", ("target", targetEnt), ("bible", uid)); _popupSystem.PopupEntity(selfFailMessage, args.User, args.User, PopupType.MediumCaution); _audio.PlayPvs(component.BibleHitSound, args.User); @@ -132,24 +135,25 @@ namespace Content.Server.Bible } } + string othersMessage; + string selfMessage; + if (_damageableSystem.TryChangeDamage(args.Target.Value, component.Damage, true, origin: uid)) { - var othersMessage = Loc.GetString(component.LocPrefix + "-heal-success-none-others", ("user", Identity.Entity(args.User, EntityManager)), ("target", Identity.Entity(args.Target.Value, EntityManager)), ("bible", uid)); - _popupSystem.PopupEntity(othersMessage, args.User, Filter.PvsExcept(args.User), true, PopupType.Medium); + othersMessage = Loc.GetString(component.LocPrefix + "-heal-success-others", ("user", userEnt), ("target", targetEnt), ("bible", uid)); + selfMessage = Loc.GetString(component.LocPrefix + "-heal-success-self", ("target", targetEnt), ("bible", uid)); - var selfMessage = Loc.GetString(component.LocPrefix + "-heal-success-none-self", ("target", Identity.Entity(args.Target.Value, EntityManager)), ("bible", uid)); - _popupSystem.PopupEntity(selfMessage, args.User, args.User, PopupType.Large); - } - else - { - var othersMessage = Loc.GetString(component.LocPrefix + "-heal-success-others", ("user", Identity.Entity(args.User, EntityManager)), ("target", Identity.Entity(args.Target.Value, EntityManager)), ("bible", uid)); - _popupSystem.PopupEntity(othersMessage, args.User, Filter.PvsExcept(args.User), true, PopupType.Medium); - - var selfMessage = Loc.GetString(component.LocPrefix + "-heal-success-self", ("target", Identity.Entity(args.Target.Value, EntityManager)), ("bible", uid)); - _popupSystem.PopupEntity(selfMessage, args.User, args.User, PopupType.Large); _audio.PlayPvs(component.HealSoundPath, args.User); _delay.TryResetDelay((uid, useDelay)); } + else + { + othersMessage = Loc.GetString(component.LocPrefix + "-heal-success-none-others", ("user", userEnt), ("target", targetEnt), ("bible", uid)); + selfMessage = Loc.GetString(component.LocPrefix + "-heal-success-none-self", ("target", targetEnt), ("bible", uid)); + } + + _popupSystem.PopupEntity(othersMessage, args.User, Filter.PvsExcept(args.User), true, PopupType.Medium); + _popupSystem.PopupEntity(selfMessage, args.User, args.User, PopupType.Large); } private void AddSummonVerb(EntityUid uid, SummonableComponent component, GetVerbsEvent args) From 5fa2028ce978ff0e0154281fa5dd3045457b7f4a Mon Sep 17 00:00:00 2001 From: PJBot Date: Mon, 8 Dec 2025 01:24:10 +0000 Subject: [PATCH 060/205] Automatic changelog update --- Resources/Changelog/Changelog.yml | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/Resources/Changelog/Changelog.yml b/Resources/Changelog/Changelog.yml index 4c79aa6391..a3edc13ded 100644 --- a/Resources/Changelog/Changelog.yml +++ b/Resources/Changelog/Changelog.yml @@ -1,11 +1,4 @@ Entries: -- author: lzk228 - changes: - - message: Changed ocarina's size from Normal to Small - type: Tweak - id: 8769 - time: '2025-07-13T19:31:44.0000000+00:00' - url: https://github.com/space-wizards/space-station-14/pull/38971 - author: ToastEnjoyer changes: - message: The nukeop war declarator is now syndicate contraband. @@ -3923,3 +3916,10 @@ id: 9269 time: '2025-12-08T01:02:48.0000000+00:00' url: https://github.com/space-wizards/space-station-14/pull/41776 +- author: Princess-Cheeseballs + changes: + - message: Bible has been restored to its normal healing rate. + type: Fix + id: 9270 + time: '2025-12-08T01:23:03.0000000+00:00' + url: https://github.com/space-wizards/space-station-14/pull/41777 From fde6129e5f79d996342cd10e2cc0ab4aed8a2d56 Mon Sep 17 00:00:00 2001 From: UpAndLeaves <92269094+Alpha-Two@users.noreply.github.com> Date: Mon, 8 Dec 2025 01:37:06 +0000 Subject: [PATCH 061/205] Allow removing species from the RNG pool of a new player's initial auto-generated character (#41678) * First commit * Fix it! * Requested Changes --- Content.Server/GameTicking/GameTicker.RoundFlow.cs | 4 +++- .../Preferences/Managers/ServerPreferencesManager.cs | 4 +++- Content.Shared/CCVar/CCVars.Ic.cs | 7 +++++++ Resources/Prototypes/Species/species_weights.yml | 3 +++ 4 files changed, 16 insertions(+), 2 deletions(-) diff --git a/Content.Server/GameTicking/GameTicker.RoundFlow.cs b/Content.Server/GameTicking/GameTicker.RoundFlow.cs index 6d2f3fac52..00b0c0ff32 100644 --- a/Content.Server/GameTicking/GameTicker.RoundFlow.cs +++ b/Content.Server/GameTicking/GameTicker.RoundFlow.cs @@ -394,7 +394,9 @@ namespace Content.Server.GameTicking } else { - profile = HumanoidCharacterProfile.Random(); + var speciesToBlacklist = + new HashSet(_cfg.GetCVar(CCVars.ICNewAccountSpeciesBlacklist).Split(",")); + profile = HumanoidCharacterProfile.Random(speciesToBlacklist); } readyPlayerProfiles.Add(userId, profile); } diff --git a/Content.Server/Preferences/Managers/ServerPreferencesManager.cs b/Content.Server/Preferences/Managers/ServerPreferencesManager.cs index 7ece769d54..10380f6b7f 100644 --- a/Content.Server/Preferences/Managers/ServerPreferencesManager.cs +++ b/Content.Server/Preferences/Managers/ServerPreferencesManager.cs @@ -334,7 +334,9 @@ namespace Content.Server.Preferences.Managers var prefs = await _db.GetPlayerPreferencesAsync(userId, cancel); if (prefs is null) { - return await _db.InitPrefsAsync(userId, HumanoidCharacterProfile.Random(), cancel); + var speciesToBlacklist = + new HashSet(_cfg.GetCVar(CCVars.ICNewAccountSpeciesBlacklist).Split(",")); + return await _db.InitPrefsAsync(userId, HumanoidCharacterProfile.Random(speciesToBlacklist), cancel); } return prefs; diff --git a/Content.Shared/CCVar/CCVars.Ic.cs b/Content.Shared/CCVar/CCVars.Ic.cs index 5f8d108a22..a075bb0144 100644 --- a/Content.Shared/CCVar/CCVars.Ic.cs +++ b/Content.Shared/CCVar/CCVars.Ic.cs @@ -65,6 +65,13 @@ public sealed partial class CCVars public static readonly CVarDef ICRandomSpeciesWeights = CVarDef.Create("ic.random_species_weights", "SpeciesWeights", CVar.SERVER); + /// + /// The list of species that will NOT be given to new account joins when they are assigned a random character. + /// This only affects the first time a character is made for an account, nothing else. + /// + public static readonly CVarDef ICNewAccountSpeciesBlacklist = + CVarDef.Create("ic.blacklist_species_new_account", "Diona,Vulpkanin,Vox,SlimePerson", CVar.SERVER); + /// /// Control displaying SSD indicators near players /// diff --git a/Resources/Prototypes/Species/species_weights.yml b/Resources/Prototypes/Species/species_weights.yml index e226d2064a..a516795ffb 100644 --- a/Resources/Prototypes/Species/species_weights.yml +++ b/Resources/Prototypes/Species/species_weights.yml @@ -5,5 +5,8 @@ Human: 5 Reptilian: 4 SlimePerson: 4 + Moth: 4 + Dwarf: 2 Diona: 2 + Vox: 1 Vulpkanin: 4 From 25bb98c1a2eb6568f76479fde63d518f1c8493c0 Mon Sep 17 00:00:00 2001 From: PJBot Date: Mon, 8 Dec 2025 01:50:49 +0000 Subject: [PATCH 062/205] Automatic changelog update --- Resources/Changelog/Changelog.yml | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/Resources/Changelog/Changelog.yml b/Resources/Changelog/Changelog.yml index a3edc13ded..1f7c4ed007 100644 --- a/Resources/Changelog/Changelog.yml +++ b/Resources/Changelog/Changelog.yml @@ -1,11 +1,4 @@ Entries: -- author: ToastEnjoyer - changes: - - message: The nukeop war declarator is now syndicate contraband. - type: Tweak - id: 8770 - time: '2025-07-13T20:50:53.0000000+00:00' - url: https://github.com/space-wizards/space-station-14/pull/38972 - author: Flareguy changes: - message: Added several new vox customization options, including additional tails, @@ -3923,3 +3916,12 @@ id: 9270 time: '2025-12-08T01:23:03.0000000+00:00' url: https://github.com/space-wizards/space-station-14/pull/41777 +- author: UpAndLeaves + changes: + - message: New players no longer have a chance of being Dionae, Vox, Slime People, + or Vulpkanine when joining for the first time. They can still manually select + these species. + type: Tweak + id: 9271 + time: '2025-12-08T01:49:42.0000000+00:00' + url: https://github.com/space-wizards/space-station-14/pull/41678 From f1443f0cd7a26747582e2f204309b02b17138827 Mon Sep 17 00:00:00 2001 From: sleepyyapril <123355664+sleepyyapril@users.noreply.github.com> Date: Mon, 8 Dec 2025 00:20:42 -0400 Subject: [PATCH 063/205] TriggerOn(Un)Embed (#41720) * feat: TriggerOn(Un)Embed * feat: StopEmbedEvent * fix: forgot initialize * chore: better naming * chore: oops * Update Content.Shared/Trigger/Components/Triggers/TriggerOnUnembedComponent.cs Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com> * Update Content.Shared/Projectiles/EmbedEvents.cs Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com> * review im lazy Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com> * Update Content.Shared/Trigger/Components/Triggers/TriggerOnEmbedComponent.cs * chore: docs * comment change --------- Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com> Co-authored-by: iaada --- Content.Shared/Projectiles/EmbedEvent.cs | 15 -------- Content.Shared/Projectiles/EmbedEvents.cs | 35 +++++++++++++++++++ .../Projectiles/SharedProjectileSystem.cs | 5 +++ .../Triggers/TriggerOnEmbedComponent.cs | 18 ++++++++++ .../Triggers/TriggerOnUnembedComponent.cs | 20 +++++++++++ .../Trigger/Systems/TriggerOnEmbedSystem.cs | 31 ++++++++++++++++ 6 files changed, 109 insertions(+), 15 deletions(-) delete mode 100644 Content.Shared/Projectiles/EmbedEvent.cs create mode 100644 Content.Shared/Projectiles/EmbedEvents.cs create mode 100644 Content.Shared/Trigger/Components/Triggers/TriggerOnEmbedComponent.cs create mode 100644 Content.Shared/Trigger/Components/Triggers/TriggerOnUnembedComponent.cs create mode 100644 Content.Shared/Trigger/Systems/TriggerOnEmbedSystem.cs diff --git a/Content.Shared/Projectiles/EmbedEvent.cs b/Content.Shared/Projectiles/EmbedEvent.cs deleted file mode 100644 index 521a691f45..0000000000 --- a/Content.Shared/Projectiles/EmbedEvent.cs +++ /dev/null @@ -1,15 +0,0 @@ -namespace Content.Shared.Projectiles; - -/// -/// Raised directed on an entity when it embeds in another entity. -/// -[ByRefEvent] -public readonly record struct EmbedEvent(EntityUid? Shooter, EntityUid Embedded) -{ - public readonly EntityUid? Shooter = Shooter; - - /// - /// Entity that is embedded in. - /// - public readonly EntityUid Embedded = Embedded; -} diff --git a/Content.Shared/Projectiles/EmbedEvents.cs b/Content.Shared/Projectiles/EmbedEvents.cs new file mode 100644 index 0000000000..6f357a33a1 --- /dev/null +++ b/Content.Shared/Projectiles/EmbedEvents.cs @@ -0,0 +1,35 @@ +namespace Content.Shared.Projectiles; + +/// +/// Raised directed on an entity when it embeds in another entity. +/// +[ByRefEvent] +public readonly record struct EmbedEvent(EntityUid? Shooter, EntityUid Embedded) +{ + /// + /// The entity that threw/shot the embed, if any. + /// + public readonly EntityUid? Shooter = Shooter; + + /// + /// Entity that is embedded in. + /// + public readonly EntityUid Embedded = Embedded; +} + +/// +/// Raised directed on an entity when it stops being embedded in another entity. +/// +[ByRefEvent] +public readonly record struct EmbedDetachEvent(EntityUid? Detacher, EntityUid Embedded) +{ + /// + /// The entity that detached the embed, if any. + /// + public readonly EntityUid? Detacher = Detacher; + + /// + /// Entity that it is embedded in. + /// + public readonly EntityUid Embedded = Embedded; +} diff --git a/Content.Shared/Projectiles/SharedProjectileSystem.cs b/Content.Shared/Projectiles/SharedProjectileSystem.cs index 9a44ca545d..c5aaf3135d 100644 --- a/Content.Shared/Projectiles/SharedProjectileSystem.cs +++ b/Content.Shared/Projectiles/SharedProjectileSystem.cs @@ -135,6 +135,8 @@ public abstract partial class SharedProjectileSystem : EntitySystem if (component.EmbeddedIntoUid == null) return; // the entity is not embedded, so do nothing + var embeddedInto = component.EmbeddedIntoUid; + if (TryComp(component.EmbeddedIntoUid.Value, out var embeddedContainer)) { embeddedContainer.EmbeddedObjects.Remove(uid); @@ -168,6 +170,9 @@ public abstract partial class SharedProjectileSystem : EntitySystem Dirty(uid, projectile); } + var ev = new EmbedDetachEvent(user, embeddedInto.Value); + RaiseLocalEvent(uid, ref ev); + if (user != null) { // Land it just coz uhhh yeah diff --git a/Content.Shared/Trigger/Components/Triggers/TriggerOnEmbedComponent.cs b/Content.Shared/Trigger/Components/Triggers/TriggerOnEmbedComponent.cs new file mode 100644 index 0000000000..e298d3e378 --- /dev/null +++ b/Content.Shared/Trigger/Components/Triggers/TriggerOnEmbedComponent.cs @@ -0,0 +1,18 @@ +using Robust.Shared.GameStates; + +namespace Content.Shared.Trigger.Components.Triggers; + +/// +/// Triggers when this entity first embeds into something. +/// User is the item that was embedded or the actual embed depending on +/// +[RegisterComponent, NetworkedComponent, AutoGenerateComponentState] +public sealed partial class TriggerOnEmbedComponent : BaseTriggerOnXComponent +{ + /// + /// If false the trigger user will be the mob that shot the embeddable projectile. + /// If true, the trigger user will be the entity the projectile was embedded into. + /// + [DataField, AutoNetworkedField] + public bool UserIsEmbeddedInto; +} diff --git a/Content.Shared/Trigger/Components/Triggers/TriggerOnUnembedComponent.cs b/Content.Shared/Trigger/Components/Triggers/TriggerOnUnembedComponent.cs new file mode 100644 index 0000000000..ba0dd801f5 --- /dev/null +++ b/Content.Shared/Trigger/Components/Triggers/TriggerOnUnembedComponent.cs @@ -0,0 +1,20 @@ +using Content.Shared.Trigger.Systems; +using Robust.Shared.GameStates; + +namespace Content.Shared.Trigger.Components.Triggers; + +/// +/// Triggers when this entity gets un-embedded from something. +/// User is the item that was embedded or the actual embed depending on +/// Handled by +/// +[RegisterComponent, NetworkedComponent, AutoGenerateComponentState] +public sealed partial class TriggerOnUnembedComponent : BaseTriggerOnXComponent +{ + /// + /// If false the trigger user will be the one that detaches the embedded entity. + /// If true, the trigger user will be the entity the projectile was embedded into. + /// + [DataField, AutoNetworkedField] + public bool UserIsEmbeddedInto; +} diff --git a/Content.Shared/Trigger/Systems/TriggerOnEmbedSystem.cs b/Content.Shared/Trigger/Systems/TriggerOnEmbedSystem.cs new file mode 100644 index 0000000000..ade48c94a7 --- /dev/null +++ b/Content.Shared/Trigger/Systems/TriggerOnEmbedSystem.cs @@ -0,0 +1,31 @@ +using Content.Shared.Projectiles; +using Content.Shared.Trigger.Components.Triggers; + +namespace Content.Shared.Trigger.Systems; + +/// +/// This handles subscriptions. +/// +public sealed class TriggerOnEmbedSystem : TriggerOnXSystem +{ + /// + public override void Initialize() + { + base.Initialize(); + + SubscribeLocalEvent(OnEmbed); + SubscribeLocalEvent(OnStopEmbed); + } + + private void OnEmbed(Entity ent, ref EmbedEvent args) + { + var user = ent.Comp.UserIsEmbeddedInto ? args.Embedded : args.Shooter; + Trigger.Trigger(ent, user, ent.Comp.KeyOut); + } + + private void OnStopEmbed(Entity ent, ref EmbedDetachEvent args) + { + var user = ent.Comp.UserIsEmbeddedInto ? args.Embedded : args.Detacher; + Trigger.Trigger(ent, user, ent.Comp.KeyOut); + } +} From 32c1c44367baa69bfa0c792e0729cfc3c04749cd Mon Sep 17 00:00:00 2001 From: ArtisticRoomba <145879011+ArtisticRoomba@users.noreply.github.com> Date: Sun, 7 Dec 2025 21:08:48 -0800 Subject: [PATCH 064/205] fix CL AGAIN (#41782) --- Resources/Changelog/Changelog.yml | 18 ++---------------- Resources/Changelog/Maps.yml | 14 ++++++++++++++ 2 files changed, 16 insertions(+), 16 deletions(-) diff --git a/Resources/Changelog/Changelog.yml b/Resources/Changelog/Changelog.yml index 1f7c4ed007..97116555b9 100644 --- a/Resources/Changelog/Changelog.yml +++ b/Resources/Changelog/Changelog.yml @@ -3895,25 +3895,11 @@ id: 9267 time: '2025-12-07T20:39:49.0000000+00:00' url: https://github.com/space-wizards/space-station-14/pull/41748 -- author: ArtisticRoomba - changes: - - message: On Fland, atomized the LV network for Atmospherics and Telecoms. - type: Fix - id: 9268 - time: '2025-12-08T00:35:49.0000000+00:00' - url: https://github.com/space-wizards/space-station-14/pull/41773 -- author: ArtisticRoomba - changes: - - message: On Oasis, atomized the LV powernet for Chemistry/Medical. - type: Fix - id: 9269 - time: '2025-12-08T01:02:48.0000000+00:00' - url: https://github.com/space-wizards/space-station-14/pull/41776 - author: Princess-Cheeseballs changes: - message: Bible has been restored to its normal healing rate. type: Fix - id: 9270 + id: 9268 time: '2025-12-08T01:23:03.0000000+00:00' url: https://github.com/space-wizards/space-station-14/pull/41777 - author: UpAndLeaves @@ -3922,6 +3908,6 @@ or Vulpkanine when joining for the first time. They can still manually select these species. type: Tweak - id: 9271 + id: 9269 time: '2025-12-08T01:49:42.0000000+00:00' url: https://github.com/space-wizards/space-station-14/pull/41678 diff --git a/Resources/Changelog/Maps.yml b/Resources/Changelog/Maps.yml index 8024a2d32a..3f2979f6eb 100644 --- a/Resources/Changelog/Maps.yml +++ b/Resources/Changelog/Maps.yml @@ -907,4 +907,18 @@ id: 110 time: '2025-12-08T00:35:29.0000000+00:00' url: https://github.com/space-wizards/space-station-14/pull/41772 +- author: ArtisticRoomba + changes: + - message: On Fland, atomized the LV network for Atmospherics and Telecoms. + type: Fix + id: 111 + time: '2025-12-08T00:35:49.0000000+00:00' + url: https://github.com/space-wizards/space-station-14/pull/41773 +- author: ArtisticRoomba + changes: + - message: On Oasis, atomized the LV powernet for Chemistry/Medical. + type: Fix + id: 112 + time: '2025-12-08T01:02:48.0000000+00:00' + url: https://github.com/space-wizards/space-station-14/pull/41776 Order: 2 From 0031beca4b63e7f3107c97299fc74fdac6c6c3e4 Mon Sep 17 00:00:00 2001 From: slarticodefast <161409025+slarticodefast@users.noreply.github.com> Date: Mon, 8 Dec 2025 11:35:11 +0100 Subject: [PATCH 065/205] Reapply "Trip APCs when they exceed a power limit (#41377)" (#41789) Revert "Merge stable into master" --- Content.Client/Power/APC/UI/ApcMenu.xaml | 2 +- Content.Client/Power/APC/UI/ApcMenu.xaml.cs | 9 ++- .../Tests/Power/StationPowerTests.cs | 74 +++++++++++++++---- .../Power/Components/ApcComponent.cs | 28 ++++++- .../Power/EntitySystems/ApcSystem.cs | 34 ++++++++- Content.Shared/APC/SharedApc.cs | 12 ++- Resources/Locale/en-US/ui/power-apc.ftl | 3 +- .../Syndicate_Gadgets/singularity_beacon.yml | 2 +- 8 files changed, 137 insertions(+), 27 deletions(-) diff --git a/Content.Client/Power/APC/UI/ApcMenu.xaml b/Content.Client/Power/APC/UI/ApcMenu.xaml index 4c14dcc0ad..682aea55d2 100644 --- a/Content.Client/Power/APC/UI/ApcMenu.xaml +++ b/Content.Client/Power/APC/UI/ApcMenu.xaml @@ -19,7 +19,7 @@ [Prototype] -public sealed partial class AlertPrototype : IPrototype +public sealed partial class AlertPrototype : IPrototype, IInheritingPrototype { + /// + [ParentDataField(typeof(AbstractPrototypeIdArraySerializer))] + public string[]? Parents { get; private set; } + + /// + [NeverPushInheritance] + [AbstractDataField] + public bool Abstract { get; private set; } + /// /// Type of alert, no 2 alert prototypes should have the same one. /// diff --git a/Resources/Prototypes/Alerts/alerts.yml b/Resources/Prototypes/Alerts/alerts.yml index 5c70b7e5f1..71201611d2 100644 --- a/Resources/Prototypes/Alerts/alerts.yml +++ b/Resources/Prototypes/Alerts/alerts.yml @@ -295,6 +295,11 @@ description: alerts-no-battery-desc clientHandled: true # the power cell battery is read on the client so that we don't have to periodically network the charge +- type: alert + parent: BorgBattery + id: AiBattery + clientHandled: false # the station AI does not have a predicted battery, so we need to send the alert from the server + - type: alert id: Internals category: Internals From 41042fcfb78b83f9d4f595b32484853795ce5dc3 Mon Sep 17 00:00:00 2001 From: PJBot Date: Tue, 16 Dec 2025 19:01:35 +0000 Subject: [PATCH 179/205] Automatic changelog update --- Resources/Changelog/Changelog.yml | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/Resources/Changelog/Changelog.yml b/Resources/Changelog/Changelog.yml index 9dfa8c643b..1e0225a113 100644 --- a/Resources/Changelog/Changelog.yml +++ b/Resources/Changelog/Changelog.yml @@ -1,11 +1,4 @@ Entries: -- author: B-Kirill - changes: - - message: The AI eye now has a postscript with the name of AI itself. - type: Add - id: 8806 - time: '2025-07-24T11:24:19.0000000+00:00' - url: https://github.com/space-wizards/space-station-14/pull/39177 - author: SlamBamActionman changes: - message: Potassium-water explosion damage scaling has been tweaked to be less @@ -3921,3 +3914,10 @@ id: 9306 time: '2025-12-16T18:45:19.0000000+00:00' url: https://github.com/space-wizards/space-station-14/pull/41566 +- author: slarticodefast + changes: + - message: Fixed the station AI's battery alert not updating. + type: Fix + id: 9307 + time: '2025-12-16T19:00:27.0000000+00:00' + url: https://github.com/space-wizards/space-station-14/pull/41879 From 19126949c37ae7328c6f7c091848cdaebad3809d Mon Sep 17 00:00:00 2001 From: slarticodefast <161409025+slarticodefast@users.noreply.github.com> Date: Tue, 16 Dec 2025 20:19:37 +0100 Subject: [PATCH 180/205] wallmount debug overlay (#38495) * wallmount debug overlay * make circles a little smoother * add permissions * Update Resources/Locale/en-US/commands/show-wallmounts-command.ftl Co-authored-by: Pok <113675512+Pok27@users.noreply.github.com> * fix --------- Co-authored-by: Pok <113675512+Pok27@users.noreply.github.com> Co-authored-by: ArtisticRoomba <145879011+ArtisticRoomba@users.noreply.github.com> --- .../Commands/ShowWallmountsCommand.cs | 24 ++++++++ Content.Client/Wall/WallmountDebugOverlay.cs | 58 +++++++++++++++++++ .../commands/show-wallmounts-command.ftl | 3 + Resources/clientCommandPerms.yml | 2 + 4 files changed, 87 insertions(+) create mode 100644 Content.Client/Commands/ShowWallmountsCommand.cs create mode 100644 Content.Client/Wall/WallmountDebugOverlay.cs create mode 100644 Resources/Locale/en-US/commands/show-wallmounts-command.ftl diff --git a/Content.Client/Commands/ShowWallmountsCommand.cs b/Content.Client/Commands/ShowWallmountsCommand.cs new file mode 100644 index 0000000000..d44c13911b --- /dev/null +++ b/Content.Client/Commands/ShowWallmountsCommand.cs @@ -0,0 +1,24 @@ +using Content.Client.Wall; +using Robust.Client.Graphics; +using Robust.Shared.Console; + +namespace Content.Client.Commands; + +/// +/// Shows the area in which entities with can be interacted from. +/// +public sealed class ShowWallmountsCommand : LocalizedCommands +{ + [Dependency] private readonly IOverlayManager _overlay = default!; + + public override string Command => "showwallmounts"; + + public override void Execute(IConsoleShell shell, string argStr, string[] args) + { + var existing = _overlay.RemoveOverlay(); + if (!existing) + _overlay.AddOverlay(new WallmountDebugOverlay()); + + shell.WriteLine(Loc.GetString("cmd-showwallmounts-status", ("status", !existing))); + } +} diff --git a/Content.Client/Wall/WallmountDebugOverlay.cs b/Content.Client/Wall/WallmountDebugOverlay.cs new file mode 100644 index 0000000000..02fd9ebeec --- /dev/null +++ b/Content.Client/Wall/WallmountDebugOverlay.cs @@ -0,0 +1,58 @@ +using Content.Shared.Interaction; +using Content.Shared.Wall; +using Robust.Client.Graphics; +using Robust.Shared.Enums; +using System.Numerics; + +namespace Content.Client.Wall; + +/// +/// Shows the area in which entities with can be interacted from. +/// +public sealed class WallmountDebugOverlay : Overlay +{ + [Dependency] private readonly IEntityManager _entManager = default!; + private readonly SharedTransformSystem _transform; + private readonly EntityLookupSystem _lookup; + private readonly HashSet> _intersecting = []; + + public override OverlaySpace Space => OverlaySpace.WorldSpace; + + public WallmountDebugOverlay() + { + IoCManager.InjectDependencies(this); + + _transform = _entManager.System(); + _lookup = _entManager.System(); + } + + protected override void Draw(in OverlayDrawArgs args) + { + _intersecting.Clear(); + _lookup.GetEntitiesIntersecting(args.MapId, args.WorldBounds, _intersecting); + foreach (var ent in _intersecting) + { + var (worldPos, worldRot) = _transform.GetWorldPositionRotation(ent.Owner); + DrawArc(args.WorldHandle, worldPos, SharedInteractionSystem.InteractionRange, worldRot + ent.Comp.Direction, ent.Comp.Arc); + } + } + + private static void DrawArc(DrawingHandleWorld handle, Vector2 position, float radius, Angle rot, Angle arc) + { + // 32 segments for a full circle, but 2 at least + var segments = Math.Max((int)(arc.Theta / Math.Tau * 32), 2); + var step = arc.Theta / (segments - 1); + var verts = new Vector2[segments + 1]; + + verts[0] = position; + for (var i = 0; i < segments; i++) + { + var angle = (float)(-arc.Theta / 2 + i * step - rot.Theta + Math.PI); + var pos = new Vector2(MathF.Sin(angle), MathF.Cos(angle)); + + verts[i + 1] = position + pos * radius; + } + + handle.DrawPrimitives(DrawPrimitiveTopology.TriangleFan, verts, Color.Green.WithAlpha(0.5f)); + } +} diff --git a/Resources/Locale/en-US/commands/show-wallmounts-command.ftl b/Resources/Locale/en-US/commands/show-wallmounts-command.ftl new file mode 100644 index 0000000000..062a51d964 --- /dev/null +++ b/Resources/Locale/en-US/commands/show-wallmounts-command.ftl @@ -0,0 +1,3 @@ +cmd-showwallmounts-desc = Toggles showing wallmount interaction areas. +cmd-showwallmounts-help = Usage: {$command} +cmd-showwallmounts-status = Set wallmount debug overlay to {$status}. diff --git a/Resources/clientCommandPerms.yml b/Resources/clientCommandPerms.yml index a177bc5fe1..9b086f6fdf 100644 --- a/Resources/clientCommandPerms.yml +++ b/Resources/clientCommandPerms.yml @@ -73,6 +73,7 @@ - localdelete - fullstatereset - dumpentities + - showwallmounts - showaccessreaders - quickinspect @@ -84,6 +85,7 @@ - showsubfloorforever - toggleautosave - toggledecals + - showwallmounts - showaccessreaders - Flags: QUERY From f079ec6233eeb4dd0db1db87487014e539d7524f Mon Sep 17 00:00:00 2001 From: ArtisticRoomba <145879011+ArtisticRoomba@users.noreply.github.com> Date: Tue, 16 Dec 2025 12:37:27 -0800 Subject: [PATCH 181/205] Fix destructible benchmark OOMing (#41880) * not working * fix --- Content.Benchmarks/DestructibleBenchmark.cs | 43 ++++++++++++++++++--- 1 file changed, 37 insertions(+), 6 deletions(-) diff --git a/Content.Benchmarks/DestructibleBenchmark.cs b/Content.Benchmarks/DestructibleBenchmark.cs index 1b54bacca0..aa759c35fc 100644 --- a/Content.Benchmarks/DestructibleBenchmark.cs +++ b/Content.Benchmarks/DestructibleBenchmark.cs @@ -51,6 +51,8 @@ public class DestructibleBenchmark private readonly List> _damageables = new(); private readonly List> _destructbiles = new(); + private TestMapData _currentMapData = default!; + private DamageSpecifier _damage; private TestPair _pair = default!; @@ -70,8 +72,6 @@ public class DestructibleBenchmark _pair = await PoolManager.GetServerClient(); var server = _pair.Server; - var mapdata = await _pair.CreateTestMap(); - _entMan = server.ResolveDependency(); _protoMan = server.ResolveDependency(); _random = server.ResolveDependency(); @@ -86,19 +86,25 @@ public class DestructibleBenchmark _damage = new DamageSpecifier(type, DamageAmount); _random.SetSeed(69420); // Randomness needs to be deterministic for benchmarking. + } + [IterationSetup] + public void IterationSetup() + { var plating = _tileDefMan[TileRef].TileId; + var server = _pair.Server; + _currentMapData = _pair.CreateTestMap().GetAwaiter().GetResult(); // We make a rectangular grid of destructible entities, and then damage them all simultaneously to stress test the system. // Needed for managing the performance of destructive effects and damage application. - await server.WaitPost(() => + server.WaitPost(() => { // Set up a thin line of tiles to place our objects on. They should be anchored for a "realistic" scenario... for (var x = 0; x < EntityCount; x++) { for (var y = 0; y < _prototypes.Length; y++) { - _map.SetTile(mapdata.Grid, mapdata.Grid, new Vector2i(x, y), new Tile(plating)); + _map.SetTile(_currentMapData.Grid, _currentMapData.Grid, new Vector2i(x, y), new Tile(plating)); } } @@ -107,7 +113,7 @@ public class DestructibleBenchmark var y = 0; foreach (var protoId in _prototypes) { - var coords = new EntityCoordinates(mapdata.Grid, x + 0.5f, y + 0.5f); + var coords = new EntityCoordinates(_currentMapData.Grid, x + 0.5f, y + 0.5f); _entMan.SpawnEntity(protoId, coords); y++; } @@ -115,12 +121,17 @@ public class DestructibleBenchmark var query = _entMan.EntityQueryEnumerator(); + _destructbiles.EnsureCapacity(EntityCount); + _damageables.EnsureCapacity(EntityCount); + while (query.MoveNext(out var uid, out var damageable, out var destructible)) { _damageables.Add((uid, damageable)); _destructbiles.Add((uid, damageable, destructible)); } - }); + }) + .GetAwaiter() + .GetResult(); } [Benchmark] @@ -150,6 +161,26 @@ public class DestructibleBenchmark }); } + [IterationCleanup] + public void IterationCleanupAsync() + { + // We need to nuke the entire map and respawn everything as some destructible effects + // spawn entities and whatnot. + _pair.Server.WaitPost(() => + { + _map.QueueDeleteMap(_currentMapData.MapId); + }) + .Wait(); + + // Deletion of entities is often queued (QueueDel) which must be processed by running ticks + // or else it will grow infinitely and leak memory. + _pair.Server.WaitRunTicks(2) + .GetAwaiter() + .GetResult(); + + _destructbiles.Clear(); + _damageables.Clear(); + } [GlobalCleanup] public async Task CleanupAsync() From 4aa7a963dc3dcebd4813f9d1e28b10c22f1402e6 Mon Sep 17 00:00:00 2001 From: Princess Cheeseballs <66055347+Princess-Cheeseballs@users.noreply.github.com> Date: Tue, 16 Dec 2025 15:30:15 -0800 Subject: [PATCH 182/205] Prevent Vestine and all other Botany chemicals from affecting all seeds. (#41883) * EnsureUniqueSeed * mfw * aaaaaaaaaaaaa --------- Co-authored-by: Princess Cheeseballs <66055347+Pronana@users.noreply.github.com> --- Content.Server/Botany/Systems/PlantHolderSystem.cs | 12 +++++++++--- .../PlantAdjustPotencyEntityEffectSystem.cs | 2 -- .../PlantDestroySeedsEntityEffectSystem.cs | 2 -- .../PlantDiethylamineEntityEffectSystem.cs | 3 --- .../PlantRestoreSeedsEntityEffectSystem.cs | 2 -- .../RobustHarvestEntityEffectSystem.cs | 3 --- .../Chemistry/Reaction/ChemicalReactionSystem.cs | 2 +- .../EntityEffects/SharedEntityEffectsSystem.cs | 7 +++++++ 8 files changed, 17 insertions(+), 16 deletions(-) diff --git a/Content.Server/Botany/Systems/PlantHolderSystem.cs b/Content.Server/Botany/Systems/PlantHolderSystem.cs index d5f331c157..3959ffc47f 100644 --- a/Content.Server/Botany/Systems/PlantHolderSystem.cs +++ b/Content.Server/Botany/Systems/PlantHolderSystem.cs @@ -53,6 +53,7 @@ public sealed class PlantHolderSystem : EntitySystem public const float HydroponicsSpeedMultiplier = 1f; public const float HydroponicsConsumptionMultiplier = 2f; + public readonly FixedPoint2 PlantMetabolismRate = FixedPoint2.New(1); private static readonly ProtoId HoeTag = "Hoe"; private static readonly ProtoId PlantSampleTakerTag = "PlantSampleTaker"; @@ -885,13 +886,18 @@ public sealed class PlantHolderSystem : EntitySystem if (solution.Volume > 0 && component.MutationLevel < 25) { - foreach (var entry in component.SoilSolution.Value.Comp.Solution.Contents) + // Don't apply any effects to a non-unique seed ever! Remove this when botany code is sane... + EnsureUniqueSeed(uid, component); + foreach (var entry in solution.Contents) { + if (entry.Quantity < PlantMetabolismRate) + continue; + var reagentProto = _prototype.Index(entry.Reagent.Prototype); - _entityEffects.ApplyEffects(uid, reagentProto.PlantMetabolisms.ToArray(), entry.Quantity.Float()); + _entityEffects.ApplyEffects(uid, reagentProto.PlantMetabolisms.ToArray(), entry.Quantity); } - _solutionContainerSystem.RemoveEachReagent(component.SoilSolution.Value, FixedPoint2.New(1)); + _solutionContainerSystem.RemoveEachReagent(component.SoilSolution.Value, PlantMetabolismRate); } CheckLevelSanity(uid, component); diff --git a/Content.Server/EntityEffects/Effects/Botany/PlantAttributes/PlantAdjustPotencyEntityEffectSystem.cs b/Content.Server/EntityEffects/Effects/Botany/PlantAttributes/PlantAdjustPotencyEntityEffectSystem.cs index ebe5c83181..f63d49f209 100644 --- a/Content.Server/EntityEffects/Effects/Botany/PlantAttributes/PlantAdjustPotencyEntityEffectSystem.cs +++ b/Content.Server/EntityEffects/Effects/Botany/PlantAttributes/PlantAdjustPotencyEntityEffectSystem.cs @@ -7,13 +7,11 @@ namespace Content.Server.EntityEffects.Effects.Botany.PlantAttributes; public sealed partial class PlantAdjustPotencyEntityEffectSystem : EntityEffectSystem { - [Dependency] private readonly PlantHolderSystem _plantHolder = default!; protected override void Effect(Entity entity, ref EntityEffectEvent args) { if (entity.Comp.Seed == null || entity.Comp.Dead) return; - _plantHolder.EnsureUniqueSeed(entity, entity.Comp); entity.Comp.Seed.Potency = Math.Max(entity.Comp.Seed.Potency + args.Effect.Amount, 1); } } diff --git a/Content.Server/EntityEffects/Effects/Botany/PlantAttributes/PlantDestroySeedsEntityEffectSystem.cs b/Content.Server/EntityEffects/Effects/Botany/PlantAttributes/PlantDestroySeedsEntityEffectSystem.cs index 1661c501be..5139c43c0f 100644 --- a/Content.Server/EntityEffects/Effects/Botany/PlantAttributes/PlantDestroySeedsEntityEffectSystem.cs +++ b/Content.Server/EntityEffects/Effects/Botany/PlantAttributes/PlantDestroySeedsEntityEffectSystem.cs @@ -9,7 +9,6 @@ namespace Content.Server.EntityEffects.Effects.Botany.PlantAttributes; public sealed partial class PlantDestroySeedsEntityEffectSystem : EntityEffectSystem { - [Dependency] private readonly PlantHolderSystem _plantHolder = default!; [Dependency] private readonly PopupSystem _popup = default!; protected override void Effect(Entity entity, ref EntityEffectEvent args) @@ -20,7 +19,6 @@ public sealed partial class PlantDestroySeedsEntityEffectSystem : EntityEffectSy if (entity.Comp.Seed.Seedless) return; - _plantHolder.EnsureUniqueSeed(entity, entity.Comp); _popup.PopupEntity( Loc.GetString("botany-plant-seedsdestroyed"), entity, diff --git a/Content.Server/EntityEffects/Effects/Botany/PlantAttributes/PlantDiethylamineEntityEffectSystem.cs b/Content.Server/EntityEffects/Effects/Botany/PlantAttributes/PlantDiethylamineEntityEffectSystem.cs index f6aebde465..4da542df93 100644 --- a/Content.Server/EntityEffects/Effects/Botany/PlantAttributes/PlantDiethylamineEntityEffectSystem.cs +++ b/Content.Server/EntityEffects/Effects/Botany/PlantAttributes/PlantDiethylamineEntityEffectSystem.cs @@ -9,7 +9,6 @@ namespace Content.Server.EntityEffects.Effects.Botany.PlantAttributes; public sealed partial class PlantDiethylamineEntityEffectSystem : EntityEffectSystem { [Dependency] private readonly IRobustRandom _random = default!; - [Dependency] private readonly PlantHolderSystem _plantHolder = default!; protected override void Effect(Entity entity, ref EntityEffectEvent args) { @@ -18,13 +17,11 @@ public sealed partial class PlantDiethylamineEntityEffectSystem : EntityEffectSy if (_random.Prob(0.1f)) { - _plantHolder.EnsureUniqueSeed(entity, entity); entity.Comp.Seed!.Lifespan++; } if (_random.Prob(0.1f)) { - _plantHolder.EnsureUniqueSeed(entity, entity); entity.Comp.Seed!.Endurance++; } } diff --git a/Content.Server/EntityEffects/Effects/Botany/PlantAttributes/PlantRestoreSeedsEntityEffectSystem.cs b/Content.Server/EntityEffects/Effects/Botany/PlantAttributes/PlantRestoreSeedsEntityEffectSystem.cs index 4d724be244..a120a1eccd 100644 --- a/Content.Server/EntityEffects/Effects/Botany/PlantAttributes/PlantRestoreSeedsEntityEffectSystem.cs +++ b/Content.Server/EntityEffects/Effects/Botany/PlantAttributes/PlantRestoreSeedsEntityEffectSystem.cs @@ -8,7 +8,6 @@ namespace Content.Server.EntityEffects.Effects.Botany.PlantAttributes; public sealed partial class PlantRestoreSeedsEntityEffectSystem : EntityEffectSystem { - [Dependency] private readonly PlantHolderSystem _plantHolder = default!; [Dependency] private readonly PopupSystem _popup = default!; protected override void Effect(Entity entity, ref EntityEffectEvent args) @@ -19,7 +18,6 @@ public sealed partial class PlantRestoreSeedsEntityEffectSystem : EntityEffectSy if (!entity.Comp.Seed.Seedless) return; - _plantHolder.EnsureUniqueSeed(entity, entity.Comp); _popup.PopupEntity(Loc.GetString("botany-plant-seedsrestored"), entity); entity.Comp.Seed.Seedless = false; } diff --git a/Content.Server/EntityEffects/Effects/Botany/PlantAttributes/RobustHarvestEntityEffectSystem.cs b/Content.Server/EntityEffects/Effects/Botany/PlantAttributes/RobustHarvestEntityEffectSystem.cs index 68ea3319ef..a957de82b4 100644 --- a/Content.Server/EntityEffects/Effects/Botany/PlantAttributes/RobustHarvestEntityEffectSystem.cs +++ b/Content.Server/EntityEffects/Effects/Botany/PlantAttributes/RobustHarvestEntityEffectSystem.cs @@ -14,7 +14,6 @@ namespace Content.Server.EntityEffects.Effects.Botany.PlantAttributes; public sealed partial class RobustHarvestEntityEffectSystem : EntityEffectSystem { [Dependency] private readonly IRobustRandom _random = default!; - [Dependency] private readonly PlantHolderSystem _plantHolder = default!; protected override void Effect(Entity entity, ref EntityEffectEvent args) { @@ -23,7 +22,6 @@ public sealed partial class RobustHarvestEntityEffectSystem : EntityEffectSystem if (entity.Comp.Seed.Potency < args.Effect.PotencyLimit) { - _plantHolder.EnsureUniqueSeed(entity, entity.Comp); entity.Comp.Seed.Potency = Math.Min(entity.Comp.Seed.Potency + args.Effect.PotencyIncrease, args.Effect.PotencyLimit); if (entity.Comp.Seed.Potency > args.Effect.PotencySeedlessThreshold) @@ -34,7 +32,6 @@ public sealed partial class RobustHarvestEntityEffectSystem : EntityEffectSystem else if (entity.Comp.Seed.Yield > 1 && _random.Prob(0.1f)) { // Too much of a good thing reduces yield - _plantHolder.EnsureUniqueSeed(entity, entity.Comp); entity.Comp.Seed.Yield--; } } diff --git a/Content.Shared/Chemistry/Reaction/ChemicalReactionSystem.cs b/Content.Shared/Chemistry/Reaction/ChemicalReactionSystem.cs index a995ef90f4..bc168521f8 100644 --- a/Content.Shared/Chemistry/Reaction/ChemicalReactionSystem.cs +++ b/Content.Shared/Chemistry/Reaction/ChemicalReactionSystem.cs @@ -211,7 +211,7 @@ namespace Content.Shared.Chemistry.Reaction _adminLogger.Add(LogType.ChemicalReaction, reaction.Impact, $"Chemical reaction {reaction.ID:reaction} occurred with strength {unitReactions:strength} on entity {ToPrettyString(soln):metabolizer} at Pos:{(posFound ? $"{gridPos:coordinates}" : "[Grid or Map not Found]")}"); - _entityEffects.ApplyEffects(soln, reaction.Effects, unitReactions.Float()); + _entityEffects.ApplyEffects(soln, reaction.Effects, unitReactions); // Someday, some brave soul will thread through an optional actor // argument in from every call of OnReaction up, all just to pass diff --git a/Content.Shared/EntityEffects/SharedEntityEffectsSystem.cs b/Content.Shared/EntityEffects/SharedEntityEffectsSystem.cs index 8270f8bf7c..2da23a2502 100644 --- a/Content.Shared/EntityEffects/SharedEntityEffectsSystem.cs +++ b/Content.Shared/EntityEffects/SharedEntityEffectsSystem.cs @@ -2,6 +2,7 @@ using Content.Shared.Administration.Logs; using Content.Shared.Chemistry; using Content.Shared.Chemistry.Reaction; using Content.Shared.EntityConditions; +using Content.Shared.FixedPoint; using Content.Shared.Random.Helpers; using Robust.Shared.Random; using Robust.Shared.Timing; @@ -58,6 +59,12 @@ public sealed partial class SharedEntityEffectsSystem : EntitySystem, IEntityEff } } + /// + public void ApplyEffects(EntityUid target, EntityEffect[] effects, FixedPoint2 scale, EntityUid? user = null) + { + ApplyEffects(target, effects, scale.Float()); + } + /// /// Applies a list of entity effects to a target entity. /// From 2ef64bd5cc761d7864149ce9c30629aed9a6366b Mon Sep 17 00:00:00 2001 From: ScarKy0 <106310278+ScarKy0@users.noreply.github.com> Date: Wed, 17 Dec 2025 00:45:34 +0100 Subject: [PATCH 183/205] TriggerOnIngested (#41875) * init * nobody will ever know i copy paste * i hate these names * comment --------- Co-authored-by: iaada --- .../Triggers/TriggerOnIngestedComponent.cs | 17 ++++++++++++++ .../Systems/TriggerOnIngestedSystem.cs | 23 +++++++++++++++++++ 2 files changed, 40 insertions(+) create mode 100644 Content.Shared/Trigger/Components/Triggers/TriggerOnIngestedComponent.cs create mode 100644 Content.Shared/Trigger/Systems/TriggerOnIngestedSystem.cs diff --git a/Content.Shared/Trigger/Components/Triggers/TriggerOnIngestedComponent.cs b/Content.Shared/Trigger/Components/Triggers/TriggerOnIngestedComponent.cs new file mode 100644 index 0000000000..e8bd920e64 --- /dev/null +++ b/Content.Shared/Trigger/Components/Triggers/TriggerOnIngestedComponent.cs @@ -0,0 +1,17 @@ +using Robust.Shared.GameStates; + +namespace Content.Shared.Trigger.Components.Triggers; + +/// +/// Triggers when the owner of this component is ingested, like a pill or food. +/// +[RegisterComponent, NetworkedComponent, AutoGenerateComponentState] +public sealed partial class TriggerOnIngestedComponent : BaseTriggerOnXComponent +{ + /// + /// Whether the fed entity is the user. + /// If false, the entity feeding will be the user. + /// + [DataField, AutoNetworkedField] + public bool EatingIsUser = true; +} diff --git a/Content.Shared/Trigger/Systems/TriggerOnIngestedSystem.cs b/Content.Shared/Trigger/Systems/TriggerOnIngestedSystem.cs new file mode 100644 index 0000000000..1e199e840e --- /dev/null +++ b/Content.Shared/Trigger/Systems/TriggerOnIngestedSystem.cs @@ -0,0 +1,23 @@ +using Content.Shared.Nutrition; +using Content.Shared.Trigger.Components.Triggers; + +namespace Content.Shared.Trigger.Systems; + +public sealed partial class TriggerOnIngestedSystem : TriggerOnXSystem +{ + public override void Initialize() + { + base.Initialize(); + + SubscribeLocalEvent(OnIngested); + } + + private void OnIngested(Entity ent, ref IngestedEvent args) + { + // args.Target is the entity being fed, while args.User is the entity doing the feeding. + // Since they are not always equal (feeding someone by force, for example) we use a bool to decide which one is the trigger user. + var user = ent.Comp.EatingIsUser ? args.Target : args.User; + + Trigger.Trigger(ent.Owner, user, ent.Comp.KeyOut); + } +} From 2455dbbdb093006e7ef0516869c9001214522c33 Mon Sep 17 00:00:00 2001 From: Connor Huffine Date: Wed, 17 Dec 2025 03:24:54 -0500 Subject: [PATCH 184/205] Remove flammability mass (#41803) * Remove flammability mass * Adjust mass fudge number * Remove fudge --- Content.Server/Atmos/EntitySystems/FlammableSystem.cs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Content.Server/Atmos/EntitySystems/FlammableSystem.cs b/Content.Server/Atmos/EntitySystems/FlammableSystem.cs index f630e4e610..bd05a2c9ec 100644 --- a/Content.Server/Atmos/EntitySystems/FlammableSystem.cs +++ b/Content.Server/Atmos/EntitySystems/FlammableSystem.cs @@ -145,8 +145,8 @@ namespace Content.Server.Atmos.EntitySystems if (!TryComp(uid, out var body)) return; - _fixture.TryCreateFixture(uid, component.FlammableCollisionShape, component.FlammableFixtureID, hard: false, - collisionMask: (int) CollisionGroup.FullTileLayer, body: body); + _fixture.TryCreateFixture(uid, component.FlammableCollisionShape, component.FlammableFixtureID, density: 0, + hard: false, collisionMask: (int) CollisionGroup.FullTileLayer, body: body); } private void OnInteractUsing(EntityUid uid, FlammableComponent flammable, InteractUsingEvent args) @@ -228,7 +228,7 @@ namespace Content.Server.Atmos.EntitySystems // Get the average of both entity's firestacks * mass // Then for each entity, we divide the average by their mass and set their firestacks to that value // An entity with a higher mass will lose some fire and transfer it to the one with lower mass. - var avg = (flammable.FireStacks * mass1 + otherFlammable.FireStacks * mass2) / 2f; + var avg = (flammable.FireStacks * mass1 + otherFlammable.FireStacks * mass2) / 2f; // bring each entity to the same firestack mass, firestack amount is scaled by the inverse of the entity's mass SetFireStacks(uid, avg / mass1, flammable, ignite: true); From 511b66df0f95aaf7649b537b5ae117d7ca7dd6b1 Mon Sep 17 00:00:00 2001 From: PJBot Date: Wed, 17 Dec 2025 08:38:45 +0000 Subject: [PATCH 185/205] Automatic changelog update --- Resources/Changelog/Changelog.yml | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/Resources/Changelog/Changelog.yml b/Resources/Changelog/Changelog.yml index 1e0225a113..3a4e8dd9f8 100644 --- a/Resources/Changelog/Changelog.yml +++ b/Resources/Changelog/Changelog.yml @@ -1,12 +1,4 @@ Entries: -- author: SlamBamActionman - changes: - - message: Potassium-water explosion damage scaling has been tweaked to be less - potent. - type: Tweak - id: 8807 - time: '2025-07-25T16:04:27.0000000+00:00' - url: https://github.com/space-wizards/space-station-14/pull/37924 - author: SlamBamActionman changes: - message: Chemistry foam and smoke reactions now trigger after regular mix reactions. @@ -3921,3 +3913,10 @@ id: 9307 time: '2025-12-16T19:00:27.0000000+00:00' url: https://github.com/space-wizards/space-station-14/pull/41879 +- author: kontakt + changes: + - message: Flammable items no longer have bonus mass. + type: Fix + id: 9308 + time: '2025-12-17T08:37:35.0000000+00:00' + url: https://github.com/space-wizards/space-station-14/pull/41803 From 4484f0f3514363804343a5443509e8b5b2fc8b31 Mon Sep 17 00:00:00 2001 From: slarticodefast <161409025+slarticodefast@users.noreply.github.com> Date: Wed, 17 Dec 2025 19:15:49 +0100 Subject: [PATCH 186/205] Fix prototypes so they pass analyzer checks (again) (AGAIN) (#41882) fix --- Content.Server/Worldgen/Prototypes/BiomePrototype.cs | 2 +- Content.Server/Worldgen/Prototypes/NoiseChannelPrototype.cs | 2 +- Content.Shared/Maps/ContentTileDefinition.cs | 2 +- .../Preferences/Loadouts/LoadoutGroupPrototype.cs | 6 +++--- .../Silicons/StationAi/StationAiCustomizationPrototype.cs | 2 +- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/Content.Server/Worldgen/Prototypes/BiomePrototype.cs b/Content.Server/Worldgen/Prototypes/BiomePrototype.cs index 1c3633fb5f..75e4670e88 100644 --- a/Content.Server/Worldgen/Prototypes/BiomePrototype.cs +++ b/Content.Server/Worldgen/Prototypes/BiomePrototype.cs @@ -13,7 +13,7 @@ namespace Content.Server.Worldgen.Prototypes; public sealed partial class BiomePrototype : IPrototype, IInheritingPrototype { /// - [ParentDataField(typeof(AbstractPrototypeIdArraySerializer))] + [ParentDataField(typeof(AbstractPrototypeIdArraySerializer))] public string[]? Parents { get; private set; } /// diff --git a/Content.Server/Worldgen/Prototypes/NoiseChannelPrototype.cs b/Content.Server/Worldgen/Prototypes/NoiseChannelPrototype.cs index 98ba2d5b31..41d89cbaa7 100644 --- a/Content.Server/Worldgen/Prototypes/NoiseChannelPrototype.cs +++ b/Content.Server/Worldgen/Prototypes/NoiseChannelPrototype.cs @@ -83,7 +83,7 @@ public class NoiseChannelConfig public sealed partial class NoiseChannelPrototype : NoiseChannelConfig, IPrototype, IInheritingPrototype { /// - [ParentDataField(typeof(AbstractPrototypeIdArraySerializer))] + [ParentDataField(typeof(AbstractPrototypeIdArraySerializer))] public string[]? Parents { get; private set; } /// diff --git a/Content.Shared/Maps/ContentTileDefinition.cs b/Content.Shared/Maps/ContentTileDefinition.cs index 64975b5616..46ce7a212e 100644 --- a/Content.Shared/Maps/ContentTileDefinition.cs +++ b/Content.Shared/Maps/ContentTileDefinition.cs @@ -19,7 +19,7 @@ namespace Content.Shared.Maps public const string SpaceID = "Space"; - [ParentDataFieldAttribute(typeof(AbstractPrototypeIdArraySerializer))] + [ParentDataField(typeof(AbstractPrototypeIdArraySerializer))] public string[]? Parents { get; private set; } [NeverPushInheritance] diff --git a/Content.Shared/Preferences/Loadouts/LoadoutGroupPrototype.cs b/Content.Shared/Preferences/Loadouts/LoadoutGroupPrototype.cs index b65f332885..40a168c067 100644 --- a/Content.Shared/Preferences/Loadouts/LoadoutGroupPrototype.cs +++ b/Content.Shared/Preferences/Loadouts/LoadoutGroupPrototype.cs @@ -13,8 +13,8 @@ public sealed partial class LoadoutGroupPrototype : IPrototype, IInheritingProto public string ID { get; private set; } = string.Empty; /// - [ParentDataFieldAttribute(typeof(AbstractPrototypeIdArraySerializer))] - public string[]? Parents { get; } + [ParentDataField(typeof(AbstractPrototypeIdArraySerializer))] + public string[]? Parents { get; private set; } /// [NeverPushInheritance] @@ -32,7 +32,7 @@ public sealed partial class LoadoutGroupPrototype : IPrototype, IInheritingProto /// [DataField] public int MinLimit = 1; - + /// /// Number of loadouts that are selected by default. /// diff --git a/Content.Shared/Silicons/StationAi/StationAiCustomizationPrototype.cs b/Content.Shared/Silicons/StationAi/StationAiCustomizationPrototype.cs index eae6f51477..a83ac79318 100644 --- a/Content.Shared/Silicons/StationAi/StationAiCustomizationPrototype.cs +++ b/Content.Shared/Silicons/StationAi/StationAiCustomizationPrototype.cs @@ -41,7 +41,7 @@ public sealed partial class StationAiCustomizationPrototype : IPrototype, IInher /// The prototype we inherit from. /// [ViewVariables] - [ParentDataFieldAttribute(typeof(AbstractPrototypeIdArraySerializer))] + [ParentDataField(typeof(AbstractPrototypeIdArraySerializer))] public string[]? Parents { get; private set; } /// From 0e76d4e5ed6ae70a31d60beb350b7ce3c1a2f9b7 Mon Sep 17 00:00:00 2001 From: Nikovnik <116634167+nkokic@users.noreply.github.com> Date: Wed, 17 Dec 2025 20:21:16 +0100 Subject: [PATCH 187/205] Metabolizing bloodstream (#35071) * merged chemical into bloodstream * changed injectable to bloodstream * separated bleeding and direct blood removal * removed blood gain from protein * reduced blood gain from saline * rejuvenating fills to reference volume * fixed blood regulation * red mead requires stirring to make * reverted accidental line deletion * cleared the skeletons from the closet * additional routing * field rename for xeno * removed mention of chemstream and field rename for asteroid mobs * minor optimizations * Revert "reduced blood gain from saline" This reverts commit de26fd1c0d99f3019fe7dd1451a50230cc90f058. * Revert "removed blood gain from protein" This reverts commit 7a1648caf39fe26406db73c2a5afa389b82c612f. * removed unused component fetch * dead check mini refactor * eventized blood exclusion * quick fix * Pain * Commit of doom * COMMIT * renamed bloodMaxFactor to MaxVolumeFactor * addressed floating point error * returned vomiting chemicals * blood reagent always skips the flush * no need to mention blood reagent * fixed passing blood flush * adadsafasfasfassfasf * whoops * merge fixed injectors * Revert "adadsafasfasfassfasf" This reverts commit 0a5313a68dd6484d36d28d08930c76851b72ae38. * simplify reagent removal * enabled foreign blood transfusion * Revert "COMMIT" This reverts commit 19abd679cd7761ebd47bb242bd644176a3006a42. * simplified reagent removal when modifying blood level * removed misleading coment since the changes * documented MetabolismExclusionEvent * fixed negative negative modification of blood level * fixed hypervolemia not normalizing * constrainted blood modification * returned bloodpack stop on fully healed * forgot to stage this * band aid for diona blood * swapping GetReagent with GetPrototype * optimize blood filtering * multiplicative multi reagent blood level calculation * removed unused stuff * optimized blood calculation a tiny bit * added per reagent blood regulation * optimized (referenceVolume + bloodReagents) into referenceSolution * polished coded to proper function * forgot to stage rootable system change * clean up, unnecessary GetBloodLevel call * rename method name to TryAddToBloodstream instead of Chemicals * placed overfill safety * cleanup and final touches * final touch --------- Co-authored-by: Princess Cheeseballs <66055347+Pronana@users.noreply.github.com> --- .../Body/Components/MetabolizerComponent.cs | 2 +- .../Body/Systems/BloodstreamSystem.cs | 10 +- .../Body/Systems/MetabolizerSystem.cs | 24 ++- .../SolutionInjectOnEventSystem.cs | 2 +- .../Fluids/EntitySystems/SmokeSystem.cs | 6 +- .../Medical/HealthAnalyzerSystem.cs | 4 +- .../Nutrition/EntitySystems/SmokingSystem.cs | 2 +- .../Zombies/ZombieSystem.Transform.cs | 2 +- .../Body/Components/BloodstreamComponent.cs | 28 +-- .../Body/Components/StomachComponent.cs | 2 +- .../Body/Events/MetabolismExclusionEvent.cs | 8 + .../Body/Systems/SharedBloodstreamSystem.cs | 192 +++++++++++------- .../EntitySystems/SharedInjectorSystem.cs | 22 +- Content.Shared/Devour/DevourSystem.cs | 2 +- .../CleanBloodstreamEntityEffectSystem.cs | 2 +- .../Medical/Cryogenics/SharedCryoPodSystem.cs | 2 +- .../Medical/Healing/HealingSystem.cs | 2 +- Content.Shared/Medical/VomitSystem.cs | 15 +- Content.Shared/Rootable/RootableSystem.cs | 6 +- .../Prototypes/Entities/Mobs/NPCs/animals.yml | 122 +++++++---- .../Entities/Mobs/NPCs/argocyte.yml | 5 +- .../Entities/Mobs/NPCs/asteroid.yml | 12 +- .../Entities/Mobs/NPCs/behonker.yml | 5 +- .../Entities/Mobs/NPCs/elemental.yml | 53 +++-- .../Prototypes/Entities/Mobs/NPCs/flesh.yml | 10 +- .../Entities/Mobs/NPCs/miscellaneous.yml | 6 +- .../Entities/Mobs/NPCs/simplemob.yml | 5 +- .../Prototypes/Entities/Mobs/NPCs/slimes.yml | 4 +- .../Prototypes/Entities/Mobs/NPCs/space.yml | 20 +- .../Entities/Mobs/NPCs/spacetick.yml | 5 +- .../Prototypes/Entities/Mobs/NPCs/xeno.yml | 10 +- .../Entities/Mobs/Player/dragon.yml | 5 +- .../Entities/Mobs/Species/arachnid.yml | 4 +- .../Entities/Mobs/Species/diona.yml | 4 +- .../Entities/Mobs/Species/gingerbread.yml | 6 +- .../Prototypes/Entities/Mobs/Species/moth.yml | 4 +- .../Entities/Mobs/Species/slime.yml | 4 +- .../Prototypes/Entities/Mobs/Species/vox.yml | 4 +- Resources/Prototypes/Entities/Mobs/base.yml | 2 +- .../Prototypes/Recipes/Reactions/drinks.yml | 2 + .../Prototypes/Recipes/Reactions/fun.yml | 2 + .../Recipes/Reactions/single_reagent.yml | 2 + 42 files changed, 362 insertions(+), 267 deletions(-) create mode 100644 Content.Shared/Body/Events/MetabolismExclusionEvent.cs diff --git a/Content.Server/Body/Components/MetabolizerComponent.cs b/Content.Server/Body/Components/MetabolizerComponent.cs index 46d2fdd8e8..2401db5aac 100644 --- a/Content.Server/Body/Components/MetabolizerComponent.cs +++ b/Content.Server/Body/Components/MetabolizerComponent.cs @@ -42,7 +42,7 @@ namespace Content.Server.Body.Components /// From which solution will this metabolizer attempt to metabolize chemicals /// [DataField("solution")] - public string SolutionName = BloodstreamComponent.DefaultChemicalsSolutionName; + public string SolutionName = BloodstreamComponent.DefaultBloodSolutionName; /// /// Does this component use a solution on it's parent entity (the body) or itself diff --git a/Content.Server/Body/Systems/BloodstreamSystem.cs b/Content.Server/Body/Systems/BloodstreamSystem.cs index a58deec494..08f640711a 100644 --- a/Content.Server/Body/Systems/BloodstreamSystem.cs +++ b/Content.Server/Body/Systems/BloodstreamSystem.cs @@ -21,9 +21,6 @@ public sealed class BloodstreamSystem : SharedBloodstreamSystem private void OnComponentInit(Entity entity, ref ComponentInit args) { if (!SolutionContainer.EnsureSolution(entity.Owner, - entity.Comp.ChemicalSolutionName, - out var chemicalSolution) || - !SolutionContainer.EnsureSolution(entity.Owner, entity.Comp.BloodSolutionName, out var bloodSolution) || !SolutionContainer.EnsureSolution(entity.Owner, @@ -31,14 +28,13 @@ public sealed class BloodstreamSystem : SharedBloodstreamSystem out var tempSolution)) return; - chemicalSolution.MaxVolume = entity.Comp.ChemicalMaxVolume; - bloodSolution.MaxVolume = entity.Comp.BloodMaxVolume; + bloodSolution.MaxVolume = entity.Comp.BloodReferenceSolution.Volume * entity.Comp.MaxVolumeModifier; tempSolution.MaxVolume = entity.Comp.BleedPuddleThreshold * 4; // give some leeway, for chemstream as well // Fill blood solution with BLOOD // The DNA string might not be initialized yet, but the reagent data gets updated in the GenerateDnaEvent subscription - var solution = entity.Comp.BloodReagents.Clone(); - solution.ScaleTo(entity.Comp.BloodMaxVolume - bloodSolution.Volume); + var solution = entity.Comp.BloodReferenceSolution.Clone(); + solution.ScaleTo(entity.Comp.BloodReferenceSolution.Volume - bloodSolution.Volume); solution.SetReagentData(GetEntityBloodData(entity.Owner)); bloodSolution.AddSolution(solution, PrototypeManager); } diff --git a/Content.Server/Body/Systems/MetabolizerSystem.cs b/Content.Server/Body/Systems/MetabolizerSystem.cs index b5b30ae74c..35c7b0572a 100644 --- a/Content.Server/Body/Systems/MetabolizerSystem.cs +++ b/Content.Server/Body/Systems/MetabolizerSystem.cs @@ -1,3 +1,4 @@ +using System.Linq; using Content.Server.Body.Components; using Content.Shared.Body.Events; using Content.Shared.Body.Organ; @@ -14,7 +15,6 @@ using Content.Shared.EntityEffects; using Content.Shared.EntityEffects.Effects.Body; using Content.Shared.EntityEffects.Effects.Solution; using Content.Shared.FixedPoint; -using Content.Shared.Mobs.Components; using Content.Shared.Mobs.Systems; using Content.Shared.Random.Helpers; using Robust.Shared.Collections; @@ -134,17 +134,30 @@ public sealed class MetabolizerSystem : SharedMetabolizerSystem return; } + // Copy the solution do not edit the original solution list + var list = solution.Contents.ToList(); + + // Collecting blood reagent for filtering + var bloodList = new List(); + var ev = new MetabolismExclusionEvent(bloodList); + RaiseLocalEvent(solutionEntityUid.Value, ref ev); + // randomize the reagent list so we don't have any weird quirks // like alphabetical order or insertion order mattering for processing - var list = solution.Contents.ToArray(); _random.Shuffle(list); + bool isDead = _mobStateSystem.IsDead(solutionEntityUid.Value); + int reagents = 0; foreach (var (reagent, quantity) in list) { if (!_prototypeManager.TryIndex(reagent.Prototype, out var proto)) continue; + // Skip blood reagents + if (bloodList.Contains(reagent.Prototype)) + continue; + var mostToRemove = FixedPoint2.Zero; if (proto.Metabolisms is null) { @@ -186,11 +199,8 @@ public sealed class MetabolizerSystem : SharedMetabolizerSystem // if it's possible for them to be dead, and they are, // then we shouldn't process any effects, but should probably // still remove reagents - if (TryComp(solutionEntityUid.Value, out var state)) - { - if (!proto.WorksOnTheDead && _mobStateSystem.IsDead(solutionEntityUid.Value, state)) - continue; - } + if (isDead && !proto.WorksOnTheDead) + continue; var actualEntity = ent.Comp2?.Body ?? solutionEntityUid.Value; diff --git a/Content.Server/Chemistry/EntitySystems/SolutionInjectOnEventSystem.cs b/Content.Server/Chemistry/EntitySystems/SolutionInjectOnEventSystem.cs index 7b4deea9f4..e6e1642295 100644 --- a/Content.Server/Chemistry/EntitySystems/SolutionInjectOnEventSystem.cs +++ b/Content.Server/Chemistry/EntitySystems/SolutionInjectOnEventSystem.cs @@ -148,7 +148,7 @@ public sealed class SolutionInjectOnCollideSystem : EntitySystem // Take our portion of the adjusted solution for this target var individualInjection = solutionToInject.SplitSolution(volumePerBloodstream); // Inject our portion into the target's bloodstream - if (_bloodstream.TryAddToChemicals(targetBloodstream.AsNullable(), individualInjection)) + if (_bloodstream.TryAddToBloodstream(targetBloodstream.AsNullable(), individualInjection)) anySuccess = true; } diff --git a/Content.Server/Fluids/EntitySystems/SmokeSystem.cs b/Content.Server/Fluids/EntitySystems/SmokeSystem.cs index 7c9d02c561..c787132504 100644 --- a/Content.Server/Fluids/EntitySystems/SmokeSystem.cs +++ b/Content.Server/Fluids/EntitySystems/SmokeSystem.cs @@ -264,14 +264,14 @@ public sealed class SmokeSystem : EntitySystem if (!TryComp(entity, out var bloodstream)) return; - if (!_solutionContainerSystem.ResolveSolution(entity, bloodstream.ChemicalSolutionName, ref bloodstream.ChemicalSolution, out var chemSolution) || chemSolution.AvailableVolume <= 0) + if (!_solutionContainerSystem.ResolveSolution(entity, bloodstream.BloodSolutionName, ref bloodstream.BloodSolution, out var bloodSolution) || bloodSolution.AvailableVolume <= 0) return; var blockIngestion = _internals.AreInternalsWorking(entity); var cloneSolution = solution.Clone(); var availableTransfer = FixedPoint2.Min(cloneSolution.Volume, component.TransferRate); - var transferAmount = FixedPoint2.Min(availableTransfer, chemSolution.AvailableVolume); + var transferAmount = FixedPoint2.Min(availableTransfer, bloodSolution.AvailableVolume); var transferSolution = cloneSolution.SplitSolution(transferAmount); foreach (var reagentQuantity in transferSolution.Contents.ToArray()) @@ -287,7 +287,7 @@ public sealed class SmokeSystem : EntitySystem if (blockIngestion) return; - if (_blood.TryAddToChemicals((entity, bloodstream), transferSolution)) + if (_blood.TryAddToBloodstream((entity, bloodstream), transferSolution)) { // Log solution addition by smoke _logger.Add(LogType.ForceFeed, LogImpact.Medium, $"{ToPrettyString(entity):target} ingested smoke {SharedSolutionContainerSystem.ToPrettyString(transferSolution)}"); diff --git a/Content.Server/Medical/HealthAnalyzerSystem.cs b/Content.Server/Medical/HealthAnalyzerSystem.cs index bc6285c1d2..b7f48cade4 100644 --- a/Content.Server/Medical/HealthAnalyzerSystem.cs +++ b/Content.Server/Medical/HealthAnalyzerSystem.cs @@ -18,6 +18,7 @@ using Robust.Server.GameObjects; using Robust.Shared.Audio.Systems; using Robust.Shared.Containers; using Robust.Shared.Timing; +using Content.Server.Body.Systems; namespace Content.Server.Medical; @@ -32,6 +33,7 @@ public sealed class HealthAnalyzerSystem : EntitySystem [Dependency] private readonly UserInterfaceSystem _uiSystem = default!; [Dependency] private readonly TransformSystem _transformSystem = default!; [Dependency] private readonly SharedPopupSystem _popupSystem = default!; + [Dependency] private readonly BloodstreamSystem _bloodstreamSystem = default!; public override void Initialize() { @@ -204,7 +206,7 @@ public sealed class HealthAnalyzerSystem : EntitySystem _solutionContainerSystem.ResolveSolution(target, bloodstream.BloodSolutionName, ref bloodstream.BloodSolution, out var bloodSolution)) { - bloodAmount = bloodSolution.FillFraction; + bloodAmount = _bloodstreamSystem.GetBloodLevel(target); bleeding = bloodstream.BleedAmount > 0; } diff --git a/Content.Server/Nutrition/EntitySystems/SmokingSystem.cs b/Content.Server/Nutrition/EntitySystems/SmokingSystem.cs index 4960ff1ba8..ae35fa4825 100644 --- a/Content.Server/Nutrition/EntitySystems/SmokingSystem.cs +++ b/Content.Server/Nutrition/EntitySystems/SmokingSystem.cs @@ -157,7 +157,7 @@ namespace Content.Server.Nutrition.EntitySystems } _reactiveSystem.DoEntityReaction(containerManager.Owner, inhaledSolution, ReactionMethod.Ingestion); - _bloodstreamSystem.TryAddToChemicals((containerManager.Owner, bloodstream), inhaledSolution); + _bloodstreamSystem.TryAddToBloodstream((containerManager.Owner, bloodstream), inhaledSolution); } _timer -= UpdateTimer; diff --git a/Content.Server/Zombies/ZombieSystem.Transform.cs b/Content.Server/Zombies/ZombieSystem.Transform.cs index cfa22b2a14..b4aee77cef 100644 --- a/Content.Server/Zombies/ZombieSystem.Transform.cs +++ b/Content.Server/Zombies/ZombieSystem.Transform.cs @@ -193,7 +193,7 @@ public sealed partial class ZombieSystem zombiecomp.BeforeZombifiedSkinColor = huApComp.SkinColor; zombiecomp.BeforeZombifiedEyeColor = huApComp.EyeColor; zombiecomp.BeforeZombifiedCustomBaseLayers = new(huApComp.CustomBaseLayers); - if (TryComp(target, out var stream) && stream.BloodReagents is { } reagents) + if (TryComp(target, out var stream) && stream.BloodReferenceSolution is { } reagents) zombiecomp.BeforeZombifiedBloodReagents = reagents.Clone(); _humanoidAppearance.SetSkinColor(target, zombiecomp.SkinColor, verify: false, humanoid: huApComp); diff --git a/Content.Shared/Body/Components/BloodstreamComponent.cs b/Content.Shared/Body/Components/BloodstreamComponent.cs index 2ebfae6f33..8309397b62 100644 --- a/Content.Shared/Body/Components/BloodstreamComponent.cs +++ b/Content.Shared/Body/Components/BloodstreamComponent.cs @@ -19,7 +19,6 @@ namespace Content.Shared.Body.Components; [Access(typeof(SharedBloodstreamSystem))] public sealed partial class BloodstreamComponent : Component { - public const string DefaultChemicalsSolutionName = "chemicals"; public const string DefaultBloodSolutionName = "bloodstream"; public const string DefaultBloodTemporarySolutionName = "bloodstreamTemporary"; @@ -138,26 +137,19 @@ public sealed partial class BloodstreamComponent : Component // TODO probably damage bleed thresholds. /// - /// Max volume of internal chemical solution storage + /// Modifier applied to to determine maximum volume for bloodstream. /// [DataField] - public FixedPoint2 ChemicalMaxVolume = FixedPoint2.New(250); + public float MaxVolumeModifier = 2f; /// - /// Max volume of internal blood storage, - /// and starting level of blood. - /// - [DataField] - public FixedPoint2 BloodMaxVolume = FixedPoint2.New(300); - - /// - /// Which reagents are considered this entities 'blood'? + /// Defines which reagents are considered as 'blood' and how much of it is normal. /// /// /// Slime-people might use slime as their blood or something like that. /// [DataField, AutoNetworkedField] - public Solution BloodReagents = new([new("Blood", 1)]); + public Solution BloodReferenceSolution = new([new("Blood", 300)]); /// /// Name/Key that is indexed by. @@ -165,12 +157,6 @@ public sealed partial class BloodstreamComponent : Component [DataField] public string BloodSolutionName = DefaultBloodSolutionName; - /// - /// Name/Key that is indexed by. - /// - [DataField] - public string ChemicalSolutionName = DefaultChemicalsSolutionName; - /// /// Name/Key that is indexed by. /// @@ -183,12 +169,6 @@ public sealed partial class BloodstreamComponent : Component [ViewVariables] public Entity? BloodSolution; - /// - /// Internal solution for reagent storage - /// - [ViewVariables] - public Entity? ChemicalSolution; - /// /// Temporary blood solution. /// When blood is lost, it goes to this solution, and when this diff --git a/Content.Shared/Body/Components/StomachComponent.cs b/Content.Shared/Body/Components/StomachComponent.cs index ca20cc544a..e1413de9e4 100644 --- a/Content.Shared/Body/Components/StomachComponent.cs +++ b/Content.Shared/Body/Components/StomachComponent.cs @@ -45,7 +45,7 @@ namespace Content.Shared.Body.Components /// What solution should this stomach push reagents into, on the body? /// [DataField] - public string BodySolutionName = "chemicals"; + public string BodySolutionName = BloodstreamComponent.DefaultBloodSolutionName; /// /// Time between reagents being ingested and them being diff --git a/Content.Shared/Body/Events/MetabolismExclusionEvent.cs b/Content.Shared/Body/Events/MetabolismExclusionEvent.cs new file mode 100644 index 0000000000..791b8ed959 --- /dev/null +++ b/Content.Shared/Body/Events/MetabolismExclusionEvent.cs @@ -0,0 +1,8 @@ +namespace Content.Shared.Body.Events; + +/// +/// Event called by to get a list of +/// blood like reagents for metabolism to skip. +/// +[ByRefEvent] +public readonly record struct MetabolismExclusionEvent(List ReagentList); \ No newline at end of file diff --git a/Content.Shared/Body/Systems/SharedBloodstreamSystem.cs b/Content.Shared/Body/Systems/SharedBloodstreamSystem.cs index e108cbfb27..7c8fca6deb 100644 --- a/Content.Shared/Body/Systems/SharedBloodstreamSystem.cs +++ b/Content.Shared/Body/Systems/SharedBloodstreamSystem.cs @@ -1,3 +1,4 @@ +using System.Linq; using Content.Shared.Alert; using Content.Shared.Body.Components; using Content.Shared.Body.Events; @@ -53,6 +54,7 @@ public abstract class SharedBloodstreamSystem : EntitySystem SubscribeLocalEvent(OnBeingGibbed); SubscribeLocalEvent(OnApplyMetabolicMultiplier); SubscribeLocalEvent(OnRejuvenate); + SubscribeLocalEvent(OnMetabolismExclusion); } public override void Update(float frameTime) @@ -72,11 +74,8 @@ public abstract class SharedBloodstreamSystem : EntitySystem if (!SolutionContainer.ResolveSolution(uid, bloodstream.BloodSolutionName, ref bloodstream.BloodSolution, out var bloodSolution)) continue; - // Adds blood to their blood level if it is below the maximum; Blood regeneration. Must be alive. - if (bloodSolution.Volume < bloodSolution.MaxVolume && !_mobStateSystem.IsDead(uid)) - { - TryModifyBloodLevel((uid, bloodstream), bloodstream.BloodRefreshAmount); - } + // Blood level regulation. Must be alive. + TryRegulateBloodLevel(uid, bloodstream.BloodRefreshAmount); // Removes blood from the bloodstream based on bleed amount (bleed rate) // as well as stop their bleeding to a certain extent. @@ -86,14 +85,14 @@ public abstract class SharedBloodstreamSystem : EntitySystem RaiseLocalEvent(uid, ref ev); // Blood is removed from the bloodstream at a 1-1 rate with the bleed amount - TryModifyBloodLevel((uid, bloodstream), -ev.BleedAmount); + TryBleedOut((uid, bloodstream), ev.BleedAmount); // Bleed rate is reduced by the bleed reduction amount in the bloodstream component. TryModifyBleedAmount((uid, bloodstream), -ev.BleedReductionAmount); } // deal bloodloss damage if their blood level is below a threshold. - var bloodPercentage = GetBloodLevelPercentage((uid, bloodstream)); + var bloodPercentage = GetBloodLevel(uid); if (bloodPercentage < bloodstream.BloodlossThreshold && !_mobStateSystem.IsDead(uid)) { // bloodloss damage is based on the base value, and modified by how low your blood level is. @@ -133,9 +132,6 @@ public abstract class SharedBloodstreamSystem : EntitySystem if (args.Entity == entity.Comp.BloodSolution?.Owner) entity.Comp.BloodSolution = null; - if (args.Entity == entity.Comp.ChemicalSolution?.Owner) - entity.Comp.ChemicalSolution = null; - if (args.Entity == entity.Comp.TemporarySolution?.Owner) entity.Comp.TemporarySolution = null; } @@ -170,7 +166,6 @@ public abstract class SharedBloodstreamSystem : EntitySystem private void OnReactionAttempt(Entity ent, ref SolutionRelayEvent args) { if (args.Name != ent.Comp.BloodSolutionName - && args.Name != ent.Comp.ChemicalSolutionName && args.Name != ent.Comp.BloodTemporarySolutionName) { return; @@ -221,7 +216,7 @@ public abstract class SharedBloodstreamSystem : EntitySystem var prob = Math.Clamp(totalFloat / 25, 0, 1); if (totalFloat > 0 && rand.Prob(prob)) { - TryModifyBloodLevel(ent.AsNullable(), -total / 5); + TryBleedOut(ent.AsNullable(), total / 5); _audio.PlayPredicted(ent.Comp.InstantBloodSound, ent, args.Origin); } @@ -269,7 +264,7 @@ public abstract class SharedBloodstreamSystem : EntitySystem } // If the mob's blood level is below the damage threshhold, the pale message is added. - if (GetBloodLevelPercentage(ent.AsNullable()) < ent.Comp.BloodlossThreshold) + if (GetBloodLevel(ent.AsNullable()) < ent.Comp.BloodlossThreshold) { args.Message.PushNewline(); args.Message.AddMarkupOrThrow(Loc.GetString("bloodstream-component-looks-pale", ("target", ent.Owner))); @@ -291,25 +286,46 @@ public abstract class SharedBloodstreamSystem : EntitySystem { TryModifyBleedAmount(ent.AsNullable(), -ent.Comp.BleedAmount); - if (SolutionContainer.ResolveSolution(ent.Owner, ent.Comp.BloodSolutionName, ref ent.Comp.BloodSolution, out var bloodSolution)) - TryModifyBloodLevel(ent.AsNullable(), bloodSolution.AvailableVolume); + if (SolutionContainer.ResolveSolution(ent.Owner, ent.Comp.BloodSolutionName, ref ent.Comp.BloodSolution)) + { + SolutionContainer.RemoveAllSolution(ent.Comp.BloodSolution.Value); + TryModifyBloodLevel(ent.AsNullable(), ent.Comp.BloodReferenceSolution.Volume); + } + } - if (SolutionContainer.ResolveSolution(ent.Owner, ent.Comp.ChemicalSolutionName, ref ent.Comp.ChemicalSolution)) - SolutionContainer.RemoveAllSolution(ent.Comp.ChemicalSolution.Value); + private void OnMetabolismExclusion(Entity ent, ref MetabolismExclusionEvent args) + { + // Adding all blood reagents for filtering blood in metabolizer + foreach (var (reagentId, _) in ent.Comp.BloodReferenceSolution) + { + args.ReagentList.Add(reagentId.Prototype); + } } /// - /// Returns the current blood level as a percentage (between 0 and 1). + /// This returns the minimum amount of *usable* blood. + /// For multi reagent bloodstreams, if you have 100 of Reagent Y need 100, and 50 of Reagent X and need 100, + /// this will return 0.5f /// - public float GetBloodLevelPercentage(Entity ent) + /// Returns the current blood level as a value from 0 to + public float GetBloodLevel(Entity entity) { - if (!Resolve(ent, ref ent.Comp) - || !SolutionContainer.ResolveSolution(ent.Owner, ent.Comp.BloodSolutionName, ref ent.Comp.BloodSolution, out var bloodSolution)) + if (!Resolve(entity, ref entity.Comp) + || !SolutionContainer.ResolveSolution(entity.Owner, entity.Comp.BloodSolutionName, ref entity.Comp.BloodSolution, out var bloodSolution) + || entity.Comp.BloodReferenceSolution.Volume == 0) { return 0.0f; } - return bloodSolution.FillFraction; + var totalBloodLevel = FixedPoint2.New(entity.Comp.MaxVolumeModifier); // Can't go above max volume factor... + + foreach (var (reagentId, quantity) in entity.Comp.BloodReferenceSolution.Contents) + { + // Ideally we use a different calculation for blood pressure, this just defines how much *usable* blood you have! + totalBloodLevel = FixedPoint2.Min(totalBloodLevel, bloodSolution.GetTotalPrototypeQuantity(reagentId.Prototype) / quantity); + } + + return (float)totalBloodLevel; } /// @@ -327,33 +343,95 @@ public abstract class SharedBloodstreamSystem : EntitySystem /// /// Attempt to transfer a provided solution to internal solution. /// - public bool TryAddToChemicals(Entity ent, Solution solution) + public bool TryAddToBloodstream(Entity ent, Solution solution) { if (!Resolve(ent, ref ent.Comp, logMissing: false) - || !SolutionContainer.ResolveSolution(ent.Owner, ent.Comp.ChemicalSolutionName, ref ent.Comp.ChemicalSolution)) + || !SolutionContainer.ResolveSolution(ent.Owner, ent.Comp.BloodSolutionName, ref ent.Comp.BloodSolution)) return false; - if (SolutionContainer.TryAddSolution(ent.Comp.ChemicalSolution.Value, solution)) + if (SolutionContainer.TryAddSolution(ent.Comp.BloodSolution.Value, solution)) return true; return false; } /// - /// Removes a certain amount of all reagents except of a single excluded one from the bloodstream. + /// Removes a certain amount of all reagents except of a single excluded one from the bloodstream and blood itself. /// - public bool FlushChemicals(Entity ent, ProtoId? excludedReagentID, FixedPoint2 quantity) + /// + /// Solution of removed chemicals or null if none were removed. + /// + public Solution? FlushChemicals(Entity ent, FixedPoint2 quantity, ProtoId? excludedReagent = null ) { if (!Resolve(ent, ref ent.Comp, logMissing: false) - || !SolutionContainer.ResolveSolution(ent.Owner, ent.Comp.ChemicalSolutionName, ref ent.Comp.ChemicalSolution, out var chemSolution)) + || !SolutionContainer.ResolveSolution(ent.Owner, ent.Comp.BloodSolutionName, ref ent.Comp.BloodSolution, out var bloodSolution)) + return null; + + var flushedSolution = new Solution(); + + for (var i = bloodSolution.Contents.Count - 1; i >= 0; i--) + { + var (reagentId, _) = bloodSolution.Contents[i]; + if (ent.Comp.BloodReferenceSolution.ContainsPrototype(reagentId.Prototype) || reagentId.Prototype == excludedReagent) + continue; + + var reagentFlushAmount = SolutionContainer.RemoveReagent(ent.Comp.BloodSolution.Value, reagentId, quantity); + flushedSolution.AddReagent(reagentId, reagentFlushAmount); + } + + return flushedSolution.Volume == 0 ? null : flushedSolution; + } + + /// + /// A simple helper that tries to move blood volume up or down by a specified amount. + /// Blood will not go over normal volume for this entity's bloodstream. + /// + public bool TryModifyBloodLevel(Entity ent, FixedPoint2 amount) + { + var reference = 1f; + + if (amount < 0) + { + reference = 0f; + amount *= -1; + } + + return TryRegulateBloodLevel(ent, amount, reference); + } + + /// + /// Attempts to bring an entity's blood level to a modified equilibrium volume. + /// + /// Entity whose bloodstream we're modifying. + /// The absolute maximum amount of blood we can add or remove. + /// The modifier for an entity's blood equilibrium, try to hit an entity's default blood volume multiplied by this value. + /// This CANNOT go above maximum blood volume! + /// False if we were unable to regulate blood level. This may return true even if blood level doesn't change! + public bool TryRegulateBloodLevel(Entity ent, FixedPoint2 amount, float referenceFactor = 1f) + { + if (!Resolve(ent, ref ent.Comp, logMissing: false) + || !SolutionContainer.ResolveSolution(ent.Owner, ent.Comp.BloodSolutionName, ref ent.Comp.BloodSolution, out var bloodSolution) + || amount == 0) return false; - for (var i = chemSolution.Contents.Count - 1; i >= 0; i--) + referenceFactor = Math.Clamp(referenceFactor, 0f, ent.Comp.MaxVolumeModifier); + + foreach (var (referenceReagent, referenceQuantity) in ent.Comp.BloodReferenceSolution) { - var (reagentId, _) = chemSolution.Contents[i]; - if (reagentId.Prototype != excludedReagentID) + var error = referenceQuantity * referenceFactor - bloodSolution.GetTotalPrototypeQuantity(referenceReagent.Prototype); + var adjustedAmount = amount * referenceQuantity / ent.Comp.BloodReferenceSolution.Volume; + + if (error > 0) { - SolutionContainer.RemoveReagent(ent.Comp.ChemicalSolution.Value, reagentId, quantity); + error = FixedPoint2.Min(error, adjustedAmount); + var reagentToAdd = new ReagentId(referenceReagent.Prototype, GetEntityBloodData(ent)); + bloodSolution.AddReagent(reagentToAdd, error); + } + else if (error < 0) + { + // invert the error since we're removing reagents... + error = FixedPoint2.Min( -error, adjustedAmount); + bloodSolution.RemoveReagent(referenceReagent, error); } } @@ -361,43 +439,26 @@ public abstract class SharedBloodstreamSystem : EntitySystem } /// - /// Attempts to modify the blood level of this entity directly. + /// Removes blood by spilling out the bloodstream. /// - public bool TryModifyBloodLevel(Entity ent, FixedPoint2 amount) + public bool TryBleedOut(Entity ent, FixedPoint2 amount) { if (!Resolve(ent, ref ent.Comp, logMissing: false) - || !SolutionContainer.ResolveSolution(ent.Owner, ent.Comp.BloodSolutionName, ref ent.Comp.BloodSolution, out var bloodSolution)) - return false; - - if (amount >= 0) + || !SolutionContainer.ResolveSolution(ent.Owner, ent.Comp.BloodSolutionName, ref ent.Comp.BloodSolution) + || amount <= 0) { - var min = FixedPoint2.Min(bloodSolution.AvailableVolume, amount); - var solution = ent.Comp.BloodReagents.Clone(); - solution.ScaleTo(min); - solution.SetReagentData(GetEntityBloodData(ent)); - SolutionContainer.AddSolution(ent.Comp.BloodSolution.Value, solution); - return min == amount; + return false; } - // Removal is more involved, - // since we also wanna handle moving it to the temporary solution - // and then spilling it if necessary. - var newSol = SolutionContainer.SplitSolution(ent.Comp.BloodSolution.Value, -amount); + var leakedBlood = SolutionContainer.SplitSolution(ent.Comp.BloodSolution.Value, amount); if (!SolutionContainer.ResolveSolution(ent.Owner, ent.Comp.BloodTemporarySolutionName, ref ent.Comp.TemporarySolution, out var tempSolution)) return true; - tempSolution.AddSolution(newSol, PrototypeManager); + tempSolution.AddSolution(leakedBlood, PrototypeManager); if (tempSolution.Volume > ent.Comp.BleedPuddleThreshold) { - // Pass some of the chemstream into the spilled blood. - if (SolutionContainer.ResolveSolution(ent.Owner, ent.Comp.ChemicalSolutionName, ref ent.Comp.ChemicalSolution)) - { - var temp = SolutionContainer.SplitSolution(ent.Comp.ChemicalSolution.Value, tempSolution.Volume / 10); - tempSolution.AddSolution(temp, PrototypeManager); - } - _puddle.TrySpillAt(ent.Owner, tempSolution, out _, sound: false); tempSolution.RemoveAllSolution(); @@ -450,13 +511,6 @@ public abstract class SharedBloodstreamSystem : EntitySystem SolutionContainer.RemoveAllSolution(ent.Comp.BloodSolution.Value); } - if (SolutionContainer.ResolveSolution(ent.Owner, ent.Comp.ChemicalSolutionName, ref ent.Comp.ChemicalSolution, out var chemSolution)) - { - tempSol.MaxVolume += chemSolution.MaxVolume; - tempSol.AddSolution(chemSolution, PrototypeManager); - SolutionContainer.RemoveAllSolution(ent.Comp.ChemicalSolution.Value); - } - if (SolutionContainer.ResolveSolution(ent.Owner, ent.Comp.BloodTemporarySolutionName, ref ent.Comp.TemporarySolution, out var tempSolution)) { tempSol.MaxVolume += tempSolution.MaxVolume; @@ -488,24 +542,24 @@ public abstract class SharedBloodstreamSystem : EntitySystem if (!SolutionContainer.ResolveSolution(ent.Owner, ent.Comp.BloodSolutionName, ref ent.Comp.BloodSolution, out var bloodSolution)) { - ent.Comp.BloodReagents = reagents.Clone(); - DirtyField(ent, ent.Comp, nameof(BloodstreamComponent.BloodReagents)); + ent.Comp.BloodReferenceSolution = reagents.Clone(); + DirtyField(ent, ent.Comp, nameof(BloodstreamComponent.BloodReferenceSolution)); return; } var currentVolume = FixedPoint2.Zero; - foreach (var reagent in ent.Comp.BloodReagents) + foreach (var reagent in ent.Comp.BloodReferenceSolution) { currentVolume += bloodSolution.RemoveReagent(reagent.Reagent, quantity: bloodSolution.Volume, ignoreReagentData: true); } - ent.Comp.BloodReagents = reagents.Clone(); - DirtyField(ent, ent.Comp, nameof(BloodstreamComponent.BloodReagents)); + ent.Comp.BloodReferenceSolution = reagents.Clone(); + DirtyField(ent, ent.Comp, nameof(BloodstreamComponent.BloodReferenceSolution)); if (currentVolume == FixedPoint2.Zero) return; - var solution = ent.Comp.BloodReagents.Clone(); + var solution = ent.Comp.BloodReferenceSolution.Clone(); solution.ScaleSolution(currentVolume / solution.Volume); solution.SetReagentData(GetEntityBloodData(ent)); SolutionContainer.AddSolution(ent.Comp.BloodSolution.Value, solution); diff --git a/Content.Shared/Chemistry/EntitySystems/SharedInjectorSystem.cs b/Content.Shared/Chemistry/EntitySystems/SharedInjectorSystem.cs index a39f851457..e20045fc78 100644 --- a/Content.Shared/Chemistry/EntitySystems/SharedInjectorSystem.cs +++ b/Content.Shared/Chemistry/EntitySystems/SharedInjectorSystem.cs @@ -335,8 +335,8 @@ public abstract class SharedInjectorSystem : EntitySystem EntityUid user) { // Get transfer amount. May be smaller than _transferAmount if not enough room - if (!SolutionContainer.ResolveSolution(target.Owner, target.Comp.ChemicalSolutionName, - ref target.Comp.ChemicalSolution, out var chemSolution)) + if (!SolutionContainer.ResolveSolution(target.Owner, target.Comp.BloodSolutionName, + ref target.Comp.BloodSolution, out var bloodSolution)) { LocId msg = target.Owner == user ? "injector-component-cannot-inject-message-self" : "injector-component-cannot-inject-message"; _popup.PopupClient( @@ -346,7 +346,7 @@ public abstract class SharedInjectorSystem : EntitySystem return false; } - var realTransferAmount = FixedPoint2.Min(injector.Comp.CurrentTransferAmount, chemSolution.AvailableVolume); + var realTransferAmount = FixedPoint2.Min(injector.Comp.CurrentTransferAmount, bloodSolution.AvailableVolume); if (realTransferAmount <= 0) { LocId msg = target.Owner == user ? "injector-component-cannot-inject-message-self" : "injector-component-cannot-inject-message"; @@ -358,9 +358,9 @@ public abstract class SharedInjectorSystem : EntitySystem } // Move units from attackSolution to targetSolution - var removedSolution = SolutionContainer.SplitSolution(target.Comp.ChemicalSolution.Value, realTransferAmount); + var removedSolution = SolutionContainer.SplitSolution(target.Comp.BloodSolution.Value, realTransferAmount); - _blood.TryAddToChemicals(target.AsNullable(), removedSolution); + _blood.TryAddToBloodstream(target.AsNullable(), removedSolution); _reactiveSystem.DoEntityReaction(target, removedSolution, ReactionMethod.Injection); @@ -438,20 +438,10 @@ public abstract class SharedInjectorSystem : EntitySystem private void DrawFromBlood(Entity injector, Entity target, Entity injectorSolution, FixedPoint2 transferAmount, EntityUid user) { - var drawAmount = (float)transferAmount; - - if (SolutionContainer.ResolveSolution(target.Owner, target.Comp.ChemicalSolutionName, - ref target.Comp.ChemicalSolution)) - { - var chemTemp = SolutionContainer.SplitSolution(target.Comp.ChemicalSolution.Value, drawAmount * 0.15f); - SolutionContainer.TryAddSolution(injectorSolution, chemTemp); - drawAmount -= (float)chemTemp.Volume; - } - if (SolutionContainer.ResolveSolution(target.Owner, target.Comp.BloodSolutionName, ref target.Comp.BloodSolution)) { - var bloodTemp = SolutionContainer.SplitSolution(target.Comp.BloodSolution.Value, drawAmount); + var bloodTemp = SolutionContainer.SplitSolution(target.Comp.BloodSolution.Value, transferAmount); SolutionContainer.TryAddSolution(injectorSolution, bloodTemp); } diff --git a/Content.Shared/Devour/DevourSystem.cs b/Content.Shared/Devour/DevourSystem.cs index 71b1bd6396..b0aca4f10d 100644 --- a/Content.Shared/Devour/DevourSystem.cs +++ b/Content.Shared/Devour/DevourSystem.cs @@ -108,7 +108,7 @@ public sealed class DevourSystem : EntitySystem // Grant ichor if the devoured thing meets the dragon's food preference if (args.Args.Target != null && _whitelistSystem.IsWhitelistPassOrNull(ent.Comp.FoodPreferenceWhitelist, (EntityUid)args.Args.Target)) { - _bloodstreamSystem.TryAddToChemicals(ent.Owner, ichorInjection); + _bloodstreamSystem.TryAddToBloodstream(ent.Owner, ichorInjection); } // If the devoured thing meets the stomach whitelist criteria, add it to the stomach diff --git a/Content.Shared/EntityEffects/Effects/Body/CleanBloodstreamEntityEffectSystem.cs b/Content.Shared/EntityEffects/Effects/Body/CleanBloodstreamEntityEffectSystem.cs index 402a50538a..a5752b858e 100644 --- a/Content.Shared/EntityEffects/Effects/Body/CleanBloodstreamEntityEffectSystem.cs +++ b/Content.Shared/EntityEffects/Effects/Body/CleanBloodstreamEntityEffectSystem.cs @@ -19,7 +19,7 @@ public sealed partial class CleanBloodstreamEntityEffectSystem : EntityEffectSys { var scale = args.Scale * args.Effect.CleanseRate; - _bloodstream.FlushChemicals((entity, entity), args.Effect.Excluded, scale); + _bloodstream.FlushChemicals((entity, entity), scale, args.Effect.Excluded); } } diff --git a/Content.Shared/Medical/Cryogenics/SharedCryoPodSystem.cs b/Content.Shared/Medical/Cryogenics/SharedCryoPodSystem.cs index 3fcc3da848..a7bbe39c56 100644 --- a/Content.Shared/Medical/Cryogenics/SharedCryoPodSystem.cs +++ b/Content.Shared/Medical/Cryogenics/SharedCryoPodSystem.cs @@ -108,7 +108,7 @@ public abstract partial class SharedCryoPodSystem : EntitySystem && _bloodstreamQuery.TryComp(patient, out var bloodstream)) { var solutionToInject = _solutionContainer.SplitSolution(containerSolution.Value, cryoPod.BeakerTransferAmount); - _bloodstream.TryAddToChemicals((patient.Value, bloodstream), solutionToInject); + _bloodstream.TryAddToBloodstream((patient.Value, bloodstream), solutionToInject); _reactive.DoEntityReaction(patient.Value, solutionToInject, ReactionMethod.Injection); } } diff --git a/Content.Shared/Medical/Healing/HealingSystem.cs b/Content.Shared/Medical/Healing/HealingSystem.cs index bd9f0003ba..fa27b4688e 100644 --- a/Content.Shared/Medical/Healing/HealingSystem.cs +++ b/Content.Shared/Medical/Healing/HealingSystem.cs @@ -141,7 +141,7 @@ public sealed class HealingSystem : EntitySystem // Is ent missing blood that we can restore? if (healing.Comp.ModifyBloodLevel > 0 && _solutionContainerSystem.ResolveSolution(target.Owner, bloodstream.BloodSolutionName, ref bloodstream.BloodSolution, out var bloodSolution) - && bloodSolution.Volume < bloodSolution.MaxVolume) + && _bloodstreamSystem.GetBloodLevel((target, bloodstream)) < 1) { return true; } diff --git a/Content.Shared/Medical/VomitSystem.cs b/Content.Shared/Medical/VomitSystem.cs index d398faef20..cf927754e3 100644 --- a/Content.Shared/Medical/VomitSystem.cs +++ b/Content.Shared/Medical/VomitSystem.cs @@ -107,14 +107,17 @@ public sealed class VomitSystem : EntitySystem { var vomitAmount = solutionSize; - // Takes 10% of the chemicals removed from the chem stream - if (_solutionContainer.ResolveSolution(uid, bloodStream.ChemicalSolutionName, ref bloodStream.ChemicalSolution)) + // Flushes small portion of the chemicals removed from the bloodstream stream + if (_solutionContainer.ResolveSolution(uid, bloodStream.BloodSolutionName, ref bloodStream.BloodSolution)) { - var vomitChemstreamAmount = _solutionContainer.SplitSolution(bloodStream.ChemicalSolution.Value, vomitAmount); - vomitChemstreamAmount.ScaleSolution(ChemMultiplier); - solution.AddSolution(vomitChemstreamAmount, _proto); + var vomitChemstreamAmount = _bloodstream.FlushChemicals((uid, bloodStream), vomitAmount); - vomitAmount -= (float)vomitChemstreamAmount.Volume; + if (vomitChemstreamAmount != null) + { + vomitChemstreamAmount.ScaleSolution(ChemMultiplier); + solution.AddSolution(vomitChemstreamAmount, _proto); + vomitAmount -= (float)vomitChemstreamAmount.Volume; + } } // Makes a vomit solution the size of 90% of the chemicals removed from the chemstream diff --git a/Content.Shared/Rootable/RootableSystem.cs b/Content.Shared/Rootable/RootableSystem.cs index edb04f959e..1d718dbdf3 100644 --- a/Content.Shared/Rootable/RootableSystem.cs +++ b/Content.Shared/Rootable/RootableSystem.cs @@ -102,17 +102,17 @@ public sealed class RootableSystem : EntitySystem /// private void ReactWithEntity(Entity ent, Entity puddleEntity, Solution solution) { - if (!_solutionContainer.ResolveSolution(ent.Owner, ent.Comp2.ChemicalSolutionName, ref ent.Comp2.ChemicalSolution, out var chemSolution) || chemSolution.AvailableVolume <= 0) + if (!_solutionContainer.ResolveSolution(ent.Owner, ent.Comp2.BloodSolutionName, ref ent.Comp2.BloodSolution, out var bloodSolution) || bloodSolution.AvailableVolume <= 0) return; var availableTransfer = FixedPoint2.Min(solution.Volume, ent.Comp1.TransferRate); - var transferAmount = FixedPoint2.Min(availableTransfer, chemSolution.AvailableVolume); + var transferAmount = FixedPoint2.Min(availableTransfer, bloodSolution.AvailableVolume); var transferSolution = _solutionContainer.SplitSolution(puddleEntity.Comp.Solution!.Value, transferAmount); _reactive.DoEntityReaction(ent, transferSolution, ReactionMethod.Ingestion); // Log solution addition by puddle. - if (_blood.TryAddToChemicals((ent, ent.Comp2), transferSolution)) + if (_blood.TryAddToBloodstream((ent, ent.Comp2), transferSolution)) _logger.Add(LogType.ForceFeed, LogImpact.Medium, $"{ToPrettyString(ent):target} absorbed puddle {SharedSolutionContainerSystem.ToPrettyString(transferSolution)}"); } diff --git a/Resources/Prototypes/Entities/Mobs/NPCs/animals.yml b/Resources/Prototypes/Entities/Mobs/NPCs/animals.yml index 9965167256..05a72b3b33 100644 --- a/Resources/Prototypes/Entities/Mobs/NPCs/animals.yml +++ b/Resources/Prototypes/Entities/Mobs/NPCs/animals.yml @@ -50,7 +50,10 @@ - type: SentienceTarget flavorKind: station-event-random-sentience-flavor-organic - type: Bloodstream - bloodMaxVolume: 50 + bloodReferenceSolution: + reagents: + - ReagentId: Blood + Quantity: 50 - type: ReplacementAccent accent: mouse - type: MeleeWeapon @@ -140,11 +143,10 @@ - Bee - Trash - type: Bloodstream - bloodReagents: + bloodReferenceSolution: reagents: - ReagentId: InsectBlood - Quantity: 1 - bloodMaxVolume: 0.1 + Quantity: 0.1 - type: MobPrice price: 50 - type: NPCRetaliation @@ -190,7 +192,10 @@ factions: - SimpleHostile - type: Bloodstream - bloodMaxVolume: 0.1 + bloodReferenceSolution: + reagents: + - ReagentId: Blood + Quantity: 0.1 - type: ZombieImmune @@ -264,7 +269,10 @@ interactSuccessSound: path: /Audio/Animals/chicken_cluck_happy.ogg - type: Bloodstream - bloodMaxVolume: 100 + bloodReferenceSolution: + reagents: + - ReagentId: Blood + Quantity: 100 - type: EggLayer eggSpawn: - id: FoodEgg @@ -391,11 +399,10 @@ Dead: Base: cockroach_dead - type: Bloodstream - bloodReagents: + bloodReferenceSolution: reagents: - ReagentId: InsectBlood - Quantity: 1 - bloodMaxVolume: 20 + Quantity: 20 - type: Edible - type: FlavorProfile flavors: @@ -558,10 +565,10 @@ damageContainer: Biological damageModifierSet: Moth - type: Bloodstream - bloodReagents: + bloodReferenceSolution: reagents: - ReagentId: InsectBlood - Quantity: 1 + Quantity: 20 - type: Respirator damage: types: @@ -713,7 +720,10 @@ interactSuccessSound: path: /Audio/Animals/duck_quack_happy.ogg - type: Bloodstream - bloodMaxVolume: 100 + bloodReferenceSolution: + reagents: + - ReagentId: Blood + Quantity: 100 - type: EggLayer eggSpawn: - id: FoodEgg @@ -841,11 +851,10 @@ tags: - Trash - type: Bloodstream - bloodReagents: + bloodReferenceSolution: reagents: - ReagentId: InsectBlood - Quantity: 1 - bloodMaxVolume: 0.1 + Quantity: 0.1 - type: MobPrice price: 50 - type: Destructible @@ -1001,11 +1010,10 @@ - type: ReplacementAccent accent: crab - type: Bloodstream - bloodMaxVolume: 50 - bloodReagents: + bloodReferenceSolution: reagents: - ReagentId: CopperBlood - Quantity: 1 + Quantity: 50 - type: Tag tags: - VimPilot @@ -1162,7 +1170,10 @@ interactSuccessSound: path: /Audio/Animals/goose_honk.ogg - type: Bloodstream - bloodMaxVolume: 100 + bloodReferenceSolution: + reagents: + - ReagentId: Blood + Quantity: 100 - type: NpcFactionMember factions: - Passive @@ -1204,7 +1215,10 @@ - id: FoodMeat amount: 4 - type: Bloodstream - bloodMaxVolume: 300 + bloodReferenceSolution: + reagents: + - ReagentId: Blood + Quantity: 300 # if you fuck with the gorilla he will harambe you - type: MeleeWeapon soundHit: @@ -1875,7 +1889,10 @@ types: Piercing: 0 - type: Bloodstream - bloodMaxVolume: 50 + bloodReferenceSolution: + reagents: + - ReagentId: Blood + Quantity: 50 - type: CanEscapeInventory - type: MobPrice price: 50 @@ -2011,10 +2028,10 @@ - type: RadiationSource intensity: 0.3 - type: Bloodstream - bloodReagents: + bloodReferenceSolution: reagents: - ReagentId: UnstableMutagen - Quantity: 1 + Quantity: 50 - type: SolutionContainerManager solutions: food: @@ -2080,7 +2097,10 @@ interactSuccessSound: path: /Audio/Animals/lizard_happy.ogg - type: Bloodstream - bloodMaxVolume: 150 + bloodReferenceSolution: + reagents: + - ReagentId: Blood + Quantity: 150 - type: Damageable damageContainer: Biological damageModifierSet: Scale @@ -2134,7 +2154,10 @@ interactFailureString: petting-failure-generic interactSuccessSpawn: EffectHearts - type: Bloodstream - bloodMaxVolume: 50 + bloodReferenceSolution: + reagents: + - ReagentId: Blood + Quantity: 50 - type: entity name: frog @@ -2190,7 +2213,10 @@ interactSuccessSound: path: /Audio/Animals/frog_ribbit.ogg - type: Bloodstream - bloodMaxVolume: 50 + bloodReferenceSolution: + reagents: + - ReagentId: Blood + Quantity: 50 - type: Tag tags: - VimPilot @@ -2281,7 +2307,10 @@ interactSuccessSound: path: /Audio/Animals/parrot_raught.ogg - type: Bloodstream - bloodMaxVolume: 50 + bloodReferenceSolution: + reagents: + - ReagentId: Blood + Quantity: 50 - type: entity parent: MobParrotBase @@ -2469,7 +2498,10 @@ interactFailureString: petting-failure-generic interactSuccessSpawn: EffectHearts - type: Bloodstream - bloodMaxVolume: 50 + bloodReferenceSolution: + reagents: + - ReagentId: Blood + Quantity: 50 - type: Damageable damageContainer: Biological damageModifierSet: Scale @@ -2532,11 +2564,10 @@ - type: Spider - type: IgnoreSpiderWeb - type: Bloodstream - bloodMaxVolume: 150 - bloodReagents: + bloodReferenceSolution: reagents: - ReagentId: CopperBlood - Quantity: 1 + Quantity: 150 - type: Speech speechVerb: Arachnid speechSounds: Arachnid @@ -2681,11 +2712,10 @@ - type: Speech speechVerb: Cluwne - type: Bloodstream - bloodMaxVolume: 150 - bloodReagents: + bloodReferenceSolution: reagents: - ReagentId: Laughter - Quantity: 1 + Quantity: 150 - type: entity name: wizard spider parent: MobGiantSpider @@ -2881,7 +2911,10 @@ attributes: gender: epicene - type: Bloodstream - bloodMaxVolume: 100 + bloodReferenceSolution: + reagents: + - ReagentId: Blood + Quantity: 100 - type: MeleeWeapon angle: 0 animation: WeaponArcBite @@ -3014,10 +3047,10 @@ attributes: gender: epicene - type: Bloodstream - bloodReagents: + bloodReferenceSolution: reagents: - ReagentId: DemonsBlood - Quantity: 1 + Quantity: 150 - type: Damageable damageContainer: BiologicalMetaphysical damageModifierSet: Infernal @@ -3539,7 +3572,10 @@ interactSuccessSound: path: /Audio/Animals/fox_squeak.ogg - type: Bloodstream - bloodMaxVolume: 60 + bloodReferenceSolution: + reagents: + - ReagentId: Blood + Quantity: 60 - type: CanEscapeInventory baseResistTime: 3 - type: MobPrice @@ -3657,11 +3693,10 @@ speciesId: cat templateId: pet - type: Bloodstream - bloodReagents: + bloodReferenceSolution: reagents: - ReagentId: Sap - Quantity: 1 - bloodMaxVolume: 60 + Quantity: 60 - type: DamageStateVisuals states: Alive: @@ -3765,7 +3800,10 @@ - id: FoodMeat amount: 4 - type: Bloodstream - bloodMaxVolume: 300 + bloodReferenceSolution: + reagents: + - ReagentId: Blood + Quantity: 300 # Horns though - type: MeleeWeapon damage: diff --git a/Resources/Prototypes/Entities/Mobs/NPCs/argocyte.yml b/Resources/Prototypes/Entities/Mobs/NPCs/argocyte.yml index 4c9f851ba0..ddb7b5f68c 100644 --- a/Resources/Prototypes/Entities/Mobs/NPCs/argocyte.yml +++ b/Resources/Prototypes/Entities/Mobs/NPCs/argocyte.yml @@ -18,11 +18,10 @@ - type: ReplacementAccent accent: xeno - type: Bloodstream - bloodReagents: + bloodReferenceSolution: reagents: - ReagentId: FerrochromicAcid - Quantity: 1 - bloodMaxVolume: 75 #we don't want the map to become pools of blood + Quantity: 75 #we don't want the map to become pools of blood bloodlossDamage: types: Bloodloss: diff --git a/Resources/Prototypes/Entities/Mobs/NPCs/asteroid.yml b/Resources/Prototypes/Entities/Mobs/NPCs/asteroid.yml index 5fbfb3eb91..f0a48a6577 100644 --- a/Resources/Prototypes/Entities/Mobs/NPCs/asteroid.yml +++ b/Resources/Prototypes/Entities/Mobs/NPCs/asteroid.yml @@ -49,8 +49,10 @@ baseWalkSpeed : 2.00 baseSprintSpeed : 2.00 - type: Bloodstream - bloodMaxVolume: 350 - chemicalMaxVolume: 0 + bloodReferenceSolution: + reagents: + - ReagentId: Blood + Quantity: 350 - type: MobThresholds thresholds: 0: Alive @@ -404,8 +406,10 @@ capacity: 1 count: 1 - type: Bloodstream - bloodMaxVolume: 200 - chemicalMaxVolume: 0 + bloodReferenceSolution: + reagents: + - ReagentId: Blood + Quantity: 200 - type: NpcFactionMember factions: - SimpleHostile diff --git a/Resources/Prototypes/Entities/Mobs/NPCs/behonker.yml b/Resources/Prototypes/Entities/Mobs/NPCs/behonker.yml index 23e3230937..5c575da396 100644 --- a/Resources/Prototypes/Entities/Mobs/NPCs/behonker.yml +++ b/Resources/Prototypes/Entities/Mobs/NPCs/behonker.yml @@ -114,11 +114,10 @@ - type: Input context: "human" - type: Bloodstream - bloodMaxVolume: 300 - bloodReagents: + bloodReferenceSolution: reagents: - ReagentId: Laughter - Quantity: 1 + Quantity: 300 - type: entity name: behonker parent: BaseMobBehonker diff --git a/Resources/Prototypes/Entities/Mobs/NPCs/elemental.yml b/Resources/Prototypes/Entities/Mobs/NPCs/elemental.yml index 79df100598..b430689361 100644 --- a/Resources/Prototypes/Entities/Mobs/NPCs/elemental.yml +++ b/Resources/Prototypes/Entities/Mobs/NPCs/elemental.yml @@ -349,11 +349,10 @@ speedModifierThresholds: 50: 0.4 - type: Bloodstream - bloodReagents: + bloodReferenceSolution: reagents: - ReagentId: Water - Quantity: 1 - chemicalMaxVolume: 100 + Quantity: 100 - type: StatusEffects allowed: - Electrocution @@ -421,10 +420,10 @@ suffix: Beer components: - type: Bloodstream - bloodReagents: + bloodReferenceSolution: reagents: - ReagentId: Beer - Quantity: 1 + Quantity: 100 - type: PointLight color: "#cfa85f" - type: Sprite @@ -441,10 +440,10 @@ suffix: Pax components: - type: Bloodstream - bloodReagents: + bloodReferenceSolution: reagents: - ReagentId: Pax - Quantity: 1 + Quantity: 100 - type: PointLight color: "#AAAAAA" - type: Sprite @@ -464,10 +463,10 @@ suffix: Nocturine components: - type: Bloodstream - bloodReagents: + bloodReferenceSolution: reagents: - ReagentId: Nocturine - Quantity: 1 + Quantity: 100 - type: PointLight color: "#128e80" - type: Sprite @@ -487,10 +486,10 @@ suffix: THC components: - type: Bloodstream - bloodReagents: + bloodReferenceSolution: reagents: - ReagentId: THC - Quantity: 1 + Quantity: 100 - type: PointLight color: "#808080" - type: Sprite @@ -507,10 +506,10 @@ suffix: Bicaridine components: - type: Bloodstream - bloodReagents: + bloodReferenceSolution: reagents: - ReagentId: Bicaridine - Quantity: 1 + Quantity: 100 - type: PointLight color: "#ffaa00" - type: Sprite @@ -527,10 +526,10 @@ suffix: Toxin components: - type: Bloodstream - bloodReagents: + bloodReferenceSolution: reagents: - ReagentId: Toxin - Quantity: 1 + Quantity: 100 - type: PointLight color: "#cf3600" - type: Sprite @@ -547,10 +546,10 @@ suffix: Napalm components: - type: Bloodstream - bloodReagents: + bloodReferenceSolution: reagents: - ReagentId: Napalm - Quantity: 1 + Quantity: 100 - type: PointLight color: "#FA00AF" - type: Sprite @@ -567,10 +566,10 @@ suffix: Omnizine components: - type: Bloodstream - bloodReagents: + bloodReferenceSolution: reagents: - ReagentId: Omnizine - Quantity: 1 + Quantity: 100 - type: PointLight color: "#fcf7f9" - type: Sprite @@ -587,10 +586,10 @@ suffix: Mute Toxin components: - type: Bloodstream - bloodReagents: + bloodReferenceSolution: reagents: - ReagentId: MuteToxin - Quantity: 1 + Quantity: 100 - type: PointLight color: "#0f0f0f" - type: Sprite @@ -607,10 +606,10 @@ suffix: Norepinephric Acid components: - type: Bloodstream - bloodReagents: + bloodReferenceSolution: reagents: - ReagentId: NorepinephricAcid - Quantity: 1 + Quantity: 100 - type: PointLight color: "#96a8b5" - type: Sprite @@ -627,10 +626,10 @@ suffix: Ephedrine components: - type: Bloodstream - bloodReagents: + bloodReferenceSolution: reagents: - ReagentId: Ephedrine - Quantity: 1 + Quantity: 100 - type: PointLight color: "#D2FFFA" - type: Sprite @@ -647,10 +646,10 @@ suffix: Robust Harvest components: - type: Bloodstream - bloodReagents: + bloodReferenceSolution: reagents: - ReagentId: RobustHarvest - Quantity: 1 + Quantity: 100 - type: PointLight color: "#3e901c" - type: Sprite diff --git a/Resources/Prototypes/Entities/Mobs/NPCs/flesh.yml b/Resources/Prototypes/Entities/Mobs/NPCs/flesh.yml index f3ec5ff80b..75f0aa83b8 100644 --- a/Resources/Prototypes/Entities/Mobs/NPCs/flesh.yml +++ b/Resources/Prototypes/Entities/Mobs/NPCs/flesh.yml @@ -48,7 +48,10 @@ - id: FoodMeat amount: 1 - type: Bloodstream - bloodMaxVolume: 100 + bloodReferenceSolution: + reagents: + - ReagentId: Blood + Quantity: 100 - type: CombatMode - type: MeleeWeapon soundHit: @@ -247,7 +250,10 @@ - id: FoodMeat amount: 1 - type: Bloodstream - bloodMaxVolume: 100 + bloodReferenceSolution: + reagents: + - ReagentId: Blood + Quantity: 100 - type: CombatMode - type: MeleeWeapon soundHit: diff --git a/Resources/Prototypes/Entities/Mobs/NPCs/miscellaneous.yml b/Resources/Prototypes/Entities/Mobs/NPCs/miscellaneous.yml index ad392145e1..ac4f476a35 100644 --- a/Resources/Prototypes/Entities/Mobs/NPCs/miscellaneous.yml +++ b/Resources/Prototypes/Entities/Mobs/NPCs/miscellaneous.yml @@ -153,12 +153,10 @@ - map: [ "enum.DamageStateVisualLayers.Base" ] state: alive - type: Bloodstream - bloodReagents: + bloodReferenceSolution: reagents: - ReagentId: JuiceTomato - Quantity: 1 - bloodMaxVolume: 50 - chemicalMaxVolume: 30 + Quantity: 50 - type: DamageStateVisuals states: Alive: diff --git a/Resources/Prototypes/Entities/Mobs/NPCs/simplemob.yml b/Resources/Prototypes/Entities/Mobs/NPCs/simplemob.yml index f9e8e4e33a..d0ea13f26e 100644 --- a/Resources/Prototypes/Entities/Mobs/NPCs/simplemob.yml +++ b/Resources/Prototypes/Entities/Mobs/NPCs/simplemob.yml @@ -101,7 +101,10 @@ - RadiationProtection - Adrenaline - type: Bloodstream - bloodMaxVolume: 150 + bloodReferenceSolution: + reagents: + - ReagentId: Blood + Quantity: 150 - type: MobPrice price: 150 - type: FloatingVisuals diff --git a/Resources/Prototypes/Entities/Mobs/NPCs/slimes.yml b/Resources/Prototypes/Entities/Mobs/NPCs/slimes.yml index 74c6bb1468..80269feef3 100644 --- a/Resources/Prototypes/Entities/Mobs/NPCs/slimes.yml +++ b/Resources/Prototypes/Entities/Mobs/NPCs/slimes.yml @@ -53,10 +53,10 @@ damageContainer: Biological damageModifierSet: Slime - type: Bloodstream - bloodReagents: + bloodReferenceSolution: reagents: - ReagentId: Slime - Quantity: 1 + Quantity: 150 bloodlossDamage: types: Bloodloss: diff --git a/Resources/Prototypes/Entities/Mobs/NPCs/space.yml b/Resources/Prototypes/Entities/Mobs/NPCs/space.yml index 8acc571ccf..d052728379 100644 --- a/Resources/Prototypes/Entities/Mobs/NPCs/space.yml +++ b/Resources/Prototypes/Entities/Mobs/NPCs/space.yml @@ -39,11 +39,10 @@ critThreshold: 150 - type: MovementAlwaysTouching - type: Bloodstream - bloodMaxVolume: 300 - bloodReagents: + bloodReferenceSolution: reagents: - ReagentId: Cryoxadone - Quantity: 1 + Quantity: 300 - type: CombatMode - type: Temperature heatDamageThreshold: 500 @@ -219,11 +218,10 @@ amount: 1 prob: 0.5 - type: Bloodstream - bloodMaxVolume: 250 - bloodReagents: + bloodReferenceSolution: reagents: - ReagentId: Cryoxadone - Quantity: 1 + Quantity: 250 - type: Fixtures fixtures: fix1: @@ -325,11 +323,10 @@ amount: 1 prob: 0.3 - type: Bloodstream - bloodMaxVolume: 200 - bloodReagents: + bloodReferenceSolution: reagents: - ReagentId: Cryoxadone - Quantity: 1 + Quantity: 200 - type: Fixtures fixtures: fix1: @@ -502,11 +499,10 @@ - type: CombatMode combatToggleAction: ActionCombatModeToggleOff - type: Bloodstream - bloodMaxVolume: 30 - bloodReagents: + bloodReferenceSolution: reagents: - ReagentId: Cryoxadone - Quantity: 1 + Quantity: 30 - type: CanEscapeInventory - type: MobPrice price: 50 diff --git a/Resources/Prototypes/Entities/Mobs/NPCs/spacetick.yml b/Resources/Prototypes/Entities/Mobs/NPCs/spacetick.yml index be7c034a39..780c4b0330 100644 --- a/Resources/Prototypes/Entities/Mobs/NPCs/spacetick.yml +++ b/Resources/Prototypes/Entities/Mobs/NPCs/spacetick.yml @@ -66,7 +66,10 @@ - id: FoodMeatXeno amount: 1 - type: Bloodstream - bloodMaxVolume: 50 + bloodReferenceSolution: + reagents: + - ReagentId: Blood + Quantity: 50 - type: CombatMode - type: MeleeWeapon soundHit: diff --git a/Resources/Prototypes/Entities/Mobs/NPCs/xeno.yml b/Resources/Prototypes/Entities/Mobs/NPCs/xeno.yml index f1c860364b..247d7636e5 100644 --- a/Resources/Prototypes/Entities/Mobs/NPCs/xeno.yml +++ b/Resources/Prototypes/Entities/Mobs/NPCs/xeno.yml @@ -67,11 +67,10 @@ - type: Stamina critThreshold: 200 - type: Bloodstream - bloodReagents: + bloodReferenceSolution: reagents: - ReagentId: FluorosulfuricAcid - Quantity: 1 - bloodMaxVolume: 650 + Quantity: 650 - type: MeleeWeapon altDisarm: false angle: 0 @@ -495,11 +494,10 @@ - type: Stamina critThreshold: 200 - type: Bloodstream - bloodReagents: + bloodReferenceSolution: reagents: - ReagentId: FluorosulfuricAcid - Quantity: 1 - bloodMaxVolume: 300 + Quantity: 300 - type: MeleeWeapon altDisarm: false angle: 0 diff --git a/Resources/Prototypes/Entities/Mobs/Player/dragon.yml b/Resources/Prototypes/Entities/Mobs/Player/dragon.yml index f4e6f1d39c..07bff11974 100644 --- a/Resources/Prototypes/Entities/Mobs/Player/dragon.yml +++ b/Resources/Prototypes/Entities/Mobs/Player/dragon.yml @@ -7,7 +7,10 @@ abstract: true components: - type: Bloodstream - bloodMaxVolume: 650 + bloodReferenceSolution: + reagents: + - ReagentId: Blood + Quantity: 650 - type: GhostRole allowMovement: true allowSpeech: true diff --git a/Resources/Prototypes/Entities/Mobs/Species/arachnid.yml b/Resources/Prototypes/Entities/Mobs/Species/arachnid.yml index e38e93a930..43c87f8994 100644 --- a/Resources/Prototypes/Entities/Mobs/Species/arachnid.yml +++ b/Resources/Prototypes/Entities/Mobs/Species/arachnid.yml @@ -42,10 +42,10 @@ - !type:WashCreamPie # Damage (Self) - type: Bloodstream - bloodReagents: + bloodReferenceSolution: reagents: - ReagentId: CopperBlood - Quantity: 1 + Quantity: 300 # Damage (Others) - type: MeleeWeapon animation: WeaponArcBite diff --git a/Resources/Prototypes/Entities/Mobs/Species/diona.yml b/Resources/Prototypes/Entities/Mobs/Species/diona.yml index 4dafbf99b9..1e9d7ea696 100644 --- a/Resources/Prototypes/Entities/Mobs/Species/diona.yml +++ b/Resources/Prototypes/Entities/Mobs/Species/diona.yml @@ -33,10 +33,10 @@ - id: FoodMeatPlant amount: 5 - type: Bloodstream - bloodReagents: + bloodReferenceSolution: reagents: - ReagentId: Sap - Quantity: 1 + Quantity: 300 - type: Reactive groups: Flammable: [ Touch ] diff --git a/Resources/Prototypes/Entities/Mobs/Species/gingerbread.yml b/Resources/Prototypes/Entities/Mobs/Species/gingerbread.yml index 7844c80082..794317464d 100644 --- a/Resources/Prototypes/Entities/Mobs/Species/gingerbread.yml +++ b/Resources/Prototypes/Entities/Mobs/Species/gingerbread.yml @@ -29,12 +29,12 @@ - id: FoodBakedCookie #should be replaced with gingerbread sheets or something... provided you're willing to make a full spriteset of those. amount: 5 - type: Bloodstream - bloodReagents: + bloodReferenceSolution: reagents: - ReagentId: Sugar - Quantity: 1 + Quantity: 100 - ReagentId: Butter - Quantity: 2 + Quantity: 200 - type: Fixtures fixtures: fix1: diff --git a/Resources/Prototypes/Entities/Mobs/Species/moth.yml b/Resources/Prototypes/Entities/Mobs/Species/moth.yml index d0adbcc28f..83031d61d9 100644 --- a/Resources/Prototypes/Entities/Mobs/Species/moth.yml +++ b/Resources/Prototypes/Entities/Mobs/Species/moth.yml @@ -33,10 +33,10 @@ - id: FoodMeat amount: 5 - type: Bloodstream - bloodReagents: + bloodReferenceSolution: reagents: - ReagentId: InsectBlood - Quantity: 1 + Quantity: 300 - type: DamageVisuals damageOverlayGroups: Brute: diff --git a/Resources/Prototypes/Entities/Mobs/Species/slime.yml b/Resources/Prototypes/Entities/Mobs/Species/slime.yml index 89115dd1c2..6b777f8c3b 100644 --- a/Resources/Prototypes/Entities/Mobs/Species/slime.yml +++ b/Resources/Prototypes/Entities/Mobs/Species/slime.yml @@ -68,10 +68,10 @@ Burn: sprite: Mobs/Effects/burn_damage.rsi - type: Bloodstream - bloodReagents: # TODO Color slime blood based on their slime color or smth + bloodReferenceSolution: # TODO Color slime blood based on their slime color or smth reagents: - ReagentId: Slime - Quantity: 1 + Quantity: 300 - type: Barotrauma damage: types: diff --git a/Resources/Prototypes/Entities/Mobs/Species/vox.yml b/Resources/Prototypes/Entities/Mobs/Species/vox.yml index ecc0cea5cd..c0b70ae2b8 100644 --- a/Resources/Prototypes/Entities/Mobs/Species/vox.yml +++ b/Resources/Prototypes/Entities/Mobs/Species/vox.yml @@ -89,10 +89,10 @@ Burn: sprite: Mobs/Effects/burn_damage.rsi - type: Bloodstream - bloodReagents: + bloodReferenceSolution: reagents: - ReagentId: AmmoniaBlood - Quantity: 1 + Quantity: 300 - type: MeleeWeapon soundHit: collection: AlienClaw diff --git a/Resources/Prototypes/Entities/Mobs/base.yml b/Resources/Prototypes/Entities/Mobs/base.yml index e2e918152a..a21ca14c5d 100644 --- a/Resources/Prototypes/Entities/Mobs/base.yml +++ b/Resources/Prototypes/Entities/Mobs/base.yml @@ -258,7 +258,7 @@ components: - type: SolutionContainerManager - type: InjectableSolution - solution: chemicals + solution: bloodstream - type: Bloodstream bloodlossDamage: types: diff --git a/Resources/Prototypes/Recipes/Reactions/drinks.yml b/Resources/Prototypes/Recipes/Reactions/drinks.yml index c048b27b1a..aa0cf4b6cd 100644 --- a/Resources/Prototypes/Recipes/Reactions/drinks.yml +++ b/Resources/Prototypes/Recipes/Reactions/drinks.yml @@ -982,6 +982,8 @@ - type: reaction id: RedMead + requiredMixerCategories: + - Stir reactants: Mead: amount: 1 diff --git a/Resources/Prototypes/Recipes/Reactions/fun.yml b/Resources/Prototypes/Recipes/Reactions/fun.yml index d27cdefc95..5a3764a504 100644 --- a/Resources/Prototypes/Recipes/Reactions/fun.yml +++ b/Resources/Prototypes/Recipes/Reactions/fun.yml @@ -43,6 +43,8 @@ - type: reaction id: SpaceGlue + requiredMixerCategories: + - Stir # prevents turning slimes to glue, TODO: make it react only X units per second; make bloodstream an open thermal system minTemp: 370 reactants: SpaceLube: diff --git a/Resources/Prototypes/Recipes/Reactions/single_reagent.yml b/Resources/Prototypes/Recipes/Reactions/single_reagent.yml index d5c0efd21a..64fcfdf920 100644 --- a/Resources/Prototypes/Recipes/Reactions/single_reagent.yml +++ b/Resources/Prototypes/Recipes/Reactions/single_reagent.yml @@ -22,6 +22,8 @@ - type: reaction id: SapBoiling + requiredMixerCategories: + - Stir # prevents cooking diona from inside out, TODO: make it react only X units per second; make bloodstream an open thermal system impact: Low minTemp: 377 reactants: From 30322514445215774d3486b3886860a9361125ea Mon Sep 17 00:00:00 2001 From: PJBot Date: Wed, 17 Dec 2025 19:35:02 +0000 Subject: [PATCH 188/205] Automatic changelog update --- Resources/Changelog/Changelog.yml | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) diff --git a/Resources/Changelog/Changelog.yml b/Resources/Changelog/Changelog.yml index 3a4e8dd9f8..9cf8b50721 100644 --- a/Resources/Changelog/Changelog.yml +++ b/Resources/Changelog/Changelog.yml @@ -1,14 +1,4 @@ Entries: -- author: SlamBamActionman - changes: - - message: Chemistry foam and smoke reactions now trigger after regular mix reactions. - type: Tweak - - message: Foam, smoke and explosion reactions no longer transfer the reagents' - energies to the container. - type: Tweak - id: 8808 - time: '2025-07-25T16:33:44.0000000+00:00' - url: https://github.com/space-wizards/space-station-14/pull/37915 - author: Quantum-cross changes: - message: Fixed pinpointer arrow not being centered properly. @@ -3920,3 +3910,11 @@ id: 9308 time: '2025-12-17T08:37:35.0000000+00:00' url: https://github.com/space-wizards/space-station-14/pull/41803 +- author: nkokic + changes: + - message: Bloodstream and Chemstream have been merged. Injected chemicals can now + react with your blood. + type: Tweak + id: 9309 + time: '2025-12-17T19:33:53.0000000+00:00' + url: https://github.com/space-wizards/space-station-14/pull/35071 From 97508e81a8da0eac59b036579aa06f95baa926db Mon Sep 17 00:00:00 2001 From: Tobias Berger Date: Wed, 17 Dec 2025 23:00:57 +0100 Subject: [PATCH 189/205] Update nix dev env (#41886) Update flake --- flake.lock | 8 ++++---- flake.nix | 23 ++++++++++++++++------- shell.nix | 23 +++++++++++++++-------- 3 files changed, 35 insertions(+), 19 deletions(-) diff --git a/flake.lock b/flake.lock index 1bed402bb0..565bff53e8 100644 --- a/flake.lock +++ b/flake.lock @@ -20,16 +20,16 @@ }, "nixpkgs": { "locked": { - "lastModified": 1737097711, - "narHash": "sha256-Zql7TDxEMAOASLSu0wBlfM5SIY+4Pz2R/k17O/asCYc=", + "lastModified": 1765890948, + "narHash": "sha256-Xe6fZzDS8uy9f17Pv6NEeBS9R6MFyuepbQUy6Xq/wH0=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "3cbc78cfa611511c04f47c4932509f9dbdf4381a", + "rev": "f92e917d0cefd3eca9d56ae25d689da841a989fd", "type": "github" }, "original": { "owner": "NixOS", - "ref": "release-24.11", + "ref": "release-25.11", "repo": "nixpkgs", "type": "github" } diff --git a/flake.nix b/flake.nix index 4ab9ab5a3a..532b73d519 100644 --- a/flake.nix +++ b/flake.nix @@ -1,13 +1,22 @@ { description = "Development environment for Space Station 14"; - inputs.nixpkgs.url = "github:NixOS/nixpkgs/release-24.11"; + inputs.nixpkgs.url = "github:NixOS/nixpkgs/release-25.11"; inputs.flake-utils.url = "github:numtide/flake-utils"; - outputs = { self, nixpkgs, flake-utils }: - flake-utils.lib.eachDefaultSystem (system: let - pkgs = nixpkgs.legacyPackages.${system}; - in { - devShells.default = import ./shell.nix { inherit pkgs; }; - }); + outputs = + { + self, + nixpkgs, + flake-utils, + }: + flake-utils.lib.eachDefaultSystem ( + system: + let + pkgs = nixpkgs.legacyPackages.${system}; + in + { + devShells.default = import ./shell.nix { inherit pkgs; }; + } + ); } diff --git a/shell.nix b/shell.nix index 5d1bcb024d..43f7349f1e 100644 --- a/shell.nix +++ b/shell.nix @@ -1,16 +1,20 @@ -{ pkgs ? (let lock = builtins.fromJSON (builtins.readFile ./flake.lock); -in import (builtins.fetchTarball { - url = - "https://github.com/NixOS/nixpkgs/archive/${lock.nodes.nixpkgs.locked.rev}.tar.gz"; - sha256 = lock.nodes.nixpkgs.locked.narHash; -}) { }) }: +{ + pkgs ? ( + let + lock = builtins.fromJSON (builtins.readFile ./flake.lock); + in + import (builtins.fetchTarball { + url = "https://github.com/NixOS/nixpkgs/archive/${lock.nodes.nixpkgs.locked.rev}.tar.gz"; + sha256 = lock.nodes.nixpkgs.locked.narHash; + }) { } + ), +}: let dependencies = with pkgs; [ dotnetCorePackages.sdk_9_0 icu glfw - SDL2 libGL openal freetype @@ -43,8 +47,11 @@ let at-spi2-core cups python3 + wayland + nixfmt ]; -in pkgs.mkShell { +in +pkgs.mkShell { name = "space-station-14-devshell"; buildInputs = [ pkgs.gtk3 ]; packages = dependencies; From 3c15d9f312db4543ff6b10ff502ae392bf36eafd Mon Sep 17 00:00:00 2001 From: Centronias Date: Wed, 17 Dec 2025 14:52:32 -0800 Subject: [PATCH 190/205] Adds BallisticAmmoSelfRefillerComponent (#38537) * Adds BallisticAmmoSelfRefillerComponent And uses it to replace battery-based refilling of the Syndicate L6 and Viper modules. # Automagic Ballistic Ammo Refilling - Add `BallisticAmmoSelfRefillerComponent` - Handle `EmpPulseEvent` to pause refilling behavior for EMP's duration # Supporting Changes - Change `Content.Server.Weapons.Ranged.Systems.Update` override in `GunSystem.AutoFire.cs` to `UpdateAutoFire` - Add `Content.Server.Weapons.Ranged.Systems.Update` to `GunSystem.cs` so that it can call `UpdateAutoFire` and `UpdateBallistic` - Add public methods to GunSystem for use by refilling implementation - PauseSelfRefill - IsFullBallistic (same as #299) - CanInsertBallistic (same as #299) - TryBallisticInsert (same as #299) * _timing -> Timing * unspawned count stuff * imagine building the code before pushing * - apply to c20r ROW - make predicted/shared * revert server system import only changes * oop * o great and wise Slarti * Scar comments * field deltas + correct serializer * review --------- Co-authored-by: ScarKy0 --- .../BallisticAmmoSelfRefillerComponent.cs | 61 ++++++ .../Systems/SharedGunSystem.Ballistic.cs | 180 +++++++++++++++--- .../Weapons/Ranged/Systems/SharedGunSystem.cs | 1 + .../Objects/Weapons/Guns/LMGs/lmgs.yml | 16 +- .../Objects/Weapons/Guns/Pistols/pistols.yml | 18 +- .../Objects/Weapons/Guns/SMGs/smgs.yml | 16 +- 6 files changed, 247 insertions(+), 45 deletions(-) create mode 100644 Content.Shared/Weapons/Ranged/Components/BallisticAmmoSelfRefillerComponent.cs diff --git a/Content.Shared/Weapons/Ranged/Components/BallisticAmmoSelfRefillerComponent.cs b/Content.Shared/Weapons/Ranged/Components/BallisticAmmoSelfRefillerComponent.cs new file mode 100644 index 0000000000..acaeca89dc --- /dev/null +++ b/Content.Shared/Weapons/Ranged/Components/BallisticAmmoSelfRefillerComponent.cs @@ -0,0 +1,61 @@ +using Content.Shared.Power.Components; +using Content.Shared.Weapons.Ranged.Systems; +using Robust.Shared.GameStates; +using Robust.Shared.Prototypes; +using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom; + +namespace Content.Shared.Weapons.Ranged.Components; + +/// +/// This component, analogous to , will attempt insert ballistic ammunition +/// into its owner's . +/// +[RegisterComponent, NetworkedComponent, AutoGenerateComponentState(fieldDeltas: true), AutoGenerateComponentPause, + Access(typeof(SharedGunSystem))] +public sealed partial class BallisticAmmoSelfRefillerComponent : Component +{ + /// + /// True if the refilling behavior is active, false otherwise. + /// + [DataField, AutoNetworkedField] + public bool AutoRefill = true; + + /// + /// How often a new piece of ammunition is inserted into the owner's . + /// + [DataField, AutoNetworkedField] + public TimeSpan AutoRefillRate = TimeSpan.FromSeconds(1); + + /// + /// If true, causes the refilling behavior to be delayed by at least after + /// the owner is fired. + /// + [DataField, AutoNetworkedField] + public bool FiringPausesAutoRefill = false; + + /// + /// How long to pause for if is true. + /// + [DataField, AutoNetworkedField] + public TimeSpan AutoRefillPauseDuration = TimeSpan.Zero; + + /// + /// What entity to spawn and attempt to insert into the owner. If null, uses + /// . If that's also null, this component does nothing but log + /// errors. + /// + [DataField, AutoNetworkedField] + public EntProtoId? AmmoProto; + + /// + /// If true, EMPs will pause this component's behavior. + /// + [DataField, AutoNetworkedField] + public bool AffectedByEmp = false; + + /// + /// When the next auto refill should occur. This is just implementation state. + /// + [DataField(customTypeSerializer: typeof(TimeOffsetSerializer)), AutoNetworkedField, AutoPausedField] + public TimeSpan NextAutoRefill = TimeSpan.Zero; +} diff --git a/Content.Shared/Weapons/Ranged/Systems/SharedGunSystem.Ballistic.cs b/Content.Shared/Weapons/Ranged/Systems/SharedGunSystem.Ballistic.cs index c2dfa23fcb..c501c0aa79 100644 --- a/Content.Shared/Weapons/Ranged/Systems/SharedGunSystem.Ballistic.cs +++ b/Content.Shared/Weapons/Ranged/Systems/SharedGunSystem.Ballistic.cs @@ -1,4 +1,5 @@ using Content.Shared.DoAfter; +using Content.Shared.Emp; using Content.Shared.Examine; using Content.Shared.Interaction; using Content.Shared.Interaction.Events; @@ -16,7 +17,7 @@ public abstract partial class SharedGunSystem [Dependency] private readonly SharedDoAfterSystem _doAfter = default!; [Dependency] private readonly SharedInteractionSystem _interaction = default!; - + [MustCallBase] protected virtual void InitializeBallistic() { SubscribeLocalEvent(OnBallisticInit); @@ -30,6 +31,14 @@ public abstract partial class SharedGunSystem SubscribeLocalEvent(OnBallisticAfterInteract); SubscribeLocalEvent(OnBallisticAmmoFillDoAfter); SubscribeLocalEvent(OnBallisticUse); + + SubscribeLocalEvent(OnBallisticRefillerMapInit); + SubscribeLocalEvent(OnRefillerEmpPulsed); + } + + private void OnBallisticRefillerMapInit(Entity entity, ref MapInitEvent args) + { + entity.Comp.NextAutoRefill = Timing.CurTime + entity.Comp.AutoRefillRate; } private void OnBallisticUse(EntityUid uid, BallisticAmmoProviderComponent component, UseInHandEvent args) @@ -46,20 +55,8 @@ public abstract partial class SharedGunSystem if (args.Handled) return; - if (_whitelistSystem.IsWhitelistFailOrNull(component.Whitelist, args.Used)) - return; - - if (GetBallisticShots(component) >= component.Capacity) - return; - - component.Entities.Add(args.Used); - Containers.Insert(args.Used, component.Container); - // Not predicted so - Audio.PlayPredicted(component.SoundInsert, uid, args.User); - args.Handled = true; - UpdateBallisticAppearance(uid, component); - UpdateAmmoCount(args.Target); - DirtyField(uid, component, nameof(BallisticAmmoProviderComponent.Entities)); + if (TryBallisticInsert((uid, component), args.Used, args.User)) + args.Handled = true; } private void OnBallisticAfterInteract(EntityUid uid, BallisticAmmoProviderComponent component, AfterInteractEvent args) @@ -242,23 +239,29 @@ public abstract partial class SharedGunSystem { for (var i = 0; i < args.Shots; i++) { - EntityUid entity; - + EntityUid? ammoEntity = null; if (component.Entities.Count > 0) { - entity = component.Entities[^1]; - - args.Ammo.Add((entity, EnsureShootable(entity))); + var existingEnt = component.Entities[^1]; component.Entities.RemoveAt(component.Entities.Count - 1); DirtyField(uid, component, nameof(BallisticAmmoProviderComponent.Entities)); - Containers.Remove(entity, component.Container); + Containers.Remove(existingEnt, component.Container); + ammoEntity = existingEnt; } else if (component.UnspawnedCount > 0) { component.UnspawnedCount--; DirtyField(uid, component, nameof(BallisticAmmoProviderComponent.UnspawnedCount)); - entity = Spawn(component.Proto, args.Coordinates); - args.Ammo.Add((entity, EnsureShootable(entity))); + ammoEntity = Spawn(component.Proto, args.Coordinates); + } + + if (ammoEntity is { } ent) + { + args.Ammo.Add((ent, EnsureShootable(ent))); + if (TryComp(uid, out var refiller)) + { + PauseSelfRefill((uid, refiller)); + } } } @@ -271,6 +274,73 @@ public abstract partial class SharedGunSystem args.Capacity = component.Capacity; } + /// + /// Causes to pause its refilling for either at least + /// (if not null) or the entity's . If the + /// entity's next refill would occur after the pause duration, this function has no effect. + /// + public void PauseSelfRefill( + Entity entity, + TimeSpan? overridePauseDuration = null + ) + { + if (overridePauseDuration == null && !entity.Comp.FiringPausesAutoRefill) + return; + + var nextRefillByPause = Timing.CurTime + (overridePauseDuration ?? entity.Comp.AutoRefillPauseDuration); + if (nextRefillByPause > entity.Comp.NextAutoRefill) + { + entity.Comp.NextAutoRefill = nextRefillByPause; + DirtyField(entity.AsNullable(), nameof(BallisticAmmoSelfRefillerComponent.NextAutoRefill)); + } + } + + /// + /// Returns true if the given 's ballistic ammunition is full, false otherwise. + /// + public bool IsFull(Entity entity) + { + return GetBallisticShots(entity.Comp) >= entity.Comp.Capacity; + } + + /// + /// Returns whether or not can be inserted into , based on + /// available space and whitelists. + /// + public bool CanInsertBallistic(Entity entity, EntityUid inserted) + { + return !_whitelistSystem.IsWhitelistFailOrNull(entity.Comp.Whitelist, inserted) && + !IsFull(entity); + } + + /// + /// Attempts to insert into as ammunition. Returns true on + /// success, false otherwise. + /// + public bool TryBallisticInsert( + Entity entity, + EntityUid inserted, + EntityUid? user, + bool suppressInsertionSound = false + ) + { + if (!CanInsertBallistic(entity, inserted)) + return false; + + entity.Comp.Entities.Add(inserted); + Containers.Insert(inserted, entity.Comp.Container); + if (!suppressInsertionSound) + { + Audio.PlayPredicted(entity.Comp.SoundInsert, entity, user); + } + + UpdateBallisticAppearance(entity, entity.Comp); + UpdateAmmoCount(entity); + DirtyField(entity.AsNullable(), nameof(BallisticAmmoProviderComponent.Entities)); + + return true; + } + public void UpdateBallisticAppearance(EntityUid uid, BallisticAmmoProviderComponent component) { if (!Timing.IsFirstTimePredicted || !TryComp(uid, out var appearance)) @@ -290,6 +360,70 @@ public abstract partial class SharedGunSystem UpdateAmmoCount(entity.Owner); Dirty(entity); } + + private void OnRefillerEmpPulsed(Entity entity, ref EmpPulseEvent args) + { + if (!entity.Comp.AffectedByEmp) + return; + + PauseSelfRefill(entity, args.Duration); + } + + private void UpdateBallistic(float frameTime) + { + var query = EntityQueryEnumerator(); + while (query.MoveNext(out var uid, out var refiller, out var ammo)) + { + BallisticSelfRefillerUpdate((uid, ammo, refiller)); + } + } + + private void BallisticSelfRefillerUpdate( + Entity entity + ) + { + var ammo = entity.Comp1; + var refiller = entity.Comp2; + if (Timing.CurTime < refiller.NextAutoRefill) + return; + + refiller.NextAutoRefill += refiller.AutoRefillRate; + DirtyField(entity, refiller, nameof(BallisticAmmoSelfRefillerComponent.NextAutoRefill)); + + if (!refiller.AutoRefill || IsFull(entity)) + return; + + if (refiller.AmmoProto is not { } refillerAmmoProto) + { + // No ammo proto on the refiller, so just increment the unspawned count on the provider + // if it has an ammo proto. + if (ammo.Proto is null) + { + Log.Error( + $"Neither of {entity}'s {nameof(BallisticAmmoSelfRefillerComponent)}'s or {nameof(BallisticAmmoProviderComponent)}'s ammunition protos is specified. This is a configuration error as it means {nameof(BallisticAmmoSelfRefillerComponent)} cannot do anything."); + return; + } + + SetBallisticUnspawned(entity, ammo.UnspawnedCount + 1); + } + else if (ammo.Proto == refillerAmmoProto) + { + // The ammo proto on the refiller and the provider match. Add an unspawned ammo. + SetBallisticUnspawned(entity, ammo.UnspawnedCount + 1); + } + else + { + // Can't use unspawned ammo, so spawn an entity and try to insert it. + var ammoEntity = PredictedSpawnAttachedTo(refiller.AmmoProto, Transform(entity).Coordinates); + var insertSucceeded = TryBallisticInsert(entity, ammoEntity, null, suppressInsertionSound: true); + if (!insertSucceeded) + { + PredictedQueueDel(ammoEntity); + Log.Error( + $"Failed to insert ammo {ammoEntity} into non-full {entity}. This is a configuration error. Is the {nameof(BallisticAmmoSelfRefillerComponent)}'s {nameof(BallisticAmmoSelfRefillerComponent.AmmoProto)} incorrect for the {nameof(BallisticAmmoProviderComponent)}'s {nameof(BallisticAmmoProviderComponent.Whitelist)}?"); + } + } + } } /// diff --git a/Content.Shared/Weapons/Ranged/Systems/SharedGunSystem.cs b/Content.Shared/Weapons/Ranged/Systems/SharedGunSystem.cs index 2061392200..6a61191bfe 100644 --- a/Content.Shared/Weapons/Ranged/Systems/SharedGunSystem.cs +++ b/Content.Shared/Weapons/Ranged/Systems/SharedGunSystem.cs @@ -658,6 +658,7 @@ public abstract partial class SharedGunSystem : EntitySystem public override void Update(float frameTime) { UpdateBattery(frameTime); + UpdateBallistic(frameTime); } } diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Guns/LMGs/lmgs.yml b/Resources/Prototypes/Entities/Objects/Weapons/Guns/LMGs/lmgs.yml index 467ac0c848..b499ea46b3 100644 --- a/Resources/Prototypes/Entities/Objects/Weapons/Guns/LMGs/lmgs.yml +++ b/Resources/Prototypes/Entities/Objects/Weapons/Guns/LMGs/lmgs.yml @@ -116,12 +116,14 @@ - type: ContainerContainer containers: ballistic-ammo: !type:Container - - type: BatteryAmmoProvider + - type: BallisticAmmoProvider + whitelist: + tags: + - CartridgeLightRifle + capacity: 100 proto: CartridgeLightRifle - fireCost: 100 - - type: PredictedBattery - maxCharge: 10000 - startingCharge: 10000 - - type: PredictedBatterySelfRecharger - autoRechargeRate: 25 + cycleable: false # No synthesizing ammo for your syndicate masters. + - type: BallisticAmmoSelfRefiller + autoRefillRate: 4s + affectedByEmp: true - type: AmmoCounter diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Pistols/pistols.yml b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Pistols/pistols.yml index d6c55c822c..74010b3f42 100644 --- a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Pistols/pistols.yml +++ b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Pistols/pistols.yml @@ -126,14 +126,16 @@ - type: ContainerContainer containers: ballistic-ammo: !type:Container - - type: BatteryAmmoProvider - proto: BulletPistol - fireCost: 100 - - type: PredictedBattery - maxCharge: 1000 - startingCharge: 1000 - - type: PredictedBatterySelfRecharger - autoRechargeRate: 25 + - type: BallisticAmmoProvider + whitelist: + tags: + - CartridgePistol + capacity: 10 + proto: CartridgePistol + cycleable: false # No synthesizing ammo for your syndicate masters. + - type: BallisticAmmoSelfRefiller + autoRefillRate: 4s + affectedByEmp: true - type: AmmoCounter - type: entity diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Guns/SMGs/smgs.yml b/Resources/Prototypes/Entities/Objects/Weapons/Guns/SMGs/smgs.yml index 71a6714315..21dc8b7f31 100644 --- a/Resources/Prototypes/Entities/Objects/Weapons/Guns/SMGs/smgs.yml +++ b/Resources/Prototypes/Entities/Objects/Weapons/Guns/SMGs/smgs.yml @@ -152,14 +152,16 @@ - type: ContainerContainer containers: ballistic-ammo: !type:Container - - type: BatteryAmmoProvider + - type: BallisticAmmoProvider + whitelist: + tags: + - CartridgePistol + capacity: 30 proto: CartridgePistol - fireCost: 100 - - type: PredictedBattery - maxCharge: 3000 - startingCharge: 3000 - - type: PredictedBatterySelfRecharger - autoRechargeRate: 25 + cycleable: false # No synthesizing ammo for your syndicate masters. + - type: BallisticAmmoSelfRefiller + autoRefillRate: 4s + affectedByEmp: true - type: AmmoCounter - type: entity From 31c91ce342b8e79cdf5bc88cf2306b0a6fa74d0c Mon Sep 17 00:00:00 2001 From: PJBot Date: Wed, 17 Dec 2025 23:05:49 +0000 Subject: [PATCH 191/205] Automatic changelog update --- Resources/Changelog/Changelog.yml | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/Resources/Changelog/Changelog.yml b/Resources/Changelog/Changelog.yml index 9cf8b50721..80fe6f6720 100644 --- a/Resources/Changelog/Changelog.yml +++ b/Resources/Changelog/Changelog.yml @@ -1,11 +1,4 @@ Entries: -- author: Quantum-cross - changes: - - message: Fixed pinpointer arrow not being centered properly. - type: Fix - id: 8809 - time: '2025-07-25T19:46:42.0000000+00:00' - url: https://github.com/space-wizards/space-station-14/pull/38657 - author: PJB3005 changes: - message: Made most plushie sounds quieter, and made plushies slower to use. @@ -3918,3 +3911,12 @@ id: 9309 time: '2025-12-17T19:33:53.0000000+00:00' url: https://github.com/space-wizards/space-station-14/pull/35071 +- author: Centronias + changes: + - message: Borgs with rechargable ballistic weapons (e.g. Syndicate Assault Borgs) + no longer lose their entire magazine upon being EMP'd. The EMP still disables + the ammo recharge for its effective duration. + type: Tweak + id: 9310 + time: '2025-12-17T23:04:41.0000000+00:00' + url: https://github.com/space-wizards/space-station-14/pull/38537 From 926a81abe511a8b60deffaec375a468754d89296 Mon Sep 17 00:00:00 2001 From: NoreUhh <85219416+NoreUhh@users.noreply.github.com> Date: Wed, 17 Dec 2025 16:41:11 -0800 Subject: [PATCH 192/205] Give Vulps "Unique" Stomachs (#41893) * Bit funny init? * remove reptilianfood tag * oops too muchgit add Resources/Prototypes/Body/Organs/vulpkanin.yml! --------- Co-authored-by: NoreUhh --- Resources/Prototypes/Body/Organs/vulpkanin.yml | 14 ++++++++++++++ Resources/Prototypes/Body/Prototypes/vulpkanin.yml | 2 +- 2 files changed, 15 insertions(+), 1 deletion(-) create mode 100644 Resources/Prototypes/Body/Organs/vulpkanin.yml diff --git a/Resources/Prototypes/Body/Organs/vulpkanin.yml b/Resources/Prototypes/Body/Organs/vulpkanin.yml new file mode 100644 index 0000000000..a689262b51 --- /dev/null +++ b/Resources/Prototypes/Body/Organs/vulpkanin.yml @@ -0,0 +1,14 @@ +- type: entity + id: OrganVulpkaninStomach + parent: OrganAnimalStomach + categories: [ HideSpawnMenu ] + components: + - type: SolutionContainerManager + solutions: + stomach: + maxVol: 50 + food: + maxVol: 5 + reagents: + - ReagentId: UncookedAnimalProteins + Quantity: 5 diff --git a/Resources/Prototypes/Body/Prototypes/vulpkanin.yml b/Resources/Prototypes/Body/Prototypes/vulpkanin.yml index ad0d1fcf2c..e939e3ac47 100644 --- a/Resources/Prototypes/Body/Prototypes/vulpkanin.yml +++ b/Resources/Prototypes/Body/Prototypes/vulpkanin.yml @@ -20,7 +20,7 @@ organs: heart: OrganAnimalHeart lungs: OrganHumanLungs - stomach: OrganAnimalStomach + stomach: OrganVulpkaninStomach liver: OrganAnimalLiver kidneys: OrganHumanKidneys right arm: From e9ecdeec650d53186402e94664a538022ccdb7b2 Mon Sep 17 00:00:00 2001 From: PJBot Date: Thu, 18 Dec 2025 00:54:44 +0000 Subject: [PATCH 193/205] Automatic changelog update --- Resources/Changelog/Changelog.yml | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/Resources/Changelog/Changelog.yml b/Resources/Changelog/Changelog.yml index 80fe6f6720..f64cedebd0 100644 --- a/Resources/Changelog/Changelog.yml +++ b/Resources/Changelog/Changelog.yml @@ -1,11 +1,4 @@ Entries: -- author: PJB3005 - changes: - - message: Made most plushie sounds quieter, and made plushies slower to use. - type: Tweak - id: 8811 - time: '2025-07-28T07:11:21.0000000+00:00' - url: https://github.com/space-wizards/space-station-14/pull/39250 - author: EmoGarbage404 changes: - message: Fixed being unable to fold certain clothing while worn. @@ -3920,3 +3913,10 @@ id: 9310 time: '2025-12-17T23:04:41.0000000+00:00' url: https://github.com/space-wizards/space-station-14/pull/38537 +- author: NoreUhh + changes: + - message: Fixed Vulpkanin stomachs being smaller than other species. + type: Fix + id: 9311 + time: '2025-12-18T00:53:37.0000000+00:00' + url: https://github.com/space-wizards/space-station-14/pull/41893 From 1bb4b935af3d9898bed2c8a20a19c8d2940a18b6 Mon Sep 17 00:00:00 2001 From: Samuka <47865393+Samuka-C@users.noreply.github.com> Date: Wed, 17 Dec 2025 23:17:04 -0300 Subject: [PATCH 194/205] Fix xenoborg modules (#41625) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * change name from heavy laser to laser cannon * fixed some ids * fix name and description * change cost of upgrade modules * remove unwield penalty * commentary * change name of scout modules * same firerate as before * typo Co-authored-by: āda * new line at end of file * duplicated --------- Co-authored-by: āda --- .../Specific/Robotics/borg_modules.yml | 18 +++++++-------- .../Weapons/Guns/Battery/battery_guns.yml | 22 +++++++++++++------ .../Prototypes/Recipes/Lathes/xenoborgs.yml | 10 +++++++-- 3 files changed, 32 insertions(+), 18 deletions(-) diff --git a/Resources/Prototypes/Entities/Objects/Specific/Robotics/borg_modules.yml b/Resources/Prototypes/Entities/Objects/Specific/Robotics/borg_modules.yml index 3f99a20a8a..f212354123 100644 --- a/Resources/Prototypes/Entities/Objects/Specific/Robotics/borg_modules.yml +++ b/Resources/Prototypes/Entities/Objects/Specific/Robotics/borg_modules.yml @@ -1552,15 +1552,15 @@ - state: icon-xenoborg-laser - type: ItemBorgModule hands: - - item: XenoborgLaserGun + - item: WeaponLaserGunXenoborg - type: BorgModuleIcon icon: { sprite: Interface/Actions/actions_borg.rsi, state: xenoborg-laser-module } - type: entity parent: [ BaseXenoborgModuleHeavy, BaseProviderBorgModule, BaseXenoborgContraband ] id: XenoborgModuleHeavyLaser - name: heavy laser xenoborg module - description: Module with a heavy laser gun. + name: laser cannon xenoborg module + description: Module with a laser cannon. components: - type: Sprite layers: @@ -1568,7 +1568,7 @@ - state: icon-xenoborg-laser2 - type: ItemBorgModule hands: - - item: XenoborgHeavyLaserGun + - item: WeaponLaserCannonXenoborg - type: BorgModuleIcon icon: { sprite: Interface/Actions/actions_borg.rsi, state: xenoborg-laser2-module } @@ -1596,7 +1596,7 @@ - type: entity parent: [ BaseXenoborgModuleScout, BaseProviderBorgModule, BaseXenoborgContraband ] id: XenoborgModuleSword - name: sword xenoborg module + name: knife xenoborg module description: Module with a kukri knife. components: - type: Sprite @@ -1613,7 +1613,7 @@ - type: entity parent: [ BaseXenoborgModuleScout, BaseProviderBorgModule, BaseXenoborgContraband ] id: XenoborgModuleEnergySword - name: energy sword xenoborg module + name: energy dagger xenoborg module description: Module with an energy dagger. components: - type: Sprite @@ -1663,7 +1663,7 @@ parent: [ BaseXenoborgModuleStealth, BaseProviderBorgModule, BaseXenoborgContraband ] id: XenoborgModuleCloakDevice name: cloaking device xenoborg module - description: Module with a device that allows xenoborgs to become invisible for some time. + description: Module with a device that allows xenoborgs to become semi-invisible for some time. components: - type: Sprite layers: @@ -1678,8 +1678,8 @@ - type: entity parent: [ BaseXenoborgModuleStealth, BaseProviderBorgModule, BaseXenoborgContraband ] id: XenoborgModuleSuperCloakDevice - name: cloaking device xenoborg module - description: Module with a device that allows xenoborgs to become truly invisible for less time. + name: invisibility device xenoborg module + description: Module with a device that allows xenoborgs to become truly invisible for a short amount of time. components: - type: Sprite layers: diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Battery/battery_guns.yml b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Battery/battery_guns.yml index 5134b2d711..1ad4ef01c0 100644 --- a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Battery/battery_guns.yml +++ b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Battery/battery_guns.yml @@ -974,14 +974,22 @@ price: 100 - type: entity - name: xenoborg laser gun parent: [WeaponAdvancedLaser, BaseXenoborgContraband] - id: XenoborgLaserGun + id: WeaponLaserGunXenoborg + name: xenoborg laser gun - type: entity - name: xenoborg heavy laser gun - parent: [WeaponAdvancedLaser, BaseXenoborgContraband] - id: XenoborgHeavyLaserGun + parent: [WeaponLaserCannon, BaseXenoborgContraband] + id: WeaponLaserCannonXenoborg + name: xenoborg laser cannon components: - - type: BatteryAmmoProvider - proto: RedHeavyLaser + - type: BatterySelfRecharger + autoRechargeRate: 30 + # "remove" wield bonus and penalty so borgs can use it + - type: GunWieldBonus + minAngle: 0 + maxAngle: 0 + - type: Gun + fireRate: 2 + minAngle: 1 + maxAngle: 2 diff --git a/Resources/Prototypes/Recipes/Lathes/xenoborgs.yml b/Resources/Prototypes/Recipes/Lathes/xenoborgs.yml index 0c8a822398..38e97b4005 100644 --- a/Resources/Prototypes/Recipes/Lathes/xenoborgs.yml +++ b/Resources/Prototypes/Recipes/Lathes/xenoborgs.yml @@ -13,8 +13,6 @@ categories: - Modules completetime: 2 - materials: - Glass: 3000 # xenoborgs @@ -67,6 +65,9 @@ parent: BaseXenoborgModulesRecipe id: XenoborgModuleHeavyLaserRecipe result: XenoborgModuleHeavyLaser + materials: + Steel: 1500 + Glass: 1500 ## scout xenoborg modules @@ -74,6 +75,9 @@ parent: BaseXenoborgModulesRecipe id: XenoborgModuleEnergySwordRecipe result: XenoborgModuleEnergySword + materials: + Steel: 1500 + Glass: 1500 ## stealth xenoborg modules @@ -81,3 +85,5 @@ parent: BaseXenoborgModulesRecipe id: XenoborgModuleSuperCloakDeviceRecipe result: XenoborgModuleSuperCloakDevice + materials: + Glass: 3000 From 13ddce2a09c50119cc1a311ffcc274c611a8bc78 Mon Sep 17 00:00:00 2001 From: PJBot Date: Thu, 18 Dec 2025 02:30:37 +0000 Subject: [PATCH 195/205] Automatic changelog update --- Resources/Changelog/Changelog.yml | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/Resources/Changelog/Changelog.yml b/Resources/Changelog/Changelog.yml index f64cedebd0..8769559881 100644 --- a/Resources/Changelog/Changelog.yml +++ b/Resources/Changelog/Changelog.yml @@ -1,11 +1,4 @@ Entries: -- author: EmoGarbage404 - changes: - - message: Fixed being unable to fold certain clothing while worn. - type: Fix - id: 8812 - time: '2025-07-28T10:19:17.0000000+00:00' - url: https://github.com/space-wizards/space-station-14/pull/39257 - author: lzk228 changes: - message: Janibelt can hold the golden plunger now. @@ -3920,3 +3913,10 @@ id: 9311 time: '2025-12-18T00:53:37.0000000+00:00' url: https://github.com/space-wizards/space-station-14/pull/41893 +- author: Samuka + changes: + - message: Renamed some xenoborg modules + type: Tweak + id: 9312 + time: '2025-12-18T02:29:30.0000000+00:00' + url: https://github.com/space-wizards/space-station-14/pull/41625 From c93fea42dd52f704f413d31da7eefdb3c3520d3c Mon Sep 17 00:00:00 2001 From: Princess Cheeseballs <66055347+Princess-Cheeseballs@users.noreply.github.com> Date: Thu, 18 Dec 2025 00:48:30 -0800 Subject: [PATCH 196/205] [Bugfix/Optimization] Metabolize Foreign Blood (#41892) * Metabolize foreign blood * fix * misc --------- Co-authored-by: Princess Cheeseballs <66055347+Pronana@users.noreply.github.com> Co-authored-by: ArtisticRoomba <145879011+ArtisticRoomba@users.noreply.github.com> --- .../Body/Systems/BloodstreamSystem.cs | 7 ++++-- .../Body/Systems/MetabolizerSystem.cs | 6 ++--- .../Body/Components/BloodstreamComponent.cs | 12 ++++++++-- .../Body/Events/MetabolismExclusionEvent.cs | 7 +++++- .../Body/Systems/SharedBloodstreamSystem.cs | 22 +++++++++++++------ Content.Shared/Medical/VomitSystem.cs | 2 +- 6 files changed, 39 insertions(+), 17 deletions(-) diff --git a/Content.Server/Body/Systems/BloodstreamSystem.cs b/Content.Server/Body/Systems/BloodstreamSystem.cs index 08f640711a..b142d86fad 100644 --- a/Content.Server/Body/Systems/BloodstreamSystem.cs +++ b/Content.Server/Body/Systems/BloodstreamSystem.cs @@ -30,12 +30,12 @@ public sealed class BloodstreamSystem : SharedBloodstreamSystem bloodSolution.MaxVolume = entity.Comp.BloodReferenceSolution.Volume * entity.Comp.MaxVolumeModifier; tempSolution.MaxVolume = entity.Comp.BleedPuddleThreshold * 4; // give some leeway, for chemstream as well + entity.Comp.BloodReferenceSolution.SetReagentData(GetEntityBloodData((entity, entity.Comp))); // Fill blood solution with BLOOD // The DNA string might not be initialized yet, but the reagent data gets updated in the GenerateDnaEvent subscription var solution = entity.Comp.BloodReferenceSolution.Clone(); solution.ScaleTo(entity.Comp.BloodReferenceSolution.Volume - bloodSolution.Volume); - solution.SetReagentData(GetEntityBloodData(entity.Owner)); bloodSolution.AddSolution(solution, PrototypeManager); } @@ -44,11 +44,14 @@ public sealed class BloodstreamSystem : SharedBloodstreamSystem { if (SolutionContainer.ResolveSolution(entity.Owner, entity.Comp.BloodSolutionName, ref entity.Comp.BloodSolution, out var bloodSolution)) { + var data = NewEntityBloodData(entity); + entity.Comp.BloodReferenceSolution.SetReagentData(data); + foreach (var reagent in bloodSolution.Contents) { List reagentData = reagent.Reagent.EnsureReagentData(); reagentData.RemoveAll(x => x is DnaData); - reagentData.AddRange(GetEntityBloodData(entity.Owner)); + reagentData.AddRange(data); } } else diff --git a/Content.Server/Body/Systems/MetabolizerSystem.cs b/Content.Server/Body/Systems/MetabolizerSystem.cs index 35c7b0572a..8e329bc420 100644 --- a/Content.Server/Body/Systems/MetabolizerSystem.cs +++ b/Content.Server/Body/Systems/MetabolizerSystem.cs @@ -16,7 +16,6 @@ using Content.Shared.EntityEffects.Effects.Body; using Content.Shared.EntityEffects.Effects.Solution; using Content.Shared.FixedPoint; using Content.Shared.Mobs.Systems; -using Content.Shared.Random.Helpers; using Robust.Shared.Collections; using Robust.Shared.Prototypes; using Robust.Shared.Random; @@ -138,8 +137,7 @@ public sealed class MetabolizerSystem : SharedMetabolizerSystem var list = solution.Contents.ToList(); // Collecting blood reagent for filtering - var bloodList = new List(); - var ev = new MetabolismExclusionEvent(bloodList); + var ev = new MetabolismExclusionEvent(); RaiseLocalEvent(solutionEntityUid.Value, ref ev); // randomize the reagent list so we don't have any weird quirks @@ -155,7 +153,7 @@ public sealed class MetabolizerSystem : SharedMetabolizerSystem continue; // Skip blood reagents - if (bloodList.Contains(reagent.Prototype)) + if (ev.Reagents.Contains(reagent)) continue; var mostToRemove = FixedPoint2.Zero; diff --git a/Content.Shared/Body/Components/BloodstreamComponent.cs b/Content.Shared/Body/Components/BloodstreamComponent.cs index 8309397b62..533b486da5 100644 --- a/Content.Shared/Body/Components/BloodstreamComponent.cs +++ b/Content.Shared/Body/Components/BloodstreamComponent.cs @@ -1,6 +1,7 @@ using Content.Shared.Alert; using Content.Shared.Body.Systems; using Content.Shared.Chemistry.Components; +using Content.Shared.Chemistry.Reagent; using Content.Shared.Damage; using Content.Shared.Damage.Prototypes; using Content.Shared.FixedPoint; @@ -137,9 +138,9 @@ public sealed partial class BloodstreamComponent : Component // TODO probably damage bleed thresholds. /// - /// Modifier applied to to determine maximum volume for bloodstream. + /// Modifier applied to to determine maximum volume for bloodstream. /// - [DataField] + [DataField, AutoNetworkedField] public float MaxVolumeModifier = 2f; /// @@ -151,6 +152,13 @@ public sealed partial class BloodstreamComponent : Component [DataField, AutoNetworkedField] public Solution BloodReferenceSolution = new([new("Blood", 300)]); + /// + /// Caches the blood data of an entity. + /// This is modified by DNA on init so it's not savable. + /// + [ViewVariables(VVAccess.ReadOnly)] + public List? BloodData; + /// /// Name/Key that is indexed by. /// diff --git a/Content.Shared/Body/Events/MetabolismExclusionEvent.cs b/Content.Shared/Body/Events/MetabolismExclusionEvent.cs index 791b8ed959..3626e5af77 100644 --- a/Content.Shared/Body/Events/MetabolismExclusionEvent.cs +++ b/Content.Shared/Body/Events/MetabolismExclusionEvent.cs @@ -1,3 +1,5 @@ +using Content.Shared.Chemistry.Reagent; + namespace Content.Shared.Body.Events; /// @@ -5,4 +7,7 @@ namespace Content.Shared.Body.Events; /// blood like reagents for metabolism to skip. /// [ByRefEvent] -public readonly record struct MetabolismExclusionEvent(List ReagentList); \ No newline at end of file +public readonly record struct MetabolismExclusionEvent() +{ + public readonly List Reagents = []; +} diff --git a/Content.Shared/Body/Systems/SharedBloodstreamSystem.cs b/Content.Shared/Body/Systems/SharedBloodstreamSystem.cs index 7c8fca6deb..5f3794acd2 100644 --- a/Content.Shared/Body/Systems/SharedBloodstreamSystem.cs +++ b/Content.Shared/Body/Systems/SharedBloodstreamSystem.cs @@ -296,9 +296,9 @@ public abstract class SharedBloodstreamSystem : EntitySystem private void OnMetabolismExclusion(Entity ent, ref MetabolismExclusionEvent args) { // Adding all blood reagents for filtering blood in metabolizer - foreach (var (reagentId, _) in ent.Comp.BloodReferenceSolution) + foreach (var (reagent, _) in ent.Comp.BloodReferenceSolution) { - args.ReagentList.Add(reagentId.Prototype); + args.Reagents.Add(reagent); } } @@ -424,8 +424,7 @@ public abstract class SharedBloodstreamSystem : EntitySystem if (error > 0) { error = FixedPoint2.Min(error, adjustedAmount); - var reagentToAdd = new ReagentId(referenceReagent.Prototype, GetEntityBloodData(ent)); - bloodSolution.AddReagent(reagentToAdd, error); + bloodSolution.AddReagent(referenceReagent, error); } else if (error < 0) { @@ -561,14 +560,24 @@ public abstract class SharedBloodstreamSystem : EntitySystem var solution = ent.Comp.BloodReferenceSolution.Clone(); solution.ScaleSolution(currentVolume / solution.Volume); - solution.SetReagentData(GetEntityBloodData(ent)); SolutionContainer.AddSolution(ent.Comp.BloodSolution.Value, solution); } /// /// Get the reagent data for blood that a specific entity should have. /// - public List GetEntityBloodData(EntityUid uid) + public List GetEntityBloodData(Entity entity) + { + if (!Resolve(entity, ref entity.Comp)) + return NewEntityBloodData(entity); + + return entity.Comp.BloodData ?? NewEntityBloodData(entity); + } + + /// + /// Gets new blood data for this entity and caches it in + /// + protected List NewEntityBloodData(EntityUid uid) { var bloodData = new List(); var dnaData = new DnaData(); @@ -579,7 +588,6 @@ public abstract class SharedBloodstreamSystem : EntitySystem dnaData.DNA = Loc.GetString("forensics-dna-unknown"); bloodData.Add(dnaData); - return bloodData; } } diff --git a/Content.Shared/Medical/VomitSystem.cs b/Content.Shared/Medical/VomitSystem.cs index cf927754e3..bdde1f0c98 100644 --- a/Content.Shared/Medical/VomitSystem.cs +++ b/Content.Shared/Medical/VomitSystem.cs @@ -121,7 +121,7 @@ public sealed class VomitSystem : EntitySystem } // Makes a vomit solution the size of 90% of the chemicals removed from the chemstream - solution.AddReagent(new ReagentId(VomitPrototype, _bloodstream.GetEntityBloodData(uid)), vomitAmount); + solution.AddReagent(new ReagentId(VomitPrototype, _bloodstream.GetEntityBloodData((uid, bloodStream))), vomitAmount); } if (_puddle.TrySpillAt(uid, solution, out var puddle, false)) From b4fa6f4a07a1cf6f1871cebaaa3d677ef94f7f8c Mon Sep 17 00:00:00 2001 From: Pieter-Jan Briers Date: Thu, 18 Dec 2025 10:13:35 +0100 Subject: [PATCH 197/205] Fix loadout entity names not being exported/imported (#41891) Fix entity names not being saved in loadouts. Just missing a [DataField] --- Content.Shared/Preferences/Loadouts/RoleLoadout.cs | 1 + 1 file changed, 1 insertion(+) diff --git a/Content.Shared/Preferences/Loadouts/RoleLoadout.cs b/Content.Shared/Preferences/Loadouts/RoleLoadout.cs index d9f79f543a..6f77725f22 100644 --- a/Content.Shared/Preferences/Loadouts/RoleLoadout.cs +++ b/Content.Shared/Preferences/Loadouts/RoleLoadout.cs @@ -27,6 +27,7 @@ public sealed partial class RoleLoadout : IEquatable /// /// Loadout specific name. /// + [DataField] public string? EntityName; /* From a1f4ea8365905b0d1e58c088270ad84850fbd75b Mon Sep 17 00:00:00 2001 From: PJBot Date: Thu, 18 Dec 2025 09:27:01 +0000 Subject: [PATCH 198/205] Automatic changelog update --- Resources/Changelog/Changelog.yml | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/Resources/Changelog/Changelog.yml b/Resources/Changelog/Changelog.yml index 8769559881..ee82617c45 100644 --- a/Resources/Changelog/Changelog.yml +++ b/Resources/Changelog/Changelog.yml @@ -1,11 +1,4 @@ Entries: -- author: lzk228 - changes: - - message: Janibelt can hold the golden plunger now. - type: Fix - id: 8813 - time: '2025-07-28T12:59:41.0000000+00:00' - url: https://github.com/space-wizards/space-station-14/pull/39213 - author: SuperGDPWYL changes: - message: The Warden now starts with a network configurator in their locker. @@ -3920,3 +3913,10 @@ id: 9312 time: '2025-12-18T02:29:30.0000000+00:00' url: https://github.com/space-wizards/space-station-14/pull/41625 +- author: PJB3005 + changes: + - message: Fix loadout names not being exported/imported + type: Fix + id: 9313 + time: '2025-12-18T09:25:51.0000000+00:00' + url: https://github.com/space-wizards/space-station-14/pull/41891 From ecd876cab9647a8b741706d7cefbbd75c9bc5ef3 Mon Sep 17 00:00:00 2001 From: ArtisticRoomba <145879011+ArtisticRoomba@users.noreply.github.com> Date: Thu, 18 Dec 2025 01:36:23 -0800 Subject: [PATCH 199/205] Mirror contrib guidelines to GitHub (#41896) add contrib guidelines --- CONTRIBUTING.md | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 CONTRIBUTING.md diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 0000000000..da081074c4 --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,11 @@ +# Space Station 14 Contributing Guidelines + +Thanks for contributing to Space Station 14. +When contributing, be sure to follow our [codebase conventions](https://docs.spacestation14.com/en/general-development/codebase-info/codebase-organization.html) and [PR guidelines](https://docs.spacestation14.com/en/general-development/codebase-info/pull-request-guidelines.html). + +Following these guidelines helps us increase review turnaround time, so be sure to review the linked documents in full. + +The last major guidelines update was on **December 6th, 2025**. + +### Why is this here? +We put this here so that GitHub will notify you when submitting a pull request that the PR guidelines have changed, if you haven't read the latest version. From 4fe48ec3cc868ef7bb8d42b3228664fdb3bae10f Mon Sep 17 00:00:00 2001 From: Hitlinemoss <209321380+Hitlinemoss@users.noreply.github.com> Date: Thu, 18 Dec 2025 14:20:38 -0500 Subject: [PATCH 200/205] Adds debug wizard's grimoire (#41900) --- .../Entities/Objects/Magic/books.yml | 49 +++++++++++-------- 1 file changed, 29 insertions(+), 20 deletions(-) diff --git a/Resources/Prototypes/Entities/Objects/Magic/books.yml b/Resources/Prototypes/Entities/Objects/Magic/books.yml index db0d3c8d51..55bb7e5582 100644 --- a/Resources/Prototypes/Entities/Objects/Magic/books.yml +++ b/Resources/Prototypes/Entities/Objects/Magic/books.yml @@ -1,8 +1,8 @@ - type: entity + abstract: true + parent: [ BaseItem, BaseMagicalContraband ] id: BaseSpellbook name: spellbook - parent: [ BaseItem, BaseMagicalContraband ] - abstract: true components: - type: Sprite sprite: Objects/Misc/books.rsi @@ -19,13 +19,14 @@ tags: - Spellbook -# For the Wizard Antag +# For the Wizard antagonist # Do not add discounts or price inflation - type: entity - id: WizardsGrimoire - name: wizards grimoire - suffix: Wizard parent: [ BaseItem, StorePresetSpellbook, BaseMagicalContraband ] + id: WizardsGrimoire + name: wizard's grimoire + suffix: Wizard + description: A heavy tome containing complicated arcane formulae for preparing magic spells and conjuring supernatural equipment. Decades of study went into researching this collection of mystical secrets; now go use them to ruin someone's day. components: - type: Sprite sprite: Objects/Misc/books.rsi @@ -45,36 +46,44 @@ key: enum.StoreUiKey.Key - type: Store refundAllowed: true - ownerOnly: true # get your own tome! + ownerOnly: true # Lesser minds cannot comprehend the arcane secrets within balance: WizCoin: 10 # prices are balanced around this 10 point maximum and how strong the spells are -# Not meant for wizard antag but meant for spawning, so people can't abuse refund if they were given a tome +# No-refund version meant for manual spawning, so people can't abuse refund if they were given a tome. Not meant for wizard antag proper! - type: entity + parent: WizardsGrimoire id: WizardsGrimoireNoRefund - name: wizards grimoire - suffix: Wizard, No Refund - parent: [ WizardsGrimoire, StorePresetSpellbook ] + suffix: Wizard, no refunding components: - type: Store refundAllowed: false - ownerOnly: true # get your own tome! + +# For debugging purposes only! Or spawn this for an admeme so a wizard can have every spell at once, I can't stop you. +- type: entity + parent: WizardsGrimoire + id: WizardsGrimoireDebug + suffix: Wizard, DEBUG + description: A heavy tome containing complicated arcane formulae for preparing magic spells and conjuring supernatural equipment. Someone wrote "FOR EXPERIMENTAL USE ONLY" on the inside cover. + components: + - type: Store + ownerOnly: false # For ease of debugging. balance: - WizCoin: 10 # prices are balanced around this 10 point maximum and how strong the spells are + WizCoin: 99999 - type: entity + parent: BaseSpellbook id: SpawnSpellbook name: spawn spellbook - parent: BaseSpellbook components: - type: Spellbook spellActions: ActionSpawnMagicarpSpell: null - type: entity + parent: BaseSpellbook id: ForceWallSpellbook name: force wall spellbook - parent: BaseSpellbook components: - type: Sprite sprite: Objects/Misc/books.rsi @@ -95,9 +104,9 @@ ActionForceWall: null - type: entity + parent: BaseSpellbook id: BlinkBook name: blink spellbook - parent: BaseSpellbook components: - type: Sprite sprite: Objects/Misc/books.rsi @@ -116,9 +125,9 @@ ActionBlink: null - type: entity + parent: BaseSpellbook id: SmiteBook name: smite spellbook - parent: BaseSpellbook components: - type: Sprite sprite: Objects/Misc/books.rsi @@ -139,9 +148,9 @@ ActionSmiteNoReq: null - type: entity + parent: BaseSpellbook id: KnockSpellbook name: knock spellbook - parent: BaseSpellbook components: - type: Sprite sprite: Objects/Misc/books.rsi @@ -161,9 +170,9 @@ ActionKnock: null - type: entity + parent: BaseSpellbook id: FireballSpellbook name: fireball spellbook - parent: BaseSpellbook components: - type: Sprite sprite: Objects/Misc/books.rsi @@ -185,9 +194,9 @@ ActionFireball: null - type: entity + parent: BaseSpellbook id: ScrollRunes name: scroll of runes - parent: BaseSpellbook components: - type: Item size: Normal From 89b25adf52d908fcec7810c8597b4b3197c73e36 Mon Sep 17 00:00:00 2001 From: PJBot Date: Thu, 18 Dec 2025 19:34:16 +0000 Subject: [PATCH 201/205] Automatic changelog update --- Resources/Changelog/Admin.yml | 10 ++++++++++ Resources/Changelog/Changelog.yml | 14 +++++++------- 2 files changed, 17 insertions(+), 7 deletions(-) diff --git a/Resources/Changelog/Admin.yml b/Resources/Changelog/Admin.yml index 3c9a37bed8..1079b27247 100644 --- a/Resources/Changelog/Admin.yml +++ b/Resources/Changelog/Admin.yml @@ -1549,5 +1549,15 @@ Entries: id: 188 time: '2025-12-14T03:27:37.0000000+00:00' url: https://github.com/space-wizards/space-station-14/pull/41839 +- author: Hitlinemoss + changes: + - message: Added a debug wizard's grimoire, for debugging purposes. Contains 99999 + WizCoin and has ownerOnly set to false. You can use this for admeme purposes + but probably shouldn't unless you want to risk everyone on the station having + every spell. + type: Add + id: 189 + time: '2025-12-18T19:33:08.0000000+00:00' + url: https://github.com/space-wizards/space-station-14/pull/41900 Name: Admin Order: 3 diff --git a/Resources/Changelog/Changelog.yml b/Resources/Changelog/Changelog.yml index ee82617c45..a5caf6a461 100644 --- a/Resources/Changelog/Changelog.yml +++ b/Resources/Changelog/Changelog.yml @@ -1,11 +1,4 @@ Entries: -- author: SuperGDPWYL - changes: - - message: The Warden now starts with a network configurator in their locker. - type: Add - id: 8814 - time: '2025-07-28T16:09:17.0000000+00:00' - url: https://github.com/space-wizards/space-station-14/pull/39254 - author: TrixxedHeart changes: - message: Several strange sprite issues with Vox have been fixed, most notably @@ -3920,3 +3913,10 @@ id: 9313 time: '2025-12-18T09:25:51.0000000+00:00' url: https://github.com/space-wizards/space-station-14/pull/41891 +- author: Hitlinemoss + changes: + - message: The wizard's grimoire now has a proper description. + type: Tweak + id: 9314 + time: '2025-12-18T19:33:08.0000000+00:00' + url: https://github.com/space-wizards/space-station-14/pull/41900 From bb95787af77cc9491998749a61806fa957d4cdcc Mon Sep 17 00:00:00 2001 From: SlamBamActionman <83650252+SlamBamActionman@users.noreply.github.com> Date: Thu, 18 Dec 2025 20:41:08 +0100 Subject: [PATCH 202/205] Make StaminaModifier into a status effect, apply to Hyperzine (#41902) * Initial commit * Probably better this way. * Review fixes * cleanup --------- Co-authored-by: Princess Cheeseballs <66055347+Pronana@users.noreply.github.com> --- .../Damage/Components/StaminaComponent.cs | 10 +++- ...> StaminaModifierStatusEffectComponent.cs} | 2 +- .../RefreshStaminaCritThresholdEvent.cs | 18 +++++++ .../Systems/SharedStaminaSystem.Modifier.cs | 51 ++++++++----------- .../Damage/Systems/SharedStaminaSystem.cs | 3 ++ .../StatusEffectSystem.Relay.cs | 1 + .../Prototypes/Entities/Mobs/NPCs/animals.yml | 4 +- .../Prototypes/Entities/Mobs/NPCs/carp.yml | 4 +- .../Entities/Mobs/NPCs/elemental.yml | 2 +- .../Prototypes/Entities/Mobs/NPCs/flesh.yml | 4 +- .../Entities/Mobs/NPCs/living_light.yml | 1 - .../Entities/Mobs/NPCs/regalrat.yml | 2 +- .../Prototypes/Entities/Mobs/NPCs/silicon.yml | 2 +- .../Entities/Mobs/NPCs/simplemob.yml | 1 - .../Prototypes/Entities/Mobs/NPCs/space.yml | 8 +-- .../Entities/Mobs/NPCs/spacetick.yml | 2 +- .../Prototypes/Entities/Mobs/NPCs/xeno.yml | 6 +-- .../Prototypes/Entities/Mobs/Species/base.yml | 1 - .../Entities/StatusEffects/body.yml | 23 +++++++++ Resources/Prototypes/Reagents/narcotics.yml | 8 +-- Resources/Prototypes/status_effects.yml | 3 -- 21 files changed, 97 insertions(+), 59 deletions(-) rename Content.Shared/Damage/Components/{StaminaModifierComponent.cs => StaminaModifierStatusEffectComponent.cs} (90%) create mode 100644 Content.Shared/Damage/Events/RefreshStaminaCritThresholdEvent.cs diff --git a/Content.Shared/Damage/Components/StaminaComponent.cs b/Content.Shared/Damage/Components/StaminaComponent.cs index 9875d31349..07429cbab7 100644 --- a/Content.Shared/Damage/Components/StaminaComponent.cs +++ b/Content.Shared/Damage/Components/StaminaComponent.cs @@ -39,9 +39,15 @@ public sealed partial class StaminaComponent : Component public float StaminaDamage; /// - /// How much stamina damage is required to enter stam crit. + /// The base stamina the entity requires to enter stam crit. Should rarely if ever be modified outside of yaml. /// - [ViewVariables(VVAccess.ReadWrite), DataField, AutoNetworkedField] + [DataField, AutoNetworkedField] + public float BaseCritThreshold = 100f; + + /// + /// Modified crit threshold for when an entity should enter stamcrit. + /// + [ViewVariables, AutoNetworkedField] public float CritThreshold = 100f; /// diff --git a/Content.Shared/Damage/Components/StaminaModifierComponent.cs b/Content.Shared/Damage/Components/StaminaModifierStatusEffectComponent.cs similarity index 90% rename from Content.Shared/Damage/Components/StaminaModifierComponent.cs rename to Content.Shared/Damage/Components/StaminaModifierStatusEffectComponent.cs index e492ea04ff..4ca888ffbe 100644 --- a/Content.Shared/Damage/Components/StaminaModifierComponent.cs +++ b/Content.Shared/Damage/Components/StaminaModifierStatusEffectComponent.cs @@ -7,7 +7,7 @@ namespace Content.Shared.Damage.Components; /// Multiplies the entity's by the . /// [RegisterComponent, NetworkedComponent, AutoGenerateComponentState, Access(typeof(SharedStaminaSystem))] -public sealed partial class StaminaModifierComponent : Component +public sealed partial class StaminaModifierStatusEffectComponent : Component { /// /// What to multiply max stamina by. diff --git a/Content.Shared/Damage/Events/RefreshStaminaCritThresholdEvent.cs b/Content.Shared/Damage/Events/RefreshStaminaCritThresholdEvent.cs new file mode 100644 index 0000000000..4ed86445e1 --- /dev/null +++ b/Content.Shared/Damage/Events/RefreshStaminaCritThresholdEvent.cs @@ -0,0 +1,18 @@ +using Content.Shared.Damage.Components; + +namespace Content.Shared.Damage.Events; + +/// +/// Raised whenever the needs to be refreshed. +/// +[ByRefEvent] +public record struct RefreshStaminaCritThresholdEvent +{ + public float ThresholdValue = 100f; + public float Modifier = 1f; + + public RefreshStaminaCritThresholdEvent(float thresholdValue) + { + ThresholdValue = thresholdValue; + } +} diff --git a/Content.Shared/Damage/Systems/SharedStaminaSystem.Modifier.cs b/Content.Shared/Damage/Systems/SharedStaminaSystem.Modifier.cs index c723d8cb94..8fcb4b8d1d 100644 --- a/Content.Shared/Damage/Systems/SharedStaminaSystem.Modifier.cs +++ b/Content.Shared/Damage/Systems/SharedStaminaSystem.Modifier.cs @@ -1,4 +1,6 @@ using Content.Shared.Damage.Components; +using Content.Shared.Damage.Events; +using Content.Shared.StatusEffectNew; namespace Content.Shared.Damage.Systems; @@ -6,47 +8,36 @@ public partial class SharedStaminaSystem { private void InitializeModifier() { - SubscribeLocalEvent(OnModifierStartup); - SubscribeLocalEvent(OnModifierShutdown); + SubscribeLocalEvent(OnEffectApplied); + SubscribeLocalEvent(OnEffectRemoved); + SubscribeLocalEvent>(OnRefreshCritThreshold); } - private void OnModifierStartup(EntityUid uid, StaminaModifierComponent comp, ComponentStartup args) + private void OnEffectApplied(Entity ent, ref StatusEffectAppliedEvent args) { - if (!TryComp(uid, out var stamina)) - return; - - stamina.CritThreshold *= comp.Modifier; + RefreshStaminaCritThreshold(args.Target); } - private void OnModifierShutdown(EntityUid uid, StaminaModifierComponent comp, ComponentShutdown args) + private void OnEffectRemoved(Entity ent, ref StatusEffectRemovedEvent args) { - if (!TryComp(uid, out var stamina)) - return; - - stamina.CritThreshold /= comp.Modifier; + RefreshStaminaCritThreshold(args.Target); } - /// - /// Change the stamina modifier for an entity. - /// If it has it will also be updated. - /// - public void SetModifier(EntityUid uid, float modifier, StaminaComponent? stamina = null, StaminaModifierComponent? comp = null) + private void OnRefreshCritThreshold(Entity ent, ref StatusEffectRelayedEvent args) { - if (!Resolve(uid, ref comp)) + var evArgs = args.Args; + evArgs.Modifier = Math.Max(ent.Comp.Modifier, evArgs.Modifier); // We only pick the highest value, to avoid stacking different status effects. + args.Args = evArgs; + } + + public void RefreshStaminaCritThreshold(Entity entity) + { + if (!Resolve(entity, ref entity.Comp)) return; - var old = comp.Modifier; + var ev = new RefreshStaminaCritThresholdEvent(entity.Comp.BaseCritThreshold); + RaiseLocalEvent(entity, ref ev); - if (old.Equals(modifier)) - return; - - comp.Modifier = modifier; - Dirty(uid, comp); - - if (Resolve(uid, ref stamina, false)) - { - // scale to the new threshold, act as if it was removed then added - stamina.CritThreshold *= modifier / old; - } + entity.Comp.CritThreshold = ev.ThresholdValue * ev.Modifier; } } diff --git a/Content.Shared/Damage/Systems/SharedStaminaSystem.cs b/Content.Shared/Damage/Systems/SharedStaminaSystem.cs index 045052d1fa..ca030d5e5d 100644 --- a/Content.Shared/Damage/Systems/SharedStaminaSystem.cs +++ b/Content.Shared/Damage/Systems/SharedStaminaSystem.cs @@ -99,6 +99,9 @@ public abstract partial class SharedStaminaSystem : EntitySystem private void OnStartup(Entity entity, ref ComponentStartup args) { + // Set the base threshold here since ModifiedCritThreshold can't be modified via yaml. + entity.Comp.CritThreshold = entity.Comp.BaseCritThreshold; + UpdateStaminaVisuals(entity); } diff --git a/Content.Shared/StatusEffectNew/StatusEffectSystem.Relay.cs b/Content.Shared/StatusEffectNew/StatusEffectSystem.Relay.cs index 30c5d9f67e..cafe5075c9 100644 --- a/Content.Shared/StatusEffectNew/StatusEffectSystem.Relay.cs +++ b/Content.Shared/StatusEffectNew/StatusEffectSystem.Relay.cs @@ -27,6 +27,7 @@ public sealed partial class StatusEffectsSystem SubscribeLocalEvent(RefRelayStatusEffectEvent); SubscribeLocalEvent(RefRelayStatusEffectEvent); + SubscribeLocalEvent(RefRelayStatusEffectEvent); SubscribeLocalEvent(RelayStatusEffectEvent); SubscribeLocalEvent(RelayStatusEffectEvent); diff --git a/Resources/Prototypes/Entities/Mobs/NPCs/animals.yml b/Resources/Prototypes/Entities/Mobs/NPCs/animals.yml index 05a72b3b33..3685f891b6 100644 --- a/Resources/Prototypes/Entities/Mobs/NPCs/animals.yml +++ b/Resources/Prototypes/Entities/Mobs/NPCs/animals.yml @@ -115,7 +115,7 @@ 0: Alive 10: Dead - type: Stamina - critThreshold: 10 + baseCritThreshold: 10 animationThreshold: 1 - type: DamageStateVisuals states: @@ -1889,7 +1889,7 @@ types: Piercing: 0 - type: Bloodstream - bloodReferenceSolution: + bloodReferenceSolution: reagents: - ReagentId: Blood Quantity: 50 diff --git a/Resources/Prototypes/Entities/Mobs/NPCs/carp.yml b/Resources/Prototypes/Entities/Mobs/NPCs/carp.yml index c0ea417663..1547e36339 100644 --- a/Resources/Prototypes/Entities/Mobs/NPCs/carp.yml +++ b/Resources/Prototypes/Entities/Mobs/NPCs/carp.yml @@ -44,7 +44,7 @@ baseWalkSpeed: 2.5 baseSprintSpeed: 3.5 - type: Stamina - critThreshold: 100 + baseCritThreshold: 100 - type: DamageStateVisuals states: Alive: @@ -233,7 +233,7 @@ 0: Alive 82: Dead # Might seem random, but this brings up the hits to kill with a crusher mark to 3 - type: Stamina - critThreshold: 150 + baseCritThreshold: 150 - type: DamageStateVisuals states: Alive: diff --git a/Resources/Prototypes/Entities/Mobs/NPCs/elemental.yml b/Resources/Prototypes/Entities/Mobs/NPCs/elemental.yml index b430689361..e9f0c4a8ef 100644 --- a/Resources/Prototypes/Entities/Mobs/NPCs/elemental.yml +++ b/Resources/Prototypes/Entities/Mobs/NPCs/elemental.yml @@ -28,7 +28,7 @@ 0: Alive 120: Dead - type: Stamina - critThreshold: 120 + baseCritThreshold: 120 - type: Destructible thresholds: - trigger: diff --git a/Resources/Prototypes/Entities/Mobs/NPCs/flesh.yml b/Resources/Prototypes/Entities/Mobs/NPCs/flesh.yml index 75f0aa83b8..c32a9d3d0b 100644 --- a/Resources/Prototypes/Entities/Mobs/NPCs/flesh.yml +++ b/Resources/Prototypes/Entities/Mobs/NPCs/flesh.yml @@ -41,7 +41,7 @@ 0: Alive 75: Dead - type: Stamina - critThreshold: 50 + baseCritThreshold: 50 animationThreshold: 25 - type: Butcherable spawned: @@ -243,7 +243,7 @@ 0: Alive 75: Dead - type: Stamina - critThreshold: 50 + baseCritThreshold: 50 animationThreshold: 25 - type: Butcherable spawned: diff --git a/Resources/Prototypes/Entities/Mobs/NPCs/living_light.yml b/Resources/Prototypes/Entities/Mobs/NPCs/living_light.yml index 13eeb2b372..d080f8c45f 100644 --- a/Resources/Prototypes/Entities/Mobs/NPCs/living_light.yml +++ b/Resources/Prototypes/Entities/Mobs/NPCs/living_light.yml @@ -50,7 +50,6 @@ allowed: - Corporeal - Electrocution - - StaminaModifier - type: Fixtures fixtures: fix1: diff --git a/Resources/Prototypes/Entities/Mobs/NPCs/regalrat.yml b/Resources/Prototypes/Entities/Mobs/NPCs/regalrat.yml index 1de449a215..3e0edee084 100644 --- a/Resources/Prototypes/Entities/Mobs/NPCs/regalrat.yml +++ b/Resources/Prototypes/Entities/Mobs/NPCs/regalrat.yml @@ -241,7 +241,7 @@ - !type:GibBehavior recursive: false - type: Stamina - critThreshold: 60 + baseCritThreshold: 60 - type: MeleeWeapon soundHit: path: /Audio/Weapons/bladeslice.ogg diff --git a/Resources/Prototypes/Entities/Mobs/NPCs/silicon.yml b/Resources/Prototypes/Entities/Mobs/NPCs/silicon.yml index a538243192..7c9f3ca95c 100644 --- a/Resources/Prototypes/Entities/Mobs/NPCs/silicon.yml +++ b/Resources/Prototypes/Entities/Mobs/NPCs/silicon.yml @@ -82,7 +82,7 @@ baseWalkSpeed : 3 baseSprintSpeed : 4 - type: Stamina - critThreshold: 120 + baseCritThreshold: 120 - type: Destructible thresholds: - trigger: diff --git a/Resources/Prototypes/Entities/Mobs/NPCs/simplemob.yml b/Resources/Prototypes/Entities/Mobs/NPCs/simplemob.yml index d0ea13f26e..906675045b 100644 --- a/Resources/Prototypes/Entities/Mobs/NPCs/simplemob.yml +++ b/Resources/Prototypes/Entities/Mobs/NPCs/simplemob.yml @@ -96,7 +96,6 @@ - Electrocution - TemporaryBlindness - Pacified - - StaminaModifier - Flashed - RadiationProtection - Adrenaline diff --git a/Resources/Prototypes/Entities/Mobs/NPCs/space.yml b/Resources/Prototypes/Entities/Mobs/NPCs/space.yml index d052728379..7a51d257ef 100644 --- a/Resources/Prototypes/Entities/Mobs/NPCs/space.yml +++ b/Resources/Prototypes/Entities/Mobs/NPCs/space.yml @@ -36,7 +36,7 @@ 0: Alive 80: Dead - type: Stamina - critThreshold: 150 + baseCritThreshold: 150 - type: MovementAlwaysTouching - type: Bloodstream bloodReferenceSolution: @@ -157,7 +157,7 @@ Dead: Base: kangaroo-space-dead - type: Stamina - critThreshold: 180 + baseCritThreshold: 180 - type: Inventory speciesId: kangaroo templateId: spacekangaroo @@ -202,7 +202,7 @@ 0: Alive 45: Dead - type: Stamina - critThreshold: 150 + baseCritThreshold: 150 - type: DamageStateVisuals states: Alive: @@ -305,7 +305,7 @@ 0: Alive 45: Dead - type: Stamina - critThreshold: 150 + baseCritThreshold: 150 - type: DamageStateVisuals states: Alive: diff --git a/Resources/Prototypes/Entities/Mobs/NPCs/spacetick.yml b/Resources/Prototypes/Entities/Mobs/NPCs/spacetick.yml index 780c4b0330..653704cfbb 100644 --- a/Resources/Prototypes/Entities/Mobs/NPCs/spacetick.yml +++ b/Resources/Prototypes/Entities/Mobs/NPCs/spacetick.yml @@ -52,7 +52,7 @@ - !type:GibBehavior recursive: false - type: Stamina - critThreshold: 15 + baseCritThreshold: 15 animationThreshold: 5 - type: MovementAlwaysTouching - type: DamageStateVisuals diff --git a/Resources/Prototypes/Entities/Mobs/NPCs/xeno.yml b/Resources/Prototypes/Entities/Mobs/NPCs/xeno.yml index 247d7636e5..58e0088828 100644 --- a/Resources/Prototypes/Entities/Mobs/NPCs/xeno.yml +++ b/Resources/Prototypes/Entities/Mobs/NPCs/xeno.yml @@ -65,7 +65,7 @@ speedModifierThresholds: 25: 0.5 - type: Stamina - critThreshold: 200 + baseCritThreshold: 200 - type: Bloodstream bloodReferenceSolution: reagents: @@ -138,7 +138,7 @@ 0: Alive 100: Dead - type: Stamina - critThreshold: 300 + baseCritThreshold: 300 - type: SlowOnDamage speedModifierThresholds: 50: 0.7 @@ -492,7 +492,7 @@ - type: ComplexInteraction - type: MobState - type: Stamina - critThreshold: 200 + baseCritThreshold: 200 - type: Bloodstream bloodReferenceSolution: reagents: diff --git a/Resources/Prototypes/Entities/Mobs/Species/base.yml b/Resources/Prototypes/Entities/Mobs/Species/base.yml index f33cee8b20..a0ace57c47 100644 --- a/Resources/Prototypes/Entities/Mobs/Species/base.yml +++ b/Resources/Prototypes/Entities/Mobs/Species/base.yml @@ -127,7 +127,6 @@ - Muted - TemporaryBlindness - Pacified - - StaminaModifier - Flashed - RadiationProtection - Adrenaline diff --git a/Resources/Prototypes/Entities/StatusEffects/body.yml b/Resources/Prototypes/Entities/StatusEffects/body.yml index 739c9c3b22..7c7d5fc68c 100644 --- a/Resources/Prototypes/Entities/StatusEffects/body.yml +++ b/Resources/Prototypes/Entities/StatusEffects/body.yml @@ -62,3 +62,26 @@ parent: [ PainNumbnessTraitStatusEffect, MobStatusEffectDebuff ] id: StatusEffectPainNumbness name: pain numbness + +- type: entity + parent: MobStatusEffectBase + id: StaminaModifierStatusEffect + components: + - type: StatusEffect + whitelist: + components: + - Stamina + - type: StaminaModifierStatusEffect + +- type: entity + parent: StaminaModifierStatusEffect + name: 2x max stamina + id: StatusEffectDesoxyStamina + +- type: entity + parent: StaminaModifierStatusEffect + id: StatusEffectStimulantsStamina + name: 1.5x max stamina + components: + - type: StaminaModifierStatusEffect + modifier: 1.5 diff --git a/Resources/Prototypes/Reagents/narcotics.yml b/Resources/Prototypes/Reagents/narcotics.yml index aaaa62916c..7ad463bfcc 100644 --- a/Resources/Prototypes/Reagents/narcotics.yml +++ b/Resources/Prototypes/Reagents/narcotics.yml @@ -34,9 +34,8 @@ - !type:MovementSpeedModifier walkSpeedModifier: 1.20 sprintSpeedModifier: 1.20 - - !type:GenericStatusEffect - key: StaminaModifier # You are on meth. You keep going. - component: StaminaModifier + - !type:ModifyStatusEffect + effectProto: StatusEffectDesoxyStamina # You are on meth. You keep going. time: 3 - !type:GenericStatusEffect key: Adrenaline @@ -145,6 +144,9 @@ - !type:MovementSpeedModifier walkSpeedModifier: 1.25 sprintSpeedModifier: 1.25 + - !type:ModifyStatusEffect + effectProto: StatusEffectStimulantsStamina # You are on meth. You keep going. + time: 3 - !type:ModifyStatusEffect effectProto: StatusEffectStunned time: 3.5 diff --git a/Resources/Prototypes/status_effects.yml b/Resources/Prototypes/status_effects.yml index 8ae32928a3..a48758716c 100644 --- a/Resources/Prototypes/status_effects.yml +++ b/Resources/Prototypes/status_effects.yml @@ -50,9 +50,6 @@ - type: statusEffect id: RatvarianLanguage #Praise him -- type: statusEffect - id: StaminaModifier - - type: statusEffect id: Flashed From 55fef2ab2edae20bfaca8aa7b68126cbb8d05b64 Mon Sep 17 00:00:00 2001 From: PJBot Date: Thu, 18 Dec 2025 19:54:36 +0000 Subject: [PATCH 203/205] Automatic changelog update --- Resources/Changelog/Changelog.yml | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/Resources/Changelog/Changelog.yml b/Resources/Changelog/Changelog.yml index a5caf6a461..61ab5cef3f 100644 --- a/Resources/Changelog/Changelog.yml +++ b/Resources/Changelog/Changelog.yml @@ -1,13 +1,4 @@ Entries: -- author: TrixxedHeart - changes: - - message: Several strange sprite issues with Vox have been fixed, most notably - jumpsuits and many neck items overlapping the face, as well as a layering issue - where their tank would appear over their hair. - type: Fix - id: 8815 - time: '2025-07-28T21:28:15.0000000+00:00' - url: https://github.com/space-wizards/space-station-14/pull/39219 - author: K-Dynamic changes: - message: Quartermaster job and ID icons are now based on Cargo Technicians. @@ -3920,3 +3911,10 @@ id: 9314 time: '2025-12-18T19:33:08.0000000+00:00' url: https://github.com/space-wizards/space-station-14/pull/41900 +- author: SlamBamActionman + changes: + - message: Hyperzine now provides a 1.5x max stamina modifier for its duration. + type: Tweak + id: 9315 + time: '2025-12-18T19:53:29.0000000+00:00' + url: https://github.com/space-wizards/space-station-14/pull/41902 From c4a798632ad912068163992470fd9f9d1228219c Mon Sep 17 00:00:00 2001 From: SlamBamActionman <83650252+SlamBamActionman@users.noreply.github.com> Date: Fri, 19 Dec 2025 20:28:06 +0100 Subject: [PATCH 204/205] [Staging] Fix certain projectiles moving faster than intended (#41905) Return to original value (25) --- Content.Shared/Magic/SharedMagicSystem.cs | 2 +- .../Entities/Objects/Weapons/Guns/Basic/base_pka.yml | 1 + .../Entities/Objects/Weapons/Guns/Basic/staves.yml | 2 ++ .../Prototypes/Entities/Objects/Weapons/Guns/Basic/wands.yml | 5 +++++ .../Entities/Objects/Weapons/Guns/Battery/battery_guns.yml | 3 ++- 5 files changed, 11 insertions(+), 2 deletions(-) diff --git a/Content.Shared/Magic/SharedMagicSystem.cs b/Content.Shared/Magic/SharedMagicSystem.cs index 3301180e8a..7fb13ff866 100644 --- a/Content.Shared/Magic/SharedMagicSystem.cs +++ b/Content.Shared/Magic/SharedMagicSystem.cs @@ -284,7 +284,7 @@ public abstract class SharedMagicSystem : EntitySystem var ent = Spawn(ev.Prototype, fromMap); var direction = _transform.ToMapCoordinates(toCoords).Position - fromMap.Position; - _gunSystem.ShootProjectile(ent, direction, userVelocity, ev.Performer, ev.Performer); + _gunSystem.ShootProjectile(ent, direction, userVelocity, ev.Performer, ev.Performer, 25f); } // End Projectile Spells #endregion diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Basic/base_pka.yml b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Basic/base_pka.yml index 3107a50cfc..52e033f2f9 100644 --- a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Basic/base_pka.yml +++ b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Basic/base_pka.yml @@ -24,6 +24,7 @@ - SemiAuto soundGunshot: path: /Audio/Weapons/Guns/Gunshots/kinetic_accel.ogg + projectileSpeed: 25 - type: AmmoCounter - type: Appearance - type: GenericVisualizer diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Basic/staves.yml b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Basic/staves.yml index ffe8af3e0f..8e021e6c67 100644 --- a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Basic/staves.yml +++ b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Basic/staves.yml @@ -14,6 +14,7 @@ - type: Gun soundGunshot: path: /Audio/Weapons/Guns/Gunshots/Magic/staff_healing.ogg + projectileSpeed: 25 - type: BasicEntityAmmoProvider proto: ProjectileHealingBolt capacity: 10 @@ -34,6 +35,7 @@ - type: Gun soundGunshot: path: /Audio/Weapons/Guns/Gunshots/Magic/staff_door.ogg + projectileSpeed: 25 - type: BasicEntityAmmoProvider proto: ProjectilePolyboltDoor capacity: 10 diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Basic/wands.yml b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Basic/wands.yml index d3745288f6..d27e648b95 100644 --- a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Basic/wands.yml +++ b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Basic/wands.yml @@ -11,6 +11,7 @@ - type: Gun soundGunshot: path: /Audio/Weapons/Guns/Gunshots/Magic/staff_animation.ogg + projectileSpeed: 25 - type: BasicEntityAmmoProvider proto: ProjectilePolyboltCarp capacity: 5 @@ -52,6 +53,7 @@ fireRate: 0.25 soundGunshot: path: /Audio/Magic/fireball.ogg + projectileSpeed: 25 - type: BasicEntityAmmoProvider proto: ProjectileFireball capacity: 5 @@ -72,6 +74,7 @@ - type: Gun soundGunshot: path: /Audio/Weapons/Guns/Gunshots/Magic/staff_animation.ogg + projectileSpeed: 25 - type: BasicEntityAmmoProvider proto: ProjectileLocker capacity: 5 @@ -107,6 +110,7 @@ - type: Gun soundGunshot: path: /Audio/Weapons/Guns/Gunshots/mateba.ogg # PUNCH + projectileSpeed: 25 - type: BasicEntityAmmoProvider proto: BulletInstakillMagic capacity: 3 @@ -126,6 +130,7 @@ - type: Gun soundGunshot: path: /Audio/Weapons/Guns/Gunshots/Magic/staff_door.ogg + projectileSpeed: 25 - type: BasicEntityAmmoProvider proto: ProjectilePolyboltDoor capacity: 10 diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Battery/battery_guns.yml b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Battery/battery_guns.yml index 1ad4ef01c0..d08faa72ef 100644 --- a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Battery/battery_guns.yml +++ b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Battery/battery_guns.yml @@ -633,6 +633,7 @@ fireRate: 0.5 soundGunshot: path: /Audio/Weapons/Guns/Gunshots/taser.ogg + projectileSpeed: 25 - type: BatteryAmmoProvider proto: BulletTaser fireCost: 200 @@ -985,7 +986,7 @@ components: - type: BatterySelfRecharger autoRechargeRate: 30 - # "remove" wield bonus and penalty so borgs can use it + # "remove" wield bonus and penalty so borgs can use it - type: GunWieldBonus minAngle: 0 maxAngle: 0 From 0444896603ca4680bf3080942a53e1a03ac7276a Mon Sep 17 00:00:00 2001 From: Princess Cheeseballs <66055347+Princess-Cheeseballs@users.noreply.github.com> Date: Sat, 20 Dec 2025 12:54:14 -0800 Subject: [PATCH 205/205] [Staging/Hotfix] A couple bloodstream fixes. (#41906) Co-authored-by: Princess Cheeseballs <66055347+Pronana@users.noreply.github.com> --- .../Body/Systems/SharedBloodstreamSystem.cs | 80 ++++++++++--------- .../Prototypes/Recipes/Reactions/cleaning.yml | 2 + 2 files changed, 46 insertions(+), 36 deletions(-) diff --git a/Content.Shared/Body/Systems/SharedBloodstreamSystem.cs b/Content.Shared/Body/Systems/SharedBloodstreamSystem.cs index 5f3794acd2..e86fd0c06b 100644 --- a/Content.Shared/Body/Systems/SharedBloodstreamSystem.cs +++ b/Content.Shared/Body/Systems/SharedBloodstreamSystem.cs @@ -1,4 +1,3 @@ -using System.Linq; using Content.Shared.Alert; using Content.Shared.Body.Components; using Content.Shared.Body.Events; @@ -71,49 +70,41 @@ public abstract class SharedBloodstreamSystem : EntitySystem bloodstream.NextUpdate += bloodstream.AdjustedUpdateInterval; DirtyField(uid, bloodstream, nameof(BloodstreamComponent.NextUpdate)); // needs to be dirtied on the client so it can be rerolled during prediction - if (!SolutionContainer.ResolveSolution(uid, bloodstream.BloodSolutionName, ref bloodstream.BloodSolution, out var bloodSolution)) + if (!SolutionContainer.ResolveSolution(uid, bloodstream.BloodSolutionName, ref bloodstream.BloodSolution)) continue; // Blood level regulation. Must be alive. - TryRegulateBloodLevel(uid, bloodstream.BloodRefreshAmount); - - // Removes blood from the bloodstream based on bleed amount (bleed rate) - // as well as stop their bleeding to a certain extent. - if (bloodstream.BleedAmount > 0) + if (!_mobStateSystem.IsDead(uid)) { - var ev = new BleedModifierEvent(bloodstream.BleedAmount, bloodstream.BleedReductionAmount); - RaiseLocalEvent(uid, ref ev); + TryRegulateBloodLevel(uid, bloodstream.BloodRefreshAmount); - // Blood is removed from the bloodstream at a 1-1 rate with the bleed amount - TryBleedOut((uid, bloodstream), ev.BleedAmount); + TickBleed((uid, bloodstream)); - // Bleed rate is reduced by the bleed reduction amount in the bloodstream component. - TryModifyBleedAmount((uid, bloodstream), -ev.BleedReductionAmount); + // deal bloodloss damage if their blood level is below a threshold. + var bloodPercentage = GetBloodLevel(uid); + if (bloodPercentage < bloodstream.BloodlossThreshold) + { + // bloodloss damage is based on the base value, and modified by how low your blood level is. + var amt = bloodstream.BloodlossDamage / (0.1f + bloodPercentage); + + _damageableSystem.TryChangeDamage(uid, amt, ignoreResistances: false, interruptsDoAfters: false); + + // Apply dizziness as a symptom of bloodloss. + // The effect is applied in a way that it will never be cleared without being healthy. + // Multiplying by 2 is arbitrary but works for this case, it just prevents the time from running out + _status.TrySetStatusEffectDuration(uid, Bloodloss); + } + else + { + // If they're healthy, we'll try and heal some bloodloss instead. + _damageableSystem.TryChangeDamage(uid, bloodstream.BloodlossHealDamage * bloodPercentage, ignoreResistances: true, interruptsDoAfters: false); + + _status.TryRemoveStatusEffect(uid, Bloodloss); + } } - - // deal bloodloss damage if their blood level is below a threshold. - var bloodPercentage = GetBloodLevel(uid); - if (bloodPercentage < bloodstream.BloodlossThreshold && !_mobStateSystem.IsDead(uid)) + else { - // bloodloss damage is based on the base value, and modified by how low your blood level is. - var amt = bloodstream.BloodlossDamage / (0.1f + bloodPercentage); - - _damageableSystem.TryChangeDamage(uid, amt, ignoreResistances: false, interruptsDoAfters: false); - - // Apply dizziness as a symptom of bloodloss. - // The effect is applied in a way that it will never be cleared without being healthy. - // Multiplying by 2 is arbitrary but works for this case, it just prevents the time from running out - _status.TrySetStatusEffectDuration(uid, Bloodloss); - } - else if (!_mobStateSystem.IsDead(uid)) - { - // If they're healthy, we'll try and heal some bloodloss instead. - _damageableSystem.TryChangeDamage( - uid, - bloodstream.BloodlossHealDamage * bloodPercentage, - ignoreResistances: true, interruptsDoAfters: false); - - _status.TryRemoveStatusEffect(uid, Bloodloss); + TickBleed((uid, bloodstream)); } } } @@ -437,6 +428,23 @@ public abstract class SharedBloodstreamSystem : EntitySystem return true; } + public void TickBleed(Entity entity) + { + // Removes blood from the bloodstream based on bleed amount (bleed rate) + // as well as stop their bleeding to a certain extent. + if (entity.Comp.BleedAmount <= 0) + return; + + var ev = new BleedModifierEvent(entity.Comp.BleedAmount, entity.Comp.BleedReductionAmount); + RaiseLocalEvent(entity, ref ev); + + // Blood is removed from the bloodstream at a 1-1 rate with the bleed amount + TryBleedOut(entity.AsNullable(), ev.BleedAmount); + + // Bleed rate is reduced by the bleed reduction amount in the bloodstream component. + TryModifyBleedAmount(entity.AsNullable(), -ev.BleedReductionAmount); + } + /// /// Removes blood by spilling out the bloodstream. /// diff --git a/Resources/Prototypes/Recipes/Reactions/cleaning.yml b/Resources/Prototypes/Recipes/Reactions/cleaning.yml index 079e1bf747..f3440b6efd 100644 --- a/Resources/Prototypes/Recipes/Reactions/cleaning.yml +++ b/Resources/Prototypes/Recipes/Reactions/cleaning.yml @@ -12,6 +12,8 @@ - type: reaction id: AmmoniaFromBlood + requiredMixerCategories: + - Stir # prevents evaporating vox blood, TODO: make it react only X units per second; make bloodstream an open thermal system minTemp: 370 reactants: AmmoniaBlood: