From 644b1c051a2383e0c9c10febc802f79c015fa21c Mon Sep 17 00:00:00 2001 From: Anthony Calosa Date: Thu, 26 May 2022 13:11:15 +0800 Subject: [PATCH] add delay to see attack animation - add short delay to see player and mob attack animation before the duel starts --- .../src/forge/adventure/stage/MapStage.java | 33 ++++++++++--------- .../src/forge/adventure/stage/WorldStage.java | 25 +++++++------- 2 files changed, 32 insertions(+), 26 deletions(-) diff --git a/forge-gui-mobile/src/forge/adventure/stage/MapStage.java b/forge-gui-mobile/src/forge/adventure/stage/MapStage.java index 5459ca961cb..048034ff3c8 100644 --- a/forge-gui-mobile/src/forge/adventure/stage/MapStage.java +++ b/forge-gui-mobile/src/forge/adventure/stage/MapStage.java @@ -662,22 +662,25 @@ public class MapStage extends GameStage { currentMob = mob; player.setAnimation(CharacterSprite.AnimationTypes.Attack); mob.setAnimation(CharacterSprite.AnimationTypes.Attack); + SoundSystem.instance.play(SoundEffectType.Block, false); Gdx.input.vibrate(50); - Forge.setCursor(null, Forge.magnifyToggle ? "1" : "2"); - SoundSystem.instance.play(SoundEffectType.ManaBurn, false); - DuelScene duelScene = ((DuelScene) SceneType.DuelScene.instance); - FThreads.invokeInEdtNowOrLater(() -> { - if (!isLoadingMatch) { - isLoadingMatch = true; - Forge.setTransitionScreen(new TransitionScreen(() -> { - duelScene.initDuels(player, mob); - Forge.clearTransitionScreen(); - startPause(0.3f, () -> { - if(isInMap && effect != null) duelScene.setDungeonEffect(effect); - Forge.switchScene(SceneType.DuelScene.instance); - }); - }, ScreenUtils.getFrameBufferTexture(), true, false)); - } + startPause(0.8f, () -> { + Forge.setCursor(null, Forge.magnifyToggle ? "1" : "2"); + SoundSystem.instance.play(SoundEffectType.ManaBurn, false); + DuelScene duelScene = ((DuelScene) SceneType.DuelScene.instance); + FThreads.invokeInEdtNowOrLater(() -> { + if (!isLoadingMatch) { + isLoadingMatch = true; + Forge.setTransitionScreen(new TransitionScreen(() -> { + duelScene.initDuels(player, mob); + Forge.clearTransitionScreen(); + startPause(0.3f, () -> { + if(isInMap && effect != null) duelScene.setDungeonEffect(effect); + Forge.switchScene(SceneType.DuelScene.instance); + }); + }, ScreenUtils.getFrameBufferTexture(), true, false)); + } + }); }); } diff --git a/forge-gui-mobile/src/forge/adventure/stage/WorldStage.java b/forge-gui-mobile/src/forge/adventure/stage/WorldStage.java index 4c70ef67706..b36ff1713f0 100644 --- a/forge-gui-mobile/src/forge/adventure/stage/WorldStage.java +++ b/forge-gui-mobile/src/forge/adventure/stage/WorldStage.java @@ -84,18 +84,21 @@ public class WorldStage extends GameStage implements SaveFileContent { if (player.collideWith(mob)) { player.setAnimation(CharacterSprite.AnimationTypes.Attack); mob.setAnimation(CharacterSprite.AnimationTypes.Attack); + SoundSystem.instance.play(SoundEffectType.Block, false); Gdx.input.vibrate(50); - Forge.setCursor(null, Forge.magnifyToggle ? "1" : "2"); - SoundSystem.instance.play(SoundEffectType.ManaBurn, false); - DuelScene duelScene = ((DuelScene) SceneType.DuelScene.instance); - FThreads.invokeInEdtNowOrLater(() -> { - Forge.setTransitionScreen(new TransitionScreen(() -> { - duelScene.initDuels(player, mob); - Forge.clearTransitionScreen(); - startPause(0.3f, () -> Forge.switchScene(SceneType.DuelScene.instance)); - }, ScreenUtils.getFrameBufferTexture(), true, false)); - currentMob = mob; - WorldSave.getCurrentSave().autoSave(); + startPause(0.8f, () -> { + Forge.setCursor(null, Forge.magnifyToggle ? "1" : "2"); + SoundSystem.instance.play(SoundEffectType.ManaBurn, false); + DuelScene duelScene = ((DuelScene) SceneType.DuelScene.instance); + FThreads.invokeInEdtNowOrLater(() -> { + Forge.setTransitionScreen(new TransitionScreen(() -> { + duelScene.initDuels(player, mob); + Forge.clearTransitionScreen(); + startPause(0.3f, () -> Forge.switchScene(SceneType.DuelScene.instance)); + }, ScreenUtils.getFrameBufferTexture(), true, false)); + currentMob = mob; + WorldSave.getCurrentSave().autoSave(); + }); }); break; }