From 4aa0eac5aadc133796d6d9d6c911095653228560 Mon Sep 17 00:00:00 2001 From: NightKev <34855794+DayKev@users.noreply.github.com> Date: Tue, 6 May 2025 04:33:10 -0700 Subject: [PATCH 1/6] Update version to 1.9.2 --- package-lock.json | 4 ++-- package.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index 9d9b7638997..da89f87b0bd 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "pokemon-rogue-battle", - "version": "1.9.1", + "version": "1.9.2", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "pokemon-rogue-battle", - "version": "1.9.1", + "version": "1.9.2", "hasInstallScript": true, "dependencies": { "@material/material-color-utilities": "^0.2.7", diff --git a/package.json b/package.json index 6bde0af2fa5..d5eb1138776 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "pokemon-rogue-battle", "private": true, - "version": "1.9.1", + "version": "1.9.2", "type": "module", "scripts": { "start": "vite", From 5ba294ffee839e06146269de3d7849b0ea8c38be Mon Sep 17 00:00:00 2001 From: lxy-lxy-lxy <55084073+lxy-lxy-lxy@users.noreply.github.com> Date: Wed, 7 May 2025 23:05:32 +0800 Subject: [PATCH 2/6] [Bug] Lock Capsule not locking rarities consistently (#5786) --- src/modifier/modifier-type.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/modifier/modifier-type.ts b/src/modifier/modifier-type.ts index 8bd2dc8948a..608eca1157e 100644 --- a/src/modifier/modifier-type.ts +++ b/src/modifier/modifier-type.ts @@ -3640,7 +3640,7 @@ function getNewModifierTypeOption( } tier += upgradeCount; } - } else if (retryCount === 10 && tier) { + } else if (retryCount >= 100 && tier) { retryCount = 0; tier--; } From fa6c51d1e2c07be50c4017896bb0008192f7af81 Mon Sep 17 00:00:00 2001 From: NightKev <34855794+DayKev@users.noreply.github.com> Date: Wed, 7 May 2025 21:01:54 -0700 Subject: [PATCH 3/6] [Bug] Prevent some corrupt eggs from crashing the game (#5787) If an egg is somehow a species that doesn't have an associated egg tier (such as Pikachu), `Egg#getEggTier` now falls back to `EggTier.COMMON` --- src/data/egg.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/data/egg.ts b/src/data/egg.ts index 55a253e843f..0b7733bf199 100644 --- a/src/data/egg.ts +++ b/src/data/egg.ts @@ -598,7 +598,7 @@ export class Egg { } private getEggTier(): EggTier { - return speciesEggTiers[this.species]; + return speciesEggTiers[this.species] ?? EggTier.COMMON; } //// From cf1367cece5f09545be69c9efea8d75069edb47c Mon Sep 17 00:00:00 2001 From: NightKev <34855794+DayKev@users.noreply.github.com> Date: Wed, 7 May 2025 21:02:16 -0700 Subject: [PATCH 4/6] [Bug] `PokemonSummonData` movesets will now be loaded correctly (#5793) --- src/field/pokemon.ts | 5 +++++ src/system/version_migration/versions/v1_9_0.ts | 1 - 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/src/field/pokemon.ts b/src/field/pokemon.ts index 13eb2990a17..a7db6ddcdf3 100644 --- a/src/field/pokemon.ts +++ b/src/field/pokemon.ts @@ -7859,6 +7859,11 @@ export class PokemonSummonData { continue; } + if (key === "moveset") { + this.moveset = value.map((m: any) => PokemonMove.loadMove(m)); + continue; + } + if (key === "tags") { // load battler tags this.tags = value.map((t: BattlerTag) => loadBattlerTag(t)); diff --git a/src/system/version_migration/versions/v1_9_0.ts b/src/system/version_migration/versions/v1_9_0.ts index dca92cd1fae..c517896cf45 100644 --- a/src/system/version_migration/versions/v1_9_0.ts +++ b/src/system/version_migration/versions/v1_9_0.ts @@ -1,5 +1,4 @@ import type { SessionSaveMigrator } from "#app/@types/SessionSaveMigrator"; -import { Status } from "#app/data/status-effect"; import { PokemonMove } from "#app/field/pokemon"; import type { SessionSaveData } from "#app/system/game-data"; import type PokemonData from "#app/system/pokemon-data"; From 530b2b8a006e75e10413ecc9e42ac257dbe8acdf Mon Sep 17 00:00:00 2001 From: Jimmybald1 <122436263+Jimmybald1@users.noreply.github.com> Date: Thu, 8 May 2025 06:03:22 +0200 Subject: [PATCH 5/6] [Bug] Fix seed not being reset in Select Biome Phase (#5794) Fix seed not being reset now that Select Biome Phase goes before New Battle Co-authored-by: Jimmybald1 <147992650+IBBCalc@users.noreply.github.com> --- src/phases/select-biome-phase.ts | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/phases/select-biome-phase.ts b/src/phases/select-biome-phase.ts index 4811c4e6b8f..efd376eb5ba 100644 --- a/src/phases/select-biome-phase.ts +++ b/src/phases/select-biome-phase.ts @@ -13,6 +13,8 @@ export class SelectBiomePhase extends BattlePhase { start() { super.start(); + globalScene.resetSeed(); + const currentBiome = globalScene.arena.biomeType; const nextWaveIndex = globalScene.currentBattle.waveIndex + 1; From 5a58abfddf65cf21f67db6b28befe122f38ef522 Mon Sep 17 00:00:00 2001 From: Dean <69436131+emdeann@users.noreply.github.com> Date: Wed, 7 May 2025 21:04:24 -0700 Subject: [PATCH 6/6] [Bug][Hotfix] Suppress Illusion if NG is already active (#5797) * Suppress preSummon attrs off field * Add test case --- src/field/pokemon.ts | 4 +++- test/abilities/illusion.test.ts | 16 +++++++++++++++- 2 files changed, 18 insertions(+), 2 deletions(-) diff --git a/src/field/pokemon.ts b/src/field/pokemon.ts index a7db6ddcdf3..6a05bea4c6d 100644 --- a/src/field/pokemon.ts +++ b/src/field/pokemon.ts @@ -186,6 +186,7 @@ import { applyAllyStatMultiplierAbAttrs, AllyStatMultiplierAbAttr, MoveAbilityBypassAbAttr, + PreSummonAbAttr, } from "#app/data/abilities/ability"; import { allAbilities } from "#app/data/data-lists"; import type PokemonData from "#app/system/pokemon-data"; @@ -2414,8 +2415,9 @@ export default abstract class Pokemon extends Phaser.GameObjects.Container { const suppressAbilitiesTag = arena.getTag( ArenaTagType.NEUTRALIZING_GAS, ) as SuppressAbilitiesTag; + const suppressOffField = ability.hasAttr(PreSummonAbAttr); if ( - this.isOnField() && + (this.isOnField() || suppressOffField) && suppressAbilitiesTag && !suppressAbilitiesTag.isBeingRemoved() ) { diff --git a/test/abilities/illusion.test.ts b/test/abilities/illusion.test.ts index 998d29f169c..8aae433b6c0 100644 --- a/test/abilities/illusion.test.ts +++ b/test/abilities/illusion.test.ts @@ -65,7 +65,7 @@ describe("Abilities - Illusion", () => { expect(!!zorua.summonData.illusion).equals(false); }); - it("break with neutralizing gas", async () => { + it("breaks with neutralizing gas", async () => { game.override.enemyAbility(Abilities.NEUTRALIZING_GAS); await game.classicMode.startBattle([Species.KOFFING]); @@ -74,6 +74,20 @@ describe("Abilities - Illusion", () => { expect(!!zorua.summonData.illusion).equals(false); }); + it("does not activate if neutralizing gas is active", async () => { + game.override + .enemyAbility(Abilities.NEUTRALIZING_GAS) + .ability(Abilities.ILLUSION) + .moveset(Moves.SPLASH) + .enemyMoveset(Moves.SPLASH); + await game.classicMode.startBattle([Species.MAGIKARP, Species.FEEBAS, Species.MAGIKARP]); + + game.doSwitchPokemon(1); + await game.toNextTurn(); + + expect(game.scene.getPlayerPokemon()!.summonData.illusion).toBeFalsy(); + }); + it("causes enemy AI to consider the illusion's type instead of the actual type when considering move effectiveness", async () => { game.override.enemyMoveset([Moves.FLAMETHROWER, Moves.PSYCHIC, Moves.TACKLE]); await game.classicMode.startBattle([Species.ZOROARK, Species.FEEBAS]);