mirror of
https://github.com/pagefaultgames/pokerogue.git
synced 2025-09-24 07:23:24 +02:00
[UI/UX][Bug] Prevent switch to discard mode while transferring item (#6358)
This commit is contained in:
parent
16adb02ad2
commit
3b290ee9a2
@ -1021,7 +1021,8 @@ export class PartyUiHandler extends MessageUiHandler {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Toggle item transfer mode to discard items or vice versa
|
// Toggle item transfer mode to discard items or vice versa
|
||||||
if (this.cursor === 7) {
|
// Prevent changing mode, when currently transfering an item
|
||||||
|
if (this.cursor === 7 && !this.transferMode) {
|
||||||
switch (this.partyUiMode) {
|
switch (this.partyUiMode) {
|
||||||
case PartyUiMode.DISCARD:
|
case PartyUiMode.DISCARD:
|
||||||
this.partyUiMode = PartyUiMode.MODIFIER_TRANSFER;
|
this.partyUiMode = PartyUiMode.MODIFIER_TRANSFER;
|
||||||
|
@ -6,7 +6,7 @@ import { UiMode } from "#enums/ui-mode";
|
|||||||
import type { Pokemon } from "#field/pokemon";
|
import type { Pokemon } from "#field/pokemon";
|
||||||
import { GameManager } from "#test/test-utils/game-manager";
|
import { GameManager } from "#test/test-utils/game-manager";
|
||||||
import type { ModifierSelectUiHandler } from "#ui/modifier-select-ui-handler";
|
import type { ModifierSelectUiHandler } from "#ui/modifier-select-ui-handler";
|
||||||
import type { PartyUiHandler } from "#ui/party-ui-handler";
|
import { type PartyUiHandler, PartyUiMode } from "#ui/party-ui-handler";
|
||||||
import Phaser from "phaser";
|
import Phaser from "phaser";
|
||||||
import { afterEach, beforeAll, beforeEach, describe, expect, it } from "vitest";
|
import { afterEach, beforeAll, beforeEach, describe, expect, it } from "vitest";
|
||||||
|
|
||||||
@ -169,4 +169,49 @@ describe("UI - Transfer Items", () => {
|
|||||||
expect(pokemon.getHeldItems().map(h => h.stackCount)).toEqual([2, 2]);
|
expect(pokemon.getHeldItems().map(h => h.stackCount)).toEqual([2, 2]);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
it("should not allow changing to discard mode when transfering items", async () => {
|
||||||
|
let handler: PartyUiHandler | undefined;
|
||||||
|
|
||||||
|
await new Promise<void>(resolve => {
|
||||||
|
game.onNextPrompt("SelectModifierPhase", UiMode.MODIFIER_SELECT, async () => {
|
||||||
|
await new Promise(r => setTimeout(r, 100));
|
||||||
|
const modifierHandler = game.scene.ui.getHandler() as ModifierSelectUiHandler;
|
||||||
|
|
||||||
|
modifierHandler.processInput(Button.DOWN);
|
||||||
|
modifierHandler.setCursor(1);
|
||||||
|
modifierHandler.processInput(Button.ACTION);
|
||||||
|
});
|
||||||
|
|
||||||
|
game.onNextPrompt("SelectModifierPhase", UiMode.PARTY, async () => {
|
||||||
|
await new Promise(r => setTimeout(r, 100));
|
||||||
|
handler = game.scene.ui.getHandler() as PartyUiHandler;
|
||||||
|
|
||||||
|
handler.setCursor(0);
|
||||||
|
handler.processInput(Button.ACTION);
|
||||||
|
|
||||||
|
await new Promise(r => setTimeout(r, 100));
|
||||||
|
handler.processInput(Button.ACTION);
|
||||||
|
|
||||||
|
resolve();
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
expect(handler).toBeDefined();
|
||||||
|
if (handler) {
|
||||||
|
const partyMode = handler["partyUiMode"];
|
||||||
|
expect(partyMode).toBe(PartyUiMode.MODIFIER_TRANSFER);
|
||||||
|
|
||||||
|
handler.setCursor(7);
|
||||||
|
handler.processInput(Button.ACTION);
|
||||||
|
// Should not change mode to discard
|
||||||
|
expect(handler["partyUiMode"]).toBe(PartyUiMode.MODIFIER_TRANSFER);
|
||||||
|
|
||||||
|
handler.processInput(Button.CANCEL);
|
||||||
|
handler.setCursor(7);
|
||||||
|
handler.processInput(Button.ACTION);
|
||||||
|
// Should change mode to discard
|
||||||
|
expect(handler["partyUiMode"]).toBe(PartyUiMode.DISCARD);
|
||||||
|
}
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
Loading…
Reference in New Issue
Block a user