From 84a225da47716dd45fc2a2d76820d0da0a7a8ec9 Mon Sep 17 00:00:00 2001 From: OctoRocket <88291550+OctoRocket@users.noreply.github.com> Date: Wed, 26 Jul 2023 01:54:45 -0500 Subject: [PATCH] [Add] Adds the accentless trait (#18303) * Accentless trait revival, not done yet * Works for lizard, but for some reason dwarf crashes it * Fixed! --- .../Traits/Assorted/AccentlessComponent.cs | 16 ++++++++++++ .../Traits/Assorted/AccentlessSystem.cs | 26 +++++++++++++++++++ Resources/Locale/en-US/traits/traits.ftl | 3 +++ Resources/Prototypes/Traits/neutral.yml | 13 +++++++++- 4 files changed, 57 insertions(+), 1 deletion(-) create mode 100644 Content.Shared/Traits/Assorted/AccentlessComponent.cs create mode 100644 Content.Shared/Traits/Assorted/AccentlessSystem.cs 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