Skyrat-SS13 / Skyrat-tg

A Skyrat downstream of /tg/station SS13.
GNU Affero General Public License v3.0
121 stars 686 forks source link

[MIRROR] Reworks silicon/ai access checking & fixes some ui_act's #29472

Open SkyratBot opened 3 weeks ago

SkyratBot commented 3 weeks ago

Original PR: https://github.com/tgstation/tgstation/pull/84964

About The Pull Request

Currently to check for Silicon access, we do: if is silicon or is admin ghost or has unlimited silicon privileges or has machine remote in hand What has unlimited silicon privileges? Bots, Drones, and admin ghosts. To check for AI access, it just checks for AI instead of silicon, and doesnt check for unlimited silicon privileges.

This was kinda silly, so I thought I should make this a little easier to understand. Now all silicon/ai traits come from AI_ACCESS_TRAIT or SILICON_ACCESS_TRAIT. I made a single exception to keep Admin ghost, since now instead of being a var on the client, we moved it to using the same trait but giving it to the client instead, but since we have to keep parity with previous functionality (admins can spawn in and not have this on, it only works while as a ghost), I kept previous checks as well.

No more type checks, removes a silly var on the mob level and another on the client.

Now while I was doing this, I found a lot of tgui's ui_act still uses usr and the wrong args, so I fixed those wherever I saw them, and used a mass replace for the args.

Other changes:

Why It's Good For The Game

This is an easier to understand way of handling silicon access and makes these mobs more consistent between eachother. Other than what I've mentioned above, this should have no impact on gameplay itself.

Changelog

:cl: fix: Statues don't count as eyes to creatures. fix: Human AIs and Admin ghosts no longer get kicked off of machines that aren't on cameranets. /:cl: