diff --git a/projects/mtg/include/ExtraCost.h b/projects/mtg/include/ExtraCost.h index 2f52d07c8..f2d03f3d5 100644 --- a/projects/mtg/include/ExtraCost.h +++ b/projects/mtg/include/ExtraCost.h @@ -57,7 +57,7 @@ public: class LifeCost: public ExtraCost{ public: LifeCost(TargetChooser *_tc = NULL); - + virtual int canPay(); virtual int doPay(); virtual LifeCost * clone() const; }; @@ -66,6 +66,7 @@ class LifeorManaCost: public ExtraCost{ public: LifeorManaCost(TargetChooser *_tc = NULL,string manaType = ""); string manaType; + virtual int canPay(); virtual int doPay(); virtual LifeorManaCost * clone() const; }; diff --git a/projects/mtg/src/ExtraCost.cpp b/projects/mtg/src/ExtraCost.cpp index 8aeddace8..38e659078 100644 --- a/projects/mtg/src/ExtraCost.cpp +++ b/projects/mtg/src/ExtraCost.cpp @@ -74,6 +74,16 @@ LifeCost::LifeCost(TargetChooser *_tc) : { } + int LifeCost::canPay() + { + MTGCardInstance * _target = (MTGCardInstance *) target; + if(_target->controller()->life <= 0) + { + return 0; + } + return 1; + } + int LifeCost::doPay() { if (!target) @@ -101,6 +111,16 @@ LifeorManaCost::LifeorManaCost(TargetChooser *_tc,string manaType) : { } + int LifeorManaCost::canPay() + { + MTGCardInstance * _target = (MTGCardInstance *) target; + if(_target->controller()->life <= 0) + { + return 0; + } + return 1; + } + int LifeorManaCost::doPay() { if (!target) diff --git a/projects/mtg/src/GameObserver.cpp b/projects/mtg/src/GameObserver.cpp index 91d0e32a6..d2487719e 100644 --- a/projects/mtg/src/GameObserver.cpp +++ b/projects/mtg/src/GameObserver.cpp @@ -487,7 +487,7 @@ void GameObserver::gameStateBasedEffects() for (int j = 0; j < nbcards; ++j) { MTGCardInstance * c = z->cards[j]; - if (c->has(Constants::CANTLOSE) || (c->has(Constants::CANTLIFELOSE && players[i]->poisonCount < 10))) + if (c->has(Constants::CANTLOSE) || (c->has(Constants::CANTLIFELOSE) && players[i]->poisonCount < 10)) { cantlosers++; }