This repository has been archived by the owner on Sep 14, 2024. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 1
[Port] Language #8
Draft
PuroSlavKing
wants to merge
11
commits into
master
Choose a base branch
from
Language
base: master
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Draft
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Resolves Simple-Station/Einstein-Engines#37 This PR adds languages. Every entity who can speak now speaks a specific language (or Universal, for entities that are not supposed to speak, which is understood by everyone). Other entities who do not understand this language will see gibberish (it's possible to learn how certain induvidual words are spelled. But the spelling changes between rounds). This means that certain creatures, like xenos, cats, vulps, can communicate within their species in their own languages. Similarly, it means that xenos, cats and other things cannot understand GalacticCommon speakers without a translator or cognization. An entity may be able to speak multiple languages, or understand a language but be unable to speak it. Thi PR was orignally made for Frontier but is now being ported and will be maintain here. Orignal PR: new-frontiers-14/frontier-station-14#671 This PR was made orignally by Mnemotechnician and FoxxoTrystan. --- - [x] Language System. (Check Frontier PR for all the compleated todo list) - [x] Port PR from Frontier. - [x] QOL Changes. - [x] Missing Default Languages. (Missing default langauges for some roundstart species) - [x] Animals Languages. --- <details><summary><h1>Media</h1></summary> <p> ![image](https://github.com/Simple-Station/Einstein-Engines/assets/45297731/fc43efd9-612e-4a6d-8ed6-90a26d315c6f) ![image](https://github.com/Simple-Station/Einstein-Engines/assets/45297731/b86616a3-d5fb-408d-865e-90d09096b6d7) ![image](https://github.com/Simple-Station/Einstein-Engines/assets/45297731/ab1e8581-522d-4e7e-95e8-f62575bc5039) </p> </details> --- :cl: FoxxoTrystan / Mnemotechnician - add: All species can now bring their own cultures and languages --------- Signed-off-by: Mnemotechnican <[email protected]> Signed-off-by: FoxxoTrystan <[email protected]> Co-authored-by: fox <[email protected]> Co-authored-by: Mnemotechnican <[email protected]> Co-authored-by: Pspritechologist <[email protected]> Co-authored-by: Lincoln McQueen <[email protected]> Co-authored-by: Arkyfloof <[email protected]> Co-authored-by: reese1243 <[email protected]> Co-authored-by: VMSolidus <[email protected]> Co-authored-by: Eagle-0 <[email protected]> Co-authored-by: BlitzDev <[email protected]> Co-authored-by: Arkyfloof <[email protected]> Co-authored-by: Danger Revolution! <[email protected]> Co-authored-by: DEATHB4DEFEAT <[email protected]>
The language PR was merged early and OH GOD I ALREADY REGRET IT This PR is intended to provide the missing refactors and address the issues that were missed due to the early merge. --- - [X] Introduced a polymorphic obfuscation property to the LanguagePrototype - now it supports more than just 2 hardcoded methods, and each method can be configured per-language. Currently there are 3 obfuscation methods: replacement (same as replacement accent), obuscation by syllables and obfuscation by phrases. - [X] Refactored the existing obfuscation methods to not be a big hardcoded mess. - [X] Updated the existing languages accordingly: animalistic languages are now less of an unreadable mess and include less syllables. Certain languages like binary and snake seriously benefit from that. - [X] Refactored the existing commands in response to the never-addressed review (it got lost among hundreds of others) - [X] Refactored the commands to be more user-friendly (you can now use the number of the language in saylang and languageselect which can allow using keybinds to switch between languages) - [X] Moved a lot of obfuscation-related stuff from server to shared. The actual obfuscation process, however, is still done on the server. That may or may not be subject to change, too. - [X] Refactored the entire process of resolution of entities' languages. Instead of raising an event every time it's required to learn what languages an entity knows, the lists of ALL languages available to the entity (including via translators) is stored in LanguageSpeakerComponent and only updated when necessary (e.g. when a translator gets toggled). The list of languages the entity knows on its own is now stored in LanguageKnowledgeComponent. - [X] Made handheld translators automatically change your current language when activated. - [X] Rewrote the translator implanter system, now using the real implants and implanters - [ ] Rebalance science stuff (translators are incredibly expensive for what they're worth) - [ ] Uhhh stuff --- <details><summary><h1>Media</h1></summary> <p> N/A for now </p> </details> --- :cl: - tweak: Translator implants are now proper implants that can be removed. - tweak: Animalistic languages should now look less messy. - fix: Hopefully fixed language menu desync and other issues. --------- Signed-off-by: Mnemotechnican <[email protected]>
<!-- This is a semi-strict format, you can add/remove sections as needed but the order/format should be kept the same Remove these comments before submitting --> <!-- Explain this PR in as much detail as applicable Some example prompts to consider: How might this affect the game? The codebase? What might be some alternatives to this? How/Who does this benefit/hurt [the game/codebase]? --> Require #459 Add 3 optional settings for LanguagePrototypes to play with richtext tags to they could be reconized as Makings color - Set a specefic color to the text. fontId - Set a font to the text by using the Id. fontSize - Set the size of the text All 3 are optional if not set message will be handeled like normal. This should be mostly used to know what language your currently speaking and assist with markings. Take note those changes happent only in the TextBox chat, bubblechat is left unchanged. --- <!-- A list of everything you have to do before this PR is "complete" You probably won't have to complete everything before merging but it's good to leave future references --> - [x] Add Markings - [x] Add Fonts --- <!-- This is default collapsed, readers click to expand it and see all your media The PR media section can get very large at times, so this is a good way to keep it clean The title is written using HTML tags The title must be within the <summary> tags or you won't see it --> <details><summary><h1>Media</h1></summary> <p> ![image](https://github.com/Simple-Station/Einstein-Engines/assets/45297731/10c3956b-c964-41af-ba0e-37ad1be8119e) ![image](https://github.com/Simple-Station/Einstein-Engines/assets/45297731/4377bdd8-a52e-4b62-bd70-fa9ba36c8d8b) </p> </details> --- <!-- You can add an author after the `:cl:` to change the name that appears in the changelog (ex: `:cl: Death`) Leaving it blank will default to your GitHub display name This includes all available types for the changelog --> :cl: FoxxoTrystan - add: Languages are now marked in the chat! --------- Signed-off-by: Mnemotechnican <[email protected]> Signed-off-by: FoxxoTrystan <[email protected]> Co-authored-by: fox <[email protected]> Co-authored-by: Mnemotechnican <[email protected]>
Adds two negative traits, foreigner and its light version. Both of them make you unable to speak galactic common and give you a translator that lets you speak/understand GC, and also requires you to know one of the non-GC languages your entity normally speaks in order to work. The translator starts with a high-capacity power cell to compensate for the usual scarcity of publicly accessible chargers on most stations. The light version of the trait only makes you unable to speak GC. The heavy version also makes you unable to understand others when they speak it. This PR also makes you able to wear translator in the neck slot for convenience and transparency, and rewamps the examination menu of translators to provide more useful info. One little known issue (as seen in the screenshots below) is that, since the system chooses the first language in the list of languages your entity can speak, it can sometimes pick wrong if your species speaks more than two language, but it won't prevent you from using the translator normally. Also, the name of the light version of the trait is subject to change. I just couldn't think of anything more creative for it. Although supposedly trystan or others have a language menu in mind, it's still not even being worked on yet. At the same time, I've already seen some people roleplay as though their characters do not speak galactic common. <details><summary><h1>Media</h1></summary> <p> ![image](https://github.com/Simple-Station/Einstein-Engines/assets/69920617/42984284-3a70-40bb-ad48-b11218cd5c5b) ![image](https://github.com/Simple-Station/Einstein-Engines/assets/69920617/f3d26cef-a908-49e7-84e0-cb50d5d98c0d) ![image](https://github.com/Simple-Station/Einstein-Engines/assets/69920617/6f44b3cc-5906-402b-ae5c-a3f0ad743bc6) ![image](https://github.com/Simple-Station/Einstein-Engines/assets/69920617/4edfe7ce-1633-4e6a-94ca-5db0dff88eb0) ![image](https://github.com/Simple-Station/Einstein-Engines/assets/69920617/ec5b3da0-b400-41f3-90c1-e5dc6b5af7c5) </p> </details> --- :cl: - add: Added two new foreigner traits that make your character unable to speak Galactic Common and give you a translator instead. - tweak: Translators can now be equipped in the neck slot and display useful info when examined.
# Description #525 Added foreigner traits, now during testing I revealed a few bugs. This PR fixes them: - The light version now correctly allows you to understand common (it would not because I forgot to add [DataField]) - The translator now correctly starts with a high-capacity power cell - Equipping the translator in a pocket slot no longer takes time <details><summary><h1>Media</h1></summary><p> ![image](https://github.com/user-attachments/assets/4d2cabc7-2ce2-498b-822b-8ff9b82eea7d) </p></details> # Changelog :cl: - fix: Foreigner traits now work correctly.
<!-- This is a semi-strict format, you can add/remove sections as needed but the order/format should be kept the same Remove these comments before submitting --> # Description <!-- Explain this PR in as much detail as applicable Some example prompts to consider: How might this affect the game? The codebase? What might be some alternatives to this? How/Who does this benefit/hurt [the game/codebase]? --> Gives a new way to speak, Sign Languages using the Language system by only adding a nullable variable. Sign Language uses the default Emote system, meaning its will not get picked up by Radio or others devices or get blocked by accents. When a Sign Language is on, "Say/Whisper" will talk in Sign Language, Emote will still act like normal emotes. The Glorious Sign Language has arrived... and there can be more then one! --- <!-- This is default collapsed, readers click to expand it and see all your media The PR media section can get very large at times, so this is a good way to keep it clean The title is written using HTML tags The title must be within the <summary> tags or you won't see it --> <details><summary><h1>Media</h1></summary> <p> ![image](https://github.com/user-attachments/assets/ac0c1a57-da49-4419-bb75-da0a308eee7d) ![image](https://github.com/user-attachments/assets/0739a740-4adf-4ba1-a852-0a382a534d8d) </p> </details> --- # Changelog <!-- You can add an author after the `:cl:` to change the name that appears in the changelog (ex: `:cl: Death`) Leaving it blank will default to your GitHub display name This includes all available types for the changelog --> :cl: FoxxoTrystan - add: Added the ability to speak with Sign Language.
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 - [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> ![image](https://github.com/user-attachments/assets/845ec5d3-20aa-4786-bdc8-c39c80e0a4a3) See below </p></details> No cl no fun --------- Signed-off-by: Mnemotechnican <[email protected]> Co-authored-by: Danger Revolution! <[email protected]>
Fixes: - Whisper not undergoing readability obfuscation when out of range - Handheld translators ignoring language knowledge requirements - Several animals not having defined languages - Computers not having languages (this primarily affects the RnD console and in the future the cargo request console which send radio messages) - Some languages lacking brightness and thus being hard to read Also makes language colors from language markers use alpha blending instead of overriding the original color. The change is subtle, kinda hard to make it noticable without defeating the original purpose... <details><summary><h1>Media</h1></summary><p> Example of the new colors ![image](https://github.com/user-attachments/assets/291c1a6d-829b-43ec-afb7-5c902a1e4aff) </p></details> --- :cl: - fix: Whisper can no longer be heard clearly outside the intended range. - fix: Translators can no longer be used without knowing the languages they require. - fix: Computers (primarily RnD console) now speak GC by default instead of Universal. - tweak: Readjusted colors of all languages to make them easier to read.
**Sign Language** is a 1-point Visual trait that allows you to use Galactic Sign Language. ![image](https://github.com/user-attachments/assets/ef9a3ed0-6157-4604-9db4-d7114595195b) ![image](https://github.com/user-attachments/assets/805b4a8f-a2d3-469c-b4ab-e46c787a55b6) :cl: Skubman - add: Add a new 1-point trait called Sign Language, a trait that allows you to communicate in Galactic Sign Language. --------- Signed-off-by: Angelo Fallaria <[email protected]>
PuroSlavKing
added
Feature
Я хочу добавить что-то новое.
Port
Я портирую эти коммиты.
labels
Aug 31, 2024
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Labels
Changes: Sprites
Changes: UI
Feature
Я хочу добавить что-то новое.
HELP WANTED
Мне нужна помощь!
Port
Я портирую эти коммиты.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Описание PR
Медиа
Тип PR
Изменения