diff --git a/Mage.Player.AI/src/mage/player/ai/ComputerPlayer.java b/Mage.Player.AI/src/mage/player/ai/ComputerPlayer.java index a06cff4a7d9..c2ecd4873b8 100644 --- a/Mage.Player.AI/src/mage/player/ai/ComputerPlayer.java +++ b/Mage.Player.AI/src/mage/player/ai/ComputerPlayer.java @@ -183,7 +183,7 @@ public class ComputerPlayer> extends PlayerImpl i if (!outcome.isGood()) Collections.reverse(targets); for (Permanent permanent: targets) { - if (target.canTarget(permanent.getId(), game)) { + if (target.canTarget(permanent.getId(), game) && !target.getTargets().contains(permanent.getId())) { target.add(permanent.getId(), game); return true; } @@ -198,7 +198,7 @@ public class ComputerPlayer> extends PlayerImpl i targets = threats(opponentId, ((TargetPermanent)target).getFilter(), game); } for (Permanent permanent: targets) { - if (target.canTarget(permanent.getId(), game)) { + if (target.canTarget(permanent.getId(), game) && !target.getTargets().contains(permanent.getId())) { target.add(permanent.getId(), game); return true; } diff --git a/Mage.Server/plugins/mage-deck-constructed.jar b/Mage.Server/plugins/mage-deck-constructed.jar index 4b38df4c7ea..d27c8faaee5 100644 Binary files a/Mage.Server/plugins/mage-deck-constructed.jar and b/Mage.Server/plugins/mage-deck-constructed.jar differ diff --git a/Mage.Server/plugins/mage-game-freeforall.jar b/Mage.Server/plugins/mage-game-freeforall.jar index 0bdcdfbb1a9..51ed106cf9b 100644 Binary files a/Mage.Server/plugins/mage-game-freeforall.jar and b/Mage.Server/plugins/mage-game-freeforall.jar differ diff --git a/Mage.Server/plugins/mage-game-twoplayerduel.jar b/Mage.Server/plugins/mage-game-twoplayerduel.jar index bb624d77c9a..d8a23746b2f 100644 Binary files a/Mage.Server/plugins/mage-game-twoplayerduel.jar and b/Mage.Server/plugins/mage-game-twoplayerduel.jar differ diff --git a/Mage.Server/plugins/mage-player-ai.jar b/Mage.Server/plugins/mage-player-ai.jar index 5c76adf3868..c036e2c1caa 100644 Binary files a/Mage.Server/plugins/mage-player-ai.jar and b/Mage.Server/plugins/mage-player-ai.jar differ diff --git a/Mage.Server/plugins/mage-player-aiminimax.jar b/Mage.Server/plugins/mage-player-aiminimax.jar index bbf31e476ad..4ffc7bee3d7 100644 Binary files a/Mage.Server/plugins/mage-player-aiminimax.jar and b/Mage.Server/plugins/mage-player-aiminimax.jar differ diff --git a/Mage.Server/plugins/mage-player-human.jar b/Mage.Server/plugins/mage-player-human.jar index 6e69382c1a2..e67ea7c4190 100644 Binary files a/Mage.Server/plugins/mage-player-human.jar and b/Mage.Server/plugins/mage-player-human.jar differ diff --git a/Mage.Server/src/mage/server/game/GameController.java b/Mage.Server/src/mage/server/game/GameController.java index 35e8061785b..911153b3f18 100644 --- a/Mage.Server/src/mage/server/game/GameController.java +++ b/Mage.Server/src/mage/server/game/GameController.java @@ -304,7 +304,7 @@ public class GameController implements GameCallback { informOthers(playerId); } - private synchronized void choose(UUID playerId, String message, String[] choices) { + private synchronized void choose(UUID playerId, String message, Set choices) { if (gameSessions.containsKey(playerId)) gameSessions.get(playerId).choose(message, choices); informOthers(playerId); diff --git a/Mage.Server/src/mage/server/game/GameSession.java b/Mage.Server/src/mage/server/game/GameSession.java index 096294358ae..238a3f1a7a6 100644 --- a/Mage.Server/src/mage/server/game/GameSession.java +++ b/Mage.Server/src/mage/server/game/GameSession.java @@ -28,6 +28,7 @@ package mage.server.game; +import java.util.Set; import java.util.UUID; import java.util.concurrent.ScheduledExecutorService; import java.util.concurrent.ScheduledFuture; @@ -97,12 +98,12 @@ public class GameSession extends GameWatcher { } } - public void choose(final String message, final String[] choices) { + public void choose(final String message, final Set choices) { if (!killed) { setupTimeout(); Session session = SessionManager.getInstance().getSession(sessionId); if (session != null) - session.fireCallback(new ClientCallback("gameChoose", new GameClientMessage(choices, message))); + session.fireCallback(new ClientCallback("gameChoose", new GameClientMessage(choices.toArray(new String[0]), message))); } } diff --git a/Mage.Sets/src/mage/sets/RiseOfTheEldrazi.java b/Mage.Sets/src/mage/sets/RiseOfTheEldrazi.java index e998ac09a5a..e84509d6eae 100644 --- a/Mage.Sets/src/mage/sets/RiseOfTheEldrazi.java +++ b/Mage.Sets/src/mage/sets/RiseOfTheEldrazi.java @@ -28,11 +28,7 @@ package mage.sets; -import java.util.ArrayList; import java.util.GregorianCalendar; -import java.util.List; -import mage.Constants.Rarity; -import mage.cards.Card; import mage.cards.ExpansionSet; /** @@ -48,7 +44,7 @@ public class RiseOfTheEldrazi extends ExpansionSet { } private RiseOfTheEldrazi() { - super("Rise Of The Eldrazi", "ROE", "seticon_ROE", "mage.sets.riseoftheeldrazi", new GregorianCalendar(2010, 3, 17).getTime(), false); + super("Rise of the Eldrazi", "ROE", "seticon_ROE", "mage.sets.riseoftheeldrazi", new GregorianCalendar(2010, 3, 17).getTime(), false); this.blockName = "Zendikar"; this.numBoosterLands = 1; this.numBoosterCommon = 10; diff --git a/Mage.Sets/src/mage/sets/ShardsOfAlara.java b/Mage.Sets/src/mage/sets/ShardsOfAlara.java index d883116db3e..9cbb40b938b 100644 --- a/Mage.Sets/src/mage/sets/ShardsOfAlara.java +++ b/Mage.Sets/src/mage/sets/ShardsOfAlara.java @@ -28,11 +28,7 @@ package mage.sets; -import java.util.ArrayList; import java.util.GregorianCalendar; -import java.util.List; -import mage.Constants.Rarity; -import mage.cards.Card; import mage.cards.ExpansionSet; /** diff --git a/Mage.Sets/src/mage/sets/magic2010/AcolyteOfXathrid.java b/Mage.Sets/src/mage/sets/magic2010/AcolyteOfXathrid.java index 2351913d318..15232b92f8e 100644 --- a/Mage.Sets/src/mage/sets/magic2010/AcolyteOfXathrid.java +++ b/Mage.Sets/src/mage/sets/magic2010/AcolyteOfXathrid.java @@ -48,7 +48,7 @@ import mage.target.TargetPlayer; public class AcolyteOfXathrid extends CardImpl { public AcolyteOfXathrid(UUID ownerId) { - super(ownerId, 83, "Acolyte Of Xathrid", Rarity.COMMON, new CardType[]{CardType.CREATURE}, "{B}"); + super(ownerId, 83, "Acolyte of Xathrid", Rarity.COMMON, new CardType[]{CardType.CREATURE}, "{B}"); this.expansionSetCode = "M10"; this.subtype.add("Human"); this.subtype.add("Cleric"); diff --git a/Mage.Sets/src/mage/sets/magic2010/ActOfTreason.java b/Mage.Sets/src/mage/sets/magic2010/ActOfTreason.java index 825b4c018c5..4d45a5ef775 100644 --- a/Mage.Sets/src/mage/sets/magic2010/ActOfTreason.java +++ b/Mage.Sets/src/mage/sets/magic2010/ActOfTreason.java @@ -46,7 +46,7 @@ import mage.target.common.TargetCreaturePermanent; public class ActOfTreason extends CardImpl { public ActOfTreason(UUID ownerId) { - super(ownerId, 124, "Act Of Treason", Rarity.UNCOMMON, new CardType[]{CardType.SORCERY}, "{2}{R}"); + super(ownerId, 124, "Act of Treason", Rarity.UNCOMMON, new CardType[]{CardType.SORCERY}, "{2}{R}"); this.expansionSetCode = "M10"; this.color.setRed(true); this.getSpellAbility().addTarget(new TargetCreaturePermanent()); diff --git a/Mage.Sets/src/mage/sets/magic2010/ChildOfNight.java b/Mage.Sets/src/mage/sets/magic2010/ChildOfNight.java index 15c4ae14e23..5f5f2dd9ba0 100644 --- a/Mage.Sets/src/mage/sets/magic2010/ChildOfNight.java +++ b/Mage.Sets/src/mage/sets/magic2010/ChildOfNight.java @@ -42,7 +42,7 @@ import mage.cards.CardImpl; public class ChildOfNight extends CardImpl { public ChildOfNight(UUID ownerId) { - super(ownerId, 88, "Child Of Night", Rarity.COMMON, new CardType[]{CardType.CREATURE}, "{1}{B}"); + super(ownerId, 88, "Child of Night", Rarity.COMMON, new CardType[]{CardType.CREATURE}, "{1}{B}"); this.expansionSetCode = "M10"; this.color.setBlack(true); this.subtype.add("Vampire"); diff --git a/Mage.Sets/src/mage/sets/magic2011/ChandrasOutrage.java b/Mage.Sets/src/mage/sets/magic2011/ChandrasOutrage.java index 80968b0135a..69ed657fb34 100644 --- a/Mage.Sets/src/mage/sets/magic2011/ChandrasOutrage.java +++ b/Mage.Sets/src/mage/sets/magic2011/ChandrasOutrage.java @@ -99,4 +99,9 @@ class ChandrasOutrageEffect extends OneShotEffect { return new ChandrasOutrageEffect(this); } + @Override + public String getText(Ability source) { + return "Chandra's Outrage deals 4 damage to target creature and 2 damage to that creature's controller"; + } + } \ No newline at end of file diff --git a/Mage.Sets/src/mage/sets/magic2011/Combust.java b/Mage.Sets/src/mage/sets/magic2011/Combust.java index 0895c0916d3..d4f3814f569 100644 --- a/Mage.Sets/src/mage/sets/magic2011/Combust.java +++ b/Mage.Sets/src/mage/sets/magic2011/Combust.java @@ -36,6 +36,7 @@ import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.common.CantCounterSourceEffect; import mage.abilities.effects.common.DamageTargetEffect; import mage.cards.CardImpl; +import mage.filter.Filter.ComparisonScope; import mage.filter.common.FilterCreaturePermanent; import mage.target.common.TargetCreaturePermanent; @@ -51,6 +52,7 @@ public class Combust extends CardImpl { filter.getColor().setWhite(true); filter.getColor().setBlue(true); filter.setUseColor(true); + filter.setScopeColor(ComparisonScope.Any); } public Combust(UUID ownerId) { diff --git a/Mage.Sets/src/mage/sets/magic2011/ConundrumSphinx.java b/Mage.Sets/src/mage/sets/magic2011/ConundrumSphinx.java index 918219de2c3..bdb42da5799 100644 --- a/Mage.Sets/src/mage/sets/magic2011/ConundrumSphinx.java +++ b/Mage.Sets/src/mage/sets/magic2011/ConundrumSphinx.java @@ -28,7 +28,6 @@ package mage.sets.magic2011; -import java.util.List; import java.util.Set; import java.util.UUID; import mage.Constants.CardType; diff --git a/Mage.Sets/src/mage/sets/magic2011/DarkTutelage.java b/Mage.Sets/src/mage/sets/magic2011/DarkTutelage.java index 512174ef181..d9c1ab3c4c4 100644 --- a/Mage.Sets/src/mage/sets/magic2011/DarkTutelage.java +++ b/Mage.Sets/src/mage/sets/magic2011/DarkTutelage.java @@ -51,7 +51,7 @@ import mage.players.Player; public class DarkTutelage extends CardImpl { public DarkTutelage(UUID ownerId) { - super(ownerId, 90, "DarkTutelage", Rarity.RARE, new CardType[]{CardType.ENCHANTMENT}, "{2}{B}"); + super(ownerId, 90, "Dark Tutelage", Rarity.RARE, new CardType[]{CardType.ENCHANTMENT}, "{2}{B}"); this.expansionSetCode = "M11"; this.getColor().setBlack(true); this.addAbility(new OnEventTriggeredAbility(EventType.UPKEEP_STEP_PRE, "beginning of your upkeep", new DarkTutelageEffect(), false)); diff --git a/Mage.Sets/src/mage/sets/magic2011/DemonOfDeathsGate.java b/Mage.Sets/src/mage/sets/magic2011/DemonOfDeathsGate.java index 2535d61ac5e..3e2f768272d 100644 --- a/Mage.Sets/src/mage/sets/magic2011/DemonOfDeathsGate.java +++ b/Mage.Sets/src/mage/sets/magic2011/DemonOfDeathsGate.java @@ -48,7 +48,7 @@ import mage.target.common.TargetControlledPermanent; public class DemonOfDeathsGate extends CardImpl { public DemonOfDeathsGate(UUID ownerId) { - super(ownerId, 92, "Demon Of Death's Gate", Rarity.MYTHIC, new CardType[]{CardType.CREATURE}, "{6}{B}{B}{B}"); + super(ownerId, 92, "Demon of Death's Gate", Rarity.MYTHIC, new CardType[]{CardType.CREATURE}, "{6}{B}{B}{B}"); this.expansionSetCode = "M11"; this.subtype.add("Demon"); this.color.setBlack(true); diff --git a/Mage.Sets/src/mage/sets/magic2011/DestructiveForce.java b/Mage.Sets/src/mage/sets/magic2011/DestructiveForce.java index 09ddb38252f..16c82837f30 100644 --- a/Mage.Sets/src/mage/sets/magic2011/DestructiveForce.java +++ b/Mage.Sets/src/mage/sets/magic2011/DestructiveForce.java @@ -34,6 +34,7 @@ import mage.Constants.Rarity; import mage.abilities.effects.common.DamageAllEffect; import mage.abilities.effects.common.SacrificeAllEffect; import mage.cards.CardImpl; +import mage.filter.common.FilterControlledPermanent; import mage.filter.common.FilterCreaturePermanent; import mage.filter.common.FilterLandPermanent; @@ -43,11 +44,17 @@ import mage.filter.common.FilterLandPermanent; */ public class DestructiveForce extends CardImpl { + private static FilterControlledPermanent filter = new FilterControlledPermanent("land"); + + static { + filter.getCardType().add(CardType.LAND); + } + public DestructiveForce(UUID ownerId) { super(ownerId, 133, "Destructive Force", Rarity.RARE, new CardType[]{CardType.SORCERY}, "{5}{R}{R}"); this.expansionSetCode = "M11"; this.color.setRed(true); - this.getSpellAbility().addEffect(new SacrificeAllEffect(5, new FilterLandPermanent())); + this.getSpellAbility().addEffect(new SacrificeAllEffect(5, filter)); this.getSpellAbility().addEffect(new DamageAllEffect(5, FilterCreaturePermanent.getDefault())); } diff --git a/Mage.Sets/src/mage/sets/magic2011/ElixirOfImmortality.java b/Mage.Sets/src/mage/sets/magic2011/ElixirOfImmortality.java index 6d7b6e08bb5..1dad133f8e0 100644 --- a/Mage.Sets/src/mage/sets/magic2011/ElixirOfImmortality.java +++ b/Mage.Sets/src/mage/sets/magic2011/ElixirOfImmortality.java @@ -40,7 +40,7 @@ import mage.abilities.costs.CostsImpl; import mage.abilities.costs.common.TapSourceCost; import mage.abilities.costs.mana.GenericManaCost; import mage.abilities.effects.OneShotEffect; -import mage.abilities.effects.common.ScryEffect; +import mage.abilities.effects.common.GainLifeEffect; import mage.cards.Card; import mage.cards.CardImpl; import mage.game.Game; @@ -53,12 +53,14 @@ import mage.players.Player; public class ElixirOfImmortality extends CardImpl { public ElixirOfImmortality(UUID ownerId) { - super(ownerId, 206, "Elixir Of Immortality", Rarity.UNCOMMON, new CardType[]{CardType.ARTIFACT}, "{1}"); + super(ownerId, 206, "Elixir of Immortality", Rarity.UNCOMMON, new CardType[]{CardType.ARTIFACT}, "{1}"); this.expansionSetCode = "M11"; Costs costs = new CostsImpl(); costs.add(new GenericManaCost(2)); costs.add(new TapSourceCost()); - this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new ScryEffect(2), costs)); + Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new GainLifeEffect(5), costs); + ability.addEffect(new ElixerOfImmortalityEffect()); + this.addAbility(ability); } public ElixirOfImmortality(final ElixirOfImmortality card) { @@ -94,7 +96,6 @@ class ElixerOfImmortalityEffect extends OneShotEffect player.removeFromBattlefield(game.getPermanent(source.getSourceId()), game); Card card = game.getCard(source.getSourceId()); card.moveToZone(Zone.LIBRARY, game, true); -// player.getLibrary().putOnBottom(game.getCard(source.getSourceId()), game); player.getLibrary().addAll(player.getGraveyard().getCards(game)); player.getGraveyard().clear(); player.getLibrary().shuffle(); diff --git a/Mage.Sets/src/mage/sets/magic2011/FrostTitan.java b/Mage.Sets/src/mage/sets/magic2011/FrostTitan.java index fa8392d35bf..5116f042848 100644 --- a/Mage.Sets/src/mage/sets/magic2011/FrostTitan.java +++ b/Mage.Sets/src/mage/sets/magic2011/FrostTitan.java @@ -53,7 +53,7 @@ import mage.target.TargetStackObject; public class FrostTitan extends CardImpl { public FrostTitan(UUID ownerId) { - super(ownerId, 55, "FrostTitan", Rarity.MYTHIC, new CardType[]{CardType.CREATURE}, "{4}{U}{U}"); + super(ownerId, 55, "Frost Titan", Rarity.MYTHIC, new CardType[]{CardType.CREATURE}, "{4}{U}{U}"); this.expansionSetCode = "M11"; this.subtype.add("Giant"); this.color.setBlue(true); diff --git a/Mage.Sets/src/mage/sets/magic2011/ReassemblingSkeleton.java b/Mage.Sets/src/mage/sets/magic2011/ReassemblingSkeleton.java index 237155b0ed9..57e7b771a85 100644 --- a/Mage.Sets/src/mage/sets/magic2011/ReassemblingSkeleton.java +++ b/Mage.Sets/src/mage/sets/magic2011/ReassemblingSkeleton.java @@ -45,13 +45,13 @@ import mage.cards.CardImpl; public class ReassemblingSkeleton extends CardImpl { public ReassemblingSkeleton(UUID ownerId) { - super(ownerId, 112, "Reassembling Skeleton", Rarity.COMMON, new CardType[]{CardType.CREATURE}, "{2}{W}{W}"); + super(ownerId, 112, "Reassembling Skeleton", Rarity.UNCOMMON, new CardType[]{CardType.CREATURE}, "{1}{B}"); this.expansionSetCode = "M11"; - this.subtype.add("Human"); - this.subtype.add("Knight"); - this.color.setWhite(true); - this.power = new MageInt(2); - this.toughness = new MageInt(3); + this.subtype.add("Skeleton"); + this.subtype.add("Warrior"); + this.color.setBlack(true); + this.power = new MageInt(1); + this.toughness = new MageInt(1); this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new ReturnSourceFromGraveyardToBattlefieldEffect(true), new ManaCostsImpl("{1}{B}"))); } diff --git a/Mage.Sets/src/mage/sets/riseoftheeldrazi/WallOfOmens.java b/Mage.Sets/src/mage/sets/riseoftheeldrazi/WallOfOmens.java index ae469402a81..b1fa10b9c4b 100644 --- a/Mage.Sets/src/mage/sets/riseoftheeldrazi/WallOfOmens.java +++ b/Mage.Sets/src/mage/sets/riseoftheeldrazi/WallOfOmens.java @@ -44,7 +44,7 @@ import mage.cards.CardImpl; public class WallOfOmens extends CardImpl { public WallOfOmens(UUID ownerId) { - super(ownerId, 53, "Wall Of Omens", Rarity.UNCOMMON, new CardType[]{CardType.CREATURE}, "{1}{W}"); + super(ownerId, 53, "Wall of Omens", Rarity.UNCOMMON, new CardType[]{CardType.CREATURE}, "{1}{W}"); this.expansionSetCode = "ROE"; this.subtype.add("Wall"); this.color.setWhite(true); diff --git a/Mage.Sets/src/mage/sets/shardsofalara/RangerOfEos.java b/Mage.Sets/src/mage/sets/shardsofalara/RangerOfEos.java index f075480f335..844657c2110 100644 --- a/Mage.Sets/src/mage/sets/shardsofalara/RangerOfEos.java +++ b/Mage.Sets/src/mage/sets/shardsofalara/RangerOfEos.java @@ -54,7 +54,7 @@ public class RangerOfEos extends CardImpl { } public RangerOfEos(UUID ownerId) { - super(ownerId, 21, "Ranger Of Eos", Rarity.RARE, new CardType[]{CardType.CREATURE}, "{3}{W}"); + super(ownerId, 21, "Ranger of Eos", Rarity.RARE, new CardType[]{CardType.CREATURE}, "{3}{W}"); this.expansionSetCode = "ALA"; this.color.setWhite(true); this.subtype.add("Human"); diff --git a/Mage.Sets/src/mage/sets/tenth/Condemn.java b/Mage.Sets/src/mage/sets/tenth/Condemn.java index 8fe5533f6e8..74060f6e9a8 100644 --- a/Mage.Sets/src/mage/sets/tenth/Condemn.java +++ b/Mage.Sets/src/mage/sets/tenth/Condemn.java @@ -52,8 +52,8 @@ public class Condemn extends CardImpl { this.expansionSetCode = "10E"; this.color.setWhite(true); this.getSpellAbility().addTarget(new TargetAttackingCreature()); - this.getSpellAbility().addEffect(new CondemnEffect()); this.getSpellAbility().addEffect(new PutOnLibraryTargetEffect(false)); + this.getSpellAbility().addEffect(new CondemnEffect()); } diff --git a/Mage/src/mage/abilities/effects/common/SacrificeAllEffect.java b/Mage/src/mage/abilities/effects/common/SacrificeAllEffect.java index 3ce3a8fb6ca..430d1c8fb3c 100644 --- a/Mage/src/mage/abilities/effects/common/SacrificeAllEffect.java +++ b/Mage/src/mage/abilities/effects/common/SacrificeAllEffect.java @@ -36,10 +36,12 @@ import mage.Constants.TargetController; import mage.abilities.Ability; import mage.abilities.effects.OneShotEffect; import mage.filter.FilterPermanent; +import mage.filter.common.FilterControlledPermanent; import mage.game.Game; import mage.game.permanent.Permanent; import mage.players.Player; import mage.target.TargetPermanent; +import mage.target.common.TargetControlledPermanent; /** * @@ -48,13 +50,13 @@ import mage.target.TargetPermanent; public class SacrificeAllEffect extends OneShotEffect { protected int amount; - protected FilterPermanent filter; + protected FilterControlledPermanent filter; - public SacrificeAllEffect(FilterPermanent filter) { + public SacrificeAllEffect(FilterControlledPermanent filter) { this(1, filter); } - public SacrificeAllEffect(int amount, FilterPermanent filter) { + public SacrificeAllEffect(int amount, FilterControlledPermanent filter) { super(Outcome.Sacrifice); this.amount = amount; this.filter = filter; @@ -77,7 +79,7 @@ public class SacrificeAllEffect extends OneShotEffect { for (Player player: game.getPlayers().values()) { int numTargets = Math.min(amount, game.getBattlefield().countAll(filter, player.getId())); filter.setTargetController(TargetController.YOU); - TargetPermanent target = new TargetPermanent(numTargets, filter); + TargetControlledPermanent target = new TargetControlledPermanent(numTargets, numTargets, filter, false); while (!target.isChosen()) { player.choose(Outcome.Sacrifice, target, game); } @@ -85,7 +87,8 @@ public class SacrificeAllEffect extends OneShotEffect { } for (UUID permID: perms) { Permanent permanent = game.getPermanent(permID); - permanent.sacrifice(source.getSourceId(), game); + if (permanent != null) + permanent.sacrifice(source.getSourceId(), game); } return true; } diff --git a/Mage/src/mage/choices/ChoiceImpl.java b/Mage/src/mage/choices/ChoiceImpl.java index d11891526c1..a391881eeb6 100644 --- a/Mage/src/mage/choices/ChoiceImpl.java +++ b/Mage/src/mage/choices/ChoiceImpl.java @@ -29,9 +29,7 @@ package mage.choices; import java.io.Serializable; -import java.util.ArrayList; import java.util.HashSet; -import java.util.List; import java.util.Set; /** diff --git a/Mage/src/mage/game/GameImpl.java b/Mage/src/mage/game/GameImpl.java index d0c18af8b89..a28ef0714a3 100644 --- a/Mage/src/mage/game/GameImpl.java +++ b/Mage/src/mage/game/GameImpl.java @@ -728,7 +728,7 @@ public abstract class GameImpl> implements Game, Serializa @Override public void fireChooseEvent(UUID playerId, Choice choice) { - playerQueryEventSource.choose(playerId, choice.getMessage(), ((List)choice.getChoices()).toArray(new String[0])); + playerQueryEventSource.choose(playerId, choice.getMessage(), choice.getChoices()); } @Override diff --git a/Mage/src/mage/game/events/PlayerQueryEvent.java b/Mage/src/mage/game/events/PlayerQueryEvent.java index 6ae7203a4d3..6915d497dca 100644 --- a/Mage/src/mage/game/events/PlayerQueryEvent.java +++ b/Mage/src/mage/game/events/PlayerQueryEvent.java @@ -31,6 +31,7 @@ package mage.game.events; import java.io.Serializable; import java.util.Collection; import java.util.EventObject; +import java.util.Set; import java.util.UUID; import mage.abilities.Ability; import mage.abilities.ActivatedAbility; @@ -49,7 +50,7 @@ public class PlayerQueryEvent extends EventObject implements ExternalEvent, Seri private String message; private Collection abilities; - private String[] choices; + private Set choices; private Cards cards; private QueryType queryType; private UUID playerId; @@ -57,7 +58,7 @@ public class PlayerQueryEvent extends EventObject implements ExternalEvent, Seri private int min; private int max; - private PlayerQueryEvent(UUID playerId, String message, Collection abilities, String[] choices, Cards cards, QueryType queryType, int min, int max, boolean required) { + private PlayerQueryEvent(UUID playerId, String message, Collection abilities, Set choices, Cards cards, QueryType queryType, int min, int max, boolean required) { super(playerId); this.queryType = queryType; this.message = message; @@ -77,7 +78,7 @@ public class PlayerQueryEvent extends EventObject implements ExternalEvent, Seri public static PlayerQueryEvent chooseAbilityEvent(UUID playerId, String message, Collection choices) { return new PlayerQueryEvent(playerId, message, choices, null, null, QueryType.CHOOSE_ABILITY, 0, 0, false); } - public static PlayerQueryEvent chooseEvent(UUID playerId, String message, String[] choices) { + public static PlayerQueryEvent chooseEvent(UUID playerId, String message, Set choices) { return new PlayerQueryEvent(playerId, message, null, choices, null, QueryType.CHOOSE, 0, 0, false); } @@ -125,7 +126,7 @@ public class PlayerQueryEvent extends EventObject implements ExternalEvent, Seri return abilities; } - public String[] getChoices() { + public Set getChoices() { return choices; } diff --git a/Mage/src/mage/game/events/PlayerQueryEventSource.java b/Mage/src/mage/game/events/PlayerQueryEventSource.java index 68f3e90bda8..d7bb42fd8b7 100644 --- a/Mage/src/mage/game/events/PlayerQueryEventSource.java +++ b/Mage/src/mage/game/events/PlayerQueryEventSource.java @@ -30,6 +30,7 @@ package mage.game.events; import java.io.Serializable; import java.util.Collection; +import java.util.Set; import java.util.UUID; import mage.abilities.ActivatedAbility; import mage.abilities.TriggeredAbilities; @@ -84,7 +85,7 @@ public class PlayerQueryEventSource implements EventSource, Se dispatcher.fireEvent(PlayerQueryEvent.amountEvent(playerId, message, min, max)); } - public void choose(UUID playerId, String message, String[] choices) { + public void choose(UUID playerId, String message, Set choices) { dispatcher.fireEvent(PlayerQueryEvent.chooseEvent(playerId, message, choices)); } diff --git a/Mage/src/mage/target/common/TargetCardInYourGraveyard.java b/Mage/src/mage/target/common/TargetCardInYourGraveyard.java index e8383cb90b0..e4697ed3e1a 100644 --- a/Mage/src/mage/target/common/TargetCardInYourGraveyard.java +++ b/Mage/src/mage/target/common/TargetCardInYourGraveyard.java @@ -55,7 +55,7 @@ public class TargetCardInYourGraveyard extends TargetCard