Files
Bubberstation/code/__DEFINES/language.dm
SkyratBot 6545ec0661 [MIRROR] Sapient bots can play voice lines [MDB IGNORE] (#22768)
* Sapient bots can play voice lines (#76920)

## About The Pull Request

Part of the "throwing stuff at the wall and seeing what happens" series
of changes.
We were discussing player bots and there was some small support for
"what if bots couldn't talk except to other bots and primarily
communicated via emoting and playing their prerecorded lines".
I coded this but I'll be honest, my heart wasn't in it, especially
because we have _already_ released sapient bots who can talk so I'd have
to justify taking it away in a better way than "I want to see what would
happen", so I'm not doing that (feel free to revert the last commit in
this PR if you want to carry that cross yourself).

But I'm keeping the button that plays the prerecorded voice messages.
No these lists _aren't_ alphabetised, that's because I wanted to vaguely
order them in order of "this is something the bot regularly says" to
"this is something the bot rarely says (because it is rude or mean)".
This priority is possibly the inverse of how players will want to use
the button, but perhaps they should try being politer.

Additionally this PR ensures that if you put a pAI in a bot then it will
be able to speak any languages the pAI could.

## Why It's Good For The Game

Saying "I should have been a plastic surgeon" is iconic medbot behaviour
and players should be able to do it.
We don't currently have bot TTS voices which directly sound like the
bots themselves to apply, and it might be mildly concerning if we did
because I believe at least one of the voices is the IRL voice of a
community member with some filters added?

## Changelog

🆑
add: Player-controlled bots can now play the prerecorded lines
associated with that bot.
add: Placing a pAI into a bot temporarily teaches that bot all the
langauges the pAI could speak.
/🆑

* Sapient bots can play voice lines

---------

Co-authored-by: Jacquerel <hnevard@gmail.com>
2023-07-29 16:00:57 -04:00

47 lines
1.5 KiB
Plaintext

#define NO_STUTTER 1
#define TONGUELESS_SPEECH 2
#define LANGUAGE_HIDE_ICON_IF_UNDERSTOOD 4
#define LANGUAGE_HIDE_ICON_IF_NOT_UNDERSTOOD 8
// LANGUAGE SOURCE DEFINES
/// For use in full removal only.
#define LANGUAGE_ALL "all"
// Generic language sources.
/// Language is linked to the movable directly.
#define LANGUAGE_ATOM "atom"
/// Language is linked to the mob's mind.
/// If a mind transfer happens, language follows.
#define LANGUAGE_MIND "mind"
/// Language is linked to the mob's species.
/// If a species change happens, language goes away.
/// If applied to a non-human (no species) atom, this is effectively the same as [LANGUAGE_ATOM].
#define LANGUAGE_SPECIES "species"
// More specific language sources.
// Only ever goes away when dismissed directly.
#define LANGUAGE_ABSORB "absorb"
#define LANGUAGE_APHASIA "aphasia"
#define LANGUAGE_CTF "ctf"
#define LANGUAGE_CULTIST "cultist"
#define LANGUAGE_CURATOR "curator"
#define LANGUAGE_GLAND "gland"
#define LANGUAGE_HAT "hat"
#define LANGUAGE_QUIRK "quirk"
#define LANGUAGE_MALF "malf"
#define LANGUAGE_PIRATE "pirate"
#define LANGUAGE_MASTER "master"
#define LANGUAGE_PAI "pai"
#define LANGUAGE_SOFTWARE "software"
#define LANGUAGE_STONER "stoner"
#define LANGUAGE_VOICECHANGE "voicechange"
#define LANGUAGE_RADIOKEY "radiokey"
#define LANGUAGE_BABEL "babel"
#define LANGUAGE_EMP "emp"
// Language flags. Used in granting and removing languages.
/// This language can be spoken.
#define SPOKEN_LANGUAGE (1<<0)
/// This language can be understood.
#define UNDERSTOOD_LANGUAGE (1<<1)