From 00977986dfcb6134482848b2fa21c738d47fc86d Mon Sep 17 00:00:00 2001 From: Agetian Date: Thu, 4 Jul 2013 14:10:28 +0000 Subject: [PATCH] - Default max number of planar die rolls per turn for the AI is 1. The AI will prefer to roll the planar die in Main 2 unless the AIHintRollDieInMain1:True AI hint SVar is set. --- .../card/ability/ai/RollPlanarDiceAi.java | 20 ++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/src/main/java/forge/card/ability/ai/RollPlanarDiceAi.java b/src/main/java/forge/card/ability/ai/RollPlanarDiceAi.java index 1cc9ee023c3..83b2179627d 100644 --- a/src/main/java/forge/card/ability/ai/RollPlanarDiceAi.java +++ b/src/main/java/forge/card/ability/ai/RollPlanarDiceAi.java @@ -4,6 +4,7 @@ package forge.card.ability.ai; import forge.Card; import forge.card.ability.SpellAbilityAi; import forge.card.spellability.SpellAbility; +import forge.game.phase.PhaseType; import forge.game.player.Player; import forge.util.MyRandom; @@ -12,10 +13,17 @@ public class RollPlanarDiceAi extends SpellAbilityAi { * @see forge.card.abilityfactory.SpellAiLogic#canPlayAI(forge.game.player.Player, java.util.Map, forge.card.spellability.SpellAbility) */ @Override - protected boolean canPlayAI(Player aiPlayer, SpellAbility sa) { + protected boolean canPlayAI(Player ai, SpellAbility sa) { Card plane = sa.getSourceCard(); boolean decideToRoll = false; + int maxActivations = 1; + if (ai.getGame().getPhaseHandler().getPhase().isBefore(PhaseType.MAIN2) && !plane.hasSVar("AIHintRollDieInMain1")) { + return false; + } else if (plane.hasSVar("AIHintRollDieInMain1") && (plane.getSVar("AIHintRollDieInMain1").toLowerCase().equals("false"))) { + return false; + } + if (plane.hasSVar("AIHintRollDie")) { switch (plane.getSVar("AIHintRollDie")) { case "Always": @@ -37,11 +45,13 @@ public class RollPlanarDiceAi extends SpellAbilityAi { } if (plane.hasSVar("AIHintRollDieMaxPerTurn")) { - if (sa.getActivationsThisTurn() > Integer.parseInt(plane.getSVar("AIHintRollDieMaxPerTurn"))) { - decideToRoll = false; - } + maxActivations = Integer.parseInt(plane.getSVar("AIHintRollDieMaxPerTurn")); } - + System.out.println("Activations so far: " + sa.getActivationsThisTurn()); + if (sa.getActivationsThisTurn() >= maxActivations) { + decideToRoll = false; + } + return decideToRoll ? true : false; }