From ea54efacae089aa3644cfe00c8e180d5cc2c8d9e Mon Sep 17 00:00:00 2001 From: Florian Fischer Date: Sat, 4 Feb 2023 14:37:15 +0100 Subject: support crewing * Introduce new callback for leaving a pile without beeing dropped * Fix equipment contrsuctor * Implement attack inheritance --- go/game/tile.go | 20 +++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) (limited to 'go/game/tile.go') 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 { -- cgit v1.2.3