diff --git a/Content.Shared/Traits/Assorted/Components/NormalVisionComponent.cs b/Content.Shared/Traits/Assorted/Components/NormalVisionComponent.cs new file mode 100644 index 00000000000..442bb6f0084 --- /dev/null +++ b/Content.Shared/Traits/Assorted/Components/NormalVisionComponent.cs @@ -0,0 +1,12 @@ +using Robust.Shared.GameStates; + +namespace Content.Shared.Traits.Assorted.Components; + +/// +/// This is used for removing species specific vision traits +/// +[RegisterComponent, NetworkedComponent] +public sealed partial class NormalVisionComponent : Component +{ +} + diff --git a/Content.Shared/Traits/Assorted/Systems/NormalVisionSystem.cs b/Content.Shared/Traits/Assorted/Systems/NormalVisionSystem.cs new file mode 100644 index 00000000000..ee25bf364b9 --- /dev/null +++ b/Content.Shared/Traits/Assorted/Systems/NormalVisionSystem.cs @@ -0,0 +1,23 @@ +using Content.Shared.Abilities; +using Content.Shared.Traits.Assorted.Components; + +namespace Content.Shared.Traits.Assorted.Systems; + +/// +/// This handles removing species-specific vision traits. +/// +public sealed class NormalVisionSystem : EntitySystem +{ + /// + public override void Initialize() + { + SubscribeLocalEvent(OnStartup); + } + + + private void OnStartup(EntityUid uid, NormalVisionComponent component, ComponentInit args) + { + RemComp(uid); + RemComp(uid); + } +} diff --git a/Resources/Locale/en-US/customization/character-requirements.ftl b/Resources/Locale/en-US/customization/character-requirements.ftl index b073bdb773f..e7bcf0669f7 100644 --- a/Resources/Locale/en-US/customization/character-requirements.ftl +++ b/Resources/Locale/en-US/customization/character-requirements.ftl @@ -9,7 +9,7 @@ character-species-requirement = You must {$inverted -> character-trait-requirement = You must {$inverted -> [true] not have *[other] have -} the trait [color=lightblue]{$trait}[/color] +} the trait [color=lightblue]{$traits}[/color] character-backpack-type-requirement = You must {$inverted -> [true] not use *[other] use diff --git a/Resources/Locale/en-US/traits/traits.ftl b/Resources/Locale/en-US/traits/traits.ftl index e9163bdb548..96478015085 100644 --- a/Resources/Locale/en-US/traits/traits.ftl +++ b/Resources/Locale/en-US/traits/traits.ftl @@ -31,3 +31,9 @@ trait-description-SocialAnxiety = You are anxious when you speak and stutter. trait-name-Snoring = Snoring trait-description-Snoring = You will snore while sleeping. + +trait-name-NormalVisionHarpy = Trichromat Modification +trait-description-NormalVisionHarpy = Your eyes have been modified by means of advanced medicine to see in the standard colors of Red, Green, and Blue. + +trait-name-NormalVisionVulpkanin = Trichromat Modification +trait-description-NormalVisionVulpkanin = Your eyes have been modified by means of advanced medicine to see in the standard colors of Red, Green, and Blue. diff --git a/Resources/Prototypes/DeltaV/Traits/altvision.yml b/Resources/Prototypes/DeltaV/Traits/altvision.yml index d1980bc23ad..1257c1eeb09 100644 --- a/Resources/Prototypes/DeltaV/Traits/altvision.yml +++ b/Resources/Prototypes/DeltaV/Traits/altvision.yml @@ -2,6 +2,17 @@ id: UltraVision category: Visual points: -1 + requirements: + - !type:CharacterSpeciesRequirement + inverted: true + species: Vulpkanin + - !type:CharacterSpeciesRequirement + inverted: true + species: Harpy + - !type:CharacterTraitRequirement + inverted: true + traits: + - DogVision components: - type: UltraVision @@ -9,5 +20,16 @@ id: DogVision category: Visual points: -1 + requirements: + - !type:CharacterSpeciesRequirement + inverted: true + species: Vulpkanin + - !type:CharacterSpeciesRequirement + inverted: true + species: Harpy + - !type:CharacterTraitRequirement + inverted: true + traits: + - UltraVision components: - type: DogVision diff --git a/Resources/Prototypes/Traits/neutral.yml b/Resources/Prototypes/Traits/neutral.yml index 3a3dc943cd7..86e12d20b34 100644 --- a/Resources/Prototypes/Traits/neutral.yml +++ b/Resources/Prototypes/Traits/neutral.yml @@ -21,3 +21,23 @@ - type: MothAccent - type: ReplacementAccent accent: dwarf + +- type: trait + id: NormalVisionHarpy + category: Visual + points: -1 + requirements: + - !type:CharacterSpeciesRequirement + species: Harpy + components: + - type: NormalVision + +- type: trait + id: NormalVisionVulpkanin + category: Visual + points: -1 + requirements: + - !type:CharacterSpeciesRequirement + species: Vulpkanin + components: + - type: NormalVision