diff --git a/forge-ai/src/main/java/forge/ai/SpellAbilityAi.java b/forge-ai/src/main/java/forge/ai/SpellAbilityAi.java index 5db94a34..8a0958ad 100644 --- a/forge-ai/src/main/java/forge/ai/SpellAbilityAi.java +++ b/forge-ai/src/main/java/forge/ai/SpellAbilityAi.java @@ -1,12 +1,7 @@ package forge.ai; -import java.util.Collection; -import java.util.List; -import java.util.Map; - import com.google.common.collect.Iterables; import com.google.common.collect.Lists; - import forge.card.ICardFace; import forge.card.mana.ManaCost; import forge.card.mana.ManaCostParser; @@ -25,6 +20,10 @@ import forge.game.spellability.SpellAbility; import forge.game.spellability.SpellAbilityCondition; import forge.util.MyRandom; +import java.util.Collection; +import java.util.List; +import java.util.Map; + /** * Base class for API-specific AI logic *
@@ -103,6 +102,12 @@ public abstract class SpellAbilityAi { * Checks if the AI will play a SpellAbility with the specified AiLogic */ protected boolean checkAiLogic(final Player ai, final SpellAbility sa, final String aiLogic) { + if (aiLogic.equals("CheckCondition")) { + SpellAbility saCopy = sa.copy(); + saCopy.setActivatingPlayer(ai); + return saCopy.getConditions().areMet(saCopy); + } + return !("Never".equals(aiLogic)); } diff --git a/forge-ai/src/main/java/forge/ai/ability/ChangeZoneAi.java b/forge-ai/src/main/java/forge/ai/ability/ChangeZoneAi.java index 0bd6868b..d170da87 100644 --- a/forge-ai/src/main/java/forge/ai/ability/ChangeZoneAi.java +++ b/forge-ai/src/main/java/forge/ai/ability/ChangeZoneAi.java @@ -70,8 +70,6 @@ public class ChangeZoneAi extends SpellAbilityAi { return false; } } - } else if (aiLogic.equals("RaidOnly")) { - return ai.getAttackedWithCreatureThisTurn(); } return super.checkAiLogic(ai, sa, aiLogic); diff --git a/forge-ai/src/main/java/forge/ai/ability/SetStateAi.java b/forge-ai/src/main/java/forge/ai/ability/SetStateAi.java index 5727ad00..ac16452e 100644 --- a/forge-ai/src/main/java/forge/ai/ability/SetStateAi.java +++ b/forge-ai/src/main/java/forge/ai/ability/SetStateAi.java @@ -67,12 +67,6 @@ public class SetStateAi extends SpellAbilityAi { protected boolean checkAiLogic(final Player aiPlayer, final SpellAbility sa, final String aiLogic) { final Card source = sa.getHostCard(); - if (aiLogic.equals("CheckCondition")) { - SpellAbility saCopy = sa.copy(); - saCopy.setActivatingPlayer(aiPlayer); - return saCopy.getConditions().areMet(saCopy); - } - return super.checkAiLogic(aiPlayer, sa, aiLogic); } diff --git a/forge-gui/res/cardsfolder/r/repeating_barrage.txt b/forge-gui/res/cardsfolder/r/repeating_barrage.txt index 7002d873..1484e4fc 100644 --- a/forge-gui/res/cardsfolder/r/repeating_barrage.txt +++ b/forge-gui/res/cardsfolder/r/repeating_barrage.txt @@ -2,7 +2,7 @@ Name:Repeating Barrage ManaCost:1 R R Types:Sorcery A:SP$ DealDamage | Cost$ 1 R R | ValidTgts$ Creature,Player | TgtPrompt$ Select target creature or player | NumDmg$ 3 | SpellDescription$ CARDNAME deals 3 damage to target creature or player. -A:AB$ ChangeZone | Cost$ 3 R R | PrecostDesc$ Raid — | Origin$ Graveyard | Destination$ Hand | ActivationZone$ Graveyard | CheckSVar$ RaidTest | References$ RaidTest | AILogic$ RaidOnly | SpellDescription$ Return CARDNAME from your graveyard to your hand. Activate this ability only if you attacked with a creature this turn. +A:AB$ ChangeZone | Cost$ 3 R R | PrecostDesc$ Raid — | Origin$ Graveyard | Destination$ Hand | ActivationZone$ Graveyard | CheckSVar$ RaidTest | References$ RaidTest | AILogic$ CheckCondition | SpellDescription$ Return CARDNAME from your graveyard to your hand. Activate this ability only if you attacked with a creature this turn. SVar:RaidTest:Count$AttackersDeclared SVar:Picture:http://www.wizards.com/global/images/magic/general/repeating_barrage.jpg Oracle:Repeating Barrage deals 3 damage to target creature or player.\nRaid — {3}{R}{R}: Return Repeating Barrage from your graveyard to your hand. Activate this ability only if you attacked with a creature this turn.