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-08-31 #161

Merged

Conversation

Mnemotechnician
Copy link
Contributor

Description

Catches up with upstream. Taking the liberty to revert #125 and early-merge Simple-Station/Einstein-Engines#812 (4 lines changed, but we really need it here) in the process.

Needs further testing to see if any floof features were broken; quick testing revealed no issues.

Media

TODO: media


Changelog

🆑

  • add: Upstream merge. See the einstein-engines changelog tab for more details!

FoxxoTrystan and others added 30 commits August 24, 2024 08:56
supermatter .ftl was broken, this fixes it.

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

Easly fix the supermatter .ftl files that was not set correctly, why? i
dunno.
now its works.

---

# 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:
- fix: Supermatter Annoncements

Signed-off-by: FoxxoTrystan <[email protected]>
# Description
Somehow all the doors accesses broke. Seems somebody used the
AccessReader Component on the door instead of the door electronics. This
PR fixes all the doors that I could find that were broken.

# Changelog


:cl:

- fix: Fixed most door accesses including: Lawyer, Mantis, Corpsman,
Boxer, Clown, Mime, Musician, Reporter, Library, Zookeeper, Salvage and
Psychologist.
# Description

This is a cherry-pick of
space-wizards/space-station-14#27113
Which fixes a bug that has been reported here where the FixGridAtmos
command does not work.

# Changelog

:cl:
- fix: Fixed the FixGridAtmos command.

Co-authored-by: Leon Friedrich <[email protected]>
# Description

Was vague and poorly written, might still be a bit vague, but that's why
it's being reviewed.
# Description

This PR Rebases one of Nyanotrasen's funniest features: The Pibble.
I mean "Lab Mix", according to the description. Lab Mixes are comically
muscular dogs famous for their ability to attack and destroy Felinids,
Mailmen, and more recently Harpies. Watch out, there is also a rare
variant of Lab-Dachshund Mix, colloquially known as the "Ventbull",
which can occasionally be found roaming the station's vents. Please keep
your children, Felinids, and Birbs at a safe distance.

# Changelog

:cl:
- add: Lab Mixes have been added to the game as a new random animal. Be
sure to keep Felinids and Harpies away from them.

---------

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

This PR brings back Ekrixi IPC sounds, and rebases IPC sounds on top of
silicons.
Duplicate of #810 [due to](# "Due to your attempt to evade your ban, you
are banned indefinitely. You may appeal your ban, but only at least 6
months after your last ban evasion attempt, and only with a voucher of
good behavior from another SS13/SS14 server.") `master` branch skill
issues.

<details open><summary><h2>Media</h2></summary>
None
</details>

---

# Changelog

:cl: router
- add: Added more sounds to IPCs. IPCs can now also whistle, whirr,
beep, boop, ping, chime, buzz and buzz twice.
- fix: IPCs no longer have the default wilhelm sound.
- tweak: Silicon deathgasps are now darker.
# Description

IPCs were missing Offer Item, Laying Down, and Carriable.

# Changelog

:cl:
- fix: IPCs can now lay down, offer people items, and be picked up and
carried.
# Description

Telegnosis is broken, and so I'm temporarily disabling it. 

# Changelog

:cl:
- fix: Temporarily disabled Telegnosis pending a lengthier update.
# Description

IPC were missing a deathgasp, so I wrote one for them.


