diff options
| author | Florian Fischer <florian.fischer@muhq.space> | 2023-02-16 13:49:35 +0100 |
|---|---|---|
| committer | Florian Fischer <florian.fischer@muhq.space> | 2025-01-27 16:43:50 +0100 |
| commit | 2f01274717d62e59e4bf3b4426a2ec6a76ffac11 (patch) | |
| tree | f9d23ba18ba91ad366936a94bb36b0a6214fa49c /go/game/unit.go | |
| parent | edc4efbe42a94660d9d530b61c5963c298bd3597 (diff) | |
| download | muhqs-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.go | 22 |
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) { |
