diff --git a/src/ui/menu-ui-handler.ts b/src/ui/menu-ui-handler.ts index 71fafcd88df..55f26bc8aa5 100644 --- a/src/ui/menu-ui-handler.ts +++ b/src/ui/menu-ui-handler.ts @@ -41,8 +41,8 @@ export default class MenuUiHandler extends MessageUiHandler { private cursorObj: Phaser.GameObjects.Image; - private excludedMenus: () => ConditionalMenu[]; - private menuOptions: MenuOptions[]; + protected ignoredMenuOptions: MenuOptions[]; + protected menuOptions: MenuOptions[]; protected manageDataConfig: OptionSelectConfig; protected communityConfig: OptionSelectConfig; @@ -53,19 +53,13 @@ export default class MenuUiHandler extends MessageUiHandler { constructor(scene: BattleScene, mode?: Mode) { super(scene, mode); - this.excludedMenus = () => [ - { condition: [Mode.COMMAND, Mode.TITLE].includes(mode ?? Mode.TITLE), options: [ MenuOptions.EGG_GACHA, MenuOptions.EGG_LIST] }, - { condition: bypassLogin, options: [ MenuOptions.LOG_OUT ] } - ]; - - this.menuOptions = Utils.getEnumKeys(MenuOptions) - .map(m => parseInt(MenuOptions[m]) as MenuOptions) - .filter(m => { - return !this.excludedMenus().some(exclusion => exclusion.condition && exclusion.options.includes(m)); - }); + this.ignoredMenuOptions = !bypassLogin + ? [ ] + : [ MenuOptions.LOG_OUT ]; + this.menuOptions = Utils.getEnumKeys(MenuOptions).map(m => parseInt(MenuOptions[m]) as MenuOptions).filter(m => !this.ignoredMenuOptions.includes(m)); } - setup(): void { + setup() { const ui = this.getUi(); // wiki url directs based on languges available on wiki const lang = i18next.resolvedLanguage.substring(0,2); @@ -87,25 +81,10 @@ export default class MenuUiHandler extends MessageUiHandler { this.menuOverlay.setOrigin(0,0); this.menuContainer.add(this.menuOverlay); - this.menuContainer.add(this.bgmBar); - - this.menuContainer.setVisible(false); - - } - - - render() { - const ui = this.getUi(); - this.excludedMenus = () => [ - { condition: ![Mode.COMMAND, Mode.TITLE].includes(ui.getModeChain()[0]), options: [ MenuOptions.EGG_GACHA, MenuOptions.EGG_LIST] }, - { condition: bypassLogin, options: [ MenuOptions.LOG_OUT ] } - ]; - - this.menuOptions = Utils.getEnumKeys(MenuOptions) - .map(m => parseInt(MenuOptions[m]) as MenuOptions) - .filter(m => { - return !this.excludedMenus().some(exclusion => exclusion.condition && exclusion.options.includes(m)); - }); + const menuMessageText = addTextObject(this.scene, 8, 8, "", TextStyle.WINDOW, { maxLines: 2 }); + menuMessageText.setName("menu-message"); + menuMessageText.setWordWrapWidth(1224); + menuMessageText.setOrigin(0, 0); this.optionSelectText = addTextObject(this.scene, 0, 0, this.menuOptions.map(o => `${i18next.t(`menuUiHandler:${MenuOptions[o]}`)}`).join("\n"), TextStyle.WINDOW, { maxLines: this.menuOptions.length }); this.optionSelectText.setLineSpacing(12); @@ -130,12 +109,10 @@ export default class MenuUiHandler extends MessageUiHandler { menuMessageBox.setOrigin(0, 0); this.menuMessageBoxContainer.add(menuMessageBox); - const menuMessageText = addTextObject(this.scene, 8, 8, "", TextStyle.WINDOW, { maxLines: 2 }); - menuMessageText.setName("menu-message"); - menuMessageText.setWordWrapWidth(1224); - menuMessageText.setOrigin(0, 0); this.menuMessageBoxContainer.add(menuMessageText); + this.menuContainer.add(this.bgmBar); + this.message = menuMessageText; this.menuContainer.add(this.menuMessageBoxContainer); @@ -294,18 +271,15 @@ export default class MenuUiHandler extends MessageUiHandler { xOffset: 98, options: communityOptions }; + this.setCursor(0); + + this.menuContainer.setVisible(false); } show(args: any[]): boolean { - this.render(); - super.show(args); - this.menuOptions = Utils.getEnumKeys(MenuOptions) - .map(m => parseInt(MenuOptions[m]) as MenuOptions) - .filter(m => { - return !this.excludedMenus().some(exclusion => exclusion.condition && exclusion.options.includes(m)); - }); + super.show(args); this.menuContainer.setVisible(true); this.setCursor(0); @@ -332,7 +306,7 @@ export default class MenuUiHandler extends MessageUiHandler { if (button === Button.ACTION) { let adjustedCursor = this.cursor; - for (const imo of this.excludedMenus().find(e => e.condition).options.sort()) { + for (const imo of this.ignoredMenuOptions) { if (adjustedCursor >= imo) { adjustedCursor++; } else { @@ -537,8 +511,3 @@ export default class MenuUiHandler extends MessageUiHandler { this.cursorObj = null; } } - -interface ConditionalMenu { - condition: boolean; - options: MenuOptions[]; -} diff --git a/src/ui/ui.ts b/src/ui/ui.ts index e8eb5863824..2068241b395 100644 --- a/src/ui/ui.ts +++ b/src/ui/ui.ts @@ -543,8 +543,4 @@ export default class UI extends Phaser.GameObjects.Container { this.revertMode().then(success => Utils.executeIf(success, this.revertModes).then(() => resolve())); }); } - - public getModeChain(): Mode[] { - return this.modeChain; - } }