From a7cc8f5e2ec40bb14bb1bbdb8c0bd5f2873eb19a Mon Sep 17 00:00:00 2001 From: Rocket Date: Sun, 23 Mar 2025 21:24:02 -0700 Subject: [PATCH] Xenoglossy language tweaks (cherry picked from commit 2ebd2a27f7f61000b38dd81f48ef84087d2f9972) --- Content.Server/Language/LanguageSystem.cs | 4 ++-- .../Language/Systems/SharedLanguageSystem.cs | 7 +++++++ Resources/Fonts/Megrim.ttf | Bin 0 -> 55272 bytes .../en-US/chat/managers/chat-manager.ftl | 6 ++++++ Resources/Locale/en-US/language/languages.ftl | 3 +++ .../Prototypes/Language/genericlanguages.yml | 19 ++++++++++++++++-- Resources/Prototypes/fonts.yml | 6 +++++- 7 files changed, 40 insertions(+), 5 deletions(-) create mode 100644 Resources/Fonts/Megrim.ttf diff --git a/Content.Server/Language/LanguageSystem.cs b/Content.Server/Language/LanguageSystem.cs index 3ef4caa84d..e87bf2f041 100644 --- a/Content.Server/Language/LanguageSystem.cs +++ b/Content.Server/Language/LanguageSystem.cs @@ -47,7 +47,7 @@ public sealed partial class LanguageSystem : SharedLanguageSystem { // We only add it as a spoken language; CanUnderstand checks for ULSC itself. if (entity.Comp.Enabled) - ev.SpokenLanguages.Add(UniversalPrototype); + ev.SpokenLanguages.Add(PsychomanticPrototype); } @@ -69,7 +69,7 @@ public sealed partial class LanguageSystem : SharedLanguageSystem public bool CanUnderstand(Entity ent, ProtoId language) { - if (language == UniversalPrototype || TryComp(ent, out var uni) && uni.Enabled) + if (language == PsychomanticPrototype || language == UniversalPrototype || TryComp(ent, out var uni) && uni.Enabled) return true; return Resolve(ent, ref ent.Comp, logMissing: false) && ent.Comp.UnderstoodLanguages.Contains(language); diff --git a/Content.Shared/Language/Systems/SharedLanguageSystem.cs b/Content.Shared/Language/Systems/SharedLanguageSystem.cs index 86a58dc2a7..af84369054 100644 --- a/Content.Shared/Language/Systems/SharedLanguageSystem.cs +++ b/Content.Shared/Language/Systems/SharedLanguageSystem.cs @@ -18,6 +18,13 @@ public abstract class SharedLanguageSystem : EntitySystem [ValidatePrototypeId] public static readonly string UniversalPrototype = "Universal"; + /// + /// Language used for Xenoglossy, should have same effects as Universal but with diffrent Language prototype + /// + [ValidatePrototypeId] + public static readonly string PsychomanticPrototype = "Psychomantic"; + + /// /// A cached instance of /// diff --git a/Resources/Fonts/Megrim.ttf b/Resources/Fonts/Megrim.ttf new file mode 100644 index 0000000000000000000000000000000000000000..1e5a8db9b3d8a39044618eadb9131b2b287ca738 GIT binary patch literal 55272 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 literal 0 HcmV?d00001 diff --git a/Resources/Locale/en-US/chat/managers/chat-manager.ftl b/Resources/Locale/en-US/chat/managers/chat-manager.ftl index 6040391bca..0109398f3a 100644 --- a/Resources/Locale/en-US/chat/managers/chat-manager.ftl +++ b/Resources/Locale/en-US/chat/managers/chat-manager.ftl @@ -173,3 +173,9 @@ chat-speech-verb-marish = Mars chat-speech-verb-name-supermatter = Supermatter chat-speech-verb-supermatter = states + + +chat-speech-verb-Universal-1 = resonates +chat-speech-verb-Universal-2 = projects +chat-speech-verb-Universal-3 = impresses +chat-speech-verb-Universal-4 = radiates diff --git a/Resources/Locale/en-US/language/languages.ftl b/Resources/Locale/en-US/language/languages.ftl index d6a0803691..3dfd99f4a6 100644 --- a/Resources/Locale/en-US/language/languages.ftl +++ b/Resources/Locale/en-US/language/languages.ftl @@ -1,6 +1,9 @@ language-Universal-name = Universal language-Universal-description = What are you? +language-Psychomantic-name = Psychomantic +language-Psychomantic-description = Pure meaning, free from the tyranny of primative words and gestures. + 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. diff --git a/Resources/Prototypes/Language/genericlanguages.yml b/Resources/Prototypes/Language/genericlanguages.yml index 90cb874ee6..439a34885d 100644 --- a/Resources/Prototypes/Language/genericlanguages.yml +++ b/Resources/Prototypes/Language/genericlanguages.yml @@ -1,6 +1,5 @@ # 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. +# style of Chat, and is not normally accessible by players. - type: language id: Universal obfuscation: @@ -44,3 +43,19 @@ - a cryptic message - a signal - a message + + #Used for Xenoglossy, and anything else with the UniversalLanguageSpeaker component +- type: language + id: Psychomantic + speech: + color: "#C29EFF" # a nice psychic purple, a bit lighter than Ya'ssa + fontId: Megrim # Nice and clean + speechVerbOverrides: + - chat-speech-verb-Universal-1 + - chat-speech-verb-Universal-2 + - chat-speech-verb-Universal-3 + - chat-speech-verb-Universal-4 + obfuscation: + !type:ReplacementObfuscation + replacement: + - "*incomprehensible*" # Never actually used diff --git a/Resources/Prototypes/fonts.yml b/Resources/Prototypes/fonts.yml index 71d0664ac0..14c3704f5a 100644 --- a/Resources/Prototypes/fonts.yml +++ b/Resources/Prototypes/fonts.yml @@ -88,4 +88,8 @@ - type: font id: RubikDirt - path: /Fonts/Rubik_Dirt/RubikDirt.ttf \ No newline at end of file + path: /Fonts/Rubik_Dirt/RubikDirt.ttf + +- type: font + id: Megrim + path: /Fonts/Megrim.ttf