using Content.Server.Speech; using Content.Server.Speech.EntitySystems; using System.Text.RegularExpressions; using Robust.Shared.Random; namespace Content.Server._White.Accent.BomzhAccent; public sealed class BomzhAccentSystem : EntitySystem { [Dependency] private readonly ReplacementAccentSystem _replacement = default!; [Dependency] private readonly IRobustRandom _random = default!; public override void Initialize() { base.Initialize(); SubscribeLocalEvent(OnAccent); } public string Accentuate(string message) { var msg = message; msg = Regex.Replace(msg, @"(?() { "манда", "мадмуазель", "милая", "красотка", "шлюха" }), RegexOptions.IgnoreCase); msg = Regex.Replace(msg, @"(?() { "манда", "мадмуазель", "милая", "красотка", "шлюха" }), RegexOptions.IgnoreCase); msg = Regex.Replace(msg, @"(?() { "манда", "мадмуазель", "милая", "красотка", "шлюха" }), RegexOptions.IgnoreCase); msg = Regex.Replace(msg, @"(?() { "манда", "мадмуазель", "милая", "красотка", "шлюха" }), RegexOptions.IgnoreCase); msg = Regex.Replace(msg, @"(?() { "пацан", "мудила", "гандонио", "мудаёб", "подкаблучник" }), RegexOptions.IgnoreCase); msg = Regex.Replace(msg, @"(?() { "пацан", "мудила", "гандонио", "мудаёб", "подкаблучник" }), RegexOptions.IgnoreCase); msg = Regex.Replace(msg, @"(?() { "пацан", "мудила", "гандонио", "мудаёб", "подкаблучник" }), RegexOptions.IgnoreCase); msg = Regex.Replace(msg, @"(?() { "пацан", "мудила", "гандонио", "мудаёб", "подкаблучник" }), RegexOptions.IgnoreCase); msg = Regex.Replace(msg, @"(?() { "кокнут", "насажен", "загашен", "угандошен", "ёбнут" }), RegexOptions.IgnoreCase); msg = Regex.Replace(msg, @"(?() { "кокнул", "насадил", "загасил", "угандошил", "ёбнул" }), RegexOptions.IgnoreCase); msg = Regex.Replace(msg, @"(?() { "кокнули", "насадили", "загасили", "угандошили", "ёбнули" }), RegexOptions.IgnoreCase); msg = Regex.Replace(msg, @"(?() { "браток", "братан", "новичок", "акробат" }), RegexOptions.IgnoreCase); msg = Regex.Replace(msg, @"(?() { "братка", "братана", "новичка", "акробата" }), RegexOptions.IgnoreCase); msg = Regex.Replace(msg, @"(?() { "браток", "братан", "новичок", "акробат" }), RegexOptions.IgnoreCase); msg = Regex.Replace(msg, @"(?() { "браток", "братан", "новичок", "акробат" }), RegexOptions.IgnoreCase); msg = Regex.Replace(msg, @"(?() { "начальник", "контролёр", "заправляющий" }), RegexOptions.IgnoreCase); msg = Regex.Replace(msg, @"(?() { "сука", "сучка" }), RegexOptions.IgnoreCase); msg = Regex.Replace(msg, @"(?() { "косяк", "косячок", "бычок" }), RegexOptions.IgnoreCase); msg = Regex.Replace(msg, @"(?() { "косяка", "косячка", "бычка" }), RegexOptions.IgnoreCase); msg = Regex.Replace(msg, @"(?() { "косяка", "косячка", "бычка" }), RegexOptions.IgnoreCase); msg = Regex.Replace(msg, @"(?() { "шатун", "алканавт", "запойный", "бражник" }), RegexOptions.IgnoreCase); msg = Regex.Replace(msg, @"(?() { "шатуна", "алканават", "запойного", "бражника" }), RegexOptions.IgnoreCase); msg = Regex.Replace(msg, @"(?() { "шатун", "алканавт", "запойный", "бражник" }), RegexOptions.IgnoreCase); msg = Regex.Replace(msg, @"(?() { "шатуна", "алканават", "запойного", "бражника" }), RegexOptions.IgnoreCase); msg = Regex.Replace(msg, @"(?() { "бухло", "моча", "зелье" }), RegexOptions.IgnoreCase); msg = Regex.Replace(msg, @"(?() { "бухла", "мочи", "зельеца" }), RegexOptions.IgnoreCase); msg = Regex.Replace(msg, @"(?() { "бухла", "мочи", "зельеца" }), RegexOptions.IgnoreCase); msg = Regex.Replace(msg, @"(?() { "бухла", "мочи", "зельеца" }), RegexOptions.IgnoreCase); msg = Regex.Replace(msg, @"(?() { "баян", "газ", "сапог", "хань" }), RegexOptions.IgnoreCase); msg = Regex.Replace(msg, @"(?() { "баяна", "газа", "сапога", "хани" }), RegexOptions.IgnoreCase); msg = Regex.Replace(msg, @"(?() { "баяна", "газа", "сапога", "хани" }), RegexOptions.IgnoreCase); msg = Regex.Replace(msg, @"(?() { "баяна", "газа", "сапога", "хани" }), RegexOptions.IgnoreCase); msg = Regex.Replace(msg, @"(?() { "немощь", "лошара", "опущенец" }), RegexOptions.IgnoreCase); msg = Regex.Replace(msg, @"(?() { "очко", "дристалище", "гузно" }), RegexOptions.IgnoreCase); msg = Regex.Replace(msg, @"(?() { "очке", "дристалище" }), RegexOptions.IgnoreCase); msg = Regex.Replace(msg, @"(?() { "хвостатый", "ушастый", "мерзкий", "лизун" }), RegexOptions.IgnoreCase); msg = Regex.Replace(msg, @"(?() { "хвостатого", "ушастого", "мерзкого", "лизуна" }), RegexOptions.IgnoreCase); msg = Regex.Replace(msg, @"(?() { "хвостатая", "ушастая", "мерзкая", "лизунщица" }), RegexOptions.IgnoreCase); msg = Regex.Replace(msg, @"(?() { "хвостатый", "ушастый", "мерзкий", "лизун" }), RegexOptions.IgnoreCase); msg = Regex.Replace(msg, @"(?() { "хвостатая", "ушастая", "мерзкая", "лизунщица" }), RegexOptions.IgnoreCase); msg = Regex.Replace(msg, @"(?() { "горливая", "птенчик", "крылатый", "яйцеукладчик" }), RegexOptions.IgnoreCase); msg = Regex.Replace(msg, @"(?() { "горливую", "птенчика", "крылатую", "яйцеукладчика" }), RegexOptions.IgnoreCase); msg = Regex.Replace(msg, @"(?() { "тупой", "заумный", "лысый", "гладкий", "яйцеглот" }), RegexOptions.IgnoreCase); msg = Regex.Replace(msg, @"(?() { "тупого", "заумного", "лысого", "гладкого", "яйцеглотателя" }), RegexOptions.IgnoreCase); msg = Regex.Replace(msg, @"(?() { "карлик", "выёбистый", "работяга", "наглый" }), RegexOptions.IgnoreCase); msg = Regex.Replace(msg, @"(?() { "карлика", "выёбистого", "работягу", "наглого" }), RegexOptions.IgnoreCase); msg = Regex.Replace(msg, @"(?() { "дрючка", "жезл", "кол" }), RegexOptions.IgnoreCase); msg = Regex.Replace(msg, @"(?() { "дрючка", "жезл", "кол" }), RegexOptions.IgnoreCase); msg = Regex.Replace(msg, @"(?() { "дрючка", "жезл", "кол" }), RegexOptions.IgnoreCase); msg = Regex.Replace(msg, @"(?() { "дрючку", "жезл", "кол" }), RegexOptions.IgnoreCase); msg = Regex.Replace(msg, @"(?() { "пукалка", "решала" }), RegexOptions.IgnoreCase); msg = Regex.Replace(msg, @"(?() { "картошка", "лимонка", "снаряд" }), RegexOptions.IgnoreCase); msg = Regex.Replace(msg, @"(?() { "картошку", "лимонку", "снаряд" }), RegexOptions.IgnoreCase); msg = string.Concat(msg[0].ToString().ToUpper(), msg.AsSpan(1)); msg = _replacement.ApplyReplacements(msg, "bomzh"); return msg; } private void OnAccent(EntityUid uid, BomzhAccentComponent component, AccentGetEvent args) { args.Message = Accentuate(args.Message); } }