Fixed some primitives, fixed several bug on damage management for planeswalkers and battle cards, added new keywords "noloyaltydamage" and "nodefensedamage" to avoid damage remove counters,

This commit is contained in:
Vittorio Alfieri
2023-05-22 01:19:15 +02:00
parent dd28f274d1
commit 2374b00dfd
10 changed files with 53 additions and 38 deletions
+2 -2
View File
@@ -189,7 +189,7 @@ MTGCardInstance * CardDescriptor::match_or(MTGCardInstance * card)
if (powerComparisonMode && !valueInRange(powerComparisonMode, card->getPower(), power))
return NULL;
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))){
if(!card->isCreature() && 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(!valueInRange(toughnessComparisonMode, card->counters->counters[i]->nb, toughness))
@@ -246,7 +246,7 @@ MTGCardInstance * CardDescriptor::match_and(MTGCardInstance * card)
if (powerComparisonMode && !valueInRange(powerComparisonMode, card->getPower(), power))
match = NULL;
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))){
if(!card->isCreature() && 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(!valueInRange(toughnessComparisonMode, card->counters->counters[i]->nb, toughness))