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

@@ -738,6 +738,17 @@ void GameObserver::gameStateBasedEffects()
card->mPropertiesChangedSinceLastUpdate = false;
if(card->hasType(Subtypes::TYPE_PLANESWALKER) && (!card->counters||!card->counters->hasCounter("loyalty",0,0)))
players[i]->game->putInGraveyard(card);
if(card->hasType(Subtypes::TYPE_BATTLE) && (!card->counters||!card->counters->hasCounter("defense",0,0))){
if(!card->isDefeated){
card->isDefeated = true;
WEvent * e = NEW WEventCardDefeated(card);
receiveEvent(e);
}
}
if(!card->isCreature() && card->hasType(Subtypes::TYPE_PLANESWALKER) && card->counters->hasCounter("loyalty", 0, 0))
card->life = card->counters->hasCounter("loyalty", 0, 0)->nb;
if(!card->isCreature() && card->hasType(Subtypes::TYPE_BATTLE) && card->counters->hasCounter("defense", 0, 0))
card->life = card->counters->hasCounter("defense", 0, 0)->nb;
if(card->myPair && !isInPlay(card->myPair))
{
card->myPair->myPair = NULL;