aboutsummaryrefslogtreecommitdiff
path: root/go/game/stack.go
diff options
context:
space:
mode:
authorFlorian Fischer <florian.fischer@muhq.space>2023-01-26 22:16:10 +0100
committerFlorian Fischer <florian.fischer@muhq.space>2025-01-27 16:43:44 +0100
commit926ca5cdd20a39e3e05aaa3486cb166718dab5ca (patch)
tree3d7bc8a0e1e0be1ce8d92d5503bdede878e718e9 /go/game/stack.go
parent8720ebf9c74d9e11001772b5c00c293fa3a8b9e5 (diff)
downloadmuhqs-game-926ca5cdd20a39e3e05aaa3486cb166718dab5ca.tar.gz
muhqs-game-926ca5cdd20a39e3e05aaa3486cb166718dab5ca.zip
intermeditae commit
Diffstat (limited to 'go/game/stack.go')
-rw-r--r--go/game/stack.go14
1 files changed, 9 insertions, 5 deletions
diff --git a/go/game/stack.go b/go/game/stack.go
index 45ba4072..9132ae13 100644
--- a/go/game/stack.go
+++ b/go/game/stack.go
@@ -18,7 +18,6 @@ func (s *Stack) IsEmpty() bool {
}
func (s *Stack) Push(a Action) {
- s.gameState.broadcastNotification(NewDeclaredActionNotification(a))
s.Actions = append(s.Actions, a)
}
@@ -27,16 +26,21 @@ func (s *Stack) Pop() {
if l == 0 {
log.Fatalf("Can not pop from empty stack")
}
+
a := s.Actions[l-1]
s.Actions = s.Actions[:l-1]
- a.Resolve(s.gameState)
- s.gameState.broadcastNotification(NewResolvedActionNotification(a))
+
+ err := s.gameState.ValidateAction(a)
+ if err == nil {
+ a.Resolve(s.gameState)
+ }
+ log.Println("Resolved", a, err)
+ s.gameState.broadcastNotification(NewResolvedActionNotification(a, err))
}
func (s *Stack) Resolve() {
for !s.IsEmpty() {
- log.Println("Resolve Stack")
- s.gameState.AllPassing()
+ s.gameState.AllPassing(false)
s.Pop()
}
}