mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-12 00:38:44 +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
|
@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 BufferedImage image = new BufferedImage(background.getWidth(), background.getHeight(), BufferedImage.TYPE_INT_ARGB);
|
||||||
final Graphics2D g = image.createGraphics();
|
final Graphics2D g = image.createGraphics();
|
||||||
final FSkin.SkinImage backgroundImage = FSkin.getImage(background);
|
final FSkin.SkinImage backgroundImage = FSkin.getImage(background);
|
||||||
FSkin.drawImage(g, backgroundImage, 0, 0, background.getWidth(), background.getHeight());
|
FSkin.drawImage(g, backgroundImage, 0, 0, background.getWidth(), background.getHeight());
|
||||||
|
final int cardImageWidth = 90;
|
||||||
|
final int cardImageHeight = 128;
|
||||||
|
|
||||||
if (FileUtil.doesFileExist(overlayFilename)) {
|
if (FileUtil.doesFileExist(overlayFilename)) {
|
||||||
final ImageIcon overlay = new ImageIcon(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);
|
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);
|
return new FSkin.UnskinnedIcon(image, opacity);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -123,11 +123,13 @@ public class GuiMobile implements IGuiBase {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@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) {
|
return new FBufferedImage(background.getWidth(), background.getHeight(), opacity) {
|
||||||
@Override
|
@Override
|
||||||
protected void draw(final Graphics g, final float w, final float h) {
|
protected void draw(final Graphics g, final float w, final float h) {
|
||||||
g.drawImage(FSkin.getImages().get(background), 0, 0, background.getWidth(), background.getHeight());
|
g.drawImage(FSkin.getImages().get(background), 0, 0, background.getWidth(), background.getHeight());
|
||||||
|
final float cardImageWidth = 90f;
|
||||||
|
final float cardImageHeight = 128f;
|
||||||
|
|
||||||
if (FileUtil.doesFileExist(overlayFilename)) {
|
if (FileUtil.doesFileExist(overlayFilename)) {
|
||||||
try {
|
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());
|
g.drawImage(overlay, (background.getWidth() - overlay.getWidth()) / 2, (background.getHeight() - overlay.getHeight()) / 2, overlay.getWidth(), overlay.getHeight());
|
||||||
} catch (final Exception e) {
|
} 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
|
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());
|
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);
|
final Deck aiDeck = opponentDecks.getAiDecks().get(aiIndex - 1);
|
||||||
if (aiDeck == null) {
|
if (aiDeck == null) {
|
||||||
throw new IllegalStateException("Draft: Computer deck is null!");
|
throw new IllegalStateException("Draft: Computer deck is null!");
|
||||||
|
|||||||
@@ -65,7 +65,7 @@ public class ConquestPlaneswalkersScreen extends FScreen {
|
|||||||
private void updatePreview() {
|
private void updatePreview() {
|
||||||
PaperCard planeswalker = lstPlaneswalkers.getSelectedItem();
|
PaperCard planeswalker = lstPlaneswalkers.getSelectedItem();
|
||||||
if (planeswalker != null) {
|
if (planeswalker != null) {
|
||||||
tokenDisplay.setIcon((FImage)PlaneswalkerAchievements.getTrophyImage(planeswalker.getName()));
|
tokenDisplay.setIcon((FImage)PlaneswalkerAchievements.getTrophyImage(planeswalker.getName(), planeswalker));
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
tokenDisplay.setIcon(null);
|
tokenDisplay.setIcon(null);
|
||||||
|
|||||||
@@ -192,7 +192,7 @@ public class NewConquestScreen extends MultiStepWizardScreen<NewConquestScreenMo
|
|||||||
private void updatePreview() {
|
private void updatePreview() {
|
||||||
PaperCard planeswalker = lstPlaneswalkers.getSelectedItem();
|
PaperCard planeswalker = lstPlaneswalkers.getSelectedItem();
|
||||||
if (planeswalker != null) {
|
if (planeswalker != null) {
|
||||||
tokenDisplay.setIcon((FImage)PlaneswalkerAchievements.getTrophyImage(planeswalker.getName()));
|
tokenDisplay.setIcon((FImage)PlaneswalkerAchievements.getTrophyImage(planeswalker.getName(), planeswalker));
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
tokenDisplay.setIcon(null);
|
tokenDisplay.setIcon(null);
|
||||||
|
|||||||
@@ -154,7 +154,7 @@ public final class ConquestData {
|
|||||||
}
|
}
|
||||||
public void setPlaneswalker(PaperCard planeswalker0) {
|
public void setPlaneswalker(PaperCard planeswalker0) {
|
||||||
planeswalker = planeswalker0;
|
planeswalker = planeswalker0;
|
||||||
planeswalkerToken = PlaneswalkerAchievements.getTrophyImage(planeswalker.getName());
|
planeswalkerToken = PlaneswalkerAchievements.getTrophyImage(planeswalker.getName(), planeswalker);
|
||||||
}
|
}
|
||||||
|
|
||||||
public ISkinImage getPlaneswalkerToken() {
|
public ISkinImage getPlaneswalkerToken() {
|
||||||
|
|||||||
@@ -32,7 +32,7 @@ public interface IGuiBase {
|
|||||||
ISkinImage getUnskinnedIcon(String path);
|
ISkinImage getUnskinnedIcon(String path);
|
||||||
ISkinImage getCardArt(PaperCard card);
|
ISkinImage getCardArt(PaperCard card);
|
||||||
ISkinImage getCardArt(PaperCard card, boolean backFace);
|
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 showBugReportDialog(String title, String text, boolean showExitAppBtn);
|
||||||
void showImageDialog(ISkinImage image, String message, String title);
|
void showImageDialog(ISkinImage image, String message, String title);
|
||||||
int showOptionDialog(String message, String title, FSkinProp icon, List<String> options, int defaultOption);
|
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.game.player.Player;
|
||||||
import forge.gui.GuiBase;
|
import forge.gui.GuiBase;
|
||||||
import forge.item.IPaperCard;
|
import forge.item.IPaperCard;
|
||||||
|
import forge.item.PaperCard;
|
||||||
import forge.localinstance.properties.ForgeConstants;
|
import forge.localinstance.properties.ForgeConstants;
|
||||||
import forge.localinstance.skin.FSkinProp;
|
import forge.localinstance.skin.FSkinProp;
|
||||||
import forge.localinstance.skin.ISkinImage;
|
import forge.localinstance.skin.ISkinImage;
|
||||||
@@ -154,7 +155,7 @@ public abstract class Achievement {
|
|||||||
background = FSkinProp.IMG_COMMON_TROPHY;
|
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) {
|
public int update(final Player player) {
|
||||||
|
|||||||
@@ -4,6 +4,7 @@ import forge.game.Game;
|
|||||||
import forge.game.player.Player;
|
import forge.game.player.Player;
|
||||||
import forge.gui.GuiBase;
|
import forge.gui.GuiBase;
|
||||||
import forge.item.IPaperCard;
|
import forge.item.IPaperCard;
|
||||||
|
import forge.item.PaperCard;
|
||||||
import forge.localinstance.properties.ForgeConstants;
|
import forge.localinstance.properties.ForgeConstants;
|
||||||
import forge.localinstance.skin.FSkinProp;
|
import forge.localinstance.skin.FSkinProp;
|
||||||
import forge.localinstance.skin.ISkinImage;
|
import forge.localinstance.skin.ISkinImage;
|
||||||
@@ -14,8 +15,8 @@ import forge.util.Localizer;
|
|||||||
public class PlaneswalkerAchievements extends AchievementCollection {
|
public class PlaneswalkerAchievements extends AchievementCollection {
|
||||||
public static final PlaneswalkerAchievements instance = new PlaneswalkerAchievements();
|
public static final PlaneswalkerAchievements instance = new PlaneswalkerAchievements();
|
||||||
|
|
||||||
public static ISkinImage getTrophyImage(String planeswalkerName) {
|
public static ISkinImage getTrophyImage(String planeswalkerName, PaperCard paperCard) {
|
||||||
return GuiBase.getInterface().createLayeredImage(FSkinProp.IMG_SPECIAL_TROPHY, ForgeConstants.CACHE_ACHIEVEMENTS_DIR + "/" + planeswalkerName + ".png", 1);
|
return GuiBase.getInterface().createLayeredImage(paperCard, FSkinProp.IMG_SPECIAL_TROPHY, ForgeConstants.CACHE_ACHIEVEMENTS_DIR + "/" + planeswalkerName + ".png", 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
private PlaneswalkerAchievements() {
|
private PlaneswalkerAchievements() {
|
||||||
|
|||||||
Reference in New Issue
Block a user