diff options
Diffstat (limited to 'go')
| -rw-r--r-- | go/game/events.go | 8 | ||||
| -rw-r--r-- | go/game/state.go | 3 |
2 files changed, 8 insertions, 3 deletions
diff --git a/go/game/events.go b/go/game/events.go index 2e0b0f08..f62e125a 100644 --- a/go/game/events.go +++ b/go/game/events.go @@ -91,6 +91,10 @@ type Event struct { } func (e Event) String() string { + if e.eventType == phaseChange { + return fmt.Sprintf("%s", e.sources[0]) + } + if len(e.sources) == 0 { return e.eventType.String() } @@ -129,8 +133,8 @@ func newResolvedActionEvent(action Action, err error) Event { } } -func newPhaseChangeEvent() Event { - return Event{eventType: phaseChange} +func newPhaseChangeEvent(old, next PhaseType) Event { + return Event{eventType: phaseChange, sources: []any{old}, affected: []any{next}} } func (s *LocalState) fireEvent(e Event) { diff --git a/go/game/state.go b/go/game/state.go index 1ab3c95d..a4e158e1 100644 --- a/go/game/state.go +++ b/go/game/state.go @@ -154,8 +154,9 @@ func (s *LocalState) IsActivePlayer(p *Player) bool { } func (s *LocalState) changePhase(next PhaseType) []*Player { + ev := newPhaseChangeEvent(s.activePhase, next) s.activePhase = next - s.fireEvent(newPhaseChangeEvent()) + s.fireEvent(ev) return s.stateBasedActions() } |
