[Refactor] Cleanup egg list ui handler (#5890)

Cleanup egg list ui handler

Co-authored-by: Wlowscha <54003515+Wlowscha@users.noreply.github.com>
This commit is contained in:
Sirz Benjie 2025-06-06 14:34:38 -05:00 committed by GitHub
parent e82e182507
commit 178de207f1
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -35,81 +35,70 @@ export default class EggListUiHandler extends MessageUiHandler {
setup() { setup() {
const ui = this.getUi(); const ui = this.getUi();
this.eggListContainer = globalScene.add.container(0, -globalScene.game.canvas.height / 6); this.eggListContainer = globalScene.add.container(0, -globalScene.game.canvas.height / 6).setVisible(false);
this.eggListContainer.setVisible(false);
ui.add(this.eggListContainer); ui.add(this.eggListContainer);
const bgColor = globalScene.add.rectangle( const bgColor = globalScene.add
0, .rectangle(0, 0, globalScene.game.canvas.width / 6, globalScene.game.canvas.height / 6, 0x006860)
0, .setOrigin(0);
globalScene.game.canvas.width / 6,
globalScene.game.canvas.height / 6,
0x006860,
);
bgColor.setOrigin(0, 0);
this.eggListContainer.add(bgColor);
const eggListBg = globalScene.add.image(0, 0, "egg_list_bg"); const eggListBg = globalScene.add.image(0, 0, "egg_list_bg").setOrigin(0);
eggListBg.setOrigin(0, 0);
this.eggListContainer.add(eggListBg);
this.eggListContainer.add(addWindow(1, 85, 106, 22));
this.eggListContainer.add(addWindow(1, 102, 106, 50, true));
this.eggListContainer.add(addWindow(1, 147, 106, 32, true));
this.eggListContainer.add(addWindow(107, 1, 212, 178));
this.iconAnimHandler = new PokemonIconAnimHandler(); this.iconAnimHandler = new PokemonIconAnimHandler();
this.iconAnimHandler.setup(); this.iconAnimHandler.setup();
this.eggNameText = addTextObject(8, 68, "", TextStyle.SUMMARY); this.eggNameText = addTextObject(8, 68, "", TextStyle.SUMMARY).setOrigin(0);
this.eggNameText.setOrigin(0, 0);
this.eggListContainer.add(this.eggNameText);
this.eggDateText = addTextObject(8, 91, "", TextStyle.TOOLTIP_CONTENT); this.eggDateText = addTextObject(8, 91, "", TextStyle.TOOLTIP_CONTENT);
this.eggListContainer.add(this.eggDateText);
this.eggHatchWavesText = addTextObject(8, 108, "", TextStyle.TOOLTIP_CONTENT); this.eggHatchWavesText = addTextObject(8, 108, "", TextStyle.TOOLTIP_CONTENT).setWordWrapWidth(540);
this.eggHatchWavesText.setWordWrapWidth(540);
this.eggListContainer.add(this.eggHatchWavesText);
this.eggGachaInfoText = addTextObject(8, 152, "", TextStyle.TOOLTIP_CONTENT); this.eggGachaInfoText = addTextObject(8, 152, "", TextStyle.TOOLTIP_CONTENT).setWordWrapWidth(540);
this.eggGachaInfoText.setWordWrapWidth(540);
this.eggListContainer.add(this.eggGachaInfoText);
this.eggListIconContainer = globalScene.add.container(113, 5); this.eggListIconContainer = globalScene.add.container(113, 5);
this.eggListContainer.add(this.eggListIconContainer);
this.cursorObj = globalScene.add.image(0, 0, "select_cursor"); this.cursorObj = globalScene.add.image(0, 0, "select_cursor").setOrigin(0);
this.cursorObj.setOrigin(0, 0);
this.eggListContainer.add(this.cursorObj);
this.eggSprite = globalScene.add.sprite(54, 37, "egg"); this.eggSprite = globalScene.add.sprite(54, 37, "egg");
this.eggListContainer.add(this.eggSprite);
const scrollBar = new ScrollBar(310, 5, 4, 170, this.ROWS); const scrollBar = new ScrollBar(310, 5, 4, 170, this.ROWS);
this.eggListContainer.add(scrollBar);
this.scrollGridHandler = new ScrollableGridUiHandler(this, this.ROWS, this.COLUMNS) this.scrollGridHandler = new ScrollableGridUiHandler(this, this.ROWS, this.COLUMNS)
.withScrollBar(scrollBar) .withScrollBar(scrollBar)
.withUpdateGridCallBack(() => this.updateEggIcons()) .withUpdateGridCallBack(() => this.updateEggIcons())
.withUpdateSingleElementCallback((i: number) => this.setEggDetails(i)); .withUpdateSingleElementCallback((i: number) => this.setEggDetails(i));
this.eggListMessageBoxContainer = globalScene.add.container(0, globalScene.game.canvas.height / 6); this.eggListMessageBoxContainer = globalScene.add
this.eggListMessageBoxContainer.setVisible(false); .container(0, globalScene.game.canvas.height / 6)
this.eggListContainer.add(this.eggListMessageBoxContainer); .setVisible(false);
const eggListMessageBox = addWindow(1, -1, 318, 28); const eggListMessageBox = addWindow(1, -1, 318, 28).setOrigin(0, 1);
eggListMessageBox.setOrigin(0, 1);
this.eggListMessageBoxContainer.add(eggListMessageBox); this.eggListMessageBoxContainer.add(eggListMessageBox);
this.message = addTextObject(8, -8, "", TextStyle.WINDOW, { maxLines: 1 }); // Message isn't used, but is expected to exist as this subclasses MessageUiHandler
this.message.setOrigin(0, 1); this.message = addTextObject(8, -8, "", TextStyle.WINDOW, { maxLines: 1 }).setActive(false).setVisible(false);
this.eggListMessageBoxContainer.add(this.message);
this.cursor = -1; this.cursor = -1;
this.eggListContainer.add([
bgColor,
eggListBg,
addWindow(1, 85, 106, 22),
addWindow(1, 102, 106, 50, true),
addWindow(1, 147, 106, 32, true),
addWindow(107, 1, 212, 178),
this.eggNameText,
this.eggDateText,
this.eggHatchWavesText,
this.eggGachaInfoText,
this.eggListIconContainer,
this.cursorObj,
this.eggSprite,
scrollBar,
]);
} }
show(args: any[]): boolean { override show(args: any[]): boolean {
super.show(args); super.show(args);
this.initEggIcons(); this.initEggIcons();
@ -134,9 +123,10 @@ export default class EggListUiHandler extends MessageUiHandler {
for (let i = 0; i < Math.min(this.ROWS * this.COLUMNS, globalScene.gameData.eggs.length); i++) { for (let i = 0; i < Math.min(this.ROWS * this.COLUMNS, globalScene.gameData.eggs.length); i++) {
const x = (i % this.COLUMNS) * 18; const x = (i % this.COLUMNS) * 18;
const y = Math.floor(i / this.COLUMNS) * 18; const y = Math.floor(i / this.COLUMNS) * 18;
const icon = globalScene.add.sprite(x - 2, y + 2, "egg_icons"); const icon = globalScene.add
icon.setScale(0.5); .sprite(x - 2, y + 2, "egg_icons")
icon.setOrigin(0, 0); .setScale(0.5)
.setOrigin(0);
this.eggListIconContainer.add(icon); this.eggListIconContainer.add(icon);
this.eggIcons.push(icon); this.eggIcons.push(icon);
} }
@ -148,15 +138,13 @@ export default class EggListUiHandler extends MessageUiHandler {
private updateEggIcons() { private updateEggIcons() {
const indexOffset = this.scrollGridHandler.getItemOffset(); const indexOffset = this.scrollGridHandler.getItemOffset();
const eggsToShow = Math.min(this.eggIcons.length, globalScene.gameData.eggs.length - indexOffset); const eggsToShow = Math.min(this.eggIcons.length, globalScene.gameData.eggs.length - indexOffset);
this.eggIcons.forEach((icon, i) => { this.eggIcons.forEach((icon, i) => {
if (i !== this.cursor) { if (i !== this.cursor) {
this.iconAnimHandler.addOrUpdate(icon, PokemonIconAnimMode.NONE); this.iconAnimHandler.addOrUpdate(icon, PokemonIconAnimMode.NONE);
} }
if (i < eggsToShow) { if (i < eggsToShow) {
const egg = globalScene.gameData.eggs[i + indexOffset]; const egg = globalScene.gameData.eggs[i + indexOffset];
icon.setFrame(egg.getKey()); icon.setFrame(egg.getKey()).setVisible(true);
icon.setVisible(true);
} else { } else {
icon.setVisible(false); icon.setVisible(false);
} }
@ -187,7 +175,6 @@ export default class EggListUiHandler extends MessageUiHandler {
const ui = this.getUi(); const ui = this.getUi();
let success = false; let success = false;
const error = false;
if (button === Button.CANCEL) { if (button === Button.CANCEL) {
ui.revertMode(); ui.revertMode();
@ -198,11 +185,9 @@ export default class EggListUiHandler extends MessageUiHandler {
if (success) { if (success) {
ui.playSelect(); ui.playSelect();
} else if (error) {
ui.playError();
} }
return success || error; return success;
} }
setCursor(cursor: number): boolean { setCursor(cursor: number): boolean {