diff --git a/forge-ai/src/main/java/forge/ai/ability/CountersPutAi.java b/forge-ai/src/main/java/forge/ai/ability/CountersPutAi.java index cfc66522a27..5a195371003 100644 --- a/forge-ai/src/main/java/forge/ai/ability/CountersPutAi.java +++ b/forge-ai/src/main/java/forge/ai/ability/CountersPutAi.java @@ -994,7 +994,7 @@ public class CountersPutAi extends CountersAi { types.add((CounterType)params.get("CounterType")); } else { for (String s : sa.getParam("CounterType").split(",")) { - CounterType.getType(s); + types.add(CounterType.getType(s)); } } diff --git a/forge-core/src/main/java/forge/StaticData.java b/forge-core/src/main/java/forge/StaticData.java index 82d9929a20b..329f363e863 100644 --- a/forge-core/src/main/java/forge/StaticData.java +++ b/forge-core/src/main/java/forge/StaticData.java @@ -225,7 +225,7 @@ public class StaticData { return foil ? card.getFoiled() : card; } - public void attemptToLoadCard(String cardName){ + public void attemptToLoadCard(String cardName) { this.attemptToLoadCard(cardName, null); } public void attemptToLoadCard(String cardName, String setCode) { diff --git a/forge-game/src/main/java/forge/game/ability/effects/TwoPilesEffect.java b/forge-game/src/main/java/forge/game/ability/effects/TwoPilesEffect.java index 16134794bd2..085498ca580 100644 --- a/forge-game/src/main/java/forge/game/ability/effects/TwoPilesEffect.java +++ b/forge-game/src/main/java/forge/game/ability/effects/TwoPilesEffect.java @@ -183,7 +183,8 @@ public class TwoPilesEffect extends SpellAbilityEffect { card.addRemembered(tempRemembered); } } - if (!sa.hasParam("KeepRemembered")) { + + if (!sa.hasParam("KeepRemembered") && !sa.hasParam("RememberChosen")) { // prior to addition of "DefinedPiles" param, TwoPilesEffect cleared remembered objects in the // Chosen/Unchosen subability resolutions, so this preserves that card.clearRemembered(); diff --git a/forge-game/src/main/java/forge/game/card/CardProperty.java b/forge-game/src/main/java/forge/game/card/CardProperty.java index 398f463325a..98f6ae8c7ab 100644 --- a/forge-game/src/main/java/forge/game/card/CardProperty.java +++ b/forge-game/src/main/java/forge/game/card/CardProperty.java @@ -496,7 +496,7 @@ public class CardProperty { } else if (property.startsWith("CanEnchant")) { final String restriction = property.substring(10); if (restriction.equals("EquippedBy")) { - if (!source.getEquipping().canBeAttached(card, null)) return false; + if (!source.isEquipping() || !source.getEquipping().canBeAttached(card, null)) return false; } if (restriction.equals("Remembered")) { for (final Object rem : source.getRemembered()) { diff --git a/forge-game/src/main/java/forge/game/staticability/StaticAbilityCanAttackDefender.java b/forge-game/src/main/java/forge/game/staticability/StaticAbilityCanAttackDefender.java index 6c9ee7cc6e1..d0f354e959e 100644 --- a/forge-game/src/main/java/forge/game/staticability/StaticAbilityCanAttackDefender.java +++ b/forge-game/src/main/java/forge/game/staticability/StaticAbilityCanAttackDefender.java @@ -46,7 +46,6 @@ public class StaticAbilityCanAttackDefender { } public static boolean applyCanAttackAbility(final StaticAbility stAb, final Card card, final GameEntity target) { - if (!stAb.matchesValidParam("ValidCard", card)) { return false; } diff --git a/forge-game/src/main/java/forge/game/trigger/TriggerSacrificed.java b/forge-game/src/main/java/forge/game/trigger/TriggerSacrificed.java index f369423a993..051121fbcb4 100644 --- a/forge-game/src/main/java/forge/game/trigger/TriggerSacrificed.java +++ b/forge-game/src/main/java/forge/game/trigger/TriggerSacrificed.java @@ -91,7 +91,7 @@ public class TriggerSacrificed extends Trigger { for (IndividualCostPaymentInstance individual : stack) { sa = individual.getPayment().getAbility(); - if (sa == null || sa.getHostCard() == null) + if (sa == null || sa.getHostCard() == null) continue; if (sa.isSpell() && sa.getHostCard().hasStartOfUnHiddenKeyword(keyword)) { diff --git a/forge-gui/res/cardsfolder/p/phyrexian_portal.txt b/forge-gui/res/cardsfolder/p/phyrexian_portal.txt index 2e286064731..a72b9844ea8 100644 --- a/forge-gui/res/cardsfolder/p/phyrexian_portal.txt +++ b/forge-gui/res/cardsfolder/p/phyrexian_portal.txt @@ -5,7 +5,6 @@ A:AB$ Dig | Cost$ 3 | ValidTgts$ Opponent | DigNum$ 10 | RememberRevealed$ True SVar:DBTwoPiles:DB$ TwoPiles | Defined$ You | DefinedCards$ Remembered | Separator$ Targeted | FaceDown$ True | ConditionCheckSVar$ X | ConditionSVarCompare$ GE10 | ChosenPile$ DBHand | UnchosenPile$ DBExile SVar:DBHand:DB$ ChangeZone | Defined$ Remembered | Origin$ Library | Destination$ Hand | ChangeType$ Card | ChangeNum$ 1 | ChooseFromDefined$ True | Mandatory$ True | Shuffle$ True SVar:DBExile:DB$ ChangeZone | Defined$ Remembered | Origin$ Library | Destination$ Exile -# This variable may be incorrect if the controller changes while the ability is on the stack SVar:X:Count$InYourLibrary AI:RemoveDeck:All Oracle:{3}: If your library has ten or more cards in it, target opponent looks at the top ten cards of your library and separates them into two face-down piles. Exile one of those piles. Search the other pile for a card, put it into your hand, then shuffle the rest of that pile into your library.