Ports the radiation subsystem and cleans up damage flags. (#15715)

This commit is contained in:
Matt Atlas
2023-02-07 13:22:47 +01:00
committed by GitHub
parent 5527fc0810
commit 31c73ead85
198 changed files with 981 additions and 649 deletions
+7 -14
View File
@@ -139,8 +139,7 @@
//Hilariously enough, running into a closet should make you get hit the hardest.
var/mob/living/carbon/human/H = mob
H.hallucination += max(50, min(300, DETONATION_HALLUCINATION * sqrt(1 / (get_dist(mob, src) + 1)) ) )
var/rads = DETONATION_RADS * sqrt( 1 / (get_dist(mob, src) + 1) )
mob.apply_effect(rads, IRRADIATE)
SSradiation.z_radiate(locate(1, 1, z), DETONATION_RADS, TRUE)
spawn(pull_time)
explosion(get_turf(src), explosion_power, explosion_power * 2, explosion_power * 3, explosion_power * 4, 1)
qdel(src)
@@ -321,11 +320,11 @@
var/rads = (power / 10) * ( 1 / (radius**2) )
if (!(l in oview(rad_range, src)) && !(l in range(src, round(rad_range * 2/3))))
continue
l.apply_damage(rads, IRRADIATE, damage_flags = DAM_DISPERSED)
l.apply_damage(rads, DAMAGE_RADIATION, damage_flags = DAMAGE_FLAG_DISPERSED)
if(l.is_diona())
l.adjustToxLoss(-rads)
if(last_message_time + 800 < world.time) // Not to spam message
to_chat(l, "<span class='notice'>You can feel an extreme level of energy which flows throught your body and makes you regenerate very fast.</span>")
to_chat(l, "<span class='notice'>You can feel an extreme level of energy which flows through your body and makes you regenerate very fast.</span>")
last_message_time = world.time
power -= (power/DECAY_FACTOR)**3 //energy losses due to radiation
@@ -393,7 +392,7 @@
user.drop_from_inventory(W)
Consume(W)
user.apply_damage(150, IRRADIATE, damage_flags = DAM_DISPERSED)
user.apply_damage(150, DAMAGE_RADIATION, damage_flags = DAMAGE_FLAG_DISPERSED)
/obj/machinery/power/supermatter/CollidedWith(atom/AM as mob|obj)
@@ -429,15 +428,9 @@
power += 200
//Some poor sod got eaten, go ahead and irradiate people nearby.
for(var/mob/living/l in range(10))
if(l in view())
l.show_message("<span class=\"warning\">As \the [src] slowly stops resonating, you find your skin covered in new radiation burns.</span>", 1,\
"<span class=\"warning\">The unearthly ringing subsides and you notice you have new radiation burns.</span>", 2)
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 * sqrt( 1 / (get_dist(l, src) + 1) )
l.apply_damage(rads, IRRADIATE, damage_flags = DAM_DISPERSED)
for(var/mob/living/L in view(10))
to_chat(L, SPAN_WARNING("As \the [src] slowly stops resonating, you find your skin covered in new radiation burns."))
SSradiation.radiate(src, 500)
/obj/machinery/power/supermatter/proc/supermatter_pull()
//following is adapted from singulo code