From 9d78387d5ac31de95bd71ca019f198b7abb5ab19 Mon Sep 17 00:00:00 2001 From: CHOMPStation2StaffMirrorBot <94713762+CHOMPStation2StaffMirrorBot@users.noreply.github.com> Date: Sun, 15 Feb 2026 17:07:17 -0700 Subject: [PATCH] [MIRROR] Weather anomaly subtypes (#12415) Co-authored-by: Guti <32563288+TheCaramelion@users.noreply.github.com> Co-authored-by: vorestation-ci[bot] <199609141+vorestation-ci[bot]@users.noreply.github.com> Co-authored-by: Kashargul <144968721+Kashargul@users.noreply.github.com> --- .../effects/anomalies/anomalies_weather.dm | 31 +++++++++++++++++-- 1 file changed, 28 insertions(+), 3 deletions(-) diff --git a/code/game/objects/effects/anomalies/anomalies_weather.dm b/code/game/objects/effects/anomalies/anomalies_weather.dm index bf0624742c..baa4366de2 100644 --- a/code/game/objects/effects/anomalies/anomalies_weather.dm +++ b/code/game/objects/effects/anomalies/anomalies_weather.dm @@ -17,7 +17,9 @@ affected_areas.Add(impact_area) - if(!selected_weather) + if(selected_weather) + selected_weather = new selected_weather + else pick_weather() var/telegraph = lifespan / telegraph_percent @@ -34,6 +36,8 @@ for(var/mob/mob in area) to_chat(mob, span_notice(selected_weather.telegraph_message)) for(var/turf/turf in area) + if(isopenturf(turf)) + affected_turfs.Add(GetBelow(turf)) affected_turfs.Add(turf) apply_wibbly_filters(src) @@ -65,6 +69,8 @@ return for(var/turf/turf in affected_turfs) + if(isopenturf(turf)) + turf = GetBelow(turf) selected_weather.affect_turf(turf) for(var/mob/mob as anything in GLOB.player_list) @@ -99,14 +105,33 @@ selected_weather.loop_sounds.stop() for(var/area in affected_areas) - for(var/turf/area_turf in area) - selected_weather.remove_from_turf(area_turf) for(var/mob/mob in area) selected_weather.hear_sounds(mob, FALSE) + for(var/turf/turf in affected_turfs) + selected_weather.remove_from_turf(turf) + /obj/effect/anomaly/weather/Destroy() clear_weather() . = ..() /obj/effect/anomaly/weather/proc/update_reagent(reagent) selected_weather.update_reagent(reagent) + +/obj/effect/anomaly/weather/rain + selected_weather = /datum/anomalous_weather/rain + +/obj/effect/anomaly/weather/acidrain + selected_weather = /datum/anomalous_weather/rain/acid + +/obj/effect/anomaly/weather/storm + selected_weather = /datum/anomalous_weather/rain/storm + +/obj/effect/anomaly/weather/bloodrain + selected_weather = /datum/anomalous_weather/rain/blood + +/obj/effect/anomaly/weather/ashstorm + selected_weather = /datum/anomalous_weather/ash_storm + +/obj/effect/anomaly/weather/hail + selected_weather = /datum/anomalous_weather/hail