From ae25a70b4d34fe7604dd374e5ca6e98f1bf3f789 Mon Sep 17 00:00:00 2001 From: Sirz Benjie <142067137+SirzBenjie@users.noreply.github.com> Date: Mon, 5 May 2025 16:36:22 -0500 Subject: [PATCH] [Bug][UI/UX] Ensure pokemon hop when animations are selected (#5781) Ensure pokemon hop when animations are selected --- src/ui/pokedex-ui-handler.ts | 24 ++++++++++-------------- src/ui/starter-select-ui-handler.ts | 28 ++++++++++++---------------- 2 files changed, 22 insertions(+), 30 deletions(-) diff --git a/src/ui/pokedex-ui-handler.ts b/src/ui/pokedex-ui-handler.ts index b1d0945de07..935c9adfeb8 100644 --- a/src/ui/pokedex-ui-handler.ts +++ b/src/ui/pokedex-ui-handler.ts @@ -873,6 +873,7 @@ export default class PokedexUiHandler extends MessageUiHandler { const tweenChain: Phaser.Types.Tweens.TweenChainBuilderConfig = { targets: icon, loop: -1, + paused: startPaused, // Make the initial bounce a little randomly delayed delay: randIntRange(0, 50) * 5, loopDelay: 1000, @@ -894,19 +895,14 @@ export default class PokedexUiHandler extends MessageUiHandler { ], }; - const isPassiveAvailable = this.isPassiveAvailable(species.speciesId); - const isValueReductionAvailable = this.isValueReductionAvailable(species.speciesId); - const isSameSpeciesEggAvailable = this.isSameSpeciesEggAvailable(species.speciesId); - - // 'Passives Only' mode - if (globalScene.candyUpgradeNotification === 1) { - if (isPassiveAvailable) { - globalScene.tweens.chain(tweenChain).paused = startPaused; - } - // 'On' mode - } else if (globalScene.candyUpgradeNotification === 2) { - if (isPassiveAvailable || isValueReductionAvailable || isSameSpeciesEggAvailable) { - globalScene.tweens.chain(tweenChain).paused = startPaused; + if ( + this.isPassiveAvailable(species.speciesId) || + (globalScene.candyUpgradeNotification === 2 && + (this.isValueReductionAvailable(species.speciesId) || this.isSameSpeciesEggAvailable(species.speciesId))) + ) { + const chain = globalScene.tweens.chain(tweenChain); + if (!startPaused) { + chain.play(); } } } @@ -2040,7 +2036,7 @@ export default class PokedexUiHandler extends MessageUiHandler { this.checkIconId(lastSpeciesIcon, container.species, props.female, props.formIndex, props.shiny, props.variant); this.iconAnimHandler.addOrUpdate(lastSpeciesIcon, PokemonIconAnimMode.NONE); // Resume the animation for the previously selected species - globalScene.tweens.getTweensOf(lastSpeciesIcon).forEach(tween => tween.resume()); + globalScene.tweens.getTweensOf(lastSpeciesIcon).forEach(tween => tween.play()); } } diff --git a/src/ui/starter-select-ui-handler.ts b/src/ui/starter-select-ui-handler.ts index 7c345f1735e..09d7322cb75 100644 --- a/src/ui/starter-select-ui-handler.ts +++ b/src/ui/starter-select-ui-handler.ts @@ -1444,6 +1444,7 @@ export default class StarterSelectUiHandler extends MessageUiHandler { const tweenChain: Phaser.Types.Tweens.TweenChainBuilderConfig = { targets: icon, + paused: startPaused, loop: -1, // Make the initial bounce a little randomly delayed delay: randIntRange(0, 50) * 5, @@ -1451,14 +1452,14 @@ export default class StarterSelectUiHandler extends MessageUiHandler { tweens: [ { targets: icon, - y: 2 - 5, + y: "-=5", duration: fixedInt(125), ease: "Cubic.easeOut", yoyo: true, }, { targets: icon, - y: 2 - 3, + y: "-=3", duration: fixedInt(150), ease: "Cubic.easeOut", yoyo: true, @@ -1466,19 +1467,14 @@ export default class StarterSelectUiHandler extends MessageUiHandler { ], }; - const isPassiveAvailable = this.isPassiveAvailable(species.speciesId); - const isValueReductionAvailable = this.isValueReductionAvailable(species.speciesId); - const isSameSpeciesEggAvailable = this.isSameSpeciesEggAvailable(species.speciesId); - - // 'Passives Only' mode - if (globalScene.candyUpgradeNotification === 1) { - if (isPassiveAvailable) { - globalScene.tweens.chain(tweenChain).paused = startPaused; - } - // 'On' mode - } else if (globalScene.candyUpgradeNotification === 2) { - if (isPassiveAvailable || isValueReductionAvailable || isSameSpeciesEggAvailable) { - globalScene.tweens.chain(tweenChain).paused = startPaused; + if ( + this.isPassiveAvailable(species.speciesId) || + (globalScene.candyUpgradeNotification === 2 && + (this.isValueReductionAvailable(species.speciesId) || this.isSameSpeciesEggAvailable(species.speciesId))) + ) { + const chain = globalScene.tweens.chain(tweenChain); + if (!startPaused) { + chain.play(); } } } @@ -3478,7 +3474,7 @@ export default class StarterSelectUiHandler extends MessageUiHandler { // Resume the animation for the previously selected species const icon = this.starterContainers[speciesIndex].icon; - globalScene.tweens.getTweensOf(icon).forEach(tween => tween.resume()); + globalScene.tweens.getTweensOf(icon).forEach(tween => tween.play()); } this.lastSpecies = species!; // TODO: is this bang correct?