add ManaCostShard Map and cleanup Desktop and Mobile (#5215)

* add ManaCostShard Map and cleanup Desktop

* refactor mobile and remove SourceFile enum

* refactor mobile using ManaCostShard

* Fix Phyrexian Symbols and better String=>SkinProp mapping
This commit is contained in:
Hans Mackowiak
2024-05-18 12:13:19 +02:00
committed by GitHub
parent c71c2c25e1
commit d384da986b
16 changed files with 682 additions and 870 deletions

View File

@@ -50,74 +50,10 @@ public class CardFaceSymbols {
DECK_COLORSET.put("U", FSkin.getImage(FSkinProp.IMG_MANA_U));
DECK_COLORSET.put("W", FSkin.getImage(FSkinProp.IMG_MANA_W));
for (int i = 0; i <= 20; i++) {
MANA_IMAGES.put(String.valueOf(i), FSkin.getImage(FSkinProp.valueOf("IMG_MANA_" + i)));
for (Map.Entry<String, FSkinProp> e : FSkinProp.MANA_IMG.entrySet()) {
MANA_IMAGES.put(e.getKey(), FSkin.getImage(e.getValue()));
}
MANA_IMAGES.put("X", FSkin.getImage(FSkinProp.IMG_MANA_X));
MANA_IMAGES.put("Y", FSkin.getImage(FSkinProp.IMG_MANA_Y));
MANA_IMAGES.put("Z", FSkin.getImage(FSkinProp.IMG_MANA_Z));
MANA_IMAGES.put("C", FSkin.getImage(FSkinProp.IMG_MANA_COLORLESS));
MANA_IMAGES.put("B", FSkin.getImage(FSkinProp.IMG_MANA_B));
MANA_IMAGES.put("BG", FSkin.getImage(FSkinProp.IMG_MANA_HYBRID_BG));
MANA_IMAGES.put("BR", FSkin.getImage(FSkinProp.IMG_MANA_HYBRID_BR));
MANA_IMAGES.put("G", FSkin.getImage(FSkinProp.IMG_MANA_G));
MANA_IMAGES.put("GU", FSkin.getImage(FSkinProp.IMG_MANA_HYBRID_GU));
MANA_IMAGES.put("GW", FSkin.getImage(FSkinProp.IMG_MANA_HYBRID_GW));
MANA_IMAGES.put("R", FSkin.getImage(FSkinProp.IMG_MANA_R));
MANA_IMAGES.put("RG", FSkin.getImage(FSkinProp.IMG_MANA_HYBRID_RG));
MANA_IMAGES.put("RW", FSkin.getImage(FSkinProp.IMG_MANA_HYBRID_RW));
MANA_IMAGES.put("U", FSkin.getImage(FSkinProp.IMG_MANA_U));
MANA_IMAGES.put("UB", FSkin.getImage(FSkinProp.IMG_MANA_HYBRID_UB));
MANA_IMAGES.put("UR", FSkin.getImage(FSkinProp.IMG_MANA_HYBRID_UR));
MANA_IMAGES.put("W", FSkin.getImage(FSkinProp.IMG_MANA_W));
MANA_IMAGES.put("WB", FSkin.getImage(FSkinProp.IMG_MANA_HYBRID_WB));
MANA_IMAGES.put("WU", FSkin.getImage(FSkinProp.IMG_MANA_HYBRID_WU));
MANA_IMAGES.put("P", FSkin.getImage(FSkinProp.IMG_MANA_PHRYX));
MANA_IMAGES.put("PW", FSkin.getImage(FSkinProp.IMG_MANA_PHRYX_W));
MANA_IMAGES.put("PR", FSkin.getImage(FSkinProp.IMG_MANA_PHRYX_R));
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("WP", FSkin.getImage(FSkinProp.IMG_MANA_PHRYX_W));
MANA_IMAGES.put("RP", FSkin.getImage(FSkinProp.IMG_MANA_PHRYX_R));
MANA_IMAGES.put("UP", FSkin.getImage(FSkinProp.IMG_MANA_PHRYX_U));
MANA_IMAGES.put("BP", FSkin.getImage(FSkinProp.IMG_MANA_PHRYX_B));
MANA_IMAGES.put("GP", 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("BGP", FSkin.getImage(FSkinProp.IMG_MANA_PHRYX_BG));
MANA_IMAGES.put("BRP", FSkin.getImage(FSkinProp.IMG_MANA_PHRYX_BR));
MANA_IMAGES.put("GUP", FSkin.getImage(FSkinProp.IMG_MANA_PHRYX_GU));
MANA_IMAGES.put("GWP", FSkin.getImage(FSkinProp.IMG_MANA_PHRYX_GW));
MANA_IMAGES.put("RGP", FSkin.getImage(FSkinProp.IMG_MANA_PHRYX_RG));
MANA_IMAGES.put("RWP", FSkin.getImage(FSkinProp.IMG_MANA_PHRYX_RW));
MANA_IMAGES.put("UBP", FSkin.getImage(FSkinProp.IMG_MANA_PHRYX_UB));
MANA_IMAGES.put("URP", FSkin.getImage(FSkinProp.IMG_MANA_PHRYX_UR));
MANA_IMAGES.put("WBP", FSkin.getImage(FSkinProp.IMG_MANA_PHRYX_WB));
MANA_IMAGES.put("WUP", 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));
MANA_IMAGES.put("2G", FSkin.getImage(FSkinProp.IMG_MANA_2G));
MANA_IMAGES.put("2B", FSkin.getImage(FSkinProp.IMG_MANA_2B));
MANA_IMAGES.put("CW", FSkin.getImage(FSkinProp.IMG_MANA_HYBRID_CW));
MANA_IMAGES.put("CU", FSkin.getImage(FSkinProp.IMG_MANA_HYBRID_CU));
MANA_IMAGES.put("CR", FSkin.getImage(FSkinProp.IMG_MANA_HYBRID_CR));
MANA_IMAGES.put("CG", FSkin.getImage(FSkinProp.IMG_MANA_HYBRID_CG));
MANA_IMAGES.put("CB", FSkin.getImage(FSkinProp.IMG_MANA_HYBRID_CB));
MANA_IMAGES.put("S", FSkin.getImage(FSkinProp.IMG_MANA_SNOW));
MANA_IMAGES.put("T", FSkin.getImage(FSkinProp.IMG_TAP));
MANA_IMAGES.put("Q", FSkin.getImage(FSkinProp.IMG_UNTAP));
MANA_IMAGES.put("E", FSkin.getImage(FSkinProp.IMG_ENERGY, 40, 40));
MANA_IMAGES.put("TK", FSkin.getImage(FSkinProp.IMG_TICKET, 40, 40));
MANA_IMAGES.put("EXPERIENCE", FSkin.getImage(FSkinProp.IMG_EXPERIENCE, 40, 30));

View File

@@ -1418,73 +1418,10 @@ public class FSkin {
}
}
addEncodingSymbol("W", FSkinProp.IMG_MANA_W);
addEncodingSymbol("U", FSkinProp.IMG_MANA_U);
addEncodingSymbol("B", FSkinProp.IMG_MANA_B);
addEncodingSymbol("R", FSkinProp.IMG_MANA_R);
addEncodingSymbol("G", FSkinProp.IMG_MANA_G);
addEncodingSymbol("C", FSkinProp.IMG_MANA_COLORLESS);
addEncodingSymbol("W/U", FSkinProp.IMG_MANA_HYBRID_WU);
addEncodingSymbol("U/B", FSkinProp.IMG_MANA_HYBRID_UB);
addEncodingSymbol("B/R", FSkinProp.IMG_MANA_HYBRID_BR);
addEncodingSymbol("R/G", FSkinProp.IMG_MANA_HYBRID_RG);
addEncodingSymbol("G/W", FSkinProp.IMG_MANA_HYBRID_GW);
addEncodingSymbol("W/B", FSkinProp.IMG_MANA_HYBRID_WB);
addEncodingSymbol("U/R", FSkinProp.IMG_MANA_HYBRID_UR);
addEncodingSymbol("B/G", FSkinProp.IMG_MANA_HYBRID_BG);
addEncodingSymbol("R/W", FSkinProp.IMG_MANA_HYBRID_RW);
addEncodingSymbol("G/U", FSkinProp.IMG_MANA_HYBRID_GU);
addEncodingSymbol("2/W", FSkinProp.IMG_MANA_2W);
addEncodingSymbol("2/U", FSkinProp.IMG_MANA_2U);
addEncodingSymbol("2/B", FSkinProp.IMG_MANA_2B);
addEncodingSymbol("2/R", FSkinProp.IMG_MANA_2R);
addEncodingSymbol("2/G", FSkinProp.IMG_MANA_2G);
addEncodingSymbol("C/W", FSkinProp.IMG_MANA_HYBRID_CW);
addEncodingSymbol("C/U", FSkinProp.IMG_MANA_HYBRID_CU);
addEncodingSymbol("C/B", FSkinProp.IMG_MANA_HYBRID_CB);
addEncodingSymbol("C/R", FSkinProp.IMG_MANA_HYBRID_CR);
addEncodingSymbol("C/G", FSkinProp.IMG_MANA_HYBRID_CG);
addEncodingSymbol("P", FSkinProp.IMG_MANA_PHRYX);
addEncodingSymbol("P/W", FSkinProp.IMG_MANA_PHRYX_W);
addEncodingSymbol("P/U", FSkinProp.IMG_MANA_PHRYX_U);
addEncodingSymbol("P/B", FSkinProp.IMG_MANA_PHRYX_B);
addEncodingSymbol("P/R", FSkinProp.IMG_MANA_PHRYX_R);
addEncodingSymbol("P/G", FSkinProp.IMG_MANA_PHRYX_G);
addEncodingSymbol("W/P", FSkinProp.IMG_MANA_PHRYX_W);
addEncodingSymbol("U/P", FSkinProp.IMG_MANA_PHRYX_U);
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);
addEncodingSymbol("B/G/P", FSkinProp.IMG_MANA_PHRYX_BG);
addEncodingSymbol("B/R/P", FSkinProp.IMG_MANA_PHRYX_BR);
addEncodingSymbol("G/U/P", FSkinProp.IMG_MANA_PHRYX_GU);
addEncodingSymbol("G/W/P", FSkinProp.IMG_MANA_PHRYX_GW);
addEncodingSymbol("R/G/P", FSkinProp.IMG_MANA_PHRYX_RG);
addEncodingSymbol("R/W/P", FSkinProp.IMG_MANA_PHRYX_RW);
addEncodingSymbol("U/B/P", FSkinProp.IMG_MANA_PHRYX_UB);
addEncodingSymbol("U/R/P", FSkinProp.IMG_MANA_PHRYX_UR);
addEncodingSymbol("W/B/P", FSkinProp.IMG_MANA_PHRYX_WB);
addEncodingSymbol("W/U/P", FSkinProp.IMG_MANA_PHRYX_WU);
for (int i = 0; i <= 20; i++) {
addEncodingSymbol(String.valueOf(i), FSkinProp.valueOf("IMG_MANA_" + i));
for (Map.Entry<String, FSkinProp> e : FSkinProp.MANA_IMG.entrySet()) {
addEncodingSymbol(e.getKey(), e.getValue());
}
addEncodingSymbol("X", FSkinProp.IMG_MANA_X);
addEncodingSymbol("Y", FSkinProp.IMG_MANA_Y);
addEncodingSymbol("Z", FSkinProp.IMG_MANA_Z);
addEncodingSymbol("CHAOS", FSkinProp.IMG_CHAOS);
addEncodingSymbol("Q", FSkinProp.IMG_UNTAP);
addEncodingSymbol("S", FSkinProp.IMG_MANA_SNOW);
addEncodingSymbol("T", FSkinProp.IMG_TAP);
addEncodingSymbol("E", FSkinProp.IMG_ENERGY);
addEncodingSymbol("TK", FSkinProp.IMG_TICKET);
addEncodingSymbol("EXPERIENCE", FSkinProp.IMG_EXPERIENCE);

View File

@@ -996,10 +996,7 @@ public class FCardImageRenderer {
}
pieces.add(new TextPiece(subtext.substring(parsed, sbMatcher.start()), isReminder));
}
String symbol = sbMatcher.group(1) != null ? sbMatcher.group(1) :
// switch position of "P" and mana color for phyrexian mana symbol.
"P".equals(sbMatcher.group(3)) ? sbMatcher.group(3) + sbMatcher.group(2) :
sbMatcher.group(2) + sbMatcher.group(3);
String symbol = sbMatcher.group(1) != null ? sbMatcher.group(1) : sbMatcher.group(2) + sbMatcher.group(3);
symbols.add(symbol);
parsed = sbMatcher.end();
}