package net.demilich.metastone.game.spells;
import net.demilich.metastone.game.GameContext;
import net.demilich.metastone.game.Player;
import net.demilich.metastone.game.cards.MinionCard;
import net.demilich.metastone.game.entities.Entity;
import net.demilich.metastone.game.spells.desc.SpellDesc;
public class PutMinionOnBoardFromDeckSpell extends Spell {
@Override
protected void onCast(GameContext context, Player player, SpellDesc desc, Entity source, Entity target) {
MinionCard minionCard = (MinionCard) target;
if (minionCard == null || !player.getDeck().contains(minionCard)) {
return;
}
player.getDeck().remove(minionCard);
player.getSetAsideZone().add(minionCard);
boolean summonSuccess = context.getLogic().summon(player.getId(), minionCard.summon());
// re-add the card here if we removed it before
player.getSetAsideZone().remove(minionCard);
player.getDeck().add(minionCard);
if (summonSuccess) {
context.getLogic().removeCardFromDeck(player.getId(), minionCard);
}
}
}