mirror of
https://github.com/SPLURT-Station/S.P.L.U.R.T-Station-13.git
synced 2025-12-16 12:53:18 +00:00
Merge pull request #3708 from Citadel-Station-13/upstream-merge-32213
[MIRROR] New ambience for ash storms
This commit is contained in:
@@ -18,6 +18,8 @@ SUBSYSTEM_DEF(mapping)
|
|||||||
var/list/shuttle_templates = list()
|
var/list/shuttle_templates = list()
|
||||||
var/list/shelter_templates = list()
|
var/list/shelter_templates = list()
|
||||||
|
|
||||||
|
var/list/areas_in_z = list()
|
||||||
|
|
||||||
var/loading_ruins = FALSE
|
var/loading_ruins = FALSE
|
||||||
|
|
||||||
/datum/controller/subsystem/mapping/PreInit()
|
/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_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_duration = 300
|
||||||
telegraph_sound = 'sound/lavaland/ash_storm_windup.ogg'
|
|
||||||
telegraph_overlay = "light_ash"
|
telegraph_overlay = "light_ash"
|
||||||
|
|
||||||
weather_message = "<span class='userdanger'><i>Smoldering clouds of scorching ash billow down around you! Get inside!</i></span>"
|
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_lower = 600
|
||||||
weather_duration_upper = 1200
|
weather_duration_upper = 1200
|
||||||
weather_sound = 'sound/lavaland/ash_storm_start.ogg'
|
|
||||||
weather_overlay = "ash_storm"
|
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_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_duration = 300
|
||||||
end_sound = 'sound/lavaland/ash_storm_end.ogg'
|
|
||||||
end_overlay = "light_ash"
|
end_overlay = "light_ash"
|
||||||
|
|
||||||
area_type = /area/lavaland/surface/outdoors
|
area_type = /area/lavaland/surface/outdoors
|
||||||
@@ -26,6 +23,53 @@
|
|||||||
|
|
||||||
probability = 90
|
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)
|
/datum/weather/ash_storm/proc/is_ash_immune(mob/living/L)
|
||||||
if(ismecha(L.loc)) //Mechs are immune
|
if(ismecha(L.loc)) //Mechs are immune
|
||||||
return TRUE
|
return TRUE
|
||||||
@@ -50,7 +94,6 @@
|
|||||||
desc = "A passing ash storm blankets the area in harmless embers."
|
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_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"
|
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>"
|
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))
|
if(!IS_DYNAMIC_LIGHTING(src))
|
||||||
add_overlay(/obj/effect/fullbright)
|
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()
|
/area/Destroy()
|
||||||
STOP_PROCESSING(SSobj, src)
|
STOP_PROCESSING(SSobj, src)
|
||||||
return ..()
|
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\item_sounds.dm"
|
||||||
#include "code\datums\looping_sounds\looping_sound.dm"
|
#include "code\datums\looping_sounds\looping_sound.dm"
|
||||||
#include "code\datums\looping_sounds\machinery_sounds.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\boxing.dm"
|
||||||
#include "code\datums\martial\cqc.dm"
|
#include "code\datums\martial\cqc.dm"
|
||||||
#include "code\datums\martial\krav_maga.dm"
|
#include "code\datums\martial\krav_maga.dm"
|
||||||
|
|||||||
Reference in New Issue
Block a user