Archaic Accent Trait (#17794)

* Adds the component, system and .ftl file for the Early English accent. Updates word_replacements.yml with the new accent stuff.

* -Renamed to Archaic accent
-Added more word replacements
-Fixed "ed" -> " 'd" only happening when prefix chance happened

* - Adds "Archaic Accent" as a character trait.

* - Added over 60 new word replacements and 3 new prefixes.
- Increased prefix chance to 15%.

* - MINOR SPELLING MISTAKE IN DESCRIPTION FIXED THIS IS A TRAVESTY
This commit is contained in:
Raitononai
2023-07-05 01:32:22 +01:00
committed by GitHub
parent b7ff79c1fb
commit c8569d906c
6 changed files with 502 additions and 2 deletions

View File

@@ -0,0 +1,21 @@
using Content.Server.Speech.EntitySystems;
namespace Content.Server.Speech.Components;
[RegisterComponent]
[Access(typeof(ArchaicAccentSystem))]
public sealed class ArchaicAccentComponent : Component
{
[ViewVariables(VVAccess.ReadWrite)]
[DataField("forsoothChance")]
public readonly float ForsoothChance = 0.15f;
[ViewVariables]
public readonly List<string> ArchaicWords = new()
{
"accent-archaic-prefix-1",
"accent-archaic-prefix-2",
"accent-archaic-prefix-3",
"accent-archaic-prefix-4"
};
}

View File

@@ -0,0 +1,46 @@
using Content.Server.Speech.Components;
using Robust.Shared.Random;
using System.Text.RegularExpressions;
namespace Content.Server.Speech.EntitySystems;
public sealed class ArchaicAccentSystem : EntitySystem
{
[Dependency] private readonly IRobustRandom _random = default!;
[Dependency] private readonly ReplacementAccentSystem _replacement = default!;
public override void Initialize()
{
base.Initialize();
SubscribeLocalEvent<ArchaicAccentComponent, AccentGetEvent>(OnAccentGet);
}
// converts left word when typed into the right word. For example typing you becomes ye.
public string Accentuate(string message, ArchaicAccentComponent component)
{
var msg = message;
msg = _replacement.ApplyReplacements(msg, "archaic");
// Changes words like "Looked" to "Look'd"
msg = Regex.Replace(msg, "ed", "'d");
// "LOOKED" to "LOOK'D"
msg = Regex.Replace(msg, "ED", "'D");
if (!_random.Prob(component.ForsoothChance))
return msg;
var pick = _random.Pick(component.ArchaicWords);
// Reverse sanitize capital
msg = msg[0].ToString().ToLower() + msg.Remove(0, 1);
msg = Loc.GetString(pick) + " " + msg;
return msg;
}
private void OnAccentGet(EntityUid uid, ArchaicAccentComponent component, AccentGetEvent args)
{
args.Message = Accentuate(args.Message, component);
}
}

View File

@@ -0,0 +1,314 @@
# taken from common knowledge and examples of early modern english/archaic english and many different websites. Just google a word and you'll get its meaning.
# https://en.wikipedia.org/wiki/Early_Modern_English
# https://en.wiktionary.org/wiki/Category:English_archaic_terms
accent-archaic-prefix-1 = Forsooth,
accent-archaic-prefix-2 = Hark,
accent-archaic-prefix-3 = Beseech me,
accent-archaic-prefix-4 = Take heed,
accent-archaic-replaced-1 = are
accent-archaic-replacement-1 = art
accent-archaic-replaced-2 = you
accent-archaic-replacement-2 = thou
accent-archaic-replaced-3 = my
accent-archaic-replacement-3 = mine
accent-archaic-replaced-4 = very
accent-archaic-replacement-4 = most
accent-archaic-replaced-5 = stupid
accent-archaic-replacement-5 = foolish
accent-archaic-replaced-6 = your
accent-archaic-replacement-6 = thy
accent-archaic-replaced-7 = have
accent-archaic-replacement-7 = hath
accent-archaic-replaced-8 = yourself
accent-archaic-replacement-8 = thyself
accent-archaic-replaced-9 = for
accent-archaic-replacement-9 = f'r
accent-archaic-replaced-10 = would
accent-archaic-replacement-10 = woudlst
accent-archaic-replaced-11 = it was
accent-archaic-replacement-11 = 'twas
accent-archaic-replaced-12 = here
accent-archaic-replacement-12 = hither
accent-archaic-replaced-13 = do
accent-archaic-replacement-13 = doth
accent-archaic-replaced-14 = listen
accent-archaic-replacement-14 = hark
accent-archaic-replaced-15 = idiot
accent-archaic-replacement-15 = fool
accent-archaic-replaced-16 = wonderful
accent-archaic-replacement-16 = wonderous
accent-archaic-replaced-17 = yay
accent-archaic-replacement-17 = hurrah
accent-archaic-replaced-18 = hooray
accent-archaic-replacement-18 = hurrah
accent-archaic-replaced-19 = may
accent-archaic-replacement-19 = mayest
accent-archaic-replaced-20 = would
accent-archaic-replacement-20 = wouldst
accent-archaic-replaced-21 = certainly
accent-archaic-replacement-21 = certes
accent-archaic-replaced-22 = woke up
accent-archaic-replacement-22 = arose
accent-archaic-replaced-23 = wake up
accent-archaic-replacement-23 = arise
accent-archaic-replaced-24 = no
accent-archaic-replacement-24 = nay
accent-archaic-replaced-25 = janicart
accent-archaic-replacement-25 = cleaning steed
accent-archaic-replaced-26 = shall
accent-archaic-replacement-26 = shalt
accent-archaic-replaced-27 = there
accent-archaic-replacement-27 = thither
accent-archaic-replaced-28 = after this
accent-archaic-replacement-28 = hereafter
accent-archaic-replaced-29 = after that
accent-archaic-replacement-29 = thereafter
accent-archaic-replaced-30 = please
accent-archaic-replacement-30 = prithee
accent-archaic-replaced-31 = old
accent-archaic-replacement-31 = olde
accent-archaic-replaced-32 = soon
accent-archaic-replacement-32 = anon
accent-archaic-replaced-33 = right now
accent-archaic-replacement-33 = forthwith
accent-archaic-replaced-34 = between
accent-archaic-replacement-34 = betwixt
accent-archaic-replaced-35 = said
accent-archaic-replacement-35 = quoth
accent-archaic-replaced-36 = yes
accent-archaic-replacement-36 = yea
accent-archaic-replaced-37 = captain
accent-archaic-replacement-37 = lord
accent-archaic-replaced-38 = fuck
accent-archaic-replacement-38 = zounds
accent-archaic-replaced-39 = sir
accent-archaic-replacement-39 = sire
accent-archaic-replaced-40 = boss
accent-archaic-replacement-40 = sire
accent-archaic-replaced-41 = speak
accent-archaic-replacement-41 = speaketh
accent-archaic-replaced-42 = talk
accent-archaic-replacement-42 = talketh
accent-archaic-replaced-43 = chemist
accent-archaic-replacement-43 = alchemist
accent-archaic-replaced-44 = doctor
accent-archaic-replacement-44 = physician
accent-archaic-replaced-45 = tomorrow
accent-archaic-replacement-45 = morrow
accent-archaic-replaced-46 = clown
accent-archaic-replacement-46 = jester
accent-archaic-replaced-47 = shit
accent-archaic-replacement-47 = gadzooks
accent-archaic-replaced-48 = truly
accent-archaic-replacement-48 = verily
accent-archaic-replaced-49 = when
accent-archaic-replacement-49 = whence
accent-archaic-replaced-50 = why
accent-archaic-replacement-50 = wherefore
accent-archaic-replaced-51 = outside
accent-archaic-replacement-51 = abroad
accent-archaic-replaced-52 = before
accent-archaic-replacement-52 = afore
accent-archaic-replaced-53 = ago
accent-archaic-replacement-53 = agone
accent-archaic-replaced-54 = below
accent-archaic-replacement-54 = alow
accent-archaic-replaced-55 = look
accent-archaic-replacement-55 = looketh
accent-archaic-replaced-56 = observe
accent-archaic-replacement-56 = behold
accent-archaic-replaced-57 = probably
accent-archaic-replacement-57 = belike
accent-archaic-replaced-58 = truly
accent-archaic-replacement-58 = verily
accent-archaic-replaced-59 = librarian
accent-archaic-replacement-59 = clerk
accent-archaic-replaced-60 = immediately
accent-archaic-replacement-60 = forthwith
accent-archaic-replaced-61 = from now
accent-archaic-replacement-61 = hence
accent-archaic-replaced-62 = fight
accent-archaic-replacement-62 = duel
accent-archaic-replaced-63 = from now
accent-archaic-replacement-63 = hence
accent-archaic-replaced-64 = write
accent-archaic-replacement-64 = inscribe
accent-archaic-replaced-65 = draw
accent-archaic-replacement-65 = inscribe
accent-archaic-replaced-66 = from now
accent-archaic-replacement-66 = hence
accent-archaic-replaced-67 = liar
accent-archaic-replacement-67 = knave
accent-archaic-replaced-68 = i believe
accent-archaic-replacement-68 = methinks
accent-archaic-replaced-69 = i think
accent-archaic-replacement-69 = methinks
accent-archaic-replaced-70 = thanks
accent-archaic-replacement-70 = prithee
accent-archaic-replaced-71 = one time
accent-archaic-replacement-71 = once
accent-archaic-replaced-72 = two times
accent-archaic-replacement-72 = twice
accent-archaic-replaced-73 = three times
accent-archaic-replacement-73 = thrice
accent-archaic-replaced-74 = certainly
accent-archaic-replacement-74 = verily
accent-archaic-replaced-75 = from now
accent-archaic-replacement-75 = hence
accent-archaic-replaced-76 = lathe
accent-archaic-replacement-76 = smithy
accent-archaic-replaced-77 = autolathe
accent-archaic-replacement-77 = autosmithy
accent-archaic-replaced-78 = protolathe
accent-archaic-replacement-78 = protosmithy
accent-archaic-replaced-79 = security officer
accent-archaic-replacement-79 = guardsman
accent-archaic-replaced-80 = sec off
accent-archaic-replacement-80 = guardsman
accent-archaic-replaced-81 = bar
accent-archaic-replacement-81 = tavern
accent-archaic-replaced-82 = scientist
accent-archaic-replacement-82 = artificer
accent-archaic-replaced-83 = sec
accent-archaic-replacement-83 = the guard
accent-archaic-replaced-84 = security
accent-archaic-replacement-84 = the guard
accent-archaic-replaced-85 = warden
accent-archaic-replacement-85 = jailer
accent-archaic-replaced-86 = brig
accent-archaic-replacement-86 = dungeon
accent-archaic-replaced-87 = passenger
accent-archaic-replacement-87 = peasant
accent-archaic-replaced-88 = you're
accent-archaic-replacement-88 = thou'rt
accent-archaic-replaced-89 = permabrig
accent-archaic-replacement-89 = permadungeon
accent-archaic-replaced-90 = bartender
accent-archaic-replacement-90 = tavernkeep
accent-archaic-replaced-91 = chemistry
accent-archaic-replacement-91 = alchemy
accent-archaic-replaced-92 = from now
accent-archaic-replacement-92 = hence
accent-archaic-replaced-93 = chem
accent-archaic-replacement-93 = alchemy
accent-archaic-replaced-94 = yours
accent-archaic-replacement-94 = thine
accent-archaic-replaced-95 = hi
accent-archaic-replacement-95 = greetings
accent-archaic-replaced-96 = hello
accent-archaic-replacement-96 = salutations
accent-archaic-replaced-97 = hey
accent-archaic-replacement-97 = greetings
accent-archaic-replaced-98 = heya
accent-archaic-replacement-98 = greetings
accent-archaic-replaced-99 = yep
accent-archaic-replacement-99 = yea
accent-archaic-replaced-100 = yeah
accent-archaic-replacement-100 = yea
accent-archaic-replaced-101 = yup
accent-archaic-replacement-101 = yea
accent-archaic-replaced-102 = nope
accent-archaic-replacement-102 = nay

View File

@@ -1,4 +1,4 @@
trait-blindness-name = Blindness
trait-blindness-name = Blindness
trait-blindness-desc = You lack vision
trait-narcolepsy-name = Narcolepsy
@@ -22,3 +22,6 @@ trait-uncloneable-desc = Cannot be cloned
trait-pirate-accent-name = Pirate Accent
trait-pirate-accent-desc = You can't stop speaking like a pirate!
trait-archaic-accent-name = Archaic Accent
trait-archaic-accent-desc = You speak in a way that many others find outdated

View File

@@ -1,4 +1,4 @@
# Accents that work off of word replacements.
# Accents that work off of word replacements.
# this is kind of dumb but localization demands it.
# i guess you could just specify the prefix ('mobster') and count and let the system fill it
@@ -210,3 +210,112 @@
accent-pirate-replaced-30: accent-pirate-replacement-30
accent-pirate-replaced-31: accent-pirate-replacement-31
accent-pirate-replaced-32: accent-pirate-replacement-32
- type: accent
id: archaic
wordReplacements:
accent-archaic-replaced-1: accent-archaic-replacement-1
accent-archaic-replaced-2: accent-archaic-replacement-2
accent-archaic-replaced-3: accent-archaic-replacement-3
accent-archaic-replaced-4: accent-archaic-replacement-4
accent-archaic-replaced-5: accent-archaic-replacement-5
accent-archaic-replaced-6: accent-archaic-replacement-6
accent-archaic-replaced-7: accent-archaic-replacement-7
accent-archaic-replaced-8: accent-archaic-replacement-8
accent-archaic-replaced-9: accent-archaic-replacement-9
accent-archaic-replaced-10: accent-archaic-replacement-10
accent-archaic-replaced-11: accent-archaic-replacement-11
accent-archaic-replaced-12: accent-archaic-replacement-12
accent-archaic-replaced-13: accent-archaic-replacement-13
accent-archaic-replaced-14: accent-archaic-replacement-14
accent-archaic-replaced-15: accent-archaic-replacement-15
accent-archaic-replaced-16: accent-archaic-replacement-16
accent-archaic-replaced-17: accent-archaic-replacement-17
accent-archaic-replaced-18: accent-archaic-replacement-18
accent-archaic-replaced-19: accent-archaic-replacement-19
accent-archaic-replaced-20: accent-archaic-replacement-20
accent-archaic-replaced-21: accent-archaic-replacement-21
accent-archaic-replaced-22: accent-archaic-replacement-22
accent-archaic-replaced-23: accent-archaic-replacement-23
accent-archaic-replaced-24: accent-archaic-replacement-24
accent-archaic-replaced-25: accent-archaic-replacement-25
accent-archaic-replaced-26: accent-archaic-replacement-26
accent-archaic-replaced-27: accent-archaic-replacement-27
accent-archaic-replaced-28: accent-archaic-replacement-28
accent-archaic-replaced-29: accent-archaic-replacement-29
accent-archaic-replaced-30: accent-archaic-replacement-30
accent-archaic-replaced-31: accent-archaic-replacement-31
accent-archaic-replaced-32: accent-archaic-replacement-32
accent-archaic-replaced-33: accent-archaic-replacement-33
accent-archaic-replaced-34: accent-archaic-replacement-34
accent-archaic-replaced-35: accent-archaic-replacement-35
accent-archaic-replaced-36: accent-archaic-replacement-36
accent-archaic-replaced-37: accent-archaic-replacement-37
accent-archaic-replaced-38: accent-archaic-replacement-38
accent-archaic-replaced-39: accent-archaic-replacement-39
accent-archaic-replaced-40: accent-archaic-replacement-40
accent-archaic-replaced-41: accent-archaic-replacement-41
accent-archaic-replaced-42: accent-archaic-replacement-42
accent-archaic-replaced-43: accent-archaic-replacement-43
accent-archaic-replaced-44: accent-archaic-replacement-44
accent-archaic-replaced-45: accent-archaic-replacement-45
accent-archaic-replaced-46: accent-archaic-replacement-46
accent-archaic-replaced-47: accent-archaic-replacement-47
accent-archaic-replaced-48: accent-archaic-replacement-48
accent-archaic-replaced-49: accent-archaic-replacement-49
accent-archaic-replaced-50: accent-archaic-replacement-50
accent-archaic-replaced-51: accent-archaic-replacement-51
accent-archaic-replaced-52: accent-archaic-replacement-52
accent-archaic-replaced-53: accent-archaic-replacement-53
accent-archaic-replaced-54: accent-archaic-replacement-54
accent-archaic-replaced-55: accent-archaic-replacement-55
accent-archaic-replaced-56: accent-archaic-replacement-56
accent-archaic-replaced-57: accent-archaic-replacement-57
accent-archaic-replaced-58: accent-archaic-replacement-58
accent-archaic-replaced-59: accent-archaic-replacement-59
accent-archaic-replaced-60: accent-archaic-replacement-60
accent-archaic-replaced-61: accent-archaic-replacement-61
accent-archaic-replaced-62: accent-archaic-replacement-62
accent-archaic-replaced-63: accent-archaic-replacement-63
accent-archaic-replaced-64: accent-archaic-replacement-64
accent-archaic-replaced-65: accent-archaic-replacement-65
accent-archaic-replaced-66: accent-archaic-replacement-66
accent-archaic-replaced-67: accent-archaic-replacement-67
accent-archaic-replaced-68: accent-archaic-replacement-68
accent-archaic-replaced-69: accent-archaic-replacement-69
accent-archaic-replaced-70: accent-archaic-replacement-70
accent-archaic-replaced-71: accent-archaic-replacement-71
accent-archaic-replaced-72: accent-archaic-replacement-72
accent-archaic-replaced-73: accent-archaic-replacement-73
accent-archaic-replaced-74: accent-archaic-replacement-74
accent-archaic-replaced-75: accent-archaic-replacement-75
accent-archaic-replaced-76: accent-archaic-replacement-76
accent-archaic-replaced-77: accent-archaic-replacement-77
accent-archaic-replaced-78: accent-archaic-replacement-78
accent-archaic-replaced-79: accent-archaic-replacement-79
accent-archaic-replaced-80: accent-archaic-replacement-80
accent-archaic-replaced-81: accent-archaic-replacement-81
accent-archaic-replaced-82: accent-archaic-replacement-82
accent-archaic-replaced-83: accent-archaic-replacement-83
accent-archaic-replaced-84: accent-archaic-replacement-84
accent-archaic-replaced-85: accent-archaic-replacement-85
accent-archaic-replaced-86: accent-archaic-replacement-86
accent-archaic-replaced-87: accent-archaic-replacement-87
accent-archaic-replaced-88: accent-archaic-replacement-88
accent-archaic-replaced-89: accent-archaic-replacement-89
accent-archaic-replaced-90: accent-archaic-replacement-90
accent-archaic-replaced-91: accent-archaic-replacement-91
accent-archaic-replaced-92: accent-archaic-replacement-92
accent-archaic-replaced-93: accent-archaic-replacement-93
accent-archaic-replaced-94: accent-archaic-replacement-94
accent-archaic-replaced-95: accent-archaic-replacement-95
accent-archaic-replaced-96: accent-archaic-replacement-96
accent-archaic-replaced-97: accent-archaic-replacement-97
accent-archaic-replaced-98: accent-archaic-replacement-98
accent-archaic-replaced-99: accent-archaic-replacement-99
accent-archaic-replaced-100: accent-archaic-replacement-100
accent-archaic-replaced-101: accent-archaic-replacement-101
accent-archaic-replaced-102: accent-archaic-replacement-102

View File

@@ -4,3 +4,10 @@
description: trait-pirate-accent-desc
components:
- type: PirateAccent
- type: trait
id: ArchaicAccent
name: trait-archaic-accent-name
description: trait-archaic-accent-desc
components:
- type: ArchaicAccent