Refactor: refactor security levels (#21899)

* refactor: datumize security levels

* refactor: implement `SSsecurity_level` for handling security level related stuff

* feat: returns back old `delta_alarm` sound

* refactor: adjust existing code to use `SSsecurity_level`

* fix: remove redundunt new init order

* fix: fix type in var

* refactor: apply reviewer changes

* fix: replace `can_fire=FALSE` with `ss_flags = SS_NO_FIRE`, as subsystem will never fire

* fix: use `flags` instead of `ss_flags` for subsystem

Co-authored-by: SteelSlayer <42044220+SteelSlayer@users.noreply.github.com>

* fix: replace old security level interactions

* feat: implement `Recover` proc for `SSsecurity_level`

* refactor: add clearer doc for `security_level_set_timer_id`  propery of `SSsecurirt_level`

* refactor: swap `security_level` datum properties to make it clearer to read

* refactor: move initialization code from `New` to `Initialize` for `/obj/machinery/firealarm`

* fix: revert back `delta_alarm` annoing sound, use `delta_claxon` on change to delta security level

---------

Co-authored-by: SteelSlayer <42044220+SteelSlayer@users.noreply.github.com>
This commit is contained in:
Gaxeer
2023-10-14 22:46:49 +03:00
committed by GitHub
parent 6a2704a3ad
commit eda2102bdc
29 changed files with 450 additions and 321 deletions

View File

@@ -63,6 +63,11 @@
if(1)
if(check_rights((R_EVENT|R_SERVER),0))
var/security_levels_data = ""
for (var/level_name in SSsecurity_level.available_levels)
var/datum/security_level/this_level = SSsecurity_level.available_levels[level_name]
security_levels_data += "<a href='?src=[UID()];secretsfun=securitylevel;number=[this_level.number_level]'>[this_level.name]</a>"
dat += {"
<center>
<h2><B>IC Events</B></h2>
@@ -72,12 +77,7 @@
<BR><A href='?src=[UID()];secretsfun=deathsquad'>Send in the Deathsquad</A>&nbsp;&nbsp;
<A href='?src=[UID()];secretsfun=gimmickteam'>Send in a Gimmick Team</A><BR>
<b>Change Security Level</b><BR>
<A href='?src=[UID()];secretsfun=securitylevel0'>Security Level - Green</A>&nbsp;&nbsp;
<A href='?src=[UID()];secretsfun=securitylevel1'>Security Level - Blue</A>&nbsp;&nbsp;
<A href='?src=[UID()];secretsfun=securitylevel2'>Security Level - Red</A><br>
<A href='?src=[UID()];secretsfun=securitylevel3'>Security Level - Gamma</A>&nbsp;&nbsp;
<A href='?src=[UID()];secretsfun=securitylevel4'>Security Level - Epsilon</A>&nbsp;&nbsp;
<A href='?src=[UID()];secretsfun=securitylevel5'>Security Level - Delta</A><BR>
[security_levels_data]<BR>
<b>Create Weather</b><BR>
<A href='?src=[UID()];secretsfun=weatherashstorm'>Weather - Ash Storm</A>&nbsp;&nbsp;
<BR>

View File

@@ -3123,24 +3123,10 @@
if(confirmation == "No")
return
makeThunderdomeTeams()
if("securitylevel0")
set_security_level(0)
message_admins("<span class='notice'>[key_name_admin(usr)] change security level to Green.</span>", 1)
if("securitylevel1")
set_security_level(1)
message_admins("<span class='notice'>[key_name_admin(usr)] change security level to Blue.</span>", 1)
if("securitylevel2")
set_security_level(2)
message_admins("<span class='notice'>[key_name_admin(usr)] change security level to Red.</span>", 1)
if("securitylevel3")
set_security_level(3)
message_admins("<span class='notice'>[key_name_admin(usr)] change security level to Gamma.</span>", 1)
if("securitylevel4")
set_security_level(4)
message_admins("<span class='notice'>[key_name_admin(usr)] change security level to Epsilon.</span>", 1)
if("securitylevel5")
set_security_level(5)
message_admins("<span class='notice'>[key_name_admin(usr)] change security level to Delta.</span>", 1)
if("securitylevel")
var/level_number = text2num(href_list["number"])
SSsecurity_level.set_level(level_number)
message_admins("<span class='notice'>[key_name_admin(usr)] change security level to [SSsecurity_level.number_level_to_text(level_number)].</span>")
if("moveminingshuttle")
SSblackbox.record_feedback("tally", "admin_secrets_fun_used", 1, "Send Mining Shuttle")
if(!SSshuttle.toggleShuttle("mining","mining_home","mining_away"))

View File

@@ -848,7 +848,7 @@ Traitors and the like can also be revived with the previous role mostly intact.
else
SSshuttle.emergency.canRecall = FALSE
if(seclevel2num(get_security_level()) >= SEC_LEVEL_RED)
if(SSsecurity_level.get_current_level_as_number() >= SEC_LEVEL_RED)
SSshuttle.emergency.request(coefficient = 0.5, redAlert = TRUE)
else
SSshuttle.emergency.request()