Files
CHOMPStation2/code/modules/security levels/security levels.dm
2024-10-25 21:39:18 +02:00

161 lines
5.3 KiB
Plaintext

/var/security_level = 0
//0 = code green
//1 = code yellow
//2 = code violet
//3 = code orange
//4 = code blue
//5 = code red
//6 = code delta
//config.alert_desc_blue_downto
/var/datum/announcement/priority/security/security_announcement_up = new(do_log = 0, do_newscast = 1, new_sound = sound('sound/effects/alert_levels/alert_raise.ogg'))
/var/datum/announcement/priority/security/security_announcement_down = new(do_log = 0, do_newscast = 1)
/proc/set_security_level(var/level)
switch(level)
if("green")
level = SEC_LEVEL_GREEN
if("yellow")
level = SEC_LEVEL_YELLOW
if("violet")
level = SEC_LEVEL_VIOLET
if("orange")
level = SEC_LEVEL_ORANGE
if("blue")
level = SEC_LEVEL_BLUE
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 != security_level)
switch(level)
if(SEC_LEVEL_GREEN)
security_announcement_down.Announce("[CONFIG_GET(string/alert_desc_green)]", "Attention! Alert level lowered to code green.")
security_level = SEC_LEVEL_GREEN
if(SEC_LEVEL_YELLOW)
if(security_level < SEC_LEVEL_YELLOW)
security_announcement_up.Announce("[CONFIG_GET(string/alert_desc_yellow_upto)]", "Attention! Alert level elevated to yellow")
else
security_announcement_down.Announce("[CONFIG_GET(string/alert_desc_yellow_downto)]", "Attention! Alert level lowered to yellow")
security_level = SEC_LEVEL_YELLOW
if(SEC_LEVEL_VIOLET)
if(security_level < SEC_LEVEL_VIOLET)
security_announcement_up.Announce("[CONFIG_GET(string/alert_desc_violet_upto)]", "Attention! Alert level elevated to violet")
else
security_announcement_down.Announce("[CONFIG_GET(string/alert_desc_violet_downto)]", "Attention! Alert level lowered to violet")
security_level = SEC_LEVEL_VIOLET
if(SEC_LEVEL_ORANGE)
if(security_level < SEC_LEVEL_ORANGE)
security_announcement_up.Announce("[CONFIG_GET(string/alert_desc_orange_upto)]", "Attention! Alert level elevated to orange")
else
security_announcement_down.Announce("[CONFIG_GET(string/alert_desc_orange_downto)]", "Attention! Alert level lowered to orange")
security_level = SEC_LEVEL_ORANGE
if(SEC_LEVEL_BLUE)
if(security_level < SEC_LEVEL_BLUE)
security_announcement_up.Announce("[CONFIG_GET(string/alert_desc_blue_upto)]", "Attention! Alert level elevated to blue")
else
security_announcement_down.Announce("[CONFIG_GET(string/alert_desc_blue_downto)]", "Attention! Alert level lowered to blue")
security_level = SEC_LEVEL_BLUE
if(SEC_LEVEL_RED)
if(security_level < SEC_LEVEL_RED)
security_announcement_up.Announce("[CONFIG_GET(string/alert_desc_red_upto)]", "Attention! Code red!", new_sound = sound('sound/effects/alert_levels/red_alert.ogg', volume = 75))
else
security_announcement_down.Announce("[CONFIG_GET(string/alert_desc_red_downto)]", "Attention! Code red!")
security_level = SEC_LEVEL_RED
if(SEC_LEVEL_DELTA)
security_announcement_up.Announce("[CONFIG_GET(string/alert_desc_delta)]", "Attention! Delta alert level reached!", new_sound = 'sound/effects/alert_levels/deltaklaxon.ogg')
security_level = SEC_LEVEL_DELTA
var/newlevel = get_security_level()
for(var/obj/machinery/firealarm/FA in machines)
if(FA.z in using_map.contact_levels)
FA.set_security_level(newlevel)
for(var/obj/machinery/status_display/FA in machines)
if(FA.z in using_map.contact_levels)
FA.on_alert_changed(newlevel)
//VOREStation Add
for(var/obj/machinery/holoposter/HP as anything in GLOB.holoposters)
HP.update_icon()
//VOREStation Add End
if(level >= SEC_LEVEL_RED)
atc.reroute_traffic(yes = 1) // Tell them fuck off we're busy.
else
atc.reroute_traffic(yes = 0)
spawn()
//SSnightshift.check_nightshift() //CHOMPedit: disabling this for now as we do not use the nightshift currently.
admin_chat_message(message = "Security level is now: [uppertext(get_security_level())]", color = "#CC2222") //VOREStation Add
/proc/get_security_level()
switch(security_level)
if(SEC_LEVEL_GREEN)
return "green"
if(SEC_LEVEL_YELLOW)
return "yellow"
if(SEC_LEVEL_VIOLET)
return "violet"
if(SEC_LEVEL_ORANGE)
return "orange"
if(SEC_LEVEL_BLUE)
return "blue"
if(SEC_LEVEL_RED)
return "red"
if(SEC_LEVEL_DELTA)
return "delta"
/proc/num2seclevel(var/num)
switch(num)
if(SEC_LEVEL_GREEN)
return "green"
if(SEC_LEVEL_YELLOW)
return "yellow"
if(SEC_LEVEL_VIOLET)
return "violet"
if(SEC_LEVEL_ORANGE)
return "orange"
if(SEC_LEVEL_BLUE)
return "blue"
if(SEC_LEVEL_RED)
return "red"
if(SEC_LEVEL_DELTA)
return "delta"
/proc/seclevel2num(var/seclevel)
switch( lowertext(seclevel) )
if("green")
return SEC_LEVEL_GREEN
if("yellow")
return SEC_LEVEL_YELLOW
if("violet")
return SEC_LEVEL_VIOLET
if("orange")
return SEC_LEVEL_ORANGE
if("blue")
return SEC_LEVEL_BLUE
if("red")
return SEC_LEVEL_RED
if("delta")
return SEC_LEVEL_DELTA
/*DEBUG
/mob/verb/set_thing0()
set_security_level(0)
/mob/verb/set_thing1()
set_security_level(1)
/mob/verb/set_thing2()
set_security_level(2)
/mob/verb/set_thing3()
set_security_level(3)
/mob/verb/set_thing4()
set_security_level(4)
/mob/verb/set_thing5()
set_security_level(5)
/mob/verb/set_thing6()
set_security_level(6)
*/