From 689d4700c154b2dc56f0dbcd1a7b0f96e4fb4538 Mon Sep 17 00:00:00 2001 From: Flashfyre Date: Sun, 7 Apr 2024 10:28:23 -0400 Subject: [PATCH] Add 2 second confirmation delay when overwriting save --- src/ui/abstact-option-select-ui-handler.ts | 17 ++++++++++++----- src/ui/confirm-ui-handler.ts | 9 ++++++++- src/ui/save-slot-select-ui-handler.ts | 2 +- 3 files changed, 21 insertions(+), 7 deletions(-) diff --git a/src/ui/abstact-option-select-ui-handler.ts b/src/ui/abstact-option-select-ui-handler.ts index c3ccddff4..a8d55bc9d 100644 --- a/src/ui/abstact-option-select-ui-handler.ts +++ b/src/ui/abstact-option-select-ui-handler.ts @@ -100,10 +100,7 @@ export default abstract class AbstractOptionSelectUiHandler extends UiHandler { if (this.config.delay) { this.blockInput = true; this.optionSelectText.setAlpha(0.5); - this.scene.time.delayedCall(Utils.fixedInt(this.config.delay), () => { - this.blockInput = false; - this.optionSelectText.setAlpha(1); - }); + this.scene.time.delayedCall(Utils.fixedInt(this.config.delay), () => this.unblockInput()); } return true; @@ -119,8 +116,10 @@ export default abstract class AbstractOptionSelectUiHandler extends UiHandler { let playSound = true; if (button === Button.ACTION || button === Button.CANCEL) { - if (this.blockInput) + if (this.blockInput) { + ui.playError(); return false; + } success = true; if (button === Button.CANCEL) { @@ -156,6 +155,14 @@ export default abstract class AbstractOptionSelectUiHandler extends UiHandler { return success; } + unblockInput(): void { + if (!this.blockInput) + return; + + this.blockInput = false; + this.optionSelectText.setAlpha(1); + } + getOptionsWithScroll(): OptionSelectItem[] { if (!this.config) return []; diff --git a/src/ui/confirm-ui-handler.ts b/src/ui/confirm-ui-handler.ts index 7f0efb6ca..e4dfb6224 100644 --- a/src/ui/confirm-ui-handler.ts +++ b/src/ui/confirm-ui-handler.ts @@ -1,4 +1,4 @@ -import BattleScene from "../battle-scene"; +import BattleScene, { Button } from "../battle-scene"; import AbstractOptionSelectUiHandler, { OptionSelectConfig } from "./abstact-option-select-ui-handler"; import { Mode } from "./ui"; @@ -47,6 +47,13 @@ export default class ConfirmUiHandler extends AbstractOptionSelectUiHandler { return false; } + processInput(button: Button): boolean { + if (button === Button.CANCEL && this.blockInput) + this.unblockInput(); + + return super.processInput(button); + } + setCursor(cursor: integer): boolean { const ret = super.setCursor(cursor); diff --git a/src/ui/save-slot-select-ui-handler.ts b/src/ui/save-slot-select-ui-handler.ts index 64c50d69c..aca844c39 100644 --- a/src/ui/save-slot-select-ui-handler.ts +++ b/src/ui/save-slot-select-ui-handler.ts @@ -112,7 +112,7 @@ export default class SaveSlotSelectUiHandler extends MessageUiHandler { ui.setOverlayMode(Mode.CONFIRM, () => saveAndCallback(), () => { ui.revertMode(); ui.showText(null, 0); - }, false, 0, 19); + }, false, 0, 19, 2000); }); } else saveAndCallback();