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

Port "Supermatter Engine" from EE #1578

Closed
wants to merge 2 commits into from

Conversation

WarMechanic
Copy link
Contributor

@WarMechanic WarMechanic commented Aug 4, 2024

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

image
image

I'll mark the PR as review ready, but I'll just do the videos when I can.

  • I have added screenshots/videos to this PR showcasing its changes ingame, or this PR does not require an ingame showcase

Breaking changes

Nope, it works

Changelog

VMSolidus, White Dream, Colin-Tel, WarMechanic

  • add: Supermatter Engines have been implemented.

VMSolidus and others added 2 commits August 4, 2024 15:35
![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]>
@github-actions github-actions bot added Changes: YML Changes any yml files Changes: C# Changes any cs files Changes: Localization Changes any ftl files Changes: Documentation Changes any xml or md files Changes: Sprite Changes any png or json in an rsi labels Aug 4, 2024
Copy link
Contributor

github-actions bot commented Aug 4, 2024

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

Resources/Textures/Supermatter/supermatter.rsi

State Old New Status
supermatter Added

Resources/Textures/Supermatter/supermatter_sliver.rsi

State Old New Status
icon Added

@WarMechanic WarMechanic marked this pull request as ready for review August 4, 2024 07:11
Copy link
Member

@deltanedas deltanedas left a 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;
Copy link
Member

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";
Copy link
Member

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;
Copy link
Member

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 =
Copy link
Member

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";
Copy link
Member

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;
Copy link
Member

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;
Copy link
Member

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>()
Copy link
Member

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()
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

GasFact exists

@DangerRevolution
Copy link
Contributor

THE GUIDEBOOK ENTRY NEEDS A TITLE STRING!!

@NullWanderer NullWanderer marked this pull request as draft August 4, 2024 19:49
@NullWanderer NullWanderer added Status: Do Not Merge Don't merge this yet Status: Needs Cleanup Someone has to clean this before merging labels Aug 4, 2024
@VMSolidus

This comment was marked as off-topic.

@VMSolidus

This comment was marked as off-topic.

@Samsterious
Copy link
Contributor

Samsterious commented Sep 5, 2024

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).

@Bonktrauma
Copy link
Contributor

Bonktrauma commented Sep 7, 2024

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.

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.
If one engineer messes up, usually you'll know

@TadJohnson00
Copy link
Contributor

Is this still being worked on @WarMechanic?

@github-actions github-actions bot added the Status: Merge Conflict Fix your PR! label Sep 22, 2024
Copy link
Contributor

This pull request has conflicts, please resolve those before we can evaluate the pull request.

@MilonPL
Copy link
Contributor

MilonPL commented Nov 6, 2024

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.

@MilonPL MilonPL closed this Nov 6, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Changes: C# Changes any cs files Changes: Documentation Changes any xml or md files Changes: Localization Changes any ftl files Changes: Sprite Changes any png or json in an rsi Changes: YML Changes any yml files Status: Do Not Merge Don't merge this yet Status: Merge Conflict Fix your PR! Status: Needs Cleanup Someone has to clean this before merging
Projects
None yet
Development

Successfully merging this pull request may close these issues.

9 participants