1
0

BleatingAccentSystem.cs 847 B

12345678910111213141516171819202122232425262728
  1. using System.Text.RegularExpressions;
  2. using Content.Server.Speech.Components;
  3. namespace Content.Server.Speech.EntitySystems;
  4. public sealed partial class BleatingAccentSystem : EntitySystem
  5. {
  6. private static readonly Regex BleatRegex = new("([mbdlpwhrkcnytfo])([aiu])", RegexOptions.IgnoreCase);
  7. public override void Initialize()
  8. {
  9. base.Initialize();
  10. SubscribeLocalEvent<BleatingAccentComponent, AccentGetEvent>(OnAccentGet);
  11. }
  12. private void OnAccentGet(Entity<BleatingAccentComponent> entity, ref AccentGetEvent args)
  13. {
  14. args.Message = Accentuate(args.Message);
  15. }
  16. public static string Accentuate(string message)
  17. {
  18. // Repeats the vowel in certain consonant-vowel pairs
  19. // So you taaaalk liiiike thiiiis
  20. return BleatRegex.Replace(message, "$1$2$2$2$2");
  21. }
  22. }