diff --git a/code/datums/components/radioactive.dm b/code/datums/components/radioactive.dm index 64bc3765..27e41323 100644 --- a/code/datums/components/radioactive.dm +++ b/code/datums/components/radioactive.dm @@ -47,13 +47,20 @@ if(!prob(50)) return radiation_pulse(parent, strength, RAD_DISTANCE_COEFFICIENT*2, FALSE, can_contaminate) - if(!hl3_release_date) return strength -= strength / hl3_release_date if(strength <= RAD_BACKGROUND_RADIATION) + addtimer(CALLBACK(src, .proc/check_dissipate), 5 SECONDS) return PROCESS_KILL +/datum/component/radioactive/proc/check_dissipate() + if(strength <= RAD_BACKGROUND_RADIATION) + qdel(src) + return + if(!(datum_flags & DF_ISPROCESSING)) // keep going + START_PROCESSING(SSradiation, src) + /datum/component/radioactive/proc/glow_loop(atom/movable/master) var/filter = master.get_filter("rad_glow") diff --git a/code/game/objects/effects/effects.dm b/code/game/objects/effects/effects.dm index 6057d1b4..dd0bc8ab 100644 --- a/code/game/objects/effects/effects.dm +++ b/code/game/objects/effects/effects.dm @@ -6,6 +6,7 @@ resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | UNACIDABLE | ACID_PROOF | FREEZE_PROOF move_resist = INFINITY obj_flags = 0 + rad_flags = RAD_PROTECT_CONTENTS | RAD_NO_CONTAMINATE /obj/effect/take_damage(damage_amount, damage_type = BRUTE, damage_flag = 0, sound_effect = 1, attack_dir) return