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

Supermatter Engine (Port From White Dream) #341

Merged
merged 47 commits into from
Aug 3, 2024

Conversation

VMSolidus
Copy link
Member

@VMSolidus VMSolidus commented Apr 25, 2024

Description

SM boom

New edge supermatter

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

Changelog

🆑 VMSolidus, White Dream, Colin-Tel

  • add: Supermatter Engines have been implemented.

@github-actions github-actions bot added Changes: C# Changes any cs files Changes: Localization Changes any ftl files Changes: Sprite Changes any png or json in an RSI Changes: YML Changes any yml files labels Apr 25, 2024
Copy link
Contributor

github-actions bot commented Apr 25, 2024

RSI Diff Bot; head commit 10989f4 merging into b744818
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

Edit: diff updated after 10989f4

@VMSolidus
Copy link
Member Author

VMSolidus commented Apr 25, 2024

TODO LIST:

ESSENTIAL:

  • Fix the sound looping.
  • Fix the broken code segment for changing out the AudioStream. SharedAudioSystem, unlike AudioSystem, no longer accepts a non-nullable audio input, and so I have to replace this with a gross switch statement for all 3 SM sound states. Someone more experienced than me is reading this right now and will probably comment that I'm wrong. If you are this person, please do so.
  • Map a variant of Edge station, called Edge-Experimental- that features a Supermatter Engine. Which will be used for testing purposes. I should probably get whoever is the maintainer for Edge involved with this. Essentially, a Supermatter-Engine has approximately the same footprint of a full-size Singularity-Engine, and so in theory any station with one can be modified to have the other.

Nice to haves that aren't required for this PR, and could in theory be a separate PR:

  • Implement a physical radiation alarm object. This should be mapped outside the 3rd radiation shielding layer, such as for example inside the engineering lobby, and before someone enters the double airlocks to get to the work area. Essentially, an alarm for if the supermatter is overcharged to a point it can blast radiation through its second shell. Like a stationary geiger counter, except it's not measuring anything, it's just a very loud alarm.
  • Make a computer terminal that lets engineers view certain statistics about the core. Core temperature, Power Output, etc.
  • Make geiger counters wearable on the neck slot.
  • Make a radiation badge item that "Dies" if exposed to rads, with a funny popup the player can miss if they aren't paying attention.
  • Port mass drivers from SS13. Traditionally, supermatter engines had a core ejection system linked to a locked button in the CE's office.
  • Port Emitter Mirrors from SS13. Not necessary, but it adds mapper flexibility if more than one emitter can strike an SM crystal from the same side.
  • Make the core more visually interesting with shaders, special fx, etc.
  • Make a server configurable optional Announcer & Automatic Shuttle Call for if the crystal gets to a certain threshold.

@github-actions github-actions bot added Changes: Map Changes any yml file in the Maps directories and removed Changes: YML Changes any yml files labels Apr 26, 2024
@VMSolidus
Copy link
Member Author

image

Edge now includes an experimental Supermatter Engine, pending review from Colintel

@Colin-Tel
Copy link
Contributor

Colin-Tel commented Apr 26, 2024

After playing around with it for a bit, I am ecstatic thinking about the disasters gameplay that will result from this! I think it looks quite alright on Edge as is, however I think we could afford maybe a few more plasma tanks for the SM area, and I think instead of directing the distro air through the windows on both sides of the "SM command center," we could potentially have the lines both go through the command center instead.

I'm not totally resolute on that second part, as it's nice for the command center to just be a "computers and equipment" area rather than a "we check the physical pipes here too" area. I kind of like the way it's spread out.

So as far as the map is concerned, I am thoroughly enthused. I do think however there could be a distro vent and scrubber in the surrounding chamber, and there could be buttons inside the chamber that open/shut radiation shutters on specific sides.

@Colin-Tel
Copy link
Contributor

Radiation Collectors' "help" button directs them to a guidebook page about the singularity. This would ideally be changed.

@VMSolidus
Copy link
Member Author

New edge supermatter

Edge station has just gotten a new version, courtesy of @Colin-Tel . Thank you for working with us on this project!

Copy link
Contributor

@DangerRevolution DangerRevolution left a comment

Choose a reason for hiding this comment

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

This really should arc to Tesla posts, akin to the Tesla...

the main appeal for saying "Hey, come to EE we have that cool power source from 13!" is that people join, and it's like 13, maybe even expanded. Saying "oh this is kinda, half of what it was in 13" is meh.

@DangerRevolution
Copy link
Contributor

This should also have a render of Edge.yml attached :)

