diff --git a/src/phase.ts b/src/phase.ts index 052a957fa4c..a8fb7c68a12 100644 --- a/src/phase.ts +++ b/src/phase.ts @@ -9,6 +9,8 @@ export class Phase { start() { console.log(`%cStart Phase ${this.constructor.name}`, 'color:green;'); + if (this.scene.abilityBar.shown) + this.scene.abilityBar.resetAutoHideTimer(); } end() { diff --git a/src/ui/ability-bar.ts b/src/ui/ability-bar.ts index c5fb51feec0..1985844e919 100644 --- a/src/ui/ability-bar.ts +++ b/src/ui/ability-bar.ts @@ -12,6 +12,7 @@ export default class AbilityBar extends Phaser.GameObjects.Container { private abilityNameText: Phaser.GameObjects.Text; private tween: Phaser.Tweens.Tween; + private autoHideTimer: number; public shown: boolean; @@ -55,7 +56,10 @@ export default class AbilityBar extends Phaser.GameObjects.Container { x: shownX, duration: 500, ease: 'Sine.easeOut', - onComplete: () => this.tween = null + onComplete: () => { + this.tween = null; + this.resetAutoHideTimer(); + } }); this.setVisible(true); @@ -66,6 +70,9 @@ export default class AbilityBar extends Phaser.GameObjects.Container { if (!this.shown) return; + if (this.autoHideTimer) + clearInterval(this.autoHideTimer); + if (this.tween) this.tween.stop(); @@ -82,4 +89,13 @@ export default class AbilityBar extends Phaser.GameObjects.Container { this.shown = false; } + + resetAutoHideTimer(): void { + if (this.autoHideTimer) + clearInterval(this.autoHideTimer); + this.autoHideTimer = setTimeout(() => { + this.hide(); + this.autoHideTimer = null; + }, 2500); + } } \ No newline at end of file diff --git a/src/ui/title-ui-handler.ts b/src/ui/title-ui-handler.ts index 48f6e0590a7..fde27788bd1 100644 --- a/src/ui/title-ui-handler.ts +++ b/src/ui/title-ui-handler.ts @@ -13,7 +13,7 @@ export default class TitleUiHandler extends OptionSelectUiHandler { private splashMessage: string; private splashMessageText: Phaser.GameObjects.Text; - private titleStatsTimer; + private titleStatsTimer: number; constructor(scene: BattleScene, mode: Mode = Mode.TITLE) { super(scene, mode);