From ba7640079c3220396066434b21fe7f81969fc3d1 Mon Sep 17 00:00:00 2001 From: "omegablast2002@yahoo.com" Date: Wed, 20 Apr 2011 12:14:27 +0000 Subject: [PATCH] move reducedCost and increasedCost out of cardprimitives and into MTGCardInstance --- projects/mtg/include/CardPrimitive.h | 4 ---- projects/mtg/include/MTGCardInstance.h | 4 ++++ projects/mtg/src/CardPrimitive.cpp | 13 ++----------- projects/mtg/src/MTGCardInstance.cpp | 9 +++++++++ projects/mtg/src/ManaCost.cpp | 6 +++++- 5 files changed, 20 insertions(+), 16 deletions(-) diff --git a/projects/mtg/include/CardPrimitive.h b/projects/mtg/include/CardPrimitive.h index a166a1c09..01889d011 100644 --- a/projects/mtg/include/CardPrimitive.h +++ b/projects/mtg/include/CardPrimitive.h @@ -18,8 +18,6 @@ protected: ManaCost manaCost; public: - ManaCost reducedCost; - ManaCost increasedCost; string text; string name; int init(); @@ -74,8 +72,6 @@ public: void setManaCost(string value); ManaCost * getManaCost(); - ManaCost * getReducedManaCost(); - ManaCost * getIncreasedManaCost(); bool isCreature(); bool isLand(); bool isSpell(); diff --git a/projects/mtg/include/MTGCardInstance.h b/projects/mtg/include/MTGCardInstance.h index c8a919932..0506183ab 100644 --- a/projects/mtg/include/MTGCardInstance.h +++ b/projects/mtg/include/MTGCardInstance.h @@ -94,6 +94,10 @@ class MTGCardInstance: public CardPrimitive, public MTGCard, public Damageable { MTGCardInstance * next; int doDamageTest; int summoningSickness; + ManaCost reducedCost; + ManaCost increasedCost; + ManaCost * getReducedManaCost(); + ManaCost * getIncreasedManaCost(); bool matchesCastFilter(int castMethod); diff --git a/projects/mtg/src/CardPrimitive.cpp b/projects/mtg/src/CardPrimitive.cpp index e8570ac54..03cf1831d 100644 --- a/projects/mtg/src/CardPrimitive.cpp +++ b/projects/mtg/src/CardPrimitive.cpp @@ -23,8 +23,8 @@ CardPrimitive::CardPrimitive(CardPrimitive * source) for (int i = 0; i < Constants::MTG_NB_COLORS; ++i) colors[i] = source->colors[i]; manaCost.copy(source->getManaCost()); - reducedCost.copy(source->getReducedManaCost()); - increasedCost.copy(source->getIncreasedManaCost()); + //reducedCost.copy(source->getReducedManaCost()); + //increasedCost.copy(source->getIncreasedManaCost()); if(source->getManaCost()->alternative) manaCost.alternative->alternativeName = source->getManaCost()->alternative->alternativeName; @@ -276,15 +276,6 @@ ManaCost* CardPrimitive::getManaCost() return &manaCost; } -ManaCost* CardPrimitive::getReducedManaCost() -{ - return &reducedCost; -} -ManaCost* CardPrimitive::getIncreasedManaCost() -{ - return &increasedCost; -} - bool CardPrimitive::hasType(int _type) { for (size_t i = 0; i < types.size(); i++) diff --git a/projects/mtg/src/MTGCardInstance.cpp b/projects/mtg/src/MTGCardInstance.cpp index 55e4276fd..7769f8098 100644 --- a/projects/mtg/src/MTGCardInstance.cpp +++ b/projects/mtg/src/MTGCardInstance.cpp @@ -333,6 +333,15 @@ int MTGCardInstance::has(int basicAbility) return basicAbilities[basicAbility]; } +ManaCost* MTGCardInstance::getReducedManaCost() +{ + return &reducedCost; +} +ManaCost* MTGCardInstance::getIncreasedManaCost() +{ + return &increasedCost; +} + //sets card as attacked and sends events void MTGCardInstance::eventattacked() { diff --git a/projects/mtg/src/ManaCost.cpp b/projects/mtg/src/ManaCost.cpp index ef44f56fb..b001126fb 100644 --- a/projects/mtg/src/ManaCost.cpp +++ b/projects/mtg/src/ManaCost.cpp @@ -539,7 +539,11 @@ int ManaCost::remove(ManaCost * _cost) return 0; for (unsigned int i = 0; i < Constants::MTG_NB_COLORS; i++) { - cost[i] -= _cost->getCost(i); + for(int c = 0;c < _cost->getCost(i);c++) + { + if(cost[i])//remove 1 at a time to avoid dipping into negitive cost. + cost[i] -= 1; + } } return 1; }