mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2025-12-10 09:42:29 +00:00
## About The Pull Request <details> - renamed ai folder to announcer -- announcer -- - moved vox_fem to announcer - moved approachingTG to announcer - separated the ambience folder into ambience and instrumental -- ambience -- - created holy folder moved all related sounds there - created engineering folder and moved all related sounds there - created security folder and moved ambidet there - created general folder and moved ambigen there - created icemoon folder and moved all icebox-related ambience there - created medical folder and moved all medbay-related ambi there - created ruin folder and moves all ruins ambi there - created beach folder and moved seag and shore there - created lavaland folder and moved related ambi there - created aurora_caelus folder and placed its ambi there - created misc folder and moved the rest of the files that don't have a specific category into it -- instrumental -- - moved traitor folder here - created lobby_music folder and placed our songs there (title0 not used anywhere? - server-side modification?) -- items -- - moved secdeath to hailer - moved surgery to handling -- effects -- - moved chemistry into effects - moved hallucinations into effects - moved health into effects - moved magic into effects -- vehicles -- - moved mecha into vehicles created mobs folder -- mobs -- - moved creatures folder into mobs - moved voice into mobs renamed creatures to non-humanoids renamed voice to humanoids -- non-humanoids-- created cyborg folder created hiss folder moved harmalarm.ogg to cyborg -- humanoids -- -- misc -- moved ghostwhisper to misc moved insane_low_laugh to misc I give up trying to document this. </details> - [X] ambience - [x] announcer - [x] effects - [X] instrumental - [x] items - [x] machines - [x] misc - [X] mobs - [X] runtime - [X] vehicles - [ ] attributions ## Why It's Good For The Game This folder is so disorganized that it's vomit inducing, will make it easier to find and add new sounds, providng a minor structure to the sound folder. ## Changelog 🆑 grungussuss refactor: the sound folder in the source code has been reorganized, please report any oddities with sounds playing or not playing server: lobby music has been repathed to sound/music/lobby_music /🆑
67 lines
2.4 KiB
Plaintext
67 lines
2.4 KiB
Plaintext
SUBSYSTEM_DEF(nightshift)
|
|
name = "Night Shift"
|
|
wait = 10 MINUTES
|
|
|
|
var/nightshift_active = FALSE
|
|
var/nightshift_start_time = 702000 //7:30 PM, station time
|
|
var/nightshift_end_time = 270000 //7:30 AM, station time
|
|
var/nightshift_first_check = 30 SECONDS
|
|
|
|
var/high_security_mode = FALSE
|
|
var/list/currentrun
|
|
|
|
/datum/controller/subsystem/nightshift/Initialize()
|
|
if(!CONFIG_GET(flag/enable_night_shifts))
|
|
can_fire = FALSE
|
|
return SS_INIT_SUCCESS
|
|
|
|
/datum/controller/subsystem/nightshift/fire(resumed = FALSE)
|
|
if(resumed)
|
|
update_nightshift(resumed = TRUE)
|
|
return
|
|
if(world.time - SSticker.round_start_time < nightshift_first_check)
|
|
return
|
|
check_nightshift()
|
|
|
|
/datum/controller/subsystem/nightshift/proc/announce(message)
|
|
priority_announce(
|
|
text = message,
|
|
sound = 'sound/announcer/notice/notice2.ogg',
|
|
sender_override = "Automated Lighting System Announcement",
|
|
color_override = "grey",
|
|
)
|
|
|
|
/datum/controller/subsystem/nightshift/proc/check_nightshift()
|
|
var/emergency = SSsecurity_level.get_current_level_as_number() >= SEC_LEVEL_RED
|
|
var/announcing = TRUE
|
|
var/time = station_time()
|
|
var/night_time = (time < nightshift_end_time) || (time > nightshift_start_time)
|
|
if(high_security_mode != emergency)
|
|
high_security_mode = emergency
|
|
if(night_time)
|
|
announcing = FALSE
|
|
if(!emergency)
|
|
announce("Restoring night lighting configuration to normal operation.")
|
|
else
|
|
announce("Disabling night lighting: Station is in a state of emergency.")
|
|
if(emergency)
|
|
night_time = FALSE
|
|
if(nightshift_active != night_time)
|
|
update_nightshift(night_time, announcing)
|
|
|
|
/datum/controller/subsystem/nightshift/proc/update_nightshift(active, announce = TRUE, resumed = FALSE, forced = FALSE)
|
|
if(!resumed)
|
|
currentrun = SSmachines.get_machines_by_type_and_subtypes(/obj/machinery/power/apc)
|
|
nightshift_active = active
|
|
if(announce)
|
|
if (active)
|
|
announce("Good evening, crew. To reduce power consumption and stimulate the circadian rhythms of some species, all of the lights aboard the station have been dimmed for the night.")
|
|
else
|
|
announce("Good morning, crew. As it is now day time, all of the lights aboard the station have been restored to their former brightness.")
|
|
for(var/obj/machinery/power/apc/APC as anything in currentrun)
|
|
currentrun -= APC
|
|
if (APC.area && (APC.area.type in GLOB.the_station_areas))
|
|
APC.set_nightshift(nightshift_active)
|
|
if(MC_TICK_CHECK && !forced) // subsystem will be in state SS_IDLE if forced by an admin
|
|
return
|