Skip to content
This repository was archived by the owner on May 22, 2025. It is now read-only.

Conversation

@AMyriad
Copy link
Contributor

@AMyriad AMyriad commented Jul 31, 2024



First and foremost, big thanks to:
Son-of-Space for originally reformatting every access type so I could steal it in tgstation/tgstation#67002
san7890 for adding the initial documentation for the above so I could rewrite most of it in tgstation/tgstation#68831
dragomagol for creating and fixing the code and sprites for airlock helpers in tgstation/tgstation#65580 and subsequent PRs
JohnFulpWillard for fixing issues with said airlock helpers in tgstation/tgstation#67503
Ical92 for adding cool inaccessible helpers which I haven't put in but cool that we have them now in tgstation/tgstation#84792
and @ToasterBiome for having saved me lots of time by helping me with windoor helper code



Document the changes in your pull request

Alright this is a lot of stuff that's sadly way too interconnected to atomize, concerns a lot of background stuff players don't need to care about, and background stuff devs will care about, so let me break it down like this:

ACCESS CHANGES


If you're a player or someone who doesn't care about any of the technical stuff, this part's for you.
So essentially this PR deletes a few old, redundant access types (like gateway access), adds some new ones, and makes some adjustments to what jobs get what access, what doors need what to open, etc etc.

access_pr_gif


Command

Command

image

To start off, HoP/Head of staff players may notice the main access for each department is suffixed with general; Security General, Medical General, Cargo General. This is the new standard for the "base access" to a department, i.e. "this access lets you walk into a department through the front door". In the case of the Command department itself, the access to enter the bridge is now called just Command General.

All heads now enjoy EVA access, for the sake of reaching the cool command suits, or having one more place to run to in case of an emergency.

Captains are now guaranteed a complete lack of access requirements to enter their bathroom. Surely nothing bad can come of this.
image

AI players, but also RDs, Captains and Network Admins should understand the new access types for controlling AI equipment.

  • AI Satellite Access gets you into the green areas. It'll be applied to everything in the AI Sat, the Secondary Core and some other misc AI stuff. Network Admins, and all Heads except the CMO will receive this.
  • AI Master Access gets you into the blue areas. Having this access means you can access, override, and control AI-critical equipment, like turrets, law boards, and the AI Upload. The RD and Captain will have this by default, with the other heads getting it with skeleton access.
    image


Security

Security

The new access, Security Basic, has been applied to the department. This is what Lawyers and Heads get, and lets them walk into the Brig and the Courtroom, but no further. However, it will also let you access the Security Escape Pod, provided you can reach the area to enter it first.

Detectives may notice the Security Office is a bit friendlier, as they're now guaranteed to be able to access the maint doors and windoors in the corner. Aside from that I think I also added external airlock access on skeleton crews, so emptier sec teams are less handicapping.
image

Security Officers may notice a little bit more access to whatever department they're assigned to, like medbay officers being able to open Paramedic rooms. In addition to that, you're also guaranteed to be able to access your hardsuits on IceMeta and Gax now, as those maps weirdly prevented you from doing that.
image
Also this locker. You can open them now :)
image

Also worth mentioning, the Brig Infirmary now has Brig Phys access instead of medical. The Warden and HoS can still open this of course, but medbay-assigned officers can no longer get around it.


Engineering

Engineering

TBD


Supply

Supply

TBD


Science

Science

TBD


Service

Service

TBD



FOR REVIEWERS


These are the main changes, simplified, with comparison:

  • Changing access defines from integers to strings, then formatting and documenting them - Old >> New

  • Rearranging department groups and access names to mirror the above file's formatting - Old >> New

  • Removed everything req_access_txt and req_one_access_txt from maps. See "Why is this good for the game?" section.

  • Added access helpers for airlocks and windoors. Comes in 12 flavors, each sold separately.

  • And uhhh bunch of other small adjustments, ask me if you're curious or needing something cleared up.


If you want the full list of access changes in great detail here you go have fun:
Comprehensive access changes

Note: Changes applied universally, to all maps.

Removed:
ACCESS_COURT - Removed since it's redundant. Replaced instances with ACCESS_SEC_BASIC.

