mirror of
https://github.com/magefree/mage.git
synced 2026-01-10 04:42:07 -08:00
GUI: added restriction card icon to permanent (contains all applied restrictions and requirements, #7471)
This commit is contained in:
parent
ebaa92c537
commit
eaa510b265
7 changed files with 87 additions and 14 deletions
|
|
@ -1,5 +1,7 @@
|
|||
package org.mage.test.serverside;
|
||||
|
||||
import mage.abilities.hint.HintUtils;
|
||||
import mage.abilities.icon.CardIconType;
|
||||
import mage.constants.PhaseStep;
|
||||
import mage.constants.Zone;
|
||||
import mage.view.CardView;
|
||||
|
|
@ -338,4 +340,46 @@ public class CardIconsTest extends CardTestPlayerBase {
|
|||
setStopAt(1, PhaseStep.END_TURN);
|
||||
execute();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void test_RestrictionsIcon() {
|
||||
// Felhide Brawler can't block unless you control another Minotaur.
|
||||
addCard(Zone.BATTLEFIELD, playerA, "Felhide Brawler", 1);
|
||||
//
|
||||
addCard(Zone.HAND, playerA, "Felhide Brawler", 1); // {1}{B}
|
||||
addCard(Zone.BATTLEFIELD, playerA, "Swamp", 2);
|
||||
|
||||
// active restriction
|
||||
runCode("has restrictions", 1, PhaseStep.PRECOMBAT_MAIN, playerA, (info, player, game) -> {
|
||||
GameView gameView = getGameView(player);
|
||||
PlayerView playerView = gameView.getPlayers().get(0);
|
||||
Assert.assertEquals("player", player.getName(), playerView.getName());
|
||||
CardView cardView = playerView.getBattlefield().values().stream().filter(p -> p.getName().equals("Felhide Brawler")).findFirst().orElse(null);
|
||||
Assert.assertNotNull("must have 1 creature in battlefield", cardView);
|
||||
Assert.assertTrue("creature must have restriction hint", cardView.getRules().stream().anyMatch(s -> s.startsWith(HintUtils.HINT_ICON_RESTRICT)));
|
||||
Assert.assertTrue("creature must have restriction icon", cardView.getCardIcons().stream().anyMatch(icon -> icon.getIconType().equals(CardIconType.OTHER_HAS_RESTRICTIONS)));
|
||||
});
|
||||
|
||||
// cast another creature and disable restriction
|
||||
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Felhide Brawler");
|
||||
waitStackResolved(1, PhaseStep.PRECOMBAT_MAIN);
|
||||
runCode("no restrictions", 1, PhaseStep.PRECOMBAT_MAIN, playerA, (info, player, game) -> {
|
||||
GameView gameView = getGameView(player);
|
||||
PlayerView playerView = gameView.getPlayers().get(0);
|
||||
Assert.assertEquals("player", player.getName(), playerView.getName());
|
||||
Assert.assertEquals("must have 2 creature in battlefield", 2, playerView.getBattlefield().values()
|
||||
.stream()
|
||||
.filter(p -> p.getName().equals("Felhide Brawler"))
|
||||
.count()
|
||||
);
|
||||
CardView cardView = playerView.getBattlefield().values().stream().filter(p -> p.getName().equals("Felhide Brawler")).findFirst().orElse(null);
|
||||
Assert.assertNotNull("can't find creature", cardView);
|
||||
Assert.assertFalse("creature must not have restriction hint", cardView.getRules().stream().anyMatch(s -> s.startsWith(HintUtils.HINT_ICON_RESTRICT)));
|
||||
Assert.assertFalse("creature must not have restriction icon", cardView.getCardIcons().stream().anyMatch(icon -> icon.getIconType().equals(CardIconType.OTHER_HAS_RESTRICTIONS)));
|
||||
});
|
||||
|
||||
setStrictChooseMode(true);
|
||||
setStopAt(1, PhaseStep.END_TURN);
|
||||
execute();
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue