Files
Bubberstation/code/__DEFINES/id_cards.dm
MrMelbert 0e174664db HoP has a platinum card which has infinite common slots but limited command slots (#90065)
## About The Pull Request

HoP spawns with a platinum ID card, an intermediate between gold and
silver. It's one-of-a-kind, has Infinite common slots, 2 command slots,
1 prv command slot (dedicated to their office).

HoP doesn't spawn with all those common slots filled though, they have
to do that manually.

This means they can give themselves access to all common areas on the
station, all the time - but are still limited to a selection of 2
command locations (armor, ai sat, vault, etc)

## Why It's Good For The Game

1. Sovl
2. HoP has taken too many Ls lately
3. HoP already has functional AA by either making multiple cards or by
changing their card's access on the fly via their PDA and I think this
is functionally a bit healthier (at least healthier than the pda thing)
4. Gives the HoP more of an identity as a second in command, being able
to be almost anywhere the captain can be
5. Adds a target back on the HoP's head (not many people gank them for
access anymore)

## Changelog

🆑 Melbert
add: HoP now spawns with a platinum ID card which can hold infinite
common access slots, but is still limited in amount of command slots.
/🆑
2025-03-19 19:47:14 +00:00

70 lines
4.0 KiB
Plaintext

/**
* The order in which these lists are defined matters. When attempting to add a wildcard access to a card
* and not specifying an explicit wildcard slot in which to include it, the code will iterate over the list
* and stop at the first wildcard flag that can hold the access.
*
* The lower level the access, the earlier in the list it should be so that low level wildcards get
* added to the lowest wildcard flag that can take them.
* A limit of -1 means infinite slots. The system is designed to reject a wildcard when the slot limit
* explicitly equal 0 for all compatible wildcard slots.
*/
/// Wildcard slot define for basic grey cards. Only hold 4 common wildcards.
#define WILDCARD_LIMIT_GREY list(WILDCARD_NAME_COMMON = list(limit = 4, usage = list()))
/// Wildcard slot define for Head of Staff silver cards. Can hold 6 common, 2 command and 1 private command.
#define WILDCARD_LIMIT_SILVER list( \
WILDCARD_NAME_COMMON = list(limit = 6, usage = list()), \
WILDCARD_NAME_COMMAND = list(limit = 2, usage = list()), \
WILDCARD_NAME_PRV_COMMAND = list(limit = 1, usage = list()) \
)
/// The Platinum card, an in between of silver and gold, which can have infinite common but is still limited in command
#define WILDCARD_LIMIT_PLATINUM list( \
WILDCARD_NAME_COMMON = list(limit = -1, usage = list()), \
WILDCARD_NAME_COMMAND = list(limit = 2, usage = list()), \
WILDCARD_NAME_PRV_COMMAND = list(limit = 1, usage = list()) \
)
/// Wildcard slot define for Captain gold cards. Can hold infinite of any Captain level wildcard.
#define WILDCARD_LIMIT_GOLD list(WILDCARD_NAME_CAPTAIN = list(limit = -1, usage = list()))
/// Wildcard slot define for select Syndicate-affiliated cards. Can hold infinite of any Syndicate level wildcard. Syndicate includes all station accesses.
#define WILDCARD_LIMIT_SYNDICATE list(WILDCARD_NAME_SYNDICATE = list(limit = -1, usage = list()))
/// Wildcard slot define for Deathsquad black cards. Can hold infinite of any Centcom level wildcard. Centcom includes all station accesses.
#define WILDCARD_LIMIT_DEATHSQUAD list(WILDCARD_NAME_CENTCOM = list(limit = -1, usage = list()))
/// Wildcard slot define for Centcom blue cards. Can hold infinite of any Centcom level wildcard. Centcom includes all station accesses.
#define WILDCARD_LIMIT_CENTCOM list(WILDCARD_NAME_CENTCOM = list(limit = -1, usage = list()))
/// Wildcard slot define for Prisoner orange cards. No wildcard slots.
#define WILDCARD_LIMIT_PRISONER list()
/// Wildcard slot define for the cargo variant of agent ID. Can hold 6 common, 2 command and 1 captain access.
#define WILDCARD_LIMIT_CHAMELEON list( \
WILDCARD_NAME_COMMON = list(limit = 6, usage = list()), \
WILDCARD_NAME_COMMAND = list(limit = 2, usage = list()), \
WILDCARD_NAME_CAPTAIN = list(limit = 1, usage = list()) \
)
/// Wildcard slot define for admin/debug/weird, special abstract cards. Can hold infinite of any access.
#define WILDCARD_LIMIT_ADMIN list(WILDCARD_NAME_ALL = list(limit = -1, usage = list()))
/**
* x1, y1, x2, y2 - Represents the bounding box for the ID card's non-transparent portion of its various icon_states.
* Used to crop the ID card's transparency away when chaching the icon for better use in tgui chat.
*/
#define ID_ICON_BORDERS 1, 9, 32, 24
///Honorific will display next to the first name.
#define HONORIFIC_POSITION_FIRST (1<<0)
///Honorific will display next to the last name.
#define HONORIFIC_POSITION_LAST (1<<1)
///Honorific will not be displayed.
#define HONORIFIC_POSITION_NONE (1<<2)
///Honorific will be appended to the full name at the start.
#define HONORIFIC_POSITION_FIRST_FULL (1<<3)
///Honorific will be appended to the full name at the end.
#define HONORIFIC_POSITION_LAST_FULL (1<<4)
#define HONORIFIC_POSITION_BITFIELDS(...) list( \
"Honorific + First Name" = HONORIFIC_POSITION_FIRST, \
"Honorific + Last Name" = HONORIFIC_POSITION_LAST, \
"Honorific + Full Name" = HONORIFIC_POSITION_FIRST_FULL, \
"Full Name + Honorific" = HONORIFIC_POSITION_LAST_FULL, \
"Disable Honorific" = HONORIFIC_POSITION_NONE, \
)