Fixes to commander damage, deathtouch, MAT card variants.
March of the Machine: The Aftermath (MAT) card variants. The previous implementation of the deathtouch ability had a bug that destroyed planeswalkers even with any amount of damage. This has been fixed. If a player has been dealt 21 points of combat damage by a particular Commander during the game, that player loses a game. The damage rule with commanders was incorrect in counting any type of damage, not only combat damage. Bug fixes: Athreos, Shroud-Veiled Endless Atlas Natural State Savage Gorger Kytheon's Irregulars Lion Sash Pyrophobia Minas Tirith Sakashima of a Thousand Faces
This commit is contained in:
@@ -266,7 +266,7 @@ int Damage::resolve()
|
||||
else
|
||||
{
|
||||
((MTGCardInstance*)source)->damageToOpponent += damage;
|
||||
if(((MTGCardInstance*)source)->isCommander > 0)
|
||||
if(((MTGCardInstance*)source)->isCommander > 0 && typeOfDamage == DAMAGE_COMBAT)
|
||||
((MTGCardInstance*)source)->damageInflictedAsCommander += damage;
|
||||
}
|
||||
target->lifeLostThisTurn += damage;
|
||||
@@ -283,7 +283,7 @@ int Damage::resolve()
|
||||
}
|
||||
WEvent * lifed = NEW WEventLife((Player*)target,-damage, source);
|
||||
observer->receiveEvent(lifed);
|
||||
if(((MTGCardInstance*)source)->damageInflictedAsCommander > 20) // if a Commander has dealt 21 or more damages to a player, he loose game.
|
||||
if(((MTGCardInstance*)source)->damageInflictedAsCommander > 20) // If a player has been dealt 21 points of combat damage by a particular Commander during the game, that player loses a game.
|
||||
observer->setLoser(((MTGCardInstance*)source)->controller()->opponent());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4077,8 +4077,11 @@ int MTGDeathtouchRule::receiveEvent(WEvent * event)
|
||||
|
||||
if (card->basicAbilities[(int)Constants::DEATHTOUCH]||card->basicAbilities[(int)Constants::PERPETUALDEATHTOUCH]||card->LKIbasicAbilities[(int)Constants::DEATHTOUCH]||card->LKIbasicAbilities[(int)Constants::PERPETUALDEATHTOUCH])
|
||||
{
|
||||
_target->destroy();
|
||||
return 1;
|
||||
if(_target->isCreature())
|
||||
{
|
||||
_target->destroy();
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
|
||||
Reference in New Issue
Block a user