From 57ac5ea9300dd51cf842b3d1212a73aba9ee9aff Mon Sep 17 00:00:00 2001 From: magenoxx Date: Mon, 4 Jun 2012 19:33:27 +0400 Subject: [PATCH] [tests] Added possibility to add target to triggered abilities. --- .../java/org/mage/test/player/TestPlayer.java | 31 +++++++++++++++++++ .../base/impl/CardTestPlayerAPIImpl.java | 4 +++ 2 files changed, 35 insertions(+) diff --git a/Mage.Tests/src/test/java/org/mage/test/player/TestPlayer.java b/Mage.Tests/src/test/java/org/mage/test/player/TestPlayer.java index cf25e99c01a..df98b3ec0ee 100644 --- a/Mage.Tests/src/test/java/org/mage/test/player/TestPlayer.java +++ b/Mage.Tests/src/test/java/org/mage/test/player/TestPlayer.java @@ -61,6 +61,7 @@ public class TestPlayer extends ComputerPlayer { private List actions = new ArrayList(); private List choices = new ArrayList(); + private List targets = new ArrayList(); public TestPlayer(String name, Constants.RangeOfInfluence range) { super(name, range); @@ -79,6 +80,10 @@ public class TestPlayer extends ComputerPlayer { choices.add(choice); } + public void addTarget(String target) { + targets.add(target); + } + @Override public TestPlayer copy() { return new TestPlayer(this); @@ -204,6 +209,32 @@ public class TestPlayer extends ComputerPlayer { } @Override + public boolean chooseTarget(Constants.Outcome outcome, Target target, Ability source, Game game) { + if (!targets.isEmpty()) { + if (target instanceof TargetPermanent) { + for (Permanent permanent : game.getBattlefield().getAllActivePermanents((FilterPermanent)target.getFilter(), game)) { + for (String _target: targets) { + if (permanent.getName().equals(_target)) { + if (((TargetPermanent)target).canTarget(playerId, permanent.getId(), null, game) && !target.getTargets().contains(permanent.getId())) { + target.add(permanent.getId(), game); + targets.remove(_target); + return true; + } + } else if ((permanent.getName()+"-"+permanent.getExpansionSetCode()).equals(_target)) { + if (((TargetPermanent)target).canTarget(playerId, permanent.getId(), null, game) && !target.getTargets().contains(permanent.getId())) { + target.add(permanent.getId(), game); + targets.remove(_target); + return true; + } + } + } + } + } + } + return super.chooseTarget(outcome, target, source, game); + } + + @Override public boolean chooseUse(Constants.Outcome outcome, String message, Game game) { if (!choices.isEmpty()) { if (choices.get(0).equals("No")) { diff --git a/Mage.Tests/src/test/java/org/mage/test/serverside/base/impl/CardTestPlayerAPIImpl.java b/Mage.Tests/src/test/java/org/mage/test/serverside/base/impl/CardTestPlayerAPIImpl.java index 405cc7c9f1a..be65f582705 100644 --- a/Mage.Tests/src/test/java/org/mage/test/serverside/base/impl/CardTestPlayerAPIImpl.java +++ b/Mage.Tests/src/test/java/org/mage/test/serverside/base/impl/CardTestPlayerAPIImpl.java @@ -580,4 +580,8 @@ public abstract class CardTestPlayerAPIImpl extends MageTestPlayerBase implement public void setChoice(TestPlayer player, String choice) { player.addChoice(choice); } + + public void addTarget(TestPlayer player, String target) { + player.addTarget(target); + } }