diff --git a/code/modules/modular_computers/file_system/programs/sm_monitor.dm b/code/modules/modular_computers/file_system/programs/sm_monitor.dm index 83bdae25f9a5..ae40497444b7 100644 --- a/code/modules/modular_computers/file_system/programs/sm_monitor.dm +++ b/code/modules/modular_computers/file_system/programs/sm_monitor.dm @@ -134,13 +134,15 @@ data["active"] = TRUE if(data_corrupted) //yes it goes negative, that's even more funny data["SM_integrity"] = active.get_fake_integrity() - data["SM_power"] = active.power + round((rand()-0.5)*12000,1) + data["SM_power"] = active.power + round((rand()-0.5)*12000,1) + data["SM_radiation"] = active.last_rads + round((rand()-0.5)*12000,1) data["SM_ambienttemp"] = air.return_temperature() + round((rand()-0.5)*20000,1) data["SM_ambientpressure"] = air.return_pressure() + round((rand()-0.5)*15000,1) data["SM_moles"] = air.total_moles() + round((rand()-0.5)*1800,1) else data["SM_integrity"] = active.get_integrity() data["SM_power"] = active.power + data["SM_radiation"] = active.last_rads data["SM_ambienttemp"] = air.return_temperature() data["SM_ambientpressure"] = air.return_pressure() data["SM_moles"] = air.total_moles() diff --git a/code/modules/power/supermatter/supermatter.dm b/code/modules/power/supermatter/supermatter.dm index d8e2228bf882..f0b8c48d6584 100644 --- a/code/modules/power/supermatter/supermatter.dm +++ b/code/modules/power/supermatter/supermatter.dm @@ -32,6 +32,8 @@ /// How much extra radioactivity to emit #define BZ_RADIOACTIVITY_MODIFIER 5 // Up to 500% rads +#define TRITIUM_RADIOACTIVITY_MODIFIER 3 +#define PLUOXIUM_RADIOACTIVITY_MODIFIER -2 /// Higher == Gas makes the crystal more resistant against heat damage. #define N2O_HEAT_RESISTANCE 6 @@ -136,6 +138,7 @@ GLOBAL_DATUM(main_supermatter_engine, /obj/machinery/power/supermatter_crystal) /// Additonal power to add over time comes from sliver extraction(800) or consuming(200) var/matter_power = 0 + var/last_rads = 0 ///How much the bullets damage should be multiplied by when it is added to the internal variables var/config_bullet_energy = 2 @@ -349,6 +352,7 @@ GLOBAL_DATUM(main_supermatter_engine, /obj/machinery/power/supermatter_crystal) M.rad_act(rads) var/turf/T = get_turf(src) + INVOKE_ASYNC(GLOBAL_PROC, /proc/empulse, T, 200 * max(0.2, gasmix_power_ratio), 300 * max(0.2, gasmix_power_ratio), TRUE, FALSE, FALSE, TRUE) for(var/_M in GLOB.player_list) var/mob/M = _M var/turf/T2 = get_turf(M) @@ -459,6 +463,8 @@ GLOBAL_DATUM(main_supermatter_engine, /obj/machinery/power/supermatter_crystal) var/pluoxiumcomp = max(removed.get_moles(/datum/gas/pluoxium)/combined_gas, 0) var/tritiumcomp = max(removed.get_moles(/datum/gas/tritium)/combined_gas, 0) var/bzcomp = max(removed.get_moles(/datum/gas/bz)/combined_gas, 0) + var/pluoxiumbonus = max(removed.get_moles(/datum/gas/pluoxium)/combined_gas, 0) + // Mole releated calculations var/bzmol = max(removed.get_moles(/datum/gas/bz), 0) @@ -499,7 +505,8 @@ GLOBAL_DATUM(main_supermatter_engine, /obj/machinery/power/supermatter_crystal) if(prob(50)) //1 + (tritRad + pluoxDampen * bzDampen * o2Rad * plasmaRad / (10 - bzrads)) - radiation_pulse(src, max((power * (1 + (power_transmission_bonus/(10-(bzcomp * BZ_RADIOACTIVITY_MODIFIER))))) * radmodifier)) //Yogs addition, radmodifier + last_rads = power * (1 + (tritiumcomp * TRITIUM_RADIOACTIVITY_MODIFIER) + ((pluoxiumcomp * PLUOXIUM_RADIOACTIVITY_MODIFIER) * pluoxiumbonus) * (power_transmission_bonus/(10-(bzcomp * BZ_RADIOACTIVITY_MODIFIER)))) * radmodifier + radiation_pulse(src, max(last_rads)) if(bzcomp >= 0.4 && prob(50 * bzcomp)) src.fire_nuclear_particle() // Start to emit radballs at a maximum of 50% chance per tick diff --git a/tgui/packages/tgui/interfaces/NtosSupermatterMonitor.js b/tgui/packages/tgui/interfaces/NtosSupermatterMonitor.js index de2a021d8564..88978cb8d7da 100644 --- a/tgui/packages/tgui/interfaces/NtosSupermatterMonitor.js +++ b/tgui/packages/tgui/interfaces/NtosSupermatterMonitor.js @@ -27,6 +27,7 @@ export const NtosSupermatterMonitorContent = (props, context) => { active, SM_integrity, SM_power, + SM_radiation, SM_ambienttemp, SM_ambientpressure, SM_moles, @@ -68,6 +69,23 @@ export const NtosSupermatterMonitorContent = (props, context) => { {toFixed(SM_power) + ' MeV/cm3'} + + + {toFixed(SM_radiation) + ' Sv/h'} + +