diff --git a/code/game/area/areas.dm b/code/game/area/areas.dm index 31db9f84adb..555eca31262 100644 --- a/code/game/area/areas.dm +++ b/code/game/area/areas.dm @@ -11,6 +11,7 @@ var/atmosalm = 0 var/poweralm = 1 var/party = null + var/radiation_active = null level = null name = "Unknown" icon = 'icons/turf/areas.dmi' @@ -218,10 +219,15 @@ #define DO_PARTY(COLOR) animate(color = COLOR, time = 0.5 SECONDS, easing = QUAD_EASING) /area/update_icon() - if ((fire || eject || party) && (!requires_power||power_environ) && !istype(src, /area/space)) //If it doesn't require power, can still activate this proc. - if(fire && !eject && !party) // FIRE - color = "#ff9292" + if ((fire || eject || party || radiation_active) && (!requires_power||power_environ) && !istype(src, /area/space)) //If it doesn't require power, can still activate this proc. + if(radiation_active) + color = "#30e63f" animate(src) // stop any current animations. + animate(src, color = "#2ea138", time = 1 SECOND, loop = -1, easing = SINE_EASING) + animate(color ="#30e63f", time = 1 SECOND, easing = SINE_EASING) + else if(fire && !eject && !party) // FIRE + color = "#ff9292" + animate(src) animate(src, color = "#ffa5b2", time = 1 SECOND, loop = -1, easing = SINE_EASING) animate(color = "#ff9292", time = 1 SECOND, easing = SINE_EASING) else if(!fire && eject && !party) // EJECT diff --git a/code/modules/events/radiation_storm.dm b/code/modules/events/radiation_storm.dm index 2c753b26285..e4370cd78e9 100644 --- a/code/modules/events/radiation_storm.dm +++ b/code/modules/events/radiation_storm.dm @@ -15,6 +15,11 @@ /datum/event/radiation_storm/start() make_maint_all_access() + for(var/area/A in all_areas) + if(A.flags & RAD_SHIELDED) + continue + A.radiation_active = TRUE + A.update_icon() /datum/event/radiation_storm/tick() if(activeFor == enterBelt) @@ -40,6 +45,11 @@ if(faked) return revoke_maint_all_access() + for(var/area/A in all_areas) + if(A.flags & RAD_SHIELDED) + continue + A.radiation_active = null + A.update_icon() /datum/event/radiation_storm/syndicate/radiate() return diff --git a/code/modules/mob/living/damage_procs.dm b/code/modules/mob/living/damage_procs.dm index 260e80f4038..f6eeb59ba11 100644 --- a/code/modules/mob/living/damage_procs.dm +++ b/code/modules/mob/living/damage_procs.dm @@ -89,4 +89,4 @@ /mob/living/proc/apply_radiation(var/rads) total_radiation += rads if (total_radiation < 0) - total_radiation = 0 \ No newline at end of file + total_radiation = 0 diff --git a/html/changelogs/geeves-rad_storm.yml b/html/changelogs/geeves-rad_storm.yml new file mode 100644 index 00000000000..d54a3e4d9ce --- /dev/null +++ b/html/changelogs/geeves-rad_storm.yml @@ -0,0 +1,6 @@ +author: Geeves + +delete-after: True + +changes: + - rscadd: "Non-shielded areas now get a pulsating green overlay when a radiation storm is active." \ No newline at end of file