Standardises all files from CRLF to LF
This commit is contained in:
@@ -1,143 +1,143 @@
|
||||
GLOBAL_DATUM_INIT(keycard_events, /datum/events, new)
|
||||
|
||||
#define KEYCARD_RED_ALERT "Red Alert"
|
||||
#define KEYCARD_EMERGENCY_MAINTENANCE_ACCESS "Emergency Maintenance Access"
|
||||
#define KEYCARD_BSA_UNLOCK "Bluespace Artillery Unlock"
|
||||
|
||||
/obj/machinery/keycard_auth
|
||||
name = "Keycard Authentication Device"
|
||||
desc = "This device is used to trigger station functions, which require more than one ID card to authenticate."
|
||||
icon = 'icons/obj/monitors.dmi'
|
||||
icon_state = "auth_off"
|
||||
use_power = IDLE_POWER_USE
|
||||
idle_power_usage = 2
|
||||
active_power_usage = 6
|
||||
power_channel = ENVIRON
|
||||
req_access = list(ACCESS_KEYCARD_AUTH)
|
||||
resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | UNACIDABLE | ACID_PROOF
|
||||
var/datum/callback/ev
|
||||
var/event = ""
|
||||
var/obj/machinery/keycard_auth/event_source
|
||||
var/mob/triggerer = null
|
||||
var/waiting = 0
|
||||
|
||||
/obj/machinery/keycard_auth/Initialize()
|
||||
. = ..()
|
||||
ev = GLOB.keycard_events.addEvent("triggerEvent", CALLBACK(src, .proc/triggerEvent))
|
||||
|
||||
/obj/machinery/keycard_auth/Destroy()
|
||||
GLOB.keycard_events.clearEvent("triggerEvent", ev)
|
||||
QDEL_NULL(ev)
|
||||
return ..()
|
||||
|
||||
/obj/machinery/keycard_auth/ui_interact(mob/user, ui_key = "main", datum/tgui/ui = null, force_open = FALSE, \
|
||||
datum/tgui/master_ui = null, datum/ui_state/state = GLOB.physical_state)
|
||||
ui = SStgui.try_update_ui(user, src, ui_key, ui, force_open)
|
||||
if(!ui)
|
||||
ui = new(user, src, ui_key, "keycard_auth", name, 375, 125, master_ui, state)
|
||||
ui.open()
|
||||
|
||||
/obj/machinery/keycard_auth/ui_data()
|
||||
var/list/data = list()
|
||||
data["waiting"] = waiting
|
||||
data["auth_required"] = event_source ? event_source.event : 0
|
||||
data["red_alert"] = (seclevel2num(get_security_level()) >= SEC_LEVEL_RED) ? 1 : 0
|
||||
data["emergency_maint"] = GLOB.emergency_access
|
||||
data["bsa_unlock"] = GLOB.bsa_unlock
|
||||
return data
|
||||
|
||||
/obj/machinery/keycard_auth/ui_status(mob/user)
|
||||
if(isanimal(user))
|
||||
var/mob/living/simple_animal/A = user
|
||||
if(!A.dextrous)
|
||||
to_chat(user, "<span class='warning'>You are too primitive to use this device!</span>")
|
||||
return UI_CLOSE
|
||||
return ..()
|
||||
|
||||
/obj/machinery/keycard_auth/ui_act(action, params)
|
||||
if(..() || waiting || !allowed(usr))
|
||||
return
|
||||
switch(action)
|
||||
if("red_alert")
|
||||
if(!event_source)
|
||||
sendEvent(KEYCARD_RED_ALERT)
|
||||
. = TRUE
|
||||
if("emergency_maint")
|
||||
if(!event_source)
|
||||
sendEvent(KEYCARD_EMERGENCY_MAINTENANCE_ACCESS)
|
||||
. = TRUE
|
||||
if("auth_swipe")
|
||||
if(event_source)
|
||||
event_source.trigger_event(usr)
|
||||
event_source = null
|
||||
. = TRUE
|
||||
if("bsa_unlock")
|
||||
if(!event_source)
|
||||
sendEvent(KEYCARD_BSA_UNLOCK)
|
||||
. = TRUE
|
||||
|
||||
/obj/machinery/keycard_auth/proc/sendEvent(event_type)
|
||||
triggerer = usr
|
||||
event = event_type
|
||||
waiting = 1
|
||||
GLOB.keycard_events.fireEvent("triggerEvent", src)
|
||||
addtimer(CALLBACK(src, .proc/eventSent), 20)
|
||||
|
||||
/obj/machinery/keycard_auth/proc/eventSent()
|
||||
triggerer = null
|
||||
event = ""
|
||||
waiting = 0
|
||||
|
||||
/obj/machinery/keycard_auth/proc/triggerEvent(source)
|
||||
icon_state = "auth_on"
|
||||
event_source = source
|
||||
addtimer(CALLBACK(src, .proc/eventTriggered), 20)
|
||||
|
||||
/obj/machinery/keycard_auth/proc/eventTriggered()
|
||||
icon_state = "auth_off"
|
||||
event_source = null
|
||||
|
||||
/obj/machinery/keycard_auth/proc/trigger_event(confirmer)
|
||||
log_game("[key_name(triggerer)] triggered and [key_name(confirmer)] confirmed event [event]")
|
||||
message_admins("[key_name(triggerer)] triggered and [key_name(confirmer)] confirmed event [event]")
|
||||
|
||||
var/area/A1 = get_area(triggerer)
|
||||
deadchat_broadcast("<span class='deadsay'><span class='name'>[triggerer]</span> triggered [event] at <span class='name'>[A1.name]</span>.</span>", triggerer)
|
||||
|
||||
var/area/A2 = get_area(confirmer)
|
||||
deadchat_broadcast("<span class='deadsay'><span class='name'>[confirmer]</span> confirmed [event] at <span class='name'>[A2.name]</span>.</span>", confirmer)
|
||||
switch(event)
|
||||
if(KEYCARD_RED_ALERT)
|
||||
set_security_level(SEC_LEVEL_RED)
|
||||
if(KEYCARD_EMERGENCY_MAINTENANCE_ACCESS)
|
||||
make_maint_all_access()
|
||||
if(KEYCARD_BSA_UNLOCK)
|
||||
toggle_bluespace_artillery()
|
||||
|
||||
GLOBAL_VAR_INIT(emergency_access, FALSE)
|
||||
/proc/make_maint_all_access()
|
||||
for(var/area/maintenance/A in world)
|
||||
for(var/obj/machinery/door/airlock/D in A)
|
||||
D.emergency = TRUE
|
||||
D.update_icon(0)
|
||||
minor_announce("Access restrictions on maintenance and external airlocks have been lifted.", "Attention! Station-wide emergency declared!",1)
|
||||
GLOB.emergency_access = TRUE
|
||||
SSblackbox.record_feedback("nested tally", "keycard_auths", 1, list("emergency maintenance access", "enabled"))
|
||||
|
||||
/proc/revoke_maint_all_access()
|
||||
for(var/area/maintenance/A in world)
|
||||
for(var/obj/machinery/door/airlock/D in A)
|
||||
D.emergency = FALSE
|
||||
D.update_icon(0)
|
||||
minor_announce("Access restrictions in maintenance areas have been restored.", "Attention! Station-wide emergency rescinded:")
|
||||
GLOB.emergency_access = FALSE
|
||||
SSblackbox.record_feedback("nested tally", "keycard_auths", 1, list("emergency maintenance access", "disabled"))
|
||||
|
||||
/proc/toggle_bluespace_artillery()
|
||||
GLOB.bsa_unlock = !GLOB.bsa_unlock
|
||||
minor_announce("Bluespace Artillery firing protocols have been [GLOB.bsa_unlock? "unlocked" : "locked"]", "Weapons Systems Update:")
|
||||
SSblackbox.record_feedback("nested tally", "keycard_auths", 1, list("bluespace artillery", GLOB.bsa_unlock? "unlocked" : "locked"))
|
||||
|
||||
#undef KEYCARD_RED_ALERT
|
||||
#undef KEYCARD_EMERGENCY_MAINTENANCE_ACCESS
|
||||
#undef KEYCARD_BSA_UNLOCK
|
||||
GLOBAL_DATUM_INIT(keycard_events, /datum/events, new)
|
||||
|
||||
#define KEYCARD_RED_ALERT "Red Alert"
|
||||
#define KEYCARD_EMERGENCY_MAINTENANCE_ACCESS "Emergency Maintenance Access"
|
||||
#define KEYCARD_BSA_UNLOCK "Bluespace Artillery Unlock"
|
||||
|
||||
/obj/machinery/keycard_auth
|
||||
name = "Keycard Authentication Device"
|
||||
desc = "This device is used to trigger station functions, which require more than one ID card to authenticate."
|
||||
icon = 'icons/obj/monitors.dmi'
|
||||
icon_state = "auth_off"
|
||||
use_power = IDLE_POWER_USE
|
||||
idle_power_usage = 2
|
||||
active_power_usage = 6
|
||||
power_channel = ENVIRON
|
||||
req_access = list(ACCESS_KEYCARD_AUTH)
|
||||
resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | UNACIDABLE | ACID_PROOF
|
||||
var/datum/callback/ev
|
||||
var/event = ""
|
||||
var/obj/machinery/keycard_auth/event_source
|
||||
var/mob/triggerer = null
|
||||
var/waiting = 0
|
||||
|
||||
/obj/machinery/keycard_auth/Initialize()
|
||||
. = ..()
|
||||
ev = GLOB.keycard_events.addEvent("triggerEvent", CALLBACK(src, .proc/triggerEvent))
|
||||
|
||||
/obj/machinery/keycard_auth/Destroy()
|
||||
GLOB.keycard_events.clearEvent("triggerEvent", ev)
|
||||
QDEL_NULL(ev)
|
||||
return ..()
|
||||
|
||||
/obj/machinery/keycard_auth/ui_interact(mob/user, ui_key = "main", datum/tgui/ui = null, force_open = FALSE, \
|
||||
datum/tgui/master_ui = null, datum/ui_state/state = GLOB.physical_state)
|
||||
ui = SStgui.try_update_ui(user, src, ui_key, ui, force_open)
|
||||
if(!ui)
|
||||
ui = new(user, src, ui_key, "keycard_auth", name, 375, 125, master_ui, state)
|
||||
ui.open()
|
||||
|
||||
/obj/machinery/keycard_auth/ui_data()
|
||||
var/list/data = list()
|
||||
data["waiting"] = waiting
|
||||
data["auth_required"] = event_source ? event_source.event : 0
|
||||
data["red_alert"] = (seclevel2num(get_security_level()) >= SEC_LEVEL_RED) ? 1 : 0
|
||||
data["emergency_maint"] = GLOB.emergency_access
|
||||
data["bsa_unlock"] = GLOB.bsa_unlock
|
||||
return data
|
||||
|
||||
/obj/machinery/keycard_auth/ui_status(mob/user)
|
||||
if(isanimal(user))
|
||||
var/mob/living/simple_animal/A = user
|
||||
if(!A.dextrous)
|
||||
to_chat(user, "<span class='warning'>You are too primitive to use this device!</span>")
|
||||
return UI_CLOSE
|
||||
return ..()
|
||||
|
||||
/obj/machinery/keycard_auth/ui_act(action, params)
|
||||
if(..() || waiting || !allowed(usr))
|
||||
return
|
||||
switch(action)
|
||||
if("red_alert")
|
||||
if(!event_source)
|
||||
sendEvent(KEYCARD_RED_ALERT)
|
||||
. = TRUE
|
||||
if("emergency_maint")
|
||||
if(!event_source)
|
||||
sendEvent(KEYCARD_EMERGENCY_MAINTENANCE_ACCESS)
|
||||
. = TRUE
|
||||
if("auth_swipe")
|
||||
if(event_source)
|
||||
event_source.trigger_event(usr)
|
||||
event_source = null
|
||||
. = TRUE
|
||||
if("bsa_unlock")
|
||||
if(!event_source)
|
||||
sendEvent(KEYCARD_BSA_UNLOCK)
|
||||
. = TRUE
|
||||
|
||||
/obj/machinery/keycard_auth/proc/sendEvent(event_type)
|
||||
triggerer = usr
|
||||
event = event_type
|
||||
waiting = 1
|
||||
GLOB.keycard_events.fireEvent("triggerEvent", src)
|
||||
addtimer(CALLBACK(src, .proc/eventSent), 20)
|
||||
|
||||
/obj/machinery/keycard_auth/proc/eventSent()
|
||||
triggerer = null
|
||||
event = ""
|
||||
waiting = 0
|
||||
|
||||
/obj/machinery/keycard_auth/proc/triggerEvent(source)
|
||||
icon_state = "auth_on"
|
||||
event_source = source
|
||||
addtimer(CALLBACK(src, .proc/eventTriggered), 20)
|
||||
|
||||
/obj/machinery/keycard_auth/proc/eventTriggered()
|
||||
icon_state = "auth_off"
|
||||
event_source = null
|
||||
|
||||
/obj/machinery/keycard_auth/proc/trigger_event(confirmer)
|
||||
log_game("[key_name(triggerer)] triggered and [key_name(confirmer)] confirmed event [event]")
|
||||
message_admins("[key_name(triggerer)] triggered and [key_name(confirmer)] confirmed event [event]")
|
||||
|
||||
var/area/A1 = get_area(triggerer)
|
||||
deadchat_broadcast("<span class='deadsay'><span class='name'>[triggerer]</span> triggered [event] at <span class='name'>[A1.name]</span>.</span>", triggerer)
|
||||
|
||||
var/area/A2 = get_area(confirmer)
|
||||
deadchat_broadcast("<span class='deadsay'><span class='name'>[confirmer]</span> confirmed [event] at <span class='name'>[A2.name]</span>.</span>", confirmer)
|
||||
switch(event)
|
||||
if(KEYCARD_RED_ALERT)
|
||||
set_security_level(SEC_LEVEL_RED)
|
||||
if(KEYCARD_EMERGENCY_MAINTENANCE_ACCESS)
|
||||
make_maint_all_access()
|
||||
if(KEYCARD_BSA_UNLOCK)
|
||||
toggle_bluespace_artillery()
|
||||
|
||||
GLOBAL_VAR_INIT(emergency_access, FALSE)
|
||||
/proc/make_maint_all_access()
|
||||
for(var/area/maintenance/A in world)
|
||||
for(var/obj/machinery/door/airlock/D in A)
|
||||
D.emergency = TRUE
|
||||
D.update_icon(0)
|
||||
minor_announce("Access restrictions on maintenance and external airlocks have been lifted.", "Attention! Station-wide emergency declared!",1)
|
||||
GLOB.emergency_access = TRUE
|
||||
SSblackbox.record_feedback("nested tally", "keycard_auths", 1, list("emergency maintenance access", "enabled"))
|
||||
|
||||
/proc/revoke_maint_all_access()
|
||||
for(var/area/maintenance/A in world)
|
||||
for(var/obj/machinery/door/airlock/D in A)
|
||||
D.emergency = FALSE
|
||||
D.update_icon(0)
|
||||
minor_announce("Access restrictions in maintenance areas have been restored.", "Attention! Station-wide emergency rescinded:")
|
||||
GLOB.emergency_access = FALSE
|
||||
SSblackbox.record_feedback("nested tally", "keycard_auths", 1, list("emergency maintenance access", "disabled"))
|
||||
|
||||
/proc/toggle_bluespace_artillery()
|
||||
GLOB.bsa_unlock = !GLOB.bsa_unlock
|
||||
minor_announce("Bluespace Artillery firing protocols have been [GLOB.bsa_unlock? "unlocked" : "locked"]", "Weapons Systems Update:")
|
||||
SSblackbox.record_feedback("nested tally", "keycard_auths", 1, list("bluespace artillery", GLOB.bsa_unlock? "unlocked" : "locked"))
|
||||
|
||||
#undef KEYCARD_RED_ALERT
|
||||
#undef KEYCARD_EMERGENCY_MAINTENANCE_ACCESS
|
||||
#undef KEYCARD_BSA_UNLOCK
|
||||
|
||||
@@ -1,156 +1,156 @@
|
||||
GLOBAL_VAR_INIT(security_level, SEC_LEVEL_GREEN)
|
||||
//SEC_LEVEL_GREEN = code green
|
||||
//SEC_LEVEL_BLUE = code blue
|
||||
//SEC_LEVEL_AMBER = code amber
|
||||
//SEC_LEVEL_RED = code red
|
||||
//SEC_LEVEL_DELTA = code delta
|
||||
|
||||
//config.alert_desc_blue_downto
|
||||
|
||||
/proc/set_security_level(level)
|
||||
switch(level)
|
||||
if("green")
|
||||
level = SEC_LEVEL_GREEN
|
||||
if("blue")
|
||||
level = SEC_LEVEL_BLUE
|
||||
if("amber")
|
||||
level = SEC_LEVEL_AMBER
|
||||
if("red")
|
||||
level = SEC_LEVEL_RED
|
||||
if("delta")
|
||||
level = SEC_LEVEL_DELTA
|
||||
|
||||
//Will not be announced if you try to set to the same level as it already is
|
||||
if(level >= SEC_LEVEL_GREEN && level <= SEC_LEVEL_DELTA && level != GLOB.security_level)
|
||||
switch(level)
|
||||
if(SEC_LEVEL_GREEN)
|
||||
minor_announce(CONFIG_GET(string/alert_green), "Attention! Security level lowered to green:")
|
||||
if(SSshuttle.emergency.mode == SHUTTLE_CALL || SSshuttle.emergency.mode == SHUTTLE_RECALL)
|
||||
if(GLOB.security_level >= SEC_LEVEL_RED)
|
||||
SSshuttle.emergency.modTimer(4)
|
||||
else if(GLOB.security_level == SEC_LEVEL_AMBER)
|
||||
SSshuttle.emergency.modTimer(2.5)
|
||||
else
|
||||
SSshuttle.emergency.modTimer(1.66)
|
||||
GLOB.security_level = SEC_LEVEL_GREEN
|
||||
for(var/obj/machinery/firealarm/FA in GLOB.machines)
|
||||
if(is_station_level(FA.z))
|
||||
FA.update_icon()
|
||||
if(SEC_LEVEL_BLUE)
|
||||
if(GLOB.security_level < SEC_LEVEL_BLUE)
|
||||
minor_announce(CONFIG_GET(string/alert_blue_upto), "Attention! Security level elevated to blue:",1)
|
||||
if(SSshuttle.emergency.mode == SHUTTLE_CALL || SSshuttle.emergency.mode == SHUTTLE_RECALL)
|
||||
SSshuttle.emergency.modTimer(0.6)
|
||||
else
|
||||
minor_announce(CONFIG_GET(string/alert_blue_downto), "Attention! Security level lowered to blue:")
|
||||
if(SSshuttle.emergency.mode == SHUTTLE_CALL || SSshuttle.emergency.mode == SHUTTLE_RECALL)
|
||||
if(GLOB.security_level >= SEC_LEVEL_RED)
|
||||
SSshuttle.emergency.modTimer(2.4)
|
||||
else
|
||||
SSshuttle.emergency.modTimer(1.5)
|
||||
GLOB.security_level = SEC_LEVEL_BLUE
|
||||
sound_to_playing_players('sound/misc/voybluealert.ogg', volume = 50) // Citadel change - Makes alerts play a sound
|
||||
for(var/obj/machinery/firealarm/FA in GLOB.machines)
|
||||
if(is_station_level(FA.z))
|
||||
FA.update_icon()
|
||||
if(SEC_LEVEL_AMBER)
|
||||
if(GLOB.security_level < SEC_LEVEL_AMBER)
|
||||
minor_announce(CONFIG_GET(string/alert_amber_upto), "Attention! Security level elevated to amber:",1)
|
||||
if(SSshuttle.emergency.mode == SHUTTLE_CALL || SSshuttle.emergency.mode == SHUTTLE_RECALL)
|
||||
if(GLOB.security_level == SEC_LEVEL_GREEN)
|
||||
SSshuttle.emergency.modTimer(0.4)
|
||||
else
|
||||
SSshuttle.emergency.modTimer(0.66)
|
||||
else
|
||||
minor_announce(CONFIG_GET(string/alert_amber_downto), "Attention! Security level lowered to amber:")
|
||||
if(SSshuttle.emergency.mode == SHUTTLE_CALL || SSshuttle.emergency.mode == SHUTTLE_RECALL)
|
||||
SSshuttle.emergency.modTimer(1.6)
|
||||
GLOB.security_level = SEC_LEVEL_AMBER
|
||||
sound_to_playing_players('sound/effects/alert.ogg', volume = 50) // Citadel change - Makes alerts play a sound
|
||||
for(var/obj/machinery/firealarm/FA in GLOB.machines)
|
||||
if(is_station_level(FA.z))
|
||||
FA.update_icon()
|
||||
if(SEC_LEVEL_RED)
|
||||
if(GLOB.security_level < SEC_LEVEL_RED)
|
||||
minor_announce(CONFIG_GET(string/alert_red_upto), "Attention! Code red!",1)
|
||||
if(SSshuttle.emergency.mode == SHUTTLE_CALL || SSshuttle.emergency.mode == SHUTTLE_RECALL)
|
||||
if(GLOB.security_level == SEC_LEVEL_GREEN)
|
||||
SSshuttle.emergency.modTimer(0.25)
|
||||
else if(GLOB.security_level == SEC_LEVEL_BLUE)
|
||||
SSshuttle.emergency.modTimer(0.416)
|
||||
else
|
||||
SSshuttle.emergency.modTimer(0.625)
|
||||
else
|
||||
minor_announce(CONFIG_GET(string/alert_red_downto), "Attention! Code red!")
|
||||
GLOB.security_level = SEC_LEVEL_RED
|
||||
sound_to_playing_players('sound/misc/voyalert.ogg', volume = 50) // Citadel change - Makes alerts play a sound
|
||||
|
||||
for(var/obj/machinery/firealarm/FA in GLOB.machines)
|
||||
if(is_station_level(FA.z))
|
||||
FA.update_icon()
|
||||
for(var/obj/machinery/computer/shuttle/pod/pod in GLOB.machines)
|
||||
pod.admin_controlled = 0
|
||||
if(SEC_LEVEL_DELTA)
|
||||
minor_announce(CONFIG_GET(string/alert_delta), "Attention! Delta security level reached!",1)
|
||||
if(SSshuttle.emergency.mode == SHUTTLE_CALL || SSshuttle.emergency.mode == SHUTTLE_RECALL)
|
||||
if(GLOB.security_level < SEC_LEVEL_BLUE)
|
||||
SSshuttle.emergency.modTimer(0.25)
|
||||
else if(GLOB.security_level == SEC_LEVEL_BLUE)
|
||||
SSshuttle.emergency.modTimer(0.416)
|
||||
else
|
||||
SSshuttle.emergency.modTimer(0.625)
|
||||
GLOB.security_level = SEC_LEVEL_DELTA
|
||||
sound_to_playing_players('sound/misc/deltakalaxon.ogg') // Citadel change - Makes alerts play a sound
|
||||
for(var/obj/machinery/firealarm/FA in GLOB.machines)
|
||||
if(is_station_level(FA.z))
|
||||
FA.update_icon()
|
||||
for(var/obj/machinery/computer/shuttle/pod/pod in GLOB.machines)
|
||||
pod.admin_controlled = 0
|
||||
if(level >= SEC_LEVEL_RED)
|
||||
for(var/obj/machinery/door/D in GLOB.machines)
|
||||
if(D.red_alert_access)
|
||||
D.visible_message("<span class='notice'>[D] whirrs as it automatically lifts access requirements!</span>")
|
||||
playsound(D, 'sound/machines/boltsup.ogg', 50, TRUE)
|
||||
SSblackbox.record_feedback("tally", "security_level_changes", 1, get_security_level())
|
||||
SSnightshift.check_nightshift()
|
||||
else
|
||||
return
|
||||
|
||||
/proc/get_security_level()
|
||||
switch(GLOB.security_level)
|
||||
if(SEC_LEVEL_GREEN)
|
||||
return "green"
|
||||
if(SEC_LEVEL_BLUE)
|
||||
return "blue"
|
||||
if(SEC_LEVEL_AMBER)
|
||||
return "amber"
|
||||
if(SEC_LEVEL_RED)
|
||||
return "red"
|
||||
if(SEC_LEVEL_DELTA)
|
||||
return "delta"
|
||||
|
||||
/proc/num2seclevel(num)
|
||||
switch(num)
|
||||
if(SEC_LEVEL_GREEN)
|
||||
return "green"
|
||||
if(SEC_LEVEL_BLUE)
|
||||
return "blue"
|
||||
if(SEC_LEVEL_AMBER)
|
||||
return "amber"
|
||||
if(SEC_LEVEL_RED)
|
||||
return "red"
|
||||
if(SEC_LEVEL_DELTA)
|
||||
return "delta"
|
||||
|
||||
/proc/seclevel2num(seclevel)
|
||||
switch( lowertext(seclevel) )
|
||||
if("green")
|
||||
return SEC_LEVEL_GREEN
|
||||
if("blue")
|
||||
return SEC_LEVEL_BLUE
|
||||
if("amber")
|
||||
return SEC_LEVEL_AMBER
|
||||
if("red")
|
||||
return SEC_LEVEL_RED
|
||||
if("delta")
|
||||
return SEC_LEVEL_DELTA
|
||||
GLOBAL_VAR_INIT(security_level, SEC_LEVEL_GREEN)
|
||||
//SEC_LEVEL_GREEN = code green
|
||||
//SEC_LEVEL_BLUE = code blue
|
||||
//SEC_LEVEL_AMBER = code amber
|
||||
//SEC_LEVEL_RED = code red
|
||||
//SEC_LEVEL_DELTA = code delta
|
||||
|
||||
//config.alert_desc_blue_downto
|
||||
|
||||
/proc/set_security_level(level)
|
||||
switch(level)
|
||||
if("green")
|
||||
level = SEC_LEVEL_GREEN
|
||||
if("blue")
|
||||
level = SEC_LEVEL_BLUE
|
||||
if("amber")
|
||||
level = SEC_LEVEL_AMBER
|
||||
if("red")
|
||||
level = SEC_LEVEL_RED
|
||||
if("delta")
|
||||
level = SEC_LEVEL_DELTA
|
||||
|
||||
//Will not be announced if you try to set to the same level as it already is
|
||||
if(level >= SEC_LEVEL_GREEN && level <= SEC_LEVEL_DELTA && level != GLOB.security_level)
|
||||
switch(level)
|
||||
if(SEC_LEVEL_GREEN)
|
||||
minor_announce(CONFIG_GET(string/alert_green), "Attention! Security level lowered to green:")
|
||||
if(SSshuttle.emergency.mode == SHUTTLE_CALL || SSshuttle.emergency.mode == SHUTTLE_RECALL)
|
||||
if(GLOB.security_level >= SEC_LEVEL_RED)
|
||||
SSshuttle.emergency.modTimer(4)
|
||||
else if(GLOB.security_level == SEC_LEVEL_AMBER)
|
||||
SSshuttle.emergency.modTimer(2.5)
|
||||
else
|
||||
SSshuttle.emergency.modTimer(1.66)
|
||||
GLOB.security_level = SEC_LEVEL_GREEN
|
||||
for(var/obj/machinery/firealarm/FA in GLOB.machines)
|
||||
if(is_station_level(FA.z))
|
||||
FA.update_icon()
|
||||
if(SEC_LEVEL_BLUE)
|
||||
if(GLOB.security_level < SEC_LEVEL_BLUE)
|
||||
minor_announce(CONFIG_GET(string/alert_blue_upto), "Attention! Security level elevated to blue:",1)
|
||||
if(SSshuttle.emergency.mode == SHUTTLE_CALL || SSshuttle.emergency.mode == SHUTTLE_RECALL)
|
||||
SSshuttle.emergency.modTimer(0.6)
|
||||
else
|
||||
minor_announce(CONFIG_GET(string/alert_blue_downto), "Attention! Security level lowered to blue:")
|
||||
if(SSshuttle.emergency.mode == SHUTTLE_CALL || SSshuttle.emergency.mode == SHUTTLE_RECALL)
|
||||
if(GLOB.security_level >= SEC_LEVEL_RED)
|
||||
SSshuttle.emergency.modTimer(2.4)
|
||||
else
|
||||
SSshuttle.emergency.modTimer(1.5)
|
||||
GLOB.security_level = SEC_LEVEL_BLUE
|
||||
sound_to_playing_players('sound/misc/voybluealert.ogg', volume = 50) // Citadel change - Makes alerts play a sound
|
||||
for(var/obj/machinery/firealarm/FA in GLOB.machines)
|
||||
if(is_station_level(FA.z))
|
||||
FA.update_icon()
|
||||
if(SEC_LEVEL_AMBER)
|
||||
if(GLOB.security_level < SEC_LEVEL_AMBER)
|
||||
minor_announce(CONFIG_GET(string/alert_amber_upto), "Attention! Security level elevated to amber:",1)
|
||||
if(SSshuttle.emergency.mode == SHUTTLE_CALL || SSshuttle.emergency.mode == SHUTTLE_RECALL)
|
||||
if(GLOB.security_level == SEC_LEVEL_GREEN)
|
||||
SSshuttle.emergency.modTimer(0.4)
|
||||
else
|
||||
SSshuttle.emergency.modTimer(0.66)
|
||||
else
|
||||
minor_announce(CONFIG_GET(string/alert_amber_downto), "Attention! Security level lowered to amber:")
|
||||
if(SSshuttle.emergency.mode == SHUTTLE_CALL || SSshuttle.emergency.mode == SHUTTLE_RECALL)
|
||||
SSshuttle.emergency.modTimer(1.6)
|
||||
GLOB.security_level = SEC_LEVEL_AMBER
|
||||
sound_to_playing_players('sound/effects/alert.ogg', volume = 50) // Citadel change - Makes alerts play a sound
|
||||
for(var/obj/machinery/firealarm/FA in GLOB.machines)
|
||||
if(is_station_level(FA.z))
|
||||
FA.update_icon()
|
||||
if(SEC_LEVEL_RED)
|
||||
if(GLOB.security_level < SEC_LEVEL_RED)
|
||||
minor_announce(CONFIG_GET(string/alert_red_upto), "Attention! Code red!",1)
|
||||
if(SSshuttle.emergency.mode == SHUTTLE_CALL || SSshuttle.emergency.mode == SHUTTLE_RECALL)
|
||||
if(GLOB.security_level == SEC_LEVEL_GREEN)
|
||||
SSshuttle.emergency.modTimer(0.25)
|
||||
else if(GLOB.security_level == SEC_LEVEL_BLUE)
|
||||
SSshuttle.emergency.modTimer(0.416)
|
||||
else
|
||||
SSshuttle.emergency.modTimer(0.625)
|
||||
else
|
||||
minor_announce(CONFIG_GET(string/alert_red_downto), "Attention! Code red!")
|
||||
GLOB.security_level = SEC_LEVEL_RED
|
||||
sound_to_playing_players('sound/misc/voyalert.ogg', volume = 50) // Citadel change - Makes alerts play a sound
|
||||
|
||||
for(var/obj/machinery/firealarm/FA in GLOB.machines)
|
||||
if(is_station_level(FA.z))
|
||||
FA.update_icon()
|
||||
for(var/obj/machinery/computer/shuttle/pod/pod in GLOB.machines)
|
||||
pod.admin_controlled = 0
|
||||
if(SEC_LEVEL_DELTA)
|
||||
minor_announce(CONFIG_GET(string/alert_delta), "Attention! Delta security level reached!",1)
|
||||
if(SSshuttle.emergency.mode == SHUTTLE_CALL || SSshuttle.emergency.mode == SHUTTLE_RECALL)
|
||||
if(GLOB.security_level < SEC_LEVEL_BLUE)
|
||||
SSshuttle.emergency.modTimer(0.25)
|
||||
else if(GLOB.security_level == SEC_LEVEL_BLUE)
|
||||
SSshuttle.emergency.modTimer(0.416)
|
||||
else
|
||||
SSshuttle.emergency.modTimer(0.625)
|
||||
GLOB.security_level = SEC_LEVEL_DELTA
|
||||
sound_to_playing_players('sound/misc/deltakalaxon.ogg') // Citadel change - Makes alerts play a sound
|
||||
for(var/obj/machinery/firealarm/FA in GLOB.machines)
|
||||
if(is_station_level(FA.z))
|
||||
FA.update_icon()
|
||||
for(var/obj/machinery/computer/shuttle/pod/pod in GLOB.machines)
|
||||
pod.admin_controlled = 0
|
||||
if(level >= SEC_LEVEL_RED)
|
||||
for(var/obj/machinery/door/D in GLOB.machines)
|
||||
if(D.red_alert_access)
|
||||
D.visible_message("<span class='notice'>[D] whirrs as it automatically lifts access requirements!</span>")
|
||||
playsound(D, 'sound/machines/boltsup.ogg', 50, TRUE)
|
||||
SSblackbox.record_feedback("tally", "security_level_changes", 1, get_security_level())
|
||||
SSnightshift.check_nightshift()
|
||||
else
|
||||
return
|
||||
|
||||
/proc/get_security_level()
|
||||
switch(GLOB.security_level)
|
||||
if(SEC_LEVEL_GREEN)
|
||||
return "green"
|
||||
if(SEC_LEVEL_BLUE)
|
||||
return "blue"
|
||||
if(SEC_LEVEL_AMBER)
|
||||
return "amber"
|
||||
if(SEC_LEVEL_RED)
|
||||
return "red"
|
||||
if(SEC_LEVEL_DELTA)
|
||||
return "delta"
|
||||
|
||||
/proc/num2seclevel(num)
|
||||
switch(num)
|
||||
if(SEC_LEVEL_GREEN)
|
||||
return "green"
|
||||
if(SEC_LEVEL_BLUE)
|
||||
return "blue"
|
||||
if(SEC_LEVEL_AMBER)
|
||||
return "amber"
|
||||
if(SEC_LEVEL_RED)
|
||||
return "red"
|
||||
if(SEC_LEVEL_DELTA)
|
||||
return "delta"
|
||||
|
||||
/proc/seclevel2num(seclevel)
|
||||
switch( lowertext(seclevel) )
|
||||
if("green")
|
||||
return SEC_LEVEL_GREEN
|
||||
if("blue")
|
||||
return SEC_LEVEL_BLUE
|
||||
if("amber")
|
||||
return SEC_LEVEL_AMBER
|
||||
if("red")
|
||||
return SEC_LEVEL_RED
|
||||
if("delta")
|
||||
return SEC_LEVEL_DELTA
|
||||
|
||||
Reference in New Issue
Block a user