aboutsummaryrefslogtreecommitdiff
path: root/go
diff options
context:
space:
mode:
Diffstat (limited to 'go')
-rw-r--r--go/game/events.go8
-rw-r--r--go/game/state.go3
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()
}