/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/ai/ai.dm

UNLOCK_DO_ONCEClears the blackboard latch used by a /datum/bt_node/decorator/do_once.
TARGETING_FACTION_CHECKReturns TRUE if the target should be rejected based on factions. Inlined faction check for targeting strategies but with less proc overhead. Strategies with fully custom faction logic set custom_faction_check and override faction_check() instead.
TARGET_REVALIDATEIf a target is already set, validate it via is_valid_target before searching. Replace if invalid.
TARGET_KEEP_IF_SETIf a target is already set, return SUCCESS immediately without re-checking.
TARGET_ALWAYS_SEARCHAlways run the full candidate search, ignoring any existing target.
TARGET_RESELECT_WITH_SELECTIONRevalidate an existing target, and only search for a replacement while it remains valid if a target priority strategy is configured.
AI_STATUS_ONThe AI is currently active, and is planned by the high priority subsystem.
AI_STATUS_ON_LOWThe AI is currently active, but is planned by the low priority (background) subsystem.
AI_STATUS_OFFThe AI is not running. Cancels any active plans if set.
AI_UNABLE_TO_RUNpauses AI processing
AI_PREVENT_CANCEL_ACTIONSbypass canceling our actions on set_ai_status()
AI_MAX_PATH_LENGTHFor JPS pathing, the maximum length of a path we'll try to generate. Should be modularized depending on what we're doing later on
AI_FAILED_PLANNING_COOLDOWNCooldown on planning if planning failed last time
AI_CONTROLLER_INCOMPATIBLEFlags for ai_behavior new()
AI_BEHAVIOR_DELAYUpdate this behavior's cooldown
AI_BEHAVIOR_SUCCEEDEDFinish the behavior successfully
AI_BEHAVIOR_FAILEDFinish the behavior unsuccessfully
STOP_MOVING_WHEN_PULLEDAI flags Don't move if being pulled
CAN_ACT_WHILE_DEADContinue processing even if dead
PAUSE_DURING_DO_AFTERStop processing while in a progress bar
CAN_ACT_IN_STASISContinue processing while in stasis
CAN_ACT_WHILE_GRABBEDContinue processing while aggressively grabbed
RUN_WHILE_UNWATCHEDKeeps planning on low prio when unwatched
ALWAYS_HIGH_PRIORITYAlways plans at high priority. Only works with RUN_WHILE_UNWATCHED
DEFAULT_AI_FLAGSFlags we expect for most AI controllers
PASSIVE_AI_FLAGSFlags for passive mobs that are easy to push around
SEARCH_TACTIC_DEFAULT_RANGEdefault search range (tiles, passed to oview) when using find_and_set
RESIST_SUBTREE_PROBprobability that the pawn should try resisting out of restraints
SHOULD_RESISTmacro for whether it's appropriate to resist right now, used by resist subtree
ABSTRACT_AI_CLASSUse this if you dont want a controller to show up in the sidebar (e.g. when its a class that just sets BB keys)

Define Details

ABSTRACT_AI_CLASS

Use this if you dont want a controller to show up in the sidebar (e.g. when its a class that just sets BB keys)

AI_BEHAVIOR_DELAY

Update this behavior's cooldown

AI_BEHAVIOR_FAILED

Finish the behavior unsuccessfully

AI_BEHAVIOR_SUCCEEDED

Finish the behavior successfully

AI_CONTROLLER_INCOMPATIBLE

Flags for ai_behavior new()

AI_FAILED_PLANNING_COOLDOWN

Cooldown on planning if planning failed last time

AI_MAX_PATH_LENGTH

For JPS pathing, the maximum length of a path we'll try to generate. Should be modularized depending on what we're doing later on

AI_PREVENT_CANCEL_ACTIONS

bypass canceling our actions on set_ai_status()

AI_STATUS_OFF

The AI is not running. Cancels any active plans if set.

AI_STATUS_ON

The AI is currently active, and is planned by the high priority subsystem.

AI_STATUS_ON_LOW

The AI is currently active, but is planned by the low priority (background) subsystem.

AI_UNABLE_TO_RUN

pauses AI processing

ALWAYS_HIGH_PRIORITY

Always plans at high priority. Only works with RUN_WHILE_UNWATCHED

CAN_ACT_IN_STASIS

Continue processing while in stasis

CAN_ACT_WHILE_DEAD

Continue processing even if dead

CAN_ACT_WHILE_GRABBED

Continue processing while aggressively grabbed

DEFAULT_AI_FLAGS

Flags we expect for most AI controllers

PASSIVE_AI_FLAGS

Flags for passive mobs that are easy to push around

PAUSE_DURING_DO_AFTER

Stop processing while in a progress bar

RESIST_SUBTREE_PROB

probability that the pawn should try resisting out of restraints

RUN_WHILE_UNWATCHED

Keeps planning on low prio when unwatched

SEARCH_TACTIC_DEFAULT_RANGE

default search range (tiles, passed to oview) when using find_and_set

SHOULD_RESIST

macro for whether it's appropriate to resist right now, used by resist subtree

STOP_MOVING_WHEN_PULLED

AI flags Don't move if being pulled

TARGETING_FACTION_CHECK

Returns TRUE if the target should be rejected based on factions. Inlined faction check for targeting strategies but with less proc overhead. Strategies with fully custom faction logic set custom_faction_check and override faction_check() instead.

Always run the full candidate search, ignoring any existing target.

TARGET_KEEP_IF_SET

If a target is already set, return SUCCESS immediately without re-checking.

TARGET_RESELECT_WITH_SELECTION

Revalidate an existing target, and only search for a replacement while it remains valid if a target priority strategy is configured.

TARGET_REVALIDATE

If a target is already set, validate it via is_valid_target before searching. Replace if invalid.

UNLOCK_DO_ONCE

Clears the blackboard latch used by a /datum/bt_node/decorator/do_once.