Compare commits

...

5 Commits

Author SHA1 Message Date
Frederico Santos
80fcba22cf Refactor excludedMenus logic in MenuUiHandler 2024-08-02 18:15:31 +01:00
Frederico Santos
3fd1eea7a2 chore: Add setup method to MenuUiHandler 2024-08-02 18:02:18 +01:00
Frederico Santos
0604b2f782 Merge branch 'disable-egg-gacha-in-rewards' of github.com:pagefaultgames/pokerogue into disable-egg-gacha-in-rewards 2024-08-02 17:59:21 +01:00
Frederico Santos
d8f1103de5 Refactor excludedMenus logic in MenuUiHandler 2024-08-02 17:59:10 +01:00
Frederico Santos
14a079c76e
Update src/ui/menu-ui-handler.ts
Co-authored-by: flx-sta <50131232+flx-sta@users.noreply.github.com>
2024-08-02 17:55:07 +01:00

View File

@ -40,7 +40,7 @@ export default class MenuUiHandler extends MessageUiHandler {
private cursorObj: Phaser.GameObjects.Image;
private excludedMenus: () => { condition: boolean, options: MenuOptions[] }[];
private excludedMenus: () => ConditionalMenu[];
private menuOptions: MenuOptions[];
protected manageDataConfig: OptionSelectConfig;
@ -64,23 +64,8 @@ export default class MenuUiHandler extends MessageUiHandler {
});
}
setup() {
this.render();
}
render() {
setup(): void {
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));
});
// wiki url directs based on languges available on wiki
const lang = i18next.resolvedLanguage.substring(0,2);
if (["de", "fr", "ko", "zh"].includes(lang)) {
@ -101,10 +86,25 @@ export default class MenuUiHandler extends MessageUiHandler {
this.menuOverlay.setOrigin(0,0);
this.menuContainer.add(this.menuOverlay);
const menuMessageText = addTextObject(this.scene, 8, 8, "", TextStyle.WINDOW, { maxLines: 2 });
menuMessageText.setName("menu-message");
menuMessageText.setWordWrapWidth(1224);
menuMessageText.setOrigin(0, 0);
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));
});
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);
@ -129,10 +129,12 @@ 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);
@ -291,10 +293,7 @@ export default class MenuUiHandler extends MessageUiHandler {
xOffset: 98,
options: communityOptions
};
this.setCursor(0);
this.menuContainer.setVisible(false);
}
show(args: any[]): boolean {
@ -533,3 +532,8 @@ export default class MenuUiHandler extends MessageUiHandler {
this.cursorObj = null;
}
}
interface ConditionalMenu {
condition: boolean;
options: MenuOptions[];
}