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 0000000000..1e5a8db9b3 Binary files /dev/null and b/Resources/Fonts/Megrim.ttf differ 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