diff --git a/forge-ai/src/main/java/forge/ai/AiAttackController.java b/forge-ai/src/main/java/forge/ai/AiAttackController.java index 75b1566d68e..edc6151c6a8 100644 --- a/forge-ai/src/main/java/forge/ai/AiAttackController.java +++ b/forge-ai/src/main/java/forge/ai/AiAttackController.java @@ -1202,7 +1202,7 @@ public class AiAttackController { } // look at the attacker in relation to the blockers to establish a - // number of factors about the attacking context that will be relevant + // number of factors about the attacking context that will be relevant // to the attackers decision according to the selected strategy for (final Card defender : validBlockers) { // if both isWorthLessThanAllKillers and canKillAllDangerous are false there's nothing more to check diff --git a/forge-ai/src/main/java/forge/ai/ability/ChooseCardAi.java b/forge-ai/src/main/java/forge/ai/ability/ChooseCardAi.java index 5a53f738a26..1a862c03774 100644 --- a/forge-ai/src/main/java/forge/ai/ability/ChooseCardAi.java +++ b/forge-ai/src/main/java/forge/ai/ability/ChooseCardAi.java @@ -191,7 +191,7 @@ public class ChooseCardAi extends SpellAbilityAi { } else if (logic.equals("NeedsPrevention")) { final Game game = ai.getGame(); final Combat combat = game.getCombat(); - CardCollectionView better = CardLists.filter(options, new Predicate() { + CardCollectionView better = CardLists.filter(options, new Predicate() { @Override public boolean apply(final Card c) { if (combat == null || !combat.isAttacking(c, ai) || !combat.isUnblocked(c)) { diff --git a/forge-ai/src/main/java/forge/ai/ability/PumpAi.java b/forge-ai/src/main/java/forge/ai/ability/PumpAi.java index 3822c65bcd5..57e5cd1142f 100644 --- a/forge-ai/src/main/java/forge/ai/ability/PumpAi.java +++ b/forge-ai/src/main/java/forge/ai/ability/PumpAi.java @@ -526,16 +526,16 @@ public class PumpAi extends PumpAiBase { } list = getCurseCreatures(ai, sa, defense, attack, keywords); } else { - if (!tgt.canTgtCreature()) { - ZoneType zone = tgt.getZone().get(0); - list = new CardCollection(game.getCardsIn(zone)); - } else { - list = getPumpCreatures(ai, sa, defense, attack, keywords, immediately); - } if (sa.canTarget(ai)) { sa.getTargets().add(ai); return true; } + if (tgt.canTgtCreature()) { + list = getPumpCreatures(ai, sa, defense, attack, keywords, immediately); + } else { + ZoneType zone = tgt.getZone().get(0); + list = new CardCollection(game.getCardsIn(zone)); + } } list = CardLists.getValidCards(list, tgt.getValidTgts(), ai, source, sa); diff --git a/forge-game/src/main/java/forge/game/spellability/TargetRestrictions.java b/forge-game/src/main/java/forge/game/spellability/TargetRestrictions.java index f64ccb5fc03..70f890b7f8e 100644 --- a/forge-game/src/main/java/forge/game/spellability/TargetRestrictions.java +++ b/forge-game/src/main/java/forge/game/spellability/TargetRestrictions.java @@ -426,6 +426,7 @@ public class TargetRestrictions { */ public final boolean canTgtCreature() { for (final String s : this.validTgts) { + // TODO check IsCommander when in that variant if ((s.contains("Creature") || s.startsWith("Permanent")) && !s.contains("nonCreature")) { return true; diff --git a/forge-gui/res/cardsfolder/s/seismic_shift.txt b/forge-gui/res/cardsfolder/s/seismic_shift.txt index 5b36084efa8..32a0933fa98 100644 --- a/forge-gui/res/cardsfolder/s/seismic_shift.txt +++ b/forge-gui/res/cardsfolder/s/seismic_shift.txt @@ -1,6 +1,6 @@ Name:Seismic Shift ManaCost:3 R Types:Sorcery -A:SP$ Destroy | Cost$ 3 R | ValidTgts$ Land | TgtPrompt$ Select target artifact or land | SubAbility$ DBPump | SpellDescription$ Destroy target land. +A:SP$ Destroy | Cost$ 3 R | ValidTgts$ Land | TgtPrompt$ Select target land | SubAbility$ DBPump | SpellDescription$ Destroy target land. SVar:DBPump:DB$ Pump | ValidTgts$ Creature | KW$ HIDDEN CARDNAME can't block. | IsCurse$ True | TargetMin$ 0 | TargetMax$ 2 | TgtPrompt$ Select up to two target creatures | SpellDescription$ Up to two target creatures can't block this turn. Oracle:Destroy target land. Up to two target creatures can't block this turn.