diff --git a/forge-ai/src/main/java/forge/ai/ability/ManifestAi.java b/forge-ai/src/main/java/forge/ai/ability/ManifestAi.java index d25fcba5e39..b5ddeb6f262 100644 --- a/forge-ai/src/main/java/forge/ai/ability/ManifestAi.java +++ b/forge-ai/src/main/java/forge/ai/ability/ManifestAi.java @@ -106,7 +106,7 @@ public class ManifestAi extends SpellAbilityAi { return false; } - if (card.mayPlayerLook(ai)) { + if (card.getView().canBeShownTo(ai.getView())) { // try to avoid manifest a non Permanent if (!card.isPermanent()) return false; @@ -115,7 +115,7 @@ public class ManifestAi extends SpellAbilityAi { if (card.getManaCost().countX() > 0) return false; - // try to avoid manifesting a creature with zero or less thoughness + // try to avoid manifesting a creature with zero or less toughness if (card.isCreature() && card.getNetToughness() <= 0) return false; @@ -177,21 +177,21 @@ public class ManifestAi extends SpellAbilityAi { return MyRandom.getRandom().nextFloat() < .8; } - protected Card chooseSingleCard(final Player ai, final SpellAbility sa, Iterable options, boolean isOptional, Player targetedPlayer) { - if (Iterables.size(options) <= 1) { - return Iterables.getFirst(options, null); - } - CardCollection filtered = CardLists.filter(options, new Predicate() { - @Override - public boolean apply(Card input) { - return !shouldManyfest(input, ai, sa); + @Override + protected Card chooseSingleCard(final Player ai, final SpellAbility sa, Iterable options, boolean isOptional, Player targetedPlayer, Map params) { + if (Iterables.size(options) > 1 || isOptional) { + CardCollection filtered = CardLists.filter(options, new Predicate() { + @Override + public boolean apply(Card input) { + return shouldManyfest(input, ai, sa); + } + }); + if (!filtered.isEmpty()) { + return ComputerUtilCard.getBestAI(filtered); + } + if (isOptional) { + return null; } - }); - if (!filtered.isEmpty()) { - return ComputerUtilCard.getBestAI(filtered); - } - if (isOptional) { - return null; } return Iterables.getFirst(options, null); } diff --git a/forge-game/src/main/java/forge/game/card/Card.java b/forge-game/src/main/java/forge/game/card/Card.java index c0d48f1a067..15a5668717d 100644 --- a/forge-game/src/main/java/forge/game/card/Card.java +++ b/forge-game/src/main/java/forge/game/card/Card.java @@ -1069,7 +1069,6 @@ public class Card extends GameEntity implements Comparable, IHasSVars { public final Card getEncodingCard() { return encoding; } - public final void setEncodingCard(final Card e) { encoding = e; } diff --git a/forge-game/src/main/java/forge/game/card/CardView.java b/forge-game/src/main/java/forge/game/card/CardView.java index 9dd21fd33ca..fd05135334f 100644 --- a/forge-game/src/main/java/forge/game/card/CardView.java +++ b/forge-game/src/main/java/forge/game/card/CardView.java @@ -486,7 +486,7 @@ public class CardView extends GameEntityView { }); } - private boolean canBeShownTo(final PlayerView viewer) { + public boolean canBeShownTo(final PlayerView viewer) { if (viewer == null) { return false; } ZoneType zone = getZone();