mirror of
https://github.com/SPLURT-Station/S.P.L.U.R.T-Station-13.git
synced 2025-12-09 16:07:40 +00:00
committed by
CitadelStationBot
parent
241d2d88e6
commit
6f940baa0a
@@ -18,6 +18,8 @@ SUBSYSTEM_DEF(mapping)
|
||||
var/list/shuttle_templates = list()
|
||||
var/list/shelter_templates = list()
|
||||
|
||||
var/list/areas_in_z = list()
|
||||
|
||||
var/loading_ruins = FALSE
|
||||
|
||||
/datum/controller/subsystem/mapping/PreInit()
|
||||
|
||||
47
code/datums/looping_sounds/weather.dm
Normal file
47
code/datums/looping_sounds/weather.dm
Normal file
@@ -0,0 +1,47 @@
|
||||
/datum/looping_sound/active_outside_ashstorm
|
||||
mid_sounds = list(
|
||||
'sound/weather/ashstorm/outside/active_mid1.ogg'=1,
|
||||
'sound/weather/ashstorm/outside/active_mid1.ogg'=1,
|
||||
'sound/weather/ashstorm/outside/active_mid1.ogg'=1
|
||||
)
|
||||
mid_length = 80
|
||||
start_sound = 'sound/weather/ashstorm/outside/active_start.ogg'
|
||||
start_length = 130
|
||||
end_sound = 'sound/weather/ashstorm/outside/active_end.ogg'
|
||||
volume = 80
|
||||
|
||||
/datum/looping_sound/active_inside_ashstorm
|
||||
mid_sounds = list(
|
||||
'sound/weather/ashstorm/inside/active_mid1.ogg'=1,
|
||||
'sound/weather/ashstorm/inside/active_mid2.ogg'=1,
|
||||
'sound/weather/ashstorm/inside/active_mid3.ogg'=1
|
||||
)
|
||||
mid_length = 80
|
||||
start_sound = 'sound/weather/ashstorm/inside/active_start.ogg'
|
||||
start_length = 130
|
||||
end_sound = 'sound/weather/ashstorm/inside/active_end.ogg'
|
||||
volume = 80
|
||||
|
||||
/datum/looping_sound/weak_outside_ashstorm
|
||||
mid_sounds = list(
|
||||
'sound/weather/ashstorm/outside/weak_mid1.ogg'=1,
|
||||
'sound/weather/ashstorm/outside/weak_mid2.ogg'=1,
|
||||
'sound/weather/ashstorm/outside/weak_mid3.ogg'=1
|
||||
)
|
||||
mid_length = 80
|
||||
start_sound = 'sound/weather/ashstorm/outside/weak_start.ogg'
|
||||
start_length = 130
|
||||
end_sound = 'sound/weather/ashstorm/outside/weak_end.ogg'
|
||||
volume = 50
|
||||
|
||||
/datum/looping_sound/weak_inside_ashstorm
|
||||
mid_sounds = list(
|
||||
'sound/weather/ashstorm/inside/weak_mid1.ogg'=1,
|
||||
'sound/weather/ashstorm/inside/weak_mid2.ogg'=1,
|
||||
'sound/weather/ashstorm/inside/weak_mid3.ogg'=1
|
||||
)
|
||||
mid_length = 80
|
||||
start_sound = 'sound/weather/ashstorm/inside/weak_start.ogg'
|
||||
start_length = 130
|
||||
end_sound = 'sound/weather/ashstorm/inside/weak_end.ogg'
|
||||
volume = 50
|
||||
@@ -5,18 +5,15 @@
|
||||
|
||||
telegraph_message = "<span class='boldwarning'>An eerie moan rises on the wind. Sheets of burning ash blacken the horizon. Seek shelter.</span>"
|
||||
telegraph_duration = 300
|
||||
telegraph_sound = 'sound/lavaland/ash_storm_windup.ogg'
|
||||
telegraph_overlay = "light_ash"
|
||||
|
||||
weather_message = "<span class='userdanger'><i>Smoldering clouds of scorching ash billow down around you! Get inside!</i></span>"
|
||||
weather_duration_lower = 600
|
||||
weather_duration_upper = 1200
|
||||
weather_sound = 'sound/lavaland/ash_storm_start.ogg'
|
||||
weather_overlay = "ash_storm"
|
||||
|
||||
end_message = "<span class='boldannounce'>The shrieking wind whips away the last of the ash and falls to its usual murmur. It should be safe to go outside now.</span>"
|
||||
end_duration = 300
|
||||
end_sound = 'sound/lavaland/ash_storm_end.ogg'
|
||||
end_overlay = "light_ash"
|
||||
|
||||
area_type = /area/lavaland/surface/outdoors
|
||||
@@ -26,6 +23,53 @@
|
||||
|
||||
probability = 90
|
||||
|
||||
var/datum/looping_sound/active_outside_ashstorm/sound_ao = new(list(), FALSE, TRUE)
|
||||
var/datum/looping_sound/active_inside_ashstorm/sound_ai = new(list(), FALSE, TRUE)
|
||||
var/datum/looping_sound/weak_outside_ashstorm/sound_wo = new(list(), FALSE, TRUE)
|
||||
var/datum/looping_sound/weak_inside_ashstorm/sound_wi = new(list(), FALSE, TRUE)
|
||||
|
||||
/datum/weather/ash_storm/telegraph()
|
||||
. = ..()
|
||||
var/list/inside_areas = list()
|
||||
var/list/outside_areas = list()
|
||||
var/list/eligible_areas = SSmapping.areas_in_z["[target_z]"]
|
||||
for(var/i in 1 to eligible_areas.len)
|
||||
var/area/place = eligible_areas[i]
|
||||
if(place.outdoors)
|
||||
outside_areas += place
|
||||
else
|
||||
inside_areas += place
|
||||
CHECK_TICK
|
||||
|
||||
sound_ao.output_atoms = outside_areas
|
||||
sound_ai.output_atoms = inside_areas
|
||||
sound_wo.output_atoms = outside_areas
|
||||
sound_wi.output_atoms = inside_areas
|
||||
|
||||
sound_wo.start()
|
||||
sound_wi.start()
|
||||
|
||||
/datum/weather/ash_storm/start()
|
||||
. = ..()
|
||||
sound_wo.stop()
|
||||
sound_wi.stop()
|
||||
|
||||
sound_ao.start()
|
||||
sound_ai.start()
|
||||
|
||||
/datum/weather/ash_storm/wind_down()
|
||||
. = ..()
|
||||
sound_ao.stop()
|
||||
sound_ai.stop()
|
||||
|
||||
sound_wo.start()
|
||||
sound_wi.start()
|
||||
|
||||
/datum/weather/ash_storm/end()
|
||||
. = ..()
|
||||
sound_wo.stop()
|
||||
sound_wi.stop()
|
||||
|
||||
/datum/weather/ash_storm/proc/is_ash_immune(mob/living/L)
|
||||
if(ismecha(L.loc)) //Mechs are immune
|
||||
return TRUE
|
||||
@@ -50,7 +94,6 @@
|
||||
desc = "A passing ash storm blankets the area in harmless embers."
|
||||
|
||||
weather_message = "<span class='notice'>Gentle embers waft down around you like grotesque snow. The storm seems to have passed you by...</span>"
|
||||
weather_sound = 'sound/lavaland/ash_storm_windup.ogg'
|
||||
weather_overlay = "light_ash"
|
||||
|
||||
end_message = "<span class='notice'>The emberfall slows, stops. Another layer of hardened soot to the basalt beneath your feet.</span>"
|
||||
|
||||
@@ -132,6 +132,22 @@ GLOBAL_LIST_EMPTY(teleportlocs)
|
||||
if(!IS_DYNAMIC_LIGHTING(src))
|
||||
add_overlay(/obj/effect/fullbright)
|
||||
|
||||
if(contents.len)
|
||||
var/list/areas_in_z = SSmapping.areas_in_z
|
||||
var/z
|
||||
for(var/i in 1 to contents.len)
|
||||
var/atom/thing = contents[i]
|
||||
if(!thing)
|
||||
continue
|
||||
z = thing.z
|
||||
break
|
||||
if(!z)
|
||||
WARNING("No z found for [src]")
|
||||
return
|
||||
if(!areas_in_z["[z]"])
|
||||
areas_in_z["[z]"] = list()
|
||||
areas_in_z["[z]"] += src
|
||||
|
||||
/area/Destroy()
|
||||
STOP_PROCESSING(SSobj, src)
|
||||
return ..()
|
||||
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
sound/weather/ashstorm/inside/active_end.ogg
Normal file
BIN
sound/weather/ashstorm/inside/active_end.ogg
Normal file
Binary file not shown.
BIN
sound/weather/ashstorm/inside/active_mid1.ogg
Normal file
BIN
sound/weather/ashstorm/inside/active_mid1.ogg
Normal file
Binary file not shown.
BIN
sound/weather/ashstorm/inside/active_mid2.ogg
Normal file
BIN
sound/weather/ashstorm/inside/active_mid2.ogg
Normal file
Binary file not shown.
BIN
sound/weather/ashstorm/inside/active_mid3.ogg
Normal file
BIN
sound/weather/ashstorm/inside/active_mid3.ogg
Normal file
Binary file not shown.
BIN
sound/weather/ashstorm/inside/active_start.ogg
Normal file
BIN
sound/weather/ashstorm/inside/active_start.ogg
Normal file
Binary file not shown.
BIN
sound/weather/ashstorm/inside/weak_end.ogg
Normal file
BIN
sound/weather/ashstorm/inside/weak_end.ogg
Normal file
Binary file not shown.
BIN
sound/weather/ashstorm/inside/weak_mid1.ogg
Normal file
BIN
sound/weather/ashstorm/inside/weak_mid1.ogg
Normal file
Binary file not shown.
BIN
sound/weather/ashstorm/inside/weak_mid2.ogg
Normal file
BIN
sound/weather/ashstorm/inside/weak_mid2.ogg
Normal file
Binary file not shown.
BIN
sound/weather/ashstorm/inside/weak_mid3.ogg
Normal file
BIN
sound/weather/ashstorm/inside/weak_mid3.ogg
Normal file
Binary file not shown.
BIN
sound/weather/ashstorm/inside/weak_start.ogg
Normal file
BIN
sound/weather/ashstorm/inside/weak_start.ogg
Normal file
Binary file not shown.
BIN
sound/weather/ashstorm/outside/active_end.ogg
Normal file
BIN
sound/weather/ashstorm/outside/active_end.ogg
Normal file
Binary file not shown.
BIN
sound/weather/ashstorm/outside/active_mid1.ogg
Normal file
BIN
sound/weather/ashstorm/outside/active_mid1.ogg
Normal file
Binary file not shown.
BIN
sound/weather/ashstorm/outside/active_mid2.ogg
Normal file
BIN
sound/weather/ashstorm/outside/active_mid2.ogg
Normal file
Binary file not shown.
BIN
sound/weather/ashstorm/outside/active_mid3.ogg
Normal file
BIN
sound/weather/ashstorm/outside/active_mid3.ogg
Normal file
Binary file not shown.
BIN
sound/weather/ashstorm/outside/active_start.ogg
Normal file
BIN
sound/weather/ashstorm/outside/active_start.ogg
Normal file
Binary file not shown.
BIN
sound/weather/ashstorm/outside/weak_end.ogg
Normal file
BIN
sound/weather/ashstorm/outside/weak_end.ogg
Normal file
Binary file not shown.
BIN
sound/weather/ashstorm/outside/weak_mid1.ogg
Normal file
BIN
sound/weather/ashstorm/outside/weak_mid1.ogg
Normal file
Binary file not shown.
BIN
sound/weather/ashstorm/outside/weak_mid2.ogg
Normal file
BIN
sound/weather/ashstorm/outside/weak_mid2.ogg
Normal file
Binary file not shown.
BIN
sound/weather/ashstorm/outside/weak_mid3.ogg
Normal file
BIN
sound/weather/ashstorm/outside/weak_mid3.ogg
Normal file
Binary file not shown.
BIN
sound/weather/ashstorm/outside/weak_start.ogg
Normal file
BIN
sound/weather/ashstorm/outside/weak_start.ogg
Normal file
Binary file not shown.
@@ -386,6 +386,7 @@
|
||||
#include "code\datums\looping_sounds\item_sounds.dm"
|
||||
#include "code\datums\looping_sounds\looping_sound.dm"
|
||||
#include "code\datums\looping_sounds\machinery_sounds.dm"
|
||||
#include "code\datums\looping_sounds\weather.dm"
|
||||
#include "code\datums\martial\boxing.dm"
|
||||
#include "code\datums\martial\cqc.dm"
|
||||
#include "code\datums\martial\krav_maga.dm"
|
||||
|
||||
Reference in New Issue
Block a user