From 15a884c00c05974b4a72e935fbef11d3781e59b2 Mon Sep 17 00:00:00 2001 From: LevelX2 Date: Mon, 7 Dec 2015 17:19:37 +0100 Subject: [PATCH] * Added a test. --- .../sets/commander2015/DaxosTheReturned.java | 15 ++-- .../continuous/DaxosTheReturnedTest.java | 76 +++++++++++++++++++ .../counter/AddCountersControllerEffect.java | 5 +- 3 files changed, 87 insertions(+), 9 deletions(-) create mode 100644 Mage.Tests/src/test/java/org/mage/test/cards/continuous/DaxosTheReturnedTest.java diff --git a/Mage.Sets/src/mage/sets/commander2015/DaxosTheReturned.java b/Mage.Sets/src/mage/sets/commander2015/DaxosTheReturned.java index f0909282109..81a6d12aaf7 100644 --- a/Mage.Sets/src/mage/sets/commander2015/DaxosTheReturned.java +++ b/Mage.Sets/src/mage/sets/commander2015/DaxosTheReturned.java @@ -60,8 +60,9 @@ import mage.players.Player; * @author fireshoes */ public class DaxosTheReturned extends CardImpl { - + private static final FilterSpell filter = new FilterSpell("an enchantment spell"); + static { filter.add(new CardTypePredicate(CardType.ENCHANTMENT)); } @@ -80,10 +81,10 @@ public class DaxosTheReturned extends CardImpl { effect.setText("you get an experience counter"); Ability ability = new SpellCastControllerTriggeredAbility(effect, filter, false); this.addAbility(ability); - - // {1}{W}{B}: Put a white and black Spirit enchantment creature token onto the battlefield. It has + + // {1}{W}{B}: Put a white and black Spirit enchantment creature token onto the battlefield. It has // "This creature's power and toughness are each equal to the number of experience counters you have." - this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new CreateTokenEffect(new DaxosSpiritToken(), 1), new ManaCostsImpl("{1}{W}{B}"))); + this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new CreateTokenEffect(new DaxosSpiritToken(), 1), new ManaCostsImpl("{1}{W}{B}"))); } public DaxosTheReturned(final DaxosTheReturned card) { @@ -96,13 +97,13 @@ public class DaxosTheReturned extends CardImpl { } } - class DaxosSpiritToken extends Token { + DaxosSpiritToken() { super("Spirit", "white and black Spirit enchantment creature token with \"This creature's power and toughness are each equal to the number of experience counters you have.\""); this.setOriginalExpansionSetCode("C15"); - cardType.add(CardType.CREATURE); cardType.add(CardType.ENCHANTMENT); + cardType.add(CardType.CREATURE); color.setWhite(true); color.setBlack(true); subtype.add("Spirit"); @@ -144,4 +145,4 @@ class DaxosSpiritSetPTEffect extends ContinuousEffectImpl { } return false; } -} \ No newline at end of file +} diff --git a/Mage.Tests/src/test/java/org/mage/test/cards/continuous/DaxosTheReturnedTest.java b/Mage.Tests/src/test/java/org/mage/test/cards/continuous/DaxosTheReturnedTest.java new file mode 100644 index 00000000000..13f3a1fc26b --- /dev/null +++ b/Mage.Tests/src/test/java/org/mage/test/cards/continuous/DaxosTheReturnedTest.java @@ -0,0 +1,76 @@ +/* + * 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 org.mage.test.cards.continuous; + +import mage.constants.CardType; +import mage.constants.PhaseStep; +import mage.constants.Zone; +import mage.counters.CounterType; +import mage.filter.Filter; +import org.junit.Test; +import org.mage.test.serverside.base.CardTestPlayerBase; + +/** + * + * @author LevelX2 + */ +public class DaxosTheReturnedTest extends CardTestPlayerBase { + + /** + * Daxos the Returned 's spirit tokens are not counted as enchantment tokens + * and do not count towards experience counters like they should. + */ + @Test + public void testCounterAddAndTokenStates() { + addCard(Zone.BATTLEFIELD, playerA, "Swamp", 8); + addCard(Zone.BATTLEFIELD, playerA, "Plains", 1); + // Whenever you cast an enchantment spell, you get an experience counter. + // {1}{W}{B}: Put a white and black Spirit enchantment creature token onto the battlefield. It has + // "This creature's power and toughness are each equal to the number of experience counters you have." + addCard(Zone.BATTLEFIELD, playerA, "Daxos the Returned"); + + // Whenever an opponent draws a card, Underworld Dreams deals 1 damage to him or her. + addCard(Zone.HAND, playerA, "Underworld Dreams", 2); // {B}{B}{B} + + castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Underworld Dreams"); + castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Underworld Dreams"); + activateAbility(1, PhaseStep.POSTCOMBAT_MAIN, playerA, "{1}{W}{B}"); + setStopAt(2, PhaseStep.PRECOMBAT_MAIN); + execute(); + + assertLife(playerA, 20); + assertLife(playerB, 18); + + assertPermanentCount(playerA, "Underworld Dreams", 2); + assertCounterCount(playerA, CounterType.EXPERIENCE, 2); + assertPowerToughness(playerA, "Spirit", 2, 2, Filter.ComparisonScope.All); + assertType("Spirit", CardType.ENCHANTMENT, "Spirit"); + + } + +} diff --git a/Mage/src/main/java/mage/abilities/effects/common/counter/AddCountersControllerEffect.java b/Mage/src/main/java/mage/abilities/effects/common/counter/AddCountersControllerEffect.java index a2b0e1ae66e..36234a508c0 100644 --- a/Mage/src/main/java/mage/abilities/effects/common/counter/AddCountersControllerEffect.java +++ b/Mage/src/main/java/mage/abilities/effects/common/counter/AddCountersControllerEffect.java @@ -47,8 +47,9 @@ public class AddCountersControllerEffect extends OneShotEffect { /** * * @param counter Counter to add. Includes type and amount. - * @param enchantedEquipped If true, not source controller will get counter, - * but permanent's controller that source enchants or equippes. + * @param enchantedEquipped If true, not source controller will get the + * counter, but the permanent's controller that the source permanent + * enchants or equippes. */ public AddCountersControllerEffect(Counter counter, boolean enchantedEquipped) { super(Outcome.Benefit);