Files
Bubberstation/code/datums/screentips/atom_context.dm
SkyratBot a9860fd129 [MIRROR] Lets blobs mine [MDB IGNORE] (#11666)
* Lets blobs mine (#64965)

Allows blobs to destroy mineral turfs when necessary, such as when spawning on Ice Box.

Without this they face a distinct disadvantage against crew that can destroy mineral turfs with plasma cutters like a hot knife through butter to get a better angle on their core.

The fact they can't already seems like an oversight left over from when they would never normally encounter them due to spawning on space stations.

The bubble alerts provide a lot of feedback that was previously missing and saves taking your eyes off the game to look at warning messages in the chat.

The screen tips save you having to read the help screed to at least know what two of the shortcuts are.

Making off-station blobs lighter makes it immediately obvious which blobs count towards victory.

* Lets blobs mine

Co-authored-by: cacogen <25089914+cacogen@users.noreply.github.com>
2022-02-22 12:57:21 +00:00

26 lines
1.2 KiB
Plaintext

/// Create a "Type-B" contextual screentip interaction, registering to `add_context()`.
/// This will run `add_context()` when the atom is hovered over by an item for context.
/// `add_context()` will *not* be called unless this is run.
/// This is not necessary for Type-B interactions, as you can just apply the flag and register to the signal yourself.
/atom/proc/register_context()
flags_1 |= HAS_CONTEXTUAL_SCREENTIPS_1
RegisterSignal(src, COMSIG_ATOM_REQUESTING_CONTEXT_FROM_ITEM, .proc/add_context)
/// Creates a "Type-B" contextual screentip interaction.
/// When a user hovers over this, this proc will be called in order
/// to provide context for contextual screentips.
/// You must call `register_context()` in order for this to be registered.
/// A screentip context list is a list that has context keys (SCREENTIP_CONTEXT_*, from __DEFINES/screentips.dm)
/// that map to the action as text.
/// If you mutate the list in this signal, you must return CONTEXTUAL_SCREENTIP_SET.
/// `source` can, in all cases, be replaced with `src`, and only exists because this proc directly connects to a signal.
/atom/proc/add_context(
atom/source,
list/context,
obj/item/held_item,
mob/user,
)
SIGNAL_HANDLER
return NONE