diff --git a/code/game/area/Space Station 13 areas.dm b/code/game/area/Space Station 13 areas.dm index 8a18f4ab55b..480f80afc49 100755 --- a/code/game/area/Space Station 13 areas.dm +++ b/code/game/area/Space Station 13 areas.dm @@ -20,6 +20,7 @@ NOTE: there are two lists of areas in the end of this file: centcom and station var/atmosalm = 0 var/poweralm = 1 var/party = null + var/radalert = 0 level = null name = "Space" icon = 'icons/turf/areas.dmi' diff --git a/code/game/area/areas.dm b/code/game/area/areas.dm index 5ddcb45e853..0da9a7d7c79 100644 --- a/code/game/area/areas.dm +++ b/code/game/area/areas.dm @@ -156,6 +156,22 @@ updateicon() return +/area/proc/radiation_alert() + if(name == "Space") + return + if(!radalert) + radalert = 1 + updateicon() + return + +/area/proc/reset_radiation_alert() + if(name == "Space") + return + if(radalert) + radalert = 0 + updateicon() + return + /area/proc/partyalert() if(name == "Space") //no parties in space!!! return @@ -180,8 +196,11 @@ return /area/proc/updateicon() - if ((fire || eject || party) && ((!requires_power)?(!requires_power):power_environ))//If it doesn't require power, can still activate this proc. - if(fire && !eject && !party) + if ((fire || eject || party || radalert) && ((!requires_power)?(!requires_power):power_environ))//If it doesn't require power, can still activate this proc. + // Highest priority at the top. + if(radalert && !fire) + icon_state = "radiation" + else if(fire && !radalert && !eject && !party) icon_state = "blue" /*else if(atmosalm && !fire && !eject && !party) icon_state = "bluenew"*/ diff --git a/code/modules/events/radiation_storm.dm b/code/modules/events/radiation_storm.dm index ad79eed5164..cf59f2b177d 100644 --- a/code/modules/events/radiation_storm.dm +++ b/code/modules/events/radiation_storm.dm @@ -10,6 +10,12 @@ spawn() world << sound('sound/AI/radiation.ogg') command_alert("High levels of radiation detected near the station. Please evacuate into one of the shielded maintenance tunnels.", "Anomaly Alert") + + for(var/area/A in the_station_areas) + if(istype(A, /area/maintenance) || istype(A, /area/crew_quarters) || istype(A, /area/security/prison) || istype(A, /area/security/brig)) + continue + A.radiation_alert() + make_maint_all_access() @@ -52,6 +58,10 @@ command_alert("The station has passed the radiation belt. Please report to medbay if you experience any unusual symptoms. Maintenance will lose all access again shortly.", "Anomaly Alert") + for(var/area/A in the_station_areas) + if(istype(A, /area/maintenance) || istype(A, /area/crew_quarters) || istype(A, /area/security/prison) || istype(A, /area/security/brig)) + continue + A.reset_radiation_alert() sleep(600) // Want to give them time to get out of maintenance. diff --git a/icons/turf/areas.dmi b/icons/turf/areas.dmi index 936c126f244..8c8b5e8f9cf 100755 Binary files a/icons/turf/areas.dmi and b/icons/turf/areas.dmi differ