diff --git a/projects/mtg/src/AIPlayerBaka.cpp b/projects/mtg/src/AIPlayerBaka.cpp index e0f7ac50d..a5084d42c 100644 --- a/projects/mtg/src/AIPlayerBaka.cpp +++ b/projects/mtg/src/AIPlayerBaka.cpp @@ -595,6 +595,9 @@ int OrderedAIAction::getEfficiency() efficiency = 0; } } + if(p->game->battlefield->countByType("token") >= 50) + efficiency = 0; + } //At this point the "basic" efficiency is computed, we further tweak it depending on general decisions, independent of theAbility type @@ -1887,7 +1890,20 @@ MTGCardInstance * AIPlayerBaka::activateCombo() if(comboCards.size()) { nextCardToPlay = comboCards.back(); + DebugTrace("ai is doing a combo:" << nextCardToPlay->getName()); + DebugTrace("ai is doing a combo:" << nextCardToPlay->getName()); + DebugTrace("ai is doing a combo:" << nextCardToPlay->getName()); + DebugTrace("ai is doing a combo:" << nextCardToPlay->getName()); + DebugTrace("ai is doing a combo:" << nextCardToPlay->getName()); + DebugTrace("ai is doing a combo:" << nextCardToPlay->getName()); + DebugTrace("ai is doing a combo:" << nextCardToPlay->getName()); + DebugTrace("ai is doing a combo:" << nextCardToPlay->getName()); + DebugTrace("ai is doing a combo:" << nextCardToPlay->getName()); + DebugTrace("ai is doing a combo:" << nextCardToPlay->getName()); + DebugTrace("ai is doing a combo:" << nextCardToPlay->getName()); + DebugTrace("ai is doing a combo:" << nextCardToPlay->getName()); + if (game->playRestrictions->canPutIntoZone(nextCardToPlay, game->stack) == PlayRestriction::CANT_PLAY) return NULL; comboCards.pop_back(); diff --git a/projects/mtg/src/GameObserver.cpp b/projects/mtg/src/GameObserver.cpp index 331e0e6df..a8dda8d7b 100644 --- a/projects/mtg/src/GameObserver.cpp +++ b/projects/mtg/src/GameObserver.cpp @@ -869,7 +869,7 @@ void GameObserver::gameStateBasedEffects() //Auto skip Phases int skipLevel = (currentPlayer->playMode == Player::MODE_TEST_SUITE || mLoading) ? Constants::ASKIP_NONE : options[Options::ASPHASES].number; - int nrCreatures = currentPlayer->game->inPlay->countByType("Creature"); + int nrCreatures = currentPlayer->game->inPlay->hasType("creature")?1:0; if (skipLevel == Constants::ASKIP_SAFE || skipLevel == Constants::ASKIP_FULL) { diff --git a/projects/mtg/src/MTGGameZones.cpp b/projects/mtg/src/MTGGameZones.cpp index 31cd9c4bb..c9cd414b7 100644 --- a/projects/mtg/src/MTGGameZones.cpp +++ b/projects/mtg/src/MTGGameZones.cpp @@ -519,6 +519,8 @@ unsigned int MTGGameZone::countByType(const char * value) { result++; } + else if(value == "token" && cards[i]->isToken) + result++; } return result; }