From aabdcec60c0b3b3385d67d468fe9919532fe8692 Mon Sep 17 00:00:00 2001 From: BIGZi0348 <118811750+BIGZi0348@users.noreply.github.com> Date: Tue, 12 Nov 2024 20:33:05 +0300 Subject: [PATCH] =?UTF-8?q?=D0=9D=D0=B5=20=D0=B4=D0=BE=D0=BB=D0=B6=D0=BD?= =?UTF-8?q?=D0=BE=20=D0=B5=D0=B1=D0=B0=D0=BD=D1=83=D1=82=D1=8C=20(#170)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * fix borg (#719) * Automatic changelog update * Переводы снаряжения и прочей мелочи в стартовом меню (#720) * Сумки, мешки и прочее * Перевод снаряжения * перевод черт персонажа * Добавлено ничего * Automatic changelog update * Фикс отображения потери мастера для импланта подчинения (#721) * фикс отображения * brain damage is real * я блять запустил райдер ради рефактора одного ифа * а лучше даже так * Automatic changelog update * add coderabbitai config (#722) * fix (#723) * Шприц теперь является оружием массового поражения (#724) * Automatic changelog update * Пиздец (#725) Я на это потратил 2 недели * Automatic changelog update * Honk FM (#136) (#726) * Fix Cosmic Temperance и новые песенки в jukebox * Новая музыка в jucebox x2 Co-authored-by: Vorge7 * Automatic changelog update * Флаф (fluff) мне (big_zi_348) (#727) * Заработал * brain damage * fuck (#729) * Automatic changelog update * FUCKERS (#732) * Удаление ненужных суффиксов (#731) * Перевод захардкукоженной строки (#728) * Пластырь поможет * очапятка * Перевод ревенанта * Карповый перекат * Create shakeable-component.ftl * Криогеника * Хранилища скафандров * Update autotranslate-14.ftl * Update Cyborgs.xml * Комоды * Кредиты * Удалил дубликат * Информация * Пластырь миму и клоуну * Переводы всего * Перевод аплинка * Удалил ненужные суффиксы * Revert "Удалил ненужные суффиксы" This reverts commit d82f05f30c37ec2c11e5736b91239fe9dd1a4d17. * Удаление ненужных суффиксов * Перевод реагентовых слизней * Перевод аномалий * Перевод маяков * Перевод различной мелочи * Automatic changelog update * Переводы и правки Гайдов (#730) * Automatic changelog update * aaaaa (#733) * Правка локализации (#737) * Update ThirstSystem.cs (#736) * AccessConfiguratorForBorgs (#735) * Automatic changelog update * Починил бесконечную сварку (#734) * Automatic changelog update * ShowManifestFeature (#738) * Automatic changelog update * I LOVE OPENSOURCE * Изменение размеров милишек (#739) * Фикс размеров * Заготовку биты тоже * Правка * Automatic changelog update * Время после взрыва нюки (#740) * More Fun * Автоформатирование * Подкрутка * Automatic changelog update * Скальпель в армейские ботинки (#741) * Automatic changelog update * DoHeavyAttack stamina check (#742) * Automatic changelog update * aaaaaaaaaaaaaaaaaaaaaaaaaaaaa (#743) * fix retarded code (#744) * Automatic changelog update * Локализация (#746) * Правка мелочей * Имя клоуну * Перевод оповещений для РНД * перевод занавесок * перевод столов * Automatic changelog update * Перевод и обновление кода гипоспрея для боргов (#745) * Я только хотел перевести... * refactor * ещё перевод * Revert "refactor" This reverts commit 355c2724c4ed9cd1357661e3ba889a88bdf17db7. * инверсия условия для проверки наличия прототипа * Automatic changelog update * Больше вещей в пояса охраны (#748) * Подкрутки и докрутки (#749) * Automatic changelog update * Добавил отображение защиты от горения и подправил описание защиты от взрывов (#747) * Добавил отображение защиты от горения * Update Content.Shared/Clothing/EntitySystems/FireProtectionSystem.cs Co-authored-by: ThereDrD <88589686+ThereDrD0@users.noreply.github.com> * Update Resources/Locale/ru-RU/_white/info/fire-protection.ftl Co-authored-by: ThereDrD <88589686+ThereDrD0@users.noreply.github.com> * Правки * негативный ноль с плавающей точкой --------- Co-authored-by: ThereDrD <88589686+ThereDrD0@users.noreply.github.com> * Automatic changelog update * Фикс текстурок внешних шлюзов (#751) * Микромелочь * Ещё одна мелочь * Починка прозрачности * Automatic changelog update * the fuck (#752) * the fuck * more logs * avoooo (#753) * nyaUpdate (#754) * Merge pull request #756 * nya v1.2 * ahhhh ** всех закопает (#758) * Ребаланс РНД (#750) * Третий тир больше нас не остановит * More less * Ребаланс * правочки подправочки * СКОРАЯ!!! ПОМОГИТЕ!!! * Automatic changelog update * Конфета или жизнь (#757) * Конфета или жизнь * gremlins invasion * Я ДОБАВИЛ БОЛЬШЕ МУСОРА НА СТАНЦИЮ!!! * Переводы (много) (#755) * Перевод технологий РНД * Перевод действий поглаживающего характера * Целая куча мелочей * Ещё больше мелочей * Слишком много мелочей * маленькая мелочь * unshit some ftl shit * Automatic changelog update * [Tweak] Random updates (#760) * Security random updates * Engineering random updates * ERT random updates * Really random * Important random update * Automatic changelog update * Мелочёчки (#761) * Automatic changelog update * optimized network stack (#763) * [Add] Pouches (#762) * Add: Pouches base and sprites * Add: Micro-resprite, pouches in secdrobe * Minus suffix * Automatic changelog update * aaaaa (#765) * Я как всегда кучу хуйни в один пакет сую (#766) * Automatic changelog update * а (#767) * Automatic changelog update * fix (#768) * optimizaaaaaations (#769) * Переводы (#770) * Мелочёчки * А когда ты будешь делать что-то полезное, кроме переводов? * Я удалил НаноТрейзен * Automatic changelog update * fixed dumb shit that nobody cares (#772) * Automatic changelog update * Фикс взрывной ручки (#771) * Automatic changelog update * угу (#775) * fix yaica (#773) * Automatic changelog update * Revert "fix yaica (#773)" (#776) This reverts commit 9739d41607d77f93321cfa97d5f63767866ddea2. * fix retard (#777) * fuck (#780) * ВНИМАНИЕ!!! ОБНАРУЖЕНЫ УЛИТКИ!!! (#774) * Automatic changelog update * Локализация + ЕБУЧИЙ ПИКСЕЛЬ (#778) * Перевод №1 * Перевод №2 * Пиксель * сейфы * сканер аномалий * Перевод пИИ * Перевод №3 * Перевод сканера здоровья * Дионы * Перевод экспедиций * Automatic changelog update * Фиксики работают сверхурочно (#781) * Automatic changelog update * Это заняло больше времени, чем я думал (#782) * Automatic changelog update --------- Co-authored-by: Jabak <163307958+Jabaks@users.noreply.github.com> Co-authored-by: RavmorganButOnCocaine Co-authored-by: ThereDrD <88589686+ThereDrD0@users.noreply.github.com> Co-authored-by: Vorge7 Co-authored-by: Valtos Co-authored-by: haiwwkes <49613070+rhailrake@users.noreply.github.com> Co-authored-by: keslik <114428094+keslik1313@users.noreply.github.com> --- ...System.cs => ShowAntagonistIconsSystem.cs} | 2 +- .../Replay/ContentReplayPlaybackManager.cs | 46 ++-- .../Replay/UI/Loading/ReplayLoadingFailed.cs | 30 +++ .../Loading/ReplayLoadingFailedControl.xaml | 14 ++ .../ReplayLoadingFailedControl.xaml.cs | 38 +++ .../BodyScannerConsoleWindow.xaml.cs | 7 +- .../Salvage/SalvageSystem.Runner.cs | 5 +- .../VoiceActivatedBomb/VoiceActivatedBomb.cs | 53 ++++ .../_White/MeatyOre/MeatyOreStoreSystem.cs | 95 +++---- .../BodyScanner/BodyScannerConsoleSystem.cs | 4 +- .../Implants/SharedImplanterSystem.cs | 13 + .../Inventory/InventorySystem.Relay.cs | 2 +- .../Mobs/Systems/MobStateActionsSystem.cs | 19 +- ...ent.cs => ShowAntagonistIconsComponent.cs} | 2 +- .../SharedVoiceActivatedBombSystem.cs | 35 +++ Resources/Changelog/ChangelogWhite.yml | 167 ++++++++----- .../ghost/roles/ghost-role-component.ftl | 7 + Resources/Locale/en-US/replays/replays.ftl | 1 + Resources/Locale/en-US/species/species.ftl | 4 + .../_white/implants/voiceactivatedbomb.ftl | 7 + .../_white/locales-new/autotranslate-71.ftl | 6 + .../Locale/ru-RU/_white/wizard/spellbook.ftl | 4 +- .../Locale/ru-RU/_white/wizard/spells.ftl | 2 +- .../Locale/ru-RU/actions/actions/suicide.ftl | 1 + Resources/Locale/ru-RU/anomaly/anomaly.ftl | 27 ++ .../ru-RU/cargo/cargo-console-component.ftl | 1 + .../ghost/roles/ghost-role-component.ftl | 9 + .../ru-RU/locales-new/autotranslate-14.ftl | 10 + .../ru-RU/locales-new/autotranslate-44.ftl | 18 ++ .../components/health-analyzer-component.ftl | 36 +-- Resources/Locale/ru-RU/pai/pai-system.ftl | 13 + .../Locale/ru-RU/procedural/expeditions.ftl | 35 ++- Resources/Locale/ru-RU/species/species.ftl | 4 + .../entities/objects/consumable/food/meat.ftl | 4 + .../entities/objects/consumable/food/soup.ftl | 2 + .../entities/objects/misc/implanters.ftl | 3 + .../objects/specific/janitorial/soap.ftl | 2 + .../ss14-ru/prototypes/magic/smite_spells.ftl | 2 + .../Entities/Clothing/Eyes/glasses.yml | 2 +- .../Prototypes/Entities/Clothing/Eyes/hud.yml | 8 +- .../Mobs/Cyborgs/base_borg_chassis.yml | 2 +- .../Prototypes/Entities/Mobs/NPCs/space.yml | 236 ++++++++++++++++++ .../Entities/Objects/Consumable/Food/meat.yml | 63 +++++ .../Entities/Objects/Consumable/Food/soup.yml | 30 +++ .../Entities/Objects/Weapons/Bombs/pen.yml | 2 + Resources/Prototypes/GameRules/events.yml | 46 ++++ Resources/Prototypes/Magic/smite_spells.yml | 12 +- .../Recipes/Cooking/meal_recipes.yml | 23 ++ .../Prototypes/_White/Catalog/uplink.yml | 12 + .../Clothing/Head/night_vision_goggle.yml | 2 +- .../Entities/Objects/Misc/implanters.yml | 13 + .../Objects/Misc/subdermal_implants.yml | 21 ++ .../_White/Ghosts/custom_ghosts.yml | 12 +- .../_White/Objects/Scrolls/scrolls.yml | 2 +- Resources/Prototypes/_White/tags.yml | 3 + .../Textures/Mobs/Animals/snail.rsi/dead.png | Bin 0 -> 441 bytes .../Mobs/Animals/snail.rsi/deathsnail.png | Bin 0 -> 2890 bytes .../Textures/Mobs/Animals/snail.rsi/meta.json | 36 +++ .../Textures/Mobs/Animals/snail.rsi/snail.png | Bin 0 -> 1344 bytes .../Textures/Mobs/Animals/snail.rsi/snoth.png | Bin 0 -> 1532 bytes .../Mobs/Animals/snail.rsi/snothdead.png | Bin 0 -> 503 bytes .../Mobs/Animals/snail.rsi/spacedead.png | Bin 0 -> 478 bytes .../Mobs/Animals/snail.rsi/spacesnail.png | Bin 0 -> 1390 bytes .../Consumable/Food/bowl.rsi/escargot.png | Bin 0 -> 392 bytes .../Consumable/Food/bowl.rsi/meta.json | 5 +- .../Consumable/Food/meat.rsi/meta.json | 8 +- .../Consumable/Food/meat.rsi/snail-cooked.png | Bin 0 -> 290 bytes .../Consumable/Food/meat.rsi/snail.png | Bin 0 -> 307 bytes .../augustnacist1488-ghost.rsi/animated.png | Bin 0 -> 3905 bytes .../augustnacist1488-ghost.rsi/meta.json | 15 ++ 70 files changed, 1097 insertions(+), 186 deletions(-) rename Content.Client/Overlays/{ShowSyndicateIconsSystem.cs => ShowAntagonistIconsSystem.cs} (89%) create mode 100644 Content.Client/Replay/UI/Loading/ReplayLoadingFailed.cs create mode 100644 Content.Client/Replay/UI/Loading/ReplayLoadingFailedControl.xaml create mode 100644 Content.Client/Replay/UI/Loading/ReplayLoadingFailedControl.xaml.cs create mode 100644 Content.Server/_White/Implants/VoiceActivatedBomb/VoiceActivatedBomb.cs rename Content.Shared/Overlays/{ShowSyndicateIconsComponent.cs => ShowAntagonistIconsComponent.cs} (75%) create mode 100644 Content.Shared/_White/Implants/VoiceActivatedBomb/SharedVoiceActivatedBombSystem.cs create mode 100644 Resources/Locale/ru-RU/_white/implants/voiceactivatedbomb.ftl create mode 100644 Resources/Locale/ru-RU/actions/actions/suicide.ftl create mode 100644 Resources/Locale/ru-RU/ss14-ru/prototypes/magic/smite_spells.ftl create mode 100644 Resources/Textures/Mobs/Animals/snail.rsi/dead.png create mode 100644 Resources/Textures/Mobs/Animals/snail.rsi/deathsnail.png create mode 100644 Resources/Textures/Mobs/Animals/snail.rsi/meta.json create mode 100644 Resources/Textures/Mobs/Animals/snail.rsi/snail.png create mode 100644 Resources/Textures/Mobs/Animals/snail.rsi/snoth.png create mode 100644 Resources/Textures/Mobs/Animals/snail.rsi/snothdead.png create mode 100644 Resources/Textures/Mobs/Animals/snail.rsi/spacedead.png create mode 100644 Resources/Textures/Mobs/Animals/snail.rsi/spacesnail.png create mode 100644 Resources/Textures/Objects/Consumable/Food/bowl.rsi/escargot.png create mode 100644 Resources/Textures/Objects/Consumable/Food/meat.rsi/snail-cooked.png create mode 100644 Resources/Textures/Objects/Consumable/Food/meat.rsi/snail.png create mode 100644 Resources/Textures/White/Ghosts/augustnacist1488-ghost.rsi/animated.png create mode 100644 Resources/Textures/White/Ghosts/augustnacist1488-ghost.rsi/meta.json diff --git a/Content.Client/Overlays/ShowSyndicateIconsSystem.cs b/Content.Client/Overlays/ShowAntagonistIconsSystem.cs similarity index 89% rename from Content.Client/Overlays/ShowSyndicateIconsSystem.cs rename to Content.Client/Overlays/ShowAntagonistIconsSystem.cs index 660ef198e1..6104f0cae6 100644 --- a/Content.Client/Overlays/ShowSyndicateIconsSystem.cs +++ b/Content.Client/Overlays/ShowAntagonistIconsSystem.cs @@ -6,7 +6,7 @@ using Robust.Shared.Prototypes; namespace Content.Client.Overlays; -public sealed class ShowSyndicateIconsSystem : EquipmentHudSystem +public sealed class ShowAntagonistIconsSystem : EquipmentHudSystem { [Dependency] private readonly IPrototypeManager _prototype = default!; diff --git a/Content.Client/Replay/ContentReplayPlaybackManager.cs b/Content.Client/Replay/ContentReplayPlaybackManager.cs index f90731bfa7..95c4c97646 100644 --- a/Content.Client/Replay/ContentReplayPlaybackManager.cs +++ b/Content.Client/Replay/ContentReplayPlaybackManager.cs @@ -1,10 +1,8 @@ -using System.IO.Compression; using Content.Client.Administration.Managers; using Content.Client.Launcher; using Content.Client.MainMenu; using Content.Client.Replay.Spectator; using Content.Client.Replay.UI.Loading; -using Content.Client.Stylesheets; using Content.Client.UserInterface.Systems.Chat; using Content.Shared.Chat; using Content.Shared.Effects; @@ -26,8 +24,6 @@ using Robust.Client.Replays.Playback; using Robust.Client.State; using Robust.Client.Timing; using Robust.Client.UserInterface; -using Robust.Client.UserInterface.Controls; -using Robust.Client.UserInterface.CustomControls; using Robust.Shared; using Robust.Shared.Configuration; using Robust.Shared.ContentPack; @@ -60,7 +56,7 @@ public sealed class ContentReplayPlaybackManager public bool IsScreenshotMode = false; private bool _initialized; - + /// /// Most recently loaded file, for re-attempting the load with error tolerance. /// Required because the zip reader auto-disposes and I'm too lazy to change it so that @@ -96,32 +92,18 @@ public sealed class ContentReplayPlaybackManager return; } - ReturnToDefaultState(); + if (_client.RunLevel == ClientRunLevel.SinglePlayerGame) + _client.StopSinglePlayer(); - // Show a popup window with the error message - var text = Loc.GetString("replay-loading-failed", ("reason", exception)); - var box = new BoxContainer - { - Orientation = BoxContainer.LayoutOrientation.Vertical, - Children = {new Label {Text = text}} - }; - - var popup = new DefaultWindow { Title = "Error!" }; - popup.Contents.AddChild(box); + Action? retryAction = null; + Action? cancelAction = null; // Add button for attempting to re-load the replay while ignoring some errors. - if (!_cfg.GetCVar(CVars.ReplayIgnoreErrors) && LastLoad is {} last) + if (!_cfg.GetCVar(CVars.ReplayIgnoreErrors) && LastLoad is { } last) { - var button = new Button - { - Text = Loc.GetString("replay-loading-retry"), - StyleClasses = { StyleBase.ButtonCaution } - }; - - button.OnPressed += _ => + retryAction = () => { _cfg.SetCVar(CVars.ReplayIgnoreErrors, true); - popup.Dispose(); IReplayFileReader reader = last.Zip == null ? new ReplayFileReaderResources(_resMan, last.Folder) @@ -129,11 +111,19 @@ public sealed class ContentReplayPlaybackManager _loadMan.LoadAndStartReplay(reader); }; - - box.AddChild(button); } - popup.OpenCentered(); + // If we have an explicit menu to get back to (e.g. replay browser UI), show a cancel button. + if (DefaultState != null) + { + cancelAction = () => + { + _stateMan.RequestStateChange(DefaultState); + }; + } + // Switch to a new game state to present the error and cancel/retry options. + var state = _stateMan.RequestStateChange(); + state.SetData(exception, cancelAction, retryAction); } public void ReturnToDefaultState() diff --git a/Content.Client/Replay/UI/Loading/ReplayLoadingFailed.cs b/Content.Client/Replay/UI/Loading/ReplayLoadingFailed.cs new file mode 100644 index 0000000000..afb00c76a6 --- /dev/null +++ b/Content.Client/Replay/UI/Loading/ReplayLoadingFailed.cs @@ -0,0 +1,30 @@ +using Content.Client.Stylesheets; +using Robust.Client.State; +using Robust.Client.UserInterface; +using Robust.Shared.Utility; +namespace Content.Client.Replay.UI.Loading; +/// +/// State used to display an error message if a replay failed to load. +/// +/// +/// +public sealed class ReplayLoadingFailed : State +{ + [Dependency] private readonly IStylesheetManager _stylesheetManager = default!; + [Dependency] private readonly IUserInterfaceManager _userInterface = default!; + private ReplayLoadingFailedControl? _control; + public void SetData(Exception exception, Action? cancelPressed, Action? retryPressed) + { + DebugTools.Assert(_control != null); + _control.SetData(exception, cancelPressed, retryPressed); + } + protected override void Startup() + { + _control = new ReplayLoadingFailedControl(_stylesheetManager); + _userInterface.StateRoot.AddChild(_control); + } + protected override void Shutdown() + { + _control?.Orphan(); + } +} diff --git a/Content.Client/Replay/UI/Loading/ReplayLoadingFailedControl.xaml b/Content.Client/Replay/UI/Loading/ReplayLoadingFailedControl.xaml new file mode 100644 index 0000000000..d5b13afb31 --- /dev/null +++ b/Content.Client/Replay/UI/Loading/ReplayLoadingFailedControl.xaml @@ -0,0 +1,14 @@ + + + + + + + + + [RegisterComponent, NetworkedComponent] -public sealed partial class ShowSyndicateIconsComponent : Component {} +public sealed partial class ShowAntagonistIconsComponent : Component {} diff --git a/Content.Shared/_White/Implants/VoiceActivatedBomb/SharedVoiceActivatedBombSystem.cs b/Content.Shared/_White/Implants/VoiceActivatedBomb/SharedVoiceActivatedBombSystem.cs new file mode 100644 index 0000000000..992d37f350 --- /dev/null +++ b/Content.Shared/_White/Implants/VoiceActivatedBomb/SharedVoiceActivatedBombSystem.cs @@ -0,0 +1,35 @@ +using Content.Shared.Body.Components; +using Content.Shared.Implants; +using Content.Shared.Tag; + +namespace Content.Shared._White.Implants.VoiceActivatedBomb; + +public abstract class SharedVoiceActivatedBombSystem : EntitySystem +{ + [Dependency] protected readonly TagSystem Tag = default!; + protected const string VoiceActivatedBombTag = "VoiceActivatedBombImplant"; + public override void Initialize() + { + SubscribeLocalEvent(OnTryInsertVoiceActivatedBomb); + } + + private void OnTryInsertVoiceActivatedBomb(Entity ent, ref AddImplantAttemptEvent args) + { + if (!Tag.HasTag(args.Implant, VoiceActivatedBombTag)) + return; + + var ev = new InsertVoiceActivatedBombEvent(args.User, args.Implant, args.Implanter); + RaiseLocalEvent(args.Implant, ev); + if (ev.Cancelled) + args.Cancel(); + + return; + } +} +public sealed class InsertVoiceActivatedBombEvent(EntityUid user, EntityUid implant, EntityUid implanter) + : CancellableEntityEventArgs +{ + public readonly EntityUid User = user; + public readonly EntityUid Implant = implant; + public readonly EntityUid Implanter = implanter; +} diff --git a/Resources/Changelog/ChangelogWhite.yml b/Resources/Changelog/ChangelogWhite.yml index c3e76f7cb4..cb37a49ecf 100644 --- a/Resources/Changelog/ChangelogWhite.yml +++ b/Resources/Changelog/ChangelogWhite.yml @@ -1,71 +1,4 @@ Entries: -- author: hailrakes - changes: - - message: "\u0414\u043E\u0431\u0430\u0432\u043B\u0435\u043D\u0430 \u0430\u0432\u0442\ - \u043E\u0433\u0435\u043D\u0435\u0440\u0430\u0446\u0438\u044F \u0441\u043F\u0438\ - \u0441\u043A\u0430 \u0438\u0437\u043C\u0435\u043D\u0435\u043D\u0438\u0439 \u0432\ - \ Discord." - type: Add - id: 97 - time: '2023-03-01T12:37:40.0000000+00:00' -- author: RavMorgan - changes: - - message: "\u041F\u0430\u043D\u0435\u043B\u044C \u0441 \u044D\u043C\u043E\u0443\ - \u0442\u0430\u043C\u0438 \u0442\u0435\u043F\u0435\u0440\u044C \u043E\u0442\u0441\ - \u043E\u0440\u0442\u0438\u0440\u043E\u0432\u0430\u043D\u0430!" - type: Add - - message: "\u0412\u0440\u0435\u043C\u0435\u043D\u043D\u043E \u0443\u0431\u0440\u0430\ - \u043D\u044B \u043B\u0438\u043D\u043A\u0438 \u043D\u0430 \u043F\u0440\u043E\u0444\ - \u0435\u0441\u0441\u0438\u0438 \u0432 \u0447\u0430\u0442\u0435!" - type: Remove - id: 98 - time: '2023-03-01T19:21:18.0000000+00:00' -- author: rhailrake - changes: - - message: "\u0422\u0435\u043F\u0435\u0440\u044C \u0431\u043E\u0440\u0433\u0430\ - \ \u043C\u043E\u0436\u043D\u043E \u0437\u0430\u0441\u0442\u0430\u043D\u0438\u0442\ - \u044C \u0444\u043B\u0435\u0448\u043A\u043E\u0439!" - type: Add - - message: "\u0422\u0440\u0438 \u043D\u043E\u0432\u044B\u0445 \u0431\u043E\u0440\ - \u0433\u0430: Sec, Eng, Syndi" - type: Add - - message: "\u0422\u0435\u043F\u0435\u0440\u044C \u043E\u0433\u043D\u0435\u0442\u0443\ - \u0448\u0438\u0442\u0435\u043B\u044C \u0437\u0430\u043F\u0440\u0430\u0432\u043B\ - \u044F\u0435\u0442\u0441\u044F \u0441\u043E \u0432\u0440\u0435\u043C\u0435\u043D\ - \u0435\u043C." - type: Add - id: 99 - time: '2023-03-02T13:00:53.0000000+00:00' -- author: RavMorgan - changes: - - message: "\u0418\u0441\u043F\u0440\u0430\u0432\u043B\u0435\u043D \u0422\u0422\u0421\ - \ \u0443 \u043A\u043B\u043E\u0443\u043D\u0430!" - type: Add - id: 100 - time: '2023-03-02T13:25:24.0000000+00:00' -- author: RavMorgan - changes: - - message: "\u0424\u0438\u043A\u0441 \u043F\u0430\u043D\u0435\u043B\u0438 \u0441\ - \ \u044D\u043C\u043E\u0443\u0442\u0430\u043C\u0438!" - type: Add - id: 101 - time: '2023-03-03T21:17:20.0000000+00:00' -- author: KettlebellOfCreation - changes: - - message: "\u0434\u043E\u0431\u0430\u0432\u043B\u0435\u043D\u0430 \u0437\u0430\u0434\ - \u0435\u0440\u0436\u043A\u0430 \u0432 90 \u0441\u0435\u043A\u0443\u043D\u0434\ - \ \u043C\u0435\u0436\u0434\u0443 \u043E\u0442\u043F\u0440\u0430\u0432\u043A\u043E\ - \u0439 LOOC \u0441\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u0439." - type: Add - id: 102 - time: '2023-03-03T21:19:04.0000000+00:00' -- author: BronyUraj - changes: - - message: "Bomb Cap \u0434\u043B\u044F \u0433\u0430\u0437\u043E\u0432\u044B\u0445\ - \ \u0431\u043E\u043C\u0431." - type: Add - id: 103 - time: '2023-03-04T15:46:44.0000000+00:00' - author: NCast changes: - message: "\u0414\u043E\u0431\u0430\u0432\u0438\u043B \u0440\u0435\u0446\u0435\u043F\ @@ -8851,3 +8784,103 @@ id: 596 time: '2024-11-05T11:52:29.0000000+00:00' url: https://api.github.com/repos/frosty-dev/ss14-core/pulls/770 +- author: Valtos + changes: + - message: "\u0418\u0441\u043F\u0440\u0430\u0432\u043B\u0435\u043D\u0430 \u043F\u0440\ + \u043E\u0431\u043B\u0435\u043C\u0430 \u0441 \u0437\u0430\u0433\u0440\u0443\u0437\ + \u043A\u043E\u0439 \u0440\u0435\u043F\u043B\u0435\u0435\u0432. \u041E\u043D\u0438\ + \ \u0432\u0441\u0451 \u0435\u0449\u0451 \u043C\u043E\u0433\u0443\u0442 \u0432\ + \u044B\u0434\u0430\u0432\u0430\u0442\u044C \u043E\u0448\u0438\u0431\u043A\u0443\ + , \u043E\u0434\u043D\u0430\u043A\u043E \u0442\u0435\u043F\u0435\u0440\u044C\ + \ \u0442\u043E\u0447\u043D\u043E \u0434\u043E\u043B\u0436\u043D\u044B \u0437\ + \u0430\u0433\u0440\u0443\u0436\u0430\u0442\u044C\u0441\u044F." + type: Fix + id: 597 + time: '2024-11-05T20:04:51.0000000+00:00' + url: https://api.github.com/repos/frosty-dev/ss14-core/pulls/772 +- author: BIG_Zi_348 + changes: + - message: "\u0412\u0437\u0440\u044B\u0432\u043D\u0430\u044F \u0440\u0443\u0447\u043A\ + \u0430 \u0441\u0438\u043D\u0434\u0438\u043A\u0430\u0442\u0430 \u0442\u0435\u043F\ + \u0435\u0440\u044C \u0432\u0437\u0440\u044B\u0432\u0430\u0435\u0442\u0441\u044F\ + ." + type: Fix + id: 598 + time: '2024-11-05T21:28:42.0000000+00:00' + url: https://api.github.com/repos/frosty-dev/ss14-core/pulls/771 +- author: Valtos + changes: + - message: "\u041E\u043F\u0442\u0438\u043C\u0438\u0437\u0438\u0440\u043E\u0432\u0430\ + \u043D \u0440\u0435\u043D\u0434\u0435\u0440\u0438\u043D\u0433 \u044D\u043D\u0442\ + \u0438\u0442\u0438 \u0432 \u043A\u043E\u0441\u043C\u043E\u0441\u0435" + type: Tweak + - message: "\u0422\u0432\u0438\u043A\u043D\u0443\u0442\u0430 \u043F\u0440\u043E\u0438\ + \u0437\u0432\u043E\u0434\u0438\u0442\u0435\u043B\u044C\u043D\u043E\u0441\u0442\ + \u044C \u0431\u0434" + type: Tweak + - message: "\u0414\u043E\u0440\u0430\u0431\u043E\u0442\u0430\u043D\u0430 \u0441\u0438\ + \u0441\u0442\u0435\u043C\u0430 \u043E\u0431\u0440\u0430\u0431\u043E\u0442\u043A\ + \u0438 \u0441\u043E\u0431\u044B\u0442\u0438\u0439" + type: Tweak + id: 599 + time: '2024-11-07T23:21:53.0000000+00:00' + url: https://api.github.com/repos/frosty-dev/ss14-core/pulls/775 +- author: BIG_Zi_348 + changes: + - message: "\u0414\u043E\u0431\u0430\u0432\u043B\u0435\u043D\u044B \u0443\u043B\u0438\ + \u0442\u043A\u0438. \u0427\u0435\u0441\u0442\u043D\u043E, \u043F\u0440\u043E\ + \u0441\u0442\u043E \u0443\u043B\u0438\u0442\u043A\u0438, \u043E\u043D\u0438\ + \ \u043D\u0438\u043A\u0430\u043A \u043D\u0435 \u043C\u043E\u0433\u0443\u0442\ + \ \u043F\u043E\u0432\u043B\u0438\u044F\u0442\u044C \u043D\u0430 \u0440\u0430\ + \u0431\u043E\u0442\u0443 \u0441\u0442\u0430\u043D\u0446\u0438\u0438. \u041D\u0435\ + \ \u043D\u0430\u0434\u043E \u0432\u044B\u0437\u044B\u0432\u0430\u0442\u044C\ + \ \u044D\u0432\u0430\u043A\u0443\u0430\u0446\u0438\u044E, \u0432\u044B \u0441\ + \u043F\u0440\u0430\u0432\u0438\u0442\u0435\u0441\u044C." + type: Add + id: 600 + time: '2024-11-11T06:54:23.0000000+00:00' + url: https://api.github.com/repos/frosty-dev/ss14-core/pulls/774 +- author: BIG_Zi_348 + changes: + - message: "\u0414\u043E\u0431\u0430\u0432\u043B\u0435\u043D\u044B \u043D\u0435\u0434\ + \u043E\u0441\u0442\u0430\u044E\u0449\u0438\u0435 \u043F\u0435\u0440\u0435\u0432\ + \u043E\u0434\u044B \u043E\u0440\u0443\u0436\u0435\u0439\u043D\u044B\u043C \u0441\ + \u0435\u0439\u0444\u0430\u043C." + type: Add + - message: "\u0414\u043E\u0431\u0430\u0432\u043B\u0435\u043D\u044B \u043D\u0435\u0434\ + \u043E\u0441\u0442\u0430\u044E\u0449\u0438\u0435 \u043F\u0435\u0440\u0435\u0432\ + \u043E\u0434\u044B \u0441\u043A\u0430\u043D\u0435\u0440\u0443 \u0430\u043D\u043E\ + \u043C\u0430\u043B\u0438\u0439." + type: Add + - message: "\u0414\u043E\u0431\u0430\u0432\u043B\u0435\u043D\u044B \u043D\u0435\u0434\ + \u043E\u0441\u0442\u0430\u044E\u0449\u0438\u0435 \u043F\u0435\u0440\u0435\u0432\ + \u043E\u0434\u044B \u0441\u043A\u0430\u043D\u0435\u0440\u0443 \u0437\u0434\u043E\ + \u0440\u043E\u0432\u044C\u044F." + type: Add + - message: "\u0418\u0441\u043F\u0440\u0430\u0432\u043B\u0435\u043D \u043F\u0438\u043A\ + \u0441\u0435\u043B\u044C \u0432 \u0441\u043F\u0440\u0430\u0439\u0442\u0435 \u0434\ + \u0438\u0437\u0435\u0439\u0431\u043B\u0435\u0440\u0430." + type: Fix + id: 601 + time: '2024-11-11T06:55:45.0000000+00:00' + url: https://api.github.com/repos/frosty-dev/ss14-core/pulls/778 +- author: BIG_Zi_348 + changes: + - message: "\u0418\u0441\u043F\u0440\u0430\u0432\u043B\u0435\u043D\u0430 \u0440\u0430\ + \u0431\u043E\u0442\u0430 \u0441\u043A\u0430\u043D\u0435\u0440\u0430 \u0442\u0435\ + \u043B\u0430." + type: Fix + id: 602 + time: '2024-11-11T06:59:00.0000000+00:00' + url: https://api.github.com/repos/frosty-dev/ss14-core/pulls/781 +- author: BIG_Zi_348 + changes: + - message: "\u0414\u043E\u0431\u0430\u0432\u043B\u0435\u043D \u043D\u043E\u0432\u044B\ + \u0439 \u0438\u043C\u043F\u043B\u0430\u043D\u0442 \u0434\u043B\u044F \u0441\u0438\ + \u043D\u0434\u0438\u043A\u0430\u0442\u0430 - \u0431\u043E\u043C\u0431\u0430\ + \ \u0441 \u0433\u043E\u043B\u043E\u0441\u043E\u0432\u043E\u0439 \u0430\u043A\ + \u0442\u0438\u0432\u0430\u0446\u0438\u0435\u0439." + type: Add + id: 603 + time: '2024-11-11T07:02:02.0000000+00:00' + url: https://api.github.com/repos/frosty-dev/ss14-core/pulls/782 diff --git a/Resources/Locale/en-US/ghost/roles/ghost-role-component.ftl b/Resources/Locale/en-US/ghost/roles/ghost-role-component.ftl index c8c3cae670..567b824079 100644 --- a/Resources/Locale/en-US/ghost/roles/ghost-role-component.ftl +++ b/Resources/Locale/en-US/ghost/roles/ghost-role-component.ftl @@ -10,6 +10,13 @@ ghost-role-information-mouse-description = A hungry and mischievous mouse. ghost-role-information-mothroach-name = Mothroach ghost-role-information-mothroach-description = A cute but mischievous mothroach. +ghost-role-information-snail-name = Snail +ghost-role-information-snail-description = A little snail who doesn't mind a bit of space. Just stay on grid! +ghost-role-information-snailspeed-name = Snail +ghost-role-information-snailspeed-description = A little snail with snailborn thrusters. +ghost-role-information-snoth-name = Snoth +ghost-role-information-snoth-description = A little snoth who doesn't mind a bit of space. Just stay on grid! + ghost-role-information-giant-spider-name = Giant spider ghost-role-information-giant-spider-description = This station's inhabitants look mighty tasty, and your sticky web is perfect to catch them! diff --git a/Resources/Locale/en-US/replays/replays.ftl b/Resources/Locale/en-US/replays/replays.ftl index 7a7e551b3e..f488a60693 100644 --- a/Resources/Locale/en-US/replays/replays.ftl +++ b/Resources/Locale/en-US/replays/replays.ftl @@ -9,6 +9,7 @@ replay-loading-starting= Starting Entities replay-loading-failed = Failed to load replay. Error: {$reason} replay-loading-retry = Try load with more exception tolerance - MAY CAUSE BUGS! +replay-loading-cancel = Cancel # Main Menu replay-menu-subtext = Replay Client diff --git a/Resources/Locale/en-US/species/species.ftl b/Resources/Locale/en-US/species/species.ftl index f31b1fa0f0..64c7632863 100644 --- a/Resources/Locale/en-US/species/species.ftl +++ b/Resources/Locale/en-US/species/species.ftl @@ -9,3 +9,7 @@ species-name-arachnid = Arachnid species-name-moth = Moth Person species-name-skeleton = Skeleton species-name-vox = Vox + +## Misc species things + +snail-hurt-by-salt-popup = The salty solution burns like acid! diff --git a/Resources/Locale/ru-RU/_white/implants/voiceactivatedbomb.ftl b/Resources/Locale/ru-RU/_white/implants/voiceactivatedbomb.ftl new file mode 100644 index 0000000000..3b0a3784ad --- /dev/null +++ b/Resources/Locale/ru-RU/_white/implants/voiceactivatedbomb.ftl @@ -0,0 +1,7 @@ +uplink-voice-activated-bomb-implant = Имплант бомбы с голосовым триггером +uplink-voice-activated-bomb-implant-desc = Имплант микробомбы с триггером, заставляющим сработать по заданной голосовой команде. + +ent-VoiceActivatedBombImplant = Имплант бомбы с голосовым триггером + .desc = Имплант микробомбы с триггером, заставляющим сработать по заданной голосовой команде. + +voice-activated-bomb-no-key-phrase = Голосовой триггер не инициализирован, ввод импланта заблокирован. diff --git a/Resources/Locale/ru-RU/_white/locales-new/autotranslate-71.ftl b/Resources/Locale/ru-RU/_white/locales-new/autotranslate-71.ftl index 77f4a97bb2..cc90f3f3b2 100644 --- a/Resources/Locale/ru-RU/_white/locales-new/autotranslate-71.ftl +++ b/Resources/Locale/ru-RU/_white/locales-new/autotranslate-71.ftl @@ -52,5 +52,11 @@ ent-MobDionaNymph = нимфа дионы .desc = Это как кошка, только… более ветвистая. ent-MobDionaNymphAccent = { ent-MobDionaNymph } .desc = { ent-MobDionaNymph.desc } +ent-OrganDionaNymphBrain = { ent-MobDionaNymph } + .desc = Содержит мозг ранее полностью сформированной дионы. Убив её, ты убьёшь диону навсегда, монстр. +ent-OrganDionaNymphStomach = { ent-MobDionaNymph } + .desc = Содержит желудок ранее полностью сформированной дионы. Вкус от этого лучше не будет. +ent-OrganDionaNymphLungs = { ent-MobDionaNymph } + .desc = Содержит лёгкие ранее полностью сформированной дионы. Захватывает дух. ent-MobArgocyteSlurva = slurva .desc = Жалкие создания, не способные на многое. diff --git a/Resources/Locale/ru-RU/_white/wizard/spellbook.ftl b/Resources/Locale/ru-RU/_white/wizard/spellbook.ftl index 212fcd1d6a..8f717bd355 100644 --- a/Resources/Locale/ru-RU/_white/wizard/spellbook.ftl +++ b/Resources/Locale/ru-RU/_white/wizard/spellbook.ftl @@ -37,8 +37,8 @@ spellbook-mime-desc = { ent-ActionMimeTouchSpell.desc } spellbook-recall-name = { ent-ActionInstantRecallSpell } spellbook-recall-desc = { ent-ActionInstantRecallSpell.desc } -spellbook-smite-name = { ent-ActionSmite } -spellbook-smite-desc = { ent-ActionSmite.desc } +spellbook-smite-name = { ent-ActionSmiteWizard } +spellbook-smite-desc = { ent-ActionSmiteWizard.desc } spellbook-mindswap-name = { ent-ActionMindswapSpell } spellbook-mindswap-desc = { ent-ActionMindswapSpell.desc } diff --git a/Resources/Locale/ru-RU/_white/wizard/spells.ftl b/Resources/Locale/ru-RU/_white/wizard/spells.ftl index 72aca1438f..e0c4954015 100644 --- a/Resources/Locale/ru-RU/_white/wizard/spells.ftl +++ b/Resources/Locale/ru-RU/_white/wizard/spells.ftl @@ -40,7 +40,7 @@ ent-ActionTeleportSpell = Телепортация ent-ActionKnock = Стук .desc = Открывает все двери, шлюзы и шкафы в радиусе 5 тайлов. -ent-ActionSmite = Кара +ent-ActionSmiteWizard = Кара .desc = Заряжает вашу руку мерзкой энергией, которую можно использовать для взрыва жертв. Заклинание требует, чтобы вы коснулись своей цели, поэтому вы не сможете использовать его в наручниках или будучи оглушённым. Не работает без волшебной мантии и шляпы. ent-ActionMindswapSpell = Подмена сознания diff --git a/Resources/Locale/ru-RU/actions/actions/suicide.ftl b/Resources/Locale/ru-RU/actions/actions/suicide.ftl new file mode 100644 index 0000000000..1e27da7b77 --- /dev/null +++ b/Resources/Locale/ru-RU/actions/actions/suicide.ftl @@ -0,0 +1 @@ +suicide-action-popup = ЭТО ДЕЙСТВИЕ УБЬЁТ ВАС! Используйте его ещё раз, если вы уверены. diff --git a/Resources/Locale/ru-RU/anomaly/anomaly.ftl b/Resources/Locale/ru-RU/anomaly/anomaly.ftl index 28809e1ca5..70bbbc0749 100644 --- a/Resources/Locale/ru-RU/anomaly/anomaly.ftl +++ b/Resources/Locale/ru-RU/anomaly/anomaly.ftl @@ -8,6 +8,7 @@ anomaly-particles-delta = Дельта-частицы anomaly-particles-epsilon = Эпсилон-частицы anomaly-particles-zeta = Зета-частицы anomaly-particles-omega = Омега-частицы +anomaly-particles-sigma = Сигма-частицы anomaly-scanner-component-scan-complete = Сканирование завершено! @@ -22,6 +23,11 @@ anomaly-scanner-particle-readout = Анализ реакции на частиц anomaly-scanner-particle-danger = - [color=crimson]Опасный тип:[/color] { $type } anomaly-scanner-particle-unstable = - [color=plum]Нестабильный тип:[/color] { $type } anomaly-scanner-particle-containment = - [color=goldenrod]Сдерживающий тип:[/color] { $type } +anomaly-scanner-particle-transformation = - [color=#6b75fa]Трансформирующий тип:[/color] { $type } +anomaly-scanner-particle-danger-unknown = - [color=crimson]Опасный тип:[/color] [color=red]ОШИБКА[/color] +anomaly-scanner-particle-unstable-unknown = - [color=plum]Нестабильный тип:[/color] [color=red]ОШИБКА[/color] +anomaly-scanner-particle-containment-unknown = - [color=goldenrod]Сдерживающий тип:[/color] [color=red]ОШИБКА[/color] +anomaly-scanner-particle-transformation-unknown = - [color=#6b75fa]Трансформирующий тип:[/color] [color=red]ОШИБКА[/color] anomaly-scanner-pulse-timer = Время до следующего импульса: [color=gray]{ $time }[/color] anomaly-gorilla-core-slot-name = Ядро аномалии @@ -69,3 +75,24 @@ anomaly-command-supercritical = Доводит аномалию до супер # Flavor text on the footer anomaly-generator-flavor-left = Аномалия может возникнуть внутри пользователя. anomaly-generator-flavor-right = v1.1 + +anomaly-behavior-unknown = [color=red]ОШИБКА. Невозможно считать.[/color] + +anomaly-behavior-title = Анализ отклонений поведения: +anomaly-behavior-point = [color=gold]Аномалия генерирует { $mod }% очков[/color] + +anomaly-behavior-safe = [color=forestgreen]Аномалия чрезвычайно стабильна. Крайне редкие импульсы.[/color] +anomaly-behavior-slow = [color=forestgreen]Частота импульсов значительно снижена.[/color] +anomaly-behavior-light = [color=forestgreen]Мощность импульсов значительно снижена.[/color] +anomaly-behavior-balanced = Отклонения поведения не обнаружены. +anomaly-behavior-delayed-force = Частота пульсаций значительно снижена, но их сила повышена. +anomaly-behavior-rapid = Частота пульсаций значительно повышена, но их сила снижена. +anomaly-behavior-reflect = Обнаружено защитное покрытие. +anomaly-behavior-nonsensivity = Обнаружена слабая реакция на частицы. +anomaly-behavior-sensivity = Обнаружена сильная реакция на частицы. +anomaly-behavior-invisibility = Обнаружено искажение светового потока. +anomaly-behavior-secret = Обнаружены помехи. Некоторые данные не могут быть считаны +anomaly-behavior-inconstancy = [color=crimson]Обнаружено непостоянство. Со временем типы частиц могут поменяться.[/color] +anomaly-behavior-fast = [color=crimson]Частота импульсов значительно повышена.[/color] +anomaly-behavior-strenght = [color=crimson]Мощность импульсов значительно повышена.[/color] +anomaly-behavior-moving = [color=crimson]Обнаружена координатная нестабильность.[/color] diff --git a/Resources/Locale/ru-RU/cargo/cargo-console-component.ftl b/Resources/Locale/ru-RU/cargo/cargo-console-component.ftl index ecbc3bbd9b..07d6230d28 100644 --- a/Resources/Locale/ru-RU/cargo/cargo-console-component.ftl +++ b/Resources/Locale/ru-RU/cargo/cargo-console-component.ftl @@ -30,6 +30,7 @@ cargo-console-snip-snip = Заказ урезан до вместимости cargo-console-insufficient-funds = Недостаточно средств (требуется { $cost }) cargo-console-unfulfilled = Нет места для выполнения заказа cargo-console-trade-station = Отправить на {$destination} +cargo-console-unlock-approved-order-broadcast = [bold]{$productName} x{$orderAmount}[/bold], стоимостью [bold]{$cost}[/bold], одобрено [bold]{$approverName}, {$approverJob}[/bold] cargo-console-paper-print-name = Заказ #{$orderNumber} cargo-console-paper-print-text = diff --git a/Resources/Locale/ru-RU/ghost/roles/ghost-role-component.ftl b/Resources/Locale/ru-RU/ghost/roles/ghost-role-component.ftl index 95d1efffd5..5108ca4e30 100644 --- a/Resources/Locale/ru-RU/ghost/roles/ghost-role-component.ftl +++ b/Resources/Locale/ru-RU/ghost/roles/ghost-role-component.ftl @@ -10,6 +10,15 @@ ghost-role-information-mouse-description = Голодная и озорная м ghost-role-information-mothroach-name = Таракамоль ghost-role-information-mothroach-description = Милая озорная таракамоль. +ghost-role-information-snail-name = Улитка +ghost-role-information-snail-description = Маленькая улитка, которая не против немного побыть на свободе. Только не убегай за пределы клетки! +ghost-role-information-snailspeed-name = Улитка +ghost-role-information-snailspeed-description = Маленькая улитка с турбоулиточными ускорителями. +ghost-role-information-snoth-name = Молитка +ghost-role-information-snoth-description = Маленькая молитка, которая не против немного побыть на свободе. Только не убегай за пределы клетки! +ghost-role-information-deathsnail-name = Улитка забвения +ghost-role-information-deathsnail-description = Маленькая улитка, предвестник Конца, последний адепт Элегиста. Вся жизнь будет окончена, все звёзды - потухнут, но она останется. + ghost-role-information-giant-spider-name = Гигантский паук ghost-role-information-giant-spider-description = Устройте хаос обитателям станции! diff --git a/Resources/Locale/ru-RU/locales-new/autotranslate-14.ftl b/Resources/Locale/ru-RU/locales-new/autotranslate-14.ftl index ac15728926..01b7bb1df4 100644 --- a/Resources/Locale/ru-RU/locales-new/autotranslate-14.ftl +++ b/Resources/Locale/ru-RU/locales-new/autotranslate-14.ftl @@ -51,3 +51,13 @@ ent-MobKangarooSpace = космо-кенгуру .desc = Это выглядит дружелюбно. Почему бы тебе не обнять его? ent-MobSpiderSpace = космо-паук .desc = Он так светится, что выглядит опасным. +ent-MobSnail = улитка + .desc = Отвратительна, только если вы не француз. +ent-MobSnailInstantDeath = { ent-MobSnail } + .suffix = Кара + .desc = Древнее существо, пришедшее из ниоткуда и которое останется, пока последний атом не будет расчеплён. +ent-MobSnailSpeed = { ent-MobSnail } + .suffix = Скорость + .desc = { ent-MobSnail.desc } +ent-MobSnailMoth = молитка + .desc = Отвратительна, только если вы не моль-француз. diff --git a/Resources/Locale/ru-RU/locales-new/autotranslate-44.ftl b/Resources/Locale/ru-RU/locales-new/autotranslate-44.ftl index e69cb8711d..5183554e1d 100644 --- a/Resources/Locale/ru-RU/locales-new/autotranslate-44.ftl +++ b/Resources/Locale/ru-RU/locales-new/autotranslate-44.ftl @@ -70,6 +70,24 @@ ent-LockerParamedic = шкаф парамедика .desc = { ent-LockerBase.desc } ent-GunSafe = оружейный сейф .desc = { ent-LockerBase.desc } +ent-GunSafeDisabler = сейф с дизейблерами + .desc = { ent-GunSafe.desc } +ent-GunSafeSubMachineGunDrozd = сейф с пистолетами-пулемётами Дрозд + .desc = { ent-GunSafe.desc } +ent-GunSafeShotgunEnforcer = сейф с дробовиками Силовик + .desc = { ent-GunSafe.desc } +ent-GunSafeShotgunKammerer = сейф с дробовиками Каммерер + .desc = { ent-GunSafe.desc } +ent-GunSafeLaserCarbine = сейф с лазерными винтовками + .desc = { ent-GunSafe.desc } +ent-GunSafeRifleLecter = сейф с винтовками Лектер + .desc = { ent-GunSafe.desc } +ent-GunSafePistolMk58 = сейф с пистолетами МК 58 + .desc = { ent-GunSafe.desc } +ent-GunSafeTempGun = сейф с температурными пушками + .desc = { ent-GunSafe.desc } +ent-GunSafeSubMachineGunWt550 = сейф с пистолетами-пулемётами WT550 + .desc = { ent-GunSafe.desc } ent-LockerBluespaceStation = блюспейс шкаф .desc = Усовершенствованная технология шкафчиков. ent-CrateChemistrySecure = надежный химический ящик diff --git a/Resources/Locale/ru-RU/medical/components/health-analyzer-component.ftl b/Resources/Locale/ru-RU/medical/components/health-analyzer-component.ftl index 7b131088e2..f937d1cc4f 100644 --- a/Resources/Locale/ru-RU/medical/components/health-analyzer-component.ftl +++ b/Resources/Locale/ru-RU/medical/components/health-analyzer-component.ftl @@ -13,28 +13,28 @@ health-analyzer-window-scan-mode-text = Режим сканирования: health-analyzer-window-scan-mode-active = ВКЛЮЧЕН health-analyzer-window-scan-mode-inactive = ВЫКЛЮЧЕН -health-analyzer-window-damage-group-Brute = Механические: -health-analyzer-window-damage-type-Blunt = Удары: -health-analyzer-window-damage-type-Slash = Разрезы: -health-analyzer-window-damage-type-Piercing = Уколы: +damage-group-brute = Механические +damage-type-blunt = Удары +damage-type-slash = Разрезы +damage-type-piercing = Уколы -health-analyzer-window-damage-group-Burn = Ожоги: -health-analyzer-window-damage-type-Heat = Термические: -health-analyzer-window-damage-type-Laser = Лазерный: -health-analyzer-window-damage-type-Shock = Электрические: -health-analyzer-window-damage-type-Cold = Обморожение: -health-analyzer-window-damage-type-Caustic = Кислотные: +damage-group-burn = Ожоги +damage-type-heat = Термические +damage-type-laser = Лазерный +damage-type-shock = Электрические +damage-type-cold = Обморожение +damage-type-caustic = Кислотные -health-analyzer-window-damage-group-Airloss = Нехватка воздуха: -health-analyzer-window-damage-type-Asphyxiation = Удушение: -health-analyzer-window-damage-type-Bloodloss = Кровопотеря: +damage-group-airloss = Нехватка воздуха +damage-type-asphyxiation = Удушение +damage-type-bloodloss = Кровопотеря -health-analyzer-window-damage-group-Toxin = Токсины: -health-analyzer-window-damage-type-Poison = Яды: -health-analyzer-window-damage-type-Radiation = Радиация: +damage-group-toxin = Токсины +damage-type-poison = Яды +damage-type-radiation = Радиация -health-analyzer-window-damage-group-Genetic = Генетические: -health-analyzer-window-damage-type-Cellular = Клеточные: +damage-group-genetic = Генетические +damage-type-cellular = Клеточные health-analyzer-window-malnutrition = Тяжёлое недоедание diff --git a/Resources/Locale/ru-RU/pai/pai-system.ftl b/Resources/Locale/ru-RU/pai/pai-system.ftl index 22d8c1de05..a914c567ba 100644 --- a/Resources/Locale/ru-RU/pai/pai-system.ftl +++ b/Resources/Locale/ru-RU/pai/pai-system.ftl @@ -2,12 +2,25 @@ pai-system-pai-installed = пИИ установлен. pai-system-off = пИИ не установлен. pai-system-still-searching = Всё ещё ищем пИИ. pai-system-searching = Ищем пИИ... + pai-system-role-name = персональный ИИ pai-system-role-description = Станьте чьим-то персональным Искуственным Интеллектом! (Воспоминания *не* прилагаются.) +pai-system-role-name-syndicate = персональный ИИ Синдиката +pai-system-role-description-syndicate = Станьте чьим-то персональным Искуственным Интеллектом! + (Воспоминания *не* прилагаются.) +pai-system-role-name-potato = картофельный искусственный интеллект +pai-system-role-description-potato = Это игрушка для детей. И теперь ваша жизнь в ней. + pai-system-wipe-device-verb-text = Удалить пИИ pai-system-wiped-device = пИИ был стерт с устройства. + pai-system-stop-searching-verb-text = Прекратить поиск pai-system-stopped-searching = Устройство прекратило поиск пИИ. + pai-system-pai-name = пИИ { CAPITALIZE($owner) } +pai-system-pai-name-raw = пИИ {$name} + +pai-system-brick-popup = Микросхемы пИИ громко хлопают и перегорают! +pai-system-scramble-popup = Микросхемы пИИ перенапряжены электричеством! diff --git a/Resources/Locale/ru-RU/procedural/expeditions.ftl b/Resources/Locale/ru-RU/procedural/expeditions.ftl index 86a260bcbb..0933e58871 100644 --- a/Resources/Locale/ru-RU/procedural/expeditions.ftl +++ b/Resources/Locale/ru-RU/procedural/expeditions.ftl @@ -4,6 +4,7 @@ salvage-expedition-structure-remaining = [one] { $count } структура осталась. *[other] { $count } структур осталось. } +salvage-expedition-type = Миссия salvage-expedition-megafauna-remaining = { $count } мегафауны остаётся. salvage-expedition-window-title = Экспедиции salvage-expedition-window-difficulty = Сложность: @@ -35,11 +36,43 @@ salvage-expedition-difficulty-Minor = Незначительная salvage-expedition-difficulty-Moderate = Умеренная salvage-expedition-difficulty-Hazardous = Опасная salvage-expedition-difficulty-Extreme = Экстремальная + +salvage-expedition-difficulty-players = Рекомендуется утилизаторов: + # Runner salvage-expedition-not-all-present = Не все утилизаторы находятся на борту шаттла! # Runner salvage-expedition-announcement-countdown-minutes = { $duration } минут осталось до завершения экспедиции. salvage-expedition-announcement-countdown-seconds = { $duration } секунд осталось до завершения экспедиции. salvage-expedition-reward-description = Награда за выполнение миссии -salvage-expedition-announcement-dungeon = Подземелье расположено на { $direction }. +salvage-expedition-announcement-dungeon = Подземелье обнаружено. Местоположение: { $direction }. salvage-expedition-completed = Экспедиция завершена. + +salvage-faction-xenos = Ксено +salvage-faction-carps = Карпы + +salvage-biome-mod-caves = Пещеры +salvage-biome-mod-grasslands = Луга +salvage-biome-mod-snow = Снег +salvage-biome-mod-lava = Лава + +salvage-light-mod-daylight = День +salvage-light-mod-evening = Вечер +salvage-light-mod-night = Ночь +salvage-temperature-mod-room-temperature = Комнатная температура +salvage-temperature-mod-hot = Жара +salvage-temperature-mod-high-temperature = Высокая температура +salvage-temperature-mod-extreme-heat = Экстремальная жара +salvage-temperature-mod-cold = Холод +salvage-temperature-mod-low-temperature = Низкая температура +salvage-temperature-mod-extreme-cold = Экстремальный холод +salvage-air-mod-no-atmosphere = Отсутствие атмосферы +salvage-air-mod-breathable-atmosphere = Пригодная атмосфера +salvage-air-mod-dangerous-atmosphere = Опасная атмосфера +salvage-air-mod-toxic-atmosphere = Токсичная атмосфера +salvage-air-mod-volatile-atmosphere = Изменчивая атмосфера +salvage-dungeon-mod-lava-brig = Лавовый бриг +salvage-dungeon-mod-snowy-labs = Снежная лаборатория +salvage-dungeon-mod-experiment = Эксперимент +salvage-dungeon-mod-haunted = Призраки +salvage-dungeon-mod-mineshaft = Шахта diff --git a/Resources/Locale/ru-RU/species/species.ftl b/Resources/Locale/ru-RU/species/species.ftl index d67314bde8..ea87fc16d1 100644 --- a/Resources/Locale/ru-RU/species/species.ftl +++ b/Resources/Locale/ru-RU/species/species.ftl @@ -10,3 +10,7 @@ species-name-skrell = Скрелл species-name-moth = Моль species-name-skeleton = Скелет species-name-felinid = Фелинид + +## Misc species things + +snail-hurt-by-salt-popup = Соленый раствор жжет, как кислота! diff --git a/Resources/Locale/ru-RU/ss14-ru/prototypes/entities/objects/consumable/food/meat.ftl b/Resources/Locale/ru-RU/ss14-ru/prototypes/entities/objects/consumable/food/meat.ftl index 0d6257d914..a842c66766 100644 --- a/Resources/Locale/ru-RU/ss14-ru/prototypes/entities/objects/consumable/food/meat.ftl +++ b/Resources/Locale/ru-RU/ss14-ru/prototypes/entities/objects/consumable/food/meat.ftl @@ -48,6 +48,8 @@ ent-FoodMeatMeatball = фрикаделька .desc = Шарик сырого мяса. Ноу хомо. ent-FoodMeatSlime = шар слизи .desc = Студенистая масса из слаймового желе. +ent-FoodMeatSnail = сырое мясо улитки + .desc = Лучше с солью. ent-FoodMeatCooked = стейк .desc = Зажаренный кусок мяса. Аромат первобытности. ent-FoodMeatBaconCooked = бекон @@ -72,6 +74,8 @@ ent-FoodMeatSpiderlegCooked = приготовленная паучья нога .desc = Нога гигантского паука, которая все еще дергается после приготовления. Отвратительно! ent-FoodMeatMeatballCooked = фрикаделька .desc = Приготовленная фрикаделька. Идеально подходит для добавления в другие блюда... кроме фруктовых. +ent-FoodMeatSnailCooked = варёная улитка + .desc = Лучше с солью. ent-FoodMeatCutlet = сырая котлета .desc = Котлета из сырого мяса. ent-FoodMeatBearCutlet = сырая котлета из медведя diff --git a/Resources/Locale/ru-RU/ss14-ru/prototypes/entities/objects/consumable/food/soup.ftl b/Resources/Locale/ru-RU/ss14-ru/prototypes/entities/objects/consumable/food/soup.ftl index 35f2484a26..a682e42760 100644 --- a/Resources/Locale/ru-RU/ss14-ru/prototypes/entities/objects/consumable/food/soup.ftl +++ b/Resources/Locale/ru-RU/ss14-ru/prototypes/entities/objects/consumable/food/soup.ftl @@ -84,3 +84,5 @@ ent-FoodSaladColeslaw = салат коул слоу .desc = Нашинкованную капусту и красный лук заправить винегретом. ent-FoodSaladKimchi = салат кимчи .desc = На самом деле это просто острый салат. +ent-FoodSoupEscargot = эскарго + .desc = Сытное сливочное блюдо с улитками, бон апетит! diff --git a/Resources/Locale/ru-RU/ss14-ru/prototypes/entities/objects/misc/implanters.ftl b/Resources/Locale/ru-RU/ss14-ru/prototypes/entities/objects/misc/implanters.ftl index 8df980b01a..728e8c9fd6 100644 --- a/Resources/Locale/ru-RU/ss14-ru/prototypes/entities/objects/misc/implanters.ftl +++ b/Resources/Locale/ru-RU/ss14-ru/prototypes/entities/objects/misc/implanters.ftl @@ -56,3 +56,6 @@ ent-ImplanterSyndi = { ent-BaseImplanter } .desc = { ent-BaseImplanter.desc } ent-NeuroStabilizationImplanter = { ent-BaseImplanter } .desc = { ent-BaseImplanter.desc } +ent-VoiceActivatedBombImplanter = { ent-BaseImplanter } + .desc = { ent-BaseImplanter.desc } + .suffix = бомба с голосовым триггером diff --git a/Resources/Locale/ru-RU/ss14-ru/prototypes/entities/objects/specific/janitorial/soap.ftl b/Resources/Locale/ru-RU/ss14-ru/prototypes/entities/objects/specific/janitorial/soap.ftl index fae9b35489..6b1f75ea57 100644 --- a/Resources/Locale/ru-RU/ss14-ru/prototypes/entities/objects/specific/janitorial/soap.ftl +++ b/Resources/Locale/ru-RU/ss14-ru/prototypes/entities/objects/specific/janitorial/soap.ftl @@ -10,3 +10,5 @@ ent-SoapHomemade = мыло .desc = Самодельный брусок мыла. Пахнет... уф.... ent-SoapOmega = омега мыло .desc = Самое совершенное мыло, известное человечеству. Пахнет блюспейсом. +ent-SoapletSyndie = кусочек мыла + .desc = Крохотный кусочек мыла синдиката. diff --git a/Resources/Locale/ru-RU/ss14-ru/prototypes/magic/smite_spells.ftl b/Resources/Locale/ru-RU/ss14-ru/prototypes/magic/smite_spells.ftl new file mode 100644 index 0000000000..0b864112f8 --- /dev/null +++ b/Resources/Locale/ru-RU/ss14-ru/prototypes/magic/smite_spells.ftl @@ -0,0 +1,2 @@ +ent-ActionSmite = Кара + .desc = Мгновенно поражает цель. diff --git a/Resources/Prototypes/Entities/Clothing/Eyes/glasses.yml b/Resources/Prototypes/Entities/Clothing/Eyes/glasses.yml index b51d96978f..5bd8613134 100644 --- a/Resources/Prototypes/Entities/Clothing/Eyes/glasses.yml +++ b/Resources/Prototypes/Entities/Clothing/Eyes/glasses.yml @@ -254,7 +254,7 @@ id: ClothingEyesGlassesThermalNukie suffix: "Хамелеон, Ядерные Оперативники" components: - - type: ShowSyndicateIcons + - type: ShowAntagonistIcons - type: entity parent: ClothingEyesBase diff --git a/Resources/Prototypes/Entities/Clothing/Eyes/hud.yml b/Resources/Prototypes/Entities/Clothing/Eyes/hud.yml index 24ead4a18f..26e434a2a8 100644 --- a/Resources/Prototypes/Entities/Clothing/Eyes/hud.yml +++ b/Resources/Prototypes/Entities/Clothing/Eyes/hud.yml @@ -167,7 +167,7 @@ damageContainers: - Biological - Inorganic - - type: ShowSyndicateIcons + - type: ShowAntagonistIcons - type: entity parent: [ClothingEyesBase, ShowSecurityIcons, ShowMedicalIcons] @@ -185,7 +185,7 @@ - Inorganic - type: ShowHungerIcons - type: ShowThirstIcons - - type: ShowSyndicateIcons + - type: ShowAntagonistIcons - type: entity parent: [ClothingEyesBase, ShowSecurityIcons] @@ -197,7 +197,7 @@ sprite: Clothing/Eyes/Hud/synd.rsi - type: Clothing sprite: Clothing/Eyes/Hud/synd.rsi - - type: ShowSyndicateIcons + - type: ShowAntagonistIcons - type: entity parent: [ClothingEyesBase, ShowSecurityIcons] @@ -209,7 +209,7 @@ sprite: Clothing/Eyes/Hud/syndagent.rsi - type: Clothing sprite: Clothing/Eyes/Hud/syndagent.rsi - - type: ShowSyndicateIcons + - type: ShowAntagonistIcons - type: ShowHealthBars damageContainers: - Biological diff --git a/Resources/Prototypes/Entities/Mobs/Cyborgs/base_borg_chassis.yml b/Resources/Prototypes/Entities/Mobs/Cyborgs/base_borg_chassis.yml index 052f35e99e..ffe1e94410 100644 --- a/Resources/Prototypes/Entities/Mobs/Cyborgs/base_borg_chassis.yml +++ b/Resources/Prototypes/Entities/Mobs/Cyborgs/base_borg_chassis.yml @@ -278,7 +278,7 @@ - type: ActiveRadio channels: - Syndicate - - type: ShowSyndicateIcons + - type: ShowAntagonistIcons - type: MovementAlwaysTouching - type: TTS - type: PointLight diff --git a/Resources/Prototypes/Entities/Mobs/NPCs/space.yml b/Resources/Prototypes/Entities/Mobs/NPCs/space.yml index 6d7f14c92c..68240d3d36 100644 --- a/Resources/Prototypes/Entities/Mobs/NPCs/space.yml +++ b/Resources/Prototypes/Entities/Mobs/NPCs/space.yml @@ -375,3 +375,239 @@ suffix: "Salvage Ruleset" components: - type: SalvageMobRestrictions + +- type: entity # WD Ahead of wizden + parent: SimpleSpaceMobBase + id: MobSnail + name: snail + description: Revolting unless you're french. + components: + - type: Body + prototype: Mouse + - type: GhostRole + makeSentient: true + allowSpeech: false + allowMovement: true + name: ghost-role-information-snail-name + description: ghost-role-information-snail-description + # rules: ghost-role-information-freeagent-rules # WD TODO later + - type: GhostTakeoverAvailable + - type: Emoting + - type: Sprite + drawdepth: SmallMobs + sprite: Mobs/Animals/snail.rsi + layers: + - map: ["enum.DamageStateVisualLayers.Base"] + state: snail + - type: Item + size: Tiny + - type: NpcFactionMember + factions: + - Mouse + - type: HTN + rootTask: + task: MouseCompound + - type: Physics + - type: Fixtures + fixtures: + fix1: + shape: + !type:PhysShapeCircle + radius: 0.2 + density: 100 + mask: + - SmallMobMask + layer: + - SmallMobLayer + - type: MobState + - type: Deathgasp + - type: MobStateActions + actions: + Critical: + - ActionCritSuccumb + - ActionCritFakeDeath + - ActionCritLastWords + - type: MobThresholds + thresholds: + 0: Alive + 10: Critical + 20: Dead + - type: MovementSpeedModifier + baseWalkSpeed : 2 + baseSprintSpeed : 3 + - type: DamageStateVisuals + states: + Alive: + Base: snail + Critical: + Base: dead + Dead: + Base: dead + - type: Food + - type: Thirst + startingThirst: 25 # spawn with Okay thirst state + thresholds: + OverHydrated: 35 + Okay: 25 + Thirsty: 15 + Parched: 10 + Dead: 0 + baseDecayRate: 0.04 + - type: Hunger + currentHunger: 25 # spawn with Okay hunger state + thresholds: + Overfed: 35 + Okay: 25 + Peckish: 15 + Starving: 10 + Dead: 0 + baseDecayRate: 0.1 + - type: Extractable + grindableSolutionName: food + - type: SolutionContainerManager + solutions: + food: + reagents: + - ReagentId: UncookedAnimalProteins + Quantity: 3 + - type: Butcherable + spawned: + - id: FoodMeatSnail + amount: 1 + - type: Tag + tags: + - Trash + - VimPilot + - ChefPilot + - Meat + - type: CombatMode + combatToggleAction: ActionCombatModeToggleOff + - type: Bloodstream + bloodMaxVolume: 30 + bloodReagent: Cryoxadone + - type: CanEscapeInventory + - type: MobPrice + price: 50 + - type: BadFood + - type: NonSpreaderZombie + - type: PreventSpiller + - type: FireVisuals + sprite: Mobs/Effects/onfire.rsi + normalState: Mouse_burning + - type: Temperature + heatDamageThreshold: 500 + coldDamageThreshold: 0 + - type: Reactive + reactions: + - reagents: [TableSalt, Saline] + methods: [Touch, Ingestion, Injection] + effects: + - !type:HealthChange + scaleByQuantity: true + damage: + types: + Caustic: 1 + - !type:PopupMessage + type: Local + visualType: Large + messages: [ "snail-hurt-by-salt-popup" ] + probability: 0.66 + +- type: entity # WD Ahead of wizden + parent: MobSnail + id: MobSnailInstantDeath + suffix: Smite + components: + - type: MobStateActions + actions: + Alive: + - ActionSmite + Critical: + - ActionCritSuccumb + - ActionCritFakeDeath + - ActionCritLastWords + # - type: Godmode # WD Removed - not funny + - type: MovementAlwaysTouching + # WD EDIT START + - type: MobThresholds + thresholds: + 0: Alive + 1900: Critical + 2000: Dead + - type: Bloodstream + maxBleedAmount: 1 + bloodMaxVolume: 100 + bloodReagent: Necrosol + - type: GhostRole + name: ghost-role-information-deathsnail-name + description: ghost-role-information-deathsnail-description + raffle: + settings: default + - type: Sprite + layers: + - map: ["enum.DamageStateVisualLayers.Base"] + state: deathsnail + - type: PointLight + color: red + energy: 2 + range: 3 + - type: AmbientSound + range: 5 + volume: 30 + sound: + path: /Audio/White/Supermatter/calm.ogg + - type: MovementSpeedModifier + baseWalkSpeed : 0.5 + baseSprintSpeed : 1 + # WD EDIT END + +- type: entity # WD Ahead of wizden + parent: MobSnail + id: MobSnailSpeed + suffix: Speed + components: + - type: GhostRole + name: ghost-role-information-snailspeed-name + description: ghost-role-information-snailspeed-description + # rules: ghost-role-information-freeagent-rules # WD TODO later + - type: Sprite + layers: + - map: ["enum.DamageStateVisualLayers.Base"] + state: spacesnail + - type: DamageStateVisuals + states: + Alive: + Base: spacesnail + Critical: + Base: spacedead + Dead: + Base: spacedead + - type: MovementSpeedModifier + baseWalkSpeed : 5 #he go fast, also they cant slip so its probably fine. + baseSprintSpeed : 7 +# - type: ActiveJetpack # I think this will need a custom component to not make tests angry. + - type: MovementAlwaysTouching + +- type: entity # WD Ahead of wizden + parent: MobSnail + id: MobSnailMoth + name: Snoth + components: + - type: Body + prototype: Mothroach + - type: GhostRole + name: ghost-role-information-snoth-name + description: ghost-role-information-snoth-description + # rules: ghost-role-information-freeagent-rules # WD TODO later + - type: Sprite + layers: + - map: ["enum.DamageStateVisualLayers.Base"] + state: snoth + - type: DamageStateVisuals + states: + Alive: + Base: snoth + Critical: + Base: snothdead + Dead: + Base: snothdead diff --git a/Resources/Prototypes/Entities/Objects/Consumable/Food/meat.yml b/Resources/Prototypes/Entities/Objects/Consumable/Food/meat.yml index cef0496d57..fe454a2ae3 100644 --- a/Resources/Prototypes/Entities/Objects/Consumable/Food/meat.yml +++ b/Resources/Prototypes/Entities/Objects/Consumable/Food/meat.yml @@ -679,6 +679,35 @@ - type: Sprite state: slime +- type: entity # WD Ahead of wizden + name: raw snail meat + parent: FoodMeatRawBase + id: FoodMeatSnail + description: Improved with salt. + components: + - type: Sprite + state: snail + # - type: FoodSequenceElement # WD TODO later + # sprite: + # sprite: Objects/Consumable/Food/meat.rsi + # state: snail + # entries: + # burger: + # name: food-sequence-content-snail + # taco: + # name: food-sequence-content-snail + - type: SolutionContainerManager + solutions: + food: + maxVol: 15 + reagents: + - ReagentId: UncookedAnimalProteins + Quantity: 3 + - ReagentId: Fat + Quantity: 3 + - ReagentId: Water + Quantity: 4 #It makes saline if you add salt! + # Cooked - type: entity @@ -1070,6 +1099,40 @@ - ReagentId: Protein Quantity: 5 +- type: entity + name: boiled snail + parent: FoodMeatBase + id: FoodMeatSnailCooked + description: Improved with salt. + components: + - type: Tag + tags: + - Cooked + - Meat + - type: Sprite + layers: + - state: snail-cooked + # - type: FoodSequenceElement + # sprite: + # sprite: Objects/Consumable/Food/meat.rsi + # state: snail-cooked + # entries: + # burger: + # name: food-sequence-content-snail + # taco: + # name: food-sequence-content-snail + - type: SolutionContainerManager + solutions: + food: + maxVol: 15 + reagents: + - ReagentId: Nutriment + Quantity: 3 + - ReagentId: Protein + Quantity: 3 + - ReagentId: Water + Quantity: 4 # makes saline if you add salt! + # Cutlets # Raw diff --git a/Resources/Prototypes/Entities/Objects/Consumable/Food/soup.yml b/Resources/Prototypes/Entities/Objects/Consumable/Food/soup.yml index 8601dfbad5..a466a9d7f5 100644 --- a/Resources/Prototypes/Entities/Objects/Consumable/Food/soup.yml +++ b/Resources/Prototypes/Entities/Objects/Consumable/Food/soup.yml @@ -1226,3 +1226,33 @@ - Fruit - Soup # Tastes like bungo, hot curry. + +- type: entity # WD Ahead of wizden + name: escargot + parent: FoodBowlBase + id: FoodSoupEscargot + description: A creamy and rich bowl of snails, bon appetit! + components: + - type: FlavorProfile + flavors: + - creamy + - slimy + - type: Sprite + layers: + - state: bowl + - state: escargot + - type: SolutionContainerManager + solutions: + food: + maxVol: 20 + reagents: + - ReagentId: Nutriment + Quantity: 6 + - ReagentId: Vitamin + Quantity: 6 + - ReagentId: Allicin + Quantity: 3 + - type: Tag + tags: + - Meat + - Soup diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Bombs/pen.yml b/Resources/Prototypes/Entities/Objects/Weapons/Bombs/pen.yml index c6c37d3642..95575a5280 100644 --- a/Resources/Prototypes/Entities/Objects/Weapons/Bombs/pen.yml +++ b/Resources/Prototypes/Entities/Objects/Weapons/Bombs/pen.yml @@ -20,6 +20,8 @@ - type: DeviceLinkSink ports: - Trigger + - type: EmitSoundOnUse + handle: false # WD Ahead of wizden upstream - don't want the sound to stop the explosion from triggering - type: entity parent: BaseItem diff --git a/Resources/Prototypes/GameRules/events.yml b/Resources/Prototypes/GameRules/events.yml index 76bd02bf03..e1982e7c18 100644 --- a/Resources/Prototypes/GameRules/events.yml +++ b/Resources/Prototypes/GameRules/events.yml @@ -207,6 +207,52 @@ - id: MobMothroach prob: 0.008 +- type: entity # WD Ahead of wizden + id: SnailMigrationLowPop + # parent: BaseStationEventShortDelay # WD TODO later + parent: BaseGameRule + noSpawn: true + components: + - type: StationEvent + startAnnouncement: station-event-vent-creatures-start-announcement + startAudio: + path: /Audio/Announcements/attention.ogg + weight: 6 + duration: 50 + - type: VentCrittersRule + entries: + - id: MobSnail + prob: 0.02 + - id: MobSnailSpeed + prob: 0.002 + - id: MobSnailMoth + prob: 0.005 # WD edit from 0.002 to 0.005 + +- type: entity # WD Ahead of wizden + id: SnailMigration + # parent: BaseStationEventShortDelay # WD TODO later + parent: BaseGameRule + noSpawn: true + components: + - type: StationEvent + startAnnouncement: station-event-vent-creatures-start-announcement + startAudio: + path: /Audio/Announcements/attention.ogg + earliestStart: 15 + weight: 6 + duration: 50 + minimumPlayers: 30 + - type: VentCrittersRule + entries: + - id: MobSnail + prob: 0.02 + - id: MobSnailSpeed + prob: 0.002 + - id: MobSnailMoth + prob: 0.005 # WD edit from 0.002 to 0.005 + - id: MobSnailInstantDeath + prob: 0.00001 # ~ 1:2000 snails + - type: entity id: PowerGridCheck parent: BaseGameRule diff --git a/Resources/Prototypes/Magic/smite_spells.yml b/Resources/Prototypes/Magic/smite_spells.yml index 55d3e8a293..44cf47688e 100644 --- a/Resources/Prototypes/Magic/smite_spells.yml +++ b/Resources/Prototypes/Magic/smite_spells.yml @@ -4,8 +4,6 @@ description: Instantly gibs a target. noSpawn: true components: - - type: Magic - requiresClothes: true - type: EntityTargetAction useDelay: 60 itemIconStyle: BigAction @@ -22,3 +20,13 @@ state: gib event: !type:SmiteSpellEvent speech: action-speech-spell-smite + +- type: entity + id: ActionSmiteWizard + parent: ActionSmite + name: Smite + description: Instantly gibs a target. + noSpawn: true + components: + - type: Magic + requiresClothes: true diff --git a/Resources/Prototypes/Recipes/Cooking/meal_recipes.yml b/Resources/Prototypes/Recipes/Cooking/meal_recipes.yml index 36ae34f43e..3598954f3f 100644 --- a/Resources/Prototypes/Recipes/Cooking/meal_recipes.yml +++ b/Resources/Prototypes/Recipes/Cooking/meal_recipes.yml @@ -896,6 +896,29 @@ FoodBungo: 2 FoodChiliPepper: 1 +- type: microwaveMealRecipe # WD Ahead of wizden + id: RecipeBoiledSnail + name: boiled snail recipe + result: FoodMeatSnailCooked + time: 5 + reagents: + Water: 10 + solids: + FoodMeatSnail: 1 + +- type: microwaveMealRecipe # WD Ahead of wizden + id: RecipeEscargotSoup + name: escargot recipe + result: FoodSoupEscargot + time: 10 + reagents: + Water: 5 + solids: + FoodBowlBig: 1 + FoodOnionSlice: 1 + FoodButter: 1 + FoodMeatSnailCooked: 1 + #Pies - type: microwaveMealRecipe diff --git a/Resources/Prototypes/_White/Catalog/uplink.yml b/Resources/Prototypes/_White/Catalog/uplink.yml index 2cdad02829..392a7eb7de 100644 --- a/Resources/Prototypes/_White/Catalog/uplink.yml +++ b/Resources/Prototypes/_White/Catalog/uplink.yml @@ -324,3 +324,15 @@ Telecrystal: 2 categories: - UplinkDisruption + +- type: listing + id: UplinkVoiceActivatedBombImplanter + name: uplink-voice-activated-bomb-implant + description: uplink-voice-activated-bomb-implant-desc + icon: { sprite: /Textures/Actions/Implants/implants.rsi, state: explosive } + productEntity: VoiceActivatedBombImplanter + cost: + Telecrystal: 8 + categories: + - UplinkImplants + saleLimit: 1 diff --git a/Resources/Prototypes/_White/Entities/Clothing/Head/night_vision_goggle.yml b/Resources/Prototypes/_White/Entities/Clothing/Head/night_vision_goggle.yml index 76f342c920..d925bd4ad5 100644 --- a/Resources/Prototypes/_White/Entities/Clothing/Head/night_vision_goggle.yml +++ b/Resources/Prototypes/_White/Entities/Clothing/Head/night_vision_goggle.yml @@ -33,4 +33,4 @@ id: ClothingEyesNightVisionGogglesNukie suffix: "Хамелеон, Ядерные Оперативники" components: - - type: ShowSyndicateIcons + - type: ShowAntagonistIcons diff --git a/Resources/Prototypes/_White/Entities/Objects/Misc/implanters.yml b/Resources/Prototypes/_White/Entities/Objects/Misc/implanters.yml index d229a9c5ed..dac2453912 100644 --- a/Resources/Prototypes/_White/Entities/Objects/Misc/implanters.yml +++ b/Resources/Prototypes/_White/Entities/Objects/Misc/implanters.yml @@ -43,6 +43,18 @@ - type: Implanter implant: NeuroStabilizationImplant +- type: entity + parent: BaseImplantOnlyImplanterSyndi + id: VoiceActivatedBombImplanter + suffix: voice activated bomb + components: + - type: Implanter + implant: VoiceActivatedBombImplant + - type: TriggerOnVoice + - type: Tag + tags: + - VoiceActivatedBombImplant + #Amour - type: entity id: GenderSwapImplanter @@ -51,3 +63,4 @@ components: - type: Implanter implant: GenderSwapImplant + diff --git a/Resources/Prototypes/_White/Entities/Objects/Misc/subdermal_implants.yml b/Resources/Prototypes/_White/Entities/Objects/Misc/subdermal_implants.yml index 7b75f6d04f..6a513273f4 100644 --- a/Resources/Prototypes/_White/Entities/Objects/Misc/subdermal_implants.yml +++ b/Resources/Prototypes/_White/Entities/Objects/Misc/subdermal_implants.yml @@ -49,6 +49,27 @@ tags: - NeuroStabilization +- type: entity + parent: BaseSubdermalImplant + id: VoiceActivatedBombImplant + name: voice activated Bomb implant + description: A microbomb implant with a trigger that causes it to go off by vocal keywords. + noSpawn: true + components: + - type: SubdermalImplant + permanent: true + - type: TriggerOnVoice + - type: ExplodeOnTrigger + - type: Explosive + explosionType: MicroBomb + totalIntensity: 150 + intensitySlope: 5 + maxIntensity: 30 + canCreateVacuum: false + - type: Tag + tags: + - VoiceActivatedBombImplant + #Amour - type: entity parent: BaseSubdermalImplant diff --git a/Resources/Prototypes/_White/Ghosts/custom_ghosts.yml b/Resources/Prototypes/_White/Ghosts/custom_ghosts.yml index 734f3ba15a..fd4335d887 100644 --- a/Resources/Prototypes/_White/Ghosts/custom_ghosts.yml +++ b/Resources/Prototypes/_White/Ghosts/custom_ghosts.yml @@ -499,7 +499,7 @@ sprite: White/Ghosts/DEN4IK_64-ghost.rsi alpha: 0.9 ghostName: Никелевый камушек - ghostDescription: Этот Ниггер имеет талант, знаешь что я тебе за это дам??? + ghostDescription: Этот камушек имеет талант, знаешь что я тебе за это дам??? #BIG_Zi_348 - type: customGhost @@ -509,3 +509,13 @@ alpha: 0.9 ghostName: BIG_Zi_348 ghostDescription: Зенит космической энергии — генезис сознания из пустоты. + +#AugustNacist1488 +- type: customGhost + id: augustnacist1488-ghost + ckey: AugustNacist1488 + sprite: White/Ghosts/augustnacist1488-ghost.rsi + alpha: 0.9 + ghostName: Ash drake + ghostDescription: Почитаемый хранитель некрополя. + size: 0.75, 0.75 diff --git a/Resources/Prototypes/_White/Objects/Scrolls/scrolls.yml b/Resources/Prototypes/_White/Objects/Scrolls/scrolls.yml index 4744c1a23b..2139910bfe 100644 --- a/Resources/Prototypes/_White/Objects/Scrolls/scrolls.yml +++ b/Resources/Prototypes/_White/Objects/Scrolls/scrolls.yml @@ -149,7 +149,7 @@ name: "Smite scroll" components: - type: Scroll - actionId: ActionSmite + actionId: ActionSmiteWizard learnPopup: scroll-component-smite - type: entity diff --git a/Resources/Prototypes/_White/tags.yml b/Resources/Prototypes/_White/tags.yml index 382fc950ab..7dc0743d05 100644 --- a/Resources/Prototypes/_White/tags.yml +++ b/Resources/Prototypes/_White/tags.yml @@ -102,3 +102,6 @@ - type: Tag id: ClusterBang + +- type: Tag + id: VoiceActivatedBombImplant diff --git a/Resources/Textures/Mobs/Animals/snail.rsi/dead.png b/Resources/Textures/Mobs/Animals/snail.rsi/dead.png new file mode 100644 index 0000000000000000000000000000000000000000..bdaecdab58b41dd322d8fadc8c6793d6ff97e814 GIT binary patch literal 441 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 Xe{~z2J2d*e`fu0YXF0u+x;EqAOI~=^ literal 0 HcmV?d00001 diff --git a/Resources/Textures/Mobs/Animals/snail.rsi/meta.json b/Resources/Textures/Mobs/Animals/snail.rsi/meta.json new file mode 100644 index 0000000000..2800667917 --- /dev/null +++ b/Resources/Textures/Mobs/Animals/snail.rsi/meta.json @@ -0,0 +1,36 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Created by Kezu (discord) & IProduceWidgets (github)", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "snail", + "directions": 4 + }, + { + "name": "dead" + }, + { + "name": "spacesnail", + "directions": 4 + }, + { + "name": "deathsnail", + "directions": 4 + }, + { + "name": "spacedead" + }, + { + "name": "snoth", + "directions": 4 + }, + { + "name": "snothdead" + } + ] +} diff --git a/Resources/Textures/Mobs/Animals/snail.rsi/snail.png b/Resources/Textures/Mobs/Animals/snail.rsi/snail.png new file mode 100644 index 0000000000000000000000000000000000000000..26d112c57ff45285972eb3913188be343bc782c0 GIT binary patch literal 1344 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 Ux`ylM1ONa407*qoM6N<$f>Dpl#sB~S literal 0 HcmV?d00001 diff --git a/Resources/Textures/Mobs/Animals/snail.rsi/spacesnail.png b/Resources/Textures/Mobs/Animals/snail.rsi/spacesnail.png new file mode 100644 index 0000000000000000000000000000000000000000..3a2d97c62220c1da37ebdff0cdc6d4b514d214d2 GIT binary patch literal 1390 zcmV-!1(EuRP)oH(PSCMKf&YzN(zj?2IG%t+-6XFt5$47OBFnO&>mWqrnl{Fd^n%vr01O5 z`}_UQ_nv$1&HWvK!C){L3otX{r7pqw$!}JU#u~t#Bx&W ziWX?KdJ@{sNumHR`Uil4AHGhG0J7(fw`|`Z()%l9T0J2X-Lhl|pxrlyf~M10c4dV2 zUAgoNJb>sJ0z)+xJs(q(r9GlY*wxII^Put)P4vY$ARNG zG#qTBB1k5{)-^kyJ59yt&yKL)OYMiSb&+X`z$!DF6WS%}b$FE{36K4J}ILVi;>Sq0W?-lsCeI1s+lT340Hy zGvyJ(=6v`A0Sx}*#Ok+~&KXk3@uA^;)B&Wbbwu)+aOKP8$l$`m|Ly!=(!U5jCBQ5p zP$=XW`d6U+vm}-qDn9%^9~280KJ)+haZENu-2zpuBeD*D=$Z5BKv?T}*))g(UtiP^y0g<1@*L`+8Z2JB2)2`RzBV;^r zrHFB2Fc>g0GD`b87imbb&qbZx5+1-|H<4gHQAD!axky9o*>ee+yu4fh$4Rsz$i)nv z=Xvb57Gbxw2!h~*ea}gBF4BalU#MG7OEBnoaM(>G)aFZr-*Xaz;G}W!JP(7x@Y1Y^ zS%B;fd+FdS>&@tC^Ws=TFDmQJ5CkWxN*m$U<`Re9L{#cbnlc9f`PCcoFH#{k`kQ&E z)R}PDO~kFuB~_)35CkVG>&-aU(2JfnFDmQJRD|pedr3lOKzDaH0)8*81E3;=vMP(i zT8jbw%{=;>d91Y<;uhdVd#kdzu;anOhsGB0ducsx0j9k!SZzjRs5P*Zl)-8<0syXF z{4rwCfps}>435VwfMakRfps|%#SF$`wHaY4DMN-@1FOv#)nvW0g+>f?or9&M468SqVYL}iTX8BX`%wib)9Ok7`cl*!E~S0t+p4i7 zM~6=@*5HHk^~lUrL8;_`r%wO?F|)JSNXp6q0vz?>@g|3*hzoasU1!{CTto zXFjUMgWK0|^z?zS3pUhqDyq#AQ3Y6M$|JUcbS%>r(!Su}^XRCi-x&z!O!nR2I$PgLT_Ldf2h~ wc4SDErJXM;9VsrBF=j9r3f(Fu>&55SfYboi_pY!qAyFQuwPW?$ zf@&&>c`GdPR#=>@rDgJ^?F#@*-NnIq7J%tsH--D6)cd+xh$aI(9v7G#Ii&8ah-td9 zG9mG`sH!9Q=)Ampqp==6h==Voe_&D_=8b|R4LL6DfSucd zx>()=12f+YbM74&5ClOG1VMN+!JwgnK|}qXzg;jH_WxWw9r+4iGVH5zT<7;NUX}aJ z3INL_$8T1cE!IXUEwgU*gkjmJ?7;SDvP^R3-}}2R^HsU$wlB#}=K!AD#%bkj;uOQO zi|#BN$3hqR?*hC|UCTee3UN6f2d+N1iBp_b4FHuLbP|EC2ui literal 0 HcmV?d00001 diff --git a/Resources/Textures/Objects/Consumable/Food/meat.rsi/snail.png b/Resources/Textures/Objects/Consumable/Food/meat.rsi/snail.png new file mode 100644 index 0000000000000000000000000000000000000000..c3c7ffcef5080cc864319a50041473bf5376867d GIT binary patch literal 307 zcmV-30nGl1P)@q?B8$zca!kDpb&-IU|ajCWec;Ib9}0! z;K$cF0P1jkZ+Fx1;X??7D>q?mU+To(UtebBX9^+2T0fd+RvTEp{N4Zn002ovPDHLk FV1f>BkY4}* literal 0 HcmV?d00001 diff --git a/Resources/Textures/White/Ghosts/augustnacist1488-ghost.rsi/animated.png b/Resources/Textures/White/Ghosts/augustnacist1488-ghost.rsi/animated.png new file mode 100644 index 0000000000000000000000000000000000000000..6afa0c0f00f17309892ff64d28c8ddc2d1d76d59 GIT binary patch literal 3905 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 r&wMjPV~p(WNA5dEf{WiPF<4wS+M