diff --git a/projects/mtg/src/CardDescriptor.cpp b/projects/mtg/src/CardDescriptor.cpp index df8712e20..944cb4170 100644 --- a/projects/mtg/src/CardDescriptor.cpp +++ b/projects/mtg/src/CardDescriptor.cpp @@ -181,17 +181,16 @@ MTGCardInstance * CardDescriptor::match_or(MTGCardInstance * card) return NULL; if (powerComparisonMode && !valueInRange(powerComparisonMode, card->getPower(), power)) return NULL; - if (toughnessComparisonMode){ // Toughness has different meaning for creatures, planeswalkers and battles - if(card->isCreature() && !valueInRange(toughnessComparisonMode, card->getToughness(), toughness)) - return NULL; - else if(card->counters && (card->hasType(Subtypes::TYPE_PLANESWALKER) || card->hasType(Subtypes::TYPE_BATTLE))){ + if (toughnessComparisonMode){ // Toughness comparison has a different meaning for planeswalkers and battles. + if(card->counters && (card->hasType(Subtypes::TYPE_PLANESWALKER) || card->hasType(Subtypes::TYPE_BATTLE))){ for(size_t i = 0; i < card->counters->counters.size(); ++i){ - if((card->counters->counters[i]->name == "loyalty" && card->hasType(Subtypes::TYPE_PLANESWALKER)) || (card->counters->counters[i]->name == "defense" && card->hasType(Subtypes::TYPE_BATTLE))){ + if((card->counters->counters[i]->name == "loyalty" && card->hasType(Subtypes::TYPE_PLANESWALKER)) || (card->counters->counters[i]->name == "defense" && card->hasType(Subtypes::TYPE_BATTLE))){ if(!valueInRange(toughnessComparisonMode, card->counters->counters[i]->nb, toughness)) return NULL; } } - } + } else if(!valueInRange(toughnessComparisonMode, card->getToughness(), toughness)) + return NULL; } if (manacostComparisonMode && !valueInRange(manacostComparisonMode, card->myconvertedcost, convertedManacost)) return NULL; @@ -239,17 +238,16 @@ MTGCardInstance * CardDescriptor::match_and(MTGCardInstance * card) match = NULL; if (powerComparisonMode && !valueInRange(powerComparisonMode, card->getPower(), power)) match = NULL; - if (toughnessComparisonMode){ // Toughness has different meaning for creatures, planeswalkers and battles - if(card->isCreature() && !valueInRange(toughnessComparisonMode, card->getToughness(), toughness)) - return NULL; - else if(card->counters && (card->hasType(Subtypes::TYPE_PLANESWALKER) || card->hasType(Subtypes::TYPE_BATTLE))){ + if (toughnessComparisonMode){ // Toughness comparison has a different meaning for planeswalkers and battles. + if(card->counters && (card->hasType(Subtypes::TYPE_PLANESWALKER) || card->hasType(Subtypes::TYPE_BATTLE))){ for(size_t i = 0; i < card->counters->counters.size(); ++i){ - if((card->counters->counters[i]->name == "loyalty" && card->hasType(Subtypes::TYPE_PLANESWALKER)) || (card->counters->counters[i]->name == "defense" && card->hasType(Subtypes::TYPE_BATTLE))){ + if((card->counters->counters[i]->name == "loyalty" && card->hasType(Subtypes::TYPE_PLANESWALKER)) || (card->counters->counters[i]->name == "defense" && card->hasType(Subtypes::TYPE_BATTLE))){ if(!valueInRange(toughnessComparisonMode, card->counters->counters[i]->nb, toughness)) return NULL; } } - } + } else if(!valueInRange(toughnessComparisonMode, card->getToughness(), toughness)) + return NULL; } if (manacostComparisonMode && !valueInRange(manacostComparisonMode, card->myconvertedcost, convertedManacost)) match = NULL;