class CardEffect { public: virtual void PlayAction(State &s) const {} virtual bool CanProcessDecisions() const { return false; } virtual void ProcessDecision(State &s, const DecisionResponse &response) const { SignalError("Card does not support decisions"); } virtual void ProcessDuration(State &s) const {} virtual int VictoryPoints(const State &s, UINT playerIndex) const { return 0; } Card *c; };