From 3d2d12a95fd1f3933437f40ff0c2763260f2e194 Mon Sep 17 00:00:00 2001 From: Peptide90 <78795277+Peptide90@users.noreply.github.com> Date: Mon, 13 Jan 2025 20:57:13 +0000 Subject: [PATCH] Language Traits and some fixes (#782) * ghoul max age is now 250 from 120 * disable scavenger and musician, use loadouts. * tribal elder can be telepathic * disable christmas music * disable unused traits * adds new language traits and a new special job datafield for giving traits to jobs. * adds the language and trait localisations * disable more traits * hide more unused antags * disable more traits to fix lint --- Content.Server/Jobs/AddTraitSpecial.cs | 30 + .../IgnoredPrototypes/ignoredPrototypes.yml | 2 + Resources/Locale/en-US/_Nuclear14/traits.ftl | 11 + .../Entities/Mobs/Species/human.yml | 6 +- Resources/Prototypes/Roles/Antags/traitor.yml | 4 +- .../Prototypes/Traits/inconveniences.yml | 78 +- Resources/Prototypes/Traits/languages.yml | 178 ++--- Resources/Prototypes/Traits/mental.yml | 750 +++++++++--------- Resources/Prototypes/Traits/skills.yml | 191 +++-- .../WhiteDream/Roles/Antags/blood-cultist.yml | 2 +- .../Entities/Markers/Spawners/jobs.yml | 2 + .../_Nuclear14/Roles/Jobs/Tribal/tribal.yml | 2 + .../Roles/Jobs/Tribal/tribal_entity.yml | 7 + .../Roles/Jobs/Tribal/tribalelder.yml | 2 + .../Roles/Jobs/Tribal/tribalfarmer.yml | 2 + .../Roles/Jobs/Tribal/tribalhealer.yml | 2 + .../Roles/Jobs/Wastelanders/musician.yml | 2 +- .../Roles/Jobs/Wastelanders/scavenger.yml | 2 +- .../_Nuclear14/SoundCollections/lobby.yml | 3 +- .../Prototypes/_Nuclear14/Species/ghoul.yml | 2 + .../_Nuclear14/Species/ghoulglowing.yml | 2 + .../_Nuclear14/Traits/languages.yml | 27 + 22 files changed, 698 insertions(+), 609 deletions(-) create mode 100644 Content.Server/Jobs/AddTraitSpecial.cs create mode 100644 Resources/Locale/en-US/_Nuclear14/traits.ftl create mode 100644 Resources/Prototypes/_Nuclear14/Traits/languages.yml diff --git a/Content.Server/Jobs/AddTraitSpecial.cs b/Content.Server/Jobs/AddTraitSpecial.cs new file mode 100644 index 0000000000..1bbc531705 --- /dev/null +++ b/Content.Server/Jobs/AddTraitSpecial.cs @@ -0,0 +1,30 @@ +using Content.Server.Traits; +using Content.Shared.Roles; +using Content.Shared.Traits; +using JetBrains.Annotations; +using Robust.Shared.Prototypes; + +namespace Content.Server.Jobs; + + +[UsedImplicitly] +public sealed partial class AddTraitSpecial : JobSpecial +{ + // Datafield for storing multiple trait prototype IDs as strings + [DataField(required: true)] + public HashSet Traits { get; private set; } = new(); + + public override void AfterEquip(EntityUid mob) + { + // Resolve the necessary systems + var entityManager = IoCManager.Resolve(); + var prototypeManager = IoCManager.Resolve(); + var traitSystem = entityManager.System(); + + // Iterate through each trait and add it to the entity + foreach (var traitId in Traits) + if (prototypeManager.TryIndex(traitId, out var traitPrototype)) + + traitSystem.AddTrait(mob, traitPrototype); + } +} diff --git a/Resources/IgnoredPrototypes/ignoredPrototypes.yml b/Resources/IgnoredPrototypes/ignoredPrototypes.yml index b12d300f94..68fcb869a1 100644 --- a/Resources/IgnoredPrototypes/ignoredPrototypes.yml +++ b/Resources/IgnoredPrototypes/ignoredPrototypes.yml @@ -28,6 +28,8 @@ - /Prototypes/Catalog/Jukebox - /Prototypes/DeltaV/Catalog/Jukebox - /Prototypes/WhiteDream/Entities/Objects/Runes/cult.yml +- /Prototypes/Traits/species.yml +- /Prototypes/Traits/mental.yml # Loadouts - /Prototypes/Loadouts/eyes.yml - /Prototypes/Loadouts/hands.yml diff --git a/Resources/Locale/en-US/_Nuclear14/traits.ftl b/Resources/Locale/en-US/_Nuclear14/traits.ftl new file mode 100644 index 0000000000..ffa3979485 --- /dev/null +++ b/Resources/Locale/en-US/_Nuclear14/traits.ftl @@ -0,0 +1,11 @@ +trait-name-LanguageTribal = Tribal Language +trait-description-LanguageTribal = You can understand and speak the local Tribal language. Whether through learning or backstory. +trait-name-LanguageChinese = Chinese Language +trait-description-Chinese = You can understand and speak the Chinese language. Whether through learning or backstory. + +language-English-name = English +language-English-description = The common language of the Wasteland. +language-Chinese-name = Chinese +language-Chinese-description = You can understand and speak the Chinese language. Whether through learning or backstory. +language-Tribal-name = Tribal +language-Tribal-description = You can understand and speak the local Tribal language. Whether through learning or backstory. \ No newline at end of file diff --git a/Resources/Prototypes/Entities/Mobs/Species/human.yml b/Resources/Prototypes/Entities/Mobs/Species/human.yml index 45b14248c8..208f2a933c 100644 --- a/Resources/Prototypes/Entities/Mobs/Species/human.yml +++ b/Resources/Prototypes/Entities/Mobs/Species/human.yml @@ -27,11 +27,9 @@ - Snout - type: LanguageKnowledge speaks: - - TauCetiBasic - - SolCommon + - English understands: - - TauCetiBasic - - SolCommon + - English - type: FootPrints - type: PsionicInsulation diff --git a/Resources/Prototypes/Roles/Antags/traitor.yml b/Resources/Prototypes/Roles/Antags/traitor.yml index 504b638483..2bbf979c9e 100644 --- a/Resources/Prototypes/Roles/Antags/traitor.yml +++ b/Resources/Prototypes/Roles/Antags/traitor.yml @@ -2,14 +2,14 @@ id: Traitor name: roles-antag-syndicate-agent-name antagonist: true - setPreference: true + setPreference: false objective: roles-antag-syndicate-agent-objective - type: antag id: TraitorSleeper name: roles-antag-syndicate-agent-sleeper-name antagonist: true - setPreference: true + setPreference: false objective: roles-antag-syndicate-agent-sleeper-objective # Syndicate Operative Outfit - Monkey diff --git a/Resources/Prototypes/Traits/inconveniences.yml b/Resources/Prototypes/Traits/inconveniences.yml index 62e13c2533..035db6e53d 100644 --- a/Resources/Prototypes/Traits/inconveniences.yml +++ b/Resources/Prototypes/Traits/inconveniences.yml @@ -43,43 +43,43 @@ threeRandomProb: 0 cutRandomProb: 0 -- type: trait - id: ForeignerLight - category: TraitsSpeechLanguages - points: 2 - requirements: - - !type:CharacterTraitRequirement - inverted: true - traits: - - Foreigner - - Muted - - !type:CharacterJobRequirement - inverted: true - jobs: - - Mime - functions: - - !type:TraitAddComponent - components: - - type: ForeignerTrait - cantUnderstand: false - baseTranslator: TranslatorForeigner +# - type: trait + # id: ForeignerLight + # category: TraitsSpeechLanguages + # points: 2 + # requirements: + # - !type:CharacterTraitRequirement + # inverted: true + # traits: + # - Foreigner + # - Muted + # - !type:CharacterJobRequirement + # inverted: true + # jobs: + # - Mime + # functions: + # - !type:TraitAddComponent + # components: + # - type: ForeignerTrait + # cantUnderstand: false + # baseTranslator: TranslatorForeigner -- type: trait - id: Foreigner - category: TraitsSpeechLanguages - points: 4 - requirements: # TODO: Add a requirement to know at least 1 non-gc language - - !type:CharacterTraitRequirement - inverted: true - traits: - - ForeignerLight - - Muted - - !type:CharacterJobRequirement - inverted: true - jobs: - - Mime - functions: - - !type:TraitAddComponent - components: - - type: ForeignerTrait - baseTranslator: TranslatorForeigner +# - type: trait + # id: Foreigner + # category: TraitsSpeechLanguages + # points: 4 + # requirements: # TODO: Add a requirement to know at least 1 non-gc language + # - !type:CharacterTraitRequirement + # inverted: true + # traits: + # - ForeignerLight + # - Muted + # - !type:CharacterJobRequirement + # inverted: true + # jobs: + # - Mime + # functions: + # - !type:TraitAddComponent + # components: + # - type: ForeignerTrait + # baseTranslator: TranslatorForeigner \ No newline at end of file diff --git a/Resources/Prototypes/Traits/languages.yml b/Resources/Prototypes/Traits/languages.yml index 44a487cecd..79a1aea495 100644 --- a/Resources/Prototypes/Traits/languages.yml +++ b/Resources/Prototypes/Traits/languages.yml @@ -12,97 +12,97 @@ languagesUnderstood: - Sign -- type: trait - id: SolCommon - category: TraitsSpeechLanguages - points: 0 - requirements: - - !type:CharacterItemGroupRequirement - group: TraitsLanguagesBasic - - !type:CharacterSpeciesRequirement - inverted: true - species: - - Human - functions: - - !type:TraitModifyLanguages - languagesSpoken: - - SolCommon - languagesUnderstood: - - SolCommon +# - type: trait + # id: SolCommon + # category: TraitsSpeechLanguages + # points: 0 + # requirements: + # - !type:CharacterItemGroupRequirement + # group: TraitsLanguagesBasic + # - !type:CharacterSpeciesRequirement + # inverted: true + # species: + # - Human + # functions: + # - !type:TraitModifyLanguages + # languagesSpoken: + # - SolCommon + # languagesUnderstood: + # - SolCommon -- type: trait - id: Tradeband - category: TraitsSpeechLanguages - points: 0 - requirements: - - !type:CharacterItemGroupRequirement - group: TraitsLanguagesBasic - - !type:CharacterSpeciesRequirement - inverted: true - species: - - Harpy - functions: - - !type:TraitModifyLanguages - languagesSpoken: - - Tradeband - languagesUnderstood: - - Tradeband +# - type: trait + # id: Tradeband + # category: TraitsSpeechLanguages + # points: 0 + # requirements: + # - !type:CharacterItemGroupRequirement + # group: TraitsLanguagesBasic + # - !type:CharacterSpeciesRequirement + # inverted: true + # species: + # - Harpy + # functions: + # - !type:TraitModifyLanguages + # languagesSpoken: + # - Tradeband + # languagesUnderstood: + # - Tradeband -- type: trait - id: Freespeak - category: TraitsSpeechLanguages - points: 0 - requirements: - - !type:CharacterItemGroupRequirement - group: TraitsLanguagesBasic - functions: - - !type:TraitModifyLanguages - languagesSpoken: - - Freespeak - languagesUnderstood: - - Freespeak +# - type: trait + # id: Freespeak + # category: TraitsSpeechLanguages + # points: 0 + # requirements: + # - !type:CharacterItemGroupRequirement + # group: TraitsLanguagesBasic + # functions: + # - !type:TraitModifyLanguages + # languagesSpoken: + # - Freespeak + # languagesUnderstood: + # - Freespeak -- type: trait - id: Elyran - category: TraitsSpeechLanguages - points: 0 - requirements: - - !type:CharacterItemGroupRequirement - group: TraitsLanguagesBasic - functions: - - !type:TraitModifyLanguages - languagesSpoken: - - Elyran - languagesUnderstood: - - Elyran +# - type: trait + # id: Elyran + # category: TraitsSpeechLanguages + # points: 0 + # requirements: + # - !type:CharacterItemGroupRequirement + # group: TraitsLanguagesBasic + # functions: + # - !type:TraitModifyLanguages + # languagesSpoken: + # - Elyran + # languagesUnderstood: + # - Elyran -- type: trait - id: ValyrianStandard - category: TraitsSpeechLanguages - points: -1 - requirements: - - !type:CharacterItemGroupRequirement - group: TraitsLanguagesBasic - functions: - - !type:TraitModifyLanguages - languagesSpoken: - - ValyrianStandard - languagesUnderstood: - - ValyrianStandard +# - type: trait + # id: ValyrianStandard + # category: TraitsSpeechLanguages + # points: -1 + # requirements: + # - !type:CharacterItemGroupRequirement + # group: TraitsLanguagesBasic + # functions: + # - !type:TraitModifyLanguages + # languagesSpoken: + # - ValyrianStandard + # languagesUnderstood: + # - ValyrianStandard -- type: trait - id: Azaziba - category: TraitsSpeechLanguages - points: -1 - requirements: - - !type:CharacterSpeciesRequirement - species: - - Reptilian - - !type:CharacterItemGroupRequirement - group: TraitsLanguagesBasic - functions: - - !type:TraitModifyLanguages - languagesSpoken: - - Azaziba - languagesUnderstood: - - Azaziba +# - type: trait + # id: Azaziba + # category: TraitsSpeechLanguages + # points: -1 + # requirements: + # - !type:CharacterSpeciesRequirement + # species: + # - Reptilian + # - !type:CharacterItemGroupRequirement + # group: TraitsLanguagesBasic + # functions: + # - !type:TraitModifyLanguages + # languagesSpoken: + # - Azaziba + # languagesUnderstood: + # - Azaziba diff --git a/Resources/Prototypes/Traits/mental.yml b/Resources/Prototypes/Traits/mental.yml index 172872a6cd..afe5a1437d 100644 --- a/Resources/Prototypes/Traits/mental.yml +++ b/Resources/Prototypes/Traits/mental.yml @@ -1,385 +1,385 @@ -- type: trait - id: HighPotential - category: Mental - points: -5 - requirements: - - !type:CharacterLogicOrRequirement - requirements: - - !type:CharacterTraitRequirement - traits: - - LatentPsychic - - !type:CharacterJobRequirement - jobs: - - Chaplain - - Librarian - - ResearchDirector - - ForensicMantis - - !type:CharacterLogicOrRequirement - requirements: - - !type:CharacterSpeciesRequirement - inverted: true - species: - - IPC - - !type:CharacterTraitRequirement - traits: - - AnomalousPositronics - - !type:CharacterSpeciesRequirement - inverted: true - species: - - Oni - - !type:CharacterTraitRequirement - inverted: true - traits: - - LowPotential - functions: - - !type:TraitReplaceComponent - components: - - type: PotentiaModifier - potentiaMultiplier: 1.25 +# - type: trait + # id: HighPotential + # category: Mental + # points: -5 + # requirements: + # - !type:CharacterLogicOrRequirement + # requirements: + # - !type:CharacterTraitRequirement + # traits: + # - LatentPsychic + # - !type:CharacterJobRequirement + # jobs: + # - Chaplain + # - Librarian + # - ResearchDirector + # - ForensicMantis + # - !type:CharacterLogicOrRequirement + # requirements: + # - !type:CharacterSpeciesRequirement + # inverted: true + # species: + # - IPC + # - !type:CharacterTraitRequirement + # traits: + # - AnomalousPositronics + # - !type:CharacterSpeciesRequirement + # inverted: true + # species: + # - Oni + # - !type:CharacterTraitRequirement + # inverted: true + # traits: + # - LowPotential + # functions: + # - !type:TraitReplaceComponent + # components: + # - type: PotentiaModifier + # potentiaMultiplier: 1.25 -- type: trait - id: LowPotential - category: Mental - points: 4 - requirements: - - !type:CharacterLogicOrRequirement - requirements: - - !type:CharacterTraitRequirement - traits: - - LatentPsychic - - !type:CharacterJobRequirement - jobs: - - Chaplain - - Librarian - - ResearchDirector - - ForensicMantis - - !type:CharacterLogicOrRequirement - requirements: - - !type:CharacterSpeciesRequirement - inverted: true - species: - - IPC - - !type:CharacterTraitRequirement - traits: - - AnomalousPositronics - - !type:CharacterSpeciesRequirement - inverted: true - species: - - Oni - - !type:CharacterTraitRequirement - inverted: true - traits: - - HighPotential - functions: - - !type:TraitReplaceComponent - components: - - type: PotentiaModifier - potentiaMultiplier: 0.75 +# - type: trait + # id: LowPotential + # category: Mental + # points: 4 + # requirements: + # - !type:CharacterLogicOrRequirement + # requirements: + # - !type:CharacterTraitRequirement + # traits: + # - LatentPsychic + # - !type:CharacterJobRequirement + # jobs: + # - Chaplain + # - Librarian + # - ResearchDirector + # - ForensicMantis + # - !type:CharacterLogicOrRequirement + # requirements: + # - !type:CharacterSpeciesRequirement + # inverted: true + # species: + # - IPC + # - !type:CharacterTraitRequirement + # traits: + # - AnomalousPositronics + # - !type:CharacterSpeciesRequirement + # inverted: true + # species: + # - Oni + # - !type:CharacterTraitRequirement + # inverted: true + # traits: + # - HighPotential + # functions: + # - !type:TraitReplaceComponent + # components: + # - type: PotentiaModifier + # potentiaMultiplier: 0.75 -- type: trait - id: LowAmplification - category: Mental - points: 3 - requirements: - - !type:CharacterLogicOrRequirement - requirements: - - !type:CharacterTraitRequirement - traits: - - LatentPsychic - - !type:CharacterJobRequirement - jobs: - - Chaplain - - Librarian - - ResearchDirector - - ForensicMantis - - !type:CharacterLogicOrRequirement - requirements: - - !type:CharacterSpeciesRequirement - inverted: true - species: - - IPC - - !type:CharacterTraitRequirement - traits: - - AnomalousPositronics - - !type:CharacterSpeciesRequirement - inverted: true - species: - - Shadowkin - - !type:CharacterTraitRequirement - inverted: true - traits: - - HighAmplification - - PowerOverwhelming - functions: - - !type:TraitAddPsionics - psionicPowers: - - LowAmplification +# - type: trait + # id: LowAmplification + # category: Mental + # points: 3 + # requirements: + # - !type:CharacterLogicOrRequirement + # requirements: + # - !type:CharacterTraitRequirement + # traits: + # - LatentPsychic + # - !type:CharacterJobRequirement + # jobs: + # - Chaplain + # - Librarian + # - ResearchDirector + # - ForensicMantis + # - !type:CharacterLogicOrRequirement + # requirements: + # - !type:CharacterSpeciesRequirement + # inverted: true + # species: + # - IPC + # - !type:CharacterTraitRequirement + # traits: + # - AnomalousPositronics + # - !type:CharacterSpeciesRequirement + # inverted: true + # species: + # - Shadowkin + # - !type:CharacterTraitRequirement + # inverted: true + # traits: + # - HighAmplification + # - PowerOverwhelming + # functions: + # - !type:TraitAddPsionics + # psionicPowers: + # - LowAmplification -- type: trait - id: HighAmplification - category: Mental - points: -3 - requirements: - - !type:CharacterLogicOrRequirement - requirements: - - !type:CharacterTraitRequirement - traits: - - LatentPsychic - - !type:CharacterJobRequirement - jobs: - - Chaplain - - Librarian - - ResearchDirector - - ForensicMantis - - !type:CharacterLogicOrRequirement - requirements: - - !type:CharacterSpeciesRequirement - inverted: true - species: - - IPC - - !type:CharacterTraitRequirement - traits: - - AnomalousPositronics - - !type:CharacterTraitRequirement - inverted: true - traits: - - LowAmplification - - PowerOverwhelming - functions: - - !type:TraitAddPsionics - psionicPowers: - - HighAmplification +# - type: trait + # id: HighAmplification + # category: Mental + # points: -3 + # requirements: + # - !type:CharacterLogicOrRequirement + # requirements: + # - !type:CharacterTraitRequirement + # traits: + # - LatentPsychic + # - !type:CharacterJobRequirement + # jobs: + # - Chaplain + # - Librarian + # - ResearchDirector + # - ForensicMantis + # - !type:CharacterLogicOrRequirement + # requirements: + # - !type:CharacterSpeciesRequirement + # inverted: true + # species: + # - IPC + # - !type:CharacterTraitRequirement + # traits: + # - AnomalousPositronics + # - !type:CharacterTraitRequirement + # inverted: true + # traits: + # - LowAmplification + # - PowerOverwhelming + # functions: + # - !type:TraitAddPsionics + # psionicPowers: + # - HighAmplification -- type: trait - id: PowerOverwhelming - category: Mental - points: -10 - requirements: - - !type:CharacterLogicOrRequirement - requirements: - - !type:CharacterTraitRequirement - traits: - - LatentPsychic - - !type:CharacterJobRequirement - jobs: - - Chaplain - - Librarian - - ResearchDirector - - ForensicMantis - - !type:CharacterLogicOrRequirement - requirements: - - !type:CharacterSpeciesRequirement - inverted: true - species: - - IPC - - !type:CharacterTraitRequirement - traits: - - AnomalousPositronics - - !type:CharacterTraitRequirement - inverted: true - traits: - - LowAmplification - - HighAmplification - functions: - - !type:TraitAddPsionics - psionicPowers: - - PowerOverwhelming +# - type: trait + # id: PowerOverwhelming + # category: Mental + # points: -10 + # requirements: + # - !type:CharacterLogicOrRequirement + # requirements: + # - !type:CharacterTraitRequirement + # traits: + # - LatentPsychic + # - !type:CharacterJobRequirement + # jobs: + # - Chaplain + # - Librarian + # - ResearchDirector + # - ForensicMantis + # - !type:CharacterLogicOrRequirement + # requirements: + # - !type:CharacterSpeciesRequirement + # inverted: true + # species: + # - IPC + # - !type:CharacterTraitRequirement + # traits: + # - AnomalousPositronics + # - !type:CharacterTraitRequirement + # inverted: true + # traits: + # - LowAmplification + # - HighAmplification + # functions: + # - !type:TraitAddPsionics + # psionicPowers: + # - PowerOverwhelming -- type: trait - id: LowDampening - category: Mental - points: 3 - requirements: - - !type:CharacterLogicOrRequirement - requirements: - - !type:CharacterTraitRequirement - traits: - - LatentPsychic - - !type:CharacterJobRequirement - jobs: - - Chaplain - - Librarian - - ResearchDirector - - ForensicMantis - - !type:CharacterLogicOrRequirement - requirements: - - !type:CharacterSpeciesRequirement - inverted: true - species: - - IPC - - !type:CharacterTraitRequirement - traits: - - AnomalousPositronics - - !type:CharacterTraitRequirement - inverted: true - traits: - - HighDampening - functions: - - !type:TraitAddPsionics - psionicPowers: - - LowDampening +# - type: trait + # id: LowDampening + # category: Mental + # points: 3 + # requirements: + # - !type:CharacterLogicOrRequirement + # requirements: + # - !type:CharacterTraitRequirement + # traits: + # - LatentPsychic + # - !type:CharacterJobRequirement + # jobs: + # - Chaplain + # - Librarian + # - ResearchDirector + # - ForensicMantis + # - !type:CharacterLogicOrRequirement + # requirements: + # - !type:CharacterSpeciesRequirement + # inverted: true + # species: + # - IPC + # - !type:CharacterTraitRequirement + # traits: + # - AnomalousPositronics + # - !type:CharacterTraitRequirement + # inverted: true + # traits: + # - HighDampening + # functions: + # - !type:TraitAddPsionics + # psionicPowers: + # - LowDampening -- type: trait - id: HighDampening - category: Mental - points: -3 - requirements: - - !type:CharacterLogicOrRequirement - requirements: - - !type:CharacterTraitRequirement - traits: - - LatentPsychic - - !type:CharacterJobRequirement - jobs: - - Chaplain - - Librarian - - ResearchDirector - - ForensicMantis - - !type:CharacterLogicOrRequirement - requirements: - - !type:CharacterSpeciesRequirement - inverted: true - species: - - IPC - - !type:CharacterTraitRequirement - traits: - - AnomalousPositronics - - !type:CharacterTraitRequirement - inverted: true - traits: - - LowDampening - functions: - - !type:TraitAddPsionics - psionicPowers: - - HighDampening +# - type: trait + # id: HighDampening + # category: Mental + # points: -3 + # requirements: + # - !type:CharacterLogicOrRequirement + # requirements: + # - !type:CharacterTraitRequirement + # traits: + # - LatentPsychic + # - !type:CharacterJobRequirement + # jobs: + # - Chaplain + # - Librarian + # - ResearchDirector + # - ForensicMantis + # - !type:CharacterLogicOrRequirement + # requirements: + # - !type:CharacterSpeciesRequirement + # inverted: true + # species: + # - IPC + # - !type:CharacterTraitRequirement + # traits: + # - AnomalousPositronics + # - !type:CharacterTraitRequirement + # inverted: true + # traits: + # - LowDampening + # functions: + # - !type:TraitAddPsionics + # psionicPowers: + # - HighDampening -- type: trait - id: DispelPower - category: Mental - points: -6 - requirements: - - !type:CharacterLogicOrRequirement - requirements: - - !type:CharacterTraitRequirement - traits: - - LatentPsychic - - !type:CharacterJobRequirement - jobs: - - Chaplain - - Librarian - - ForensicMantis - - !type:CharacterLogicOrRequirement - requirements: - - !type:CharacterSpeciesRequirement - inverted: true - species: - - IPC - - !type:CharacterTraitRequirement - traits: - - AnomalousPositronics - - !type:CharacterJobRequirement - inverted: true - jobs: - - ResearchDirector - functions: - - !type:TraitAddPsionics - psionicPowers: - - DispelPower +# - type: trait + # id: DispelPower + # category: Mental + # points: -6 + # requirements: + # - !type:CharacterLogicOrRequirement + # requirements: + # - !type:CharacterTraitRequirement + # traits: + # - LatentPsychic + # - !type:CharacterJobRequirement + # jobs: + # - Chaplain + # - Librarian + # - ForensicMantis + # - !type:CharacterLogicOrRequirement + # requirements: + # - !type:CharacterSpeciesRequirement + # inverted: true + # species: + # - IPC + # - !type:CharacterTraitRequirement + # traits: + # - AnomalousPositronics + # - !type:CharacterJobRequirement + # inverted: true + # jobs: + # - ResearchDirector + # functions: + # - !type:TraitAddPsionics + # psionicPowers: + # - DispelPower -- type: trait - id: MetapsionicPower - category: Mental - points: -4 - requirements: - - !type:CharacterLogicOrRequirement - requirements: - - !type:CharacterTraitRequirement - traits: - - LatentPsychic - - !type:CharacterJobRequirement - jobs: - - Chaplain - - Librarian - - !type:CharacterLogicOrRequirement - requirements: - - !type:CharacterSpeciesRequirement - inverted: true - species: - - IPC - - !type:CharacterTraitRequirement - traits: - - AnomalousPositronics - - !type:CharacterJobRequirement - inverted: true - jobs: - - ResearchDirector - - ForensicMantis - functions: - - !type:TraitAddPsionics - psionicPowers: - - MetapsionicPower +# - type: trait + # id: MetapsionicPower + # category: Mental + # points: -4 + # requirements: + # - !type:CharacterLogicOrRequirement + # requirements: + # - !type:CharacterTraitRequirement + # traits: + # - LatentPsychic + # - !type:CharacterJobRequirement + # jobs: + # - Chaplain + # - Librarian + # - !type:CharacterLogicOrRequirement + # requirements: + # - !type:CharacterSpeciesRequirement + # inverted: true + # species: + # - IPC + # - !type:CharacterTraitRequirement + # traits: + # - AnomalousPositronics + # - !type:CharacterJobRequirement + # inverted: true + # jobs: + # - ResearchDirector + # - ForensicMantis + # functions: + # - !type:TraitAddPsionics + # psionicPowers: + # - MetapsionicPower -- type: trait - id: XenoglossyPower - category: Mental - points: -10 - requirements: - - !type:CharacterLogicOrRequirement - requirements: - - !type:CharacterTraitRequirement - traits: - - LatentPsychic - - NaturalTelepath - - !type:CharacterJobRequirement - jobs: - - Chaplain - - ResearchDirector - - ForensicMantis - - !type:CharacterLogicOrRequirement - requirements: - - !type:CharacterSpeciesRequirement - inverted: true - species: - - IPC - - !type:CharacterTraitRequirement - traits: - - AnomalousPositronics - - !type:CharacterJobRequirement - inverted: true - jobs: - - Librarian - functions: - - !type:TraitAddPsionics - psionicPowers: - - XenoglossyPower +# - type: trait + # id: XenoglossyPower + # category: Mental + # points: -10 + # requirements: + # - !type:CharacterLogicOrRequirement + # requirements: + # - !type:CharacterTraitRequirement + # traits: + # - LatentPsychic + # - NaturalTelepath + # - !type:CharacterJobRequirement + # jobs: + # - Chaplain + # - ResearchDirector + # - ForensicMantis + # - !type:CharacterLogicOrRequirement + # requirements: + # - !type:CharacterSpeciesRequirement + # inverted: true + # species: + # - IPC + # - !type:CharacterTraitRequirement + # traits: + # - AnomalousPositronics + # - !type:CharacterJobRequirement + # inverted: true + # jobs: + # - Librarian + # functions: + # - !type:TraitAddPsionics + # psionicPowers: + # - XenoglossyPower -- type: trait - id: PsychognomyPower - category: Mental - points: -3 - requirements: - - !type:CharacterLogicOrRequirement - requirements: - - !type:CharacterTraitRequirement - traits: - - LatentPsychic - - NaturalTelepath - - !type:CharacterJobRequirement - jobs: - - Chaplain - - ResearchDirector - - ForensicMantis - - Librarian - - !type:CharacterLogicOrRequirement - requirements: - - !type:CharacterSpeciesRequirement - inverted: true - species: - - IPC - - !type:CharacterTraitRequirement - traits: - - AnomalousPositronics - functions: - - !type:TraitAddPsionics - psionicPowers: - - PsychognomyPower +# - type: trait + # id: PsychognomyPower + # category: Mental + # points: -3 + # requirements: + # - !type:CharacterLogicOrRequirement + # requirements: + # - !type:CharacterTraitRequirement + # traits: + # - LatentPsychic + # - NaturalTelepath + # - !type:CharacterJobRequirement + # jobs: + # - Chaplain + # - ResearchDirector + # - ForensicMantis + # - Librarian + # - !type:CharacterLogicOrRequirement + # requirements: + # - !type:CharacterSpeciesRequirement + # inverted: true + # species: + # - IPC + # - !type:CharacterTraitRequirement + # traits: + # - AnomalousPositronics + # functions: + # - !type:TraitAddPsionics + # psionicPowers: + # - PsychognomyPower diff --git a/Resources/Prototypes/Traits/skills.yml b/Resources/Prototypes/Traits/skills.yml index 8a035d24f6..76c2f47824 100644 --- a/Resources/Prototypes/Traits/skills.yml +++ b/Resources/Prototypes/Traits/skills.yml @@ -182,82 +182,82 @@ - type: Singer proto: NormalSinger -- type: trait - id: LatentPsychic - category: Mental - points: -4 - functions: - - !type:TraitAddComponent - components: - - type: Psionic - requirements: - - !type:CharacterJobRequirement - inverted: true - jobs: - - Borg - - MedicalBorg - - ResearchDirector - - ForensicMantis - - Chaplain - - Librarian - - !type:CharacterLogicOrRequirement - requirements: - - !type:CharacterSpeciesRequirement - inverted: true - species: - - IPC - - !type:CharacterTraitRequirement - traits: - - AnomalousPositronics - - !type:CharacterLogicOrRequirement - requirements: - - !type:CharacterSpeciesRequirement - inverted: true - species: - - Shadowkin - - !type:CharacterTraitRequirement - inverted: true - traits: - - PsionicInsulation +# - type: trait + # id: LatentPsychic + # category: Mental + # points: -4 + # functions: + # - !type:TraitAddComponent + # components: + # - type: Psionic + # requirements: + # - !type:CharacterJobRequirement + # inverted: true + # jobs: + # - Borg + # - MedicalBorg + # - ResearchDirector + # - ForensicMantis + # - Chaplain + # - Librarian + # - !type:CharacterLogicOrRequirement + # requirements: + # - !type:CharacterSpeciesRequirement + # inverted: true + # species: + # - IPC + # - !type:CharacterTraitRequirement + # traits: + # - AnomalousPositronics + # - !type:CharacterLogicOrRequirement + # requirements: + # - !type:CharacterSpeciesRequirement + # inverted: true + # species: + # - Shadowkin + # - !type:CharacterTraitRequirement + # inverted: true + # traits: + # - PsionicInsulation -- type: trait - id: PsionicInsulation - category: Mental - points: -10 #Buy a significant disability to get this. - functions: - - !type:TraitAddComponent - components: - - type: PsionicInsulation - - type: Mindbroken - requirements: - - !type:CharacterJobRequirement - inverted: true - jobs: - - Borg - - MedicalBorg - - ResearchDirector - - ForensicMantis - - Chaplain - - Librarian - - !type:CharacterLogicOrRequirement - requirements: - - !type:CharacterSpeciesRequirement - inverted: true - species: - - IPC - - !type:CharacterTraitRequirement - traits: - - AnomalousPositronics - - !type:CharacterTraitRequirement - inverted: true - traits: - - LatentPsychic - - !type:CharacterLogicOrRequirement - requirements: - - !type:CharacterSpeciesRequirement - inverted: true - species: - - Shadowkin +# - type: trait + # id: PsionicInsulation + # category: Mental + # points: -10 #Buy a significant disability to get this. + # functions: + # - !type:TraitAddComponent + # components: + # - type: PsionicInsulation + # - type: Mindbroken + # requirements: + # - !type:CharacterJobRequirement + # inverted: true + # jobs: + # - Borg + # - MedicalBorg + # - ResearchDirector + # - ForensicMantis + # - Chaplain + # - Librarian + # - !type:CharacterLogicOrRequirement + # requirements: + # - !type:CharacterSpeciesRequirement + # inverted: true + # species: + # - IPC + # - !type:CharacterTraitRequirement + # traits: + # - AnomalousPositronics + # - !type:CharacterTraitRequirement + # inverted: true + # traits: + # - LatentPsychic + # - !type:CharacterLogicOrRequirement + # requirements: + # - !type:CharacterSpeciesRequirement + # inverted: true + # species: + # - Shadowkin - type: trait id: NaturalTelepath @@ -268,29 +268,28 @@ psionicPowers: - TelepathyPower requirements: - - !type:CharacterJobRequirement - inverted: true - jobs: - - ResearchDirector - - ForensicMantis - - !type:CharacterLogicOrRequirement - requirements: - - !type:CharacterTraitRequirement - traits: - - LatentPsychic + # - !type:CharacterJobRequirement + # inverted: true + # jobs: + # - ResearchDirector + # - ForensicMantis + # - !type:CharacterLogicOrRequirement + # requirements: + # - !type:CharacterTraitRequirement + # traits: + # - LatentPsychic - !type:CharacterJobRequirement jobs: - - Chaplain - - Librarian - - !type:CharacterLogicOrRequirement - requirements: - - !type:CharacterSpeciesRequirement - inverted: true - species: - - IPC - - !type:CharacterTraitRequirement - traits: - - AnomalousPositronics + - TribalElder + # - !type:CharacterLogicOrRequirement + # requirements: + # - !type:CharacterSpeciesRequirement + # inverted: true + # species: + # - IPC + # - !type:CharacterTraitRequirement + # traits: + # - AnomalousPositronics - type: trait id: TrapAvoider diff --git a/Resources/Prototypes/WhiteDream/Roles/Antags/blood-cultist.yml b/Resources/Prototypes/WhiteDream/Roles/Antags/blood-cultist.yml index 0e0e9b5943..60afb8c3e1 100644 --- a/Resources/Prototypes/WhiteDream/Roles/Antags/blood-cultist.yml +++ b/Resources/Prototypes/WhiteDream/Roles/Antags/blood-cultist.yml @@ -2,7 +2,7 @@ id: BloodCultist name: roles-antag-blood-cultist-name antagonist: true - setPreference: true + setPreference: false objective: roles-antag-blood-cultist-objective requirements: - !type:CharacterOverallTimeRequirement diff --git a/Resources/Prototypes/_Nuclear14/Entities/Markers/Spawners/jobs.yml b/Resources/Prototypes/_Nuclear14/Entities/Markers/Spawners/jobs.yml index ae456d62c9..6ae8784678 100644 --- a/Resources/Prototypes/_Nuclear14/Entities/Markers/Spawners/jobs.yml +++ b/Resources/Prototypes/_Nuclear14/Entities/Markers/Spawners/jobs.yml @@ -476,6 +476,7 @@ id: N14SpawnPointWastelandMusician parent: N14SpawnPointWastelander name: wasteland musician + categories: [ HideSpawnMenu ] # disabled, use loadouts components: - type: SpawnPoint job_id: WastelandMusician @@ -500,6 +501,7 @@ id: N14SpawnPointWastelandScavenger parent: N14SpawnPointWastelander name: wasteland scavenger + categories: [ HideSpawnMenu ] # disabled, use loadouts components: - type: SpawnPoint job_id: WastelandScavenger diff --git a/Resources/Prototypes/_Nuclear14/Roles/Jobs/Tribal/tribal.yml b/Resources/Prototypes/_Nuclear14/Roles/Jobs/Tribal/tribal.yml index c310a29343..06b7d7e1d0 100644 --- a/Resources/Prototypes/_Nuclear14/Roles/Jobs/Tribal/tribal.yml +++ b/Resources/Prototypes/_Nuclear14/Roles/Jobs/Tribal/tribal.yml @@ -22,6 +22,8 @@ - type: NpcFactionMember factions: - Tribal + - !type:AddTraitSpecial + traits: [ LanguageTribal ] - type: startingGear id: TribalGear diff --git a/Resources/Prototypes/_Nuclear14/Roles/Jobs/Tribal/tribal_entity.yml b/Resources/Prototypes/_Nuclear14/Roles/Jobs/Tribal/tribal_entity.yml index f38a749003..d70a07e21e 100644 --- a/Resources/Prototypes/_Nuclear14/Roles/Jobs/Tribal/tribal_entity.yml +++ b/Resources/Prototypes/_Nuclear14/Roles/Jobs/Tribal/tribal_entity.yml @@ -13,6 +13,13 @@ - type: NpcFactionMember factions: - Tribal + - type: LanguageKnowledge + speaks: + - English + - Tribal + understands: + - English + - Tribal - type: entity parent: N14MobHumanTribal diff --git a/Resources/Prototypes/_Nuclear14/Roles/Jobs/Tribal/tribalelder.yml b/Resources/Prototypes/_Nuclear14/Roles/Jobs/Tribal/tribalelder.yml index 431d029ff9..74f1aa5428 100644 --- a/Resources/Prototypes/_Nuclear14/Roles/Jobs/Tribal/tribalelder.yml +++ b/Resources/Prototypes/_Nuclear14/Roles/Jobs/Tribal/tribalelder.yml @@ -24,6 +24,8 @@ - type: NpcFactionMember factions: - Tribal + - !type:AddTraitSpecial + traits: [ LanguageTribal ] - type: startingGear id: TribalElderGear diff --git a/Resources/Prototypes/_Nuclear14/Roles/Jobs/Tribal/tribalfarmer.yml b/Resources/Prototypes/_Nuclear14/Roles/Jobs/Tribal/tribalfarmer.yml index caccb8281e..64fb8dcbee 100644 --- a/Resources/Prototypes/_Nuclear14/Roles/Jobs/Tribal/tribalfarmer.yml +++ b/Resources/Prototypes/_Nuclear14/Roles/Jobs/Tribal/tribalfarmer.yml @@ -23,6 +23,8 @@ - type: NpcFactionMember factions: - Tribal + - !type:AddTraitSpecial + traits: [ LanguageTribal ] - type: startingGear id: TribalFarmerGear diff --git a/Resources/Prototypes/_Nuclear14/Roles/Jobs/Tribal/tribalhealer.yml b/Resources/Prototypes/_Nuclear14/Roles/Jobs/Tribal/tribalhealer.yml index 2672d00a0a..64e725701a 100644 --- a/Resources/Prototypes/_Nuclear14/Roles/Jobs/Tribal/tribalhealer.yml +++ b/Resources/Prototypes/_Nuclear14/Roles/Jobs/Tribal/tribalhealer.yml @@ -24,6 +24,8 @@ factions: - Tribal - type: CPRTraining + - !type:AddTraitSpecial + traits: [ LanguageTribal ] - type: startingGear id: TribalHealerGear diff --git a/Resources/Prototypes/_Nuclear14/Roles/Jobs/Wastelanders/musician.yml b/Resources/Prototypes/_Nuclear14/Roles/Jobs/Wastelanders/musician.yml index 67440192f1..6a05cea990 100644 --- a/Resources/Prototypes/_Nuclear14/Roles/Jobs/Wastelanders/musician.yml +++ b/Resources/Prototypes/_Nuclear14/Roles/Jobs/Wastelanders/musician.yml @@ -1,6 +1,6 @@ - type: job id: WastelandMusician - setPreference: true + setPreference: false # disabled, use loadouts. name: job-name-waste-musician description: job-description-waste-musician playTimeTracker: WastelandMusician diff --git a/Resources/Prototypes/_Nuclear14/Roles/Jobs/Wastelanders/scavenger.yml b/Resources/Prototypes/_Nuclear14/Roles/Jobs/Wastelanders/scavenger.yml index a4aa774f37..3e6dc962ae 100644 --- a/Resources/Prototypes/_Nuclear14/Roles/Jobs/Wastelanders/scavenger.yml +++ b/Resources/Prototypes/_Nuclear14/Roles/Jobs/Wastelanders/scavenger.yml @@ -1,6 +1,6 @@ - type: job id: WastelandScavenger - setPreference: true + setPreference: false # disabled, use loadouts. name: job-name-scavenger description: job-description-scavenger playTimeTracker: WastelandScavenger diff --git a/Resources/Prototypes/_Nuclear14/SoundCollections/lobby.yml b/Resources/Prototypes/_Nuclear14/SoundCollections/lobby.yml index de18fe1263..81f71332b9 100644 --- a/Resources/Prototypes/_Nuclear14/SoundCollections/lobby.yml +++ b/Resources/Prototypes/_Nuclear14/SoundCollections/lobby.yml @@ -13,4 +13,5 @@ - /Audio/_Nuclear14/Lobby/MUS_Joe_Cool_CAS.ogg - /Audio/_Nuclear14/Lobby/MUS_Johnny_Guitar.ogg - /Audio/_Nuclear14/Lobby/MUS_Somethings_Gotta_Give.ogg - - /Audio/_Nuclear14/Lobby/Frank-Sinatra-Jingle-Bells.ogg + # Happy Holidays + # - /Audio/_Nuclear14/Lobby/Frank-Sinatra-Jingle-Bells.ogg \ No newline at end of file diff --git a/Resources/Prototypes/_Nuclear14/Species/ghoul.yml b/Resources/Prototypes/_Nuclear14/Species/ghoul.yml index 6734a7009b..7551e69a07 100644 --- a/Resources/Prototypes/_Nuclear14/Species/ghoul.yml +++ b/Resources/Prototypes/_Nuclear14/Species/ghoul.yml @@ -13,6 +13,8 @@ minWidth: 0.7 defaultWidth: 0.8 maxWidth: 0.9 + oldAge: 100 + maxAge: 250 # The lack of a layer means that # this person cannot have round-start anything diff --git a/Resources/Prototypes/_Nuclear14/Species/ghoulglowing.yml b/Resources/Prototypes/_Nuclear14/Species/ghoulglowing.yml index d289f22afa..7211e1ef03 100644 --- a/Resources/Prototypes/_Nuclear14/Species/ghoulglowing.yml +++ b/Resources/Prototypes/_Nuclear14/Species/ghoulglowing.yml @@ -13,6 +13,8 @@ minWidth: 0.7 defaultWidth: 0.8 maxWidth: 0.9 + oldAge: 100 + maxAge: 250 # The lack of a layer means that # this person cannot have round-start anything diff --git a/Resources/Prototypes/_Nuclear14/Traits/languages.yml b/Resources/Prototypes/_Nuclear14/Traits/languages.yml new file mode 100644 index 0000000000..40e69d6552 --- /dev/null +++ b/Resources/Prototypes/_Nuclear14/Traits/languages.yml @@ -0,0 +1,27 @@ +- type: trait + id: LanguageChinese + category: TraitsSpeechLanguages + points: -5 + requirements: + - !type:CharacterItemGroupRequirement + group: TraitsLanguagesBasic + functions: + - !type:TraitModifyLanguages + languagesSpoken: + - Chinese + languagesUnderstood: + - Chinese + +- type: trait + id: LanguageTribal + category: TraitsSpeechLanguages + points: -3 + requirements: + - !type:CharacterItemGroupRequirement + group: TraitsLanguagesBasic + functions: + - !type:TraitModifyLanguages + languagesSpoken: + - Tribal + languagesUnderstood: + - Tribal \ No newline at end of file