From 4522eda79cc4b4b2c295b43aca229a8d6fed1df0 Mon Sep 17 00:00:00 2001 From: LevelX2 Date: Fri, 8 Jul 2016 12:14:38 +0200 Subject: [PATCH] Fixed a bug of PutTokenOntoBattlefieldCopyTargetEffect causing Myriad tests to fail. --- .../org/mage/test/multiplayer/MyriadTest.java | 2 +- ...tTokenOntoBattlefieldCopyTargetEffect.java | 18 ++++++------ .../mage/abilities/keyword/MyriadAbility.java | 28 +++++++++++++++++-- 3 files changed, 35 insertions(+), 13 deletions(-) diff --git a/Mage.Tests/src/test/java/org/mage/test/multiplayer/MyriadTest.java b/Mage.Tests/src/test/java/org/mage/test/multiplayer/MyriadTest.java index 455469f868b..461f8ad7c45 100644 --- a/Mage.Tests/src/test/java/org/mage/test/multiplayer/MyriadTest.java +++ b/Mage.Tests/src/test/java/org/mage/test/multiplayer/MyriadTest.java @@ -157,7 +157,7 @@ public class MyriadTest extends CardTestMultiPlayerBase { assertPermanentCount(playerD, "Man-o'-War", 1); assertPermanentCount(playerC, "Silvercoat Lion", 0); assertPermanentCount(playerC, "Pillarfield Ox", 0); - assertPermanentCount(playerC, "Grizzly Bears", 1); + assertPermanentCount(playerC, "Grizzly Bears", 1); // not in range assertHandCount(playerC, "Silvercoat Lion", 2); assertHandCount(playerC, "Pillarfield Ox", 1); diff --git a/Mage/src/main/java/mage/abilities/effects/common/PutTokenOntoBattlefieldCopyTargetEffect.java b/Mage/src/main/java/mage/abilities/effects/common/PutTokenOntoBattlefieldCopyTargetEffect.java index 455c504667f..69af814f099 100644 --- a/Mage/src/main/java/mage/abilities/effects/common/PutTokenOntoBattlefieldCopyTargetEffect.java +++ b/Mage/src/main/java/mage/abilities/effects/common/PutTokenOntoBattlefieldCopyTargetEffect.java @@ -107,9 +107,9 @@ public class PutTokenOntoBattlefieldCopyTargetEffect extends OneShotEffect { } public PutTokenOntoBattlefieldCopyTargetEffect(UUID playerId, CardType additionalCardType, boolean gainsHaste, int number, boolean tapped, boolean attacking, UUID attackedPlayer) { - this(playerId, additionalCardType, gainsHaste, number, tapped, attacking, null, Integer.MIN_VALUE, Integer.MIN_VALUE, false); + this(playerId, additionalCardType, gainsHaste, number, tapped, attacking, attackedPlayer, Integer.MIN_VALUE, Integer.MIN_VALUE, false); } - + public PutTokenOntoBattlefieldCopyTargetEffect(UUID playerId, CardType additionalCardType, boolean gainsHaste, int number, boolean tapped, boolean attacking, UUID attackedPlayer, int power, int toughness, boolean gainsFlying) { super(Outcome.PutCreatureInPlay); this.playerId = playerId; @@ -119,11 +119,11 @@ public class PutTokenOntoBattlefieldCopyTargetEffect extends OneShotEffect { this.number = number; this.tapped = tapped; this.attacking = attacking; - this.attackedPlayer = attackedPlayer; + this.attackedPlayer = attackedPlayer; this.tokenPower = power; this.tokenToughness = toughness; this.gainsFlying = gainsFlying; - } + } public PutTokenOntoBattlefieldCopyTargetEffect(final PutTokenOntoBattlefieldCopyTargetEffect effect) { super(effect); @@ -179,10 +179,10 @@ public class PutTokenOntoBattlefieldCopyTargetEffect extends OneShotEffect { return false; } - EmptyToken token = new EmptyToken(); + EmptyToken token = new EmptyToken(); CardUtil.copyTo(token).from(copyFrom); // needed so that entersBattlefied triggered abilities see the attributes (e.g. Master Biomancer) applier.apply(game, token); - + if (additionalCardType != null && !token.getCardType().contains(additionalCardType)) { token.getCardType().add(additionalCardType); } @@ -194,14 +194,14 @@ public class PutTokenOntoBattlefieldCopyTargetEffect extends OneShotEffect { } if (tokenPower != Integer.MIN_VALUE) { token.setPower(tokenPower); - } - if (tokenToughness != Integer.MIN_VALUE){ + } + if (tokenToughness != Integer.MIN_VALUE) { token.setToughness(tokenToughness); } if (additionalSubType != null && !token.getSubtype().contains(additionalSubType)) { token.getSubtype().add(additionalSubType); } - + token.putOntoBattlefield(number, game, source.getSourceId(), playerId == null ? source.getControllerId() : playerId, tapped, attacking, attackedPlayer); for (UUID tokenId : token.getLastAddedTokenIds()) { // by cards like Doubling Season multiple tokens can be added to the battlefield Permanent tokenPermanent = game.getPermanent(tokenId); diff --git a/Mage/src/main/java/mage/abilities/keyword/MyriadAbility.java b/Mage/src/main/java/mage/abilities/keyword/MyriadAbility.java index c87a0c4e6a2..c75c130074f 100644 --- a/Mage/src/main/java/mage/abilities/keyword/MyriadAbility.java +++ b/Mage/src/main/java/mage/abilities/keyword/MyriadAbility.java @@ -1,7 +1,29 @@ /* - * To change this license header, choose License Headers in Project Properties. - * To change this template file, choose Tools | Templates - * and open the template in the editor. + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. */ package mage.abilities.keyword;