diff --git a/Content.Server/Explosion/EntitySystems/ExplosionSystem.cs b/Content.Server/Explosion/EntitySystems/ExplosionSystem.cs index 95be993a67..505a05c839 100644 --- a/Content.Server/Explosion/EntitySystems/ExplosionSystem.cs +++ b/Content.Server/Explosion/EntitySystems/ExplosionSystem.cs @@ -265,20 +265,23 @@ public sealed partial class ExplosionSystem if (!addLog) return; + var entPos = (posFound ? $"{gridPos:coordinates}" : "[Grid or Map not found]"); // WD EDIT + if (user == null) { _adminLogger.Add(LogType.Explosion, LogImpact.High, - $"{ToPrettyString(uid):entity} exploded ({typeId}) at Pos:{(posFound ? $"{gridPos:coordinates}" : "[Grid or Map not found]")} with intensity {totalIntensity} slope {slope}"); + $"{ToPrettyString(uid):entity} exploded ({typeId}) at Pos:{entPos} with intensity {totalIntensity} slope {slope}"); _chatManager.SendAdminAnnouncement(Loc.GetString("admin-chatalert-explosion-no-player", - ("entity", ToPrettyString(uid)), ("coordinates", pos), ("intensity", totalIntensity), ("slope", slope))); + ("entity", ToPrettyString(uid)), ("coordinates", entPos), ("intensity", totalIntensity), ("slope", slope))); } else { _adminLogger.Add(LogType.Explosion, LogImpact.High, - $"{ToPrettyString(user.Value):user} caused {ToPrettyString(uid):entity} to explode ({typeId}) at Pos:{(posFound ? $"{gridPos:coordinates}" : "[Grid or Map not found]")} with intensity {totalIntensity} slope {slope}"); + $"{ToPrettyString(user.Value):user} caused {ToPrettyString(uid):entity} to explode ({typeId}) at Pos:{entPos} with intensity {totalIntensity} slope {slope}"); var alertMinExplosionIntensity = _cfg.GetCVar(CCVars.AdminAlertExplosionMinIntensity); if (alertMinExplosionIntensity > -1 && totalIntensity >= alertMinExplosionIntensity) - _chat.SendAdminAlert(user.Value, $"caused {ToPrettyString(uid)} to explode ({typeId}:{totalIntensity}) at Pos:{(posFound ? $"{gridPos:coordinates}" : "[Grid or Map not found]")}"); + _chatManager.SendAdminAnnouncement(Loc.GetString("admin-chatalert-explosion-player", + ("player", $"{ToPrettyString(user.Value):user}"),("entity", ToPrettyString(uid)), ("coordinates", entPos), ("intensity", totalIntensity), ("slope", slope))); } } diff --git a/Content.Shared/RCD/Systems/RCDSystem.cs b/Content.Shared/RCD/Systems/RCDSystem.cs index 187c8d8a9d..28a47912b3 100644 --- a/Content.Shared/RCD/Systems/RCDSystem.cs +++ b/Content.Shared/RCD/Systems/RCDSystem.cs @@ -234,11 +234,13 @@ public sealed class RCDSystem : EntitySystem if (!unobstructed) return false; + var tileDef = (ContentTileDefinition) _tileDefMan[tile.Tile.TypeId]; switch (comp.Mode) { //Floor mode just needs the tile to be a space tile (subFloor) case RcdMode.Floors: - if (!tile.Tile.IsEmpty) + + if (!tile.Tile.IsEmpty && !tileDef.IsSubFloor) { _popup.PopupClient(Loc.GetString("rcd-component-cannot-build-floor-tile-not-empty-message"), uid, user); return false; @@ -260,7 +262,7 @@ public sealed class RCDSystem : EntitySystem return false; } // the turf can't be destroyed (planet probably) - var tileDef = (ContentTileDefinition) _tileDefMan[tile.Tile.TypeId]; + if (tileDef.Indestructible) { _popup.PopupClient(Loc.GetString("rcd-component-tile-indestructible-message"), uid, user); diff --git a/Resources/Locale/en-US/rcd/components/rcd-component.ftl b/Resources/Locale/en-US/rcd/components/rcd-component.ftl index b7920c9ede..f03eeaa528 100644 --- a/Resources/Locale/en-US/rcd/components/rcd-component.ftl +++ b/Resources/Locale/en-US/rcd/components/rcd-component.ftl @@ -13,6 +13,6 @@ rcd-component-no-ammo-message = The RCD is out of ammo! rcd-component-tile-obstructed-message = That tile is obstructed! rcd-component-tile-indestructible-message = That tile can't be destroyed! rcd-component-deconstruct-target-not-on-whitelist-message = You can't deconstruct that! -rcd-component-cannot-build-floor-tile-not-empty-message = You can only build a floor on space! +rcd-component-cannot-build-floor-tile-not-empty-message = You can only build a floor in space or on plating! rcd-component-cannot-build-wall-tile-not-empty-message = You cannot build a wall on space! rcd-component-cannot-build-airlock-tile-not-empty-message = Cannot build an airlock on space! diff --git a/Resources/Locale/ru-RU/chat/managers/chat-manager.ftl b/Resources/Locale/ru-RU/chat/managers/chat-manager.ftl index 4bdc6201e5..a8b8d7ea46 100644 --- a/Resources/Locale/ru-RU/chat/managers/chat-manager.ftl +++ b/Resources/Locale/ru-RU/chat/managers/chat-manager.ftl @@ -69,17 +69,22 @@ chat-speech-verb-insect-3 = щелкает chat-speech-verb-winged-1 = трепещет chat-speech-verb-winged-2 = жужжит +chat-speech-verb-winged-3 = похлопывает chat-speech-verb-slime-1 = бормочет +chat-speech-verb-slime-2 = булькает +chat-speech-verb-slime-3 = хлюпает chat-speech-verb-plant-1 = шуршит chat-speech-verb-plant-2 = скрипит +chat-speech-verb-plant-3 = трещит chat-speech-verb-robotic-1 = утверждает chat-speech-verb-robotic-2 = бипает chat-speech-verb-reptilian-1 = шипит chat-speech-verb-reptilian-2 = фыркает +chat-speech-verb-reptilian-3 = пыхтит chat-speech-verb-skeleton-1 = гремит chat-speech-verb-skeleton-2 = щелкает @@ -106,6 +111,10 @@ chat-speech-verb-ghost-2 = дышит chat-speech-verb-ghost-3 = мычит chat-speech-verb-ghost-4 = бормочет +chat-speech-verb-electricity-1 = потрескивает +chat-speech-verb-electricity-2 = гудит +chat-speech-verb-electricity-3 = скрипит + chat-manager-cooldown-warn-message_channel = Вы сможете писать { $inChat } через: { $remainingTime } сек. chat-manager-cooldown-warn-message = Вы сможете писать через { $remainingTime } сек. chat-manager-antispam-warn-message = Вы сможете повторить сообщение через { $remainingTime } сек. diff --git a/Resources/Locale/ru-RU/locales-new/autotranslate-52.ftl b/Resources/Locale/ru-RU/locales-new/autotranslate-52.ftl index f6d37990e8..51c269e051 100644 --- a/Resources/Locale/ru-RU/locales-new/autotranslate-52.ftl +++ b/Resources/Locale/ru-RU/locales-new/autotranslate-52.ftl @@ -30,11 +30,15 @@ ent-SpawnMobXenoTurret = Спавнер ксено турели .desc = "" ent-SpawnMobXenoTower = Спавнер ксено башни .desc = "" -ent-MobRandomServiceCorpse = Рандомное тело моба обслуживания - .desc = "" -ent-MobRandomEngineerCorpse = Рандомное тело моба инженера - .desc = "" -ent-MobRandomCargoCorpse = Рандомное тело моба карго - .desc = "" -ent-MobRandomMedicCorpse = Рандомное тело моба медика - .desc = "" +ent-MobRandomServiceCorpse = неизвестный лакей + .desc = "Его дни сочтены. По униформе похож на обслугу." + .suffix = "Мертвый" +ent-MobRandomEngineerCorpse = неизвестный инженер + .desc = "Его рука больше не может держать лом." + .suffix = "Мертвый" +ent-MobRandomCargoCorpse = неизвестный грузчик + .desc = "Они же не могут восстать из мертвых, да?" + .suffix = "Мертвый" +ent-MobRandomMedicCorpse = неизвестный врач + .desc = "Мазь и бинты здесь уже не помогут." + .suffix = "Мертвый" diff --git a/Resources/Locale/ru-RU/locales-new/autotranslate-53.ftl b/Resources/Locale/ru-RU/locales-new/autotranslate-53.ftl index 270e5f8d22..7c3ed0de19 100644 --- a/Resources/Locale/ru-RU/locales-new/autotranslate-53.ftl +++ b/Resources/Locale/ru-RU/locales-new/autotranslate-53.ftl @@ -1,9 +1,12 @@ -ent-MobRandomScienceCorpse = Рандомное тело моба ученого - .desc = "" -ent-MobRandomSecurityCorpse = Рандомное тело моба СБ - .desc = "" -ent-MobRandomCommandCorpse = Рандомное тело моба коммандования - .desc = "" +ent-MobRandomScienceCorpse = неизвестный ученый + .desc = "Его смерть будет самой великой загадкой." + .suffix = "Мертвый" +ent-MobRandomSecurityCorpse = неизвестный охранник + .desc = "Вы видите след ящика из-под инструментов на его затылке." + .suffix = "Мертвый" +ent-MobRandomCommandCorpse = неизвестный глава + .desc = "Возможно теперь его вещи в надежных руках?" + .suffix = "Мертвый" ent-FoodEggChickenFertilized = { ent-FoodEgg } .desc = { ent-FoodEggBase.desc } ent-FoodEggDuckFertilized = { ent-FoodEgg } diff --git a/Resources/Locale/ru-RU/rcd/components/rcd-component.ftl b/Resources/Locale/ru-RU/rcd/components/rcd-component.ftl index a150054428..f15eae7e85 100644 --- a/Resources/Locale/ru-RU/rcd/components/rcd-component.ftl +++ b/Resources/Locale/ru-RU/rcd/components/rcd-component.ftl @@ -25,6 +25,6 @@ rcd-component-no-ammo-message = В РЦД закончились заряды! rcd-component-tile-indestructible-message = Эта плитка не может быть уничтожена! rcd-component-tile-obstructed-message = Этот тайл заблокирован! rcd-component-deconstruct-target-not-on-whitelist-message = Вы не можете это деконструировать! -rcd-component-cannot-build-floor-tile-not-empty-message = Пол можно построить только в космосе! +rcd-component-cannot-build-floor-tile-not-empty-message = Пол можно построить только в космосе или на покрытии! rcd-component-cannot-build-wall-tile-not-empty-message = Вы не можете построить стену в космосе! rcd-component-cannot-build-airlock-tile-not-empty-message = Вы не можете построить шлюз в космосе! diff --git a/Resources/Locale/ru-RU/station-events/events/immovable-rod.ftl b/Resources/Locale/ru-RU/station-events/events/immovable-rod.ftl index b2bc1276b9..da6e1b327d 100644 --- a/Resources/Locale/ru-RU/station-events/events/immovable-rod.ftl +++ b/Resources/Locale/ru-RU/station-events/events/immovable-rod.ftl @@ -1 +1 @@ -station-event-immovable-rod-start-announcement = Неопознанный объект на высокой скорости движется по курсу столкновения со станцией. Воздействие неизбежно. +station-event-immovable-rod-start-announcement = Неопознанный объект на высокой скорости движется по курсу столкновения со станцией. Столкновение неизбежно.