mirror of
https://github.com/pagefaultgames/pokerogue.git
synced 2025-07-07 17:02:16 +02:00
lossingProgressWarning in settings
This commit is contained in:
parent
3d8a51e7e4
commit
5be45edc58
@ -2,7 +2,7 @@ import BattleScene from "../../battle-scene";
|
|||||||
import { hasTouchscreen, isMobile } from "../../touch-controls";
|
import { hasTouchscreen, isMobile } from "../../touch-controls";
|
||||||
import { TextStyle, addTextObject } from "../text";
|
import { TextStyle, addTextObject } from "../text";
|
||||||
import { Mode } from "../ui";
|
import { Mode } from "../ui";
|
||||||
import UiHandler from "../ui-handler";
|
import MessageUiHandler from "../message-ui-handler";
|
||||||
import { addWindow } from "../ui-theme";
|
import { addWindow } from "../ui-theme";
|
||||||
import {Button} from "#enums/buttons";
|
import {Button} from "#enums/buttons";
|
||||||
import {InputsIcons} from "#app/ui/settings/abstract-control-settings-ui-handler.js";
|
import {InputsIcons} from "#app/ui/settings/abstract-control-settings-ui-handler.js";
|
||||||
@ -14,10 +14,11 @@ import i18next from "i18next";
|
|||||||
/**
|
/**
|
||||||
* Abstract class for handling UI elements related to settings.
|
* Abstract class for handling UI elements related to settings.
|
||||||
*/
|
*/
|
||||||
export default class AbstractSettingsUiHandler extends UiHandler {
|
export default class AbstractSettingsUiHandler extends MessageUiHandler {
|
||||||
private settingsContainer: Phaser.GameObjects.Container;
|
private settingsContainer: Phaser.GameObjects.Container;
|
||||||
private optionsContainer: Phaser.GameObjects.Container;
|
private optionsContainer: Phaser.GameObjects.Container;
|
||||||
private navigationContainer: NavigationMenu;
|
private navigationContainer: NavigationMenu;
|
||||||
|
private settingsMessageBoxContainer: Phaser.GameObjects.Container;
|
||||||
|
|
||||||
private scrollCursor: integer;
|
private scrollCursor: integer;
|
||||||
|
|
||||||
@ -138,6 +139,22 @@ export default class AbstractSettingsUiHandler extends UiHandler {
|
|||||||
this.settingsContainer.add(actionText);
|
this.settingsContainer.add(actionText);
|
||||||
this.settingsContainer.add(cancelText);
|
this.settingsContainer.add(cancelText);
|
||||||
|
|
||||||
|
this.settingsMessageBoxContainer = this.scene.add.container(0, 130);
|
||||||
|
this.settingsMessageBoxContainer.setName("settings-message-box");
|
||||||
|
this.settingsMessageBoxContainer.setVisible(false);
|
||||||
|
|
||||||
|
const settingsMessageBox = addWindow(this.scene, 0, 0, (this.scene.game.canvas.width/6) - 2, 48);
|
||||||
|
this.settingsMessageBoxContainer.add(settingsMessageBox);
|
||||||
|
|
||||||
|
const messageText = addTextObject(this.scene,8,8,"",TextStyle.WINDOW,{ maxLines: 2 });
|
||||||
|
messageText.setWordWrapWidth(this.scene.game.canvas.width - 2);
|
||||||
|
messageText.setName("settings-message");
|
||||||
|
messageText.setOrigin(0, 0);
|
||||||
|
|
||||||
|
this.settingsMessageBoxContainer.add(messageText);
|
||||||
|
this.message = messageText;
|
||||||
|
this.settingsContainer.add(this.settingsMessageBoxContainer);
|
||||||
|
|
||||||
ui.add(this.settingsContainer);
|
ui.add(this.settingsContainer);
|
||||||
|
|
||||||
this.setCursor(0);
|
this.setCursor(0);
|
||||||
@ -215,10 +232,31 @@ export default class AbstractSettingsUiHandler extends UiHandler {
|
|||||||
let success = false;
|
let success = false;
|
||||||
|
|
||||||
if (button === Button.CANCEL) {
|
if (button === Button.CANCEL) {
|
||||||
success = true;
|
if (this.reloadRequired && this.scene.currentBattle && this.scene.currentBattle.turn > 1) {
|
||||||
|
const ui = this.getUi();
|
||||||
|
|
||||||
|
this.showText(i18next.t("menuUiHandler:losingProgressionWarning"), null, () => {
|
||||||
|
ui.setOverlayMode(Mode.CONFIRM, () => {
|
||||||
NavigationManager.getInstance().reset();
|
NavigationManager.getInstance().reset();
|
||||||
// Reverts UI to its previous state on cancel.
|
|
||||||
this.scene.ui.revertMode();
|
this.scene.ui.revertMode();
|
||||||
|
this.scene.ui.revertMode();
|
||||||
|
}, () => {
|
||||||
|
this.reloadSettings.forEach((s,i) => {
|
||||||
|
if (s !== null && s !== this.optionCursors[i]) {
|
||||||
|
this.setOptionCursor(i,s,true);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
this.scene.ui.revertMode();
|
||||||
|
ui.showText("", 0);
|
||||||
|
}, false, 0,0);
|
||||||
|
});
|
||||||
|
|
||||||
|
} else {
|
||||||
|
NavigationManager.getInstance().reset();
|
||||||
|
this.scene.ui.revertMode();
|
||||||
|
}
|
||||||
|
success = true;
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
const cursor = this.cursor + this.scrollCursor;
|
const cursor = this.cursor + this.scrollCursor;
|
||||||
switch (button) {
|
switch (button) {
|
||||||
@ -267,7 +305,28 @@ export default class AbstractSettingsUiHandler extends UiHandler {
|
|||||||
break;
|
break;
|
||||||
case Button.CYCLE_FORM:
|
case Button.CYCLE_FORM:
|
||||||
case Button.CYCLE_SHINY:
|
case Button.CYCLE_SHINY:
|
||||||
|
if (this.reloadRequired && this.scene.currentBattle && this.scene.currentBattle.turn > 1) {
|
||||||
|
const ui = this.getUi();
|
||||||
|
|
||||||
|
this.showText(i18next.t("menuUiHandler:losingProgressionWarning"), null, () => {
|
||||||
|
ui.setOverlayMode(Mode.CONFIRM, () => {
|
||||||
|
NavigationManager.getInstance().reset();
|
||||||
|
this.scene.ui.revertMode();
|
||||||
|
this.scene.ui.revertMode();
|
||||||
|
}, () => {
|
||||||
|
this.reloadSettings.forEach((s,i) => {
|
||||||
|
if (s !== null && s !== this.optionCursors[i]) {
|
||||||
|
this.setOptionCursor(this.cursor + this.scrollCursor,s,true);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
this.scene.ui.revertMode();
|
||||||
|
ui.showText("", 0);
|
||||||
|
}, false, 0,0);
|
||||||
|
});
|
||||||
|
|
||||||
|
} else {
|
||||||
success = this.navigationContainer.navigate(button);
|
success = this.navigationContainer.navigate(button);
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
case Button.ACTION:
|
case Button.ACTION:
|
||||||
const setting: Setting = this.settings[cursor];
|
const setting: Setting = this.settings[cursor];
|
||||||
@ -417,4 +476,10 @@ export default class AbstractSettingsUiHandler extends UiHandler {
|
|||||||
}
|
}
|
||||||
this.cursorObj = null;
|
this.cursorObj = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
showText(text: string, delay?: number|null, callback?: Function, callbackDelay?: number, prompt?: boolean, promptDelay?: number): void {
|
||||||
|
this.settingsMessageBoxContainer.setVisible(!!text);
|
||||||
|
|
||||||
|
super.showText(text, delay, callback, callbackDelay, prompt, promptDelay);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user