aboutsummaryrefslogtreecommitdiff
path: root/go/game/unit.go
diff options
context:
space:
mode:
authorFlorian Fischer <florian.fischer@muhq.space>2023-02-16 13:49:35 +0100
committerFlorian Fischer <florian.fischer@muhq.space>2025-01-27 16:43:50 +0100
commit2f01274717d62e59e4bf3b4426a2ec6a76ffac11 (patch)
treef9d23ba18ba91ad366936a94bb36b0a6214fa49c /go/game/unit.go
parentedc4efbe42a94660d9d530b61c5963c298bd3597 (diff)
downloadmuhqs-game-2f01274717d62e59e4bf3b4426a2ec6a76ffac11.tar.gz
muhqs-game-2f01274717d62e59e4bf3b4426a2ec6a76ffac11.zip
client: use only the currently available actions in the action choice
Diffstat (limited to 'go/game/unit.go')
-rw-r--r--go/game/unit.go22
1 files changed, 20 insertions, 2 deletions
diff --git a/go/game/unit.go b/go/game/unit.go
index 4851a037..51383b77 100644
--- a/go/game/unit.go
+++ b/go/game/unit.go
@@ -184,7 +184,7 @@ func (u *Unit) HasFullAction() bool {
func (u *Unit) FullAction() {
}
-func (u *Unit) AvailActions() (actions []Action) {
+func (u *Unit) AvailSlowActions() (actions []Action) {
if u.AvailMoveActions > 0 && u.Movement != INVALID_MOVEMENT() {
actions = append(actions, NewMoveAction(u))
}
@@ -202,11 +202,29 @@ func (u *Unit) AvailActions() (actions []Action) {
}
}
+ return actions
+}
+
+func (u *Unit) AvailFreeActions() (actions []Action) {
for _, p := range u.FreeActions {
actions = append(actions, p)
}
+ return
+}
+
+func (u *Unit) CurrentlyAvailActions() (actions []Action) {
+ s := u.Controller().gameState
+ if s.ActivePlayer == u.Controller() && s.ActivePhase == Phases.ActionPhase {
+ actions = append(actions, u.AvailSlowActions()...)
+ }
+ actions = append(actions, u.AvailFreeActions()...)
+ return
+}
- return actions
+func (u *Unit) AvailActions() (actions []Action) {
+ actions = append(actions, u.AvailSlowActions()...)
+ actions = append(actions, u.AvailFreeActions()...)
+ return
}
func (u *Unit) onPile(containing Permanent) {