mirror of
https://github.com/quotefox/Hyper-Station-13.git
synced 2026-07-11 07:42:29 +01:00
99 lines
4.2 KiB
Plaintext
99 lines
4.2 KiB
Plaintext
/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 = 115
|
|
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
|
|
var/list/areasToFlicker = list(/area/hallway,
|
|
/area/security,
|
|
/area/science)
|
|
|
|
/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 * 8, S.light_power * 1)
|
|
for(var/mob/M in GLOB.player_list)
|
|
SEND_SOUND(M, sound('sound/ambience/aurora_aquilae.ogg', volume=10)) //ogg is "In the presence of a King" by Heaven Pierce Her, used in the videogame ULTRAKILL. All respects and credits to the equivalent artists who worked on it.
|
|
|
|
/datum/round_event/aurora_aquilae/proc/flicker_lights()
|
|
for(var/area/A in world)
|
|
for(var/typecheck in areasToFlicker)
|
|
if(istype(A, typecheck))
|
|
for(var/obj/machinery/light/L in A)
|
|
L.flicker(10)
|
|
|
|
/datum/round_event/aurora_aquilae/proc/break_lights()
|
|
for(var/area/A in world)
|
|
for(var/typecheck in areasToFlicker)
|
|
if(istype(A, typecheck))
|
|
for(var/obj/machinery/power/apc/temp in A)
|
|
temp.overload_lighting()
|
|
|
|
/datum/round_event/aurora_aquilae/proc/battleflashbacksthree()
|
|
for(var/mob/living/carbon/human/H in GLOB.alive_mob_list)
|
|
new /datum/hallucination/stray_pistol_bullet(H)
|
|
|
|
/datum/round_event/aurora_aquilae/proc/battleflashbacksone()
|
|
for(var/mob/living/carbon/human/H in GLOB.alive_mob_list)
|
|
new /datum/hallucination/fire(H)
|
|
new /datum/hallucination/battle(H)
|
|
|
|
/datum/round_event/aurora_aquilae/proc/battleflashbackstwo()
|
|
for(var/mob/living/carbon/human/H in GLOB.alive_mob_list)
|
|
new /datum/hallucination/battle(H)
|
|
var/delay = 0
|
|
for(var/i in 1 to 50)
|
|
delay += 3
|
|
addtimer(CALLBACK(src, .proc/battleflashbacksthree), delay)
|
|
|
|
/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")
|
|
addtimer(CALLBACK(src, .proc/flicker_lights), 5 SECONDS)
|
|
addtimer(CALLBACK(src, .proc/battleflashbacksone), 5 SECONDS)
|
|
addtimer(CALLBACK(src, .proc/break_lights), 90 SECONDS)
|
|
addtimer(CALLBACK(src, .proc/battleflashbackstwo), 140 SECONDS)
|
|
|
|
/datum/round_event/aurora_aquilae/tick()
|
|
if(activeFor % 5 == 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)
|
|
|
|
/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))
|