ACCESS_MAILSORTING - Removed since it's redundant. Replaced instances with ACCESS_CARGO.

ACCESS_GATEWAY - Removed since we don't use gateways anymore.

ACCESS_MINERAL_STOREROOM - Removed since it's redundant.

ACCESS_NETWORK - Removed since it's redundant. Instances replaced by other things, mostly ACCESS_ENGINEERING iirc.

ACCESS_FREEMINER/_ENGINEER/_CAPTAIN - Removed and replaced with ruins access.

ACCESS_RND - Removed and replaced with ACCESS_RESEARCH since it was easy to confuse the two.



Added:

ACCESS_AUX_BASE - Applied to everything in the Aux Base. Given to Curators, Engineers, Scientists, Heads of Staff.

ACCESS_EXPERIMENTATION - Applied to everything in the Experimentation Lab room. Adding this now as prep for things that will come in the future.

ACCESS_RND_SERVERS - Replaces ACCESS_RD in the R&D Server Room.

ACCESS_MECH_RUINS - Meant to give ghost spawns more control of their mechs. Don't think I actually implemented it anywhere.

ACCESS_INACCESSIBLE - For mappers to have in the future.



Changed:
ACCESS_SECURITY - Now used in conjunction with Detective access in Security checkpoints and the Security Office room.

ACCESS_BRIG - Unchanged

