From 87c84203e7f34dc469cabc71e46d0fe38701f665 Mon Sep 17 00:00:00 2001 From: Tiago Rodrigues Date: Mon, 16 Jun 2025 21:32:22 +0100 Subject: [PATCH] [Fix] Corrected legacy mode icons and adjusted double-battle button location --- public/images/ui/legacy/party_discard.json | 30 +++++++------- public/images/ui/legacy/party_discard.png | Bin 5922 -> 214 bytes public/images/ui/legacy/party_transfer.json | 32 +++++++-------- public/images/ui/legacy/party_transfer.png | Bin 5980 -> 214 bytes public/images/ui/party_transfer.json | 2 +- src/ui/party-ui-handler.ts | 42 ++++++++++++++++---- 6 files changed, 66 insertions(+), 40 deletions(-) diff --git a/public/images/ui/legacy/party_discard.json b/public/images/ui/legacy/party_discard.json index 308fe51cee3..f6ba017cdf5 100644 --- a/public/images/ui/legacy/party_discard.json +++ b/public/images/ui/legacy/party_discard.json @@ -4,8 +4,8 @@ "image": "party_discard.png", "format": "RGBA8888", "size": { - "w": 75, - "h": 46 + "w": 52, + "h": 32 }, "scale": 1, "frames": [ @@ -14,20 +14,20 @@ "rotated": false, "trimmed": false, "sourceSize": { - "w": 75, - "h": 23 + "w": 52, + "h": 16 }, "spriteSourceSize": { "x": 0, "y": 0, - "w": 75, - "h": 23 + "w": 52, + "h": 16 }, "frame": { "x": 0, "y": 0, - "w": 75, - "h": 23 + "w": 52, + "h": 16 } }, { @@ -35,20 +35,20 @@ "rotated": false, "trimmed": false, "sourceSize": { - "w": 75, - "h": 23 + "w": 52, + "h": 16 }, "spriteSourceSize": { "x": 0, "y": 0, - "w": 75, - "h": 23 + "w": 52, + "h": 16 }, "frame": { "x": 0, - "y": 23, - "w": 75, - "h": 23 + "y": 16, + "w": 52, + "h": 16 } } ] diff --git a/public/images/ui/legacy/party_discard.png b/public/images/ui/legacy/party_discard.png index 6e3dc638b718f2dc929f69c24da77cdc67d1073c..4219c8d33c4cee2bd5dbf9ba3263f1482e8f0815 100644 GIT binary patch literal 214 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 K?=sJ*jQ<5F>Mkt+ diff --git a/public/images/ui/party_transfer.json b/public/images/ui/party_transfer.json index 308fe51cee3..a9d0e66c9c8 100644 --- a/public/images/ui/party_transfer.json +++ b/public/images/ui/party_transfer.json @@ -1,7 +1,7 @@ { "textures": [ { - "image": "party_discard.png", + "image": "party_transfer.png", "format": "RGBA8888", "size": { "w": 75, diff --git a/src/ui/party-ui-handler.ts b/src/ui/party-ui-handler.ts index 52fe3992e60..ca68759e71b 100644 --- a/src/ui/party-ui-handler.ts +++ b/src/ui/party-ui-handler.ts @@ -314,6 +314,7 @@ export default class PartyUiHandler extends MessageUiHandler { this.iconAnimHandler.setup(); const partyDiscardModeButton = new PartyDiscardModeButton(60, -globalScene.game.canvas.height / 15 - 1); + partyContainer.add(partyDiscardModeButton); this.PartyDiscardModeButton = partyDiscardModeButton; @@ -1046,9 +1047,17 @@ export default class PartyUiHandler extends MessageUiHandler { let success = false; switch (button) { case Button.UP: - if (this.cursor === 7 && this.isItemManageMode()) { - success = this.setCursor(0); - break; + if (this.cursor === 1) { + if (this.isItemManageMode()) { + success = this.setCursor(7); + break; + } + } + if (this.cursor === 7) { + if (this.isItemManageMode()) { + success = this.setCursor(0); + break; + } } success = this.setCursor(this.cursor ? (this.cursor < 6 ? this.cursor - 1 : slotCount - 1) : 6); break; @@ -1059,6 +1068,12 @@ export default class PartyUiHandler extends MessageUiHandler { break; } } + if (this.cursor === 7) { + if (this.isItemManageMode()) { + success = this.setCursor(1); + break; + } + } success = this.setCursor(this.cursor < 6 ? (this.cursor < slotCount - 1 ? this.cursor + 1 : 6) : 0); break; case Button.LEFT: @@ -1750,7 +1765,7 @@ class PartySlot extends Phaser.GameObjects.Container { ? -184 + (globalScene.currentBattle.double ? -40 : 0) + (28 + (globalScene.currentBattle.double ? 8 : 0)) * slotIndex - : -124 + (globalScene.currentBattle.double ? -8 : 0) + slotIndex * 64, + : -124 + (globalScene.currentBattle.double ? -20 : 0) + slotIndex * 76, ); this.slotIndex = slotIndex; @@ -2006,7 +2021,6 @@ class PartySlot extends Phaser.GameObjects.Container { class PartyCancelButton extends Phaser.GameObjects.Container { private selected: boolean; - private partyCancelBg: Phaser.GameObjects.Sprite; private partyCancelPb: Phaser.GameObjects.Sprite; @@ -2015,7 +2029,6 @@ class PartyCancelButton extends Phaser.GameObjects.Container { this.setup(); } - setup() { const partyCancelBg = globalScene.add.sprite(0, 0, "party_cancel"); this.add(partyCancelBg); @@ -2059,6 +2072,7 @@ class PartyDiscardModeButton extends Phaser.GameObjects.Container { private transferIcon: Phaser.GameObjects.Sprite; private discardIcon: Phaser.GameObjects.Sprite; + private partyDiscardPb: Phaser.GameObjects.Sprite; private textBox: Phaser.GameObjects.Text; constructor(x: number, y: number) { @@ -2068,12 +2082,14 @@ class PartyDiscardModeButton extends Phaser.GameObjects.Container { } setup() { - this.transferIcon = globalScene.add.sprite(0, 0, "party_transfer", "normal"); - this.discardIcon = globalScene.add.sprite(0, 0, "party_discard", "normal"); + this.transferIcon = globalScene.add.sprite(0, 0, "party_transfer"); + this.discardIcon = globalScene.add.sprite(0, 0, "party_discard"); + this.partyDiscardPb = globalScene.add.sprite(-20, 0, "party_pb"); this.textBox = addTextObject(-8, -7, i18next.t("partyUiHandler:TRANSFER"), TextStyle.PARTY); this.add(this.transferIcon); this.add(this.discardIcon); + this.add(this.partyDiscardPb); this.add(this.textBox); this.clear(); @@ -2088,6 +2104,7 @@ class PartyDiscardModeButton extends Phaser.GameObjects.Container { this.transferIcon.setFrame("selected"); this.discardIcon.setFrame("selected"); + this.partyDiscardPb.setFrame("party_pb_sel"); } deselect() { @@ -2099,6 +2116,7 @@ class PartyDiscardModeButton extends Phaser.GameObjects.Container { this.transferIcon.setFrame("normal"); this.discardIcon.setFrame("normal"); + this.partyDiscardPb.setFrame("party_pb"); } toggleIcon(partyMode: number) { @@ -2108,6 +2126,10 @@ class PartyDiscardModeButton extends Phaser.GameObjects.Container { this.discardIcon.setVisible(false); this.textBox.setVisible(true); this.textBox.setText(i18next.t("partyUiHandler:TRANSFER")); + this.setPosition( + globalScene.currentBattle.double ? 64 : 60, + globalScene.currentBattle.double ? -106 : -globalScene.game.canvas.height / 15 - 1, + ); this.transferIcon.displayWidth = this.textBox.text.length * 9 + 3; break; case PartyUiMode.MODIFIER_TRANSFER: @@ -2115,6 +2137,10 @@ class PartyDiscardModeButton extends Phaser.GameObjects.Container { this.discardIcon.setVisible(true); this.textBox.setVisible(true); this.textBox.setText("Discard"); + this.setPosition( + globalScene.currentBattle.double ? 64 : 60, + globalScene.currentBattle.double ? -106 : -globalScene.game.canvas.height / 15 - 1, + ); this.discardIcon.displayWidth = this.textBox.text.length * 9 + 3; break; default: