Blind port of Bay Radiation Subsystem

This commit is contained in:
Atermonera
2019-10-06 03:30:36 -04:00
committed by VirgoBot
parent d53319f8b3
commit 89aad128cf
45 changed files with 284 additions and 110 deletions
+2 -2
View File
@@ -313,7 +313,7 @@
radiation += plasma_temperature/2
plasma_temperature = 0
radiation_repository.radiate(src, radiation)
SSradiation.radiate(src, radiation)
Radiate()
/obj/effect/fusion_em_field/proc/Radiate()
@@ -522,7 +522,7 @@
//Reaction radiation is fairly buggy and there's at least three procs dealing with radiation here, this is to ensure constant radiation output.
/obj/effect/fusion_em_field/proc/radiation_scale()
radiation_repository.radiate(src, 2 + plasma_temperature / PLASMA_TEMP_RADIATION_DIVISIOR)
SSradiation.radiate(src, 2 + plasma_temperature / PLASMA_TEMP_RADIATION_DIVISIOR)
//Somehow fixing the radiation issue managed to break this, but moving it to it's own proc seemed to have fixed it. I don't know.
/obj/effect/fusion_em_field/proc/temp_dump()
@@ -46,7 +46,7 @@
return PROCESS_KILL
if(istype(loc, /turf))
radiation_repository.radiate(src, max(1,CEILING(radioactivity/30, 1)))
SSradiation.radiate(src, max(1,CEILING(radioactivity/30, 1)))
/obj/item/weapon/fuel_assembly/Destroy()
STOP_PROCESSING(SSobj, src)
@@ -120,7 +120,7 @@ proc/get_fusion_reaction(var/p_react, var/s_react, var/m_energy)
var/radiation_level = 200
// Copied from the SM for proof of concept. //Not any more --Cirra //Use the whole z proc --Leshana
radiation_repository.z_radiate(locate(1, 1, holder.z), radiation_level, 1)
SSradiation.z_radiate(locate(1, 1, holder.z), radiation_level, 1)
for(var/mob/living/mob in living_mob_list)
var/turf/T = get_turf(mob)
+2 -2
View File
@@ -399,13 +399,13 @@
/obj/machinery/power/port_gen/pacman/super/UseFuel()
//produces a tiny amount of radiation when in use
if (prob(2*power_output))
radiation_repository.radiate(src, 4)
SSradiation.radiate(src, 4)
..()
/obj/machinery/power/port_gen/pacman/super/explode()
//a nice burst of radiation
var/rads = 50 + (sheets + sheet_left)*1.5
radiation_repository.radiate(src, (max(20, rads)))
SSradiation.radiate(src, (max(20, rads)))
explosion(src.loc, 3, 3, 5, 3)
qdel(src)
+1 -1
View File
@@ -32,7 +32,7 @@ var/global/list/rad_collectors = list()
if(P && active)
var/rads = radiation_repository.get_rads_at_turf(get_turf(src))
var/rads = SSradiation.get_rads_at_turf(get_turf(src))
if(rads)
receive_pulse(rads * 5) //Maths is hard
@@ -142,13 +142,13 @@
/obj/machinery/particle_smasher/process()
if(!src.anchored) // Rapidly loses focus.
if(energy)
radiation_repository.radiate(src, round(((src.energy-150)/50)*5,1))
SSradiation.radiate(src, round(((src.energy-150)/50)*5,1))
energy = max(0, energy - 30)
update_icon()
return
if(energy)
radiation_repository.radiate(src, round(((src.energy-150)/50)*5,1))
SSradiation.radiate(src, round(((src.energy-150)/50)*5,1))
energy = CLAMP(energy - 5, 0, max_energy)
return
@@ -178,7 +178,7 @@
if(successful_craft)
visible_message("<span class='warning'>\The [src] fizzles.</span>")
if(prob(33)) // Why are you blasting it after it's already done!
radiation_repository.radiate(src, 10 + round(src.energy / 60, 1))
SSradiation.radiate(src, 10 + round(src.energy / 60, 1))
energy = max(0, energy - 30)
update_icon()
return
@@ -408,7 +408,7 @@ GLOBAL_LIST_BOILERPLATE(all_singularities, /obj/singularity)
if (src.energy>200)
toxdamage = round(((src.energy-150)/50)*4,1)
radiation = round(((src.energy-150)/50)*5,1)
radiation_repository.radiate(src, radiation) //Always radiate at max, so a decent dose of radiation is applied
SSradiation.radiate(src, radiation) //Always radiate at max, so a decent dose of radiation is applied
for(var/mob/living/M in view(toxrange, src.loc))
if(M.status_flags & GODMODE)
continue
@@ -451,7 +451,7 @@ GLOBAL_LIST_BOILERPLATE(all_singularities, /obj/singularity)
M << "<span class=\"danger\">You hear an uneartly ringing, then what sounds like a shrilling kettle as you are washed with a wave of heat.</span>"
M << "<span class=\"danger\">You don't even have a moment to react as you are reduced to ashes by the intense radiation.</span>"
M.dust()
radiation_repository.radiate(src, rand(energy))
SSradiation.radiate(src, rand(energy))
return
/obj/singularity/proc/pulse()
@@ -141,7 +141,7 @@
if(!TS)
return
for(var/z in GetConnectedZlevels(TS.z))
radiation_repository.z_radiate(locate(1, 1, z), DETONATION_RADS, 1)
SSradiation.z_radiate(locate(1, 1, z), DETONATION_RADS, 1)
for(var/mob/living/mob in living_mob_list)
var/turf/T = get_turf(mob)
if(T && (loc.z == T.z))
@@ -311,7 +311,7 @@
if(!istype(l.glasses, /obj/item/clothing/glasses/meson)) // VOREStation Edit - Only mesons can protect you!
l.hallucination = max(0, min(200, l.hallucination + power * config_hallucination_power * sqrt( 1 / max(1,get_dist(l, src)) ) ) )
radiation_repository.radiate(src, max(power * 1.5, 50) ) //Better close those shutters!
SSradiation.radiate(src, max(power * 1.5, 50) ) //Better close those shutters!
power -= (power/DECAY_FACTOR)**3 //energy losses due to radiation
@@ -424,7 +424,7 @@
else
l.show_message("<span class=\"warning\">You hear an uneartly ringing and notice your skin is covered in fresh radiation burns.</span>", 2)
var/rads = 500
radiation_repository.radiate(src, rads)
SSradiation.radiate(src, rads)
/proc/supermatter_pull(var/atom/target, var/pull_range = 255, var/pull_power = STAGE_FIVE)
for(var/atom/A in range(pull_range, target))
@@ -467,7 +467,7 @@
return ..()
/obj/item/broken_sm/process()
radiation_repository.radiate(src, 50)
SSradiation.radiate(src, 50)
/obj/item/broken_sm/Destroy()
STOP_PROCESSING(SSobj, src)