From 2875988adc420e3cbf099197076d3fb0ceb9c18e Mon Sep 17 00:00:00 2001 From: Anthony Calosa Date: Tue, 22 Nov 2022 14:38:55 +0800 Subject: [PATCH 1/3] update ClosingScreen & GameHud - fix ClosingScreen logo after update process - scaledown GameHud text for lifepoints, mana and gold --- forge-gui-mobile/src/forge/Forge.java | 1 + .../src/forge/adventure/stage/GameHUD.java | 10 +++++----- .../src/forge/screens/ClosingScreen.java | 20 ++++++++++++------- .../src/forge/screens/TransitionScreen.java | 6 +++--- 4 files changed, 22 insertions(+), 15 deletions(-) diff --git a/forge-gui-mobile/src/forge/Forge.java b/forge-gui-mobile/src/forge/Forge.java index 8ada8dad3c4..eab6414574f 100644 --- a/forge-gui-mobile/src/forge/Forge.java +++ b/forge-gui-mobile/src/forge/Forge.java @@ -73,6 +73,7 @@ public class Forge implements ApplicationListener { public static KeyInputAdapter keyInputAdapter; private static boolean exited; public boolean needsUpdate = false; + public static boolean advStartup = false; public static boolean safeToClose = true; public static boolean magnify = false; public static boolean magnifyToggle = true; diff --git a/forge-gui-mobile/src/forge/adventure/stage/GameHUD.java b/forge-gui-mobile/src/forge/adventure/stage/GameHUD.java index d6c930b7877..03b29869492 100644 --- a/forge-gui-mobile/src/forge/adventure/stage/GameHUD.java +++ b/forge-gui-mobile/src/forge/adventure/stage/GameHUD.java @@ -111,12 +111,12 @@ public class GameHUD extends Stage { lifePoints = ui.findActor("lifePoints"); mana = ui.findActor("mana"); money = ui.findActor("money"); - mana.setText("0/0"); - lifePoints.setText("20/20"); - AdventurePlayer.current().onLifeChange(() -> lifePoints.setText(AdventurePlayer.current().getLife() + "/" + AdventurePlayer.current().getMaxLife())); - AdventurePlayer.current().onManaChange(() -> mana.setText(AdventurePlayer.current().getMana() + "/" + AdventurePlayer.current().getMaxMana())); + mana.setText("{Scale=80%}0/0"); + lifePoints.setText("{Scale=80%}20/20"); + AdventurePlayer.current().onLifeChange(() -> lifePoints.setText("{Scale=80%}"+AdventurePlayer.current().getLife() + "/" + AdventurePlayer.current().getMaxLife())); + AdventurePlayer.current().onManaChange(() -> mana.setText("{Scale=80%}"+AdventurePlayer.current().getMana() + "/" + AdventurePlayer.current().getMaxMana())); - WorldSave.getCurrentSave().getPlayer().onGoldChange(() -> money.setText(String.valueOf(AdventurePlayer.current().getGold()))); + WorldSave.getCurrentSave().getPlayer().onGoldChange(() -> money.setText("{Scale=80%}"+String.valueOf(AdventurePlayer.current().getGold()))); addActor(ui); addActor(miniMapPlayer); console = new Console(); diff --git a/forge-gui-mobile/src/forge/screens/ClosingScreen.java b/forge-gui-mobile/src/forge/screens/ClosingScreen.java index 229adc5463b..8f70d2a3350 100644 --- a/forge-gui-mobile/src/forge/screens/ClosingScreen.java +++ b/forge-gui-mobile/src/forge/screens/ClosingScreen.java @@ -1,6 +1,8 @@ package forge.screens; +import com.badlogic.gdx.files.FileHandle; import com.badlogic.gdx.graphics.Color; +import com.badlogic.gdx.graphics.Texture; import forge.Forge; import forge.Graphics; import forge.animation.ForgeAnimation; @@ -16,6 +18,9 @@ public class ClosingScreen extends FContainer { private StaticAnimation staticAnimation; private boolean restart = false; private boolean drawStatic = false; + private FileHandle adv_logo = getSkinFile("adv_logo.png"); + private FileHandle existingLogo = adv_logo.exists() ? adv_logo : getDefaultSkinFile("adv_logo.png"); + private Texture logo = existingLogo.exists() && Forge.advStartup ? new Texture(existingLogo) : FSkin.getLogo(); public ClosingScreen(boolean restart0) { bgAnimation = new BGAnimation(); @@ -48,13 +53,14 @@ public class ClosingScreen extends FContainer { } g.fillRect(Color.BLACK, 0, 0, Forge.getScreenWidth(), Forge.getScreenHeight()); g.setAlphaComposite(1-percentage); - g.drawImage(Forge.isMobileAdventureMode ? FSkinTexture.ADV_BG_TEXTURE : FSkinTexture.BG_TEXTURE, 0, 0, Forge.getScreenWidth(), Forge.getScreenHeight()); + g.drawImage(Forge.isMobileAdventureMode || Forge.advStartup ? FSkinTexture.ADV_BG_TEXTURE : FSkinTexture.BG_TEXTURE, 0, 0, Forge.getScreenWidth(), Forge.getScreenHeight()); g.setAlphaComposite(oldAlpha); float xmod = Forge.getScreenHeight() > 2000 ? 1.5f : 1f; - if (FSkin.getLogo() != null) { - g.drawImage(FSkin.getLogo(), Forge.getScreenWidth()/2 - (FSkin.getLogo().getWidth()*xmod)/2, Forge.getScreenHeight()/2 - (FSkin.getLogo().getHeight()*xmod)/2, FSkin.getLogo().getWidth()*xmod, FSkin.getLogo().getHeight()*xmod); + + if (logo != null) { + g.drawImage(logo, Forge.getScreenWidth()/2 - (logo.getWidth()*xmod)/2, Forge.getScreenHeight()/2 - (logo.getHeight()*xmod)/2, logo.getWidth()*xmod, logo.getHeight()*xmod); } else { - g.drawImage(FSkinImage.LOGO,Forge.getScreenWidth()/2 - (FSkinImage.LOGO.getWidth()*xmod)/2, Forge.getScreenHeight()/2 - (FSkinImage.LOGO.getHeight()*xmod)/1.5f, FSkinImage.LOGO.getWidth()*xmod, FSkinImage.LOGO.getHeight()*xmod); + g.drawImage(FSkinImage.LOGO, Forge.getScreenWidth()/2 - (FSkinImage.LOGO.getWidth()*xmod)/2, Forge.getScreenHeight()/2 - (FSkinImage.LOGO.getHeight()*xmod)/1.5f, FSkinImage.LOGO.getWidth()*xmod, FSkinImage.LOGO.getHeight()*xmod); } } @@ -87,12 +93,12 @@ public class ClosingScreen extends FContainer { } g.fillRect(Color.BLACK, 0, 0, Forge.getScreenWidth(), Forge.getScreenHeight()); g.setAlphaComposite(percentage); - g.drawImage(Forge.isMobileAdventureMode ? FSkinTexture.ADV_BG_TEXTURE : FSkinTexture.BG_TEXTURE, 0, 0, Forge.getScreenWidth(), Forge.getScreenHeight()); + g.drawImage(Forge.isMobileAdventureMode || Forge.advStartup ? FSkinTexture.ADV_BG_TEXTURE : FSkinTexture.BG_TEXTURE, 0, 0, Forge.getScreenWidth(), Forge.getScreenHeight()); g.setAlphaComposite(oldAlpha); float xmod = Forge.getScreenHeight() > 2000 ? 1.5f : 1f; xmod *= 21-(20*percentage); - if (FSkin.getLogo() != null) { - g.drawImage(FSkin.getLogo(), Forge.getScreenWidth()/2 - (FSkin.getLogo().getWidth()*xmod)/2, Forge.getScreenHeight()/2 - (FSkin.getLogo().getHeight()*xmod)/2, FSkin.getLogo().getWidth()*xmod, FSkin.getLogo().getHeight()*xmod); + if (logo != null) { + g.drawImage(logo, Forge.getScreenWidth()/2 - (logo.getWidth()*xmod)/2, Forge.getScreenHeight()/2 - (logo.getHeight()*xmod)/2, logo.getWidth()*xmod, logo.getHeight()*xmod); } else { g.drawImage(FSkinImage.LOGO,Forge.getScreenWidth()/2 - (FSkinImage.LOGO.getWidth()*xmod)/2, Forge.getScreenHeight()/2 - (FSkinImage.LOGO.getHeight()*xmod)/1.5f, FSkinImage.LOGO.getWidth()*xmod, FSkinImage.LOGO.getHeight()*xmod); } diff --git a/forge-gui-mobile/src/forge/screens/TransitionScreen.java b/forge-gui-mobile/src/forge/screens/TransitionScreen.java index e8f7af7bed5..72ac3eeaed8 100644 --- a/forge-gui-mobile/src/forge/screens/TransitionScreen.java +++ b/forge-gui-mobile/src/forge/screens/TransitionScreen.java @@ -19,7 +19,7 @@ public class TransitionScreen extends FContainer { Runnable runnable; TextureRegion textureRegion; private String message = ""; - boolean matchTransition, isloading, isIntro, isFadeMusic, advStartup; + boolean matchTransition, isloading, isIntro, isFadeMusic; public TransitionScreen(Runnable proc, TextureRegion screen, boolean enterMatch, boolean loading) { this(proc, screen, enterMatch, loading, false, false); @@ -43,7 +43,7 @@ public class TransitionScreen extends FContainer { isIntro = intro; isFadeMusic = fadeMusic; message = loadingMessage; - advStartup = Forge.selector.equals("Adventure"); + Forge.advStartup = Forge.selector.equals("Adventure"); } public FProgressBar getProgressBar() { @@ -111,7 +111,7 @@ public class TransitionScreen extends FContainer { g.drawWarpImage(textureRegion, 0, 0, Forge.getScreenWidth(), Forge.getScreenHeight(), percentage); } else if (isIntro) { if (textureRegion != null) { - if (advStartup) { + if (Forge.advStartup) { g.drawGrayTransitionImage(Forge.getAssets().fallback_skins().get(0), 0, 0, Forge.getScreenWidth(), Forge.getScreenHeight(), false, percentage); g.setAlphaComposite(1-percentage); g.drawImage(textureRegion, 0, 0, Forge.getScreenWidth(), Forge.getScreenHeight()); From d9a0770640abdebb2607b074594d008907c42026 Mon Sep 17 00:00:00 2001 From: Anthony Calosa Date: Tue, 22 Nov 2022 14:56:18 +0800 Subject: [PATCH 2/3] update imports --- forge-gui-mobile/src/forge/screens/ClosingScreen.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/forge-gui-mobile/src/forge/screens/ClosingScreen.java b/forge-gui-mobile/src/forge/screens/ClosingScreen.java index 8f70d2a3350..f99f301a4ad 100644 --- a/forge-gui-mobile/src/forge/screens/ClosingScreen.java +++ b/forge-gui-mobile/src/forge/screens/ClosingScreen.java @@ -1,5 +1,6 @@ package forge.screens; - +import static forge.assets.FSkin.getDefaultSkinFile; +import static forge.assets.FSkin.getSkinFile; import com.badlogic.gdx.files.FileHandle; import com.badlogic.gdx.graphics.Color; import com.badlogic.gdx.graphics.Texture; From 46effccfece918bcfcf14b14c58ad7f5f5162557 Mon Sep 17 00:00:00 2001 From: Anthony Calosa Date: Tue, 22 Nov 2022 16:24:30 +0800 Subject: [PATCH 3/3] update AdventureDeckEditor Catalog icon --- .../adventure/scene/AdventureDeckEditor.java | 8 ++++---- forge-gui/res/adventure/Shandalar/ui/binder.png | Bin 0 -> 24762 bytes 2 files changed, 4 insertions(+), 4 deletions(-) create mode 100644 forge-gui/res/adventure/Shandalar/ui/binder.png diff --git a/forge-gui-mobile/src/forge/adventure/scene/AdventureDeckEditor.java b/forge-gui-mobile/src/forge/adventure/scene/AdventureDeckEditor.java index 7cbd4e75445..3e7b671ddc7 100644 --- a/forge-gui-mobile/src/forge/adventure/scene/AdventureDeckEditor.java +++ b/forge-gui-mobile/src/forge/adventure/scene/AdventureDeckEditor.java @@ -42,9 +42,9 @@ import java.util.Map; public static FSkinImage MAIN_DECK_ICON = Forge.hdbuttons ? FSkinImage.HDLIBRARY :FSkinImage.DECKLIST; public static FSkinImage SIDEBOARD_ICON = Forge.hdbuttons ? FSkinImage.HDSIDEBOARD : FSkinImage.FLASHBACK; private static final float HEADER_HEIGHT = Math.round(Utils.AVG_FINGER_HEIGHT * 0.8f); - private static final FileHandle tomeIcon = Config.instance().getFile("ui/tome.png"); - private static Texture tomeIconTexture = tomeIcon.exists() ? new Texture(tomeIcon) : null; - private static FImage CATALOG_ICON = tomeIcon.exists() ? new FImage() { + private static final FileHandle binderIcon = Config.instance().getFile("ui/binder.png"); + private static Texture binderTexture = binderIcon.exists() ? new Texture(binderIcon) : null; + private static FImage CATALOG_ICON = binderIcon.exists() ? new FImage() { @Override public float getWidth() { return 100f; @@ -55,7 +55,7 @@ import java.util.Map; } @Override public void draw(Graphics g, float x, float y, float w, float h) { - g.drawImage(tomeIconTexture, x, y, w, h); + g.drawImage(binderTexture, x, y, w, h); } } : FSkinImage.QUEST_BOX; private static final FileHandle sellIcon = Config.instance().getFile("ui/sell.png"); diff --git a/forge-gui/res/adventure/Shandalar/ui/binder.png b/forge-gui/res/adventure/Shandalar/ui/binder.png new file mode 100644 index 0000000000000000000000000000000000000000..2a0c82c918847dba35ed4352c6fa2973a89d222b GIT binary patch literal 24762 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