diff --git a/Content.Client/Corvax/TTS/Commands/TtsQueueResetCommand.cs b/Content.Client/Corvax/TTS/Commands/TtsQueueResetCommand.cs index d7a57a610bc34d..9cf619136ea6c0 100644 --- a/Content.Client/Corvax/TTS/Commands/TtsQueueResetCommand.cs +++ b/Content.Client/Corvax/TTS/Commands/TtsQueueResetCommand.cs @@ -14,7 +14,7 @@ public sealed class TtsQueueResetCommand : IConsoleCommand public void Execute(IConsoleShell shell, string argStr, string[] args) { var ttsSys = _entitySystemManager.GetEntitySystem(); - ttsSys.EndStreams(); + //ttsSys.EndStreams(); shell.WriteLine("Local TTS queue has been reset."); } diff --git a/Content.Client/Corvax/TTS/HumanoidProfileEditor.TTS.cs b/Content.Client/Corvax/TTS/HumanoidProfileEditor.TTS.cs index 67c984f0223f01..f7bfedf845221c 100644 --- a/Content.Client/Corvax/TTS/HumanoidProfileEditor.TTS.cs +++ b/Content.Client/Corvax/TTS/HumanoidProfileEditor.TTS.cs @@ -9,7 +9,6 @@ namespace Content.Client.Preferences.UI; public sealed partial class HumanoidProfileEditor { - private TTSManager _ttsMgr = default!; private TTSSystem _ttsSys = default!; private List _voiceList = default!; private readonly List _sampleText = new() @@ -22,7 +21,6 @@ public sealed partial class HumanoidProfileEditor private void InitializeVoice() { - _ttsMgr = IoCManager.Resolve(); _ttsSys = _entMan.System(); _voiceList = _prototypeManager .EnumeratePrototypes() @@ -80,7 +78,6 @@ private void PlayTTS() if (_previewDummy is null || Profile is null) return; - _ttsSys.StopAllStreams(); - _ttsMgr.RequestTTS(_previewDummy.Value, _random.Pick(_sampleText), Profile.Voice); + _ttsSys.RequestGlobalTTS(_random.Pick(_sampleText), Profile.Voice); } } diff --git a/Content.Client/Corvax/TTS/TTSManager.cs b/Content.Client/Corvax/TTS/TTSManager.cs deleted file mode 100644 index d129495dcee7c2..00000000000000 --- a/Content.Client/Corvax/TTS/TTSManager.cs +++ /dev/null @@ -1,22 +0,0 @@ -using Content.Shared.Corvax.TTS; -using Robust.Shared.Network; - -namespace Content.Client.Corvax.TTS; - -// ReSharper disable once InconsistentNaming -public sealed class TTSManager -{ - [Dependency] private readonly IClientNetManager _netMgr = default!; - - public void Initialize() - { - _netMgr.RegisterNetMessage(); - } - - // ReSharper disable once InconsistentNaming - public void RequestTTS(EntityUid uid, string text, string voiceId) - { - var msg = new MsgRequestTTS() { Text = text, Uid = uid, VoiceId = voiceId }; - _netMgr.ClientSendMessage(msg); - } -} diff --git a/Content.Client/Corvax/TTS/TTSSystem.cs b/Content.Client/Corvax/TTS/TTSSystem.cs index df21f792be8b89..a053d016fe3048 100644 --- a/Content.Client/Corvax/TTS/TTSSystem.cs +++ b/Content.Client/Corvax/TTS/TTSSystem.cs @@ -1,15 +1,12 @@ -using System.Diagnostics.CodeAnalysis; -using System.IO; -using System.Linq; using Content.Shared.Corvax.CCCVars; using Content.Shared.Corvax.TTS; using Content.Shared.Corvax.TTS.Commands; -using Content.Shared.Physics; -using Robust.Client.Graphics; +using Robust.Client.ResourceManagement; +using Robust.Shared.Audio; using Robust.Shared.Configuration; -using Robust.Shared.Map; -using Robust.Shared.Physics; -using Robust.Shared.Physics.Systems; +using Robust.Shared.ContentPack; +using Robust.Shared.Player; +using Robust.Shared.Utility; namespace Content.Client.Corvax.TTS; @@ -19,24 +16,23 @@ namespace Content.Client.Corvax.TTS; // ReSharper disable once InconsistentNaming public sealed class TTSSystem : EntitySystem { - [Dependency] private readonly IClydeAudio _clyde = default!; - [Dependency] private readonly IEntityManager _entity = default!; - [Dependency] private readonly IEyeManager _eye = default!; [Dependency] private readonly IConfigurationManager _cfg = default!; - [Dependency] private readonly SharedPhysicsSystem _broadPhase = default!; - [Dependency] private readonly SharedTransformSystem _transform = default!; + [Dependency] private readonly IResourceCache _resourceCache = default!; + [Dependency] private readonly SharedAudioSystem _audio = default!; private ISawmill _sawmill = default!; + private readonly MemoryContentRoot _contentRoot = new(); + private static readonly ResPath Prefix = ResPath.Root / "TTS"; + private float _volume = 0.0f; private float _radioVolume = 0.0f; - - private readonly HashSet _currentStreams = new(); - private readonly Dictionary> _entityQueues = new(); + private int _fileIdx = 0; public override void Initialize() { _sawmill = Logger.GetSawmill("tts"); + _resourceCache.AddRoot(Prefix, _contentRoot); _cfg.OnValueChanged(CCCVars.TTSVolume, OnTtsVolumeChanged, true); _cfg.OnValueChanged(CCCVars.TTSRadioVolume, OnTtsRadioVolumeChanged, true); SubscribeNetworkEvent(OnPlayTTS); @@ -48,58 +44,12 @@ public override void Shutdown() base.Shutdown(); _cfg.UnsubValueChanged(CCCVars.TTSVolume, OnTtsVolumeChanged); _cfg.UnsubValueChanged(CCCVars.TTSRadioVolume, OnTtsRadioVolumeChanged); - EndStreams(); + _contentRoot.Dispose(); } - // Little bit of duplication logic from AudioSystem - public override void FrameUpdate(float frameTime) + public void RequestGlobalTTS(string text, string voiceId) { - var streamToRemove = new HashSet(); - - var ourPos = _eye.CurrentEye.Position.Position; - foreach (var stream in _currentStreams) - { - var streamUid = GetEntity(stream.Uid); - if (!stream.Source.IsPlaying || - !_entity.TryGetComponent(streamUid, out var meta) || - Deleted(streamUid, meta) || - !_entity.TryGetComponent(streamUid, out var xform)) - { - stream.Source.Dispose(); - streamToRemove.Add(stream); - continue; - } - - var mapPos = xform.MapPosition; - if (mapPos.MapId != MapId.Nullspace) - { - if (!stream.Source.SetPosition(mapPos.Position)) - { - _sawmill.Warning("Can't set position for audio stream, stop stream."); - stream.Source.StopPlaying(); - } - } - - if (mapPos.MapId == _eye.CurrentMap) - { - var collisionMask = (int) CollisionGroup.Impassable; - var sourceRelative = ourPos - mapPos.Position; - var occlusion = 0f; - if (sourceRelative.Length() > 0) - { - occlusion = _broadPhase.IntersectRayPenetration(mapPos.MapId, - new CollisionRay(mapPos.Position, sourceRelative.Normalized(), collisionMask), - sourceRelative.Length(), streamUid); - } - stream.Source.SetOcclusion(occlusion); - } - } - - foreach (var audioStream in streamToRemove) - { - _currentStreams.Remove(audioStream); - ProcessEntityQueue(GetEntity(audioStream.Uid)); - } + RaiseNetworkEvent(new RequestGlobalTTSEvent(text, voiceId)); } private void OnTtsVolumeChanged(float volume) @@ -114,109 +64,31 @@ private void OnTtsRadioVolumeChanged(float volume) private void OnQueueResetRequest(TtsQueueResetMessage ev) { - EndStreams(); + //EndStreams(); _sawmill.Debug("TTS queue was cleared by request from the server."); } private void OnPlayTTS(PlayTTSEvent ev) { - var volume = (ev.IsRadio ? _radioVolume : _volume) * ev.VolumeModifier; - - if (!TryCreateAudioSource(ev.Data, volume, out var source)) - return; - - var stream = new AudioStream(ev.Uid, source); - AddEntityStreamToQueue(stream); - } + _sawmill.Debug($"Play TTS audio {ev.Data.Length} bytes from {ev.SourceUid} entity"); - public void StopAllStreams() - { - foreach (var stream in _currentStreams) - stream.Source.StopPlaying(); - } + var volume = (ev.IsRadio ? _radioVolume : _volume) * ev.VolumeModifier; - private bool TryCreateAudioSource(byte[] data, float volume, [NotNullWhen(true)] out IClydeAudioSource? source) - { - var dataStream = new MemoryStream(data) { Position = 0 }; - var audioStream = _clyde.LoadAudioOggVorbis(dataStream); - source = _clyde.CreateAudioSource(audioStream); - source?.SetVolume(volume); - return source != null; - } + var filePath = new ResPath($"{_fileIdx++}.ogg"); + _contentRoot.AddOrUpdateFile(filePath, ev.Data); - private void AddEntityStreamToQueue(AudioStream stream) - { - var uid = GetEntity(stream.Uid); - if (_entityQueues.TryGetValue(uid, out var queue)) + var audioParams = AudioParams.Default.WithVolume(volume); + var soundPath = new SoundPathSpecifier(Prefix / filePath, audioParams); + if (ev.SourceUid != null) { - queue.Enqueue(stream); + var sourceUid = GetEntity(ev.SourceUid.Value); + _audio.PlayEntity(soundPath, new EntityUid(), sourceUid); // recipient arg ignored on client } else { - _entityQueues.Add(uid, new Queue(new[] { stream })); - - if (!IsEntityCurrentlyPlayStream(stream.Uid)) - ProcessEntityQueue(uid); - } - } - - private bool IsEntityCurrentlyPlayStream(NetEntity uid) - { - return _currentStreams.Any(s => s.Uid == uid); - } - - private void ProcessEntityQueue(EntityUid uid) - { - if (TryTakeEntityStreamFromQueue(uid, out var stream)) - PlayEntity(stream); - } - - private bool TryTakeEntityStreamFromQueue(EntityUid uid, [NotNullWhen(true)] out AudioStream? stream) - { - if (_entityQueues.TryGetValue(uid, out var queue)) - { - stream = queue.Dequeue(); - if (queue.Count == 0) - _entityQueues.Remove(uid); - return true; + _audio.PlayGlobal(soundPath, Filter.Local(), false); } - stream = null; - return false; - } - - private void PlayEntity(AudioStream stream) - { - if (!_entity.TryGetComponent(GetEntity(stream.Uid), out var xform) || - !stream.Source.SetPosition(_transform.GetWorldPosition(xform))) - return; - - stream.Source.StartPlaying(); - _currentStreams.Add(stream); - } - - public void EndStreams() - { - foreach (var stream in _currentStreams) - { - stream.Source.StopPlaying(); - stream.Source.Dispose(); - } - - _currentStreams.Clear(); - _entityQueues.Clear(); - } - - // ReSharper disable once InconsistentNaming - private sealed class AudioStream - { - public NetEntity Uid { get; } - public IClydeAudioSource Source { get; } - - public AudioStream(NetEntity uid, IClydeAudioSource source) - { - Uid = uid; - Source = source; - } + _contentRoot.RemoveFile(filePath); } } diff --git a/Content.Client/Entry/EntryPoint.cs b/Content.Client/Entry/EntryPoint.cs index 65acdb2d06a094..1014beb666166a 100644 --- a/Content.Client/Entry/EntryPoint.cs +++ b/Content.Client/Entry/EntryPoint.cs @@ -73,7 +73,6 @@ public sealed class EntryPoint : GameClient [Dependency] private readonly ContentLocalizationManager _contentLoc = default!; [Dependency] private readonly SponsorsManager _sponsorsManager = default!; // Corvax-Sponsors [Dependency] private readonly JoinQueueManager _queueManager = default!; // Corvax-Queue - [Dependency] private readonly TTSManager _ttsManager = default!; // Corvax-TTS [Dependency] private readonly DiscordAuthManager _discordAuthManager = default!; // Corvax-DiscordAuth [Dependency] private readonly ContentReplayPlaybackManager _playbackMan = default!; [Dependency] private readonly IResourceManager _resourceManager = default!; @@ -174,7 +173,6 @@ public override void PostInit() _userInterfaceManager.SetDefaultTheme("SS14DefaultTheme"); _sponsorsManager.Initialize(); // Corvax-Sponsors _queueManager.Initialize(); // Corvax-Queue - _ttsManager.Initialize(); // Corvax-TTS _discordAuthManager.Initialize(); // Corvax-DiscordAuth _userInterfaceManager.SetActiveTheme(_configManager.GetCVar(CVars.InterfaceTheme)); _documentParsingManager.Initialize(); diff --git a/Content.Client/IoC/ClientContentIoC.cs b/Content.Client/IoC/ClientContentIoC.cs index aa0d3908ed6083..59d125a81db7cb 100644 --- a/Content.Client/IoC/ClientContentIoC.cs +++ b/Content.Client/IoC/ClientContentIoC.cs @@ -53,7 +53,6 @@ public static void Register() IoCManager.Register(); IoCManager.Register(); // Corvax-Sponsors IoCManager.Register(); // Corvax-Queue - IoCManager.Register(); // Corvax-TTS IoCManager.Register(); // Corvax-DiscordAuth IoCManager.Register(); IoCManager.Register(); diff --git a/Content.Server/Corvax/TTS/TTSSystem.cs b/Content.Server/Corvax/TTS/TTSSystem.cs index 2b66cfd27a245d..0332b54b23f955 100644 --- a/Content.Server/Corvax/TTS/TTSSystem.cs +++ b/Content.Server/Corvax/TTS/TTSSystem.cs @@ -4,9 +4,7 @@ using Content.Shared.Corvax.TTS; using Content.Shared.GameTicking; using Content.Shared.SS220.AnnounceTTS; -using Robust.Server.Player; using Robust.Shared.Configuration; -using Robust.Shared.Network; using Robust.Shared.Player; using Robust.Shared.Prototypes; @@ -17,8 +15,6 @@ public sealed partial class TTSSystem : EntitySystem { [Dependency] private readonly IConfigurationManager _cfg = default!; [Dependency] private readonly IPrototypeManager _prototypeManager = default!; - [Dependency] private readonly IServerNetManager _netMgr = default!; - [Dependency] private readonly IPlayerManager _playerManager = default!; [Dependency] private readonly TTSManager _ttsManager = default!; [Dependency] private readonly SharedTransformSystem _xforms = default!; @@ -40,7 +36,7 @@ public override void Initialize() SubscribeLocalEvent(OnAnnouncementSpoke); SubscribeLocalEvent(OnRoundRestartCleanup); - _netMgr.RegisterNetMessage(OnRequestTTS); + SubscribeNetworkEvent(OnRequestGlobalTTS); } private void OnRadioReceiveEvent(RadioSpokeEvent args) @@ -85,18 +81,18 @@ private void OnRoundRestartCleanup(RoundRestartCleanupEvent ev) _ttsManager.ResetCache(); } - private async void OnRequestTTS(MsgRequestTTS ev) + private async void OnRequestGlobalTTS(RequestGlobalTTSEvent ev, EntitySessionEventArgs args) { if (!_isEnabled || ev.Text.Length > MaxMessageChars || - !_playerManager.TryGetSessionByChannel(ev.MsgChannel, out var session) || !_prototypeManager.TryIndex(ev.VoiceId, out var protoVoice)) return; var soundData = await GenerateTTS(ev.Text, protoVoice.Speaker); - if (soundData is null) return; + if (soundData is null) + return; - RaiseNetworkEvent(new PlayTTSEvent(GetNetEntity(ev.Uid), soundData, false), Filter.SinglePlayer(session)); + RaiseNetworkEvent(new PlayTTSEvent(soundData), Filter.SinglePlayer(args.SenderSession)); } private async void OnEntitySpoke(EntityUid uid, TTSComponent component, EntitySpokeEvent args) @@ -127,7 +123,7 @@ private async void HandleSay(EntityUid uid, string message, string speaker) { var soundData = await GenerateTTS(message, speaker); if (soundData is null) return; - RaiseNetworkEvent(new PlayTTSEvent(GetNetEntity(uid), soundData, false), Filter.Pvs(uid)); + RaiseNetworkEvent(new PlayTTSEvent(soundData, GetNetEntity(uid)), Filter.Pvs(uid)); } private async void HandleWhisper(EntityUid uid, string message, string speaker, bool isRadio) @@ -154,8 +150,8 @@ private async void HandleWhisper(EntityUid uid, string message, string speaker, continue; var ttsEvent = new PlayTTSEvent( - GetNetEntity(uid), soundData, + GetNetEntity(uid), false, WhisperVoiceVolumeModifier * (1f - distance / WhisperVoiceRange)); RaiseNetworkEvent(ttsEvent, session); @@ -170,7 +166,7 @@ private async void HandleRadio(EntityUid[] uids, string message, string speaker) foreach (var uid in uids) { - RaiseNetworkEvent(new PlayTTSEvent(GetNetEntity(uid), soundData, true), Filter.Entities(uid)); + RaiseNetworkEvent(new PlayTTSEvent(soundData, GetNetEntity(uid), true), Filter.Entities(uid)); } } diff --git a/Content.Shared/Corvax/TTS/MsgRequestTTS.cs b/Content.Shared/Corvax/TTS/MsgRequestTTS.cs deleted file mode 100644 index 485de198002ebe..00000000000000 --- a/Content.Shared/Corvax/TTS/MsgRequestTTS.cs +++ /dev/null @@ -1,29 +0,0 @@ -using Lidgren.Network; -using Robust.Shared.Network; -using Robust.Shared.Serialization; - -namespace Content.Shared.Corvax.TTS; - -// ReSharper disable once InconsistentNaming -public sealed class MsgRequestTTS : NetMessage -{ - public override MsgGroups MsgGroup => MsgGroups.Command; - - public EntityUid Uid { get; set; } = EntityUid.Invalid; - public string Text { get; set; } = String.Empty; - public string VoiceId { get; set; } = String.Empty; - - public override void ReadFromBuffer(NetIncomingMessage buffer, IRobustSerializer serializer) - { - Uid = new EntityUid(buffer.ReadInt32()); - Text = buffer.ReadString(); - VoiceId = buffer.ReadString(); - } - - public override void WriteToBuffer(NetOutgoingMessage buffer, IRobustSerializer serializer) - { - buffer.Write((int)Uid); - buffer.Write(Text); - buffer.Write(VoiceId); - } -} diff --git a/Content.Shared/Corvax/TTS/PlayTTSEvent.cs b/Content.Shared/Corvax/TTS/PlayTTSEvent.cs index fb92aaf2dd72f6..18bee32bdfaf15 100644 --- a/Content.Shared/Corvax/TTS/PlayTTSEvent.cs +++ b/Content.Shared/Corvax/TTS/PlayTTSEvent.cs @@ -6,15 +6,15 @@ namespace Content.Shared.Corvax.TTS; // ReSharper disable once InconsistentNaming public sealed class PlayTTSEvent : EntityEventArgs { - public NetEntity Uid { get; } public byte[] Data { get; } + public NetEntity? SourceUid { get; } public bool IsRadio { get; } public float VolumeModifier { get; set; } - public PlayTTSEvent(NetEntity uid, byte[] data, bool isRadio, float volumeModifier = 1f) + public PlayTTSEvent(byte[] data, NetEntity? sourceUid = null, bool isRadio = false, float volumeModifier = 1f) { - Uid = uid; Data = data; + SourceUid = sourceUid; IsRadio = isRadio; VolumeModifier = volumeModifier; } diff --git a/Content.Shared/Corvax/TTS/RequestGlobalTTSEvent.cs b/Content.Shared/Corvax/TTS/RequestGlobalTTSEvent.cs new file mode 100644 index 00000000000000..48a1ca5ca29d7a --- /dev/null +++ b/Content.Shared/Corvax/TTS/RequestGlobalTTSEvent.cs @@ -0,0 +1,17 @@ +using Robust.Shared.Serialization; + +namespace Content.Shared.Corvax.TTS; + +// ReSharper disable once InconsistentNaming +[Serializable, NetSerializable] +public sealed class RequestGlobalTTSEvent : EntityEventArgs +{ + public string Text { get; } + public string VoiceId { get; } + + public RequestGlobalTTSEvent(string text, string voiceId) + { + Text = text; + VoiceId = voiceId; + } +} diff --git a/Resources/Locale/ru-RU/administration/managers/admin-manager.ftl b/Resources/Locale/ru-RU/administration/managers/admin-manager.ftl index 04c2ce0e080588..f85203d52d2594 100644 --- a/Resources/Locale/ru-RU/administration/managers/admin-manager.ftl +++ b/Resources/Locale/ru-RU/administration/managers/admin-manager.ftl @@ -1,9 +1,9 @@ -admin-manager-self-de-admin-message = { $exAdminName } убирает админ права с себя. -admin-manager-self-re-admin-message = { $newAdminName } возвращает админ права себе. +admin-manager-self-de-admin-message = { $exAdminName } снимает с себя права админа. +admin-manager-self-re-admin-message = { $newAdminName } возвращает себе права админа. admin-manager-became-normal-player-message = Теперь вы обычный игрок. admin-manager-became-admin-message = Теперь вы администратор. admin-manager-no-longer-admin-message = Вы больше не администратор. admin-manager-admin-permissions-updated-message = Ваши права администратора были обновлены. admin-manager-admin-logout-message = Админ вышел: { $name } -admin-manager-admin-login-message = Админ зашел: { $name } +admin-manager-admin-login-message = Админ зашёл: { $name } admin-manager-admin-data-host-title = Хост diff --git a/Resources/Locale/ru-RU/chemistry/components/solution-transfer-component.ftl b/Resources/Locale/ru-RU/chemistry/components/solution-transfer-component.ftl index 8697ee96ec1165..92241d736713c5 100644 --- a/Resources/Locale/ru-RU/chemistry/components/solution-transfer-component.ftl +++ b/Resources/Locale/ru-RU/chemistry/components/solution-transfer-component.ftl @@ -1,8 +1,8 @@ ### Solution transfer component -comp-solution-transfer-fill-normal = Вы перемещаете { $amount }ед. из { $owner } в { $target }. -comp-solution-transfer-fill-fully = Вы наполняете { $target } до краёв, переместив { $amount }ед. из { $owner }. -comp-solution-transfer-transfer-solution = Вы перемещаете { $amount }ед. в { $target }. +comp-solution-transfer-fill-normal = Вы перемещаете { $amount } ед. из { $owner } в { $target }. +comp-solution-transfer-fill-fully = Вы наполняете { $target } до краёв, переместив { $amount } ед. из { $owner }. +comp-solution-transfer-transfer-solution = Вы перемещаете { $amount } ед. в { $target }. ## Displayed when trying to transfer to a solution, but either the giver is empty or the taker is full @@ -12,8 +12,8 @@ comp-solution-transfer-is-full = { $target } полон! ## Displayed in change transfer amount verb's name comp-solution-transfer-verb-custom-amount = Своё кол-во -comp-solution-transfer-verb-amount = { $amount }ед. +comp-solution-transfer-verb-amount = { $amount } ед. ## Displayed after you successfully change a solution's amount using the BUI -comp-solution-transfer-set-amount = Перемещаемое количество установлено на { $amount }ед. +comp-solution-transfer-set-amount = Перемещаемое количество установлено на { $amount } ед. diff --git a/Resources/Locale/ru-RU/flavors/flavor-profiles.ftl b/Resources/Locale/ru-RU/flavors/flavor-profiles.ftl index 60da8442010129..005100bfab0ba2 100644 --- a/Resources/Locale/ru-RU/flavors/flavor-profiles.ftl +++ b/Resources/Locale/ru-RU/flavors/flavor-profiles.ftl @@ -153,6 +153,7 @@ flavor-complex-parents = как чьи-то родители flavor-complex-plastic = как пластик flavor-complex-glue = как клей flavor-complex-spaceshroom-cooked = как космический умами +flavor-complex-lost-friendship = как прошедшая дружба ## Generic alcohol/soda taste. This should be replaced with an actual flavor profile. diff --git a/Resources/Locale/ru-RU/fluids/components/spillable-component.ftl b/Resources/Locale/ru-RU/fluids/components/spillable-component.ftl index 60ee0c64ea53da..46a93cc9659ec3 100644 --- a/Resources/Locale/ru-RU/fluids/components/spillable-component.ftl +++ b/Resources/Locale/ru-RU/fluids/components/spillable-component.ftl @@ -1,9 +1,9 @@ ## SpillTargetVerb -spill-target-verb-get-data-text = Выплеснуть содержимое +spill-target-verb-get-data-text = Выплеснуть spill-target-verb-activate-cannot-drain-message = Вы не можете ничего выплеснуть из { $owner }! spill-target-verb-activate-is-empty-message = В { $owner } пусто! -spill-melee-hit-attacker = Вы выплёскиваете { $amount }ед. содержимого { $spillable } на { $target }! +spill-melee-hit-attacker = Вы выплёскиваете { $amount } ед. содержимого { $spillable } на { $target }! spill-melee-hit-others = { CAPITALIZE($attacker) } выплёскивает содержимое { $spillable } на { $target }! spill-land-spilled-on-other = { CAPITALIZE($spillable) } выплёскивает своё содержимое на { $target }! spill-examine-is-spillable = Этот контейнер можно выплеснуть. diff --git a/Resources/Locale/ru-RU/guidebook/chemistry/core.ftl b/Resources/Locale/ru-RU/guidebook/chemistry/core.ftl index a1cf2459718552..f22fa78af8f09f 100644 --- a/Resources/Locale/ru-RU/guidebook/chemistry/core.ftl +++ b/Resources/Locale/ru-RU/guidebook/chemistry/core.ftl @@ -10,6 +10,7 @@ guidebook-reagent-name = [bold][color={ $color }]{ CAPITALIZE($name) }[/color][/ guidebook-reagent-recipes-header = Рецепт guidebook-reagent-recipes-reagent-display = [bold]{ $reagent }[/bold] \[{ $ratio }\] guidebook-reagent-recipes-mix = Смешайте +guidebook-reagent-recipes-mix-and-heat = Смешайте при температуре выше { $temperature }К guidebook-reagent-effects-header = Эффекты guidebook-reagent-effects-metabolism-group-rate = [bold]{ $group }[/bold] [color=gray]({ $rate } единиц в секунду)[/color] guidebook-reagent-physical-description = На вид вещество { $description }. diff --git a/Resources/Locale/ru-RU/interaction/interaction-popup-component.ftl b/Resources/Locale/ru-RU/interaction/interaction-popup-component.ftl index 49207eb43120ba..51386d9af6307a 100644 --- a/Resources/Locale/ru-RU/interaction/interaction-popup-component.ftl +++ b/Resources/Locale/ru-RU/interaction/interaction-popup-component.ftl @@ -5,6 +5,7 @@ petting-success-generic = Вы гладите { $target } по голове. petting-success-soft-floofy = Вы гладите { $target } по { POSS-ADJ($target) } мягкой пушистой голове. +petting-success-bingus = Вы гладите { $target } по { POSS-ADJ($target) } маленькой морщинистой голове. petting-success-bird = Вы гладите { $target } по { POSS-ADJ($target) } милой пернатой голове. petting-success-cat = Вы гладите { $target } по { POSS-ADJ($target) } маленькой пушистой голове. petting-success-corrupted-corgi = В порыве самонадеянности, вы гладите { $target } по { POSS-ADJ($target) } маленькой проклятой голове. diff --git a/Resources/Locale/ru-RU/markings/reptilian.ftl b/Resources/Locale/ru-RU/markings/reptilian.ftl index 81c4f8532897d8..a610983ebdd17d 100644 --- a/Resources/Locale/ru-RU/markings/reptilian.ftl +++ b/Resources/Locale/ru-RU/markings/reptilian.ftl @@ -48,3 +48,11 @@ marking-LizardFrillsAxolotl-frills_axolotl = Унатх, воротник (Ак marking-LizardFrillsAxolotl = Унатх, воротник (Аксолотль) marking-LizardFrillsHood-frills_hood = Унатх, воротник (Капюшон) marking-LizardFrillsHood = Унатх, воротник (Капюшон) +marking-LizardHornsArgali-horns_argali = Унатх, рожки (Аргали) +marking-LizardHornsArgali = Унатх, рожки (Аргали) +marking-LizardHornsAyrshire-horns_ayrshire = Унатх, рожки (Айршир) +marking-LizardHornsAyrshire = Унатх, рожки (Айршир) +marking-LizardHornsMyrsore-horns_myrsore = Унатх, рожки (Мирзора) +marking-LizardHornsMyrsore = Унатх, рожки (Мирзора) +marking-LizardHornsBighorn-horns_bighorn = Унатх, рожки (Бигхорн) +marking-LizardHornsBighorn = Унатх, рожки (Бигхорн) diff --git a/Resources/Locale/ru-RU/preferences/ui/humanoid-profile-editor.ftl b/Resources/Locale/ru-RU/preferences/ui/humanoid-profile-editor.ftl index 22033c8360bc10..803478e2cdf049 100644 --- a/Resources/Locale/ru-RU/preferences/ui/humanoid-profile-editor.ftl +++ b/Resources/Locale/ru-RU/preferences/ui/humanoid-profile-editor.ftl @@ -1,4 +1,4 @@ -humanoid-profile-editor-randomize-everything-button = Сгенерировать случайного +humanoid-profile-editor-randomize-everything-button = Случайный персонаж humanoid-profile-editor-name-label = Имя: humanoid-profile-editor-name-random-button = Сгенерировать humanoid-profile-editor-appearance-tab = Внешность diff --git a/Resources/Locale/ru-RU/prototypes/catalog/fills/crates/vending-crates.ftl b/Resources/Locale/ru-RU/prototypes/catalog/fills/crates/vending-crates.ftl index dd5577ef7b5527..76962e83d06551 100644 --- a/Resources/Locale/ru-RU/prototypes/catalog/fills/crates/vending-crates.ftl +++ b/Resources/Locale/ru-RU/prototypes/catalog/fills/crates/vending-crates.ftl @@ -2,8 +2,8 @@ ent-CrateVendingMachineRestockBoozeFilled = ящик пополнения Алк .desc = Содержит набор пополнения торгомата АлкоМат. ent-CrateVendingMachineRestockClothesFilled = ящик пополнения одежды .desc = Содержит несколько наборов пополнения торгоматов, ОдеждоМата и ТеатроШкафа. -ent-CrateVendingMachineRestockDinnerwareFilled = ящик пополнения Кухонно-пластальная поварская утварь - .desc = Содержит набор пополнения торгомата Кухонно-пластальная поварская утварь. +ent-CrateVendingMachineRestockDinnerwareFilled = ящик пополнения ПосудоМат + .desc = Содержит набор пополнения торгомата ПосудоМат. ent-CrateVendingMachineRestockEngineeringFilled = ящик пополнения ИнжеМат .desc = Содержит набор пополнения торгомата ИнжеМат. Он же может пополнить торгомат ТвоИнструменты. ent-CrateVendingMachineRestockGamesFilled = ящик пополнения Безобидные развлечения diff --git a/Resources/Locale/ru-RU/ss14-ru/prototypes/catalog/fills/crates/vending.ftl b/Resources/Locale/ru-RU/ss14-ru/prototypes/catalog/fills/crates/vending.ftl index 831924067947ec..1603c812bb350e 100644 --- a/Resources/Locale/ru-RU/ss14-ru/prototypes/catalog/fills/crates/vending.ftl +++ b/Resources/Locale/ru-RU/ss14-ru/prototypes/catalog/fills/crates/vending.ftl @@ -2,8 +2,8 @@ ent-CrateVendingMachineRestockBoozeFilled = ящик пополнения Алк .desc = Содержит набор пополнения торгомата АлкоМат. ent-CrateVendingMachineRestockClothesFilled = ящик пополнения одежды .desc = Содержит несколько наборов пополнения торгоматов, ОдеждоМата и ТеатроШкафа. -ent-CrateVendingMachineRestockDinnerwareFilled = ящик пополнения Кухонно-пластальная поварская утварь - .desc = Содержит набор пополнения торгомата Кухонно-пластальная поварская утварь. +ent-CrateVendingMachineRestockDinnerwareFilled = ящик пополнения ПосудоМат + .desc = Содержит набор пополнения торгомата ПосудоМат. ent-CrateVendingMachineRestockEngineeringFilled = ящик пополнения ИнжеМат .desc = Содержит набор пополнения торгомата ИнжеМат. Он же может пополнить торгомат ТвоИнструменты. ent-CrateVendingMachineRestockGamesFilled = ящик пополнения Безобидные развлечения diff --git a/Resources/Locale/ru-RU/ss14-ru/prototypes/corvax/catalog/fills/items/misc.ftl b/Resources/Locale/ru-RU/ss14-ru/prototypes/corvax/catalog/fills/items/misc.ftl new file mode 100644 index 00000000000000..db261867132628 --- /dev/null +++ b/Resources/Locale/ru-RU/ss14-ru/prototypes/corvax/catalog/fills/items/misc.ftl @@ -0,0 +1,3 @@ +ent-ClothingShoesBootsJackSecFilled = { ent-ClothingShoesBootsJackSec } + .suffix = Заполненный + .desc = { ent-ClothingShoesBootsJackSec.desc } diff --git a/Resources/Locale/ru-RU/ss14-ru/prototypes/entities/clothing/head/hats.ftl b/Resources/Locale/ru-RU/ss14-ru/prototypes/entities/clothing/head/hats.ftl index 5a6d01de02ff93..e6098fcc2032bc 100644 --- a/Resources/Locale/ru-RU/ss14-ru/prototypes/entities/clothing/head/hats.ftl +++ b/Resources/Locale/ru-RU/ss14-ru/prototypes/entities/clothing/head/hats.ftl @@ -120,3 +120,5 @@ ent-ClothingHeadHatBeretNavyBlue = темно-синий офицерский б .desc = Темно-синий берет сил безопасности Нанотрасена, украшенный серебряным каплевидным щитом с выгравированным мечом, объявляющий миру, что его обладатель является защитником Нанотрасена. ent-ClothingHeadHatCapcap = фуражка капитана .desc = Большая, стильная капитанская фуражка. +ent-ClothingHeadHatGladiator = гладиаторский шлем + .desc = Защищает голову от суровых пепельных ветров и игрушечных копий. diff --git a/Resources/Locale/ru-RU/ss14-ru/prototypes/entities/clothing/head/helmets.ftl b/Resources/Locale/ru-RU/ss14-ru/prototypes/entities/clothing/head/helmets.ftl index 7d2b1294d6423a..c509f674ddb7a6 100644 --- a/Resources/Locale/ru-RU/ss14-ru/prototypes/entities/clothing/head/helmets.ftl +++ b/Resources/Locale/ru-RU/ss14-ru/prototypes/entities/clothing/head/helmets.ftl @@ -51,3 +51,5 @@ ent-ClothingHeadHelmetLing = хитиновый шлем .desc = Раздувает тело генокрада во всепоглощающий массив хитиновый брони. Обеспечивает высокую защиту от физических повреждений, более низкую от других типов. Его вес замедляет движение генокрада, а его поддержание замедляет выработку химических веществ. ent-ClothingHeadHelmetVoidParamed = шлем скафандра парамедика .desc = Шлем от скафандра парамедика. +ent-ClothingHeadHelmetBone = костяной шлем + .desc = Круто выглядящий шлем, сделанный из черепов ваших врагов. diff --git a/Resources/Locale/ru-RU/ss14-ru/prototypes/entities/clothing/neck/cloaks.ftl b/Resources/Locale/ru-RU/ss14-ru/prototypes/entities/clothing/neck/cloaks.ftl index 7fb9eb082652c2..64ff9908e6d898 100644 --- a/Resources/Locale/ru-RU/ss14-ru/prototypes/entities/clothing/neck/cloaks.ftl +++ b/Resources/Locale/ru-RU/ss14-ru/prototypes/entities/clothing/neck/cloaks.ftl @@ -7,7 +7,7 @@ ent-ClothingNeckCloakCe = плащ старшего инженера ent-ClothingCloakCmo = плащ главного врача .desc = Стерильный синий плащ с зеленым крестом, излучающий чувство долга и готовность помогать другим. ent-ClothingNeckCloakRd = плащ научного руководителя - .desc = Белый плащ с фиолетовыми полосами, демонстрирующий ваш статус законодателя передовых технологий. + .desc = Фиолетовый плащ с белыми полосами, демонстрирующий ваш статус законодателя передовых технологий. ent-ClothingNeckCloakQm = плащ квартирмейстера .desc = Прочный коричневый плащ со светоотражающей полосой, хотя и не такой модный, как другие, но демонстрирует ваши навыки управления. ent-ClothingNeckCloakHop = плащ главы персонала diff --git a/Resources/Locale/ru-RU/ss14-ru/prototypes/entities/clothing/outerclothing/armor.ftl b/Resources/Locale/ru-RU/ss14-ru/prototypes/entities/clothing/outerclothing/armor.ftl index 85e90f646907f9..0347db1856cedf 100644 --- a/Resources/Locale/ru-RU/ss14-ru/prototypes/entities/clothing/outerclothing/armor.ftl +++ b/Resources/Locale/ru-RU/ss14-ru/prototypes/entities/clothing/outerclothing/armor.ftl @@ -27,3 +27,5 @@ ent-ClothingOuterArmorCaptainCarapace = панцирь капитана .desc = Бронированный нагрудник, обеспечивающий защиту и при этом обладающий мобильностью и гибкостью. Выдается только лучшим представителям станции. ent-ClothingOuterArmorChangeling = хитиновый панцирь .desc = Раздувает тело генокрада во всепоглощающий массив хитиновый брони. Обеспечивает высокую защиту от физических повреждений, более низкую от других типов. Его вес замедляет движение генокрада, а его поддержание замедляет выработку химических веществ. +ent-ClothingOuterArmorBone = костяной доспех + .desc = Сидит на вас как вторая кожа. diff --git a/Resources/Locale/ru-RU/ss14-ru/prototypes/entities/clothing/uniforms/jumpsuits.ftl b/Resources/Locale/ru-RU/ss14-ru/prototypes/entities/clothing/uniforms/jumpsuits.ftl index a8905105c581b1..868e1c738413a8 100644 --- a/Resources/Locale/ru-RU/ss14-ru/prototypes/entities/clothing/uniforms/jumpsuits.ftl +++ b/Resources/Locale/ru-RU/ss14-ru/prototypes/entities/clothing/uniforms/jumpsuits.ftl @@ -229,3 +229,5 @@ ent-ClothingUniformJumpsuitWeb = паутинный комбинезон .desc = Даёт понять, что вы едины с паутиной. ent-ClothingUniformJumpsuitLoungewear = домашняя одежда .desc = Длинный кусок ткани, который облегает тело, обеспечивая комфорт. +ent-ClothingUniformJumpsuitGladiator = форма гладиатора + .desc = Создана для настоящих гладиаторов (или пеплоходцев). diff --git a/Resources/Locale/ru-RU/ss14-ru/prototypes/entities/mobs/player/observer.ftl b/Resources/Locale/ru-RU/ss14-ru/prototypes/entities/mobs/player/observer.ftl index c97fe1dd7f7416..96ba6227c90e29 100644 --- a/Resources/Locale/ru-RU/ss14-ru/prototypes/entities/mobs/player/observer.ftl +++ b/Resources/Locale/ru-RU/ss14-ru/prototypes/entities/mobs/player/observer.ftl @@ -3,8 +3,10 @@ ent-MobObserver = наблюдатель ent-ActionGhostBoo = Бу! .desc = Пугайте членов своей команды со скуки! ent-ActionToggleLighting = Переключить освещение - .desc = Включите или отключите рендеринг света, чтобы лучше видеть затенённые области. + .desc = Включить или выключить рендеринг света, чтобы лучше видеть затенённые области. ent-ActionToggleFov = Переключить поле зрения .desc = Переключить поле зрения чтобы видеть то же, что и игроки. -ent-ActionToggleGhosts = Переключить призраков +ent-ActionToggleGhosts = Переключить видимость призраков .desc = Переключить видимость других призраков. +ent-ActionToggleGhostHearing = Переключить слышимость призраком + .desc = Переключить между прослушиванием всех сообщений и прослушиванием рации и сообщений поблизости. 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 e4a832002b05f8..d241faac227d09 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 @@ -40,6 +40,8 @@ ent-FoodMeatWheat = мясной комок .desc = Это совсем не похоже на мясо, но и ваши стандарты не так уж и высоки. ent-FoodMeatXeno = сырое ксено мясо .desc = Кусок мяса ксеноса, сочащийся кислотой. +ent-FoodMeatRouny = сырое мясо руни + .desc = Кусок мяса невинного красного друга. ent-FoodMeatTomato = мясо помидора-убийцы .desc = Ломтик от огромного помидора. ent-FoodMeatSalami = салями @@ -70,6 +72,8 @@ ent-FoodMeatCrabCooked = приготовленное мясо краба .desc = Вкусно приготовленное крабовое мясо. ent-FoodMeatGoliathCooked = стейк из голиафа .desc = Вкусный, приготовленный в лаве стейк. +ent-FoodMeatRounyCooked = стейк из руни + .desc = Некоторые убивают, чтобы выжить. Вы же убиваете ради удовольствия. ent-FoodMeatLizardCooked = стейк из ящерицы .desc = Приготовленное, жесткое мясо ящерицы. ent-FoodMeatSpiderlegCooked = приготовленная паучья нога diff --git a/Resources/Locale/ru-RU/ss14-ru/prototypes/entities/objects/materials/materials.ftl b/Resources/Locale/ru-RU/ss14-ru/prototypes/entities/objects/materials/materials.ftl index 5ca0c53c5ada4a..db7c60a2777ee1 100644 --- a/Resources/Locale/ru-RU/ss14-ru/prototypes/entities/objects/materials/materials.ftl +++ b/Resources/Locale/ru-RU/ss14-ru/prototypes/entities/objects/materials/materials.ftl @@ -61,3 +61,9 @@ ent-MaterialWebSilk25 = { ent-MaterialWebSilk } ent-MaterialWebSilk1 = { ent-MaterialWebSilk } .suffix = 1 .desc = { ent-MaterialWebSilk.desc } +ent-MaterialBones = кости + .suffix = Полный + .desc = { ent-MaterialBase.desc } +ent-MaterialBones1 = { ent-MaterialBones } + .suffix = 1 + .desc = { ent-MaterialBones.desc } diff --git a/Resources/Locale/ru-RU/ss14-ru/prototypes/entities/objects/misc/identification_cards.ftl b/Resources/Locale/ru-RU/ss14-ru/prototypes/entities/objects/misc/identification_cards.ftl index 5321812a5f01c9..d14271cbbaa852 100644 --- a/Resources/Locale/ru-RU/ss14-ru/prototypes/entities/objects/misc/identification_cards.ftl +++ b/Resources/Locale/ru-RU/ss14-ru/prototypes/entities/objects/misc/identification_cards.ftl @@ -44,6 +44,8 @@ ent-JanitorIDCard = ID карта уборщика .desc = { ent-IDCardStandard.desc } ent-BartenderIDCard = ID карта бармена .desc = { ent-IDCardStandard.desc } +ent-PunPunIDCard = ID карта Пун Пуна + .desc = { ent-IDCardStandard.desc } ent-ChefIDCard = ID карта шеф-повара .desc = { ent-IDCardStandard.desc } ent-BotanistIDCard = ID карта ботаника diff --git a/Resources/Locale/ru-RU/ss14-ru/prototypes/entities/objects/specific/janitorial/janitor.ftl b/Resources/Locale/ru-RU/ss14-ru/prototypes/entities/objects/specific/janitorial/janitor.ftl index 937394574ce4ce..ead206098c8760 100644 --- a/Resources/Locale/ru-RU/ss14-ru/prototypes/entities/objects/specific/janitorial/janitor.ftl +++ b/Resources/Locale/ru-RU/ss14-ru/prototypes/entities/objects/specific/janitorial/janitor.ftl @@ -11,7 +11,7 @@ ent-WetFloorSign = знак "мокрый пол" .desc = Осторожно! Мокрый пол! ent-WetFloorSignMineExplosive = { ent-WetFloorSign } .desc = { ent-WetFloorSign.desc } - .suffix = Explosive + .suffix = Взрывчатка ent-JanitorialTrolley = тележка уборщика .desc = Это альфа и омега санитарии. ent-FloorDrain = дренаж diff --git a/Resources/Locale/ru-RU/ss14-ru/prototypes/entities/objects/specific/service/vending_machine_restock.ftl b/Resources/Locale/ru-RU/ss14-ru/prototypes/entities/objects/specific/service/vending_machine_restock.ftl index 8262ae9a58bd99..028dea2950d282 100644 --- a/Resources/Locale/ru-RU/ss14-ru/prototypes/entities/objects/specific/service/vending_machine_restock.ftl +++ b/Resources/Locale/ru-RU/ss14-ru/prototypes/entities/objects/specific/service/vending_machine_restock.ftl @@ -8,8 +8,8 @@ ent-VendingMachineRestockClothes = набор пополнения Одеждо .desc = Пришло время переступить порог моды! Поместите в слот для пополнения ОдеждоМата, чтобы начать. ent-VendingMachineRestockCostumes = набор пополнения ТеатроШкаф .desc = Паноптикум сотрудников Nanotrasen пестрит в красочной трагикомедии. Присоединяйтесь к ним и вы! Загрузите это в ближайший торгомат ТеатроШкаф. -ent-VendingMachineRestockDinnerware = набор пополнения Кухонно-пластальная поварская утварь - .desc = На этой кухне всегда жарко! Поместите в слот для пополнения Кухонно-пластальной поварской утвари, чтобы начать. +ent-VendingMachineRestockDinnerware = набор пополнения ПосудоМат + .desc = На этой кухне всегда жарко! Поместите в слот для пополнения ПосудоМата, чтобы начать. ent-VendingMachineRestockDiscountDans = набор пополнения Дискаунтер Дэна .desc = Коробка, набитая солью и крахмалом. Зачем терпеть качество, когда есть количество? Дискаунтер Дэна! ent-VendingMachineRestockDonut = набор пополнения Пончики Монкинс diff --git a/Resources/Locale/ru-RU/ss14-ru/prototypes/entities/objects/weapons/melee/spear.ftl b/Resources/Locale/ru-RU/ss14-ru/prototypes/entities/objects/weapons/melee/spear.ftl index e2067b4882a5f1..51c378c83c0389 100644 --- a/Resources/Locale/ru-RU/ss14-ru/prototypes/entities/objects/weapons/melee/spear.ftl +++ b/Resources/Locale/ru-RU/ss14-ru/prototypes/entities/objects/weapons/melee/spear.ftl @@ -6,3 +6,5 @@ ent-SpearPlasma = плазменное копьё .desc = Копье с осколком плазменного стекла в качестве наконечника. ent-SpearUranium = урановое копьё .desc = Копье с осколком уранового стекла в качестве наконечника. +ent-SpearBone = костяное копьё + .desc = Копьё, сделанное из костей. diff --git a/Resources/Locale/ru-RU/ss14-ru/prototypes/entities/structures/doors/airlocks/easy_pry.ftl b/Resources/Locale/ru-RU/ss14-ru/prototypes/entities/structures/doors/airlocks/easy_pry.ftl new file mode 100644 index 00000000000000..fa40e8c3296983 --- /dev/null +++ b/Resources/Locale/ru-RU/ss14-ru/prototypes/entities/structures/doors/airlocks/easy_pry.ftl @@ -0,0 +1,24 @@ +ent-AirlockExternalEasyPry = { ent-AirlockExternal } + .desc = Он открывается, он закрывается, он может вас раздавить, и за ним может быть только космос. Должен быть активирован вручную. Имеет вентиль с надписью "ПОВЕРНИТЕ ЧТОБЫ ОТКРЫТЬ". + .suffix = Внешний, Легко открыть +ent-AirlockExternalGlassEasyPry = { ent-AirlockExternalGlass } + .desc = Он открывается, он закрывается, он может вас раздавить, и за ним может быть только космос. Должен быть активирован вручную. Имеет вентиль с надписью "ПОВЕРНИТЕ ЧТОБЫ ОТКРЫТЬ". + .suffix = Внешний, Стеклянный, Легко открыть +ent-AirlockGlassShuttleEasyPry = { ent-AirlockGlassShuttle } + .desc = Необходим для соединения двух космических кораблей вместе. Имеет вентиль с надписью "ПОВЕРНИТЕ ЧТОБЫ ОТКРЫТЬ". + .suffix = Стыковочный, Стеклянный, Легко открыть +ent-AirlockShuttleEasyPry = { ent-AirlockShuttle } + .desc = Необходим для соединения двух космических кораблей вместе. Имеет вентиль с надписью "ПОВЕРНИТЕ ЧТОБЫ ОТКРЫТЬ". + .suffix = Стыковочный, Легко открыть +ent-AirlockExternalEasyPryLocked = { ent-AirlockExternalLocked } + .desc = Он открывается, он закрывается, он может вас раздавить, и за ним может быть только космос. Должен быть активирован вручную. Имеет вентиль с надписью "ПОВЕРНИТЕ ЧТОБЫ ОТКРЫТЬ". + .suffix = Внешний, Легко открыть, Закрытый +ent-AirlockExternalGlassEasyPryLocked = { ent-AirlockExternalGlassLocked } + .desc = Он открывается, он закрывается, он может вас раздавить, и за ним может быть только космос. Должен быть активирован вручную. Имеет вентиль с надписью "ПОВЕРНИТЕ ЧТОБЫ ОТКРЫТЬ". + .suffix = Внешний, Стеклянный, Легко открыть, Закрытый +ent-AirlockGlassShuttleEasyPryLocked = { ent-AirlockExternalGlassShuttleLocked } + .desc = Необходим для соединения двух космических кораблей вместе. Имеет вентиль с надписью "ПОВЕРНИТЕ ЧТОБЫ ОТКРЫТЬ". + .suffix = Стыковочный, Стеклянный, Закрытый, Легко открыть +ent-AirlockShuttleEasyPryLocked = { ent-AirlockExternalShuttleLocked } + .desc = Необходим для соединения двух космических кораблей вместе. Имеет вентиль с надписью "ПОВЕРНИТЕ ЧТОБЫ ОТКРЫТЬ". + .suffix = Стыковочный, Закрытый, Легко открыть diff --git a/Resources/Locale/ru-RU/ss14-ru/prototypes/entities/structures/doors/airlocks/external.ftl b/Resources/Locale/ru-RU/ss14-ru/prototypes/entities/structures/doors/airlocks/external.ftl index 5dc6b8183c4736..b0e0e16cddbdb7 100644 --- a/Resources/Locale/ru-RU/ss14-ru/prototypes/entities/structures/doors/airlocks/external.ftl +++ b/Resources/Locale/ru-RU/ss14-ru/prototypes/entities/structures/doors/airlocks/external.ftl @@ -2,5 +2,5 @@ ent-AirlockExternal = { ent-Airlock } .desc = Он открывается, он закрывается, он может раздавить вас, а за ним лишь космос. Активируется вручную. .suffix = Внешний ent-AirlockExternalGlass = { ent-AirlockExternal } - .suffix = Стеклянный, Внешний + .suffix = Внешний, Стеклянный .desc = { ent-AirlockExternal.desc } diff --git a/Resources/Locale/ru-RU/ss14-ru/prototypes/entities/structures/doors/airlocks/shuttle.ftl b/Resources/Locale/ru-RU/ss14-ru/prototypes/entities/structures/doors/airlocks/shuttle.ftl index 67143c194039da..5c691c963ad3a1 100644 --- a/Resources/Locale/ru-RU/ss14-ru/prototypes/entities/structures/doors/airlocks/shuttle.ftl +++ b/Resources/Locale/ru-RU/ss14-ru/prototypes/entities/structures/doors/airlocks/shuttle.ftl @@ -3,7 +3,7 @@ ent-AirlockShuttle = стыковочный шлюз .suffix = Стыковочный ent-AirlockGlassShuttle = стыковочный шлюз .desc = Необходим для соединения двух космических кораблей вместе. - .suffix = Стеклянный, Стыковочный + .suffix = Стыковочный, Стеклянный ent-AirlockShuttleAssembly = каркас стыковочного шлюза .desc = Незавершенная конструкция, необходимая для соединения двух космических кораблей вместе. .suffix = Стыковочный diff --git a/Resources/Locale/ru-RU/ss14-ru/prototypes/entities/structures/machines/vending_machines.ftl b/Resources/Locale/ru-RU/ss14-ru/prototypes/entities/structures/machines/vending_machines.ftl index 743ff6db15605f..d808fd628b0b22 100644 --- a/Resources/Locale/ru-RU/ss14-ru/prototypes/entities/structures/machines/vending_machines.ftl +++ b/Resources/Locale/ru-RU/ss14-ru/prototypes/entities/structures/machines/vending_machines.ftl @@ -44,7 +44,7 @@ ent-VendingMachineMagivend = МагМазин .desc = Магический торговый автомат. ent-VendingMachineCola = Прохладительные напитки Робаст .desc = Автомат прохладительных напитков, предоставленный компанией Робаст Индастриз, ООО. -ent-VendingMachineDinnerware = Кухонно-пластальная поварская утварь +ent-VendingMachineDinnerware = ПосудоМат .desc = Поставщик оборудования для кухонь и ресторанов. ent-VendingMachineDiscount = Дискаунтер Дэна .desc = Торговый автомат с закусками из печально известной франшизы "Дискаунтер Дэна". diff --git a/Resources/Locale/ru-RU/verbs/verb-system.ftl b/Resources/Locale/ru-RU/verbs/verb-system.ftl index b6bdf9f742896c..db0726f501d300 100644 --- a/Resources/Locale/ru-RU/verbs/verb-system.ftl +++ b/Resources/Locale/ru-RU/verbs/verb-system.ftl @@ -16,7 +16,7 @@ verb-categories-unbuckle = Отстегнуть verb-categories-rotate = Повернуть verb-categories-smite = Покарать verb-categories-tricks = Трюки -verb-categories-transfer = Установить значение перемещения +verb-categories-transfer = Перемещаемое кол-во verb-categories-split = Разделить verb-categories-instrument-style = Стиль инструмента verb-categories-channel-select = Каналы diff --git a/Resources/Locale/ru-RU/weapons/grenades/timer-trigger.ftl b/Resources/Locale/ru-RU/weapons/grenades/timer-trigger.ftl index e1e8ce7b757d51..e179dd1cfafbd5 100644 --- a/Resources/Locale/ru-RU/weapons/grenades/timer-trigger.ftl +++ b/Resources/Locale/ru-RU/weapons/grenades/timer-trigger.ftl @@ -3,6 +3,7 @@ verb-trigger-timer-set-current = { $time } секунд (сейчас) verb-trigger-timer-cycle = Циклическое переключение задержки examine-trigger-timer = Таймер установлен на { $time } секунд. popup-trigger-timer-set = Таймер установлен на { $time } секунд. +verb-start-detonation = Запустить детонацию verb-toggle-start-on-stick = Переключить автоактивацию popup-start-on-stick-off = Устройство НЕ будет автоматически активировано после установки popup-start-on-stick-on = Устройство будет автоматически активировано после установки diff --git a/Resources/Locale/ru-RU/wieldable/wieldable-component.ftl b/Resources/Locale/ru-RU/wieldable/wieldable-component.ftl index 16e4d6a91c246c..c89710287a2ac9 100644 --- a/Resources/Locale/ru-RU/wieldable/wieldable-component.ftl +++ b/Resources/Locale/ru-RU/wieldable/wieldable-component.ftl @@ -8,7 +8,7 @@ wieldable-component-successful-wield-other = { $user } берёт { $item } в wieldable-component-failed-wield-other = { $user } берёт { $item } в одну руку. wieldable-component-no-hands = Вам не хватает рук! wieldable-component-not-enough-free-hands = - Чтобы использовать { $item } вам понадобится { $number } { $number -> + Чтобы использовать { $item } вам понадобится ещё { $number } { $number -> [one] свободная рука [few] свободные руки *[other] свободных рук diff --git a/Resources/Textures/Structures/Doors/Airlocks/Glass/syndicate.rsi/assembly.png b/Resources/Textures/Structures/Doors/Airlocks/Glass/syndicate.rsi/assembly.png index da1739bb279ebc..77b917578c551b 100644 Binary files a/Resources/Textures/Structures/Doors/Airlocks/Glass/syndicate.rsi/assembly.png and b/Resources/Textures/Structures/Doors/Airlocks/Glass/syndicate.rsi/assembly.png differ diff --git a/Resources/Textures/Structures/Doors/Airlocks/Glass/syndicate.rsi/bolted_open_unlit.png b/Resources/Textures/Structures/Doors/Airlocks/Glass/syndicate.rsi/bolted_open_unlit.png new file mode 100644 index 00000000000000..cc49407c5f4ca1 Binary files /dev/null and b/Resources/Textures/Structures/Doors/Airlocks/Glass/syndicate.rsi/bolted_open_unlit.png differ diff --git a/Resources/Textures/Structures/Doors/Airlocks/Glass/syndicate.rsi/bolted_unlit.png b/Resources/Textures/Structures/Doors/Airlocks/Glass/syndicate.rsi/bolted_unlit.png index 6857f2a24154b0..c6b550c603d94f 100644 Binary files a/Resources/Textures/Structures/Doors/Airlocks/Glass/syndicate.rsi/bolted_unlit.png and b/Resources/Textures/Structures/Doors/Airlocks/Glass/syndicate.rsi/bolted_unlit.png differ diff --git a/Resources/Textures/Structures/Doors/Airlocks/Glass/syndicate.rsi/closed.png b/Resources/Textures/Structures/Doors/Airlocks/Glass/syndicate.rsi/closed.png index 1c0787f2fdd542..09f222d308187e 100644 Binary files a/Resources/Textures/Structures/Doors/Airlocks/Glass/syndicate.rsi/closed.png and b/Resources/Textures/Structures/Doors/Airlocks/Glass/syndicate.rsi/closed.png differ diff --git a/Resources/Textures/Structures/Doors/Airlocks/Glass/syndicate.rsi/closed_unlit.png b/Resources/Textures/Structures/Doors/Airlocks/Glass/syndicate.rsi/closed_unlit.png index c78d01c42d084d..4ca8c59ec1da22 100644 Binary files a/Resources/Textures/Structures/Doors/Airlocks/Glass/syndicate.rsi/closed_unlit.png and b/Resources/Textures/Structures/Doors/Airlocks/Glass/syndicate.rsi/closed_unlit.png differ diff --git a/Resources/Textures/Structures/Doors/Airlocks/Glass/syndicate.rsi/closing.png b/Resources/Textures/Structures/Doors/Airlocks/Glass/syndicate.rsi/closing.png index 7894a1f34c3826..002320c6fd74b7 100644 Binary files a/Resources/Textures/Structures/Doors/Airlocks/Glass/syndicate.rsi/closing.png and b/Resources/Textures/Structures/Doors/Airlocks/Glass/syndicate.rsi/closing.png differ diff --git a/Resources/Textures/Structures/Doors/Airlocks/Glass/syndicate.rsi/closing_unlit.png b/Resources/Textures/Structures/Doors/Airlocks/Glass/syndicate.rsi/closing_unlit.png index 2a71f76d5d0c79..09946a77e6e43f 100644 Binary files a/Resources/Textures/Structures/Doors/Airlocks/Glass/syndicate.rsi/closing_unlit.png and b/Resources/Textures/Structures/Doors/Airlocks/Glass/syndicate.rsi/closing_unlit.png differ diff --git a/Resources/Textures/Structures/Doors/Airlocks/Glass/syndicate.rsi/deny_unlit.png b/Resources/Textures/Structures/Doors/Airlocks/Glass/syndicate.rsi/deny_unlit.png index 7c56263f83958a..6486ac5ca8302b 100644 Binary files a/Resources/Textures/Structures/Doors/Airlocks/Glass/syndicate.rsi/deny_unlit.png and b/Resources/Textures/Structures/Doors/Airlocks/Glass/syndicate.rsi/deny_unlit.png differ diff --git a/Resources/Textures/Structures/Doors/Airlocks/Glass/syndicate.rsi/emergency_open_unlit.png b/Resources/Textures/Structures/Doors/Airlocks/Glass/syndicate.rsi/emergency_open_unlit.png new file mode 100644 index 00000000000000..e5dfd04206ce4c Binary files /dev/null and b/Resources/Textures/Structures/Doors/Airlocks/Glass/syndicate.rsi/emergency_open_unlit.png differ diff --git a/Resources/Textures/Structures/Doors/Airlocks/Glass/syndicate.rsi/emergency_unlit.png b/Resources/Textures/Structures/Doors/Airlocks/Glass/syndicate.rsi/emergency_unlit.png index 817f2fb3f95c53..ede345c70dfc6f 100644 Binary files a/Resources/Textures/Structures/Doors/Airlocks/Glass/syndicate.rsi/emergency_unlit.png and b/Resources/Textures/Structures/Doors/Airlocks/Glass/syndicate.rsi/emergency_unlit.png differ diff --git a/Resources/Textures/Structures/Doors/Airlocks/Glass/syndicate.rsi/meta.json b/Resources/Textures/Structures/Doors/Airlocks/Glass/syndicate.rsi/meta.json index 6b8b84fc124b5b..56b5ec97ad8076 100644 --- a/Resources/Textures/Structures/Doors/Airlocks/Glass/syndicate.rsi/meta.json +++ b/Resources/Textures/Structures/Doors/Airlocks/Glass/syndicate.rsi/meta.json @@ -1,7 +1,7 @@ { "version": 1, "license": "CC-BY-SA-3.0", - "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/c6e3401f2e7e1e55c57060cdf956a98ef1fefc24; Edited by Doru991", + "copyright": "Made by murouxlul(705433554602950793)", "size": { "x": 32, "y": 32 @@ -13,12 +13,18 @@ { "name": "bolted_unlit" }, + { + "name": "bolted_open_unlit" + }, { "name": "closed" }, { "name": "closed_unlit" }, + { + "name": "open_unlit" + }, { "name": "closing", "delays": [ @@ -53,18 +59,12 @@ 0.1, 0.1, 0.1, - 0.1, 0.1 ] ] }, { - "name": "open", - "delays": [ - [ - 1 - ] - ] + "name": "open" }, { "name": "opening", @@ -106,12 +106,7 @@ ] }, { - "name": "panel_open", - "delays": [ - [ - 1 - ] - ] + "name": "panel_closed" }, { "name": "panel_opening", @@ -126,6 +121,10 @@ ] ] }, + + { + "name": "panel_open" + }, { "name": "sparks", "delays": [ @@ -148,7 +147,8 @@ 0.1, 0.1, 0.1, - 0.1 + 0.1, + 1.7 ] ] }, @@ -161,8 +161,7 @@ 0.1, 0.1, 0.1, - 0.1, - 1.7 + 0.1 ] ] }, @@ -186,10 +185,13 @@ "name": "emergency_unlit", "delays": [ [ - 0.4, - 0.4 + 1.2, + 1.2 ] ] + }, + { + "name": "emergency_open_unlit" } ] } diff --git a/Resources/Textures/Structures/Doors/Airlocks/Glass/syndicate.rsi/open.png b/Resources/Textures/Structures/Doors/Airlocks/Glass/syndicate.rsi/open.png index 8b3c585e54df95..0a90e6df4d174c 100644 Binary files a/Resources/Textures/Structures/Doors/Airlocks/Glass/syndicate.rsi/open.png and b/Resources/Textures/Structures/Doors/Airlocks/Glass/syndicate.rsi/open.png differ diff --git a/Resources/Textures/Structures/Doors/Airlocks/Glass/syndicate.rsi/open_unlit.png b/Resources/Textures/Structures/Doors/Airlocks/Glass/syndicate.rsi/open_unlit.png new file mode 100644 index 00000000000000..4c03a217b742f4 Binary files /dev/null and b/Resources/Textures/Structures/Doors/Airlocks/Glass/syndicate.rsi/open_unlit.png differ diff --git a/Resources/Textures/Structures/Doors/Airlocks/Glass/syndicate.rsi/opening.png b/Resources/Textures/Structures/Doors/Airlocks/Glass/syndicate.rsi/opening.png index 37004d384a2137..373da014194428 100644 Binary files a/Resources/Textures/Structures/Doors/Airlocks/Glass/syndicate.rsi/opening.png and b/Resources/Textures/Structures/Doors/Airlocks/Glass/syndicate.rsi/opening.png differ diff --git a/Resources/Textures/Structures/Doors/Airlocks/Glass/syndicate.rsi/opening_unlit.png b/Resources/Textures/Structures/Doors/Airlocks/Glass/syndicate.rsi/opening_unlit.png index 84933bd5ed9cd4..d50675650ce76c 100644 Binary files a/Resources/Textures/Structures/Doors/Airlocks/Glass/syndicate.rsi/opening_unlit.png and b/Resources/Textures/Structures/Doors/Airlocks/Glass/syndicate.rsi/opening_unlit.png differ diff --git a/Resources/Textures/Structures/Doors/Airlocks/Glass/syndicate.rsi/panel_closed.png b/Resources/Textures/Structures/Doors/Airlocks/Glass/syndicate.rsi/panel_closed.png new file mode 100644 index 00000000000000..7244b37f5c785d Binary files /dev/null and b/Resources/Textures/Structures/Doors/Airlocks/Glass/syndicate.rsi/panel_closed.png differ diff --git a/Resources/Textures/Structures/Doors/Airlocks/Glass/syndicate.rsi/panel_closing.png b/Resources/Textures/Structures/Doors/Airlocks/Glass/syndicate.rsi/panel_closing.png index db7be0bc4a0ec0..193665a93b590f 100644 Binary files a/Resources/Textures/Structures/Doors/Airlocks/Glass/syndicate.rsi/panel_closing.png and b/Resources/Textures/Structures/Doors/Airlocks/Glass/syndicate.rsi/panel_closing.png differ diff --git a/Resources/Textures/Structures/Doors/Airlocks/Glass/syndicate.rsi/panel_open.png b/Resources/Textures/Structures/Doors/Airlocks/Glass/syndicate.rsi/panel_open.png index 24eb2aedc2248a..49e318c243ce17 100644 Binary files a/Resources/Textures/Structures/Doors/Airlocks/Glass/syndicate.rsi/panel_open.png and b/Resources/Textures/Structures/Doors/Airlocks/Glass/syndicate.rsi/panel_open.png differ diff --git a/Resources/Textures/Structures/Doors/Airlocks/Glass/syndicate.rsi/panel_opening.png b/Resources/Textures/Structures/Doors/Airlocks/Glass/syndicate.rsi/panel_opening.png index fc90acd637a636..a0f494310cffae 100644 Binary files a/Resources/Textures/Structures/Doors/Airlocks/Glass/syndicate.rsi/panel_opening.png and b/Resources/Textures/Structures/Doors/Airlocks/Glass/syndicate.rsi/panel_opening.png differ diff --git a/Resources/Textures/Structures/Doors/Airlocks/Glass/syndicate.rsi/sparks.png b/Resources/Textures/Structures/Doors/Airlocks/Glass/syndicate.rsi/sparks.png index dd67e88a315f67..0666b28799a77f 100644 Binary files a/Resources/Textures/Structures/Doors/Airlocks/Glass/syndicate.rsi/sparks.png and b/Resources/Textures/Structures/Doors/Airlocks/Glass/syndicate.rsi/sparks.png differ diff --git a/Resources/Textures/Structures/Doors/Airlocks/Glass/syndicate.rsi/sparks_broken.png b/Resources/Textures/Structures/Doors/Airlocks/Glass/syndicate.rsi/sparks_broken.png index fb5d774588ae44..ad6e6cbae401ad 100644 Binary files a/Resources/Textures/Structures/Doors/Airlocks/Glass/syndicate.rsi/sparks_broken.png and b/Resources/Textures/Structures/Doors/Airlocks/Glass/syndicate.rsi/sparks_broken.png differ diff --git a/Resources/Textures/Structures/Doors/Airlocks/Glass/syndicate.rsi/sparks_damaged.png b/Resources/Textures/Structures/Doors/Airlocks/Glass/syndicate.rsi/sparks_damaged.png index f16a028dee5bbe..695b8f38751a7c 100644 Binary files a/Resources/Textures/Structures/Doors/Airlocks/Glass/syndicate.rsi/sparks_damaged.png and b/Resources/Textures/Structures/Doors/Airlocks/Glass/syndicate.rsi/sparks_damaged.png differ diff --git a/Resources/Textures/Structures/Doors/Airlocks/Glass/syndicate.rsi/sparks_open.png b/Resources/Textures/Structures/Doors/Airlocks/Glass/syndicate.rsi/sparks_open.png index 630eabb976ecf1..fb8ba8d034ce6c 100644 Binary files a/Resources/Textures/Structures/Doors/Airlocks/Glass/syndicate.rsi/sparks_open.png and b/Resources/Textures/Structures/Doors/Airlocks/Glass/syndicate.rsi/sparks_open.png differ diff --git a/Resources/Textures/Structures/Doors/Airlocks/Glass/syndicate.rsi/welded.png b/Resources/Textures/Structures/Doors/Airlocks/Glass/syndicate.rsi/welded.png index a0040dfdc73fb4..f8369a1fcad660 100644 Binary files a/Resources/Textures/Structures/Doors/Airlocks/Glass/syndicate.rsi/welded.png and b/Resources/Textures/Structures/Doors/Airlocks/Glass/syndicate.rsi/welded.png differ diff --git a/Resources/Textures/Structures/Doors/Airlocks/Standard/syndicate.rsi/assembly.png b/Resources/Textures/Structures/Doors/Airlocks/Standard/syndicate.rsi/assembly.png index 9ac8b2ad682a34..c0b7ffa3029000 100644 Binary files a/Resources/Textures/Structures/Doors/Airlocks/Standard/syndicate.rsi/assembly.png and b/Resources/Textures/Structures/Doors/Airlocks/Standard/syndicate.rsi/assembly.png differ diff --git a/Resources/Textures/Structures/Doors/Airlocks/Standard/syndicate.rsi/bolted_open_unlit.png b/Resources/Textures/Structures/Doors/Airlocks/Standard/syndicate.rsi/bolted_open_unlit.png new file mode 100644 index 00000000000000..cc49407c5f4ca1 Binary files /dev/null and b/Resources/Textures/Structures/Doors/Airlocks/Standard/syndicate.rsi/bolted_open_unlit.png differ diff --git a/Resources/Textures/Structures/Doors/Airlocks/Standard/syndicate.rsi/bolted_unlit.png b/Resources/Textures/Structures/Doors/Airlocks/Standard/syndicate.rsi/bolted_unlit.png index 6857f2a24154b0..c6b550c603d94f 100644 Binary files a/Resources/Textures/Structures/Doors/Airlocks/Standard/syndicate.rsi/bolted_unlit.png and b/Resources/Textures/Structures/Doors/Airlocks/Standard/syndicate.rsi/bolted_unlit.png differ diff --git a/Resources/Textures/Structures/Doors/Airlocks/Standard/syndicate.rsi/closed.png b/Resources/Textures/Structures/Doors/Airlocks/Standard/syndicate.rsi/closed.png index a71632a1732a2c..a00bd64698e0ae 100644 Binary files a/Resources/Textures/Structures/Doors/Airlocks/Standard/syndicate.rsi/closed.png and b/Resources/Textures/Structures/Doors/Airlocks/Standard/syndicate.rsi/closed.png differ diff --git a/Resources/Textures/Structures/Doors/Airlocks/Standard/syndicate.rsi/closed_unlit.png b/Resources/Textures/Structures/Doors/Airlocks/Standard/syndicate.rsi/closed_unlit.png index c78d01c42d084d..4ca8c59ec1da22 100644 Binary files a/Resources/Textures/Structures/Doors/Airlocks/Standard/syndicate.rsi/closed_unlit.png and b/Resources/Textures/Structures/Doors/Airlocks/Standard/syndicate.rsi/closed_unlit.png differ diff --git a/Resources/Textures/Structures/Doors/Airlocks/Standard/syndicate.rsi/closing.png b/Resources/Textures/Structures/Doors/Airlocks/Standard/syndicate.rsi/closing.png index 2c5ddab0b8f38a..f3b542e4a51c1c 100644 Binary files a/Resources/Textures/Structures/Doors/Airlocks/Standard/syndicate.rsi/closing.png and b/Resources/Textures/Structures/Doors/Airlocks/Standard/syndicate.rsi/closing.png differ diff --git a/Resources/Textures/Structures/Doors/Airlocks/Standard/syndicate.rsi/closing_unlit.png b/Resources/Textures/Structures/Doors/Airlocks/Standard/syndicate.rsi/closing_unlit.png index 2a71f76d5d0c79..09946a77e6e43f 100644 Binary files a/Resources/Textures/Structures/Doors/Airlocks/Standard/syndicate.rsi/closing_unlit.png and b/Resources/Textures/Structures/Doors/Airlocks/Standard/syndicate.rsi/closing_unlit.png differ diff --git a/Resources/Textures/Structures/Doors/Airlocks/Standard/syndicate.rsi/deny_unlit.png b/Resources/Textures/Structures/Doors/Airlocks/Standard/syndicate.rsi/deny_unlit.png index 7c56263f83958a..6486ac5ca8302b 100644 Binary files a/Resources/Textures/Structures/Doors/Airlocks/Standard/syndicate.rsi/deny_unlit.png and b/Resources/Textures/Structures/Doors/Airlocks/Standard/syndicate.rsi/deny_unlit.png differ diff --git a/Resources/Textures/Structures/Doors/Airlocks/Standard/syndicate.rsi/emergency_open_unlit.png b/Resources/Textures/Structures/Doors/Airlocks/Standard/syndicate.rsi/emergency_open_unlit.png new file mode 100644 index 00000000000000..e5dfd04206ce4c Binary files /dev/null and b/Resources/Textures/Structures/Doors/Airlocks/Standard/syndicate.rsi/emergency_open_unlit.png differ diff --git a/Resources/Textures/Structures/Doors/Airlocks/Standard/syndicate.rsi/emergency_unlit.png b/Resources/Textures/Structures/Doors/Airlocks/Standard/syndicate.rsi/emergency_unlit.png index 817f2fb3f95c53..ede345c70dfc6f 100644 Binary files a/Resources/Textures/Structures/Doors/Airlocks/Standard/syndicate.rsi/emergency_unlit.png and b/Resources/Textures/Structures/Doors/Airlocks/Standard/syndicate.rsi/emergency_unlit.png differ diff --git a/Resources/Textures/Structures/Doors/Airlocks/Standard/syndicate.rsi/meta.json b/Resources/Textures/Structures/Doors/Airlocks/Standard/syndicate.rsi/meta.json index b343ae11dbfd25..56b5ec97ad8076 100644 --- a/Resources/Textures/Structures/Doors/Airlocks/Standard/syndicate.rsi/meta.json +++ b/Resources/Textures/Structures/Doors/Airlocks/Standard/syndicate.rsi/meta.json @@ -1,7 +1,7 @@ { "version": 1, "license": "CC-BY-SA-3.0", - "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/c6e3401f2e7e1e55c57060cdf956a98ef1fefc24; Edited by @MaloTV on GitHub", + "copyright": "Made by murouxlul(705433554602950793)", "size": { "x": 32, "y": 32 @@ -13,12 +13,18 @@ { "name": "bolted_unlit" }, + { + "name": "bolted_open_unlit" + }, { "name": "closed" }, { "name": "closed_unlit" }, + { + "name": "open_unlit" + }, { "name": "closing", "delays": [ @@ -53,18 +59,12 @@ 0.1, 0.1, 0.1, - 0.1, 0.1 ] ] }, { - "name": "open", - "delays": [ - [ - 1 - ] - ] + "name": "open" }, { "name": "opening", @@ -106,12 +106,7 @@ ] }, { - "name": "panel_open", - "delays": [ - [ - 1 - ] - ] + "name": "panel_closed" }, { "name": "panel_opening", @@ -126,6 +121,10 @@ ] ] }, + + { + "name": "panel_open" + }, { "name": "sparks", "delays": [ @@ -148,7 +147,8 @@ 0.1, 0.1, 0.1, - 0.1 + 0.1, + 1.7 ] ] }, @@ -161,8 +161,7 @@ 0.1, 0.1, 0.1, - 0.1, - 1.7 + 0.1 ] ] }, @@ -186,10 +185,13 @@ "name": "emergency_unlit", "delays": [ [ - 0.4, - 0.4 + 1.2, + 1.2 ] ] + }, + { + "name": "emergency_open_unlit" } ] } diff --git a/Resources/Textures/Structures/Doors/Airlocks/Standard/syndicate.rsi/open.png b/Resources/Textures/Structures/Doors/Airlocks/Standard/syndicate.rsi/open.png index cfbb34b8036808..b88bd9bedf8bfa 100644 Binary files a/Resources/Textures/Structures/Doors/Airlocks/Standard/syndicate.rsi/open.png and b/Resources/Textures/Structures/Doors/Airlocks/Standard/syndicate.rsi/open.png differ diff --git a/Resources/Textures/Structures/Doors/Airlocks/Standard/syndicate.rsi/open_unlit.png b/Resources/Textures/Structures/Doors/Airlocks/Standard/syndicate.rsi/open_unlit.png new file mode 100644 index 00000000000000..4c03a217b742f4 Binary files /dev/null and b/Resources/Textures/Structures/Doors/Airlocks/Standard/syndicate.rsi/open_unlit.png differ diff --git a/Resources/Textures/Structures/Doors/Airlocks/Standard/syndicate.rsi/opening.png b/Resources/Textures/Structures/Doors/Airlocks/Standard/syndicate.rsi/opening.png index 96142da1a64b7b..708de1d80a55ad 100644 Binary files a/Resources/Textures/Structures/Doors/Airlocks/Standard/syndicate.rsi/opening.png and b/Resources/Textures/Structures/Doors/Airlocks/Standard/syndicate.rsi/opening.png differ diff --git a/Resources/Textures/Structures/Doors/Airlocks/Standard/syndicate.rsi/opening_unlit.png b/Resources/Textures/Structures/Doors/Airlocks/Standard/syndicate.rsi/opening_unlit.png index 84933bd5ed9cd4..d50675650ce76c 100644 Binary files a/Resources/Textures/Structures/Doors/Airlocks/Standard/syndicate.rsi/opening_unlit.png and b/Resources/Textures/Structures/Doors/Airlocks/Standard/syndicate.rsi/opening_unlit.png differ diff --git a/Resources/Textures/Structures/Doors/Airlocks/Standard/syndicate.rsi/panel_closed.png b/Resources/Textures/Structures/Doors/Airlocks/Standard/syndicate.rsi/panel_closed.png new file mode 100644 index 00000000000000..7244b37f5c785d Binary files /dev/null and b/Resources/Textures/Structures/Doors/Airlocks/Standard/syndicate.rsi/panel_closed.png differ diff --git a/Resources/Textures/Structures/Doors/Airlocks/Standard/syndicate.rsi/panel_closing.png b/Resources/Textures/Structures/Doors/Airlocks/Standard/syndicate.rsi/panel_closing.png index db7be0bc4a0ec0..193665a93b590f 100644 Binary files a/Resources/Textures/Structures/Doors/Airlocks/Standard/syndicate.rsi/panel_closing.png and b/Resources/Textures/Structures/Doors/Airlocks/Standard/syndicate.rsi/panel_closing.png differ diff --git a/Resources/Textures/Structures/Doors/Airlocks/Standard/syndicate.rsi/panel_open.png b/Resources/Textures/Structures/Doors/Airlocks/Standard/syndicate.rsi/panel_open.png index 24eb2aedc2248a..49e318c243ce17 100644 Binary files a/Resources/Textures/Structures/Doors/Airlocks/Standard/syndicate.rsi/panel_open.png and b/Resources/Textures/Structures/Doors/Airlocks/Standard/syndicate.rsi/panel_open.png differ diff --git a/Resources/Textures/Structures/Doors/Airlocks/Standard/syndicate.rsi/panel_opening.png b/Resources/Textures/Structures/Doors/Airlocks/Standard/syndicate.rsi/panel_opening.png index fc90acd637a636..a0f494310cffae 100644 Binary files a/Resources/Textures/Structures/Doors/Airlocks/Standard/syndicate.rsi/panel_opening.png and b/Resources/Textures/Structures/Doors/Airlocks/Standard/syndicate.rsi/panel_opening.png differ diff --git a/Resources/Textures/Structures/Doors/Airlocks/Standard/syndicate.rsi/sparks.png b/Resources/Textures/Structures/Doors/Airlocks/Standard/syndicate.rsi/sparks.png index dd67e88a315f67..0666b28799a77f 100644 Binary files a/Resources/Textures/Structures/Doors/Airlocks/Standard/syndicate.rsi/sparks.png and b/Resources/Textures/Structures/Doors/Airlocks/Standard/syndicate.rsi/sparks.png differ diff --git a/Resources/Textures/Structures/Doors/Airlocks/Standard/syndicate.rsi/sparks_broken.png b/Resources/Textures/Structures/Doors/Airlocks/Standard/syndicate.rsi/sparks_broken.png index fb5d774588ae44..ad6e6cbae401ad 100644 Binary files a/Resources/Textures/Structures/Doors/Airlocks/Standard/syndicate.rsi/sparks_broken.png and b/Resources/Textures/Structures/Doors/Airlocks/Standard/syndicate.rsi/sparks_broken.png differ diff --git a/Resources/Textures/Structures/Doors/Airlocks/Standard/syndicate.rsi/sparks_damaged.png b/Resources/Textures/Structures/Doors/Airlocks/Standard/syndicate.rsi/sparks_damaged.png index f16a028dee5bbe..695b8f38751a7c 100644 Binary files a/Resources/Textures/Structures/Doors/Airlocks/Standard/syndicate.rsi/sparks_damaged.png and b/Resources/Textures/Structures/Doors/Airlocks/Standard/syndicate.rsi/sparks_damaged.png differ diff --git a/Resources/Textures/Structures/Doors/Airlocks/Standard/syndicate.rsi/sparks_open.png b/Resources/Textures/Structures/Doors/Airlocks/Standard/syndicate.rsi/sparks_open.png index 630eabb976ecf1..fb8ba8d034ce6c 100644 Binary files a/Resources/Textures/Structures/Doors/Airlocks/Standard/syndicate.rsi/sparks_open.png and b/Resources/Textures/Structures/Doors/Airlocks/Standard/syndicate.rsi/sparks_open.png differ diff --git a/Resources/Textures/Structures/Doors/Airlocks/Standard/syndicate.rsi/welded.png b/Resources/Textures/Structures/Doors/Airlocks/Standard/syndicate.rsi/welded.png index a0040dfdc73fb4..f8369a1fcad660 100644 Binary files a/Resources/Textures/Structures/Doors/Airlocks/Standard/syndicate.rsi/welded.png and b/Resources/Textures/Structures/Doors/Airlocks/Standard/syndicate.rsi/welded.png differ