diff --git a/Content.Server/Traits/Assorted/ForeignerTraitComponent.cs b/Content.Server/Traits/Assorted/ForeignerTraitComponent.cs
index 756f44e7429..a35972f1c86 100644
--- a/Content.Server/Traits/Assorted/ForeignerTraitComponent.cs
+++ b/Content.Server/Traits/Assorted/ForeignerTraitComponent.cs
@@ -13,7 +13,7 @@ public sealed partial class ForeignerTraitComponent : Component
{
///
/// The "base" language that is to be removed and substituted with a translator.
- /// By default, equals to the fallback language, which is GalacticCommon.
+ /// By default, equals to the fallback language, which is TauCetiBasic.
///
[DataField]
public ProtoId BaseLanguage = SharedLanguageSystem.FallbackLanguagePrototype;
diff --git a/Content.Shared/Language/Systems/SharedLanguageSystem.cs b/Content.Shared/Language/Systems/SharedLanguageSystem.cs
index 0a03086ebe1..d9e882147c0 100644
--- a/Content.Shared/Language/Systems/SharedLanguageSystem.cs
+++ b/Content.Shared/Language/Systems/SharedLanguageSystem.cs
@@ -10,7 +10,7 @@ public abstract class SharedLanguageSystem : EntitySystem
/// The language used as a fallback in cases where an entity suddenly becomes a language speaker (e.g. the usage of make-sentient)
///
[ValidatePrototypeId]
- public static readonly string FallbackLanguagePrototype = "GalacticCommon";
+ public static readonly string FallbackLanguagePrototype = "TauCetiBasic";
///
/// The language whose speakers are assumed to understand and speak every language. Should never be added directly.
diff --git a/Resources/Locale/en-US/language/commands.ftl b/Resources/Locale/en-US/language/commands.ftl
index 65959e3f28f..ccbe2570c96 100644
--- a/Resources/Locale/en-US/language/commands.ftl
+++ b/Resources/Locale/en-US/language/commands.ftl
@@ -2,10 +2,10 @@ command-list-langs-desc = List languages your current entity can speak at the cu
command-list-langs-help = Usage: {$command}
command-saylang-desc = Send a message in a specific language. To choose a language, you can use either the name of the language, or its position in the list of languages.
-command-saylang-help = Usage: {$command} . Example: {$command} GalacticCommon "Hello World!". Example: {$command} 1 "Hello World!"
+command-saylang-help = Usage: {$command} . Example: {$command} TauCetiBasic "Hello World!". Example: {$command} 1 "Hello World!"
command-language-select-desc = Select the currently spoken language of your entity. You can use either the name of the language, or its position in the list of languages.
-command-language-select-help = Usage: {$command} . Example: {$command} 1. Example: {$command} GalacticCommon
+command-language-select-help = Usage: {$command} . Example: {$command} 1. Example: {$command} TauCetiBasic
command-language-spoken = Spoken:
command-language-understood = Understood:
@@ -18,14 +18,14 @@ command-language-invalid-language = The language {$id} does not exist or you can
# toolshed
command-description-language-add = Adds a new language to the piped entity. The two last arguments indicate whether it should be spoken/understood. Example: 'self language:add "Canilunzt" true true'
-command-description-language-rm = Removes a language from the piped entity. Works similarly to language:add. Example: 'self language:rm "GalacticCommon" true true'.
+command-description-language-rm = Removes a language from the piped entity. Works similarly to language:add. Example: 'self language:rm "TauCetiBasic" true true'.
command-description-language-lsspoken = Lists all languages the entity can speak. Example: 'self language:lsspoken'
command-description-language-lsunderstood = Lists all languages the entity can understand. Example: 'self language:lssunderstood'
command-description-translator-addlang = Adds a new target language to the piped translator entity. See language:add for details.
command-description-translator-rmlang = Removes a target language from the piped translator entity. See language:rm for details.
-command-description-translator-addrequired = Adds a new required language to the piped translator entity. Example: 'ent 1234 translator:addrequired "GalacticCommon"'
-command-description-translator-rmrequired = Removes a required language from the piped translator entity. Example: 'ent 1234 translator:rmrequired "GalacticCommon"'
+command-description-translator-addrequired = Adds a new required language to the piped translator entity. Example: 'ent 1234 translator:addrequired "TauCetiBasic"'
+command-description-translator-rmrequired = Removes a required language from the piped translator entity. Example: 'ent 1234 translator:rmrequired "TauCetiBasic"'
command-description-translator-lsspoken = Lists all spoken languages for the piped translator entity. Example: 'ent 1234 translator:lsspoken'
command-description-translator-lsunderstood = Lists all understood languages for the piped translator entity. Example: 'ent 1234 translator:lssunderstood'
command-description-translator-lsrequired = Lists all required languages for the piped translator entity. Example: 'ent 1234 translator:lsrequired'
diff --git a/Resources/Locale/en-US/language/languages.ftl b/Resources/Locale/en-US/language/languages.ftl
index 68dc80f51da..7ad66d1aabe 100644
--- a/Resources/Locale/en-US/language/languages.ftl
+++ b/Resources/Locale/en-US/language/languages.ftl
@@ -1,9 +1,6 @@
language-Universal-name = Universal
language-Universal-description = What are you?
-language-GalacticCommon-name = Galactic common
-language-GalacticCommon-description = The standard Galatic language, most commonly used for inter-species communications and legal work.
-
language-Bubblish-name = Bubblish
language-Bubblish-description = The language of Slimes. Being a mixture of bubbling noises and pops it's very difficult to speak for humans without the use of mechanical aids.
@@ -17,10 +14,37 @@ language-Draconic-name = Draconic
language-Draconic-description = The common language of lizard-people, composed of sibilant hisses and rattles.
language-SolCommon-name = Sol common
-language-SolCommon-description = The language common to species from the Sol System.
+language-SolCommon-description =
+ With its roots in Mandarin Chinese - Common evolved as the official language of the Sol Alliance - with officials working to tie it together with a common tongue.
+ It's spoken by state officials - taught in schools - and spoken by those who either feel a sense of national pride in the Alliance or otherwise fell sway to the culture.
+
+language-TauCetiBasic-name = Tau-Ceti Basic
+language-TauCetiBasic-description =
+ A spiritual successor of Esperanto, established in 2404 in Tau Ceti by Ceti intellectuals.
+ Its unique, fully customized alphabet and structure allow it to be spoken even by most alien species.
+ It's the official language of Tau Ceti and has growing traction in diplomatic circles and Universalists across human space.
+
+language-Tradeband-name = Tradeband
+language-Tradeband-description =
+ Descended from latin and romance languages of old Earth - Tradeband remains the main tongue of the upper class of humanity.
+ The language sounds elegant and well structured to most ears. It remains in popular use with traders - diplomats - and those seeking to hold onto a piece of a romantic past.
+
+language-Freespeak-name = Freespeak
+language-Freespeak-description =
+ A language of renegades and frontiersmen descending from various languages from Earth-- like Hindi,
+ combined into a multi-rooted jumble that sounds incoherent or even barbarian to non-native speakers.
+ This language is the only common cultural identity for humans in the frontier. Speaking this language in itself boldly declares the speaker a free spirit.
+ It is often called 'Gutter' by Alliance citizens.
+
+language-Elyran-name = Elyran Standard
+language-Elyran-description =
+ Elyran Standard is the official tongue of the Republic of Elyra. Constructed using elements of Farsi - Arabic - and Turkish.
+ Influence from all three of these languages can be seen throughout its grammar and vocabulary.
language-Canilunzt-name = Canilunzt
-language-Canilunzt-description = The guttural language spoken and utilized by the inhabitants of the Vazzend system, composed of growls, barks, yaps, and heavy utilization of ears and tail movements. Vulpkanin speak this language with ease.
+language-Canilunzt-description =
+ The guttural language spoken and utilized by the inhabitants of the Vazzend system,
+ composed of growls, barks, yaps, and heavy utilization of ears and tail movements. Vulpkanin speak this language with ease.
language-Moffic-name = Moffic
language-Moffic-description = The language of the mothpeople borders on complete unintelligibility.
@@ -28,8 +52,8 @@ language-Moffic-description = The language of the mothpeople borders on complete
language-RobotTalk-name = RobotTalk
language-RobotTalk-description = A language consisting of harsh binary chirps, whistles, hisses, and whines. Organic tongues cannot speak it without aid from special translators.
-language-Sign-name = Galactic Sign Language
-language-Sign-description = GSL for short, this sign language is prevalent among mute and deaf people.
+language-Sign-name = Tau-Ceti Basic Sign Language
+language-Sign-description = TCB-SL for short, this sign language is prevalent among mute and deaf people.
language-Cat-name = Cat
language-Cat-description = Meow
diff --git a/Resources/Locale/en-US/loadouts/itemgroups.ftl b/Resources/Locale/en-US/loadouts/itemgroups.ftl
index 29aca3ddb9b..97fcfa69848 100644
--- a/Resources/Locale/en-US/loadouts/itemgroups.ftl
+++ b/Resources/Locale/en-US/loadouts/itemgroups.ftl
@@ -64,3 +64,7 @@ character-item-group-LoadoutBartenderWeapon = Bartender Weapon
# Service - Musician
character-item-group-LoadoutMusicianInstruments = Musician Instruments
+
+# Traits - Languages
+character-item-group-TraitsLanguagesBasic = Basic Languages
+character-item-group-TraitsAccents = Accents
\ No newline at end of file
diff --git a/Resources/Locale/en-US/traits/categories.ftl b/Resources/Locale/en-US/traits/categories.ftl
index 56f0adeb479..2bd4b7ba49f 100644
--- a/Resources/Locale/en-US/traits/categories.ftl
+++ b/Resources/Locale/en-US/traits/categories.ftl
@@ -5,4 +5,7 @@ trait-category-Auditory = Auditory
trait-category-Mental = Mental
trait-category-Physical = Physical
trait-category-Speech = Speech
-trait-category-Visual = Visual
+trait-category-TraitsSpeechUncategorized = Uncategorized
+trait-category-TraitsSpeechAccents = Accents
+trait-category-TraitsSpeechLanguages = Languages
+trait-category-Visual = Visual
\ No newline at end of file
diff --git a/Resources/Locale/en-US/traits/traits.ftl b/Resources/Locale/en-US/traits/traits.ftl
index b034f69b9e8..4db6055e46b 100644
--- a/Resources/Locale/en-US/traits/traits.ftl
+++ b/Resources/Locale/en-US/traits/traits.ftl
@@ -152,9 +152,30 @@ trait-description-Lethargy =
trait-name-SignLanguage = Sign Language
trait-description-SignLanguage =
- You can understand and use Galactic Sign Language (GSL).
+ You can understand and use Tau-Ceti Basic Sign Language (TCB-SL).
If you are mute for any reason, you can still communicate with sign language.
+trait-name-SolCommon = Sol Common
+trait-description-SolCommon =
+ With its roots in Mandarin Chinese - Common evolved as the official language of the Sol Alliance - with officials working to tie it together with a common tongue.
+ It's spoken by state officials - taught in schools - and spoken by those who either feel a sense of national pride in the Alliance or otherwise fell sway to the culture.
+
+trait-name-Tradeband = Tradeband
+trait-description-Tradeband =
+ Descended from latin and romance languages of old Earth - Tradeband remains the main tongue of the upper class of humanity.
+ The language sounds elegant and well structured to most ears. It remains in popular use with traders - diplomats - and those seeking to hold onto a piece of a romantic past.
+
+trait-name-Freespeak = Freespeak (Gutter)
+trait-description-Freespeak =
+ A language of renegades and frontiersmen descending from various languages from Earth like Hindi combined into a multi-rooted jumble that sounds incoherent or even barbarian to non-native speakers.
+ This language is the only common cultural identity for humans in the frontier. Speaking this language in itself boldly declares the speaker a free spirit.
+ Often called 'Gutter' by Alliance citizens.
+
+trait-name-Elyran = Elyran Standard
+trait-description-Elyran =
+ Elyran Standard is the official tongue of the Republic of Elyra.
+ Constructed using elements of Farsi - Arabic - and Turkish - influence from all three of these languages can be seen throughout its grammar and vocabulary.
+
trait-name-Voracious = Voracious
trait-description-Voracious =
Nothing gets between you and your food.
diff --git a/Resources/Prototypes/CharacterItemGroups/languageGroups.yml b/Resources/Prototypes/CharacterItemGroups/languageGroups.yml
new file mode 100644
index 00000000000..244792e4c67
--- /dev/null
+++ b/Resources/Prototypes/CharacterItemGroups/languageGroups.yml
@@ -0,0 +1,31 @@
+- type: characterItemGroup
+ id: TraitsLanguagesBasic
+ maxItems: 1
+ items:
+ - type: trait
+ id: SignLanguage
+ - type: trait
+ id: SolCommon
+ - type: trait
+ id: Tradeband
+ - type: trait
+ id: Freespeak
+ - type: trait
+ id: Elyran
+
+- type: characterItemGroup
+ id: TraitsAccents
+ maxItems: 1
+ items:
+ - type: trait
+ id: FrontalLisp
+ - type: trait
+ id: Stutter
+ - type: trait
+ id: PirateAccent
+ - type: trait
+ id: Accentless
+ - type: trait
+ id: Southern
+ - type: trait
+ id: ScottishAccent
\ No newline at end of file
diff --git a/Resources/Prototypes/DeltaV/Entities/Mobs/NPCs/animals.yml b/Resources/Prototypes/DeltaV/Entities/Mobs/NPCs/animals.yml
index dd59d74d3f0..de0f022e1f7 100644
--- a/Resources/Prototypes/DeltaV/Entities/Mobs/NPCs/animals.yml
+++ b/Resources/Prototypes/DeltaV/Entities/Mobs/NPCs/animals.yml
@@ -184,4 +184,4 @@
- Dog
understands:
- Dog
- - GalacticCommon
+ - TauCetiBasic
diff --git a/Resources/Prototypes/DeltaV/Entities/Mobs/NPCs/familiars.yml b/Resources/Prototypes/DeltaV/Entities/Mobs/NPCs/familiars.yml
index 364907ff9c4..4d3d139e8e0 100644
--- a/Resources/Prototypes/DeltaV/Entities/Mobs/NPCs/familiars.yml
+++ b/Resources/Prototypes/DeltaV/Entities/Mobs/NPCs/familiars.yml
@@ -111,9 +111,9 @@
- NanoTrasen
- type: LanguageKnowledge
speaks:
- - GalacticCommon
+ - TauCetiBasic
understands:
- - GalacticCommon
+ - TauCetiBasic
- type: GhostTakeoverAvailable
- type: GhostRole
makeSentient: true
diff --git a/Resources/Prototypes/DeltaV/Entities/Mobs/NPCs/nukiemouse.yml b/Resources/Prototypes/DeltaV/Entities/Mobs/NPCs/nukiemouse.yml
index 8968f0e77ad..59c7fe2b212 100644
--- a/Resources/Prototypes/DeltaV/Entities/Mobs/NPCs/nukiemouse.yml
+++ b/Resources/Prototypes/DeltaV/Entities/Mobs/NPCs/nukiemouse.yml
@@ -101,7 +101,7 @@
- Mouse
understands:
- Mouse
- - GalacticCommon
+ - TauCetiBasic
- type: Tag
tags:
- VimPilot
diff --git a/Resources/Prototypes/DeltaV/Entities/Mobs/Species/vulpkanin.yml b/Resources/Prototypes/DeltaV/Entities/Mobs/Species/vulpkanin.yml
index 07152d74ef0..b3027839b1a 100644
--- a/Resources/Prototypes/DeltaV/Entities/Mobs/Species/vulpkanin.yml
+++ b/Resources/Prototypes/DeltaV/Entities/Mobs/Species/vulpkanin.yml
@@ -106,10 +106,10 @@
- type: Wagging
- type: LanguageKnowledge
speaks:
- - GalacticCommon
+ - TauCetiBasic
- Canilunzt
understands:
- - GalacticCommon
+ - TauCetiBasic
- Canilunzt
- type: ConsumeDelayModifier
foodDelayMultiplier: 0.5
diff --git a/Resources/Prototypes/DeltaV/Traits/neutral.yml b/Resources/Prototypes/DeltaV/Traits/neutral.yml
index 6168d7045a9..469fa5b34b7 100644
--- a/Resources/Prototypes/DeltaV/Traits/neutral.yml
+++ b/Resources/Prototypes/DeltaV/Traits/neutral.yml
@@ -1,6 +1,9 @@
- type: trait
id: ScottishAccent
- category: Speech
+ category: TraitsSpeechAccents
points: 0
+ requirements:
+ - !type:CharacterItemGroupRequirement
+ group: TraitsAccents
components:
- type: ScottishAccent
diff --git a/Resources/Prototypes/Entities/Mobs/Cyborgs/base_borg_chassis.yml b/Resources/Prototypes/Entities/Mobs/Cyborgs/base_borg_chassis.yml
index 6340cb888b6..81bd0332a58 100644
--- a/Resources/Prototypes/Entities/Mobs/Cyborgs/base_borg_chassis.yml
+++ b/Resources/Prototypes/Entities/Mobs/Cyborgs/base_borg_chassis.yml
@@ -218,10 +218,10 @@
- Normal
- type: LanguageKnowledge
speaks:
- - GalacticCommon
+ - TauCetiBasic
- RobotTalk
understands:
- - GalacticCommon
+ - TauCetiBasic
- RobotTalk
- type: PsionicInsulation
diff --git a/Resources/Prototypes/Entities/Mobs/NPCs/animals.yml b/Resources/Prototypes/Entities/Mobs/NPCs/animals.yml
index 01eed043139..343a39ca70f 100644
--- a/Resources/Prototypes/Entities/Mobs/NPCs/animals.yml
+++ b/Resources/Prototypes/Entities/Mobs/NPCs/animals.yml
@@ -1370,7 +1370,7 @@
understands:
- Monkey
- Kobold
- - GalacticCommon
+ - TauCetiBasic
- type: NpcFactionMember
factions:
- Syndicate
@@ -2002,9 +2002,9 @@
bloodMaxVolume: 50
- type: LanguageKnowledge
speaks:
- - GalacticCommon
+ - TauCetiBasic
understands:
- - GalacticCommon
+ - TauCetiBasic
- type: entity
name: penguin
@@ -2903,7 +2903,7 @@
- Cat
understands:
- Cat
- - GalacticCommon
+ - TauCetiBasic
- type: entity
name: space cat
@@ -3450,7 +3450,7 @@
speaks:
- RootSpeak
understands:
- - GalacticCommon
+ - TauCetiBasic
- RootSpeak
- type: entity
diff --git a/Resources/Prototypes/Entities/Mobs/NPCs/dogs.yml b/Resources/Prototypes/Entities/Mobs/NPCs/dogs.yml
index 22da7583723..2bcd3776260 100644
--- a/Resources/Prototypes/Entities/Mobs/NPCs/dogs.yml
+++ b/Resources/Prototypes/Entities/Mobs/NPCs/dogs.yml
@@ -89,7 +89,7 @@
- Dog
understands:
- Dog
- - GalacticCommon
+ - TauCetiBasic
- type: entity
parent: MobPibble
diff --git a/Resources/Prototypes/Entities/Mobs/NPCs/pets.yml b/Resources/Prototypes/Entities/Mobs/NPCs/pets.yml
index 6eb43fb89ae..4ec4ee6a12f 100644
--- a/Resources/Prototypes/Entities/Mobs/NPCs/pets.yml
+++ b/Resources/Prototypes/Entities/Mobs/NPCs/pets.yml
@@ -40,7 +40,7 @@
speaks:
- Dog
understands:
- - GalacticCommon
+ - TauCetiBasic
- Dog
- type: entity
@@ -131,7 +131,7 @@
speaks:
- Cat
understands:
- - GalacticCommon
+ - TauCetiBasic
- Cat
- type: entity
@@ -155,7 +155,7 @@
speaks:
- Cat
understands:
- - GalacticCommon
+ - TauCetiBasic
- Cat
- type: entity
@@ -310,7 +310,7 @@
speaks:
- Dog
understands:
- - GalacticCommon
+ - TauCetiBasic
- Dog
- type: InteractionPopup
successChance: 0.5
@@ -415,7 +415,7 @@
speaks:
- Dog
understands:
- - GalacticCommon
+ - TauCetiBasic
- Dog
- type: InteractionPopup
successChance: 0.7
@@ -580,7 +580,7 @@
speaks:
- Fox
understands:
- - GalacticCommon
+ - TauCetiBasic
- Fox
- type: entity
@@ -633,7 +633,7 @@
speaks:
- Mouse
understands:
- - GalacticCommon
+ - TauCetiBasic
- Mouse
- type: entity
@@ -811,7 +811,7 @@
speaks:
- Bubblish
understands:
- - GalacticCommon
+ - TauCetiBasic
- Bubblish
- type: entity
@@ -851,7 +851,7 @@
speaks:
- Monkey
understands:
- - GalacticCommon
+ - TauCetiBasic
- Monkey
- Kobold
@@ -885,5 +885,5 @@
speaks:
- Crab
understands:
- - GalacticCommon
+ - TauCetiBasic
- Crab
diff --git a/Resources/Prototypes/Entities/Mobs/NPCs/regalrat.yml b/Resources/Prototypes/Entities/Mobs/NPCs/regalrat.yml
index cf563989bf5..e1ea11cc2c3 100644
--- a/Resources/Prototypes/Entities/Mobs/NPCs/regalrat.yml
+++ b/Resources/Prototypes/Entities/Mobs/NPCs/regalrat.yml
@@ -120,10 +120,10 @@
gender: male
- type: LanguageKnowledge
speaks:
- - GalacticCommon
+ - TauCetiBasic
- Mouse
understands:
- - GalacticCommon
+ - TauCetiBasic
- Mouse
- type: entity
@@ -301,7 +301,7 @@
speaks:
- Mouse
understands:
- - GalacticCommon
+ - TauCetiBasic
- Mouse
- type: FireVisuals
sprite: Mobs/Effects/onfire.rsi
diff --git a/Resources/Prototypes/Entities/Mobs/NPCs/silicon.yml b/Resources/Prototypes/Entities/Mobs/NPCs/silicon.yml
index 90d9a5e5c97..0e279a07eb6 100644
--- a/Resources/Prototypes/Entities/Mobs/NPCs/silicon.yml
+++ b/Resources/Prototypes/Entities/Mobs/NPCs/silicon.yml
@@ -108,10 +108,10 @@
- type: ZombieImmune
- type: LanguageKnowledge
speaks:
- - GalacticCommon
+ - TauCetiBasic
- RobotTalk
understands:
- - GalacticCommon
+ - TauCetiBasic
- RobotTalk
- type: PsionicInsulation
diff --git a/Resources/Prototypes/Entities/Mobs/NPCs/xeno.yml b/Resources/Prototypes/Entities/Mobs/NPCs/xeno.yml
index d618e407134..fc0f879b1ce 100644
--- a/Resources/Prototypes/Entities/Mobs/NPCs/xeno.yml
+++ b/Resources/Prototypes/Entities/Mobs/NPCs/xeno.yml
@@ -239,10 +239,10 @@
- CannotSuicide
- type: LanguageKnowledge
speaks:
- - GalacticCommon
+ - TauCetiBasic
- Xeno
understands:
- - GalacticCommon
+ - TauCetiBasic
- Xeno
- type: entity
diff --git a/Resources/Prototypes/Entities/Mobs/Player/ipc.yml b/Resources/Prototypes/Entities/Mobs/Player/ipc.yml
index 247226dc7d5..0e1e1a1ae7d 100644
--- a/Resources/Prototypes/Entities/Mobs/Player/ipc.yml
+++ b/Resources/Prototypes/Entities/Mobs/Player/ipc.yml
@@ -101,10 +101,10 @@
- type: CanHostGuardian
- type: LanguageKnowledge
speaks:
- - GalacticCommon
+ - TauCetiBasic
- RobotTalk
understands:
- - GalacticCommon
+ - TauCetiBasic
- RobotTalk
- type: WeldingHealable
- type: PsionicInsulation
diff --git a/Resources/Prototypes/Entities/Mobs/Species/base.yml b/Resources/Prototypes/Entities/Mobs/Species/base.yml
index 33635eeec20..7420f168ca6 100644
--- a/Resources/Prototypes/Entities/Mobs/Species/base.yml
+++ b/Resources/Prototypes/Entities/Mobs/Species/base.yml
@@ -218,9 +218,9 @@
- type: CanEscapeInventory # Carrying system from nyanotrasen.
- type: LanguageKnowledge # This is here so even if species doesn't have a defined language, they at least speak GC
speaks:
- - GalacticCommon
+ - TauCetiBasic
understands:
- - GalacticCommon
+ - TauCetiBasic
- type: Tag
tags:
- CanPilot
diff --git a/Resources/Prototypes/Entities/Mobs/Species/diona.yml b/Resources/Prototypes/Entities/Mobs/Species/diona.yml
index 81c9e596163..9a26d0ec909 100644
--- a/Resources/Prototypes/Entities/Mobs/Species/diona.yml
+++ b/Resources/Prototypes/Entities/Mobs/Species/diona.yml
@@ -104,10 +104,10 @@
- Dead
- type: LanguageKnowledge
speaks:
- - GalacticCommon
+ - TauCetiBasic
- RootSpeak
understands:
- - GalacticCommon
+ - TauCetiBasic
- RootSpeak
- type: TraitSpeedModifier
sprintModifier: 0.75
diff --git a/Resources/Prototypes/Entities/Mobs/Species/dwarf.yml b/Resources/Prototypes/Entities/Mobs/Species/dwarf.yml
index 055c6522ddc..4b75e65ca91 100644
--- a/Resources/Prototypes/Entities/Mobs/Species/dwarf.yml
+++ b/Resources/Prototypes/Entities/Mobs/Species/dwarf.yml
@@ -53,10 +53,10 @@
speechSounds: Bass
- type: LanguageKnowledge
speaks:
- - GalacticCommon
+ - TauCetiBasic
- SolCommon
understands:
- - GalacticCommon
+ - TauCetiBasic
- SolCommon
- type: LightweightDrunk
boozeStrengthMultiplier: 0.5
diff --git a/Resources/Prototypes/Entities/Mobs/Species/harpy.yml b/Resources/Prototypes/Entities/Mobs/Species/harpy.yml
index 8882da868b1..8d657d3532f 100644
--- a/Resources/Prototypes/Entities/Mobs/Species/harpy.yml
+++ b/Resources/Prototypes/Entities/Mobs/Species/harpy.yml
@@ -117,11 +117,11 @@
- ShoesRequiredStepTriggerImmune
- type: LanguageKnowledge
speaks:
- - GalacticCommon
- - SolCommon
+ - TauCetiBasic
+ - Tradeband
understands:
- - GalacticCommon
- - SolCommon
+ - TauCetiBasic
+ - Tradeband
- type: StepTriggerImmune
whitelist:
types:
diff --git a/Resources/Prototypes/Entities/Mobs/Species/human.yml b/Resources/Prototypes/Entities/Mobs/Species/human.yml
index ac373725ce4..121cbd3ca78 100644
--- a/Resources/Prototypes/Entities/Mobs/Species/human.yml
+++ b/Resources/Prototypes/Entities/Mobs/Species/human.yml
@@ -18,10 +18,10 @@
amount: 5
- type: LanguageKnowledge
speaks:
- - GalacticCommon
+ - TauCetiBasic
- SolCommon
understands:
- - GalacticCommon
+ - TauCetiBasic
- SolCommon
- type: entity
diff --git a/Resources/Prototypes/Entities/Mobs/Species/moth.yml b/Resources/Prototypes/Entities/Mobs/Species/moth.yml
index 1c55dcf0df1..7e5716a212f 100644
--- a/Resources/Prototypes/Entities/Mobs/Species/moth.yml
+++ b/Resources/Prototypes/Entities/Mobs/Species/moth.yml
@@ -25,10 +25,10 @@
speechVerb: Moth
- type: LanguageKnowledge
speaks:
- - GalacticCommon
+ - TauCetiBasic
- Moffic
understands:
- - GalacticCommon
+ - TauCetiBasic
- Moffic
- type: TypingIndicator
proto: moth
diff --git a/Resources/Prototypes/Entities/Mobs/Species/reptilian.yml b/Resources/Prototypes/Entities/Mobs/Species/reptilian.yml
index 35f9e9fa393..3dfb5cb3267 100644
--- a/Resources/Prototypes/Entities/Mobs/Species/reptilian.yml
+++ b/Resources/Prototypes/Entities/Mobs/Species/reptilian.yml
@@ -61,10 +61,10 @@
- type: Wagging
- type: LanguageKnowledge
speaks:
- - GalacticCommon
+ - TauCetiBasic
- Draconic
understands:
- - GalacticCommon
+ - TauCetiBasic
- Draconic
- type: entity
diff --git a/Resources/Prototypes/Entities/Mobs/Species/slime.yml b/Resources/Prototypes/Entities/Mobs/Species/slime.yml
index 0e05b0c8276..2982cdb5b27 100644
--- a/Resources/Prototypes/Entities/Mobs/Species/slime.yml
+++ b/Resources/Prototypes/Entities/Mobs/Species/slime.yml
@@ -76,10 +76,10 @@
maxSaturation: 15
- type: LanguageKnowledge
speaks:
- - GalacticCommon
+ - TauCetiBasic
- Bubblish
understands:
- - GalacticCommon
+ - TauCetiBasic
- Bubblish
- type: entity
diff --git a/Resources/Prototypes/Entities/Objects/Devices/translator_implants.yml b/Resources/Prototypes/Entities/Objects/Devices/translator_implants.yml
index da42b2774b1..d430f5ea5dc 100644
--- a/Resources/Prototypes/Entities/Objects/Devices/translator_implants.yml
+++ b/Resources/Prototypes/Entities/Objects/Devices/translator_implants.yml
@@ -1,26 +1,26 @@
- type: entity
parent: BaseSubdermalImplant
- id: BasicGalacticCommonTranslatorImplant
+ id: BasicTauCetiBasicTranslatorImplant
name: basic common translator implant
description: Provides your illiterate friends the ability to understand the common galactic tongue.
noSpawn: true
components:
- type: TranslatorImplant
understood:
- - GalacticCommon
+ - TauCetiBasic
- type: entity
parent: BaseSubdermalImplant
- id: GalacticCommonTranslatorImplant
+ id: TauCetiBasicTranslatorImplant
name: advanced common translator implant
description: A more advanced version of the translator implant, teaches your illiterate friends the ability to both speak and understand the galactic tongue!
noSpawn: true
components:
- type: TranslatorImplant
understood:
- - GalacticCommon
+ - TauCetiBasic
spoken:
- - GalacticCommon
+ - TauCetiBasic
- type: entity
parent: BaseSubdermalImplant
@@ -35,7 +35,7 @@
spoken:
- Bubblish
requires:
- - GalacticCommon
+ - TauCetiBasic
- type: entity
parent: BaseSubdermalImplant
@@ -50,7 +50,7 @@
spoken:
- Nekomimetic
requires:
- - GalacticCommon
+ - TauCetiBasic
- type: entity
parent: BaseSubdermalImplant
@@ -65,7 +65,7 @@
spoken:
- Draconic
requires:
- - GalacticCommon
+ - TauCetiBasic
- type: entity
parent: BaseSubdermalImplant
@@ -80,7 +80,7 @@
spoken:
- Canilunzt
requires:
- - GalacticCommon
+ - TauCetiBasic
- type: entity
parent: BaseSubdermalImplant
@@ -95,7 +95,7 @@
spoken:
- SolCommon
requires:
- - GalacticCommon
+ - TauCetiBasic
- type: entity
parent: BaseSubdermalImplant
@@ -110,7 +110,7 @@
spoken:
- RootSpeak
requires:
- - GalacticCommon
+ - TauCetiBasic
- type: entity
parent: BaseSubdermalImplant
@@ -125,4 +125,4 @@
spoken:
- Moffic
requires:
- - GalacticCommon
+ - TauCetiBasic
diff --git a/Resources/Prototypes/Entities/Objects/Devices/translators.yml b/Resources/Prototypes/Entities/Objects/Devices/translators.yml
index 6aa7947c82d..4a14e371565 100644
--- a/Resources/Prototypes/Entities/Objects/Devices/translators.yml
+++ b/Resources/Prototypes/Entities/Objects/Devices/translators.yml
@@ -67,13 +67,13 @@
components:
- type: HandheldTranslator
spoken:
- - GalacticCommon
+ - TauCetiBasic
- Canilunzt
understood:
- - GalacticCommon
+ - TauCetiBasic
- Canilunzt
requires:
- - GalacticCommon
+ - TauCetiBasic
- Canilunzt
- type: entity
@@ -84,13 +84,13 @@
components:
- type: HandheldTranslator
spoken:
- - GalacticCommon
+ - TauCetiBasic
- Bubblish
understood:
- - GalacticCommon
+ - TauCetiBasic
- Bubblish
requires:
- - GalacticCommon
+ - TauCetiBasic
- Bubblish
- type: entity
@@ -101,13 +101,13 @@
components:
- type: HandheldTranslator
spoken:
- - GalacticCommon
+ - TauCetiBasic
- Nekomimetic
understood:
- - GalacticCommon
+ - TauCetiBasic
- Nekomimetic
requires:
- - GalacticCommon
+ - TauCetiBasic
- Nekomimetic
- type: entity
@@ -118,13 +118,13 @@
components:
- type: HandheldTranslator
spoken:
- - GalacticCommon
+ - TauCetiBasic
- Draconic
understood:
- - GalacticCommon
+ - TauCetiBasic
- Draconic
requires:
- - GalacticCommon
+ - TauCetiBasic
- Draconic
- type: entity
@@ -135,13 +135,13 @@
components:
- type: HandheldTranslator
spoken:
- - GalacticCommon
+ - TauCetiBasic
- SolCommon
understood:
- - GalacticCommon
+ - TauCetiBasic
- SolCommon
requires:
- - GalacticCommon
+ - TauCetiBasic
- SolCommon
- type: entity
@@ -152,13 +152,13 @@
components:
- type: HandheldTranslator
spoken:
- - GalacticCommon
+ - TauCetiBasic
- RootSpeak
understood:
- - GalacticCommon
+ - TauCetiBasic
- RootSpeak
requires:
- - GalacticCommon
+ - TauCetiBasic
- RootSpeak
- type: entity
@@ -169,13 +169,13 @@
components:
- type: HandheldTranslator
spoken:
- - GalacticCommon
+ - TauCetiBasic
- Moffic
understood:
- - GalacticCommon
+ - TauCetiBasic
- Moffic
requires:
- - GalacticCommon
+ - TauCetiBasic
- Moffic
- type: entity
@@ -186,13 +186,13 @@
components:
- type: HandheldTranslator
spoken:
- - GalacticCommon
+ - TauCetiBasic
- Xeno
understood:
- - GalacticCommon
+ - TauCetiBasic
- Xeno
requires:
- - GalacticCommon
+ - TauCetiBasic
- type: entity
id: AnimalTranslator
@@ -217,5 +217,5 @@
- Kobold
- Hissing
requires:
- - GalacticCommon
+ - TauCetiBasic
setLanguageOnInteract: false
diff --git a/Resources/Prototypes/Entities/Objects/Misc/translator_implanters.yml b/Resources/Prototypes/Entities/Objects/Misc/translator_implanters.yml
index 8b5b262ff8a..92e21e51404 100644
--- a/Resources/Prototypes/Entities/Objects/Misc/translator_implanters.yml
+++ b/Resources/Prototypes/Entities/Objects/Misc/translator_implanters.yml
@@ -10,7 +10,7 @@
name: basic common translator implanter
components:
- type: Implanter
- implant: BasicGalacticCommonTranslatorImplant
+ implant: BasicTauCetiBasicTranslatorImplant
- type: entity
id: AdvancedGalaticCommonTranslatorImplanter
@@ -18,7 +18,7 @@
name: advanced common translator implanter
components:
- type: Implanter
- implant: GalacticCommonTranslatorImplant
+ implant: TauCetiBasicTranslatorImplant
- type: entity
id: BubblishTranslatorImplanter
diff --git a/Resources/Prototypes/Entities/Structures/Machines/Computers/base_structurecomputers.yml b/Resources/Prototypes/Entities/Structures/Machines/Computers/base_structurecomputers.yml
index b7ea7c6f6ca..9468ecd4523 100644
--- a/Resources/Prototypes/Entities/Structures/Machines/Computers/base_structurecomputers.yml
+++ b/Resources/Prototypes/Entities/Structures/Machines/Computers/base_structurecomputers.yml
@@ -62,11 +62,11 @@
priority: 1
- type: RequireProjectileTarget
- type: LanguageSpeaker
- currentLanguage: GalacticCommon
+ currentLanguage: TauCetiBasic
- type: LanguageKnowledge
speaks:
- - GalacticCommon
+ - TauCetiBasic
- RobotTalk
understands:
- - GalacticCommon
+ - TauCetiBasic
- RobotTalk
diff --git a/Resources/Prototypes/Entities/Structures/Machines/vending_machines.yml b/Resources/Prototypes/Entities/Structures/Machines/vending_machines.yml
index 02cdd80af35..f3f68660b2d 100644
--- a/Resources/Prototypes/Entities/Structures/Machines/vending_machines.yml
+++ b/Resources/Prototypes/Entities/Structures/Machines/vending_machines.yml
@@ -105,10 +105,10 @@
- type: WiresVisuals
- type: LanguageKnowledge
speaks:
- - GalacticCommon
+ - TauCetiBasic
- RobotTalk
understands:
- - GalacticCommon
+ - TauCetiBasic
- RobotTalk
- type: VendingMachine
soundVend: /Audio/SimpleStation14/Machines/machine_vend.ogg
diff --git a/Resources/Prototypes/Entities/Structures/Specific/oracle.yml b/Resources/Prototypes/Entities/Structures/Specific/oracle.yml
index 2161c6d80da..1e3b9a5b7e8 100644
--- a/Resources/Prototypes/Entities/Structures/Specific/oracle.yml
+++ b/Resources/Prototypes/Entities/Structures/Specific/oracle.yml
@@ -68,12 +68,12 @@
components:
- Item
- type: LanguageSpeaker
- currentLanguage: GalacticCommon
+ currentLanguage: TauCetiBasic
- type: LanguageKnowledge
speaks:
- - GalacticCommon
+ - TauCetiBasic
understands:
- - GalacticCommon
+ - TauCetiBasic
- type: weightedRandomEntity
diff --git a/Resources/Prototypes/Language/Species-Specific/diona.yml b/Resources/Prototypes/Language/Species-Specific/diona.yml
new file mode 100644
index 00000000000..76b62163ff3
--- /dev/null
+++ b/Resources/Prototypes/Language/Species-Specific/diona.yml
@@ -0,0 +1,17 @@
+# Spoken by dionas.
+# TODO: Replace this with a much better language.
+- type: language
+ id: RootSpeak
+ speech:
+ color: "#ce5e14dd"
+ fontId: Noganas
+ obfuscation:
+ !type:SyllableObfuscation
+ minSyllables: 1
+ maxSyllables: 5
+ replacement:
+ - hs
+ - zt
+ - kr
+ - st
+ - sh
\ No newline at end of file
diff --git a/Resources/Prototypes/Language/Species-Specific/moth.yml b/Resources/Prototypes/Language/Species-Specific/moth.yml
new file mode 100644
index 00000000000..ed0a6009c59
--- /dev/null
+++ b/Resources/Prototypes/Language/Species-Specific/moth.yml
@@ -0,0 +1,69 @@
+# Spoken by moths.
+# TODO: Replace this with a much better language.
+- type: language
+ id: Moffic
+ speech:
+ color: "#c7df2edd"
+ fontId: Copperplate
+ obfuscation:
+ !type:SyllableObfuscation
+ minSyllables: 2 # Replacements are really short
+ maxSyllables: 4
+ replacement:
+ - år
+ - i
+ - går
+ - sek
+ - mo
+ - ff
+ - ok
+ - gj
+ - ø
+ - gå
+ - la
+ - le
+ - lit
+ - ygg
+ - van
+ - dår
+ - næ
+ - møt
+ - idd
+ - hvo
+ - ja
+ - på
+ - han
+ - så
+ - ån
+ - det
+ - att
+ - nå
+ - gö
+ - bra
+ - int
+ - tyc
+ - om
+ - när
+ - två
+ - må
+ - dag
+ - sjä
+ - vii
+ - vuo
+ - eil
+ - tun
+ - käyt
+ - teh
+ - vä
+ - hei
+ - huo
+ - suo
+ - ää
+ - ten
+ - ja
+ - heu
+ - stu
+ - uhr
+ - kön
+ - we
+ - hön
\ No newline at end of file
diff --git a/Resources/Prototypes/Language/Species-Specific/nekomimetic.yml b/Resources/Prototypes/Language/Species-Specific/nekomimetic.yml
new file mode 100644
index 00000000000..3610e5fa50e
--- /dev/null
+++ b/Resources/Prototypes/Language/Species-Specific/nekomimetic.yml
@@ -0,0 +1,60 @@
+# A mess of broken Japanese, spoken by Felinds and Oni
+# TODO: Replace this with a much better language.
+- type: language
+ id: Nekomimetic
+ speech:
+ color: "#df57aaee"
+ fontId: Manga
+ obfuscation:
+ !type:SyllableObfuscation
+ minSyllables: 1
+ maxSyllables: 3 # May be too long even, we'll see.
+ replacement:
+ - neko
+ - nyan
+ - mimi
+ - moe
+ - mofu
+ - fuwa
+ - kyaa
+ - kawaii
+ - poka
+ - munya
+ - puni
+ - munyu
+ - ufufu
+ - icha
+ - doki
+ - kyun
+ - kusu
+ - nya
+ - nyaa
+ - desu
+ - kis
+ - ama
+ - chuu
+ - baka
+ - hewo
+ - boop
+ - gato
+ - kit
+ - sune
+ - yori
+ - sou
+ - baka
+ - chan
+ - san
+ - kun
+ - mahou
+ - yatta
+ - suki
+ - usagi
+ - domo
+ - ori
+ - uwa
+ - zaazaa
+ - shiku
+ - puru
+ - ira
+ - heto
+ - etto
\ No newline at end of file
diff --git a/Resources/Prototypes/Language/Species-Specific/reptilian.yml b/Resources/Prototypes/Language/Species-Specific/reptilian.yml
new file mode 100644
index 00000000000..b22a62ee0e3
--- /dev/null
+++ b/Resources/Prototypes/Language/Species-Specific/reptilian.yml
@@ -0,0 +1,95 @@
+# Spoken by the Lizard race.
+# TODO: Replace this with a much better language.
+- type: language
+ id: Draconic
+ speech:
+ color: "#2aca2add"
+ obfuscation:
+ !type:SyllableObfuscation
+ minSyllables: 2
+ maxSyllables: 4
+ replacement:
+ - za
+ - az
+ - ze
+ - ez
+ - zi
+ - iz
+ - zo
+ - oz
+ - zu
+ - uz
+ - zs
+ - sz
+ - ha
+ - ah
+ - he
+ - eh
+ - hi
+ - ih
+ - ho
+ - oh
+ - hu
+ - uh
+ - hs
+ - sh
+ - la
+ - al
+ - le
+ - el
+ - li
+ - il
+ - lo
+ - ol
+ - lu
+ - ul
+ - ls
+ - sl
+ - ka
+ - ak
+ - ke
+ - ek
+ - ki
+ - ik
+ - ko
+ - ok
+ - ku
+ - uk
+ - ks
+ - sk
+ - sa
+ - as
+ - se
+ - es
+ - si
+ - is
+ - so
+ - os
+ - su
+ - us
+ - ss
+ - ss
+ - ra
+ - ar
+ - re
+ - er
+ - ri
+ - ir
+ - ro
+ - or
+ - ru
+ - ur
+ - rs
+ - sr
+ - a
+ - a
+ - e
+ - e
+ - i
+ - i
+ - o
+ - o
+ - u
+ - u
+ - s
+ - s
\ No newline at end of file
diff --git a/Resources/Prototypes/Language/Species-Specific/slimeperson.yml b/Resources/Prototypes/Language/Species-Specific/slimeperson.yml
new file mode 100644
index 00000000000..a3c1f91a170
--- /dev/null
+++ b/Resources/Prototypes/Language/Species-Specific/slimeperson.yml
@@ -0,0 +1,17 @@
+# Spoken by slimes.
+# TODO: Replace this with a much better language.
+- type: language
+ id: Bubblish
+ speech:
+ color: "#00a3e2dd"
+ fontId: RubikBubbles
+ obfuscation:
+ !type:SyllableObfuscation
+ minSyllables: 1
+ maxSyllables: 3
+ replacement:
+ - blob
+ - plop
+ - pop
+ - bop
+ - boop
\ No newline at end of file
diff --git a/Resources/Prototypes/Language/Species-Specific/vulpkanin.yml b/Resources/Prototypes/Language/Species-Specific/vulpkanin.yml
new file mode 100644
index 00000000000..17a48493a49
--- /dev/null
+++ b/Resources/Prototypes/Language/Species-Specific/vulpkanin.yml
@@ -0,0 +1,68 @@
+# Spoken by the Vulpkanin race.
+# TODO: Replace this with a much better language.
+- type: language
+ id: Canilunzt
+ speech:
+ color: "#d69b3dcc"
+ obfuscation:
+ !type:SyllableObfuscation
+ minSyllables: 1
+ maxSyllables: 4
+ replacement:
+ - rur
+ - ya
+ - cen
+ - rawr
+ - bar
+ - kuk
+ - tek
+ - qat
+ - uk
+ - wu
+ - vuh
+ - tah
+ - tch
+ - schz
+ - auch
+ - ist
+ - ein
+ - entch
+ - zwichs
+ - tut
+ - mir
+ - wo
+ - bis
+ - es
+ - vor
+ - nic
+ - gro
+ - enem
+ - zandt
+ - tzch
+ - noch
+ - hel
+ - ischt
+ - far
+ - wa
+ - baram
+ - iereng
+ - tech
+ - lach
+ - sam
+ - mak
+ - lich
+ - gen
+ - or
+ - ag
+ - eck
+ - gec
+ - stag
+ - onn
+ - bin
+ - ket
+ - jarl
+ - vulf
+ - einech
+ - cresthz
+ - azunein
+ - ghzth
\ No newline at end of file
diff --git a/Resources/Prototypes/Language/Standard/elyran.yml b/Resources/Prototypes/Language/Standard/elyran.yml
new file mode 100644
index 00000000000..c2c90e7b6f0
--- /dev/null
+++ b/Resources/Prototypes/Language/Standard/elyran.yml
@@ -0,0 +1,86 @@
+- type: language
+ id: Elyran
+ speech:
+ color: "#8282fbaa"
+ obfuscation:
+ !type:SyllableObfuscation
+ minSyllables: 1
+ maxSyllables: 4
+ replacement:
+ - af
+ - if
+ - ba
+ - ta
+ - tha
+ - id
+ - jem
+ - ha
+ - kha
+ - dal
+ - dhl
+ - ra
+ - zay
+ - sen
+ - um
+ - shn
+ - sid
+ - ad
+ - ta
+ - za
+ - ayn
+ - gha
+ - zir
+ - yn
+ - fa
+ - qaf
+ - iam
+ - mim
+ - al
+ - ja
+ - non
+ - ha
+ - waw
+ - ya
+ - hem
+ - zah
+ - hml
+ - ks
+ - ini
+ - da
+ - ks
+ - iga
+ - ih
+ - la
+ - ulf
+ - xe
+ - ayw
+ - sit
+ - ah
+ - aarah
+ - jalaa
+ - sirt
+ - kurt
+ - turhk
+ - ust
+ - irk
+ - kir
+ - mir
+ - ach
+ - oglu
+ - bolu
+ - shek
+ - she
+ - ghoz
+ - miya
+ - ejdan
+ - haaz
+ - quq
+ - taab
+ - shanha
+ - an
+ - saa
+ - seh
+ - an'
+ - e'
+ - a'
+ - em'
\ No newline at end of file
diff --git a/Resources/Prototypes/Language/Standard/freespeak.yml b/Resources/Prototypes/Language/Standard/freespeak.yml
new file mode 100644
index 00000000000..831c2a67ff8
--- /dev/null
+++ b/Resources/Prototypes/Language/Standard/freespeak.yml
@@ -0,0 +1,259 @@
+- type: language
+ id: Freespeak
+ speech:
+ color: "#597d35"
+ obfuscation:
+ !type:SyllableObfuscation
+ minSyllables: 1
+ maxSyllables: 3
+ replacement:
+ - a
+ - aan
+ - aas
+ - ab
+ - aba
+ - ad
+ - aee
+ - aft
+ - ag
+ - ai
+ - aise
+ - ak
+ - akee
+ - aq
+ - ar
+ - ata
+ - aur
+ - aus
+ - ba
+ - baat
+ - bach
+ - bad
+ - bahe
+ - band
+ - be
+ - ben
+ - ber
+ - bhaa
+ - bhu
+ - bra
+ - burt
+ - cap
+ - cer
+ - ch
+ - cha
+ - chaar
+ - chale
+ - chalo
+ - chil
+ - com
+ - da
+ - daa
+ - daaj
+ - dat
+ - de
+ - dee
+ - dhaa
+ - di
+ - die
+ - dik
+ - din
+ - diz
+ - do
+ - dos
+ - dosh
+ - durch
+ - eer
+ - ek
+ - er
+ - es
+ - fal
+ - fang
+ - fra
+ - fun
+ - ga
+ - gan
+ - gao
+ - gee
+ - geet
+ - gern
+ - gir
+ - gon
+ - gren
+ - gri
+ - gu
+ - guda
+ - ha
+ - haa
+ - hai
+ - hain
+ - har
+ - hat
+ - he
+ - hee
+ - heer
+ - hekt
+ - heu
+ - hit
+ - hn
+ - ho
+ - hua
+ - huk
+ - hul
+ - ich
+ - ig
+ - in
+ - isch
+ - ja
+ - jaa
+ - jad
+ - jan
+ - jao
+ - jar
+ - jas
+ - jee
+ - jiao
+ - jin
+ - jing
+ - un
+ - ka
+ - kaha
+ - kana
+ - kar
+ - kara
+ - karo
+ - ke
+ - kee
+ - keln
+ - kha
+ - khada
+ - khe
+ - khi
+ - ko
+ - koo
+ - ky
+ - la
+ - laa
+ - laat
+ - lad
+ - lada
+ - lana
+ - lane
+ - le
+ - lee
+ - leiden
+ - leis
+ - len
+ - lie
+ - lo
+ - maa
+ - maan
+ - mod
+ - most
+ - muj
+ - mujhe
+ - mukt
+ - na
+ - naya
+ - ne
+ - nee
+ - net
+ - neta
+ - nir
+ - nka
+ - oon
+ - oop
+ - pa
+ - paa
+ - pet
+ - phen
+ - phot
+ - pi
+ - plo
+ - pra
+ - que
+ - ra
+ - raa
+ - rahe
+ - raho
+ - ran
+ - rana
+ - rar
+ - re
+ - ri
+ - rie
+ - rin
+ - ro
+ - rona
+ - rosh
+ - rtiv
+ - saa
+ - saal
+ - saath
+ - san
+ - santu
+ - sch
+ - se
+ - sen
+ - sh
+ - sha
+ - shee
+ - shi
+ - shn
+ - sht
+ - shuo
+ - soch
+ - sol
+ - soo
+ - ssa
+ - ster
+ - suk
+ - sur
+ - ta
+ - taan
+ - tak
+ - taka
+ - tal
+ - tan
+ - tar
+ - ten
+ - tend
+ - th
+ - tho
+ - tili
+ - to
+ - ton
+ - tr
+ - tu
+ - tum
+ - tung
+ - udaa
+ - ugr
+ - unge
+ - ut
+ - va
+ - vaa
+ - vaad
+ - vaib
+ - ve
+ - ven
+ - ver
+ - vi
+ - vis
+ - vol
+ - wic
+ - wu
+ - wut
+ - xi
+ - xiao
+ - ya
+ - yah
+ - yon
+ - you
+ - zas
+ - ze
+ - zhu
+ - zi
+ - zo
+ - zorn
+ - zt
diff --git a/Resources/Prototypes/Language/Standard/solcommon.yml b/Resources/Prototypes/Language/Standard/solcommon.yml
new file mode 100644
index 00000000000..88c5470154b
--- /dev/null
+++ b/Resources/Prototypes/Language/Standard/solcommon.yml
@@ -0,0 +1,258 @@
+- type: language
+ id: SolCommon
+ speech:
+ color: "#8282fbaa"
+ obfuscation:
+ !type:SyllableObfuscation
+ minSyllables: 1
+ maxSyllables: 4
+ replacement:
+ - a
+ - abe
+ - ade
+ - ai
+ - an
+ - ana
+ - ba
+ - bae
+ - bai
+ - bang
+ - bao
+ - bei
+ - ben
+ - beo
+ - bi
+ - bian
+ - bing
+ - bo
+ - bu
+ - bugu
+ - bun
+ - cai
+ - can
+ - cao
+ - cau
+ - chan
+ - chen
+ - cheong
+ - chiu
+ - chong
+ - chyo
+ - da
+ - dan
+ - dao
+ - de
+ - deun
+ - duo
+ - eon
+ - eun
+ - eusi
+ - feng
+ - fu
+ - ga
+ - gak
+ - gan
+ - gang
+ - gao
+ - ge
+ - gei
+ - gen
+ - geo
+ - gil
+ - go
+ - gou
+ - gu
+ - gua
+ - gui
+ - gul
+ - gun
+ - guo
+ - gwi
+ - ha
+ - hai
+ - hal
+ - han
+ - hap
+ - hara
+ - he
+ - hego
+ - hen
+ - hon
+ - hoo
+ - hu
+ - hua
+ - hun
+ - hyeong
+ - i
+ - jae
+ - jeo
+ - jeon
+ - ji
+ - jia
+ - jian
+ - jiang
+ - jie
+ - jong
+ - ju
+ - jue
+ - juede
+ - jung
+ - juzi
+ - ka
+ - kang
+ - kawa
+ - ke
+ - keun
+ - ki
+ - kin
+ - ko
+ - kore
+ - kou
+ - ku
+ - kuda
+ - kun
+ - kyu
+ - lang
+ - lao
+ - leng
+ - leung
+ - li
+ - lian
+ - liang
+ - lie
+ - ling
+ - lizi
+ - lleo
+ - long
+ - lu
+ - ma
+ - mah
+ - me
+ - mei
+ - meinu
+ - men
+ - meng
+ - meog
+ - meoni
+ - mi
+ - mian
+ - min
+ - mo
+ - mot
+ - mu
+ - mun
+ - na
+ - nae
+ - nai
+ - nari
+ - ne
+ - ni
+ - nii
+ - nim
+ - nin
+ - nop
+ - nu
+ - o
+ - oba
+ - oga
+ - oji
+ - oka
+ - ong
+ - op
+ - oto
+ - pa
+ - pai
+ - pang
+ - pin
+ - ping
+ - pong
+ - pu
+ - pum
+ - pye
+ - qi
+ - qie
+ - qing
+ - ra
+ - rei
+ - ren
+ - ri
+ - ru
+ - ruan
+ - sa
+ - sai
+ - sama
+ - san
+ - sang
+ - se
+ - sei
+ - sen
+ - seo
+ - seon
+ - seong
+ - shang
+ - shen
+ - sheng
+ - shi
+ - sho
+ - shui
+ - si
+ - su
+ - sui
+ - sum
+ - sun
+ - swi
+ - ta
+ - tae
+ - tai
+ - tame
+ - tamen
+ - tan
+ - te
+ - tei
+ - ti
+ - tian
+ - to
+ - ton
+ - tsu
+ - ul
+ - wa
+ - wan
+ - wang
+ - wei
+ - wo
+ - xi
+ - xian
+ - xiao
+ - xing
+ - xiong
+ - xiu
+ - xu
+ - xuan
+ - xue
+ - ya
+ - yan
+ - yang
+ - yeong
+ - yi
+ - yige
+ - yin
+ - ying
+ - yiqi
+ - yong
+ - you
+ - yu
+ - yuli
+ - yuyi
+ - zai
+ - zao
+ - zhan
+ - zhang
+ - zhe
+ - zhen
+ - zheng
+ - zhuo
+ - zi
+ - zo
+ - zu
+ - zun
+ - zuo
\ No newline at end of file
diff --git a/Resources/Prototypes/Language/Standard/taucetibasic.yml b/Resources/Prototypes/Language/Standard/taucetibasic.yml
new file mode 100644
index 00000000000..96426f6c24f
--- /dev/null
+++ b/Resources/Prototypes/Language/Standard/taucetibasic.yml
@@ -0,0 +1,256 @@
+# The "Default Language" other than Universal.
+- type: language
+ id: TauCetiBasic
+ obfuscation:
+ !type:SyllableObfuscation
+ minSyllables: 1
+ maxSyllables: 3
+ replacement:
+ - a
+ - ado
+ - ago
+ - aj
+ - ajn
+ - al
+ - alt
+ - am
+ - amas
+ - an
+ - ang
+ - ante
+ - ap
+ - ard
+ - arma
+ - aro
+ - as
+ - aur
+ - aut
+ - aw
+ - ba
+ - bal
+ - bao
+ - be
+ - beau
+ - bel
+ - bi
+ - bit
+ - blu
+ - bo
+ - bod
+ - boj
+ - bojn
+ - bu
+ - but
+ - ca
+ - caj
+ - ce
+ - cer
+ - chun
+ - ci
+ - cion
+ - coj
+ - cor
+ - da
+ - daj
+ - dan
+ - de
+ - den
+ - dis
+ - do
+ - dor
+ - dorm
+ - eco
+ - ego
+ - ek
+ - eks
+ - en
+ - ero
+ - es
+ - est
+ - et
+ - eve
+ - fa
+ - fe
+ - fel
+ - fla
+ - foj
+ - fra
+ - fraz
+ - fros
+ - ful
+ - fut
+ - ga
+ - gan
+ - gar
+ - gi
+ - gis
+ - go
+ - gran
+ - ha
+ - han
+ - hav
+ - hom
+ - hong
+ - hu
+ - hum
+ - hushi
+ - ia
+ - iaj
+ - ica
+ - id
+ - idon
+ - il
+ - in
+ - ing
+ - io
+ - is
+ - iton
+ - iza
+ - ja
+ - ji
+ - jirou
+ - joj
+ - ka
+ - kaj
+ - kajo
+ - kan
+ - ke
+ - ket
+ - ki
+ - kna
+ - krio
+ - ku
+ - kui
+ - kuk
+ - kun
+ - kur
+ - la
+ - laca
+ - leng
+ - les
+ - li
+ - liao
+ - lib
+ - ling
+ - lis
+ - lo
+ - lon
+ - long
+ - lu
+ - lud
+ - ma
+ - mal
+ - man
+ - me
+ - mego
+ - mero
+ - mi
+ - mia
+ - min
+ - mo
+ - moj
+ - mola
+ - mon
+ - mul
+ - ne
+ - ner
+ - ni
+ - nio
+ - nu
+ - of
+ - oj
+ - om
+ - ou
+ - pe
+ - pi
+ - plan
+ - pli
+ - po
+ - por
+ - post
+ - pre
+ - prin
+ - pru
+ - pu
+ - pur
+ - qiu
+ - que
+ - ra
+ - ras
+ - re
+ - ri
+ - rig
+ - ril
+ - ro
+ - roj
+ - ron
+ - roso
+ - rou
+ - ru
+ - sa
+ - san
+ - sci
+ - sek
+ - shi
+ - shiia
+ - shiue
+ - shiwu
+ - shu
+ - shui
+ - si
+ - siaj
+ - sku
+ - so
+ - som
+ - sti
+ - str
+ - stre
+ - su
+ - suno
+ - ta
+ - tan
+ - tas
+ - te
+ - tel
+ - tem
+ - the
+ - ti
+ - tian
+ - tita
+ - tiu
+ - to
+ - toj
+ - ton
+ - tran
+ - tre
+ - tri
+ - trin
+ - tro
+ - trus
+ - un
+ - undo
+ - uno
+ - uz
+ - va
+ - var
+ - varm
+ - vas
+ - ve
+ - vek
+ - ven
+ - ves
+ - vi
+ - via
+ - vin
+ - vino
+ - vint
+ - vir
+ - von
+ - vu
+ - whe
+ - wu
+ - yong
+ - zem
+ - zo
+ - zoj
+ - zon
\ No newline at end of file
diff --git a/Resources/Prototypes/Language/Standard/tradeband.yml b/Resources/Prototypes/Language/Standard/tradeband.yml
new file mode 100644
index 00000000000..96415dc5a6e
--- /dev/null
+++ b/Resources/Prototypes/Language/Standard/tradeband.yml
@@ -0,0 +1,258 @@
+- type: language
+ id: Tradeband
+ speech:
+ color: "#597d35"
+ obfuscation:
+ !type:SyllableObfuscation
+ minSyllables: 1
+ maxSyllables: 3
+ replacement:
+ - a
+ - acc
+ - ai
+ - al
+ - ali
+ - am
+ - ama
+ - ami
+ - amo
+ - an
+ - ang
+ - arme
+ - ave
+ - ba
+ - bai
+ - bar
+ - bat
+ - bi
+ - blie
+ - bris
+ - ca
+ - can
+ - cant
+ - car
+ - care
+ - ce
+ - ci
+ - cis
+ - cit
+ - cla
+ - co
+ - cul
+ - cur
+ - curt
+ - da
+ - dam
+ - dans
+ - de
+ - di
+ - dier
+ - dim
+ - dins
+ - dorm
+ - du
+ - duro
+ - e
+ - eaux
+ - ec
+ - ecto
+ - ees
+ - ego
+ - el
+ - en
+ - ent
+ - er
+ - ere
+ - eres
+ - eri
+ - ero
+ - es
+ - et
+ - ex
+ - far
+ - fi
+ - fic
+ - fine
+ - fol
+ - foll
+ - fri
+ - fro
+ - gen
+ - gil
+ - go
+ - gran
+ - hab
+ - ho
+ - huc
+ - ia
+ - iam
+ - ibus
+ - idor
+ - ie
+ - iens
+ - ier
+ - ieur
+ - iis
+ - il
+ - in
+ - ine
+ - int
+ - ir
+ - is
+ - ise
+ - it
+ - itt
+ - jar
+ - je
+ - jo
+ - jor
+ - la
+ - lar
+ - lav
+ - le
+ - lees
+ - ler
+ - les
+ - li
+ - lib
+ - lie
+ - lo
+ - lu
+ - ma
+ - man
+ - manu
+ - mar
+ - mari
+ - mas
+ - me
+ - mea
+ - mee
+ - mejo
+ - men
+ - mes
+ - meum
+ - meus
+ - mi
+ - mier
+ - min
+ - mine
+ - mit
+ - mo
+ - moi
+ - mon
+ - mons
+ - mors
+ - mou
+ - mul
+ - na
+ - nam
+ - ne
+ - nee
+ - nent
+ - nes
+ - ni
+ - nit
+ - nom
+ - nu
+ - num
+ - o
+ - oc
+ - occ
+ - oja
+ - om
+ - omni
+ - or
+ - ori
+ - oro
+ - os
+ - ou
+ - oub
+ - pa
+ - par
+ - pars
+ - pas
+ - plu
+ - pluv
+ - po
+ - pol
+ - pos
+ - pou
+ - pous
+ - pre
+ - pu
+ - pug
+ - pus
+ - que
+ - qui
+ - re
+ - ri
+ - ric
+ - riga
+ - rito
+ - ro
+ - rom
+ - sa
+ - sal
+ - se
+ - ser
+ - sers
+ - ses
+ - sim
+ - sion
+ - so
+ - sol
+ - som
+ - sou
+ - sper
+ - sse
+ - ste
+ - su
+ - suis
+ - sul
+ - sur
+ - ta
+ - tar
+ - te
+ - teau
+ - tem
+ - temp
+ - ten
+ - tene
+ - tes
+ - ti
+ - tibus
+ - tien
+ - tion
+ - to
+ - tol
+ - ton
+ - tons
+ - tout
+ - tra
+ - trai
+ - tre
+ - trou
+ - tuo
+ - tus
+ - tut
+ - ues
+ - ui
+ - ul
+ - um
+ - un
+ - upa
+ - us
+ - ut
+ - ux
+ - va
+ - vail
+ - ve
+ - ven
+ - veni
+ - vi
+ - viam
+ - vie
+ - vo
+ - xus
+ - za
+ - zio
diff --git a/Resources/Prototypes/Language/animal.yml b/Resources/Prototypes/Language/animal.yml
new file mode 100644
index 00000000000..46178200011
--- /dev/null
+++ b/Resources/Prototypes/Language/animal.yml
@@ -0,0 +1,186 @@
+# Languages spoken by various critters.
+- type: language
+ id: Cat
+ obfuscation:
+ !type:SyllableObfuscation
+ minSyllables: 1
+ maxSyllables: 2
+ replacement:
+ - murr
+ - meow
+ - purr
+ - mrow
+
+- type: language
+ id: Dog
+ obfuscation:
+ !type:SyllableObfuscation
+ minSyllables: 1
+ maxSyllables: 2
+ replacement:
+ - woof
+ - bark
+ - ruff
+ - bork
+ - raff
+ - garr
+
+- type: language
+ id: Fox
+ obfuscation:
+ !type:SyllableObfuscation
+ minSyllables: 1
+ maxSyllables: 2
+ replacement:
+ - ruff
+ - raff
+ - garr
+ - yip
+ - yap
+ - myah
+
+- type: language
+ id: Xeno
+ obfuscation:
+ !type:SyllableObfuscation
+ minSyllables: 1
+ maxSyllables: 8 # I was crazy once
+ replacement:
+ - s
+ - S
+
+- type: language
+ id: Monkey
+ obfuscation:
+ !type:SyllableObfuscation
+ minSyllables: 1
+ maxSyllables: 8 # They locked me in a room...
+ replacement:
+ - o
+ - k
+
+- type: language
+ id: Mouse
+ obfuscation:
+ !type:SyllableObfuscation
+ minSyllables: 2
+ maxSyllables: 3
+ replacement:
+ - squ
+ - eak
+ - pi
+ - ep
+ - chuu
+ - ee
+ - fwi
+ - he
+
+- type: language
+ id: Chicken
+ obfuscation:
+ !type:SyllableObfuscation
+ minSyllables: 1
+ maxSyllables: 3
+ replacement:
+ - co
+ - coo
+ - ot
+
+- type: language
+ id: Duck
+ obfuscation:
+ !type:SyllableObfuscation
+ minSyllables: 1
+ maxSyllables: 3
+ replacement:
+ - qu
+ - ack
+ - quack
+
+- type: language
+ id: Cow
+ obfuscation:
+ !type:SyllableObfuscation
+ minSyllables: 1
+ maxSyllables: 3
+ replacement:
+ - moo
+ - mooo
+
+- type: language
+ id: Sheep
+ obfuscation:
+ !type:SyllableObfuscation
+ minSyllables: 1
+ maxSyllables: 3
+ replacement:
+ - ba
+ - baa
+ - aa
+
+- type: language
+ id: Kangaroo
+ obfuscation:
+ !type:SyllableObfuscation
+ minSyllables: 1
+ maxSyllables: 3
+ replacement:
+ - shre
+ - ack
+ - chuu
+ - choo
+
+- type: language
+ id: Pig
+ obfuscation:
+ !type:SyllableObfuscation
+ minSyllables: 1
+ maxSyllables: 3
+ replacement:
+ - oink # Please someone come up with something better
+
+- type: language
+ id: Crab
+ obfuscation:
+ !type:SyllableObfuscation
+ minSyllables: 1
+ maxSyllables: 3
+ replacement:
+ - click
+ - clack
+ - ti
+ - pi
+ - tap
+ - cli
+ - ick
+
+- type: language
+ id: Kobold
+ obfuscation:
+ !type:SyllableObfuscation
+ minSyllables: 2
+ maxSyllables: 4
+ replacement:
+ - yip
+ - yap
+ - gar
+ - grr
+ - ar
+ - scre
+ - et
+ - gronk
+ - hiss
+ - ss
+ - ee
+
+- type: language
+ id: Hissing
+ obfuscation:
+ !type:SyllableObfuscation
+ minSyllables: 2
+ maxSyllables: 4
+ replacement:
+ - hss
+ - iss
+ - ss
+ - is
diff --git a/Resources/Prototypes/Language/genericlanguages.yml b/Resources/Prototypes/Language/genericlanguages.yml
new file mode 100644
index 00000000000..8d172cdae9c
--- /dev/null
+++ b/Resources/Prototypes/Language/genericlanguages.yml
@@ -0,0 +1,45 @@
+# The universal language. This is technically used as a fallback for simulating the pre-languages
+# style of Chat, and is not normally accessible by players. It is however used by characters
+# with the Xenoglossy psionic power, as well as Ghosts, and AGhosts.
+- type: language
+ id: Universal
+ obfuscation:
+ !type:ReplacementObfuscation
+ replacement:
+ - "*incomprehensible*" # Never actually used
+
+# Used by Robots.
+# TODO: Replace this with much better languages. Yes, robots can have languages.
+- type: language
+ id: RobotTalk
+ speech:
+ fontId: Monospace
+ obfuscation:
+ !type:SyllableObfuscation
+ minSyllables: 1
+ maxSyllables: 10 # Crazy
+ replacement:
+ - 0
+ - 1
+
+# Example of a sign language. Used by the Sign Language trait.
+- type: language
+ id: Sign
+ speech:
+ allowRadio: false
+ requireSpeech: false
+ color: "#dddddd"
+ messageWrapOverrides:
+ Speak: chat-sign-language-message-wrap
+ Whisper: chat-sign-language-whisper-wrap
+ speechVerbOverrides:
+ - chat-speech-verb-sign-1
+ - chat-speech-verb-sign-2
+ - chat-speech-verb-sign-3
+ obfuscation:
+ !type:ReplacementObfuscation
+ replacement:
+ - something
+ - a cryptic message
+ - a signal
+ - a message
diff --git a/Resources/Prototypes/Language/languages.yml b/Resources/Prototypes/Language/languages.yml
deleted file mode 100644
index 65af93e02d4..00000000000
--- a/Resources/Prototypes/Language/languages.yml
+++ /dev/null
@@ -1,614 +0,0 @@
-# The universal language, assumed if the entity has a UniversalLanguageSpeakerComponent.
-# Do not use otherwise. Making an entity explicitly understand/speak this language will NOT have the desired effect.
-- type: language
- id: Universal
- obfuscation:
- !type:ReplacementObfuscation
- replacement:
- - "*incomprehensible*" # Never actually used
-
-# The common galactic tongue.
-- type: language
- id: GalacticCommon
- obfuscation:
- !type:SyllableObfuscation
- minSyllables: 1
- maxSyllables: 3
- replacement:
- - blah
- - blah
- - blah
- - dingle-doingle
- - dingle
- - dangle
- - jibber-jabber
- - jubber
- - bleh
- - zippity
- - zoop
- - wibble
- - wobble
- - wiggle
- - yada
- - meh
- - neh
- - nah
- - wah
-
-# Spoken by slimes.
-- type: language
- id: Bubblish
- speech:
- color: "#00a3e2dd"
- fontId: RubikBubbles
- obfuscation:
- !type:SyllableObfuscation
- minSyllables: 1
- maxSyllables: 3
- replacement:
- - blob
- - plop
- - pop
- - bop
- - boop
-
-# Spoken by moths.
-- type: language
- id: Moffic
- speech:
- color: "#c7df2edd"
- fontId: Copperplate
- obfuscation:
- !type:SyllableObfuscation
- minSyllables: 2 # Replacements are really short
- maxSyllables: 4
- replacement:
- - år
- - i
- - går
- - sek
- - mo
- - ff
- - ok
- - gj
- - ø
- - gå
- - la
- - le
- - lit
- - ygg
- - van
- - dår
- - næ
- - møt
- - idd
- - hvo
- - ja
- - på
- - han
- - så
- - ån
- - det
- - att
- - nå
- - gö
- - bra
- - int
- - tyc
- - om
- - när
- - två
- - må
- - dag
- - sjä
- - vii
- - vuo
- - eil
- - tun
- - käyt
- - teh
- - vä
- - hei
- - huo
- - suo
- - ää
- - ten
- - ja
- - heu
- - stu
- - uhr
- - kön
- - we
- - hön
-
-# Spoken by dionas.
-- type: language
- id: RootSpeak
- speech:
- color: "#ce5e14dd"
- fontId: Noganas
- obfuscation:
- !type:SyllableObfuscation
- minSyllables: 1
- maxSyllables: 5
- replacement:
- - hs
- - zt
- - kr
- - st
- - sh
-
-# A mess of broken Japanese, spoken by Felinds and Oni
-- type: language
- id: Nekomimetic
- speech:
- color: "#df57aaee"
- fontId: Manga
- obfuscation:
- !type:SyllableObfuscation
- minSyllables: 1
- maxSyllables: 3 # May be too long even, we'll see.
- replacement:
- - neko
- - nyan
- - mimi
- - moe
- - mofu
- - fuwa
- - kyaa
- - kawaii
- - poka
- - munya
- - puni
- - munyu
- - ufufu
- - icha
- - doki
- - kyun
- - kusu
- - nya
- - nyaa
- - desu
- - kis
- - ama
- - chuu
- - baka
- - hewo
- - boop
- - gato
- - kit
- - sune
- - yori
- - sou
- - baka
- - chan
- - san
- - kun
- - mahou
- - yatta
- - suki
- - usagi
- - domo
- - ori
- - uwa
- - zaazaa
- - shiku
- - puru
- - ira
- - heto
- - etto
-
-# Spoken by the Lizard race.
-- type: language
- id: Draconic
- speech:
- color: "#2aca2add"
- obfuscation:
- !type:SyllableObfuscation
- minSyllables: 2
- maxSyllables: 4
- replacement:
- - za
- - az
- - ze
- - ez
- - zi
- - iz
- - zo
- - oz
- - zu
- - uz
- - zs
- - sz
- - ha
- - ah
- - he
- - eh
- - hi
- - ih
- - ho
- - oh
- - hu
- - uh
- - hs
- - sh
- - la
- - al
- - le
- - el
- - li
- - il
- - lo
- - ol
- - lu
- - ul
- - ls
- - sl
- - ka
- - ak
- - ke
- - ek
- - ki
- - ik
- - ko
- - ok
- - ku
- - uk
- - ks
- - sk
- - sa
- - as
- - se
- - es
- - si
- - is
- - so
- - os
- - su
- - us
- - ss
- - ss
- - ra
- - ar
- - re
- - er
- - ri
- - ir
- - ro
- - or
- - ru
- - ur
- - rs
- - sr
- - a
- - a
- - e
- - e
- - i
- - i
- - o
- - o
- - u
- - u
- - s
- - s
-
-# Spoken by the Vulpkanin race.
-- type: language
- id: Canilunzt
- speech:
- color: "#d69b3dcc"
- obfuscation:
- !type:SyllableObfuscation
- minSyllables: 1
- maxSyllables: 4
- replacement:
- - rur
- - ya
- - cen
- - rawr
- - bar
- - kuk
- - tek
- - qat
- - uk
- - wu
- - vuh
- - tah
- - tch
- - schz
- - auch
- - ist
- - ein
- - entch
- - zwichs
- - tut
- - mir
- - wo
- - bis
- - es
- - vor
- - nic
- - gro
- - enem
- - zandt
- - tzch
- - noch
- - hel
- - ischt
- - far
- - wa
- - baram
- - iereng
- - tech
- - lach
- - sam
- - mak
- - lich
- - gen
- - or
- - ag
- - eck
- - gec
- - stag
- - onn
- - bin
- - ket
- - jarl
- - vulf
- - einech
- - cresthz
- - azunein
- - ghzth
-
-# The common language of the Sol system.
-- type: language
- id: SolCommon
- speech:
- color: "#8282fbaa"
- obfuscation:
- !type:SyllableObfuscation
- minSyllables: 1
- maxSyllables: 4
- replacement:
- - tao
- - shi
- - tzu
- - yi
- - com
- - be
- - is
- - i
- - op
- - vi
- - ed
- - lec
- - mo
- - cle
- - te
- - dis
- - e
-
-- type: language
- id: RobotTalk
- speech:
- fontId: Monospace
- obfuscation:
- !type:SyllableObfuscation
- minSyllables: 1
- maxSyllables: 10 # Crazy
- replacement:
- - 0
- - 1
-
-# Languages spoken by various critters.
-- type: language
- id: Cat
- obfuscation:
- !type:SyllableObfuscation
- minSyllables: 1
- maxSyllables: 2
- replacement:
- - murr
- - meow
- - purr
- - mrow
-
-- type: language
- id: Dog
- obfuscation:
- !type:SyllableObfuscation
- minSyllables: 1
- maxSyllables: 2
- replacement:
- - woof
- - bark
- - ruff
- - bork
- - raff
- - garr
-
-- type: language
- id: Fox
- obfuscation:
- !type:SyllableObfuscation
- minSyllables: 1
- maxSyllables: 2
- replacement:
- - ruff
- - raff
- - garr
- - yip
- - yap
- - myah
-
-- type: language
- id: Xeno
- obfuscation:
- !type:SyllableObfuscation
- minSyllables: 1
- maxSyllables: 8 # I was crazy once
- replacement:
- - s
- - S
-
-- type: language
- id: Monkey
- obfuscation:
- !type:SyllableObfuscation
- minSyllables: 1
- maxSyllables: 8 # They locked me in a room...
- replacement:
- - o
- - k
-
-- type: language
- id: Mouse
- obfuscation:
- !type:SyllableObfuscation
- minSyllables: 2
- maxSyllables: 3
- replacement:
- - squ
- - eak
- - pi
- - ep
- - chuu
- - ee
- - fwi
- - he
-
-- type: language
- id: Chicken
- obfuscation:
- !type:SyllableObfuscation
- minSyllables: 1
- maxSyllables: 3
- replacement:
- - co
- - coo
- - ot
-
-- type: language
- id: Duck
- obfuscation:
- !type:SyllableObfuscation
- minSyllables: 1
- maxSyllables: 3
- replacement:
- - qu
- - ack
- - quack
-
-- type: language
- id: Cow
- obfuscation:
- !type:SyllableObfuscation
- minSyllables: 1
- maxSyllables: 3
- replacement:
- - moo
- - mooo
-
-- type: language
- id: Sheep
- obfuscation:
- !type:SyllableObfuscation
- minSyllables: 1
- maxSyllables: 3
- replacement:
- - ba
- - baa
- - aa
-
-- type: language
- id: Kangaroo
- obfuscation:
- !type:SyllableObfuscation
- minSyllables: 1
- maxSyllables: 3
- replacement:
- - shre
- - ack
- - chuu
- - choo
-
-- type: language
- id: Pig
- obfuscation:
- !type:SyllableObfuscation
- minSyllables: 1
- maxSyllables: 3
- replacement:
- - oink # Please someone come up with something better
-
-- type: language
- id: Crab
- obfuscation:
- !type:SyllableObfuscation
- minSyllables: 1
- maxSyllables: 3
- replacement:
- - click
- - clack
- - ti
- - pi
- - tap
- - cli
- - ick
-
-- type: language
- id: Kobold
- obfuscation:
- !type:SyllableObfuscation
- minSyllables: 2
- maxSyllables: 4
- replacement:
- - yip
- - yap
- - gar
- - grr
- - ar
- - scre
- - et
- - gronk
- - hiss
- - ss
- - ee
-
-- type: language
- id: Hissing
- obfuscation:
- !type:SyllableObfuscation
- minSyllables: 2
- maxSyllables: 4
- replacement:
- - hss
- - iss
- - ss
- - is
-
-# Example of a sign language. Not currently used anyhow.
-- type: language
- id: Sign
- speech:
- allowRadio: false
- requireSpeech: false
- color: "#dddddd"
- messageWrapOverrides:
- Speak: chat-sign-language-message-wrap
- Whisper: chat-sign-language-whisper-wrap
- speechVerbOverrides:
- - chat-speech-verb-sign-1
- - chat-speech-verb-sign-2
- - chat-speech-verb-sign-3
- obfuscation:
- !type:ReplacementObfuscation
- replacement:
- - something
- - a cryptic message to you
- - a signal to you
- - a message
- - a rude expression to you
- - a sad expression to you
- - a happy expression to you
diff --git a/Resources/Prototypes/Nyanotrasen/Entities/Mobs/Species/Oni.yml b/Resources/Prototypes/Nyanotrasen/Entities/Mobs/Species/Oni.yml
index c1655287fdc..da723e7c43d 100644
--- a/Resources/Prototypes/Nyanotrasen/Entities/Mobs/Species/Oni.yml
+++ b/Resources/Prototypes/Nyanotrasen/Entities/Mobs/Species/Oni.yml
@@ -40,10 +40,10 @@
proto: oni
- type: LanguageKnowledge
speaks:
- - GalacticCommon
+ - TauCetiBasic
- Nekomimetic
understands:
- - GalacticCommon
+ - TauCetiBasic
- Nekomimetic
- type: entity
diff --git a/Resources/Prototypes/Nyanotrasen/Entities/Mobs/Species/felinid.yml b/Resources/Prototypes/Nyanotrasen/Entities/Mobs/Species/felinid.yml
index 411eb13444b..44779fe9508 100644
--- a/Resources/Prototypes/Nyanotrasen/Entities/Mobs/Species/felinid.yml
+++ b/Resources/Prototypes/Nyanotrasen/Entities/Mobs/Species/felinid.yml
@@ -67,12 +67,10 @@
- type: NoShoesSilentFootsteps
- type: LanguageKnowledge
speaks:
- - GalacticCommon
- - SolCommon
+ - TauCetiBasic
- Nekomimetic
understands:
- - GalacticCommon
- - SolCommon
+ - TauCetiBasic
- Nekomimetic
- type: Thieving
ignoreStripHidden: true
diff --git a/Resources/Prototypes/Nyanotrasen/Entities/Structures/Research/sophicscribe.yml b/Resources/Prototypes/Nyanotrasen/Entities/Structures/Research/sophicscribe.yml
index 533cf314999..511262d3186 100644
--- a/Resources/Prototypes/Nyanotrasen/Entities/Structures/Research/sophicscribe.yml
+++ b/Resources/Prototypes/Nyanotrasen/Entities/Structures/Research/sophicscribe.yml
@@ -49,9 +49,9 @@
guides:
- Psionics
- type: LanguageSpeaker
- currentLanguage: GalacticCommon
+ currentLanguage: TauCetiBasic
- type: LanguageKnowledge
speaks:
- - GalacticCommon
+ - TauCetiBasic
understands:
- - GalacticCommon
+ - TauCetiBasic
diff --git a/Resources/Prototypes/Traits/categories.yml b/Resources/Prototypes/Traits/categories.yml
index e413706bfa0..fcd89d5bbe8 100644
--- a/Resources/Prototypes/Traits/categories.yml
+++ b/Resources/Prototypes/Traits/categories.yml
@@ -19,7 +19,24 @@
- type: traitCategory
id: Speech
root: true
+ subCategories:
+ - TraitsSpeechUncategorized
+ - TraitsSpeechAccents
+ - TraitsSpeechLanguages
+
+- type: traitCategory
+ id: TraitsSpeechUncategorized
+
+- type: traitCategory
+ id: TraitsSpeechAccents
+
+- type: traitCategory
+ id: TraitsSpeechLanguages
- type: traitCategory
id: Visual
root: true
+
+- type: traitCategory
+ id: Language
+ root: true
\ No newline at end of file
diff --git a/Resources/Prototypes/Traits/disabilities.yml b/Resources/Prototypes/Traits/disabilities.yml
index 3afc3bfba43..2b37aadb9a9 100644
--- a/Resources/Prototypes/Traits/disabilities.yml
+++ b/Resources/Prototypes/Traits/disabilities.yml
@@ -51,7 +51,7 @@
- type: trait
id: Muted
- category: Speech
+ category: Mental
points: 4
requirements:
- !type:CharacterJobRequirement
@@ -77,7 +77,7 @@
- type: trait
id: FrontalLisp
- category: Speech
+ category: TraitsSpeechAccents
requirements:
- !type:CharacterJobRequirement
inverted: true
@@ -88,6 +88,8 @@
inverted: true
species:
- IPC
+ - !type:CharacterItemGroupRequirement
+ group: TraitsAccents
components:
- type: FrontalLisp
diff --git a/Resources/Prototypes/Traits/inconveniences.yml b/Resources/Prototypes/Traits/inconveniences.yml
index b08116dc480..2c0df79264f 100644
--- a/Resources/Prototypes/Traits/inconveniences.yml
+++ b/Resources/Prototypes/Traits/inconveniences.yml
@@ -23,13 +23,15 @@
- type: trait
id: Stutter
- category: Mental
+ category: TraitsSpeechAccents
requirements:
- !type:CharacterJobRequirement
inverted: true
jobs:
- Borg
- MedicalBorg
+ - !type:CharacterItemGroupRequirement
+ group: TraitsAccents
components:
- type: StutteringAccent
matchRandomProb: 0.1
@@ -39,7 +41,7 @@
- type: trait
id: ForeignerLight
- category: Mental
+ category: TraitsSpeechLanguages
points: 2
requirements:
- !type:CharacterTraitRequirement
@@ -53,7 +55,7 @@
- type: trait
id: Foreigner
- category: Mental
+ category: TraitsSpeechLanguages
points: 4
requirements: # TODO: Add a requirement to know at least 1 non-gc language
- !type:CharacterTraitRequirement
diff --git a/Resources/Prototypes/Traits/languages.yml b/Resources/Prototypes/Traits/languages.yml
new file mode 100644
index 00000000000..5fc1f3bb918
--- /dev/null
+++ b/Resources/Prototypes/Traits/languages.yml
@@ -0,0 +1,67 @@
+- type: trait
+ id: SignLanguage
+ category: TraitsSpeechLanguages
+ points: 0
+ requirements:
+ - !type:CharacterItemGroupRequirement
+ group: TraitsLanguagesBasic
+ languagesSpoken:
+ - Sign
+ languagesUnderstood:
+ - Sign
+
+- type: trait
+ id: SolCommon
+ category: TraitsSpeechLanguages
+ points: 0
+ requirements:
+ - !type:CharacterItemGroupRequirement
+ group: TraitsLanguagesBasic
+ - !type:CharacterSpeciesRequirement
+ inverted: true
+ species:
+ - Human
+ languagesSpoken:
+ - SolCommon
+ languagesUnderstood:
+ - SolCommon
+
+- type: trait
+ id: Tradeband
+ category: TraitsSpeechLanguages
+ points: 0
+ requirements:
+ - !type:CharacterItemGroupRequirement
+ group: TraitsLanguagesBasic
+ - !type:CharacterSpeciesRequirement
+ inverted: true
+ species:
+ - Harpy
+ languagesSpoken:
+ - Tradeband
+ languagesUnderstood:
+ - Tradeband
+
+- type: trait
+ id: Freespeak
+ category: TraitsSpeechLanguages
+ points: 0
+ requirements:
+ - !type:CharacterItemGroupRequirement
+ group: TraitsLanguagesBasic
+ languagesSpoken:
+ - Freespeak
+ languagesUnderstood:
+ - Freespeak
+
+- type: trait
+ id: Elyran
+ category: TraitsSpeechLanguages
+ points: 0
+ requirements:
+ - !type:CharacterItemGroupRequirement
+ group: TraitsLanguagesBasic
+ languagesSpoken:
+ - Elyran
+ languagesUnderstood:
+ - Elyran
\ No newline at end of file
diff --git a/Resources/Prototypes/Traits/neutral.yml b/Resources/Prototypes/Traits/neutral.yml
index a103f5abeed..6186c3382b7 100644
--- a/Resources/Prototypes/Traits/neutral.yml
+++ b/Resources/Prototypes/Traits/neutral.yml
@@ -1,19 +1,24 @@
- type: trait
id: PirateAccent
- category: Speech
+ category: TraitsSpeechAccents
+ requirements:
+ - !type:CharacterItemGroupRequirement
+ group: TraitsAccents
components:
- type: PirateAccent
- type: trait
id: Accentless
- category: Speech
- points: -2
+ category: TraitsSpeechAccents
+ points: -1
requirements:
- !type:CharacterJobRequirement
inverted: true
jobs:
- Borg
- MedicalBorg
+ - !type:CharacterItemGroupRequirement
+ group: TraitsAccents
components:
- type: Accentless
removes:
@@ -24,7 +29,10 @@
- type: trait
id: Southern
- category: Speech
+ category: TraitsSpeechAccents
+ requirements:
+ - !type:CharacterItemGroupRequirement
+ group: TraitsAccents
components:
- type: SouthernAccent
diff --git a/Resources/Prototypes/Traits/skills.yml b/Resources/Prototypes/Traits/skills.yml
index 015c9f50233..0e4868f19bc 100644
--- a/Resources/Prototypes/Traits/skills.yml
+++ b/Resources/Prototypes/Traits/skills.yml
@@ -98,15 +98,6 @@
species:
- Felinid
-- type: trait
- id: SignLanguage
- category: Visual
- points: -2
- languagesSpoken:
- - Sign
- languagesUnderstood:
- - Sign
-
- type: trait
id: Voracious
category: Physical