remove some cases of ColorSet.iterator

This commit is contained in:
Hans Mackowiak
2025-09-13 17:11:06 +02:00
parent b49efb28f9
commit 1033a0b595
2 changed files with 16 additions and 15 deletions

View File

@@ -17,6 +17,7 @@
*/
package forge.card.mana;
import forge.card.ColorSet;
import forge.util.BinaryUtil;
/**
@@ -186,6 +187,10 @@ public enum ManaCostShard {
return (byte)(this.shard & COLORS_SUPERPOSITION);
}
public final ColorSet getColor() {
return ColorSet.fromMask(getColorMask());
}
/**
* Value of.
*

View File

@@ -76,24 +76,20 @@ public abstract class PaperCardPredicates {
}
private static final class PredicateColor implements Predicate<PaperCard> {
private final byte operand;
private final MagicColor.Color operand;
private PredicateColor(final byte color) {
private PredicateColor(final MagicColor.Color color) {
this.operand = color;
}
@Override
public boolean test(final PaperCard card) {
for (final byte color : card.getRules().getColor()) {
if (color == operand) {
return true;
}
if (card.getRules().getColor().toEnumSet().contains(operand)) {
return true;
}
if (card.getRules().getType().hasType(CardType.CoreType.Land)) {
for (final byte color : card.getRules().getColorIdentity()) {
if (color == operand) {
return true;
}
if (card.getRules().getColorIdentity().toEnumSet().contains(operand)) {
return true;
}
}
return false;
@@ -199,11 +195,11 @@ public abstract class PaperCardPredicates {
public static final Predicate<PaperCard> IS_RARE_OR_MYTHIC = PaperCardPredicates.IS_RARE.or(PaperCardPredicates.IS_MYTHIC_RARE);
public static final Predicate<PaperCard> IS_SPECIAL = new PredicateRarity(CardRarity.Special);
public static final Predicate<PaperCard> IS_BASIC_LAND_RARITY = new PredicateRarity(CardRarity.BasicLand);
public static final Predicate<PaperCard> IS_BLACK = new PredicateColor(MagicColor.BLACK);
public static final Predicate<PaperCard> IS_BLUE = new PredicateColor(MagicColor.BLUE);
public static final Predicate<PaperCard> IS_GREEN = new PredicateColor(MagicColor.GREEN);
public static final Predicate<PaperCard> IS_RED = new PredicateColor(MagicColor.RED);
public static final Predicate<PaperCard> IS_WHITE = new PredicateColor(MagicColor.WHITE);
public static final Predicate<PaperCard> IS_BLACK = new PredicateColor(MagicColor.Color.BLACK);
public static final Predicate<PaperCard> IS_BLUE = new PredicateColor(MagicColor.Color.BLUE);
public static final Predicate<PaperCard> IS_GREEN = new PredicateColor(MagicColor.Color.GREEN);
public static final Predicate<PaperCard> IS_RED = new PredicateColor(MagicColor.Color.RED);
public static final Predicate<PaperCard> IS_WHITE = new PredicateColor(MagicColor.Color.WHITE);
public static final Predicate<PaperCard> IS_COLORLESS = paperCard -> paperCard.getRules().getColor().isColorless();
public static final Predicate<PaperCard> IS_UNREBALANCED = PaperCard::isUnRebalanced;
public static final Predicate<PaperCard> IS_REBALANCED = PaperCard::isRebalanced;