ACCESS_ARMORY - No longer applied to the "shotgun lethal rounds" closet in the armory (replaced with ACCESS_SECURITY.

ACCESS_FORENSICS_LOCKERS >> ACCESS_DETECTIVE - Renamed. Applied to everything in Security Office along with general security access.

ACCESS_MEDICAL - Removed from Brig Infirmary doors.

ACCESS_MORGUE - Unchanged

ACCESS_TOX >> ACCESS_TOXINS - Exclusively used on the Toxin Lab room instead of Science entrance doors (???).

ACCESS_TOX_STORAGE >> ACCESS_TOXINS_STORAGE - Renamed

ACCESS_GENETICS - Unchanged

ACCESS_ENGINE >> ACCESS_ENGINEERING - Renamed

ACCESS_ENGINE_EQUIP - Unchanged

ACCESS_MAINT_TUNNELS - Skeleton access given to the Clown and Mime.

ACCESS_EXTERNAL_AIRLOCKS - No longer used in the Engine Room airlocks. Split with Engineering access on solar array airlocks.

ACCESS_CHANGE_IDS - Unchanged

ACCESS_AI_UPLOAD >> ACCESS_AI_MASTER - Reworked into the overarching access req for critical AI systems. See here.

ACCESS_TELEPORTER - Applied to AI Sat airlocks for the sake not trapping this access there.

ACCESS_EVA - Given to all Heads of Staff.

ACCESS_HEADS >> ACCESS_COMMAND - Renamed to be the general access for Command department.

ACCESS_CAPTAIN - Removed from the Captain's bathroom (hilarious new ambush tactic).

ACCESS_ALL_PERSONAL_LOCKERS >> ACCESS_PERSONAL_LOCKERS - Renamed for brevity

ACCESS_CHAPEL_OFFICE - Unchanged (but I'll prob rename it to be shorter)

ACCESS_TECH_STORAGE - Unchanged

ACCESS_ATMOSPHERICS - Unchanged

ACCESS_BAR - Unchanged

ACCESS_JANITOR - Unchanged

ACCESS_CREMATORIUM - Unchanged

ACCESS_KITCHEN - Unchanged

ACCESS_ROBO_CONTROL - Removed from Robotics doors and buttons. Now exclusively used for accessing bots and equipment.

ACCESS_RD - Removed from R&D Server Room and AI Secondary Core.

ACCESS_CARGO - Applied to everything in the Delivery Office (mailing room in cargo).

ACCESS_CONSTRUCTION - Removed from a lot of misc. airlocks everywhere, most notably the Aux Base.

ACCESS_CHEMISTRY - Unchanged

ACCESS_HYDROPONICS - Unchanged

ACCESS_MANUFACTURING >> ACCESS_CLERK - Renamed for clarity

ACCESS_LIBRARY - Unchanged

ACCESS_LAWYER - Unchanged

ACCESS_VIROLOGY - Given to Security Officers assigned to Medical.

ACCESS_CMO - Unchanged

ACCESS_QM - Unchanged

ACCESS_SURGERY - Unchanged

ACCESS_THEATRE - Unchanged

ACCESS_RESEARCH - Reworked into the access req for using the "Core R&D Console" for research. Removed from everywhere else.

ACCESS_MINING - Unchanged

ACCESS_VAULT - Unchanged

ACCESS_MINING_STATION - Notably renamed from "Mining EVA" to "Mining Station" in the ID change app.

ACCESS_XENOBIOLOGY - Unchanged

ACCESS_CE - Unchanged

ACCESS_HOP - Grouped with Service access types in code, lmk if you'd rather it be grouped with Command. Otherwise unchanged.

ACCESS_HOS - Unchanged

ACCESS_RC_ANNOUNCE - Unchanged

ACCESS_KEYCARD_AUTH - Unchanged

ACCESS_TCOMSAT >> ACCESS_TCOMMS - Removed from Station Engineer base access. Given to Security Officers assigned to Engineering.

ACCESS_SEC_DOORS >> ACCESS_SEC_BASIC - Renamed for clarity as it's used for more than just the Brig's entrance doors. Applied to Courtroom.

ACCESS_MINISAT >> ACCESS_AI_SAT - Reworked into the general access for everything in the AI Sat except the AI chambers and maintenance.

ACCESS_WEAPONS >> ACCESS_WEAPONS_PERMIT - Renamed for clarity

ACCESS_CLONING - Unchanged

ACCESS_PARAMEDIC - Given to Security Officers assigned to Medical.

ACCESS_TCOM_ADMIN >> ACCESS_TCOMMS_ADMIN - Renamed for consistency. Removed from a bunch of misc net admin things and applied solely to Telecomms consoles now iirc.

ACCESS_BRIG_PHYS - Applied to Brig Infirmary doors.

ACCESS_ROBOTICS - Unchanged

ACCESS_SECURE_TECH_STORAGE >> ACCESS_SECURE_TECH - Renamed for brevity

ACCESS_PSYCH >> ACCESS_PSYCHOLOGY - Renamed. Removed from the Psych Office doors so patients can enter/exit without fear of being locked in.

ACCESS_SERVHALL >> ACCESS_SERVICE - Renamed to be the general access for Service department.


(No big changes to any centcom access, just small rearrangements. See CentCom.dmm)


No changes to the rest of access on the list, except renaming "AWAY" to "RUINS" in the defines.



FOR MAPPERS/MAPTAINERS


First of all I'm sorry.

Second of all, let me introduce to you our newest suite of tools, and (when this is merged) the new standard:
image image

Access helpers. Put them over airlocks and windoors to easily imprint whatever access requirement you want to set.
They come conveniently color-coded to the department, and are split into /all/ and /any/ variants;

  • /all/ is what's used the most. It applies the access type specified directly onto req_access - meaning that people will need all of the access types applied to open this door.
  • /any/ is more for special situations. It applies the access type specified directly onto req_one_access - meaning that people can have any of the access types applied to open this door. As a rule, never put these down alone. If a door only needs one type of access, use the /all/ variant.

P.S. It should go without saying varediting the access reqs for doors and windoors is no longer a thing, please don't do that anymore.

Lastly, it's worth noting that access helpers only work with airlocks and windoors, nothing else.
So for the sake of ease I've made and applied these subtypes of machinery/door/morgue which come preset with chapel office access and library access respectively.
image

Besides that, if you have any questions on the new standards for access set in this update, feel free to look at the documentation in here: __DEFINES/access.dm or just ask me, I'd be happy to answer :)


Why is this good for the game?

This fucking sucks
image

Using integers here is weird and bad, so I copied what /TG/ did and swapped it to strings so they're more legible, formatted, documented, and we can now slide new access types inbetween existing ones. Instead of being forced to put new access types at the bottom each time, we'd be futureproofing it basically.

image

BUT I was recently made aware of what bitflags are and how they're good, so here's what imma do:

So because of that, I've removed basically everything using req_access_txt and req_one_access_txt (thing that applies access based on the string name) and converted it to req_access and req_one_access which uses just the define. Ergo ergo it'll be easier to do the system change.

Example:
image image
This is good trust

Testing

Devlog

  • Reorganize __DEFINES/access.dm and jobs/access.dm, add new types and remove unused/old ones
  • Add airlock mapping helpers
  • Update every map and file in the game that include access reqs of any kind, and place airlock helpers
  • Fix small mapping errors along the way
  • Realize you broke windoors everywhere
  • Add windoor mapping helpers
  • Go through every single map in the game a second time to place windoor helpers
  • Readjust every job file to include new access types

Spriting

Two sets of 12 sprites were added; one for airlock access helpers, and the second for windoor access helpers.
Each one basically represents a region/department, with none of them appearing in-game.

Airlocks
image

Windoors
image

Wiki Documentation

Remind me pls

Changelog

🆑 AMyriad, Biome, Son-of-Space, san7890, dragomagol, JohnFulpWillard, Ical92
experimental: ID access types have been heavily adjusted everywhere, and on every map - some jobs may have more or less access to certain places than before
experimental: Please ping me or make a bug report if your job is missing access to a room it should have, or if there's problem with access!!
mapping: Added access helpers for airlocks and windoors to make mapping easier
imageadd: Added sprites for access helpers
mapping: Fixed many many minor issues on many many maps
mapping: Fixed a very large issue with Telecomms on DonutStation
bugfix: Garbage conveyer belt shutters in Cargo now properly need Cargo access to toggle
bugfix: Captain's Spare ID can no longer be unlocked with just CE access
tweak: Detectives now have access to security checkpoints/outposts, and every part of the Security Office
tweak: Engine Room airlocks can no longer be entered with just external access
tweak: Heads of staff, Detectives, and Lawyers now have access to the shuttle brig
tweak: Engineers can no longer enter Telecomms by default
tweak: Sec hardsuits can now be accessed by Security Officers on IceMeta and Gax
tweak: Mechs in the Centcom Grief Chamber can now be piloted by anyone :)
tweak: Shipbreaking now needs external airlock access
tweak: Roboticists may now open/close the main Science desk's windoor and shutters
tweak: Heads of Staff now have EVA access
wip: ...and much more!
bugfix: Fixed some stairs on IceMeta being invisible
/:cl:

@AMyriad AMyriad requested review from a team as code owners July 31, 2024 21:28
@Yogbot-13 Yogbot-13 added Fix This fixes an issue. Please link issues in fix PRs Tweak This PR contains changes to the game. labels Jul 31, 2024
@Scrambledeggs00
Copy link
Contributor

Does secondary AI core require AI Master Access? If so, then the netmin would have to constantly bug the AI for both cores if they wanted to install any server racks.

@github-actions github-actions bot added the Mapping Will result in a change to a map. label Jul 31, 2024
@AMyriad
Copy link
Contributor Author

AMyriad commented Jul 31, 2024

Does secondary AI core require AI Master Access? If so, then the netmin would have to constantly bug the AI for both cores if they wanted to install any server racks.

It won't. Secondary AI core can be accessed by both the net admin and the RD since it's not critical to the AI sat, and is not as secure of a place as the AI's first core (like not having turrets f.ex.)

@Cartlord
Copy link
Contributor

Does basic Service access include access to the Service Hall? I ask because, without being able to get in there legally, Artists need to commit breaking & entering if they want a decent supply of spray paint.

@AMyriad
Copy link
Contributor Author

AMyriad commented Jul 31, 2024

Does basic Service access include access to the Service Hall? I ask because, without being able to get in there legally, Artists need to commit breaking & entering if they want a decent supply of spray paint.

Yes. It's basically the same thing but renamed, since we don't have any general service areas other than the service hall.

@ToasterBiome ToasterBiome merged commit 37ee894 into yogstation13:master Aug 8, 2024
Yogbot-13 added a commit that referenced this pull request Aug 8, 2024
@AMyriad AMyriad deleted the access-overhaul branch August 8, 2024 00:47
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

Fix This fixes an issue. Please link issues in fix PRs Mapping Will result in a change to a map. Tweak This PR contains changes to the game.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants