From 4c692d7d4a57bb8a0a764c03c0722168cd65207a Mon Sep 17 00:00:00 2001 From: Ed <96445749+TheShuEd@users.noreply.github.com> Date: Thu, 2 May 2024 20:41:11 +0300 Subject: [PATCH] Alchemy + Guidebook initialization (#124) * remove Guidebook * water and blood * localization things * added vital extract * some fixes * added bloodgrass * guidebook localization * fixes icons and remove unnecesary fields * added inhand cauldron * fix wallmount board * Update bonfire.yml * Update bonfire.yml * alchemy furnace + mist * fixes * Guidebook localization * Update drinks.yml * Revert "remove Guidebook" This reverts commit 7924cf235fd5ee2ea13efd86aab48493962b7f76. * fix filtering guidebook * test fix * Update heater.yml --- .../Controls/GuidebookWindow.xaml.cs | 1 + Content.Client/Guidebook/GuideEntry.cs | 3 + Content.Client/Guidebook/GuidebookSystem.cs | 19 ++ .../EntitySystems/SolutionHeaterSystem.cs | 23 ++ .../Temperature/Systems/TemperatureSystem.cs | 6 +- .../CP14FlammableEntityHeaterComponent.cs | 2 +- .../CP14FlammableSolutionHeaterComponent.cs | 11 + .../EntitySystems/SharedStorageSystem.cs | 5 + Content.Shared/Storage/StorageComponent.cs | 8 + .../en-US/_CP14/flavors/flavor-profiles.ftl | 8 + .../Locale/en-US/_CP14/guidebook/guides.ftl | 6 + .../en-US/_CP14/markings/human-hair.ftl | 12 +- .../_CP14/reagents/meta/basic-alchemy.ftl | 8 + .../en-US/_CP14/reagents/meta/biological.ftl | 2 + .../reagents/meta/consumable/drink/drinks.ftl | 2 + .../_CP14/reagents/meta/physical-desc.ftl | 2 + Resources/Locale/nl-NL/gereedschap.ftl | 10 - .../ru-RU/_CP14/flavors/flavor-profiles.ftl | 8 + .../Locale/ru-RU/_CP14/guidebook/guides.ftl | 6 + .../_CP14/reagents/meta/basic-alchemy.ftl | 8 + .../ru-RU/_CP14/reagents/meta/biological.ftl | 5 + .../reagents/meta/consumable/drink/drinks.ftl | 2 + .../_CP14/reagents/meta/physical-desc.ftl | 2 + .../components/injector-component.ftl | 29 ++ .../chemistry/components/mixing-component.ftl | 13 + .../components/rehydratable-component.ftl | 1 + .../components/scoopable-component.ftl | 1 + .../solution-container-mixer-component.ftl | 3 + .../components/solution-scanner-component.ftl | 5 + .../components/solution-spike-component.ftl | 3 + .../solution-transfer-component.ftl | 20 ++ .../transformable-container-component.ftl | 1 + .../shared-solution-container-component.ftl | 8 + .../Locale/ru-RU/flavors/flavor-profiles.ftl | 267 +++++++++++++++ .../ru-RU/guidebook/chemistry/conditions.ftl | 47 +++ .../Locale/ru-RU/guidebook/chemistry/core.ftl | 30 ++ .../ru-RU/guidebook/chemistry/effects.ftl | 318 ++++++++++++++++++ .../guidebook/chemistry/healthchange.ftl | 5 + .../guidebook/chemistry/statuseffects.ftl | 13 + .../Locale/ru-RU/guidebook/guidebook.ftl | 6 + Resources/Locale/ru-RU/guidebook/guides.ftl | 72 ++++ Resources/Locale/ru-RU/guidebook/verb.ftl | 1 + .../nutrition/components/animal-husbandry.ftl | 3 + .../nutrition/components/drink-component.ftl | 23 ++ .../nutrition/components/food-component.ftl | 23 ++ .../components/openable-component.ftl | 2 + .../components/sliceable-food-component.ftl | 9 + .../Prototypes/Chemistry/mixing_types.yml | 4 +- .../Entities/Effects/alchemy_effects.yml | 33 ++ .../_CP14/Entities/Mobs/Species/base.yml | 127 ++++--- .../Objects/Specific/Alchemy/cauldron.yml | 70 ++++ .../Objects/Specific/Alchemy/herbals.yml | 37 ++ .../Objects/Specific/Alchemy/vials.yml | 17 +- .../_CP14/Entities/Objects/Tools/bucket.yml | 2 +- .../Entities/Structures/Furniture/barrel.yml | 10 +- .../Entities/Structures/Furniture/bonfire.yml | 52 +-- .../Structures/Specific/Alchemy/heater.yml | 113 +++++++ .../Structures/Specific/Alchemy/vat.yml | 9 +- Resources/Prototypes/_CP14/Flavors/flavor.yml | 18 + .../_CP14/Guidebook/Eng/alchemy.yml | 23 ++ .../Prototypes/_CP14/Guidebook/Ru/alchemy.yml | 23 ++ .../Prototypes/_CP14/Guidebook/entry.yml | 15 + .../Reagents/Consumable/Drink/drinks.yml | 7 + .../_CP14/Reagents/basic-alchemy.yml | 65 ++++ .../Prototypes/_CP14/Reagents/biological.yml | 64 ++++ .../_CP14/Recipes/Reactions/biological.yml | 23 ++ .../ServerInfo/_CP14/Guidebook_EN/Alchemy.xml | 13 + .../Guidebook_EN/AlchemyTabs/BasicAlchemy.xml | 9 + .../Guidebook_EN/AlchemyTabs/Biological.xml | 9 + .../ServerInfo/_CP14/Guidebook_EN/Welcome.xml | 12 + .../ServerInfo/_CP14/Guidebook_RU/Alchemy.xml | 13 + .../Guidebook_RU/AlchemyTabs/BasicAlchemy.xml | 9 + .../Guidebook_RU/AlchemyTabs/Biological.xml | 9 + .../ServerInfo/_CP14/Guidebook_RU/Welcome.xml | 12 + .../_CP14/Effects/mist.rsi/chemmist.png | Bin 0 -> 67088 bytes .../Textures/_CP14/Effects/mist.rsi/meta.json | 37 ++ .../Alchemy/Herbal/bloodgrass.rsi/base1.png | Bin 0 -> 396 bytes .../Alchemy/Herbal/bloodgrass.rsi/base2.png | Bin 0 -> 503 bytes .../Alchemy/Herbal/bloodgrass.rsi/base3.png | Bin 0 -> 523 bytes .../Alchemy/Herbal/bloodgrass.rsi/base4.png | Bin 0 -> 452 bytes .../Alchemy/Herbal/bloodgrass.rsi/base5.png | Bin 0 -> 412 bytes .../Alchemy/Herbal/bloodgrass.rsi/meta.json | 26 ++ .../Specific/Alchemy/cauldron.rsi/icon.png | Bin 0 -> 649 bytes .../cauldron.rsi/inhand-left-fill1.png | Bin 0 -> 156 bytes .../cauldron.rsi/inhand-left-fill2.png | Bin 0 -> 192 bytes .../cauldron.rsi/inhand-left-fill3.png | Bin 0 -> 182 bytes .../cauldron.rsi/inhand-left-fill4.png | Bin 0 -> 227 bytes .../cauldron.rsi/inhand-left-fill5.png | Bin 0 -> 259 bytes .../Alchemy/cauldron.rsi/inhand-left.png | Bin 0 -> 1188 bytes .../cauldron.rsi/inhand-right-fill1.png | Bin 0 -> 156 bytes .../cauldron.rsi/inhand-right-fill2.png | Bin 0 -> 192 bytes .../cauldron.rsi/inhand-right-fill3.png | Bin 0 -> 182 bytes .../cauldron.rsi/inhand-right-fill4.png | Bin 0 -> 227 bytes .../cauldron.rsi/inhand-right-fill5.png | Bin 0 -> 259 bytes .../Alchemy/cauldron.rsi/inhand-right.png | Bin 0 -> 1188 bytes .../Specific/Alchemy/cauldron.rsi/liq-1.png | Bin 0 -> 120 bytes .../Specific/Alchemy/cauldron.rsi/liq-2.png | Bin 0 -> 146 bytes .../Specific/Alchemy/cauldron.rsi/liq-3.png | Bin 0 -> 133 bytes .../Specific/Alchemy/cauldron.rsi/liq-4.png | Bin 0 -> 160 bytes .../Specific/Alchemy/cauldron.rsi/liq-5.png | Bin 0 -> 183 bytes .../Specific/Alchemy/cauldron.rsi/meta.json | 125 +++++++ .../wielded-inhand-left-fill1.png | Bin 0 -> 156 bytes .../wielded-inhand-left-fill2.png | Bin 0 -> 192 bytes .../wielded-inhand-left-fill3.png | Bin 0 -> 182 bytes .../wielded-inhand-left-fill4.png | Bin 0 -> 227 bytes .../wielded-inhand-left-fill5.png | Bin 0 -> 259 bytes .../cauldron.rsi/wielded-inhand-left.png | Bin 0 -> 1188 bytes .../wielded-inhand-right-fill1.png | Bin 0 -> 156 bytes .../wielded-inhand-right-fill2.png | Bin 0 -> 192 bytes .../wielded-inhand-right-fill3.png | Bin 0 -> 182 bytes .../wielded-inhand-right-fill4.png | Bin 0 -> 227 bytes .../wielded-inhand-right-fill5.png | Bin 0 -> 259 bytes .../cauldron.rsi/wielded-inhand-right.png | Bin 0 -> 1188 bytes .../wallmount_decor.rsi/boards2.png | Bin 942 -> 883 bytes .../Structures/Furniture/barrel.rsi/liq1.png | Bin 96 -> 113 bytes .../Structures/Furniture/barrel.rsi/liq2.png | Bin 96 -> 127 bytes .../Structures/Furniture/barrel.rsi/liq3.png | Bin 96 -> 140 bytes .../Structures/Furniture/barrel.rsi/liq4.png | Bin 127 -> 180 bytes .../Structures/Furniture/barrel.rsi/liq5.png | Bin 140 -> 194 bytes .../Structures/Furniture/barrel.rsi/liq6.png | Bin 180 -> 0 bytes .../Structures/Furniture/barrel.rsi/liq7.png | Bin 194 -> 0 bytes .../Structures/Furniture/barrel.rsi/meta.json | 6 - .../Alchemy/alchemy_furnace.rsi/base.png | Bin 0 -> 3273 bytes .../Alchemy/alchemy_furnace.rsi/burning.png | Bin 0 -> 4189 bytes .../Alchemy/alchemy_furnace.rsi/fuel1.png | Bin 0 -> 188 bytes .../Alchemy/alchemy_furnace.rsi/fuel2.png | Bin 0 -> 325 bytes .../Alchemy/alchemy_furnace.rsi/meta.json | 49 +++ .../Specific/Alchemy/alchemy_vat.rsi/full.png | Bin 752 -> 792 bytes 128 files changed, 1949 insertions(+), 154 deletions(-) create mode 100644 Content.Server/_CP14/Temperature/CP14FlammableSolutionHeaterComponent.cs create mode 100644 Resources/Locale/en-US/_CP14/flavors/flavor-profiles.ftl create mode 100644 Resources/Locale/en-US/_CP14/guidebook/guides.ftl create mode 100644 Resources/Locale/en-US/_CP14/reagents/meta/basic-alchemy.ftl create mode 100644 Resources/Locale/en-US/_CP14/reagents/meta/biological.ftl create mode 100644 Resources/Locale/en-US/_CP14/reagents/meta/consumable/drink/drinks.ftl create mode 100644 Resources/Locale/en-US/_CP14/reagents/meta/physical-desc.ftl delete mode 100644 Resources/Locale/nl-NL/gereedschap.ftl create mode 100644 Resources/Locale/ru-RU/_CP14/flavors/flavor-profiles.ftl create mode 100644 Resources/Locale/ru-RU/_CP14/guidebook/guides.ftl create mode 100644 Resources/Locale/ru-RU/_CP14/reagents/meta/basic-alchemy.ftl create mode 100644 Resources/Locale/ru-RU/_CP14/reagents/meta/biological.ftl create mode 100644 Resources/Locale/ru-RU/_CP14/reagents/meta/consumable/drink/drinks.ftl create mode 100644 Resources/Locale/ru-RU/_CP14/reagents/meta/physical-desc.ftl create mode 100644 Resources/Locale/ru-RU/chemistry/components/injector-component.ftl create mode 100644 Resources/Locale/ru-RU/chemistry/components/mixing-component.ftl create mode 100644 Resources/Locale/ru-RU/chemistry/components/rehydratable-component.ftl create mode 100644 Resources/Locale/ru-RU/chemistry/components/scoopable-component.ftl create mode 100644 Resources/Locale/ru-RU/chemistry/components/solution-container-mixer-component.ftl create mode 100644 Resources/Locale/ru-RU/chemistry/components/solution-scanner-component.ftl create mode 100644 Resources/Locale/ru-RU/chemistry/components/solution-spike-component.ftl create mode 100644 Resources/Locale/ru-RU/chemistry/components/solution-transfer-component.ftl create mode 100644 Resources/Locale/ru-RU/chemistry/components/transformable-container-component.ftl create mode 100644 Resources/Locale/ru-RU/chemistry/solution/components/shared-solution-container-component.ftl create mode 100644 Resources/Locale/ru-RU/flavors/flavor-profiles.ftl create mode 100644 Resources/Locale/ru-RU/guidebook/chemistry/conditions.ftl create mode 100644 Resources/Locale/ru-RU/guidebook/chemistry/core.ftl create mode 100644 Resources/Locale/ru-RU/guidebook/chemistry/effects.ftl create mode 100644 Resources/Locale/ru-RU/guidebook/chemistry/healthchange.ftl create mode 100644 Resources/Locale/ru-RU/guidebook/chemistry/statuseffects.ftl create mode 100644 Resources/Locale/ru-RU/guidebook/guidebook.ftl create mode 100644 Resources/Locale/ru-RU/guidebook/guides.ftl create mode 100644 Resources/Locale/ru-RU/guidebook/verb.ftl create mode 100644 Resources/Locale/ru-RU/nutrition/components/animal-husbandry.ftl create mode 100644 Resources/Locale/ru-RU/nutrition/components/drink-component.ftl create mode 100644 Resources/Locale/ru-RU/nutrition/components/food-component.ftl create mode 100644 Resources/Locale/ru-RU/nutrition/components/openable-component.ftl create mode 100644 Resources/Locale/ru-RU/nutrition/components/sliceable-food-component.ftl create mode 100644 Resources/Prototypes/_CP14/Entities/Effects/alchemy_effects.yml create mode 100644 Resources/Prototypes/_CP14/Entities/Objects/Specific/Alchemy/cauldron.yml create mode 100644 Resources/Prototypes/_CP14/Entities/Objects/Specific/Alchemy/herbals.yml create mode 100644 Resources/Prototypes/_CP14/Entities/Structures/Specific/Alchemy/heater.yml create mode 100644 Resources/Prototypes/_CP14/Flavors/flavor.yml create mode 100644 Resources/Prototypes/_CP14/Guidebook/Eng/alchemy.yml create mode 100644 Resources/Prototypes/_CP14/Guidebook/Ru/alchemy.yml create mode 100644 Resources/Prototypes/_CP14/Guidebook/entry.yml create mode 100644 Resources/Prototypes/_CP14/Reagents/Consumable/Drink/drinks.yml create mode 100644 Resources/Prototypes/_CP14/Reagents/basic-alchemy.yml create mode 100644 Resources/Prototypes/_CP14/Recipes/Reactions/biological.yml create mode 100644 Resources/ServerInfo/_CP14/Guidebook_EN/Alchemy.xml create mode 100644 Resources/ServerInfo/_CP14/Guidebook_EN/AlchemyTabs/BasicAlchemy.xml create mode 100644 Resources/ServerInfo/_CP14/Guidebook_EN/AlchemyTabs/Biological.xml create mode 100644 Resources/ServerInfo/_CP14/Guidebook_EN/Welcome.xml create mode 100644 Resources/ServerInfo/_CP14/Guidebook_RU/Alchemy.xml create mode 100644 Resources/ServerInfo/_CP14/Guidebook_RU/AlchemyTabs/BasicAlchemy.xml create mode 100644 Resources/ServerInfo/_CP14/Guidebook_RU/AlchemyTabs/Biological.xml create mode 100644 Resources/ServerInfo/_CP14/Guidebook_RU/Welcome.xml create mode 100644 Resources/Textures/_CP14/Effects/mist.rsi/chemmist.png create mode 100644 Resources/Textures/_CP14/Effects/mist.rsi/meta.json create mode 100644 Resources/Textures/_CP14/Objects/Specific/Alchemy/Herbal/bloodgrass.rsi/base1.png create mode 100644 Resources/Textures/_CP14/Objects/Specific/Alchemy/Herbal/bloodgrass.rsi/base2.png create mode 100644 Resources/Textures/_CP14/Objects/Specific/Alchemy/Herbal/bloodgrass.rsi/base3.png create mode 100644 Resources/Textures/_CP14/Objects/Specific/Alchemy/Herbal/bloodgrass.rsi/base4.png create mode 100644 Resources/Textures/_CP14/Objects/Specific/Alchemy/Herbal/bloodgrass.rsi/base5.png create mode 100644 Resources/Textures/_CP14/Objects/Specific/Alchemy/Herbal/bloodgrass.rsi/meta.json create mode 100644 Resources/Textures/_CP14/Objects/Specific/Alchemy/cauldron.rsi/icon.png create mode 100644 Resources/Textures/_CP14/Objects/Specific/Alchemy/cauldron.rsi/inhand-left-fill1.png create mode 100644 Resources/Textures/_CP14/Objects/Specific/Alchemy/cauldron.rsi/inhand-left-fill2.png create mode 100644 Resources/Textures/_CP14/Objects/Specific/Alchemy/cauldron.rsi/inhand-left-fill3.png create mode 100644 Resources/Textures/_CP14/Objects/Specific/Alchemy/cauldron.rsi/inhand-left-fill4.png create mode 100644 Resources/Textures/_CP14/Objects/Specific/Alchemy/cauldron.rsi/inhand-left-fill5.png create mode 100644 Resources/Textures/_CP14/Objects/Specific/Alchemy/cauldron.rsi/inhand-left.png create mode 100644 Resources/Textures/_CP14/Objects/Specific/Alchemy/cauldron.rsi/inhand-right-fill1.png create mode 100644 Resources/Textures/_CP14/Objects/Specific/Alchemy/cauldron.rsi/inhand-right-fill2.png create mode 100644 Resources/Textures/_CP14/Objects/Specific/Alchemy/cauldron.rsi/inhand-right-fill3.png create mode 100644 Resources/Textures/_CP14/Objects/Specific/Alchemy/cauldron.rsi/inhand-right-fill4.png create mode 100644 Resources/Textures/_CP14/Objects/Specific/Alchemy/cauldron.rsi/inhand-right-fill5.png create mode 100644 Resources/Textures/_CP14/Objects/Specific/Alchemy/cauldron.rsi/inhand-right.png create mode 100644 Resources/Textures/_CP14/Objects/Specific/Alchemy/cauldron.rsi/liq-1.png create mode 100644 Resources/Textures/_CP14/Objects/Specific/Alchemy/cauldron.rsi/liq-2.png create mode 100644 Resources/Textures/_CP14/Objects/Specific/Alchemy/cauldron.rsi/liq-3.png create mode 100644 Resources/Textures/_CP14/Objects/Specific/Alchemy/cauldron.rsi/liq-4.png create mode 100644 Resources/Textures/_CP14/Objects/Specific/Alchemy/cauldron.rsi/liq-5.png create mode 100644 Resources/Textures/_CP14/Objects/Specific/Alchemy/cauldron.rsi/meta.json create mode 100644 Resources/Textures/_CP14/Objects/Specific/Alchemy/cauldron.rsi/wielded-inhand-left-fill1.png create mode 100644 Resources/Textures/_CP14/Objects/Specific/Alchemy/cauldron.rsi/wielded-inhand-left-fill2.png create mode 100644 Resources/Textures/_CP14/Objects/Specific/Alchemy/cauldron.rsi/wielded-inhand-left-fill3.png create mode 100644 Resources/Textures/_CP14/Objects/Specific/Alchemy/cauldron.rsi/wielded-inhand-left-fill4.png create mode 100644 Resources/Textures/_CP14/Objects/Specific/Alchemy/cauldron.rsi/wielded-inhand-left-fill5.png create mode 100644 Resources/Textures/_CP14/Objects/Specific/Alchemy/cauldron.rsi/wielded-inhand-left.png create mode 100644 Resources/Textures/_CP14/Objects/Specific/Alchemy/cauldron.rsi/wielded-inhand-right-fill1.png create mode 100644 Resources/Textures/_CP14/Objects/Specific/Alchemy/cauldron.rsi/wielded-inhand-right-fill2.png create mode 100644 Resources/Textures/_CP14/Objects/Specific/Alchemy/cauldron.rsi/wielded-inhand-right-fill3.png create mode 100644 Resources/Textures/_CP14/Objects/Specific/Alchemy/cauldron.rsi/wielded-inhand-right-fill4.png create mode 100644 Resources/Textures/_CP14/Objects/Specific/Alchemy/cauldron.rsi/wielded-inhand-right-fill5.png create mode 100644 Resources/Textures/_CP14/Objects/Specific/Alchemy/cauldron.rsi/wielded-inhand-right.png delete mode 100644 Resources/Textures/_CP14/Structures/Furniture/barrel.rsi/liq6.png delete mode 100644 Resources/Textures/_CP14/Structures/Furniture/barrel.rsi/liq7.png create mode 100644 Resources/Textures/_CP14/Structures/Specific/Alchemy/alchemy_furnace.rsi/base.png create mode 100644 Resources/Textures/_CP14/Structures/Specific/Alchemy/alchemy_furnace.rsi/burning.png create mode 100644 Resources/Textures/_CP14/Structures/Specific/Alchemy/alchemy_furnace.rsi/fuel1.png create mode 100644 Resources/Textures/_CP14/Structures/Specific/Alchemy/alchemy_furnace.rsi/fuel2.png create mode 100644 Resources/Textures/_CP14/Structures/Specific/Alchemy/alchemy_furnace.rsi/meta.json diff --git a/Content.Client/Guidebook/Controls/GuidebookWindow.xaml.cs b/Content.Client/Guidebook/Controls/GuidebookWindow.xaml.cs index 4776386c1d..4d9fdcec15 100644 --- a/Content.Client/Guidebook/Controls/GuidebookWindow.xaml.cs +++ b/Content.Client/Guidebook/Controls/GuidebookWindow.xaml.cs @@ -136,6 +136,7 @@ public sealed partial class GuidebookWindow : FancyWindow, ILinkClickHandler TreeItem? parent = forcedRoot == null ? null : AddEntry(forcedRoot, null, addedEntries); foreach (var entry in GetSortedEntries(roots)) { + if (!entry.CrystallPunkAllowed) continue; //CrystallPunk guidebook filter AddEntry(entry.Id, parent, addedEntries); } Tree.SetAllExpanded(true); diff --git a/Content.Client/Guidebook/GuideEntry.cs b/Content.Client/Guidebook/GuideEntry.cs index b7b3b3309e..3f9ce31ad0 100644 --- a/Content.Client/Guidebook/GuideEntry.cs +++ b/Content.Client/Guidebook/GuideEntry.cs @@ -39,6 +39,9 @@ public class GuideEntry /// If the guide is the child of some other guide, the order simply determined by the order of children in . /// [DataField("priority")] public int Priority = 0; + + [DataField] + public bool CrystallPunkAllowed = false; } [Prototype("guideEntry")] diff --git a/Content.Client/Guidebook/GuidebookSystem.cs b/Content.Client/Guidebook/GuidebookSystem.cs index cb13d4ca6e..57fa8d12af 100644 --- a/Content.Client/Guidebook/GuidebookSystem.cs +++ b/Content.Client/Guidebook/GuidebookSystem.cs @@ -13,6 +13,7 @@ using Robust.Shared.Audio; using Robust.Shared.Audio.Systems; using Robust.Shared.Map; using Robust.Shared.Player; +using Robust.Shared.Prototypes; using Robust.Shared.Timing; using Robust.Shared.Utility; @@ -31,6 +32,8 @@ public sealed class GuidebookSystem : EntitySystem [Dependency] private readonly SharedPointLightSystem _pointLightSystem = default!; [Dependency] private readonly TagSystem _tags = default!; + [Dependency] private readonly IPrototypeManager _proto = default!; //CrystallPunk guidebook filter + public event Action, List?, string?, bool, string?>? OnGuidebookOpen; public const string GuideEmbedTag = "GuideEmbeded"; @@ -39,6 +42,7 @@ public sealed class GuidebookSystem : EntitySystem /// public override void Initialize() { + SubscribeLocalEvent(OnCrystallPunkMapInit); //CrystallPunk guidebook filter SubscribeLocalEvent>(OnGetVerbs); SubscribeLocalEvent(OnInteract); @@ -48,6 +52,21 @@ public sealed class GuidebookSystem : EntitySystem OnGuidebookControlsTestGetAlternateVerbs); } + //CrystallPunk guidebook filter + private void OnCrystallPunkMapInit(Entity ent, ref MapInitEvent args) + { + foreach (var guide in ent.Comp.Guides) + { + var guideProto = _proto.Index(guide); + if (!guideProto.CrystallPunkAllowed) //REMOVE unnecessary guidebook + { + RemComp(ent); + return; + } + } + } + //CrystallPunk guidebook filter end + /// /// Gets a user entity to use for verbs and examinations. If the player has no attached entity, this will use a /// dummy client-side entity so that users can still use the guidebook when not attached to anything (e.g., in the diff --git a/Content.Server/Chemistry/EntitySystems/SolutionHeaterSystem.cs b/Content.Server/Chemistry/EntitySystems/SolutionHeaterSystem.cs index 6e6373e10b..1508f326d8 100644 --- a/Content.Server/Chemistry/EntitySystems/SolutionHeaterSystem.cs +++ b/Content.Server/Chemistry/EntitySystems/SolutionHeaterSystem.cs @@ -1,3 +1,5 @@ +using Content.Server._CP14.Temperature; +using Content.Server.Atmos.Components; using Content.Server.Chemistry.Components; using Content.Server.Chemistry.Containers.EntitySystems; using Content.Server.Power.Components; @@ -92,5 +94,26 @@ public sealed class SolutionHeaterSystem : EntitySystem } } } + + //CrystallPunk bonfire + var flammablequery = EntityQueryEnumerator(); + while (flammablequery.MoveNext(out _, out var heater, out var placer, out var flammable)) + { + foreach (var heatingEntity in placer.PlacedEntities) + { + if (!flammable.OnFire) + return; + + if (!TryComp(heatingEntity, out var container)) + continue; + + var energy = flammable.FireStacks * frameTime * 300; + foreach (var (_, soln) in _solutionContainer.EnumerateSolutions((heatingEntity, container))) + { + _solutionContainer.AddThermalEnergy(soln, energy); + } + } + } + //CrystallPunk bonfire end } } diff --git a/Content.Server/Temperature/Systems/TemperatureSystem.cs b/Content.Server/Temperature/Systems/TemperatureSystem.cs index 6c9e99e5f3..01a5dcb274 100644 --- a/Content.Server/Temperature/Systems/TemperatureSystem.cs +++ b/Content.Server/Temperature/Systems/TemperatureSystem.cs @@ -122,8 +122,12 @@ public sealed class TemperatureSystem : EntitySystem public void ChangeHeat(EntityUid uid, float heatAmount, bool ignoreHeatResistance = false, TemperatureComponent? temperature = null) { - if (!Resolve(uid, ref temperature)) + //CrystallPunk may try place on heater and entity, and solutions + //if (!Resolve(uid, ref temperature)) + // return; + if (temperature == null) return; + //CrystallPunk may try place on heater and entity, and solutions END if (!ignoreHeatResistance) { diff --git a/Content.Server/_CP14/Temperature/CP14FlammableEntityHeaterComponent.cs b/Content.Server/_CP14/Temperature/CP14FlammableEntityHeaterComponent.cs index 0a455ad42f..d75278aa8e 100644 --- a/Content.Server/_CP14/Temperature/CP14FlammableEntityHeaterComponent.cs +++ b/Content.Server/_CP14/Temperature/CP14FlammableEntityHeaterComponent.cs @@ -9,5 +9,5 @@ namespace Content.Server._CP14.Temperature; public sealed partial class CP14FlammableEntityHeaterComponent : Component { [DataField] - public float EnergyPerFireStack = 1000f; + public float EnergyPerFireStack = 300f; } diff --git a/Content.Server/_CP14/Temperature/CP14FlammableSolutionHeaterComponent.cs b/Content.Server/_CP14/Temperature/CP14FlammableSolutionHeaterComponent.cs new file mode 100644 index 0000000000..218a81afb0 --- /dev/null +++ b/Content.Server/_CP14/Temperature/CP14FlammableSolutionHeaterComponent.cs @@ -0,0 +1,11 @@ +using Content.Server.Chemistry.EntitySystems; + +namespace Content.Server._CP14.Temperature; + +/// +/// Adds thermal energy from FlammableComponent to solutions placed on it. +/// +[RegisterComponent, Access(typeof(SolutionHeaterSystem))] +public sealed partial class CP14FlammableSolutionHeaterComponent : Component +{ +} diff --git a/Content.Shared/Storage/EntitySystems/SharedStorageSystem.cs b/Content.Shared/Storage/EntitySystems/SharedStorageSystem.cs index 4670f2dbf8..17dca959ff 100644 --- a/Content.Shared/Storage/EntitySystems/SharedStorageSystem.cs +++ b/Content.Shared/Storage/EntitySystems/SharedStorageSystem.cs @@ -4,6 +4,8 @@ using System.Linq; using Content.Shared.ActionBlocker; using Content.Shared.Administration; using Content.Shared.Administration.Managers; +using Content.Shared.Chemistry.Components; +using Content.Shared.Chemistry.Components.SolutionManager; using Content.Shared.Containers.ItemSlots; using Content.Shared.Destructible; using Content.Shared.DoAfter; @@ -358,6 +360,9 @@ public abstract class SharedStorageSystem : EntitySystem if (HasComp(uid)) return; + if (HasComp(uid) && !storageComp.CP14CanStorageSolutionManagers) //CP14 bandage + return; + PlayerInsertHeldEntity(uid, args.User, storageComp); // Always handle it, even if insertion fails. // We don't want to trigger any AfterInteract logic here. diff --git a/Content.Shared/Storage/StorageComponent.cs b/Content.Shared/Storage/StorageComponent.cs index ef682dd4f9..e712d167e5 100644 --- a/Content.Shared/Storage/StorageComponent.cs +++ b/Content.Shared/Storage/StorageComponent.cs @@ -124,6 +124,14 @@ namespace Content.Shared.Storage [DataField, ViewVariables(VVAccess.ReadWrite)] public StorageDefaultOrientation? DefaultStorageOrientation; + /// + /// CrystallPunk bandage. We need to put in both objects and liquids. + /// This avoids situations where a player puts a bucket into the cauldron + /// instead of pouring liquid from the bucket into the cauldron. + /// + [DataField] + public bool CP14CanStorageSolutionManagers = true; + [Serializable, NetSerializable] public enum StorageUiKey : byte { diff --git a/Resources/Locale/en-US/_CP14/flavors/flavor-profiles.ftl b/Resources/Locale/en-US/_CP14/flavors/flavor-profiles.ftl new file mode 100644 index 0000000000..26aded1213 --- /dev/null +++ b/Resources/Locale/en-US/_CP14/flavors/flavor-profiles.ftl @@ -0,0 +1,8 @@ +# Base + +cp14-flavor-base-metallic = metallic +cp14-flavor-base-invigorating = invigorating + +# Complex + +cp14-flavor-complex-water = like water \ No newline at end of file diff --git a/Resources/Locale/en-US/_CP14/guidebook/guides.ftl b/Resources/Locale/en-US/_CP14/guidebook/guides.ftl new file mode 100644 index 0000000000..03886f7db9 --- /dev/null +++ b/Resources/Locale/en-US/_CP14/guidebook/guides.ftl @@ -0,0 +1,6 @@ +cp14-guide-entry-russian = Russian guidebook +cp14-guide-entry-english = English guidebook + +cp14-guide-entry-alchemy = Alchemy +cp14-guide-entry-basic-alchemy = Basic alchemical reagents +cp14-guide-entry-biological = Biological \ No newline at end of file diff --git a/Resources/Locale/en-US/_CP14/markings/human-hair.ftl b/Resources/Locale/en-US/_CP14/markings/human-hair.ftl index 5d69a94c93..f77fb5386c 100644 --- a/Resources/Locale/en-US/_CP14/markings/human-hair.ftl +++ b/Resources/Locale/en-US/_CP14/markings/human-hair.ftl @@ -1,12 +1,12 @@ -marking-CP14marking-CP14HumanHair80s = Shoulder Length +marking-CP14HumanHair80s = Shoulder Length marking-CP14HumanHairA = Short Haircut marking-CP14HumanHairAntenna = Unruly Strands marking-CP14HumanHairB = Boring Parting -marking-CP14HP14HumanHairBedhead = Bedhead -marking-CP14HP14HumanHairBedheadV2 = Bedhead 2 +marking-CP14HumanHairBedhead = Bedhead +marking-CP14HumanHairBedheadV2 = Bedhead 2 marking-CP14HumanHairBeeHive = Aristocratic -marking-CP14HP14HumanHairBigBraid = Full Braid +marking-CP14HumanHairBigBraid = Full Braid marking-CP14HumanHairBigDoubleBun = Double Bun -marking-CP14HumanHP14HumanHairBigPompadour = Bard -marking-CP14HumanHP14HumanHairCrazyBald = CrazyBald +marking-CP14HumanHumanHairBigPompadour = Bard +marking-CP14HumanHumanHairCrazyBald = CrazyBald marking-CP14HumanHairBob = Bob diff --git a/Resources/Locale/en-US/_CP14/reagents/meta/basic-alchemy.ftl b/Resources/Locale/en-US/_CP14/reagents/meta/basic-alchemy.ftl new file mode 100644 index 0000000000..e36b7fbf0a --- /dev/null +++ b/Resources/Locale/en-US/_CP14/reagents/meta/basic-alchemy.ftl @@ -0,0 +1,8 @@ +cp14-reagent-name-vital-extract = vital extract +cp14-reagent-desc-vital-extract = Liquid, unprocessed embodiment of the desire for life. In small doses can be used as a weak medicine, but in large doses can have irreversible effects on the body. + +cp14-reagent-vital-extract-feeling-1 = You feel your heart begin to beat more often. +cp14-reagent-vital-extract-feeling-2 = You feel your whole body tingle. +cp14-reagent-vital-extract-feeling-3 = Your whole body starts to pinch and scratch. +cp14-reagent-vital-extract-feeling-4 = You feel strange... +cp14-reagent-vital-extract-feeling-5 = You feel as if something inside you is growing and dying... diff --git a/Resources/Locale/en-US/_CP14/reagents/meta/biological.ftl b/Resources/Locale/en-US/_CP14/reagents/meta/biological.ftl new file mode 100644 index 0000000000..45915c66aa --- /dev/null +++ b/Resources/Locale/en-US/_CP14/reagents/meta/biological.ftl @@ -0,0 +1,2 @@ +cp14-reagent-name-blood = blood +cp14-reagent-desc-blood = The life energy of a living warm-blooded creatures. \ No newline at end of file diff --git a/Resources/Locale/en-US/_CP14/reagents/meta/consumable/drink/drinks.ftl b/Resources/Locale/en-US/_CP14/reagents/meta/consumable/drink/drinks.ftl new file mode 100644 index 0000000000..8ffcb15bb4 --- /dev/null +++ b/Resources/Locale/en-US/_CP14/reagents/meta/consumable/drink/drinks.ftl @@ -0,0 +1,2 @@ +cp14-reagent-name-water = water +cp14-reagent-desc-water = A colorless liquid so essential to the survival of living things. \ No newline at end of file diff --git a/Resources/Locale/en-US/_CP14/reagents/meta/physical-desc.ftl b/Resources/Locale/en-US/_CP14/reagents/meta/physical-desc.ftl new file mode 100644 index 0000000000..9f02823119 --- /dev/null +++ b/Resources/Locale/en-US/_CP14/reagents/meta/physical-desc.ftl @@ -0,0 +1,2 @@ +cp14-reagent-physical-desc-ferrous = ferrous +cp14-reagent-physical-desc-scarlet = shimmering scarlet \ No newline at end of file diff --git a/Resources/Locale/nl-NL/gereedschap.ftl b/Resources/Locale/nl-NL/gereedschap.ftl deleted file mode 100644 index e9d8697102..0000000000 --- a/Resources/Locale/nl-NL/gereedschap.ftl +++ /dev/null @@ -1,10 +0,0 @@ -ent-Wrench = moersleutel - .desc = Een veelgebruikt stuk gereedschap voor montage en demontage. - .suffix = Test - -ent-Crowbar = koevoet - .desc = Een multifunctioneel stuk gereedschap om deuren open te wrikken en interdimensionale indringers te bestrijden. - -ent-CrowbarRed = - .desc = Een multifunctioneel stuk gereedschap om deuren open te wrikken en interdimensionale indringers te bestrijden. Deze is bedoeld voor Noodgevallen. - .suffix = Noodgeval diff --git a/Resources/Locale/ru-RU/_CP14/flavors/flavor-profiles.ftl b/Resources/Locale/ru-RU/_CP14/flavors/flavor-profiles.ftl new file mode 100644 index 0000000000..fe25e2c787 --- /dev/null +++ b/Resources/Locale/ru-RU/_CP14/flavors/flavor-profiles.ftl @@ -0,0 +1,8 @@ +# Basic + +cp14-flavor-base-metallic = металлически +cp14-flavor-base-invigorating = живительно + +# Complex + +cp14-flavor-complex-water = как вода \ No newline at end of file diff --git a/Resources/Locale/ru-RU/_CP14/guidebook/guides.ftl b/Resources/Locale/ru-RU/_CP14/guidebook/guides.ftl new file mode 100644 index 0000000000..b45b825310 --- /dev/null +++ b/Resources/Locale/ru-RU/_CP14/guidebook/guides.ftl @@ -0,0 +1,6 @@ +cp14-guide-entry-russian = Русское руководство +cp14-guide-entry-english = Английское руководство + +cp14-guide-entry-alchemy = Алхимия +cp14-guide-entry-basic-alchemy = Базовые алхимические элементы +cp14-guide-entry-biological = Биологические вещества \ No newline at end of file diff --git a/Resources/Locale/ru-RU/_CP14/reagents/meta/basic-alchemy.ftl b/Resources/Locale/ru-RU/_CP14/reagents/meta/basic-alchemy.ftl new file mode 100644 index 0000000000..cfdf1b19ef --- /dev/null +++ b/Resources/Locale/ru-RU/_CP14/reagents/meta/basic-alchemy.ftl @@ -0,0 +1,8 @@ +cp14-reagent-name-vital-extract = живительный экстракт +cp14-reagent-desc-vital-extract = Жидкое, необработанное воплощение стремления к жизни. В малых дозах может использоваться как слабое лекарство, но при больших дозах может оказать необратимые последствия на организм. + +cp14-reagent-vital-extract-feeling-1 = Вы чувствуете, как ваше сердце начинает биться чаще +cp14-reagent-vital-extract-feeling-2 = Вы чувствуете дрожь во всем теле +cp14-reagent-vital-extract-feeling-3 = Все ваше тело начинает щипать и почесывать +cp14-reagent-vital-extract-feeling-4 = Вы чувствуете себя странно... +cp14-reagent-vital-extract-feeling-5 = Вы чувствуете словно внутри вам что-то растет и умирает... diff --git a/Resources/Locale/ru-RU/_CP14/reagents/meta/biological.ftl b/Resources/Locale/ru-RU/_CP14/reagents/meta/biological.ftl new file mode 100644 index 0000000000..e171174101 --- /dev/null +++ b/Resources/Locale/ru-RU/_CP14/reagents/meta/biological.ftl @@ -0,0 +1,5 @@ +cp14-reagent-name-blood = кровь +cp14-reagent-desc-blood = Жизненная энергия живого теплокровного существа. + +cp14-reagent-name-bloodgrasssap = сок кровьтравы +cp14-reagent-desc-bloodgrasssap = Выжимка из повсеместно растущей кровьтравы. Не имеет особых примечательных качеств, но при должной сноровке может быть приготовлена в питательную пищу. \ No newline at end of file diff --git a/Resources/Locale/ru-RU/_CP14/reagents/meta/consumable/drink/drinks.ftl b/Resources/Locale/ru-RU/_CP14/reagents/meta/consumable/drink/drinks.ftl new file mode 100644 index 0000000000..9096a172bd --- /dev/null +++ b/Resources/Locale/ru-RU/_CP14/reagents/meta/consumable/drink/drinks.ftl @@ -0,0 +1,2 @@ +cp14-reagent-name-water = вода +cp14-reagent-desc-water = Бесцветная жидкость, столь необходимая для выживания живых существ. \ No newline at end of file diff --git a/Resources/Locale/ru-RU/_CP14/reagents/meta/physical-desc.ftl b/Resources/Locale/ru-RU/_CP14/reagents/meta/physical-desc.ftl new file mode 100644 index 0000000000..ea4d0b2213 --- /dev/null +++ b/Resources/Locale/ru-RU/_CP14/reagents/meta/physical-desc.ftl @@ -0,0 +1,2 @@ +cp14-reagent-physical-desc-ferrous = черно-металлическое +cp14-reagent-physical-desc-scarlet = мерцающе алое \ No newline at end of file diff --git a/Resources/Locale/ru-RU/chemistry/components/injector-component.ftl b/Resources/Locale/ru-RU/chemistry/components/injector-component.ftl new file mode 100644 index 0000000000..3526b47059 --- /dev/null +++ b/Resources/Locale/ru-RU/chemistry/components/injector-component.ftl @@ -0,0 +1,29 @@ +## UI + +injector-draw-text = Забор +injector-inject-text = Введение +injector-invalid-injector-toggle-mode = Неверный режим +injector-volume-label = Объём: [color=white]{ $currentVolume }/{ $totalVolume }[/color] + Режим: [color=white]{ $modeString }[/color] ([color=white]{ $transferVolume } ед.[/color]) + +## Entity + +injector-component-drawing-text = Содержимое набирается +injector-component-injecting-text = Содержимое вводится +injector-component-cannot-transfer-message = Вы не можете ничего переместить в { $target }! +injector-component-cannot-draw-message = Вы не можете ничего набрать из { $target }! +injector-component-cannot-inject-message = Вы не можете ничего ввести в { $target }! +injector-component-inject-success-message = Вы вводите { $amount }ед. в { $target }! +injector-component-transfer-success-message = Вы перемещаете { $amount }ед. в { $target }. +injector-component-draw-success-message = Вы набираете { $amount }ед. из { $target }. +injector-component-target-already-full-message = { $target } полон! +injector-component-target-is-empty-message = { $target } пуст! +injector-component-cannot-toggle-draw-message = Больше не набрать! +injector-component-cannot-toggle-inject-message = Нечего вводить! + +## mob-inject doafter messages + +injector-component-drawing-user = Вы начинаете набирать шприц. +injector-component-injecting-user = Вы начинаете вводить содержимое шприца. +injector-component-drawing-target = { CAPITALIZE($user) } начинает набирать шприц из вас! +injector-component-injecting-target = { CAPITALIZE($user) } начинает вводить содержимое шприца в вас! diff --git a/Resources/Locale/ru-RU/chemistry/components/mixing-component.ftl b/Resources/Locale/ru-RU/chemistry/components/mixing-component.ftl new file mode 100644 index 0000000000..89ecf45c87 --- /dev/null +++ b/Resources/Locale/ru-RU/chemistry/components/mixing-component.ftl @@ -0,0 +1,13 @@ +# Types +mixing-verb-default-mix = смешивание +mixing-verb-default-grind = измельчение +mixing-verb-default-juice = выжимание +mixing-verb-default-condense = конденсирование +mixing-verb-centrifuge = центрифугирование +mixing-verb-electrolysis = электролиз +mixing-verb-holy = благословение + +## Entity + +default-mixing-success = Вы смешиваете { $mixed } при помощи { $mixer } +bible-mixing-success = Вы благословляете { $mixed } при помощи { $mixer } diff --git a/Resources/Locale/ru-RU/chemistry/components/rehydratable-component.ftl b/Resources/Locale/ru-RU/chemistry/components/rehydratable-component.ftl new file mode 100644 index 0000000000..843874a1fb --- /dev/null +++ b/Resources/Locale/ru-RU/chemistry/components/rehydratable-component.ftl @@ -0,0 +1 @@ +rehydratable-component-expands-message = { $owner } расширяется! diff --git a/Resources/Locale/ru-RU/chemistry/components/scoopable-component.ftl b/Resources/Locale/ru-RU/chemistry/components/scoopable-component.ftl new file mode 100644 index 0000000000..1f0c1a62b5 --- /dev/null +++ b/Resources/Locale/ru-RU/chemistry/components/scoopable-component.ftl @@ -0,0 +1 @@ +scoopable-component-popup = Вы зачёрпываете { $scooped } при помощи { $beaker }. diff --git a/Resources/Locale/ru-RU/chemistry/components/solution-container-mixer-component.ftl b/Resources/Locale/ru-RU/chemistry/components/solution-container-mixer-component.ftl new file mode 100644 index 0000000000..6db7f71c92 --- /dev/null +++ b/Resources/Locale/ru-RU/chemistry/components/solution-container-mixer-component.ftl @@ -0,0 +1,3 @@ +solution-container-mixer-activate = Активировать +solution-container-mixer-no-power = Нет энергии! +solution-container-mixer-popup-nothing-to-mix = Внутри пусто! diff --git a/Resources/Locale/ru-RU/chemistry/components/solution-scanner-component.ftl b/Resources/Locale/ru-RU/chemistry/components/solution-scanner-component.ftl new file mode 100644 index 0000000000..e58b5bf43c --- /dev/null +++ b/Resources/Locale/ru-RU/chemistry/components/solution-scanner-component.ftl @@ -0,0 +1,5 @@ +scannable-solution-verb-text = Раствор +scannable-solution-verb-message = Изучить химический состав. +scannable-solution-main-text = Содержит следующие химические вещества: +scannable-solution-empty-container = Не содержит химических веществ. +scannable-solution-chemical = - { $amount }ед. [color={ $color }]{ $type }[/color] diff --git a/Resources/Locale/ru-RU/chemistry/components/solution-spike-component.ftl b/Resources/Locale/ru-RU/chemistry/components/solution-spike-component.ftl new file mode 100644 index 0000000000..1b70b4c070 --- /dev/null +++ b/Resources/Locale/ru-RU/chemistry/components/solution-spike-component.ftl @@ -0,0 +1,3 @@ +spike-solution-generic = Вы толчёте { $spiked-entity } в { $spike-entity }. +spike-solution-empty-generic = Вам не удаётся разбить { $spike-entity } в { $spiked-entity }. +spike-solution-egg = Вы разбиваете { $spike-entity } в { $spiked-entity }. diff --git a/Resources/Locale/ru-RU/chemistry/components/solution-transfer-component.ftl b/Resources/Locale/ru-RU/chemistry/components/solution-transfer-component.ftl new file mode 100644 index 0000000000..36ffc60219 --- /dev/null +++ b/Resources/Locale/ru-RU/chemistry/components/solution-transfer-component.ftl @@ -0,0 +1,20 @@ +### Solution transfer component + +comp-solution-transfer-fill-normal = Вы перемещаете { $amount } ед. из { $owner } в { $target }. +comp-solution-transfer-fill-fully = Вы наполняете { $target } до краёв, переместив { $amount } ед. из { $owner }. +comp-solution-transfer-transfer-solution = Вы перемещаете { $amount } ед. в { $target }. + +## Displayed when trying to transfer to a solution, but either the giver is empty or the taker is full + +comp-solution-transfer-is-empty = { $target } пуст! +comp-solution-transfer-is-full = { $target } полон! + +## Displayed in change transfer amount verb's name + +comp-solution-transfer-verb-custom-amount = Своё кол-во +comp-solution-transfer-verb-amount = { $amount } ед. +comp-solution-transfer-verb-toggle = Переключить на { $amount } ед. + +## Displayed after you successfully change a solution's amount using the BUI + +comp-solution-transfer-set-amount = Перемещаемое количество установлено на { $amount } ед. diff --git a/Resources/Locale/ru-RU/chemistry/components/transformable-container-component.ftl b/Resources/Locale/ru-RU/chemistry/components/transformable-container-component.ftl new file mode 100644 index 0000000000..de88f9fb97 --- /dev/null +++ b/Resources/Locale/ru-RU/chemistry/components/transformable-container-component.ftl @@ -0,0 +1 @@ +transformable-container-component-glass = стакан { $name } diff --git a/Resources/Locale/ru-RU/chemistry/solution/components/shared-solution-container-component.ftl b/Resources/Locale/ru-RU/chemistry/solution/components/shared-solution-container-component.ftl new file mode 100644 index 0000000000..e99be545dd --- /dev/null +++ b/Resources/Locale/ru-RU/chemistry/solution/components/shared-solution-container-component.ftl @@ -0,0 +1,8 @@ +shared-solution-container-component-on-examine-empty-container = Не содержит вещества. +shared-solution-container-component-on-examine-main-text = Содержит [color={ $color }]{ $desc }[/color] { $wordedAmount } +shared-solution-container-component-on-examine-worded-amount-one-reagent = вещество. +shared-solution-container-component-on-examine-worded-amount-multiple-reagents = смесь веществ. +examinable-solution-has-recognizable-chemicals = В этом растворе вы можете распознать { $recognizedString }. +examinable-solution-recognized-first = [color={ $color }]{ $chemical }[/color] +examinable-solution-recognized-next = , [color={ $color }]{ $chemical }[/color] +examinable-solution-recognized-last = и [color={ $color }]{ $chemical }[/color] diff --git a/Resources/Locale/ru-RU/flavors/flavor-profiles.ftl b/Resources/Locale/ru-RU/flavors/flavor-profiles.ftl new file mode 100644 index 0000000000..38ce71ebb9 --- /dev/null +++ b/Resources/Locale/ru-RU/flavors/flavor-profiles.ftl @@ -0,0 +1,267 @@ +flavor-profile = На вкус { $flavor }. +flavor-profile-multiple = На вкус { $flavors } и { $lastFlavor }. +flavor-profile-unknown = Вкус неописуем. + +# Base flavors. Use these when you can't think of anything. +# These are specifically flavors that are placed in front +# of other flavors. When the flavors are processed, these +# will go in front so you don't get this like "Tastes like tomatoes, sweet and spicy", +# instead, you get "Tastes sweet, spicy and like tomatoes". + +flavor-base-savory = жгуче +flavor-base-sweet = сладко +flavor-base-salty = солено +flavor-base-sour = кисло +flavor-base-bitter = горько +flavor-base-spicy = остро +flavor-base-metallic = металлически +flavor-base-meaty = мясисто +flavor-base-fishy = рыбно +flavor-base-crabby = крабово +flavor-base-cheesy = сырно +flavor-base-funny = забавно +flavor-base-tingly = покалывающе +flavor-base-acid = кислотно +flavor-base-leafy = лиственно +flavor-base-minty = мятно +flavor-base-nutty = орехово +flavor-base-chalky = мелово +flavor-base-oily = масляно +flavor-base-peppery = перечно +flavor-base-slimy = скользко +flavor-base-magical = волшебно +flavor-base-fiber = волокнисто +flavor-base-cold = холодно +flavor-base-spooky = страшно +flavor-base-smokey = дымчато +flavor-base-fruity = фруктово +flavor-base-creamy = сливочно +flavor-base-fizzy = шипуче +flavor-base-shocking = шокирующе +flavor-base-cheap = дёшево +flavor-base-piquant = пикантно +flavor-base-sharp = резко +flavor-base-syrupy = сиропово +flavor-base-spaceshroom = таинственно +flavor-base-clean = чисто +flavor-base-alkaline = щёлочно +flavor-base-holy = свято +flavor-base-horrible = ужасно +# lmao +flavor-base-terrible = ужасающе +flavor-base-mindful = разумно + +# Complex flavors. Put a flavor here when you want something that's more +# specific. + +flavor-complex-nothing = как ничто +flavor-complex-honey = как мёд + +# Food-specific flavors. + +flavor-complex-ketchunaise = как помидоры и майонез +flavor-complex-mayonnaise = как майонез +flavor-complex-mustard = как горчица + +## Food chemicals. In case you get something that has this inside. + +flavor-complex-nutriment = как питательные вещества +flavor-complex-vitamin = как витамины +flavor-complex-protein = как протеины + +## Generic food taste. This should be replaced with an actual flavor profile, +## if you have food that looks like this. + +flavor-complex-food = как еда + +## Basic foodstuffs (ingredients, generic flavors) + +flavor-complex-bun = как булочка +flavor-complex-bread = как хлеб +flavor-complex-batter = как тесто для торта +flavor-complex-butter = как сливочное масло +flavor-complex-egg = как яйца +flavor-complex-raw-egg = как сырые яйца +flavor-complex-bacon = как бекон +flavor-complex-chicken = как курочка +flavor-complex-duck = как уточка +flavor-complex-chocolate = как шоколад +flavor-complex-pasta = как паста +flavor-complex-rice = как рис +flavor-complex-oats = как овёс +flavor-complex-jelly = как желе +flavor-complex-soy = как соя +flavor-complex-ice-cream = как мороженое +flavor-complex-dough = как тесто +flavor-complex-sweet-dough = как сладкое тесто +flavor-complex-tofu = как тофу +flavor-complex-miso = как мисо +flavor-complex-lemoon = как лавр +flavor-complex-muffin = как маффин +flavor-complex-peas = как горох +flavor-complex-pineapple = как ананас +flavor-complex-onion = как лук +flavor-complex-eggplant = как баклажан +flavor-complex-carrot = как морковь +flavor-complex-cabbage = как капуста +flavor-complex-potatoes = как картофель +flavor-complex-pumpkin = как тыква +flavor-complex-mushroom = как грибы +flavor-complex-tomato = как помидоры +flavor-complex-corn = как кукуруза +flavor-complex-banana = как бананы +flavor-complex-apple = как яблоки +flavor-complex-cotton = как хлопок +flavor-complex-bungo = как бунго +flavor-complex-raisins = как сушеный виноград +flavor-complex-orange = как апельсины +flavor-complex-watermelon = как арбуз +flavor-complex-garlic = как чеснок +flavor-complex-grape = как виноград +flavor-complex-berry = как ягоды +flavor-complex-meatballs = как фрикадельки +flavor-complex-nettles = как крапива +flavor-complex-jungle = как джунгли +flavor-complex-vegetables = как овощи + +## Complex foodstuffs (cooked foods, joke flavors, etc) + +flavor-complex-pink = как розовый +flavor-complex-curry = как карри +flavor-complex-borsch-1 = как борщ +flavor-complex-borsch-2 = как бортщ +flavor-complex-borsch-3 = как борстч +flavor-complex-borsch-4 = как борш +flavor-complex-borsch-5 = как борщч +flavor-complex-mre-brownie = как дешевый брауни +flavor-complex-fortune-cookie = как случайность +flavor-complex-nutribrick = как будто вы воюете в джунглях. +flavor-complex-cheap-noodles = как дешёвая лапша +flavor-complex-syndi-cakes = как сытный фруктовый пирог +flavor-complex-sus-jerky = как сас +flavor-complex-boritos = как гейминг +flavor-complex-nachos = как начос +flavor-complex-donk = как дешёвая пицца +flavor-complex-copypasta = как повторяющаяся шутка +flavor-complex-memory-leek = как форк-бомба +flavor-complex-bad-joke = как плохая шутка +flavor-complex-gunpowder = как порох +flavor-complex-validhunting = как валидхантинг + +# Drink-specific flavors. + +flavor-complex-people = как люди +flavor-complex-cat = как кошка +flavor-complex-homerun = как хоум-ран +flavor-complex-grass = как трава +flavor-complex-flare = как дымовая шашка +flavor-complex-cobwebs = как паутина +flavor-complex-sadness = как тоска +flavor-complex-hope = как надежда +flavor-complex-chaos = как хаос +flavor-complex-squirming = как шевеление +flavor-complex-electrons = как электроны +flavor-complex-parents = как чьи-то родители +flavor-complex-plastic = как пластик +flavor-complex-glue = как клей +flavor-complex-spaceshroom-cooked = как космический умами +flavor-complex-lost-friendship = как прошедшая дружба +flavor-complex-light = как угасший свет + +## Generic alcohol/soda taste. This should be replaced with an actual flavor profile. + +flavor-complex-profits = как прибыль +flavor-complex-fishops = как страшная рыбья операция +flavor-complex-violets = как фиалки +flavor-complex-alcohol = как алкоголь +flavor-complex-soda = как газировка +flavor-complex-juice = как сок + +## Basic drinks + +flavor-complex-rocksandstones = как скалы и камни +flavor-complex-water = как вода +flavor-complex-beer = как моча +flavor-complex-ale = как хлеб +flavor-complex-cola = как кола +flavor-complex-cognac = как сухой пряный алкоголь +flavor-complex-mead = как забродивший мёд +flavor-complex-vermouth = как виноградная мякоть +flavor-complex-vodka = как забродившее зерно +flavor-complex-tonic-water = как озлобленная вода +flavor-complex-tequila = как забродившая смерть +flavor-complex-energy-drink = как аккумуляторная кислота +flavor-complex-dr-gibb = как халатность +flavor-complex-ginger-soda = как имбирь +flavor-complex-grape-soda = как виноградная газировка +flavor-complex-lemon-lime-soda = как лимонно-лаймовая газировка +flavor-complex-pwr-game-soda = как гейминг +flavor-complex-root-beer-soda = как рутбир +flavor-complex-citrus-soda = как цитрусовая газировка +flavor-complex-space-up-soda = как космос +flavor-complex-starkist-soda = как апельсиновая газировка +flavor-complex-fourteen-loko-soda = как сладкий солод +flavor-complex-sake = как сладкий, алкогольный рис +flavor-complex-rum = как забродивший сахар +flavor-complex-coffee-liquor = как крепкий, горький кофе +flavor-complex-whiskey = как патока +flavor-complex-coconut-rum = как ореховый ферментированный сахар +flavor-complex-shitty-wine = как виноградная кожура +flavor-complex-iced-tea = как холодный чай +flavor-complex-champagne = как свежеиспечённый хлеб +flavor-complex-coffee = как кофе +flavor-complex-milk = как молоко +flavor-complex-tea = как чай +flavor-complex-ice = как лёд + +## Cocktails + +flavor-complex-mopwata = как застоявшаяся грязная вода +flavor-complex-long-island = подозрительно похож на холодный чай +flavor-complex-three-mile-island = как чай, заваренный в ядерных отходах +flavor-complex-arnold-palmer = как попадание в лунку с первого удара +flavor-complex-blue-hawaiian = как тропики +flavor-complex-cosmopolitan = сладко и терпко +flavor-complex-painkiller = как шипучий ананасовый сок +flavor-complex-pina-colada = как тропическое солнце +flavor-complex-whiskey-cola = как газированная патока +flavor-complex-singulo = как бездонная дыра +flavor-complex-syndie-bomb = как горький виски +flavor-complex-root-beer-float = как мороженое в рутбире +flavor-complex-black-russian = как алкогольный кофе +flavor-complex-white-russian = как подслащенный алкогольный кофе +flavor-complex-moonshine = как чистый алкоголь +flavor-complex-tequila-sunrise = как мексиканское утро +flavor-complex-irish-coffee = как пробуждение алкоголика +flavor-complex-iced-beer = как ледяная моча +flavor-complex-gargle-blaster = как будто кто-то ударил вас по голове золотым слитком, покрытым лимоном. +flavor-complex-bloody-mary = как тяжелое похмелье +flavor-complex-beepsky = как нефть и виски +flavor-complex-banana-honk = как банановый милкшейк +flavor-complex-atomic-bomb = как ядерная пустошь +flavor-complex-atomic-cola = как накопление бутылочных крышек +flavor-complex-cuba-libre = как крепкая кола +flavor-complex-gin-tonic = как крепкая газировка с лимоном и лаймом +flavor-complex-screwdriver = как крепкий апельсиновый сок +flavor-complex-cogchamp = как латунь +flavor-complex-themartinez = как фиалки и лимонная водка +flavor-complex-irish-car-bomb = как шипучая пенка колы + +### This is exactly what pilk tastes like. I'm not even joking. I might've been a little drunk though + +flavor-complex-white-gilgamesh = как слегка газированные сливки +flavor-complex-antifreeze = как тепло +flavor-complex-pilk = как сладкое молоко + +# Medicine/chemical-specific flavors. + + +## Generic flavors. + +flavor-complex-medicine = как лекарство +flavor-complex-carpet = как горсть шерсти +flavor-complex-bee = беспчеловечно +flavor-complex-sax = как джаз +flavor-complex-bottledlightning = как молния в бутылке +flavor-complex-punishment = как наказание +flavor-weh = как вех diff --git a/Resources/Locale/ru-RU/guidebook/chemistry/conditions.ftl b/Resources/Locale/ru-RU/guidebook/chemistry/conditions.ftl new file mode 100644 index 0000000000..cc406638b6 --- /dev/null +++ b/Resources/Locale/ru-RU/guidebook/chemistry/conditions.ftl @@ -0,0 +1,47 @@ +reagent-effect-condition-guidebook-total-damage = + { $max -> + [2147483648] тело имеет по крайней мере { NATURALFIXED($min, 2) } общего урона + *[other] + { $min -> + [0] имеет не более { NATURALFIXED($max, 2) } общего урона + *[other] имеет между { NATURALFIXED($min, 2) } и { NATURALFIXED($max, 2) } общего урона + } + } +reagent-effect-condition-guidebook-reagent-threshold = + { $max -> + [2147483648] в кровеносной системе имеется по крайней мере { NATURALFIXED($min, 2) }ед. { $reagent } + *[other] + { $min -> + [0] имеется не более { NATURALFIXED($max, 2) }ед. { $reagent } + *[other] имеет между { NATURALFIXED($min, 2) }ед. и { NATURALFIXED($max, 2) }ед. { $reagent } + } + } +reagent-effect-condition-guidebook-mob-state-condition = пациент в { $state } +reagent-effect-condition-guidebook-solution-temperature = + температура раствора составляет { $max -> + [2147483648] не менее { NATURALFIXED($min, 2) }k + *[other] + { $min -> + [0] не более { NATURALFIXED($max, 2) }k + *[other] между { NATURALFIXED($min, 2) }k и { NATURALFIXED($max, 2) }k + } + } +reagent-effect-condition-guidebook-body-temperature = + температура тела составляет { $max -> + [2147483648] не менее { NATURALFIXED($min, 2) }k + *[other] + { $min -> + [0] не более { NATURALFIXED($max, 2) }k + *[other] между { NATURALFIXED($min, 2) }k и { NATURALFIXED($max, 2) }k + } + } +reagent-effect-condition-guidebook-organ-type = + метаболизирующий орган { $shouldhave -> + [true] это + *[false] это не + } { $name } орган +reagent-effect-condition-guidebook-has-tag = + цель { $invert -> + [true] не имеет + *[false] имеет + } метку { $tag } diff --git a/Resources/Locale/ru-RU/guidebook/chemistry/core.ftl b/Resources/Locale/ru-RU/guidebook/chemistry/core.ftl new file mode 100644 index 0000000000..325f568b48 --- /dev/null +++ b/Resources/Locale/ru-RU/guidebook/chemistry/core.ftl @@ -0,0 +1,30 @@ +guidebook-reagent-effect-description = + { $chance -> + [1] { $effect } + *[other] Имеет { NATURALPERCENT($chance, 2) } шанс { $effect } + }{ $conditionCount -> + [0] . + *[other] { " " }, пока { $conditions }. + } +guidebook-reagent-name = [bold][color={ $color }]{ CAPITALIZE($name) }[/color][/bold] +guidebook-reagent-recipes-header = Рецепт +guidebook-reagent-recipes-reagent-display = [bold]{ $reagent }[/bold] \[{ $ratio }\] +guidebook-reagent-sources-header = Источники +guidebook-reagent-sources-ent-wrapper = [bold]{ $name }[/bold] \[1\] +guidebook-reagent-sources-gas-wrapper = [bold]{ $name } (газ)[/bold] \[1\] +guidebook-reagent-effects-header = Эффекты +guidebook-reagent-effects-metabolism-group-rate = [bold]{ $group }[/bold] [color=gray]({ $rate } единиц в секунду)[/color] +guidebook-reagent-recipes-mix-info = + { $minTemp -> + [0] + { $hasMax -> + [true] { CAPITALIZE($verb) } ниже { $maxTemp }K + *[false] { CAPITALIZE($verb) } + } + *[other] + { CAPITALIZE($verb) } { $hasMax -> + [true] между { $minTemp }K и { $maxTemp }K + *[false] выше { $minTemp }K + } + } +guidebook-reagent-physical-description = [italic]На вид вещество { $description }.[/italic]. diff --git a/Resources/Locale/ru-RU/guidebook/chemistry/effects.ftl b/Resources/Locale/ru-RU/guidebook/chemistry/effects.ftl new file mode 100644 index 0000000000..6841c764a5 --- /dev/null +++ b/Resources/Locale/ru-RU/guidebook/chemistry/effects.ftl @@ -0,0 +1,318 @@ +-create-3rd-person = + { $chance -> + [1] Создаёт + *[other] создают + } +-cause-3rd-person = + { $chance -> + [1] Вызывает + *[other] вызывают + } +-satiate-3rd-person = + { $chance -> + [1] Насыщает + *[other] насыщают + } +reagent-effect-guidebook-create-entity-reaction-effect = + { $chance -> + [1] Создаёт + *[other] создают + } { $amount -> + [1] { $entname } + *[other] { $amount } { $entname } + } +reagent-effect-guidebook-explosion-reaction-effect = + { $chance -> + [1] Вызывает + *[other] вызывают + } взрыв +reagent-effect-guidebook-emp-reaction-effect = + { $chance -> + [1] Вызывает + *[other] вызывают + } электромагнитный импульс +reagent-effect-guidebook-foam-area-reaction-effect = + { $chance -> + [1] Создаёт + *[other] создают + } большое количество пены +reagent-effect-guidebook-foam-area-reaction-effect = + { $chance -> + [1] Создаёт + *[other] создают + } большое количество дыма +reagent-effect-guidebook-satiate-thirst = + { $chance -> + [1] Утоляет + *[other] утоляют + } { $relative -> + [1] жажду средне + *[other] жажду на { NATURALFIXED($relative, 3) }x от обычного + } +reagent-effect-guidebook-satiate-hunger = + { $chance -> + [1] Насыщает + *[other] насыщают + } { $relative -> + [1] голод средне + *[other] голод на { NATURALFIXED($relative, 3) }x от обычного + } +reagent-effect-guidebook-health-change = + { $chance -> + [1] + { $healsordeals -> + [heals] Излечивает + [deals] Наносит + *[both] Изменяет здоровье на + } + *[other] + { $healsordeals -> + [heals] излечивать + [deals] наносить + *[both] изменяют здоровье на + } + } { $changes } +reagent-effect-guidebook-status-effect = + { $type -> + [add] + { $chance -> + [1] Вызывает + *[other] вызывают + } { LOC($key) } минимум на { NATURALFIXED($time, 3) }, эффект накапливается + *[set] + { $chance -> + [1] Вызывает + *[other] вызывают + } { LOC($key) } минимум на { NATURALFIXED($time, 3) }, эффект не накапливается + [remove] + { $chance -> + [1] Удаляет + *[other] удаляют + } { NATURALFIXED($time, 3) } от { LOC($key) } + } +reagent-effect-guidebook-activate-artifact = + { $chance -> + [1] Пытается + *[other] пытаются + } активировать артефакт +reagent-effect-guidebook-set-solution-temperature-effect = + { $chance -> + [1] Устанавливает + *[other] устанавливают + } температуру раствора точно { NATURALFIXED($temperature, 2) }k +reagent-effect-guidebook-adjust-solution-temperature-effect = + { $chance -> + [1] + { $deltasign -> + [1] Добавляет + *[-1] Удаляет + } + *[other] + { $deltasign -> + [1] добавляют + *[-1] удаляют + } + } тепло из раствора, пока температура не достигнет { $deltasign -> + [1] не более { NATURALFIXED($maxtemp, 2) }k + *[-1] не менее { NATURALFIXED($mintemp, 2) }k + } +reagent-effect-guidebook-adjust-reagent-reagent = + { $chance -> + [1] + { $deltasign -> + [1] Добавляют + *[-1] Удаляет + } + *[other] + { $deltasign -> + [1] добавляют + *[-1] удаляют + } + } { NATURALFIXED($amount, 2) }ед. от { $reagent } { $deltasign -> + [1] к + *[-1] из + } раствора +reagent-effect-guidebook-adjust-reagent-group = + { $chance -> + [1] + { $deltasign -> + [1] Добавляет + *[-1] Удаляет + } + *[other] + { $deltasign -> + [1] добавляют + *[-1] удаляют + } + } { NATURALFIXED($amount, 2) }ед реагентов в группе { $group } { $deltasign -> + [1] к + *[-1] из + } раствора +reagent-effect-guidebook-adjust-temperature = + { $chance -> + [1] + { $deltasign -> + [1] Добавляют + *[-1] Удаляют + } + *[other] + { $deltasign -> + [1] добавляют + *[-1] удаляют + } + } { POWERJOULES($amount) } тепла { $deltasign -> + [1] к телу + *[-1] из тела + }, в котором он метабилизируется +reagent-effect-guidebook-chem-cause-disease = + { $chance -> + [1] Вызывает + *[other] вызывают + } болезнь { $disease } +reagent-effect-guidebook-chem-cause-random-disease = + { $chance -> + [1] Вызывает + *[other] вызывают + } болезнь { $diseases } +reagent-effect-guidebook-jittering = + { $chance -> + [1] Вызывает + *[other] вызывают + } тряску +reagent-effect-guidebook-chem-clean-bloodstream = + { $chance -> + [1] Очищает + *[other] очищают + } кровеносную систему от других веществ +reagent-effect-guidebook-cure-disease = + { $chance -> + [1] Излечивает + *[other] излечивают + } болезнь +reagent-effect-guidebook-cure-eye-damage = + { $chance -> + [1] + { $deltasign -> + [1] Наносит + *[-1] Излечивает + } + *[other] + { $deltasign -> + [1] наносят + *[-1] излечивают + } + } повреждения глаз +reagent-effect-guidebook-chem-vomit = + { $chance -> + [1] Вызывает + *[other] вызывают + } рвоту +reagent-effect-guidebook-create-gas = + { $chance -> + [1] Создаёт + *[other] создают + } { $moles } { $moles -> + [1] моль + *[other] моль + } газа { $gas } +reagent-effect-guidebook-drunk = + { $chance -> + [1] Вызывает + *[other] вызывают + } опьянение +reagent-effect-guidebook-electrocute = + { $chance -> + [1] Бьёт током + *[other] бьют током + } употребившего в течении { NATURALFIXED($time, 3) } +reagent-effect-guidebook-extinguish-reaction = + { $chance -> + [1] Гасит + *[other] гасят + } огонь +reagent-effect-guidebook-flammable-reaction = + { $chance -> + [1] Повышает + *[other] повышают + } воспламеняемость +reagent-effect-guidebook-ignite = + { $chance -> + [1] Поджигает + *[other] поджигают + } употребившего +reagent-effect-guidebook-make-sentient = + { $chance -> + [1] Делает + *[other] делают + } употребившего разумным +reagent-effect-guidebook-make-polymorph = + { $chance -> + [1] Превращает + *[other] превращают + } употребившего в { $entityname } +reagent-effect-guidebook-modify-bleed-amount = + { $chance -> + [1] + { $deltasign -> + [1] Усиливает + *[-1] Ослабляет + } + *[other] + { $deltasign -> + [1] усиливают + *[-1] ослабляют + } + } кровотечение +reagent-effect-guidebook-modify-blood-level = + { $chance -> + [1] + { $deltasign -> + [1] Повышает + *[-1] Понижает + } + *[other] + { $deltasign -> + [1] повышают + *[-1] понижают + } + } уровень крови в организме +reagent-effect-guidebook-paralyze = + { $chance -> + [1] Парализует + *[other] парализуют + } употребившего минимум на { NATURALFIXED($time, 3) } +reagent-effect-guidebook-movespeed-modifier = + { $chance -> + [1] Делает + *[other] делают + } скорость передвижения { NATURALFIXED($walkspeed, 3) }x от стандартной минимум на { NATURALFIXED($time, 3) } +reagent-effect-guidebook-reset-narcolepsy = + { $chance -> + [1] Предотвращает + *[other] предотвращают + } приступы нарколепсии +reagent-effect-guidebook-wash-cream-pie-reaction = + { $chance -> + [1] Смывает + *[other] смывают + } кремовый пирог с лица +reagent-effect-guidebook-cure-zombie-infection = + { $chance -> + [1] Лечит + *[other] лечат + } зомби-вирус +reagent-effect-guidebook-cause-zombie-infection = + { $chance -> + [1] Заражает + *[other] заражают + } человека зомби-вирусом +reagent-effect-guidebook-innoculate-zombie-infection = + { $chance -> + [1] Лечит + *[other] лечат + } зомби-вирус и обеспечивает иммунитет к нему в будущем +reagent-effect-guidebook-missing = + { $chance -> + [1] Вызывает + *[other] вызывают + } неизвестный эффект, так как никто еще не написал об этом эффекте diff --git a/Resources/Locale/ru-RU/guidebook/chemistry/healthchange.ftl b/Resources/Locale/ru-RU/guidebook/chemistry/healthchange.ftl new file mode 100644 index 0000000000..6aa54b9813 --- /dev/null +++ b/Resources/Locale/ru-RU/guidebook/chemistry/healthchange.ftl @@ -0,0 +1,5 @@ +health-change-display = + { $deltasign -> + [-1] [color=green]{ NATURALFIXED($amount, 2) }[/color] ед. { $kind } + *[1] [color=red]{ NATURALFIXED($amount, 2) }[/color] ед. { $kind } + } diff --git a/Resources/Locale/ru-RU/guidebook/chemistry/statuseffects.ftl b/Resources/Locale/ru-RU/guidebook/chemistry/statuseffects.ftl new file mode 100644 index 0000000000..fd6cabc2d5 --- /dev/null +++ b/Resources/Locale/ru-RU/guidebook/chemistry/statuseffects.ftl @@ -0,0 +1,13 @@ +reagent-effect-status-effect-Stun = оглушение +reagent-effect-status-effect-KnockedDown = нокдаун +reagent-effect-status-effect-Jitter = дрожь +reagent-effect-status-effect-TemporaryBlindness = слепота +reagent-effect-status-effect-SeeingRainbows = галлюцинации +reagent-effect-status-effect-Muted = неспособность разговаривать +reagent-effect-status-effect-Stutter = заикание +reagent-effect-status-effect-ForcedSleep = потеря сознания +reagent-effect-status-effect-Drunk = опьянение +reagent-effect-status-effect-PressureImmunity = невосприимчивость к давлению +reagent-effect-status-effect-Pacified = принудительный пацифизм +reagent-effect-status-effect-RatvarianLanguage = паттерны ратварского языка +reagent-effect-status-effect-StaminaModifier = модифицированная выносливость diff --git a/Resources/Locale/ru-RU/guidebook/guidebook.ftl b/Resources/Locale/ru-RU/guidebook/guidebook.ftl new file mode 100644 index 0000000000..f9808e5517 --- /dev/null +++ b/Resources/Locale/ru-RU/guidebook/guidebook.ftl @@ -0,0 +1,6 @@ +guidebook-window-title = Руководство +guidebook-placeholder-text = Выберите запись. +guidebook-placeholder-text-2 = Если вы новичок, то начните с самой верхней записи. +guidebook-filter-placeholder-text = Фильтр +guidebook-monkey-unspin = Отперевернуть обезьяну +guidebook-monkey-disco = Диско обезьяна diff --git a/Resources/Locale/ru-RU/guidebook/guides.ftl b/Resources/Locale/ru-RU/guidebook/guides.ftl new file mode 100644 index 0000000000..1f6db0b216 --- /dev/null +++ b/Resources/Locale/ru-RU/guidebook/guides.ftl @@ -0,0 +1,72 @@ +guide-entry-engineering = Инженерное дело +guide-entry-construction = Строительство +guide-entry-airlock-security = Улучшение шлюзов +guide-entry-atmospherics = Атмосфера +guide-entry-botany = Ботаника +guide-entry-fires = Пожары и разгерметизации +guide-entry-shuttle-craft = Шаттлостроение +guide-entry-networking = Сетевые соединения +guide-entry-network-configurator = Конфигуратор сетей +guide-entry-access-configurator = Конфигуратор доступа +guide-entry-power = Электропитание +guide-entry-portable-generator = Портативные генераторы +guide-entry-ame = Двигатель антиматерии (ДАМ) +guide-entry-singularity = Сингулярный двигатель +guide-entry-teg = Термоэлектрический генератор (ТЭГ) +guide-entry-rtg = РИТЭГ +guide-entry-science = Научный отдел +guide-entry-radio = Радиосвязь +guide-entry-machine-upgrading = Улучшение оборудования +guide-entry-cargo = Отдел снабжения +guide-entry-cargo-bounties = Запросы отдела снабжения +guide-entry-salvage = Утилизация обломков +guide-entry-controls = Управление +guide-entry-chemicals = Химические вещества +guide-entry-elements = Элементы +guide-entry-narcotics = Наркотики +guide-entry-pyrotechnics = Пиротехника +guide-entry-toxins = Токсины +guide-entry-foods = Пищевые +guide-entry-biological = Биологические +guide-entry-others = Другие +guide-entry-botanical = Ботанические +guide-entry-jobs = Должности +guide-entry-janitorial = Уборка станции +guide-entry-bartender = Бармен +guide-entry-chef = Шеф-повар +guide-entry-foodrecipes = Рецепты еды +guide-entry-medical = Медицинский отдел +guide-entry-medicaldoctor = Врач +guide-entry-chemist = Химик +guide-entry-medicine = Медицина +guide-entry-brute = + Продвинутое лечение + механических повреждений +guide-entry-botanicals = Ботаника +guide-entry-cloning = Клонирование +guide-entry-cryogenics = Криогеника +guide-entry-survival = Выживание +guide-entry-technologies = Технологии +guide-entry-anomalous-research = Исследование аномалий +guide-entry-scanners-and-vessels = Сканеры и сосуды +guide-entry-ape = М.А.К.А.К. +guide-entry-xenoarchaeology = Ксеноархеология +guide-entry-artifact-reports = Отчёты об артефактах +guide-entry-traversal-distorter = Поперечный искатель +guide-entry-ss14 = Космическая станция 14 +guide-entry-robotics = Робототехника +guide-entry-cyborgs = Киборги +guide-entry-security = Безопасность станции +guide-entry-forensics = Криминалистика +guide-entry-defusal = Обезвреживание крупной бомбы +guide-entry-criminal-records = Криминальные записи +guide-entry-species = Расы +guide-entry-antagonists = Антагонисты +guide-entry-nuclear-operatives = Ядерные оперативники +guide-entry-traitors = Предатели +guide-entry-zombies = Зомби +guide-entry-revolutionaries = Революционеры +guide-entry-minor-antagonists = Малые антагонисты +guide-entry-space-ninja = Космический ниндзя +guide-entry-writing = Разметка письма +guide-entry-glossary = Словарь терминов diff --git a/Resources/Locale/ru-RU/guidebook/verb.ftl b/Resources/Locale/ru-RU/guidebook/verb.ftl new file mode 100644 index 0000000000..bec1dc12e7 --- /dev/null +++ b/Resources/Locale/ru-RU/guidebook/verb.ftl @@ -0,0 +1 @@ +guide-help-verb = Помощь diff --git a/Resources/Locale/ru-RU/nutrition/components/animal-husbandry.ftl b/Resources/Locale/ru-RU/nutrition/components/animal-husbandry.ftl new file mode 100644 index 0000000000..10bc16aed7 --- /dev/null +++ b/Resources/Locale/ru-RU/nutrition/components/animal-husbandry.ftl @@ -0,0 +1,3 @@ +infant-name-prefix = детёныш { $name } +reproductive-birth-popup = { CAPITALIZE($parent) } родила! +reproductive-laid-egg-popup = { CAPITALIZE($parent) } отложила яйцо! diff --git a/Resources/Locale/ru-RU/nutrition/components/drink-component.ftl b/Resources/Locale/ru-RU/nutrition/components/drink-component.ftl new file mode 100644 index 0000000000..14fbb5671c --- /dev/null +++ b/Resources/Locale/ru-RU/nutrition/components/drink-component.ftl @@ -0,0 +1,23 @@ +drink-component-on-use-is-empty = { $owner } пуст! +drink-component-on-examine-is-empty = [color=gray]Пусто[/color] +drink-component-on-examine-is-opened = [color=yellow]Открыто[/color] +drink-component-on-examine-is-sealed = Пломба не повреждена. +drink-component-on-examine-is-unsealed = Пломба разорвана. +drink-component-on-examine-is-full = Полон +drink-component-on-examine-is-mostly-full = Почти полон +drink-component-on-examine-is-half-full = Наполовину полон +drink-component-on-examine-is-half-empty = Наполовину пуст +drink-component-on-examine-is-mostly-empty = Почти пуст +drink-component-on-examine-exact-volume = Полон на { $amount }ед. +drink-component-try-use-drink-not-open = Сначала откройте { $owner }! +drink-component-try-use-drink-is-empty = { $entity } пуст! +drink-component-try-use-drink-cannot-drink = Вы не можете ничего пить! +drink-component-try-use-drink-had-enough = Вы не можете выпить больше! +drink-component-try-use-drink-cannot-drink-other = Они не могут ничего пить! +drink-component-try-use-drink-had-enough-other = Они не могут выпить больше! +drink-component-try-use-drink-success-slurp = Сёрб +drink-component-try-use-drink-success-slurp-taste = Сёрб. { $flavors } +drink-component-force-feed = { CAPITALIZE($user) } пытается вас чем-то напоить! +drink-component-force-feed-success = { CAPITALIZE($user) } вас чем-то напоил! { $flavors } +drink-component-force-feed-success-user = Вы успешно напоили { $target } +drink-system-verb-drink = Пить diff --git a/Resources/Locale/ru-RU/nutrition/components/food-component.ftl b/Resources/Locale/ru-RU/nutrition/components/food-component.ftl new file mode 100644 index 0000000000..0497bd0641 --- /dev/null +++ b/Resources/Locale/ru-RU/nutrition/components/food-component.ftl @@ -0,0 +1,23 @@ +### Interaction Messages + +food-you-need-to-hold-utensil = Вы должны держать { $utensil }, чтобы съесть это! +food-nom = Ням. { $flavors } +food-swallow = Вы проглатываете { $food }. { $flavors } +food-has-used-storage = Вы не можете съесть { $food } пока внутри что-то есть. +food-system-remove-mask = Сначала вам нужно снять { $entity }. + +## System + +food-system-you-cannot-eat-any-more = В вас больше не лезет! +food-system-you-cannot-eat-any-more-other = В них больше не лезет! +food-system-try-use-food-is-empty = В { $entity } пусто! +food-system-wrong-utensil = Вы не можете есть { $food } с помощью { $utensil }. +food-system-cant-digest = Вы не можете переварить { $entity }! +food-system-cant-digest-other = Они не могут переварить { $entity }! +food-system-verb-eat = Съесть + +## Force feeding + +food-system-force-feed = { CAPITALIZE($user) } пытается вам что-то скормить! +food-system-force-feed-success = { CAPITALIZE($user) } вам что-то скормил! { $flavors } +food-system-force-feed-success-user = Вы успешно накормили { $target } diff --git a/Resources/Locale/ru-RU/nutrition/components/openable-component.ftl b/Resources/Locale/ru-RU/nutrition/components/openable-component.ftl new file mode 100644 index 0000000000..efcd656637 --- /dev/null +++ b/Resources/Locale/ru-RU/nutrition/components/openable-component.ftl @@ -0,0 +1,2 @@ +openable-component-verb-open = Открыть +openable-component-verb-close = Закрыть diff --git a/Resources/Locale/ru-RU/nutrition/components/sliceable-food-component.ftl b/Resources/Locale/ru-RU/nutrition/components/sliceable-food-component.ftl new file mode 100644 index 0000000000..905872f012 --- /dev/null +++ b/Resources/Locale/ru-RU/nutrition/components/sliceable-food-component.ftl @@ -0,0 +1,9 @@ +sliceable-food-component-on-examine-remaining-slices-text = + { $remainingCount -> + [one] Остался + *[other] Осталось + } { $remainingCount } { $remainingCount -> + [one] кусочек + [few] кусочка + *[other] кусочков + }. diff --git a/Resources/Prototypes/Chemistry/mixing_types.yml b/Resources/Prototypes/Chemistry/mixing_types.yml index 20d58e70ab..bf3adb5795 100644 --- a/Resources/Prototypes/Chemistry/mixing_types.yml +++ b/Resources/Prototypes/Chemistry/mixing_types.yml @@ -5,8 +5,8 @@ id: DummyMix verbText: mixing-verb-default-mix icon: - sprite: Objects/Specific/Chemistry/beaker_large.rsi - state: beakerlarge + sprite: _CP14/Structures/Specific/Alchemy/alchemy_vat.rsi + state: full - type: mixingCategory id: DummyGrind diff --git a/Resources/Prototypes/_CP14/Entities/Effects/alchemy_effects.yml b/Resources/Prototypes/_CP14/Entities/Effects/alchemy_effects.yml new file mode 100644 index 0000000000..c0d9e35f41 --- /dev/null +++ b/Resources/Prototypes/_CP14/Entities/Effects/alchemy_effects.yml @@ -0,0 +1,33 @@ +- type: entity + parent: BaseFoam + id: CP14Mist + name: mist + components: + - type: Sprite + sprite: _CP14/Effects/mist.rsi + state: chemmist + - type: TimedDespawn + lifetime: 20 + - type: Tag + tags: + - HideContextMenu + - type: SolutionContainerManager + solutions: + solutionArea: + maxVol: 100 + +- type: entity + parent: CP14Mist + id: CP14MistVitalExtract + components: + - type: Sprite + sprite: _CP14/Effects/mist.rsi + layers: + - state: chemmist + color: "#db2a2a" + - type: SolutionContainerManager + solutions: + solutionArea: + reagents: + - ReagentId: CP14VitalExtract + Quantity: 10 \ No newline at end of file diff --git a/Resources/Prototypes/_CP14/Entities/Mobs/Species/base.yml b/Resources/Prototypes/_CP14/Entities/Mobs/Species/base.yml index 98aebf0cc3..ce57084617 100644 --- a/Resources/Prototypes/_CP14/Entities/Mobs/Species/base.yml +++ b/Resources/Prototypes/_CP14/Entities/Mobs/Species/base.yml @@ -4,75 +4,73 @@ save: false abstract: true components: - - type: Sprite - layers: - - map: [ "enum.HumanoidVisualLayers.Chest" ] - - map: [ "enum.HumanoidVisualLayers.Head" ] - - map: [ "enum.HumanoidVisualLayers.Snout" ] - - map: [ "enum.HumanoidVisualLayers.Eyes" ] - - map: [ "enum.HumanoidVisualLayers.RArm" ] - - map: [ "enum.HumanoidVisualLayers.LArm" ] - - map: [ "enum.HumanoidVisualLayers.RLeg" ] - - map: [ "enum.HumanoidVisualLayers.LLeg" ] - - shader: StencilClear - sprite: Mobs/Species/Human/parts.rsi #PJB on stencil clear being on the left leg: "...this is 'fine'" -https://github.com/space-wizards/space-station-14/pull/12217#issuecomment-1291677115 - # its fine, but its still very stupid that it has to be done like this instead of allowing sprites to just directly insert a stencil clear. - # sprite refactor when - state: l_leg - - shader: StencilMask - map: [ "enum.HumanoidVisualLayers.StencilMask" ] - sprite: Mobs/Customization/masking_helpers.rsi - state: unisex_full - visible: false - - map: [ "jumpsuit" ] - - map: [ "pants" ] - - map: [ "shirt" ] - - map: [ "enum.HumanoidVisualLayers.LFoot" ] - - map: [ "enum.HumanoidVisualLayers.RFoot" ] - - map: [ "enum.HumanoidVisualLayers.LHand" ] - - map: [ "enum.HumanoidVisualLayers.RHand" ] - - map: [ "gloves" ] - - map: [ "shoes" ] - - map: [ "ears" ] - - map: [ "outerClothing" ] - - map: [ "eyes" ] - - map: [ "belt" ] - - map: [ "id" ] - - map: [ "neck" ] - - map: [ "cloak" ] - - map: [ "back" ] - - map: [ "enum.HumanoidVisualLayers.FacialHair" ] - - map: [ "enum.HumanoidVisualLayers.Hair" ] - - map: [ "enum.HumanoidVisualLayers.HeadSide" ] - - map: [ "enum.HumanoidVisualLayers.HeadTop" ] - - map: [ "enum.HumanoidVisualLayers.Tail" ] - - map: [ "mask" ] - - map: [ "head" ] - - map: [ "pocket1" ] - - map: [ "pocket2" ] - - map: ["enum.HumanoidVisualLayers.Handcuffs"] - color: "#ffffff" - sprite: Objects/Misc/handcuffs.rsi - state: body-overlay-2 - visible: false - - map: [ "clownedon" ] # Dynamically generated - sprite: "Effects/creampie.rsi" - state: "creampie_human" - visible: false - - type: HumanoidAppearance - species: CP14Human - - type: Body - prototype: CP14Human - requiredLegs: 2 + - type: Sprite + layers: + - map: [ "enum.HumanoidVisualLayers.Chest" ] + - map: [ "enum.HumanoidVisualLayers.Head" ] + - map: [ "enum.HumanoidVisualLayers.Snout" ] + - map: [ "enum.HumanoidVisualLayers.Eyes" ] + - map: [ "enum.HumanoidVisualLayers.RArm" ] + - map: [ "enum.HumanoidVisualLayers.LArm" ] + - map: [ "enum.HumanoidVisualLayers.RLeg" ] + - map: [ "enum.HumanoidVisualLayers.LLeg" ] + - shader: StencilClear + sprite: Mobs/Species/Human/parts.rsi + state: l_leg + - shader: StencilMask + map: [ "enum.HumanoidVisualLayers.StencilMask" ] + sprite: Mobs/Customization/masking_helpers.rsi + state: unisex_full + visible: false + - map: [ "pants" ] + - map: [ "shirt" ] + - map: [ "enum.HumanoidVisualLayers.LFoot" ] + - map: [ "enum.HumanoidVisualLayers.RFoot" ] + - map: [ "enum.HumanoidVisualLayers.LHand" ] + - map: [ "enum.HumanoidVisualLayers.RHand" ] + - map: [ "gloves" ] + - map: [ "shoes" ] + - map: [ "ears" ] + - map: [ "eyes" ] + - map: [ "belt1" ] + - map: [ "belt2" ] + - map: [ "neck" ] + - map: [ "cloak" ] + - map: [ "back" ] + - map: [ "enum.HumanoidVisualLayers.FacialHair" ] + - map: [ "enum.HumanoidVisualLayers.Hair" ] + - map: [ "enum.HumanoidVisualLayers.HeadSide" ] + - map: [ "enum.HumanoidVisualLayers.HeadTop" ] + - map: [ "enum.HumanoidVisualLayers.Tail" ] + - map: [ "mask" ] + - map: [ "head" ] + - map: [ "pocket1" ] + - map: [ "pocket2" ] + - map: ["enum.HumanoidVisualLayers.Handcuffs"] + color: "#ffffff" + sprite: Objects/Misc/handcuffs.rsi + state: body-overlay-2 + visible: false + - map: [ "clownedon" ] # Dynamically generated + sprite: "Effects/creampie.rsi" + state: "creampie_human" + visible: false + - type: HumanoidAppearance + species: CP14Human + - type: Body + prototype: CP14Human + requiredLegs: 2 - type: entity parent: BaseMobSpeciesOrganic id: CP14BaseMobSpeciesOrganic save: false abstract: true - #components: - # - type: FireVisuals - # alternateState: Standing #TO DO - custom visual + components: + - type: Bloodstream + bloodReagent: CP14Blood +# - type: FireVisuals +# alternateState: Standing #TO DO - custom visual - type: entity save: false @@ -105,7 +103,6 @@ sprite: Mobs/Customization/masking_helpers.rsi state: unisex_full visible: false - - map: ["jumpsuit"] - map: ["enum.HumanoidVisualLayers.LFoot"] - map: ["enum.HumanoidVisualLayers.RFoot"] - map: ["enum.HumanoidVisualLayers.LHand"] @@ -120,11 +117,9 @@ - map: [ "ring2" ] - map: [ "shoes" ] - map: [ "ears" ] - - map: [ "outerClothing" ] - map: [ "eyes" ] - map: [ "belt1" ] - map: [ "belt2" ] - - map: [ "id" ] - map: [ "keys" ] - map: [ "neck" ] - map: [ "back" ] diff --git a/Resources/Prototypes/_CP14/Entities/Objects/Specific/Alchemy/cauldron.yml b/Resources/Prototypes/_CP14/Entities/Objects/Specific/Alchemy/cauldron.yml new file mode 100644 index 0000000000..0bbf8330ec --- /dev/null +++ b/Resources/Prototypes/_CP14/Entities/Objects/Specific/Alchemy/cauldron.yml @@ -0,0 +1,70 @@ +- type: entity + parent: BaseItem + id: CP14Cauldron + name: cauldron + description: A heavy cauldron. It is not as bulky as a vat, but can be carried in your hands. + components: + - type: Item + size: Ginormous + - type: MultiHandedItem + - type: ClothingSpeedModifier + walkModifier: 0.6 + sprintModifier: 0.6 + - type: HeldSpeedModifier + - type: Sprite + sprite: _CP14/Objects/Specific/Alchemy/cauldron.rsi + layers: + - state: icon + - state: liq-1 + map: ["enum.SolutionContainerLayers.Fill"] + visible: false + - type: SolutionContainerManager + solutions: + vat: + maxVol: 100 + - type: Spillable + solution: vat + - type: DrainableSolution + solution: vat + - type: ExaminableSolution + solution: vat + - type: MixableSolution + solution: vat + - type: RefillableSolution + solution: vat + - type: DrawableSolution + solution: vat + - type: DumpableSolution + solution: vat + - type: SolutionItemStatus + solution: vat + - type: Drink + solution: vat + - type: Injector + solutionName: vat + injectOnly: false + ignoreMobs: true + minTransferAmount: 10 + maxTransferAmount: 100 + transferAmount: 50 + toggleState: 1 # draw + - type: UserInterface + interfaces: + enum.TransferAmountUiKey.Key: + type: TransferAmountBoundUserInterface + - type: Appearance + - type: SolutionContainerVisuals + maxFillLevels: 5 + fillBaseName: liq- + inHandsMaxFillLevels: 5 + inHandsFillBaseName: -fill + - type: DamageOtherOnHit + damage: + types: + Blunt: 5 + - type: DamageOnHighSpeedImpact + minimumSpeed: 2 + damage: + types: + Blunt: 5 + \ No newline at end of file diff --git a/Resources/Prototypes/_CP14/Entities/Objects/Specific/Alchemy/herbals.yml b/Resources/Prototypes/_CP14/Entities/Objects/Specific/Alchemy/herbals.yml new file mode 100644 index 0000000000..8ac0150d55 --- /dev/null +++ b/Resources/Prototypes/_CP14/Entities/Objects/Specific/Alchemy/herbals.yml @@ -0,0 +1,37 @@ +- type: entity + id: CP14BloodGrass + parent: FoodProduceBase + name: bloodgrass + description: The dullest and most common plant to be found in the wild is the dark brown grass. + components: + - type: Item + size: Tiny + - type: Produce + - type: Sprite + sprite: _CP14/Objects/Specific/Alchemy/Herbal/bloodgrass.rsi + layers: + - state: base1 + map: ["random"] + - type: RandomSprite + available: + - random: + base1: "" + base2: "" + base3: "" + base4: "" + base5: "" + - type: FlavorProfile + flavors: + - CP14Metallic + - type: Extractable + juiceSolution: + reagents: + - ReagentId: CP14BloodGrassSap + Quantity: 5 + - type: SolutionContainerManager + solutions: + food: + maxVol: 20 + reagents: + - ReagentId: CP14BloodGrassSap + Quantity: 5 \ No newline at end of file diff --git a/Resources/Prototypes/_CP14/Entities/Objects/Specific/Alchemy/vials.yml b/Resources/Prototypes/_CP14/Entities/Objects/Specific/Alchemy/vials.yml index 2791e2eec2..e37191e4a3 100644 --- a/Resources/Prototypes/_CP14/Entities/Objects/Specific/Alchemy/vials.yml +++ b/Resources/Prototypes/_CP14/Entities/Objects/Specific/Alchemy/vials.yml @@ -134,4 +134,19 @@ maxVol: 10 - type: SolutionContainerVisuals maxFillLevels: 5 - fillBaseName: liq- \ No newline at end of file + fillBaseName: liq- + + +# Filled + +- type: entity + id: CP14VialSmallVitalExtract + parent: CP14VialSmall + suffix: Vital extract + components: + - type: SolutionContainerManager + solutions: + vial: + reagents: + - ReagentId: CP14VitalExtract + Quantity: 10 \ No newline at end of file diff --git a/Resources/Prototypes/_CP14/Entities/Objects/Tools/bucket.yml b/Resources/Prototypes/_CP14/Entities/Objects/Tools/bucket.yml index 9483233e47..6e72e5a963 100644 --- a/Resources/Prototypes/_CP14/Entities/Objects/Tools/bucket.yml +++ b/Resources/Prototypes/_CP14/Entities/Objects/Tools/bucket.yml @@ -3,7 +3,7 @@ id: CP14Bucket name: bucket description: It's a boring old bucket. - suffix: CP14 + suffix: CP14, need resprite components: - type: Drink solution: bucket diff --git a/Resources/Prototypes/_CP14/Entities/Structures/Furniture/barrel.yml b/Resources/Prototypes/_CP14/Entities/Structures/Furniture/barrel.yml index daed9c24b9..07bec1d397 100644 --- a/Resources/Prototypes/_CP14/Entities/Structures/Furniture/barrel.yml +++ b/Resources/Prototypes/_CP14/Entities/Structures/Furniture/barrel.yml @@ -75,10 +75,8 @@ barrel: maxVol: 300 - type: SolutionContainerVisuals - maxFillLevels: 7 + maxFillLevels: 5 fillBaseName: liq - - type: Spillable - solution: barrel - type: DrainableSolution solution: barrel - type: ExaminableSolution @@ -103,17 +101,17 @@ solutions: barrel: reagents: - - ReagentId: Water + - ReagentId: CP14Water Quantity: 300 - type: entity id: CP14BarrelBeer parent: CP14BaseBarrel - suffix: Beer + suffix: Blood components: - type: SolutionContainerManager solutions: barrel: reagents: - - ReagentId: Beer + - ReagentId: CP14Blood Quantity: 300 \ No newline at end of file diff --git a/Resources/Prototypes/_CP14/Entities/Structures/Furniture/bonfire.yml b/Resources/Prototypes/_CP14/Entities/Structures/Furniture/bonfire.yml index 1ef21166f2..63e439bc1e 100644 --- a/Resources/Prototypes/_CP14/Entities/Structures/Furniture/bonfire.yml +++ b/Resources/Prototypes/_CP14/Entities/Structures/Furniture/bonfire.yml @@ -1,6 +1,6 @@ - type: entity id: CP14Bonfire - parent: BaseStructure + parent: CP14BaseFireplace name: bonfire description: A pile of logs stacked together, ready to burst into flames at the slightest spark. components: @@ -15,20 +15,6 @@ - type: Construction graph: CP14Bonfire node: CP14Bonfire - - type: Fixtures - fixtures: - fix1: - shape: - !type:PhysShapeAabb - bounds: "-0.45,-0.45,0.45,0.45" - density: 55 - mask: - - TabletopMachineMask - layer: - - Impassable - - MidImpassable - - LowImpassable - hard: false - type: Damageable damageContainer: Inorganic damageModifierSet: Wood @@ -36,25 +22,10 @@ thresholds: - trigger: !type:DamageTrigger - damage: 80 + damage: 20 behaviors: - !type:DoActsBehavior acts: [ "Destruction" ] - - trigger: - !type:DamageTypeTrigger - damageType: Heat - damage: 50 - behaviors: - - !type:DoActsBehavior - acts: [ "Destruction" ] - - type: CP14FlammableAmbientSound - - type: AmbientSound - enabled: false - volume: -5 - range: 5 - sound: - path: /Audio/Ambience/Objects/fireplace.ogg - - type: Appearance - type: GenericVisualizer visuals: enum.FireplaceFuelVisuals.Status: @@ -62,30 +33,13 @@ Empty: { visible: false } Medium: { visible: true, state: full1 } Full: { visible: true, state: full2 } - - type: Reactive - groups: - Flammable: [ Touch ] - Extinguish: [ Touch ] - - type: Flammable - fireSpread: true - canResistFire: false - alwaysCombustible: true - canExtinguish: true - firestacksOnIgnite: 0.5 - damage: - types: - Heat: 0 - type: FireVisuals sprite: _CP14/Structures/Furniture/bonfire.rsi normalState: burning - - type: ItemPlacer - maxEntities: 4 - - type: CP14FlammableEntityHeater - - type: CP14Fireplace - type: entity id: CP14Stick parent: CP14Bucket name: Stick!!! components: - - type: CP14FireplaceFuel \ No newline at end of file + - type: CP14FireplaceFuel diff --git a/Resources/Prototypes/_CP14/Entities/Structures/Specific/Alchemy/heater.yml b/Resources/Prototypes/_CP14/Entities/Structures/Specific/Alchemy/heater.yml new file mode 100644 index 0000000000..62fe322ed4 --- /dev/null +++ b/Resources/Prototypes/_CP14/Entities/Structures/Specific/Alchemy/heater.yml @@ -0,0 +1,113 @@ +- type: entity + id: CP14BaseFireplace + parent: BaseStructure + abstract: true + components: + - type: Fixtures + fixtures: + fix1: + shape: + !type:PhysShapeAabb + bounds: "-0.45,-0.45,0.45,0.45" + density: 55 + mask: + - TabletopMachineMask + layer: + - Impassable + - MidImpassable + - LowImpassable + hard: false + - type: CP14FlammableAmbientSound + - type: AmbientSound + enabled: false + volume: -5 + range: 5 + sound: + path: /Audio/Ambience/Objects/fireplace.ogg + - type: Appearance + - type: Reactive + groups: + Flammable: [ Touch ] + Extinguish: [ Touch ] + - type: Flammable + fireSpread: true + canResistFire: false + alwaysCombustible: true + canExtinguish: true + firestacksOnIgnite: 0.5 + damage: + types: + Heat: 0 + - type: ItemPlacer + maxEntities: 4 + - type: CP14FlammableEntityHeater + - type: CP14FlammableSolutionHeater + - type: CP14Fireplace + +- type: entity + id: CP14AlchemyFurnaceDebug + parent: CP14AlchemyFurnace + suffix: DEBUG + components: + - type: CP14Fireplace + currentFuel: 100 + fuelDrainingPerUpdate: 0 + +- type: entity + id: CP14AlchemyFurnace + name: alchemy furnace + parent: CP14BaseFireplace + description: A furnace fueled by wood, coal, or any other burning material. Handy for heating your alchemical potions. + components: + - type: Sprite + sprite: _CP14/Structures/Specific/Alchemy/alchemy_furnace.rsi + layers: + - state: base + - state: fuel1 + visible: false + map: ["fuel"] + - type: Damageable + damageContainer: Inorganic + damageModifierSet: Metallic + - type: Destructible + thresholds: + - trigger: + !type:DamageTrigger + damage: 80 + behaviors: + - !type:DoActsBehavior + acts: [ "Destruction" ] + - type: GenericVisualizer + visuals: + enum.FireplaceFuelVisuals.Status: + fuel: + Empty: { visible: false } + Medium: { visible: true, state: fuel1 } + Full: { visible: true, state: fuel2 } + - type: FireVisuals + sprite: _CP14/Structures/Specific/Alchemy/alchemy_furnace.rsi + normalState: burning + - type: Climbable + - type: Fixtures + fixtures: + fix1: + shape: + !type:PhysShapeAabb + bounds: "-0.45,-0.45,0.45,0.45" + density: 55 + mask: + - TabletopMachineMask + layer: + - Impassable + - MidImpassable + - LowImpassable + hard: false + fix2: + shape: + !type:PhysShapeAabb + bounds: "-0.45,-0.45,0.45,0.45" + density: 55 + mask: + - TableMask + layer: + - TableLayer \ No newline at end of file diff --git a/Resources/Prototypes/_CP14/Entities/Structures/Specific/Alchemy/vat.yml b/Resources/Prototypes/_CP14/Entities/Structures/Specific/Alchemy/vat.yml index 054237a18a..06f0ed6726 100644 --- a/Resources/Prototypes/_CP14/Entities/Structures/Specific/Alchemy/vat.yml +++ b/Resources/Prototypes/_CP14/Entities/Structures/Specific/Alchemy/vat.yml @@ -2,8 +2,8 @@ id: CP14BaseVat parent: - BaseStructureDynamic - name: vat - description: VATVATVAT + name: big vat + description: A very large vat for storing huge amounts of liquid. Heavy, uncomfortable to carry. placement: mode: PlaceFree components: @@ -18,7 +18,7 @@ shape: !type:PhysShapeAabb bounds: "-0.3,-0.3,0.3,0.3" - density: 155 + density: 666 # >:) mask: - MachineMask layer: @@ -67,8 +67,6 @@ solution: vat - type: DumpableSolution solution: vat - - type: Spillable - solution: vat - type: Drink solution: vat - type: UserInterface @@ -81,6 +79,7 @@ - type: ThrowInsertContainer containerId: storagebase - type: Storage + cP14CanStorageSolutionManagers: false grid: - 0,0,4,3 blacklist: diff --git a/Resources/Prototypes/_CP14/Flavors/flavor.yml b/Resources/Prototypes/_CP14/Flavors/flavor.yml new file mode 100644 index 0000000000..3e7624f941 --- /dev/null +++ b/Resources/Prototypes/_CP14/Flavors/flavor.yml @@ -0,0 +1,18 @@ +# Basic + +- type: flavor + id: CP14Metallic + flavorType: Base + description: cp14-flavor-base-metallic + +- type: flavor + id: CP14Invigorating + flavorType: Base + description: cp14-flavor-base-invigorating + +# Complex + +- type: flavor + id: CP14Water + flavorType: Complex + description: cp14-flavor-complex-water diff --git a/Resources/Prototypes/_CP14/Guidebook/Eng/alchemy.yml b/Resources/Prototypes/_CP14/Guidebook/Eng/alchemy.yml new file mode 100644 index 0000000000..f8cdaff635 --- /dev/null +++ b/Resources/Prototypes/_CP14/Guidebook/Eng/alchemy.yml @@ -0,0 +1,23 @@ +- type: guideEntry + crystallPunkAllowed: true + id: CP14_EN_Alchemy + name: cp14-guide-entry-alchemy + text: "/ServerInfo/_CP14/Guidebook_EN/Alchemy.xml" + children: + - CP14_EN_BasicAlchemy + - CP14_EN_Biological + filterEnabled: True + +- type: guideEntry + crystallPunkAllowed: true + id: CP14_EN_BasicAlchemy + name: cp14-guide-entry-basic-alchemy + text: "/ServerInfo/_CP14/Guidebook_EN/AlchemyTabs/BasicAlchemy.xml" + filterEnabled: True + +- type: guideEntry + crystallPunkAllowed: true + id: CP14_EN_Biological + name: cp14-guide-entry-biological + text: "/ServerInfo/_CP14/Guidebook_EN/AlchemyTabs/Biological.xml" + filterEnabled: True \ No newline at end of file diff --git a/Resources/Prototypes/_CP14/Guidebook/Ru/alchemy.yml b/Resources/Prototypes/_CP14/Guidebook/Ru/alchemy.yml new file mode 100644 index 0000000000..30229923c4 --- /dev/null +++ b/Resources/Prototypes/_CP14/Guidebook/Ru/alchemy.yml @@ -0,0 +1,23 @@ +- type: guideEntry + crystallPunkAllowed: true + id: CP14_RU_Alchemy + name: cp14-guide-entry-alchemy + text: "/ServerInfo/_CP14/Guidebook_RU/Alchemy.xml" + children: + - CP14_RU_BasicAlchemy + - CP14_RU_Biological + filterEnabled: True + +- type: guideEntry + crystallPunkAllowed: true + id: CP14_RU_BasicAlchemy + name: cp14-guide-entry-basic-alchemy + text: "/ServerInfo/_CP14/Guidebook_RU/AlchemyTabs/BasicAlchemy.xml" + filterEnabled: True + +- type: guideEntry + crystallPunkAllowed: true + id: CP14_RU_Biological + name: cp14-guide-entry-biological + text: "/ServerInfo/_CP14/Guidebook_RU/AlchemyTabs/Biological.xml" + filterEnabled: True \ No newline at end of file diff --git a/Resources/Prototypes/_CP14/Guidebook/entry.yml b/Resources/Prototypes/_CP14/Guidebook/entry.yml new file mode 100644 index 0000000000..918a419a4f --- /dev/null +++ b/Resources/Prototypes/_CP14/Guidebook/entry.yml @@ -0,0 +1,15 @@ +- type: guideEntry + crystallPunkAllowed: true + id: CP14_EN + name: cp14-guide-entry-english + text: "/ServerInfo/_CP14/Guidebook_EN/Welcome.xml" + children: + - CP14_EN_Alchemy + +- type: guideEntry + crystallPunkAllowed: true + id: CP14_RU + name: cp14-guide-entry-russian + text: "/ServerInfo/_CP14/Guidebook_RU/Welcome.xml" + children: + - CP14_RU_Alchemy \ No newline at end of file diff --git a/Resources/Prototypes/_CP14/Reagents/Consumable/Drink/drinks.yml b/Resources/Prototypes/_CP14/Reagents/Consumable/Drink/drinks.yml new file mode 100644 index 0000000000..7c71713db4 --- /dev/null +++ b/Resources/Prototypes/_CP14/Reagents/Consumable/Drink/drinks.yml @@ -0,0 +1,7 @@ +- type: reagent + parent: Water + id: CP14Water + name: cp14-reagent-name-water + desc: cp14-reagent-desc-water + flavor: CP14Water + color: "#75b1f0" \ No newline at end of file diff --git a/Resources/Prototypes/_CP14/Reagents/basic-alchemy.yml b/Resources/Prototypes/_CP14/Reagents/basic-alchemy.yml new file mode 100644 index 0000000000..81efd024e0 --- /dev/null +++ b/Resources/Prototypes/_CP14/Reagents/basic-alchemy.yml @@ -0,0 +1,65 @@ +# 13-1 rule +# There should be 12 basic alchemical extracts, and 1 forbidden one, for antagonists only +# 1) Vital extract +# 2) Death extract +# 3) Fire extract +# 4) Ice extract +# 5) Light extract +# 6) Void/Dark extract +# 7) Air extract +# 8) Earth extract +# 9) Lightning extract +# 10) +# 11) +# 12) +# 13) + +- type: reagent + id: CP14VitalExtract + group: CP14BasicAlchemy + name: cp14-reagent-name-vital-extract + desc: cp14-reagent-desc-vital-extract + flavor: CP14Invigorating + color: "#db2a2a" + physicalDesc: cp14-reagent-physical-desc-scarlet + footstepSound: + collection: FootstepBlood + params: + volume: 6 + metabolisms: + Medicine: + effects: + - !type:HealthChange + conditions: + - !type:ReagentThreshold + min: 0 + max: 7 + damage: + groups: + Burn: -0.1 + Toxin: -0.1 + Brute: -0.1 + - !type:HealthChange + conditions: + - !type:ReagentThreshold + min: 7 + damage: + groups: + Burn: -0.2 + Toxin: -0.2 + Brute: -0.2 + types: + Cellular: 0.25 + - !type:PopupMessage + conditions: + - !type:ReagentThreshold + min: 10 + visualType: Medium + messages: + - cp14-reagent-vital-extract-feeling-1 + - cp14-reagent-vital-extract-feeling-2 + - cp14-reagent-vital-extract-feeling-3 + - cp14-reagent-vital-extract-feeling-4 + - cp14-reagent-vital-extract-feeling-5 + type: Local + probability: 0.05 \ No newline at end of file diff --git a/Resources/Prototypes/_CP14/Reagents/biological.yml b/Resources/Prototypes/_CP14/Reagents/biological.yml index e69de29bb2..9385f679e7 100644 --- a/Resources/Prototypes/_CP14/Reagents/biological.yml +++ b/Resources/Prototypes/_CP14/Reagents/biological.yml @@ -0,0 +1,64 @@ +- type: reagent + id: CP14Blood + group: CP14Biological + name: cp14-reagent-name-blood + desc: cp14-reagent-desc-blood + flavor: CP14Metallic + color: "#800000" + recognizable: true + physicalDesc: cp14-reagent-physical-desc-ferrous + slippery: false + footstepSound: + collection: FootstepBlood + params: + volume: 6 +# metabolisms: +# Drink: +# effects: +# - !type:SatiateThirst +# factor: 1.5 +# conditions: +# - !type:OrganType +# type: Human +# shouldHave: false +# Food: +# effects: +# - !type:AdjustReagent +# reagent: UncookedAnimalProteins +# amount: 0.5 +# Medicine: +# effects: +# - !type:HealthChange +# conditions: +# - !type:OrganType +# type: Bloodsucker +# damage: +# groups: +# Brute: -3 +# Burn: -1.25 + +- type: reagent + id: CP14BloodGrassSap + group: CP14Biological + name: cp14-reagent-name-bloodgrasssap + desc: cp14-reagent-desc-bloodgrasssap + flavor: CP14Metallic + color: "#5c1f0a" + physicalDesc: cp14-reagent-physical-desc-ferrous + slippery: false + footstepSound: + collection: FootstepBlood + params: + volume: 6 + metabolisms: + Food: + effects: + - !type:SatiateHunger + factor: 0.5 + Medicine: + effects: + - !type:HealthChange + damage: + types: + Poison: 0.25 + \ No newline at end of file diff --git a/Resources/Prototypes/_CP14/Recipes/Reactions/biological.yml b/Resources/Prototypes/_CP14/Recipes/Reactions/biological.yml new file mode 100644 index 0000000000..67e01ea993 --- /dev/null +++ b/Resources/Prototypes/_CP14/Recipes/Reactions/biological.yml @@ -0,0 +1,23 @@ +- type: reaction + id: CP14VitalExtract + minTemp: 350 + reactants: + CP14Blood: + amount: 1 + CP14BloodGrassSap: + amount: 2 + products: + CP14VitalExtract: 3 + +- type: reaction + id: CP14VitalExtractOverheating + minTemp: 450 + reactants: + CP14VitalExtract: + amount: 1 + effects: + - !type:AreaReactionEffect + duration: 20 + prototypeId: CP14MistVitalExtract + sound: + path: /Audio/Effects/smoke.ogg \ No newline at end of file diff --git a/Resources/ServerInfo/_CP14/Guidebook_EN/Alchemy.xml b/Resources/ServerInfo/_CP14/Guidebook_EN/Alchemy.xml new file mode 100644 index 0000000000..f749d9db94 --- /dev/null +++ b/Resources/ServerInfo/_CP14/Guidebook_EN/Alchemy.xml @@ -0,0 +1,13 @@ + +# Alchemy + +There are a large number of reagents in the game. Some of them can be extracted from living creatures, some of them can be found in the wild, or you can use alchemy to get new reagents by mixing them together under certain conditions. + +Knowing different types of chemicals and their effects is important for being able to manage injury and danger. + +## Basic alchemical reagents + + +## Biological + + \ No newline at end of file diff --git a/Resources/ServerInfo/_CP14/Guidebook_EN/AlchemyTabs/BasicAlchemy.xml b/Resources/ServerInfo/_CP14/Guidebook_EN/AlchemyTabs/BasicAlchemy.xml new file mode 100644 index 0000000000..ef71006f75 --- /dev/null +++ b/Resources/ServerInfo/_CP14/Guidebook_EN/AlchemyTabs/BasicAlchemy.xml @@ -0,0 +1,9 @@ + + +# Basic alchemical reagents + +In the world of Eberron, there are 12 basic alchemical reagents called Extracts. They can be obtained in a variety of ways, and act as starting points for more complex alchemical recipes. + + + + diff --git a/Resources/ServerInfo/_CP14/Guidebook_EN/AlchemyTabs/Biological.xml b/Resources/ServerInfo/_CP14/Guidebook_EN/AlchemyTabs/Biological.xml new file mode 100644 index 0000000000..d890d30ada --- /dev/null +++ b/Resources/ServerInfo/_CP14/Guidebook_EN/AlchemyTabs/Biological.xml @@ -0,0 +1,9 @@ + + +# Biological + +There are a large number of biological substances - extracted from plants or living things. Knowledge of their characteristics may be useful to you many times. + + + + diff --git a/Resources/ServerInfo/_CP14/Guidebook_EN/Welcome.xml b/Resources/ServerInfo/_CP14/Guidebook_EN/Welcome.xml new file mode 100644 index 0000000000..400446f552 --- /dev/null +++ b/Resources/ServerInfo/_CP14/Guidebook_EN/Welcome.xml @@ -0,0 +1,12 @@ + +# Welcome to the pre-alpha version of CrystallPunk! + +This guide is designed to help you understand how all the mechanics in the game work. +Be prepared for a lot of text - CP14 is a very large game with a lot of deep mechanics. We hope you will find these guides interesting. + +## What is CrystallPunk? +CrystallPunk is an offshoot of the Space Station 14 game... Eeee, I don't think there's much to write about at this point. We'll fill that in later. + +## Where to start? +No idea, good luck. (This block needs to be rewritten too) + \ No newline at end of file diff --git a/Resources/ServerInfo/_CP14/Guidebook_RU/Alchemy.xml b/Resources/ServerInfo/_CP14/Guidebook_RU/Alchemy.xml new file mode 100644 index 0000000000..47ec4813f8 --- /dev/null +++ b/Resources/ServerInfo/_CP14/Guidebook_RU/Alchemy.xml @@ -0,0 +1,13 @@ + +# Алхимия + +В игре существует большое количество реагентов. Некоторые из них можно добыть из живых существ, некоторые - найти в природе, а другие получить при помощи исскуств алхимии. + +Знание различных типов химикатов и их эффектов важно для того, чтобы уметь справляться с травмами и опасностями. + +## Базовые алхимические реагенты + + +## Биологические вещества + + \ No newline at end of file diff --git a/Resources/ServerInfo/_CP14/Guidebook_RU/AlchemyTabs/BasicAlchemy.xml b/Resources/ServerInfo/_CP14/Guidebook_RU/AlchemyTabs/BasicAlchemy.xml new file mode 100644 index 0000000000..d6024d7358 --- /dev/null +++ b/Resources/ServerInfo/_CP14/Guidebook_RU/AlchemyTabs/BasicAlchemy.xml @@ -0,0 +1,9 @@ + + +# Основные алхимические реагенты + +В мире Эберрона существует 12 базовых алхимических реагентов, называемых экстрактами. Они могут быть получены различными способами и служат отправной точкой для более сложных алхимических рецептов. + + + + diff --git a/Resources/ServerInfo/_CP14/Guidebook_RU/AlchemyTabs/Biological.xml b/Resources/ServerInfo/_CP14/Guidebook_RU/AlchemyTabs/Biological.xml new file mode 100644 index 0000000000..fda17c301f --- /dev/null +++ b/Resources/ServerInfo/_CP14/Guidebook_RU/AlchemyTabs/Biological.xml @@ -0,0 +1,9 @@ + + +# Биологические вещества + +Существует большое количество биологических веществ - добытых из растений или живых существ. Знание их свойств может не раз пригодиться. + + + + diff --git a/Resources/ServerInfo/_CP14/Guidebook_RU/Welcome.xml b/Resources/ServerInfo/_CP14/Guidebook_RU/Welcome.xml new file mode 100644 index 0000000000..319bf4a9e7 --- /dev/null +++ b/Resources/ServerInfo/_CP14/Guidebook_RU/Welcome.xml @@ -0,0 +1,12 @@ + +# Добро пожаловать в пре-альфа версию игры CrystallPunk! + +Данное руководство создано, чтобы помочь вам разобраться в работе всех существующих в игре механик. +Будьте готовы, что здесь будет очень много текста - ведь CP14 очень большая игра с большим количеством глубоких механик. Мы надеемся, что вам будет интересно читать эти руководства. + +## Что такое CrystallPunk? +CrystallPunk - ответвление от игры Space Station 14... Иии, я пока считаю что тут не о чем писать. Мы заполним этот блок позже. + +## С чего начать? +Без понятия, удачи. (Этот блок тоже нужно переписать) + \ No newline at end of file diff --git a/Resources/Textures/_CP14/Effects/mist.rsi/chemmist.png b/Resources/Textures/_CP14/Effects/mist.rsi/chemmist.png new file mode 100644 index 0000000000000000000000000000000000000000..30b58e39f581b612dd43271f20930f99c92c94f3 GIT binary patch literal 67088 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 q`@P7BeC^b`M&V!oijhd|FD1n literal 0 HcmV?d00001 diff --git a/Resources/Textures/_CP14/Objects/Specific/Alchemy/Herbal/bloodgrass.rsi/base2.png b/Resources/Textures/_CP14/Objects/Specific/Alchemy/Herbal/bloodgrass.rsi/base2.png new file mode 100644 index 0000000000000000000000000000000000000000..ab18c442fd4a8fe6f0eca0238223dcc0c8b35a28 GIT binary patch literal 503 zcmVPx$u}MThR9J=Wl(BB3FaUV_p) zEOfBUQ7+9vl&$=W2QdHV&)6_$&YU?DqJ(Jg{mma^i{!0K35G~(%82EAj1GHB~L*>X|3xy zS+e~*RZ#=5JLc?;`9J0Gg#llvr37Qz;ppEpCyNXNWEikFhBS#WCyUZ<@l^wU zf(!%FBu0h-+w>WwH>8QvSrs)(Z#d*mzm}3iZo2I_R~0qp z

{|z6pTRTDIvkRZ&w~+ilrR038I-2U$l;vi-YLjynl&=QEG16+ox{f5kqdFQTkz z7GAf~o9>wmgAM|iR1Oo4p%S7kt?iDWmXiKy=);at?=zaT590p;zxQwFGo`hYR_-(D tCWOzo;XQJb0k3%ob~maybLM=jd;k=7_w1S|&2Rt!002ovPDHLkV1gN3+S334 literal 0 HcmV?d00001 diff --git a/Resources/Textures/_CP14/Objects/Specific/Alchemy/Herbal/bloodgrass.rsi/base3.png b/Resources/Textures/_CP14/Objects/Specific/Alchemy/Herbal/bloodgrass.rsi/base3.png new file mode 100644 index 0000000000000000000000000000000000000000..4ec474b21fde2bf3e3a96459b6bf3a1f93ffb55a GIT binary patch literal 523 zcmV+m0`&cfP)Px$#Ysd#R9J=WmBDVCKoEvM(ts9P*<{^Rh@5aQoTDfQ-XM?Fr^*{}h^n4BH0D%< z)Ov%{2vbBv4hdU3N@A1x5|#h78V&RR^Y6|80|pEjutNlv)xJ6My!Kq5PCo%@T^oUAwbB(tuCL=~;b#D3e&6X~rrMuX1%N6lq$@a& zFNvl;iBfD!4)A2+s*Taq*F=D}8z7!#I!6^1iBg18Y7v2DZFFLz(oRe?^%;9MX>x^h zg%$*8V(ALTo(;fxe955@TwGuOn}80dqfvWud<4MPZ$AK-IF2TVzwUG*(&TF6mAu=A zJg}^`Y#Kh9HsXWHpT#YXX)-TM%BJC?Z8I-R)bAz6twHgtVy^*P?DO6*`F?Zr<+<8h zEuyrpjkKPx$en~_@R9J=Wl)-9)KomufrHFOWCKC!JI}-|iK^Oi(zPNvoZxBj#Cql`?Y>dpt zF6^_33GLW+Q}Aqt86VvH?sEnvCMG8Sh{*Tbe<^;+t`>No49r@jC{Y%t@Vb& z0A>~tW5~<$?+vJsnFWv)Ex>&cun5EM?1NO~%%lt7jv%+zOGQrhZ%soK&jFCC;qKvv zWVJ*`q2m~?mvBx1AXzOTE80!6?!|{G0K~?CNIP7$fl&r>Ydu8TO}yrL`-+;`mxsP) zUmntJO#5(Im7_zHtc6HsS1MpG^xwW3ljc~p)Pq(-2Px$R!KxbR9J=WmBC8GKoEw%iY#d_tt&#PrwBsM;>kDY6Z-~z20^s9QYcy4%XZ0S zJ){#u4Rli5gP8BKY*^<1GdnX2Jv}`=f1S*j*tTl9K1Fa*mID#Wtp(@e;R>)Q%fYdD zM-Q|axJwcqrxt*5Is{<5+SO;~pG%c^X9Jlr@#SG!@7*QY#=kHO7C9K zZ30<-!*;bhNmx+TKvTT%p2B;cpY8#8U%HcoI~foP@3|d~>iu@LV;#be%I{)GZJ;S` zCrO?9+*%6n0lv*S7quojx1ms1y0l)yWNs}v#5Z^RdQ=AXLE<`8RgbH_wGEwSM`*I3 z&Olo*F(IPDI31F2tm-PRvVG!i_lq0000Px%LrFwIRA_bP3Y$;~-`?6J2nGNQ!!R+X?|DG6MvNy?!Z&I) z9H*??(8(MMvNwCw%XH;S}h^+@aQ;m{QmBa{yhvs`krTOB6o1J)t+u| zZ35@nR>Gx}nK42L02=r1>NZmoxAF$YIXpVn!lTjoYMf2Rx_@c81c36^>Gs&)-I=SA zJQx`Wf&q?GMoLLE3KOE^sP@rh%+hj68;RFNUT)?IsyFtgQu++TkRTZFzC7eA zp8F3TB{C*Ng>~2Ej$74jK`_YN<9*LVNpy0LLlM z?eV_n(dqWI_*s1R$+ZZhB9_v}t*$YSBBb<@(&y9XFAL*@s8Cv2!Ta;q8AWug>@DxyaNiq(vz+ z$+7dRVw!z0d>4wJ-&Z*bmdKI;Vst01xCT#sB~S literal 0 HcmV?d00001 diff --git a/Resources/Textures/_CP14/Objects/Specific/Alchemy/cauldron.rsi/inhand-left-fill2.png b/Resources/Textures/_CP14/Objects/Specific/Alchemy/cauldron.rsi/inhand-left-fill2.png new file mode 100644 index 0000000000000000000000000000000000000000..31f83b0de7f3a64b6424bd4cfcca4c0173f7d0ef GIT binary patch literal 192 zcmeAS@N?(olHy`uVBq!ia0vp^2_VeD1|%QND7OGojKx9jP7LeL$-D$|sytmBLn`LH zy|a+F!9l?Fpuawg>x=z-MO^_WECVD8SS$|uY$^+1Q_l%h3jqg`cbQL{W|Z%F>AUl_ zQqM^}kH4JK_4As!J?eF8-*T8LIDO}mj^bsb%+J5)_?=$TJBJS{5r31>I5{P$>6)n> ONW|0C&t;ucLK6V@cslg} literal 0 HcmV?d00001 diff --git a/Resources/Textures/_CP14/Objects/Specific/Alchemy/cauldron.rsi/inhand-left-fill3.png b/Resources/Textures/_CP14/Objects/Specific/Alchemy/cauldron.rsi/inhand-left-fill3.png new file mode 100644 index 0000000000000000000000000000000000000000..837326f87f4a7f53e583f8255b4d353edc20aeb2 GIT binary patch literal 182 zcmeAS@N?(olHy`uVBq!ia0vp^2_VeD1|%QND7OGojKx9jP7LeL$-D$|3OrpLLn`LH zy<^CAK!L|0@O{0_$;3@JmzD^0JxE}?-~2}LW_>nL9RwV3a*?0;)7M4*s&#Cl-5(pd z!UOk(W#nPfFxo6sEqC3ymmzAoPfFsZdP-Z$LS_6a8B{Xg$u%_d+kr$pUHx3vIVCg! E0RIUx&Hw-a literal 0 HcmV?d00001 diff --git a/Resources/Textures/_CP14/Objects/Specific/Alchemy/cauldron.rsi/inhand-left-fill4.png b/Resources/Textures/_CP14/Objects/Specific/Alchemy/cauldron.rsi/inhand-left-fill4.png new file mode 100644 index 0000000000000000000000000000000000000000..9f45d8bd5d015b06e3c70d1c6e9c21db10f5c7d0 GIT binary patch literal 227 zcmeAS@N?(olHy`uVBq!ia0vp^2_VeD1|%QND7OGojKx9jP7LeL$-D$|=6bp~hE&XX zd&iKg*+Inh;`F^8Q&axG<_J5ucZQb0q9sz#{U6L>wfJDS&72Xa91Iq$ye%ppd;R!4 zmCGjSx953IO5GX%>DvBmt5eTE+?RP2v)Qn&_y02v_p|L5)-4a=+Mv2;X=Iy+sO7qy zdRbDx#VFG_$#41V;q`g0R-W(c`A&w|bj+4@5hyI^u*=@h&l1=%VMb3q3s46b6qxrbv*|9C zR#uwzOtkiYXGh1jTKP|F*{g3R&fKyy$xl6X icdAPx(UP(kjRCt{2oKI*IK@`TnTD6zj9J&{~_8cfw$w5Iaf`?w~AIKpfisYgqh$0@f zdK769M7((Jp%+0A!Gj?F0X>9P5PGhwm&sw1g_0Cm4{^4eZMNO)%w`h%{cg>^**Ejv zn>X2{`2a!)A%qY@2qAzIe?eY8vf0H*SJ(L|}8XXO;{a9NAU@j5Ug&E(nEWCgBO4Gug$L0{gRS80mV|;KY8MK@V5-S5F&Prv?&}r3ILe2ZDUD@^3(a1$S&Ge zRnc+?fB5t{2z+y+HNiidjo|w5fe`?J%uQuw6=zPL(!Q9a2qCsr?ZT5siHe|;-A+Zf z8%haq-5PSaF$f{h-0<3h9!9>tvDv`zfsr5);d5cHvMB5XJL=|<B3CUA83RSI6Hej@O$aX^+a}l+{xeLX%s{iu!TigA5#rMj`A(?cUghsQOXl$d|Y)hQHU)s4SwICs? z5TXjp8V3Lzu_uB=xNfaukFR?keypuQh^mTfErid4r1J^esa8LbvIR-UGVnrFQCV3H zDjEQCxv_0Me%*0USy>Ghu{BAUYRtOR6KU(RM@EDcq2Q=&ed*Uz}&1SG0UcY&} z>p06A$H>8haDM$(aj#6c6(uc#u$^k~0fhv}?JIkyJ#iQSf@DOIL6PobOc_K`bP3`ULxCx400#7g5KUobuLIJ(}fv7>$xempw5SwOh&uy_FZAR`gfxj zg`wmiyluOAE2+DW4l>G%kM_=;5)rNVy&il(e_=O~1?OWbPm= zX#=ztnncnDXa#58aZ(4ur0=9;-fyL(jqBDDN!rMtI7vwx0I33D(sws#*Nlt9q@+zh z%jsmAfaRr^LsR*@Z%Wc;5ae`HX+?B{2}v8BaynU`0hzZT6OuN%<#e(n)9i-TMl5R_ zleUc`_C#p)ZTeMC$C!M4+_kJ1PdObz2qAmdKI;Vst01xCT#sB~S literal 0 HcmV?d00001 diff --git a/Resources/Textures/_CP14/Objects/Specific/Alchemy/cauldron.rsi/inhand-right-fill2.png b/Resources/Textures/_CP14/Objects/Specific/Alchemy/cauldron.rsi/inhand-right-fill2.png new file mode 100644 index 0000000000000000000000000000000000000000..31f83b0de7f3a64b6424bd4cfcca4c0173f7d0ef GIT binary patch literal 192 zcmeAS@N?(olHy`uVBq!ia0vp^2_VeD1|%QND7OGojKx9jP7LeL$-D$|sytmBLn`LH zy|a+F!9l?Fpuawg>x=z-MO^_WECVD8SS$|uY$^+1Q_l%h3jqg`cbQL{W|Z%F>AUl_ zQqM^}kH4JK_4As!J?eF8-*T8LIDO}mj^bsb%+J5)_?=$TJBJS{5r31>I5{P$>6)n> ONW|0C&t;ucLK6V@cslg} literal 0 HcmV?d00001 diff --git a/Resources/Textures/_CP14/Objects/Specific/Alchemy/cauldron.rsi/inhand-right-fill3.png b/Resources/Textures/_CP14/Objects/Specific/Alchemy/cauldron.rsi/inhand-right-fill3.png new file mode 100644 index 0000000000000000000000000000000000000000..837326f87f4a7f53e583f8255b4d353edc20aeb2 GIT binary patch literal 182 zcmeAS@N?(olHy`uVBq!ia0vp^2_VeD1|%QND7OGojKx9jP7LeL$-D$|3OrpLLn`LH zy<^CAK!L|0@O{0_$;3@JmzD^0JxE}?-~2}LW_>nL9RwV3a*?0;)7M4*s&#Cl-5(pd z!UOk(W#nPfFxo6sEqC3ymmzAoPfFsZdP-Z$LS_6a8B{Xg$u%_d+kr$pUHx3vIVCg! E0RIUx&Hw-a literal 0 HcmV?d00001 diff --git a/Resources/Textures/_CP14/Objects/Specific/Alchemy/cauldron.rsi/inhand-right-fill4.png b/Resources/Textures/_CP14/Objects/Specific/Alchemy/cauldron.rsi/inhand-right-fill4.png new file mode 100644 index 0000000000000000000000000000000000000000..9f45d8bd5d015b06e3c70d1c6e9c21db10f5c7d0 GIT binary patch literal 227 zcmeAS@N?(olHy`uVBq!ia0vp^2_VeD1|%QND7OGojKx9jP7LeL$-D$|=6bp~hE&XX zd&iKg*+Inh;`F^8Q&axG<_J5ucZQb0q9sz#{U6L>wfJDS&72Xa91Iq$ye%ppd;R!4 zmCGjSx953IO5GX%>DvBmt5eTE+?RP2v)Qn&_y02v_p|L5)-4a=+Mv2;X=Iy+sO7qy zdRbDx#VFG_$#41V;q`g0R-W(c`A&w|bj+4@5hyI^u*=@h&l1=%VMb3q3s46b6qxrbv*|9C zR#uwzOtkiYXGh1jTKP|F*{g3R&fKyy$xl6X icdAPx(UP(kjRCt{2oKI*IK@`TnTD6zj9J&{~_8cfw$w5Iaf`?w~AIKpfisYgqh$0@f zdK769M7((Jp%+0A!Gj?F0X>9P5PGhwm&sw1g_0Cm4{^4eZMNO)%w`h%{cg>^**Ejv zn>X2{`2a!)A%qY@2qAzIe?eY8vf0H*SJ(L|}8XXO;{a9NAU@j5Ug&E(nEWCgBO4Gug$L0{gRS80mV|;KY8MK@V5-S5F&Prv?&}r3ILe2ZDUD@^3(a1$S&Ge zRnc+?fB5t{2z+y+HNiidjo|w5fe`?J%uQuw6=zPL(!Q9a2qCsr?ZT5siHe|;-A+Zf z8%haq-5PSaF$f{h-0<3h9!9>tvDv`zfsr5);d5cHvMB5XJL=|<B3CUA83RSI6Hej@O$aX^+a}l+{xeLX%s{iu!TigA5#rMj`A(?cUghsQOXl$d|Y)hQHU)s4SwICs? z5TXjp8V3Lzu_uB=xNfaukFR?keypuQh^mTfErid4r1J^esa8LbvIR-UGVnrFQCV3H zDjEQCxv_0Me%*0USy>Ghu{BAUYRtOR6KU(RM@EDcq2Q=&ed*Uz}&1SG0UcY&} z>p06A$H>8haDM$(aj#6c6(uc#u$^k~0fhv}?JIkyJ#iQSf@DOIL6PobOc_K`bP3`ULxCx400#7g5KUobuLIJ(}fv7>$xempw5SwOh&uy_FZAR`gfxj zg`wmiyluOAE2+DW4l>G%kM_=;5)rNVy&il(e_=O~1?OWbPm= zX#=ztnncnDXa#58aZ(4ur0=9;-fyL(jqBDDN!rMtI7vwx0I33D(sws#*Nlt9q@+zh z%jsmAfaRr^LsR*@Z%Wc;5ae`HX+?B{2}v8BaynU`0hzZT6OuN%<#e(n)9i-TMl5R_ zleUc`_C#p)ZTeMC$C!M4+_kJ1PdObz2qAu!-AI@Z0?68rQrD#R~#%>`u7nopsxU5vcOVVWY)cUhSEj61#m%nX2cv pzcV(O#$2uZe$T$rA0&T(ga7pb#qxEzQ;q|944$rjF6*2UngD^AGeiIY literal 0 HcmV?d00001 diff --git a/Resources/Textures/_CP14/Objects/Specific/Alchemy/cauldron.rsi/liq-3.png b/Resources/Textures/_CP14/Objects/Specific/Alchemy/cauldron.rsi/liq-3.png new file mode 100644 index 0000000000000000000000000000000000000000..488cba2658c278d39db4ae1e77cb6e4e2ac18276 GIT binary patch literal 133 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA1|-9oezpTC#^NA%Cx&(BWL^R}_MR?|AsLNt z&u`>pP!M2o{H^c5Z^n6(OAZ2Oo+PsA-OuI)DoW^lp=|tJ>DQ0DU!L&Thd(;;)}^xo bD9&(dhD5c0!iCsEMG()^)z4*}Q$iB}aO^5{ literal 0 HcmV?d00001 diff --git a/Resources/Textures/_CP14/Objects/Specific/Alchemy/cauldron.rsi/liq-4.png b/Resources/Textures/_CP14/Objects/Specific/Alchemy/cauldron.rsi/liq-4.png new file mode 100644 index 0000000000000000000000000000000000000000..d083e65c33df2a2192ae5803e944ff7bc1c66741 GIT binary patch literal 160 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA1|-9oezpTC#^NA%Cx&(BWL^R}QJyZ2AsLNt zFKy&(2;gD4P%OSt==*%?AH@j9$Tc|->!1f zMqhRFuC{yP^{ccl>AuPS>FwJ2F1=Pe=&u`4F~gtpoUdGEShXgJxPZ8xu6{1-oD!M< D06I1E literal 0 HcmV?d00001 diff --git a/Resources/Textures/_CP14/Objects/Specific/Alchemy/cauldron.rsi/liq-5.png b/Resources/Textures/_CP14/Objects/Specific/Alchemy/cauldron.rsi/liq-5.png new file mode 100644 index 0000000000000000000000000000000000000000..22de2f32d3e1ca69182b0cb025a8b714aac8873a GIT binary patch literal 183 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA1|-9oezpTC#^NA%Cx&(BWL^R}g`O^sAsLNt zFBx(jP~d5OczvF$mFN34xRC#IW2yfrUhy}wmy@0)oCZ|V2{zBcjSneJ-q^yDu;KQe-J bGaPt-=c2aT*+*ZyI6z!aS3j3^P6mdKI;Vst01xCT#sB~S literal 0 HcmV?d00001 diff --git a/Resources/Textures/_CP14/Objects/Specific/Alchemy/cauldron.rsi/wielded-inhand-left-fill2.png b/Resources/Textures/_CP14/Objects/Specific/Alchemy/cauldron.rsi/wielded-inhand-left-fill2.png new file mode 100644 index 0000000000000000000000000000000000000000..31f83b0de7f3a64b6424bd4cfcca4c0173f7d0ef GIT binary patch literal 192 zcmeAS@N?(olHy`uVBq!ia0vp^2_VeD1|%QND7OGojKx9jP7LeL$-D$|sytmBLn`LH zy|a+F!9l?Fpuawg>x=z-MO^_WECVD8SS$|uY$^+1Q_l%h3jqg`cbQL{W|Z%F>AUl_ zQqM^}kH4JK_4As!J?eF8-*T8LIDO}mj^bsb%+J5)_?=$TJBJS{5r31>I5{P$>6)n> ONW|0C&t;ucLK6V@cslg} literal 0 HcmV?d00001 diff --git a/Resources/Textures/_CP14/Objects/Specific/Alchemy/cauldron.rsi/wielded-inhand-left-fill3.png b/Resources/Textures/_CP14/Objects/Specific/Alchemy/cauldron.rsi/wielded-inhand-left-fill3.png new file mode 100644 index 0000000000000000000000000000000000000000..837326f87f4a7f53e583f8255b4d353edc20aeb2 GIT binary patch literal 182 zcmeAS@N?(olHy`uVBq!ia0vp^2_VeD1|%QND7OGojKx9jP7LeL$-D$|3OrpLLn`LH zy<^CAK!L|0@O{0_$;3@JmzD^0JxE}?-~2}LW_>nL9RwV3a*?0;)7M4*s&#Cl-5(pd z!UOk(W#nPfFxo6sEqC3ymmzAoPfFsZdP-Z$LS_6a8B{Xg$u%_d+kr$pUHx3vIVCg! E0RIUx&Hw-a literal 0 HcmV?d00001 diff --git a/Resources/Textures/_CP14/Objects/Specific/Alchemy/cauldron.rsi/wielded-inhand-left-fill4.png b/Resources/Textures/_CP14/Objects/Specific/Alchemy/cauldron.rsi/wielded-inhand-left-fill4.png new file mode 100644 index 0000000000000000000000000000000000000000..9f45d8bd5d015b06e3c70d1c6e9c21db10f5c7d0 GIT binary patch literal 227 zcmeAS@N?(olHy`uVBq!ia0vp^2_VeD1|%QND7OGojKx9jP7LeL$-D$|=6bp~hE&XX zd&iKg*+Inh;`F^8Q&axG<_J5ucZQb0q9sz#{U6L>wfJDS&72Xa91Iq$ye%ppd;R!4 zmCGjSx953IO5GX%>DvBmt5eTE+?RP2v)Qn&_y02v_p|L5)-4a=+Mv2;X=Iy+sO7qy zdRbDx#VFG_$#41V;q`g0R-W(c`A&w|bj+4@5hyI^u*=@h&l1=%VMb3q3s46b6qxrbv*|9C zR#uwzOtkiYXGh1jTKP|F*{g3R&fKyy$xl6X icdAPx(UP(kjRCt{2oKI*IK@`TnTD6zj9J&{~_8cfw$w5Iaf`?w~AIKpfisYgqh$0@f zdK769M7((Jp%+0A!Gj?F0X>9P5PGhwm&sw1g_0Cm4{^4eZMNO)%w`h%{cg>^**Ejv zn>X2{`2a!)A%qY@2qAzIe?eY8vf0H*SJ(L|}8XXO;{a9NAU@j5Ug&E(nEWCgBO4Gug$L0{gRS80mV|;KY8MK@V5-S5F&Prv?&}r3ILe2ZDUD@^3(a1$S&Ge zRnc+?fB5t{2z+y+HNiidjo|w5fe`?J%uQuw6=zPL(!Q9a2qCsr?ZT5siHe|;-A+Zf z8%haq-5PSaF$f{h-0<3h9!9>tvDv`zfsr5);d5cHvMB5XJL=|<B3CUA83RSI6Hej@O$aX^+a}l+{xeLX%s{iu!TigA5#rMj`A(?cUghsQOXl$d|Y)hQHU)s4SwICs? z5TXjp8V3Lzu_uB=xNfaukFR?keypuQh^mTfErid4r1J^esa8LbvIR-UGVnrFQCV3H zDjEQCxv_0Me%*0USy>Ghu{BAUYRtOR6KU(RM@EDcq2Q=&ed*Uz}&1SG0UcY&} z>p06A$H>8haDM$(aj#6c6(uc#u$^k~0fhv}?JIkyJ#iQSf@DOIL6PobOc_K`bP3`ULxCx400#7g5KUobuLIJ(}fv7>$xempw5SwOh&uy_FZAR`gfxj zg`wmiyluOAE2+DW4l>G%kM_=;5)rNVy&il(e_=O~1?OWbPm= zX#=ztnncnDXa#58aZ(4ur0=9;-fyL(jqBDDN!rMtI7vwx0I33D(sws#*Nlt9q@+zh z%jsmAfaRr^LsR*@Z%Wc;5ae`HX+?B{2}v8BaynU`0hzZT6OuN%<#e(n)9i-TMl5R_ zleUc`_C#p)ZTeMC$C!M4+_kJ1PdObz2qAmdKI;Vst01xCT#sB~S literal 0 HcmV?d00001 diff --git a/Resources/Textures/_CP14/Objects/Specific/Alchemy/cauldron.rsi/wielded-inhand-right-fill2.png b/Resources/Textures/_CP14/Objects/Specific/Alchemy/cauldron.rsi/wielded-inhand-right-fill2.png new file mode 100644 index 0000000000000000000000000000000000000000..31f83b0de7f3a64b6424bd4cfcca4c0173f7d0ef GIT binary patch literal 192 zcmeAS@N?(olHy`uVBq!ia0vp^2_VeD1|%QND7OGojKx9jP7LeL$-D$|sytmBLn`LH zy|a+F!9l?Fpuawg>x=z-MO^_WECVD8SS$|uY$^+1Q_l%h3jqg`cbQL{W|Z%F>AUl_ zQqM^}kH4JK_4As!J?eF8-*T8LIDO}mj^bsb%+J5)_?=$TJBJS{5r31>I5{P$>6)n> ONW|0C&t;ucLK6V@cslg} literal 0 HcmV?d00001 diff --git a/Resources/Textures/_CP14/Objects/Specific/Alchemy/cauldron.rsi/wielded-inhand-right-fill3.png b/Resources/Textures/_CP14/Objects/Specific/Alchemy/cauldron.rsi/wielded-inhand-right-fill3.png new file mode 100644 index 0000000000000000000000000000000000000000..837326f87f4a7f53e583f8255b4d353edc20aeb2 GIT binary patch literal 182 zcmeAS@N?(olHy`uVBq!ia0vp^2_VeD1|%QND7OGojKx9jP7LeL$-D$|3OrpLLn`LH zy<^CAK!L|0@O{0_$;3@JmzD^0JxE}?-~2}LW_>nL9RwV3a*?0;)7M4*s&#Cl-5(pd z!UOk(W#nPfFxo6sEqC3ymmzAoPfFsZdP-Z$LS_6a8B{Xg$u%_d+kr$pUHx3vIVCg! E0RIUx&Hw-a literal 0 HcmV?d00001 diff --git a/Resources/Textures/_CP14/Objects/Specific/Alchemy/cauldron.rsi/wielded-inhand-right-fill4.png b/Resources/Textures/_CP14/Objects/Specific/Alchemy/cauldron.rsi/wielded-inhand-right-fill4.png new file mode 100644 index 0000000000000000000000000000000000000000..9f45d8bd5d015b06e3c70d1c6e9c21db10f5c7d0 GIT binary patch literal 227 zcmeAS@N?(olHy`uVBq!ia0vp^2_VeD1|%QND7OGojKx9jP7LeL$-D$|=6bp~hE&XX zd&iKg*+Inh;`F^8Q&axG<_J5ucZQb0q9sz#{U6L>wfJDS&72Xa91Iq$ye%ppd;R!4 zmCGjSx953IO5GX%>DvBmt5eTE+?RP2v)Qn&_y02v_p|L5)-4a=+Mv2;X=Iy+sO7qy zdRbDx#VFG_$#41V;q`g0R-W(c`A&w|bj+4@5hyI^u*=@h&l1=%VMb3q3s46b6qxrbv*|9C zR#uwzOtkiYXGh1jTKP|F*{g3R&fKyy$xl6X icdAPx(UP(kjRCt{2oKI*IK@`TnTD6zj9J&{~_8cfw$w5Iaf`?w~AIKpfisYgqh$0@f zdK769M7((Jp%+0A!Gj?F0X>9P5PGhwm&sw1g_0Cm4{^4eZMNO)%w`h%{cg>^**Ejv zn>X2{`2a!)A%qY@2qAzIe?eY8vf0H*SJ(L|}8XXO;{a9NAU@j5Ug&E(nEWCgBO4Gug$L0{gRS80mV|;KY8MK@V5-S5F&Prv?&}r3ILe2ZDUD@^3(a1$S&Ge zRnc+?fB5t{2z+y+HNiidjo|w5fe`?J%uQuw6=zPL(!Q9a2qCsr?ZT5siHe|;-A+Zf z8%haq-5PSaF$f{h-0<3h9!9>tvDv`zfsr5);d5cHvMB5XJL=|<B3CUA83RSI6Hej@O$aX^+a}l+{xeLX%s{iu!TigA5#rMj`A(?cUghsQOXl$d|Y)hQHU)s4SwICs? z5TXjp8V3Lzu_uB=xNfaukFR?keypuQh^mTfErid4r1J^esa8LbvIR-UGVnrFQCV3H zDjEQCxv_0Me%*0USy>Ghu{BAUYRtOR6KU(RM@EDcq2Q=&ed*Uz}&1SG0UcY&} z>p06A$H>8haDM$(aj#6c6(uc#u$^k~0fhv}?JIkyJ#iQSf@DOIL6PobOc_K`bP3`ULxCx400#7g5KUobuLIJ(}fv7>$xempw5SwOh&uy_FZAR`gfxj zg`wmiyluOAE2+DW4l>G%kM_=;5)rNVy&il(e_=O~1?OWbPm= zX#=ztnncnDXa#58aZ(4ur0=9;-fyL(jqBDDN!rMtI7vwx0I33D(sws#*Nlt9q@+zh z%jsmAfaRr^LsR*@Z%Wc;5ae`HX+?B{2}v8BaynU`0hzZT6OuN%<#e(n)9i-TMl5R_ zleUc`_C#p)ZTeMC$C!M4+_kJ1PdObz2qAUl6?| z&pP}05Jx%)V1zzu($WUSNH$RoFBZ`^_u5(bVxOwyLmG3 zOXXF|1tA}|9PD5@%HI~O&L{ks?S)fNv!Ewmy4^=%esyuT#*e8RK5m_~JymRirxe#T;!;@#`@)yZVyt zrIIF=&);~L2-#R$PSU@>@AU6Q<&VM}*TlasoyOO=<^PhDy#aGI8m@ozNvYY<$^;JB zmN^wa1n1Ac^L$_VHoF8_wa=4xa~P z!G=>QTzQjsdY1CK)IZrR-f(VL@#M_Oo9ka$Ej`1sAbC@XdZt&t-N&b;HpR*elTSZT z%bw!$<@J;~91qsTeb2u7>69t!?TE!ovc6Z%`^w;>o_6)^D&OZiYwvULwgu1hZ|aQf z^gT1{%Zj|aPP@~$)xTDD*vsh^?Y!gc=>@;?)tNZ#>(hJ>u2QvHJ?(h}e?stUw&I#f zVcqkE^^a6`XzxnMx>{7iUvPo(#SFP3um>>-1?LidjZ@9n-cF6*aF^pY$AL2D9PN%B zU(4&isjitRn6R61n_$CIOL+(y~6vwo`voAl@tEsA% Qpav56boFyt=akR{01nKMj{pDw delta 891 zcmV->1BCqZ2CfH?F@I=DL_t(|obBB|PuoBk$MMHe5D5bn3k;E1>6(qObz_8X@E#a> z6v|b z6`G_97nv=-KN!c~y$oPcp=oPVrx*P^d{6y5_uX#%kG%=t_PiAyA4JX3*XU#v&K0W{ zDPmWsNi}mzH>5up%Ve}GpT2w*>9j>;TB!P5rBD-Z0#MY^In64Cns^n!^YC3{xS2u$ z0GOBi=|;a5{eSlJ$@%GSW7h#Tx1v5+Ie^T!qMi2KwY*E#0c_${)CYln7k2aT802{? z>Vs;uMryKmdMS5TvT)nnsRuF{g#!)T)LGnOl+U$=H(wE;nJf{A@x6@!CBBF<2a(}qL8-HJR4A`j$#$ZIE;`@WK z7rTjd156?5!HA@XlkC>gyS`j+1=gp**5`Wa@~1ze*#*PsBN>by!pq5p{QdRAcmU1Q zTmV^5gQnv~YH=UoG(P(Ld{7m!?~z^CY0&1Flb84)c(@<+$i5|dWR-0{-c)D zb+Z{Zj%rKi6s%*8lJ36S4V(v%jhf@M>5mQBxb9>A)y2D5j18Bfpg;vl#wreGRJwfGvK&;gj( z?sAjC0u+A$003Z%m|jp+26tCyVa0VLTq6M24REa@;@AKClNVJpTY&2ZxJCdXvoA6& z3so~)fa?ahMgXoG;95mw@jG~nO4VF3y_U8Ndaoh7K z5rFFkxJCf38{k@H(Hq^1u0I&F1rUJi2Dn!G001KZ0000000000002;Q{{ZkU^0{g{ R(x?Cc002ovPDHLkV1nj4uBQM1 diff --git a/Resources/Textures/_CP14/Structures/Furniture/barrel.rsi/liq1.png b/Resources/Textures/_CP14/Structures/Furniture/barrel.rsi/liq1.png index 7244b37f5c785d78eee7767f9a4aa6bef3263b07..399391923e169a81e1912398181c0efa08bfac6b 100644 GIT binary patch delta 69 zcmYc&oM7mn?djqe64CnhoFOlR0T1(rPwo;5KdmK#Rizu#8Fpx$+;(@{?3DU?28JE4 Y85gMV9qpUw9M1p*p00i_>zopr0B@=o`~Uy| delta 52 zcmXR+m|&}%W64CnhAR{9K14EO-|Mhtu4j|@xHUR|&Mt8;q9Y79)r>mdKI;Vst E0Fs9eS^xk5 diff --git a/Resources/Textures/_CP14/Structures/Furniture/barrel.rsi/liq2.png b/Resources/Textures/_CP14/Structures/Furniture/barrel.rsi/liq2.png index 7244b37f5c785d78eee7767f9a4aa6bef3263b07..7167da3be763175f73833fef3c4c7a20193b4fc1 100644 GIT binary patch delta 83 zcmYeOpJ3=`>FMGa64CnhjG-Wd0uRf}%W64CnhAR{9K14EO-|Mhtu4j|@xHUR|&Mt8;q9Y79)r>mdKI;Vst E0F_@3XaE2J diff --git a/Resources/Textures/_CP14/Structures/Furniture/barrel.rsi/liq3.png b/Resources/Textures/_CP14/Structures/Furniture/barrel.rsi/liq3.png index 7244b37f5c785d78eee7767f9a4aa6bef3263b07..000b05e03a294de341a5c09e13e66b04f6d6dad2 100644 GIT binary patch delta 97 zcmV-n0G|I~i~*1_TSiGlK~z|U?arYU05Awc!E_G>VE<_tfIV7OM+KOge-d6G5&(R* zCZUMf)!g0N_gaDb*v!g(X10s88^20So&x{?0Frb7|8Wuo!T6@O00000NkvXXu0mjf DiZdta delta 53 zcmeBSOqgJ(FXidt7!uL?_8=o80|P^o!vFPo9u6Spdo}?D21a+r1sy;RgQu&X%Q~lo FCIFbk4t4+l diff --git a/Resources/Textures/_CP14/Structures/Furniture/barrel.rsi/liq4.png b/Resources/Textures/_CP14/Structures/Furniture/barrel.rsi/liq4.png index 7167da3be763175f73833fef3c4c7a20193b4fc1..60b06b992782dc6057366b15feb7b989daa06121 100644 GIT binary patch delta 138 zcmV;50CoR=v;mMYe{M-cK~z|U?a{FjfFKY=(Qg$b6hIf$eqB%i2~}XE0|Abw&Y0{= z;nOOdHm1`o{nSp00i_>zopr0Cfo=5&!@I diff --git a/Resources/Textures/_CP14/Structures/Furniture/barrel.rsi/liq5.png b/Resources/Textures/_CP14/Structures/Furniture/barrel.rsi/liq5.png index 000b05e03a294de341a5c09e13e66b04f6d6dad2..4e9303a9873a748bc823accb3fe6f9d9dc730bf2 100644 GIT binary patch delta 153 zcmV;K0A~M;0m1>0F@JnXL_t(oh3(S24Zt7_1kj6=9o#SgTQIw~U;sBvK`Kx}6vdX( zp(&-yoSDrskrM8OBYX{BnOUgB z?k(U62ktlXCiDcg*6z81ob&fja4rEn|A9z25fKp)5da+j84@Y?Un#di00000NkvXX Hu0mjfouWT< delta 98 zcmV-o0GU%lOr8S(005G70RM3k1i|>Gwg3PC07*qoM6N<$ Eg0OigOaK4? diff --git a/Resources/Textures/_CP14/Structures/Furniture/barrel.rsi/liq6.png b/Resources/Textures/_CP14/Structures/Furniture/barrel.rsi/liq6.png deleted file mode 100644 index 60b06b992782dc6057366b15feb7b989daa06121..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 180 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdz#^NA%Cx&(BWL^R}d7dtgArY-_ zFK!fUP!Mprm@ld#;vjydE;fLHGc;idGh^TKb2Hv}KfE!Q+2u+4?a7M9uNf3s7^1Qn zp3J%Xeka?RHS!A$kG))Tt!mmwk)5?4wf^{WUT5>ttQEDJ=Al`;zi}hWn*9fa^^|~s bX#?|`m6~juxmksPHZyp-`njxgN@xNA!}~qF diff --git a/Resources/Textures/_CP14/Structures/Furniture/barrel.rsi/liq7.png b/Resources/Textures/_CP14/Structures/Furniture/barrel.rsi/liq7.png deleted file mode 100644 index 4e9303a9873a748bc823accb3fe6f9d9dc730bf2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 194 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdz#^NA%Cx&(BWL^R}HJ&bxArY-_ zFYV?%puod&p?iw#9Rr4FgWcN`7|eYfwE~<(j!wJuG_Li?b3X=$FXhoC&8xl{iU~3} zWapln9^{nXCbl|Dexc^l({pB?HJT{&u2s2)H*RL+iX-oIA8@k2Gykmig=OotcRL&B oeE#lVpvP$QztO`&5Cj-x{!40pkJsGp2y_R7r>mdKI;Vst0QTudC;$Ke diff --git a/Resources/Textures/_CP14/Structures/Furniture/barrel.rsi/meta.json b/Resources/Textures/_CP14/Structures/Furniture/barrel.rsi/meta.json index 42239042c7..f12f364970 100644 --- a/Resources/Textures/_CP14/Structures/Furniture/barrel.rsi/meta.json +++ b/Resources/Textures/_CP14/Structures/Furniture/barrel.rsi/meta.json @@ -27,12 +27,6 @@ }, { "name": "liq5" - }, - { - "name": "liq6" - }, - { - "name": "liq7" } ] } diff --git a/Resources/Textures/_CP14/Structures/Specific/Alchemy/alchemy_furnace.rsi/base.png b/Resources/Textures/_CP14/Structures/Specific/Alchemy/alchemy_furnace.rsi/base.png new file mode 100644 index 0000000000000000000000000000000000000000..bef8c056aac91411fa70e31acc86b89891c3050b GIT binary patch literal 3273 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 X{)I}2jJ)fA0l+}VSi4fwHvE48=Jpmr literal 0 HcmV?d00001 diff --git a/Resources/Textures/_CP14/Structures/Specific/Alchemy/alchemy_furnace.rsi/fuel1.png b/Resources/Textures/_CP14/Structures/Specific/Alchemy/alchemy_furnace.rsi/fuel1.png new file mode 100644 index 0000000000000000000000000000000000000000..517f9b1669921925b754c09dcf0cd6e2d4ad5a1b GIT binary patch literal 188 zcmeAS@N?(olHy`uVBq!ia0vp^4nUm1!3HGP9xZtRq!^2X+?^QKos)S9^+NmF8D`ou?%m_v@qekynq3h6_iJ9m+_2EFP2b@-L&^P5A|jH!R;`R3ebIMlJF^)6MR6cdFi-&TiIC zOH1cCnd=2K00;~|{JJ#v^VeJRO1JOYk?!@*%gi;X-=AMI{pWgwA3MQjnPC^#hM#wIgQWT#=B3zw z+zopr02tnf8UO$Q literal 0 HcmV?d00001 diff --git a/Resources/Textures/_CP14/Structures/Specific/Alchemy/alchemy_furnace.rsi/meta.json b/Resources/Textures/_CP14/Structures/Specific/Alchemy/alchemy_furnace.rsi/meta.json new file mode 100644 index 0000000000..0137e091d2 --- /dev/null +++ b/Resources/Textures/_CP14/Structures/Specific/Alchemy/alchemy_furnace.rsi/meta.json @@ -0,0 +1,49 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Created by Jaraten and TheShuEd (Github) for CrystallPunk 14", + "size": { + "x": 32, + "y": 48 + }, + "states": [ + { + "name": "base", + "directions": 4 + }, + { + "name": "fuel1", + "directions": 4 + }, + { + "name": "fuel2", + "directions": 4 + }, + { + "name": "burning", + "directions": 4, + "delays": [ + [ + 0.2, + 0.2, + 0.2 + ], + [ + 0.2, + 0.2, + 0.2 + ], + [ + 0.2, + 0.2, + 0.2 + ], + [ + 0.2, + 0.2, + 0.2 + ] + ] + } + ] +} diff --git a/Resources/Textures/_CP14/Structures/Specific/Alchemy/alchemy_vat.rsi/full.png b/Resources/Textures/_CP14/Structures/Specific/Alchemy/alchemy_vat.rsi/full.png index 8784c667295f54568fc06b38aebab381c31c98ae..51f324ab98e3290851d4102d13865801044fa894 100644 GIT binary patch delta 755 zcmVZ zxDLR#?~;S)Q1_o49!|kseIIsrJBp+llVCGG?S0|xyZ1h404`s;=xq0iSU<`Oi}6?( zQV8<^jGh*(K7L{)l2UdQ5JGr`)E1c%`l7tB7+*MlPM5i|we1Bq>$OxHKrl3%YEwd` znQ7f-N}NbeD1U@`Uc7o^flc7AqlOa>P(NxgFqpH1RG!M#wk4q=1MSrV7Q9)nbp#$K z1_pDwGC~L~p{kJeP3#98S{3tc89)|5$|?W{(IHaGzQL0cQc8V;D`vJ>nvE44;M&zI zeTAD6cW&PT&=SScY^=9nKZL$gNi!Zje9#m4?!Ehf{SDcV zBF)GJ0bAQUEde0}Vg8Jk0GuK!Q6bEygy!bUx^MKf{W^aB^0k#W7X(CyUy)L_1yo0) z*#xjAjDLlpPUgB%&99^>kpu&pA!W5K&>GN|08%1mxT>?hvFRPFz$&kT1Ga!!A~TeX z3Kz(Psc_{{bF~1pUI?ayPsAtW1G>N_e5bOONqr65gR0hw%;Y|hPtsR0FwO(6DyT@7 z)+OPpiVJM69vtTZHNX@x6Db+rHuzTSJ4snbGHg`^Gh7wvC0t;&`jmiA;!i|;D>mUy z0f33|sd(sAdf&UrbULuse^lA~{4vGzJ_Txmt0LV_#%AnP)-n_0Q{I15DI+yFY3tjX lPT=F@^;V!;!vE2)_zg@apMq(Uwrl_Z002ovPDHLkV1h1(V$c8p delta 715 zcmV;+0yO=Y2Ji)tF@LH_L_t(oh3%G2YZE~jfS;sxgHTVM7R;vSf{>OR6x8BD@gPE_ zha3tbNN=Ukzo7UF1o75`Ab9X3;>TIkLVGA}K`4rsb}Q)QWS}HP;vu|~ncbOul!zXD zPn-F8pJ(3L>f%!C;)V03%v;+#L16Q!o@oP!PLE~UM5r=5 zW7=$qQ|Sq%xPQpY*KZxL4g7W7@WKI(jvI`O791hTv$ehBNJ!+MvwFaRH;?LFf&IkD zXu(uQDP<(23i;5)VZfnXvCx(Qs<0dSBUqO~3xJT0NMHZQm^^X1B1OW*+4uU#D~ z+?Kd|=Qe7<8+49QjP(B!}P7T6YAbqtR>v zI1{Gg*ncGRy{PsnX-lNRfMIA|>j<<5bR>X`h#kJ_tZ!@v#|l{T3LJ0+>=M}_G7>(J z4U_QYk-0_y+8+d4A|w(L3ITm!8@{{sK9@NSJA-P@itOYeP)IUVF|h6fzA8whOY4*H zRmBIkR}Y^1fDEuj>_j3H+J?|-LpLesN+wmX!$en+LBa=?)n^1k5+@M}t=NWp1$v2e xlj(M0O@n(1^dr(wgus0ZoK&P2_<#H}@f*9ih