Xenoglossy language tweaks

(cherry picked from commit 2ebd2a27f7f61000b38dd81f48ef84087d2f9972)
This commit is contained in:
Rocket
2025-03-23 21:24:02 -07:00
committed by Spatison
parent 8bb805ea51
commit a7cc8f5e2e
7 changed files with 40 additions and 5 deletions

View File

@@ -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<LanguageSpeakerComponent?> ent, ProtoId<LanguagePrototype> language)
{
if (language == UniversalPrototype || TryComp<UniversalLanguageSpeakerComponent>(ent, out var uni) && uni.Enabled)
if (language == PsychomanticPrototype || language == UniversalPrototype || TryComp<UniversalLanguageSpeakerComponent>(ent, out var uni) && uni.Enabled)
return true;
return Resolve(ent, ref ent.Comp, logMissing: false) && ent.Comp.UnderstoodLanguages.Contains(language);

View File

@@ -18,6 +18,13 @@ public abstract class SharedLanguageSystem : EntitySystem
[ValidatePrototypeId<LanguagePrototype>]
public static readonly string UniversalPrototype = "Universal";
/// <summary>
/// Language used for Xenoglossy, should have same effects as Universal but with diffrent Language prototype
/// </summary>
[ValidatePrototypeId<LanguagePrototype>]
public static readonly string PsychomanticPrototype = "Psychomantic";
/// <summary>
/// A cached instance of <see cref="UniversalPrototype"/>
/// </summary>

BIN
Resources/Fonts/Megrim.ttf Normal file

Binary file not shown.

View File

@@ -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

View File

@@ -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.

View File

@@ -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

View File

@@ -88,4 +88,8 @@
- type: font
id: RubikDirt
path: /Fonts/Rubik_Dirt/RubikDirt.ttf
path: /Fonts/Rubik_Dirt/RubikDirt.ttf
- type: font
id: Megrim
path: /Fonts/Megrim.ttf