Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Upstream Merge 2024-09-08 #178

Merged

Conversation

Mnemotechnician
Copy link
Contributor

@Mnemotechnician Mnemotechnician commented Sep 5, 2024

Description

Routine upstream merge. No immediate errors found during testing.

Changelog

🆑

  • add: Upstream merge. See the einstein-engines tab for more details. Most notably, jukeboxes are now a thing!

github-actions bot and others added 30 commits August 31, 2024 18:45
This is an automated Pull Request. This PR updates the GitHub
contributors in the credits section.

Co-authored-by: SimpleStation Changelogs <[email protected]>
# Description

MoodSystem has a Race Condition against DeleteAllThenGhost.

# TODO

- [ ] Run the tests 10 times in a row to see if DeleteAllThenGhost will
appear.
# Description

Diagonal windows weren't updated to use the new smoothing when we added
a bunch of new sprites designed around connected textures. This PR fixes
that for all diagonal windows.


![image](https://github.com/user-attachments/assets/4a54a00f-32d6-4365-ad0a-d96ecdbe6114)

# Changelog

:cl:
- add: Diagonal windows now use connected textures.

---------

Signed-off-by: VMSolidus <[email protected]>
# Description

The current in game UI can reasonably support names up to 48 characters
in length, as well as descriptions up to 1024 characters long. Any
longer, and the UI requires a scroll bar. This change is present on
Cosmatic Drift, which uses the same character UI we currently have. I've
had many people requesting this change, and while I am aware that we
wish to at some point update to a new character UI(such as Parkstation's
UI), but a stopgap here is still nice, and it's just two Const
variables.

# Media


![image](https://github.com/user-attachments/assets/d68c3e05-9659-464b-8fb1-8de7e41a674b)

# Changelog

:cl:
- tweak: Character names can now be up to 48 characters in length.
- tweak: Character descriptions can now be up to 1024 characters in
length. This is the maximum size descriptions can be without the menu
having a scroll bar. And while we'd like it to be bigger, we're going to
want to get a new UI for this in the future!
# Description

The default stamina cost for Power Attack was supposed to be 10, so
imagine my surprise when I find out it's been 20 this whole time. Which
wasn't intended.

# Changelog

:cl:
- fix: The default stamina cost for Power Attacks for any weapon that
doesn't explicitly modify it is now correctly set to 10 stamina(down
from 20).
🆑
- add: Changelogs should be shown in Discord now

---------

Signed-off-by: DEATHB4DEFEAT <[email protected]>
Co-authored-by: TAZIKLIK <[email protected]>
Co-authored-by: DEATHB4DEFEAT <[email protected]>
<!--

-->

# Description

<!--

-->

Adds super cool super nice Jukebox to the bar! Ran off .ogg files, can
use any royalty free song.



---
<!--
-->

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

![Example Media on] 
![Screenshot 2024-08-26
061947](https://github.com/user-attachments/assets/352a0491-5cec-4b03-949b-8407aa858cb8)

</details>

---

# Changelog

<!--

-->

:cl: Kacey, Nova
- add: Added Jukebox with basic songs.

---------

Signed-off-by: VMSolidus <[email protected]>
Co-authored-by: metalgearsloth <[email protected]>
Co-authored-by: iNVERTED <[email protected]>
Co-authored-by: DJBIGYAPPA420 <[email protected]>
Co-authored-by: VMSolidus <[email protected]>
# Description

Certain things in the game were intended to be classed as Psionic(And
mostly without powers), but were apparently lacking the components. To
clarify, ANYTHING that comes from an alternate layer of reality,
alternative plane of existence, extra dimensions, other universes,
bluespace, etc, is intended to have a PsionicComponent to abstract
represent their nature as a magical being of some variety. The
importance of this is largely related to the use of Metapsionics to
detect them, but also for the valid target lists for Anti-Psychic
abilities, such as the bonus damage from the Anti-Psychic Knife.

While here, I've also added the "Loto Oil Slime" from Psionic Refactor
Version 1, now that Reagent Slimes(as Extraplanar creatures brought to
this world by Liquid Anomalies) have a PsionicComponent.

needs Simple-Station/Einstein-Engines#824

# Changelog

:cl:
- add: Revenants, Reagent Slimes, and Ore Crabs are now considered to be
Psionic(But cannot gain powers randomly). This is due to their status as
"Magical And/Or Extraplanar Creatures", which makes them valid targets
for anti-psychic abilities such as the Psionic Mantis' Anti-Psychic
Knife.
- add: Some Reagent Slimes can now contain Lotophagoi Oil.
# Description

Since Cloning code is effectively abandonware by it's original
codeowners, and I was the last person in this entire game to update it,
I am technically the codeowner of Cloning. And by extension, it's also
my responsibility to maintain the Cloning code. I've been putting this
off for awhile due to how busy I've been with other projects, but since
I'm now waiting on all my other refactors to be reviewed, I decided to
finally sit down and comprehensively refactor Cloning.

In addition to massive substantial code cleanup(Cloning machines no
longer run on Frametime for one!), here's most of the changes.

- Cloning Pods must be powered for the entire 30 second duration of the
cloning process.
- Said "30 second duration" is no longer hardcoded. Although no methods
currently exist to reduce it. I plan on revisiting this after I bring
back Machine Upgrading.
- Cloning can now FAIL partway through. If the cloning pod is Depowered,
Unanchored, or Emagged, it will automatically swap to the "Gore" state.
- When in a Gore state, Cloning Pods will destroy the entity they were
trying to clone, replacing them with a pool of blood and ammonia that
scales with the mass of the entity that was to be cloned!
- Clones come out of the pod with a significant quantity of Cellular
damage, and are almost always in need of resuscitation. Consider using
Cryogenics to "Finish" your clones. Doxarubixadone is literally named
after this process, and is a perfectly suitable cryo chem for
resuscitating clones.

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

New gore sprites for the Metem machine, because it can now have gore
mode.
![Metem gore
spites](https://github.com/user-attachments/assets/7cc06ce2-c8eb-413c-b996-85e555b67db3)


</p>
</details>

# Changelog

:cl:
- add: Cloning & Metempsychosis Machines have been refactored!
- add: Cloning can now fail at any point during the cloning process,
turning the would-be clone into a soup of blood and ammonia.
- add: "Clone Soup" scales directly with the mass of the entity you're
attempting to clone. Fail to clone a Lamia, and you'll be greeted with
an Olympic swimming pool worth of blood when the machine opens.
- add: Cloning will fail if at any point during the procedure, the
machine is depowered, unanchored, or emagged.
- add: Clones come out of the machine with severe Cellular damage.
Consider using Doxarubixadone in a Cryo tube as an affordable means of
"Finishing" clones.
- tweak: Cloning Time is now increased proportionally if an entity being
cloned is larger than a standard human(smaller entities are unchanged)
- tweak: The cost to clone an entity can now be configured on a
per-server basis via CCVar "cloning.biomass_cost_multiplier"
- tweak: The Biomass Reclaimer can now be toggled to round-remove
ensouled bodies or not via CCVar "cloning.reclaim_souled_bodies"
- add: The effects of Metempsychosis now scale with a Psion's relevant
caster stats. More powerful psychics are more likely to get favorable
results from being forcibly reincarnated.

---------

Signed-off-by: VMSolidus <[email protected]>
Co-authored-by: Pspritechologist <[email protected]>
Co-authored-by: Danger Revolution! <[email protected]>
Co-authored-by: DEATHB4DEFEAT <[email protected]>
# Description


![image](https://github.com/user-attachments/assets/4135c3fa-d2e0-41ca-b8f4-49e149d43ef3)

I'm putting this here as an option to deal with our Heisentest problems,
by making the tests "Fault-Tolerant" wherever practical, but I don't
want this merged without Death and Psprite agreeing to this. For the
most part I believe that these tests are failing because they are
essentially checking that "Random events are not creating entities", by
creating their own enforced Race Conditions. This particular test is
repeatedly failing because the Mood System has no way of deducing that
it's in a test. Even though the alleged issue is a nothingburger.


![image](https://github.com/user-attachments/assets/777b31f1-87a7-4eee-8a62-993acb322315)

Tests absolutely shouldn't have been designed around race conditions.

# Changelog

No changelog because this isn't playerfacing.
# 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]?
-->

Rewrites the issue templates and removes the redundant security
vulnerability issue

Also, sorry Death, titles are now sentence case to maintain consistency
with the auto generated security policy one

Blame GitHub not me </3

---

<!--
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>
Here's the old one, can't make issues on a fork so I can't show how it
looks now.

![image.png](https://github.com/user-attachments/assets/ae8319ed-b66c-4415-9f6d-1048ddc53e07)

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

N/A

Co-authored-by: Danger Revolution! <[email protected]>
🆑
- add: New changelogs should now show links to their PRs
- tweak: Changelog authors should now be a header instead of bold text
- fix: Changelogs shouldn't send random amounts of old changelogs

---------

Signed-off-by: DEATHB4DEFEAT <[email protected]>
string didn't become int
:cl:
- fix: oatnsdaoersoaetaroeoertnsirlea

Signed-off-by: DEATHB4DEFEAT <[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
-->

# Description
Psychognomy is a passive power that gives you a descriptor on the origin
of a telepathic message. There's enough of them that are ambiguous
enough. I also changed Oracle and Sophia a little bit, giving them
innate psionic powers.

:cl: Rane
- add: Added Psychognomy.
- tweak: Reverted Sophia name change.
- tweak: Minor tweaks to psionic chat eligibility and formatting.
- add: Some new utility has been added to player-controlled Oracle or
Sophia. NPC functionality later :^)

---------

Signed-off-by: VMSolidus <[email protected]>
Co-authored-by: VMSolidus <[email protected]>
# 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 <[email protected]>
Co-authored-by: DEATHB4DEFEAT <[email protected]>
Shouldn't show in-game.

Signed-off-by: DEATHB4DEFEAT <[email protected]>
Signed-off-by: VMSolidus <[email protected]>
Co-authored-by: VMSolidus <[email protected]>
# 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

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

---------

Signed-off-by: VMSolidus <[email protected]>
Co-authored-by: DEATHB4DEFEAT <[email protected]>
# 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
:cl:
- fix: Fixed a couple issues with the new interaction verb system.
Mnemotechnician and others added 8 commits September 8, 2024 10:42
# Description
As was discussed on discord, quick swap is a feature that makes certain
things needlessly easy. You can instantly swap the magazine in a gun
without even paying attention to it, you can quickly swap cells in
IPCs/borgs, you can instantly swap the ID in your pda with that of
someone else without anyone noticing, et cetera. In my opinion, this is
unnecessary QOL that makes the game feel more bland and primitive.
Besides, it used to lead to odd and unwanted behavior, such as IPCs
being able to swap their own power cells.

In addition to that, certain entities do not support quick swap. For
instance, rechargers will stop working if you insert a power cell and
then quick-swap it before it finishes charging.

This PR makes quick swap disabled by default. It can still be re-enabled
by setting `ItemSlotsComponent.Slots.[ItemSlot].Swap = true` on
individual entities.

# Changelog
:cl:
- remove: Quick swap has been disabled for most item slots. This
primarily means you will have to eject power cells/magazines from
items/weapons/borgs before replacing them with different ones.
<!--
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]?
-->

Fixed some comment syntax that annoyed me.
# Description

Nuff said.  
I just wanted to make this and uhhhhh. It grew into its own thing.

---

# Changelog

:cl: router
- add: Added Chip Nightmare to the nuke music roster.
# 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

:cl: router
- tweak: Female slimes no longer have movie screams.
# 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
:cl:
- tweak: Hugging and petting interactions now influence mood, just like
the old hugging.

---------

Signed-off-by: Mnemotechnican <[email protected]>
Co-authored-by: DEATHB4DEFEAT <[email protected]>
# 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

:cl:
- add: Chat bubbles now use the font & color of the language of the
message.
SimpleStation14 and others added 16 commits September 8, 2024 14:54
# Description
This introduces a new event scheduler type that follows a random curve
that slowly changes in time. It's designed to sometimes offer the
station some chaos, and sometimes offer it times to breathe.

Also adds two new gamemodes - irregular and irregular extended - which
use this scheduler.

Also fixed the issue with other related CVars not being archived.

# TODO
- [X] Do stuff
- [X] Test stuff
- [X] Fix stuff

# Changelog
:cl:
- add: Added two new gamemodes - irregular and irregular extended -
which use a new type of event scheduler that offers irregular periods of
peace, chaos, and anything in between. The extended version is meant for
longer rounds with significantly lower levels of chaos.

---------

Signed-off-by: Mnemotechnican <[email protected]>
Co-authored-by: Danger Revolution! <[email protected]>
Co-authored-by: VMSolidus <[email protected]>
Co-authored-by: DEATHB4DEFEAT <[email protected]>
# 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

:cl:
- 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 <[email protected]>
Co-authored-by: DEATHB4DEFEAT <[email protected]>
# Description
Cherry-picks DeltaV-Station/Delta-v#862 on
behalf of the author.

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

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

---------

Signed-off-by: leo <[email protected]>
Signed-off-by: Mnemotechnican <[email protected]>
Co-authored-by: leo <[email protected]>
Co-authored-by: DEATHB4DEFEAT <[email protected]>
Co-authored-by: Null <[email protected]>
Co-authored-by: VMSolidus <[email protected]>
…floof-upstream-merge-2024-09-05

# Conflicts:
#	Resources/Locale/en-US/devices/device-network.ftl
#	Resources/Locale/en-US/reagents/meta/consumable/drink/alcohol.ftl
#	Resources/Locale/en-US/revenant/revenant.ftl
#	Resources/Locale/en-US/weapons/melee/melee.ftl
#	Resources/Prototypes/Nyanotrasen/Roles/Jobs/Epistemics/forensicmantis.yml
#	Resources/Prototypes/Roles/Jobs/Civilian/chaplain.yml
#	Resources/Prototypes/Roles/Jobs/Civilian/librarian.yml
#	Resources/Prototypes/Roles/Jobs/Science/research_director.yml
# 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
:cl:
- fix: Multiple issues with translators were fixed. Additionally, you
can now hold multiple handheld translators at once without issues.
# Description

WAITER, WAITER, PLEASE FEED ME MORE FELINIDS.

# Changelog

:cl:
- 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 <[email protected]>
Co-authored-by: DEATHB4DEFEAT <[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
-->

# 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 `: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:
- add: Added bwoink hammer with bwoink sound

---------

Signed-off-by: VMSolidus <[email protected]>
Co-authored-by: VMSolidus <[email protected]>
Co-authored-by: DEATHB4DEFEAT <[email protected]>
# 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

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

---------

Signed-off-by: VMSolidus <[email protected]>
Co-authored-by: DEATHB4DEFEAT <[email protected]>
@Mnemotechnician
Copy link
Contributor Author

Now featuring loadouts v3. I had to edit and split the massive 1000-line departamental loadouts file because it had become unmaintanable. But it works now:

image

image

@Fansana Fansana merged commit 149d5cc into Fansana:master Sep 8, 2024
12 checks passed
Floof-Station-Bot added a commit that referenced this pull request Sep 8, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Changes: Audio Changes any ogg files Changes: C# Changes any cs files Changes: Config Changes any configuration files Changes: Localization Changes any ftl files Changes: Sprite Changes any png or json in an RSI Changes: UI Changes any XAML files Changes: Workflow Changes any GitHub workflow files Changes: YML Changes any yml files Status: Needs Review Someone please review this
Projects
None yet
Development

Successfully merging this pull request may close these issues.