- Added a method to add a color replacement to ManaPool.

- Fixed a mistype in method name.
This commit is contained in:
Agetian
2014-02-08 16:04:54 +00:00
parent 4b8ed1df67
commit b221b7eaab
2 changed files with 9 additions and 4 deletions

View File

@@ -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);
}

View File

@@ -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))