From e2ab0b4eab3457dec5f76c8f056ebe7c9f91d564 Mon Sep 17 00:00:00 2001 From: jendave Date: Sat, 6 Aug 2011 05:48:36 +0000 Subject: [PATCH] - Fixed the Wall of Reverence bug. It appears that the AI was targeting the first creature to come into play: CardListUtil.sortAttack(validTargets); Card c = creats.get(0); rather than the creature with the highest power: Card c = validTargets.get(0); --- src/forge/GameActionUtil.java | 106 ++++++++++++++++++---------------- 1 file changed, 55 insertions(+), 51 deletions(-) diff --git a/src/forge/GameActionUtil.java b/src/forge/GameActionUtil.java index cad33af3c41..9bc5d203f88 100644 --- a/src/forge/GameActionUtil.java +++ b/src/forge/GameActionUtil.java @@ -3569,59 +3569,63 @@ public class GameActionUtil { //START ENDOFTURN CARDS - public static void endOfTurn_Wall_Of_Reverence() - { - final String player = AllZone.Phase.getActivePlayer(); - final PlayerZone playZone = AllZone.getZone(Constant.Zone.Play, player); - CardList list = new CardList(playZone.getCards()); - list = list.getName("Wall of Reverence"); + public static void endOfTurn_Wall_Of_Reverence() + { + final String player = AllZone.Phase.getActivePlayer(); + final PlayerZone playZone = AllZone.getZone(Constant.Zone.Play, player); + CardList list = new CardList(playZone.getCards()); + list = list.getName("Wall of Reverence"); - Ability ability; - for (int i = 0; i < list.size(); i++) - { - final Card card = list.get(i); - ability = new Ability(list.get(i), "0") - { - public void resolve() - { - CardList creats = new CardList(playZone.getCards()); - CardList validTargets = new CardList(); - creats = creats.getType("Creature"); - for (int i = 0; i < creats.size(); i++) { - if (CardFactoryUtil.canTarget(card, creats.get(i))) { - validTargets.add(creats.get(i)); - } - } - if (validTargets.size() == 0) - return; + Ability ability; + for (int i = 0; i < list.size(); i++) + { + final Card card = list.get(i); + ability = new Ability(list.get(i), "0") + { + public void resolve() + { + CardList creats = new CardList(playZone.getCards()); + CardList validTargets = new CardList(); + creats = creats.getType("Creature"); + for (int i = 0; i < creats.size(); i++) { + if (CardFactoryUtil.canTarget(card, creats.get(i))) { + validTargets.add(creats.get(i)); + } + } + if (validTargets.size() == 0) + return; - if (player.equals(Constant.Player.Human)) - { - Object o = AllZone.Display.getChoiceOptional("Select creature for Wall of Reverence life gain", validTargets.toArray()); - if (o != null) { - Card c = (Card) o; - int power=c.getNetAttack(); - PlayerLife life = AllZone.GameAction.getPlayerLife(player); - life.addLife(power); - } - } - else//computer - { - CardListUtil.sortAttack(validTargets); - Card c = creats.get(0); - if (c != null) { - int power = c.getNetAttack(); - PlayerLife life = AllZone.GameAction.getPlayerLife(player); - life.addLife(power); - } - } - } // resolve - }; // ability - ability.setStackDescription("Wall of Reverence - " - + player + " gains life equal to target creature's power."); - AllZone.Stack.add(ability); - } - } + if (player.equals(Constant.Player.Human)) + { + Object o = AllZone.Display.getChoiceOptional("Select creature for Wall of Reverence life gain", validTargets.toArray()); + if (o != null) { + Card c = (Card) o; + int power=c.getNetAttack(); + PlayerLife life = AllZone.GameAction.getPlayerLife(player); + life.addLife(power); + } + } + else//computer + { + CardListUtil.sortAttack(validTargets); + Card c = validTargets.get(0); + // Card c = creats.get(0); + if (c != null) { + int power = c.getNetAttack(); + PlayerLife life = AllZone.GameAction.getPlayerLife(player); + life.addLife(power); + } + } + } // resolve + }; // ability + StringBuffer sb = new StringBuffer(); + sb.append("Wall of Reverence - ").append(player).append(" gains life equal to target creature's power."); + ability.setStackDescription(sb.toString()); + // ability.setStackDescription("Wall of Reverence - " + // + player + " gains life equal to target creature's power."); + AllZone.Stack.add(ability); + } + }//endOfTurn_Wall_Of_Reverence() public static void endOfTurn_Predatory_Advantage() {