-
-
Notifications
You must be signed in to change notification settings - Fork 444
/
Copy pathvoid_storm.dm
42 lines (32 loc) · 1.53 KB
/
void_storm.dm
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
/datum/weather/void_storm
name = "void storm"
desc = "A rare and highly anomalous event often accompanied by unknown entities shredding spacetime continouum. We'd advise you to start running."
telegraph_duration = 2 SECONDS
telegraph_overlay = "light_snow"
weather_message = span_hypnophrase("You feel the air around you getting colder... and void's sweet embrace...")
weather_overlay = "snow_storm"
weather_color = COLOR_BLACK
weather_duration_lower = 900 SECONDS
weather_duration_upper = 1200 SECONDS
end_duration = 10 SECONDS
area_type = /area
protect_indoors = FALSE
target_trait = ZTRAIT_VOIDSTORM
immunity_type = WEATHER_VOIDSTORM
barometer_predictable = FALSE
/// List of areas that were once impacted areas but are not anymore. Used for updating the weather overlay based whether the ascended heretic is in the area.
var/list/former_impacted_areas = list()
/datum/weather/void_storm/can_weather_act(mob/living/mob_to_check)
. = ..()
if(IS_HERETIC_OR_MONSTER(mob_to_check))
return FALSE
/datum/weather/void_storm/weather_act(mob/living/victim)
victim.adjustFireLoss(1)
victim.adjustOxyLoss(rand(1, 3))
victim.adjust_bodytemperature(-30 * TEMPERATURE_DAMAGE_COEFFICIENT)
// Goes through former_impacted_areas and sets the overlay of each back to the telegraph overlay, to indicate the ascended heretic is no longer in that area.
/datum/weather/void_storm/update_areas()
for(var/area/former_area as anything in former_impacted_areas)
former_area.icon_state = telegraph_overlay
former_impacted_areas -= former_area
return ..()