Skip to content

Commit

Permalink
Merge pull request #1571 from Darkmajia/accent-stuff
Browse files Browse the repository at this point in the history
gray and dwarf accent improvements
  • Loading branch information
mqole authored Feb 10, 2025
2 parents 309d0cd + c69ec97 commit 646e39a
Show file tree
Hide file tree
Showing 5 changed files with 66 additions and 20 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
namespace Content.Server.Speech.Components;

[RegisterComponent]
public sealed partial class DwarfAccentComponent : Component
{
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
using System.Text.RegularExpressions;
using Content.Server.Speech.Components;

namespace Content.Server.Speech.EntitySystems;

public sealed class DwarfAccentComponentSystem : EntitySystem
{
[Dependency] private readonly ReplacementAccentSystem _replacement = default!;

private static readonly Regex RegexAhAmContractionLower = new(@"(?<!^)(?<!\.\s+)\b[Aa]'[Mm]\b");
private static readonly Regex RegexAhAmContractionUpperLeft = new(@"(?<=\b[A-Z]+.)\b[Aa]'[Mm]\b");
private static readonly Regex RegexAhAmContractionUpperRight = new(@"\b[Aa]'[Mm]\b(?=.[A-Z]+\b)");
private static readonly Regex RegexAhLower = new(@"(?<!^)(?<!\.\s+)\b[Aa]h\b");
private static readonly Regex RegexAhUpperLeft = new(@"(?<=\b[A-Z]+.)\b[Aa]h\b");
private static readonly Regex RegexAhUpperRight = new(@"\b[Aa]h\b(?=.[A-Z]+\b)");

public override void Initialize()
{
base.Initialize();
SubscribeLocalEvent<DwarfAccentComponent, AccentGetEvent>(OnAccent);
}

private void OnAccent(EntityUid uid, DwarfAccentComponent component, AccentGetEvent args)
{
var message = args.Message;

message = _replacement.ApplyReplacements(message, "dwarf");

message = RegexAhAmContractionLower.Replace(message, "a'm");
message = RegexAhAmContractionUpperLeft.Replace(message, "A'M");
message = RegexAhAmContractionUpperRight.Replace(message, "A'M");
message = RegexAhLower.Replace(message, "ah");
message = RegexAhUpperLeft.Replace(message, "AH");
message = RegexAhUpperRight.Replace(message, "AH");

args.Message = message;
}
}
32 changes: 18 additions & 14 deletions Content.Server/_Impstation/Speech/EntitySystems/GrayAccentSystem.cs
Original file line number Diff line number Diff line change
Expand Up @@ -7,13 +7,15 @@ public sealed class GrayAccentComponentAccentSystem : EntitySystem
{
[Dependency] private readonly ReplacementAccentSystem _replacement = default!;

private static readonly Regex RegexAmContraction = new(@"([a-z])'[Mm]\b");
private static readonly Regex RegexAmContractionUpper = new(@"([A-Z])'[Mm]\b");
private static readonly Regex RegexAreContraction = new(@"([a-z])'[Rr][Ee]\b");
private static readonly Regex RegexAreContractionUpper = new(@"([A-Z])'[Rr][Ee]\b");
private static readonly Regex RegexThuiLower = new(@"(.)\b[Tt]hui\b");
private static readonly Regex RegexThuiUpperLeft = new(@"(\b[A-Z]+.)\b[Tt]hui\b");
private static readonly Regex RegexThuiUpperRight = new(@"\b[Tt]hui\b(.[A-Z]+\b)");
private static readonly Regex RegexPuUpperLeft = new(@"(?<=\b[A-Z]+.)\b[Pp]u\b");
private static readonly Regex RegexPuUpperRight = new(@"\b[Pp]u\b(?=.[A-Z]+\b)");
private static readonly Regex RegexThuiLower = new(@"(?<!^)(?<!\.\s+)\b[Tt]hui\b");
private static readonly Regex RegexThuiUpperLeft = new(@"(?<=\b[A-Z]+.)\b[Tt]hui\b");
private static readonly Regex RegexThuiUpperRight = new(@"\b[Tt]hui\b(?=.[A-Z]+\b)");
private static readonly Regex RegexAmContraction = new(@"(?<=[a-z])'[Mm]\b");
private static readonly Regex RegexAmContractionUpper = new(@"(?<=[A-Z])'[Mm]\b");
private static readonly Regex RegexAreContraction = new(@"(?<=[a-z])'[Rr][Ee]\b");
private static readonly Regex RegexAreContractionUpper = new(@"(?<=[A-Z])'[Rr][Ee]\b");

public override void Initialize()
{
Expand All @@ -27,13 +29,15 @@ private void OnAccent(EntityUid uid, GrayAccentComponent component, AccentGetEve

message = _replacement.ApplyReplacements(message, "gray_accent");

message = RegexAmContraction.Replace(message, "$1-wa");
message = RegexAmContractionUpper.Replace(message, "$1-WA");
message = RegexAreContraction.Replace(message, "$1zz");
message = RegexAreContractionUpper.Replace(message, "$1ZZ");
message = RegexThuiLower.Replace(message, "$1thui");
message = RegexThuiUpperLeft.Replace(message, "$1THUI");
message = RegexThuiUpperRight.Replace(message, "THUI$1");
message = RegexPuUpperLeft.Replace(message, "PU");
message = RegexPuUpperRight.Replace(message, "PU");
message = RegexThuiLower.Replace(message, "thui");
message = RegexThuiUpperLeft.Replace(message, "THUI");
message = RegexThuiUpperRight.Replace(message, "THUI");
message = RegexAmContraction.Replace(message, "-wa");
message = RegexAmContractionUpper.Replace(message, "-WA");
message = RegexAreContraction.Replace(message, "zz");
message = RegexAreContractionUpper.Replace(message, "ZZ");

args.Message = message;
}
Expand Down
3 changes: 1 addition & 2 deletions Resources/Prototypes/Entities/Mobs/Species/dwarf.yml
Original file line number Diff line number Diff line change
Expand Up @@ -48,8 +48,7 @@
Male: MaleDwarf
Female: FemaleDwarf
Unsexed: UnisexDwarf
- type: ReplacementAccent
accent: dwarf
- type: DwarfAccent # imp
- type: Speech
speechSounds: Bass
- type: HumanoidAppearance
Expand Down
7 changes: 3 additions & 4 deletions Resources/Prototypes/Traits/speech.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,7 @@
- type: MothAccent
- type: SnalienAccent
- type: GrayAccent
- type: ReplacementAccent
accent: dwarf
- type: DwarfAccent
- type: NoContractionsAccent

# 1 Cost
Expand Down Expand Up @@ -249,6 +248,6 @@
- type: LizardAccent
- type: MothAccent
- type: GrayAccent
- type: ReplacementAccent
accent: dwarf
- type: DwarfAccent
# Imp TODO: add cowboy, italian, liar, mobster, and slimes to this list one day since apparently you can only remove one ReplacementAccent at a time without pissing off the linter, maybe we can figure it out later. For now, adding the dwarf accent since that's an accent you can spawn with under current circumstances.
# idk about all this but dwarves have their own accent component now yay!!!!

0 comments on commit 646e39a

Please sign in to comment.