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

new engine: fission reactor #36853

Draft
wants to merge 63 commits into
base: Bleeding-Edge
Choose a base branch
from

Conversation

CrazyAmphibian
Copy link
Contributor

@CrazyAmphibian CrazyAmphibian commented Jul 27, 2024

[dmn] [wip] [content] [needspritework]

WIP DO NOT MERGE THIS IT WILL NOT WORK YET PLEASE

todo:

  • actual sprites
  • bug hunting
  • new content
  • fleshing things out

What this does

adds fission reactors - a new way to generate power. fission reactors are made by assembling several tiles together to form a structure. what you place in this structure affects its properties

fuels

the fission reactor takes a fuel mixture. the contents of the mixture affect the power output, as well as duration of the fuel (these 2 variables are further affected by the design of the reactor itself). additionally, the contents will transform into others when going through this process.

the reactor itself

the reactor creates a lot of heat, so make sure you add some coolant ports to it. failure to do so will result in a meltdown. It accepts 1 fuel container at a time, though it can be ejected at any moment if you wish to tweak the mixture.

the internals of the reactor consist of control rods and fuel rods.
fuel rods are where the fission happens. more fuel rods = more power, but faster use. when fuel rods are placed adjacent to another, they receive a bonus to their output at no cost of fuel duration!
of course, to throttle your reactor, you will need control rods. without any control rods, you cannot shut the reactor down! (for the most daring of engineers to attempt.) control rods are able to affect to affect up to 8 fuel rods which surround it. each fuel rod only needs 1 control rod to shut off, but this is (theoretically) optional.

making the fuels

a special machine will be added which can properly dispense, and analyze a fuel mixture to inform you of it's estimated lifetime and heat generation power. This same machine also recycles spent fuel into its new fission byproducts.

new materials!

Radon

Radon is a new gas gotten from the fission reactor. Inhaled, it simply causes radiation damage, but when introduced to something like the shard, it MASSIVELY increases it's output (maybe a bit too much).
it can also be put back into a reactor to reduce the lifetime of the fuel mixture if you wish to speed up the fission process.

Lead

lead is a reagent that is a waste product which has very few uses. when ingested it causes mild brain damage

Thallium

thallium is gotten from certain elements, and is a potent poison.

Plutonium

plutonium is highly radioactive. it can be used in the fission reactor for a high output, or used to make bombs if you get enough of it.

Regenerate Calcium

what happens when you blast calcium with a bunch of radiation? this. it heals brute damage on limbs and can fix broken bones.

irradiation framework

future fission reactions can easily be added to a reagent with the use of an easy to use irradiate() proc, allowing easy integration with other content

Why it's good

adds a new way to get power, as well as some fun toying with fuel mixtures and seeing what happens to materials you place into the reactor, in addition to allowing you to get your hand on some materials in an alternate way.
plus, the new materials to do things with!

How it was tested

still WIP, so not yet.

Changelog

🆑

  • rscadd: Added new thing.
  • rscdel: Removed old thing.
  • bugfix: Fixed a bug that caused something bad to happen.
  • tweak: Changed a 5 to a 6.
  • imageadd: Added new sprites.
  • imagedel: Removed old sprites.
  • experiment: Added an experimental/work-in-progress something.
  • spellcheck: Fixed missing punctuation, typos or restructured a sentence.

@D3athrow-Issues D3athrow-Issues added Content Adds something. Neat! Needs Spritework Code done, need sprites. WiP I'm not completely done yet! labels Jul 27, 2024
@Eneocho Eneocho added the ✋ Do Not Merge ✋ Don't you do it. label Jul 27, 2024
@Eneocho
Copy link
Collaborator

Eneocho commented Jul 27, 2024

Can't wait to build a reactor with a shard in the middle, singulo generators on the sides, surrounded by AME walls, all the while a particle accelerator blasts waves.

@ghost
Copy link

ghost commented Jul 27, 2024

There should be ambient radiation release that is very low or 0 when running optimally but grows larger as the reactor begins to fail so that I can say "2.7 rotenogen"

@Eneocho
Copy link
Collaborator

Eneocho commented Jul 27, 2024

2.7 roentgens...
not bad...
not terrible...
and the fucking coin-bought can in the griefo vendor is not worth the coin for what it contains

@hacker-on-steroids
Copy link
Contributor

hell yeah
image

@CrazyAmphibian
Copy link
Contributor Author

