From bb5a9dd31ea4b2ed6f30073af809787d4a30db83 Mon Sep 17 00:00:00 2001 From: Vittorio Alfieri Date: Thu, 29 Jul 2021 10:06:28 +0200 Subject: [PATCH] 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). --- projects/mtg/src/AllAbilities.cpp | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/projects/mtg/src/AllAbilities.cpp b/projects/mtg/src/AllAbilities.cpp index 697c809c8..bf96d959e 100644 --- a/projects/mtg/src/AllAbilities.cpp +++ b/projects/mtg/src/AllAbilities.cpp @@ -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)