diff --git a/forge-ai/src/main/java/forge/ai/SpecialCardAi.java b/forge-ai/src/main/java/forge/ai/SpecialCardAi.java index c51a7a7d4af..9324711e278 100644 --- a/forge-ai/src/main/java/forge/ai/SpecialCardAi.java +++ b/forge-ai/src/main/java/forge/ai/SpecialCardAi.java @@ -680,6 +680,7 @@ public class SpecialCardAi { // Gideon Blackblade public static class GideonBlackblade { public static boolean consider(final Player ai, final SpellAbility sa) { + sa.resetTargets(); CardCollectionView otb = CardLists.filter(ai.getCardsIn(ZoneType.Battlefield), CardPredicates.isTargetableBy(sa)); if (!otb.isEmpty()) { sa.getTargets().add(ComputerUtilCard.getBestAI(otb)); diff --git a/forge-core/src/main/java/forge/deck/DeckFormat.java b/forge-core/src/main/java/forge/deck/DeckFormat.java index d2b39e98c99..8bc9541573b 100644 --- a/forge-core/src/main/java/forge/deck/DeckFormat.java +++ b/forge-core/src/main/java/forge/deck/DeckFormat.java @@ -341,7 +341,7 @@ public enum DeckFormat { final CardPool allCards = deck.getAllCardsInASinglePool(hasCommander()); // should group all cards by name, so that different editions of same card are really counted as the same card - for (final Entry cp : Aggregates.groupSumBy(allCards, PaperCard.FN_GET_NAME)) { + for (final Entry cp : Aggregates.groupSumBy(allCards, pc -> StaticData.instance().getCommonCards().getName(pc.getName(), true))) { IPaperCard simpleCard = StaticData.instance().getCommonCards().getCard(cp.getKey()); if (simpleCard != null && simpleCard.getRules().isCustom() && !StaticData.instance().allowCustomCardsInDecksConformance()) return TextUtil.concatWithSpace("contains a Custom Card:", cp.getKey(), "\nPlease Enable Custom Cards in Forge Preferences to use this deck."); diff --git a/forge-core/src/main/java/forge/deck/generation/DeckGeneratorBase.java b/forge-core/src/main/java/forge/deck/generation/DeckGeneratorBase.java index 3b23a851054..7499ff9b879 100644 --- a/forge-core/src/main/java/forge/deck/generation/DeckGeneratorBase.java +++ b/forge-core/src/main/java/forge/deck/generation/DeckGeneratorBase.java @@ -415,7 +415,6 @@ public abstract class DeckGeneratorBase { } public List regexLandSearch(String pattern, Iterable landCards) { - //final List dLands = new ArrayList<>(); Pattern p = Pattern.compile(pattern); for (PaperCard card:landCards) { Matcher matcher = p.matcher(card.getRules().getOracleText()); @@ -437,7 +436,6 @@ public abstract class DeckGeneratorBase { public List regexFetchLandSearch(Iterable landCards) { final String fetchPattern="Search your library for an* ([^\\s]*) or ([^\\s]*) card"; - //final List dLands = new ArrayList(); Map colorLookup= new HashMap<>(); colorLookup.put("Plains","W"); colorLookup.put("Forest","G"); diff --git a/forge-game/src/main/java/forge/game/card/CardFactoryUtil.java b/forge-game/src/main/java/forge/game/card/CardFactoryUtil.java index d2b8ea81abf..0c3683c537d 100644 --- a/forge-game/src/main/java/forge/game/card/CardFactoryUtil.java +++ b/forge-game/src/main/java/forge/game/card/CardFactoryUtil.java @@ -1801,7 +1801,7 @@ public class CardFactoryUtil { for (int i = idx; i <= skipId; i++) { SpellAbility sa = AbilityFactory.getAbility(card, ab); sa.setChapter(i); - sa.setLastChapter(idx == abs.size()); + sa.setLastChapter(i == abs.size()); StringBuilder trigStr = new StringBuilder("Mode$ CounterAdded | ValidCard$ Card.Self | TriggerZones$ Battlefield"); trigStr.append("| Chapter$ ").append(i).append(" | CounterType$ LORE | CounterAmount$ EQ").append(i);