From 100c130cec47f18862483d521d3b634ba1265fea Mon Sep 17 00:00:00 2001 From: Evan Kranzler Date: Thu, 10 Sep 2020 12:40:01 -0400 Subject: [PATCH] [ZNR] fixed party count including opposing creatures, updated test (fixes #7061) --- .../cards/dynamicvalue/PartyCountTest.java | 47 ++++++++++++++++++- .../dynamicvalue/common/PartyCount.java | 4 +- 2 files changed, 47 insertions(+), 4 deletions(-) diff --git a/Mage.Tests/src/test/java/org/mage/test/cards/dynamicvalue/PartyCountTest.java b/Mage.Tests/src/test/java/org/mage/test/cards/dynamicvalue/PartyCountTest.java index f029153b43a..bff8f66c3cf 100644 --- a/Mage.Tests/src/test/java/org/mage/test/cards/dynamicvalue/PartyCountTest.java +++ b/Mage.Tests/src/test/java/org/mage/test/cards/dynamicvalue/PartyCountTest.java @@ -9,6 +9,7 @@ import mage.constants.PhaseStep; import mage.constants.SubType; import mage.constants.Zone; import org.junit.Test; +import org.mage.test.player.TestPlayer; import org.mage.test.serverside.base.CardTestPlayerBase; /** @@ -17,8 +18,12 @@ import org.mage.test.serverside.base.CardTestPlayerBase; public class PartyCountTest extends CardTestPlayerBase { private void makeTester() { + makeTester(playerA); + } + + private void makeTester(TestPlayer player) { addCustomCardWithAbility( - "tester", playerA, + "tester", player, new SimpleActivatedAbility( new GainLifeEffect(PartyCount.instance), new ManaCostsImpl<>("{0}") ) @@ -26,16 +31,37 @@ public class PartyCountTest extends CardTestPlayerBase { } private void useTester() { - activateAbility(1, PhaseStep.POSTCOMBAT_MAIN, playerA, "{0}:"); + useTester(playerA); + } + + private void useTester(TestPlayer player) { + activateAbility(1, PhaseStep.POSTCOMBAT_MAIN, player, "{0}:"); } private void makeCreature(String name, SubType... subTypes) { + makeCreature(name, playerA, subTypes); + } + + private void makeCreature(String name, TestPlayer player, SubType... subTypes) { addCustomCardWithAbility( name, playerA, null, null, CardType.CREATURE, "{1}", Zone.BATTLEFIELD, subTypes ); } + @Test + public void testNoMembers() { + makeTester(); + + useTester(); + setStopAt(1, PhaseStep.END_TURN); + setStrictChooseMode(true); + execute(); + assertAllCommandsUsed(); + + assertLife(playerA, 20); + } + @Test public void testSingleMember() { makeTester(); @@ -143,6 +169,23 @@ public class PartyCountTest extends CardTestPlayerBase { assertLife(playerA, 24); } + @Test + public void testOpponent() { + makeTester(playerA); + makeTester(playerB); + makeCreature("crt1", playerB, SubType.CLERIC); + + useTester(playerA); + useTester(playerB); + setStopAt(1, PhaseStep.END_TURN); + setStrictChooseMode(true); + execute(); + assertAllCommandsUsed(); + + assertLife(playerA, 20); + assertLife(playerB, 21); + } + @Test public void testChangelings() { makeTester(); diff --git a/Mage/src/main/java/mage/abilities/dynamicvalue/common/PartyCount.java b/Mage/src/main/java/mage/abilities/dynamicvalue/common/PartyCount.java index 61dd36c6be2..5c79e4535c3 100644 --- a/Mage/src/main/java/mage/abilities/dynamicvalue/common/PartyCount.java +++ b/Mage/src/main/java/mage/abilities/dynamicvalue/common/PartyCount.java @@ -5,7 +5,7 @@ import mage.abilities.dynamicvalue.DynamicValue; import mage.abilities.effects.Effect; import mage.constants.SubType; import mage.filter.FilterPermanent; -import mage.filter.common.FilterCreaturePermanent; +import mage.filter.common.FilterControlledCreaturePermanent; import mage.filter.predicate.Predicates; import mage.game.Game; import mage.game.permanent.Permanent; @@ -18,7 +18,7 @@ import java.util.stream.Collectors; */ public enum PartyCount implements DynamicValue { instance; - private static final FilterPermanent filter = new FilterCreaturePermanent(); + private static final FilterPermanent filter = new FilterControlledCreaturePermanent(); static { filter.add(Predicates.or(