Skip to content

Commit

Permalink
Faction Access & Almayer Security Overhaul (cmss13-devs#4035)
Browse files Browse the repository at this point in the history
<!-- Write **BELOW** The Headers and **ABOVE** The comments else it may
not be viewable. -->

# About the pull request
Removes the majority of accesses from non marine characters. No more
free walking into CIC for the CLF, you're gonna have to work for it.
Creates faction specific accesses for basic things, these are not
assigned to anything at the moment.
Overhauled how we get accesses so it no longer uses a bazillion
different procs and instead relies on a centralised proc and defines.
Added specific access lists for WY Goons, PMCs, Liaison and Survivor
Liaison as they're tailored to their uses.
Added very generic CLF and UPP lists, all UPP personnel have all their
accesses FOR NOW.
Added a mapping var (access_changed) for identifying doors/objects that
have non-standard access tags to allow for easier locating of things
that need updates should access numbers be changed.

<!-- Remove this text and explain what the purpose of your PR is.

Mention if you have tested your changes. If you changed a map, make sure
you used the mapmerge tool.
If this is an Issue Correction, you can type "Fixes Issue #169420" to
link the PR to the corresponding Issue number #169420.

Remember: something that is self-evident to you might not be to others.
Explain your rationale fully, even if you feel it goes without saying.
-->

# Explain why it's good for the game
Right now we use a million different procs to get accesses. This is
really confusing and makes it difficult to tell who's getting what as
it's spread out all over the place.
As for why I'm changing ERT accesses, this is something discussed with
Morrow and Nanu, it doesn't make a whole lot of sense for your average
CLF plebian to be able to walk through all security measures on a
military ship like they don't exist. Instead, they'll now get at most
the generic Emergency Response codes to open specific areas of the ship
key to responders - Medbay and Maintenance.

<!-- Please add a short description of why you think these changes would
benefit the game. If you can't justify it in words, it might not be
worth adding, and may discourage maintainers from reviewing or merging
your PR. This section is not strictly required for (non-controversial)
fix PRs or backend PRs. -->


# Testing Photographs and Procedure
<!-- Include any screenshots/videos/debugging steps of the modified code
functioning successfully, ideally including edge cases. -->
<details>
<summary>Screenshots & Videos</summary>

Put screenshots and videos here with an empty line between the
screenshots and the `<details>` tags.

</details>


# Changelog

<!-- If your PR modifies aspects of the game that can be concretely
observed by players or admins you should add a changelog. If your change
does NOT meet this description, remove this section. Be sure to properly
label your changes in the changelog. Please note that maintainers freely
reserve the right to remove and add tags should they deem it
appropriate. You can attempt to finagle the system all you want, but
it's best to shoot for clear communication right off the bat. -->
<!-- If you add a name after the ':cl', that name will be used in the
changelog. You must add your CKEY after the CL if your GitHub name
doesn't match. Maintainers freely reserve the right to remove and add
tags should they deem it appropriate. -->

:cl:
code: Overhauled how ID accesses are assigned via proc, compiling all
the many different procs we used into one.
add: Added faction specific accesses to all major factions.
del: Removed almost all marine accesses from non marine presets. No more
free CIC access to CLF.
code: Removed duplicate code in the VAI file.
add: Adds a mapping var to indicate a door has non-standard access tags.
This is to make it significantly easier for any future access changes to
know if they need to look somewhere.
maptweak: Applied this var to every door I could find on the Almayer
that has non-standard access. Colonies and other stuff to come in a
future update.
add: Added various new accesses to colonial doors, added WY_SECURITY and
WY_RESEARCH to marine research doors.
maptweak: Added reinforced piping to lifeboats area. Didn't make much
sense for a cruicial part of the evacuation procedures to be prone to
spontaneous explosions that can singlehandedly end a marine evacuation
without hostiles ever seeing it.
maptweak: Added reinforced piping to the research closed loop (it's a
closed loop). Also removed CIC access from containment shutters as CIC
access can't open the doors.
maptweak: Changed a couple walls around research from standard to
reinforced, to fit with the containment breach shutters.
/:cl:

<!-- Both :cl:'s are required for the changelog to work! -->
  • Loading branch information
realforest2001 committed Aug 22, 2023
1 parent 6703315 commit 1dd4475
Show file tree
Hide file tree
Showing 43 changed files with 1,040 additions and 881 deletions.
146 changes: 132 additions & 14 deletions code/__DEFINES/access.dm
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,7 @@ most of them are tied into map-placed objects. This should be reworked in the fu

#define ACCESS_MARINE_SYNTH 36
#define ACCESS_MARINE_ASO 37
#define ACCESS_MARINE_CHAPLAIN 38

// AI Core Accesses
/// Used in temporary passes
Expand All @@ -52,31 +53,148 @@ most of them are tied into map-placed objects. This should be reworked in the fu
/// Used to access Maintenance Protocols on ARES Interface.
#define ACCESS_ARES_DEBUG 92

//Surface access levels
//=================================================

//Civilian access levels
#define ACCESS_CIVILIAN_PUBLIC 100
#define ACCESS_CIVILIAN_LOGISTICS 101
#define ACCESS_CIVILIAN_ENGINEERING 102
#define ACCESS_CIVILIAN_RESEARCH 103
#define ACCESS_CIVILIAN_BRIG 104
#define ACCESS_CIVILIAN_MEDBAY 105
#define ACCESS_CIVILIAN_COMMAND 106
#define ACCESS_PRESS 110

///The generic "I'm a bad guy" access
#define ACCESS_ILLEGAL_PIRATE 120

//=================================================

//Weyland Yutani access levels (200-229)
///Found on just about all corporate ID cards
#define ACCESS_WY_GENERAL 200
///WY employee override for most colonial areas
#define ACCESS_WY_COLONIAL 201
#define ACCESS_WY_MEDICAL 202
#define ACCESS_WY_SECURITY 203
#define ACCESS_WY_ENGINEERING 204
#define ACCESS_WY_FLIGHT 205
#define ACCESS_WY_RESEARCH 206
///WY access given to field executives, like a marine liaison.
#define ACCESS_WY_EXEC 207

#define ACCESS_WY_PMC 210
#define ACCESS_WY_PMC_TL 211
#define ACCESS_WY_ARMORY 212
///Secret research or other projects with highly restricted access
#define ACCESS_WY_SECRETS 213

#define ACCESS_WY_LEADERSHIP 215
///Senior leadership, the highest ranks
#define ACCESS_WY_SENIOR_LEAD 216

//=================================================

//Union of Progressive Peoples access levels (230-259)
///Found on just about all Union ID cards
#define ACCESS_UPP_GENERAL 230
#define ACCESS_UPP_MEDICAL 231
#define ACCESS_UPP_ENGINEERING 232
#define ACCESS_UPP_SECURITY 233
#define ACCESS_UPP_ARMORY 234
#define ACCESS_UPP_FLIGHT 235
#define ACCESS_UPP_RESEARCH 236

#define ACCESS_UPP_COMMANDO 239
#define ACCESS_UPP_LEADERSHIP 240
///Senior leadership, the highest ranks
#define ACCESS_UPP_SENIOR_LEAD 241

//=================================================

//Colonial Liberation Front access levels (260-289)
///Found on just about all CLF ID cards
#define ACCESS_CLF_GENERAL 260
#define ACCESS_CLF_MEDICAL 261
#define ACCESS_CLF_ENGINEERING 262
#define ACCESS_CLF_SECURITY 263
#define ACCESS_CLF_ARMORY 264
#define ACCESS_CLF_FLIGHT 265

#define ACCESS_CLF_LEADERSHIP 270
///Senior leadership, the highest ranks
#define ACCESS_CLF_SENIOR_LEAD 271

//=================================================

//Three World Empire access levels (290-319)
///Found on just about all Imperial ID cards
#define ACCESS_TWE_GENERAL 290
#define ACCESS_TWE_MEDICAL 291
#define ACCESS_TWE_ENGINEERING 292
#define ACCESS_TWE_SECURITY 293
#define ACCESS_TWE_ARMORY 294
#define ACCESS_TWE_FLIGHT 295
#define ACCESS_TWE_RESEARCH 296

#define ACCESS_TWE_COMMANDO 299
#define ACCESS_TWE_LEADERSHIP 300
///Senior leadership, the highest ranks
#define ACCESS_TWE_SENIOR_LEAD 301

//Special access levels. Should be alright to modify these.
#define ACCESS_WY_PMC_GREEN 180
#define ACCESS_WY_PMC_ORANGE 181
#define ACCESS_WY_PMC_RED 182
#define ACCESS_WY_PMC_BLACK 183
#define ACCESS_WY_PMC_WHITE 184
#define ACCESS_WY_CORPORATE 200
#define ACCESS_ILLEGAL_PIRATE 201
#define ACCESS_WY_CORPORATE_DS 202
#define ACCESS_PRESS 203
//=================================================

// Yautja Access Levels
/// Requires a visible ID chip to open
#define ACCESS_YAUTJA_SECURE 250
#define ACCESS_YAUTJA_SECURE 390
/// Elders+ only
#define ACCESS_YAUTJA_ELDER 251
#define ACCESS_YAUTJA_ELDER 391
/// Ancients only
#define ACCESS_YAUTJA_ANCIENT 252
#define ACCESS_YAUTJA_ANCIENT 392

///Temporary, just so I can flag places I need to change
#define ACCESS_COME_BACK_TO_ME 999


//Big lists of access codes, so I can get rid of the half a million different "get_bla_bla_bla_access" procs.
//See /proc/get_access(access_list = ACCESS_LIST_GLOBAL)
///Well... everything (non Yautja).
#define ACCESS_LIST_GLOBAL "EVERYTHING"

///Most of the USCM Access Levels used on the USS Almayer, excluding highly restricted ones.
#define ACCESS_LIST_MARINE_MAIN "Almayer (Main)"
///All USCM Access levels used on the USS Almayer
#define ACCESS_LIST_MARINE_ALL "Almayer (ALL)"
///Used by the Wey-Yu - USCM Liaison
#define ACCESS_LIST_MARINE_LIAISON "Wey-Yu (Liaison)"

///The accesses granted to emergency responders.
#define ACCESS_LIST_EMERGENCY_RESPONSE "Almayer (ERT)"
///Access used by United Americas responders.
#define ACCESS_LIST_UA "United Americas"

///Generic/basic access to Wey-Yu stuff
#define ACCESS_LIST_WY_BASE "Wey-Yu (Basic)"
///Wey-Yu Corp Security access.
#define ACCESS_LIST_WY_GOON "Wey-Yu (Goons)"
///Wey-Yu PMCs access.
#define ACCESS_LIST_WY_PMC "Wey-Yu (PMC)"
///Access levels for WY senior leadership
#define ACCESS_LIST_WY_SENIOR "Wey-Yu (Senior Lead)"
///All access levels associated with Weyland Yutani
#define ACCESS_LIST_WY_ALL "Wey-Yu (ALL)"

///All the access levels in the civillian category, excluding Press.
#define ACCESS_LIST_COLONIAL_ALL "Colonial (ALL)"
///Used by the Wey-Yu - Civil Authority Liaison
#define ACCESS_LIST_CIVIL_LIAISON "Colonial (Liaison)"
///The access used by delivery ERT (Pizza/Souto)
#define ACCESS_LIST_DELIVERY "Delivery"

///All access levels associated with UPP
#define ACCESS_LIST_UPP_ALL "UPP (ALL)"

///Generic/basic access to CLF stuff
#define ACCESS_LIST_CLF_BASE "CLF (Basic)"
///All access levels associated with CLF
#define ACCESS_LIST_CLF_ALL "CLF (ALL)"
1 change: 0 additions & 1 deletion code/datums/agents/tools/stimulants.dm
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,6 @@
pill_type_to_fill = /obj/item/reagent_container/pill/stimulant

req_access = null
req_role = null

/obj/item/storage/pill_bottle/ultrazine/antag/id_check(mob/user)
if(!skillcheckexplicit(user, SKILL_ANTAG, SKILL_ANTAG_AGENT))
Expand Down
Loading

0 comments on commit 1dd4475

Please sign in to comment.