![faridaiscute](https://github.com/user-attachments/assets/2e78dcc0-0163-4ec7-bf07-424dbd9d0a91)

# Changelog

:cl:
- fix: IPC now have their own unique deathgasp message.

---------

Signed-off-by: VMSolidus <[email protected]>
Fixes a broken link to RobustToolbox

Signed-off-by: Pspritechologist <[email protected]>
# Description
First off, shoving was broken badly. It would roll shoving chance twice,
meaning that you had only about 6% chance to actually shove someone, and
it would only remove 6% of their stamina. Additionally, stamcrits have
always pissed me off by just how stupid they were. Also, some of the
code in the stamina system had highly misleading names, which has led
vmsolidus to implement mass contests the wrong way there.

This PR introduces changes to fix those issues:
- Shoving only rolls the shove chance once.
- Shoving deals 50 * shove chance stamina damage, as intended, without
depending on target's stamcrit threshold. In the future it should depend
on the weapon used (claws, fists, etc), but for now it's fine.
- Shoving advantage ranges were re-evaluated. Mass difference now can
give 0.5x-2x advantage, and health difference can give 0.75x - 1.25x.
Stamina difference still gives a neglectable 0.9x - 1.1x advantage.
- The stamina slowdown is now added and calculated dynamically using
MovementSpeedModifierSystem, which means the slowdown will no longer
disappear 3 seconds after receiving damage, and will not stack (however,
it now scales with stamina damage).
- When you exit stamcrit, you start at (100 - epsilon) stamina damage.
There still exists another check that prevents you from getting
re-stunned in the next ~5 seconds (maybe we should remove that too?),
but the slowdown and combat disadvantages will apply as they are
supposed to. This means you can no longer stand up after being exhausted
to the point of fainting on the ground and immediately rush back into
combat.

In addition to that, I also did the following:
- Re-added the mass contest to EscapeInventorySystem. It seems like it's
been nuked when the new mass contest system was being implemented and
never added back.
- Fixed the mass contest in carrying again

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



https://github.com/user-attachments/assets/076b3c3b-cdd1-4ec7-969d-2564c814a40e


</p>
</details>

---

# Changelog
:cl:
- fix: Shoving once again works correctly, and mass difference matters a
lot when shoving someone.
- fix: The time it takes to escape one's hands once again depends on the
mass difference between the escapee and the holder.
- tweak: Exiting stamina crit now leaves you with 0 stamina. You can't
be immediately stunned again, but you will suffer from slowdown and
combat disadvantages!
# Description


Mirroring a PR from Floof that I was much too lazy to cherry-pick. This
just changes gamemodes outside of tator and rev to allow thieves if it
makes sense to.

---


# Changelog

:cl:
- tweak: Thieves are now in Survival, Hellshift, and Extended.

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

This PR re-introduces a feature that was present in the Psionic Refactor
version 1, that of the Natural Telepath trait. Where before Natural
Telepath was treated as an "Upgraded" version of Latent Psychic, now it
is a standalone trait that makes use of new functionality, where traits
can add psionic powers directly, as opposed to relying on just adding
components. To accomodate for this, the Telepathy functionality has been
modified such that it no longer makes the expectation that
PsionicComponent users have the ability to coherently speak
telepathically, and instead checks for a specific TelepathyComponent.
Since Telepathy is added to a Psion via their ActivePowers list, it is
also eliminated when the Psion is mindbroken.

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


![image](https://github.com/user-attachments/assets/b017b027-d283-484e-812e-37804d839c4a)

</p>
</details>

# Changelog

:cl:
- add: TelepathyComponent has been split off from the PsionicComponent,
now as it's own standalone feature.
- add: Telepathy has been added as a new Psionic Power
- add: Natural Telepath has returned from Psionic-Refactor V1, now using
new functionality from the trait system that allows traits to buy
psionic powers directly.
- add: Latent Psychics who have neither bought Natural Telepath, nor
acquired Telepathy during the round, can sometimes hear snippets of
conversation from telepathic chat.
- tweak: The cost of Latent Psychic has been reduced from 6 to 4 points,
this is to accommodate for the loss of Telepathy as a bonus feature for
all Psionics. Since Natural Telepath is a 2 point trait, this gives a
net 0 change in trait points for anyone who wishes to keep being a
roundstart Telepath.
- tweak: Psionic Mantis, Mystagogue, Chaplain, and Cataloguer are all
Naturally Telepathic, and thus get the new trait for free.
# Description

This PR brings back the x-Waveform Misalignment trait from Psionic
Refactor version 1. There's not really much to say here. Having this
trait means that you are completely immune to most psionic powers and
effects, with the only exception of the physical effects of Elementalist
abilities. It is also an extraordinarily expensive trait, the most
expensive in the game by far.

This trait will get even more useful when Cultists, Wizards, and
Heretics are brought into the game.

# Changelog

:cl:
- add: x-Waveform Misalignment has been rebased from the Psionic
Refactor v1. x-Waveform Misalignment is an extraordinarily expensive
trait that grants full immunity to nearly all psionic powers and
effects, both positive and negative.

---------

Signed-off-by: VMSolidus <[email protected]>
# Description
This implements the New Interaction Verb System™©, designed to allow
defining verbs using yml and make adding new verbs way easier than it
was before. This was initially designed just to bring back generic no-op
interactions like hugging, but can now be used to create way more unique
interactions for all the different entities.

In the core of the system lies InteractionVerbPrototype. Besides
defining the obvious qualities of the verb itself, such as the name,
description, interaction constraints, it also has several important
properties:
- The requirement of the verb - what is required for the verb to show up
as "enabled" in the context menu and be allowed to be performed. There's
just one requirement slot, but using the ComplexRequirement class you
can use multiple requirements and choose whether they are combined via
boolean or, boolean and, or something in-between.
- The action of the verb - it defines its own IsAllowed (whether the
action is applicable to the target entity at all), CanPerform (called
before and after the potential do-after), which defines whether this
exact attempt at performing the action succeeds and shows a success
popup, or fails and shows a fail popup, and finally Perform, which tries
to perform the action and return a boolean result, which determines...
well, what was stated before. Similarly to requirements, there are
complex and conditional actions which can be combined into whatever
monstrousity you can imagine... In fact, it is entirely possible to
build a turing-complete programming language out of actions!
- Effects, specifically three of them: one that is shown when the
interaction performs successfully, one that is shown when it fails, and
one that is shown when the do-after for the interaction begins
succesfully (which means the first CanPerform check of the verb has
succeeded). Each one of them defines a popup (configuration for which is
stored in a different prototype) and a sound. Those are also designed to
be highly customizable: you can choose who sees the popup and where, and
more.

Verbs can be global or local. Global verbs are added to any entity
should it meet the prerequisites and pass all the necessary checks
(which are also designed to be highly configurable). Local verbs are
defined in OwnInteractionVerbsComponent and InteractionVerbsComponent of
the user and target respectfully.

At the moment of writing there are 8 built-in global verbs and 1
non-global verb, not including abstract verbs:
- 3 no-op actions that are made for RP purposes, that is looking at
someone, hugging someone, petting someone. The latter two may be later
used to modify the target's morale should the PR for it be merged.
- 2 actions related to standing: one for forcing someone down, and one
for helping them get up, waking them up and removing 2.5 seconds of stun
in addition to that (before you could click someone with empty hand to
remove 1.5 seconds of stun - I removed that in favor of the new system)
- 1 action for making someone who's laying down (on the bed or
otherwise) to sleep.
- 1 actions for falling asleep yourself (no need for bed or bag or
whatever to tell you that you can sleep - this does not provide any
healing properties or anything like that, purely an RP feature).
- 1 action for pinching yourself - made simply with the intent of
testing some possibilities of the new system, I decided to keep it
because it's a bit funny.

Local actions include:
- An action for knocking on windows, doors, windoors, computers,
machines.

More are to be added to this list as the progress continues.

# TODO
- [X] Implement the core of the system
- ~~Add more, way more actions. Possible ideas include:
[slapping/kicking someone, hugging toys/plushies, pressing random
buttons on a computer, ... ]. I could use some ideas for that.~~ -
skipping for now, we can do it in follow-up prs to clutter this one
less.
- [X] Port all InteractionPopupComponents to the new system, and remove
their old usages from non-animals.
- [X] Introduce contests and a way to configure them (could reuse
RangeSpecifier for that; certain actions such as pushing down/helping up
would benefit a lot from this).
- [X] Hide chat logs for people who cannot see the action being
performed.
- [X] Implement cooldowns
- [ ] Cleanup.

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

Note: this video was made before a few important fixes were made.


https://github.com/user-attachments/assets/17b616dd-4bc8-4af3-916c-6a5d16c77064

Newer video - demonstrates various actions and shows that chat logs
cannot be seen if the source of the logged popup is outside the view.


https://github.com/user-attachments/assets/d6228855-fb7f-45d1-812f-56afe10f3f86

</p>
</details>

---

# Changelog
:cl:
- add: A new interaction system has been implemented. The right-click
menu now provides a wide variety of different interactions with
different entities. Some old default interactions, such as hugging,
knocking, fence rattling, have also been moved to that system.

---------

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

This PR is a MUCH needed QOL update for all of our downstream servers
that have started mapping in Supermatter engines. I have gone through
every single entry of the RadiationResistance component in the game, and
tweaked the values of them so that it is actually reasonably practical
to provide some protection to the rest of the station during a
Supermatter delamination. This fact is highly relevant since one of the
things I am working on is a rebase of the wizden map CORE to EE, which
will include a replacement of its Singulo with a Supermatter engine.
With the pre-existing radiation shielding values, such an engine will
near instantly cleanse the entire station of all life within a matter of
seconds should it so much as think about delaminating. However with this
PR, it's actually practical to shield the station from it.

One major problem, and something that defies player expectations, is
that **Radiation Shutters did not previously provide significant
protection from radiation.** They were infact not much better than a
standard wall, and provided worse protection than a reinforced wall.

For reference to understand the issue, a Supermatter engine during its
delamination produces 45 rads per second. Which is so overwhelmingly
strong, that the Edge station's Supermatter could kill people from as
far away as the reporter's office. Something like 70% of the station
becomes lethally radioactive. On smaller maps such as Syndicate
Station's Shoukou, fully 100% of the map is lethally irradiated.

The flipside of this is that ordinary walls have had their radiation
resistance reduced. Don't count on anything not-reinforced to provide
protection. Trust your life in reinforced walls, radiation shutters,
blast shields, and plasma/uranium glass or walls. I did however add a
concession that firelocks now block 1 point of radiation. It's not much,
but it'll help just a smidge. :)

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

What I'm dealing with, and why I can't actually in good conscience
release said map unless this PR is merged:


![image](https://github.com/user-attachments/assets/fb4ab6cc-fda9-495e-9bfa-678828e4cdc7)

</p>
</details>

# Changelog

:cl:
- tweak: Radiation shielding objects have been rebalanced, such that
objects that players previously assumed would provide reasonable
protection from radiation, now factually do. For instance, Radiation
Shutters now actually block radiation.
VMSolidus and others added 5 commits August 31, 2024 00:28
# Description

InnatePsionicPowers needed to be moved from ComponentStartup to
MapInitEvent, which is a deceptively named event that ALSO functions
identically in use to ComponentStartup, except that it's safe to use for
entities that are mapped in, in addition to joining the round or being
spawned in. Whereas ComponentStartup isn't allowed to modify or add
components for any entity that is mapped(which includes Spawners
apparently).

This change allows for entities like Oracle and Sophia to make use of
InnatePsionicPowers, which is done by request from Rane, who for
mysterious reasons wishes for the two divine statues to be both
Prayable, and have the Noospheric Zap Power.

I have also verified by ingame testing that this does infact apply to
people who join after the map is initialized, as well as things
pre-existing on the map. So Oracle still gets her powers, while a
latejoining Mystagogue still gets his.

# Changelog

:cl:
- fix: InnatePsionicPowers now operates on MapInitEvent instead of
ComponentStartup, meaning that it can now be safely used on entities
that are mapped in instead of spawned.
- add: Oracle and Sophia are now recognized as Divine, and as such are
creatures that can be prayed to.
…floof-upstream-merge-2024-08-31

# Conflicts:
#	Content.Shared/Chat/ChatChannel.cs
#	Resources/Prototypes/game_presets.yml
@github-actions github-actions bot added Status: Needs Review Someone please review this Changes: Audio Changes any ogg files Changes: C# Changes any cs files Changes: Documentation Changes any xml or md files Changes: Localization Changes any ftl files Changes: Map Changes any yml file in the Maps directories Changes: Sprite Changes any png or json in an RSI labels Aug 31, 2024
@Floof-Station-Bot Floof-Station-Bot changed the title Upstream merge 2024-08-31 Upstream Merge 2024-08-31 Aug 31, 2024
Copy link
Contributor

RSI Diff Bot; head commit 7f26690 merging into a3a63f2
This PR makes changes to 1 or more RSIs. Here is a summary of all changes:

Resources/Textures/Mobs/Pets/pitbull.rsi

State Old New Status
pibble Added
pibble_dead Added

Resources/Textures/Mobs/Pets/ventbull.rsi

State Old New Status
pibble Added
pibble_dead Added

@Mnemotechnician
Copy link
Contributor Author

WHY IS THERE 340 000 LINES ADDED

@Mnemotechnician
Copy link
Contributor Author

As far as I'm concerned everything works, and glacier, core, and saltern are now real. Test fail is fake again.

@Fansana
Copy link
Owner

Fansana commented Aug 31, 2024

SM saltern?

@FoxxoTrystan FoxxoTrystan added the Priority: 1-High Needs to be resolved as soon as possible label Aug 31, 2024
@FoxxoTrystan
Copy link
Collaborator

News map got added in this upstream merge, Those new maps support the SM.

@FoxxoTrystan
Copy link
Collaborator

I noticed thats not a lot of commits anyway, so should be good.

@VMSolidus
Copy link
Contributor

WHY IS THERE 340 000 LINES ADDED

image

@ShatteredSwords
Copy link
Contributor

I heard Train is next. I can't wait to become motion sick!

@Memeji Memeji merged commit d90fa66 into Fansana:master Aug 31, 2024
17 checks passed
Floof-Station-Bot added a commit that referenced this pull request Aug 31, 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: Documentation Changes any xml or md files Changes: Localization Changes any ftl files Changes: Map Changes any yml file in the Maps directories Changes: Sprite Changes any png or json in an RSI Priority: 1-High Needs to be resolved as soon as possible Status: Needs Review Someone please review this
Projects
None yet
Development

Successfully merging this pull request may close these issues.

10 participants