From 0be5e1bf80f751f618799e5504b165a1e9e9a149 Mon Sep 17 00:00:00 2001 From: dahnte <70238020+dahnte@users.noreply.github.com> Date: Fri, 22 Sep 2023 22:39:47 -0700 Subject: [PATCH] Fixed lisp bug with capital and lowercase matching and other sounds matched for clarity (#20370) --- .../Speech/EntitySystems/FrontalLispSystem.cs | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) diff --git a/Content.Server/Speech/EntitySystems/FrontalLispSystem.cs b/Content.Server/Speech/EntitySystems/FrontalLispSystem.cs index 6ee548515c..96e3620ecf 100644 --- a/Content.Server/Speech/EntitySystems/FrontalLispSystem.cs +++ b/Content.Server/Speech/EntitySystems/FrontalLispSystem.cs @@ -15,15 +15,12 @@ public sealed class FrontalLispSystem : EntitySystem { var message = args.Message; - // handles ts, c(iey), z, ps, ti - message = Regex.Replace(message, @"[T]+[S]+|[C]+(?=[IEY])|[Z]+|[P][S]+|[T](?=[I])", "TH"); - message = Regex.Replace(message, @"[Tt]+[Ss]+|[Cc]+(?=[IiEeYy])|[Zz]+|[Pp][Ss]+|[Tt](?=[Ii])", "th"); - // handles ex - message = Regex.Replace(message, @"(?![E])[X]", "KTH"); - message = Regex.Replace(message, @"(?![Ee])[Xx]", "kth"); - // handles sth and s - message = Regex.Replace(message, "[S]+[T]?[H]?", "TH"); - message = Regex.Replace(message, "[Ss]+[Tt]?[Hh]?", "th"); + // handles ts, sc(i|e|y), c(i|e|y), ps, st(io(u|n)), ch(i|e), z, s + message = Regex.Replace(message, @"[T]+[Ss]+|[S]+[Cc]+(?=[IiEeYy]+)|[C]+(?=[IiEeYy]+)|[P][Ss]+|([S]+[Tt]+|[T]+)(?=[Ii]+[Oo]+[Uu]*[Nn]*)|[C]+[Hh]+(?=[Ii]*[Ee]*)|[Z]+|[S]+|[X]+(?=[Ee]+)", "TH"); + message = Regex.Replace(message, @"[t]+[s]+|[s]+[c]+(?=[iey]+)|[c]+(?=[iey]+)|[p][s]+|([s]+[t]+|[t]+)(?=[i]+[o]+[u]*[n]*)|[c]+[h]+(?=[i]*[e]*)|[z]+|[s]+|[x]+(?=[e]+)", "th"); + // handles ex(c), x + message = Regex.Replace(message, @"[E]+[Xx]+[Cc]*|[X]+", "EKTH"); + message = Regex.Replace(message, @"[e]+[x]+[c]*|[x]+", "ekth"); args.Message = message; } -- 2.51.2