From 33ad531b0bcd3ad80db3ce0903cb8e4610df319b Mon Sep 17 00:00:00 2001 From: Matt Atlas Date: Thu, 7 Dec 2023 13:17:56 +0100 Subject: [PATCH] Adds a framework for airlocks changing access depending on security level. (#17849) * Adds a framework for airlocks changing access depending on security level. * cleanup * s * s * req_one_access * update --------- Co-authored-by: Matt Atlas --- code/game/machinery/doors/airlock.dm | 9 ++++ .../effects/map_effects/door_helper.dm | 41 ++++++++++++++--- .../security levels/keycard authentication.dm | 12 +++++ html/changelogs/mattatlas-doorsbylevel.yml | 42 ++++++++++++++++++ icons/effects/map_effects.dmi | Bin 21074 -> 22762 bytes 5 files changed, 99 insertions(+), 5 deletions(-) create mode 100644 html/changelogs/mattatlas-doorsbylevel.yml diff --git a/code/game/machinery/doors/airlock.dm b/code/game/machinery/doors/airlock.dm index a089f57f31b..244484d8a84 100644 --- a/code/game/machinery/doors/airlock.dm +++ b/code/game/machinery/doors/airlock.dm @@ -161,6 +161,13 @@ var/insecure = TRUE var/securitylock = FALSE + /// Override access by code level. This is an associative list that should only be set through /obj/effect/map_effect/door_helper/level_access. + /// Structure example: "red" -> list(1, 2) + /// Uses standard access if the current level is not on the list. + var/list/access_by_level + /// As above, but with req_one_access. Note that only one of these lists should ever be set. + var/list/req_one_access_by_level + /obj/machinery/door/airlock/Initialize(mapload, dir, populate_components, obj/structure/door_assembly/assembly = null) var/on_admin_z = FALSE //wires & hatch - this needs to be done up here so the hatch isn't generated by the parent Initialize(). @@ -2064,6 +2071,8 @@ About the new airlock wires panel: to_chat(user, bracer.health) if(p_open) to_chat(user, "\The [src]'s maintenance panel has been unscrewed and is hanging open.") + if(islist(access_by_level) || islist(req_one_access_by_level)) + to_chat(user, SPAN_NOTICE("This airlock changes access requirements depending on the level.")) /obj/machinery/door/airlock/emag_act(var/remaining_charges) . = ..() diff --git a/code/modules/effects/map_effects/door_helper.dm b/code/modules/effects/map_effects/door_helper.dm index b886a5315d9..40568594e25 100644 --- a/code/modules/effects/map_effects/door_helper.dm +++ b/code/modules/effects/map_effects/door_helper.dm @@ -1,13 +1,44 @@ /obj/effect/map_effect/door_helper layer = DOOR_CLOSED_LAYER + 0.1 -/obj/effect/map_effect/door_helper/unres - icon_state = "unres_door" - -/obj/effect/map_effect/door_helper/unres/Initialize(mapload, ...) +/obj/effect/map_effect/door_helper/Initialize(mapload, ...) ..() for(var/obj/machinery/door/D in loc) if(istype(D, /obj/machinery/door/blast) || istype(D, /obj/machinery/door/firedoor)) continue - D.unres_dir ^= dir + modify_door(D) return INITIALIZE_HINT_QDEL + +/obj/effect/map_effect/door_helper/proc/modify_door(obj/machinery/door/D) + return + +/obj/effect/map_effect/door_helper/unres + icon_state = "unres_door" + +/obj/effect/map_effect/door_helper/unres/modify_door(obj/machinery/door/D) + D.unres_dir ^= dir + +/obj/effect/map_effect/door_helper/level_access + icon_state = "level_door" + + /// Sets access_by_level (access override based on security level) on the airlock this is spawned on. + /// For more information check the access_by_level variable on the airlock. + /// Example of an appropriate way to set this: list("red" = list(1, 2)) + /// Alternatively, for a door that is free access on a certain code: list("green" = null) + var/list/access_by_level + /// As above, but with req_one_access. Note that only one of these lists should ever be set. + var/list/req_one_access_by_level + +/obj/effect/map_effect/door_helper/level_access/modify_door(obj/machinery/door/D) + if(length(access_by_level) && length(req_one_access_by_level)) + crash_with("Airlock access level modifier at [x] [y] [z] spawned with both access lists set.") + if(isairlock(D)) + var/obj/machinery/door/airlock/A = D + A.access_by_level = access_by_level + A.req_one_access_by_level = req_one_access_by_level + +/obj/effect/map_effect/door_helper/level_access/test1 + access_by_level = list("green" = list(access_security)) + +/obj/effect/map_effect/door_helper/level_access/test2 + req_one_access_by_level = list("green" = list(access_security, access_heads)) diff --git a/code/modules/security levels/keycard authentication.dm b/code/modules/security levels/keycard authentication.dm index bc72bf02b05..7028615d914 100644 --- a/code/modules/security levels/keycard authentication.dm +++ b/code/modules/security levels/keycard authentication.dm @@ -221,4 +221,16 @@ var/global/maint_all_access = 0 var/exceptional_circumstances = maint_all_access || maint_sec_access if(exceptional_circumstances && src.check_access_list(list(access_maint_tunnels))) return 1 + if(access_by_level || req_one_access_by_level) + var/sec_level = get_security_level() + if(sec_level in (req_one_access_by_level ? req_one_access_by_level : access_by_level)) + var/access_to_use = req_one_access_by_level ? req_one_access_by_level[sec_level] : access_by_level[sec_level] + if(!access_to_use) + return TRUE + if(req_one_access_by_level) + if(has_access(req_one_access = access_to_use, accesses = A)) + return TRUE + else + if(has_access(access_to_use, accesses = A)) + return TRUE return ..(M) diff --git a/html/changelogs/mattatlas-doorsbylevel.yml b/html/changelogs/mattatlas-doorsbylevel.yml new file mode 100644 index 00000000000..0ce60b38c2e --- /dev/null +++ b/html/changelogs/mattatlas-doorsbylevel.yml @@ -0,0 +1,42 @@ +################################ +# Example Changelog File +# +# Note: This file, and files beginning with ".", and files that don't end in ".yml" will not be read. If you change this file, you will look really dumb. +# +# Your changelog will be merged with a master changelog. (New stuff added only, and only on the date entry for the day it was merged.) +# When it is, any changes listed below will disappear. +# +# Valid Prefixes: +# bugfix +# wip (For works in progress) +# tweak +# soundadd +# sounddel +# rscadd (general adding of nice things) +# rscdel (general deleting of nice things) +# imageadd +# imagedel +# maptweak +# spellcheck (typo fixes) +# experiment +# balance +# admin +# backend +# security +# refactor +################################# + +# Your name. +author: MattAtlas + +# Optional: Remove this file after generating master changelog. Useful for PR changelogs that won't get used again. +delete-after: True + +# Any changes you've made. See valid prefix list above. +# INDENT WITH TWO SPACES. NOT TABS. SPACES. +# SCREW THIS UP AND IT WON'T WORK. +# Also, all entries are changed into a single [] after a master changelog generation. Just remove the brackets when you add new entries. +# Please surround your changes in double quotes ("), as certain characters otherwise screws up compiling. The quotes will not show up in the changelog. +changes: + - rscadd: "Added a changelog editing system that should cause fewer conflicts and more accurate timestamps." + - rscdel: "Killed innocent kittens." diff --git a/icons/effects/map_effects.dmi b/icons/effects/map_effects.dmi index 9080a1fc9f41c9f6c18a0f1b2f644b7609381d5e..bcfe5c600b87fb7e741819f595bc713ba0aae3eb 100644 GIT binary patch literal 22762 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�AY;M8u8bv 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 bh0Ff|cKBna30KDg00000NkvXXu0mjfiWJLI literal 21074 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 DbQio|