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

View File

@@ -3970,8 +3970,11 @@ int MTGPlaneswalkerDamage::receiveEvent(WEvent * event)
int howMany = d->damage;
for(int k = 0; k < howMany; k++)
{
card->counters->removeCounter("loyalty", 0, 0);
if(!card->basicAbilities[Constants::NOLOYALTYDAMAGE])
card->counters->removeCounter("loyalty", 0, 0);
}
if(!card->isCreature() && card->counters->hasCounter("loyalty", 0, 0))
card->life = card->counters->hasCounter("loyalty", 0, 0)->nb;
return 1;
}
if (d->damage > 0 && card && card->hasType(Subtypes::TYPE_BATTLE))
@@ -3979,8 +3982,11 @@ int MTGPlaneswalkerDamage::receiveEvent(WEvent * event)
int howMany = d->damage;
for(int k = 0; k < howMany; k++)
{
card->counters->removeCounter("defense", 0, 0);
if(!card->basicAbilities[Constants::NODEFENSEDAMAGE])
card->counters->removeCounter("defense", 0, 0);
}
if(!card->isCreature() && card->counters->hasCounter("defense", 0, 0))
card->life = card->counters->hasCounter("defense", 0, 0)->nb;
return 1;
}
}