From ecb9376d27634781f2b790878d7e167b8306a45c Mon Sep 17 00:00:00 2001 From: kerfus-owo Date: Wed, 4 Feb 2026 19:47:04 +0500 Subject: [PATCH 1/6] =?UTF-8?q?=D0=BA=D0=B0=D1=85=D1=85=D1=82=D0=B0=D0=B2?= =?UTF-8?q?=D1=8B=D0=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Component/BurrinessAccentComponent.cs | 7 +++++ .../EntitySystems/BurrinessAccentSystem.cs | 31 +++++++++++++++++++ Resources/Locale/ru-RU/ADT/traits/neutral.ftl | 3 ++ Resources/Prototypes/ADT/Traits/speech.yml | 9 ++++++ .../Prototypes/Entities/Mobs/Player/clone.yml | 1 + 5 files changed, 51 insertions(+) create mode 100644 Content.Server/ADT/Speech/Component/BurrinessAccentComponent.cs create mode 100644 Content.Server/ADT/Speech/EntitySystems/BurrinessAccentSystem.cs diff --git a/Content.Server/ADT/Speech/Component/BurrinessAccentComponent.cs b/Content.Server/ADT/Speech/Component/BurrinessAccentComponent.cs new file mode 100644 index 00000000000..eac651c2d46 --- /dev/null +++ b/Content.Server/ADT/Speech/Component/BurrinessAccentComponent.cs @@ -0,0 +1,7 @@ +namespace Content.Server.Speech.Components; + +[RegisterComponent] +public sealed partial class BurrinessAccentComponent : Component +{ + +} \ No newline at end of file diff --git a/Content.Server/ADT/Speech/EntitySystems/BurrinessAccentSystem.cs b/Content.Server/ADT/Speech/EntitySystems/BurrinessAccentSystem.cs new file mode 100644 index 00000000000..ee6b5a840ae --- /dev/null +++ b/Content.Server/ADT/Speech/EntitySystems/BurrinessAccentSystem.cs @@ -0,0 +1,31 @@ +using System.Text.RegularExpressions; +using Content.Server.Speech.Components; +using Content.Shared.Speech; +using Robust.Shared.Random; + +namespace Content.Server.Speech.EntitySystems; + +public sealed class BurrinessAccentSystem : EntitySystem +{ + [Dependency] private readonly IRobustRandom _random = default!; + + private static readonly Regex BurrRegex = new Regex("[рР]+", RegexOptions.Compiled); + + public override void Initialize() + { + base.Initialize(); + SubscribeLocalEvent(OnAccent); + } + + private void OnAccent(EntityUid uid, BurrinessAccentComponent component, AccentGetEvent args) + { + var message = args.Message; + + message = BurrRegex.Replace( + message, + match => _random.Pick(new List { "хх" }) + ); + + args.Message = message; + } +} diff --git a/Resources/Locale/ru-RU/ADT/traits/neutral.ftl b/Resources/Locale/ru-RU/ADT/traits/neutral.ftl index 9369fc788ee..ab953366556 100644 --- a/Resources/Locale/ru-RU/ADT/traits/neutral.ftl +++ b/Resources/Locale/ru-RU/ADT/traits/neutral.ftl @@ -13,6 +13,9 @@ trait-nya-accent-desc = Кажется на вас нашло мря-гкое г trait-sick-teeth-accent-name = Зубной дефект trait-sick-teeth-accent-desc = Проблемы с зубами меняют вашу речь: некоторые согласные звучат иначе. +trait-burriness-accent-name = Картавость +trait-burriness-accent-desc = Вы не умеете выговаххивать букву "Р" ;w; + trait-tall-name = Высокий diff --git a/Resources/Prototypes/ADT/Traits/speech.yml b/Resources/Prototypes/ADT/Traits/speech.yml index 18b870c3077..982eedd2470 100644 --- a/Resources/Prototypes/ADT/Traits/speech.yml +++ b/Resources/Prototypes/ADT/Traits/speech.yml @@ -25,3 +25,12 @@ cost: 1 components: - type: SickTeethAccent + +- type: trait + id: ADTBurrinessAccent + name: trait-burriness-accent-name + description: trait-burriness-accent-desc + category: SpeechTraits + cost: 1 + components: + - type: BurrinessAccentComponent diff --git a/Resources/Prototypes/Entities/Mobs/Player/clone.yml b/Resources/Prototypes/Entities/Mobs/Player/clone.yml index ebd34055841..098b3934efd 100644 --- a/Resources/Prototypes/Entities/Mobs/Player/clone.yml +++ b/Resources/Prototypes/Entities/Mobs/Player/clone.yml @@ -69,6 +69,7 @@ - StutteringAccent - TTS # Corvax-TTS # ADT-fix-clone-start + - BurrinessAccent - LanguageSpeaker - SpeechBarks - SizeAttribute From 21f8069574a988d19b47696d7fd65b934ade9fbb Mon Sep 17 00:00:00 2001 From: kerfus-owo Date: Wed, 4 Feb 2026 20:05:21 +0500 Subject: [PATCH 2/6] =?UTF-8?q?=D0=BC=D1=8F=D1=83=D1=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ADT/Speech/EntitySystems/BurrinessAccentSystem.cs | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/Content.Server/ADT/Speech/EntitySystems/BurrinessAccentSystem.cs b/Content.Server/ADT/Speech/EntitySystems/BurrinessAccentSystem.cs index ee6b5a840ae..59b9ae2bd6b 100644 --- a/Content.Server/ADT/Speech/EntitySystems/BurrinessAccentSystem.cs +++ b/Content.Server/ADT/Speech/EntitySystems/BurrinessAccentSystem.cs @@ -10,6 +10,7 @@ public sealed class BurrinessAccentSystem : EntitySystem [Dependency] private readonly IRobustRandom _random = default!; private static readonly Regex BurrRegex = new Regex("[рР]+", RegexOptions.Compiled); + private static readonly Regex LatinBurrRegex = new Regex("[rR]+", RegexOptions.Compiled); public override void Initialize() { @@ -26,6 +27,11 @@ private void OnAccent(EntityUid uid, BurrinessAccentComponent component, AccentG match => _random.Pick(new List { "хх" }) ); + message = LatinBurrRegex.Replace( + message, + match => _random.Pick(new List { "hh" }) + ); + args.Message = message; } } From fb1df52a573fa10d59005aa421ca6489ae638a2a Mon Sep 17 00:00:00 2001 From: kerfus-owo Date: Wed, 4 Feb 2026 20:06:51 +0500 Subject: [PATCH 3/6] =?UTF-8?q?=D0=A4=D0=98=D0=9A=D0=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Resources/Prototypes/ADT/Traits/speech.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Resources/Prototypes/ADT/Traits/speech.yml b/Resources/Prototypes/ADT/Traits/speech.yml index 982eedd2470..7ea6f4bc7d9 100644 --- a/Resources/Prototypes/ADT/Traits/speech.yml +++ b/Resources/Prototypes/ADT/Traits/speech.yml @@ -33,4 +33,4 @@ category: SpeechTraits cost: 1 components: - - type: BurrinessAccentComponent + - type: BurrinessAccent From eab481b815be8ccb3382f42688d8e607ae717187 Mon Sep 17 00:00:00 2001 From: kerfus-owo Date: Wed, 4 Feb 2026 20:07:41 +0500 Subject: [PATCH 4/6] =?UTF-8?q?=D0=A4=D0=B8=D0=BA=D1=81...=3F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ADT/Speech/EntitySystems/BurrinessAccentSystem.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Content.Server/ADT/Speech/EntitySystems/BurrinessAccentSystem.cs b/Content.Server/ADT/Speech/EntitySystems/BurrinessAccentSystem.cs index 59b9ae2bd6b..edeaf7cb9ef 100644 --- a/Content.Server/ADT/Speech/EntitySystems/BurrinessAccentSystem.cs +++ b/Content.Server/ADT/Speech/EntitySystems/BurrinessAccentSystem.cs @@ -18,7 +18,7 @@ public override void Initialize() SubscribeLocalEvent(OnAccent); } - private void OnAccent(EntityUid uid, BurrinessAccentComponent component, AccentGetEvent args) + private void OnAccent(EntityUid uid, BurrinessAccentComponent component, ref AccentGetEvent args) { var message = args.Message; From 1facab764b1eaeca02bf7f1854786dbe702ce13d Mon Sep 17 00:00:00 2001 From: kerfus-owo Date: Sat, 7 Feb 2026 15:18:07 +0500 Subject: [PATCH 5/6] =?UTF-8?q?=D0=A4=D0=B8=D0=BA=D1=81=D0=B8=D0=BA=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../EntitySystems/BurrinessAccentSystem.cs | 18 ++++-------------- 1 file changed, 4 insertions(+), 14 deletions(-) diff --git a/Content.Server/ADT/Speech/EntitySystems/BurrinessAccentSystem.cs b/Content.Server/ADT/Speech/EntitySystems/BurrinessAccentSystem.cs index edeaf7cb9ef..3cfd037b565 100644 --- a/Content.Server/ADT/Speech/EntitySystems/BurrinessAccentSystem.cs +++ b/Content.Server/ADT/Speech/EntitySystems/BurrinessAccentSystem.cs @@ -9,9 +9,6 @@ public sealed class BurrinessAccentSystem : EntitySystem { [Dependency] private readonly IRobustRandom _random = default!; - private static readonly Regex BurrRegex = new Regex("[рР]+", RegexOptions.Compiled); - private static readonly Regex LatinBurrRegex = new Regex("[rR]+", RegexOptions.Compiled); - public override void Initialize() { base.Initialize(); @@ -21,17 +18,10 @@ public override void Initialize() private void OnAccent(EntityUid uid, BurrinessAccentComponent component, ref AccentGetEvent args) { var message = args.Message; - - message = BurrRegex.Replace( - message, - match => _random.Pick(new List { "хх" }) - ); - - message = LatinBurrRegex.Replace( - message, - match => _random.Pick(new List { "hh" }) - ); - + message = Regex.Replace(message, "r+", "hh"); + message = Regex.Replace(message, "R+", "HH"); + message = Regex.Replace(message, "р+", "хх"); + message = Regex.Replace(message, "Р+", "ХХ"); args.Message = message; } } From 9aef351e58d9179b80da0be2728d215394763cd4 Mon Sep 17 00:00:00 2001 From: kerfus-owo Date: Sat, 7 Feb 2026 15:30:07 +0500 Subject: [PATCH 6/6] =?UTF-8?q?=D0=B0=D0=BB=D1=84=D0=B0=D0=B2=D0=B8=D1=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ADT/Speech/EntitySystems/BurrinessAccentSystem.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Content.Server/ADT/Speech/EntitySystems/BurrinessAccentSystem.cs b/Content.Server/ADT/Speech/EntitySystems/BurrinessAccentSystem.cs index 3cfd037b565..644b7acfaae 100644 --- a/Content.Server/ADT/Speech/EntitySystems/BurrinessAccentSystem.cs +++ b/Content.Server/ADT/Speech/EntitySystems/BurrinessAccentSystem.cs @@ -1,7 +1,7 @@ -using System.Text.RegularExpressions; using Content.Server.Speech.Components; using Content.Shared.Speech; using Robust.Shared.Random; +using System.Text.RegularExpressions; namespace Content.Server.Speech.EntitySystems;