From b69706857043fe40d199ebea3c8a20a81f644482 Mon Sep 17 00:00:00 2001 From: Anthony Calosa Date: Thu, 23 Mar 2023 07:58:00 +0800 Subject: [PATCH 1/2] fix splashscreen NPE, disable flip sfx --- forge-game/src/main/java/forge/game/card/Card.java | 2 +- .../java/forge/game/event/GameEventCardStatsChanged.java | 4 +++- forge-gui-mobile/src/forge/screens/SplashScreen.java | 5 ++++- 3 files changed, 8 insertions(+), 3 deletions(-) diff --git a/forge-game/src/main/java/forge/game/card/Card.java b/forge-game/src/main/java/forge/game/card/Card.java index 44bf5eaf15e..0fc3b9723b9 100644 --- a/forge-game/src/main/java/forge/game/card/Card.java +++ b/forge-game/src/main/java/forge/game/card/Card.java @@ -526,7 +526,7 @@ public class Card extends GameEntity implements Comparable, IHasSVars { if (state == CardStateName.FaceDown) { view.updateHiddenId(game.nextHiddenCardId()); } - game.fireEvent(new GameEventCardStatsChanged(this, true)); //ensure stats updated for new characteristics + game.fireEvent(new GameEventCardStatsChanged(this)); //ensure stats updated for new characteristics } } return true; diff --git a/forge-game/src/main/java/forge/game/event/GameEventCardStatsChanged.java b/forge-game/src/main/java/forge/game/event/GameEventCardStatsChanged.java index ad05e05753c..f4bdcd33184 100644 --- a/forge-game/src/main/java/forge/game/event/GameEventCardStatsChanged.java +++ b/forge-game/src/main/java/forge/game/event/GameEventCardStatsChanged.java @@ -22,7 +22,9 @@ public class GameEventCardStatsChanged extends GameEvent { public GameEventCardStatsChanged(Card affected, boolean isTransform) { cards = Arrays.asList(affected); - transform = isTransform; + //the transform should only fire once so the flip effect sound will trigger once every transformation... + // disable for now + transform = false; } public GameEventCardStatsChanged(Collection affected) { diff --git a/forge-gui-mobile/src/forge/screens/SplashScreen.java b/forge-gui-mobile/src/forge/screens/SplashScreen.java index aa764e4b458..11ed0c23358 100644 --- a/forge-gui-mobile/src/forge/screens/SplashScreen.java +++ b/forge-gui-mobile/src/forge/screens/SplashScreen.java @@ -239,7 +239,10 @@ public class SplashScreen extends FContainer { } void drawTransition(Graphics g, boolean openAdventure, float percentage) { - TextureRegion tr = new TextureRegion(Forge.getAssets().fallback_skins().get("title")); + Texture t = Forge.getAssets().fallback_skins().get("title"); + TextureRegion tr = null; + if (t != null) + tr = new TextureRegion(t); float oldAlpha = g.getfloatAlphaComposite(); g.setAlphaComposite(percentage); if (openAdventure) { From 41136da7d5929422c0f8b0ec8d6f4a7c7ccb46e6 Mon Sep 17 00:00:00 2001 From: Anthony Calosa Date: Thu, 23 Mar 2023 12:04:40 +0800 Subject: [PATCH 2/2] update ArenaScene --- .../src/forge/adventure/scene/ArenaScene.java | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/forge-gui-mobile/src/forge/adventure/scene/ArenaScene.java b/forge-gui-mobile/src/forge/adventure/scene/ArenaScene.java index e5c6a6233a8..815e66eb4ab 100644 --- a/forge-gui-mobile/src/forge/adventure/scene/ArenaScene.java +++ b/forge-gui-mobile/src/forge/adventure/scene/ArenaScene.java @@ -2,6 +2,7 @@ package forge.adventure.scene; import com.badlogic.gdx.graphics.g2d.Sprite; import com.badlogic.gdx.graphics.g2d.TextureAtlas; +import com.badlogic.gdx.scenes.scene2d.Action; import com.badlogic.gdx.scenes.scene2d.Actor; import com.badlogic.gdx.scenes.scene2d.Group; import com.badlogic.gdx.scenes.scene2d.actions.Actions; @@ -55,6 +56,7 @@ public class ArenaScene extends UIScene implements IAfterMatch { final Sprite edgeM; final Sprite edgeWin; final Sprite edgeWinM; + boolean enable = true; boolean arenaStarted = false; private ArenaScene() { @@ -107,6 +109,8 @@ public class ArenaScene extends UIScene implements IAfterMatch { } private void startButton() { + if (!enable) + return; if (roundsWon == 0) { Dialog startDialog = prepareDialog(Forge.getLocalizer().getMessage("lblStart"), ButtonYes | ButtonNo, () -> startArena()); startDialog.text("Do you want to go into the Arena?"); @@ -119,6 +123,7 @@ public class ArenaScene extends UIScene implements IAfterMatch { int roundsWon = 0; private void startArena() { + enable = false; goldLabel.setVisible(false); arenaStarted = true; startButton.setText("[%80]" + Forge.getLocalizer().getMessage("lblContinue")); @@ -132,6 +137,7 @@ public class ArenaScene extends UIScene implements IAfterMatch { @Override public void setWinner(boolean winner) { + enable = false; Array winners = new Array<>(); Array winnersEnemies = new Array<>(); for (int i = 0; i < fighters.size - 2; i += 2) { @@ -189,7 +195,15 @@ public class ArenaScene extends UIScene implements IAfterMatch { } if (Forge.isLandscapeMode()) { actor.toFront(); - actor.addAction(Actions.sequence(Actions.moveBy(0f, gridSize * 2f, 1), Actions.moveBy((float) (gridSize * stepsToTheSide * (leftPlayer ? 1 : -1)), 0f, 1))); + actor.addAction(Actions.sequence(Actions.moveBy(0f, gridSize * 2f, 1), Actions.moveBy((float) (gridSize * stepsToTheSide * (leftPlayer ? 1 : -1)), 0f, 1), new Action() { + @Override + public boolean act(float v) { + enable = true; + return true; + } + })); + } else { + enable = true; } }