Radiation Refactor (#19270)

* Part 1

* WIP

* The rest of these

* More stuff

* Whoops, did that wrong

* typo

* gweeen

* This all works

* SHOWER

* Rads

* awa

* rad

* Update life.dm

* edits

* Makes lvl 3 rads give you a warning.

You should already know by this point, but this makes it EXTRA clear you're getting fucked

* Update vorestation.dme

* aaa

* propagate

* gwah

* more fixes

* AAA

* Update radiation.dm

* Update radiation.dm

* mobs rads

* rads

* fix this

* Update _reagents.dm

* these

* Get rid of these

* rad

* Update config.txt

* fixed

* Update radiation_effects.dm
This commit is contained in:
Cameron Lennox
2026-03-22 12:29:09 -04:00
committed by GitHub
parent d91baf9c9f
commit cbc4151bfb
113 changed files with 2044 additions and 551 deletions
@@ -29,9 +29,41 @@
radiate()
/datum/event2/event/radiation_storm/proc/radiate()
//This sucks. Just mutate.
/*
var/radiation_level = rand(15, 35)
for(var/z in using_map.station_levels)
SSradiation.z_radiate(locate(1, 1, z), radiation_level, 1)
var/turf/epicentre = locate(round(world.maxx / 2), round(world.maxy / 2), z)
if(epicentre)
radiation_pulse(
epicentre,
max_range = 5,
threshold = RAD_MEDIUM_INSULATION,
chance = URANIUM_IRRADIATION_CHANCE,
minimum_exposure_time = URANIUM_RADIATION_MINIMUM_EXPOSURE_TIME,
)
*/
for(var/mob/living/carbon/C in GLOB.living_mob_list)
if(!(C.z in using_map.station_levels) || C.isSynthetic() || isbelly(C.loc))
continue
var/area/A = get_area(C)
if(!A)
continue
if(A.flag_check(RAD_SHIELDED))
continue
if(ishuman(C))
var/mob/living/carbon/human/H = C
var/chance = 5.0
chance -= (chance / 100) * C.getarmor(null, "rad")
if(prob(chance))
if (prob(75))
randmutb(H) // Applies bad mutation
domutcheck(H,null,MUTCHK_FORCED)
else
randmutg(H) // Applies good mutation
domutcheck(H,null,MUTCHK_FORCED)
H.UpdateAppearance()
/datum/event2/event/radiation_storm/end()
GLOB.command_announcement.Announce("The station has passed the radiation belt. \
@@ -49,4 +49,10 @@
continue
//Todo: Apply some burn damage from the heat of the sun. Until then, enjoy some moderate radiation.
L.rad_act(rand(15, 30))
radiation_pulse(
L,
max_range = 1,
threshold = RAD_MEDIUM_INSULATION,
chance = URANIUM_IRRADIATION_CHANCE,
strength = rand(10, 50)
)