diff --git a/code/datums/weather/weather_types.dm b/code/datums/weather/weather_types.dm index 535f882d4bf..9f75bf714e6 100644 --- a/code/datums/weather/weather_types.dm +++ b/code/datums/weather/weather_types.dm @@ -118,7 +118,7 @@ name = "radiation storm" desc = "A cloud of intense radiation passes through the area dealing rad damage to those who are unprotected." - telegraph_duration = 600 + telegraph_duration = 400 telegraph_message = "The air begins to grow warm." weather_message = "You feel waves of heat wash over you! Find shelter!" @@ -137,28 +137,49 @@ immunity_type = "rad" +/datum/weather/rad_storm/telegraph() + ..() + status_alarm("alert") + + /datum/weather/rad_storm/impact(mob/living/L) - if(prob(20)) + var/resist = L.getarmor(null, "rad") + if(prob(40)) if(ishuman(L)) var/mob/living/carbon/human/H = L if(H.dna && H.dna.species) if(!(RADIMMUNE in H.dna.species.specflags)) - if(prob(50)) + if(prob(max(0,100-resist))) randmuti(H) - if(prob(90)) - randmutb(H) - else - randmutg(H) - H.domutcheck() + if(prob(50)) + if(prob(90)) + randmutb(H) + else + randmutg(H) + H.domutcheck() L.rad_act(20,1) - L.adjustToxLoss(4) - - - - - /datum/weather/rad_storm/end() if(..()) return - priority_announce("The radiation threat has passed. Please return to your workplaces.", "Anomaly Alert") \ No newline at end of file + priority_announce("The radiation threat has passed. Please return to your workplaces.", "Anomaly Alert") + status_alarm() + + +/datum/weather/rad_storm/proc/status_alarm(command) //Makes the status displays show the radiation warning for those who missed the announcement. + var/datum/radio_frequency/frequency = SSradio.return_frequency(1435) + + if(!frequency) + return + + var/datum/signal/status_signal = new + var/atom/movable/virtualspeaker/virt = PoolOrNew(/atom/movable/virtualspeaker,null) + status_signal.source = virt + status_signal.transmission_method = 1 + status_signal.data["command"] = "shuttle" + + if(command == "alert") + status_signal.data["command"] = "alert" + status_signal.data["picture_state"] = "radiation" + + frequency.post_signal(src, status_signal) \ No newline at end of file diff --git a/icons/obj/status_display.dmi b/icons/obj/status_display.dmi index 76f18ba5e65..2c407ce049f 100644 Binary files a/icons/obj/status_display.dmi and b/icons/obj/status_display.dmi differ