From 9701f27c630e9a3cd5c111bc75562cc434519e25 Mon Sep 17 00:00:00 2001 From: Blitzy <118096277+Blitz425@users.noreply.github.com> Date: Thu, 27 Feb 2025 20:05:11 -0600 Subject: [PATCH 1/5] [Bug] [Hotfix] Remove Penny's Extra Zamazenta (#5439) Co-authored-by: damocleas --- package-lock.json | 4 ++-- package.json | 2 +- src/data/trainer-config.ts | 5 ----- 3 files changed, 3 insertions(+), 8 deletions(-) diff --git a/package-lock.json b/package-lock.json index 739ce18496d..4abfe1c0666 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "pokemon-rogue-battle", - "version": "1.7.0", + "version": "1.7.1", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "pokemon-rogue-battle", - "version": "1.7.0", + "version": "1.7.1", "hasInstallScript": true, "dependencies": { "@material/material-color-utilities": "^0.2.7", diff --git a/package.json b/package.json index 5a191b3ec99..ca9cf8f2b27 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "pokemon-rogue-battle", "private": true, - "version": "1.7.0", + "version": "1.7.1", "type": "module", "scripts": { "start": "vite", diff --git a/src/data/trainer-config.ts b/src/data/trainer-config.ts index b7d99ad7ef3..a0158f28238 100644 --- a/src/data/trainer-config.ts +++ b/src/data/trainer-config.ts @@ -2776,11 +2776,6 @@ export const trainerConfigs: TrainerConfigs = { p.generateName(); p.pokeball = PokeballType.ULTRA_BALL; })) - .setPartyMemberFunc(5, getRandomPartyMemberFunc([ Species.ZAMAZENTA ], TrainerSlot.TRAINER, true, p => { - p.setBoss(true, 2); - p.generateAndPopulateMoveset(); - p.pokeball = PokeballType.MASTER_BALL; - })) .setInstantTera(0), // Tera Fairy Sylveon [TrainerType.BUCK]: new TrainerConfig(++t).setName("Buck").initForStatTrainer(true) .setPartyMemberFunc(0, getRandomPartyMemberFunc([ Species.CLAYDOL ], TrainerSlot.TRAINER, true, p => { From 5941cfb001aa7f486184368612afd50ed39ae867 Mon Sep 17 00:00:00 2001 From: Wlowscha <54003515+Wlowscha@users.noreply.github.com> Date: Fri, 28 Feb 2025 03:49:27 +0100 Subject: [PATCH 2/5] [Bug][Hotfix] Fix bug with transferring all items (#5440) --- package-lock.json | 4 ++-- package.json | 2 +- src/ui/party-ui-handler.ts | 18 ++++++++++++------ 3 files changed, 15 insertions(+), 9 deletions(-) diff --git a/package-lock.json b/package-lock.json index 4abfe1c0666..9e2c0d3a61b 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "pokemon-rogue-battle", - "version": "1.7.1", + "version": "1.7.2", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "pokemon-rogue-battle", - "version": "1.7.1", + "version": "1.7.2", "hasInstallScript": true, "dependencies": { "@material/material-color-utilities": "^0.2.7", diff --git a/package.json b/package.json index ca9cf8f2b27..418c22073c3 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "pokemon-rogue-battle", "private": true, - "version": "1.7.1", + "version": "1.7.2", "type": "module", "scripts": { "start": "vite", diff --git a/src/ui/party-ui-handler.ts b/src/ui/party-ui-handler.ts index 136f098df7e..0af94053ceb 100644 --- a/src/ui/party-ui-handler.ts +++ b/src/ui/party-ui-handler.ts @@ -422,7 +422,10 @@ export default class PartyUiHandler extends MessageUiHandler { if (option === PartyOption.TRANSFER) { if (this.transferCursor !== this.cursor) { if (this.transferAll) { - getTransferrableItemsFromPokemon(globalScene.getPlayerParty()[this.transferCursor]).forEach((_, i) => (this.selectCallback as PartyModifierTransferSelectCallback)(this.transferCursor, i, this.transferQuantitiesMax[i], this.cursor)); + getTransferrableItemsFromPokemon(globalScene.getPlayerParty()[this.transferCursor]).forEach((_, i, array) => { + const invertedIndex = array.length - 1 - i; + (this.selectCallback as PartyModifierTransferSelectCallback)(this.transferCursor, invertedIndex, this.transferQuantitiesMax[invertedIndex], this.cursor); + }); } else { (this.selectCallback as PartyModifierTransferSelectCallback)(this.transferCursor, this.transferOptionCursor, this.transferQuantities[this.transferOptionCursor], this.cursor); } @@ -1187,7 +1190,6 @@ class PartySlot extends Phaser.GameObjects.Container { public slotHpText: Phaser.GameObjects.Text; public slotDescriptionLabel: Phaser.GameObjects.Text; // this is used to show text instead of the HP bar i.e. for showing "Able"/"Not Able" for TMs when you try to learn them - private pokemonIcon: Phaser.GameObjects.Container; private iconAnimHandler: PokemonIconAnimHandler; @@ -1208,6 +1210,10 @@ class PartySlot extends Phaser.GameObjects.Container { } setup(partyUiMode: PartyUiMode, tmMoveId: Moves) { + + const currentLanguage = i18next.resolvedLanguage ?? "en"; + const offsetJa = currentLanguage === "ja"; + const battlerCount = globalScene.currentBattle.getBattlerCount(); const slotKey = `party_slot${this.slotIndex >= battlerCount ? "" : "_main"}`; @@ -1246,15 +1252,15 @@ class PartySlot extends Phaser.GameObjects.Container { nameSizeTest.destroy(); this.slotName = addTextObject(0, 0, displayName, TextStyle.PARTY); - this.slotName.setPositionRelative(slotBg, this.slotIndex >= battlerCount ? 21 : 24, this.slotIndex >= battlerCount ? 2 : 10); + this.slotName.setPositionRelative(slotBg, this.slotIndex >= battlerCount ? 21 : 24, (this.slotIndex >= battlerCount ? 2 : 10) + (offsetJa ? 2 : 0)); this.slotName.setOrigin(0, 0); const slotLevelLabel = globalScene.add.image(0, 0, "party_slot_overlay_lv"); - slotLevelLabel.setPositionRelative(this.slotName, 8, 12); + slotLevelLabel.setPositionRelative(slotBg, (this.slotIndex >= battlerCount ? 21 : 24) + 8, (this.slotIndex >= battlerCount ? 2 : 10) + 12); slotLevelLabel.setOrigin(0, 0); const slotLevelText = addTextObject(0, 0, this.pokemon.level.toString(), this.pokemon.level < globalScene.getMaxExpLevel() ? TextStyle.PARTY : TextStyle.PARTY_RED); - slotLevelText.setPositionRelative(slotLevelLabel, 9, 0); + slotLevelText.setPositionRelative(slotLevelLabel, 9, offsetJa ? 1.5 : 0); slotLevelText.setOrigin(0, 0.25); slotInfoContainer.add([ this.slotName, slotLevelLabel, slotLevelText ]); @@ -1331,7 +1337,7 @@ class PartySlot extends Phaser.GameObjects.Container { this.slotHpOverlay.setVisible(false); this.slotHpText = addTextObject(0, 0, `${this.pokemon.hp}/${this.pokemon.getMaxHp()}`, TextStyle.PARTY); - this.slotHpText.setPositionRelative(this.slotHpBar, this.slotHpBar.width - 3, this.slotHpBar.height - 2); + this.slotHpText.setPositionRelative(this.slotHpBar, this.slotHpBar.width - 3, this.slotHpBar.height - 2 + (offsetJa ? 2 : 0)); this.slotHpText.setOrigin(1, 0); this.slotHpText.setVisible(false); From b33ffb29b36a5bfa9d003a95daba7406314745a2 Mon Sep 17 00:00:00 2001 From: Xavion3 Date: Fri, 28 Feb 2025 14:08:55 +1100 Subject: [PATCH 3/5] [Bug] Fix mycelium might softlock (#5441) --- package-lock.json | 4 ++-- package.json | 2 +- src/data/ability.ts | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/package-lock.json b/package-lock.json index 9e2c0d3a61b..b74d12ecd35 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "pokemon-rogue-battle", - "version": "1.7.2", + "version": "1.7.3", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "pokemon-rogue-battle", - "version": "1.7.2", + "version": "1.7.3", "hasInstallScript": true, "dependencies": { "@material/material-color-utilities": "^0.2.7", diff --git a/package.json b/package.json index 418c22073c3..de543ce2bf2 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "pokemon-rogue-battle", "private": true, - "version": "1.7.2", + "version": "1.7.3", "type": "module", "scripts": { "start": "vite", diff --git a/src/data/ability.ts b/src/data/ability.ts index 8c4b2ba380a..2b73fea60bc 100644 --- a/src/data/ability.ts +++ b/src/data/ability.ts @@ -5054,7 +5054,7 @@ export class PreventBypassSpeedChanceAbAttr extends AbAttr { const turnCommand = globalScene.currentBattle.turnCommands[pokemon.getBattlerIndex()]; const isCommandFight = turnCommand?.command === Command.FIGHT; const move = turnCommand?.move?.move ? allMoves[turnCommand.move.move] : null; - if (this.condition(pokemon, move!) && isCommandFight) { + if (isCommandFight && this.condition(pokemon, move!)) { bypassSpeed.value = false; canCheckHeldItems.value = false; return false; From 13429446d35dd42377b16ec76825ff3b6effc6f1 Mon Sep 17 00:00:00 2001 From: AJ Fontaine <36677462+Fontbane@users.noreply.github.com> Date: Fri, 28 Feb 2025 01:18:58 -0500 Subject: [PATCH 4/5] [Bug] Fix tera slot wrapping (#5437) --- package-lock.json | 4 ++-- package.json | 2 +- src/data/trainer-config.ts | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/package-lock.json b/package-lock.json index b74d12ecd35..c6dfdd7be04 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "pokemon-rogue-battle", - "version": "1.7.3", + "version": "1.7.4", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "pokemon-rogue-battle", - "version": "1.7.3", + "version": "1.7.4", "hasInstallScript": true, "dependencies": { "@material/material-color-utilities": "^0.2.7", diff --git a/package.json b/package.json index de543ce2bf2..19f64b56157 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "pokemon-rogue-battle", "private": true, - "version": "1.7.3", + "version": "1.7.4", "type": "module", "scripts": { "start": "vite", diff --git a/src/data/trainer-config.ts b/src/data/trainer-config.ts index a0158f28238..21b04c182e6 100644 --- a/src/data/trainer-config.ts +++ b/src/data/trainer-config.ts @@ -607,7 +607,7 @@ export class TrainerConfig { const shedinjaCanTera = !this.hasSpecialtyType() || this.specialtyType === Type.BUG; // Better to check one time than 6 const partyMemberIndexes = new Array(party.length).fill(null).map((_, i) => i) .filter(i => shedinjaCanTera || party[i].species.speciesId !== Species.SHEDINJA); // Shedinja can only Tera on Bug specialty type (or no specialty type) - const setPartySlot = !Utils.isNullOrUndefined(slot) ? Phaser.Math.Wrap(slot, 0, party.length - 1) : -1; // If we have a tera slot defined, wrap it to party size. + const setPartySlot = !Utils.isNullOrUndefined(slot) ? Phaser.Math.Wrap(slot, 0, party.length) : -1; // If we have a tera slot defined, wrap it to party size. for (let t = 0; t < Math.min(count(), party.length); t++) { const randomIndex = partyMemberIndexes.indexOf(setPartySlot) > -1 ? setPartySlot : Utils.randSeedItem(partyMemberIndexes); partyMemberIndexes.splice(partyMemberIndexes.indexOf(randomIndex), 1); From 942bcacb56a5e3d6364c408a124e09a16a6a4c23 Mon Sep 17 00:00:00 2001 From: Wlowscha <54003515+Wlowscha@users.noreply.github.com> Date: Fri, 28 Feb 2025 22:22:22 +0100 Subject: [PATCH 5/5] =?UTF-8?q?[Bug][Hotfix]=20Restrict=20Use=20Candies=20?= =?UTF-8?q?option=20in=20the=20Pok=C3=A9dex=20during=20Shop=20(#5446)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package-lock.json | 4 ++-- package.json | 2 +- src/ui/pokedex-page-ui-handler.ts | 11 +++++++++-- 3 files changed, 12 insertions(+), 5 deletions(-) diff --git a/package-lock.json b/package-lock.json index c6dfdd7be04..d31469f4a45 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "pokemon-rogue-battle", - "version": "1.7.4", + "version": "1.7.5", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "pokemon-rogue-battle", - "version": "1.7.4", + "version": "1.7.5", "hasInstallScript": true, "dependencies": { "@material/material-color-utilities": "^0.2.7", diff --git a/package.json b/package.json index 19f64b56157..1953b886c80 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "pokemon-rogue-battle", "private": true, - "version": "1.7.4", + "version": "1.7.5", "type": "module", "scripts": { "start": "vite", diff --git a/src/ui/pokedex-page-ui-handler.ts b/src/ui/pokedex-page-ui-handler.ts index 99b25c3c383..49bb52dddbb 100644 --- a/src/ui/pokedex-page-ui-handler.ts +++ b/src/ui/pokedex-page-ui-handler.ts @@ -250,6 +250,8 @@ export default class PokedexPageUiHandler extends MessageUiHandler { private availableVariants: number; private unlockedVariants: boolean[]; + private canUseCandies: boolean; + constructor() { super(Mode.POKEDEX_PAGE); } @@ -556,6 +558,9 @@ export default class PokedexPageUiHandler extends MessageUiHandler { show(args: any[]): boolean { + // Allow the use of candies if we are in one of the whitelisted phases + this.canUseCandies = [ "TitlePhase", "SelectStarterPhase", "CommandPhase" ].includes(globalScene.getCurrentPhase()?.constructor.name ?? ""); + if (args.length >= 1 && args[0] === "refresh") { return false; } else { @@ -1626,7 +1631,7 @@ export default class PokedexPageUiHandler extends MessageUiHandler { } break; case Button.STATS: - if (!isCaught || !isFormCaught) { + if (!isCaught || !isFormCaught || !this.canUseCandies) { error = true; } else { const ui = this.getUi(); @@ -1888,7 +1893,9 @@ export default class PokedexPageUiHandler extends MessageUiHandler { if (this.isCaught()) { if (isFormCaught) { - this.updateButtonIcon(SettingKeyboard.Button_Stats, gamepadType, this.candyUpgradeIconElement, this.candyUpgradeLabel); + if (this.canUseCandies) { + this.updateButtonIcon(SettingKeyboard.Button_Stats, gamepadType, this.candyUpgradeIconElement, this.candyUpgradeLabel); + } if (this.canCycleShiny) { this.updateButtonIcon(SettingKeyboard.Button_Cycle_Shiny, gamepadType, this.shinyIconElement, this.shinyLabel); }