added type check on aura if the card it enchant is legal

This commit is contained in:
Anthony Calosa
2015-09-24 14:14:00 +08:00
parent 64578787a0
commit a6ec3e0a68

View File

@@ -642,6 +642,19 @@ void GameObserver::gameStateBasedEffects()
{
if(card->target && !isInPlay(card->target))
players[i]->game->putInGraveyard(card);
if(card->target && isInPlay(card->target))
{
if(card->spellTargetType.find("creature") != string::npos && !card->target->hasType("creature"))
players[i]->game->putInGraveyard(card);
if(card->spellTargetType.find("artifact") != string::npos && !card->target->hasType("artifact"))
players[i]->game->putInGraveyard(card);
if(card->spellTargetType.find("enchantment") != string::npos && !card->target->hasType("enchantment"))
players[i]->game->putInGraveyard(card);
if(card->spellTargetType.find("land") != string::npos && !card->target->hasType("land"))
players[i]->game->putInGraveyard(card);
if(card->spellTargetType.find("planeswalker") != string::npos && !card->target->hasType("planeswalker"))
players[i]->game->putInGraveyard(card);
}
if(card->target && isInPlay(card->target) && (card->target)->protectedAgainst(card) && !card->has(Constants::AURAWARD))//protection from quality except aura cards like flickering ward
players[i]->game->putInGraveyard(card);
}