From b221b7eaab527efe565ea404a5f18dd33522fa02 Mon Sep 17 00:00:00 2001 From: Agetian Date: Sat, 8 Feb 2014 16:04:54 +0000 Subject: [PATCH] - Added a method to add a color replacement to ManaPool. - Fixed a mistype in method name. --- .../src/main/java/forge/game/mana/ManaCostBeingPaid.java | 4 ++-- forge-game/src/main/java/forge/game/mana/ManaPool.java | 9 +++++++-- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/forge-game/src/main/java/forge/game/mana/ManaCostBeingPaid.java b/forge-game/src/main/java/forge/game/mana/ManaCostBeingPaid.java index c683a28fc9b..b45e9b47993 100644 --- a/forge-game/src/main/java/forge/game/mana/ManaCostBeingPaid.java +++ b/forge-game/src/main/java/forge/game/mana/ManaCostBeingPaid.java @@ -281,7 +281,7 @@ public class ManaCostBeingPaid { } }; - return tryPayMana(colorMask, Iterables.filter(unpaidShards.keySet(), predCanBePaid), pool.getPosibleColorUses(colorMask)); + return tryPayMana(colorMask, Iterables.filter(unpaidShards.keySet(), predCanBePaid), pool.getPossibleColorUses(colorMask)); } /** @@ -306,7 +306,7 @@ public class ManaCostBeingPaid { }; byte inColor = mana.getColorCode(); - byte outColor = pool.getPosibleColorUses(inColor); + byte outColor = pool.getPossibleColorUses(inColor); return tryPayMana(inColor, Iterables.filter(unpaidShards.keySet(), predCanBePaid), outColor); } diff --git a/forge-game/src/main/java/forge/game/mana/ManaPool.java b/forge-game/src/main/java/forge/game/mana/ManaPool.java index 624d3255b7e..ebe1fef22f7 100644 --- a/forge-game/src/main/java/forge/game/mana/ManaPool.java +++ b/forge-game/src/main/java/forge/game/mana/ManaPool.java @@ -421,18 +421,23 @@ public class ManaPool { private final byte[] colorConversionMatrix = new byte[6]; private static final byte[] identityMatrix = { MagicColor.WHITE, MagicColor.BLUE, MagicColor.BLACK, MagicColor.RED, MagicColor.GREEN, 0 }; + public void addColorReplacement(byte originalColor, byte replacementColor) { + int rowIdx = MagicColor.getIndexOfFirstColor(originalColor); + colorConversionMatrix[rowIdx] |= replacementColor; + } + public void restoreColorReplacements() { for(int i = 0; i < colorConversionMatrix.length; i++) colorConversionMatrix[i] = identityMatrix[i]; } - public byte getPosibleColorUses(byte color) { + public byte getPossibleColorUses(byte color) { int rowIdx = MagicColor.getIndexOfFirstColor(color); return colorConversionMatrix[rowIdx < 0 ? identityMatrix.length - 1 : rowIdx]; } public boolean canPayForShardWithColor(ManaCostShard shard, byte color) { - byte line = getPosibleColorUses(color); + byte line = getPossibleColorUses(color); for(int i = 0; i < MagicColor.NUMBER_OR_COLORS; i++) { byte outColor = MagicColor.WUBRG[i]; if (( line & outColor) != 0 && shard.canBePaidWithManaOfColor(outColor))