mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-04-28 19:33:26 +01:00
## About The Pull Request Hey hey party people. I watched a monkeymancer round last night. It was hilarious, but the guy couldn't activate his ritual rune. Sucks! Turns out, monkies don't call `attack_hand()`, they call `attack_paw()`. This means that monkey dexterity was never the problem stopping the rune from activating, but the fact that the attack chain was never even trying to interact with the rune effect in the first place. I've added a new atom interaction flag that routes through attack_paw, so now monkies can be given their own specific interaction behaviors for cases like this.  ## Why It's Good For The Game Closes #85267. Also makes it a bit easier to make interact behaviors scalable to monkies in the future. ## Changelog 🆑 Rhials fix: Monkey wizards can now interact with grand ritual runes. /🆑
51 lines
2.3 KiB
Plaintext
51 lines
2.3 KiB
Plaintext
/// whether can_interact() checks for anchored. only works on movables.
|
|
#define INTERACT_ATOM_REQUIRES_ANCHORED (1<<0)
|
|
/// calls try_interact() on attack_hand() and returns that.
|
|
#define INTERACT_ATOM_ATTACK_HAND (1<<1)
|
|
/// automatically calls and returns ui_interact() on interact().
|
|
#define INTERACT_ATOM_UI_INTERACT (1<<2)
|
|
/// user must be dextrous
|
|
#define INTERACT_ATOM_REQUIRES_DEXTERITY (1<<3)
|
|
/// ignores incapacitated check
|
|
#define INTERACT_ATOM_IGNORE_INCAPACITATED (1<<4)
|
|
/// incapacitated check ignores restrained
|
|
#define INTERACT_ATOM_IGNORE_RESTRAINED (1<<5)
|
|
/// incapacitated check checks grab
|
|
#define INTERACT_ATOM_CHECK_GRAB (1<<6)
|
|
/// prevents leaving fingerprints automatically on attack_hand
|
|
#define INTERACT_ATOM_NO_FINGERPRINT_ATTACK_HAND (1<<7)
|
|
/// adds hiddenprints instead of fingerprints on interact
|
|
#define INTERACT_ATOM_NO_FINGERPRINT_INTERACT (1<<8)
|
|
/// allows this atom to skip the adjacency check
|
|
#define INTERACT_ATOM_ALLOW_USER_LOCATION (1<<9)
|
|
/// ignores mobility check
|
|
#define INTERACT_ATOM_IGNORE_MOBILITY (1<<10)
|
|
// Bypass all adjacency checks for mouse drop
|
|
#define INTERACT_ATOM_MOUSEDROP_IGNORE_ADJACENT (1<<11)
|
|
/// Bypass all can_perform_action checks for mouse drop
|
|
#define INTERACT_ATOM_MOUSEDROP_IGNORE_USABILITY (1<<12)
|
|
/// Bypass all adjacency and other checks for mouse drop
|
|
#define INTERACT_ATOM_MOUSEDROP_IGNORE_CHECKS (INTERACT_ATOM_MOUSEDROP_IGNORE_ADJACENT | INTERACT_ATOM_MOUSEDROP_IGNORE_USABILITY)
|
|
/// calls try_interact() on attack_paw() and returns that.
|
|
#define INTERACT_ATOM_ATTACK_PAW (1<<13)
|
|
|
|
/// attempt pickup on attack_hand for items
|
|
#define INTERACT_ITEM_ATTACK_HAND_PICKUP (1<<0)
|
|
|
|
/// can_interact() while open
|
|
#define INTERACT_MACHINE_OPEN (1<<0)
|
|
/// can_interact() while offline
|
|
#define INTERACT_MACHINE_OFFLINE (1<<1)
|
|
/// try to interact with wires if open
|
|
#define INTERACT_MACHINE_WIRES_IF_OPEN (1<<2)
|
|
/// let silicons interact
|
|
#define INTERACT_MACHINE_ALLOW_SILICON (1<<3)
|
|
/// let silicons interact while open
|
|
#define INTERACT_MACHINE_OPEN_SILICON (1<<4)
|
|
/// must be silicon to interact
|
|
#define INTERACT_MACHINE_REQUIRES_SILICON (1<<5)
|
|
/// the user must have vision to interact (blind people need not apply)
|
|
#define INTERACT_MACHINE_REQUIRES_SIGHT (1<<6)
|
|
/// the user must be able to read to interact
|
|
#define INTERACT_MACHINE_REQUIRES_LITERACY (1<<7)
|