# SPDX-FileCopyrightText: 2025 CerberusWolfie <wb.johnb.willis@gmail.com>
# SPDX-FileCopyrightText: 2025 GoobBot <uristmchands@proton.me>
# SPDX-FileCopyrightText: 2025 John Willis <143434770+CerberusWolfie@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 Mnemotechnican <69920617+Mnemotechnician@users.noreply.github.com>
#
# SPDX-License-Identifier: AGPL-3.0-or-later

# 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.
- 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
  isVisibleLanguage: true
  speech:
    fontId: Monospace
    boldFontId: MonospaceBold
  obfuscation:
    !type:SyllableObfuscation
    minSyllables: 1
    maxSyllables: 10 # Crazy
    replacement:
    - 0
    - 1

# Insanely long.
- type: language
  id: DroneTalk
  isVisibleLanguage: true
  speech:
    fontId: Monospace
    boldFontId: MonospaceBold
  obfuscation:
    !type:SyllableObfuscation
    minSyllables: 1
    maxSyllables: 10
    replacement:
    - 00
    - 01
    - 02
    - 03
    - 04
    - 05
    - 06
    - 07
    - 08
    - 09
    - 0A
    - 0B
    - 0C
    - 0D
    - 0E
    - 0F
    - 10
    - 11
    - 12
    - 13
    - 14
    - 15
    - 16
    - 17
    - 18
    - 19
    - 1A
    - 1B
    - 1C
    - 1D
    - 1E
    - 1F
    - 20
    - 21
    - 22
    - 23
    - 24
    - 25
    - 26
    - 27
    - 28
    - 29
    - 2A
    - 2B
    - 2C
    - 2D
    - 2E
    - 2F
    - 30
    - 31
    - 32
    - 33
    - 34
    - 35
    - 36
    - 37
    - 38
    - 39
    - 3A
    - 3B
    - 3C
    - 3D
    - 3E
    - 3F
    - 40
    - 41
    - 42
    - 43
    - 44
    - 45
    - 46
    - 47
    - 48
    - 49
    - 4A
    - 4B
    - 4C
    - 4D
    - 4E
    - 4F
    - 50
    - 51
    - 52
    - 53
    - 54
    - 55
    - 56
    - 57
    - 58
    - 59
    - 5A
    - 5B
    - 5C
    - 5D
    - 5E
    - 5F
    - 60
    - 61
    - 62
    - 63
    - 64
    - 65
    - 66
    - 67
    - 68
    - 69
    - 6A
    - 6B
    - 6C
    - 6D
    - 6E
    - 6F
    - 70
    - 71
    - 72
    - 73
    - 74
    - 75
    - 76
    - 77
    - 78
    - 79
    - 7A
    - 7B
    - 7C
    - 7D
    - 7E
    - 7F
    - 80
    - 81
    - 82
    - 83
    - 84
    - 85
    - 86
    - 87
    - 88
    - 89
    - 8A
    - 8B
    - 8C
    - 8D
    - 8E
    - 8F
    - 90
    - 91
    - 92
    - 93
    - 94
    - 95
    - 96
    - 97
    - 98
    - 99
    - 9A
    - 9B
    - 9C
    - 9D
    - 9E
    - 9F
    - A0
    - A1
    - A2
    - A3
    - A4
    - A5
    - A6
    - A7
    - A8
    - A9
    - AA
    - AB
    - AC
    - AD
    - AE
    - AF
    - B0
    - B1
    - B2
    - B3
    - B4
    - B5
    - B6
    - B7
    - B8
    - B9
    - BA
    - BB
    - BC
    - BD
    - BE
    - BF
    - C0
    - C1
    - C2
    - C3
    - C4
    - C5
    - C6
    - C7
    - C8
    - C9
    - CA
    - CB
    - CC
    - CD
    - CE
    - CF
    - D0
    - D1
    - D2
    - D3
    - D4
    - D5
    - D6
    - D7
    - D8
    - D9
    - DA
    - DB
    - DC
    - DD
    - DE
    - DF
    - E0
    - E1
    - E2
    - E3
    - E4
    - E5
    - E6
    - E7
    - E8
    - E9
    - EA
    - EB
    - EC
    - ED
    - EE
    - EF
    - F0
    - F1
    - F2
    - F3
    - F4
    - F5
    - F6
    - F7
    - F8
    - F9
    - FA
    - FB
    - FC
    - FD
    - FE
    - FF

# Example of a sign language. Used by the Sign Language trait.
- type: language
  id: Sign
  speech:
    allowRadio: false
    requireSpeech: false
    requireLOS: true # Floofstation - Check Line-Of-Sight
    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

    #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 # Experimental and alien, but still hopefully clean enough to read #* FONTS NOT ALREADY HERE ARE NOT BEING ADDED
    speechVerbOverrides:
    - chat-speech-verb-Psychomantic-1
    - chat-speech-verb-Psychomantic-2
    - chat-speech-verb-Psychomantic-3
    - chat-speech-verb-Psychomantic-4
  obfuscation:
    !type:ReplacementObfuscation
    replacement:
    - "*incomprehensible*" # Never actually used
