Files
WillandGitHub 60202429a7 Customizable Announcer (#19387)
* starting work

* most generic

* more alerts

* remaining alerts

* many fixes

* fix

* properly set

* virgo doesn't use those lines?

* actually they are used

* smallfixes

* oops

* silence of the bots

* docs
2026-04-14 16:32:50 -04:00

46 lines
1.5 KiB
Plaintext

/datum/event2/meta/gravity
name = "gravity failure"
departments = list(DEPARTMENT_EVERYONE)
chaos = 20
chaotic_threshold = EVENT_CHAOS_THRESHOLD_LOW_IMPACT
reusable = TRUE
event_type = /datum/event2/event/gravity
/datum/event2/meta/gravity/get_weight()
return (20 + (GLOB.metric.count_people_in_department(DEPARTMENT_EVERYONE) * 20)) / (times_ran + 1)
/datum/event2/event/gravity
length_lower_bound = 5 MINUTES
length_upper_bound = 20 MINUTES
var/list/generators = list()
/datum/event2/event/gravity/announce()
GLOB.command_announcement.Announce("Feedback surge detected in mass-distributions systems. Artificial gravity has been disabled. Please wait for the system to reinitialize, or contact your engineering department.", "Gravity Failure", ANNOUNCER_MSG_GRAVITY_OFF)
/datum/event2/event/gravity/start()
GLOB.gravity_is_on = FALSE
for(var/obj/machinery/gravity_generator/main/GG in GLOB.machines)
if((GG.z in get_location_z_levels()) && GG.on)
generators += GG
GG.breaker = FALSE
GG.set_power()
GG.charge_count = 10
/datum/event2/event/gravity/end()
GLOB.gravity_is_on = TRUE
var/did_anything = FALSE
for(var/obj/machinery/gravity_generator/main/GG in generators)
if(!GG.on)
GG.breaker = TRUE
GG.set_power()
GG.charge_count = 90
did_anything = TRUE
if(did_anything)
GLOB.command_announcement.Announce("Gravity generators are again functioning within normal parameters. Sorry for any inconvenience.", "Gravity Restored", ANNOUNCER_MSG_GRAVITY_ON)