- Added remove/add counters as a cost, patch by Salmelo, thanks man!. See primitives/mtg.txt -> Thallid to see how it works
- added test for i286 by salmelo
- added basic display for counters (this needs improvement) by salmelo
This commit is contained in:
wagic.the.homebrew@gmail.com
2010-03-22 04:26:42 +00:00
parent 99db31fe9d
commit 22a35d2265
15 changed files with 334 additions and 20 deletions

View File

@@ -2,6 +2,7 @@
#define _EXTRACOST_H_
#include <vector>
#include "Counters.h"
using std::vector;
class TargetChooser;
@@ -13,9 +14,10 @@ public:
TargetChooser * tc;
MTGCardInstance * source;
ExtraCost(TargetChooser *_tc = NULL);
~ExtraCost();
virtual ~ExtraCost();
virtual int setPayment(MTGCardInstance * card) = 0;
virtual int isPaymentSet() = 0;
virtual int canPay() = 0;
virtual int doPay() = 0;
virtual void Render(){};
virtual int setSource(MTGCardInstance * _source);
@@ -32,6 +34,7 @@ public:
void Render();
int tryToSetPayment(MTGCardInstance * card);
int isPaymentSet();
int canPay();
int doPay();
int reset();
int setAction(MTGAbility * _action, MTGCardInstance * _source);
@@ -45,10 +48,27 @@ public:
SacrificeCost(TargetChooser *_tc = NULL);
virtual int setPayment(MTGCardInstance * card);
virtual int isPaymentSet();
virtual int canPay();
virtual int doPay();
virtual void Render();
virtual int setSource(MTGCardInstance * _source);
virtual SacrificeCost * clone() const;
};
class CounterCost: public ExtraCost{
public:
Counter * counter;
MTGCardInstance * target;
int hasCounters;
CounterCost(Counter * _counter,TargetChooser *_tc = NULL);
~CounterCost();
virtual int setPayment(MTGCardInstance * card);
virtual int isPaymentSet();
virtual int canPay();
virtual int doPay();
virtual void Render();
virtual int setSource(MTGCardInstance * _source);
virtual CounterCost * clone() const;
};
#endif