diff --git a/Content.Shared/Traits/Assorted/AccentlessComponent.cs b/Content.Shared/Traits/Assorted/AccentlessComponent.cs new file mode 100644 index 0000000000..e3bb6266a8 --- /dev/null +++ b/Content.Shared/Traits/Assorted/AccentlessComponent.cs @@ -0,0 +1,16 @@ +using Robust.Shared.Prototypes; + +namespace Content.Shared.Traits.Assorted; + +/// +/// This is used for the accentless trait +/// +[RegisterComponent] +public sealed class AccentlessComponent : Component +{ + /// + /// The accents removed by the accentless trait. + /// + [DataField("removes"), ViewVariables(VVAccess.ReadWrite)] + public ComponentRegistry RemovedAccents = new(); +} diff --git a/Content.Shared/Traits/Assorted/AccentlessSystem.cs b/Content.Shared/Traits/Assorted/AccentlessSystem.cs new file mode 100644 index 0000000000..2242bc6e52 --- /dev/null +++ b/Content.Shared/Traits/Assorted/AccentlessSystem.cs @@ -0,0 +1,26 @@ +using Robust.Shared.Serialization.Manager; + +namespace Content.Shared.Traits.Assorted; + +/// +/// This handles removing accents when using the accentless trait. +/// +public sealed class AccentlessSystem : EntitySystem +{ + /// + public override void Initialize() + { + base.Initialize(); + + SubscribeLocalEvent(RemoveAccents); + } + + private void RemoveAccents(EntityUid uid, AccentlessComponent component, ComponentStartup args) + { + foreach (var accent in component.RemovedAccents.Values) + { + var accentComponent = accent.Component; + RemComp(uid, accentComponent.GetType()); + } + } +} diff --git a/Resources/Locale/en-US/traits/traits.ftl b/Resources/Locale/en-US/traits/traits.ftl index a7c7d46f72..fd9cd1dce8 100644 --- a/Resources/Locale/en-US/traits/traits.ftl +++ b/Resources/Locale/en-US/traits/traits.ftl @@ -25,3 +25,6 @@ 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 + +trait-accentless-name = Accentless +trait-accentless-desc = You don't have the accent that your species would usually have diff --git a/Resources/Prototypes/Traits/neutral.yml b/Resources/Prototypes/Traits/neutral.yml index 88d09cfe4c..dd837f32b9 100644 --- a/Resources/Prototypes/Traits/neutral.yml +++ b/Resources/Prototypes/Traits/neutral.yml @@ -10,4 +10,15 @@ name: trait-archaic-accent-name description: trait-archaic-accent-desc components: - - type: ArchaicAccent + - type: ArchaicAccent + +- type: trait + id: Accentless + name: trait-accentless-name + description: trait-accentless-desc + components: + - type: Accentless + removes: + - type: LizardAccent + - type: ReplacementAccent + accent: dwarf