diff --git a/code/datums/weather/weather_types/solar_flare.dm b/code/datums/weather/weather_types/solar_flare.dm index 8d6b4a1bed6..93aa9426618 100644 --- a/code/datums/weather/weather_types/solar_flare.dm +++ b/code/datums/weather/weather_types/solar_flare.dm @@ -15,10 +15,12 @@ end_duration = 10 // wind_down() does not do anything for this event, so we just trigger end() semi-immediately end_message = null area_type = /area/space // read generate_area_list() as well below - protected_areas = list(/area/shuttle/arrival/station, /area/hallway/secondary/entry) + protected_areas = list(/area/shuttle/arrival/station) target_trait = STATION_LEVEL immunity_type = "burn" var/damage = 4 + /// Areas which are "semi-protected". Mobs inside these areas take reduced burn damage from the solar flare. + var/list/semi_protected_areas = list(/area/hallway/secondary/entry) /datum/weather/solar_flare/generate_area_list() ..() @@ -50,8 +52,11 @@ return FALSE /datum/weather/solar_flare/weather_act(mob/living/L) + var/target_area = get_area(L) + if(target_area in protected_areas) // We do wanna protect new arrivals from horrible death. + return var/adjusted_damage = damage - if(get_area(L) in protected_areas) //we do wanna protect new arrivals from horrible death + if(target_area in semi_protected_areas) adjusted_damage = 1 L.adjustFireLoss(adjusted_damage) L.flash_eyes()