From 9a7a45a2c5d629ac3bb48e8f6e42ef67637f0bb6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=86=D0=B2=D0=B0=D0=BD=20=D0=9E=D0=BD=D1=96=D1=89=D0=B5?= =?UTF-8?q?=D0=BD=D0=BA=D0=BE?= Date: Sun, 29 Dec 2024 20:54:00 +0300 Subject: [PATCH 01/20] - added description for asperts that need it --- Content.Server/_White/UnsafePseudoIoC.cs | 1 + 1 file changed, 1 insertion(+) diff --git a/Content.Server/_White/UnsafePseudoIoC.cs b/Content.Server/_White/UnsafePseudoIoC.cs index f0a423f0e4..2c55b065cc 100644 --- a/Content.Server/_White/UnsafePseudoIoC.cs +++ b/Content.Server/_White/UnsafePseudoIoC.cs @@ -9,6 +9,7 @@ public static class UnsafePseudoIoC // Я НАНАВИЖУ IOCMAANGERRESOLVEPOSH public static void Initialize() { ConfigurationManager = IoCManager.Resolve(); + ChatHelper.Initialize(IoCManager.Resolve(), IoCManager.Resolve());// heh IOCMAANGERRESOLVEPOSHEL NAHUI } } From fbae9f1027091a1a77e20e0756a2556df8cdcaaa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=86=D0=B2=D0=B0=D0=BD=20=D0=9E=D0=BD=D1=96=D1=89=D0=B5?= =?UTF-8?q?=D0=BD=D0=BA=D0=BE?= Date: Sun, 29 Dec 2024 20:54:34 +0300 Subject: [PATCH 02/20] huh? --- .../AspectsSystem/Aspects/BattledAspect.cs | 2 ++ .../AspectsSystem/Aspects/CatEarsAspect.cs | 2 ++ .../AspectsSystem/Aspects/DancingAspect.cs | 2 ++ .../AspectsSystem/Aspects/DrunkAspect.cs | 5 +++ .../Aspects/FastAndFuriousAspect.cs | 2 ++ .../AspectsSystem/Aspects/ImmersiveAspect.cs | 10 ++---- .../Aspects/RandomAccentAspect.cs | 4 +-- .../Aspects/RandomAppearanceAspect.cs | 2 ++ .../AspectsSystem/Aspects/RandomItemAspect.cs | 2 ++ .../AspectsSystem/Aspects/SkeletonAspect.cs | 4 +++ .../_White/AspectsSystem/Base/ChatHelper.cs | 33 +++++++++++++++++++ Content.Server/_White/UnsafePseudoIoC.cs | 7 ++-- Resources/Locale/ru-RU/_white/aspects.ftl | 9 +++++ 13 files changed, 73 insertions(+), 11 deletions(-) create mode 100644 Content.Server/_White/AspectsSystem/Base/ChatHelper.cs diff --git a/Content.Server/_White/AspectsSystem/Aspects/BattledAspect.cs b/Content.Server/_White/AspectsSystem/Aspects/BattledAspect.cs index 96cf45fbcc..8b0d181cb0 100644 --- a/Content.Server/_White/AspectsSystem/Aspects/BattledAspect.cs +++ b/Content.Server/_White/AspectsSystem/Aspects/BattledAspect.cs @@ -43,6 +43,7 @@ public sealed class BattledAspect : AspectSystem while (query.MoveNext(out var ent, out _)) { GiveItem(ent); + ChatHelper.SendAspectDescription(ent, Loc.GetString("battled-aspect-desc")); } } @@ -61,6 +62,7 @@ public sealed class BattledAspect : AspectSystem var mob = ev.Mob; GiveItem(mob); + ChatHelper.SendAspectDescription(mob, Loc.GetString("battled-aspect-desc")); } } diff --git a/Content.Server/_White/AspectsSystem/Aspects/CatEarsAspect.cs b/Content.Server/_White/AspectsSystem/Aspects/CatEarsAspect.cs index d75e9de395..f6ad27f73c 100644 --- a/Content.Server/_White/AspectsSystem/Aspects/CatEarsAspect.cs +++ b/Content.Server/_White/AspectsSystem/Aspects/CatEarsAspect.cs @@ -66,6 +66,7 @@ public sealed class CatEarsAspect : AspectSystem while (query.MoveNext(out var ent, out var appearance)) { AddMarkings(ent, appearance); + ChatHelper.SendAspectDescription(ent, Loc.GetString("cat-ears-aspect-desc")); } } @@ -81,6 +82,7 @@ public sealed class CatEarsAspect : AspectSystem return; AddMarkings(ev.Mob); + ChatHelper.SendAspectDescription(ev.Mob, Loc.GetString("cat-ears-aspect-desc")); } } diff --git a/Content.Server/_White/AspectsSystem/Aspects/DancingAspect.cs b/Content.Server/_White/AspectsSystem/Aspects/DancingAspect.cs index f04cf6e4e0..7d2ad4e7ac 100644 --- a/Content.Server/_White/AspectsSystem/Aspects/DancingAspect.cs +++ b/Content.Server/_White/AspectsSystem/Aspects/DancingAspect.cs @@ -28,6 +28,7 @@ public sealed class DancingAspect : AspectSystem while (query.MoveNext(out var ent, out _, out _)) { EnsureComp(ent); + ChatHelper.SendAspectDescription(ent, Loc.GetString("dancing-aspect-desc")); } } @@ -45,6 +46,7 @@ public sealed class DancingAspect : AspectSystem var mob = ev.Mob; EnsureComp(mob); + ChatHelper.SendAspectDescription(mob, Loc.GetString("dancing-aspect-desc")); } } } diff --git a/Content.Server/_White/AspectsSystem/Aspects/DrunkAspect.cs b/Content.Server/_White/AspectsSystem/Aspects/DrunkAspect.cs index 30be9f7931..d5d7c551a6 100644 --- a/Content.Server/_White/AspectsSystem/Aspects/DrunkAspect.cs +++ b/Content.Server/_White/AspectsSystem/Aspects/DrunkAspect.cs @@ -27,6 +27,8 @@ public sealed class DrunkAspect : AspectSystem while (query.MoveNext(out var ent, out _)) { _drunkSystem.TryApplyDrunkenness(ent, 50); + + ChatHelper.SendAspectDescription(ent, Loc.GetString("drunk-aspect-desc")); } } @@ -44,6 +46,9 @@ public sealed class DrunkAspect : AspectSystem var mob = ev.Mob; _drunkSystem.TryApplyDrunkenness(mob, 50); + + ChatHelper.SendAspectDescription(mob, Loc.GetString("drunk-aspect-desc")); + } } } diff --git a/Content.Server/_White/AspectsSystem/Aspects/FastAndFuriousAspect.cs b/Content.Server/_White/AspectsSystem/Aspects/FastAndFuriousAspect.cs index 9221bd23a1..979ec0463c 100644 --- a/Content.Server/_White/AspectsSystem/Aspects/FastAndFuriousAspect.cs +++ b/Content.Server/_White/AspectsSystem/Aspects/FastAndFuriousAspect.cs @@ -39,6 +39,7 @@ public sealed class FastAndFuriousAspect : AspectSystem(ent); + ChatHelper.SendAspectDescription(ent, Loc.GetString("fast-and-furious-aspect-desc")); } } @@ -53,6 +54,7 @@ public sealed class FastAndFuriousAspect : AspectSystem FuckUpEye(entity, 0.6f); AddTelescope(entity); - _playerManager.TryGetSessionByEntity(entity, out var session); - if (session != null) - _chatManager.DispatchServerMessage(session, Loc.GetString("immersive-aspect-desc")); + ChatHelper.SendAspectDescription(entity, Loc.GetString("immersive-aspect-desc")); } } @@ -83,9 +81,7 @@ public sealed class ImmersiveAspect : AspectSystem FuckUpEye(ev.Mob, 0.6f); AddTelescope(ev.Mob); - _playerManager.TryGetSessionByEntity(ev.Mob, out var session); - if (session != null) - _chatManager.DispatchServerMessage(session, Loc.GetString("immersive-aspect-desc")); + ChatHelper.SendAspectDescription(ev.Mob, Loc.GetString("immersive-aspect-desc")); } } diff --git a/Content.Server/_White/AspectsSystem/Aspects/RandomAccentAspect.cs b/Content.Server/_White/AspectsSystem/Aspects/RandomAccentAspect.cs index b443380f4a..5013dafe83 100644 --- a/Content.Server/_White/AspectsSystem/Aspects/RandomAccentAspect.cs +++ b/Content.Server/_White/AspectsSystem/Aspects/RandomAccentAspect.cs @@ -28,6 +28,7 @@ public sealed class RandomAccentAspect : AspectSystem(ent); + ChatHelper.SendAspectDescription(ent, Loc.GetString("random-appearance-aspect-desc")); } } @@ -41,6 +42,7 @@ public sealed class RandomAppearanceAspect : AspectSystem(mob); + ChatHelper.SendAspectDescription(mob, Loc.GetString("random-appearance-aspect-desc")); } } } diff --git a/Content.Server/_White/AspectsSystem/Aspects/RandomItemAspect.cs b/Content.Server/_White/AspectsSystem/Aspects/RandomItemAspect.cs index 2519e2f43d..118c2c68d9 100644 --- a/Content.Server/_White/AspectsSystem/Aspects/RandomItemAspect.cs +++ b/Content.Server/_White/AspectsSystem/Aspects/RandomItemAspect.cs @@ -30,6 +30,7 @@ public sealed class RandomItemAspect : AspectSystem while (query.MoveNext(out var ent, out _)) { GiveItem(ent, component); + ChatHelper.SendAspectDescription(ent, Loc.GetString("random-item-aspect-desc")); } } @@ -48,6 +49,7 @@ public sealed class RandomItemAspect : AspectSystem var mob = ev.Mob; GiveItem(mob, component); + ChatHelper.SendAspectDescription(mob, Loc.GetString("random-item-aspect-desc")); } } diff --git a/Content.Server/_White/AspectsSystem/Aspects/SkeletonAspect.cs b/Content.Server/_White/AspectsSystem/Aspects/SkeletonAspect.cs index 4eb958e997..2b6e0117e0 100644 --- a/Content.Server/_White/AspectsSystem/Aspects/SkeletonAspect.cs +++ b/Content.Server/_White/AspectsSystem/Aspects/SkeletonAspect.cs @@ -42,7 +42,9 @@ public sealed class SkeletonAspect : AspectSystem foreach (var ent in entitiesToPolymorph) { PolymorphEntity(ent.Key, ent.Value); + ChatHelper.SendAspectDescription(ent.Key, Loc.GetString("skeleton-aspect-desc")); } + } private void HandleLateJoin(PlayerSpawnCompleteEvent ev) @@ -57,6 +59,8 @@ public sealed class SkeletonAspect : AspectSystem return; PolymorphEntity(ev.Mob); + + ChatHelper.SendAspectDescription(ev.Mob, Loc.GetString("skeleton-aspect-desc")); } } diff --git a/Content.Server/_White/AspectsSystem/Base/ChatHelper.cs b/Content.Server/_White/AspectsSystem/Base/ChatHelper.cs new file mode 100644 index 0000000000..f736f46ed1 --- /dev/null +++ b/Content.Server/_White/AspectsSystem/Base/ChatHelper.cs @@ -0,0 +1,33 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Content.Server.Chat.Managers; +using Robust.Shared.Player; + +namespace Content.Server._White.AspectsSystem.Base +{ + public static class ChatHelper + { + [Dependency] private static ISharedPlayerManager _playerManager = default!; + [Dependency] private static IChatManager _chatManager = default!; + + + + + public static void Initialize(ISharedPlayerManager playerManager, IChatManager chatManager) + { + _playerManager = playerManager; + _chatManager = chatManager; + } + public static void SendAspectDescription(EntityUid mob, string messageKey) + { + _playerManager.TryGetSessionByEntity(mob, out var session); + if (session != null) + { + _chatManager.DispatchServerMessage(session, Loc.GetString(messageKey)); + } + } + } +} diff --git a/Content.Server/_White/UnsafePseudoIoC.cs b/Content.Server/_White/UnsafePseudoIoC.cs index 2c55b065cc..88ff739246 100644 --- a/Content.Server/_White/UnsafePseudoIoC.cs +++ b/Content.Server/_White/UnsafePseudoIoC.cs @@ -1,4 +1,7 @@ -using Robust.Shared.Configuration; +using Content.Server._White.AspectsSystem.Base; +using Content.Server.Chat.Managers; +using Robust.Shared.Configuration; +using Robust.Shared.Player; namespace Content.Server._White; @@ -9,7 +12,7 @@ public static class UnsafePseudoIoC // Я НАНАВИЖУ IOCMAANGERRESOLVEPOSH public static void Initialize() { ConfigurationManager = IoCManager.Resolve(); - ChatHelper.Initialize(IoCManager.Resolve(), IoCManager.Resolve());// heh IOCMAANGERRESOLVEPOSHEL NAHUI + ChatHelper.Initialize(IoCManager.Resolve(), IoCManager.Resolve());// heh IOCMAANGERRESOLVEPOSHEL NAHUI X2 } } diff --git a/Resources/Locale/ru-RU/_white/aspects.ftl b/Resources/Locale/ru-RU/_white/aspects.ftl index 0b898194f6..7a9dab2c84 100644 --- a/Resources/Locale/ru-RU/_white/aspects.ftl +++ b/Resources/Locale/ru-RU/_white/aspects.ftl @@ -1 +1,10 @@ immersive-aspect-desc = Для осмотра своего окружение, нажмите клавишу присмотреться/прицелиться (по умолчанию - Пробел). +skeleton-aspect-desc = temp1. +battled-aspect-desc = temp2. +cat-ears-aspect-desc = temp3. +dancing-aspect-desc = temp4. +drunk-aspect-desc = temp5. +fast-and-furious-aspect-desc = temp6. +random-accent-aspect-desc = temp7. +random-appearance-aspect-desc = temp8. +random-item-aspect-desc = temp9. \ No newline at end of file From b62f465c4135b4c610d331dea15d4d1caa8b8fa1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=86=D0=B2=D0=B0=D0=BD=20=D0=9E=D0=BD=D1=96=D1=89=D0=B5?= =?UTF-8?q?=D0=BD=D0=BA=D0=BE?= Date: Sun, 29 Dec 2024 20:59:01 +0300 Subject: [PATCH 03/20] ups --- .../_White/AspectsSystem/Aspects/RandomAccentAspect.cs | 1 + 1 file changed, 1 insertion(+) diff --git a/Content.Server/_White/AspectsSystem/Aspects/RandomAccentAspect.cs b/Content.Server/_White/AspectsSystem/Aspects/RandomAccentAspect.cs index 5013dafe83..28e251952e 100644 --- a/Content.Server/_White/AspectsSystem/Aspects/RandomAccentAspect.cs +++ b/Content.Server/_White/AspectsSystem/Aspects/RandomAccentAspect.cs @@ -44,6 +44,7 @@ public sealed class RandomAccentAspect : AspectSystem Date: Sun, 5 Jan 2025 05:34:44 +0300 Subject: [PATCH 04/20] descriptions --- Resources/Locale/ru-RU/_white/aspects.ftl | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/Resources/Locale/ru-RU/_white/aspects.ftl b/Resources/Locale/ru-RU/_white/aspects.ftl index 7a9dab2c84..a9ae84c11e 100644 --- a/Resources/Locale/ru-RU/_white/aspects.ftl +++ b/Resources/Locale/ru-RU/_white/aspects.ftl @@ -1,10 +1,10 @@ immersive-aspect-desc = Для осмотра своего окружение, нажмите клавишу присмотреться/прицелиться (по умолчанию - Пробел). -skeleton-aspect-desc = temp1. -battled-aspect-desc = temp2. -cat-ears-aspect-desc = temp3. -dancing-aspect-desc = temp4. -drunk-aspect-desc = temp5. -fast-and-furious-aspect-desc = temp6. -random-accent-aspect-desc = temp7. -random-appearance-aspect-desc = temp8. -random-item-aspect-desc = temp9. \ No newline at end of file +skeleton-aspect-desc = Все персонажи стали скелетами. +battled-aspect-desc = Всем игрокам выдано случайное оружие. +cat-ears-aspect-desc = Котячьи ушки! Уиииии!. +dancing-aspect-desc = Все персонажи находятся в танце. +drunk-aspect-desc = Все персонажи пьяны. +fast-and-furious-aspect-desc = Все персонажи ускоряются. +random-accent-aspect-desc = Все персонажи получили случайный акцент. +random-appearance-aspect-desc = Все персонажи получили случайную внешность. +random-item-aspect-desc = Все персонажи получили случайный предмет. \ No newline at end of file From 6d6390c961b5cfb992dd76a0bab7d72cdc179528 Mon Sep 17 00:00:00 2001 From: BIGZi0348 Date: Sun, 5 Jan 2025 13:23:32 +0300 Subject: [PATCH 05/20] =?UTF-8?q?=D0=9E=D0=BF=D0=BE=D0=B2=D0=B5=D1=89?= =?UTF-8?q?=D0=B5=D0=BD=D0=B8=D1=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Resources/Locale/ru-RU/alerts/alerts.ftl | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/Resources/Locale/ru-RU/alerts/alerts.ftl b/Resources/Locale/ru-RU/alerts/alerts.ftl index eae57111eb..79d4449e29 100644 --- a/Resources/Locale/ru-RU/alerts/alerts.ftl +++ b/Resources/Locale/ru-RU/alerts/alerts.ftl @@ -91,7 +91,10 @@ alerts-pulling-name = Вы тянете alerts-pulling-desc = Вы что-то тянете. Щелкните по иконке, чтобы перестать. alerts-bleed-name = [color=red]Кровотечение[/color] -alerts-bleeding-desc = У вас [color=#C10000]кровотечение[/color], вколите [color=#3D9CBF]экстренный медипен[/color] или перебинтуйтесь. +alerts-bleed-desc = У вас [color=#C10000]кровотечение[/color], вколите [color=#3D9CBF]экстренный медипен[/color] или перебинтуйтесь. + +alerts-bleeding-name = { alerts-bleed-name } +alerts-bleeding-desc = { alerts-bleed-desc } alerts-pacified-name = [color=green]Пацифизм[/color] alerts-pacified-desc = Вы чувствуете себя умиротворенно и не можете вредить живым существам. From ea49e9e6e97afa431e343cdf29cfafa2a1428ab6 Mon Sep 17 00:00:00 2001 From: BIGZi0348 Date: Sun, 5 Jan 2025 13:32:58 +0300 Subject: [PATCH 06/20] =?UTF-8?q?=D0=98=D0=BD=D1=81=D0=BF=D0=B5=D0=BA?= =?UTF-8?q?=D1=82=D0=BE=D1=80=20=D1=82=D0=B5=D0=BF=D0=B5=D1=80=D1=8C=20?= =?UTF-8?q?=D1=81=D1=83=D1=89=D0=B5=D1=81=D1=82=D0=B2=D1=83=D0=B5=D1=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Resources/Prototypes/Roles/Jobs/Justice/inspector.yml | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/Resources/Prototypes/Roles/Jobs/Justice/inspector.yml b/Resources/Prototypes/Roles/Jobs/Justice/inspector.yml index 11d85d6138..03f5c13fb8 100644 --- a/Resources/Prototypes/Roles/Jobs/Justice/inspector.yml +++ b/Resources/Prototypes/Roles/Jobs/Justice/inspector.yml @@ -14,17 +14,28 @@ time: 36000 #10 hrs - !type:AgeRequirement requiredAge: 20 + - !type:SpeciesRequirement + species: + - Human + - Felinid + weight: 10 icon: "JobIconInspector" arrivalNotificationPrototype: InspectorArrivalNotification supervisors: job-supervisors-captain whitelistedSpecies: - Human + - Felinid + canBeAntag: true access: - Service - Lawyer - Brig - Maintenance - Command + special: + - !type:AddComponentSpecial + components: + - type: CommandStaff - type: startingGear id: InspectorGear From 5908b26c449acd23f888e088c27e829c8e980e27 Mon Sep 17 00:00:00 2001 From: BIGZi0348 Date: Sun, 5 Jan 2025 13:47:50 +0300 Subject: [PATCH 07/20] =?UTF-8?q?=D0=93=D0=B5=D0=BD=D0=BE=D0=BA=D1=80?= =?UTF-8?q?=D0=B0=D0=B4=D1=8B=20=D0=B8=20=D0=BA=D0=B0=D0=BA=20=D0=B8=D1=85?= =?UTF-8?q?=20=D0=BE=D0=B1=D0=BD=D0=B0=D1=80=D1=83=D0=B6=D0=B8=D1=82=D1=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Locale/ru-RU/_white/changeling/changeling-entities.ftl | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Resources/Locale/ru-RU/_white/changeling/changeling-entities.ftl b/Resources/Locale/ru-RU/_white/changeling/changeling-entities.ftl index 89f3a8eb2e..a03e0dc94c 100644 --- a/Resources/Locale/ru-RU/_white/changeling/changeling-entities.ftl +++ b/Resources/Locale/ru-RU/_white/changeling/changeling-entities.ftl @@ -81,3 +81,6 @@ ent-TentacleArmGun = рука-щупальце ent-AbsorbMoreDnaObjective = Поглотите больше людей, чем кто-либо еще в Улье .desc = Поглотите столько, сколько сможете. + +ent-ChangelingShopImplant = неестественный орган + .desc = Магазин генокрада реализован как имплант и при попытке его извлечь пусть игроки видят имя - неестественный орган. From 87bdfd2e3ca7f4281cc4029880f130023e274e19 Mon Sep 17 00:00:00 2001 From: BIGZi0348 Date: Sun, 5 Jan 2025 13:51:01 +0300 Subject: [PATCH 08/20] =?UTF-8?q?=D0=A2=D0=B5=D0=BC=D0=BF=D0=B5=D1=80?= =?UTF-8?q?=D0=B0=D1=82=D1=83=D1=80=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ru-RU/chemistry/components/solution-scanner-component.ftl | 1 + 1 file changed, 1 insertion(+) diff --git a/Resources/Locale/ru-RU/chemistry/components/solution-scanner-component.ftl b/Resources/Locale/ru-RU/chemistry/components/solution-scanner-component.ftl index a5fa5fb2f2..37df4c8230 100644 --- a/Resources/Locale/ru-RU/chemistry/components/solution-scanner-component.ftl +++ b/Resources/Locale/ru-RU/chemistry/components/solution-scanner-component.ftl @@ -3,3 +3,4 @@ scannable-solution-verb-message = Изучить химический соста scannable-solution-main-text = Содержит следующие химикаты: scannable-solution-empty-container = Не содержит химических веществ. scannable-solution-chemical = - {$amount}ед. [color={$color}]{$type}[/color] +scannable-solution-temperature = Температура раствора: { $temperature }K From 07cec4363851df862ba22df90c3b5c6cd61e4d24 Mon Sep 17 00:00:00 2001 From: BIGZi0348 Date: Sun, 5 Jan 2025 13:52:45 +0300 Subject: [PATCH 09/20] =?UTF-8?q?=D0=9C=D0=B5=D1=82=D0=B0=D1=82=D0=B5?= =?UTF-8?q?=D0=BB=D1=8C=D0=BD=D0=BE=D0=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Resources/Locale/ru-RU/damage/damage-examine.ftl | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Resources/Locale/ru-RU/damage/damage-examine.ftl b/Resources/Locale/ru-RU/damage/damage-examine.ftl index b466601c2e..8d498a2854 100644 --- a/Resources/Locale/ru-RU/damage/damage-examine.ftl +++ b/Resources/Locale/ru-RU/damage/damage-examine.ftl @@ -1,9 +1,12 @@ # Damage examines damage-examinable-verb-text = Повреждения damage-examinable-verb-message = Изучить показатели урона. + damage-hitscan = хитскан damage-projectile = снаряд damage-melee = ближний бой +damage-throw = метательное + damage-examine = Наносит следующие повреждения: damage-examine-type = Наносит следующие повреждения ({ $type }): damage-value = From 783cb03f847ec7826ac04fb7c3d5763040b9cbee Mon Sep 17 00:00:00 2001 From: BIGZi0348 Date: Sun, 5 Jan 2025 15:21:38 +0300 Subject: [PATCH 10/20] =?UTF-8?q?=D0=9C=D0=B4=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Resources/Prototypes/_White/Aspects/Aspects.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Resources/Prototypes/_White/Aspects/Aspects.yml b/Resources/Prototypes/_White/Aspects/Aspects.yml index 49c0b693ea..f58eb5724e 100644 --- a/Resources/Prototypes/_White/Aspects/Aspects.yml +++ b/Resources/Prototypes/_White/Aspects/Aspects.yml @@ -374,6 +374,6 @@ components: - type: Aspect name: "DeleteVendingMachineAspect" - description: "Некий Жабак украл все торговые автоматы!" + description: "Какой-то смышлённый агент синдиката украл все торговые автоматы!" weight: 3 - type: DeleteVendingMachine From 206829620843477493f487461b61f53a263aead9 Mon Sep 17 00:00:00 2001 From: BIGZi0348 Date: Sun, 5 Jan 2025 16:53:02 +0300 Subject: [PATCH 11/20] =?UTF-8?q?=D0=9F=D0=BE=D0=B4=D0=BA=D1=80=D1=83?= =?UTF-8?q?=D1=82=D0=BA=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../_White/RandomArtifacts/RandomArtifactsSystem.cs | 6 +++--- Content.Shared/_White/WhiteCVars.cs | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Content.Server/_White/RandomArtifacts/RandomArtifactsSystem.cs b/Content.Server/_White/RandomArtifacts/RandomArtifactsSystem.cs index 69053520ad..f97fd93f9a 100644 --- a/Content.Server/_White/RandomArtifacts/RandomArtifactsSystem.cs +++ b/Content.Server/_White/RandomArtifacts/RandomArtifactsSystem.cs @@ -23,7 +23,7 @@ public sealed class RandomArtifactsSystem : EntitySystem [Dependency] private readonly StationSystem _station = default!; [Dependency] private readonly IComponentFactory _componentFactory = default!; - private float _itemToArtifactRatio; // from 0 to 100. In % percents. Default is 0.4% + private float _itemToArtifactRatio; // from 0 to 100. In % percents. Default is 0.5% private bool _artifactsEnabled; public override void Initialize() @@ -76,7 +76,7 @@ public sealed class RandomArtifactsSystem : EntitySystem continue; // var artifactComponent = EnsureComp(entity); - var comp = (ArtifactComponent) _componentFactory.GetComponent("Artifact"); + var comp = (ArtifactComponent)_componentFactory.GetComponent("Artifact"); comp.Owner = entity; _artifactsSystem.SafeRandomizeArtifact(entity, ref comp); AddComp(entity, comp); @@ -88,7 +88,7 @@ public sealed class RandomArtifactsSystem : EntitySystem private HashSet GetPercentageOfHashSet(List sourceList, float percentage) { - var countToAdd = (int) Math.Round((double) sourceList.Count * percentage / 100); + var countToAdd = (int)Math.Round((double)sourceList.Count * percentage / 100); return sourceList.Where(x => !Transform(x.Owner).Anchored).Take(countToAdd).ToHashSet(); } diff --git a/Content.Shared/_White/WhiteCVars.cs b/Content.Shared/_White/WhiteCVars.cs index 851d84167c..842b5524d2 100644 --- a/Content.Shared/_White/WhiteCVars.cs +++ b/Content.Shared/_White/WhiteCVars.cs @@ -418,7 +418,7 @@ public sealed class WhiteCVars CVarDef.Create("white.random_artifacts_enabled", true, CVar.SERVERONLY); public static readonly CVarDef ItemToArtifactRatio = - CVarDef.Create("white.random_artifacts_ratio", 0.4f, CVar.SERVERONLY); + CVarDef.Create("white.random_artifacts_ratio", 0.5f, CVar.SERVERONLY); public static readonly CVarDef ACWebhook = CVarDef.Create("ac.webhook", "", CVar.SERVERONLY); From ce9b8af5605cb2d71585d3c61754a3f02724bbc9 Mon Sep 17 00:00:00 2001 From: BIGZi0348 Date: Sun, 5 Jan 2025 18:37:53 +0300 Subject: [PATCH 12/20] =?UTF-8?q?=D0=A3=D0=B2=D1=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../AspectsSystem/Aspects/BattledAspect.cs | 10 +++--- .../AspectsSystem/Aspects/CatEarsAspect.cs | 24 ++++++------- .../AspectsSystem/Aspects/DancingAspect.cs | 5 +-- .../AspectsSystem/Aspects/DrunkAspect.cs | 6 ++-- .../Aspects/FastAndFuriousAspect.cs | 4 +-- .../AspectsSystem/Aspects/ImmersiveAspect.cs | 11 ++---- .../Aspects/RandomAccentAspect.cs | 4 +-- .../Aspects/RandomAppearanceAspect.cs | 6 ++-- .../AspectsSystem/Aspects/RandomItemAspect.cs | 8 ++--- .../AspectsSystem/Aspects/SkeletonAspect.cs | 6 ++-- .../_White/AspectsSystem/Base/ChatHelper.cs | 34 ++++++------------- Content.Server/_White/UnsafePseudoIoC.cs | 1 - Resources/Locale/ru-RU/_white/aspects.ftl | 16 ++++----- 13 files changed, 57 insertions(+), 78 deletions(-) diff --git a/Content.Server/_White/AspectsSystem/Aspects/BattledAspect.cs b/Content.Server/_White/AspectsSystem/Aspects/BattledAspect.cs index 8b0d181cb0..5ceb47b97a 100644 --- a/Content.Server/_White/AspectsSystem/Aspects/BattledAspect.cs +++ b/Content.Server/_White/AspectsSystem/Aspects/BattledAspect.cs @@ -18,6 +18,7 @@ public sealed class BattledAspect : AspectSystem [Dependency] private readonly IPrototypeManager _prototypeManager = default!; [Dependency] private readonly SharedHandsSystem _handsSystem = default!; [Dependency] private readonly IRobustRandom _robustRandom = default!; + [Dependency] private readonly ChatHelper _chatHelper = default!; private NonPeacefulRoundItemsPrototype _nonPeacefulRoundItemsPrototype = default!; @@ -32,7 +33,7 @@ public sealed class BattledAspect : AspectSystem { base.Started(uid, component, gameRule, args); - var prototypes = _prototypeManager.EnumeratePrototypes().ToList(); + var prototypes = _prototypeManager.EnumeratePrototypes().ToList(); if (prototypes.Count == 0) ForceEndSelf(uid, gameRule); @@ -43,7 +44,6 @@ public sealed class BattledAspect : AspectSystem while (query.MoveNext(out var ent, out _)) { GiveItem(ent); - ChatHelper.SendAspectDescription(ent, Loc.GetString("battled-aspect-desc")); } } @@ -62,7 +62,7 @@ public sealed class BattledAspect : AspectSystem var mob = ev.Mob; GiveItem(mob); - ChatHelper.SendAspectDescription(mob, Loc.GetString("battled-aspect-desc")); + _chatHelper.SendAspectDescription(mob, Loc.GetString("battled-aspect-desc")); } } @@ -74,10 +74,10 @@ public sealed class BattledAspect : AspectSystem var transform = CompOrNull(player); - if(transform == null) + if (transform == null) return; - if(!HasComp(player)) + if (!HasComp(player)) return; var weaponEntity = EntityManager.SpawnEntity(item, transform.Coordinates); diff --git a/Content.Server/_White/AspectsSystem/Aspects/CatEarsAspect.cs b/Content.Server/_White/AspectsSystem/Aspects/CatEarsAspect.cs index f6ad27f73c..9f366d1b47 100644 --- a/Content.Server/_White/AspectsSystem/Aspects/CatEarsAspect.cs +++ b/Content.Server/_White/AspectsSystem/Aspects/CatEarsAspect.cs @@ -21,6 +21,7 @@ public sealed class CatEarsAspect : AspectSystem [Dependency] private readonly IPrototypeManager _protoMan = default!; [Dependency] private readonly IRobustRandom _random = default!; [Dependency] private readonly ChatSystem _chat = default!; + [Dependency] private readonly ChatHelper _chatHelper = default!; private MarkingPrototype _ears = default!; private MarkingPrototype _tail = default!; @@ -66,7 +67,6 @@ public sealed class CatEarsAspect : AspectSystem while (query.MoveNext(out var ent, out var appearance)) { AddMarkings(ent, appearance); - ChatHelper.SendAspectDescription(ent, Loc.GetString("cat-ears-aspect-desc")); } } @@ -82,7 +82,7 @@ public sealed class CatEarsAspect : AspectSystem return; AddMarkings(ev.Mob); - ChatHelper.SendAspectDescription(ev.Mob, Loc.GetString("cat-ears-aspect-desc")); + _chatHelper.SendAspectDescription(ev.Mob, Loc.GetString("cat-ears-aspect-desc")); } } @@ -96,18 +96,18 @@ public sealed class CatEarsAspect : AspectSystem case "Felinid": return; case "Human": - { - if (!appearance.MarkingSet.TryGetCategory(MarkingCategories.HeadTop, out var markings) || - markings.Count == 0) - AddEars(appearance); + { + if (!appearance.MarkingSet.TryGetCategory(MarkingCategories.HeadTop, out var markings) || + markings.Count == 0) + AddEars(appearance); - if (!appearance.MarkingSet.TryGetCategory(MarkingCategories.Tail, out markings) || markings.Count == 0) - AddTail(appearance); + if (!appearance.MarkingSet.TryGetCategory(MarkingCategories.Tail, out markings) || markings.Count == 0) + AddTail(appearance); - Dirty(uid, appearance); - ChangeEmotesVoice(uid, appearance); - return; - } + Dirty(uid, appearance); + ChangeEmotesVoice(uid, appearance); + return; + } default: AddEars(appearance); AddTail(appearance); diff --git a/Content.Server/_White/AspectsSystem/Aspects/DancingAspect.cs b/Content.Server/_White/AspectsSystem/Aspects/DancingAspect.cs index 7d2ad4e7ac..010bff9145 100644 --- a/Content.Server/_White/AspectsSystem/Aspects/DancingAspect.cs +++ b/Content.Server/_White/AspectsSystem/Aspects/DancingAspect.cs @@ -11,6 +11,8 @@ namespace Content.Server._White.AspectsSystem.Aspects; public sealed class DancingAspect : AspectSystem { + [Dependency] private readonly ChatHelper _chatHelper = default!; + public override void Initialize() { base.Initialize(); @@ -28,7 +30,6 @@ public sealed class DancingAspect : AspectSystem while (query.MoveNext(out var ent, out _, out _)) { EnsureComp(ent); - ChatHelper.SendAspectDescription(ent, Loc.GetString("dancing-aspect-desc")); } } @@ -46,7 +47,7 @@ public sealed class DancingAspect : AspectSystem var mob = ev.Mob; EnsureComp(mob); - ChatHelper.SendAspectDescription(mob, Loc.GetString("dancing-aspect-desc")); + _chatHelper.SendAspectDescription(mob, Loc.GetString("dancing-aspect-desc")); } } } diff --git a/Content.Server/_White/AspectsSystem/Aspects/DrunkAspect.cs b/Content.Server/_White/AspectsSystem/Aspects/DrunkAspect.cs index d5d7c551a6..3f684eac74 100644 --- a/Content.Server/_White/AspectsSystem/Aspects/DrunkAspect.cs +++ b/Content.Server/_White/AspectsSystem/Aspects/DrunkAspect.cs @@ -11,6 +11,7 @@ namespace Content.Server._White.AspectsSystem.Aspects; public sealed class DrunkAspect : AspectSystem { [Dependency] private readonly SharedDrunkSystem _drunkSystem = default!; + [Dependency] private readonly ChatHelper _chatHelper = default!; public override void Initialize() { @@ -27,8 +28,6 @@ public sealed class DrunkAspect : AspectSystem while (query.MoveNext(out var ent, out _)) { _drunkSystem.TryApplyDrunkenness(ent, 50); - - ChatHelper.SendAspectDescription(ent, Loc.GetString("drunk-aspect-desc")); } } @@ -47,8 +46,7 @@ public sealed class DrunkAspect : AspectSystem _drunkSystem.TryApplyDrunkenness(mob, 50); - ChatHelper.SendAspectDescription(mob, Loc.GetString("drunk-aspect-desc")); - + _chatHelper.SendAspectDescription(mob, Loc.GetString("drunk-aspect-desc")); } } } diff --git a/Content.Server/_White/AspectsSystem/Aspects/FastAndFuriousAspect.cs b/Content.Server/_White/AspectsSystem/Aspects/FastAndFuriousAspect.cs index 979ec0463c..57f98479bf 100644 --- a/Content.Server/_White/AspectsSystem/Aspects/FastAndFuriousAspect.cs +++ b/Content.Server/_White/AspectsSystem/Aspects/FastAndFuriousAspect.cs @@ -13,6 +13,7 @@ namespace Content.Server._White.AspectsSystem.Aspects; public sealed class FastAndFuriousAspect : AspectSystem { + [Dependency] private readonly ChatHelper _chatHelper = default!; public override void Initialize() { base.Initialize(); @@ -39,7 +40,6 @@ public sealed class FastAndFuriousAspect : AspectSystem(ent); - ChatHelper.SendAspectDescription(ent, Loc.GetString("fast-and-furious-aspect-desc")); } } @@ -54,7 +54,7 @@ public sealed class FastAndFuriousAspect : AspectSystem { - [Dependency] private readonly SharedContentEyeSystem _eye = default!; [Dependency] private readonly SharedTelescopeSystem _telescope = default!; - [Dependency] private readonly IChatManager _chatManager = default!; - [Dependency] private readonly ISharedPlayerManager _playerManager = default!; + [Dependency] private readonly ChatHelper _chatHelper = default!; public override void Initialize() { @@ -48,7 +43,7 @@ public sealed class ImmersiveAspect : AspectSystem FuckUpEye(entity, 0.6f); AddTelescope(entity); - ChatHelper.SendAspectDescription(entity, Loc.GetString("immersive-aspect-desc")); + _chatHelper.SendAspectDescription(entity, Loc.GetString("immersive-aspect-desc")); } } @@ -81,7 +76,7 @@ public sealed class ImmersiveAspect : AspectSystem FuckUpEye(ev.Mob, 0.6f); AddTelescope(ev.Mob); - ChatHelper.SendAspectDescription(ev.Mob, Loc.GetString("immersive-aspect-desc")); + _chatHelper.SendAspectDescription(ev.Mob, Loc.GetString("immersive-aspect-desc")); } } diff --git a/Content.Server/_White/AspectsSystem/Aspects/RandomAccentAspect.cs b/Content.Server/_White/AspectsSystem/Aspects/RandomAccentAspect.cs index 28e251952e..ab09d3aa27 100644 --- a/Content.Server/_White/AspectsSystem/Aspects/RandomAccentAspect.cs +++ b/Content.Server/_White/AspectsSystem/Aspects/RandomAccentAspect.cs @@ -13,6 +13,7 @@ namespace Content.Server._White.AspectsSystem.Aspects; public sealed class RandomAccentAspect : AspectSystem { [Dependency] private readonly IRobustRandom _random = default!; + [Dependency] private readonly ChatHelper _chatHelper = default!; public override void Initialize() { @@ -28,7 +29,6 @@ public sealed class RandomAccentAspect : AspectSystem { + [Dependency] private readonly ChatHelper _chatHelper = default!; public override void Initialize() { base.Initialize(); - SubscribeLocalEvent(HandleLateJoin, after: new [] {typeof(StationRecordsSystem)}); + SubscribeLocalEvent(HandleLateJoin, after: new[] { typeof(StationRecordsSystem) }); } protected override void Started(EntityUid uid, RandomAppearanceAspectComponent component, GameRuleComponent gameRule, GameRuleStartedEvent args) @@ -24,7 +25,6 @@ public sealed class RandomAppearanceAspect : AspectSystem(ent); - ChatHelper.SendAspectDescription(ent, Loc.GetString("random-appearance-aspect-desc")); } } @@ -42,7 +42,7 @@ public sealed class RandomAppearanceAspect : AspectSystem(mob); - ChatHelper.SendAspectDescription(mob, Loc.GetString("random-appearance-aspect-desc")); + _chatHelper.SendAspectDescription(mob, Loc.GetString("random-appearance-aspect-desc")); } } } diff --git a/Content.Server/_White/AspectsSystem/Aspects/RandomItemAspect.cs b/Content.Server/_White/AspectsSystem/Aspects/RandomItemAspect.cs index 118c2c68d9..92034df319 100644 --- a/Content.Server/_White/AspectsSystem/Aspects/RandomItemAspect.cs +++ b/Content.Server/_White/AspectsSystem/Aspects/RandomItemAspect.cs @@ -14,6 +14,7 @@ public sealed class RandomItemAspect : AspectSystem { [Dependency] private readonly SharedHandsSystem _handsSystem = default!; [Dependency] private readonly RandomGiftSystem _giftSystem = default!; + [Dependency] private readonly ChatHelper _chatHelper = default!; public override void Initialize() { @@ -30,7 +31,6 @@ public sealed class RandomItemAspect : AspectSystem while (query.MoveNext(out var ent, out _)) { GiveItem(ent, component); - ChatHelper.SendAspectDescription(ent, Loc.GetString("random-item-aspect-desc")); } } @@ -49,7 +49,7 @@ public sealed class RandomItemAspect : AspectSystem var mob = ev.Mob; GiveItem(mob, component); - ChatHelper.SendAspectDescription(mob, Loc.GetString("random-item-aspect-desc")); + _chatHelper.SendAspectDescription(mob, Loc.GetString("random-item-aspect-desc")); } } @@ -64,10 +64,10 @@ public sealed class RandomItemAspect : AspectSystem var transform = CompOrNull(player); - if(transform == null) + if (transform == null) return; - if(!HasComp(player)) + if (!HasComp(player)) return; var weaponEntity = EntityManager.SpawnEntity(component.Item, transform.Coordinates); diff --git a/Content.Server/_White/AspectsSystem/Aspects/SkeletonAspect.cs b/Content.Server/_White/AspectsSystem/Aspects/SkeletonAspect.cs index 2b6e0117e0..3abea428ef 100644 --- a/Content.Server/_White/AspectsSystem/Aspects/SkeletonAspect.cs +++ b/Content.Server/_White/AspectsSystem/Aspects/SkeletonAspect.cs @@ -13,6 +13,7 @@ namespace Content.Server._White.AspectsSystem.Aspects; public sealed class SkeletonAspect : AspectSystem { + [Dependency] private readonly ChatHelper _chatHelper = default!; // [Dependency] private readonly IPrototypeManager _protoMan = default!; // [Dependency] private readonly PolymorphSystem _polymorph = default!; // [Dependency] private readonly HumanoidAppearanceSystem _humanoidAppearance = default!; @@ -42,9 +43,8 @@ public sealed class SkeletonAspect : AspectSystem foreach (var ent in entitiesToPolymorph) { PolymorphEntity(ent.Key, ent.Value); - ChatHelper.SendAspectDescription(ent.Key, Loc.GetString("skeleton-aspect-desc")); } - + } private void HandleLateJoin(PlayerSpawnCompleteEvent ev) @@ -60,7 +60,7 @@ public sealed class SkeletonAspect : AspectSystem PolymorphEntity(ev.Mob); - ChatHelper.SendAspectDescription(ev.Mob, Loc.GetString("skeleton-aspect-desc")); + _chatHelper.SendAspectDescription(ev.Mob, Loc.GetString("skeleton-aspect-desc")); } } diff --git a/Content.Server/_White/AspectsSystem/Base/ChatHelper.cs b/Content.Server/_White/AspectsSystem/Base/ChatHelper.cs index f736f46ed1..045ff1fff1 100644 --- a/Content.Server/_White/AspectsSystem/Base/ChatHelper.cs +++ b/Content.Server/_White/AspectsSystem/Base/ChatHelper.cs @@ -1,33 +1,19 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; using Content.Server.Chat.Managers; using Robust.Shared.Player; -namespace Content.Server._White.AspectsSystem.Base +namespace Content.Server._White.AspectsSystem.Base; + +public sealed class ChatHelper : EntitySystem { - public static class ChatHelper + [Dependency] private readonly ISharedPlayerManager _playerManager = default!; + [Dependency] private readonly IChatManager _chatManager = default!; + + public void SendAspectDescription(EntityUid mob, string messageKey) { - [Dependency] private static ISharedPlayerManager _playerManager = default!; - [Dependency] private static IChatManager _chatManager = default!; - - - - - public static void Initialize(ISharedPlayerManager playerManager, IChatManager chatManager) + _playerManager.TryGetSessionByEntity(mob, out var session); + if (session != null) { - _playerManager = playerManager; - _chatManager = chatManager; - } - public static void SendAspectDescription(EntityUid mob, string messageKey) - { - _playerManager.TryGetSessionByEntity(mob, out var session); - if (session != null) - { - _chatManager.DispatchServerMessage(session, Loc.GetString(messageKey)); - } + _chatManager.DispatchServerMessage(session, Loc.GetString(messageKey)); } } } diff --git a/Content.Server/_White/UnsafePseudoIoC.cs b/Content.Server/_White/UnsafePseudoIoC.cs index 88ff739246..e22414eb4a 100644 --- a/Content.Server/_White/UnsafePseudoIoC.cs +++ b/Content.Server/_White/UnsafePseudoIoC.cs @@ -12,7 +12,6 @@ public static class UnsafePseudoIoC // Я НАНАВИЖУ IOCMAANGERRESOLVEPOSH public static void Initialize() { ConfigurationManager = IoCManager.Resolve(); - ChatHelper.Initialize(IoCManager.Resolve(), IoCManager.Resolve());// heh IOCMAANGERRESOLVEPOSHEL NAHUI X2 } } diff --git a/Resources/Locale/ru-RU/_white/aspects.ftl b/Resources/Locale/ru-RU/_white/aspects.ftl index a9ae84c11e..22c9f07c79 100644 --- a/Resources/Locale/ru-RU/_white/aspects.ftl +++ b/Resources/Locale/ru-RU/_white/aspects.ftl @@ -1,10 +1,10 @@ immersive-aspect-desc = Для осмотра своего окружение, нажмите клавишу присмотреться/прицелиться (по умолчанию - Пробел). -skeleton-aspect-desc = Все персонажи стали скелетами. -battled-aspect-desc = Всем игрокам выдано случайное оружие. -cat-ears-aspect-desc = Котячьи ушки! Уиииии!. -dancing-aspect-desc = Все персонажи находятся в танце. -drunk-aspect-desc = Все персонажи пьяны. -fast-and-furious-aspect-desc = Все персонажи ускоряются. -random-accent-aspect-desc = Все персонажи получили случайный акцент. +skeleton-aspect-desc = Из-за обстоятельств на станции - все персонажи стали скелетами. +battled-aspect-desc = Чтобы то ни было ранее, но у вас с собой оказалось случайное оружие. +cat-ears-aspect-desc = Из-за ошибки в системе клонирования на ЦК все члены экипажа стали походить на фелинидов. +dancing-aspect-desc = Федерация Волшебников прокляла всех работников этой станции на танец до смерти. +drunk-aspect-desc = Ваш персонаж слишком хорошо отгулял в своё свободное время. +fast-and-furious-aspect-desc = Из-за обстоятельств на станции - все персонажи передвигаются быстрее обычного. +random-accent-aspect-desc = Из-за обстоятельств на станции - все персонажи получили случайный акцент. random-appearance-aspect-desc = Все персонажи получили случайную внешность. -random-item-aspect-desc = Все персонажи получили случайный предмет. \ No newline at end of file +random-item-aspect-desc = НаноТрейзен выдало всем случайный предмет. From e0987b782c942b9fca8304c02509c9c1e1c35455 Mon Sep 17 00:00:00 2001 From: BIGZi0348 Date: Sun, 5 Jan 2025 19:12:26 +0300 Subject: [PATCH 13/20] =?UTF-8?q?=D0=A3=D1=85=20=D1=82=D1=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Aspects/FastAndFuriousAspect.cs | 15 ++++-- .../AspectsSystem/Base/AspectComponent.cs | 2 + .../_White/AspectsSystem/Base/AspectSystem.cs | 17 ++++--- .../Prototypes/_White/Aspects/Aspects.yml | 46 +++++++++++-------- 4 files changed, 52 insertions(+), 28 deletions(-) diff --git a/Content.Server/_White/AspectsSystem/Aspects/FastAndFuriousAspect.cs b/Content.Server/_White/AspectsSystem/Aspects/FastAndFuriousAspect.cs index 57f98479bf..6b2d02d10b 100644 --- a/Content.Server/_White/AspectsSystem/Aspects/FastAndFuriousAspect.cs +++ b/Content.Server/_White/AspectsSystem/Aspects/FastAndFuriousAspect.cs @@ -50,11 +50,18 @@ public sealed class FastAndFuriousAspect : AspectSystem(); + while (query.MoveNext(out var ruleEntity, out _, out var gameRule)) + { + if (!GameTicker.IsGameRuleAdded(ruleEntity, gameRule)) + continue; - ModifySpeedIfActive(ev.Mob); - _chatHelper.SendAspectDescription(ev.Mob, Loc.GetString("fast-and-furious-aspect-desc")); + if (!ev.LateJoin) + return; + + ModifySpeedIfActive(ev.Mob); + _chatHelper.SendAspectDescription(ev.Mob, Loc.GetString("fast-and-furious-aspect-desc")); + } } private void ModifySpeedIfActive(EntityUid mob) diff --git a/Content.Server/_White/AspectsSystem/Base/AspectComponent.cs b/Content.Server/_White/AspectsSystem/Base/AspectComponent.cs index 0caf162d08..a26bf964d3 100644 --- a/Content.Server/_White/AspectsSystem/Base/AspectComponent.cs +++ b/Content.Server/_White/AspectsSystem/Base/AspectComponent.cs @@ -12,6 +12,8 @@ public sealed partial class AspectComponent : Component [DataField] public string? Requires; + [DataField] public string? Sender; + [DataField] public float Weight = 1.0f; [DataField] public bool IsForbidden; diff --git a/Content.Server/_White/AspectsSystem/Base/AspectSystem.cs b/Content.Server/_White/AspectsSystem/Base/AspectSystem.cs index af51b40acd..b644e4ca62 100644 --- a/Content.Server/_White/AspectsSystem/Base/AspectSystem.cs +++ b/Content.Server/_White/AspectsSystem/Base/AspectSystem.cs @@ -66,8 +66,10 @@ public abstract class AspectSystem : GameRuleSystem where T : Component if (aspect is { Description: not null, IsHidden: false }) { - _chatSystem.DispatchGlobalAnnouncement(aspect.Description, playSound: false, - colorOverride: Color.Aquamarine); + _chatSystem.DispatchGlobalAnnouncement(aspect.Description, + sender: aspect.Sender ??= "Центральное Командование", + playSound: false, + colorOverride: Color.Aquamarine); } _audio.PlayGlobal(aspect.StartAudio, Filter.Broadcast(), true); @@ -105,14 +107,17 @@ public abstract class AspectSystem : GameRuleSystem where T : Component if (aspect is { Name: not null, IsHidden: false }) { - _chatSystem.DispatchGlobalAnnouncement($"Именем аспекта являлось: {aspect.Name}", playSound: false, - colorOverride: Color.Aquamarine); + + _chatSystem.DispatchGlobalAnnouncement($"Именем аспекта являлось: {aspect.Name}", + sender: aspect.Sender ??= "Центральное Командование", + playSound: false, + colorOverride: Color.Aquamarine); } _audio.PlayGlobal(aspect.EndAudio, Filter.Broadcast(), true); } -#region Helpers + #region Helpers /// /// Forces this aspect to end prematurely. @@ -140,5 +145,5 @@ public abstract class AspectSystem : GameRuleSystem where T : Component return grids.Count > 0; } -#endregion + #endregion } diff --git a/Resources/Prototypes/_White/Aspects/Aspects.yml b/Resources/Prototypes/_White/Aspects/Aspects.yml index 2ad69ca632..722bafbf83 100644 --- a/Resources/Prototypes/_White/Aspects/Aspects.yml +++ b/Resources/Prototypes/_White/Aspects/Aspects.yml @@ -5,7 +5,8 @@ components: - type: Aspect name: Акценты вне контроля - description: Всегда интересно, какой акцент вы услышите следующим + sender: Федерация Космических Волшебников + description: Всегда интересно, какой акцент вы услышите следующим. weight: 3 startAudio: path: /Audio/White/Aspects/accent.ogg @@ -18,7 +19,7 @@ components: - type: Aspect name: Fast and Furious - description: Люди спешат и не важно куда + description: Новейшие разработки в области фильтрации питьевой воды привели к непредвиденным результатам. КПД двигательных систем большинства органических и неорганических существ возрос на 60%! weight: 3 startAudio: path: /Audio/White/Aspects/accent.ogg @@ -58,7 +59,7 @@ components: - type: Aspect name: Drunk - description: На станции стоит явный запах вчерашнего веселья... и кажется оно только начинается + description: На станции стоит явный запах вчерашнего веселья... и кажется оно только начинается. weight: 3 startAudio: path: /Audio/White/Aspects/accent.ogg @@ -71,7 +72,7 @@ components: - type: Aspect name: Cargo Rich - description: Карго работало усердно в прошлую смену, за что они и были награждены премией в размере 100000 кредитов + description: Карго работало усердно в прошлую смену, за что они и были награждены премией в размере 100000 кредитов. weight: 2 startAudio: path: /Audio/White/Aspects/accent.ogg @@ -97,7 +98,7 @@ components: - type: Aspect name: Weak Walls - description: На стенах явно экономили + description: В связи с невыполнением экономических показателей за предыдущий финансовый период - было принято решение на экономии строительных материалов для стен. weight: 2 startAudio: path: /Audio/White/Aspects/accent.ogg @@ -110,7 +111,7 @@ components: - type: Aspect name: No engine - description: Какой-то смышлённый агент синдиката решил украсть все ваши генераторы энергии целиком + description: Какой-то смышлённый агент синдиката решил украсть все ваши генераторы энергии целиком. weight: 2 startAudio: path: /Audio/White/Aspects/accent.ogg @@ -123,7 +124,8 @@ components: - type: Aspect name: Airunlock - description: Кого волнует безопасность? Экипаж свободно может ходить по всем отсекам, ведь все шлюзы теперь для них доступны + sender: Федерация Космических Волшебников + description: Кого волнует безопасность? Экипаж свободно может ходить по всем отсекам, ведь все шлюзы теперь для них доступны. weight: 2 startAudio: path: /Audio/White/Aspects/accent.ogg @@ -137,7 +139,8 @@ components: - type: Aspect name: Bloody - description: В эту смену любая незначительная травма может оказаться летальной + sender: Федерация Космических Волшебников + description: В эту смену любая незначительная травма может оказаться летальной. weight: 2 startAudio: path: /Audio/White/Aspects/accent.ogg @@ -150,6 +153,7 @@ components: - type: Aspect name: Weak + sender: Федерация Космических Волшебников description: Удары стали слабее. Пули мягче. К чему это приведёт? weight: 1 startAudio: @@ -163,7 +167,7 @@ components: - type: Aspect name: Battled - description: Люди очень насторожены и готовы дать отпор в любую секунду + description: Люди очень насторожены и готовы дать отпор в любую секунду. weight: 1 startAudio: path: /Audio/White/Aspects/accent.ogg @@ -189,6 +193,7 @@ components: - type: Aspect name: Presents + sender: Федерация Космических Волшебников description: А вы верите в Деда Мороза? weight: 3 startAudio: @@ -202,6 +207,7 @@ components: - type: Aspect name: Dance + sender: Федерация Космических Волшебников description: Танцуют все! weight: 3 startAudio: @@ -215,7 +221,8 @@ components: - type: Aspect name: Reflect - description: Ваше отражение повсюду + sender: Федерация Космических Волшебников + description: Ваше отражение повсюду. weight: 2 startAudio: path: /Audio/White/Aspects/accent.ogg @@ -228,7 +235,8 @@ components: - type: Aspect name: Slippery - description: Постарайтесь не поскальзываться! + sender: Федерация Космических Волшебников + description: Постарайтесь не подскальзываться! weight: 2 startAudio: path: /Audio/White/Aspects/accent.ogg @@ -241,7 +249,7 @@ components: - type: Aspect name: Extra TC - description: Синдикат выделил 10 дополнительных телекристаллов для предателей + description: Синдикат выделил 10 дополнительных телекристаллов для предателей. requires: Traitors weight: 3 isHidden: true @@ -254,7 +262,8 @@ components: - type: Aspect name: Whisper - description: Из-за боли в горле речь дается вам с трудом + sender: Федерация Космических Волшебников + description: Вы слишком шумные, мы запрещаем вам повышать голос! weight: 3 startAudio: path: /Audio/White/Aspects/accent.ogg @@ -268,6 +277,7 @@ components: - type: Aspect name: Darkness + sender: Федерация Космических Волшебников description: Почему все так темно? weight: 2 startAudio: @@ -281,7 +291,7 @@ components: - type: Aspect name: Stolen Floor - description: Рабочие забыли положить плитку при строительстве станции + description: Рабочие забыли положить плитку при строительстве станции. weight: 3 startAudio: path: /Audio/White/Aspects/accent.ogg @@ -294,7 +304,7 @@ components: - type: Aspect name: Are We In Dungeon - description: В связи с невероятной хрупкостью окон было решено заменить их на стены + description: В связи с невероятной хрупкостью окон было решено заменить их на стены. weight: 3 startAudio: path: /Audio/White/Aspects/accent.ogg @@ -307,7 +317,7 @@ components: - type: Aspect name: Cat Ears And Tail - description: Из-за ошибки в системе клонирования на ЦК все члены экипажа стали походить на фелинидов + description: Из-за ошибки в системе клонирования на ЦК все члены экипажа стали походить на фелинидов. weight: 3 startAudio: path: /Audio/White/Aspects/accent.ogg @@ -333,7 +343,7 @@ components: - type: Aspect name: Random item - description: ЦК выдало каждому члену экипажа определённый предмет + description: ЦК выдало каждому члену экипажа определённый предмет. weight: 3 startAudio: path: /Audio/White/Aspects/accent.ogg @@ -346,7 +356,7 @@ components: - type: Aspect name: Immersive - description: В связи с недавними трагичными событиями экипаж станции погрузился в себя + description: В связи с недавними трагичными событиями экипаж станции погрузился в себя. weight: 3 startAudio: path: /Audio/White/Aspects/accent.ogg From f263e5f7b9722045e11ef1b38eddb73b82f35024 Mon Sep 17 00:00:00 2001 From: RavmorganButOnCocaine Date: Sun, 5 Jan 2025 16:14:52 +0000 Subject: [PATCH 14/20] Automatic changelog update --- Resources/Changelog/ChangelogWhite.yml | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/Resources/Changelog/ChangelogWhite.yml b/Resources/Changelog/ChangelogWhite.yml index 48064d86b8..22d3a78124 100644 --- a/Resources/Changelog/ChangelogWhite.yml +++ b/Resources/Changelog/ChangelogWhite.yml @@ -1,12 +1,4 @@ Entries: -- author: Valtos - changes: - - message: "\u0414\u043E\u0431\u0430\u0432\u043B\u0435\u043D \u043F\u0440\u0438\u0437\ - \u0440\u0430\u043A Krokozyabra." - type: Add - id: 151 - time: '2024-02-21T10:30:04.0000000+00:00' - url: https://api.github.com/repos/frosty-dev/ss14-core/pulls/106 - author: Valtos changes: - message: "\u0422\u0435\u043F\u0435\u0440\u044C \u043F\u0435\u0440\u0435\u0437\u0430\ @@ -8878,3 +8870,12 @@ id: 650 time: '2025-01-04T21:01:53.0000000+00:00' url: https://api.github.com/repos/frosty-dev/ss14-core/pulls/871 +- author: Ivangelion + changes: + - message: "\u041F\u0435\u0440\u0435\u0440\u0430\u0431\u043E\u0442\u0430\u043D\u044B\ + \ \u043E\u043F\u0438\u0441\u0430\u043D\u0438\u044F \u0430\u0441\u043F\u0435\u043A\ + \u0442\u043E\u0432." + type: Tweak + id: 651 + time: '2025-01-05T16:13:49.0000000+00:00' + url: https://api.github.com/repos/frosty-dev/ss14-core/pulls/860 From b95670822b58782ad0c96125d9e84d08d94b90c9 Mon Sep 17 00:00:00 2001 From: BIGZi0348 Date: Sun, 5 Jan 2025 19:34:44 +0300 Subject: [PATCH 15/20] =?UTF-8?q?=D0=9C=D0=B5=D0=BB=D0=BE=D1=87=D1=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Resources/Prototypes/Entities/Objects/Weapons/Melee/knife.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Melee/knife.yml b/Resources/Prototypes/Entities/Objects/Weapons/Melee/knife.yml index 04b5dbf346..311ce36a0a 100644 --- a/Resources/Prototypes/Entities/Objects/Weapons/Melee/knife.yml +++ b/Resources/Prototypes/Entities/Objects/Weapons/Melee/knife.yml @@ -179,7 +179,7 @@ - type: DamageOtherOnHit damage: types: - Piercing: 10 # WD + Slash: 10 # WD - type: Sprite sprite: Clothing/Head/Hats/greyflatcap.rsi - type: Clothing From a43a78b9dac1126e5f42fc85e8b9b3ca495dda37 Mon Sep 17 00:00:00 2001 From: BIGZi0348 Date: Sun, 5 Jan 2025 19:46:03 +0300 Subject: [PATCH 16/20] =?UTF-8?q?=D0=97=D0=B0=D0=BF=D1=80=D0=B5=D1=89?= =?UTF-8?q?=D0=B0=D1=8E=20=D0=BC=D1=91=D1=80=D1=82=D0=B2=D1=8B=D0=BC=20?= =?UTF-8?q?=D0=B2=D1=81=D1=82=D0=B0=D0=B2=D0=B0=D1=82=D1=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Content.Shared/Stunnable/SharedStunSystem.cs | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/Content.Shared/Stunnable/SharedStunSystem.cs b/Content.Shared/Stunnable/SharedStunSystem.cs index 7b3866791d..1c453c82d8 100644 --- a/Content.Shared/Stunnable/SharedStunSystem.cs +++ b/Content.Shared/Stunnable/SharedStunSystem.cs @@ -9,6 +9,7 @@ using Content.Shared.Database; using Content.Shared.Hands; using Content.Shared.Mobs; using Content.Shared.Mobs.Components; +using Content.Shared.Mobs.Systems; using Content.Shared.Movement.Events; using Content.Shared.Movement.Systems; using Content.Shared.Standing; @@ -29,6 +30,7 @@ public abstract class SharedStunSystem : EntitySystem [Dependency] private readonly SharedStandingStateSystem _standingState = default!; [Dependency] private readonly StatusEffectsSystem _statusEffect = default!; [Dependency] private readonly SharedContainerSystem _container = default!; + [Dependency] private readonly MobStateSystem _mobStateSystem = default!; // WD /// /// Friction modifier for knocked down players. @@ -117,7 +119,7 @@ public abstract class SharedStunSystem : EntitySystem if (!TryComp(uid, out StandingStateComponent? standing) || !(!standing.CanLieDown || standing.AutoGetUp)) // WD edit return; - if (standing.AutoGetUp && !_container.IsEntityInContainer(uid)) // WD edit + if (standing.AutoGetUp && !_container.IsEntityInContainer(uid) && _mobStateSystem.IsAlive(uid)) // WD edit { _standingState.TryStandUp(uid, standing); return; From 1229e3e97ea0a420e8a32ca15c3184d9c68bae69 Mon Sep 17 00:00:00 2001 From: BIGZi0348 Date: Sun, 5 Jan 2025 21:12:53 +0300 Subject: [PATCH 17/20] =?UTF-8?q?=D0=A3=D0=B4=D0=B0=D1=80=20=D0=BF=D0=BE?= =?UTF-8?q?=20=D1=8F=D0=B9=D1=86=D0=B0=D0=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../DirectBallsHit/DirectBallsHitComponent.cs | 22 ++++++ .../DirectBallsHit/DirectBallsHitSystem.cs | 68 +++++++++++++++++++ .../KnockDownOnHit/KnockDownOnHitSystem.cs | 18 ++--- .../Locale/ru-RU/_Engi/direct-balls-hit.ftl | 1 + .../_Engi/Entities/Objects/Misc/cane.yml | 41 +++++++++++ 5 files changed, 141 insertions(+), 9 deletions(-) create mode 100644 Content.Server/_White/_Engi/DirectBallsHit/DirectBallsHitComponent.cs create mode 100644 Content.Server/_White/_Engi/DirectBallsHit/DirectBallsHitSystem.cs create mode 100644 Resources/Locale/ru-RU/_Engi/direct-balls-hit.ftl create mode 100644 Resources/Prototypes/_White/_Engi/Entities/Objects/Misc/cane.yml diff --git a/Content.Server/_White/_Engi/DirectBallsHit/DirectBallsHitComponent.cs b/Content.Server/_White/_Engi/DirectBallsHit/DirectBallsHitComponent.cs new file mode 100644 index 0000000000..8c7d981789 --- /dev/null +++ b/Content.Server/_White/_Engi/DirectBallsHit/DirectBallsHitComponent.cs @@ -0,0 +1,22 @@ +using Content.Shared.Standing.Systems; + +namespace Content.Server._White._Engi.DirectBallsHit; + +[RegisterComponent] +public sealed partial class DirectBallsHitComponent : Component +{ + [DataField] + public TimeSpan KnockdownTime = TimeSpan.FromSeconds(2.0f); + + [DataField] + public TimeSpan JitterTime = TimeSpan.FromSeconds(2.0f); + + [DataField] + public TimeSpan StutterTime = TimeSpan.FromSeconds(2.0f); + + [DataField] + public SharedStandingStateSystem.DropHeldItemsBehavior KnockDownBehavior = SharedStandingStateSystem.DropHeldItemsBehavior.AlwaysDrop; + + [DataField] + public bool RequireWield = true; +} diff --git a/Content.Server/_White/_Engi/DirectBallsHit/DirectBallsHitSystem.cs b/Content.Server/_White/_Engi/DirectBallsHit/DirectBallsHitSystem.cs new file mode 100644 index 0000000000..49d2feb519 --- /dev/null +++ b/Content.Server/_White/_Engi/DirectBallsHit/DirectBallsHitSystem.cs @@ -0,0 +1,68 @@ +using Content.Shared.Stunnable; +using Content.Shared.Weapons.Melee.Events; +using Content.Shared.Wieldable.Components; +using Content.Shared.Jittering; +using Content.Shared.Speech.EntitySystems; +using Content.Shared.StatusEffect; +using Content.Shared.Standing; +using Content.Shared.Electrocution; +using Content.Shared.Popups; +using Content.Shared._White.Implants.NeuroControl; +using Robust.Shared.Timing; +using Content.Server.Chat.Systems; + +namespace Content.Server._White._Engi.DirectBallsHit; + +public sealed class DirectBallsHitSystem : EntitySystem +{ + [Dependency] private readonly SharedStunSystem _stun = default!; + [Dependency] private readonly SharedJitteringSystem _jitter = default!; + [Dependency] private readonly SharedStutteringSystem _stutter = default!; + [Dependency] private readonly SharedElectrocutionSystem _electrocution = default!; + [Dependency] private readonly SharedPopupSystem _popupSystem = default!; + [Dependency] private readonly ChatSystem _chat = default!; + + public override void Initialize() + { + base.Initialize(); + + SubscribeLocalEvent(OnHit); + } + + private void OnHit(Entity ent, ref MeleeHitEvent args) + { + if (ent.Comp.RequireWield) + { + if (!TryComp(args.Weapon, out var weapon)) + return; + + if (!weapon.Wielded) + return; + } + + foreach (var uid in args.HitEntities) + { + _popupSystem.PopupEntity( + Loc.GetString("direct-balls-hit", ("uid", uid)), + uid, + PopupType.SmallCaution); + + Timer.Spawn(TimeSpan.FromSeconds(0.5f), () => _chat.TryEmoteWithChat(uid, "Scream")); + + if (HasComp(uid)) + { + _electrocution.TryDoElectrocution(uid, null, 30, TimeSpan.FromSeconds(1), false, 0.5f, null, true); + continue; + } + + if (TryComp(uid, out StandingStateComponent? standingState) && standingState.CanLieDown) + _stun.TryKnockdown(uid, ent.Comp.KnockdownTime, true, behavior: ent.Comp.KnockDownBehavior); + + if (TryComp(uid, out StatusEffectsComponent? statusEffects)) + { + _jitter.DoJitter(uid, ent.Comp.JitterTime, true, status: statusEffects); + _stutter.DoStutter(uid, ent.Comp.StutterTime, true, statusEffects); + } + } + } +} diff --git a/Content.Shared/_White/Item/KnockDownOnHit/KnockDownOnHitSystem.cs b/Content.Shared/_White/Item/KnockDownOnHit/KnockDownOnHitSystem.cs index 891049ae98..912d1867e3 100644 --- a/Content.Shared/_White/Item/KnockDownOnHit/KnockDownOnHitSystem.cs +++ b/Content.Shared/_White/Item/KnockDownOnHit/KnockDownOnHitSystem.cs @@ -26,17 +26,17 @@ public sealed class KnockDownOnHitSystem : EntitySystem if (time <= TimeSpan.Zero) return; + if (ent.Comp.RequireWield) + { + if (!TryComp(args.Weapon, out var weapon)) + return; + + if (!weapon.Wielded) + return; + } + foreach (var uid in args.HitEntities) { - if (ent.Comp.RequireWield) - { - if (!TryComp(args.Weapon, out var weapon)) - continue; - - if (!weapon.Wielded) - continue; - } - _stun.TryKnockdown(uid, time, true, behavior: ent.Comp.KnockDownBehavior); } } diff --git a/Resources/Locale/ru-RU/_Engi/direct-balls-hit.ftl b/Resources/Locale/ru-RU/_Engi/direct-balls-hit.ftl new file mode 100644 index 0000000000..08d01b81a3 --- /dev/null +++ b/Resources/Locale/ru-RU/_Engi/direct-balls-hit.ftl @@ -0,0 +1 @@ +direct-balls-hit = { CAPITALIZE($uid) } получает точный удар в пах! diff --git a/Resources/Prototypes/_White/_Engi/Entities/Objects/Misc/cane.yml b/Resources/Prototypes/_White/_Engi/Entities/Objects/Misc/cane.yml new file mode 100644 index 0000000000..8791b624db --- /dev/null +++ b/Resources/Prototypes/_White/_Engi/Entities/Objects/Misc/cane.yml @@ -0,0 +1,41 @@ +- type: entity + parent: BaseItem + id: OldCane + name: трость старика + description: Изношенная деревянная трость. + components: + - type: Sprite + sprite: Objects/Weapons/Melee/cane.rsi + state: cane + - type: Item + size: Normal + storedRotation: -44 + shape: + - 0,0,0,2 + sprite: Objects/Weapons/Melee/cane.rsi + - type: Appearance + - type: MeleeWeapon + wideAnimationRotation: 45 + damage: + types: + Blunt: 5 + - type: StaminaDamageOnHit + damage: 25 + - type: Wieldable + - type: IncreaseDamageOnWield + damage: + types: + Blunt: 5 + - type: DirectBallsHit + - type: MeleeThrowOnHit + lifetime: 0.1 + speed: 3 + requireWield: true + - type: UseDelay + delay: 1 + - type: Prying + - type: Tool + qualities: + - Prying + useSound: + path: /Audio/Items/crowbar.ogg From 3d89dcef665440581a34feab1f7da79975de1349 Mon Sep 17 00:00:00 2001 From: BIGZi0348 Date: Sun, 5 Jan 2025 23:35:08 +0300 Subject: [PATCH 18/20] =?UTF-8?q?=D0=A1=D0=BB=D0=BE=D0=BC=D0=B0=D0=BB=20?= =?UTF-8?q?=D0=BA=D0=BE=D0=BB=D0=B5=D0=BD=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../_White/_Engi/Limping/LimpingComponent.cs | 27 +++++++ .../_Engi/Limping/LimpingHelperComponent.cs | 11 +++ .../_White/_Engi/Limping/LimpingSystem.cs | 80 +++++++++++++++++++ .../Entities/Objects/Weapons/Melee/cane.yml | 1 + Resources/Prototypes/Traits/disabilities.yml | 11 +++ .../_Engi/Entities/Objects/Misc/cane.yml | 12 +-- 6 files changed, 131 insertions(+), 11 deletions(-) create mode 100644 Content.Shared/_White/_Engi/Limping/LimpingComponent.cs create mode 100644 Content.Shared/_White/_Engi/Limping/LimpingHelperComponent.cs create mode 100644 Content.Shared/_White/_Engi/Limping/LimpingSystem.cs diff --git a/Content.Shared/_White/_Engi/Limping/LimpingComponent.cs b/Content.Shared/_White/_Engi/Limping/LimpingComponent.cs new file mode 100644 index 0000000000..67188e6325 --- /dev/null +++ b/Content.Shared/_White/_Engi/Limping/LimpingComponent.cs @@ -0,0 +1,27 @@ +using Robust.Shared.GameStates; +using Robust.Shared.Serialization; + +namespace Content.Shared._White._Engi.Limping; + +/// +/// WD. +/// This is used for the Limping trait. +/// +[RegisterComponent, NetworkedComponent] +public sealed partial class LimpingComponent : Component +{ + [DataField] + public float SpeedModifier = 0.3f; + +} + +[Serializable, NetSerializable] +public sealed class LimpingComponentState : ComponentState +{ + public float SpeedModifier; + + public LimpingComponentState(float speedModifier) + { + SpeedModifier = speedModifier; + } +} diff --git a/Content.Shared/_White/_Engi/Limping/LimpingHelperComponent.cs b/Content.Shared/_White/_Engi/Limping/LimpingHelperComponent.cs new file mode 100644 index 0000000000..403337d538 --- /dev/null +++ b/Content.Shared/_White/_Engi/Limping/LimpingHelperComponent.cs @@ -0,0 +1,11 @@ +namespace Content.Shared._White._Engi.Limping; + +/// +/// WD. +/// This is used for the Limping trait to reduce it. +/// +[RegisterComponent] +public sealed partial class LimpingHelperComponent : Component +{ + +} diff --git a/Content.Shared/_White/_Engi/Limping/LimpingSystem.cs b/Content.Shared/_White/_Engi/Limping/LimpingSystem.cs new file mode 100644 index 0000000000..c16de5cfc0 --- /dev/null +++ b/Content.Shared/_White/_Engi/Limping/LimpingSystem.cs @@ -0,0 +1,80 @@ +using Content.Shared.Hands; +using Content.Shared.Movement.Systems; +using Robust.Shared.Timing; +using Robust.Shared.GameStates; +using Robust.Shared.Containers; + +namespace Content.Shared._White._Engi.Limping; + +public sealed class LimpingSystem : EntitySystem +{ + [Dependency] private readonly IGameTiming _gameTiming = default!; + [Dependency] private readonly MovementSpeedModifierSystem _movementSpeed = default!; + [Dependency] private readonly SharedContainerSystem _container = default!; + + public override void Initialize() + { + SubscribeLocalEvent(OnGotEquipped); + SubscribeLocalEvent(OnGotUnequipped); + + SubscribeLocalEvent(OnRefreshMoveSpeed); + SubscribeLocalEvent(OnShutdown); + + SubscribeLocalEvent(OnGetState); + SubscribeLocalEvent(OnHandleState); + } + + private void OnShutdown(Entity ent, ref ComponentShutdown args) + { + _movementSpeed.RefreshMovementSpeedModifiers(ent); + } + + private void OnRefreshMoveSpeed(EntityUid uid, LimpingComponent component, RefreshMovementSpeedModifiersEvent args) + { + args.ModifySpeed(component.SpeedModifier, component.SpeedModifier); + } + + private void OnGotEquipped(Entity ent, ref GotEquippedHandEvent args) + { + if (_gameTiming.ApplyingState) + return; + + if (!TryComp(args.User, out var comp)) + return; + + if (_gameTiming.IsFirstTimePredicted) + comp.SpeedModifier = 0.5f; + + _movementSpeed.RefreshMovementSpeedModifiers(args.User); + } + + private void OnGotUnequipped(Entity ent, ref GotUnequippedHandEvent args) + { + if (!TryComp(args.User, out var comp)) + return; + + if (_gameTiming.IsFirstTimePredicted) + comp.SpeedModifier = 0.3f; + + _movementSpeed.RefreshMovementSpeedModifiers(args.User); + } + + private void OnGetState(EntityUid uid, LimpingComponent component, ref ComponentGetState args) + { + args.State = new LimpingComponentState(component.SpeedModifier); + } + + private void OnHandleState(EntityUid uid, LimpingComponent component, ref ComponentHandleState args) + { + if (args.Current is not LimpingComponentState state) + return; + + var diff = !MathHelper.CloseTo(component.SpeedModifier, state.SpeedModifier); + + if (diff && _container.TryGetContainingContainer(uid, out var container)) + { + component.SpeedModifier = state.SpeedModifier; + _movementSpeed.RefreshMovementSpeedModifiers(container.Owner); + } + } +} diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Melee/cane.yml b/Resources/Prototypes/Entities/Objects/Weapons/Melee/cane.yml index 9f5c32efdc..91339686d3 100644 --- a/Resources/Prototypes/Entities/Objects/Weapons/Melee/cane.yml +++ b/Resources/Prototypes/Entities/Objects/Weapons/Melee/cane.yml @@ -28,6 +28,7 @@ Blunt: 3 - type: UseDelay delay: 1 + - type: LimpingHelper # WD - type: entity name: cane blade diff --git a/Resources/Prototypes/Traits/disabilities.yml b/Resources/Prototypes/Traits/disabilities.yml index be1e981549..2cd77b880e 100644 --- a/Resources/Prototypes/Traits/disabilities.yml +++ b/Resources/Prototypes/Traits/disabilities.yml @@ -79,3 +79,14 @@ description: trait-snoring-desc components: - type: Snoring + +- type: trait # WD + id: Limping + traitGear: Cane + name: Хромота + description: Слабость в ногах мешает вам нормально передвигаться, трость может немного помочь. + blacklist: + components: + - BorgChassis + components: + - type: Limping diff --git a/Resources/Prototypes/_White/_Engi/Entities/Objects/Misc/cane.yml b/Resources/Prototypes/_White/_Engi/Entities/Objects/Misc/cane.yml index 8791b624db..c73b9acaa6 100644 --- a/Resources/Prototypes/_White/_Engi/Entities/Objects/Misc/cane.yml +++ b/Resources/Prototypes/_White/_Engi/Entities/Objects/Misc/cane.yml @@ -1,19 +1,9 @@ - type: entity - parent: BaseItem + parent: Cane id: OldCane name: трость старика description: Изношенная деревянная трость. components: - - type: Sprite - sprite: Objects/Weapons/Melee/cane.rsi - state: cane - - type: Item - size: Normal - storedRotation: -44 - shape: - - 0,0,0,2 - sprite: Objects/Weapons/Melee/cane.rsi - - type: Appearance - type: MeleeWeapon wideAnimationRotation: 45 damage: From 4e43f462597bf0d17c4fd8a63c5f29a612d4ba4d Mon Sep 17 00:00:00 2001 From: RavmorganButOnCocaine Date: Sun, 5 Jan 2025 20:41:35 +0000 Subject: [PATCH 19/20] Automatic changelog update --- Resources/Changelog/ChangelogWhite.yml | 42 +++++++++++++++++++------- 1 file changed, 31 insertions(+), 11 deletions(-) diff --git a/Resources/Changelog/ChangelogWhite.yml b/Resources/Changelog/ChangelogWhite.yml index 22d3a78124..96c53885ff 100644 --- a/Resources/Changelog/ChangelogWhite.yml +++ b/Resources/Changelog/ChangelogWhite.yml @@ -1,15 +1,4 @@ Entries: -- author: Valtos - changes: - - message: "\u0422\u0435\u043F\u0435\u0440\u044C \u043F\u0435\u0440\u0435\u0437\u0430\ - \u043F\u0443\u0441\u043A\u0438 \u0441\u0435\u0440\u0432\u0435\u0440\u0430 \u0434\ - \u043E\u043B\u0436\u043D\u044B \u0431\u044B\u0442\u044C \u043F\u043B\u0430\u0432\ - \u043D\u044B\u043C\u0438 \u0438 \u0431\u0435\u0437 \u0432\u044B\u043B\u0435\u0442\ - \u043E\u0432." - type: Add - id: 152 - time: '2024-02-21T11:07:26.0000000+00:00' - url: https://api.github.com/repos/frosty-dev/ss14-core/pulls/107 - author: Aviu changes: - message: "\u041F\u0440\u0435\u0434\u0430\u0442\u0435\u043B\u044C\u0441\u043A\u0438\ @@ -8879,3 +8868,34 @@ id: 651 time: '2025-01-05T16:13:49.0000000+00:00' url: https://api.github.com/repos/frosty-dev/ss14-core/pulls/860 +- author: BIG_ZI_348 + changes: + - message: "\u0414\u043E\u0431\u0430\u0432\u043B\u0435\u043D\u0430 \u043D\u043E\u0432\ + \u0430\u044F \u0447\u0435\u0440\u0442\u0430: \u0445\u0440\u043E\u043C\u043E\u0442\ + \u0430 (\u0438\u0434\u0451\u0442 \u0432 \u043A\u043E\u043C\u043F\u043B\u0435\ + \u043A\u0442\u0435 \u0441 \u0442\u0440\u043E\u0441\u0442\u044C\u044E)." + type: Add + - message: "\u0418\u0441\u043F\u0440\u0430\u0432\u043B\u0435\u043D\u043E \u043F\u043E\ + \u0432\u0435\u0434\u0435\u043D\u0438\u0435 \u043F\u0440\u0438 \u043F\u043E\u043F\ + \u044B\u0442\u043A\u0435 \u0430\u0432\u0442\u043E\u043C\u0430\u0442\u0438\u0447\ + \u0435\u0441\u043A\u0438 \u0432\u0441\u0442\u0430\u0442\u044C \u0431\u0443\u0434\ + \u0443\u0447\u0438 \u043C\u0451\u0440\u0442\u0432\u044B\u043C." + type: Fix + - message: "\u0418\u0441\u043F\u0440\u0430\u0432\u043B\u0435\u043D\u043E \u043E\u0442\ + \u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u0435 \u0443\u0432\u0435\u0434\ + \u043E\u043C\u043B\u0435\u043D\u0438\u044F \u043F\u0440\u0438 \u043F\u043E\u043F\ + \u044B\u0442\u043A\u0435 \u043E\u0431\u043D\u0430\u0440\u0443\u0436\u0438\u0442\ + \u044C \u0433\u0435\u043D\u043E\u043A\u0440\u0430\u0434\u0430 \u0438\u043C\u043F\ + \u043B\u0430\u043D\u0442\u0435\u0440\u043E\u043C." + type: Fix + - message: "\u0418\u043D\u0441\u043F\u0435\u043A\u0442\u043E\u0440 \u0442\u0435\u043F\ + \u0435\u0440\u044C \u044F\u0432\u043B\u044F\u0435\u0442\u0441\u044F \u0447\u0430\ + \u0441\u0442\u044C\u044E \u043A\u043E\u043C\u0430\u043D\u0434\u043E\u0432\u0430\ + \u043D\u0438\u044F." + type: Fix + - message: "\u041F\u0440\u0430\u0432\u043A\u0438 \u043F\u0435\u0440\u0435\u0432\u043E\ + \u0434\u043E\u0432 \u043C\u0435\u043B\u043E\u0447\u0435\u0439." + type: Fix + id: 652 + time: '2025-01-05T20:40:31.0000000+00:00' + url: https://api.github.com/repos/frosty-dev/ss14-core/pulls/872 From ef4803da858518d7e81bbf965f76c9ef0760c431 Mon Sep 17 00:00:00 2001 From: BIGZi0348 Date: Sun, 5 Jan 2025 23:50:49 +0300 Subject: [PATCH 20/20] =?UTF-8?q?=D0=BF=D1=80=D0=B0=D0=B2=D0=BA=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../_White/Entities/Objects/Weapons/chaplain_weapons.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Resources/Prototypes/_White/Entities/Objects/Weapons/chaplain_weapons.yml b/Resources/Prototypes/_White/Entities/Objects/Weapons/chaplain_weapons.yml index da9dfef6ae..0bee7647ac 100644 --- a/Resources/Prototypes/_White/Entities/Objects/Weapons/chaplain_weapons.yml +++ b/Resources/Prototypes/_White/Entities/Objects/Weapons/chaplain_weapons.yml @@ -347,7 +347,7 @@ - type: MeleeWeapon soundHit: path: /Audio/White/Items/hit/chainhit.ogg - range: 1.5 + range: 2 attackRate: 0.5 damage: types: