mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-15 10:18:01 +00:00
Merge pull request #2682 from kevlahnota/newmaster2
update Achievement Trophies
This commit is contained in:
@@ -144,15 +144,21 @@ public class GuiDesktop implements IGuiBase {
|
||||
}
|
||||
|
||||
@Override
|
||||
public ISkinImage createLayeredImage(final FSkinProp background, final String overlayFilename, final float opacity) {
|
||||
public ISkinImage createLayeredImage(final PaperCard paperCard, final FSkinProp background, final String overlayFilename, final float opacity) {
|
||||
final BufferedImage image = new BufferedImage(background.getWidth(), background.getHeight(), BufferedImage.TYPE_INT_ARGB);
|
||||
final Graphics2D g = image.createGraphics();
|
||||
final FSkin.SkinImage backgroundImage = FSkin.getImage(background);
|
||||
FSkin.drawImage(g, backgroundImage, 0, 0, background.getWidth(), background.getHeight());
|
||||
final int cardImageWidth = 90;
|
||||
final int cardImageHeight = 128;
|
||||
|
||||
if (FileUtil.doesFileExist(overlayFilename)) {
|
||||
final ImageIcon overlay = new ImageIcon(overlayFilename);
|
||||
g.drawImage(overlay.getImage(), (background.getWidth() - overlay.getIconWidth()) / 2, (background.getHeight() - overlay.getIconHeight()) / 2, overlay.getIconWidth(), overlay.getIconHeight(), null);
|
||||
} else if (paperCard != null) {
|
||||
BufferedImage cardImage = ImageCache.scaleImage(paperCard.getCardImageKey(), cardImageWidth, cardImageHeight, false, null);
|
||||
if (cardImage != null)
|
||||
g.drawImage(cardImage, (background.getWidth() - cardImageWidth) / 2, (background.getHeight() - cardImageHeight) / 4, cardImageWidth, cardImageHeight, null);
|
||||
}
|
||||
return new FSkin.UnskinnedIcon(image, opacity);
|
||||
}
|
||||
|
||||
@@ -123,11 +123,13 @@ public class GuiMobile implements IGuiBase {
|
||||
}
|
||||
|
||||
@Override
|
||||
public ISkinImage createLayeredImage(final FSkinProp background, final String overlayFilename, final float opacity) {
|
||||
public ISkinImage createLayeredImage(final PaperCard paperCard, final FSkinProp background, final String overlayFilename, final float opacity) {
|
||||
return new FBufferedImage(background.getWidth(), background.getHeight(), opacity) {
|
||||
@Override
|
||||
protected void draw(final Graphics g, final float w, final float h) {
|
||||
g.drawImage(FSkin.getImages().get(background), 0, 0, background.getWidth(), background.getHeight());
|
||||
final float cardImageWidth = 90f;
|
||||
final float cardImageHeight = 128f;
|
||||
|
||||
if (FileUtil.doesFileExist(overlayFilename)) {
|
||||
try {
|
||||
@@ -135,6 +137,10 @@ public class GuiMobile implements IGuiBase {
|
||||
g.drawImage(overlay, (background.getWidth() - overlay.getWidth()) / 2, (background.getHeight() - overlay.getHeight()) / 2, overlay.getWidth(), overlay.getHeight());
|
||||
} catch (final Exception e) {
|
||||
}
|
||||
} else if (paperCard != null) {
|
||||
Texture cardImage = ImageCache.getImage(paperCard.getCardImageKey(), false);
|
||||
if (cardImage != null)
|
||||
g.drawCardRoundRect(cardImage, null, (background.getWidth() - cardImageWidth) / 2, (background.getHeight() - cardImageHeight) / 3.8f, cardImageWidth, cardImageHeight, false, false);
|
||||
}
|
||||
|
||||
Gdx.graphics.requestRendering(); //ensure image appears right away
|
||||
|
||||
@@ -117,6 +117,9 @@ public class LoadSealedScreen extends LaunchScreen {
|
||||
}
|
||||
|
||||
final DeckGroup opponentDecks = FModel.getDecks().getSealed().get(humanDeck.getName());
|
||||
if (opponentDecks == null || opponentDecks.isEmpty()) {
|
||||
throw new IllegalStateException("Draft: Opponent decks is null!");
|
||||
}
|
||||
final Deck aiDeck = opponentDecks.getAiDecks().get(aiIndex - 1);
|
||||
if (aiDeck == null) {
|
||||
throw new IllegalStateException("Draft: Computer deck is null!");
|
||||
|
||||
@@ -65,7 +65,7 @@ public class ConquestPlaneswalkersScreen extends FScreen {
|
||||
private void updatePreview() {
|
||||
PaperCard planeswalker = lstPlaneswalkers.getSelectedItem();
|
||||
if (planeswalker != null) {
|
||||
tokenDisplay.setIcon((FImage)PlaneswalkerAchievements.getTrophyImage(planeswalker.getName()));
|
||||
tokenDisplay.setIcon((FImage)PlaneswalkerAchievements.getTrophyImage(planeswalker.getName(), planeswalker));
|
||||
}
|
||||
else {
|
||||
tokenDisplay.setIcon(null);
|
||||
|
||||
@@ -192,7 +192,7 @@ public class NewConquestScreen extends MultiStepWizardScreen<NewConquestScreenMo
|
||||
private void updatePreview() {
|
||||
PaperCard planeswalker = lstPlaneswalkers.getSelectedItem();
|
||||
if (planeswalker != null) {
|
||||
tokenDisplay.setIcon((FImage)PlaneswalkerAchievements.getTrophyImage(planeswalker.getName()));
|
||||
tokenDisplay.setIcon((FImage)PlaneswalkerAchievements.getTrophyImage(planeswalker.getName(), planeswalker));
|
||||
}
|
||||
else {
|
||||
tokenDisplay.setIcon(null);
|
||||
|
||||
@@ -154,7 +154,7 @@ public final class ConquestData {
|
||||
}
|
||||
public void setPlaneswalker(PaperCard planeswalker0) {
|
||||
planeswalker = planeswalker0;
|
||||
planeswalkerToken = PlaneswalkerAchievements.getTrophyImage(planeswalker.getName());
|
||||
planeswalkerToken = PlaneswalkerAchievements.getTrophyImage(planeswalker.getName(), planeswalker);
|
||||
}
|
||||
|
||||
public ISkinImage getPlaneswalkerToken() {
|
||||
|
||||
@@ -32,7 +32,7 @@ public interface IGuiBase {
|
||||
ISkinImage getUnskinnedIcon(String path);
|
||||
ISkinImage getCardArt(PaperCard card);
|
||||
ISkinImage getCardArt(PaperCard card, boolean backFace);
|
||||
ISkinImage createLayeredImage(FSkinProp background, String overlayFilename, float opacity);
|
||||
ISkinImage createLayeredImage(PaperCard card, FSkinProp background, String overlayFilename, float opacity);
|
||||
void showBugReportDialog(String title, String text, boolean showExitAppBtn);
|
||||
void showImageDialog(ISkinImage image, String message, String title);
|
||||
int showOptionDialog(String message, String title, FSkinProp icon, List<String> options, int defaultOption);
|
||||
|
||||
@@ -4,6 +4,7 @@ import forge.game.Game;
|
||||
import forge.game.player.Player;
|
||||
import forge.gui.GuiBase;
|
||||
import forge.item.IPaperCard;
|
||||
import forge.item.PaperCard;
|
||||
import forge.localinstance.properties.ForgeConstants;
|
||||
import forge.localinstance.skin.FSkinProp;
|
||||
import forge.localinstance.skin.ISkinImage;
|
||||
@@ -154,7 +155,7 @@ public abstract class Achievement {
|
||||
background = FSkinProp.IMG_COMMON_TROPHY;
|
||||
}
|
||||
}
|
||||
image = GuiBase.getInterface().createLayeredImage(background, ForgeConstants.CACHE_ACHIEVEMENTS_DIR + "/" + key + ".png", opacity);
|
||||
image = GuiBase.getInterface().createLayeredImage((PaperCard) getPaperCard(), background, ForgeConstants.CACHE_ACHIEVEMENTS_DIR + "/" + key + ".png", opacity);
|
||||
}
|
||||
|
||||
public int update(final Player player) {
|
||||
|
||||
@@ -4,6 +4,7 @@ import forge.game.Game;
|
||||
import forge.game.player.Player;
|
||||
import forge.gui.GuiBase;
|
||||
import forge.item.IPaperCard;
|
||||
import forge.item.PaperCard;
|
||||
import forge.localinstance.properties.ForgeConstants;
|
||||
import forge.localinstance.skin.FSkinProp;
|
||||
import forge.localinstance.skin.ISkinImage;
|
||||
@@ -14,8 +15,8 @@ import forge.util.Localizer;
|
||||
public class PlaneswalkerAchievements extends AchievementCollection {
|
||||
public static final PlaneswalkerAchievements instance = new PlaneswalkerAchievements();
|
||||
|
||||
public static ISkinImage getTrophyImage(String planeswalkerName) {
|
||||
return GuiBase.getInterface().createLayeredImage(FSkinProp.IMG_SPECIAL_TROPHY, ForgeConstants.CACHE_ACHIEVEMENTS_DIR + "/" + planeswalkerName + ".png", 1);
|
||||
public static ISkinImage getTrophyImage(String planeswalkerName, PaperCard paperCard) {
|
||||
return GuiBase.getInterface().createLayeredImage(paperCard, FSkinProp.IMG_SPECIAL_TROPHY, ForgeConstants.CACHE_ACHIEVEMENTS_DIR + "/" + planeswalkerName + ".png", 1);
|
||||
}
|
||||
|
||||
private PlaneswalkerAchievements() {
|
||||
|
||||
Reference in New Issue
Block a user