From 346c4db3d9739fb21700c6ddf2f85d6a66f0d37d Mon Sep 17 00:00:00 2001 From: Agetian Date: Fri, 1 Sep 2017 07:56:42 +0000 Subject: [PATCH] - Whispers of the Muse, Treasure Trove: added AILogic$ AlwaysAtOppEOT as it's a more optimal default timing for this effect. --- .../src/main/java/forge/ai/ability/CountersPutAi.java | 2 +- forge-ai/src/main/java/forge/ai/ability/DrawAi.java | 10 +++++++--- forge-gui/res/cardsfolder/t/treasure_trove.txt | 2 +- forge-gui/res/cardsfolder/w/whispers_of_the_muse.txt | 2 +- 4 files changed, 10 insertions(+), 6 deletions(-) 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 7f23316da9e..ada31594e6a 100644 --- a/forge-ai/src/main/java/forge/ai/ability/CountersPutAi.java +++ b/forge-ai/src/main/java/forge/ai/ability/CountersPutAi.java @@ -356,7 +356,7 @@ public class CountersPutAi extends SpellAbilityAi { PhaseHandler ph = ai.getGame().getPhaseHandler(); if ("AlwaysAtOppEOT".equals(sa.getParam("AILogic"))) { - if (ph.is(PhaseType.END_OF_TURN) && !ph.isPlayerTurn(ai)) { + if (ph.is(PhaseType.END_OF_TURN) && ph.getNextTurn().equals(ai)) { return true; } } diff --git a/forge-ai/src/main/java/forge/ai/ability/DrawAi.java b/forge-ai/src/main/java/forge/ai/ability/DrawAi.java index ece2a643a1b..9ffe3e22f16 100644 --- a/forge-ai/src/main/java/forge/ai/ability/DrawAi.java +++ b/forge-ai/src/main/java/forge/ai/ability/DrawAi.java @@ -126,10 +126,14 @@ public class DrawAi extends SpellAbilityAi { */ @Override protected boolean checkPhaseRestrictions(Player ai, SpellAbility sa, PhaseHandler ph) { - // LifeLessThan logic presupposes activation as soon as possible in an - // attempt to save the AI from dying - if (sa.hasParam("AILogic") && sa.getParam("AILogic").startsWith("LifeLessThan.")) { + String logic = sa.getParamOrDefault("AILogic", ""); + + if (logic.startsWith("LifeLessThan.")) { + // LifeLessThan logic presupposes activation as soon as possible in an + // attempt to save the AI from dying return true; + } else if (logic.equals("AtEndOfOppTurn")) { + return ph.is(PhaseType.END_OF_TURN) && ph.getNextTurn().equals(ai); } // Don't use draw abilities before main 2 if possible diff --git a/forge-gui/res/cardsfolder/t/treasure_trove.txt b/forge-gui/res/cardsfolder/t/treasure_trove.txt index 5564ec1744f..eac8811f665 100644 --- a/forge-gui/res/cardsfolder/t/treasure_trove.txt +++ b/forge-gui/res/cardsfolder/t/treasure_trove.txt @@ -1,6 +1,6 @@ Name:Treasure Trove ManaCost:2 U U Types:Enchantment -A:AB$ Draw | Cost$ 2 U U | NumCards$ 1 | SpellDescription$ Draw a card. +A:AB$ Draw | Cost$ 2 U U | NumCards$ 1 | AILogic$ AlwaysAtOppEOT | SpellDescription$ Draw a card. SVar:Picture:http://www.wizards.com/global/images/magic/general/treasure_trove.jpg Oracle:{2}{U}{U}: Draw a card. diff --git a/forge-gui/res/cardsfolder/w/whispers_of_the_muse.txt b/forge-gui/res/cardsfolder/w/whispers_of_the_muse.txt index 4847a9654f3..5028f9dac6b 100644 --- a/forge-gui/res/cardsfolder/w/whispers_of_the_muse.txt +++ b/forge-gui/res/cardsfolder/w/whispers_of_the_muse.txt @@ -1,7 +1,7 @@ Name:Whispers of the Muse ManaCost:U Types:Instant -A:SP$ Draw | Cost$ U | NumCards$ 1 | SpellDescription$ Draw a card. +A:SP$ Draw | Cost$ U | NumCards$ 1 | AILogic$ AlwaysAtOppEOT | SpellDescription$ Draw a card. K:Buyback 5 SVar:Picture:http://www.wizards.com/global/images/magic/general/whispers_of_the_muse.jpg Oracle:Buyback {5} (You may pay an additional {5} as you cast this spell. If you do, put this card into your hand as it resolves.)\nDraw a card.