diff --git a/code/modules/security levels/keycard authentication.dm b/code/modules/security levels/keycard authentication.dm index 9d4bb64a4c6..411938c3f23 100644 --- a/code/modules/security levels/keycard authentication.dm +++ b/code/modules/security levels/keycard authentication.dm @@ -169,6 +169,12 @@ var/global/maint_all_access = 0 security_announcement.Announce("The maintenance access requirement has been readded on all maintenance airlocks.","Attention!") /obj/machinery/door/airlock/allowed(mob/M) - if(maint_all_access && src.check_access_list(list(access_maint_tunnels))) + var/obj/item/I = M.GetIdCard() + if(!I) + return ..(M) + var/list/A = I.GetAccess() + var/maint_sec_access = ((security_level > SEC_LEVEL_GREEN) && has_access(access_security, accesses = A)) + var/exceptional_circumstances = maint_all_access || maint_sec_access + if(exceptional_circumstances && src.check_access_list(list(access_maint_tunnels))) return 1 return ..(M) diff --git a/html/changelogs/alertmaint.yml b/html/changelogs/alertmaint.yml new file mode 100644 index 00000000000..b00c459eb4f --- /dev/null +++ b/html/changelogs/alertmaint.yml @@ -0,0 +1,7 @@ +author: Sparky_Hotdog + +delete-after: True + +changes: + - tweak: "Security now recieves maintainance access during yellow, blue, red and delta alerts." +