Basic Russian Accent (#6049)

Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com>
This commit is contained in:
Pancake
2022-01-30 00:06:16 -08:00
committed by GitHub
parent 3399dbf01e
commit 172898b26e
3 changed files with 59 additions and 0 deletions

View File

@@ -0,0 +1,7 @@
using Robust.Shared.GameObjects;
namespace Content.Server.Speech.Components;
[RegisterComponent]
[ComponentProtoName("RussianAccent")]
public sealed class RussianAccentComponent : Component {}

View File

@@ -0,0 +1,50 @@
using System.Text;
using Content.Server.Speech.Components;
using Robust.Shared.GameObjects;
using Robust.Shared.IoC;
using Robust.Shared.Random;
namespace Content.Server.Speech.EntitySystems;
public sealed class RussianAccentSystem : EntitySystem
{
public override void Initialize()
{
SubscribeLocalEvent<RussianAccentComponent, AccentGetEvent>(OnAccent);
}
public static string Accentuate(string message)
{
var accentedMessage = new StringBuilder(message);
for (var i = 0; i < accentedMessage.Length; i++)
{
var c = accentedMessage[i];
accentedMessage[i] = c switch
{
'b' => 'в',
'N' => 'И',
'n' => 'и',
'K' => 'К',
'k' => 'к',
'm' => 'м',
'h' => 'н',
't' => 'т',
'R' => 'Я',
'r' => 'я',
'Y' => 'У',
'W' => 'Ш',
'w' => 'ш',
_ => accentedMessage[i]
};
}
return accentedMessage.ToString();
}
private void OnAccent(EntityUid uid, RussianAccentComponent component, AccentGetEvent args)
{
args.Message = Accentuate(args.Message);
}
}

View File

@@ -294,6 +294,8 @@
sprite: Clothing/Head/Hats/ushanka.rsi
- type: Clothing
sprite: Clothing/Head/Hats/ushanka.rsi
- type: AddAccentClothing
accent: RussianAccent
- type: entity
parent: ClothingHeadBase