diff --git a/forge-core/src/main/java/forge/card/mana/ManaAtom.java b/forge-core/src/main/java/forge/card/mana/ManaAtom.java index eb435b046c8..d795881d958 100644 --- a/forge-core/src/main/java/forge/card/mana/ManaAtom.java +++ b/forge-core/src/main/java/forge/card/mana/ManaAtom.java @@ -55,4 +55,13 @@ public abstract class ManaAtom { } return 0; // generic } + + public static int getIndexOfFirstManaType(final byte color){ + for (int i = 0; i < MANATYPES.length; i++) { + if ((color & MANATYPES[i]) != 0) { + return i; + } + } + return -1; // colorless + } } \ No newline at end of file diff --git a/forge-core/src/main/java/forge/card/mana/ManaCost.java b/forge-core/src/main/java/forge/card/mana/ManaCost.java index a21050b7f90..9ef2e5b3b18 100644 --- a/forge-core/src/main/java/forge/card/mana/ManaCost.java +++ b/forge-core/src/main/java/forge/card/mana/ManaCost.java @@ -167,7 +167,7 @@ public final class ManaCost implements Comparable, Iterable, Iterable, Iterable e : deck) { @@ -130,10 +131,10 @@ public enum CStatistics implements ICDoc { } public static int[] calculateShards(final ItemPool deck) { - final int[] counts = new int[5]; // in WUBRG order + final int[] counts = new int[6]; // in WUBRGC order for (final PaperCard c : deck.toFlatList()) { final int[] cShards = c.getRules().getManaCost().getColorShardCounts(); - for (int i = 0; i < 5; i++) { + for (int i = 0; i < 6; i++) { counts[i] += cShards[i]; } } diff --git a/forge-gui-desktop/src/main/java/forge/screens/deckeditor/views/VStatistics.java b/forge-gui-desktop/src/main/java/forge/screens/deckeditor/views/VStatistics.java index 05cbc7e9f8c..6ec42bb056f 100644 --- a/forge-gui-desktop/src/main/java/forge/screens/deckeditor/views/VStatistics.java +++ b/forge-gui-desktop/src/main/java/forge/screens/deckeditor/views/VStatistics.java @@ -62,6 +62,7 @@ public enum VStatistics implements IVDoc { private final FLabel lblBlackShard = buildLabel(StatTypes.BLACK, true); private final FLabel lblRedShard = buildLabel(StatTypes.RED, false); private final FLabel lblGreenShard = buildLabel(StatTypes.GREEN, false); + private final FLabel lblColorlessShard = buildLabel(StatTypes.COLORLESS, false); // Card type labels private final FLabel lblArtifact = buildLabel(StatTypes.ARTIFACT, true); @@ -169,6 +170,7 @@ public enum VStatistics implements IVDoc { pnlStats.add(lblBlackShard, constraints); pnlStats.add(lblRedShard, constraints); pnlStats.add(lblGreenShard, constraints); + pnlStats.add(lblColorlessShard, constraints); } //========== Overridden methods @@ -249,6 +251,7 @@ public enum VStatistics implements IVDoc { public FLabel getLblRedShard() { return lblRedShard; } /** @return {@link forge.toolbox.FLabel} */ public FLabel getLblWhiteShard() { return lblWhiteShard; } + public FLabel getLblColorlessShard() { return lblColorlessShard; } /** @return {@link forge.toolbox.FLabel} */ public FLabel getLblArtifact() { return lblArtifact; }