@VMSolidus
Copy link
Member Author

This really should arc to Tesla posts, akin to the Tesla...

the main appeal for saying "Hey, come to EE we have that cool power source from 13!" is that people join, and it's like 13, maybe even expanded. Saying "oh this is kinda, half of what it was in 13" is meh.

I would literally rather close the PR than make it a tesla clone.

@DangerRevolution
Copy link
Contributor

DangerRevolution commented Apr 30, 2024

This really should arc to Tesla posts, akin to the Tesla...
the main appeal for saying "Hey, come to EE we have that cool power source from 13!" is that people join, and it's like 13, maybe even expanded. Saying "oh this is kinda, half of what it was in 13" is meh.

I would literally rather close the PR than make it a tesla clone.

why not merge the two :) Tesla is just a cope supermatter

@VMSolidus
Copy link
Member Author

This really should arc to Tesla posts, akin to the Tesla...
the main appeal for saying "Hey, come to EE we have that cool power source from 13!" is that people join, and it's like 13, maybe even expanded. Saying "oh this is kinda, half of what it was in 13" is meh.

I would literally rather close the PR than make it a tesla clone.

why not merge the two :) Tesla is just a SM cope

Tesla can stay SM cope because this is Baystation SM, not /tg/station SM. Being the atmos autism simulator is the main appeal of this version of the engine lol.

@LovelyLophi
Copy link
Member

This really should arc to Tesla posts, akin to the Tesla...
the main appeal for saying "Hey, come to EE we have that cool power source from 13!" is that people join, and it's like 13, maybe even expanded. Saying "oh this is kinda, half of what it was in 13" is meh.

I would literally rather close the PR than make it a tesla clone.

why not merge the two :) Tesla is just a SM cope

Tesla can stay SM cope because this is Baystation SM, not /tg/station SM. Being the atmos autism simulator is the main appeal of this version of the engine lol.

I don't see why there couldn't be a scenario that makes the SM arc to tesla posts, would add more variety and options for the engineering team to power the station

@DangerRevolution
Copy link
Contributor

This really should arc to Tesla posts, akin to the Tesla...
the main appeal for saying "Hey, come to EE we have that cool power source from 13!" is that people join, and it's like 13, maybe even expanded. Saying "oh this is kinda, half of what it was in 13" is meh.

I would literally rather close the PR than make it a tesla clone.

why not merge the two :) Tesla is just a SM cope

Tesla can stay SM cope because this is Baystation SM, not /tg/station SM. Being the atmos autism simulator is the main appeal of this version of the engine lol.

kinda real, can we re-enable Tesla :)

@VMSolidus
Copy link
Member Author

This really should arc to Tesla posts, akin to the Tesla...
the main appeal for saying "Hey, come to EE we have that cool power source from 13!" is that people join, and it's like 13, maybe even expanded. Saying "oh this is kinda, half of what it was in 13" is meh.

I would literally rather close the PR than make it a tesla clone.

why not merge the two :) Tesla is just a SM cope

Tesla can stay SM cope because this is Baystation SM, not /tg/station SM. Being the atmos autism simulator is the main appeal of this version of the engine lol.

kinda real, can we re-enable Tesla :)

Oh absolutely, please do. I would love to see engine variety across maps.

Copy link
Contributor

@DangerRevolution DangerRevolution left a comment

Choose a reason for hiding this comment

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

pog: #350

@VMSolidus
Copy link
Member Author

Yea I'm going to leave the minor feature list for a separate PR so that this won't PR bloat harder than it already has. We've deadass included a whole map rework in this PR, I'm not adding 6 new semi-unrelated items in addition to an entire new engine.

@VMSolidus
Copy link
Member Author

@DEATHB4DEFEAT @Pspritechologist @Peptide90 @OldDanceJacket this is ready again for review. Please don't let it sit for a month unreviewed.

@DEATHB4DEFEAT
Copy link
Member

:trollface:

@VMSolidus VMSolidus added Priority: 1-Urgent Must be resolved immediately and removed Priority: 2-High Needs to be resolved as soon as possible labels Jul 30, 2024
VMSolidus and others added 4 commits July 30, 2024 19:49
* Add job whitelist system

* Address reviews

* Fix name

* Apply suggestions from code review

Co-authored-by: Pieter-Jan Briers <[email protected]>

* cancinium

---------

Co-authored-by: Pieter-Jan Briers <[email protected]>
@VMSolidus
Copy link
Member Author

image

By request from Goobstation, I have added one of my signature "CVar Control Rooms" to Supermatter, adding 7 new CVars related to Supermatter.

