From 8b9dfdf96de9e895c402a781f14d68514b50f002 Mon Sep 17 00:00:00 2001 From: Anthony Calosa Date: Sun, 5 Feb 2017 08:07:12 +0800 Subject: [PATCH] bug fix --- projects/mtg/src/MTGCardInstance.cpp | 7 ++++++- projects/mtg/src/MTGRules.cpp | 12 ++++++------ 2 files changed, 12 insertions(+), 7 deletions(-) diff --git a/projects/mtg/src/MTGCardInstance.cpp b/projects/mtg/src/MTGCardInstance.cpp index 7e4b5cb60..758543db9 100644 --- a/projects/mtg/src/MTGCardInstance.cpp +++ b/projects/mtg/src/MTGCardInstance.cpp @@ -114,7 +114,12 @@ void MTGCardInstance::copy(MTGCardInstance * card) source = card; CardPrimitive * data = source->data; - basicAbilities = data->basicAbilities; + //basicAbilities = data->basicAbilities; + for(unsigned int j = 0; j < data->basicAbilities.size(); j++) + { + if(data->basicAbilities[j]) + basicAbilities[j] = data->basicAbilities[j]; + } types.clear();//reset types.. fix copying man lands... the copier becomes an unanimated land... for (size_t i = 0; i < data->types.size(); i++) { diff --git a/projects/mtg/src/MTGRules.cpp b/projects/mtg/src/MTGRules.cpp index 45e005961..4b828d2cd 100644 --- a/projects/mtg/src/MTGRules.cpp +++ b/projects/mtg/src/MTGRules.cpp @@ -2230,25 +2230,25 @@ int MTGBlockRule::receiveEvent(WEvent *e) //but this action can not be ignored. } } - + } + if (dynamic_cast(e)) + { //if a card with menace is not blocked by 2 or more, remove any known blockers and attacking as normal. MTGGameZone * z = p->game->inPlay; for (int i = 0; i < z->nb_cards; i++) { MTGCardInstance * card = z->cards[i]; - if (card->has(Constants::MENACE) && card->blockers.size() < 2) + if (card->isAttacker() && card->has(Constants::MENACE) && card->blockers.size() < 2) { while (card->blockers.size()) { MTGCardInstance * blockingCard = card->blockers.front(); - blockingCard->toggleDefenser(NULL); - + if(blockingCard->getNextOpponent() == card) + blockingCard->toggleDefenser(NULL); } } } - } - return 1; }