noita_entangled_worlds/docs/capabilities.md

34 lines
775 B
Markdown

# Capabilities
Capabilities allow several systems provide same functionality in different ways. Exactly one capability implementation should be active.
Capabilities are registered by having an entry in `ctx.cap` table.
# List of capabilities
## `health` capability
Functions:
- `health() -> num`
- `max_health() -> num`
- `set_health(hp: num)`
- `set_max_health(hp: num)`
- `inflict_damage(dmg: num)`
- `do_game_over(msg: str)`
- `on_poly_death(msg: str)`
Provided by:
- damage (shared health) system
- local health system
Used by:
- heart pickups system
## 'item_sync' capability
Functions:
- `globalize(entity_id, instantly: bool | nil, give_authority_to: PeerId | nil)`
- `register_pickup_handler(fn(local_item_id))`
Provided by:
- item_sync system