diff --git a/src/ui/abstact-option-select-ui-handler.ts b/src/ui/abstact-option-select-ui-handler.ts index f0148509220..ae7f107efc0 100644 --- a/src/ui/abstact-option-select-ui-handler.ts +++ b/src/ui/abstact-option-select-ui-handler.ts @@ -46,8 +46,8 @@ export default abstract class AbstractOptionSelectUiHandler extends UiHandler { private cursorObj: Phaser.GameObjects.Image | null; - constructor(scene: BattleScene, mode?: Mode) { - super(scene, mode!); // TODO: is this bang correct? + constructor(scene: BattleScene, mode: Mode | null) { + super(scene, mode); } abstract getWindowWidth(): integer; @@ -60,7 +60,7 @@ export default abstract class AbstractOptionSelectUiHandler extends UiHandler { const ui = this.getUi(); this.optionSelectContainer = this.scene.add.container((this.scene.game.canvas.width / 6) - 1, -48); - this.optionSelectContainer.setName(`option-select-${Mode[this.mode]}`); + this.optionSelectContainer.setName(`option-select-${this.mode ? Mode[this.mode] : "UNKNOWN"}`); this.optionSelectContainer.setVisible(false); ui.add(this.optionSelectContainer); diff --git a/src/ui/achvs-ui-handler.ts b/src/ui/achvs-ui-handler.ts index 304b5df8340..46259e52d0d 100644 --- a/src/ui/achvs-ui-handler.ts +++ b/src/ui/achvs-ui-handler.ts @@ -21,8 +21,8 @@ export default class AchvsUiHandler extends MessageUiHandler { private cursorObj: Phaser.GameObjects.NineSlice | null; - constructor(scene: BattleScene, mode?: Mode) { - super(scene, mode!); // TODO: is this bang correct? + constructor(scene: BattleScene, mode: Mode | null = null) { + super(scene, mode); } setup() { diff --git a/src/ui/awaitable-ui-handler.ts b/src/ui/awaitable-ui-handler.ts index 33be11ccc27..2052c6e2ade 100644 --- a/src/ui/awaitable-ui-handler.ts +++ b/src/ui/awaitable-ui-handler.ts @@ -8,7 +8,7 @@ export default abstract class AwaitableUiHandler extends UiHandler { protected onActionInput: Function | null; public tutorialActive: boolean = false; - constructor(scene: BattleScene, mode: Mode) { + constructor(scene: BattleScene, mode: Mode | null = null) { super(scene, mode); } diff --git a/src/ui/challenges-select-ui-handler.ts b/src/ui/challenges-select-ui-handler.ts index 1200b3f3b40..12211fa71cc 100644 --- a/src/ui/challenges-select-ui-handler.ts +++ b/src/ui/challenges-select-ui-handler.ts @@ -34,8 +34,8 @@ export default class GameChallengesUiHandler extends UiHandler { private startCursor: Phaser.GameObjects.NineSlice; - constructor(scene: BattleScene, mode?: Mode) { - super(scene, mode!); // TODO: is this bang correct? + constructor(scene: BattleScene, mode: Mode | null = null) { + super(scene, mode); } setup() { diff --git a/src/ui/form-modal-ui-handler.ts b/src/ui/form-modal-ui-handler.ts index a4539c2369f..4516e39675c 100644 --- a/src/ui/form-modal-ui-handler.ts +++ b/src/ui/form-modal-ui-handler.ts @@ -20,7 +20,7 @@ export abstract class FormModalUiHandler extends ModalUiHandler { protected submitAction: Function | null; protected tween: Phaser.Tweens.Tween; - constructor(scene: BattleScene, mode?: Mode) { + constructor(scene: BattleScene, mode: Mode | null = null) { super(scene, mode); this.editing = false; diff --git a/src/ui/game-stats-ui-handler.ts b/src/ui/game-stats-ui-handler.ts index 3d6d8081d4e..c28e5d851a2 100644 --- a/src/ui/game-stats-ui-handler.ts +++ b/src/ui/game-stats-ui-handler.ts @@ -218,8 +218,8 @@ export default class GameStatsUiHandler extends UiHandler { private statLabels: Phaser.GameObjects.Text[]; private statValues: Phaser.GameObjects.Text[]; - constructor(scene: BattleScene, mode?: Mode) { - super(scene, mode!); // TODO: is this bang correct? + constructor(scene: BattleScene, mode: Mode | null = null) { + super(scene, mode); this.statLabels = []; this.statValues = []; diff --git a/src/ui/loading-modal-ui-handler.ts b/src/ui/loading-modal-ui-handler.ts index c335b59de9f..d86f7afd3b6 100644 --- a/src/ui/loading-modal-ui-handler.ts +++ b/src/ui/loading-modal-ui-handler.ts @@ -5,7 +5,7 @@ import { addTextObject, TextStyle } from "./text"; import { Mode } from "./ui"; export default class LoadingModalUiHandler extends ModalUiHandler { - constructor(scene: BattleScene, mode?: Mode) { + constructor(scene: BattleScene, mode: Mode | null = null) { super(scene, mode); } diff --git a/src/ui/login-form-ui-handler.ts b/src/ui/login-form-ui-handler.ts index 450c583a26c..9a787b40b1b 100644 --- a/src/ui/login-form-ui-handler.ts +++ b/src/ui/login-form-ui-handler.ts @@ -13,7 +13,7 @@ export default class LoginFormUiHandler extends FormModalUiHandler { private externalPartyContainer: Phaser.GameObjects.Container; private externalPartyBg: Phaser.GameObjects.NineSlice; private externalPartyTitle: Phaser.GameObjects.Text; - constructor(scene: BattleScene, mode?: Mode) { + constructor(scene: BattleScene, mode: Mode | null = null) { super(scene, mode); } diff --git a/src/ui/menu-ui-handler.ts b/src/ui/menu-ui-handler.ts index 27db60aa5da..0c99953c62d 100644 --- a/src/ui/menu-ui-handler.ts +++ b/src/ui/menu-ui-handler.ts @@ -51,8 +51,8 @@ export default class MenuUiHandler extends MessageUiHandler { public bgmBar: BgmBar; - constructor(scene: BattleScene, mode?: Mode) { - super(scene, mode!); // TODO: is this bang correct? + constructor(scene: BattleScene, mode: Mode | null = null) { + super(scene, mode); this.excludedMenus = () => [ { condition: [Mode.COMMAND, Mode.TITLE].includes(mode ?? Mode.TITLE), options: [ MenuOptions.EGG_GACHA, MenuOptions.EGG_LIST] }, diff --git a/src/ui/message-ui-handler.ts b/src/ui/message-ui-handler.ts index c870ef13a27..a78887e1581 100644 --- a/src/ui/message-ui-handler.ts +++ b/src/ui/message-ui-handler.ts @@ -11,7 +11,7 @@ export default abstract class MessageUiHandler extends AwaitableUiHandler { public message: Phaser.GameObjects.Text; public prompt: Phaser.GameObjects.Sprite; - constructor(scene: BattleScene, mode: Mode) { + constructor(scene: BattleScene, mode: Mode | null = null) { super(scene, mode); this.pendingPrompt = false; diff --git a/src/ui/modal-ui-handler.ts b/src/ui/modal-ui-handler.ts index 5aac6ac194e..cecdacc1eb9 100644 --- a/src/ui/modal-ui-handler.ts +++ b/src/ui/modal-ui-handler.ts @@ -16,8 +16,8 @@ export abstract class ModalUiHandler extends UiHandler { protected buttonContainers: Phaser.GameObjects.Container[]; protected buttonBgs: Phaser.GameObjects.NineSlice[]; - constructor(scene: BattleScene, mode?: Mode) { - super(scene, mode!); // TODO: is this bang correct? + constructor(scene: BattleScene, mode: Mode | null = null) { + super(scene, mode); this.buttonContainers = []; this.buttonBgs = []; diff --git a/src/ui/outdated-modal-ui-handler.ts b/src/ui/outdated-modal-ui-handler.ts index 1e737cf638b..fc4b93f9b8a 100644 --- a/src/ui/outdated-modal-ui-handler.ts +++ b/src/ui/outdated-modal-ui-handler.ts @@ -4,7 +4,7 @@ import { addTextObject, TextStyle } from "./text"; import { Mode } from "./ui"; export default class OutdatedModalUiHandler extends ModalUiHandler { - constructor(scene: BattleScene, mode?: Mode) { + constructor(scene: BattleScene, mode: Mode | null = null) { super(scene, mode); } diff --git a/src/ui/session-reload-modal-ui-handler.ts b/src/ui/session-reload-modal-ui-handler.ts index 5313de58580..147634b19d2 100644 --- a/src/ui/session-reload-modal-ui-handler.ts +++ b/src/ui/session-reload-modal-ui-handler.ts @@ -4,7 +4,7 @@ import { addTextObject, TextStyle } from "./text"; import { Mode } from "./ui"; export default class SessionReloadModalUiHandler extends ModalUiHandler { - constructor(scene: BattleScene, mode?: Mode) { + constructor(scene: BattleScene, mode: Mode | null = null) { super(scene, mode); } diff --git a/src/ui/settings/abstract-binding-ui-handler.ts b/src/ui/settings/abstract-binding-ui-handler.ts index 3da555e2c96..5e6dd80c6d6 100644 --- a/src/ui/settings/abstract-binding-ui-handler.ts +++ b/src/ui/settings/abstract-binding-ui-handler.ts @@ -52,8 +52,8 @@ export default abstract class AbstractBindingUiHandler extends UiHandler { * @param scene - The BattleScene instance. * @param mode - The UI mode. */ - constructor(scene: BattleScene, mode?: Mode) { - super(scene, mode!); // TODO: is this bang correct? + constructor(scene: BattleScene, mode: Mode | null = null) { + super(scene, mode); } /** diff --git a/src/ui/settings/abstract-control-settings-ui-handler.ts b/src/ui/settings/abstract-control-settings-ui-handler.ts index 1f0c2b98fbd..f8dab1bf7cc 100644 --- a/src/ui/settings/abstract-control-settings-ui-handler.ts +++ b/src/ui/settings/abstract-control-settings-ui-handler.ts @@ -73,8 +73,8 @@ export default abstract class AbstractControlSettingsUiHandler extends UiHandler * @param scene - The BattleScene instance. * @param mode - The UI mode. */ - constructor(scene: BattleScene, mode?: Mode) { - super(scene, mode!); // TODO: is this bang correct? + constructor(scene: BattleScene, mode: Mode | null = null) { + super(scene, mode); this.rowsToDisplay = 8; } diff --git a/src/ui/settings/abstract-settings-ui-handler.ts b/src/ui/settings/abstract-settings-ui-handler.ts index 96d8e790c8a..6a074c83e90 100644 --- a/src/ui/settings/abstract-settings-ui-handler.ts +++ b/src/ui/settings/abstract-settings-ui-handler.ts @@ -40,8 +40,8 @@ export default class AbstractSettingsUiHandler extends UiHandler { protected settings: Array; protected localStorageKey: string; - constructor(scene: BattleScene, mode?: Mode) { - super(scene, mode!); // TODO: is this bang correct? + constructor(scene: BattleScene, mode: Mode | null = null) { + super(scene, mode); this.reloadRequired = false; this.rowsToDisplay = 8; diff --git a/src/ui/settings/gamepad-binding-ui-handler.ts b/src/ui/settings/gamepad-binding-ui-handler.ts index 16a8b9d2c30..4e5b4576b85 100644 --- a/src/ui/settings/gamepad-binding-ui-handler.ts +++ b/src/ui/settings/gamepad-binding-ui-handler.ts @@ -8,7 +8,7 @@ import {addTextObject, TextStyle} from "#app/ui/text"; export default class GamepadBindingUiHandler extends AbstractBindingUiHandler { - constructor(scene: BattleScene, mode?: Mode) { + constructor(scene: BattleScene, mode: Mode | null = null) { super(scene, mode); this.scene.input.gamepad?.on("down", this.gamepadButtonDown, this); } diff --git a/src/ui/settings/keyboard-binding-ui-handler.ts b/src/ui/settings/keyboard-binding-ui-handler.ts index 0bc74da86ce..043c5fba6a5 100644 --- a/src/ui/settings/keyboard-binding-ui-handler.ts +++ b/src/ui/settings/keyboard-binding-ui-handler.ts @@ -8,11 +8,12 @@ import {addTextObject, TextStyle} from "#app/ui/text"; export default class KeyboardBindingUiHandler extends AbstractBindingUiHandler { - constructor(scene: BattleScene, mode?: Mode) { + constructor(scene: BattleScene, mode: Mode | null = null) { super(scene, mode); // Listen to gamepad button down events to initiate binding. scene.input.keyboard?.on("keydown", this.onKeyDown, this); } + setup() { super.setup(); diff --git a/src/ui/settings/settings-audio-ui-handler.ts b/src/ui/settings/settings-audio-ui-handler.ts index 10313ed388c..e86c0d26546 100644 --- a/src/ui/settings/settings-audio-ui-handler.ts +++ b/src/ui/settings/settings-audio-ui-handler.ts @@ -11,7 +11,7 @@ export default class SettingsAudioUiHandler extends AbstractSettingsUiHandler { * @param scene - The BattleScene instance. * @param mode - The UI mode, optional. */ - constructor(scene: BattleScene, mode?: Mode) { + constructor(scene: BattleScene, mode: Mode | null = null) { super(scene, mode); this.title = "Audio"; this.settings = Setting.filter(s => s.type === SettingType.AUDIO); diff --git a/src/ui/settings/settings-display-ui-handler.ts b/src/ui/settings/settings-display-ui-handler.ts index 5193f76a5e0..3f0c9edd26f 100644 --- a/src/ui/settings/settings-display-ui-handler.ts +++ b/src/ui/settings/settings-display-ui-handler.ts @@ -11,7 +11,7 @@ export default class SettingsDisplayUiHandler extends AbstractSettingsUiHandler * @param scene - The BattleScene instance. * @param mode - The UI mode, optional. */ - constructor(scene: BattleScene, mode?: Mode) { + constructor(scene: BattleScene, mode: Mode | null = null) { super(scene, mode); this.title = "Display"; this.settings = Setting.filter(s => s.type === SettingType.DISPLAY); diff --git a/src/ui/settings/settings-gamepad-ui-handler.ts b/src/ui/settings/settings-gamepad-ui-handler.ts index f86e8088ec6..902d7eff34e 100644 --- a/src/ui/settings/settings-gamepad-ui-handler.ts +++ b/src/ui/settings/settings-gamepad-ui-handler.ts @@ -31,7 +31,7 @@ export default class SettingsGamepadUiHandler extends AbstractControlSettingsUiH * @param scene - The BattleScene instance. * @param mode - The UI mode, optional. */ - constructor(scene: BattleScene, mode?: Mode) { + constructor(scene: BattleScene, mode: Mode | null = null) { super(scene, mode); this.titleSelected = "Gamepad"; this.setting = SettingGamepad; diff --git a/src/ui/settings/settings-keyboard-ui-handler.ts b/src/ui/settings/settings-keyboard-ui-handler.ts index 3408359f33b..dc6de8c90dc 100644 --- a/src/ui/settings/settings-keyboard-ui-handler.ts +++ b/src/ui/settings/settings-keyboard-ui-handler.ts @@ -29,7 +29,7 @@ export default class SettingsKeyboardUiHandler extends AbstractControlSettingsUi * @param scene - The BattleScene instance. * @param mode - The UI mode, optional. */ - constructor(scene: BattleScene, mode?: Mode) { + constructor(scene: BattleScene, mode: Mode | null = null) { super(scene, mode); this.titleSelected = "Keyboard"; this.setting = SettingKeyboard; diff --git a/src/ui/settings/settings-ui-handler.ts b/src/ui/settings/settings-ui-handler.ts index a6332be1343..b4a40eae1a5 100644 --- a/src/ui/settings/settings-ui-handler.ts +++ b/src/ui/settings/settings-ui-handler.ts @@ -10,7 +10,7 @@ export default class SettingsUiHandler extends AbstractSettingsUiHandler { * @param scene - The BattleScene instance. * @param mode - The UI mode, optional. */ - constructor(scene: BattleScene, mode?: Mode) { + constructor(scene: BattleScene, mode: Mode | null = null) { super(scene, mode); this.title = "General"; this.settings = Setting.filter(s => s.type === SettingType.GENERAL); diff --git a/src/ui/ui-handler.ts b/src/ui/ui-handler.ts index 8336109847e..94625efaa75 100644 --- a/src/ui/ui-handler.ts +++ b/src/ui/ui-handler.ts @@ -8,7 +8,7 @@ import {Button} from "#enums/buttons"; */ export default abstract class UiHandler { protected scene: BattleScene; - protected mode: integer; + protected mode: integer | null; protected cursor: integer = 0; public active: boolean = false; @@ -16,7 +16,7 @@ export default abstract class UiHandler { * @param {BattleScene} scene The same scene as everything else. * @param {Mode} mode The mode of the UI element. These should be unique. */ - constructor(scene: BattleScene, mode: Mode) { + constructor(scene: BattleScene, mode: Mode | null = null) { this.scene = scene; this.mode = mode; } diff --git a/src/ui/unavailable-modal-ui-handler.ts b/src/ui/unavailable-modal-ui-handler.ts index 873bef4ba79..dab1a8c3be8 100644 --- a/src/ui/unavailable-modal-ui-handler.ts +++ b/src/ui/unavailable-modal-ui-handler.ts @@ -16,7 +16,7 @@ export default class UnavailableModalUiHandler extends ModalUiHandler { private readonly randVarianceTime = 1000 * 10; - constructor(scene: BattleScene, mode?: Mode) { + constructor(scene: BattleScene, mode: Mode | null = null) { super(scene, mode); this.reconnectDuration = this.minTime; } diff --git a/src/ui/vouchers-ui-handler.ts b/src/ui/vouchers-ui-handler.ts index 169d851599b..bb2dc2cd0be 100644 --- a/src/ui/vouchers-ui-handler.ts +++ b/src/ui/vouchers-ui-handler.ts @@ -24,8 +24,8 @@ export default class VouchersUiHandler extends MessageUiHandler { private cursorObj: Phaser.GameObjects.NineSlice | null; - constructor(scene: BattleScene, mode?: Mode) { - super(scene, mode!); // TODO: is this bang correct? + constructor(scene: BattleScene, mode: Mode | null = null) { + super(scene, mode); this.itemsTotal = Object.keys(vouchers).length; this.scrollCursor = 0;