diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md index f1b130d784..97dd468f53 100644 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -9,9 +9,9 @@ ## Технические детали -## Test plan +## План тестирования ## Медиа @@ -21,7 +21,7 @@ Describe how you tested the pull request, and how someone reviewing this PR can ## Требования - [ ] Я прочитал(а) и следую [Рекомендациям по оформлению Pull Request и Changelog](https://docs.spacestation14.com/en/general-development/codebase-info/pull-request-guidelines.html). -- [ ] I have tested this pull request and written instructions on how to test it +- [ ] Я протестировал этот пул-реквест и написал инструкции по его проверке. - [ ] Я добавил(а) медиафайлы к этому PR или он не требует демонстрации в игре. diff --git a/Content.Client/Administration/UI/Tabs/PanicBunkerTab/PanicBunkerTab.xaml.cs b/Content.Client/Administration/UI/Tabs/PanicBunkerTab/PanicBunkerTab.xaml.cs index 894af1a173..ebc7734cb9 100644 --- a/Content.Client/Administration/UI/Tabs/PanicBunkerTab/PanicBunkerTab.xaml.cs +++ b/Content.Client/Administration/UI/Tabs/PanicBunkerTab/PanicBunkerTab.xaml.cs @@ -30,7 +30,7 @@ public sealed partial class PanicBunkerTab : Control MinOverallMinutes.OnFocusExit += args => SendMinOverallMinutes(args.Text); _minOverallMinutes = MinOverallMinutes.Text; // Corvax-VPNGuard-Start - var haveSecrets = IoCManager.Instance!.TryResolveType(out _); // TODO: Probably need better way to detect Secrets module + var haveSecrets = IoCManager.Instance!.TryResolveType(out _); // TODO-Corvax: Probably need better way to detect Secrets module if (haveSecrets) { VPNContainer.Visible = true; diff --git a/Content.Client/Stylesheets/Sheetlets/MenuButtonSheetlet.cs b/Content.Client/Stylesheets/Sheetlets/MenuButtonSheetlet.cs index ac880b5a45..7f08978263 100644 --- a/Content.Client/Stylesheets/Sheetlets/MenuButtonSheetlet.cs +++ b/Content.Client/Stylesheets/Sheetlets/MenuButtonSheetlet.cs @@ -74,6 +74,8 @@ public sealed class MenuButtonSheetlet : Sheetlet where T : PalettedStyles }; ButtonSheetlet.MakeButtonRules(rules, cfg.ButtonPalette, null); + ButtonSheetlet.MakeButtonRules(rules, cfg.PositiveButtonPalette, StyleClass.Positive); + ButtonSheetlet.MakeButtonRules(rules, cfg.NegativeButtonPalette, StyleClass.Negative); return rules.ToArray(); } diff --git a/Content.Server/Corvax/SecApartment/SecApartmentSystem.cs b/Content.Server/Corvax/SecApartment/SecApartmentSystem.cs index 524122cef2..4581e36d60 100644 --- a/Content.Server/Corvax/SecApartment/SecApartmentSystem.cs +++ b/Content.Server/Corvax/SecApartment/SecApartmentSystem.cs @@ -3,6 +3,7 @@ using Content.Server.DeviceLinking.Components; using Content.Server.Medical.CrewMonitoring; using Content.Server.Pinpointer; using Content.Shared.CrewManifest; +using Content.Shared.GameTicking; using Content.Shared.Medical.SuitSensor; using Content.Shared.Roles; using Content.Shared.SecApartment; @@ -62,8 +63,9 @@ public sealed partial class SecApartmentSystem : EntitySystem SubscribeLocalEvent(OnRemoveMemberFromSquad); SubscribeLocalEvent(OnChangeSquadStatus); SubscribeLocalEvent(OnRemoveTimer); + SubscribeLocalEvent(OnRoundRestart); - // TODO: I'm too lazy to change this. + // TODO-Corvax: I'm too lazy to change this. SubscribeLocalEvent(OnTimerStartup); SubscribeLocalEvent(OnTimerComponentShutdown); } @@ -106,10 +108,7 @@ public sealed partial class SecApartmentSystem : EntitySystem private void OnPrototypeReload(PrototypesReloadedEventArgs obj) { - if (obj.WasModified()) - InitializeSecurityJobs(); - - if (obj.WasModified()) + if (obj.WasModified() || obj.WasModified()) InitializeSecurityJobs(); } @@ -118,26 +117,30 @@ public sealed partial class SecApartmentSystem : EntitySystem if (comp.Station == null) return; - var securityCrew = GetSecurityCrew(uid, comp.Station.Value); - var statusDict = new Dictionary(); - var squadLocations = new Dictionary(); - var squads = _stationData.TryGetValue(comp.Station.Value, out var stationData) ? stationData.Squads : new List(); + var securityCrew = GetSecurityCrew(uid, comp.Station.Value); + var isUiOpen = _ui.IsUiOpen(uid, SecApartmentUiKey.Key); + + var statusDict = new Dictionary(); + + var squadLocations = isUiOpen + ? new Dictionary() + : null; + foreach (var squad in squads) { UpdateAndCollectSquadData(squad, securityCrew, statusDict); - - var location = GetSquadApproximateLocation(squad, securityCrew); - squadLocations[squad.SquadId] = location; + if (isUiOpen) + squadLocations![squad.SquadId] = GetSquadApproximateLocation(squad, securityCrew); } - if (!_ui.IsUiOpen(uid, SecApartmentUiKey.Key)) + if (!isUiOpen) return; - var statusUpdate = new SensorStatusUpdateState(statusDict, squadLocations); - _ui.SetUiState(uid, SecApartmentUiKey.Key, statusUpdate); + _ui.SetUiState(uid, SecApartmentUiKey.Key, + new SensorStatusUpdateState(statusDict, squadLocations!)); } private void UpdateAndCollectSquadData(Squad squad, List securityCrew, @@ -560,6 +563,11 @@ public sealed partial class SecApartmentSystem : EntitySystem sanitized = sanitized[..maxLength]; return sanitized; } + private void OnRoundRestart(RoundRestartCleanupEvent ev) + { + _stationData.Clear(); + _finishedTimers.Clear(); + } #region Timers private void OnTimerStartup(EntityUid uid, ActiveSignalTimerComponent component, ComponentStartup args) { diff --git a/Content.Server/Corvax/Speech/EntitySystems/GrowlingAccentSystem.cs b/Content.Server/Corvax/Speech/EntitySystems/GrowlingAccentSystem.cs index f5b69ef75c..790c1bcf80 100644 --- a/Content.Server/Corvax/Speech/EntitySystems/GrowlingAccentSystem.cs +++ b/Content.Server/Corvax/Speech/EntitySystems/GrowlingAccentSystem.cs @@ -9,14 +9,14 @@ public sealed partial class GrowlingAccentSystem : EntitySystem { [Dependency] private IRobustRandom _random = default!; - private static readonly Regex _regexLowerR = new Regex("r+"); - private static readonly Regex _regexUpperR = new Regex("R+"); - private static readonly Regex _regexLowerRp = new Regex("р+"); - private static readonly Regex _regexUpperRp = new Regex("Р+"); - private static readonly List _replacementsR = new List { "rr", "rrr" }; - private static readonly List _replacementsRUpper = new List { "RR", "RRR" }; - private static readonly List _replacementsRp = new List { "рр", "ррр" }; - private static readonly List _replacementsRpUpper = new List { "РР", "РРР" }; + private static readonly Regex _regexLowerR = new Regex("r+", RegexOptions.Compiled); + private static readonly Regex _regexUpperR = new Regex("R+", RegexOptions.Compiled); + private static readonly Regex _regexLowerRp = new Regex("р+", RegexOptions.Compiled); + private static readonly Regex _regexUpperRp = new Regex("Р+", RegexOptions.Compiled); + private static readonly string[] _replacementsR = { "rr", "rrr" }; + private static readonly string[] _replacementsRUpper = { "RR", "RRR" }; + private static readonly string[] _replacementsRp = { "рр", "ррр" }; + private static readonly string[] _replacementsRpUpper = { "РР", "РРР" }; public override void Initialize() { diff --git a/Content.Server/Corvax/TTS/TTSManager.cs b/Content.Server/Corvax/TTS/TTSManager.cs index fbaadd4ef7..bc35ce6b03 100644 --- a/Content.Server/Corvax/TTS/TTSManager.cs +++ b/Content.Server/Corvax/TTS/TTSManager.cs @@ -152,9 +152,7 @@ public sealed partial class TTSManager private string GenerateCacheKey(string speaker, string text) { var key = $"{speaker}/{text}"; - byte[] keyData = Encoding.UTF8.GetBytes(key); - var sha256 = System.Security.Cryptography.SHA256.Create(); - var bytes = sha256.ComputeHash(keyData); + var bytes = System.Security.Cryptography.SHA256.HashData(Encoding.UTF8.GetBytes(key)); return Convert.ToHexString(bytes); } diff --git a/Content.Shared/Corvax/TTS/HumanoidSystem.TTS.cs b/Content.Shared/Corvax/TTS/HumanoidSystem.TTS.cs deleted file mode 100644 index 35723583f1..0000000000 --- a/Content.Shared/Corvax/TTS/HumanoidSystem.TTS.cs +++ /dev/null @@ -1,3 +0,0 @@ -using Content.Shared.Corvax.TTS; - -namespace Content.Shared.Humanoid; diff --git a/Resources/Audio/Corvax/Jukebox/attributions.yml b/Resources/Audio/Corvax/Jukebox/attributions.yml new file mode 100644 index 0000000000..1b4d5006e9 --- /dev/null +++ b/Resources/Audio/Corvax/Jukebox/attributions.yml @@ -0,0 +1,15 @@ +- files: ["space_asshole.ogg"] + license: "Custom" + copyright: "Space Asshole by Chris Remo is used with special permission from the author, under the condition that the project remains non-commercial and open source. The author also requested that a link to his bandcamp be included: https://chrisremo.bandcamp.com/" + source: "https://idlethumbs.bandcamp.com/track/space-asshole" + # The source is a direct link to the track, but not the "main" bandcamp of the author. Hence the link is also included separately in the copyright. + +- files: ["singuloose.ogg"] + license: "CC-BY-NC-SA-3.0" + copyright: "Singuloose by Janis Schiedková. Converted from MP3 to OGG." + source: "https://soundcloud.com/js_m/singuloose" + +- files: ["pwmur.ogg"] + license: "CC-BY-NC-SA-3.0" + copyright: "phoron will make us rich by Sunbeamstress/Lauren Loveless." + source: "https://soundcloud.com/sunbeamstress/phoron-will-make-us-rich" diff --git a/Resources/Audio/Corvax/Jukebox/pwmur.ogg b/Resources/Audio/Corvax/Jukebox/pwmur.ogg new file mode 100644 index 0000000000..d4b02b9e3a Binary files /dev/null and b/Resources/Audio/Corvax/Jukebox/pwmur.ogg differ diff --git a/Resources/Audio/Corvax/Jukebox/singuloose.ogg b/Resources/Audio/Corvax/Jukebox/singuloose.ogg new file mode 100644 index 0000000000..1a7e131fa8 Binary files /dev/null and b/Resources/Audio/Corvax/Jukebox/singuloose.ogg differ diff --git a/Resources/Audio/Corvax/Jukebox/space_asshole.ogg b/Resources/Audio/Corvax/Jukebox/space_asshole.ogg new file mode 100644 index 0000000000..202f49bcdc Binary files /dev/null and b/Resources/Audio/Corvax/Jukebox/space_asshole.ogg differ diff --git a/Resources/Audio/Corvax/Lobby/attributions.yml b/Resources/Audio/Corvax/Lobby/attributions.yml index a3c0b99c60..edd2b22f64 100644 --- a/Resources/Audio/Corvax/Lobby/attributions.yml +++ b/Resources/Audio/Corvax/Lobby/attributions.yml @@ -1,15 +1,9 @@ -- files: ["title2.ogg"] - license: "CC-BY-NC-SA-3.0" - copyright: "https://github.com/tgstation/tgstation/blob/44db038c2cf7c6dade4300bea54cff06e98caf6a/sound/ambience/title2.ogg" - source: "https://www.youtube.com/watch?v=vHo7npmGcHU" - - files: ["service.ogg"] license: "CC-BY-NC-SA-3.0" copyright: "Service by Seeitsthem." source: "https://www.youtube.com/watch?v=FUf3mrPhHt4" - + - files: ["nodecision.ogg"] license: "CC-BY-NC-SA-3.0" copyright: "No decision by cobber3 (434996476964372481)." source: "https://www.youtube.com/watch?v=36yiUgdwul4" - diff --git a/Resources/Audio/Corvax/Lobby/title2.ogg b/Resources/Audio/Corvax/Lobby/title2.ogg deleted file mode 100644 index 7b58ab60e4..0000000000 Binary files a/Resources/Audio/Corvax/Lobby/title2.ogg and /dev/null differ diff --git a/Resources/Locale/ru-RU/commands/toolshed/container-command.ftl b/Resources/Locale/ru-RU/commands/toolshed/container-command.ftl new file mode 100644 index 0000000000..077c1439a3 --- /dev/null +++ b/Resources/Locale/ru-RU/commands/toolshed/container-command.ftl @@ -0,0 +1,14 @@ +command-description-container-contents = + Gets all entities inside a container on an entity via the container's ID. +command-description-container-get = + Gets a container on an entity via the container's ID. +command-description-container-insert = + Puts an entity inside the piped container. +command-description-container-insertmultiple = + Put multiple entities inside the piped container. +command-description-container-list = + Gets the IDs of all containers in an entity. +command-description-container-getall = + Gets all containers in an entity. +command-description-container-id = + Gets the string id of the piped in containers. diff --git a/Resources/Locale/ru-RU/datasets/figurines.ftl b/Resources/Locale/ru-RU/datasets/figurines.ftl index 96c2a501ca..c456dcf950 100644 --- a/Resources/Locale/ru-RU/datasets/figurines.ftl +++ b/Resources/Locale/ru-RU/datasets/figurines.ftl @@ -353,6 +353,7 @@ figurines-thief-5 = Хм, я не знал, что эта стена может figurines-wizard-1 = EI NATH!! figurines-wizard-2 = ONI'SOMA!! +figurines-wizard-3 = Skidaddle skadoodle! figurines-wizard-4 = Настоящие волшебники поддерживают права меньшинств. figurines-wizard-5 = Кто из вас БОТАНОВ готов попасть в шкафчик? figurines-wizard-6 = Я не волшебник! Я капитан! Мне поменяли разум! diff --git a/Resources/Locale/ru-RU/gases/gas-tank.ftl b/Resources/Locale/ru-RU/gases/gas-tank.ftl index 24c56aec6c..a42c573fe9 100644 --- a/Resources/Locale/ru-RU/gases/gas-tank.ftl +++ b/Resources/Locale/ru-RU/gases/gas-tank.ftl @@ -1 +1 @@ -gas-max-pressure-alert = Клапан сброса давления не выдержал! +gas-max-pressure-alert = Клапан сброса давления не выдержал! diff --git a/Resources/Locale/ru-RU/photography/photography.ftl b/Resources/Locale/ru-RU/photography/photography.ftl index aecfd3d0c8..c77f9f7800 100644 --- a/Resources/Locale/ru-RU/photography/photography.ftl +++ b/Resources/Locale/ru-RU/photography/photography.ftl @@ -1,7 +1,7 @@ # TODO: Make this a fluent function in RT photograph-name-text = Это фотография { PROPER($entity) -> *[false] { INDEFINITE($entity) } { $entity } - [true] { $entity } + [true] { $entity } }. photograph-name-text-empty = Это фотография. photograph-name-text-photograph = Это фотография другой фотографии. diff --git a/Resources/Locale/ru-RU/ss14-ru/prototypes/catalog/fills/items/gas_tanks.ftl b/Resources/Locale/ru-RU/ss14-ru/prototypes/catalog/fills/items/gas_tanks.ftl index a2a5df550e..6201401724 100644 --- a/Resources/Locale/ru-RU/ss14-ru/prototypes/catalog/fills/items/gas_tanks.ftl +++ b/Resources/Locale/ru-RU/ss14-ru/prototypes/catalog/fills/items/gas_tanks.ftl @@ -34,3 +34,21 @@ ent-NitrousOxideTankFilled = баллон оксида азота ent-PlasmaTankFilled = баллон плазмы .desc = { ent-PlasmaTank.desc } .suffix = Заполненный +ent-MaxCap = { ent-AirTank } + .desc = { ent-AirTank.desc } + .suffix = DEBUG, Max Cap +ent-MaxCapSmall = { ent-EmergencyOxygenTank } + .desc = { ent-EmergencyOxygenTank.desc } + .suffix = DEBUG, Max Cap +ent-MaxCapSmallEx = { ent-ExtendedEmergencyOxygenTank } + .desc = { ent-ExtendedEmergencyOxygenTank.desc } + .suffix = DEBUG, Max Cap +ent-MaxCapSmallDouble = { ent-DoubleEmergencyOxygenTank } + .desc = { ent-DoubleEmergencyOxygenTank.desc } + .suffix = DEBUG, Max Cap +ent-MaxCapSilly = max cap + .desc = { ent-AirTank.desc } + .suffix = DEBUG, Max Cap, Impossible +ent-MaxCapBluespace = max cap + .desc = { ent-AirTank.desc } + .suffix = DEBUG, Max Cap, Canister diff --git a/Resources/Locale/ru-RU/ss14-ru/prototypes/corvax/entities/markers/spawners/jobs.ftl b/Resources/Locale/ru-RU/ss14-ru/prototypes/corvax/entities/markers/spawners/jobs.ftl index 2263a3707e..2bd8a8f328 100644 --- a/Resources/Locale/ru-RU/ss14-ru/prototypes/corvax/entities/markers/spawners/jobs.ftl +++ b/Resources/Locale/ru-RU/ss14-ru/prototypes/corvax/entities/markers/spawners/jobs.ftl @@ -14,8 +14,5 @@ ent-SpawnPointSeniorResearcher = ведущий учёный .desc = { ent-SpawnPointJobBase.desc } .suffix = { ent-SpawnPointJobBase.suffix } ent-SpawnPointSeniorOfficer = инструктор СБ - .desc = { ent-SpawnPointJobBase.desc } - .suffix = { ent-SpawnPointJobBase.suffix } -ent-SpawnPointMagistrate = магистрат .desc = { ent-SpawnPointJobBase.desc } .suffix = { ent-SpawnPointJobBase.suffix } \ No newline at end of file diff --git a/Resources/Locale/ru-RU/ss14-ru/prototypes/corvax/entities/objects/misc/rubber_stamp.ftl b/Resources/Locale/ru-RU/ss14-ru/prototypes/corvax/entities/objects/misc/rubber_stamp.ftl index 950a993274..3149457f2e 100644 --- a/Resources/Locale/ru-RU/ss14-ru/prototypes/corvax/entities/objects/misc/rubber_stamp.ftl +++ b/Resources/Locale/ru-RU/ss14-ru/prototypes/corvax/entities/objects/misc/rubber_stamp.ftl @@ -2,5 +2,4 @@ ent-RubberStampIAA = печать агента внутренних дел .desc = { ent-RubberStampBase.desc } .suffix = НЕ МАППИТЬ ent-RubberStampMagistrate = печать магистрата - .desc = { ent-RubberStampMime.desc } - .suffix = НЕ МАППИТЬ + .desc = { ent-RubberStampBase.desc } diff --git a/Resources/Locale/ru-RU/ss14-ru/prototypes/corvax/entities/structures/machines/telecomms.ftl b/Resources/Locale/ru-RU/ss14-ru/prototypes/corvax/entities/structures/machines/telecomms.ftl index ad75037816..9e12e9ce2b 100644 --- a/Resources/Locale/ru-RU/ss14-ru/prototypes/corvax/entities/structures/machines/telecomms.ftl +++ b/Resources/Locale/ru-RU/ss14-ru/prototypes/corvax/entities/structures/machines/telecomms.ftl @@ -1,3 +1,3 @@ ent-TelecomServerFilledLegal = { ent-TelecomServer } - .suffix = Юридический .desc = { ent-TelecomServer.desc } + .suffix = Юридический diff --git a/Resources/Locale/ru-RU/ss14-ru/prototypes/corvax/markers/spawners/jobs.ftl b/Resources/Locale/ru-RU/ss14-ru/prototypes/corvax/markers/spawners/jobs.ftl new file mode 100644 index 0000000000..e78eda9ef6 --- /dev/null +++ b/Resources/Locale/ru-RU/ss14-ru/prototypes/corvax/markers/spawners/jobs.ftl @@ -0,0 +1,3 @@ +ent-SpawnPointMagistrate = магистрат + .desc = { ent-SpawnPointJobBase.desc } + .suffix = { ent-SpawnPointJobBase.suffix } diff --git a/Resources/Locale/ru-RU/ss14-ru/prototypes/entities/clothing/misc/changeling.ftl b/Resources/Locale/ru-RU/ss14-ru/prototypes/entities/clothing/misc/changeling.ftl new file mode 100644 index 0000000000..b3b4dddb09 --- /dev/null +++ b/Resources/Locale/ru-RU/ss14-ru/prototypes/entities/clothing/misc/changeling.ftl @@ -0,0 +1,39 @@ +ent-ChangelingFleshClothingBase = { ent-Clothing } + .desc = { ent-Clothing.desc } + .suffix = Changeling +ent-ChangelingFleshClothingBack = changeling flesh backpack + .desc = { ent-ChangelingFleshClothingBase.desc } + .suffix = { ent-ChangelingFleshClothingBase.suffix } +ent-ChangelingFleshClothingBelt = changeling flesh belt + .desc = { ent-ChangelingFleshClothingBase.desc } + .suffix = { ent-ChangelingFleshClothingBase.suffix } +ent-ChangelingFleshClothingEars = changeling flesh headset + .desc = { ent-ChangelingFleshClothingBase.desc } + .suffix = { ent-ChangelingFleshClothingBase.suffix } +ent-ChangelingFleshClothingEyes = changeling flesh glasses + .desc = { ent-ChangelingFleshClothingBase.desc } + .suffix = { ent-ChangelingFleshClothingBase.suffix } +ent-ChangelingFleshClothingGloves = changeling flesh gloves + .desc = { ent-ChangelingFleshClothingBase.desc } + .suffix = { ent-ChangelingFleshClothingBase.suffix } +ent-ChangelingFleshClothingHead = changeling flesh hat + .desc = { ent-ChangelingFleshClothingBase.desc } + .suffix = { ent-ChangelingFleshClothingBase.suffix } +ent-ChangelingFleshClothingMask = changeling flesh mask + .desc = { ent-ChangelingFleshClothingBase.desc } + .suffix = { ent-ChangelingFleshClothingBase.suffix } +ent-ChangelingFleshClothingNeck = changeling flesh tie + .desc = { ent-ChangelingFleshClothingBase.desc } + .suffix = { ent-ChangelingFleshClothingBase.suffix } +ent-ChangelingFleshClothingInner = changeling flesh jumpsuit + .desc = { ent-ChangelingFleshClothingBase.desc } + .suffix = { ent-ChangelingFleshClothingBase.suffix } +ent-ChangelingFleshClothingOuter = changeling flesh vest + .desc = { ent-ChangelingFleshClothingBase.desc } + .suffix = { ent-ChangelingFleshClothingBase.suffix } +ent-ChangelingFleshClothingFeet = changeling flesh shoes + .desc = { ent-ChangelingFleshClothingBase.desc } + .suffix = { ent-ChangelingFleshClothingBase.suffix } +ent-ChangelingFleshClothingSuitStorage = changeling flesh gas tank + .desc = { ent-ChangelingFleshClothingBase.desc } + .suffix = { ent-ChangelingFleshClothingBase.suffix } diff --git a/Resources/Locale/ru-RU/ss14-ru/prototypes/entities/mobs/player/changeling.ftl b/Resources/Locale/ru-RU/ss14-ru/prototypes/entities/mobs/player/changeling.ftl index d84f928e20..240dfc00b7 100644 --- a/Resources/Locale/ru-RU/ss14-ru/prototypes/entities/mobs/player/changeling.ftl +++ b/Resources/Locale/ru-RU/ss14-ru/prototypes/entities/mobs/player/changeling.ftl @@ -1,3 +1,5 @@ ent-MobLing = Урист МакКрад .desc = { ent-MobHuman.desc } .suffix = Неантаг +ent-ChangelingFleshClothingAbilityStoreDummy = { "" } + .desc = { "" } diff --git a/Resources/Locale/ru-RU/ss14-ru/prototypes/entities/mobs/player/dragon.ftl b/Resources/Locale/ru-RU/ss14-ru/prototypes/entities/mobs/player/dragon.ftl index 9b70487b31..7c6ed1f493 100644 --- a/Resources/Locale/ru-RU/ss14-ru/prototypes/entities/mobs/player/dragon.ftl +++ b/Resources/Locale/ru-RU/ss14-ru/prototypes/entities/mobs/player/dragon.ftl @@ -14,3 +14,5 @@ ent-ActionDevour = [color=red]Поглотить[/color] .desc = Попытаться разрушить конструкцию своими челюстями или проглотить существо. ent-ActionDragonsBreath = [color=orange]Дыхание дракона[/color] .desc = Извергайте пламя на всех, кто поимеет глупость напасть на вас! +ent-BloodSmoke = smoke + .desc = { ent-Smoke.desc } diff --git a/Resources/Locale/ru-RU/ss14-ru/prototypes/entities/objects/devices/travel_camera.ftl b/Resources/Locale/ru-RU/ss14-ru/prototypes/entities/objects/devices/travel_camera.ftl index 8e50c7f2b7..2782a68899 100644 --- a/Resources/Locale/ru-RU/ss14-ru/prototypes/entities/objects/devices/travel_camera.ftl +++ b/Resources/Locale/ru-RU/ss14-ru/prototypes/entities/objects/devices/travel_camera.ftl @@ -1,10 +1,18 @@ ent-TravelCamera = фотоаппарат для путешествий .desc = Одна картинка стоит тысячи слов. В комплекте сверхяркая вспышка и встроенная перезаряжаемая фотопленка. ent-BasePhotograph = фотография + .desc = { ent-BasePaper.desc } ent-PhotographBlack = { ent-BasePhotograph } + .desc = { ent-BasePhotograph.desc } ent-PhotographRed = { ent-BasePhotograph } + .desc = { ent-BasePhotograph.desc } ent-PhotographBlue = { ent-BasePhotograph } + .desc = { ent-BasePhotograph.desc } ent-PhotographGreen = { ent-BasePhotograph } + .desc = { ent-BasePhotograph.desc } ent-PhotographYellow = { ent-BasePhotograph } + .desc = { ent-BasePhotograph.desc } ent-PhotographPurple = { ent-BasePhotograph } + .desc = { ent-BasePhotograph.desc } ent-PhotographRainbow = { ent-BasePhotograph } + .desc = { ent-BasePhotograph.desc } diff --git a/Resources/Locale/ru-RU/ss14-ru/prototypes/entities/statuseffects/body.ftl b/Resources/Locale/ru-RU/ss14-ru/prototypes/entities/statuseffects/body.ftl index 529d10fea5..87402a8220 100644 --- a/Resources/Locale/ru-RU/ss14-ru/prototypes/entities/statuseffects/body.ftl +++ b/Resources/Locale/ru-RU/ss14-ru/prototypes/entities/statuseffects/body.ftl @@ -4,19 +4,21 @@ ent-BloodstreamStatusEffectDebuff = { ent-BloodstreamStatusEffectBase } .desc = { ent-BloodstreamStatusEffectBase.desc } ent-StatusEffectBloodloss = кровопотеря .desc = { ent-BloodstreamStatusEffectDebuff.desc } -ent-PainNumbnessTraitStatusEffect = { ent-MobStatusEffectBase } +ent-PainNumbnessStatusEffectBase = { ent-MobStatusEffectBase } .desc = { ent-MobStatusEffectBase.desc } -ent-StatusEffectHemophiliaTrait = { ent-BloodstreamStatusEffectBase } - .desc = { ent-BloodstreamStatusEffectBase.desc } ent-StatusEffectAnticoagulant = разжиженная кровь .desc = { ent-BloodstreamStatusEffectDebuff.desc } ent-StatusEffectHemorrhage = кровоизлияние .desc = { ent-BloodstreamStatusEffectDebuff.desc } ent-StatusEffectPainNumbness = невосприимчивость к боли - .desc = { ent-PainNumbnessTraitStatusEffect.desc } + .desc = { ent-PainNumbnessStatusEffectBase.desc } ent-StaminaModifierStatusEffect = { ent-MobStatusEffectBase } .desc = { ent-MobStatusEffectBase.desc } ent-StatusEffectDesoxyStamina = 2x макс. выносливость .desc = { ent-StaminaModifierStatusEffect.desc } ent-StatusEffectStimulantsStamina = 1.5x макс. выносливость .desc = { ent-StaminaModifierStatusEffect.desc } +ent-PainNumbnessTraitStatusEffect = { ent-MobStatusEffectBase } + .desc = { ent-MobStatusEffectBase.desc } +ent-StatusEffectHemophiliaTrait = { ent-BloodstreamStatusEffectBase } + .desc = { ent-BloodstreamStatusEffectBase.desc } diff --git a/Resources/Locale/ru-RU/ss14-ru/prototypes/entities/statuseffects/damage.ftl b/Resources/Locale/ru-RU/ss14-ru/prototypes/entities/statuseffects/damage.ftl index b24c69d75d..cb651ae5e2 100644 --- a/Resources/Locale/ru-RU/ss14-ru/prototypes/entities/statuseffects/damage.ftl +++ b/Resources/Locale/ru-RU/ss14-ru/prototypes/entities/statuseffects/damage.ftl @@ -1 +1,4 @@ +ent-StatusEffectDamageModifierBase = { ent-StatusEffectBase } + .desc = Status effect for modifying incoming sources of damage. You shouldn't be seeing this. ent-StatusEffectRadiationProtection = защита от радиации + .desc = { ent-StatusEffectDamageModifierBase.desc } diff --git a/Resources/Locale/ru-RU/ss14-ru/prototypes/entities/statuseffects/traits.ftl b/Resources/Locale/ru-RU/ss14-ru/prototypes/entities/statuseffects/traits.ftl new file mode 100644 index 0000000000..1307783462 --- /dev/null +++ b/Resources/Locale/ru-RU/ss14-ru/prototypes/entities/statuseffects/traits.ftl @@ -0,0 +1,6 @@ +ent-TraitStatusEffectBase = { ent-StatusEffectBase } + .desc = { ent-StatusEffectBase.desc } +ent-TraitStatusEffectHemophilia = { ent-BloodstreamStatusEffectBase } + .desc = { ent-BloodstreamStatusEffectBase.desc } +ent-TraitStatusEffectPainNumbness = pain numbness + .desc = { ent-PainNumbnessStatusEffectBase.desc } diff --git a/Resources/Locale/ru-RU/ss14-ru/prototypes/entities/structures/storage/canisters/gas_canisters.ftl b/Resources/Locale/ru-RU/ss14-ru/prototypes/entities/structures/storage/canisters/gas_canisters.ftl index 9a98d7a8b6..f290cebd8a 100644 --- a/Resources/Locale/ru-RU/ss14-ru/prototypes/entities/structures/storage/canisters/gas_canisters.ftl +++ b/Resources/Locale/ru-RU/ss14-ru/prototypes/entities/structures/storage/canisters/gas_canisters.ftl @@ -28,6 +28,9 @@ ent-NitrousOxideCanister = канистра оксида азота .desc = Канистра, в которой может содержаться газ любого вида. В этой, предположительно, содержится оксид азота. Можно прикрепить к порту коннектора с помощью гаечного ключа. ent-FrezonCanister = канистра фрезона .desc = Хладагент с лёгкими галлюциногенными свойствами. Развлекайтесь. +ent-MaxCapCanister = max cap in a can + .desc = { ent-GasCanister.desc } + .suffix = DEBUG, Max Cap ent-GasCanisterBrokenBase = разбитая канистра для газа .desc = Разбитая канистра для газа. Не совсем бесполезна, так как может быть разобрана для получения высококачественных материалов. ent-StorageCanisterBroken = { ent-GasCanisterBrokenBase } diff --git a/Resources/Locale/ru-RU/ss14-ru/prototypes/gamerules/meteorswarms.ftl b/Resources/Locale/ru-RU/ss14-ru/prototypes/gamerules/meteorswarms.ftl index 4bbd1454f4..c4aa0ec376 100644 --- a/Resources/Locale/ru-RU/ss14-ru/prototypes/gamerules/meteorswarms.ftl +++ b/Resources/Locale/ru-RU/ss14-ru/prototypes/gamerules/meteorswarms.ftl @@ -4,6 +4,30 @@ ent-MeteorSwarmMildScheduler = { ent-BaseGameRule } .desc = { ent-BaseGameRule.desc } ent-KesslerSyndromeScheduler = { ent-BaseGameRule } .desc = { ent-BaseGameRule.desc } +ent-MeteorSwarm = { ent-BaseGameRule } + .desc = { ent-BaseGameRule.desc } +ent-SpaceDustMinor = { ent-MeteorSwarm } + .desc = { ent-MeteorSwarm.desc } +ent-SpaceDustMajor = { ent-MeteorSwarm } + .desc = { ent-MeteorSwarm.desc } +ent-MeteorSwarmSmall = { ent-MeteorSwarm } + .desc = { ent-MeteorSwarm.desc } +ent-MeteorSwarmMedium = { ent-MeteorSwarm } + .desc = { ent-MeteorSwarm.desc } +ent-MeteorSwarmLarge = { ent-MeteorSwarm } + .desc = { ent-MeteorSwarm.desc } +ent-UristSwarm = { ent-MeteorSwarm } + .desc = { ent-MeteorSwarm.desc } +ent-ImmovableRodSpawn = { ent-BaseGameRule } + .desc = { ent-BaseGameRule.desc } +ent-CowSwarm = { ent-MeteorSwarm } + .desc = { ent-MeteorSwarm.desc } +ent-ClownSwarm = { ent-MeteorSwarm } + .desc = { ent-MeteorSwarm.desc } +ent-PotatoSwarm = { ent-MeteorSwarm } + .desc = { ent-MeteorSwarm.desc } +ent-FunSwarm = { ent-MeteorSwarm } + .desc = { ent-MeteorSwarm.desc } ent-GameRuleMeteorSwarm = { ent-BaseGameRule } .desc = { ent-BaseGameRule.desc } ent-GameRuleSpaceDustMinor = { ent-GameRuleMeteorSwarm } @@ -18,8 +42,6 @@ ent-GameRuleMeteorSwarmLarge = { ent-GameRuleMeteorSwarm } .desc = { ent-GameRuleMeteorSwarm.desc } ent-GameRuleUristSwarm = { ent-GameRuleMeteorSwarm } .desc = { ent-GameRuleMeteorSwarm.desc } -ent-ImmovableRodSpawn = { ent-BaseGameRule } - .desc = { ent-BaseGameRule.desc } ent-GameRuleCowSwarm = { ent-GameRuleMeteorSwarm } .desc = { ent-GameRuleMeteorSwarm.desc } ent-GameRuleClownSwarm = { ent-GameRuleMeteorSwarm } diff --git a/Resources/Locale/ru-RU/ss14-ru/prototypes/store/presets.ftl b/Resources/Locale/ru-RU/ss14-ru/prototypes/store/presets.ftl index eea27de770..36fee3ee3f 100644 --- a/Resources/Locale/ru-RU/ss14-ru/prototypes/store/presets.ftl +++ b/Resources/Locale/ru-RU/ss14-ru/prototypes/store/presets.ftl @@ -4,3 +4,5 @@ ent-StorePresetSpellbook = { "" } .desc = { "" } ent-StorePresetChangeling = { "" } .desc = { "" } +ent-StorePresetRemoteUplink = { ent-StorePresetUplink } + .desc = { ent-StorePresetUplink.desc } diff --git a/Resources/Prototypes/Corvax/Body/Species/ipc.yml b/Resources/Prototypes/Corvax/Body/Species/ipc.yml index f7208b4c65..696174b3bd 100644 --- a/Resources/Prototypes/Corvax/Body/Species/ipc.yml +++ b/Resources/Prototypes/Corvax/Body/Species/ipc.yml @@ -147,7 +147,7 @@ messagePerceivedByOthers: hugging-success-generic-others - type: BodyEmotes soundsId: IpcEmotes - ############################# это работает? +### - type: ItemTogglePointLight - type: ToggleableVisuals spriteLayer: light @@ -178,7 +178,7 @@ startValue: 0.1 endValue: 2.0 isLooped: true - ############################# +### - type: TypingIndicator proto: robot - type: PowerCellSlot @@ -232,7 +232,6 @@ Critical: BorgCrit Dead: BorgDead - type: Fingerprint - - type: Blindable - type: Tag tags: - CanPilot @@ -240,7 +239,7 @@ - DoorBumpOpener - AnomalyHost - Ipc - ############ хз зачем было +### - type: Temperature currentTemperature: 310.15 specificHeat: 42 diff --git a/Resources/Prototypes/Corvax/Catalog/Jukebox/Standard.yml b/Resources/Prototypes/Corvax/Catalog/Jukebox/Standard.yml new file mode 100644 index 0000000000..387be3e3b5 --- /dev/null +++ b/Resources/Prototypes/Corvax/Catalog/Jukebox/Standard.yml @@ -0,0 +1,23 @@ +- type: jukebox + id: space_asshole + name: Chris Remo - Space Asshole + path: + path: /Audio/Corvax/Jukebox/space_asshole.ogg + +- type: jukebox + id: Singuloose + name: Janis Schiedková - Singuloose + path: + path: /Audio/Corvax/Jukebox/singuloose.ogg + +- type: jukebox + id: pwmur + name: Sunbeamstress - phoron will make us rich + path: + path: /Audio/Corvax/Jukebox/pwmur.ogg + +- type: jukebox + id: nodecision + name: cobber3 - No decision + path: + path: /Audio/Corvax/Lobby/nodecision.ogg diff --git a/Resources/Prototypes/Entities/Mobs/Player/clone.yml b/Resources/Prototypes/Entities/Mobs/Player/clone.yml index 279bc5b9ca..0f87642cd9 100644 --- a/Resources/Prototypes/Entities/Mobs/Player/clone.yml +++ b/Resources/Prototypes/Entities/Mobs/Player/clone.yml @@ -61,6 +61,7 @@ - SouthernAccent - SpanishAccent - StutteringAccent + - GrowlingAccent # Corvax - TTS # Corvax-TTS eventComponents: - Puller diff --git a/Resources/Prototypes/SoundCollections/lobby.yml b/Resources/Prototypes/SoundCollections/lobby.yml index 35ba0cf8a3..60335774d8 100644 --- a/Resources/Prototypes/SoundCollections/lobby.yml +++ b/Resources/Prototypes/SoundCollections/lobby.yml @@ -15,7 +15,6 @@ - /Audio/Lobby/pwmur.ogg - /Audio/Lobby/lasers_rip_apart_the_bulkhead.ogg - /Audio/Lobby/every_light_is_blinking_at_once.ogg - - /Audio/Corvax/Lobby/title2.ogg # Corvax-LobbyMusic - /Audio/Lobby/atomicamnesiammx.ogg - /Audio/Corvax/Lobby/service.ogg # Corvax-LobbyMusic - /Audio/Corvax/Lobby/nodecision.ogg # Corvax-LobbyMusic