diff options
Diffstat (limited to 'go/game/cardImplementations.go')
| -rw-r--r-- | go/game/cardImplementations.go | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/go/game/cardImplementations.go b/go/game/cardImplementations.go new file mode 100644 index 00000000..d1f8de70 --- /dev/null +++ b/go/game/cardImplementations.go @@ -0,0 +1,31 @@ +package game + +type farmerImplementation struct { + cardImplementationBase +} + +type advisorImplementation struct { + cardImplementationBase +} + +func (impl *advisorImplementation) fullActionPrototypes(u *Unit) []*FullActionPrototype { + resolvePrototype := func(s *State, u *Unit) func(*State) { + return func(s *State) { + controller := u.Controller() + controller.DrawN(1) + cards := controller.PromptHandCardSelection(0, 1) + if cards != nil { + controller.Deck.MoveCard(cards[0], s.Exile) + } + } + } + return []*FullActionPrototype{NewFullActionPrototype(u, resolvePrototype)} +} + +func init() { + cardImplementations = map[string]cardImplementation{ + "base/advisor": &advisorImplementation{}, + + "misc/farmer": &farmerImplementation{}, + } +} |
