Sgshadowheart_infused
Based on game build 7140014 | Last updated: 2026-03-08
Overview
SGshadowheart_infused implements the state machine for the infused Shadowheart boss entity. It manages core mobility states — particularly the hop motion sequence — and integrates with the locomotor component for movement control and the inventoryitem component to control pick-up behavior during stunned or trapped conditions. The state graph inherits from common idle and hop-post states via CommonStates utilities and includes handlers for sinking, falling into void, and external triggers like trapping.
Usage example
This state graph is constructed and returned by the module and is not manually instantiated. It is registered and used internally by the game when the shadowheart_infused prefab is spawned:
-- Internal usage — do not call directly
return StateGraph("shadowheart_infused", states, events, "idle")
The entity using this stategraph will transition through states like "idle" → "hop" → "hop_pst" based on locomotor input, or "idle" → "stunned" when trapped or timeout occurs.
Dependencies & tags
Components used:
locomotor(callsStopMoving,WalkForward,WantsToMoveForward)inventoryitem(reads/writescanbepickedupproperty)Physics(viainst.Physics:Stop())AnimState(for animation playback)SoundEmitter(for hop sound)
Tags:
- States add
moving,canrotate,busy,stunned,trapped. - No tags are added/removed at the instance level beyond those managed by state tags.
Properties
No public properties. This module defines a StateGraph and returns it; it does not expose instance variables or mutable state.
Main functions
This module defines only internal callback functions used within the state definitions. No publicly exposed methods.
hop_animover(inst)
- Description: Handles animation-over events during the
"hop"state to determine the next state ("hop_pst"or"hop"again depending onend_hopflag). - Parameters:
inst(Entity) — the instance whose state graph triggered the event. - Returns: Nothing. Directly calls
inst.sg:GoToState(...)to transition state. - Error states: None identified; transitions always succeed if valid state names exist.
Events & listeners
-
Listens to:
CommonHandlers.OnSink()— triggers sink/washashore handling.CommonHandlers.OnFallInVoid()— triggers sink/washashore handling.locomote— monitors movement intent vs. current state, toggles"hop"transitions.trapped— forces transition to"trapped"state.animover(within"hop"state only) — routes tohop_animovercallback.
-
Pushes:
- This stategraph itself does not push custom events. It responds to and forwards events internally.