mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-16 02:38:02 +00:00
- Added a method to add a color replacement to ManaPool.
- Fixed a mistype in method name.
This commit is contained in:
@@ -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 inColor = mana.getColorCode();
|
||||||
byte outColor = pool.getPosibleColorUses(inColor);
|
byte outColor = pool.getPossibleColorUses(inColor);
|
||||||
return tryPayMana(inColor, Iterables.filter(unpaidShards.keySet(), predCanBePaid), outColor);
|
return tryPayMana(inColor, Iterables.filter(unpaidShards.keySet(), predCanBePaid), outColor);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -421,18 +421,23 @@ public class ManaPool {
|
|||||||
private final byte[] colorConversionMatrix = new byte[6];
|
private final byte[] colorConversionMatrix = new byte[6];
|
||||||
private static final byte[] identityMatrix = { MagicColor.WHITE, MagicColor.BLUE, MagicColor.BLACK, MagicColor.RED, MagicColor.GREEN, 0 };
|
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() {
|
public void restoreColorReplacements() {
|
||||||
for(int i = 0; i < colorConversionMatrix.length; i++)
|
for(int i = 0; i < colorConversionMatrix.length; i++)
|
||||||
colorConversionMatrix[i] = identityMatrix[i];
|
colorConversionMatrix[i] = identityMatrix[i];
|
||||||
}
|
}
|
||||||
|
|
||||||
public byte getPosibleColorUses(byte color) {
|
public byte getPossibleColorUses(byte color) {
|
||||||
int rowIdx = MagicColor.getIndexOfFirstColor(color);
|
int rowIdx = MagicColor.getIndexOfFirstColor(color);
|
||||||
return colorConversionMatrix[rowIdx < 0 ? identityMatrix.length - 1 : rowIdx];
|
return colorConversionMatrix[rowIdx < 0 ? identityMatrix.length - 1 : rowIdx];
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean canPayForShardWithColor(ManaCostShard shard, byte color) {
|
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++) {
|
for(int i = 0; i < MagicColor.NUMBER_OR_COLORS; i++) {
|
||||||
byte outColor = MagicColor.WUBRG[i];
|
byte outColor = MagicColor.WUBRG[i];
|
||||||
if (( line & outColor) != 0 && shard.canBePaidWithManaOfColor(outColor))
|
if (( line & outColor) != 0 && shard.canBePaidWithManaOfColor(outColor))
|
||||||
|
|||||||
Reference in New Issue
Block a user