# Description
This refactors #510 and #553. #553 specifically was reverted and
re-implemented from scratch. As a consequence to all of this, the chat
system was refactored a bit too, hopefully for the best.
Changes:
- InGameICChatType, InGameOOCChatType, ChatTransmitRange were all moved
to shared and made serializable
- Added a method to wrap whisper messages to reduce code duplication in
chat system
- Both WrapPublicMethod and WrapWhisperMessage call the same generic
WrapMessage method, which allows to add speech verbs to whispers and
more. That method is also fully responsible for adding language markers
and deducing speech verbs now.
- Everything related to speech was moved out of LanguagePrototype and
into SpeechOverrideInfo. LanguagePrototype now holds an instance of
that.
- Added AllowRadio, RequireSpeech, ChatTypeOverride,
SpeechVerbOverrides, MessageWrapOverrides to SpeechOverrideInfo, all of
which are used in implementing the sign language.
- Suffered a lot
# TODO
- [X] Cry
- [X] Fix the sign language not displaying properly over the character.
- [X] Find a way to circumvent being unable to speak??
<details><summary><h1>Media</h1></summary><p>

See below
</p></details>
# Changelog
No cl no fun
---------
Signed-off-by: Mnemotechnican <69920617+Mnemotechnician@users.noreply.github.com>
Co-authored-by: Danger Revolution! <142105406+DangerRevolution@users.noreply.github.com>
* Butlertron, the Roboisseur (#193)
* Butlertron, the Robossieur
"Greetings meatbags!
This is Butlertron_Durandal, the latest in entrepreneurship technology! I have heard word that you all staff an exorbiant number of fleshlings to prepare food and drink aboard your stations. With my latest contract with your station owners, I am prepared and willing to deploy terminals to every station in the cosmos! I hope you all are ready, because there is a great deal of money to be made if you can source the dishes my discerning clientele desire."
Implements the new entity type 'Mr. Butlertron'. Mr. Butlertron requests specific foods from players, using the list of recipes available to the game. He has a blacklist of items he will not request, which fundamentally make up three categories: Simple, Disgusting, and Cannibalistic. He also has 3 tiers of foods he can request, and could be iterated upon in the future to add more tiers. Each tier increases the amount of zorkmids he will give in payment, and from the 2nd tier of food onward, he will dispense ice cream along with his dough. Take too long, however, and this affable automaton will begin to become upset, and may even lose his temper entirely, changing his request to something new. This change occurs after 10 minutes, and he begins getting impatient after 8 minutes have passed. I reused several of the scripts used by the Oracle to create Mr. Butlertron, and am hoping in the future to make him a roaming NPC, perhaps by splitting up his responsibilities into different chunks and having different 'styles' of Mr. Butlertron being able to spawn on different stations. Given that Delta-V does not have a significant amount of its own unique content and folders to support that unique content, I placed most of his files within Nyano's files.
Maybe this is not how it should be structure, and I open to suggestions.
* Changed a folder name.
I spelled my funny made up french word wrong on one folder name. Shouldn't affect anything anywhere, since .ftl folders aren't used anywhere either way.
* Update Content.Server/Nyanotrasen/Roboisseur/RoboisseurComponent.cs
Co-authored-by: DEATHB4DEFEAT <77995199+DEATHB4DEFEAT@users.noreply.github.com>
* Update Content.Server/Nyanotrasen/Roboisseur/RoboisseurComponent.cs
Co-authored-by: DEATHB4DEFEAT <77995199+DEATHB4DEFEAT@users.noreply.github.com>
* Apply line breaks and code from Death's code review
Co-authored-by: DEATHB4DEFEAT <77995199+DEATHB4DEFEAT@users.noreply.github.com>
* Code review comment addressing.
All code review comments addressed.
* Apply suggestions from code review relating to spacing, again, and indefinite tagging. Very cool.
Co-authored-by: DEATHB4DEFEAT <77995199+DEATHB4DEFEAT@users.noreply.github.com>
* Butlertron Testing and Data Field Addition
Done.
---------
Co-authored-by: DEATHB4DEFEAT <77995199+DEATHB4DEFEAT@users.noreply.github.com>
* Make RoboisseurComponent partial
---------
Co-authored-by: PHCodes <47927305+PHCodes@users.noreply.github.com>
Co-authored-by: DEATHB4DEFEAT <77995199+DEATHB4DEFEAT@users.noreply.github.com>