using System.Text.RegularExpressions; using Content.Server._White.Speech.Components; using Content.Server.Speech; using Robust.Shared.Random; namespace Content.Server._White.Speech.EntitySystems; public sealed class ResomiAccentSystem : EntitySystem { [Dependency] private readonly IRobustRandom _random = default!; public override void Initialize() { base.Initialize(); SubscribeLocalEvent(OnAccent); } private void OnAccent(EntityUid uid, ResomiAccentComponent component, AccentGetEvent args) { var message = args.Message; // ш => шшш 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() { "ЩЩ", "ЩЩЩ" }) ); // р => ррр message = Regex.Replace( message, "р+", _random.Pick(new List() { "рр", "ррр" }) ); // Р => РРР message = Regex.Replace( message, "Р+", _random.Pick(new List() { "РР", "РРР" }) ); args.Message = message; } }