diff --git a/projects/mtg/src/GameObserver.cpp b/projects/mtg/src/GameObserver.cpp index 89e7fa059..c70d5e3fa 100644 --- a/projects/mtg/src/GameObserver.cpp +++ b/projects/mtg/src/GameObserver.cpp @@ -416,7 +416,7 @@ void GameObserver::gameStateBasedEffects() /////////////////////////////////////////////////////////// //life checks/poison checks also checks cant win or lose.// /////////////////////////////////////////////////////////// - if (players[i]->life <= 0) + if (players[i]->life <= 0 || players[i]->poisonCount >= 10) { int cantlosers = 0; MTGGameZone * z = players[i]->game->inPlay; @@ -443,10 +443,6 @@ void GameObserver::gameStateBasedEffects() { gameOver = players[i]; } - if (players[i]->poisonCount >= 10) - { - gameOver = players[i]; - } } } ////////////////////////////////////////////////////// diff --git a/projects/mtg/src/MTGAbility.cpp b/projects/mtg/src/MTGAbility.cpp index 7fd854cb3..1edee3812 100644 --- a/projects/mtg/src/MTGAbility.cpp +++ b/projects/mtg/src/MTGAbility.cpp @@ -1973,6 +1973,8 @@ int AbilityFactory::abilityEfficiency(MTGAbility * a, Player * p, int mode, Targ return BAKA_EFFECT_GOOD; if (AALifer * abi = dynamic_cast(a)) return abi->life > 0 ? BAKA_EFFECT_GOOD : BAKA_EFFECT_BAD; + if (AAAlterPoison * abi = dynamic_cast(a)) + return abi->poison < 0 ? BAKA_EFFECT_GOOD : BAKA_EFFECT_BAD; if (dynamic_cast (a)) return BAKA_EFFECT_BAD; if (dynamic_cast (a))