mirror of
https://github.com/KabKebab/GS13.git
synced 2026-07-10 23:47:16 +01:00
Merge pull request #1217 from ArchieBeepBoop/rainingin
It's raining in Layenia?
This commit is contained in:
@@ -19,7 +19,7 @@
|
||||
area_type = /area/layenia
|
||||
target_trait = ZTRAIT_STATION
|
||||
|
||||
probability = 100
|
||||
probability = 98
|
||||
|
||||
barometer_predictable = TRUE
|
||||
|
||||
|
||||
@@ -777,4 +777,16 @@
|
||||
weight = 5
|
||||
repeatable = TRUE
|
||||
repeatable_weight_decrease = 3
|
||||
occurances_max = 3
|
||||
occurances_max = 3
|
||||
|
||||
/* Unused, testing purposes only.
|
||||
/datum/dynamic_ruleset/event/oxygen_rain
|
||||
name = "Oxygen Rain"
|
||||
typepath = /datum/round_event/oxygen_rain
|
||||
requirements = list(0,0,0,0,0,0,0,0,0,0)
|
||||
high_population_requirement = 0
|
||||
weight = 1 //This is a rare occurence.
|
||||
repeatable = FALSE
|
||||
occurances_max = 1
|
||||
map_whitelist = list("LayeniaStation.dmm")
|
||||
*/
|
||||
|
||||
@@ -0,0 +1,119 @@
|
||||
/datum/weather/oxygen_rain
|
||||
name = "oxygen rain"
|
||||
desc = "The weather of Layenia can be quite unpredictable... Given the low temperature outside the station, oxygen condenses into liquid droplets."
|
||||
|
||||
telegraph_duration = 300
|
||||
telegraph_message = "<span class='boldwarning'>Oxygen clouds condense above and around the station...</span>"
|
||||
telegraph_overlay = "rain_med"
|
||||
|
||||
weather_message = "<span class='userdanger'><i>Liquid oxygen pours down around you! It's freezing!</i></span>"
|
||||
weather_overlay = "rain_high"
|
||||
weather_duration_lower = 600
|
||||
weather_duration_upper = 1200
|
||||
|
||||
end_duration = 300
|
||||
end_message = "<span class='boldannounce'>The downpour gradually slows to a light shower before fading away...</span>"
|
||||
end_overlay = "rain_low"
|
||||
|
||||
area_type = /area/layenia
|
||||
target_trait = ZTRAIT_STATION
|
||||
|
||||
immunity_type = "storm" // temp
|
||||
probability = 2 //The chances of this happening are very low after all. We'll rarely see it, but it's worth it.
|
||||
barometer_predictable = TRUE
|
||||
|
||||
var/datum/looping_sound/weak_outside_oxygenrain/sound_wo = new(list(), FALSE, TRUE)
|
||||
var/datum/looping_sound/weak_inside_oxygenrain/sound_wi = new(list(), FALSE, TRUE)
|
||||
|
||||
/datum/weather/oxygen_rain/telegraph()
|
||||
. = ..()
|
||||
priority_announce("[station_name()]: A large quantity of condensed oxygen clouds has been detected around and above the station. A liquid oxygen downpour is expected.",
|
||||
sound = 'sound/misc/notice2.ogg',
|
||||
sender_override = "Kinaris Meteorology Division")
|
||||
for(var/V in GLOB.player_list)
|
||||
var/mob/M = V
|
||||
if((M.client.prefs.toggles & SOUND_MIDI) && is_station_level(M.z))
|
||||
M.playsound_local(M, 'hyperstation/sound/ambience/embrace.ogg', 40, FALSE, pressure_affected = FALSE)
|
||||
/*
|
||||
"Sappheiros - Embrace" is under a Creative Commons license (CC BY 3.0)
|
||||
https://www.youtube.com/channel/UCxLKyBhC6igFhLEb0gxvQNg
|
||||
Music promoted by BreakingCopyright: https://youtu.be/DzYp5uqixz0
|
||||
*/
|
||||
var/list/inside_areas = list()
|
||||
var/list/outside_areas = list()
|
||||
var/list/eligible_areas = list()
|
||||
for (var/z in impacted_z_levels)
|
||||
eligible_areas += SSmapping.areas_in_z["[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_wo.output_atoms = outside_areas
|
||||
sound_wi.output_atoms = inside_areas
|
||||
|
||||
sound_wo.start()
|
||||
sound_wi.start()
|
||||
|
||||
/datum/weather/oxygen_rain/start()
|
||||
. = ..()
|
||||
|
||||
/datum/weather/oxygen_rain/wind_down()
|
||||
. = ..()
|
||||
|
||||
/datum/weather/oxygen_rain/end()
|
||||
. = ..()
|
||||
sound_wo.stop()
|
||||
sound_wi.stop()
|
||||
|
||||
/datum/weather/oxygen_rain/weather_act(mob/living/L)
|
||||
//This is liquid oxygen after all. (-90C)
|
||||
L.adjust_bodytemperature(-rand(5,10))
|
||||
|
||||
/datum/looping_sound/weak_outside_oxygenrain
|
||||
mid_sounds = list(
|
||||
'sound/weather/oxygenrain/outside/weak_mid1.ogg'=1,
|
||||
'sound/weather/oxygenrain/outside/weak_mid2.ogg'=1
|
||||
)
|
||||
mid_length = 80
|
||||
start_sound = 'sound/weather/oxygenrain/outside/weak_start.ogg'
|
||||
start_length = 130
|
||||
end_sound = 'sound/weather/oxygenrain/outside/weak_end.ogg'
|
||||
volume = 50
|
||||
|
||||
/datum/looping_sound/weak_inside_oxygenrain
|
||||
mid_sounds = list(
|
||||
'sound/weather/oxygenrain/inside/weak_mid1.ogg'=1,
|
||||
'sound/weather/oxygenrain/inside/weak_mid2.ogg'=1
|
||||
)
|
||||
mid_length = 80
|
||||
start_sound = 'sound/weather/oxygenrain/inside/weak_start.ogg'
|
||||
start_length = 130
|
||||
end_sound = 'sound/weather/oxygenrain/inside/weak_end.ogg'
|
||||
volume = 30
|
||||
|
||||
/* Unused code for testing purposes.
|
||||
|
||||
/datum/round_event_control/oxygen_rain
|
||||
name = "Oxygen Rain"
|
||||
typepath = /datum/round_event/oxygen_rain
|
||||
max_occurrences = 1
|
||||
|
||||
/datum/round_event/oxygen_rain
|
||||
|
||||
/datum/round_event/oxygen_rain/setup()
|
||||
startWhen = 3
|
||||
endWhen = startWhen + 1
|
||||
announceWhen = 1
|
||||
|
||||
/datum/round_event/oxygen_rain/start()
|
||||
SSweather.run_weather(/datum/weather/oxygen_rain)
|
||||
|
||||
/datum/round_event/oxygen_rain/announce()
|
||||
priority_announce("[station_name()]: A large quantity of condensed oxygen clouds has been detected around and above the station. A liquid oxygen downpour is expected.",
|
||||
sound = 'sound/misc/notice2.ogg',
|
||||
sender_override = "Kinaris Meteorology Division")
|
||||
*/
|
||||
Binary file not shown.
Binary file not shown.
|
Before Width: | Height: | Size: 18 KiB After Width: | Height: | Size: 35 KiB |
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -3050,6 +3050,7 @@
|
||||
#include "hyperstation\code\datums\ruins\lavaland.dm"
|
||||
#include "hyperstation\code\datums\traits\good.dm"
|
||||
#include "hyperstation\code\datums\traits\neutral.dm"
|
||||
#include "hyperstation\code\datums\weather\oxygen_rain.dm"
|
||||
#include "hyperstation\code\game\objects\railings.dm"
|
||||
#include "hyperstation\code\game\objects\items\cosmetics.dm"
|
||||
#include "hyperstation\code\game\objects\items\storage\big_bag.dm"
|
||||
|
||||
Reference in New Issue
Block a user