using System.Text.RegularExpressions; using Content.Server.Speech.Components; using Robust.Shared.Random; namespace Content.Server.Speech.EntitySystems; public sealed class LizardAccentSystem : EntitySystem { [Dependency] private readonly IRobustRandom _random = default!; public override void Initialize() { base.Initialize(); SubscribeLocalEvent(OnAccent); } private void OnAccent(EntityUid uid, LizardAccentComponent component, AccentGetEvent args) { var message = args.Message; // hissss message = Regex.Replace(message, "s+", "sss"); // hiSSS message = Regex.Replace(message, "S+", "SSS"); // ekssit message = Regex.Replace(message, @"(\w)x", "$1kss"); // ecks message = Regex.Replace(message, @"\bx([\-|r|R]|\b)", "ecks$1"); // eckS message = Regex.Replace(message, @"\bX([\-|r|R]|\b)", "ECKS$1"); //WD-EDIT // c => ссс message = Regex.Replace( message, "с+", _random.Pick(new List() { "сс", "ссс" }) ); // С => CCC message = Regex.Replace( message, "С+", _random.Pick(new List() { "Сс", "Ссс" }) ); // з => ссс message = Regex.Replace( message, "з+", _random.Pick(new List() { "сс", "ссс" }) ); // З => CCC 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() { "Щщ", "Щщщ" }) ); //WD-EDIT args.Message = message; } }