Content.Shared/CCVar/CCVars.cs Outdated Show resolved Hide resolved
Resources/Locale/en-US/objectives/conditions/steal.ftl Outdated Show resolved Hide resolved
Resources/Locale/en-US/supermatter/supermatter.ftl Outdated Show resolved Hide resolved
Resources/Locale/en-US/supermatter/supermatter.ftl Outdated Show resolved Hide resolved
Resources/Locale/en-US/supermatter/supermatter.ftl Outdated Show resolved Hide resolved
Resources/Prototypes/Guidebook/engineering.yml Outdated Show resolved Hide resolved
Content.Server/Supermatter/Systems/SupermatterSystem.cs Outdated Show resolved Hide resolved
VMSolidus and others added 5 commits August 2, 2024 01:04
Co-authored-by: DEATHB4DEFEAT <[email protected]>
Signed-off-by: VMSolidus <[email protected]>
Co-authored-by: DEATHB4DEFEAT <[email protected]>
Signed-off-by: VMSolidus <[email protected]>
Co-authored-by: DEATHB4DEFEAT <[email protected]>
Signed-off-by: VMSolidus <[email protected]>
Co-authored-by: DEATHB4DEFEAT <[email protected]>
Signed-off-by: VMSolidus <[email protected]>
@VMSolidus
Copy link
Member Author

Final update is complete, and I have tested supermatter ingame to verify that it works.

8mb.video-UdQ-XTe8cZxn.mp4

@OldDanceJacket OldDanceJacket merged commit 80e48a5 into Simple-Station:master Aug 3, 2024
13 checks passed
SimpleStation14 added a commit that referenced this pull request Aug 3, 2024
@whateverusername0
Copy link
Contributor

chat we did it
we saved the station 🍾

Peptide90 pushed a commit that referenced this pull request Aug 9, 2024
# Description

This refactors Geiger Counters so that their behavior of "Only making
sound to a person holding them" is no longer hardcoded. The
GeigerCounterComponent now can define how loud it ticks, how far away
people can hear the ticks, and whether it plays only for the person
holding it or for anyone nearby. This PR partially fulfills one of the
"Nice To Have" features requested for
#341 by making it
possible to create stationary radiation alarm objects. It also serves as
a substantial quality of life improvement for Engineering and Science
crew, since it's now possible to place an active Geiger counter in the
artifact lab, and then be able to audibly hear if the lab becomes
radioactive due to an artifact.

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



https://github.com/user-attachments/assets/74122135-7345-4995-bb0e-d1216e1d53b6



https://github.com/user-attachments/assets/de79db6f-e1c1-471f-88b5-0a47ff4bfa16


</p>
</details>

# Changelog

:cl:
- add: Geiger Counters other than ones installed in Hardsuits now
generate an audible sound when active and exposed to radiation.
- add: Wall mounted geiger counters have been added to the game.

---------

Signed-off-by: VMSolidus <[email protected]>
tmcqueen pushed a commit to tmcqueen/Syndicate-Station that referenced this pull request Aug 24, 2024
# Description

This refactors Geiger Counters so that their behavior of "Only making
sound to a person holding them" is no longer hardcoded. The
GeigerCounterComponent now can define how loud it ticks, how far away
people can hear the ticks, and whether it plays only for the person
holding it or for anyone nearby. This PR partially fulfills one of the
"Nice To Have" features requested for
Simple-Station#341 by making it
possible to create stationary radiation alarm objects. It also serves as
a substantial quality of life improvement for Engineering and Science
crew, since it's now possible to place an active Geiger counter in the
artifact lab, and then be able to audibly hear if the lab becomes
radioactive due to an artifact.

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



https://github.com/user-attachments/assets/74122135-7345-4995-bb0e-d1216e1d53b6



https://github.com/user-attachments/assets/de79db6f-e1c1-471f-88b5-0a47ff4bfa16


</p>
</details>

# Changelog

:cl:
- add: Geiger Counters other than ones installed in Hardsuits now
generate an audible sound when active and exposed to radiation.
- add: Wall mounted geiger counters have been added to the game.

---------

Signed-off-by: VMSolidus <[email protected]>
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: Sprite Changes any png or json in an RSI Changes: YML Changes any yml files Holy Shit Priority: 1-Urgent Must be resolved immediately Size: 2-Large For large issues/PRs Status: Needs Review Someone please review this Type: Feature Creation of or significant changes to a feature Type: Port Brings something to here from another codebase
Projects
None yet
Development

Successfully merging this pull request may close these issues.

9 participants