package magic.model.condition;
import magic.model.MagicManaCost;
import magic.model.MagicPlayer;
import magic.model.MagicSource;
import magic.model.choice.MagicBuilderManaCost;
import magic.model.choice.MagicPayManaCostResultBuilder;
// X must be at least 1.
public class MagicManaCostCondition extends MagicCondition {
private final MagicManaCost cost;
public MagicManaCostCondition(final MagicManaCost cost) {
this.cost=cost;
}
@Override
public boolean accept(final MagicSource source) {
final MagicPlayer player=source.getController();
final MagicBuilderManaCost builderCost;
if (player.getBuilderCost().isEmpty()) {
builderCost=cost.getBuilderCost();
} else {
builderCost=new MagicBuilderManaCost(player.getBuilderCost());
cost.addTo(builderCost);
}
return new MagicPayManaCostResultBuilder(source.getGame(),player,builderCost).hasResults();
}
}