add new Phyrexian/color pair hybrid mana shards

This commit is contained in:
Tim Mocny
2022-02-11 04:23:04 +00:00
committed by Michael Kamensky
parent e574147e25
commit a7f2d8f31e
10 changed files with 85 additions and 3 deletions

View File

@@ -63,6 +63,16 @@ public enum ManaCostShard {
PB(ManaAtom.BLACK | ManaAtom.OR_2_LIFE, "P/B", "PB"), PB(ManaAtom.BLACK | ManaAtom.OR_2_LIFE, "P/B", "PB"),
PR(ManaAtom.RED | ManaAtom.OR_2_LIFE, "P/R", "PR"), PR(ManaAtom.RED | ManaAtom.OR_2_LIFE, "P/R", "PR"),
PG(ManaAtom.GREEN | ManaAtom.OR_2_LIFE, "P/G", "PG"), 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"), X(ManaAtom.IS_X, "X"),

View File

@@ -78,6 +78,16 @@ public class CardFaceSymbols {
MANA_IMAGES.put("PU", FSkin.getImage(FSkinProp.IMG_MANA_PHRYX_U)); 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("PB", FSkin.getImage(FSkinProp.IMG_MANA_PHRYX_B));
MANA_IMAGES.put("PG", FSkin.getImage(FSkinProp.IMG_MANA_PHRYX_G)); 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("2W", FSkin.getImage(FSkinProp.IMG_MANA_2W));
MANA_IMAGES.put("2U", FSkin.getImage(FSkinProp.IMG_MANA_2U)); MANA_IMAGES.put("2U", FSkin.getImage(FSkinProp.IMG_MANA_2U));
MANA_IMAGES.put("2R", FSkin.getImage(FSkinProp.IMG_MANA_2R)); MANA_IMAGES.put("2R", FSkin.getImage(FSkinProp.IMG_MANA_2R));

View File

@@ -1089,9 +1089,9 @@ public class FSkin {
return str; return str;
} }
//format mana symbols to display as icons //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 { try {
replacement = "<img src=\"" + new File(ForgeConstants.CACHE_SYMBOLS_DIR + "/$1$2$3.png").toURI().toURL().toString() + "\" width=" + SYMBOL_WIDTH + " height=" + SYMBOL_HEIGHT + ">"; replacement = "<img src=\"" + new File(ForgeConstants.CACHE_SYMBOLS_DIR + "/$1$2$3$4$5$6.png").toURI().toURL().toString() + "\" width=" + SYMBOL_WIDTH + " height=" + SYMBOL_HEIGHT + ">";
str = str.replaceAll(pattern, replacement); str = str.replaceAll(pattern, replacement);
} catch (final MalformedURLException e) { } catch (final MalformedURLException e) {
e.printStackTrace(); e.printStackTrace();
@@ -1108,7 +1108,7 @@ public class FSkin {
private static String preferredDir; private static String preferredDir;
private static String preferredName; private static String preferredName;
private static BufferedImage bimDefaultSprite, bimFavIcon, bimPreferredSprite, bimFoils, bimQuestDraftDeck, bimOldFoils, 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 x0, y0, w0, h0, newW, newH, preferredW, preferredH;
private static int[] tempCoords; private static int[] tempCoords;
private static int defaultFontSize = 12; private static int defaultFontSize = 12;
@@ -1249,6 +1249,7 @@ public class FSkin {
final File f15 = new File(defaultDir + ForgeConstants.SPRITE_SETLOGO_FILE); final File f15 = new File(defaultDir + ForgeConstants.SPRITE_SETLOGO_FILE);
final File f16 = new File(preferredDir + 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 f17 = new File(defaultDir + ForgeConstants.SPRITE_WATERMARK_FILE);
final File f18 = new File(defaultDir +ForgeConstants.SPRITE_PHYREXIAN_FILE);
try { try {
int p = 0; int p = 0;
@@ -1258,6 +1259,8 @@ public class FSkin {
FView.SINGLETON_INSTANCE.incrementSplashProgessBar(++p); FView.SINGLETON_INSTANCE.incrementSplashProgessBar(++p);
bimManaIcons = ImageIO.read(f11); bimManaIcons = ImageIO.read(f11);
FView.SINGLETON_INSTANCE.incrementSplashProgessBar(++p); FView.SINGLETON_INSTANCE.incrementSplashProgessBar(++p);
bimPhyrexian = ImageIO.read(f18);
FView.SINGLETON_INSTANCE.incrementSplashProgessBar(++p);
bimPreferredSprite = ImageIO.read(f2); bimPreferredSprite = ImageIO.read(f2);
FView.SINGLETON_INSTANCE.incrementSplashProgessBar(++p); FView.SINGLETON_INSTANCE.incrementSplashProgessBar(++p);
bimFoils = ImageIO.read(f3); bimFoils = ImageIO.read(f3);
@@ -1337,6 +1340,9 @@ public class FSkin {
case MANAICONS: case MANAICONS:
setImage(prop, bimManaIcons); setImage(prop, bimManaIcons);
break; break;
case PHYREXIAN:
setImage(prop, bimPhyrexian);
break;
case DECKBOX: case DECKBOX:
setImage(prop, bimDefaultDeckbox); setImage(prop, bimDefaultDeckbox);
break; break;
@@ -1374,6 +1380,7 @@ public class FSkin {
bimQuestDraftDeck.flush(); bimQuestDraftDeck.flush();
bimTrophies.flush(); bimTrophies.flush();
bimAbilities.flush(); bimAbilities.flush();
bimPhyrexian.flush();
bimManaIcons.flush(); bimManaIcons.flush();
if (bimPreferredAvatars != null) { bimPreferredAvatars.flush(); } if (bimPreferredAvatars != null) { bimPreferredAvatars.flush(); }
@@ -1392,6 +1399,7 @@ public class FSkin {
bimQuestDraftDeck = null; bimQuestDraftDeck = null;
bimTrophies = null; bimTrophies = null;
bimAbilities = null; bimAbilities = null;
bimPhyrexian = null;
bimManaIcons = null; bimManaIcons = null;
//establish encoding symbols //establish encoding symbols
@@ -1436,6 +1444,16 @@ public class FSkin {
addEncodingSymbol("B/P", FSkinProp.IMG_MANA_PHRYX_B); addEncodingSymbol("B/P", FSkinProp.IMG_MANA_PHRYX_B);
addEncodingSymbol("R/P", FSkinProp.IMG_MANA_PHRYX_R); addEncodingSymbol("R/P", FSkinProp.IMG_MANA_PHRYX_R);
addEncodingSymbol("G/P", FSkinProp.IMG_MANA_PHRYX_G); 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++) { for (int i = 0; i <= 20; i++) {
addEncodingSymbol(String.valueOf(i), FSkinProp.valueOf("IMG_MANA_" + i)); addEncodingSymbol(String.valueOf(i), FSkinProp.valueOf("IMG_MANA_" + i));
} }

View File

@@ -244,6 +244,7 @@ public class FSkin {
final FileHandle f12 = getSkinFile(ForgeConstants.SPRITE_START_FILE); final FileHandle f12 = getSkinFile(ForgeConstants.SPRITE_START_FILE);
final FileHandle f13 = getDefaultSkinFile(ForgeConstants.SPRITE_DECKBOX_FILE); final FileHandle f13 = getDefaultSkinFile(ForgeConstants.SPRITE_DECKBOX_FILE);
final FileHandle f17 = getDefaultSkinFile(ForgeConstants.SPRITE_CRACKS_FILE); final FileHandle f17 = getDefaultSkinFile(ForgeConstants.SPRITE_CRACKS_FILE);
final FileHandle f18 = getDefaultSkinFile(ForgeConstants.SPRITE_PHYREXIAN_FILE);
/*TODO Themeable /*TODO Themeable
final FileHandle f14 = getDefaultSkinFile(ForgeConstants.SPRITE_SETLOGO_FILE); final FileHandle f14 = getDefaultSkinFile(ForgeConstants.SPRITE_SETLOGO_FILE);

View File

@@ -68,6 +68,16 @@ public enum FSkinImage implements FImage {
MANA_PHRYX_R (FSkinProp.IMG_MANA_PHRYX_R, SourceFile.MANAICONS), MANA_PHRYX_R (FSkinProp.IMG_MANA_PHRYX_R, SourceFile.MANAICONS),
MANA_PHRYX_G (FSkinProp.IMG_MANA_PHRYX_G, SourceFile.MANAICONS), MANA_PHRYX_G (FSkinProp.IMG_MANA_PHRYX_G, SourceFile.MANAICONS),
MANA_PHRYX_B (FSkinProp.IMG_MANA_PHRYX_B, 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_SNOW (FSkinProp.IMG_MANA_SNOW, SourceFile.MANAICONS),
MANA_0 (FSkinProp.IMG_MANA_0, SourceFile.MANAICONS), MANA_0 (FSkinProp.IMG_MANA_0, SourceFile.MANAICONS),
MANA_1 (FSkinProp.IMG_MANA_1, SourceFile.MANAICONS), MANA_1 (FSkinProp.IMG_MANA_1, SourceFile.MANAICONS),
@@ -484,6 +494,7 @@ public enum FSkinImage implements FImage {
BUTTONS(ForgeConstants.SPRITE_BUTTONS_FILE), BUTTONS(ForgeConstants.SPRITE_BUTTONS_FILE),
BTNSTART(ForgeConstants.SPRITE_START_FILE), BTNSTART(ForgeConstants.SPRITE_START_FILE),
MANAICONS(ForgeConstants.SPRITE_MANAICONS_FILE), MANAICONS(ForgeConstants.SPRITE_MANAICONS_FILE),
PHYREXIAN(ForgeConstants.SPRITE_PHYREXIAN_FILE),
SETLOGOS(ForgeConstants.SPRITE_SETLOGO_FILE), SETLOGOS(ForgeConstants.SPRITE_SETLOGO_FILE),
WATERMARKS(ForgeConstants.SPRITE_WATERMARK_FILE), WATERMARKS(ForgeConstants.SPRITE_WATERMARK_FILE),
CRACKS(ForgeConstants.SPRITE_CRACKS_FILE), CRACKS(ForgeConstants.SPRITE_CRACKS_FILE),

View File

@@ -54,6 +54,16 @@ public class TextRenderer {
symbolLookup.put("B/P", FSkinImage.MANA_PHRYX_B); symbolLookup.put("B/P", FSkinImage.MANA_PHRYX_B);
symbolLookup.put("R/P", FSkinImage.MANA_PHRYX_R); symbolLookup.put("R/P", FSkinImage.MANA_PHRYX_R);
symbolLookup.put("G/P", FSkinImage.MANA_PHRYX_G); 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++) { for (int i = 0; i <= 20; i++) {
symbolLookup.put(String.valueOf(i), FSkinImage.valueOf("MANA_" + i)); symbolLookup.put(String.valueOf(i), FSkinImage.valueOf("MANA_" + i));
} }

View File

@@ -62,6 +62,16 @@ public class CardFaceSymbols {
MANA_IMAGES.put("PU", FSkinImage.MANA_PHRYX_U); MANA_IMAGES.put("PU", FSkinImage.MANA_PHRYX_U);
MANA_IMAGES.put("PB", FSkinImage.MANA_PHRYX_B); MANA_IMAGES.put("PB", FSkinImage.MANA_PHRYX_B);
MANA_IMAGES.put("PG", FSkinImage.MANA_PHRYX_G); 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("2W", FSkinImage.MANA_2W);
MANA_IMAGES.put("2U", FSkinImage.MANA_2U); MANA_IMAGES.put("2U", FSkinImage.MANA_2U);
MANA_IMAGES.put("2R", FSkinImage.MANA_2R); MANA_IMAGES.put("2R", FSkinImage.MANA_2R);

Binary file not shown.

After

Width:  |  Height:  |  Size: 115 KiB

View File

@@ -117,6 +117,7 @@ public final class ForgeConstants {
public static final String SPRITE_DECKBOX_FILE = "sprite_deckbox.png"; 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_START_FILE = "sprite_start.png";
public static final String SPRITE_MANAICONS_FILE = "sprite_manaicons.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_AVATARS_FILE = "sprite_avatars.png";
public static final String SPRITE_CRACKS_FILE = "sprite_cracks.png"; public static final String SPRITE_CRACKS_FILE = "sprite_cracks.png";
public static final String SPRITE_SLEEVES_FILE = "sprite_sleeves.png"; public static final String SPRITE_SLEEVES_FILE = "sprite_sleeves.png";

View File

@@ -101,6 +101,16 @@ public enum FSkinProp {
IMG_MANA_PHRYX_R (new int[] {412, 166, 80, 80}, PropType.MANAICONS), 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_G (new int[] {330, 166, 80, 80}, PropType.MANAICONS),
IMG_MANA_PHRYX_B (new int[] {248, 84, 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), IMG_MANA_SNOW (new int[] {412, 2, 80, 80}, PropType.MANAICONS),
//generic mana images //generic mana images
@@ -559,6 +569,7 @@ public enum FSkinProp {
BUTTONS, BUTTONS,
BTNSTART, BTNSTART,
MANAICONS, MANAICONS,
PHYREXIAN,
PLANAR_CONQUEST, PLANAR_CONQUEST,
DECKBOX, DECKBOX,
SETLOGO, SETLOGO,