From 06ed2f5927c6cf9bb8f9f4b42cd3f86702704a30 Mon Sep 17 00:00:00 2001 From: LevelX2 Date: Thu, 26 Dec 2019 14:31:51 +0100 Subject: [PATCH] * Improved display of vote for Council's Dilemma cards. --- Mage.Sets/src/mage/cards/e/Expropriate.java | 22 +------------------ .../common/CouncilsDilemmaVoteEffect.java | 14 +++++++----- 2 files changed, 10 insertions(+), 26 deletions(-) diff --git a/Mage.Sets/src/mage/cards/e/Expropriate.java b/Mage.Sets/src/mage/cards/e/Expropriate.java index ddb892a0910..e7a8f865397 100644 --- a/Mage.Sets/src/mage/cards/e/Expropriate.java +++ b/Mage.Sets/src/mage/cards/e/Expropriate.java @@ -17,7 +17,6 @@ import mage.game.Game; import mage.game.permanent.Permanent; import mage.game.turn.TurnMod; import mage.players.Player; -import mage.players.Players; import mage.target.Target; import mage.target.TargetPermanent; import mage.target.targetpointer.FixedTarget; @@ -48,8 +47,6 @@ public final class Expropriate extends CardImpl { class ExpropriateDilemmaEffect extends CouncilsDilemmaVoteEffect { - private Players moneyVoters = new Players(); - public ExpropriateDilemmaEffect() { super(Outcome.Benefit); this.staticText = "Council's dilemma — Starting with you, each player votes for time or money. For each time vote, take an extra turn after this one. For each money vote, choose a permanent owned by the voter and gain control of it"; @@ -102,7 +99,7 @@ class ExpropriateDilemmaEffect extends CouncilsDilemmaVoteEffect { private void controlForMoneyVote(Player controller, Game game, Ability source) { List chosenCards = new ArrayList<>(); - for (UUID playerId : moneyVoters.keySet()) { + for (UUID playerId : choiceTwoVoters.keySet()) { FilterPermanent filter = new FilterPermanent("permanent owned by " + game.getPlayer(playerId).getName()); filter.add(new OwnerIdPredicate(playerId)); @@ -128,23 +125,6 @@ class ExpropriateDilemmaEffect extends CouncilsDilemmaVoteEffect { } } - @Override - protected void vote(String choiceOne, String choiceTwo, Player controller, Game game, Ability source) { - for (UUID playerId : game.getState().getPlayersInRange(controller.getId(), game)) { - Player player = game.getPlayer(playerId); - if (player != null) { - if (player.chooseUse(Outcome.Vote, "Choose " + choiceOne + '?', source, game)) { - voteOneCount++; - game.informPlayers(player.getName() + " has voted for " + choiceOne); - } else { - moneyVoters.addPlayer(player); - voteTwoCount++; - game.informPlayers(player.getName() + " has voted for " + choiceTwo); - } - } - } - } - @Override public ExpropriateDilemmaEffect copy() { return new ExpropriateDilemmaEffect(this); diff --git a/Mage/src/main/java/mage/abilities/effects/common/CouncilsDilemmaVoteEffect.java b/Mage/src/main/java/mage/abilities/effects/common/CouncilsDilemmaVoteEffect.java index 27b66c74672..e1630720175 100644 --- a/Mage/src/main/java/mage/abilities/effects/common/CouncilsDilemmaVoteEffect.java +++ b/Mage/src/main/java/mage/abilities/effects/common/CouncilsDilemmaVoteEffect.java @@ -1,14 +1,12 @@ - - package mage.abilities.effects.common; +import java.util.UUID; import mage.abilities.Ability; import mage.abilities.effects.OneShotEffect; import mage.constants.Outcome; import mage.game.Game; import mage.players.Player; - -import java.util.UUID; +import mage.players.Players; /** * @author JRHerlehy @@ -16,6 +14,8 @@ import java.util.UUID; public abstract class CouncilsDilemmaVoteEffect extends OneShotEffect { protected int voteOneCount = 0, voteTwoCount = 0; + protected final Players choiceOneVoters = new Players(); + protected final Players choiceTwoVoters = new Players(); public CouncilsDilemmaVoteEffect(Outcome outcome) { super(outcome); @@ -29,11 +29,15 @@ public abstract class CouncilsDilemmaVoteEffect extends OneShotEffect { for (UUID playerId : game.getState().getPlayersInRange(controller.getId(), game)) { Player player = game.getPlayer(playerId); if (player != null) { - if (player.chooseUse(Outcome.Vote, "Choose " + choiceOne + '?', source, game)) { + if (player.chooseUse(Outcome.Vote, + "Choose " + choiceOne + " or " + choiceTwo + "?", + source.getRule(), choiceOne, choiceTwo, source, game)) { voteOneCount++; + choiceOneVoters.addPlayer(player); game.informPlayers(player.getName() + " has voted for " + choiceOne); } else { voteTwoCount++; + choiceTwoVoters.addPlayer(player); game.informPlayers(player.getName() + " has voted for " + choiceTwo); } }