* 27 file diff * 27 file diff 2 * Apply suggestions from code review --------- Co-authored-by: Princess Cheeseballs <66055347+Pronana@users.noreply.github.com> Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
39 lines
1.2 KiB
C#
39 lines
1.2 KiB
C#
using System.Text.RegularExpressions;
|
|
using Content.Server.Speech.Components;
|
|
using Content.Shared.Speech;
|
|
|
|
namespace Content.Server.Speech.EntitySystems;
|
|
|
|
public sealed class LizardAccentSystem : EntitySystem
|
|
{
|
|
private static readonly Regex RegexLowerS = new("s+");
|
|
private static readonly Regex RegexUpperS = new("S+");
|
|
private static readonly Regex RegexInternalX = new(@"(\w)x");
|
|
private static readonly Regex RegexLowerEndX = new(@"\bx([\-|r|R]|\b)");
|
|
private static readonly Regex RegexUpperEndX = new(@"\bX([\-|r|R]|\b)");
|
|
|
|
public override void Initialize()
|
|
{
|
|
base.Initialize();
|
|
SubscribeLocalEvent<LizardAccentComponent, AccentGetEvent>(OnAccent);
|
|
}
|
|
|
|
private void OnAccent(EntityUid uid, LizardAccentComponent component, AccentGetEvent args)
|
|
{
|
|
var message = args.Message;
|
|
|
|
// hissss
|
|
message = RegexLowerS.Replace(message, "sss");
|
|
// hiSSS
|
|
message = RegexUpperS.Replace(message, "SSS");
|
|
// ekssit
|
|
message = RegexInternalX.Replace(message, "$1kss");
|
|
// ecks
|
|
message = RegexLowerEndX.Replace(message, "ecks$1");
|
|
// eckS
|
|
message = RegexUpperEndX.Replace(message, "ECKS$1");
|
|
|
|
args.Message = message;
|
|
}
|
|
}
|