diff options
Diffstat (limited to 'go/game/tile.go')
| -rw-r--r-- | go/game/tile.go | 20 |
1 files changed, 17 insertions, 3 deletions
diff --git a/go/game/tile.go b/go/game/tile.go index ba600c66..3f9f9f5f 100644 --- a/go/game/tile.go +++ b/go/game/tile.go @@ -105,13 +105,27 @@ func (t *Tile) IsFree() bool { } func (t *Tile) IsAvailableForCard(card *Card) bool { - if t.Water && !card.hasPlacementConstrain("swimming") { + if t.IsFree() { + if t.Water && !card.hasPlacementConstrain("swimming") { + return false + } + if !t.Water && card.hasPlacementConstrain("swimming") { + return false + } + + return true + } + + x, err := t.Permanent.Card().getXEffect("crew") + if err != nil { return false } - if !t.Water && card.hasPlacementConstrain("swimming") { + + if len(t.Permanent.Pile()) == x { return false } - return t.IsFree() + + return true } func (t *Tile) OnDiagonal(other *Tile) bool { |
