diff options
Diffstat (limited to 'go/game')
| -rw-r--r-- | go/game/cardImplementations.go | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/go/game/cardImplementations.go b/go/game/cardImplementations.go index 34567962..ac2b5431 100644 --- a/go/game/cardImplementations.go +++ b/go/game/cardImplementations.go @@ -220,6 +220,23 @@ func (*attackImpl) onPlay(s *State, c *Card, p *Player, t *Targets) { } } +type appearImpl struct{ cardImplementationBase } + +func (*appearImpl) playTargets() TargetDesc { + return newTargetDesc("free tile") +} + +func (*appearImpl) onPlay(s *State, c *Card, p *Player, t *Targets) { + selection := p.PromptHandCardSelection(1, 1) + if len(selection) != 1 || selection[0].Type != CardTypes.Unit { + } + unitCard := selection[0] + p.Hand.RemoveCard(unitCard) + + tile := t.Cur().sel[0].(*Tile) + s.addNewUnit(unitCard, tile.Position, p) +} + type healImpl struct{ cardImplementationBase } func (*healImpl) playTargets() TargetDesc { @@ -664,6 +681,7 @@ func init() { "base/wormtongue": &wormtongueImpl{}, "magic/attack!": &attackImpl{}, + "magic/appear!": &appearImpl{}, "magic/die!": &dieImpl{}, "magic/heal!": &healImpl{}, "magic/more!": &moreImpl{}, |
