From 4dc0c33819c26b96aad8a8250b00075246af9b1f Mon Sep 17 00:00:00 2001 From: BetaSteward Date: Fri, 17 Jun 2011 23:41:32 -0400 Subject: [PATCH] fixed issue 142 - damage assignment order now works with tokens --- .../java/mage/player/ai/ComputerPlayer.java | 4 ++-- .../src/mage/player/human/HumanPlayer.java | 8 ++++---- Mage.Server/plugins/mage-player-ai.jar | Bin 43464 -> 43466 bytes Mage.Server/plugins/mage-player-human.jar | Bin 12220 -> 12216 bytes .../java/mage/server/game/GameController.java | 12 +++++++++-- Mage/src/mage/game/Game.java | 1 + Mage/src/mage/game/GameImpl.java | 8 ++++---- Mage/src/mage/game/combat/CombatGroup.java | 6 +++--- .../mage/game/events/PlayerQueryEvent.java | 19 ++++++++++++++++++ .../game/events/PlayerQueryEventSource.java | 5 +++++ Mage/src/mage/players/Player.java | 2 +- 11 files changed, 49 insertions(+), 16 deletions(-) diff --git a/Mage.Server.Plugins/Mage.Player.AI/src/main/java/mage/player/ai/ComputerPlayer.java b/Mage.Server.Plugins/Mage.Player.AI/src/main/java/mage/player/ai/ComputerPlayer.java index 50374941eaa..9ecd38a37e7 100644 --- a/Mage.Server.Plugins/Mage.Player.AI/src/main/java/mage/player/ai/ComputerPlayer.java +++ b/Mage.Server.Plugins/Mage.Player.AI/src/main/java/mage/player/ai/ComputerPlayer.java @@ -881,9 +881,9 @@ public class ComputerPlayer> extends PlayerImpl i } @Override - public UUID chooseBlockerOrder(Cards blockers, Game game) { + public UUID chooseBlockerOrder(List blockers, Game game) { //TODO: improve this - return blockers.iterator().next(); + return blockers.iterator().next().getId(); } @Override diff --git a/Mage.Server.Plugins/Mage.Player.Human/src/mage/player/human/HumanPlayer.java b/Mage.Server.Plugins/Mage.Player.Human/src/mage/player/human/HumanPlayer.java index ef7d60621ca..2c2d1efc6eb 100644 --- a/Mage.Server.Plugins/Mage.Player.Human/src/mage/player/human/HumanPlayer.java +++ b/Mage.Server.Plugins/Mage.Player.Human/src/mage/player/human/HumanPlayer.java @@ -459,14 +459,14 @@ public class HumanPlayer extends PlayerImpl { } @Override - public UUID chooseBlockerOrder(Cards blockers, Game game) { + public UUID chooseBlockerOrder(List blockers, Game game) { while (!abort) { game.fireSelectTargetEvent(playerId, "Pick blocker", blockers, true); waitForResponse(); if (response.getUUID() != null) { - for (Card card: blockers.getCards(game)) { - if (card.getId().equals(response.getUUID())) - return card.getId(); + for (Permanent perm: blockers) { + if (perm.getId().equals(response.getUUID())) + return perm.getId(); } } } diff --git a/Mage.Server/plugins/mage-player-ai.jar b/Mage.Server/plugins/mage-player-ai.jar index 1a451360d7fdadd9c48d6cb15c88cae2f283e825..fb9826add21ebc21c7a67c2dd6d1edbf51e8e760 100644 GIT binary patch delta 19953 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

~Ay804-O7 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 diff --git a/Mage.Server/plugins/mage-player-human.jar b/Mage.Server/plugins/mage-player-human.jar index 9dd67a86378ea280664c05a008452b76b9b34f62..f4adf9b3704885377e394111b98542849215ce63 100644 GIT binary patch delta 9158 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 unEofggnD~R1=q0Yz-<0aV*&HB targets, boolean required, Map options) throws MageException { + private synchronized void target(UUID playerId, String question, Cards cards, List perms, Set targets, boolean required, Map options) throws MageException { if (gameSessions.containsKey(playerId)) { if (cards != null) gameSessions.get(playerId).target(question, new CardsView(cards.getCards(game)), targets, required, getGameView(playerId), options); + else if (perms != null) { + CardsView permsView = new CardsView(); + for (Permanent perm: perms) { + permsView.put(perm.getId(), new PermanentView(perm, game.getCard(perm.getId()))); + } + gameSessions.get(playerId).target(question, permsView, targets, required, getGameView(playerId), options); + } else gameSessions.get(playerId).target(question, new CardsView(), targets, required, getGameView(playerId), options); } diff --git a/Mage/src/mage/game/Game.java b/Mage/src/mage/game/Game.java index ed35457bc4d..01be8de434f 100644 --- a/Mage/src/mage/game/Game.java +++ b/Mage/src/mage/game/Game.java @@ -121,6 +121,7 @@ public interface Game extends MageItem, Serializable { public void fireSelectTargetEvent(UUID playerId, String message, Set targets, boolean required, Map options); public void fireSelectTargetEvent(UUID playerId, String message, Cards cards, boolean required); public void fireSelectTargetEvent(UUID playerId, String message, TriggeredAbilities abilities, boolean required); + public void fireSelectTargetEvent(UUID playerId, String message, List perms, boolean required); public void fireSelectEvent(UUID playerId, String message); public void fireLookAtCardsEvent(UUID playerId, String message, Cards cards); public void firePriorityEvent(UUID playerId); diff --git a/Mage/src/mage/game/GameImpl.java b/Mage/src/mage/game/GameImpl.java index ee3fb259b12..2f72153a357 100644 --- a/Mage/src/mage/game/GameImpl.java +++ b/Mage/src/mage/game/GameImpl.java @@ -800,10 +800,10 @@ public abstract class GameImpl> implements Game, Serializa playerQueryEventSource.target(playerId, message, abilities, required); } -// @Override -// public void fireRevealCardsEvent(String message, Cards cards) { -// tableEventSource.fireTableEvent(EventType.REVEAL, message, cards, this); -// } + @Override + public void fireSelectTargetEvent(UUID playerId, String message, List perms, boolean required) { + playerQueryEventSource.target(playerId, message, perms, required); + } @Override public void fireLookAtCardsEvent(UUID playerId, String message, Cards cards) { diff --git a/Mage/src/mage/game/combat/CombatGroup.java b/Mage/src/mage/game/combat/CombatGroup.java index 954ec6c4e47..178d08cd295 100644 --- a/Mage/src/mage/game/combat/CombatGroup.java +++ b/Mage/src/mage/game/combat/CombatGroup.java @@ -300,11 +300,11 @@ public class CombatGroup implements Serializable, Copyable { break; } else { - Cards blockerCards = new CardsImpl(); + List blockerPerms = new ArrayList(); for (UUID blockerId: blockerList) { - blockerCards.add(game.getCard(blockerId)); + blockerPerms.add(game.getPermanent(blockerId)); } - UUID blockerId = player.chooseBlockerOrder(blockerCards, game); + UUID blockerId = player.chooseBlockerOrder(blockerPerms, game); blockerOrder.add(blockerId); blockerList.remove(blockerId); } diff --git a/Mage/src/mage/game/events/PlayerQueryEvent.java b/Mage/src/mage/game/events/PlayerQueryEvent.java index 406d005a738..a06615f7dbe 100644 --- a/Mage/src/mage/game/events/PlayerQueryEvent.java +++ b/Mage/src/mage/game/events/PlayerQueryEvent.java @@ -37,6 +37,7 @@ import mage.abilities.TriggeredAbilities; import mage.cards.Card; import mage.cards.Cards; import mage.cards.decks.Deck; +import mage.game.permanent.Permanent; /** * @@ -50,6 +51,7 @@ public class PlayerQueryEvent extends EventObject implements ExternalEvent, Seri private String message; private Collection abilities; + private List perms; private Set choices; private Set targets; private Cards cards; @@ -99,6 +101,15 @@ public class PlayerQueryEvent extends EventObject implements ExternalEvent, Seri this.max = time; } + private PlayerQueryEvent(UUID playerId, String message, QueryType queryType, List perms, boolean required) { + super(playerId); + this.queryType = queryType; + this.message = message; + this.playerId = playerId; + this.perms = perms; + this.required = required; + } + public static PlayerQueryEvent askEvent(UUID playerId, String message) { return new PlayerQueryEvent(playerId, message, null, null, null, null, QueryType.ASK, 0, 0, false); } @@ -126,6 +137,10 @@ public class PlayerQueryEvent extends EventObject implements ExternalEvent, Seri return new PlayerQueryEvent(playerId, message, abilities, null, null, null, QueryType.PICK_ABILITY, 0, 0, required); } + public static PlayerQueryEvent targetEvent(UUID playerId, String message, List perms, boolean required) { + return new PlayerQueryEvent(playerId, message, QueryType.PICK_TARGET, perms, required); + } + public static PlayerQueryEvent selectEvent(UUID playerId, String message) { return new PlayerQueryEvent(playerId, message, null, null, null, null, QueryType.SELECT, 0, 0, false); } @@ -187,6 +202,10 @@ public class PlayerQueryEvent extends EventObject implements ExternalEvent, Seri return cards; } + public List getPerms() { + return perms; + } + public List getBooster() { return booster; } diff --git a/Mage/src/mage/game/events/PlayerQueryEventSource.java b/Mage/src/mage/game/events/PlayerQueryEventSource.java index 61e0e0f0b63..9301f140147 100644 --- a/Mage/src/mage/game/events/PlayerQueryEventSource.java +++ b/Mage/src/mage/game/events/PlayerQueryEventSource.java @@ -36,6 +36,7 @@ import mage.abilities.TriggeredAbilities; import mage.cards.Card; import mage.cards.Cards; import mage.cards.decks.Deck; +import mage.game.permanent.Permanent; /** * @@ -82,6 +83,10 @@ public class PlayerQueryEventSource implements EventSource, Se dispatcher.fireEvent(PlayerQueryEvent.targetEvent(playerId, message, abilities, required)); } + public void target(UUID playerId, String message, List perms, boolean required) { + dispatcher.fireEvent(PlayerQueryEvent.targetEvent(playerId, message, perms, required)); + } + public void playMana(UUID playerId, String message) { dispatcher.fireEvent(PlayerQueryEvent.playManaEvent(playerId, message)); } diff --git a/Mage/src/mage/players/Player.java b/Mage/src/mage/players/Player.java index 160630a609d..625a6fdb3d2 100644 --- a/Mage/src/mage/players/Player.java +++ b/Mage/src/mage/players/Player.java @@ -158,7 +158,7 @@ public interface Player extends MageItem, Copyable { public abstract TriggeredAbility chooseTriggeredAbility(TriggeredAbilities abilities, Game game); public abstract void selectAttackers(Game game); public abstract void selectBlockers(Game game); - public abstract UUID chooseBlockerOrder(Cards blockers, Game game); + public abstract UUID chooseBlockerOrder(List blockers, Game game); public abstract void assignDamage(int damage, List targets, UUID sourceId, Game game); public abstract int getAmount(int min, int max, String message, Game game); public abstract void sideboard(Match match, Deck deck);