diff --git a/src/main/java/forge/card/abilityfactory/AbilityFactoryChangeZone.java b/src/main/java/forge/card/abilityfactory/AbilityFactoryChangeZone.java index d57c265b360..323abad6124 100644 --- a/src/main/java/forge/card/abilityfactory/AbilityFactoryChangeZone.java +++ b/src/main/java/forge/card/abilityfactory/AbilityFactoryChangeZone.java @@ -1139,21 +1139,20 @@ public final class AbilityFactoryChangeZone { return true; } }); - if (type.contains("Basic")) { + if (ZoneType.Exile.equals(destination) || origin.contains(ZoneType.Battlefield)) { + // Exiling or bouncing stuff + if (destZone.getPlayer().isHuman()) { + c = CardFactoryUtil.getBestAI(fetchList); + } else { + c = CardFactoryUtil.getWorstAI(fetchList); + } + } else if (origin.contains(ZoneType.Library) + && (type.contains("Basic") || AbilityFactoryChangeZone.areAllBasics(type))) { c = AbilityFactoryChangeZone.basicManaFixing(fetchList); - } else if (AbilityFactoryChangeZone.areAllBasics(type)) { - c = AbilityFactoryChangeZone.basicManaFixing(fetchList, type); - } else if (fetchList.getNotType("Creature").size() == 0) { + } else if (ZoneType.Battlefield.equals(destination) && fetchList.getNotType("Creature").size() == 0) { c = AbilityFactoryChangeZone.chooseCreature(fetchList); } else if (ZoneType.Battlefield.equals(destination) || ZoneType.Graveyard.equals(destination)) { - c = CardFactoryUtil.getMostExpensivePermanentAI(fetchList, sa, false); - } else if (ZoneType.Exile.equals(destination)) { - // Exiling your own stuff, if Exiling opponents stuff choose best - if (destZone.getPlayer().isHuman()) { - c = CardFactoryUtil.getMostExpensivePermanentAI(fetchList, sa, false); - } else { - c = CardFactoryUtil.getCheapestPermanentAI(fetchList, sa, false); - } + c = CardFactoryUtil.getBestAI(fetchList); } else { // Don't fetch another tutor with the same name if (origin.contains(ZoneType.Library) && !fetchList.getNotName(card.getName()).isEmpty()) { diff --git a/src/main/java/forge/card/cardfactory/CardFactoryUtil.java b/src/main/java/forge/card/cardfactory/CardFactoryUtil.java index 1d112ad2bfa..c2ae59fbf62 100644 --- a/src/main/java/forge/card/cardfactory/CardFactoryUtil.java +++ b/src/main/java/forge/card/cardfactory/CardFactoryUtil.java @@ -717,7 +717,7 @@ public class CardFactoryUtil { * @return a {@link forge.Card} object. */ public static Card getWorstAI(final CardList list) { - return CardFactoryUtil.getWorstPermanentAI(list, false, false, false, true); + return CardFactoryUtil.getWorstPermanentAI(list, false, false, false, false); } // returns null if list.size() == 0 @@ -770,6 +770,7 @@ public class CardFactoryUtil { if (list.size() == 0) { return null; } + System.out.println("getWorstPermanentAI: " + list); if (biasEnch && (list.getType("Enchantment").size() > 0)) { return CardFactoryUtil.getCheapestPermanentAI(list.getType("Enchantment"), null, false);