STOP REVIEWING THE CODE IT'S NOT DONE YET

@anonymoose-contributor
Copy link

Assuming this works...similarly to how a real fission reactor works, cooling fuel rods is a must- will cryotheum be useful for cooling down rods or are you planning on possibly implementing its own method for cooling down rods? i.e tanks full of chilled water, etc. Any plans on adding heavy water?

It would be sort of pointless, but I do think having an engine that requires a bit more attention and some real world knowledge would make for a frustrating but fun way to play engineering.

@CrazyAmphibian
Copy link
Contributor Author

Assuming this works...similarly to how a real fission reactor works

a lot of liberties will be taken

are you planning on possibly implementing its own method for cooling down rods?

nope. rods from the reactor will be safe to handle no matter what, as of what's planned for now.

@anonymoose-contributor
Copy link

nope. rods from the reactor will be safe to handle no matter what, as of what's planned for now.

Are fuel rods just going to be an item you buy from cargo or will it be something science makes?

@CrazyAmphibian
Copy link
Contributor Author

Are fuel rods just going to be an item you buy from cargo or will it be something science makes?

you can order it from cargo in a fission reactor setup crate
or you can also make one from plasteel, if you want, too

@anonymoose-contributor
Copy link

Perhaps I'm being bold, but I do think giving uranium another purpose might be a good reason to incentivize this to be something science produces; however I do think that given how easy it is to make RTG cells, fuel rods would go unnoticed.

@CrazyAmphibian
Copy link
Contributor Author

Perhaps I'm being bold, but I do think giving uranium another purpose might be a good reason to incentivize this to be something science produces; however I do think that given how easy it is to make RTG cells, fuel rods would go unnoticed.

>implying scientists ever make anything that doesn't also benefit them

@Eneocho
Copy link
Collaborator

Eneocho commented Sep 26, 2024

still keeping the DNM on amphibian's request

@Eneocho Eneocho added the Needs Moar Testing This issue potentially doesn't actually happen the way it's stated to happen. / Test PR more. label Sep 26, 2024
Copy link
Collaborator

@west3436 west3436 left a comment

Choose a reason for hiding this comment

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

Stopping the review as there is still a large amount of debug code in here. Remove your debug code and address what I've added so far then I will continue.

code/ZAS/Radon.dm Outdated Show resolved Hide resolved
code/datums/supply_packs/engineering.dm Outdated Show resolved Hide resolved
code/modules/fissionreactor/fission.css Outdated Show resolved Hide resolved
code/modules/reagents/reagents/reagents_material.dm Outdated Show resolved Hide resolved
code/modules/reagents/Chemistry-Holder.dm Outdated Show resolved Hide resolved
code/modules/fissionreactor/fuelmaker.dm Outdated Show resolved Hide resolved
code/modules/fissionreactor/fuelmaker.dm Outdated Show resolved Hide resolved
code/modules/fissionreactor/fission_datums.dm Show resolved Hide resolved
Comment on lines +49 to +63
for(var/obj/machinery/fissionreactor/fissionreactor_fuelrod/fuelrod in fuel_rods) //dissassociate all parts (if any still exist).
fuelrod.associated_reactor=null
fuel_rods=list()
for(var/obj/machinery/fissionreactor/fissionreactor_controlrod/controlrod in control_rods)
controlrod.associated_reactor=null
control_rods=list()
for(var/obj/structure/fission_reactor_case/casing in casing_parts)
casing.associated_reactor=null
casing_parts=list()
for(var/obj/machinery/atmospherics/unary/fissionreactor_coolantport/coolport in coolant_ports)
coolport.associated_reactor=null
coolant_ports=list()
if(controller)
controller.associated_reactor=null
controller=null
Copy link
Collaborator

Choose a reason for hiding this comment

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

This is fine, but using weakrefs mitigates the need for this entirely.

@wotisjanitor
Copy link
Contributor

Alright he told me its ready

@west3436
Copy link
Collaborator

Alright he told me its ready

So tell him to update the PR description and set it to "ready"

@wotisjanitor
Copy link
Contributor

He's on vacation, merge the PR please

@Eneocho Eneocho added the Honk Honk label Nov 20, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Content Adds something. Neat! ✋ Do Not Merge ✋ Don't you do it. Honk Honk Needs Moar Testing This issue potentially doesn't actually happen the way it's stated to happen. / Test PR more. Needs Spritework Code done, need sprites.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

7 participants