mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-12 16:58:57 +00:00
Draft Ranking on ImageView
- add an option to show draft card rankings
This commit is contained in:
@@ -58,10 +58,10 @@ public class FDeckViewer extends FDialog {
|
||||
private FDeckViewer(final Deck deck0) {
|
||||
this.deck = deck0;
|
||||
this.setTitle(deck.getName());
|
||||
this.cardManager = new CardManager(null, false, false) {
|
||||
this.cardManager = new CardManager(null, false, false, false) {
|
||||
@Override //show hovered card in Image View in dialog instead of main Detail/Picture panes
|
||||
protected ImageView<PaperCard> createImageView(final ItemManagerModel<PaperCard> model0) {
|
||||
return new ImageView<PaperCard>(this, model0) {
|
||||
return new ImageView<PaperCard>(this, model0, false) {
|
||||
@Override
|
||||
protected void showHoveredItem(PaperCard item) {
|
||||
final CardView card = CardView.getCardForUi(item);
|
||||
|
||||
@@ -34,8 +34,8 @@ public class CardManager extends ItemManager<PaperCard> {
|
||||
|
||||
private boolean QuestMode;
|
||||
|
||||
public CardManager(final CDetailPicture cDetailPicture, final boolean wantUnique0, final boolean qm) {
|
||||
super(PaperCard.class, cDetailPicture, wantUnique0);
|
||||
public CardManager(final CDetailPicture cDetailPicture, final boolean wantUnique0, final boolean qm, boolean sr) {
|
||||
super(PaperCard.class, cDetailPicture, wantUnique0, sr);
|
||||
QuestMode = qm;
|
||||
}
|
||||
|
||||
|
||||
@@ -68,7 +68,7 @@ public final class DeckManager extends ItemManager<DeckProxy> implements IHasGam
|
||||
* @param gt
|
||||
*/
|
||||
public DeckManager(final GameType gt, final CDetailPicture cDetailPicture) {
|
||||
super(DeckProxy.class, cDetailPicture, true);
|
||||
super(DeckProxy.class, cDetailPicture, true, false);
|
||||
this.gameType = gt;
|
||||
|
||||
this.addSelectionListener(new ListSelectionListener() {
|
||||
|
||||
@@ -73,6 +73,7 @@ public abstract class ItemManager<T extends InventoryItem> extends JPanel implem
|
||||
private boolean alwaysNonUnique = false;
|
||||
private boolean allowMultipleSelections = false;
|
||||
private boolean hideFilters = false;
|
||||
private boolean showRanking = false;
|
||||
private UiCommand itemActivateCommand;
|
||||
private ContextMenuBuilder contextMenuBuilder;
|
||||
private final Class<T> genericType;
|
||||
@@ -125,7 +126,8 @@ public abstract class ItemManager<T extends InventoryItem> extends JPanel implem
|
||||
/**
|
||||
* ItemManager Constructor
|
||||
*/
|
||||
protected ItemManager(final Class<T> genericType0, final CDetailPicture cDetailPicture, final boolean wantUnique0) {
|
||||
protected ItemManager(final Class<T> genericType0, final CDetailPicture cDetailPicture, final boolean wantUnique0, final boolean showRanking) {
|
||||
this.showRanking = showRanking;
|
||||
this.cDetailPicture = cDetailPicture;
|
||||
this.genericType = genericType0;
|
||||
this.wantUnique = wantUnique0;
|
||||
@@ -143,7 +145,7 @@ public abstract class ItemManager<T extends InventoryItem> extends JPanel implem
|
||||
}
|
||||
|
||||
protected ImageView<T> createImageView(final ItemManagerModel<T> model0) {
|
||||
return new ImageView<>(this, model0);
|
||||
return new ImageView<>(this, model0, this.showRanking);
|
||||
}
|
||||
|
||||
public final CDetailPicture getCDetailPicture() {
|
||||
|
||||
@@ -17,7 +17,7 @@ public final class SpellShopManager extends ItemManager<InventoryItem> {
|
||||
private final boolean wantUnique02;
|
||||
|
||||
public SpellShopManager(final CDetailPicture cDetailPicture, final boolean wantUnique0) {
|
||||
super(InventoryItem.class, cDetailPicture, wantUnique0);
|
||||
super(InventoryItem.class, cDetailPicture, wantUnique0, false);
|
||||
cDetailPicture2 = cDetailPicture;
|
||||
wantUnique02 = wantUnique0;
|
||||
}
|
||||
@@ -34,7 +34,7 @@ public final class SpellShopManager extends ItemManager<InventoryItem> {
|
||||
|
||||
@Override
|
||||
protected void buildAddFilterMenu(JMenu menu) {
|
||||
CardManager CM = new CardManager(cDetailPicture2, wantUnique02, true);
|
||||
CardManager CM = new CardManager(cDetailPicture2, wantUnique02, true, false);
|
||||
CM.buildAddFilterMenu(menu, this);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -9,7 +9,7 @@ import forge.screens.match.controllers.CDetailPicture;
|
||||
|
||||
public class TokenManager extends ItemManager<PaperToken> {
|
||||
public TokenManager(final CDetailPicture cDetailPicture, final boolean wantUnique0) {
|
||||
super(PaperToken.class, cDetailPicture, wantUnique0);
|
||||
super(PaperToken.class, cDetailPicture, wantUnique0, false);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -6,6 +6,7 @@ import forge.deck.DeckProxy;
|
||||
import forge.deck.io.DeckPreferences;
|
||||
import forge.game.card.Card;
|
||||
import forge.game.card.CardView;
|
||||
import forge.gamemodes.limited.CardRanker;
|
||||
import forge.gui.framework.ILocalRepaint;
|
||||
import forge.item.IPaperCard;
|
||||
import forge.item.InventoryItem;
|
||||
@@ -145,7 +146,7 @@ public class ImageView<T extends InventoryItem> extends ItemView<T> {
|
||||
private final FComboBoxWrapper<Object> cbPileByOptions = new FComboBoxWrapper<>();
|
||||
private final FComboBoxWrapper<Integer> cbColumnCount = new FComboBoxWrapper<>();
|
||||
|
||||
public ImageView(final ItemManager<T> itemManager0, final ItemManagerModel<T> model0) {
|
||||
public ImageView(final ItemManager<T> itemManager0, final ItemManagerModel<T> model0, final boolean showRanking) {
|
||||
super(itemManager0, model0);
|
||||
|
||||
SItemManagerUtil.populateImageViewOptions(itemManager0, cbGroupByOptions, cbPileByOptions);
|
||||
@@ -192,6 +193,7 @@ public class ImageView<T extends InventoryItem> extends ItemView<T> {
|
||||
|
||||
//setup display
|
||||
display = new CardViewDisplay();
|
||||
display.setShowRanking(showRanking);
|
||||
display.addMouseListener(new FMouseAdapter() {
|
||||
@Override
|
||||
public void onLeftMouseDown(MouseEvent e) {
|
||||
@@ -1000,11 +1002,16 @@ public class ImageView<T extends InventoryItem> extends ItemView<T> {
|
||||
|
||||
@SuppressWarnings("serial")
|
||||
private class CardViewDisplay extends JPanel implements ILocalRepaint {
|
||||
boolean showRanking = false;
|
||||
private CardViewDisplay() {
|
||||
setOpaque(false);
|
||||
setFocusable(true);
|
||||
}
|
||||
|
||||
public void setShowRanking(boolean showRanking) {
|
||||
this.showRanking = showRanking;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void repaintSelf() {
|
||||
repaint(getVisibleRect());
|
||||
@@ -1223,6 +1230,32 @@ public class ImageView<T extends InventoryItem> extends ItemView<T> {
|
||||
}
|
||||
CardPanel.drawFoilEffect(g, card, bounds.x, bounds.y, bounds.width, bounds.height, borderSize);
|
||||
}
|
||||
//draw draft ranking
|
||||
if (showRanking && FModel.getPreferences().getPrefBoolean(ForgePreferences.FPref.UI_OVERLAY_DRAFT_RANKING)) {
|
||||
double score = CardRanker.getRawScore((PaperCard) item);
|
||||
int draftRank = score <= 0 ? 0 : score > 99 ? 99 : (int) Math.round(CardRanker.getRawScore((PaperCard) item));
|
||||
String value = String.valueOf(draftRank);
|
||||
g.setColor(Color.white);
|
||||
Shape clip = g.getClip();
|
||||
g.setClip(bounds);
|
||||
int scale = (int)(g.getFontMetrics().getHeight()*3.5f);
|
||||
int h = (int)(g.getFontMetrics().getHeight()/3.5f);
|
||||
int w = g.getFontMetrics().stringWidth(value);
|
||||
int x = (int)(bounds.x+bounds.width/2);
|
||||
int y = (int)(bounds.y+bounds.height/2);
|
||||
if (draftRank >= 90)
|
||||
FSkin.drawImage(g, FSkin.getImage(FSkinProp.IMG_DRAFTRANK_S), x-scale/2, y-h-scale/2, scale, scale);
|
||||
else if (draftRank >= 80 && draftRank <= 89)
|
||||
FSkin.drawImage(g, FSkin.getImage(FSkinProp.IMG_DRAFTRANK_A), x-scale/2, y-h-scale/2, scale, scale);
|
||||
else if (draftRank >= 60 && draftRank <= 79)
|
||||
FSkin.drawImage(g, FSkin.getImage(FSkinProp.IMG_DRAFTRANK_B), x-scale/2, y-h-scale/2, scale, scale);
|
||||
else if (draftRank >= 25 && draftRank <= 59)
|
||||
FSkin.drawImage(g, FSkin.getImage(FSkinProp.IMG_DRAFTRANK_C), x-scale/2, y-h-scale/2, scale, scale);
|
||||
else
|
||||
FSkin.drawImage(g, FSkin.getImage(FSkinProp.IMG_DRAFTRANK_D), x-scale/2, y-h-scale/2, scale, scale);
|
||||
g.drawString(value, x-w/2, y);
|
||||
g.setClip(clip);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -104,8 +104,8 @@ public final class CEditorCommander extends CDeckEditor<Deck> {
|
||||
customCards.getAllCardsNoAlt()), PaperCard.class);
|
||||
}
|
||||
|
||||
CardManager catalogManager = new CardManager(getCDetailPicture(), true, false);
|
||||
CardManager deckManager = new CardManager(getCDetailPicture(), false, false);
|
||||
CardManager catalogManager = new CardManager(getCDetailPicture(), true, false, false);
|
||||
CardManager deckManager = new CardManager(getCDetailPicture(), false, false, false);
|
||||
deckManager.setAlwaysNonUnique(true);
|
||||
|
||||
catalogManager.setCaption("Catalog");
|
||||
|
||||
@@ -131,8 +131,8 @@ public final class CEditorConstructed extends CDeckEditor<Deck> {
|
||||
default:
|
||||
}
|
||||
|
||||
catalogManager = new CardManager(getCDetailPicture(), wantUnique, false);
|
||||
deckManager = new CardManager(getCDetailPicture(), false, false);
|
||||
catalogManager = new CardManager(getCDetailPicture(), wantUnique, false, false);
|
||||
deckManager = new CardManager(getCDetailPicture(), false, false, false);
|
||||
deckManager.setAlwaysNonUnique(true);
|
||||
|
||||
final Localizer localizer = Localizer.getInstance();
|
||||
|
||||
@@ -76,8 +76,8 @@ public class CEditorDraftingProcess extends ACEditorBase<PaperCard, DeckGroup> {
|
||||
public CEditorDraftingProcess(final CDetailPicture cDetailPicture0) {
|
||||
super(FScreen.DRAFTING_PROCESS, cDetailPicture0, GameType.Draft);
|
||||
|
||||
final CardManager catalogManager = new CardManager(cDetailPicture0, false, false);
|
||||
final CardManager deckManager = new CardManager(cDetailPicture0, false, false);
|
||||
final CardManager catalogManager = new CardManager(cDetailPicture0, false, false, true);
|
||||
final CardManager deckManager = new CardManager(cDetailPicture0, false, false, true);
|
||||
|
||||
//hide filters and options panel so more of pack is visible by default
|
||||
catalogManager.setHideViewOptions(1, true);
|
||||
|
||||
@@ -85,8 +85,8 @@ public final class CEditorLimited extends CDeckEditor<DeckGroup> {
|
||||
public CEditorLimited(final IStorage<DeckGroup> deckMap0, final FScreen screen0, final CDetailPicture cDetailPicture0) {
|
||||
super(screen0, cDetailPicture0, GameType.Sealed);
|
||||
|
||||
final CardManager catalogManager = new CardManager(cDetailPicture0, false, false);
|
||||
final CardManager deckManager = new CardManager(cDetailPicture0, false, false);
|
||||
final CardManager catalogManager = new CardManager(cDetailPicture0, false, false, FScreen.DECK_EDITOR_DRAFT.equals(screen0));
|
||||
final CardManager deckManager = new CardManager(cDetailPicture0, false, false, FScreen.DECK_EDITOR_DRAFT.equals(screen0));
|
||||
|
||||
catalogManager.setCaption("Sideboard");
|
||||
|
||||
|
||||
@@ -123,8 +123,8 @@ public final class CEditorQuest extends CDeckEditor<Deck> {
|
||||
|
||||
this.questData = questData0;
|
||||
|
||||
final CardManager catalogManager = new CardManager(cDetailPicture0, false, true);
|
||||
final CardManager deckManager = new CardManager(cDetailPicture0, false, true);
|
||||
final CardManager catalogManager = new CardManager(cDetailPicture0, false, true, false);
|
||||
final CardManager deckManager = new CardManager(cDetailPicture0, false, true, false);
|
||||
|
||||
catalogManager.setCaption("Quest Inventory");
|
||||
|
||||
|
||||
@@ -79,8 +79,8 @@ public class CEditorQuestDraftingProcess extends ACEditorBase<PaperCard, DeckGro
|
||||
public CEditorQuestDraftingProcess(final CDetailPicture cDetailPicture0) {
|
||||
super(FScreen.DRAFTING_PROCESS, cDetailPicture0, GameType.QuestDraft);
|
||||
|
||||
final CardManager catalogManager = new CardManager(cDetailPicture0, false, false);
|
||||
final CardManager deckManager = new CardManager(cDetailPicture0, false, false);
|
||||
final CardManager catalogManager = new CardManager(cDetailPicture0, false, false, true);
|
||||
final CardManager deckManager = new CardManager(cDetailPicture0, false, false, true);
|
||||
|
||||
//hide filters and options panel so more of pack is visible by default
|
||||
catalogManager.setHideViewOptions(1, true);
|
||||
|
||||
@@ -101,8 +101,8 @@ public final class CEditorQuestLimited extends CDeckEditor<DeckGroup> {
|
||||
|
||||
this.questData = questData0;
|
||||
|
||||
final CardManager catalogManager = new CardManager(cDetailPicture0, false, true);
|
||||
final CardManager deckManager = new CardManager(cDetailPicture0, false, true);
|
||||
final CardManager catalogManager = new CardManager(cDetailPicture0, false, true, false);
|
||||
final CardManager deckManager = new CardManager(cDetailPicture0, false, true, false);
|
||||
|
||||
catalogManager.setCaption("Sideboard");
|
||||
|
||||
|
||||
@@ -70,8 +70,8 @@ public final class CEditorVariant extends CDeckEditor<Deck> {
|
||||
this.cardPoolCondition = poolCondition;
|
||||
this.sectionMode = deckSection0;
|
||||
|
||||
final CardManager catalogManager = new CardManager(cDetailPicture0, true, false);
|
||||
final CardManager deckManager = new CardManager(cDetailPicture0, false, false);
|
||||
final CardManager catalogManager = new CardManager(cDetailPicture0, true, false, false);
|
||||
final CardManager deckManager = new CardManager(cDetailPicture0, false, false, false);
|
||||
deckManager.setAlwaysNonUnique(true);
|
||||
|
||||
final Localizer localizer = Localizer.getInstance();
|
||||
|
||||
@@ -79,8 +79,8 @@ public class CEditorWinstonProcess extends ACEditorBase<PaperCard, DeckGroup> {
|
||||
public CEditorWinstonProcess(final CDetailPicture cDetailPicture0) {
|
||||
super(FScreen.DRAFTING_PROCESS, cDetailPicture0, GameType.Draft);
|
||||
|
||||
final CardManager catalogManager = new CardManager(cDetailPicture0, false, false);
|
||||
final CardManager deckManager = new CardManager(cDetailPicture0, false, false);
|
||||
final CardManager catalogManager = new CardManager(cDetailPicture0, false, false, true);
|
||||
final CardManager deckManager = new CardManager(cDetailPicture0, false, false, true);
|
||||
|
||||
//hide filters and options panel so more of pack is visible by default
|
||||
catalogManager.setHideViewOptions(1, true);
|
||||
|
||||
@@ -169,6 +169,7 @@ public enum CSubmenuPreferences implements ICDoc {
|
||||
lstControls.add(Pair.of(view.getCbLoadCardsLazily(), FPref.LOAD_CARD_SCRIPTS_LAZILY));
|
||||
lstControls.add(Pair.of(view.getCbLoadHistoricFormats(), FPref.LOAD_HISTORIC_FORMATS));
|
||||
lstControls.add(Pair.of(view.getCbSmartCardArtSelectionOpt(), FPref.UI_SMART_CARD_ART));
|
||||
lstControls.add(Pair.of(view.getCbShowDraftRanking(), FPref.UI_OVERLAY_DRAFT_RANKING));
|
||||
|
||||
|
||||
for(final Pair<JCheckBox, FPref> kv : lstControls) {
|
||||
|
||||
@@ -118,6 +118,7 @@ public enum VSubmenuPreferences implements IVSubmenu<CSubmenuPreferences> {
|
||||
private final JCheckBox cbUseExperimentalNetworkStream = new OptionsCheckBox(localizer.getMessage("lblExperimentalNetworkCompatibility"));
|
||||
private final JCheckBox cbCardArtCoreExpansionsOnlyOpt = new OptionsCheckBox(localizer.getMessage("lblPrefArtExpansionOnly"));
|
||||
private final JCheckBox cbSmartCardArtSelectionOpt = new OptionsCheckBox(localizer.getMessage("lblSmartCardArtOpt"));
|
||||
private final JCheckBox cbShowDraftRanking = new OptionsCheckBox(localizer.getMessage("lblShowDraftRankingOverlay"));
|
||||
|
||||
private final Map<FPref, KeyboardShortcutField> shortcutFields = new HashMap<>();
|
||||
|
||||
@@ -299,6 +300,10 @@ public enum VSubmenuPreferences implements IVSubmenu<CSubmenuPreferences> {
|
||||
pnlPrefs.add(new NoteLabel(localizer.getMessage("nlSmartCardArtOpt")), "w 80%!, h 22px!, gap 28px 0 0 0, span 2 1");
|
||||
pnlPrefs.add(new NoteLabel(localizer.getMessage("nlSmartCardArtOptNote")), descriptionConstraints);
|
||||
|
||||
//Draft Ranking Overlay
|
||||
pnlPrefs.add(cbShowDraftRanking, titleConstraints);
|
||||
pnlPrefs.add(new NoteLabel(localizer.getMessage("nlShowDraftRankingOverlay")), descriptionConstraints);
|
||||
|
||||
// Advanced
|
||||
pnlPrefs.add(new SectionLabel(localizer.getMessage("AdvancedSettings")), sectionConstraints);
|
||||
|
||||
@@ -819,6 +824,9 @@ public enum VSubmenuPreferences implements IVSubmenu<CSubmenuPreferences> {
|
||||
/** @return {@link javax.swing.JCheckBox} */
|
||||
public JCheckBox getCbSmartCardArtSelectionOpt() { return cbSmartCardArtSelectionOpt; }
|
||||
|
||||
/** @return {@link javax.swing.JCheckBox} */
|
||||
public JCheckBox getCbShowDraftRanking() { return cbShowDraftRanking; }
|
||||
|
||||
/** @return {@link javax.swing.JCheckBox} */
|
||||
public JCheckBox getCbEnforceDeckLegality() {
|
||||
return cbEnforceDeckLegality;
|
||||
|
||||
@@ -39,7 +39,7 @@ public enum VWorkshopCatalog implements IVDoc<CWorkshopCatalog> {
|
||||
|
||||
//========== Constructor
|
||||
VWorkshopCatalog() {
|
||||
this.cardManager = new CardManager(cDetailPicture, true, false);
|
||||
this.cardManager = new CardManager(cDetailPicture, true, false, false);
|
||||
this.cardManager.setCaption(localizer.getMessage("lblCatalog"));
|
||||
final Iterable<PaperCard> allCards = Iterables.concat(FModel.getMagicDb().getCommonCards().getAllCardsNoAlt(), FModel.getMagicDb().getVariantCards().getAllCards());
|
||||
this.cardManager.setPool(ItemPool.createFrom(allCards, PaperCard.class), true);
|
||||
|
||||
@@ -1108,7 +1108,8 @@ 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, bimPhyrexian, bimDefaultSleeve, bimDefaultSleeve2, bimDefaultDeckbox, bimPrefferedSetLogo, bimDefaultWatermark;
|
||||
bimDefaultAvatars, bimPreferredAvatars, bimTrophies, bimAbilities, bimManaIcons, bimPhyrexian, bimDefaultSleeve,
|
||||
bimDefaultSleeve2, bimDefaultDeckbox, bimPrefferedSetLogo, bimDefaultWatermark, bimDefaultDraftRank;
|
||||
private static int x0, y0, w0, h0, newW, newH, preferredW, preferredH;
|
||||
private static int[] tempCoords;
|
||||
private static int defaultFontSize = 12;
|
||||
@@ -1250,6 +1251,7 @@ public class FSkin {
|
||||
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);
|
||||
final File f19 = new File(defaultDir + ForgeConstants.SPRITE_DRAFTRANKS_FILE);
|
||||
|
||||
try {
|
||||
int p = 0;
|
||||
@@ -1275,6 +1277,8 @@ public class FSkin {
|
||||
FView.SINGLETON_INSTANCE.incrementSplashProgessBar(++p);
|
||||
bimDefaultDeckbox = ImageIO.read(f14);
|
||||
FView.SINGLETON_INSTANCE.incrementSplashProgessBar(++p);
|
||||
bimDefaultDraftRank = ImageIO.read(f19);
|
||||
FView.SINGLETON_INSTANCE.incrementSplashProgessBar(++p);
|
||||
bimPrefferedSetLogo = f16.exists() ? ImageIO.read(f16) : ImageIO.read(f15);
|
||||
FView.SINGLETON_INSTANCE.incrementSplashProgessBar(++p);
|
||||
bimDefaultWatermark = ImageIO.read(f17);
|
||||
@@ -1346,6 +1350,9 @@ public class FSkin {
|
||||
case DECKBOX:
|
||||
setImage(prop, bimDefaultDeckbox);
|
||||
break;
|
||||
case DRAFTRANKS:
|
||||
setImage(prop, bimDefaultDraftRank);
|
||||
break;
|
||||
case SETLOGO:
|
||||
setImage(prop, bimPrefferedSetLogo);
|
||||
break;
|
||||
@@ -1375,6 +1382,7 @@ public class FSkin {
|
||||
bimDefaultSleeve.flush();
|
||||
bimDefaultSleeve2.flush();
|
||||
bimDefaultDeckbox.flush();
|
||||
bimDefaultDraftRank.flush();
|
||||
bimPrefferedSetLogo.flush();
|
||||
bimDefaultWatermark.flush();
|
||||
bimQuestDraftDeck.flush();
|
||||
@@ -1393,6 +1401,7 @@ public class FSkin {
|
||||
bimDefaultSleeve = null;
|
||||
bimDefaultSleeve2 = null;
|
||||
bimDefaultDeckbox = null;
|
||||
bimDefaultDraftRank = null;
|
||||
bimPrefferedSetLogo = null;
|
||||
bimDefaultWatermark = null;
|
||||
bimPreferredAvatars = null;
|
||||
|
||||
@@ -22,6 +22,7 @@ import forge.assets.FSkin;
|
||||
import forge.assets.FSkinFont;
|
||||
import forge.assets.ImageCache;
|
||||
import forge.error.ExceptionHandler;
|
||||
import forge.gamemodes.limited.BoosterDraft;
|
||||
import forge.gui.FThreads;
|
||||
import forge.gui.GuiBase;
|
||||
import forge.gui.error.BugReporter;
|
||||
@@ -221,6 +222,7 @@ public class Forge implements ApplicationListener {
|
||||
/* call preloadExtendedArt here, if we put it above we will *
|
||||
* get error: No OpenGL context found in the current thread. */
|
||||
preloadExtendedArt();
|
||||
preloadBoosterDrafts();
|
||||
}
|
||||
});
|
||||
}
|
||||
@@ -250,7 +252,10 @@ public class Forge implements ApplicationListener {
|
||||
if (!filteredkeys.isEmpty())
|
||||
ImageCache.preloadCache(filteredkeys);
|
||||
}
|
||||
|
||||
private void preloadBoosterDrafts() {
|
||||
//preloading of custom drafts
|
||||
BoosterDraft.initializeCustomDrafts();
|
||||
}
|
||||
public static void openHomeScreen(int index, FScreen lastMatch) {
|
||||
openScreen(HomeScreen.instance);
|
||||
HomeScreen.instance.openMenu(index);
|
||||
|
||||
@@ -125,6 +125,13 @@ public enum FSkinImage implements FImage {
|
||||
WATERMARK_W (FSkinProp.IMG_WATERMARK_W, SourceFile.WATERMARKS),
|
||||
WATERMARK_C (FSkinProp.IMG_WATERMARK_C, SourceFile.WATERMARKS),
|
||||
|
||||
//draft ranks
|
||||
DRAFTRANK_D (FSkinProp.IMG_DRAFTRANK_D, SourceFile.DRAFTRANKS),
|
||||
DRAFTRANK_C (FSkinProp.IMG_DRAFTRANK_C, SourceFile.DRAFTRANKS),
|
||||
DRAFTRANK_B (FSkinProp.IMG_DRAFTRANK_B, SourceFile.DRAFTRANKS),
|
||||
DRAFTRANK_A (FSkinProp.IMG_DRAFTRANK_A, SourceFile.DRAFTRANKS),
|
||||
DRAFTRANK_S (FSkinProp.IMG_DRAFTRANK_S, SourceFile.DRAFTRANKS),
|
||||
|
||||
//CardBG
|
||||
CARDBG_A (FSkinProp.IMG_CARDBG_A, SourceFile.CARDBG),
|
||||
CARDBG_B (FSkinProp.IMG_CARDBG_B, SourceFile.CARDBG),
|
||||
@@ -497,6 +504,7 @@ public enum FSkinImage implements FImage {
|
||||
PHYREXIAN(ForgeConstants.SPRITE_PHYREXIAN_FILE),
|
||||
SETLOGOS(ForgeConstants.SPRITE_SETLOGO_FILE),
|
||||
WATERMARKS(ForgeConstants.SPRITE_WATERMARK_FILE),
|
||||
DRAFTRANKS(ForgeConstants.SPRITE_DRAFTRANKS_FILE),
|
||||
CRACKS(ForgeConstants.SPRITE_CRACKS_FILE),
|
||||
CARDBG(ForgeConstants.SPRITE_CARDBG_FILE),
|
||||
PLANAR_CONQUEST(ForgeConstants.SPRITE_PLANAR_CONQUEST_FILE);
|
||||
|
||||
@@ -162,7 +162,7 @@ public class FDeckChooser extends FScreen {
|
||||
&& selectedDeckType != DeckType.VINTAGE_CARDGEN_DECK && selectedDeckType != DeckType.MODERN_COLOR_DECK &&
|
||||
selectedDeckType != DeckType.COLOR_DECK && selectedDeckType != DeckType.THEME_DECK
|
||||
&& selectedDeckType != DeckType.RANDOM_COMMANDER_DECK && selectedDeckType != DeckType.RANDOM_CARDGEN_COMMANDER_DECK) {
|
||||
FDeckViewer.show(getDeck());
|
||||
FDeckViewer.show(getDeck(), false, DeckType.DRAFT_DECK.equals(selectedDeckType));
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
@@ -682,6 +682,15 @@ public class FDeckEditor extends TabPageScreen<FDeckEditor> {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
protected boolean isDraftEditor() {
|
||||
switch (editorType) {
|
||||
case Draft:
|
||||
case QuestDraft:
|
||||
return true;
|
||||
default:
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
public static boolean allowsReplacement(final EditorType editorType){
|
||||
switch (editorType) {
|
||||
@@ -766,6 +775,9 @@ public class FDeckEditor extends TabPageScreen<FDeckEditor> {
|
||||
CardManagerPage.this.buildMenu(menu, card);
|
||||
}
|
||||
});
|
||||
cardManager.setShowRanking(ItemManagerConfig.DRAFT_CONSPIRACY.equals(config0)
|
||||
|| ItemManagerConfig.DRAFT_PACK.equals(config0) || ItemManagerConfig.DRAFT_POOL.equals(config0)
|
||||
|| ItemManagerConfig.DRAFT_DECKS.equals(config0) || (parentScreen != null && parentScreen.isDraftEditor()));
|
||||
}
|
||||
|
||||
protected void initialize() {
|
||||
@@ -773,6 +785,9 @@ public class FDeckEditor extends TabPageScreen<FDeckEditor> {
|
||||
cardManager.setup(config);
|
||||
else //fix planar conquest deck editor and maybe others...
|
||||
cardManager.setup(config, parentScreen.getColOverrides(config));
|
||||
cardManager.setShowRanking(ItemManagerConfig.DRAFT_CONSPIRACY.equals(config)
|
||||
|| ItemManagerConfig.DRAFT_PACK.equals(config) || ItemManagerConfig.DRAFT_POOL.equals(config)
|
||||
|| ItemManagerConfig.DRAFT_DECKS.equals(config) || (parentScreen != null && parentScreen.isDraftEditor()));
|
||||
}
|
||||
|
||||
protected boolean canAddCards() {
|
||||
@@ -1695,6 +1710,7 @@ public class FDeckEditor extends TabPageScreen<FDeckEditor> {
|
||||
int packNumber = draft.getCurrentBoosterIndex() + 1;
|
||||
caption = Localizer.getInstance().getMessage("lblPackN", String.valueOf(packNumber));
|
||||
cardManager.setPool(pool);
|
||||
cardManager.setShowRanking(true);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -114,9 +114,12 @@ public class FDeckViewer extends FScreen {
|
||||
private DeckSection currentSection;
|
||||
|
||||
public static void show(final Deck deck0) {
|
||||
show(deck0, false);
|
||||
show(deck0, false, false);
|
||||
}
|
||||
public static void show(final Deck deck0, boolean noPreload) {
|
||||
show(deck0, noPreload, false);
|
||||
}
|
||||
public static void show(final Deck deck0, boolean noPreload, boolean showRanking) {
|
||||
if (deck0 == null) { return; }
|
||||
|
||||
if (!noPreload){
|
||||
@@ -124,12 +127,12 @@ public class FDeckViewer extends FScreen {
|
||||
ImageCache.preloadCache(deck0);
|
||||
}
|
||||
|
||||
deckViewer = new FDeckViewer(deck0);
|
||||
deckViewer = new FDeckViewer(deck0, showRanking);
|
||||
deckViewer.setRotate180(MatchController.getView() != null && MatchController.getView().isTopHumanPlayerActive());
|
||||
Forge.openScreen(deckViewer);
|
||||
}
|
||||
|
||||
private FDeckViewer(Deck deck0) {
|
||||
private FDeckViewer(Deck deck0, boolean showRanking) {
|
||||
super(new MenuHeader(deck0.getName(), menu) {
|
||||
@Override
|
||||
protected boolean displaySidebarForLandscapeMode() {
|
||||
@@ -139,6 +142,7 @@ public class FDeckViewer extends FScreen {
|
||||
deck = deck0;
|
||||
cardManager = new CardManager(false);
|
||||
cardManager.setPool(deck.getMain());
|
||||
cardManager.setShowRanking(showRanking);
|
||||
|
||||
currentSection = DeckSection.Main;
|
||||
updateCaption();
|
||||
|
||||
@@ -74,6 +74,7 @@ public abstract class ItemManager<T extends InventoryItem> extends FContainer im
|
||||
private final List<ItemFilter<? extends T>> filters = new ArrayList<>();
|
||||
private boolean hideFilters = false;
|
||||
private boolean wantUnique = false;
|
||||
private boolean showRanking = false;
|
||||
private boolean multiSelectMode = false;
|
||||
private FEventHandler selectionChangedHandler, itemActivateHandler;
|
||||
private ContextMenuBuilder<T> contextMenuBuilder;
|
||||
@@ -820,10 +821,18 @@ public abstract class ItemManager<T extends InventoryItem> extends FContainer im
|
||||
return wantUnique;
|
||||
}
|
||||
|
||||
public boolean getShowRanking() {
|
||||
return showRanking;
|
||||
}
|
||||
|
||||
public void setWantUnique(boolean unique) {
|
||||
wantUnique = unique;
|
||||
}
|
||||
|
||||
public void setShowRanking(boolean showRanking0) {
|
||||
showRanking = showRanking0;
|
||||
}
|
||||
|
||||
public void setSelectionSupport(int minSelections0, int maxSelections0) {
|
||||
for (ItemView<T> view : views) {
|
||||
view.setSelectionSupport(minSelections0, maxSelections0);
|
||||
|
||||
@@ -17,11 +17,14 @@ import forge.card.CardRenderer.CardStackPosition;
|
||||
import forge.deck.*;
|
||||
import forge.deck.io.DeckPreferences;
|
||||
import forge.game.card.CardView;
|
||||
import forge.gamemodes.limited.CardRanker;
|
||||
import forge.gamemodes.planarconquest.ConquestCommander;
|
||||
import forge.item.InventoryItem;
|
||||
import forge.item.PaperCard;
|
||||
import forge.itemmanager.*;
|
||||
import forge.itemmanager.filters.ItemFilter;
|
||||
import forge.localinstance.properties.ForgePreferences;
|
||||
import forge.model.FModel;
|
||||
import forge.toolbox.*;
|
||||
import forge.toolbox.FEvent.FEventHandler;
|
||||
import forge.util.ImageUtil;
|
||||
@@ -985,6 +988,26 @@ public class ImageView<T extends InventoryItem> extends ItemView<T> {
|
||||
|
||||
if (item instanceof PaperCard) {
|
||||
CardRenderer.drawCard(g, (PaperCard) item, x, y, w, h, pos);
|
||||
if (itemManager.getShowRanking() && FModel.getPreferences().getPrefBoolean(ForgePreferences.FPref.UI_OVERLAY_DRAFT_RANKING)) {
|
||||
double score = CardRanker.getRawScore((PaperCard) item);
|
||||
int draftRank = score <= 0 ? 0 : score > 99 ? 99 : (int) Math.round(CardRanker.getRawScore((PaperCard) item));
|
||||
float rankSize = w/2;
|
||||
float y2 = y+(rankSize-(rankSize*0.1f));
|
||||
float x2 = x+rankSize/2;
|
||||
if (draftRank >= 90) {
|
||||
g.drawImage(FSkinImage.DRAFTRANK_S, x2, y2+1, rankSize, rankSize);
|
||||
} else if (draftRank >= 80 && draftRank <= 89 ) {
|
||||
g.drawImage(FSkinImage.DRAFTRANK_A, x2, y2+1, rankSize, rankSize);
|
||||
} else if (draftRank >= 60 && draftRank <= 79 ) {
|
||||
g.drawImage(FSkinImage.DRAFTRANK_B, x2, y2+1, rankSize, rankSize);
|
||||
} else if (draftRank >= 25 && draftRank <= 59 ) {
|
||||
g.drawImage(FSkinImage.DRAFTRANK_C, x2, y2+1, rankSize, rankSize);
|
||||
} else {
|
||||
g.drawImage(FSkinImage.DRAFTRANK_D, x2, y2+1, rankSize, rankSize);
|
||||
}
|
||||
String value = String.valueOf(draftRank);
|
||||
g.drawText(value, FSkinFont.forHeight(rankSize/4), Color.WHITE, x, y, w, h, true, Align.center, true);
|
||||
}
|
||||
} else if (item instanceof ConquestCommander) {
|
||||
CardRenderer.drawCard(g, ((ConquestCommander) item).getCard(), x, y, w, h, pos);
|
||||
} else if (deckSelectMode) {
|
||||
|
||||
@@ -595,13 +595,17 @@ public class SettingsPage extends TabPage<SettingsScreen> {
|
||||
localizer.getMessage("lblShowCardIDOverlays"),
|
||||
localizer.getMessage("nlShowCardIDOverlays")),
|
||||
5);
|
||||
lstSettings.addItem(new BooleanSetting(FPref.UI_OVERLAY_DRAFT_RANKING,
|
||||
localizer.getMessage("lblShowDraftRankingOverlay"),
|
||||
localizer.getMessage("nlShowDraftRankingOverlay")),
|
||||
5);
|
||||
lstSettings.addItem(new BooleanSetting(FPref.UI_OVERLAY_ABILITY_ICONS,
|
||||
localizer.getMessage("lblShowAbilityIconsOverlays"),
|
||||
localizer.getMessage("nlShowAbilityIconsOverlays")),
|
||||
5);
|
||||
lstSettings.addItem(new BooleanSetting(FPref.UI_USE_LASER_ARROWS,
|
||||
localizer.getMessage("lblUseLaserArrows"),
|
||||
localizer.getMessage("nlUseLaserArrows")),
|
||||
localizer.getMessage("lblUseLaserArrows"),
|
||||
localizer.getMessage("nlUseLaserArrows")),
|
||||
5);
|
||||
//Vibration Options
|
||||
lstSettings.addItem(new BooleanSetting(FPref.UI_VIBRATE_ON_LIFE_LOSS,
|
||||
|
||||
@@ -66,7 +66,7 @@ Name=Adam Styborkski's Pauper Cube
|
||||
1 Clutch of Currents|BFZ
|
||||
1 Coalition Honor Guard|EMA
|
||||
1 Colossal Might|ARB
|
||||
1 Common Iguana
|
||||
1 Common Iguana|UST
|
||||
1 Compulsive Research|STA
|
||||
1 Compulsory Rest|AKR
|
||||
1 Consume Strength|APC
|
||||
|
||||
@@ -1044,6 +1044,8 @@ nlShowMatchBackground=Zeige Bilder im Spielfeldhintergrund.
|
||||
nlTheme=Wähle ein Thema um die Bildschirmanzeigen anzupassen.
|
||||
nlVibrateAfterLongPress=Aktiviert Vibration bei langem Druck, z.B. beim Zoomen.
|
||||
nlVibrateWhenLosingLife=Aktiviert Vibration bei Lebenspunktverlust.
|
||||
lblShowDraftRankingOverlay=Show Draft Ranking
|
||||
nlShowDraftRankingOverlay=Shows the card ranking in Draft Editor.
|
||||
lblBorderMaskOption=Rand-Masken-Option
|
||||
nlBorderMaskOption=Wendet die gewählte Option auf die Kartenbilder an (Im Zweifel wähle Beschneiden/Crop).
|
||||
lblEnableRoundBorder=Aktiviere Maske mit runden Ränder
|
||||
|
||||
@@ -1045,6 +1045,8 @@ nlShowMatchBackground=Show match background image on battlefield, otherwise back
|
||||
nlTheme=Sets the theme that determines how display components are skinned.
|
||||
nlVibrateAfterLongPress=Enable quick vibration to signify a long press, such as for card zooming.
|
||||
nlVibrateWhenLosingLife=Enable vibration when your player loses life or takes damage during a game.
|
||||
lblShowDraftRankingOverlay=Show Draft Ranking
|
||||
nlShowDraftRankingOverlay=Shows the card ranking in Draft Editor.
|
||||
lblBorderMaskOption=Border Mask Option
|
||||
nlBorderMaskOption=Applies the selected border option for card images (If unsure, choose Crop).
|
||||
lblEnableRoundBorder=Enable Round Border Mask
|
||||
|
||||
@@ -1044,6 +1044,8 @@ nlShowMatchBackground=Muestra la imagen de fondo de la partida en el campo de ba
|
||||
nlTheme=Establece el tema que determina el aspecto global del juego.
|
||||
nlVibrateAfterLongPress=Habilita la vibración rápida cuando se realice una pulsación prolongada, como p.ej. al realizar zoom de la carta.
|
||||
nlVibrateWhenLosingLife=Habilita la vibración cuando tu jugador pierde vidas o sufre daños.
|
||||
lblShowDraftRankingOverlay=Show Draft Ranking
|
||||
nlShowDraftRankingOverlay=Shows the card ranking in Draft Editor.
|
||||
lblBorderMaskOption=Opción de máscara de borde
|
||||
nlBorderMaskOption=Aplica la opción de borde seleccionada para las imágenes de las cartas (si no estás seguro, elige Crop).
|
||||
lblEnableRoundBorder=Habilitar máscara de bordes redondeados
|
||||
|
||||
@@ -1043,6 +1043,8 @@ nlShowMatchBackground=Mostra l''immagine di sfondo dell''incontro sul campo di b
|
||||
nlTheme=Imposta il tema che determina l''aspetto visivo dei vari componenti dell''interfaccia.
|
||||
nlVibrateAfterLongPress=Abilitare una rapida vibrazione per indicare una pressione prolungata, ad esempio quando si ingrandisce una carta.
|
||||
nlVibrateWhenLosingLife=Attiva le vibrazioni quando il giocatore perde punti vita o subisce danni durante una partita.
|
||||
lblShowDraftRankingOverlay=Show Draft Ranking
|
||||
nlShowDraftRankingOverlay=Shows the card ranking in Draft Editor.
|
||||
lblBorderMaskOption=Opzioni della maschera dei bordi
|
||||
nlBorderMaskOption=Applica l''opzione selezionata ai bordi delle carte (Nel dubbio, scegli Ritaglia).
|
||||
lblEnableRoundBorder=Abilita maschera bordi arrotondati
|
||||
|
||||
@@ -1045,6 +1045,8 @@ nlShowMatchBackground=戦場の背景画像を常時します。そうでない
|
||||
nlTheme=UI コンポーネントのスキンを使うテーマを設定します。
|
||||
nlVibrateAfterLongPress=ズームインとかのために長押した時の振動を有効にします。
|
||||
nlVibrateWhenLosingLife=プレーヤーがゲーム中にライフを失ったり、ダメージを受けたりした時に振動を有効にします。
|
||||
lblShowDraftRankingOverlay=Show Draft Ranking
|
||||
nlShowDraftRankingOverlay=Shows the card ranking in Draft Editor.
|
||||
lblBorderMaskOption=枠のマスクオプション
|
||||
nlBorderMaskOption=カード画像の枠に選択したマスクを適用します(分からない場合は Crop にしてください)。
|
||||
lblEnableRoundBorder=ラウンドボーダーマスクを有効にする
|
||||
|
||||
@@ -1045,6 +1045,8 @@ nlShowMatchBackground=在战场显示背景图片,否则显示背景纹理。
|
||||
nlTheme=设置显示的组件使用的外观主题。
|
||||
nlVibrateAfterLongPress=启用长按触发震动,例如长按缩放卡牌图片。
|
||||
nlVibrateWhenLosingLife=启用当玩家在游戏中失去生命或收到伤害时震动。
|
||||
lblShowDraftRankingOverlay=Show Draft Ranking
|
||||
nlShowDraftRankingOverlay=Shows the card ranking in Draft Editor.
|
||||
lblBorderMaskOption=边框遮罩选项
|
||||
nlBorderMaskOption=将选定的边框选项应用于卡图(如果你不清楚该功能的作用请选Crop)。
|
||||
lblEnableRoundBorder=启用圆角边框掩码
|
||||
|
||||
BIN
forge-gui/res/skins/default/sprite_draftranks.png
Normal file
BIN
forge-gui/res/skins/default/sprite_draftranks.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 203 KiB |
@@ -71,10 +71,13 @@ public class BoosterDraft implements IBoosterDraft {
|
||||
private int packsInDraft;
|
||||
|
||||
private final Map<String, Float> draftPicks = new TreeMap<>();
|
||||
static final List<CustomLimited> customs = new ArrayList<>();
|
||||
protected LimitedPoolType draftFormat;
|
||||
|
||||
protected final List<Supplier<List<PaperCard>>> product = new ArrayList<>();
|
||||
|
||||
public static void initializeCustomDrafts() {
|
||||
loadCustomDrafts();
|
||||
}
|
||||
public static BoosterDraft createDraft(final LimitedPoolType draftType) {
|
||||
final BoosterDraft draft = new BoosterDraft(draftType);
|
||||
if (!draft.generateProduct()) {
|
||||
@@ -297,25 +300,26 @@ public class BoosterDraft implements IBoosterDraft {
|
||||
* Looks for draft files, reads them, returns a list.
|
||||
*/
|
||||
private static List<CustomLimited> loadCustomDrafts() {
|
||||
String[] dList;
|
||||
final List<CustomLimited> customs = new ArrayList<>();
|
||||
if (customs.isEmpty()) {
|
||||
String[] dList;
|
||||
|
||||
// get list of custom draft files
|
||||
final File dFolder = new File(ForgeConstants.DRAFT_DIR);
|
||||
if (!dFolder.exists()) {
|
||||
throw new RuntimeException("BoosterDraft : folder not found -- folder is " + dFolder.getAbsolutePath());
|
||||
}
|
||||
// get list of custom draft files
|
||||
final File dFolder = new File(ForgeConstants.DRAFT_DIR);
|
||||
if (!dFolder.exists()) {
|
||||
throw new RuntimeException("BoosterDraft : folder not found -- folder is " + dFolder.getAbsolutePath());
|
||||
}
|
||||
|
||||
if (!dFolder.isDirectory()) {
|
||||
throw new RuntimeException("BoosterDraft : not a folder -- " + dFolder.getAbsolutePath());
|
||||
}
|
||||
if (!dFolder.isDirectory()) {
|
||||
throw new RuntimeException("BoosterDraft : not a folder -- " + dFolder.getAbsolutePath());
|
||||
}
|
||||
|
||||
dList = dFolder.list();
|
||||
dList = dFolder.list();
|
||||
|
||||
for (final String element : dList) {
|
||||
if (element.endsWith(FILE_EXT)) {
|
||||
final List<String> dfData = FileUtil.readFile(ForgeConstants.DRAFT_DIR + element);
|
||||
customs.add(CustomLimited.parse(dfData, FModel.getDecks().getCubes()));
|
||||
for (final String element : dList) {
|
||||
if (element.endsWith(FILE_EXT)) {
|
||||
final List<String> dfData = FileUtil.readFile(ForgeConstants.DRAFT_DIR + element);
|
||||
customs.add(CustomLimited.parse(dfData, FModel.getDecks().getCubes()));
|
||||
}
|
||||
}
|
||||
}
|
||||
return customs;
|
||||
|
||||
@@ -126,6 +126,7 @@ public final class ForgeConstants {
|
||||
public static final String SPRITE_PLANAR_CONQUEST_FILE = "sprite_planar_conquest.png";
|
||||
public static final String SPRITE_SETLOGO_FILE = "sprite_setlogo.png";
|
||||
public static final String SPRITE_WATERMARK_FILE = "sprite_watermark.png";
|
||||
public static final String SPRITE_DRAFTRANKS_FILE = "sprite_draftranks.png";
|
||||
public static String SPRITE_CARDBG_FILE = "sprite_cardbg.png";
|
||||
public static final String FONT_FILE = "font1.ttf";
|
||||
public static final String SPLASH_BG_FILE = "bg_splash.png";
|
||||
|
||||
@@ -81,6 +81,7 @@ public class ForgePreferences extends PreferencesStore<ForgePreferences.FPref> {
|
||||
UI_OVERLAY_CARD_MANA_COST ("true"),
|
||||
UI_OVERLAY_CARD_ID ("true"),
|
||||
UI_OVERLAY_ABILITY_ICONS("true"),
|
||||
UI_OVERLAY_DRAFT_RANKING("true"),
|
||||
UI_ENABLE_ONLINE_IMAGE_FETCHER ("false"),
|
||||
UI_PREFERRED_ART("LATEST_ART_ALL_EDITIONS"),
|
||||
UI_SMART_CARD_ART("false"),
|
||||
|
||||
@@ -422,6 +422,13 @@ public enum FSkinProp {
|
||||
IMG_WATERMARK_W (new int[] {2, 1006, 500, 500}, PropType.WATERMARKS),
|
||||
IMG_WATERMARK_C (new int[] {504, 1006, 500, 500}, PropType.WATERMARKS),
|
||||
|
||||
//FOR DRAFT RANKING
|
||||
IMG_DRAFTRANK_D (new int[] {2, 2, 240, 240}, PropType.DRAFTRANKS),
|
||||
IMG_DRAFTRANK_C (new int[] {244, 2, 240, 240}, PropType.DRAFTRANKS),
|
||||
IMG_DRAFTRANK_B (new int[] {2, 244, 240, 240}, PropType.DRAFTRANKS),
|
||||
IMG_DRAFTRANK_A (new int[] {244, 244, 240, 240}, PropType.DRAFTRANKS),
|
||||
IMG_DRAFTRANK_S (new int[] {2, 486, 240, 240}, PropType.DRAFTRANKS),
|
||||
|
||||
//FOR CARDBG
|
||||
IMG_CARDBG_A (new int[] {2, 2, 339, 496}, PropType.CARDBG),
|
||||
IMG_CARDBG_B (new int[] {343, 2, 339, 496}, PropType.CARDBG),
|
||||
@@ -574,6 +581,7 @@ public enum FSkinProp {
|
||||
DECKBOX,
|
||||
SETLOGO,
|
||||
WATERMARKS,
|
||||
DRAFTRANKS,
|
||||
CARDBG,
|
||||
FAVICON
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user