diff --git a/forge-core/src/main/java/forge/card/mana/ManaCostShard.java b/forge-core/src/main/java/forge/card/mana/ManaCostShard.java
index a0141250fc0..75b5663811e 100644
--- a/forge-core/src/main/java/forge/card/mana/ManaCostShard.java
+++ b/forge-core/src/main/java/forge/card/mana/ManaCostShard.java
@@ -63,6 +63,16 @@ public enum ManaCostShard {
PB(ManaAtom.BLACK | ManaAtom.OR_2_LIFE, "P/B", "PB"),
PR(ManaAtom.RED | ManaAtom.OR_2_LIFE, "P/R", "PR"),
PG(ManaAtom.GREEN | ManaAtom.OR_2_LIFE, "P/G", "PG"),
+ PBG(ManaAtom.BLACK | ManaAtom.GREEN | ManaAtom.OR_2_LIFE, "P/B/G", "PBG"),
+ PBR(ManaAtom.BLACK | ManaAtom.RED | ManaAtom.OR_2_LIFE, "P/B/R", "PBR"),
+ PGU(ManaAtom.GREEN | ManaAtom.BLUE | ManaAtom.OR_2_LIFE, "P/G/U", "PGU"),
+ PGW(ManaAtom.GREEN | ManaAtom.WHITE | ManaAtom.OR_2_LIFE, "P/G/W", "PGW"),
+ PRG(ManaAtom.RED | ManaAtom.GREEN | ManaAtom.OR_2_LIFE, "P/R/G", "PRG"),
+ PRW(ManaAtom.RED | ManaAtom.WHITE | ManaAtom.OR_2_LIFE, "P/R/W", "PRW"),
+ PUB(ManaAtom.BLUE | ManaAtom.BLACK | ManaAtom.OR_2_LIFE, "P/U/B", "PUB"),
+ PUR(ManaAtom.BLUE | ManaAtom.RED | ManaAtom.OR_2_LIFE, "P/U/R", "PUR"),
+ PWB(ManaAtom.WHITE | ManaAtom.BLACK | ManaAtom.OR_2_LIFE, "P/W/B", "PWB"),
+ PWU(ManaAtom.WHITE | ManaAtom.BLUE | ManaAtom.OR_2_LIFE, "P/W/U", "PWU"),
X(ManaAtom.IS_X, "X"),
diff --git a/forge-gui-desktop/src/main/java/forge/toolbox/CardFaceSymbols.java b/forge-gui-desktop/src/main/java/forge/toolbox/CardFaceSymbols.java
index 013fce84fce..780742b3ea1 100644
--- a/forge-gui-desktop/src/main/java/forge/toolbox/CardFaceSymbols.java
+++ b/forge-gui-desktop/src/main/java/forge/toolbox/CardFaceSymbols.java
@@ -78,6 +78,16 @@ public class CardFaceSymbols {
MANA_IMAGES.put("PU", FSkin.getImage(FSkinProp.IMG_MANA_PHRYX_U));
MANA_IMAGES.put("PB", FSkin.getImage(FSkinProp.IMG_MANA_PHRYX_B));
MANA_IMAGES.put("PG", FSkin.getImage(FSkinProp.IMG_MANA_PHRYX_G));
+ MANA_IMAGES.put("PBG", FSkin.getImage(FSkinProp.IMG_MANA_PHRYX_BG));
+ MANA_IMAGES.put("PBR", FSkin.getImage(FSkinProp.IMG_MANA_PHRYX_BR));
+ MANA_IMAGES.put("PGU", FSkin.getImage(FSkinProp.IMG_MANA_PHRYX_GU));
+ MANA_IMAGES.put("PGW", FSkin.getImage(FSkinProp.IMG_MANA_PHRYX_GW));
+ MANA_IMAGES.put("PRG", FSkin.getImage(FSkinProp.IMG_MANA_PHRYX_RG));
+ MANA_IMAGES.put("PRW", FSkin.getImage(FSkinProp.IMG_MANA_PHRYX_RW));
+ MANA_IMAGES.put("PUB", FSkin.getImage(FSkinProp.IMG_MANA_PHRYX_UB));
+ MANA_IMAGES.put("PUR", FSkin.getImage(FSkinProp.IMG_MANA_PHRYX_UR));
+ MANA_IMAGES.put("PWB", FSkin.getImage(FSkinProp.IMG_MANA_PHRYX_WB));
+ MANA_IMAGES.put("PWU", FSkin.getImage(FSkinProp.IMG_MANA_PHRYX_WU));
MANA_IMAGES.put("2W", FSkin.getImage(FSkinProp.IMG_MANA_2W));
MANA_IMAGES.put("2U", FSkin.getImage(FSkinProp.IMG_MANA_2U));
MANA_IMAGES.put("2R", FSkin.getImage(FSkinProp.IMG_MANA_2R));
diff --git a/forge-gui-desktop/src/main/java/forge/toolbox/FSkin.java b/forge-gui-desktop/src/main/java/forge/toolbox/FSkin.java
index bb2e069cb51..fd9c4053484 100644
--- a/forge-gui-desktop/src/main/java/forge/toolbox/FSkin.java
+++ b/forge-gui-desktop/src/main/java/forge/toolbox/FSkin.java
@@ -1089,9 +1089,9 @@ public class FSkin {
return str;
}
//format mana symbols to display as icons
- pattern = "\\{([A-Z0-9]+)\\}|\\{([A-Z0-9]+)/([A-Z0-9]+)\\}"; //fancy pattern needed so "/" can be omitted from replacement
+ pattern = "\\{([A-Z0-9]+)\\}|\\{([A-Z0-9]+)/([A-Z0-9]+)\\}|\\{([A-Z0-9]+)/([A-Z0-9]+)/([A-Z0-9]+)\\}"; //fancy pattern needed so "/" can be omitted from replacement
try {
- replacement = "
";
+ replacement = "
";
str = str.replaceAll(pattern, replacement);
} catch (final MalformedURLException e) {
e.printStackTrace();
@@ -1108,7 +1108,7 @@ public class FSkin {
private static String preferredDir;
private static String preferredName;
private static BufferedImage bimDefaultSprite, bimFavIcon, bimPreferredSprite, bimFoils, bimQuestDraftDeck, bimOldFoils,
- bimDefaultAvatars, bimPreferredAvatars, bimTrophies, bimAbilities, bimManaIcons, bimDefaultSleeve, bimDefaultSleeve2, bimDefaultDeckbox, bimPrefferedSetLogo, bimDefaultWatermark;
+ bimDefaultAvatars, bimPreferredAvatars, bimTrophies, bimAbilities, bimManaIcons, bimPhyrexian, bimDefaultSleeve, bimDefaultSleeve2, bimDefaultDeckbox, bimPrefferedSetLogo, bimDefaultWatermark;
private static int x0, y0, w0, h0, newW, newH, preferredW, preferredH;
private static int[] tempCoords;
private static int defaultFontSize = 12;
@@ -1249,6 +1249,7 @@ public class FSkin {
final File f15 = new File(defaultDir + ForgeConstants.SPRITE_SETLOGO_FILE);
final File f16 = new File(preferredDir + ForgeConstants.SPRITE_SETLOGO_FILE);
final File f17 = new File(defaultDir + ForgeConstants.SPRITE_WATERMARK_FILE);
+ final File f18 = new File(defaultDir +ForgeConstants.SPRITE_PHYREXIAN_FILE);
try {
int p = 0;
@@ -1258,6 +1259,8 @@ public class FSkin {
FView.SINGLETON_INSTANCE.incrementSplashProgessBar(++p);
bimManaIcons = ImageIO.read(f11);
FView.SINGLETON_INSTANCE.incrementSplashProgessBar(++p);
+ bimPhyrexian = ImageIO.read(f18);
+ FView.SINGLETON_INSTANCE.incrementSplashProgessBar(++p);
bimPreferredSprite = ImageIO.read(f2);
FView.SINGLETON_INSTANCE.incrementSplashProgessBar(++p);
bimFoils = ImageIO.read(f3);
@@ -1337,6 +1340,9 @@ public class FSkin {
case MANAICONS:
setImage(prop, bimManaIcons);
break;
+ case PHYREXIAN:
+ setImage(prop, bimPhyrexian);
+ break;
case DECKBOX:
setImage(prop, bimDefaultDeckbox);
break;
@@ -1374,6 +1380,7 @@ public class FSkin {
bimQuestDraftDeck.flush();
bimTrophies.flush();
bimAbilities.flush();
+ bimPhyrexian.flush();
bimManaIcons.flush();
if (bimPreferredAvatars != null) { bimPreferredAvatars.flush(); }
@@ -1392,6 +1399,7 @@ public class FSkin {
bimQuestDraftDeck = null;
bimTrophies = null;
bimAbilities = null;
+ bimPhyrexian = null;
bimManaIcons = null;
//establish encoding symbols
@@ -1436,6 +1444,16 @@ public class FSkin {
addEncodingSymbol("B/P", FSkinProp.IMG_MANA_PHRYX_B);
addEncodingSymbol("R/P", FSkinProp.IMG_MANA_PHRYX_R);
addEncodingSymbol("G/P", FSkinProp.IMG_MANA_PHRYX_G);
+ addEncodingSymbol("P/B/G", FSkinProp.IMG_MANA_PHRYX_BG);
+ addEncodingSymbol("P/B/R", FSkinProp.IMG_MANA_PHRYX_BR);
+ addEncodingSymbol("P/G/U", FSkinProp.IMG_MANA_PHRYX_GU);
+ addEncodingSymbol("P/G/W", FSkinProp.IMG_MANA_PHRYX_GW);
+ addEncodingSymbol("P/R/G", FSkinProp.IMG_MANA_PHRYX_RG);
+ addEncodingSymbol("P/R/W", FSkinProp.IMG_MANA_PHRYX_RW);
+ addEncodingSymbol("P/U/B", FSkinProp.IMG_MANA_PHRYX_UB);
+ addEncodingSymbol("P/U/R", FSkinProp.IMG_MANA_PHRYX_UR);
+ addEncodingSymbol("P/W/B", FSkinProp.IMG_MANA_PHRYX_WB);
+ addEncodingSymbol("P/W/U", FSkinProp.IMG_MANA_PHRYX_WU);
for (int i = 0; i <= 20; i++) {
addEncodingSymbol(String.valueOf(i), FSkinProp.valueOf("IMG_MANA_" + i));
}
diff --git a/forge-gui-mobile/src/forge/assets/FSkin.java b/forge-gui-mobile/src/forge/assets/FSkin.java
index f1c70dfcd97..a11c31a7662 100644
--- a/forge-gui-mobile/src/forge/assets/FSkin.java
+++ b/forge-gui-mobile/src/forge/assets/FSkin.java
@@ -244,6 +244,7 @@ public class FSkin {
final FileHandle f12 = getSkinFile(ForgeConstants.SPRITE_START_FILE);
final FileHandle f13 = getDefaultSkinFile(ForgeConstants.SPRITE_DECKBOX_FILE);
final FileHandle f17 = getDefaultSkinFile(ForgeConstants.SPRITE_CRACKS_FILE);
+ final FileHandle f18 = getDefaultSkinFile(ForgeConstants.SPRITE_PHYREXIAN_FILE);
/*TODO Themeable
final FileHandle f14 = getDefaultSkinFile(ForgeConstants.SPRITE_SETLOGO_FILE);
diff --git a/forge-gui-mobile/src/forge/assets/FSkinImage.java b/forge-gui-mobile/src/forge/assets/FSkinImage.java
index ef094994d03..a2475ed916d 100644
--- a/forge-gui-mobile/src/forge/assets/FSkinImage.java
+++ b/forge-gui-mobile/src/forge/assets/FSkinImage.java
@@ -68,6 +68,16 @@ public enum FSkinImage implements FImage {
MANA_PHRYX_R (FSkinProp.IMG_MANA_PHRYX_R, SourceFile.MANAICONS),
MANA_PHRYX_G (FSkinProp.IMG_MANA_PHRYX_G, SourceFile.MANAICONS),
MANA_PHRYX_B (FSkinProp.IMG_MANA_PHRYX_B, SourceFile.MANAICONS),
+ MANA_PHRYX_BG (FSkinProp.IMG_MANA_PHRYX_BG, SourceFile.PHYREXIAN),
+ MANA_PHRYX_BR (FSkinProp.IMG_MANA_PHRYX_BR, SourceFile.PHYREXIAN),
+ MANA_PHRYX_GU (FSkinProp.IMG_MANA_PHRYX_GU, SourceFile.PHYREXIAN),
+ MANA_PHRYX_GW (FSkinProp.IMG_MANA_PHRYX_GW, SourceFile.PHYREXIAN),
+ MANA_PHRYX_RG (FSkinProp.IMG_MANA_PHRYX_RG, SourceFile.PHYREXIAN),
+ MANA_PHRYX_RW (FSkinProp.IMG_MANA_PHRYX_RW, SourceFile.PHYREXIAN),
+ MANA_PHRYX_UB (FSkinProp.IMG_MANA_PHRYX_UB, SourceFile.PHYREXIAN),
+ MANA_PHRYX_UR (FSkinProp.IMG_MANA_PHRYX_UR, SourceFile.PHYREXIAN),
+ MANA_PHRYX_WB (FSkinProp.IMG_MANA_PHRYX_WB, SourceFile.PHYREXIAN),
+ MANA_PHRYX_WU (FSkinProp.IMG_MANA_PHRYX_WU, SourceFile.PHYREXIAN),
MANA_SNOW (FSkinProp.IMG_MANA_SNOW, SourceFile.MANAICONS),
MANA_0 (FSkinProp.IMG_MANA_0, SourceFile.MANAICONS),
MANA_1 (FSkinProp.IMG_MANA_1, SourceFile.MANAICONS),
@@ -484,6 +494,7 @@ public enum FSkinImage implements FImage {
BUTTONS(ForgeConstants.SPRITE_BUTTONS_FILE),
BTNSTART(ForgeConstants.SPRITE_START_FILE),
MANAICONS(ForgeConstants.SPRITE_MANAICONS_FILE),
+ PHYREXIAN(ForgeConstants.SPRITE_PHYREXIAN_FILE),
SETLOGOS(ForgeConstants.SPRITE_SETLOGO_FILE),
WATERMARKS(ForgeConstants.SPRITE_WATERMARK_FILE),
CRACKS(ForgeConstants.SPRITE_CRACKS_FILE),
diff --git a/forge-gui-mobile/src/forge/assets/TextRenderer.java b/forge-gui-mobile/src/forge/assets/TextRenderer.java
index ca516e63a8b..231e16cfc66 100644
--- a/forge-gui-mobile/src/forge/assets/TextRenderer.java
+++ b/forge-gui-mobile/src/forge/assets/TextRenderer.java
@@ -54,6 +54,16 @@ public class TextRenderer {
symbolLookup.put("B/P", FSkinImage.MANA_PHRYX_B);
symbolLookup.put("R/P", FSkinImage.MANA_PHRYX_R);
symbolLookup.put("G/P", FSkinImage.MANA_PHRYX_G);
+ symbolLookup.put("P/B/G", FSkinImage.MANA_PHRYX_BG);
+ symbolLookup.put("P/B/R", FSkinImage.MANA_PHRYX_BR);
+ symbolLookup.put("P/G/U", FSkinImage.MANA_PHRYX_GU);
+ symbolLookup.put("P/G/W", FSkinImage.MANA_PHRYX_GW);
+ symbolLookup.put("P/R/G", FSkinImage.MANA_PHRYX_RG);
+ symbolLookup.put("P/R/W", FSkinImage.MANA_PHRYX_RW);
+ symbolLookup.put("P/U/B", FSkinImage.MANA_PHRYX_UB);
+ symbolLookup.put("P/U/R", FSkinImage.MANA_PHRYX_UR);
+ symbolLookup.put("P/W/B", FSkinImage.MANA_PHRYX_WB);
+ symbolLookup.put("P/W/U", FSkinImage.MANA_PHRYX_WU);
for (int i = 0; i <= 20; i++) {
symbolLookup.put(String.valueOf(i), FSkinImage.valueOf("MANA_" + i));
}
diff --git a/forge-gui-mobile/src/forge/card/CardFaceSymbols.java b/forge-gui-mobile/src/forge/card/CardFaceSymbols.java
index 0c8becebb2f..4c73a945404 100644
--- a/forge-gui-mobile/src/forge/card/CardFaceSymbols.java
+++ b/forge-gui-mobile/src/forge/card/CardFaceSymbols.java
@@ -62,6 +62,16 @@ public class CardFaceSymbols {
MANA_IMAGES.put("PU", FSkinImage.MANA_PHRYX_U);
MANA_IMAGES.put("PB", FSkinImage.MANA_PHRYX_B);
MANA_IMAGES.put("PG", FSkinImage.MANA_PHRYX_G);
+ MANA_IMAGES.put("PBG", FSkinImage.MANA_PHRYX_BG);
+ MANA_IMAGES.put("PBR", FSkinImage.MANA_PHRYX_BR);
+ MANA_IMAGES.put("PGU", FSkinImage.MANA_PHRYX_GU);
+ MANA_IMAGES.put("PGW", FSkinImage.MANA_PHRYX_GW);
+ MANA_IMAGES.put("PRG", FSkinImage.MANA_PHRYX_RG);
+ MANA_IMAGES.put("PRW", FSkinImage.MANA_PHRYX_RW);
+ MANA_IMAGES.put("PUB", FSkinImage.MANA_PHRYX_UB);
+ MANA_IMAGES.put("PUR", FSkinImage.MANA_PHRYX_UR);
+ MANA_IMAGES.put("PWB", FSkinImage.MANA_PHRYX_WB);
+ MANA_IMAGES.put("PWU", FSkinImage.MANA_PHRYX_WU);
MANA_IMAGES.put("2W", FSkinImage.MANA_2W);
MANA_IMAGES.put("2U", FSkinImage.MANA_2U);
MANA_IMAGES.put("2R", FSkinImage.MANA_2R);
diff --git a/forge-gui/res/skins/default/sprite_phyrexian.png b/forge-gui/res/skins/default/sprite_phyrexian.png
new file mode 100644
index 00000000000..ef09ba3fab3
Binary files /dev/null and b/forge-gui/res/skins/default/sprite_phyrexian.png differ
diff --git a/forge-gui/src/main/java/forge/localinstance/properties/ForgeConstants.java b/forge-gui/src/main/java/forge/localinstance/properties/ForgeConstants.java
index 82888f18c2f..1ce2be201fc 100644
--- a/forge-gui/src/main/java/forge/localinstance/properties/ForgeConstants.java
+++ b/forge-gui/src/main/java/forge/localinstance/properties/ForgeConstants.java
@@ -117,6 +117,7 @@ public final class ForgeConstants {
public static final String SPRITE_DECKBOX_FILE = "sprite_deckbox.png";
public static final String SPRITE_START_FILE = "sprite_start.png";
public static final String SPRITE_MANAICONS_FILE = "sprite_manaicons.png";
+ public static final String SPRITE_PHYREXIAN_FILE = "sprite_phyrexian.png";
public static final String SPRITE_AVATARS_FILE = "sprite_avatars.png";
public static final String SPRITE_CRACKS_FILE = "sprite_cracks.png";
public static final String SPRITE_SLEEVES_FILE = "sprite_sleeves.png";
diff --git a/forge-gui/src/main/java/forge/localinstance/skin/FSkinProp.java b/forge-gui/src/main/java/forge/localinstance/skin/FSkinProp.java
index 381ec7864fa..7069852d424 100644
--- a/forge-gui/src/main/java/forge/localinstance/skin/FSkinProp.java
+++ b/forge-gui/src/main/java/forge/localinstance/skin/FSkinProp.java
@@ -101,6 +101,16 @@ public enum FSkinProp {
IMG_MANA_PHRYX_R (new int[] {412, 166, 80, 80}, PropType.MANAICONS),
IMG_MANA_PHRYX_G (new int[] {330, 166, 80, 80}, PropType.MANAICONS),
IMG_MANA_PHRYX_B (new int[] {248, 84, 80, 80}, PropType.MANAICONS),
+ IMG_MANA_PHRYX_BG (new int[] {439, 222, 199, 199}, PropType.PHYREXIAN),
+ IMG_MANA_PHRYX_BR (new int[] {439, 2, 199, 199}, PropType.PHYREXIAN),
+ IMG_MANA_PHRYX_GU (new int[] {876, 219, 199, 199}, PropType.PHYREXIAN),
+ IMG_MANA_PHRYX_GW (new int[] {878, 2, 199, 199}, PropType.PHYREXIAN),
+ IMG_MANA_PHRYX_RG (new int[] {657, 221, 199, 199}, PropType.PHYREXIAN),
+ IMG_MANA_PHRYX_RW (new int[] {657, 2, 199, 199}, PropType.PHYREXIAN),
+ IMG_MANA_PHRYX_UB (new int[] {219, 2, 199, 199}, PropType.PHYREXIAN),
+ IMG_MANA_PHRYX_UR (new int[] {219, 222, 199, 199}, PropType.PHYREXIAN),
+ IMG_MANA_PHRYX_WB (new int[] {2, 221, 199, 199}, PropType.PHYREXIAN),
+ IMG_MANA_PHRYX_WU (new int[] {2, 2, 199, 199}, PropType.PHYREXIAN),
IMG_MANA_SNOW (new int[] {412, 2, 80, 80}, PropType.MANAICONS),
//generic mana images
@@ -559,6 +569,7 @@ public enum FSkinProp {
BUTTONS,
BTNSTART,
MANAICONS,
+ PHYREXIAN,
PLANAR_CONQUEST,
DECKBOX,
SETLOGO,