mirror of
https://github.com/pagefaultgames/pokerogue.git
synced 2025-08-11 18:09:29 +02:00
commit
8fa4f10836
@ -370,7 +370,10 @@ export class PartyUiHandler extends MessageUiHandler {
|
|||||||
|
|
||||||
this.showPartyText();
|
this.showPartyText();
|
||||||
this.populatePartySlots();
|
this.populatePartySlots();
|
||||||
this.partyDiscardModeButton.toggleIcon(this.partyUiMode);
|
// If we are currently transferring items, set the icon to its proper state and reveal the button.
|
||||||
|
if (this.isItemManageMode()) {
|
||||||
|
this.partyDiscardModeButton.toggleIcon(this.partyUiMode as PartyUiMode.MODIFIER_TRANSFER | PartyUiMode.DISCARD);
|
||||||
|
}
|
||||||
this.setCursor(0);
|
this.setCursor(0);
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
@ -664,20 +667,20 @@ export class PartyUiHandler extends MessageUiHandler {
|
|||||||
|
|
||||||
const itemModifiers = this.getTransferrableItemsFromPokemon(pokemon);
|
const itemModifiers = this.getTransferrableItemsFromPokemon(pokemon);
|
||||||
|
|
||||||
let success = true;
|
|
||||||
if (this.optionsCursor === itemModifiers.length) {
|
if (this.optionsCursor === itemModifiers.length) {
|
||||||
|
// Discard all currently held items, erroring if any cannot be discarded
|
||||||
|
let success = true;
|
||||||
for (let i = 0; i < itemModifiers.length; i++) {
|
for (let i = 0; i < itemModifiers.length; i++) {
|
||||||
globalScene.tryDiscardHeldItemModifier(itemModifiers[i], this.transferQuantities[i]);
|
success &&= globalScene.tryDiscardHeldItemModifier(itemModifiers[i], this.transferQuantities[i]);
|
||||||
}
|
}
|
||||||
success = this.getTransferrableItemsFromPokemon(pokemon).length === 0;
|
return success;
|
||||||
} else {
|
|
||||||
success = globalScene.tryDiscardHeldItemModifier(
|
|
||||||
itemModifiers[this.optionsCursor],
|
|
||||||
this.transferQuantities[this.optionsCursor],
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return success;
|
// Discard the currently selected item
|
||||||
|
return globalScene.tryDiscardHeldItemModifier(
|
||||||
|
itemModifiers[this.optionsCursor],
|
||||||
|
this.transferQuantities[this.optionsCursor],
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
private moveOptionCursor(button: Button.UP | Button.DOWN): boolean {
|
private moveOptionCursor(button: Button.UP | Button.DOWN): boolean {
|
||||||
@ -1000,12 +1003,14 @@ export class PartyUiHandler extends MessageUiHandler {
|
|||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
ui.playError();
|
ui.playError();
|
||||||
break;
|
return false;
|
||||||
}
|
}
|
||||||
this.partyDiscardModeButton.toggleIcon(this.partyUiMode);
|
this.partyDiscardModeButton.toggleIcon(this.partyUiMode);
|
||||||
this.showPartyText();
|
this.showPartyText();
|
||||||
ui.playSelect();
|
ui.playSelect();
|
||||||
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Pressing return button
|
// Pressing return button
|
||||||
if (this.cursor === 6) {
|
if (this.cursor === 6) {
|
||||||
if (!this.allowCancel()) {
|
if (!this.allowCancel()) {
|
||||||
@ -1054,6 +1059,9 @@ export class PartyUiHandler extends MessageUiHandler {
|
|||||||
|
|
||||||
let success = false;
|
let success = false;
|
||||||
switch (button) {
|
switch (button) {
|
||||||
|
// Item manage mode adds an extra 8th "toggle mode" button to the UI, located *below* both active party members.
|
||||||
|
// The following logic serves to ensure its menu behaviour matches its in-game position,
|
||||||
|
// being selected when scrolling up from the first inactive party member or down from the last active one.
|
||||||
case Button.UP:
|
case Button.UP:
|
||||||
if (this.isItemManageMode()) {
|
if (this.isItemManageMode()) {
|
||||||
if (this.cursor === 1) {
|
if (this.cursor === 1) {
|
||||||
@ -1103,11 +1111,12 @@ export class PartyUiHandler extends MessageUiHandler {
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case Button.RIGHT:
|
case Button.RIGHT:
|
||||||
|
// Scrolling right from item transfer button or with no backup party members goes to cancel
|
||||||
if (this.cursor === 7 || slotCount <= battlerCount) {
|
if (this.cursor === 7 || slotCount <= battlerCount) {
|
||||||
success = this.setCursor(6);
|
success = this.setCursor(6);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
if (slotCount > battlerCount && this.cursor < battlerCount) {
|
if (this.cursor < battlerCount) {
|
||||||
success = this.setCursor(this.lastRightPokemonCursor || battlerCount);
|
success = this.setCursor(this.lastRightPokemonCursor || battlerCount);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -2103,8 +2112,7 @@ class PartyCancelButton extends Phaser.GameObjects.Container {
|
|||||||
}
|
}
|
||||||
|
|
||||||
class PartyDiscardModeButton extends Phaser.GameObjects.Container {
|
class PartyDiscardModeButton extends Phaser.GameObjects.Container {
|
||||||
private selected: boolean;
|
private selected = false;
|
||||||
|
|
||||||
private transferIcon: Phaser.GameObjects.Sprite;
|
private transferIcon: Phaser.GameObjects.Sprite;
|
||||||
private discardIcon: Phaser.GameObjects.Sprite;
|
private discardIcon: Phaser.GameObjects.Sprite;
|
||||||
private textBox: Phaser.GameObjects.Text;
|
private textBox: Phaser.GameObjects.Text;
|
||||||
@ -2149,7 +2157,14 @@ class PartyDiscardModeButton extends Phaser.GameObjects.Container {
|
|||||||
this.discardIcon.setFrame("normal");
|
this.discardIcon.setFrame("normal");
|
||||||
}
|
}
|
||||||
|
|
||||||
toggleIcon(partyMode: number) {
|
/**
|
||||||
|
* If the current mode deals with transferring items, toggle the discard items button's name and assets.
|
||||||
|
* @param partyMode - The current {@linkcode PartyUiMode}
|
||||||
|
* @remarks
|
||||||
|
* This will also reveal the button if it is currently hidden.
|
||||||
|
*/
|
||||||
|
public toggleIcon(partyMode: PartyUiMode.MODIFIER_TRANSFER | PartyUiMode.DISCARD): void {
|
||||||
|
this.setActive(true).setVisible(true);
|
||||||
switch (partyMode) {
|
switch (partyMode) {
|
||||||
case PartyUiMode.MODIFIER_TRANSFER:
|
case PartyUiMode.MODIFIER_TRANSFER:
|
||||||
this.transferIcon.setVisible(true);
|
this.transferIcon.setVisible(true);
|
||||||
@ -2173,12 +2188,11 @@ class PartyDiscardModeButton extends Phaser.GameObjects.Container {
|
|||||||
);
|
);
|
||||||
this.discardIcon.displayWidth = this.textBox.text.length * 9 + 3;
|
this.discardIcon.displayWidth = this.textBox.text.length * 9 + 3;
|
||||||
break;
|
break;
|
||||||
default:
|
|
||||||
return;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
clear() {
|
clear() {
|
||||||
|
this.setActive(false).setVisible(false);
|
||||||
this.transferIcon.setVisible(false);
|
this.transferIcon.setVisible(false);
|
||||||
this.discardIcon.setVisible(false);
|
this.discardIcon.setVisible(false);
|
||||||
this.textBox.setVisible(false);
|
this.textBox.setVisible(false);
|
||||||
|
Loading…
Reference in New Issue
Block a user