Commit Graph

65 Commits

Author SHA1 Message Date
FoxxoTrystan
849b33047c Languages Markers (#510)
<!--
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]?
-->

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.

---

# TODO

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

---

# Changelog

<!--
You can add an author after the `🆑` to change the name that appears
in the changelog (ex: `🆑 Death`)
Leaving it blank will default to your GitHub display name
This includes all available types for the changelog
-->

🆑 FoxxoTrystan
- add: Languages are now marked in the chat!

---------

Signed-off-by: Mnemotechnican <69920617+Mnemotechnician@users.noreply.github.com>
Signed-off-by: FoxxoTrystan <45297731+FoxxoTrystan@users.noreply.github.com>
Co-authored-by: fox <daytimer253@gmail.com>
Co-authored-by: Mnemotechnican <69920617+Mnemotechnician@users.noreply.github.com>
2024-07-09 20:01:38 +01:00
Mnemotechnican
9d5f3b65df Refactor the Language System (#459)
# Description
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.

---

# TODO
- [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>

---

# Changelog

🆑
- 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 <69920617+Mnemotechnician@users.noreply.github.com>
2024-07-05 19:49:47 -04:00
FoxxoTrystan
82edb60ac6 Languages (#43)
Resolves https://github.com/Simple-Station/Einstein-Engines/issues/37

# Description

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:
https://github.com/new-frontiers-14/frontier-station-14/pull/671

This PR was made orignally by Mnemotechnician and FoxxoTrystan.

---

# TODO

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

---

# Changelog

🆑 FoxxoTrystan / Mnemotechnician
- add: All species can now bring their own cultures and languages

---------

Signed-off-by: Mnemotechnican <69920617+Mnemotechnician@users.noreply.github.com>
Signed-off-by: FoxxoTrystan <45297731+FoxxoTrystan@users.noreply.github.com>
Co-authored-by: fox <daytimer253@gmail.com>
Co-authored-by: Mnemotechnican <69920617+Mnemotechnician@users.noreply.github.com>
Co-authored-by: Pspritechologist <81725545+Pspritechologist@users.noreply.github.com>
Co-authored-by: Lincoln McQueen <lincoln.mcqueen@gmail.com>
Co-authored-by: Arkyfloof <Marvinlinke08@gmail.com>
Co-authored-by: reese1243 <ber23027@byui.edu>
Co-authored-by: VMSolidus <evilexecutive@gmail.com>
Co-authored-by: Eagle-0 <114363363+Eagle-0@users.noreply.github.com>
Co-authored-by: BlitzDev <145472107+Reese1243@users.noreply.github.com>
Co-authored-by: Arkyfloof <161242062+Arkyfloof@users.noreply.github.com>
Co-authored-by: Danger Revolution! <142105406+DangerRevolution@users.noreply.github.com>
Co-authored-by: DEATHB4DEFEAT <77995199+DEATHB4DEFEAT@users.noreply.github.com>
2024-06-10 16:48:48 -04:00
Pieter-Jan Briers
ccea85136b Random spontaneous cleanup PR (#25131)
* Use new Subs.CVar helper

Removes manual config OnValueChanged calls, removes need to remember to manually unsubscribe.

This both reduces boilerplate and fixes many issues where subscriptions weren't removed on entity system shutdown.

* Fix a bunch of warnings

* More warning fixes

* Use new DateTime serializer to get rid of ISerializationHooks in changelog code.

* Get rid of some more ISerializationHooks for enums

* And a little more

* Apply suggestions from code review

Co-authored-by: 0x6273 <0x40@keemail.me>

---------

Co-authored-by: 0x6273 <0x40@keemail.me>
(cherry picked from commit 68ce53ae17985876d6d112b764b2144964a9f42e)
2024-02-18 23:02:29 +01:00
SlamBamActionman
6991618a45 Add option for character name colors in chat & move coloration to clientside (#24625)
* Adds option to disable character names in chat/speechbubbles

* Moved the coloring of names to clientside

* Move string functions to SharedChatSystem to avoid duplicate code in SpeechBubble.cs

* Changed to be put under Accessibility section

* Cache CVar

(cherry picked from commit 247be5b5c770261544f4e468ea09422efb0f7028)
2024-02-18 22:52:19 +01:00
Nemanja
3c4421c107 chat color change (#24922)
(cherry picked from commit 2d48ec52abf6fe18f885d98ace617301e5020f89)
2024-02-08 12:32:27 +01:00
Tayrtahn
af42b9ac58 Fix color tags in admin logs (#24606)
(cherry picked from commit 149654be88b9e9b988027a8e6ff6f691ba1cfea4)
2024-01-28 00:32:16 +01:00
ike709
ee895733ab Ports colored chat names (#24478)
* Ports colored chat names

* Update name color on every message

---------

Co-authored-by: ike709 <ike709@github.com>
(cherry picked from commit 6cbe4a8fb6d39745141e71233d386206c36a1e19)
2024-01-28 00:27:13 +01:00
Tayrtahn
7141b1ff32 Fix sloshing electricity & enable SpeechVerb masking (#24238)
* Implemented electricity speech verb masking

* Handle speech verb override elsewhere in the system, even though we're not using it

* Fix that protoId business

* No nullable component fields

* Use ProtoId, and try going back to a nullable.
Specifiy DataFields on VoiceMaskComponent.

(cherry picked from commit b4046bc2bb498bd525b8a40c7839a543c92ca18c)
2024-01-27 23:51:27 +01:00
LordCarve
ad35a2fda3 Obsolete refactor - ConnectedClient to Channel (#24409)
(cherry picked from commit 05a2e6b3a21e5fb3198432d885bbe28506d85b9c)
2024-01-27 23:44:02 +01:00
Tayrtahn
87d60504e3 Hackable intercoms (#23984)
* Enable wire interface for intercom

* Implement BlockListening component and system

* Implement ListenWireAction

* Added cooldown/overload to mic wire pulse

* Properly persist voicemask settings when user already has one.

* Addressed requested changes

* Added wire panel open/closed visuals

(cherry picked from commit 2d6d2aba0b1b2b41bbcafb9f60ead926e6b67d16)
2024-01-26 22:37:41 +01:00
Hannah Giovanna Dawson
4a701640b4 Clean out tags when attempting to speak/whisper/emote (#23055)
A few bugs have popped up where (legal) string formatting tags
have been duplicated out into whisper and local.

Using the RemoveMarkup static we can sanitize attempted
speech to remove markup.

(cherry picked from commit 84f544ff103d038c33309494c4bbc4cd9698839a)
2024-01-22 20:59:56 +01:00
Debug
18f0af1f68 Implement gridinv, proper (#703)
* Implement gridinv, 1500 squashed commits :elp:

* Me when

* Linter errors

* Fix katana belts
2024-01-21 19:58:28 +01:00
Leon Friedrich
8494bd0885 Use ECS prototype-reload events (#22613)
* Use ECS prototype-reload events

* better constructors

* Maybe this fixes tests?
2023-12-22 23:25:35 +01:00
Skye
dc4ec07ac1 Borgs can now speak while in Crit (#21802)
* Borgs can speak while crit, also radio bug fix

* Revert "Borgs can speak while crit, also radio bug fix"

This reverts commit e1136ad781229cf5fc3cadcf70742168fc73d961.

* Borgs can speak in crit + radio bug fix

* Tied to a new generic component on SpeechComponent

* Ignoring Speech Block via Component uses an event!

* Remove debug logs and bypass if already true
2023-12-02 20:35:38 +01:00
metalgearsloth
b1ee2d48ff Unrevert audio (#21330)
Co-authored-by: Pieter-Jan Briers <pieterjan.briers@gmail.com>
2023-12-02 20:16:36 +01:00
Pieter-Jan Briers
72d87072df Basic rate limiting for chat messages (#21907) 2023-12-02 19:06:09 +01:00
DrSmugleaf
7e4edd34ed Fix erase verb not removing chat messages in some cases (#21355)
* Fix erase verb not removing chat messages in some cases

* Admin changelog

* Fix deleting messages with entity id 0
2023-11-12 20:41:33 +01:00
Leon Friedrich
e66c0b5035 Un-revert IPlayerManager refactor (#21244) 2023-10-31 19:00:44 +01:00
Mr. 27
222584e5f9 Make common netspeak get replaced in the chat (#20180)
* added more slang to the sanitization manager

* idk why this file is here

* Added new sanitization accent

* No longer is an acccent, instead is a dictionary

* Reverted back to a system similar to before, added the new netspeak from the dictionary

* Added some new words to the chat san

* Added (wdym --> what do you mean) to the chatsan

* merge conflict

* removed boolvalue

* remove space

* Upcoming

* Added MF and ETC to chatsan :))

* upcoming

* added FYI and WYD to speech-chatsan.ftl

* Made the chatsan accent string a const string with [ValidatePrototypeId<AccentPrototype>]

* forgot the ';' :(((

* fixed error throw [AccentPrototype] --> [ReplacementAccentPrototype]
2023-10-23 23:51:49 +02:00
DrSmugleaf
253e012462 Add admin Erase verb, add checkbox to erase from the ban panel (#20985) 2023-10-14 22:19:04 +02:00
PHCodes
93c3b03b11 Psionics (#44)
* Psionics

It's a ton of stuff relating to the basic Psionics system and all the powers.

I'm saving this as a bit of a sanity check before moving forward.

Left to do:
1. Implementing the Psionic faction so that the chat works as intended.
2. Adding the start-state cooldown timers to the actions.

* Cleaned up everything with the word 'Psionic' on it.

Got the psionic chat working. Got some other stuff working

* Some final psionic cleanup.

The last batch of content.

* Update RobustToolbox

* rebased

* Revert "Update RobustToolbox"

This reverts commit c0cf35d03f828f6ccfeb05fcffd91cf074818fc9.

* Update RobustToolbox

* Revert "Update RobustToolbox"

This reverts commit c4dc828df7912e063ea856b2a83a790bc88d1e09.

* Update RobustToolbox

* Psionics

It's a ton of stuff relating to the basic Psionics system and all the powers.

I'm saving this as a bit of a sanity check before moving forward.

Left to do:
1. Implementing the Psionic faction so that the chat works as intended.
2. Adding the start-state cooldown timers to the actions.

* Cleaned up everything with the word 'Psionic' on it.

Got the psionic chat working. Got some other stuff working

* Some final psionic cleanup.

The last batch of content.

* rebased

* Cleaned up everything with the word 'Psionic' on it.

Got the psionic chat working. Got some other stuff working

* Broken Commit

With these changes in place, the unit does not work. Recording them so i don't lose my work.

* Brings it All Together.

Dawn of the final Commit. Rebase completed.

* Update RobustToolbox

* Changed 'Station Events' to 'StationEvents' and cleaned up the Delta-V Events.yml file of duplicate events.

* Delete ghost_roles.yml

Duplicate.

* Update familiars.yml

* Update familiars.yml

* Update GlimmerReactiveSystem.cs

* Makes tinfoil hats craftable.

* Decided I'm not dealing with adding fugitives or Glimmer Wisps right now.

* Psionic invisibility won't work now that Eye component exists. Or at least, the integrator test won't psas.

* Update special.yml

* Added #nyanotrasen code or //Nyanotrasen code to many, many files.

* Properly fixes comments.

---------

Signed-off-by: Colin-Tel <113523727+Colin-Tel@users.noreply.github.com>
Signed-off-by: PHCodes <47927305+PHCodes@users.noreply.github.com>
Co-authored-by: Debug <sidneymaatman@gmail.com>
Co-authored-by: Colin-Tel <113523727+Colin-Tel@users.noreply.github.com>
2023-10-08 20:07:53 +02:00
Kara
a656b8f9df Ghost hearing action (#19722) 2023-09-27 21:59:12 +02:00
metalgearsloth
c9648da984 Content update for NetEntities (#18935) 2023-09-27 21:59:12 +02:00
Leon Friedrich
a08c381018 Make replays record ghost chat (#19957) 2023-09-10 21:49:45 +10:00
metalgearsloth
0b542098db Remove ghost compref (#19478) 2023-08-25 18:50:46 +10:00
Interrobang01
93f85751f7 Autocapitalize the word I in IC chat (#18633) 2023-08-21 21:43:37 -07:00
metalgearsloth
0a945a6803 Merge pull request #19254
* Fix emote chirps

* named args time
2023-08-17 13:40:10 -07:00
Kara
7db8c781e7 Speech verbs & conditional markup modification (#18980) 2023-08-15 13:03:05 -07:00
Kara
7b51cebfea Deathgasp + last words / succumbing / fake deathgasp as crit actions (#18993) 2023-08-11 22:56:34 -07:00
Errant
9b10f7f557 Stealthier whispers (#17898)
* Stealth whisper take 2

* weh

* fix whisper maxrange

* make variables more distinct
2023-08-01 17:43:02 +03:00
Nemanja
8b0d6a4d45 Prevent using LOOC in crit (#18297)
* Prevent crit players from using LOOC

* fix comment
2023-07-26 00:02:48 -06:00
ShadowCommander
dd7032a860 Mind ECS (#16826) 2023-06-19 04:33:19 +10:00
Leon Friedrich
b03d9a90ab Add support for client-side replays (#17168) 2023-06-19 03:23:31 +10:00
HerCoyote23
e45dd96af9 Northstar Gloves (#16021)
* Added Gloves of North Star, no sprite or talking yet...

* Added sprites for the gloves of the north star...

* Replaced more placeholder sprites for northstar gloves...

* Added gloves of the north star to uplink...

* Added speech on hit, not yet configureable

* Not functional yet, but a step in the right direction I hope...

* IT WORKS!!

* Licensing and cleanup

* Reduced attack speed, changed from chat to popup, added some admin logging. It was causing too much adminlog spam otherwise

* Reorganized some files, final build??

* Changed the adminlog type from Verb to new type ItemConfigure

* More cleanup, fix sprite reference maybe

* Keronshb's suggestions, fixed some stuff, made hit sound use the meaty punch sfx

* Adds support for hiding speak/whisper/emote from adminlogs, makes northstar speak again!

* Some file shuffling, some of Keronshb's requests. Might appear a bit funky in github because vscode kept duplicating files for some reason and I had to delete them

* Made it work with the latest changes on Master

* Final? cleanup, upped dmg to 8, made ui not activate on activateinhand, instead you need to right click

* Set value to 0 credits, that's all

* Well that was much easier than I made it out to be. Now you can only activate the gloves with right click, no more mispredicts.

* Update MeleeWeaponSystem.cs

Iunno why this got changed in the first place, but I'm changin it back

* emptycommit

* emptycommit

* The tiny fixening
2023-05-23 14:12:30 -04:00
20kdc
ad76739cc3 Refactor: Chat transmission ranges (+ a little preparation for downstream fork functionality) (#16026) 2023-05-04 12:08:08 -07:00
Leon Friedrich
4d71b1b81e Revert "Mind ecs" (#14881) 2023-03-27 08:24:00 +11:00
ShadowCommander
bfc4da9377 Mind ecs (#14412) 2023-03-26 14:31:13 -04:00
TemporalOroboros
93ec824d57 MotD (#13655)
* MOTD

* Message of the Day

* Pretty sure the tests aren't me. Let's check.

* Update Content.Shared/CCVar/CCVars.cs

Co-authored-by: AJCM-git <60196617+AJCM-git@users.noreply.github.com>

* command dependencies and moving MOTD to its own system

* Some doc comments

* Let's try those tests again

* More doc comments, most of the github reviews, and aliases for get-motd and set-motd

* Clear test MOTD

* Localized motd commands and completion hints

* Makes set-motd only show up in the alias command if the player has access to it.

---------

Co-authored-by: AJCM-git <60196617+AJCM-git@users.noreply.github.com>
2023-02-28 08:15:48 -08:00
Leon Friedrich
75a559fa55 Update radio prefix parsing (#13777) 2023-02-19 04:27:56 +11:00
Chief-Engineer
5c06c4c3ef Add voice changer logs (#14040)
* add set voice log

* add used identity to chat message logs

* please tell me there's a better way
2023-02-11 19:26:44 +00:00
Alex Evgrashin
ef452b38a9 Audible emotes (#12708)
Co-authored-by: Visne <39844191+Visne@users.noreply.github.com>
2023-01-25 08:29:41 -08:00
Visne
c6d3e4f3bd Fix warnings and code cleanup/fixes (#13570) 2023-01-19 13:56:45 +11:00
Jezithyr
eeb5b17b34 Mobstate Refactor (#13389)
Refactors mobstate and moves mob health thresholds to their own component

Co-authored-by: DrSmugleaf <drsmugleaf@gmail.com>
2023-01-13 16:57:10 -08:00
Tom Richardson
49183abef2 Make department radio messages work in default radio (#12834) 2022-12-14 12:24:49 +11:00
Leon Friedrich
6af331c9ff Remove StoredChatMessage (#12623) 2022-11-22 22:52:19 +11:00
Leon Friedrich
0b5a58001c IListener and IRadio purge (#11980) 2022-11-15 15:09:27 +11:00
Taran
e59bf8acd9 Increases VoiceRange To 10 From 7 (#12254) 2022-10-28 14:25:47 +11:00
Leon Friedrich
3aeba9a63e Fix chat sanitization and entity name escaping (#12015) 2022-10-17 23:59:09 -07:00
Flipp Syder
0385f1387c Voice mask (#10458) 2022-09-29 12:22:27 +10:00