Epic: Sunset Legacy out_event() Pattern #178

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

Background and Context

Container#out_event (lines 59-77 of container.rb) distributes event hashes to all occupants of a room by iterating inventory and calling .out_event() on each object. It is called from 23 locations across movement, inventory, equipment, communication, and combat commands. Each call site constructs an event hash with message variants (to_player, to_target, to_other, etc.).

This pattern predates Wisper and must be replaced with domain event broadcasting. Once all 23 call sites are converted, the Container#out_event method is deleted.

Demonstrable Outcome

Zero out_event() calls remain in the codebase. Container#out_event is deleted. Room notifications use Wisper domain events.

Acceptance Criteria

  • All 23 out_event() call sites replaced with Wisper broadcasts
  • Container#out_event method deleted
  • Message variants preserved in event payloads
## Background and Context `Container#out_event` (lines 59-77 of `container.rb`) distributes event hashes to all occupants of a room by iterating inventory and calling `.out_event()` on each object. It is called from 23 locations across movement, inventory, equipment, communication, and combat commands. Each call site constructs an event hash with message variants (`to_player`, `to_target`, `to_other`, etc.). This pattern predates Wisper and must be replaced with domain event broadcasting. Once all 23 call sites are converted, the `Container#out_event` method is deleted. ## Demonstrable Outcome Zero `out_event()` calls remain in the codebase. `Container#out_event` is deleted. Room notifications use Wisper domain events. ## Acceptance Criteria - All 23 `out_event()` call sites replaced with Wisper broadcasts - `Container#out_event` method deleted - Message variants preserved in event payloads
freemo added this to the v1.2.0 milestone 2026-03-15 23:19:48 +00:00
freemo modified the milestone from v1.2.0 to v1.0.0 2026-03-16 00:27:51 +00:00
freemo self-assigned this 2026-03-16 01:26:58 +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#178
No description provided.