diff --git a/.gitattributes b/.gitattributes index 5f25f929391..32a3559271d 100644 --- a/.gitattributes +++ b/.gitattributes @@ -13798,6 +13798,7 @@ src/main/java/forge/card/ability/ai/EffectAi.java -text src/main/java/forge/card/ability/ai/EncodeAi.java -text src/main/java/forge/card/ability/ai/EndTurnAi.java -text src/main/java/forge/card/ability/ai/FightAi.java -text +src/main/java/forge/card/ability/ai/FlipACoinAi.java -text src/main/java/forge/card/ability/ai/FogAi.java -text src/main/java/forge/card/ability/ai/GameLossAi.java -text src/main/java/forge/card/ability/ai/GameWinAi.java -text diff --git a/res/cardsfolder/t/tavern_swindler.txt b/res/cardsfolder/t/tavern_swindler.txt index 4eaf94436e2..d80850991ae 100644 --- a/res/cardsfolder/t/tavern_swindler.txt +++ b/res/cardsfolder/t/tavern_swindler.txt @@ -2,7 +2,7 @@ Name:Tavern Swindler ManaCost:1 B Types:Creature Human Rogue PT:2/2 -A:AB$ FlipACoin | Cost$ T PayLife<3> | WinSubAbility$ TSGainLife | SpellDescription$ Flip a coin. If you win the flip, you gain 6 life. +A:AB$ FlipACoin | Cost$ T PayLife<3> | WinSubAbility$ TSGainLife | AILogic$ Never | SpellDescription$ Flip a coin. If you win the flip, you gain 6 life. SVar:TSGainLife:DB$ GainLife | Defined$ You | LifeAmount$ 6 SVar:Picture:http://www.wizards.com/global/images/magic/general/tavern_swindler.jpg Oracle:{T}, Pay 3 life: Flip a coin. If you win the flip, you gain 6 life. diff --git a/src/main/java/forge/card/ability/ApiType.java b/src/main/java/forge/card/ability/ApiType.java index 99b5246379d..e3f3cc0135e 100644 --- a/src/main/java/forge/card/ability/ApiType.java +++ b/src/main/java/forge/card/ability/ApiType.java @@ -53,6 +53,7 @@ import forge.card.ability.ai.EffectAi; import forge.card.ability.ai.EncodeAi; import forge.card.ability.ai.EndTurnAi; import forge.card.ability.ai.FightAi; +import forge.card.ability.ai.FlipACoinAi; import forge.card.ability.ai.FogAi; import forge.card.ability.ai.GameLossAi; import forge.card.ability.ai.GameWinAi; @@ -150,7 +151,7 @@ public enum ApiType { ExchangeLife (LifeExchangeEffect.class, LifeExchangeAi.class), ExchangeControl (ControlExchangeEffect.class, ControlExchangeAi.class), Fight (FightEffect.class, FightAi.class), - FlipACoin (FlipCoinEffect.class, AlwaysPlayAi.class), + FlipACoin (FlipCoinEffect.class, FlipACoinAi.class), Fog (FogEffect.class, FogAi.class), GainControl (ControlGainEffect.class, ControlGainAi.class), GainLife (LifeGainEffect.class, LifeGainAi.class), diff --git a/src/main/java/forge/card/ability/ai/FlipACoinAi.java b/src/main/java/forge/card/ability/ai/FlipACoinAi.java new file mode 100644 index 00000000000..aa5ab2a9981 --- /dev/null +++ b/src/main/java/forge/card/ability/ai/FlipACoinAi.java @@ -0,0 +1,33 @@ +package forge.card.ability.ai; + +import java.util.List; + +import forge.Card; +import forge.CardLists; +import forge.card.ability.SpellAbilityAi; +import forge.card.spellability.SpellAbility; +import forge.card.spellability.Target; +import forge.game.player.AIPlayer; +import forge.game.zone.ZoneType; + +public class FlipACoinAi extends SpellAbilityAi { + + /* (non-Javadoc) + * @see forge.card.abilityfactory.SpellAiLogic#canPlayAI(forge.game.player.Player, java.util.Map, forge.card.spellability.SpellAbility) + */ + @Override + protected boolean canPlayAI(AIPlayer ai, SpellAbility sa) { + + if (sa.hasParam("AILogic")) { + if (sa.getParam("AILogic").equals("Never")) { + return false; + } + } + return true; + } + + @Override + public boolean chkAIDrawback(SpellAbility sa, AIPlayer ai) { + return canPlayAI(ai, sa); + } +}