Fixed issue #1065 by @DoidArthas: now on Flip keyword we try to keep auras and equipments effects on transformed card basic abilities (e.g. Pacifism on Werevolwf).

This commit is contained in:
Vittorio Alfieri
2021-07-29 10:06:28 +02:00
parent 2cbb011fe3
commit bb5a9dd31e

View File

@@ -4599,8 +4599,9 @@ int AAFlip::resolve()
MTGCardInstance * myParent = NULL;
if(_target->target)
myParent = _target->target;
string nameOrig = _target->name;
if(_target->nameOrig == "")
_target->nameOrig = _target->name; // Saves the orignal card name before to flip the card.
_target->nameOrig = nameOrig; // Saves the orignal card name before to flip the card.
_target->name = myFlip->name;
_target->setName(myFlip->name);
if(!isflipcard)//transform card
@@ -4613,7 +4614,17 @@ int AAFlip::resolve()
_target->types = myFlip->types;
_target->text = myFlip->text;
_target->formattedText = myFlip->formattedText;
_target->basicAbilities = myFlip->model->data->basicAbilities;
if(_target->enchanted || _target->equipment > 0){ // Try to keep auras and equipment effects on basicAbilities (issue #1065).
MTGCardInstance * myOrig = NEW MTGCardInstance(MTGCollection()->getCardByName(nameOrig), _target->controller()->game);
for(unsigned int i = 0; i < _target->basicAbilities.size(); i++) {
if(myOrig->basicAbilities[i] == 1)
_target->basicAbilities[i] = 0;
if(myFlip->model->data->basicAbilities[i] == 1)
_target->basicAbilities[i] = 1;
}
SAFE_DELETE(myOrig);
} else
_target->basicAbilities = myFlip->model->data->basicAbilities;
cdaDamage = _target->damageCount;
_target->copiedID = myFlip->getMTGId();//for copier
if(_target->owner->playMode != Player::MODE_TEST_SUITE)