Commit Graph

16 Commits

Author SHA1 Message Date
RedFoxIV
0536fc8645 Fuselage rust stage 2 (#629)
* the definition of insanity

* the definition of insanity

* the definition of insanity

* we have hullrot at home

* maybe the real hullrot was the friends we made along the way

* john hullrot

* i am going to hullroooooot

* it's hullrotver

* we're so hullback

* we're rotting the hull with this one

* hullmerge

* the hullrot is leaking

* never gonna rot you up

* hullfresh

* john starsector

* god i wish we had grid collision damage

* you can tell I am very tired because I stopped forcing a hullrot joke into every commit message

* hr

* this is a surprise sprite that will help us later

* motherfucker

* i have nothing good to say

* still nothing

* brb

* random letter random letter random letter dash random number random number random number

* ass

* blast

* ffs

* fcuk

* RE: ffs

* RE: RE: ffs

* гнида жестяная

* continue

* i hate tests

* i love tests

* slide to the right

* i hate tests again

* what the fuck

* ты шиз?

* ??

* bbgun
2025-06-28 11:31:07 +03:00
Spatison
54086988e3 Mass clean up (#587)
* mass clean up

(cherry picked from commit 12bb873b02c1ef50e20763542b030452cc0613da)

* Revert "Centrifuge buff (#393)"

This reverts commit 2a59a18230.

(cherry picked from commit 9ee495ab4bb365e1ccd3dc627ecb55114fea6944)

* Shoving merge conflict

* fix rich traitor

* fix test

* yml

* fix test

* fix test

* ohh
2025-06-16 20:35:48 +03:00
RedFoxIV
af21168537 Fuselage rust (#551)
* the definition of insanity

* the definition of insanity

* the definition of insanity

* we have hullrot at home

* maybe the real hullrot was the friends we made along the way

* john hullrot

* i am going to hullroooooot

* it's hullrotver

* we're so hullback

* we're rotting the hull with this one

* hullmerge

* the hullrot is leaking

* never gonna rot you up

* hullfresh

* john starsector

* god i wish we had grid collision damage
2025-06-11 11:04:48 +03:00
Rocket
a7cc8f5e2e Xenoglossy language tweaks
(cherry picked from commit 2ebd2a27f7f61000b38dd81f48ef84087d2f9972)
2025-03-29 16:33:21 +03:00
sleepyyapril
04b14b8118 Fix Toolshed Crash (#1415)
I'm not fully confident in this fix, I can't test it right now.
closes #1409 1409

---------

Co-authored-by: Leon Friedrich <60421075+ElectroJr@users.noreply.github.com>
(cherry picked from commit f026528f6e31b816758e600d66482bf991a0e88d)
2025-01-14 01:44:17 +03:00
sleepyyapril
885ee5a831 Wizmerge for Station AI (#1351)
<!--
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

the adding AI is now up to y'all because i'm not touching loadout code
for name datasets, but it shouldn't be too bad from here

---------

Signed-off-by: sleepyyapril <123355664+sleepyyapril@users.noreply.github.com>
Signed-off-by: SolStar <44028047+ewokswagger@users.noreply.github.com>
Signed-off-by: deltanedas <39013340+deltanedas@users.noreply.github.com>
Co-authored-by: themias <89101928+themias@users.noreply.github.com>
Co-authored-by: Verm <32827189+Vermidia@users.noreply.github.com>
Co-authored-by: DrSmugleaf <10968691+DrSmugleaf@users.noreply.github.com>
Co-authored-by: Sphiral <145869023+SphiraI@users.noreply.github.com>
Co-authored-by: Ed <96445749+TheShuEd@users.noreply.github.com>
Co-authored-by: Mr. 27 <45323883+Dutch-VanDerLinde@users.noreply.github.com>
Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com>
Co-authored-by: Alzore <140123969+Blackern5000@users.noreply.github.com>
Co-authored-by: ravage <142820619+ravage123321@users.noreply.github.com>
Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
Co-authored-by: Intoxicating-Innocence <188202277+Intoxicating-Innocence@users.noreply.github.com>
Co-authored-by: Saphire <lattice@saphi.re>
Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
Co-authored-by: Errant <35878406+Errant-4@users.noreply.github.com>
Co-authored-by: Tayrtahn <tayrtahn@gmail.com>
Co-authored-by: CaasGit <87243814+CaasGit@users.noreply.github.com>
Co-authored-by: BramvanZijp <56019239+BramvanZijp@users.noreply.github.com>
Co-authored-by: Boaz1111 <149967078+Boaz1111@users.noreply.github.com>
Co-authored-by: NakataRin <45946146+NakataRin@users.noreply.github.com>
Co-authored-by: Kara <lunarautomaton6@gmail.com>
Co-authored-by: Plykiya <58439124+Plykiya@users.noreply.github.com>
Co-authored-by: SlamBamActionman <slambamactionman@gmail.com>
Co-authored-by: Doomsdrayk <robotdoughnut@comcast.net>
Co-authored-by: Brandon Hu <103440971+Brandon-Huu@users.noreply.github.com>
Co-authored-by: SlamBamActionman <83650252+SlamBamActionman@users.noreply.github.com>
Co-authored-by: ElectroJr <leonsfriedrich@gmail.com>
Co-authored-by: Pieter-Jan Briers <pieterjan.briers+git@gmail.com>
Co-authored-by: DrSmugleaf <DrSmugleaf@users.noreply.github.com>
Co-authored-by: Julian Giebel <juliangiebel@live.de>
Co-authored-by: nikthechampiongr <32041239+nikthechampiongr@users.noreply.github.com>
Co-authored-by: Repo <47093363+Titian3@users.noreply.github.com>
Co-authored-by: Chief-Engineer <119664036+Chief-Engineer@users.noreply.github.com>
Co-authored-by: icekot8 <93311212+icekot8@users.noreply.github.com>
Co-authored-by: AJCM-git <60196617+AJCM-git@users.noreply.github.com>
Co-authored-by: Leon Friedrich <60421075+ElectroJr@users.noreply.github.com>
Co-authored-by: no <165581243+pissdemon@users.noreply.github.com>
Co-authored-by: Tornado Tech <54727692+Tornado-Technology@users.noreply.github.com>
Co-authored-by: osjarw <62134478+osjarw@users.noreply.github.com>
Co-authored-by: Simon <63975668+Simyon264@users.noreply.github.com>
Co-authored-by: TGRCDev <tgrc@tgrc.dev>
Co-authored-by: Milon <milonpl.git@proton.me>
Co-authored-by: deltanedas <39013340+deltanedas@users.noreply.github.com>
Co-authored-by: ShadowCommander <10494922+ShadowCommander@users.noreply.github.com>
Co-authored-by: Fildrance <fildrance@gmail.com>
Co-authored-by: pa.pecherskij <pa.pecherskij@interfax.ru>
Co-authored-by: chavonadelal <156101927+chavonadelal@users.noreply.github.com>
Co-authored-by: SolStar <44028047+ewokswagger@users.noreply.github.com>
Co-authored-by: K-Dynamic <20566341+K-Dynamic@users.noreply.github.com>
Co-authored-by: lzk <124214523+lzk228@users.noreply.github.com>
Co-authored-by: ArchRBX <5040911+ArchRBX@users.noreply.github.com>
Co-authored-by: archrbx <punk.gear5260@fastmail.com>
Co-authored-by: Radezolid <snappednexus@gmail.com>
Co-authored-by: Nemanja <98561806+EmoGarbage404@users.noreply.github.com>
Co-authored-by: EmoGarbage404 <retron404@gmail.com>
Co-authored-by: MilenVolf <63782763+MilenVolf@users.noreply.github.com>
Co-authored-by: Velcroboy <107660393+IamVelcroboy@users.noreply.github.com>
Co-authored-by: Velcroboy <velcroboy333@hotmail.com>
Co-authored-by: neuPanda <chriseparton@gmail.com>
Co-authored-by: neuPanda <spainman0@yahoo.com>
Co-authored-by: Dvir <39403717+dvir001@users.noreply.github.com>
Co-authored-by: Whatstone <whatston3@gmail.com>
Co-authored-by: VideoKompany <135313844+VlaDOS1408@users.noreply.github.com>

(cherry picked from commit 93ed70acfeda357133a701f637d3faeec02749bb)
2025-01-14 00:13:42 +03:00
Mnemotechnican
82cbea2aef Language Refactor 3 (#937)
# Description
This significantly improves the quality of the language system by fixing
the mistakes I've made almost a year ago while developing it.

Mainly, this throws away the old half-broken way of networking in favor
of the component state system provided by RT. Language speaker comp is
now shared with SendOnlyToOwner = true, and its state is handled
manually.

In addition to that, this brings the following changes:
- UniversalLanguageSpeaker and LanguageKnowledge are now server-side
- DetermineLanguagesEvent and LanguagesUpdateEvent are now shared (so
that future systems can be built in shared, if needed)
- Everything now uses the ProtoId<LanguagePrototype> type instead of raw
strings (god, I hated those so much)
- The server-side language system now accepts Entity<T?> arguments
instead of EntityUid + T
- UniversalLanguageSpeaker is now based on DetermineEntityLanguagesEvent
and gets an Enabled field, which allows to turn it off. This may have
some use in the future.
- Some minor cleanup

<!--
TODO MEDIA

<details><summary><h1>Media</h1></summary>
<p>

![Example Media Embed](https://example.com/thisimageisntreal.png)

</p>
</details>

-->

# Changelog
No cl

---------

Co-authored-by: VMSolidus <evilexecutive@gmail.com>
2024-10-19 13:41:35 +07:00
VMSolidus
19ca517509 Non-Destructive Universal Language (#899)
# Description

UniversalLanguageSpeakerComponent has NUMEROUS issues, which previously
were easy to ignore since it was a language only obtainable by Admins.
But now that it's both a Psionic Power(And a trait that adds said
power), the issues with it have been highlighted. Here's just a FEW

1. UniversalLanguageSpeaker overwrites all known languages, preventing
you from speaking anything else
2. It overwrites the ability to use sign language.
3. It also overwrites the Mute trait.

To fix that, I've made it follow *MOSTLY* the logic all the other
languages use, so that it's less of a special snowflake case. Now if you
have access to it, it will appear in your language list alongside other
languages, rather than fully replacing the entire list. That way you can
intentionally choose not to speak in a language understood by all.

Fuck it, I also added the ability for the TraitSystem to just call
LanguageSystem and directly add arbitrarily any desired language, rather
than needing a component to do so.

# Changelog

🆑
- fix: UniversalLanguageSpeaker(And Xenoglossy by extension) will now
appear in your language menu alongside other known languages, rather
than replace all known languages. You can effectively now choose whether
or not to speak it, or to use a normal language.
- add: Traits can now add Languages directly.
- add: Traits can now remove Languages directly.

---------

Signed-off-by: VMSolidus <evilexecutive@gmail.com>
Co-authored-by: Mnemotechnican <69920617+Mnemotechnician@users.noreply.github.com>
Co-authored-by: FoxxoTrystan <45297731+FoxxoTrystan@users.noreply.github.com>
Co-authored-by: DEATHB4DEFEAT <77995199+DEATHB4DEFEAT@users.noreply.github.com>
2024-10-19 13:08:20 +07:00
Mnemotechnican
1571ac99d4 Fix Languages Again (#893)
# Description
4 fixes:
- Fixed translators stopping to provide a language for a fraction of a
tick, causing the provided language to get de-selected when moving a
translator within your inventory (from hands to pocket or otherwise)
- Fixed translators not updating your languages when running out of
power (literally forgot to call UpdateEntityLanguages)
- Fixed language menu breaking after you reconnect to the server (the
issue is tricky, apparently all subscriptions made by ui controllers are
invalidated when the client switches from gameplay state to menu state
(the "you are disconnected" one), but never calls Initialize() for them
again, which means they can never re-create the same subscriptions...
Which explains why the ahelp menu was breaking for me after
reconnecting. All UI controllers that make event subscriptions are
affected by this bug)
- Fixed the language menu button not updating when you close the menu
manually.

# Changelog
🆑
- fix: Fixed a couple issues with the language menu UI and translators.
2024-10-19 12:46:38 +07:00
Remuchi
cebab3b3f6 [Upstream] Upstream. Yappie (#50)
* Fix Prize Balls' Pet Rock (#831)

# Description


This PR fixes an undetected bug in Prize Balls where an error would
occur if a prize ball tried to give out a BasePetRock.

---

No CL No Fun

Signed-off-by: ShatteredSwords <135023515+ShatteredSwords@users.noreply.github.com>
Co-authored-by: DEATHB4DEFEAT <77995199+DEATHB4DEFEAT@users.noreply.github.com>

* More/Better Tips (#844)

# Description

This PR adds several new Tips that are specific to Einstein-Engines. I
also removed some tips that are completely irrelevant to the game. These
should be as a whole, relevant only to SS14 and Einstein Engines. While
some joke tips are probably fine, they should still be game relevant.

# Changelog

🆑
- add: Several new tips have been added to the game, many of which
reference new content available on Einstein-Engines.

---------

Signed-off-by: VMSolidus <evilexecutive@gmail.com>
Co-authored-by: DEATHB4DEFEAT <77995199+DEATHB4DEFEAT@users.noreply.github.com>

* Automatic Changelog Update (#844)

# Conflicts:
#	Resources/Changelog/Changelog.yml

* Fix some Things with Interaction Verbs (#854)

# Description
Fixes:
- Interaction verbs being usable regardless of whether the user can
access the target (I checked for CanInteract but not CanAccess 😭), which
fixes #836
- Certain close-range verbs having a ridiculous 2-tile range (now it's
1.2, similarly to hugging and other things)
- Certain locale strings missing

This also separates verb checks into its own method in the interaction
verb system and adds more error messages instead of one generic "some
requirements are not met".

# Changelog
🆑
- fix: Fixed a couple issues with the new interaction verb system.

* Automatic Changelog Update (#854)

* Fix Colored Jumpskirts Actually Being Skirts (#848)

# Description

This matters for Birbs. All Colored Jumpskirts were incorrectly parented
to Jumpsuit and not Jumpskirt, meaning that Harpies couldn't wear them.
This fixes that issue.

# Changelog

🆑
- add: Due to NUMEROUS complaints, NanoTrasen has swapped the sticker
labels on all colored jumpskirts to correctly state that they are
infact, "Skirts", so now they can legally be worn by Harpies, Lamia, and
Arachne.

* Automatic Changelog Update (#848)

* Ports Trait Rebalance From Floof (#842)

# Description


This PR ports my trait balance changes from Floof. You can find the PR
for that repo at https://github.com/Fansana/floofstation1/pull/170.

---


# Changelog

🆑
- tweak: The cost of many traits have been updated
- tweak: A few traits have been tweaked

---------

Signed-off-by: ShatteredSwords <135023515+ShatteredSwords@users.noreply.github.com>
Co-authored-by: Fansana <116083121+Fansana@users.noreply.github.com>
Co-authored-by: DEATHB4DEFEAT <77995199+DEATHB4DEFEAT@users.noreply.github.com>

* Automatic Changelog Update (#842)

* Roboticist (#801)

# Description
By a (somewhat) popular request from floofstation, this adds the
roboticist job (each existing map gets 1 job slot, since robotics on
each of them is just one tiny room that's more similar to a broom closet
than a subdepartament).

The job is purely cosmetical and does not offer any new accesses since
that would require changing a lot of maps and would probably make being
a scientist in the absense of a roboticist miserable. If needed,
roboticists can always build blast doors on the entrance to robotics, as
someone has done before in my experience.

This also adds the robotics PDA, robotics ID card, robotics satchel,
backpack, and duffel (duffel icon taken from paradise station, rest of
the sprites is respective science bags recolored by me to match the
palette of the icon). This also increases the capacity of mystagogue's
science PDA box to incorporate the new PDA type.

<details><summary><h1>Media</h1></summary>
<p>


![image](https://github.com/user-attachments/assets/cb086058-8257-4281-82ad-0f59873a1308)


![image](https://github.com/user-attachments/assets/f9e9e1dd-567c-4d47-a778-5704b3a72265)


![image](https://github.com/user-attachments/assets/60bd6769-026e-4fdc-b5f3-825f99dd92a7)


![image](https://github.com/user-attachments/assets/54a27d9c-b91d-4115-b2d6-258a320d8093)


![image](https://github.com/user-attachments/assets/7168edd5-465a-49a7-99e6-5b1592beb3eb)

</p>
</details>

---

# Changelog
🆑
- add: A new Roboticist job has been added. The job does not offer any
new accesses, but lets you distinguish yourself from scientists.
Existing maps will need to be updated to support the new job.
- add: Added new PDA, ID, and bag variants for roboticists. The
mystagogue will now also find a roboticist PDA in their office.

---------

Signed-off-by: Mnemotechnican <69920617+Mnemotechnician@users.noreply.github.com>

* Automatic Changelog Update (#801)

* Loadouts V3 (#736)

# Description

Resolves #723
Resolves #708
Resolves #691
Resolves #671
Resolves #643

Adding/removing loadouts and categories (and trait stuff) will require
disconnecting and reconnecting to the server (or anything that will
reload the lobby UI) due to how I've done my caching.

---

# TODO

- [x] Test entity IDs from loadouts
- [x] Better Tab Container
	- [x] Scroll props
	- [x] Margin props
	- [x] Make vertical work
	- [x] Merge buttons
- [x] Subcategories
	- [x] Allow the same for traits (their tab is completely broken)
- [x] Give the Job Picker tab a BoxContainer
- [x] Different selected unusable color
- [x] Deselect unusable button
- Sort menu/Reverse sort direction button
- [x] Fix scroll resetting on updating
	- [x] Cache loadouts
- [x] Ensure everything that can affect reqs updates everything that
checks reqs
- [x] More Requirements
	- [x] Height
	- [x] Width
	- [x] Weight
	- [x] Gender
	- [x] Sex
	- Markings
	- [x] Logic
		- [x] And
		- [x] Or
		- [x] Xor
	- [x] Item groups
- [x] #643
- Something better than `Exclusive`
	- Allow picking slots for things to go in (hands and inventories too)
- [x] Add a background to the loadout spriteView
- [x] Get better style colors
---
- [ ] More PRs
- [ ] Remove duplicate command loadouts that are outside the command
folders/categories
	- [ ] Categorize job loadouts (By dept?)
- [ ] Fix [every
loadout](https://discord.com/channels/1218698320155906090/1218698321053356060/1279260210208440361)'s
IDs (who reviewed them??)
		- [ ] Make loadout ID migrations?

---

<details><summary><h1>Media</h1></summary>
<p>

## New loadouts/traits UI

<!--

![image](https://github.com/user-attachments/assets/3b296f66-2502-49fb-8e24-5a98117bd5e5)

![image](https://github.com/user-attachments/assets/48b1ac49-6afb-49d4-ba6e-03a2551f6dfa)

![image](https://github.com/user-attachments/assets/6c10f68c-a858-478c-a880-f1ac2cf5f033)
-->

![image](https://github.com/user-attachments/assets/9a9c3f64-6ba4-40ea-a89e-d5f57efcf7c0)

![image](https://github.com/user-attachments/assets/3b6f0a36-a474-4ca6-a7c8-90c13e3faa0b)

## NeoTabContainer allows changing the tab orientation

### https://youtu.be/krg8TJoQG3I

![image](https://github.com/user-attachments/assets/81491ad9-45bd-41ed-833e-7295a2216a04)

![image](https://github.com/user-attachments/assets/deb72919-7efe-4be9-a661-b12aa7dc6976)

</p>
</details>

---

# Changelog

🆑
- fix: The loadout/trait editors' performance has been improved by
100~1000x
- tweak: The character editor's tabs look, feel, and function much
better
- fix: Unusable loadouts/traits have an orange color when selected
- tweak: Loadout previews are now inside the button
- add: Added a button to remove any unusable loadouts (or traits) you
have selected
- add: Loadouts and traits can have subcategories, though only Command
loadouts use them at the moment
- fix: Fixed empty loadout categories not hiding
- fix: Fixed spacing on some loadout requirements' reason text
- fix: Fixed traits not updating after saving
# Conflicts:
#	Content.Shared/Customization/Systems/CharacterRequirements.Profile.cs
#	Resources/Locale/en-US/customization/character-requirements.ftl
#	Resources/Prototypes/Loadouts/Jobs/service.yml

* Automatic Changelog Update (#736)

* Fix For Discord Changelog (#869)

Signed-off-by: Evgencheg <73418250+Evgencheg@users.noreply.github.com>
Co-authored-by: DEATHB4DEFEAT <77995199+DEATHB4DEFEAT@users.noreply.github.com>

* Civilian Uniform Loadout Group (#872)

# Description

I'm going to split the other groups into their own PRs, next up is
Shoes. This PR adds all of the "Civilian" uniforms to the first of what
will be many new Loadout Groups, and now takes the opportunity to
significantly cut down on the loadout point costs of all non-job
uniforms. Now the overwhelming majority of them are 0 or 1 point, with
rare few examples being only 2 points. The tradeoff for this is that you
are limited to a single selection of civilian uniforms to take with you
to the station, presumably in addition to your job uniform as a spare
outfit, if desired.

Next up, shoes.

<details><summary><h1>Media</h1></summary>
<p>


https://github.com/user-attachments/assets/47804a59-189d-4432-bac9-0b010c50f61e

</p>
</details>

---

# Changelog

🆑
- add: The first of all new loadout groups has been added, Civilian
Uniforms. Only one civilian uniform can be selected, in exchange for...
- tweak: All non-job specific uniforms have had their points reduced
drastically, almost all of them down to 0 points, with only a tiny
handful at 2 points, and the rest as 1.

---------

Signed-off-by: VMSolidus <evilexecutive@gmail.com>
Co-authored-by: DEATHB4DEFEAT <77995199+DEATHB4DEFEAT@users.noreply.github.com>

* Shoes Loadout Group (#873)

# Description

This is the next PR after
https://github.com/Simple-Station/Einstein-Engines/pull/872
This time adding an item group for Shoes, and drastically cutting down
on the base cost of shoes to compensate.

# Changelog

🆑
- tweak: The cost of all shoes in loadouts has been reduced, in most
cases to 0.

---------

Signed-off-by: VMSolidus <evilexecutive@gmail.com>
Co-authored-by: DEATHB4DEFEAT <77995199+DEATHB4DEFEAT@users.noreply.github.com>

* Hat Loadout Group (#876)

# Description

Cheaper Hats

# Changelog

🆑
- tweak: All non-job specific headgear has been significantly reduced in
Loadout point costs, most of them to 0.

* Outerclothes Loadout Group (#877)

# Description

And now Outerwear. :)

# Changelog

🆑
- tweak: All non-job outerwear has had their Loadout point costs
significantly reduced.

* Gloves Loadout Group (#878)

# Description

Gloves Next. Woo.

# Changelog

🆑
- tweak: All gloves have had their Loadout point costs reduced, many to
0.

* Miscellaneous Item Groups (#880)

# Description

This is the last of the Loadout Item Group PRs I'm going to do for now.
This PR adds several more than the previous ones, primarily to split up
the Items tab into several distinct groups so as to push down the costs
of many items. In particular, the new groups are:

1. Smokes
2. Lighters
3. Instruments
4. Air tanks
5. Box Kits(Survival Boxes or Medkits)
6. Writables

Survival boxes sharing an Item Group with Medkits is kind of intentional
here. Both of them take up a SIGNIFICANT amount of your starting
inventory space. Now we can have free survival kits once again, but also
have as an option, where you can elect to spend some of your loadout
points to take a personal Medkit instead of a survival box. You can
think of it as an upgrade over a standard survival kit. :)

# Changelog

🆑
- tweak: Item groups for Smokes, Lighters, Instruments, Air Tanks,
SurvivalBoxes/Medkits, and Writable items have been added. All items in
these categories have received discounts to their costs, and in some
cases have become free.
# Conflicts:
#	Resources/Prototypes/Loadouts/items.yml

* Neck Loadout Group (#874)

# Description

And another one! This time Neck slot items. Sequel to
https://github.com/Simple-Station/Einstein-Engines/pull/872

# Changelog

🆑
- tweak: All neck slot Loadout items have had their costs significantly
reduced, most of them to 0.

---------

Signed-off-by: VMSolidus <evilexecutive@gmail.com>
Co-authored-by: DEATHB4DEFEAT <77995199+DEATHB4DEFEAT@users.noreply.github.com>

* Automatic Changelog Update (#872)

* Automatic Changelog Update (#874)

* Eyewear Loadout Group (#879)

# Description

Now for Eyes...
Last one to do is split apart the "Items" tab.

# Changelog

🆑
- tweak: Eyewear have had their loadout point costs significantly
reduced.

---------

Signed-off-by: VMSolidus <evilexecutive@gmail.com>
Co-authored-by: DEATHB4DEFEAT <77995199+DEATHB4DEFEAT@users.noreply.github.com>

* Masks Loadout Group (#875)

# Description

Yet another sequel to
https://github.com/Simple-Station/Einstein-Engines/pull/872
This time Masks

# Changelog

🆑
- tweak: All masks have had their loadout point costs substantially
reduced.

---------

Signed-off-by: VMSolidus <evilexecutive@gmail.com>
Co-authored-by: DEATHB4DEFEAT <77995199+DEATHB4DEFEAT@users.noreply.github.com>

* Automatic Changelog Update (#879)

* Automatic Changelog Update (#875)

* Update discord-changelog.yml (#881)

Signed-off-by: DEATHB4DEFEAT <77995199+DEATHB4DEFEAT@users.noreply.github.com>

* Revert "[Feature] Short Construction System / Система Крафтов В Руках (#17)"

This reverts commit 5f67b5e429.

* [Feature] Shortcut Construction System (#861)

# Description

Interacting with some materials now opens up the radial menu with some
often used recipes. Port from White Dream.

---

# Why?

It looks cool I guess. Also required by Blood Cult.

---
<details><summary><h1>Media</h1></summary>
<p>


https://github.com/user-attachments/assets/8207ea19-f4a3-45e1-b6f2-c870b46b6837

</p>
</details>

---

# Changelog


🆑
- add: Interacting with some materials now opens the radial menu
containing some of the most used recipes of that material.

* Automatic Changelog Update (#861)

* fix: a few fixes

* Make Height Sliders Affect Your Bloodstream Volume (#858)

# Description
Something that just makes sense, this makes your effect character weight
affect your bloodstream volume. As a minimum size felinid you will get
33% of normal blood volume, whereas as something as huge as a lamia you
may get up to 3 times the normal blood volume.

The resulting volume of your bloodstream can be calculated as `V =
clamp(normal_volume * mass_contest ^ 0.6)` (assuming default
parameters), where mass_contest is the result of a mass contest between
your entity and the average humanoid. For average species like vulps,
this means that their bloodstream can become up to ~40% smaller than
normal (at minimum size), or up to 50% larger than normal (at maximum
size). For onis the range is shifted towards higher values, a maximum
size oni will have twice as much blood as an average human.

This has both drawbacks and advantages. For instance, having little
blood means you can bleed out easily, but at the same time it means it
will take way less blood packs/saline/iron/proteins to restore your
blood to the normal level. Opposite is also true, having more blood
means you will be harder to heal.

Also, this PR slightly refactors the HeightAdjustSystem to be more
flexible.

<details><summary><h1>Media</h1></summary>
<p>



https://github.com/user-attachments/assets/951c2391-09d8-4a4a-812b-a2394862fadd


</p>
</details>

# Changelog
🆑
- add: Your character size now affects your blood level. Smaller
characters will have less blood, and larger characters will have more.

---------

Signed-off-by: Mnemotechnican <69920617+Mnemotechnician@users.noreply.github.com>
Co-authored-by: VMSolidus <evilexecutive@gmail.com>
Co-authored-by: DEATHB4DEFEAT <77995199+DEATHB4DEFEAT@users.noreply.github.com>

* Automatic Changelog Update (#858)

* Change Slime Scream (#849)

# Description

This PR replaces slime_scream_f2.ogg with a modified version of
Voice/Human/femalescream_5.ogg. The original scream doesn't feel like it
belongs in SS14 with the other slime sounds (laugh, cry, sigh, etc).

---

# Changelog

🆑 router
- tweak: Female slimes no longer have movie screams.

* Automatic Changelog Update (#849)

# Conflicts:
#	Resources/Changelog/Changelog.yml

* Make Hugging/Petting Interactions Affect Mood (#823)

# Description
Something that was omitted in #733. Hugging and petting now give
positive moodlets.

The petting interaction was split into two: one for animals and one for
humanoids. The one for animals improves both your own mood and the mood
of the animal, whereas petting a humanoid only improves their own mood.
In addition to all that, being hugged and being pet do not stack.

<details><summary><h1>Media</h1></summary>
<p>


https://github.com/user-attachments/assets/47e8f722-44ee-4d03-a580-65a2946a1920

</p>
</details>

# Changelog
🆑
- tweak: Hugging and petting interactions now influence mood, just like
the old hugging.

---------

Signed-off-by: Mnemotechnican <69920617+Mnemotechnician@users.noreply.github.com>
Co-authored-by: DEATHB4DEFEAT <77995199+DEATHB4DEFEAT@users.noreply.github.com>

* Display Language Fonts/Colors in Chat Bubbles (#812)

# Description
4 FTL lines changed

Finally them native GC speakers will know what language to respond in
when speaking to us

<details><summary><h1>Media</h1></summary>
<p>


https://github.com/user-attachments/assets/68d1b1b2-373d-4f98-958d-3659b7cff440

</p>
</details>

# Changelog

🆑
- add: Chat bubbles now use the font & color of the language of the
message.

* TraitSystem Component Removals (Anomalous Positronics Trait) (#885)

# Description

This PR implements a new functionality for Traits, while also making
clever use of the new Loadouts Version 3.0 addition of logic gates.
Traits have been extended to now also allow for Component Removals,
ostensibly so that traits can remove species Innate traits. In theory
this could also be used to completely wipe a pre-existing component, and
then let the trait fully replace it with a new component.

To make use of this feature, I've added a new trait called Anomalous
Positronics, which allows for IPCs to "Buy off" their innate Psionic
Insulation, and thus allow them to be psionic. The previously existing
psionic traits that required you not be an IPC, now make use of new
logic gates to require that you are either not an IPC, or have the
AnomalousPositronics trait. Additionally, roundstart psion jobs, like
the Mystagogue, Mantis, Chaplain, also all now have a check for "Not
IPC, OR has AnomalousPositronics".

Finally, thanks to the logic gates, it's now possible to simultaneously
disallow the roundstart psions from buying Latent Psychic, while also
still allowing the Chaplain and Librarian to buy Natural Telepath.

# Changelog

🆑
- add: Traits now allow for full component removals, enabling traits
that directly remove innate species traits without the need to hardcode
new systems for it. Or, to allow species components to be fully removed
as preparation for being replaced with a new component.
- add: Anomalous Positronics has been added as a new trait. It removes
the psionic insulation from IPCs, allowing them to be affected by
psionics, as well as take roundstart psion jobs like the Mystagogue, and
also buying traits such as Latent Psychic.
- remove: NormalVisionComponent and NormalVisionSystem have been
removed. The NormalVision trait now uses
TraitSystem.RemoveTraitComponents to do its work.
- add: Chaplain and Cataloguer can now purchase Natural Telepath.

---------

Signed-off-by: VMSolidus <evilexecutive@gmail.com>
Co-authored-by: DEATHB4DEFEAT <77995199+DEATHB4DEFEAT@users.noreply.github.com>

* Cherry-Pick "Shrimp Mob for Metempsychosis (#862)" (#882)

# Description
Cherry-picks https://github.com/deltaV-Station/delta-v/pull/862 on
behalf of the author.

This was not tested; need someone to check if it actually works before
merging.

# Changelog
🆑
- add: A shrimp morphotype was added to the failure pool of the
metempsychotic machine.

---------

Signed-off-by: leo <136020119+leonardo-dabepis@users.noreply.github.com>
Signed-off-by: Mnemotechnican <69920617+Mnemotechnician@users.noreply.github.com>
Co-authored-by: leo <136020119+leonardo-dabepis@users.noreply.github.com>
Co-authored-by: DEATHB4DEFEAT <77995199+DEATHB4DEFEAT@users.noreply.github.com>
Co-authored-by: Null <56081759+NullWanderer@users.noreply.github.com>
Co-authored-by: VMSolidus <evilexecutive@gmail.com>

* Automatic Changelog Update (#812)

* Automatic Changelog Update (#882)

* Fix Translators Not Working Correctly Under Certain Conditions (#834)

# Description
This completely refactors the translator system, fixing various issues,
such as being unable to hold multiple translators at once normally,
entity languages not getting updated properly if a translator was
removed from it via stripping or similar, etc.

Also fixes translators being utter shitcode.

<details><summary><h1>Media</h1></summary>
<p>


https://github.com/user-attachments/assets/239f831b-7262-4980-932d-c6231dcecf72

</p>
</details>

# Changelog
🆑
- fix: Multiple issues with translators were fixed. Additionally, you
can now hold multiple handheld translators at once without issues.

* Automatic Changelog Update (#834)

* Re-Enable Recycler Gibbing (#822)

# Description

WAITER, WAITER, PLEASE FEED ME MORE FELINIDS.

# Changelog

🆑
- add: Recyclers can now once again eat people when emagged.
- add: The ability for emagged Recyclers to eat people is now controlled
by the CVar "reclaimer.allow_gibbing".
- add: Recyclers require power to eat people. No more dragging emagged
recyclers into crowds.

---------

Signed-off-by: VMSolidus <evilexecutive@gmail.com>
Co-authored-by: DEATHB4DEFEAT <77995199+DEATHB4DEFEAT@users.noreply.github.com>

* Adds a Toy Which Makes Bwoink Sound (#759)

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

This adds a toy hammer based on the old BanHammer from ss13 which was a
joke toy that made a bwoink sound. It also had a really old description
which made minor fun of the russian translation changing it to
'bangammer' and 'reisin' which I decided to keep for the veterans.

---

<!--
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/802c1896-f175-4e39-8f2e-97f1df2e88ba)

![image](https://github.com/user-attachments/assets/39add23b-1503-41ec-b9ce-080cd5757677)


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

🆑
- add: Added bwoink hammer with bwoink sound

---------

Signed-off-by: VMSolidus <evilexecutive@gmail.com>
Co-authored-by: VMSolidus <evilexecutive@gmail.com>
Co-authored-by: DEATHB4DEFEAT <77995199+DEATHB4DEFEAT@users.noreply.github.com>

* Automatic Changelog Update (#822)

* AddPsionicPower Command (#807)

# Description

This PR adds a new console command for directly adding psionic powers to
an entity. Should an entity not already be psionic, this command will
additionally make them psionic.

# Changelog

🆑
- add: A new console command, AddPsionicPower has been added.

---------

Signed-off-by: VMSolidus <evilexecutive@gmail.com>
Co-authored-by: DEATHB4DEFEAT <77995199+DEATHB4DEFEAT@users.noreply.github.com>

* Automatic Changelog Update (#759)

* Automatic Changelog Update (#807)

* Fix Maps Missing Assistants (#838)

# Description

Glacier, Core, and Saltern were missing their assistant job slots(My
mistake, when the Linter said I needed to set the Overflow job, I
assumed it meant "Replace the [-1, -1] slot with the Overflow", but
apparently both are needed.

Additionally, Glacier, Core, and Saltern are now added to the Map Pool.

🆑
- add: Glacier, Core, and Saltern now have assistant job slots.
- add: Glacier, Core, and Saltern are now able to be voted on for map
selection.

* Automatic Changelog Update (#838)

* Update Clothing Assignments of Suit/Skirt (#857)

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

Changes some outfits, notably the Operative Jumpskirt, Kimono,
Dark/Light Monastic Robes, and the Gladiator Uniform to be assigned as
skirts, rather than suits. This allows harpies to wear them. In
addition, the UnsensoredClothingSkirtBase base now possesses the
'ClothMade' tag, allowing moths to eat outfits with this base.

---

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

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

🆑
- tweak: Fixes a few typos in outfit descriptions
- fix: The Kimono, Dark/Light Monastic Robes, Gladiator Uniform, and
Operative Jumpskirt should be properly considered jumpskirts, and are by
extension wearable for harpies.
- fix: Moths should be able to eat outfits with the
UnsensoredClothingSkirtBase parent.

* Americanize Contests System (#814)

# Description

I have updated the Contests System to make it safe to use by Americans.
This is accomplished by adding very helpful warning labels, as well as
restricting the Range of all its functions so that they cannot return
either a negative number, or a zero. Therefore, all Contests are now
perfectly safe to divide by.

# Changelog

🆑
- tweak: ContestsSystem(Mass Contest, Stamina Contest, Health Contest,
Mind Contest, Mood Contest, and Every Contest) have all been updated to
be safe to divide by, since it is no longer possible for them to ever
return 0. Instead they will just return
0.0000000000000000000000000000000000000000000001401298, so if you divide
by an unclamped contest, I hope you like your function randomly
returning the 32bit integer limit.
- add: Warning labels have been added to all Contests to make them
comply with the demands of the American consumer market.

* Step Trigger Minor Refactor (#884)

# Description

I made this PR in response to a bug report from Floof, where it was
discovered that a "Minimum Size Felinid or Harpy" is instantaneously
killed by mouse traps. Which confused me, because Felinids and Harpies
are intended to be immune to floor traps like landmines, glass, and
mouse traps. Then I discovered that mouse traps overwrite the step
trigger cancellation, meaning that mouse traps will just completely
ignore a Felinid/Harpy canceling the step trigger. Additionally, to my
endless frustration, the Felinid/Harpy floor trap immunity is handled by
a Tag and not a Component, which isn't really acceptable in this day and
age.

I decided to take a little bit of a different approach to this problem,
first by doing the usual code cleanup to EE standards. Then by adding a
new StepTriggerImmuneComponent. This component acts as an early-exit for
the entire StepTriggerSystem, immediately at the initial entrypoint,
during the CanTrigger bool. This component is given to Felinids and
Harpies by default, representing their "Extremely low density bodies"
having too much surface area and not enough mass to trigger floor traps.
Effectively, they are now working as originally intended, by having
immunity to setting off landmines.

Because we have a trait point system, and this is coincidentally also a
trait requested by Nuclear14, I have gone ahead and created a Trait that
gives this component to anyone willing to pay the points for it.

# Changelog

🆑
- fix: Felinids and Harpies will now correctly never set off floor
traps, such as landmines and mouse traps.
- add: Trap Avoider has been added as a new trait, allowing characters
to buy the innate ability to avoid floor traps. I would have named this
"Light Step", after the trait from Fallout that shares its name and
effect, but someone already gave that name to a different trait
entirely.

---------

Signed-off-by: VMSolidus <evilexecutive@gmail.com>
Co-authored-by: DEATHB4DEFEAT <77995199+DEATHB4DEFEAT@users.noreply.github.com>

* Automatic Changelog Update (#884)

# Conflicts:
#	Resources/Changelog/Changelog.yml

* Fix Logic Requirements Not Checking Inversion (#891)

* Split Arm And Leg Markings (#870)

# Description

It's time to finally rip off a bandaid, and cease fucking with awful
layer garbage and marking workarounds. This PR completely removes the
Arms and Legs marking categories, replacing them with:

1. Right Arm
2. Right Hand
3. Left Arm
4. Left Hand
5. Right Leg
6. Right Foot
7. Left Leg
8. Left Foot

Finally, removing harpy layer shitcode is within our grasp.

<details><summary><h1>Media</h1></summary>
<p>


![image](https://github.com/user-attachments/assets/7cb5cb2d-ec5a-4269-a29b-08eeabc5668b)


![image](https://github.com/user-attachments/assets/a5b8861d-ae25-45cb-96d7-2d4dbf17be98)

</p>
</details>

# Changelog

🆑
- add: Arm and Leg markings are now split between individual arms,
hands, legs, and feet.

* Automatic Changelog Update (#870)

* feat: перевод ченджлога

* fix: fix maid and hobo

* fix: fixed hobo and maids loadouts

---------

Signed-off-by: ShatteredSwords <135023515+ShatteredSwords@users.noreply.github.com>
Signed-off-by: VMSolidus <evilexecutive@gmail.com>
Signed-off-by: Mnemotechnican <69920617+Mnemotechnician@users.noreply.github.com>
Signed-off-by: Evgencheg <73418250+Evgencheg@users.noreply.github.com>
Signed-off-by: DEATHB4DEFEAT <77995199+DEATHB4DEFEAT@users.noreply.github.com>
Signed-off-by: leo <136020119+leonardo-dabepis@users.noreply.github.com>
Co-authored-by: ShatteredSwords <135023515+ShatteredSwords@users.noreply.github.com>
Co-authored-by: DEATHB4DEFEAT <77995199+DEATHB4DEFEAT@users.noreply.github.com>
Co-authored-by: VMSolidus <evilexecutive@gmail.com>
Co-authored-by: SimpleStation Changelogs <SimpleStation14@users.noreply.github.com>
Co-authored-by: Mnemotechnican <69920617+Mnemotechnician@users.noreply.github.com>
Co-authored-by: Fansana <116083121+Fansana@users.noreply.github.com>
Co-authored-by: Evgencheg <73418250+Evgencheg@users.noreply.github.com>
Co-authored-by: router <messagebus@vk.com>
Co-authored-by: leo <136020119+leonardo-dabepis@users.noreply.github.com>
Co-authored-by: Null <56081759+NullWanderer@users.noreply.github.com>
Co-authored-by: Blu <79374236+BlueHNT@users.noreply.github.com>
Co-authored-by: Tirochora <leotabletdb@gmail.com>
2024-09-09 23:06:49 +07:00
Mnemotechnican
81ad859c46 Admeme Language Commands (Attempt 2) (#565)
# Description
#562 but using commands instead of tricks.

Less user-friendly but makes you look like a hacker when you use them
:trollface:


<details><summary><h1>Media</h1></summary><p>


![image](https://github.com/user-attachments/assets/818b6226-aea8-4f9a-b30d-5df39b8041e6)

![image](https://github.com/user-attachments/assets/f3c40feb-f84d-4083-bc9a-44f7b1dfb30d)

![image](https://github.com/user-attachments/assets/31827207-4903-4df1-9074-eb060d0cf63c)

(ignore the missing locale, I fixes)

</p></details>

# Changelog

🆑
- add: Admin tooling: added several admin commands to help manipulate
entities' languages.

---------

Signed-off-by: Mnemotechnican <69920617+Mnemotechnician@users.noreply.github.com>
Co-authored-by: DEATHB4DEFEAT <77995199+DEATHB4DEFEAT@users.noreply.github.com>
2024-08-06 17:22:11 -04:00
Mnemotechnican
b15d096a3e Minor Language Fixes (#618)
# Description
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>

---

# Changelog
🆑
- 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.
2024-07-31 16:57:25 -07:00
Mnemotechnican
92dcd724d4 Refactor Sign Languages and Language Markers (#575)
# 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>


![image](https://github.com/user-attachments/assets/845ec5d3-20aa-4786-bdc8-c39c80e0a4a3)

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>
2024-07-26 13:11:42 -07:00
Mnemotechnican
6084740437 Foreigner Traits (#525)
# Description
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.

# Why

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>

---

# Changelog

🆑
- 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.
2024-07-11 21:19:09 -04: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