diff --git a/code/modules/events/aurora_aquilae.dm b/code/modules/events/aurora_aquilae.dm new file mode 100644 index 00000000..08c6f714 --- /dev/null +++ b/code/modules/events/aurora_aquilae.dm @@ -0,0 +1,92 @@ +/datum/round_event_control/aurora_aquilae + name = "Aurora Aquilae" + typepath = /datum/round_event/aurora_aquilae + max_occurrences = 1 + weight = 4 + earliest_start = 900 MINUTES + +/datum/round_event_control/aurora_aquilae/canSpawnEvent(players, gamemode) + if(!CONFIG_GET(flag/starlight)) + return FALSE + return ..() + +/datum/round_event/aurora_aquilae + announceWhen = 30 + startWhen = 1 + endWhen = 100 + var/list/aurora_colors = list("#ffc8bc", "#ed927f", "#d5745f", "#bf3a1d", "#c71414", "#FF3131", "#ee0808", "#ff0000") + var/aurora_progress = 0 //this cycles from 1 to 8, slowly grading towards a bright red + +/datum/round_event/aurora_aquilae/announce() + priority_announce("[station_name()]: A ·#HARMLESS#· cloud of ·|$% GLORY AND GUTS¬€#· ions is approaching your ·|%$ station, and will exhaust their energy battering the hull. Kinaris Command has approved a short break for all employees to relax and observe this very rare event. During this time, starlight will be bright but %%%BRUTAL·$ª, shifting between %$$%!ªTHE COMPLETE AND UTTER DESTRUCTION OF THE SENSES$ and %%THE ASHES OF THE GREAT AL-SHAIN%. Any staff who would like to view the %%PRESENCE OF A KING%$ for themselves may proceed to the nearest area with viewing ports to open space.", + sound = 'sound/misc/interference.ogg', + sender_override = "Kin]·|Aari$s Meteo%&rology DivD··isio#n") + +/datum/round_event/aurora_aquilae/start() + for(var/area in GLOB.sortedAreas) + var/area/A = area + if(initial(A.dynamic_lighting) == DYNAMIC_LIGHTING_IFSTARLIGHT) + for(var/turf/open/space/S in A) + S.set_light(S.light_range * 6, S.light_power * 1) + for(var/V in GLOB.player_list) + var/mob/M = V + if(is_station_level(M.z)) + M.playsound_local(M, 'sound/ambience/aurora_aquilae.ogg', 20, FALSE, pressure_affected = FALSE) + +/datum/round_event/aurora_aquilae/tick() + if(activeFor % 10 == 0) + aurora_progress++ + var/aurora_color = aurora_colors[aurora_progress] + for(var/area in GLOB.sortedAreas) + var/area/A = area + if(initial(A.dynamic_lighting) == DYNAMIC_LIGHTING_IFSTARLIGHT) + for(var/turf/open/space/S in A) + S.set_light(l_color = aurora_color) + if(activeFor == 75) + for(var/mob/living/carbon/human/H in GLOB.alive_mob_list) + new /datum/hallucination/battle(H) + sleep(5) + new /datum/hallucination/stray_bullet(H) + sleep(5) + new /datum/hallucination/stray_bullet(H) + sleep(5) + new /datum/hallucination/stray_bullet(H) + sleep(5) + new /datum/hallucination/stray_bullet(H) + sleep(5) + new /datum/hallucination/stray_bullet(H) + sleep(5) + new /datum/hallucination/stray_bullet(H) + sleep(5) + new /datum/hallucination/stray_bullet(H) + sleep(5) + new /datum/hallucination/stray_bullet(H) + sleep(5) + new /datum/hallucination/stray_bullet(H) + sleep(5) + new /datum/hallucination/stray_bullet(H) + if(activeFor == 60) + for(var/mob/living/carbon/human/H in GLOB.alive_mob_list) + new /datum/hallucination/fire(H) + if(activeFor == 60) + for(var/area/A in GLOB.sortedAreas) + for(var/obj/machinery/light/L in A) + L.flicker(30) + +/datum/round_event/aurora_aquilae/end() + for(var/area in GLOB.sortedAreas) + var/area/A = area + if(initial(A.dynamic_lighting) == DYNAMIC_LIGHTING_IFSTARLIGHT) + for(var/turf/open/space/S in A) + fade_to_black(S) + priority_announce("Have a pleasant shift, [station_name()], and thank you for watching us.", + sound = 'sound/misc/notice2.ogg', + sender_override = "???") + +/datum/round_event/aurora_aquilae/proc/fade_to_black(turf/open/space/S) + set waitfor = FALSE + var/new_light = initial(S.light_range) + while(S.light_range > new_light) + S.set_light(S.light_range - 0.2) + sleep(30) + S.set_light(new_light, initial(S.light_power), initial(S.light_color)) diff --git a/sound/ambience/aurora_aquilae.ogg b/sound/ambience/aurora_aquilae.ogg new file mode 100644 index 00000000..6efe2373 Binary files /dev/null and b/sound/ambience/aurora_aquilae.ogg differ diff --git a/tgstation.dme b/tgstation.dme index 705ac989..2c84ab36 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -1678,6 +1678,7 @@ #include "code\modules\events\anomaly_grav.dm" #include "code\modules\events\anomaly_pyro.dm" #include "code\modules\events\anomaly_vortex.dm" +#include "code\modules\events\aurora_aquilae.dm" #include "code\modules\events\aurora_caelus.dm" #include "code\modules\events\blob.dm" #include "code\modules\events\brand_intelligence.dm"