--- /dev/null
+using Content.Server.Speech.EntitySystems;
+
+namespace Content.Server.Speech.Components;
+
+[RegisterComponent]
+[Access(typeof(SouthernAccentSystem))]
+public sealed partial class SouthernAccentComponent : Component
+{ }
--- /dev/null
+using System.Text.RegularExpressions;
+using Content.Server.Speech.Components;
+
+namespace Content.Server.Speech.EntitySystems;
+
+public sealed class SouthernAccentSystem : EntitySystem
+{
+ [Dependency] private readonly ReplacementAccentSystem _replacement = default!;
+
+ public override void Initialize()
+ {
+ base.Initialize();
+ SubscribeLocalEvent<SouthernAccentComponent, AccentGetEvent>(OnAccent);
+ }
+
+ private void OnAccent(EntityUid uid, SouthernAccentComponent component, AccentGetEvent args)
+ {
+ var message = args.Message;
+
+ message = _replacement.ApplyReplacements(message, "southern");
+
+ //They shoulda started runnin' an' hidin' from me!
+ message = Regex.Replace(message, @"ing\b", "in'");
+ message = Regex.Replace(message, @"\band\b", "an'");
+ message = Regex.Replace(message, "d've", "da");
+ args.Message = message;
+ }
+};
--- /dev/null
+accent-southern-words-1 = you all
+accent-southern-words-replace-1 = y'all
+
+accent-southern-words-2 = you guys
+accent-southern-words-replace-2 = y'all
+
+accent-southern-words-3 = isn't
+accent-southern-words-replace-3 = ain't
+
+accent-southern-words-4 = is not
+accent-southern-words-replace-4 = ain't
+
+accent-southern-words-5 = aren't
+accent-southern-words-replace-5 = ain't
+
+accent-southern-words-6 = are not
+accent-southern-words-replace-6 = ain't
trait-socialanxiety-name = Social Anxiety
trait-socialanxiety-desc = You are anxious when you speak and stutter.
+trait-southern-name = Southern Drawl
+trait-southern-desc = Are you wonderin' what this does?
+
trait-snoring-name = Snoring
trait-snoring-desc = You will snore while sleeping.
accent-cowboy-words-98: accent-cowboy-replacement-98
accent-cowboy-words-99: accent-cowboy-replacement-99
+- type: accent
+ id: southern
+ wordReplacements:
+ accent-southern-words-1: accent-southern-words-replace-1
+ accent-southern-words-2: accent-southern-words-replace-2
+ accent-southern-words-3: accent-southern-words-replace-3
+ accent-southern-words-4: accent-southern-words-replace-4
+ accent-southern-words-5: accent-southern-words-replace-5
+ accent-southern-words-6: accent-southern-words-replace-6
# For the chat sanitization system
- type: accent
- type: MothAccent
- type: ReplacementAccent
accent: dwarf
+
+- type: trait
+ id: Southern
+ name: trait-southern-name
+ description: trait-southern-desc
+ components:
+ - type: SouthernAccent