-
Notifications
You must be signed in to change notification settings - Fork 297
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
Port "Supermatter Engine" from EE #1578
Conversation
![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]>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
all these files should be in ee or deltav folders
/// The SM will only cycle if activated. | ||
/// </summary> | ||
[DataField] | ||
public bool Activated = false; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
dont need = false
public bool Activated = false; | ||
|
||
[DataField] | ||
public string SliverPrototype = "SupermatterSliver"; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
EntProtoId
/// If removed - delamination timer is divided by 2. | ||
/// </summary> | ||
[DataField] | ||
public bool SliverRemoved = false; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
dont need = false
[DataField] | ||
public bool SliverRemoved = false; | ||
|
||
public string[] LightningPrototypes = |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
add datafield and use EntProtoId
}; | ||
|
||
[DataField] | ||
public string SingularitySpawnPrototype = "Singularity"; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
entprotoid for all these...
public int DamageDelaminationPoint = 900; | ||
|
||
[DataField] | ||
public bool Delamming = false; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
dont need
public string AlertCodeDeltaId = "delta"; | ||
|
||
[DataField] | ||
public bool DelamAnnounced = false; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
dont need
/// How much gas is in the SM | ||
/// </summary> | ||
[DataField] | ||
public Dictionary<Gas, float> GasStorage = new Dictionary<Gas, float>() |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
should be using a GasMixture
/// Stores information about how every gas interacts with the SM | ||
/// </summary> | ||
//TODO: Replace this with serializable GasFact array something | ||
public readonly Dictionary<Gas, (float TransmitModifier, float HeatPenalty, float PowerMixRatio)> GasDataFields = new() |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
GasFact exists
THE GUIDEBOOK ENTRY NEEDS A TITLE STRING!! |
This comment was marked as off-topic.
This comment was marked as off-topic.
This comment was marked as off-topic.
This comment was marked as off-topic.
One of the problems we are faced with in Delta-V that is not a problem on Wizden is that teslaloose/singuloose/delam is not a fun or engaging mechanic for 99% of the station's crew. It is sudden death with zero agency. One engineer's mistake forces round end for the entire station. In an LRP context, "funni" is an adequate justification to blow up the station. In MRP, that does not suffice. I definitely think we want supermatter engines, if only because they sound so fucking cool, but I think we should dedicate some time to thinking about how we can make these scenarios more engaging or whether we just want to make these engines fail gracefully (i.e. it simply stops working or maybe just blows up the chamber instead of killing half the people on the station). |
The thing is, You KNOW if it's going to delam, it warns you, ALOT and usually it's rather slow, so like singularity, aslong as you set it up properly, you should be fine. |
Is this still being worked on @WarMechanic? |
This pull request has conflicts, please resolve those before we can evaluate the pull request. |
Since this PR has been set to draft and received no commits since being created 3 months ago, I will be closing it for now. If you ever return to this PR, feel free to open up a new submission. |
This one's been a long time coming. Finally, engineering gets more content.
Ports the supermatter engine from EE.
Does not actually map the supermatter engine into the maps that need it.
Media
I'll mark the PR as review ready, but I'll just do the videos when I can.
Breaking changes
Nope, it works
Changelog
VMSolidus, White Dream, Colin-Tel, WarMechanic