mirror of
https://github.com/Aurorastation/Aurora.3.git
synced 2026-08-21 20:11:04 +01:00
Fixes https://github.com/Aurorastation/Aurora.3/issues/18951 Fixes https://github.com/Aurorastation/Aurora.3/issues/19447 Fixes https://github.com/Aurorastation/Aurora.3/issues/20283 Fixes https://github.com/Aurorastation/Aurora.3/issues/21395 Overhauls a wide variety of INDRA behaviors and related gas/material properties. changes: - balance: "Fusion reaction modifications. Higher radiation and temperature output, comparable power output." - balance: "Increased rad resistance modifier of Borosilicate Windows from 1 -> 4 and (closed) Blast Doors from 1 -> 6." - balance: "INDRA Field Strength minima/maxima changed from 1-100 -> 20-120. Power costs increased significantly." - balance: "INDRA instability increase per tick now limited, similar to Supermatter (prevents sudden instability spike from instantly nuking it)." - balance: "APC cell charge rate increased 10x." - balance: "Rebalanced contents of INDRA hard storage compartment." - balance: "SMES coils capacities halved, throughputs doubled." - balance: "SMES unit maximum coil capacity increased from 6 -> 8." - balance: "TEG maximum power output increased from 500000 -> 2500000." - balance: "Power wasted from exceeding TEG maximum power output decreased from 50% to 33%." - balance: "Portable generators of all types have had their power generation capacity doubled." - rscadd: "New 'Fusion Codex' app added for all crew with ACCESS_ENGINE that details all available nuclear fusion chains." - rscadd: "Boron added as a singleton/reagent. Poisonous to vaurca, still usable in nuclear fusion as fuel assembly rods." - rscadd: "INDRA Field Strength now scales plasma temperature entropy, power output from temperature multiplier, and instability increase per tick." - refactor: "'Boron' gas renamed to 'Helium-3'. Boron is not a gas. Deal with it." - refactor: "'Steam' gas renamed to 'Water Vapor'." - code_imp: "Descriptions added to gas singletons for future use." - qol: "Minor remap of INDRA control room for usability." - qol: "Standardized gas canister naming conventions." - qol: "INDRA and APC TGUI interfaces now use use kW, MW abbreviations for high wattages." - bugfix: "INDRA Kinetic Harvester no longer rapidly deselects materials for harvest when too many are being generated at once." - bugfix: "INDRA EM Field effect no longer considers the camera within its reactor chamber a destabilizing influence." - bugfix: "INDRA reactor core now produces radiation as intended." - bugfix: "Deuterium and Tritium canisters no longer contain 50% standard hydrogen (inheritance issue)." --------- Signed-off-by: Batrachophreno <Batrochophreno@gmail.com> Co-authored-by: Matt Atlas <mattiathebest2000@hotmail.it> Co-authored-by: Geeves <22774890+Geevies@users.noreply.github.com>
86 lines
2.4 KiB
Plaintext
86 lines
2.4 KiB
Plaintext
/obj/item/fuel_assembly
|
|
name = "fuel rod assembly"
|
|
icon = 'icons/obj/machinery/fusion.dmi'
|
|
icon_state = "fuel_assembly"
|
|
|
|
var/material_name
|
|
var/percent_depleted = 1
|
|
var/list/rod_quantities = list()
|
|
var/fuel_type
|
|
var/fuel_colour
|
|
var/radioactivity = 0
|
|
var/initial_amount
|
|
|
|
/obj/item/fuel_assembly/New(newloc, _material, _colour)
|
|
if(_material)
|
|
fuel_type = _material
|
|
if(_colour)
|
|
fuel_colour = _colour
|
|
..(newloc)
|
|
|
|
/obj/item/fuel_assembly/Initialize()
|
|
. = ..()
|
|
|
|
if(ispath(fuel_type, /singleton/reagent))
|
|
var/singleton/reagent/R = GET_SINGLETON(fuel_type)
|
|
fuel_type = lowertext(initial(R.name))
|
|
fuel_colour = initial(R.color)
|
|
initial_amount = 50000
|
|
|
|
var/material/material = SSmaterials.get_material_by_name(fuel_type)
|
|
if(istype(material))
|
|
initial_amount = SHEET_MATERIAL_AMOUNT * 5 // Fuel compressor eats 5 sheets.
|
|
name = "[material.use_name] fuel rod assembly"
|
|
desc = "A fuel rod for a fusion reactor. This one is made from [material.use_name]."
|
|
fuel_colour = material.icon_colour
|
|
fuel_type = material.use_name
|
|
if(material.radioactivity)
|
|
radioactivity = material.radioactivity
|
|
desc += " It is warm to the touch."
|
|
START_PROCESSING(SSprocessing, src)
|
|
if(material.luminescence)
|
|
set_light(material.luminescence, material.luminescence, material.icon_colour)
|
|
else
|
|
name = "[fuel_type] fuel rod assembly"
|
|
desc = "A fuel rod for a fusion reactor. This one is made from [fuel_type]."
|
|
|
|
icon_state = "fuel_assembly"
|
|
var/image/I = image(icon, "fuel_assembly")
|
|
I.color = fuel_colour
|
|
AddOverlays(list(I, image(icon, "fuel_assembly_bracket")))
|
|
rod_quantities[fuel_type] = initial_amount
|
|
|
|
/obj/item/fuel_assembly/process()
|
|
. = ..()
|
|
if(!radioactivity)
|
|
return PROCESS_KILL
|
|
|
|
if(isturf(loc))
|
|
SSradiation.radiate(src, max(1,Ceil(radioactivity/15)))
|
|
|
|
/obj/item/fuel_assembly/Destroy()
|
|
STOP_PROCESSING(SSprocessing, src)
|
|
return ..()
|
|
|
|
// Mapper shorthand.
|
|
/obj/item/fuel_assembly/deuterium/New(newloc)
|
|
..(newloc, MATERIAL_DEUTERIUM)
|
|
|
|
/obj/item/fuel_assembly/tritium/New(newloc)
|
|
..(newloc, MATERIAL_TRITIUM)
|
|
|
|
/obj/item/fuel_assembly/phoron/New(newloc)
|
|
..(newloc, MATERIAL_PHORON)
|
|
|
|
/obj/item/fuel_assembly/supermatter/New(newloc)
|
|
..(newloc, MATERIAL_SUPERMATTER)
|
|
|
|
/obj/item/fuel_assembly/hydrogen/New(newloc)
|
|
..(newloc, MATERIAL_HYDROGEN_METALLIC)
|
|
|
|
/obj/item/fuel_assembly/iron/New(newloc)
|
|
..(newloc, MATERIAL_IRON)
|
|
|
|
/obj/item/fuel_assembly/boron/New(newloc)
|
|
..(newloc, MATERIAL_BORON)
|