diff --git a/projects/mtg/include/AllAbilities.h b/projects/mtg/include/AllAbilities.h index cadfbf833..8cd8895c4 100644 --- a/projects/mtg/include/AllAbilities.h +++ b/projects/mtg/include/AllAbilities.h @@ -3862,6 +3862,7 @@ public: spell->resolve(); myToken = spell->source; spell->source->owner = tokenReciever; + spell->source->lastController = tokenReciever; spell->source->isToken = 1; spell->source->fresh = 1; spell->source->entersBattlefield = 1; diff --git a/projects/mtg/src/CardGui.cpp b/projects/mtg/src/CardGui.cpp index 48e9fbf70..42ec3c85c 100644 --- a/projects/mtg/src/CardGui.cpp +++ b/projects/mtg/src/CardGui.cpp @@ -359,6 +359,22 @@ void CardGui::Render() //draw line if (game) { + JQuadPtr ssMask = card->getObserver()->getResourceManager()->GetQuad("white"); + + //choose attacker mask + if(card->isInPlay(game) && (card->hasSummoningSickness() || card->attackCost > 0) && !card->isPhased && card->isCreature()) + { + if(game->getCurrentGamePhase() > MTG_PHASE_FIRSTMAIN && game->getCurrentGamePhase() < MTG_PHASE_SECONDMAIN && + card->controller() == game->currentPlayer && game->currentPlayer->hasPossibleAttackers()) + { + if(card->controller()->isHuman() && ssMask) + { + ssMask->SetColor(ARGB(170,64,64,64)); + renderer->RenderQuad(ssMask.get(), actX, actY, actT, (27 * actZ + 1) / 16, 40 * actZ / 16); + } + } + } + if (card && card->isTargetted()) { if(card->isTapped()) diff --git a/projects/mtg/src/Player.cpp b/projects/mtg/src/Player.cpp index 188bfd8c6..33bb22994 100644 --- a/projects/mtg/src/Player.cpp +++ b/projects/mtg/src/Player.cpp @@ -260,9 +260,7 @@ bool Player::hasPossibleAttackers() for (int j = 0; j < nbcards; ++j) { MTGCardInstance * c = z->cards[j]; - if (!c->isTapped() && - !c->hasSummoningSickness() && - c->isCreature()) + if (c->canAttack() && c->isCreature()) return true; } return false;