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{}, } }