| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 |
- // SPDX-FileCopyrightText: 2024 Aidenkrz <aiden@djkraz.com>
- // SPDX-FileCopyrightText: 2024 BeeRobynn <166929042+BeeRobynn@users.noreply.github.com>
- // SPDX-FileCopyrightText: 2024 Piras314 <p1r4s@proton.me>
- // SPDX-FileCopyrightText: 2025 Aiden <28298836+Aidenkrz@users.noreply.github.com>
- // SPDX-FileCopyrightText: 2025 Cattowo <2spoopy4u2handle@gmail.com>
- // SPDX-FileCopyrightText: 2025 Misandry <mary@thughunt.ing>
- // SPDX-FileCopyrightText: 2025 gus <august.eymann@gmail.com>
- // SPDX-FileCopyrightText: 2025 smudge <138918973+Cerise-Cattowo@users.noreply.github.com>
- //
- // SPDX-License-Identifier: AGPL-3.0-or-later
- using Content.Server.Speech.Components;
- using Robust.Shared.Random;
- namespace Content.Server.Speech.EntitySystems;
- public sealed class MedievalAccentSystem : EntitySystem
- {
- [Dependency] private readonly IRobustRandom _random = default!;
- [Dependency] private readonly ReplacementAccentSystem _replacement = default!;
- public override void Initialize()
- {
- base.Initialize();
- SubscribeLocalEvent<MedievalAccentComponent, AccentGetEvent>(OnAccent);
- }
- private void OnAccent(EntityUid uid, MedievalAccentComponent component, AccentGetEvent args)
- {
- var message = args.Message;
- message = _replacement.ApplyReplacements(message, "medieval");
- // Prefix
- if (_random.Prob(0.40f))
- {
- var pick = _random.Next(1, 42);
- // Reverse sanitize capital
- message = message[0].ToString().ToLower() + message.Remove(0, 1);
- message = Loc.GetString($"accent-medieval-prefix-{pick}") + " " + message;
- }
- // Sanitize capital again, in case we substituted a word that should be capitalized
- message = message[0].ToString().ToUpper() + message.Remove(0, 1);
- args.Message = message;
- }
- };
|