using System.Text.RegularExpressions; using Content.Server.Speech.Components; using Robust.Shared.Random; namespace Content.Server.Speech.EntitySystems; public sealed class MothAccentSystem : EntitySystem { [Dependency] private readonly IRobustRandom _random = default!; // WD private static readonly Regex RegexLowerBuzz = new Regex("z{1,3}"); private static readonly Regex RegexUpperBuzz = new Regex("Z{1,3}"); public override void Initialize() { base.Initialize(); SubscribeLocalEvent(OnAccent); } private void OnAccent(EntityUid uid, MothAccentComponent component, AccentGetEvent args) { var message = args.Message; // buzzz message = RegexLowerBuzz.Replace(message, "zzz"); // buZZZ message = RegexUpperBuzz.Replace(message, "ZZZ"); // WD EDIT START // ж => жжж message = Regex.Replace( message, "ж+", _random.Pick(new List() { "жж", "жжж" }) ); // Ж => ЖЖЖ message = Regex.Replace( message, "Ж+", _random.Pick(new List() { "ЖЖ", "ЖЖЖ" }) ); // з => ззз message = Regex.Replace( message, "з+", _random.Pick(new List() { "зз", "ззз" }) ); // З => ЗЗЗ message = Regex.Replace( message, "З+", _random.Pick(new List() { "ЗЗ", "ЗЗЗ" }) ); // WD EDIT END args.Message = message; } }