From 4c90d9e0c2258b76d2de33d99c6fd3ff0ac1c4e9 Mon Sep 17 00:00:00 2001 From: "omegablast2002@yahoo.com" Date: Sun, 17 Apr 2011 20:08:08 +0000 Subject: [PATCH] you can't pay life which you do not have as life payments. --- projects/mtg/include/ExtraCost.h | 3 ++- projects/mtg/src/ExtraCost.cpp | 20 ++++++++++++++++++++ projects/mtg/src/GameObserver.cpp | 2 +- 3 files changed, 23 insertions(+), 2 deletions(-) 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++; }