fixed Niv-Mizzet Reborn allowing players to select cards that aren't exactly two colors

This commit is contained in:
Evan Kranzler 2019-04-24 12:54:40 -04:00
parent 79f8391fef
commit 9ad7c4c83d

View file

@ -75,11 +75,18 @@ class NivMizzetRebornEffect extends OneShotEffect {
this.color2 = color2;
}
private TargetCard getTarget() {
private FilterCard makeFilter() {
FilterCard filter = new FilterCard(getDescription());
filter.add(new ColorPredicate(new ObjectColor(color1 + color2)));
filter.add(Predicates.not(new ColorPredicate(new ObjectColor(getOtherColors()))));
return new TargetCardInLibrary(filter);
filter.add(new ColorPredicate(new ObjectColor(color1)));
filter.add(new ColorPredicate(new ObjectColor(color2)));
for (char c : getOtherColors().toCharArray()) {
filter.add(Predicates.not(new ColorPredicate(new ObjectColor("" + c))));
}
return filter;
}
private TargetCard getTarget() {
return new TargetCardInLibrary(makeFilter());
}
private String getDescription() {
@ -99,9 +106,7 @@ class NivMizzetRebornEffect extends OneShotEffect {
}
private boolean isInCards(Cards cards, Game game) {
FilterCard filter = new FilterCard(getDescription());
filter.add(new ColorPredicate(new ObjectColor(color1 + color2)));
filter.add(Predicates.not(new ColorPredicate(new ObjectColor(getOtherColors()))));
FilterCard filter = makeFilter();
return cards.getCards(game).stream().anyMatch(card -> filter.match(card, game));
}
}