- 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);
This commit is contained in:
jendave
2011-08-06 05:48:36 +00:00
parent 38c00e879c
commit e2ab0b4eab

View File

@@ -3569,59 +3569,63 @@ public class GameActionUtil {
//START ENDOFTURN CARDS //START ENDOFTURN CARDS
public static void endOfTurn_Wall_Of_Reverence() public static void endOfTurn_Wall_Of_Reverence()
{ {
final String player = AllZone.Phase.getActivePlayer(); final String player = AllZone.Phase.getActivePlayer();
final PlayerZone playZone = AllZone.getZone(Constant.Zone.Play, player); final PlayerZone playZone = AllZone.getZone(Constant.Zone.Play, player);
CardList list = new CardList(playZone.getCards()); CardList list = new CardList(playZone.getCards());
list = list.getName("Wall of Reverence"); list = list.getName("Wall of Reverence");
Ability ability; Ability ability;
for (int i = 0; i < list.size(); i++) for (int i = 0; i < list.size(); i++)
{ {
final Card card = list.get(i); final Card card = list.get(i);
ability = new Ability(list.get(i), "0") ability = new Ability(list.get(i), "0")
{ {
public void resolve() public void resolve()
{ {
CardList creats = new CardList(playZone.getCards()); CardList creats = new CardList(playZone.getCards());
CardList validTargets = new CardList(); CardList validTargets = new CardList();
creats = creats.getType("Creature"); creats = creats.getType("Creature");
for (int i = 0; i < creats.size(); i++) { for (int i = 0; i < creats.size(); i++) {
if (CardFactoryUtil.canTarget(card, creats.get(i))) { if (CardFactoryUtil.canTarget(card, creats.get(i))) {
validTargets.add(creats.get(i)); validTargets.add(creats.get(i));
} }
} }
if (validTargets.size() == 0) if (validTargets.size() == 0)
return; return;
if (player.equals(Constant.Player.Human)) if (player.equals(Constant.Player.Human))
{ {
Object o = AllZone.Display.getChoiceOptional("Select creature for Wall of Reverence life gain", validTargets.toArray()); Object o = AllZone.Display.getChoiceOptional("Select creature for Wall of Reverence life gain", validTargets.toArray());
if (o != null) { if (o != null) {
Card c = (Card) o; Card c = (Card) o;
int power=c.getNetAttack(); int power=c.getNetAttack();
PlayerLife life = AllZone.GameAction.getPlayerLife(player); PlayerLife life = AllZone.GameAction.getPlayerLife(player);
life.addLife(power); life.addLife(power);
} }
} }
else//computer else//computer
{ {
CardListUtil.sortAttack(validTargets); CardListUtil.sortAttack(validTargets);
Card c = creats.get(0); Card c = validTargets.get(0);
if (c != null) { // Card c = creats.get(0);
int power = c.getNetAttack(); if (c != null) {
PlayerLife life = AllZone.GameAction.getPlayerLife(player); int power = c.getNetAttack();
life.addLife(power); PlayerLife life = AllZone.GameAction.getPlayerLife(player);
} life.addLife(power);
} }
} // resolve }
}; // ability } // resolve
ability.setStackDescription("Wall of Reverence - " }; // ability
+ player + " gains life equal to target creature's power."); StringBuffer sb = new StringBuffer();
AllZone.Stack.add(ability); 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() public static void endOfTurn_Predatory_Advantage()
{ {