Epic: Integrate event sourcing into game actions #20

Open
opened 2026-03-14 23:53:08 +00:00 by freemo · 0 comments
Owner

Background

None of the 90+ game action commands (movement, combat, inventory, communication) emit events. Event sourcing only fires from Manager/Storage/GameObject setter hooks, missing the vast majority of game state changes.

Demonstrable Outcome

When event sourcing is enabled, game actions transparently emit events through the Manager and GameObject APIs. Movement, inventory, equipment, combat, and admin actions all produce audit trails.

Acceptance Criteria

  • Movement actions emit GameObjectContainerUpdated via Manager
  • Inventory actions emit ItemAddedToInventory/ItemRemovedFromInventory via Manager
  • Equipment actions emit ItemEquipped/ItemUnequipped via Manager
  • Combat actions emit GameObjectAttributeUpdated (health) via GameObject setters
  • Integration tests verify events are emitted for each action category
## Background None of the 90+ game action commands (movement, combat, inventory, communication) emit events. Event sourcing only fires from Manager/Storage/GameObject setter hooks, missing the vast majority of game state changes. ## Demonstrable Outcome When event sourcing is enabled, game actions transparently emit events through the Manager and GameObject APIs. Movement, inventory, equipment, combat, and admin actions all produce audit trails. ## Acceptance Criteria - [ ] Movement actions emit `GameObjectContainerUpdated` via Manager - [ ] Inventory actions emit `ItemAddedToInventory`/`ItemRemovedFromInventory` via Manager - [ ] Equipment actions emit `ItemEquipped`/`ItemUnequipped` via Manager - [ ] Combat actions emit `GameObjectAttributeUpdated` (health) via GameObject setters - [ ] Integration tests verify events are emitted for each action category
freemo self-assigned this 2026-03-15 04:25:21 +00:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Reference: aethyr/Aethyr#20
No description provided.