aboutsummaryrefslogtreecommitdiff
path: root/go/client/game.go
diff options
context:
space:
mode:
authorFlorian Fischer <florian.fischer@muhq.space>2024-03-26 09:53:08 +0100
committerFlorian Fischer <florian.fischer@muhq.space>2025-01-27 16:43:56 +0100
commit6460572cc3403f4540d6cf7c862b154d81f02cae (patch)
tree397d1c93c734b6446bac6d344f3167ecdf430948 /go/client/game.go
parentd6464e07d91d49e6b79c6b21768fcc086e862277 (diff)
downloadmuhqs-game-6460572cc3403f4540d6cf7c862b154d81f02cae.tar.gz
muhqs-game-6460572cc3403f4540d6cf7c862b154d81f02cae.zip
client: start trigger implementation
Diffstat (limited to 'go/client/game.go')
-rw-r--r--go/client/game.go14
1 files changed, 14 insertions, 0 deletions
diff --git a/go/client/game.go b/go/client/game.go
index 58e4c63c..4d265e4b 100644
--- a/go/client/game.go
+++ b/go/client/game.go
@@ -50,6 +50,7 @@ type Game struct {
storeButton *ui.SimpleButton
stackBuffer *ui.Buffer
prompt *ui.Prompt
+ triggers []*game.TriggeredAction
ui.Collection
activePlayer *game.Player
@@ -320,6 +321,13 @@ func (g *Game) removePrompt() {
g.prompt = nil
}
+func (g *Game) addTriggers(actions []*game.TriggeredAction) {
+ if g.triggers != nil {
+ log.Panicf("There is already an active trigger ui")
+ }
+ g.triggers = actions
+}
+
func (g *Game) addHighlight(obj interface{}, color color.Color) {
switch obj := obj.(type) {
case ui.HandCard:
@@ -435,6 +443,12 @@ func (g *Game) handlePlayerNotifications() {
}
}
g.addPrompt(ctx.Action, ctx.Prompt)
+
+ case game.DeclareTriggeredActionsPrompt:
+ triggeredActions := n.Context.([]*game.TriggeredAction)
+ // TODO: present triggered action for ordering and target selection
+ g.playerCtrl.SendAction(
+ game.NewDeclareTriggeredActionsAction(triggeredActions))
}
g.stateBar.ForceRedraw()