From 4f7901b946894842fe520ef80c272b7db240b8d0 Mon Sep 17 00:00:00 2001 From: Anthony Calosa Date: Thu, 26 Jan 2017 21:01:45 +0800 Subject: [PATCH] minor refactor --- projects/mtg/src/GameObserver.cpp | 17 +++++++++-------- projects/mtg/src/MTGCardInstance.cpp | 8 ++++++-- 2 files changed, 15 insertions(+), 10 deletions(-) diff --git a/projects/mtg/src/GameObserver.cpp b/projects/mtg/src/GameObserver.cpp index 4a53fe34e..c9a4d8978 100644 --- a/projects/mtg/src/GameObserver.cpp +++ b/projects/mtg/src/GameObserver.cpp @@ -714,19 +714,20 @@ void GameObserver::gameStateBasedEffects() ///set basic land mana objects canproduce for (size_t gg = 0; gg < mLayers->actionLayer()->manaObjects.size(); gg++) { - if (dynamic_cast (((MTGAbility *) mLayers->actionLayer()->manaObjects[gg])) && - (dynamic_cast (((MTGAbility *) mLayers->actionLayer()->manaObjects[gg])))->source->isLand() && - (dynamic_cast (((MTGAbility *) mLayers->actionLayer()->manaObjects[gg])))->source == card) + MTGAbility * aa = ((MTGAbility *) mLayers->actionLayer()->manaObjects[gg]); + //AManaProducer * amp = dynamic_cast (aa); + + if (dynamic_cast (aa) && (dynamic_cast (aa))->source->isLand() && (dynamic_cast (aa))->source == card) { - if (card->hasType("forest") && (dynamic_cast (((MTGAbility *) mLayers->actionLayer()->manaObjects[gg])))->output->hasColor(Constants::MTG_COLOR_GREEN)) + if (card->hasType("forest") && ((AManaProducer*)aa)->output->hasColor(Constants::MTG_COLOR_GREEN)) card->canproduceG = 1; - if (card->hasType("island") && (dynamic_cast (((MTGAbility *) mLayers->actionLayer()->manaObjects[gg])))->output->hasColor(Constants::MTG_COLOR_BLUE)) + if (card->hasType("island") && ((AManaProducer*)aa)->output->hasColor(Constants::MTG_COLOR_BLUE)) card->canproduceU = 1; - if (card->hasType("mountain") && (dynamic_cast (((MTGAbility *) mLayers->actionLayer()->manaObjects[gg])))->output->hasColor(Constants::MTG_COLOR_RED)) + if (card->hasType("mountain") && ((AManaProducer*)aa)->output->hasColor(Constants::MTG_COLOR_RED)) card->canproduceR = 1; - if (card->hasType("swamp") && (dynamic_cast (((MTGAbility *) mLayers->actionLayer()->manaObjects[gg])))->output->hasColor(Constants::MTG_COLOR_BLACK)) + if (card->hasType("swamp") && ((AManaProducer*)aa)->output->hasColor(Constants::MTG_COLOR_BLACK)) card->canproduceB = 1; - if (card->hasType("plains") && (dynamic_cast (((MTGAbility *) mLayers->actionLayer()->manaObjects[gg])))->output->hasColor(Constants::MTG_COLOR_WHITE)) + if (card->hasType("plains") && ((AManaProducer*)aa)->output->hasColor(Constants::MTG_COLOR_WHITE)) card->canproduceW = 1; } } diff --git a/projects/mtg/src/MTGCardInstance.cpp b/projects/mtg/src/MTGCardInstance.cpp index 4a061163b..e3226c544 100644 --- a/projects/mtg/src/MTGCardInstance.cpp +++ b/projects/mtg/src/MTGCardInstance.cpp @@ -809,14 +809,18 @@ void MTGCardInstance::switchPT(bool apply) int MTGCardInstance::getCurrentPower() { - if(!isInPlay(observer)) + if(observer && !isCreature()) + return 0; + if(observer && !isInPlay(observer)) return LKIpower; return power; } int MTGCardInstance::getCurrentToughness() { - if(!isInPlay(observer)) + if(observer && !isCreature()) + return 0; + if(observer && !isInPlay(observer)) return LKItoughness; return toughness; }