diff --git a/Mage.Client/serverlist.txt b/Mage.Client/serverlist.txt index a4379a04bbd..596b67fadce 100644 --- a/Mage.Client/serverlist.txt +++ b/Mage.Client/serverlist.txt @@ -2,5 +2,6 @@ XMage.de 1 (Europe/Germany) fast :xmage.de:17171 woogerworks (North America/USA) :xmage.woogerworks.info:17171 XMage Testserver (Europe/France) 1.4.8v0 :176.31.186.181:17171 XMage BR (South America/Brazil) :ec2-54-233-67-0.sa-east-1.compute.amazonaws.com:17171 +XMage.tahiti :xmage.tahiti.one:443 Seedds Server (Asia) :115.29.203.80:17171 localhost -> connect to your local server (must be started):localhost:17171 diff --git a/Mage.Tests/src/test/java/org/mage/test/cards/abilities/keywords/SuspendTest.java b/Mage.Tests/src/test/java/org/mage/test/cards/abilities/keywords/SuspendTest.java index 2505b48ac9c..b57d4b3c5a6 100644 --- a/Mage.Tests/src/test/java/org/mage/test/cards/abilities/keywords/SuspendTest.java +++ b/Mage.Tests/src/test/java/org/mage/test/cards/abilities/keywords/SuspendTest.java @@ -163,4 +163,26 @@ public class SuspendTest extends CardTestPlayerBase { assertHandCount(playerA, "Ancestral Vision", 1); } + + /** + * Suppression Field incorrectly makes suspend cards cost 2 more to suspend. + * It made my Rift Bolt cost 2R to suspend instead of R + * + */ + @Test + public void testCostManipulation() { + // Rift Bolt deals 3 damage to target creature or player. + // Suspend 1-{R} + addCard(Zone.HAND, playerA, "Rift Bolt", 1); + addCard(Zone.BATTLEFIELD, playerA, "Mountain", 1); + + addCard(Zone.BATTLEFIELD, playerB, "Suppression Field", 1); + activateAbility(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Suspend"); + + setStopAt(1, PhaseStep.BEGIN_COMBAT); + execute(); + + assertHandCount(playerA, "Rift Bolt", 0); + + } } diff --git a/Mage.Tests/src/test/java/org/mage/test/cards/abilities/keywords/UndyingTest.java b/Mage.Tests/src/test/java/org/mage/test/cards/abilities/keywords/UndyingTest.java index 61333082f40..61b401429c8 100644 --- a/Mage.Tests/src/test/java/org/mage/test/cards/abilities/keywords/UndyingTest.java +++ b/Mage.Tests/src/test/java/org/mage/test/cards/abilities/keywords/UndyingTest.java @@ -251,7 +251,8 @@ public class UndyingTest extends CardTestPlayerBase { // Sacrifice a creature: Add {C}{C} to your mana pool. addCard(Zone.BATTLEFIELD, playerA, "Ashnod's Altar", 1); // Whenever a Human deals damage to you, destroy it. - // Other non-Human creatures you control get +1/+1 and have undying. + // Other non-Human creatures you control get +1/+1 and have undying + // (When this creature dies, if it had no +1/+1 counters on it, return it to the battlefield under its owner's control with a +1/+1 counter on it.). addCard(Zone.BATTLEFIELD, playerA, "Mikaeus, the Unhallowed", 1); // Flying diff --git a/Mage/src/main/java/mage/abilities/keyword/SuspendAbility.java b/Mage/src/main/java/mage/abilities/keyword/SuspendAbility.java index 449e65c4e32..b3dc8dd964d 100644 --- a/Mage/src/main/java/mage/abilities/keyword/SuspendAbility.java +++ b/Mage/src/main/java/mage/abilities/keyword/SuspendAbility.java @@ -32,7 +32,7 @@ import java.util.List; import java.util.UUID; import mage.MageObject; import mage.abilities.Ability; -import mage.abilities.ActivatedAbilityImpl; +import mage.abilities.SpecialAction; import mage.abilities.TriggeredAbilityImpl; import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; import mage.abilities.condition.common.SuspendedCondition; @@ -142,7 +142,7 @@ import mage.target.targetpointer.FixedTarget; * @author LevelX2 * */ -public class SuspendAbility extends ActivatedAbilityImpl { +public class SuspendAbility extends SpecialAction { private String ruleText; private boolean gainedTemporary; @@ -160,7 +160,9 @@ public class SuspendAbility extends ActivatedAbilityImpl { } public SuspendAbility(int suspend, ManaCost cost, Card card, boolean shortRule) { - super(Zone.HAND, new SuspendExileEffect(suspend), cost); + super(Zone.HAND); + this.addCost(cost); + this.addEffect(new SuspendExileEffect(suspend)); this.usesStack = false; if (suspend == Integer.MAX_VALUE) { VariableManaCost xCosts = new VariableManaCost();