[ui] add prompt icon to the message boxes that don't have it

This commit is contained in:
MokaStitcher 2024-09-14 18:10:58 +02:00
parent 6c2880dc30
commit f7b8cf7256
6 changed files with 25 additions and 13 deletions

View File

@ -83,12 +83,7 @@ export default class BattleMessageUiHandler extends MessageUiHandler {
this.nameBoxContainer.add(this.nameText);
messageContainer.add(this.nameBoxContainer);
const prompt = this.scene.add.sprite(0, 0, "prompt");
prompt.setVisible(false);
prompt.setOrigin(0, 0);
messageContainer.add(prompt);
this.prompt = prompt;
this.initPromptSprite(messageContainer);
const levelUpStatsContainer = this.scene.add.container(0, 0);
levelUpStatsContainer.setVisible(false);

View File

@ -303,6 +303,8 @@ export default class EggGachaUiHandler extends MessageUiHandler {
this.eggGachaContainer.add(gachaMessageBoxContainer);
this.initPromptSprite(gachaMessageBoxContainer);
this.setCursor(0);
}

View File

@ -45,12 +45,7 @@ export default class EvolutionSceneHandler extends MessageUiHandler {
this.message = message;
const prompt = this.scene.add.sprite(0, 0, "prompt");
prompt.setVisible(false);
prompt.setOrigin(0, 0);
this.messageContainer.add(prompt);
this.prompt = prompt;
this.initPromptSprite(this.messageContainer);
}
show(_args: any[]): boolean {

View File

@ -157,6 +157,8 @@ export default class MenuUiHandler extends MessageUiHandler {
menuMessageText.setOrigin(0, 0);
this.menuMessageBoxContainer.add(menuMessageText);
this.initPromptSprite(this.menuMessageBoxContainer);
this.message = menuMessageText;
// By default we use the general purpose message window

View File

@ -17,6 +17,21 @@ export default abstract class MessageUiHandler extends AwaitableUiHandler {
this.pendingPrompt = false;
}
/**
* Add the sprite to be displayed at the end of messages with prompts
* @param container the container to add the sprite to
*/
initPromptSprite(container: Phaser.GameObjects.Container) {
if (container && !this.prompt) {
const promptSprite = this.scene.add.sprite(0, 0, "prompt");
promptSprite.setVisible(false);
promptSprite.setOrigin(0, 0);
container.add(promptSprite);
this.prompt = promptSprite;
}
}
showText(text: string, delay?: integer | null, callback?: Function | null, callbackDelay?: integer | null, prompt?: boolean | null, promptDelay?: integer | null) {
this.showTextInternal(text, delay, callback, callbackDelay, prompt, promptDelay);
}
@ -180,7 +195,7 @@ export default abstract class MessageUiHandler extends AwaitableUiHandler {
const lastLineWidth = lastLineTest.displayWidth;
lastLineTest.destroy();
if (this.prompt) {
this.prompt.setPosition(lastLineWidth + 2, (textLinesCount - 1) * 18 + 2);
this.prompt.setPosition(this.message.x + lastLineWidth + 2, this.message.y + (textLinesCount - 1) * 18 + 2);
this.prompt.play("prompt");
}
this.pendingPrompt = false;

View File

@ -894,6 +894,9 @@ export default class StarterSelectUiHandler extends MessageUiHandler {
this.message.setOrigin(0, 0);
this.starterSelectMessageBoxContainer.add(this.message);
// arrow icon for the message box
this.initPromptSprite(this.starterSelectMessageBoxContainer);
this.statsContainer = new StatsContainer(this.scene, 6, 16);
this.scene.add.existing(this.statsContainer);