[ZNR] fixed party count including opposing creatures, updated test (fixes #7061)

This commit is contained in:
Evan Kranzler 2020-09-10 12:40:01 -04:00
parent bdef7a0d2b
commit 100c130cec
2 changed files with 47 additions and 4 deletions

View file

@ -9,6 +9,7 @@ import mage.constants.PhaseStep;
import mage.constants.SubType; import mage.constants.SubType;
import mage.constants.Zone; import mage.constants.Zone;
import org.junit.Test; import org.junit.Test;
import org.mage.test.player.TestPlayer;
import org.mage.test.serverside.base.CardTestPlayerBase; import org.mage.test.serverside.base.CardTestPlayerBase;
/** /**
@ -17,8 +18,12 @@ import org.mage.test.serverside.base.CardTestPlayerBase;
public class PartyCountTest extends CardTestPlayerBase { public class PartyCountTest extends CardTestPlayerBase {
private void makeTester() { private void makeTester() {
makeTester(playerA);
}
private void makeTester(TestPlayer player) {
addCustomCardWithAbility( addCustomCardWithAbility(
"tester", playerA, "tester", player,
new SimpleActivatedAbility( new SimpleActivatedAbility(
new GainLifeEffect(PartyCount.instance), new ManaCostsImpl<>("{0}") new GainLifeEffect(PartyCount.instance), new ManaCostsImpl<>("{0}")
) )
@ -26,16 +31,37 @@ public class PartyCountTest extends CardTestPlayerBase {
} }
private void useTester() { 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) { private void makeCreature(String name, SubType... subTypes) {
makeCreature(name, playerA, subTypes);
}
private void makeCreature(String name, TestPlayer player, SubType... subTypes) {
addCustomCardWithAbility( addCustomCardWithAbility(
name, playerA, null, null, name, playerA, null, null,
CardType.CREATURE, "{1}", Zone.BATTLEFIELD, subTypes 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 @Test
public void testSingleMember() { public void testSingleMember() {
makeTester(); makeTester();
@ -143,6 +169,23 @@ public class PartyCountTest extends CardTestPlayerBase {
assertLife(playerA, 24); 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 @Test
public void testChangelings() { public void testChangelings() {
makeTester(); makeTester();

View file

@ -5,7 +5,7 @@ import mage.abilities.dynamicvalue.DynamicValue;
import mage.abilities.effects.Effect; import mage.abilities.effects.Effect;
import mage.constants.SubType; import mage.constants.SubType;
import mage.filter.FilterPermanent; import mage.filter.FilterPermanent;
import mage.filter.common.FilterCreaturePermanent; import mage.filter.common.FilterControlledCreaturePermanent;
import mage.filter.predicate.Predicates; import mage.filter.predicate.Predicates;
import mage.game.Game; import mage.game.Game;
import mage.game.permanent.Permanent; import mage.game.permanent.Permanent;
@ -18,7 +18,7 @@ import java.util.stream.Collectors;
*/ */
public enum PartyCount implements DynamicValue { public enum PartyCount implements DynamicValue {
instance; instance;
private static final FilterPermanent filter = new FilterCreaturePermanent(); private static final FilterPermanent filter = new FilterControlledCreaturePermanent();
static { static {
filter.add(Predicates.or( filter.add(Predicates.or(