From 7addda4e0efd3423c176c15e8861586ce9bc88a3 Mon Sep 17 00:00:00 2001 From: Alex Evgrashin Date: Sun, 13 Mar 2022 07:23:43 +0300 Subject: [PATCH] Add lizard accent (#7096) --- Content.Client/Entry/IgnoredComponents.cs | 1 + .../Components/LizardAccentComponent.cs | 10 ++++++ .../EntitySystems/LizardAccentSystem.cs | 31 +++++++++++++++++++ .../Entities/Mobs/Species/reptilian.yml | 1 + 4 files changed, 43 insertions(+) create mode 100644 Content.Server/Speech/Components/LizardAccentComponent.cs create mode 100644 Content.Server/Speech/EntitySystems/LizardAccentSystem.cs diff --git a/Content.Client/Entry/IgnoredComponents.cs b/Content.Client/Entry/IgnoredComponents.cs index c201aed9d1..01b90627c0 100644 --- a/Content.Client/Entry/IgnoredComponents.cs +++ b/Content.Client/Entry/IgnoredComponents.cs @@ -303,6 +303,7 @@ namespace Content.Client.Entry "Spreader", "GrowingKudzu", "MonkeyAccent", + "LizardAccent", "ReplacementAccent", "ResistLocker", "IgniteOnCollide", diff --git a/Content.Server/Speech/Components/LizardAccentComponent.cs b/Content.Server/Speech/Components/LizardAccentComponent.cs new file mode 100644 index 0000000000..c84336bea4 --- /dev/null +++ b/Content.Server/Speech/Components/LizardAccentComponent.cs @@ -0,0 +1,10 @@ +namespace Content.Server.Speech.Components; + +/// +/// Hiss! +/// +[RegisterComponent] +public sealed class LizardAccentComponent : Component +{ + +} diff --git a/Content.Server/Speech/EntitySystems/LizardAccentSystem.cs b/Content.Server/Speech/EntitySystems/LizardAccentSystem.cs new file mode 100644 index 0000000000..a7e21016a2 --- /dev/null +++ b/Content.Server/Speech/EntitySystems/LizardAccentSystem.cs @@ -0,0 +1,31 @@ +using System.Text.RegularExpressions; +using Content.Server.Speech.Components; + +namespace Content.Server.Speech.EntitySystems; + +public sealed class LizardAccentSystem : EntitySystem +{ + 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"); + + args.Message = message; + } +} diff --git a/Resources/Prototypes/Entities/Mobs/Species/reptilian.yml b/Resources/Prototypes/Entities/Mobs/Species/reptilian.yml index dcaa6f191c..184164561f 100644 --- a/Resources/Prototypes/Entities/Mobs/Species/reptilian.yml +++ b/Resources/Prototypes/Entities/Mobs/Species/reptilian.yml @@ -109,6 +109,7 @@ - type: Body template: HumanoidTemplate preset: HumanPreset + - type: LizardAccent - type: entity save: false