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 8/10/2024 #61

Merged
merged 15 commits into from
Aug 10, 2024

Conversation

VMSolidus
Copy link
Contributor

Deep Station 14 Pull Request

Just our regularly scheduled upstream merge. :)

About the PR

Fucking goddamn SHITTON of new traits, and NyanoCombat finally fully updated and merged upstream after the initial feedback and adjustments.

VMSolidus and others added 11 commits August 10, 2024 17:41
![SM
boom](https://github.com/Simple-Station/Einstein-Engines/assets/16548818/6937c520-0963-437c-a9a6-49afe6c8b787)

![New edge
supermatter](https://github.com/Simple-Station/Einstein-Engines/assets/16548818/e8305536-b777-41f8-b9bf-295d402dc1bf)

This PR has been produced in collaboration with coders from White Dream,
with written permission given by the relevant code owners to port this
specific slice of content to Einstein-Engines. Supermatter Engines are a
form of nuclear reactor, which produces energy in the form of
radioactive particles, while also decaying into Phoron when excited by
an external energy source.

Power can be obtained from the engine via radiation collectors, which
like those of a singularity engine, must be periodically refueled. In
addition, the engine must also be actively cooled via aid from
Atmospherics, and for undesirable gasses to be extracted from the
reactor chamber.

If not cooled, the crystal will begin to destabilize and eventually
collapse into one of three different situations depending on the source
of its instability.
1. A nuclear blast.
2. A gravitational singularity
3. A Tesla ball

:cl: VMSolidus, White Dream, Colin-Tel
- add: Supermatter Engines have been implemented.

---------

Signed-off-by: VMSolidus <[email protected]>
Co-authored-by: whateverusername0 <whateveremail>
Co-authored-by: username <[email protected]>
Co-authored-by: Danger Revolution! <[email protected]>
Co-authored-by: Pieter-Jan Briers <[email protected]>
Co-authored-by: DEATHB4DEFEAT <[email protected]>
Refactors the oracle system and component, making them more customizable
and less trash.

- Most of the nyano shitcode was rewritten in accordance with the new
standards and in a less hardcoded manner (all features were preserved,
with some changes).
- Replaced the accumulator field pattern with the "nextX" pattern for
things oracle does on certain intervals.
- Removed some code duplication and bloat.
- Gave oracle a 75% chance to request technology and 25% to request a
plant.
- When requesting a technology, oracle will only request what's either
already researched, or can be researched soon (that is, the
prerequisites of the research are complete and the research isn't locked
for any reason).
- If there's no research server at the moment when oracle demands an
item, it will only demand a plant
- When dispensing rewards, oracle can now spawn 1, 3, or 5 crystals at
once, and research disks worth 5k, 10k, and 20k research points. Each
one of those have different probabilities (3 crystals and 5k points
still prevail, but occasionally you can get the more expensive rewards).
- When dispensing rewards, oracle now throws them at the person who
fulfilled the request instead of simply spawning them at their feet.

Almost every oracle thing (except for throwing and the amount of liquid
dispensed) can now be configured in the yaml prototype of the oracle.
Forget it

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

https://github.com/user-attachments/assets/9d4be44f-37d5-4072-a6e6-f194764f7ff6

![image](https://github.com/user-attachments/assets/011761d4-8d73-4d65-ba9c-92b25a28e95f)

</p></details>

---
:cl:
- tweak: Oracle requests are now more likely to be aligned with the
current research.
This is a very simple and apparently minor update to the Carrying
System, bringing it up to date with more modern code. The biggest
difference is that rather than having a private one-off implementation
of one of the original Nyano MassContest functions, it uses the new
public Reworked MassContests. With this change, pick up durations no
longer infinitely scale with arbitrary mass, meaning that a hypothetical
2000kg Lamia doesn't have an arbitrarily infinitesimal pickup duration
when trying to pick up a 10kg Harpy. Carrying is also more strictly
limited by mass, rather than by carrying duration, meaning that if a
target character is more than 25% heavier than your character, it will
not be possible to shoulder them. You'll just have to either drag them,
or get a roller bed to move overly massive characters.

The last thing I did was just cleanup all of the code, so that has nice,
Single-IF exit conditions, rather than 30+ line blocks of IF(THING)
RETURN;

Oh, and entities can now set their own internal base PickupDuration, so
that entities can declare however easy or difficult they should be to
pick up!

https://github.com/user-attachments/assets/9ee0f1dd-ac75-406f-8bbd-9a130594d46d

🆑
- tweak: The Carrying system has been reworked as a means of better
supporting having extremely large species and characters. 10kg Harpies
should no longer be oppressed by 2000kg Lamia with infinitely short
carry attempts.
This is a simple rebase of the Blood Drinker System, and its related
features that have been commented out and/or omitted due to its lack of
rebase. I am NOT substantially updating any of this code at this time,
outside of the barest minimum updates needed to make it run in the first
place. The reason I am doing this is that I require the Blood Drinker
system functional as a prerequisite for future features, and I will
update or refactor it when needed.

Arachne are still pending a Full Rework, but that is beyond the scope of
this PR.

- [x] Make the code functional
- [x] Port Arachne
- [x] Uncomment Oneirophages
- [x] Re-add Oneirophage midround event

:cl:
- add: Arachne have been reimplemented!
- add: Oneirophages are back!

---------

Signed-off-by: VMSolidus <[email protected]>
This is a re implementation and complete rewrite of the original
Nyanotrasen CPR feature, this time as its own completely standalone
system. Unlike the original CPR, this system requires no modification of
base game code, and can be toggled on and off via CVars while the server
is running.

Fixes #473
Fixes SS14-Classic#49

🆑
- add: CPR has been added to the game. People with CPR training can now
perform CPR on anyone who is in either crit or dead states.
- add: CPR Training has been added to the game as a new positive trait.
All medical staff start with this trait for free.

---------

Signed-off-by: VMSolidus <[email protected]>
"Mantis" was going to be the original name, but the doubling as
detective lead me to needing to add the qualifier "forensic" to make
that part clearer. The "Mantis" was already there to imply the psionic
part.

For "psionic mantis" defenders, I propose an alternative renaming
scheme:
Mystagogue -> Psionic Mystagogue
Mantis -> Psionic Mantis
Cyborg -> Robotic Cyborg
Chaplain -> Religious Chaplain

Players either already know what a mantis is, or they've got little
enough playtime that there's still some intrigue left in the setting and
it's something they can learn by observation. Weird names are mostly
restricted to one dept here and a tinge harder time understanding it is
what I'd call "Mystery" rather than something that's undesirable here.
The mechanic the mantis interacts with - psionics - is also somewhat
hidden and esoteric.

![image](https://github.com/user-attachments/assets/8706c0cd-97a3-4ed6-a0e4-e23012a461a7)

![image](https://github.com/user-attachments/assets/7e6296fb-52ca-4d4e-b40d-2e166520d4b5)

<!--
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: Rane
- tweak: Renamed "Psionic Mantis" to "Mantis", as it was originally
going to be called.
<!--
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
-->

Reasoning:
1) Hugging your coworkers isn't necessarily always inappropriate, but
it's something that should take a bit more intention than it does now.
2) Event subs in this game right now still have no good method of
handling multiple subscriptions to the same event. The hugging event is
occupying 2 pieces of prime real estate - the empty hand interaction,
which is the most common, and the humanoid interaction, which is the
most common and most important. And for what? Spamming popups and chat
for something that could just be an emote.
3) Because of the above, it's too easy to accidentally hug people while
doing something else - the lack of intersectionality makes people just
ignore hugging because they assume it means nothing and was not
intentional. This does not lead to good roleplay outcomes.
4) I left the petting stuff on animals because that's much more common
and appropriate and you're less likely to be trying to do other complex
interactions with them. Also, since they're usually NPCs, it doesn't
matter if they get desensitized to the interaction as meaningless, or at
least it's out of scope.

:cl: Rane
- remove: Removed the spammable hugging on click. Consider using emotes
for this instead.
Done in partnership with @OldDanceJacket

This PR adds 9 additional physical traits to the game, 5 positive, and 4
negative. While this PR is intended to go with NyanoCombat 2, Part 1 and
2, I have made this PR function completely standalone. It does not
require either of the two other PRs.

- **Will To Live**: Increases your Dead threshold by 10
- **Tenacity**: Increases your Crit threshold by 5
- **Vigor**: Increases your maximum Stamina by 10
- **High Adrenaline**: You gain up to 10% more damage with all melee
attacks when injured.
- **Masochism**: You ignore the first 10% of stamina damage penalties to
melee attacks. If NyanoCombat 2 Part 1 isn't merged yet, this makes you
deal up to 10% more melee damage when you receive stamina damage.
- **Martial Artist**: Your unarmed melee attacks have bonus range, and
deal 50% more damage(for every species in the game, this means 7.5
instead of 5 damage). This trait is identical to one that the Boxer job
receives for free, thus it cannot be taken by Boxers.

- **Will To Die**: Decreases your Dead threshold by 15
- **Glass Jaw**: Decreases your Crit Threshold by 10
- **Lethargy**: Decreases your maximum Stamina by 15
- **Adrenal Dysfunction**: Your melee attacks are penalized by up to 20%
when injured. If NyanoCombat 2 Part 1 is merged, this cancels out the
natural bonus everyone globally gets to melee when injured.
- **Low Pain Tolerance**: Your melee attacks are penalized by up to 15%
when receiving stamina damage. If NyanoCombat 2 Part 1 is merged, this
stacks with the natural penalties everyone globally gets to melee when
taking stamina damage.

- [ ] Let ODJ look over these for balance.

![image](https://github.com/user-attachments/assets/242e8b50-8a5e-4079-bf1d-f952ceeade38)

:cl: VMSolidus and Skubman
- add: 11 new Physical Traits have been added to the game! 6 positive
traits, and 5 negative traits.

---------

Signed-off-by: Danger Revolution! <[email protected]>
Co-authored-by: Angelo Fallaria <[email protected]>
Co-authored-by: Danger Revolution! <[email protected]>
<!--
This is a semi-strict format, you can add/remove sections as needed but
the order/format should be kept the same
Remove these comments before submitting
-->

<!--
Explain this PR in as much detail as applicable

Some example prompts to consider:
How might this affect the game? The codebase?
What might be some alternatives to this?
How/Who does this benefit/hurt [the game/codebase]?
-->

The old sprite-based rendering approach was very limiting, here I've
changed to using an overlay and just constructing the lamia bodies out
of triangles. I'm about happy with it although it's lacking the clothing
feature we added earlier just waiting on art. Networking and perf should
be fine. I don't know how much of the other stuff you want me to clean
up. A lot of unrelated code can probably get just deleted.

- [ ] New base + clothes sprites that look good
- [ ] Support for clothes based texture change (should take 5 mins)

https://github.com/user-attachments/assets/c5022e54-cb3d-4f53-b65c-83863b21df29

<!--
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: Rane
- add: Lamiae should now be rendered much better.
@VMSolidus VMSolidus merged commit c93299b into SS14-Classic:master Aug 10, 2024
7 of 9 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant