* Replace instances of SolutionContainerSystem with SharedSolutionContainerSystem
* guap
* More fixes
* Wait you can do that?
---------
Co-authored-by: Pieter-Jan Briers <pieterjan.briers+git@gmail.com>
(cherry picked from commit ef1fadf2752789ffc4f59309e2dd7490aee6f4e7)
# Description
This isn't fixing all of them by the way, I still need to completely
rewrite the equations for the glimmer generating structures so the math
there isn't completely terrible. This fixes a few bugs related to the
glimmer system, such as linear decay not being consistent regardless of
server ping, and also glimmer generating structures also not being
consistent based on server ping. Both are now correctly differentiated
with respect to time.
Problem though is that the glimmer generator math is still extremely
awful, so that's going to need a rewrite.
After deeply analyzing the glimmer equations, I figured out that they
were being screwed over by floating point precision limits, so to
address this I made Glimmer work on doubles instead.
I also fixed a bug where generating enough Potentia to gain two or more
powers in a single draw caused the user to permanently lose their
ability to generate new powers. It's not abundantly clear why this was
happening, because nothing changed this code at all since I last touched
it.
# Changelog
🆑
- fix: Fixed various bugs with psionics.
- fix: Fixed a bug where if you generated enough Potentia during a drug
induced psionics roll to gain two powers, you would only gain one power
instead, while permanently losing the ability to gain new powers.
- fix: Fixed glimmer being permanently stuck between 500 and 600 by
revisiting the math and discovering an algebra error I made a year ago.
- tweak: Glimmer now operates on double precision. Have fun with that
breaking change if you made any psionic code downstream. Hint, you can
cast doubles into a (float) if you don't wish to convert your system to
double.
(cherry picked from commit 43e333ec41ca1706f3c204ef994351d69fd5c28c)
<!--
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]?
-->
Adds lathe messages when new recipes are unlocked, ported from goob LRP
# 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: Lathes will now notify you when they have new recipes
---------
Signed-off-by: VMSolidus <evilexecutive@gmail.com>
Signed-off-by: EctoplasmIsGood <109397347+EctoplasmIsGood@users.noreply.github.com>
Co-authored-by: BombasterDS <115770678+BombasterDS@users.noreply.github.com>
Co-authored-by: VMSolidus <evilexecutive@gmail.com>
(cherry picked from commit fd9cfbb512e5ff6130ecded09ee498224e29ed2d)
# Description
This PR fully replaces the "Tier 3 Tech Lockout" with a research
softcap. How it works is that technologies are allowed to set a softcap
contribution, meaning that they multiplicatively increase the cost of
all other research by a certain amount. By default, this is done by all
Tier 3 Technologies. Essentially, this means that you're no longer
limited to a single research category's tier 3 selections. Instead the
costs of research increase the more capstones you unlock. The current
cost increase for research is displayed on the console.
<details><summary><h1>Media</h1></summary>
<p>

</p>
</details>
# Changelog
🆑
- remove: Removed the "Tier 3 Tech Lockout" mechanic. You are no longer
limited to 1 discipline worth of t3 research.
- add: Research is now "Softcapped" by Tier 3 unlocks. Each unlocked
Tier 3 technology multiplicatively increases the cost of all other
research. Rushing a capstone can be quite expensive, as will be getting
multiple capstones. I hope you're glad that you can build more than one
prober now without guaranteeing the station will explode.
(cherry picked from commit b7da1f4ff64ca3ce8c4dc4545186573174b3e89c)
# Description
This PR brings back a feature that was present in the Psionic Refactor
Version 1, which ultimately never made it into the game. I have
substantially reworked the underlying math behind Glimmer, such that it
operates on a Logistic Curve described by this equation:

Instead of 0 being the "Normal" amount of glimmer, the "Normal" amount
is the "seemingly arbitrary" number 502.941. This number is measured
first by taking the derivative of the Glimmer Equation, and then solving
for the derivative equal to 1. Above this constant, glimmer grows
exponentially more difficult to increase. Below this constant, glimmer
grows exponentially easier to increase. It will thus constantly attempt
to trend towards the "Glimmer Equilibrium".
Probers, Drainers, Anomalies, and Glimmer Mites all cause glimmer to
"Fluctuate", either up or down the graph. This gives a glimmer that
swings constantly to both high and low values, with more violent swings
being caused by having more probers/anomalies etc. A great deal of math
functions have been implemented that allow for various uses for glimmer
measurements, and psionic powers can even have their effects modified by
said measurements.
The most significant part of this rework is what's facing Epistemics.
It's essentially no longer possible for Probers to cause a round-ending
chain of events known as "Glimmerloose". You can ALWAYS recover from
high glimmer, no matter how high it gets. As a counterpart to this,
Probers have had the math behind their research point generation
reworked. Research output follows an inverse log base 4 curve. Which can
be found here: https://www.desmos.com/calculator/q183tseun8
I wouldn't drop this massive update on people without a way for them to
understand what's going on. So this PR also features the return(and
expansion of), the much-demanded Psionics Guidebook.
<details><summary><h1>Media</h1></summary>
<p>
Psionics Guidebook


</p>
</details>
# Changelog
🆑 VMSolidus, Gollee
- add: Glimmer has been substantially reworked. Please read the new
Psionics Guidebook for more information. In short: "500 is the new
normal glimmer. Stop panicking if Sophia says the glimmer is 500. Call
code white if it gets to 750 and stays above that level."
- add: The much-requested Psionics Guidebook has returned, now with all
new up-to-date information.
- remove: Removed "GLIMMERLOOSE". It's no longer possible for glimmer to
start a chain of events that ends the round if epistemics isn't
destroyed. You can ALWAYS recover from high glimmer now.
- tweak: All glimmer events have had their thresholds tweaked to reflect
the fact that 500 is the new "Normal" amount of glimmer.
---------
Signed-off-by: VMSolidus <evilexecutive@gmail.com>
(cherry picked from commit 638071c48fe3ac7c727a1294de3b6d5d8136e79f)
# Description
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.
# TODO
Forget it
<details><summary><h1>Media</h1></summary><p>
https://github.com/user-attachments/assets/9d4be44f-37d5-4072-a6e6-f194764f7ff6

</p></details>
---
# Changelog
🆑
- tweak: Oracle requests are now more likely to be aligned with the
current research.
## Mirror of PR #26421: [Nerf ninja research
stealing](https://github.com/space-wizards/space-station-14/pull/26421)
from <img src="https://avatars.githubusercontent.com/u/10567778?v=4"
alt="space-wizards" width="22"/>
[space-wizards](https://github.com/space-wizards)/[space-station-14](https://github.com/space-wizards/space-station-14)
###### `3b9c5d43ec97a0693ced0118fcfcb8467aa5595e`
PR opened by <img
src="https://avatars.githubusercontent.com/u/98561806?v=4"
width="16"/><a href="https://github.com/EmoGarbage404">
EmoGarbage404</a> at 2024-03-25 01:44:21 UTC - merged at 2024-03-26
00:52:27 UTC
---
PR changed 4 files with 75 additions and 8 deletions.
The PR had the following labels:
- Status: Needs Review
---
<details open="true"><summary><h1>Original Body</h1></summary>
> <!-- Please read these guidelines before opening your PR:
https://docs.spacestation14.io/en/getting-started/pr-guideline -->
> <!-- The text between the arrows are comments - they will not be
visible on your PR. -->
>
> ## About the PR
> <!-- What did you change in this PR? -->
> Changes ninja gloves to steal a flat rate of techs instead of wiping
all of them.
> Additionally adjusts the objective to require 1 to 2 steals to reach
the target amount.
>
> ## Why / Balance
> <!-- Why was it changed? Link any discussions or issues here. Please
discuss how this would affect game balance. -->
> Ninja's stealing research was previously an extremely trivial and
annoying objective. For them, you can pretty easily break into the
server room and wait out the 20 second doafter. It's not super hard and
you're not exactly shooting off warning signs. At this very low cost,
science loses literally an hour+ of progress.
>
> This nerf changes it to only remove 4-8 random technologies, or only
about 20k to 40k points worth. This is still pretty crippling but not
awful. On top of that, they need to do it twice to hit the target
amounts of 9 to 12 techs stolen. This provides counterplay by actually
giving science a chance to see that all their research has vanished
before the ninja is already gone. It also makes it significantly harder
for ninja to obliterate everything science has done.
>
> ## Media
> <!--
> PRs which make ingame changes (adding clothing, items, new features,
etc) are required to have media attached that showcase the changes.
> Small fixes/refactors are exempt.
> Any media may be used in SS14 progress reports, with clear credit
given.
>
> If you're unsure whether your PR will require media, ask a maintainer.
>
> Check the box below to confirm that you have in fact seen this (put an
X in the brackets, like [X]):
> -->
>
> - [x] I have added screenshots/videos to this PR showcasing its
changes ingame, **or** this PR does not require an ingame showcase
>
> ## Breaking changes
> <!--
> List any breaking changes, including namespace, public
class/method/field changes, prototype renames; and provide instructions
for fixing them. This will be pasted in #codebase-changes.
> -->
>
> **Changelog**
> <!--
> Make players aware of new features and changes that could affect how
they play the game by adding a Changelog entry. Please read the
Changelog guidelines located at:
https://docs.spacestation14.io/en/getting-started/pr-guideline#changelog
> -->
>
> 🆑
> - tweak: Ninjas no longer wipe all technologies when using their
gloves on a research server.
>
</details>
Co-authored-by: SimpleStation14 <Unknown>
* fix(research): Fix `ResearchSystem.Client` `UpdateClientInterface` preconditions.
Fixes a paradox where selecting a research server requires a research server to already be selected.
This would softlock the research client until it is reconstructed.
* style: Discards the discard operator
Co-authored-by: Nemanja <98561806+EmoGarbage404@users.noreply.github.com>
---------
Co-authored-by: Nemanja <98561806+EmoGarbage404@users.noreply.github.com>
(cherry picked from commit aaf5d0d30254d27d319b2b5f5874ebe787537f0a)
* clean up a bunch of R&D code
* don't store components
* brug
* speedrun some sloth review
* technology disks
* expand functionality, begin work on printer
* disk printer ui
* file
* fix the rebase
* disk console is finito
* Update DiskConsoleSystem.cs
* Chem master
* Drone support for handhelds
* Vending machines, scanners
* Cloners, R&D computers
* make research a little less sussy
* Unfuck wires
* PA control computer
* Unfuck merge
* Clean up git gore for good
* Disposals
* Microwaves
* paper
* Magic mirror
* More vendors for drones
* Solar computer whitelist
* EFR review updates