From 58bf18af88a96c8f011dc9b42fbfbd6f9af3cadd Mon Sep 17 00:00:00 2001 From: Opaque02 <66582645+Opaque02@users.noreply.github.com> Date: Sun, 18 Aug 2024 15:39:08 +1000 Subject: [PATCH 01/11] Fixed issue with falsy issue within condition to get a stat for IV scanner --- src/ui/battle-message-ui-handler.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/ui/battle-message-ui-handler.ts b/src/ui/battle-message-ui-handler.ts index 1c7dfb27630..7a30e2787df 100644 --- a/src/ui/battle-message-ui-handler.ts +++ b/src/ui/battle-message-ui-handler.ts @@ -226,7 +226,7 @@ export default class BattleMessageUiHandler extends MessageUiHandler { highestIv = ivs[s]; } }); - if (shownStat) { + if (shownStat !== null && shownStat !== undefined) { shownStats.push(shownStat); statsPool.splice(statsPool.indexOf(shownStat), 1); } From 69c1389ec4ceda8e9389129118a4456edbffe15c Mon Sep 17 00:00:00 2001 From: KimJeongSun Date: Sun, 18 Aug 2024 15:12:20 +0900 Subject: [PATCH 02/11] add fix setting code to prevent form/variant bug when default form/variant setting is wrong. in addition, that fix code include gender fix, so i revert old gender fix. update wrong log message. --- src/ui/starter-select-ui-handler.ts | 96 ++++++++++++++++++++++++++--- 1 file changed, 86 insertions(+), 10 deletions(-) diff --git a/src/ui/starter-select-ui-handler.ts b/src/ui/starter-select-ui-handler.ts index 5e942f3e75a..9f2df1f2329 100644 --- a/src/ui/starter-select-ui-handler.ts +++ b/src/ui/starter-select-ui-handler.ts @@ -2916,14 +2916,18 @@ export default class StarterSelectUiHandler extends MessageUiHandler { const isCaught = this.scene.gameData.dexData[species.speciesId]?.caughtAttr || BigInt(0); const isVariant3Caught = !!(isCaught & DexAttr.VARIANT_3); const isVariant2Caught = !!(isCaught & DexAttr.VARIANT_2); + const isDefaultVariantCaught = !!(isCaught & DexAttr.DEFAULT_VARIANT); const isVariantCaught = !!(isCaught & DexAttr.SHINY); const isMaleCaught = !!(isCaught & DexAttr.MALE); const isFemaleCaught = !!(isCaught & DexAttr.FEMALE); + const starterAttributes = this.starterPreferences[species.speciesId]; + + const props = this.scene.gameData.getSpeciesDexAttrProps(species, this.getCurrentDexProps(species.speciesId)); + const defaultAbilityIndex = this.scene.gameData.getStarterSpeciesDefaultAbilityIndex(species); + const defaultNature = this.scene.gameData.getSpeciesDefaultNature(species); + if (!dexEntry.caughtAttr) { - const props = this.scene.gameData.getSpeciesDexAttrProps(species, this.getCurrentDexProps(species.speciesId)); - const defaultAbilityIndex = this.scene.gameData.getStarterSpeciesDefaultAbilityIndex(species); - const defaultNature = this.scene.gameData.getSpeciesDefaultNature(species); if (shiny === undefined || shiny !== props.shiny) { shiny = props.shiny; } @@ -2942,6 +2946,83 @@ export default class StarterSelectUiHandler extends MessageUiHandler { if (natureIndex === undefined || natureIndex !== defaultNature) { natureIndex = defaultNature; } + } else { + // compare current shiny, formIndex, female, variant, abilityIndex, natureIndex with the caught ones + // if the current ones are not caught, we need to find the next caught ones + if (shiny) { + if (!(isVariantCaught || isVariant2Caught || isVariant3Caught)) { + shiny = false; + starterAttributes.shiny = false; + variant = 0; + starterAttributes.variant = 0; + } else { + shiny = true; + starterAttributes.shiny = true; + if (variant === 0 && !isDefaultVariantCaught) { + if (isVariant2Caught) { + variant = 1; + starterAttributes.variant = 1; + } else if (isVariant3Caught) { + variant = 2; + starterAttributes.variant = 2; + } else { + variant = 0; + starterAttributes.variant = 0; + } + } else if (variant === 1 && !isVariant2Caught) { + if (isVariantCaught) { + variant = 0; + starterAttributes.variant = 0; + } else if (isVariant3Caught) { + variant = 2; + starterAttributes.variant = 2; + } else { + variant = 0; + starterAttributes.variant = 0; + } + } else if (variant === 2 && !isVariant3Caught) { + if (isVariantCaught) { + variant = 0; + starterAttributes.variant = 0; + } else if (isVariant2Caught) { + variant = 1; + starterAttributes.variant = 1; + } else { + variant = 0; + starterAttributes.variant = 0; + } + } + } + } + if (female) { + if (!isFemaleCaught) { + female = false; + starterAttributes.female = false; + } + } else { + if (!isMaleCaught) { + female = true; + starterAttributes.female = true; + } + } + + if (species.forms) { + const formCount = species.forms.length; + let newFormIndex = formIndex??0; + if (species.forms[newFormIndex]) { + const isValidForm = species.forms[newFormIndex].isStarterSelectable && dexEntry.caughtAttr & this.scene.gameData.getFormAttr(newFormIndex); + if (!isValidForm) { + do { + newFormIndex = (newFormIndex + 1) % formCount; + if (species.forms[newFormIndex].isStarterSelectable && dexEntry.caughtAttr & this.scene.gameData.getFormAttr(newFormIndex)) { + break; + } + } while (newFormIndex !== props.formIndex); + formIndex = newFormIndex; + starterAttributes.form = formIndex; + } + } + } } this.shinyOverlay.setVisible(shiny ?? false); // TODO: is false the correct default? @@ -2993,12 +3074,7 @@ export default class StarterSelectUiHandler extends MessageUiHandler { } if (dexEntry.caughtAttr && species.malePercent !== null) { - let gender: Gender; - if ((female && isFemaleCaught) || (!female && !isMaleCaught)) { - gender = Gender.FEMALE; - } else { - gender = Gender.MALE; - } + const gender = !female ? Gender.MALE : Gender.FEMALE; this.pokemonGenderText.setText(getGenderSymbol(gender)); this.pokemonGenderText.setColor(getGenderColor(gender)); this.pokemonGenderText.setShadowColor(getGenderColor(gender, true)); @@ -3479,7 +3555,7 @@ export default class StarterSelectUiHandler extends MessageUiHandler { checkIconId(icon: Phaser.GameObjects.Sprite, species: PokemonSpecies, female: boolean, formIndex: number, shiny: boolean, variant: number) { if (icon.frame.name !== species.getIconId(female, formIndex, shiny, variant)) { - console.log(`${species.name}'s variant icon does not exist. Replacing with default.`); + console.log(`${species.name}'s icon ${icon.frame.name} does not match getIconId with female: ${female}, formIndex: ${formIndex}, shiny: ${shiny}, variant: ${variant}`); icon.setTexture(species.getIconAtlasKey(formIndex, false, variant)); icon.setFrame(species.getIconId(female, formIndex, false, variant)); } From 1b7a161934930c1de4493182f82386ff2b223073 Mon Sep 17 00:00:00 2001 From: NightKev <34855794+DayKev@users.noreply.github.com> Date: Sun, 18 Aug 2024 09:52:32 -0700 Subject: [PATCH 03/11] [Hotfix] Fix Memory Mushroom not showing relearner moves (#3619) * Fix Memory Mushroom not showing relearner moves * Fix rollout test --- src/field/pokemon.ts | 2 +- src/test/moves/rollout.test.ts | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/src/field/pokemon.ts b/src/field/pokemon.ts index f1721299ad0..10851451a1a 100644 --- a/src/field/pokemon.ts +++ b/src/field/pokemon.ts @@ -921,7 +921,7 @@ export default abstract class Pokemon extends Phaser.GameObjects.Container { * by how many learnable moves there are for the {@linkcode Pokemon}. */ getLearnableLevelMoves(): Moves[] { - let levelMoves = this.getLevelMoves(1, true).map(lm => lm[1]); + let levelMoves = this.getLevelMoves(1, true, false, true).map(lm => lm[1]); if (this.metBiome === -1 && !this.scene.gameMode.isFreshStartChallenge() && !this.scene.gameMode.isDaily) { levelMoves = this.getUnlockedEggMoves().concat(levelMoves); } diff --git a/src/test/moves/rollout.test.ts b/src/test/moves/rollout.test.ts index ad323c447f5..728fe1ecd45 100644 --- a/src/test/moves/rollout.test.ts +++ b/src/test/moves/rollout.test.ts @@ -12,6 +12,7 @@ import { SPLASH_ONLY } from "#test/utils/testUtils"; describe("Moves - Rollout", () => { let phaserGame: Phaser.Game; let game: GameManager; + const TIMEOUT = 20 * 1000; beforeAll(() => { phaserGame = new Phaser.Game({ @@ -77,5 +78,5 @@ describe("Moves - Rollout", () => { // reset expect(turn6Dmg).toBeGreaterThanOrEqual(turn1Dmg - variance); expect(turn6Dmg).toBeLessThanOrEqual(turn1Dmg + variance); - }); + }, TIMEOUT); }); From 67da7956119afe32f7ec178a32c14d1488fec6cc Mon Sep 17 00:00:00 2001 From: innerthunder <168692175+innerthunder@users.noreply.github.com> Date: Sun, 18 Aug 2024 10:29:11 -0700 Subject: [PATCH 04/11] Rewrite player faint logic in FaintPhase (#3614) --- src/phases.ts | 21 ++++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) diff --git a/src/phases.ts b/src/phases.ts index 88acfc825ef..565914879e4 100644 --- a/src/phases.ts +++ b/src/phases.ts @@ -4033,13 +4033,24 @@ export class FaintPhase extends PokemonPhase { } if (this.player) { - const nonFaintedLegalPartyMembers = this.scene.getParty().filter(p => p.isAllowedInBattle()); - const nonFaintedPartyMemberCount = nonFaintedLegalPartyMembers.length; - if (!nonFaintedPartyMemberCount) { + /** The total number of Pokemon in the player's party that can legally fight */ + const legalPlayerPokemon = this.scene.getParty().filter(p => p.isAllowedInBattle()); + /** The total number of legal player Pokemon that aren't currently on the field */ + const legalPlayerPartyPokemon = legalPlayerPokemon.filter(p => !p.isActive(true)); + if (!legalPlayerPokemon.length) { + /** If the player doesn't have any legal Pokemon, end the game */ this.scene.unshiftPhase(new GameOverPhase(this.scene)); - } else if (nonFaintedPartyMemberCount === 1 && this.scene.currentBattle.double) { + } else if (this.scene.currentBattle.double && legalPlayerPokemon.length === 1 && legalPlayerPartyPokemon.length === 0) { + /** + * If the player has exactly one Pokemon in total at this point in a double battle, and that Pokemon + * is already on the field, unshift a phase that moves that Pokemon to center position. + */ this.scene.unshiftPhase(new ToggleDoublePositionPhase(this.scene, true)); - } else if (nonFaintedPartyMemberCount >= this.scene.currentBattle.getBattlerCount()) { + } else if (legalPlayerPartyPokemon.length > 0) { + /** + * If previous conditions weren't met, and the player has at least 1 legal Pokemon off the field, + * push a phase that prompts the player to summon a Pokemon from their party. + */ this.scene.pushPhase(new SwitchPhase(this.scene, this.fieldIndex, true, false)); } } else { From c8ed89e186dfeb06f521caaee643ef30a2bfe653 Mon Sep 17 00:00:00 2001 From: cam Date: Sun, 18 Aug 2024 14:44:50 -0400 Subject: [PATCH 05/11] 867 runerigus sprite (#3629) cropped static frames, fixed cropped sprite set runerigus exp to use the shiny exp's animation verified all hex colors are unchanged - fixed ultra necrozma exp front variant swapped arrays. - xatu female eye color fix --- public/images/pokemon/867.png | Bin 2128 -> 1047 bytes public/images/pokemon/back/867.png | Bin 1617 -> 800 bytes public/images/pokemon/back/shiny/867.png | Bin 743 -> 793 bytes public/images/pokemon/exp/867.json | 1590 +++++++++-------- public/images/pokemon/exp/867.png | Bin 23716 -> 13409 bytes public/images/pokemon/exp/back/867.png | Bin 7341 -> 3724 bytes public/images/pokemon/exp/back/shiny/867.png | Bin 3270 -> 3715 bytes public/images/pokemon/shiny/867.png | Bin 976 -> 1043 bytes .../pokemon/variant/back/female/178_2.png | Bin 6304 -> 6305 bytes .../pokemon/variant/back/female/178_3.png | Bin 6304 -> 6305 bytes .../images/pokemon/variant/exp/800-ultra.json | 32 +- 11 files changed, 842 insertions(+), 780 deletions(-) diff --git a/public/images/pokemon/867.png b/public/images/pokemon/867.png index bd07a7a48375858f3ed2506c81e51befc2c02db8..2fe8856d74df6113ece362f16ddf144140f82469 100644 GIT binary patch literal 1047 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 P00000NkvXXu0mjf&XWG+ diff --git a/public/images/pokemon/back/shiny/867.png b/public/images/pokemon/back/shiny/867.png index fce3fe4e37eaa10d77894bfd02c7d8da05536297..accb87844f1c680b67e46ba371405a992adc6d83 100644 GIT binary patch delta 750 zcmV5(BMe+P6@PE!E?|NsC0 z|D}JX`v3p}pGibPR9Jqa*agmie?PDZ&UyddX7~rT!GZm%V?Es2RjnQSRPJDBlM4HuAJda8HmT((A8Rw` z{B#EfbhRs-=o2*qe^53nmdFk9(M=D zhCK|_cDY4py*!63u(0(_>Cmfr?`?j*UMAWSwuZ4COtVhEI=jj3fp)%wcj`U5UR$9@ zOs0<`=a}3T#(x`Kz--ztZ(jKIuXn=Cps8%e<^dk{s8Kxfd(AYtfz<$ z$1*oRz?;i<$J~?mZZyaf*e68$$;qYb^(4j<&}h*?YF|go5D+*CZ-w$CXi-3lYIjm- z0_ZbZMqo9Z2N|S9k8$x~yv~f(e_CjC^btIwHkPDK->^lEZ6Mu(H+|0m-uhfa4A&vKT$K#o#tv{ju%09~ zMOV7?+t>pNua>{M=p4!O8trMo)$Efxdq}Su1c`VRbY0FK$p~B$Eoj8_jVy}^{eTWL zqh)$M-pTm|%uP(0wr{qdn{6~pF3QYd+1wYb7J#g>e=G>;gKfEV9{nzK$|k>bZNR0v zYr?#iFYRyVkXhD+I*|K4&yA2V$=|qSpg(Se%uAOKTI!riI2_kxEqT}lopqU-7LEI| zq@&S0e}@=TewB7IjhE1ygYI^6i`Df4jdMC=4`OaGXRZZpG`J$IgJ7}7UhG4Z zJy86;Oe&h@SI4yetE5)E9#8JOwq^X*Jd|C-fP?=&e}58ozTs{!=e;NH7KHXR#*6lQ gHMYNUz5d|Ae==DedM}{`Q~&?~07*qoM6N<$f`sjD`Tzg` delta 700 zcmV;t0z>_o2ImEk7YbPf0{{R3rzMq~kuD^E0d!JMQvg8b*k%9#0)R!%Iy%a=nku)zv+9krb^hCtxO(GoZl3U5D`z{ulmBA-ZP+HM{B52`nw@84Nx#c$hBASTAqs6EDU*#pe&7*4Z9u>QCUCSd2O&X+{a2myz`wHNw5SQDalhkUW z44hIDeO)<&k*=^{jjmR|LlP5*%E-KGNa_xjpSKwxc2km!+;Dl&6bR}J4(_e zo|F^m+N@}hH->e$X@HjasGLZMh(a`f$r3}|?UMTiPq0zTztvaW46RX}D1$XrCm)Oj zI;w*!As;N3$uoj3l1s+P!@xdhHQr#+i2%_l^)ids6+dd{u<6lbnd*`V{S+Eq(vSwW z2(p}{5v^18l!4G3SgGC4wrb}BKAV2Pd=6BzH7ajPUi?DV;mYG75Q77Q5Wasl9YW ztVwR9^MJJM>(niylzE=hAWHe3j`UH^Sv&Xjz%mP`ToJ|}fZ diff --git a/public/images/pokemon/exp/867.json b/public/images/pokemon/exp/867.json index 1a9c7572f43..52e0127509b 100644 --- a/public/images/pokemon/exp/867.json +++ b/public/images/pokemon/exp/867.json @@ -4,8 +4,8 @@ "image": "867.png", "format": "RGBA8888", "size": { - "w": 344, - "h": 344 + "w": 361, + "h": 361 }, "scale": 1, "frames": [ @@ -31,7 +31,7 @@ } }, { - "filename": "0020.png", + "filename": "0021.png", "rotated": false, "trimmed": true, "sourceSize": { @@ -52,7 +52,7 @@ } }, { - "filename": "0035.png", + "filename": "0037.png", "rotated": false, "trimmed": true, "sourceSize": { @@ -94,70 +94,7 @@ } }, { - "filename": "0006.png", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 114, - "h": 66 - }, - "spriteSourceSize": { - "x": 1, - "y": 0, - "w": 113, - "h": 56 - }, - "frame": { - "x": 114, - "y": 0, - "w": 113, - "h": 56 - } - }, - { - "filename": "0019.png", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 114, - "h": 66 - }, - "spriteSourceSize": { - "x": 1, - "y": 0, - "w": 113, - "h": 56 - }, - "frame": { - "x": 114, - "y": 0, - "w": 113, - "h": 56 - } - }, - { - "filename": "0021.png", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 114, - "h": 66 - }, - "spriteSourceSize": { - "x": 1, - "y": 0, - "w": 113, - "h": 56 - }, - "frame": { - "x": 114, - "y": 0, - "w": 113, - "h": 56 - } - }, - { - "filename": "0034.png", + "filename": "0020.png", "rotated": false, "trimmed": true, "sourceSize": { @@ -199,7 +136,7 @@ } }, { - "filename": "0003.png", + "filename": "0006.png", "rotated": false, "trimmed": true, "sourceSize": { @@ -207,20 +144,20 @@ "h": 66 }, "spriteSourceSize": { - "x": 4, + "x": 2, "y": 0, - "w": 107, + "w": 112, "h": 56 }, "frame": { "x": 227, "y": 0, - "w": 107, + "w": 112, "h": 56 } }, { - "filename": "0018.png", + "filename": "0022.png", "rotated": false, "trimmed": true, "sourceSize": { @@ -228,20 +165,20 @@ "h": 66 }, "spriteSourceSize": { - "x": 4, + "x": 2, "y": 0, - "w": 107, + "w": 112, "h": 56 }, "frame": { "x": 227, "y": 0, - "w": 107, + "w": 112, "h": 56 } }, { - "filename": "0033.png", + "filename": "0038.png", "rotated": false, "trimmed": true, "sourceSize": { @@ -249,62 +186,20 @@ "h": 66 }, "spriteSourceSize": { - "x": 4, + "x": 2, "y": 0, - "w": 107, + "w": 112, "h": 56 }, "frame": { "x": 227, "y": 0, - "w": 107, + "w": 112, "h": 56 } }, { - "filename": "0011.png", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 114, - "h": 66 - }, - "spriteSourceSize": { - "x": 5, - "y": 0, - "w": 103, - "h": 65 - }, - "frame": { - "x": 0, - "y": 56, - "w": 103, - "h": 65 - } - }, - { - "filename": "0013.png", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 114, - "h": 66 - }, - "spriteSourceSize": { - "x": 5, - "y": 0, - "w": 103, - "h": 65 - }, - "frame": { - "x": 0, - "y": 56, - "w": 103, - "h": 65 - } - }, - { - "filename": "0026.png", + "filename": "0012.png", "rotated": false, "trimmed": true, "sourceSize": { @@ -346,7 +241,7 @@ } }, { - "filename": "0041.png", + "filename": "0044.png", "rotated": false, "trimmed": true, "sourceSize": { @@ -367,7 +262,7 @@ } }, { - "filename": "0043.png", + "filename": "0003.png", "rotated": false, "trimmed": true, "sourceSize": { @@ -375,16 +270,58 @@ "h": 66 }, "spriteSourceSize": { - "x": 5, + "x": 4, "y": 0, - "w": 103, - "h": 65 + "w": 107, + "h": 56 }, "frame": { - "x": 0, + "x": 103, "y": 56, - "w": 103, - "h": 65 + "w": 107, + "h": 56 + } + }, + { + "filename": "0019.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 114, + "h": 66 + }, + "spriteSourceSize": { + "x": 4, + "y": 0, + "w": 107, + "h": 56 + }, + "frame": { + "x": 103, + "y": 56, + "w": 107, + "h": 56 + } + }, + { + "filename": "0035.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 114, + "h": 66 + }, + "spriteSourceSize": { + "x": 4, + "y": 0, + "w": 107, + "h": 56 + }, + "frame": { + "x": 103, + "y": 56, + "w": 107, + "h": 56 } }, { @@ -402,14 +339,14 @@ "h": 56 }, "frame": { - "x": 103, + "x": 210, "y": 56, "w": 107, "h": 56 } }, { - "filename": "0022.png", + "filename": "0023.png", "rotated": false, "trimmed": true, "sourceSize": { @@ -423,14 +360,14 @@ "h": 56 }, "frame": { - "x": 103, + "x": 210, "y": 56, "w": 107, "h": 56 } }, { - "filename": "0037.png", + "filename": "0039.png", "rotated": false, "trimmed": true, "sourceSize": { @@ -444,12 +381,54 @@ "h": 56 }, "frame": { - "x": 103, + "x": 210, "y": 56, "w": 107, "h": 56 } }, + { + "filename": "0053.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 114, + "h": 66 + }, + "spriteSourceSize": { + "x": 40, + "y": 1, + "w": 44, + "h": 56 + }, + "frame": { + "x": 317, + "y": 56, + "w": 44, + "h": 56 + } + }, + { + "filename": "0064.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 114, + "h": 66 + }, + "spriteSourceSize": { + "x": 40, + "y": 1, + "w": 44, + "h": 56 + }, + "frame": { + "x": 317, + "y": 56, + "w": 44, + "h": 56 + } + }, { "filename": "0002.png", "rotated": false, @@ -465,14 +444,14 @@ "h": 57 }, "frame": { - "x": 210, - "y": 56, + "x": 103, + "y": 112, "w": 102, "h": 57 } }, { - "filename": "0017.png", + "filename": "0018.png", "rotated": false, "trimmed": true, "sourceSize": { @@ -486,14 +465,14 @@ "h": 57 }, "frame": { - "x": 210, - "y": 56, + "x": 103, + "y": 112, "w": 102, "h": 57 } }, { - "filename": "0032.png", + "filename": "0034.png", "rotated": false, "trimmed": true, "sourceSize": { @@ -507,12 +486,138 @@ "h": 57 }, "frame": { - "x": 210, - "y": 56, + "x": 103, + "y": 112, "w": 102, "h": 57 } }, + { + "filename": "0013.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 114, + "h": 66 + }, + "spriteSourceSize": { + "x": 5, + "y": 1, + "w": 101, + "h": 65 + }, + "frame": { + "x": 0, + "y": 121, + "w": 101, + "h": 65 + } + }, + { + "filename": "0029.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 114, + "h": 66 + }, + "spriteSourceSize": { + "x": 5, + "y": 1, + "w": 101, + "h": 65 + }, + "frame": { + "x": 0, + "y": 121, + "w": 101, + "h": 65 + } + }, + { + "filename": "0045.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 114, + "h": 66 + }, + "spriteSourceSize": { + "x": 5, + "y": 1, + "w": 101, + "h": 65 + }, + "frame": { + "x": 0, + "y": 121, + "w": 101, + "h": 65 + } + }, + { + "filename": "0011.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 114, + "h": 66 + }, + "spriteSourceSize": { + "x": 7, + "y": 0, + "w": 101, + "h": 61 + }, + "frame": { + "x": 205, + "y": 112, + "w": 101, + "h": 61 + } + }, + { + "filename": "0027.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 114, + "h": 66 + }, + "spriteSourceSize": { + "x": 7, + "y": 0, + "w": 101, + "h": 61 + }, + "frame": { + "x": 205, + "y": 112, + "w": 101, + "h": 61 + } + }, + { + "filename": "0043.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 114, + "h": 66 + }, + "spriteSourceSize": { + "x": 7, + "y": 0, + "w": 101, + "h": 61 + }, + "frame": { + "x": 205, + "y": 112, + "w": 101, + "h": 61 + } + }, { "filename": "0008.png", "rotated": false, @@ -524,266 +629,14 @@ "spriteSourceSize": { "x": 6, "y": 0, - "w": 102, + "w": 101, "h": 57 }, - "frame": { - "x": 103, - "y": 112, - "w": 102, - "h": 57 - } - }, - { - "filename": "0023.png", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 114, - "h": 66 - }, - "spriteSourceSize": { - "x": 6, - "y": 0, - "w": 102, - "h": 57 - }, - "frame": { - "x": 103, - "y": 112, - "w": 102, - "h": 57 - } - }, - { - "filename": "0038.png", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 114, - "h": 66 - }, - "spriteSourceSize": { - "x": 6, - "y": 0, - "w": 102, - "h": 57 - }, - "frame": { - "x": 103, - "y": 112, - "w": 102, - "h": 57 - } - }, - { - "filename": "0012.png", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 114, - "h": 66 - }, - "spriteSourceSize": { - "x": 5, - "y": 1, - "w": 101, - "h": 65 - }, - "frame": { - "x": 0, - "y": 121, - "w": 101, - "h": 65 - } - }, - { - "filename": "0027.png", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 114, - "h": 66 - }, - "spriteSourceSize": { - "x": 5, - "y": 1, - "w": 101, - "h": 65 - }, - "frame": { - "x": 0, - "y": 121, - "w": 101, - "h": 65 - } - }, - { - "filename": "0042.png", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 114, - "h": 66 - }, - "spriteSourceSize": { - "x": 5, - "y": 1, - "w": 101, - "h": 65 - }, - "frame": { - "x": 0, - "y": 121, - "w": 101, - "h": 65 - } - }, - { - "filename": "0010.png", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 114, - "h": 66 - }, - "spriteSourceSize": { - "x": 7, - "y": 0, - "w": 101, - "h": 61 - }, - "frame": { - "x": 205, - "y": 113, - "w": 101, - "h": 61 - } - }, - { - "filename": "0014.png", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 114, - "h": 66 - }, - "spriteSourceSize": { - "x": 7, - "y": 0, - "w": 101, - "h": 61 - }, - "frame": { - "x": 205, - "y": 113, - "w": 101, - "h": 61 - } - }, - { - "filename": "0025.png", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 114, - "h": 66 - }, - "spriteSourceSize": { - "x": 7, - "y": 0, - "w": 101, - "h": 61 - }, - "frame": { - "x": 205, - "y": 113, - "w": 101, - "h": 61 - } - }, - { - "filename": "0029.png", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 114, - "h": 66 - }, - "spriteSourceSize": { - "x": 7, - "y": 0, - "w": 101, - "h": 61 - }, - "frame": { - "x": 205, - "y": 113, - "w": 101, - "h": 61 - } - }, - { - "filename": "0040.png", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 114, - "h": 66 - }, - "spriteSourceSize": { - "x": 7, - "y": 0, - "w": 101, - "h": 61 - }, - "frame": { - "x": 205, - "y": 113, - "w": 101, - "h": 61 - } - }, - { - "filename": "0044.png", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 114, - "h": 66 - }, - "spriteSourceSize": { - "x": 7, - "y": 0, - "w": 101, - "h": 61 - }, - "frame": { - "x": 205, - "y": 113, - "w": 101, - "h": 61 - } - }, - { - "filename": "0009.png", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 114, - "h": 66 - }, - "spriteSourceSize": { - "x": 8, - "y": 0, - "w": 99, - "h": 59 - }, "frame": { "x": 101, "y": 169, - "w": 99, - "h": 59 + "w": 101, + "h": 57 } }, { @@ -795,20 +648,20 @@ "h": 66 }, "spriteSourceSize": { - "x": 8, + "x": 6, "y": 0, - "w": 99, - "h": 59 + "w": 101, + "h": 57 }, "frame": { "x": 101, "y": 169, - "w": 99, - "h": 59 + "w": 101, + "h": 57 } }, { - "filename": "0039.png", + "filename": "0040.png", "rotated": false, "trimmed": true, "sourceSize": { @@ -816,20 +669,20 @@ "h": 66 }, "spriteSourceSize": { - "x": 8, + "x": 6, "y": 0, - "w": 99, - "h": 59 + "w": 101, + "h": 57 }, "frame": { "x": 101, "y": 169, - "w": 99, - "h": 59 + "w": 101, + "h": 57 } }, { - "filename": "0015.png", + "filename": "0010.png", "rotated": false, "trimmed": true, "sourceSize": { @@ -849,6 +702,195 @@ "h": 59 } }, + { + "filename": "0026.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 114, + "h": 66 + }, + "spriteSourceSize": { + "x": 8, + "y": 0, + "w": 99, + "h": 59 + }, + "frame": { + "x": 0, + "y": 186, + "w": 99, + "h": 59 + } + }, + { + "filename": "0042.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 114, + "h": 66 + }, + "spriteSourceSize": { + "x": 8, + "y": 0, + "w": 99, + "h": 59 + }, + "frame": { + "x": 0, + "y": 186, + "w": 99, + "h": 59 + } + }, + { + "filename": "0054.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 114, + "h": 66 + }, + "spriteSourceSize": { + "x": 40, + "y": 0, + "w": 44, + "h": 54 + }, + "frame": { + "x": 306, + "y": 112, + "w": 44, + "h": 54 + } + }, + { + "filename": "0055.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 114, + "h": 66 + }, + "spriteSourceSize": { + "x": 40, + "y": 3, + "w": 44, + "h": 54 + }, + "frame": { + "x": 306, + "y": 112, + "w": 44, + "h": 54 + } + }, + { + "filename": "0059.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 114, + "h": 66 + }, + "spriteSourceSize": { + "x": 40, + "y": 3, + "w": 44, + "h": 54 + }, + "frame": { + "x": 306, + "y": 112, + "w": 44, + "h": 54 + } + }, + { + "filename": "0063.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 114, + "h": 66 + }, + "spriteSourceSize": { + "x": 40, + "y": 3, + "w": 44, + "h": 54 + }, + "frame": { + "x": 306, + "y": 112, + "w": 44, + "h": 54 + } + }, + { + "filename": "0060.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 114, + "h": 66 + }, + "spriteSourceSize": { + "x": 39, + "y": 3, + "w": 44, + "h": 54 + }, + "frame": { + "x": 306, + "y": 166, + "w": 44, + "h": 54 + } + }, + { + "filename": "0062.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 114, + "h": 66 + }, + "spriteSourceSize": { + "x": 39, + "y": 3, + "w": 44, + "h": 54 + }, + "frame": { + "x": 306, + "y": 166, + "w": 44, + "h": 54 + } + }, + { + "filename": "0014.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 114, + "h": 66 + }, + "spriteSourceSize": { + "x": 5, + "y": 0, + "w": 97, + "h": 65 + }, + "frame": { + "x": 202, + "y": 173, + "w": 97, + "h": 65 + } + }, { "filename": "0030.png", "rotated": false, @@ -858,20 +900,20 @@ "h": 66 }, "spriteSourceSize": { - "x": 8, + "x": 5, "y": 0, - "w": 99, - "h": 59 + "w": 97, + "h": 65 }, "frame": { - "x": 0, - "y": 186, - "w": 99, - "h": 59 + "x": 202, + "y": 173, + "w": 97, + "h": 65 } }, { - "filename": "0045.png", + "filename": "0046.png", "rotated": false, "trimmed": true, "sourceSize": { @@ -879,16 +921,58 @@ "h": 66 }, "spriteSourceSize": { - "x": 8, + "x": 5, "y": 0, - "w": 99, - "h": 59 + "w": 97, + "h": 65 }, "frame": { - "x": 0, - "y": 186, - "w": 99, - "h": 59 + "x": 202, + "y": 173, + "w": 97, + "h": 65 + } + }, + { + "filename": "0051.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 114, + "h": 66 + }, + "spriteSourceSize": { + "x": 29, + "y": 1, + "w": 58, + "h": 57 + }, + "frame": { + "x": 299, + "y": 220, + "w": 58, + "h": 57 + } + }, + { + "filename": "0066.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 114, + "h": 66 + }, + "spriteSourceSize": { + "x": 29, + "y": 1, + "w": 58, + "h": 57 + }, + "frame": { + "x": 299, + "y": 220, + "w": 58, + "h": 57 } }, { @@ -906,8 +990,134 @@ "h": 59 }, "frame": { - "x": 0, - "y": 245, + "x": 99, + "y": 226, + "w": 95, + "h": 59 + } + }, + { + "filename": "0009.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 114, + "h": 66 + }, + "spriteSourceSize": { + "x": 9, + "y": 1, + "w": 95, + "h": 59 + }, + "frame": { + "x": 99, + "y": 226, + "w": 95, + "h": 59 + } + }, + { + "filename": "0017.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 114, + "h": 66 + }, + "spriteSourceSize": { + "x": 9, + "y": 1, + "w": 95, + "h": 59 + }, + "frame": { + "x": 99, + "y": 226, + "w": 95, + "h": 59 + } + }, + { + "filename": "0025.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 114, + "h": 66 + }, + "spriteSourceSize": { + "x": 9, + "y": 1, + "w": 95, + "h": 59 + }, + "frame": { + "x": 99, + "y": 226, + "w": 95, + "h": 59 + } + }, + { + "filename": "0033.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 114, + "h": 66 + }, + "spriteSourceSize": { + "x": 9, + "y": 1, + "w": 95, + "h": 59 + }, + "frame": { + "x": 99, + "y": 226, + "w": 95, + "h": 59 + } + }, + { + "filename": "0041.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 114, + "h": 66 + }, + "spriteSourceSize": { + "x": 9, + "y": 1, + "w": 95, + "h": 59 + }, + "frame": { + "x": 99, + "y": 226, + "w": 95, + "h": 59 + } + }, + { + "filename": "0068.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 114, + "h": 66 + }, + "spriteSourceSize": { + "x": 9, + "y": 1, + "w": 95, + "h": 59 + }, + "frame": { + "x": 99, + "y": 226, "w": 95, "h": 59 } @@ -921,146 +1131,20 @@ "h": 66 }, "spriteSourceSize": { - "x": 9, - "y": 1, - "w": 95, - "h": 59 - }, - "frame": { - "x": 0, - "y": 245, - "w": 95, - "h": 59 - } - }, - { - "filename": "0031.png", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 114, - "h": 66 - }, - "spriteSourceSize": { - "x": 9, - "y": 1, - "w": 95, - "h": 59 - }, - "frame": { - "x": 0, - "y": 245, - "w": 95, - "h": 59 - } - }, - { - "filename": "0065.png", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 114, - "h": 66 - }, - "spriteSourceSize": { - "x": 9, - "y": 1, - "w": 95, - "h": 59 - }, - "frame": { - "x": 0, - "y": 245, - "w": 95, - "h": 59 - } - }, - { - "filename": "0046.png", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 114, - "h": 66 - }, - "spriteSourceSize": { - "x": 12, - "y": 1, - "w": 90, - "h": 59 - }, - "frame": { - "x": 95, - "y": 245, - "w": 90, - "h": 59 - } - }, - { - "filename": "0047.png", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 114, - "h": 66 - }, - "spriteSourceSize": { - "x": 22, - "y": 1, - "w": 70, - "h": 59 - }, - "frame": { - "x": 185, - "y": 228, - "w": 70, - "h": 59 - } - }, - { - "filename": "0064.png", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 114, - "h": 66 - }, - "spriteSourceSize": { - "x": 22, - "y": 1, - "w": 70, - "h": 59 - }, - "frame": { - "x": 185, - "y": 228, - "w": 70, - "h": 59 - } - }, - { - "filename": "0051.png", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 114, - "h": 66 - }, - "spriteSourceSize": { - "x": 40, + "x": 8, "y": 0, - "w": 44, - "h": 54 + "w": 95, + "h": 59 }, "frame": { - "x": 200, - "y": 174, - "w": 44, - "h": 54 + "x": 0, + "y": 245, + "w": 95, + "h": 59 } }, { - "filename": "0052.png", + "filename": "0032.png", "rotated": false, "trimmed": true, "sourceSize": { @@ -1068,100 +1152,16 @@ "h": 66 }, "spriteSourceSize": { - "x": 40, - "y": 3, - "w": 44, - "h": 54 + "x": 8, + "y": 0, + "w": 95, + "h": 59 }, "frame": { - "x": 200, - "y": 174, - "w": 44, - "h": 54 - } - }, - { - "filename": "0056.png", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 114, - "h": 66 - }, - "spriteSourceSize": { - "x": 40, - "y": 3, - "w": 44, - "h": 54 - }, - "frame": { - "x": 200, - "y": 174, - "w": 44, - "h": 54 - } - }, - { - "filename": "0060.png", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 114, - "h": 66 - }, - "spriteSourceSize": { - "x": 40, - "y": 3, - "w": 44, - "h": 54 - }, - "frame": { - "x": 200, - "y": 174, - "w": 44, - "h": 54 - } - }, - { - "filename": "0057.png", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 114, - "h": 66 - }, - "spriteSourceSize": { - "x": 39, - "y": 3, - "w": 44, - "h": 54 - }, - "frame": { - "x": 244, - "y": 174, - "w": 44, - "h": 54 - } - }, - { - "filename": "0059.png", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 114, - "h": 66 - }, - "spriteSourceSize": { - "x": 39, - "y": 3, - "w": 44, - "h": 54 - }, - "frame": { - "x": 244, - "y": 174, - "w": 44, - "h": 54 + "x": 0, + "y": 245, + "w": 95, + "h": 59 } }, { @@ -1173,41 +1173,20 @@ "h": 66 }, "spriteSourceSize": { - "x": 29, - "y": 1, - "w": 58, - "h": 57 + "x": 8, + "y": 0, + "w": 95, + "h": 59 }, "frame": { - "x": 185, - "y": 287, - "w": 58, - "h": 57 + "x": 0, + "y": 245, + "w": 95, + "h": 59 } }, { - "filename": "0063.png", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 114, - "h": 66 - }, - "spriteSourceSize": { - "x": 29, - "y": 1, - "w": 58, - "h": 57 - }, - "frame": { - "x": 185, - "y": 287, - "w": 58, - "h": 57 - } - }, - { - "filename": "0049.png", + "filename": "0052.png", "rotated": false, "trimmed": true, "sourceSize": { @@ -1221,14 +1200,14 @@ "h": 56 }, "frame": { - "x": 288, - "y": 174, + "x": 0, + "y": 304, "w": 56, "h": 56 } }, { - "filename": "0062.png", + "filename": "0065.png", "rotated": false, "trimmed": true, "sourceSize": { @@ -1242,56 +1221,14 @@ "h": 56 }, "frame": { - "x": 288, - "y": 174, + "x": 0, + "y": 304, "w": 56, "h": 56 } }, { - "filename": "0050.png", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 114, - "h": 66 - }, - "spriteSourceSize": { - "x": 40, - "y": 1, - "w": 44, - "h": 56 - }, - "frame": { - "x": 243, - "y": 287, - "w": 44, - "h": 56 - } - }, - { - "filename": "0061.png", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 114, - "h": 66 - }, - "spriteSourceSize": { - "x": 40, - "y": 1, - "w": 44, - "h": 56 - }, - "frame": { - "x": 243, - "y": 287, - "w": 44, - "h": 56 - } - }, - { - "filename": "0053.png", + "filename": "0056.png", "rotated": false, "trimmed": true, "sourceSize": { @@ -1305,29 +1242,8 @@ "h": 53 }, "frame": { - "x": 255, - "y": 230, - "w": 44, - "h": 53 - } - }, - { - "filename": "0055.png", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 114, - "h": 66 - }, - "spriteSourceSize": { - "x": 41, - "y": 4, - "w": 44, - "h": 53 - }, - "frame": { - "x": 255, - "y": 230, + "x": 56, + "y": 304, "w": 44, "h": 53 } @@ -1341,20 +1257,20 @@ "h": 66 }, "spriteSourceSize": { - "x": 38, + "x": 41, "y": 4, "w": 44, "h": 53 }, "frame": { - "x": 299, - "y": 230, + "x": 56, + "y": 304, "w": 44, "h": 53 } }, { - "filename": "0054.png", + "filename": "0015.png", "rotated": false, "trimmed": true, "sourceSize": { @@ -1362,14 +1278,161 @@ "h": 66 }, "spriteSourceSize": { - "x": 42, + "x": 7, + "y": 0, + "w": 94, + "h": 61 + }, + "frame": { + "x": 194, + "y": 238, + "w": 94, + "h": 61 + } + }, + { + "filename": "0031.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 114, + "h": 66 + }, + "spriteSourceSize": { + "x": 7, + "y": 0, + "w": 94, + "h": 61 + }, + "frame": { + "x": 194, + "y": 238, + "w": 94, + "h": 61 + } + }, + { + "filename": "0047.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 114, + "h": 66 + }, + "spriteSourceSize": { + "x": 7, + "y": 0, + "w": 94, + "h": 61 + }, + "frame": { + "x": 194, + "y": 238, + "w": 94, + "h": 61 + } + }, + { + "filename": "0050.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 114, + "h": 66 + }, + "spriteSourceSize": { + "x": 22, + "y": 1, + "w": 70, + "h": 59 + }, + "frame": { + "x": 288, + "y": 277, + "w": 70, + "h": 59 + } + }, + { + "filename": "0067.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 114, + "h": 66 + }, + "spriteSourceSize": { + "x": 22, + "y": 1, + "w": 70, + "h": 59 + }, + "frame": { + "x": 288, + "y": 277, + "w": 70, + "h": 59 + } + }, + { + "filename": "0049.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 114, + "h": 66 + }, + "spriteSourceSize": { + "x": 12, + "y": 1, + "w": 90, + "h": 59 + }, + "frame": { + "x": 100, + "y": 299, + "w": 90, + "h": 59 + } + }, + { + "filename": "0061.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 114, + "h": 66 + }, + "spriteSourceSize": { + "x": 37, + "y": 4, + "w": 44, + "h": 53 + }, + "frame": { + "x": 190, + "y": 299, + "w": 44, + "h": 53 + } + }, + { + "filename": "0057.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 114, + "h": 66 + }, + "spriteSourceSize": { + "x": 43, "y": 5, "w": 44, "h": 52 }, "frame": { - "x": 287, - "y": 283, + "x": 234, + "y": 299, "w": 44, "h": 52 } @@ -1379,7 +1442,6 @@ ], "meta": { "app": "https://www.codeandweb.com/texturepacker", - "version": "3.0", - "smartupdate": "$TexturePacker:SmartUpdate:b8ca75f7f37906e78ed633b32d037b74:92bc79a7ca35490600679451c06105fc:58bcd289dd222ce646aec14ff657c9fc$" + "version": "3.0" } } diff --git a/public/images/pokemon/exp/867.png b/public/images/pokemon/exp/867.png index 689a72694ef90e5dd459be477119a20f39db8e6a..4f8f67842bdd6ee61b2ba0ca2afe8d7ddfd2c852 100644 GIT binary patch literal 13409 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

AEr)YqXKi=OLo?%#>feG5W8?bg!mY<> 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 z4));y diff --git a/public/images/pokemon/exp/back/867.png b/public/images/pokemon/exp/back/867.png index 766ce3f39ed80703b473d801230d7cedaf763998..b816f10a0def567345f8a9a7a87e041d4898b70a 100644 GIT binary patch literal 3724 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 M07*qoM6N<$g4SP4<^TWy delta 3246 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 g{(l;-f7U5(BVe+qO`PE!E?|NsC0 z|NsC0eu)%T000AxNklv-@}kI9IwyWjBS>=%FOxxDSo1p2<7xa(`${) z%q~PHUqqyC^rrMuC}$!{s>n%I^Y9R3FdYAq+!+hV#J`k9e;Qea#AqI+7=GMrI<7v8vXoDNN6!Jl8$5hU13p#+1}WtbaK3b{{ z>+?FKWe;BE1MBEMjRnxJ3XABgnrY2K8{v3af1=+h$w#B3vY>yfi}ZXN#{suw^VIR+ zeTP1Nu>Lms_ew5*)yCv?`mNgL@?$_6cV=Iv&j-%*id7vB(#!N)Cu(OFt&Nu6kxnc0 z+e4`i)lnNo8phNEtkdJ0MSNM%?!}snb1i#Fze+w@0T(A_>&^teXh?sZyP;s$UZV3` zKQ3bD?G(cb7k6T({kAszo~saPXotU1c<;{TYky$+CHsp1P4*n)l`H=Na`iFH*e8W{ P00000NkvXXu0mjfr?m7Y delta 926 zcmV;P17ZA=2+#+R7Ybbj0{{R3HD7n|kuEKN0d!JMQvg8b*k%9#17Jx+K~#8N?Uli< z+cpqI1LzAB*{-t8A5a(z$kq^5xJ$tzkZpj1<_Dw-x5D$Iraw?1f7?5hWIrQMcD*fp zVJ{4w;k_b<;}6RsQXd`=6)8Q0f8tC%gmX{-9nTrMYmg94cxUbLz5%5fk>E$>fsglp z43dKTGy^^`v&W|aPYWgl{pJ`IIXfN@hhIlty&Jqp)6_fetm{`fcZ@g&c?fz3Pt%P( z?wtb{Jog)h{%S}TN=W^RgX8Z5TP{8`lJvl*;i1>MHV0iro;FqvgZp!F=uSGtzO!{9SVkUAr7_zoMi9ae$BF;+6Td>WBLeT( zIVYV{5g8c72!-aa)(;cEGJpKTZB-~Zfw$HM7G4bMX5@EBGxKXx*ELDffauy418-wUKMaC_0&^D za`whlNYhr^ddyE3K2cZ{%Ywgu+yr^3+daRSXh7p$fuGmBz7({sP5V1TH8yAj4kh@J zAqDs?pA<jTw&6D>LyQ=0uA#F5+zG<=9%HxdH#x9Jq4#be*~K!Jn$*Fzfi8h%dZTH}{fqgofP2pBDJD(Iz&hWnO7f z-Q3}2FD-D!*db#~b}J85c#aBvNkpc}7EV`9dj#l<;LZ?~X0+H27cqD4qaaRWUDa>*H{imm(5+E%gE4e-Yw5sY1jKEH zcX6pmK4&c5x_=Exq2lIe7P)mSrV)VnMmN8j6yeLzt&0bRiV8c9KgFOUirm(8&Fc6j z97-5ix4l_gAn~c#b=@APEyPFjaJQmZ(MK}}&X_P8dIFFPtfPuy>ri)-G z4Eh=sVF3hbhlIkzrzF+9y;*kIt!O-PHmZxMRjX*yj`ZupIv^ z)2>%x0e=h!bZ`D@|JSW^yJv!dJ!a^EjUE{AXCm!0Do&5$)ZXrX#Jzu8A9;ovbJqc3 zmvbI>G-JoVa<$K?NFIf$J)St<+=#pXyZJ*7vJi%Hj0T6p0ZX~y*EZDN#(}M3qf}&% zf>X|?yGgHA%pVGfa6b>jGlT;e(}1pnK~NZUR)0Pme}=Sglp7Kihkd063p`r#+};xm z_l>~8Vi+P089ExfHVn^mP5Xq4|6^^DbEEP@qM|m>J`oJdGmZeVJ^uXJ%Taky4hJ|! zgo9I;eJKB<4RZ;^)aqp_s`2*uL@-za2lIIB&#f4>Ll_7g9ClnJ;#Oaz_$0?47ur{+ z9)Fo6R8dT=Et3i{w{NS%;qO+Df-q2Ho@^X?E~K>$w6CjE|94lbz~{A0oVL=JPWpQiL554q=RW?1!Q6 z0vsA=yeFQ^XpvK&Z4#^SIP3r=eCUdE`+tV->7Fw_^M+Ev;BlzN1nih6Y*TJ@*(N_X zrqq60y#9w#s@NQg06{o5%yjw^k?!e$_}Cxuo|b}v7-JlG4<-&B@jeh1y}t*e7B%dsRA%z1q#@RXj2p-~{vgrLV%H@gin*mA%FwRmi?6gnEU4KD9 zpd}K+ff|zssbP51FdQhqJ2Bf3>XwQ;vxb1-IEpoJNOv@Krf7_r$HDJShVmlfaM(4t zLt6!DTMBZ@r|6U+2Q+Z-;2HX6T#5H+S>(mq{wtEE3VM=KkT-F7--!6>XpR`W~1A)S! zHRcGRLD=?T2u9J`mqY*NW~cw2t*4@n)$G+V#0k9q_*dr+#vPs`8e`tK3O$*`XFx-0 zUrd-B+r^=)qP8t>fyQ4_im7i0PO^=XSt7zc>)_(;WaD)&M zfB7KM81qhzl1Ma)*6!|Whd1b|sOJd8LmlJCc=C03Qqve?N3%5$o1CDu`x}p5nvos^TkB$s!$1Ww)TSs8M=u;f>%g7nm^mDR7Y*&_o%`X?RY8u; zi^ctSw7)RiA;v6ID4eN21b-=^eO|@bI-~enNsO6-!J;=E8jHFrSZYjuHs{~d-O-)B z`C|qeAOjF2eel+$)frPI&FkiCweoyp|(>xr#P7PlJyNZY`ZlDa6t~gbob8(0!=()Eq22 zwnJU|IUfC@Hs{qKTz}JDA7_YPv)1RtrTE1o;bUXu#891iKA27g{M}!UwJy2s3kX_S z{FY~g7EyYRdFHDy;kHJQ^Bg*SrUudN?tf7v9!eZkjeE~=t8-H@0_oVh@UNh zq;)B2@9UYkQEV7L*`ZZ1dCcUQ;A`?inKRJ=2iFvlbmXCWAaakV!4(==E%GXpIj*itZETkTvD_= zXK$Xnh+z)Jj6G^`*Orq7^uMv)sigGOxm^ijXU^*82A&B^}IMz+Ido z^D0=zH6d3Je}AD?sDk0+W1hP>MPgO3j0=Y2jZaKI-(F#g)@kzW-Z_Os< z9x>S_0*ejQADzK%nIZEMP7PM-G2%ufxnWR;;#zaA409rJ-AkznGB4p&pJm)ga^uCF zJ`V#Ju6;A7C-YKH^;yOQ50yhqwtx~BJ~YU`I1QcIwSQz@+NsX<6c2TLN1GT65e63y zZx`bbKUQeSytGrD>z_3bmBU^|MfWjPMk3fGV-LELzM%;5CCIgX6wZ42M8M?50xG%( zHTRJSW?I}fzJPCfyOEN4OIGQ?sa*PJC0WispA-y$srELF17OYxXti-HO|E6!tIYQO z^yo-&`F~3^D6+mMA{arS5{R`J1{n^v-pM;7Z9%_WxLGa{p-jGOMNGQQ;9zt9T^0$w zINNt_VI!wb{ufLM;Tp_qSOY8~9BK)lMd;kqBJ+01l$2AKrhAf~^?y10 z0VD2yZHjD7=0&s1aSCr#6!%$_=FFNyAw|VxJj7)|5wn|Q-T}9ka0+cy7o@rM>UEKh z*%S;dGB4cBnNC@Z!*rU

WN*NJm5wnHO?OnN9&9A)8G(o#uQkoYuwUH;hC#uig3V zka^K!$38WkDwYMFO~rJY1jhV_9Dn#L44<`_7MZutt?fI7AlGNPNYHYINglZyx(eDo z_NGJTrMR^@EV^DH$hBGSVuIGWTePUc-tO+Zbp!q9c~z4<#mnMif>z!D^<-X+S45VR z8J-NfhM)z1dPYs=J-q_UiQ!ewax?#kWx3{dv(M zHCK>%Yhn9_b6@x3`epm=^Y2ydla`l|dD*_f4~8R-&#nG=!05^Lox=AmbH4nSvOZJg zR@D2Ot9s16NRV%%{VgWH;F#x9Hkm57g8DEQ3fklO%H9Af*E-Wyk$-$TOqHUq*bEHn zw-RhIRjh|$zXAsR@m$g-SJWku%6;@6uovysW^m9R&qZx=E7y8tq%!xd zEv8B!!dwy#>f^brO>X5{kBr35eUT94Ux`gV;;4`3vNpMuYdtbj*;BD`U3f`=8;h|_ z?|9>HCpn%A39L-l{C}lI?rXyE^zT=9|6L09@C=wIKJ6VF=WR8J1Gj?3R5z7qrRcx|XhG$tBxGHnl$MYw2U;8GjDX9kwsiv6Ni)x~;<2 zuxTW#O|B(jXzrID2fL3_U+PupzfMBZge!KJ@^eBA-W11Dg2~&8UchJ@W_5SKgXVlM%?X|VDh#Xaq?`K)ot`H^x|r#KEM#G*aE)TUBXL2tzktl zu-oKT?IOEbJ%3*vmV7hyfi8Vj)xR%xm+*67YuKE}S)Z%93%+2q-TGO*xVoMCDjuZ4 zFS;cBoT4?X;8ZGTll!crx0BT?&`|2jGYr~LR?8x8-)vqAZVfA=u)@688wd!)xrZF> z8gX@#=L6eNmN>*Vb8Mbc!L}B3yTwdiII#T6UCmmT!hcj;U0e)#K9I_ho6}*|1g~Pd zY7NVzuo8I>46K`N7BIA38-Rv*KCzk!{Iek*k;Xt!tzqvh3Tu_g5cd^#p~Y*s#sO29 zFazB0odr?KP@Vd+;u?oh>3XX*?3ltjXp>tqH=lUcN*EA@skh`)>O23l-BILtVr+%O zsC1od4S#z_(t1!Cw8`Bbc~l~LW^2*qrEAra-%G+6Onnw#YRIzxZs|JR8kR$0#l}*3 z@A3Gv-xi>^n6;{HW_GQyz8gX^~ z+P+SFop9(?v$k5pGAOJGL6n{f3M=X_3>mB$hJTi8_0^mm0F{TsYVCfRcfrR^^U9&H zGTP)~3TrOROd~t46)S$Hh*H%KkXI9Au9bDs1P*vfS~&_i#$uaMW_#75uLHSFfa@$9>x?_OToaRu)-Sdp=aP~0)}b}$U7)l7>qJ+OTniZ^0J{vwvm6hQ5z-+v z#IopWT`-?Ep@}>SD_+2@_1@mvC_+;08H%1_hSwg^=kUU0wwCCV)_G3}g>}H)Y*AR# zoQ*uomqVshD|+C-SQYKx91B3`?oc@(s(*g8aN}TXZ7{JQ4p_@GYl-OTtcxHsM22oS zG%2iuHn|jq^;E!F7YkbPW%RVdeTK-8!$Cq}Md3gV>^$5^JoDw7cwKZBeKJu&WPoSV zJWXk`8WdJ|j%W>R0|7W-1J9CsCj_j_ry(-H^zd1WX;4@prMb=V8+yhmT(RlH4}UlH z3EaDh^kQa4Cg#)F$^D*R-iGm@&Kz`eR!MmK5Io zIFqgmk!!ltC#dBFa_&%C3TtoRRj!FrpQM(vWg*%$xw%F)P~@5<^@(aZ8@JQen<)lr zvN}g(wVbq=oWEoSnzZDF1FsiZEq^B|;f2Po==y8oxEJ9dNdJmvB!!%L>)p4AwUWL1 z`nJhXMCo7Aj0DRTJEEE`bwqvgxOy)>>&Vi-sFL(Ym7%L;aHT0Kb%bR< z)kcRgDaTK69uSoB$G67AT7OQioIx8>QX~=gfRJ+h1m^*6`WMu4awRlUK&B2TT2hW5 z`#iue=B(+pZ|t|MFT+E(-n~>y7^dD-x=9zPx+AsFc5iVOYz_LLmjC5C$g4k98i9 zqxQ)_-z#Y()Jxg?^16@9=q`pEq80X0^Gxn?hcvqhXAa1u32UYr?sO9AL-+!#;w|~y59`6R{fr8qt zP5qJkX8Dz5 z&ZU1*EvKbW2!AjX+{JCr^m^K_=KkI|4-}N<`aCdI%D;$eIV;|xmtbq*7vP{bV8B6( zS?JYypu&wh4`|bWLW2E;v)zBQT8+-o48-W11NV3J&|01g0Yrs(BfJx|;U)}wk zI1g}G>)P}mWVUuMa$;*7vS-Y5PR&ABKMu;*#dPgne1GmFaVY83UB9aRedcjcSjs|wVAOKca^DmpkzHLGOLG@D zLtGmD8t(7?^T2Sue{GAc=v%`t#A!x;aq`&cJkVS3Uq{ahre>-;#-G3={X-`MbI^VSIrsbEd9?xa_d*?hbS{G5ih@N%s77f3u4-LsL;r=dO7ipj% z?dj=Rqqekd3#9vdb^T^y%~qkDuC z?(gt=o_(S^WMsUQo(21FV!y`L3fol5sa&GGH-Agd%6kI#YdmKn92DmwS>BtbXC*P` zYi#CxNjRU1bCEFbT}02?z>iW%;+)C(RGf=cyd;<-H1w?P5$)SH6FHoN0Xohn|6DZL zVnj#Ja=#qrIh-Dkz~SurrR99`w+nHLk!$E#<}A}VIh_6Vd-@~he6nS(#mF>E&3WhJ zmVf70fJ4CfWXnv8k&DQB#smksueCIs&!H$r7-8qVUVZ*u%TxO)!sjJ*>+^|1 zw_ha^UQ(|z9bC#Yn`VQO{$4(}r=1rp3tl<)m5X_WOX) zv=|xG=l@b126<1^V&trI`-M1+^Im&!v(D|;!NAFTz0uBRw2Xc!3JW9e^+y-=`M(#3 z8D7#C*XMtch}Xr7e^UJ0L|(W2%0QnK|4t$D9%IyNep37!#m_6ud%X4jueg88zq;O~ l^6##9o&0m_T`4bc|Np)hPyDE6RP+D<002ovPDHLkV1mAkLec;L delta 6214 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 diff --git a/public/images/pokemon/variant/back/female/178_3.png b/public/images/pokemon/variant/back/female/178_3.png index 32ffdd895c6950fdcec0edc08b2b41b37a01a7ae..9533621c6d696fda7b3f97abd127ba04cbcc78fd 100644 GIT binary patch delta 6215 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 delta 6214 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 diff --git a/public/images/pokemon/variant/exp/800-ultra.json b/public/images/pokemon/variant/exp/800-ultra.json index 53dd9b55df0..cab917ec271 100644 --- a/public/images/pokemon/variant/exp/800-ultra.json +++ b/public/images/pokemon/variant/exp/800-ultra.json @@ -1,21 +1,5 @@ { "1": { - "b0a080": "e552ec", - "f8f8e8": "ffe2ed", - "9b8259": "b021c5", - "e5e4c2": "ffb9f9", - "000000": "000000", - "bc9b4e": "900090", - "f8f8d0": "ff8ae9", - "e8e088": "ff49e7", - "d0b868": "d10cc7", - "7d673b": "510059", - "282828": "282828", - "f84040": "f84040", - "f88888": "1ae2e6", - "c81010": "00c2d2" - }, - "2": { "b0a080": "d96b23", "f8f8e8": "ffe1b8", "9b8259": "b43c06", @@ -30,5 +14,21 @@ "f84040": "f84040", "f88888": "f88888", "c81010": "c81010" + }, + "2": { + "b0a080": "e552ec", + "f8f8e8": "ffe2ed", + "9b8259": "b021c5", + "e5e4c2": "ffb9f9", + "000000": "000000", + "bc9b4e": "900090", + "f8f8d0": "ff8ae9", + "e8e088": "ff49e7", + "d0b868": "d10cc7", + "7d673b": "510059", + "282828": "282828", + "f84040": "f84040", + "f88888": "1ae2e6", + "c81010": "00c2d2" } } \ No newline at end of file From 65af7a56993e19c29681ca1ea9e9799ed4385373 Mon Sep 17 00:00:00 2001 From: Mumble Date: Sun, 18 Aug 2024 13:51:08 -0700 Subject: [PATCH 06/11] [Bug] Preventing the MBH from being stolen in Endless (#3630) * Endless MBH Fix * add import * Revert "add import" This reverts commit 814a4059c2830e972c348d698259535e117850bf. * Revert "Endless MBH Fix" This reverts commit 8eb448130132ff9eed614a2ec576926814008df0. * removed newline --------- Co-authored-by: Frederico Santos Co-authored-by: frutescens --- src/battle-scene.ts | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/battle-scene.ts b/src/battle-scene.ts index 674b4e256f9..ae6cea2dcd1 100644 --- a/src/battle-scene.ts +++ b/src/battle-scene.ts @@ -2419,9 +2419,14 @@ export default class BattleScene extends SceneBase { count = Math.max(count, Math.floor(chances / 2)); } getEnemyModifierTypesForWave(difficultyWaveIndex, count, [ enemyPokemon ], this.currentBattle.battleType === BattleType.TRAINER ? ModifierPoolType.TRAINER : ModifierPoolType.WILD, upgradeChance) - .map(mt => mt.newModifier(enemyPokemon).add(this.enemyModifiers, false, this)); + .map(mt => { + const enemyModifier = mt.newModifier(enemyPokemon); + if (enemyModifier instanceof TurnHeldItemTransferModifier) { + enemyModifier.setTransferrableFalse(); + } + enemyModifier.add(this.enemyModifiers, false, this); + }); }); - this.updateModifiers(false).then(() => resolve()); }); } From a97803b99b53ae2bec104571fa3e63e70a21824c Mon Sep 17 00:00:00 2001 From: flx-sta <50131232+flx-sta@users.noreply.github.com> Date: Sun, 18 Aug 2024 23:27:38 +0200 Subject: [PATCH 07/11] [Bug] Fix type-hints for immunity (#3620) * enable mock containers to be found by name * enable mock text to be found by name * add test coverage for type-hints Only for "immunity" and "status moves" --- src/field/pokemon.ts | 6 +- src/test/ui/transfer-item.test.ts | 1 - src/test/ui/type-hints.test.ts | 89 +++++++++++++++++++ src/test/utils/gameManager.ts | 3 + src/test/utils/helpers/settingsHelper.ts | 15 ++++ .../mocks/mocksContainer/mockContainer.ts | 7 +- .../utils/mocks/mocksContainer/mockText.ts | 16 ++-- src/ui/fight-ui-handler.ts | 13 +-- 8 files changed, 131 insertions(+), 19 deletions(-) create mode 100644 src/test/ui/type-hints.test.ts create mode 100644 src/test/utils/helpers/settingsHelper.ts diff --git a/src/field/pokemon.ts b/src/field/pokemon.ts index 10851451a1a..e38813ed3c0 100644 --- a/src/field/pokemon.ts +++ b/src/field/pokemon.ts @@ -1210,11 +1210,11 @@ export default abstract class Pokemon extends Phaser.GameObjects.Container { * * @param source - The Pokémon using the move. * @param move - The move being used. - * @returns The type damage multiplier or undefined if it's a status move + * @returns The type damage multiplier or 1 if it's a status move */ - getMoveEffectiveness(source: Pokemon, move: PokemonMove): TypeDamageMultiplier | undefined { + getMoveEffectiveness(source: Pokemon, move: PokemonMove): TypeDamageMultiplier { if (move.getMove().category === MoveCategory.STATUS) { - return undefined; + return 1; } return this.getAttackMoveEffectiveness(source, move, !this.battleData?.abilityRevealed); diff --git a/src/test/ui/transfer-item.test.ts b/src/test/ui/transfer-item.test.ts index bbb9a823ad9..9315971e484 100644 --- a/src/test/ui/transfer-item.test.ts +++ b/src/test/ui/transfer-item.test.ts @@ -87,7 +87,6 @@ describe("UI - Transfer Items", () => { handler.processInput(Button.ACTION); // select Pokemon expect(handler.optionsContainer.list.some((option) => (option as BBCodeText).text?.includes("Transfer"))).toBe(true); - game.phaseInterceptor.unlock(); }); diff --git a/src/test/ui/type-hints.test.ts b/src/test/ui/type-hints.test.ts new file mode 100644 index 00000000000..eb0191812e8 --- /dev/null +++ b/src/test/ui/type-hints.test.ts @@ -0,0 +1,89 @@ +import { Button } from "#app/enums/buttons.js"; +import { Moves } from "#app/enums/moves"; +import { Species } from "#app/enums/species"; +import { CommandPhase } from "#app/phases"; +import FightUiHandler from "#app/ui/fight-ui-handler.js"; +import { Mode } from "#app/ui/ui.js"; +import GameManager from "#test/utils/gameManager"; +import Phaser from "phaser"; +import { afterEach, beforeAll, beforeEach, describe, expect, it } from "vitest"; +import MockText from "../utils/mocks/mocksContainer/mockText"; +import { SPLASH_ONLY } from "../utils/testUtils"; + +describe("UI - Type Hints", () => { + let phaserGame: Phaser.Game; + let game: GameManager; + + beforeAll(() => { + phaserGame = new Phaser.Game({ + type: Phaser.HEADLESS, + }); + }); + + afterEach(() => { + game.phaseInterceptor.restoreOg(); + }); + + beforeEach(async () => { + game = new GameManager(phaserGame); + game.settings.typeHints(true); //activate type hints + game.override.battleType("single").startingLevel(100).startingWave(1).enemyMoveset(SPLASH_ONLY); + }); + + it("check immunity color", async () => { + game.override + .battleType("single") + .startingLevel(100) + .startingWave(1) + .enemySpecies(Species.FLORGES) + .enemyMoveset(SPLASH_ONLY) + .moveset([Moves.DRAGON_CLAW]); + game.settings.typeHints(true); //activate type hints + + await game.startBattle([Species.RAYQUAZA]); + + game.onNextPrompt("CommandPhase", Mode.COMMAND, () => { + const { ui } = game.scene; + const handler = ui.getHandler(); + handler.processInput(Button.ACTION); // select "Fight" + game.phaseInterceptor.unlock(); + }); + + game.onNextPrompt("CommandPhase", Mode.FIGHT, () => { + const { ui } = game.scene; + const movesContainer = ui.getByName(FightUiHandler.MOVES_CONTAINER_NAME); + const dragonClawText = movesContainer + .getAll() + .find((text) => text.text === "Dragon Claw")! as unknown as MockText; + + expect.soft(dragonClawText.color).toBe("#929292"); + ui.getHandler().processInput(Button.ACTION); + }); + await game.phaseInterceptor.to(CommandPhase); + }); + + it("check status move color", async () => { + game.override.enemySpecies(Species.FLORGES).moveset([Moves.GROWL]); + + await game.startBattle([Species.RAYQUAZA]); + + game.onNextPrompt("CommandPhase", Mode.COMMAND, () => { + const { ui } = game.scene; + const handler = ui.getHandler(); + handler.processInput(Button.ACTION); // select "Fight" + game.phaseInterceptor.unlock(); + }); + + game.onNextPrompt("CommandPhase", Mode.FIGHT, () => { + const { ui } = game.scene; + const movesContainer = ui.getByName(FightUiHandler.MOVES_CONTAINER_NAME); + const growlText = movesContainer + .getAll() + .find((text) => text.text === "Growl")! as unknown as MockText; + + expect.soft(growlText.color).toBe(undefined); + ui.getHandler().processInput(Button.ACTION); + }); + await game.phaseInterceptor.to(CommandPhase); + }); +}); diff --git a/src/test/utils/gameManager.ts b/src/test/utils/gameManager.ts index 27ba7a215eb..6333179e3b2 100644 --- a/src/test/utils/gameManager.ts +++ b/src/test/utils/gameManager.ts @@ -30,6 +30,7 @@ import { MoveHelper } from "./helpers/moveHelper"; import { vi } from "vitest"; import { ClassicModeHelper } from "./helpers/classicModeHelper"; import { DailyModeHelper } from "./helpers/dailyModeHelper"; +import { SettingsHelper } from "./helpers/settingsHelper"; /** * Class to manage the game state and transitions between phases. @@ -44,6 +45,7 @@ export default class GameManager { public readonly move: MoveHelper; public readonly classicMode: ClassicModeHelper; public readonly dailyMode: DailyModeHelper; + public readonly settings: SettingsHelper; /** * Creates an instance of GameManager. @@ -63,6 +65,7 @@ export default class GameManager { this.move = new MoveHelper(this); this.classicMode = new ClassicModeHelper(this); this.dailyMode = new DailyModeHelper(this); + this.settings = new SettingsHelper(this); } /** diff --git a/src/test/utils/helpers/settingsHelper.ts b/src/test/utils/helpers/settingsHelper.ts new file mode 100644 index 00000000000..dec9e160d51 --- /dev/null +++ b/src/test/utils/helpers/settingsHelper.ts @@ -0,0 +1,15 @@ +import { GameManagerHelper } from "./gameManagerHelper"; + +/** + * Helper to handle settings for tests + */ +export class SettingsHelper extends GameManagerHelper { + + /** + * Disable/Enable type hints settings + * @param enable true to enabled, false to disabled + */ + typeHints(enable: boolean) { + this.game.scene.typeHints = enable; + } +} diff --git a/src/test/utils/mocks/mocksContainer/mockContainer.ts b/src/test/utils/mocks/mocksContainer/mockContainer.ts index d3672cb5235..5babd9e71b2 100644 --- a/src/test/utils/mocks/mocksContainer/mockContainer.ts +++ b/src/test/utils/mocks/mocksContainer/mockContainer.ts @@ -1,4 +1,5 @@ import MockTextureManager from "#test/utils/mocks/mockTextureManager"; +import { vi } from "vitest"; import { MockGameObject } from "../mockGameObject"; export default class MockContainer implements MockGameObject { @@ -13,6 +14,7 @@ export default class MockContainer implements MockGameObject { public frame; protected textureManager; public list: MockGameObject[] = []; + private name?: string; constructor(textureManager: MockTextureManager, x, y) { this.x = x; @@ -159,9 +161,10 @@ export default class MockContainer implements MockGameObject { // Moves this Game Object to be below the given Game Object in the display list. } - setName(name) { + setName = vi.fn((name: string) => { + this.name = name; // return this.phaserSprite.setName(name); - } + }); bringToTop(obj) { // Brings this Game Object to the top of its parents display list. diff --git a/src/test/utils/mocks/mocksContainer/mockText.ts b/src/test/utils/mocks/mocksContainer/mockText.ts index 5d405efadfd..6b9ecf083fd 100644 --- a/src/test/utils/mocks/mocksContainer/mockText.ts +++ b/src/test/utils/mocks/mocksContainer/mockText.ts @@ -1,4 +1,5 @@ import UI from "#app/ui/ui"; +import { vi } from "vitest"; import { MockGameObject } from "../mockGameObject"; export default class MockText implements MockGameObject { @@ -10,6 +11,8 @@ export default class MockText implements MockGameObject { public list: MockGameObject[] = []; public style; public text = ""; + private name?: string; + public color?: string; constructor(textureManager, x, y, content, styleOptions) { this.scene = textureManager.scene; @@ -190,10 +193,9 @@ export default class MockText implements MockGameObject { }; } - setColor(color) { - // Sets the tint of this Game Object. - // return this.phaserText.setColor(color); - } + setColor = vi.fn((color: string) => { + this.color = color; + }); setShadowColor(color) { // Sets the shadow color. @@ -219,9 +221,9 @@ export default class MockText implements MockGameObject { // return this.phaserText.setAlpha(alpha); } - setName(name) { - // return this.phaserText.setName(name); - } + setName = vi.fn((name: string) => { + this.name = name; + }); setAlign(align) { // return this.phaserText.setAlign(align); diff --git a/src/ui/fight-ui-handler.ts b/src/ui/fight-ui-handler.ts index 8279ab72a70..4ade6ca5d20 100644 --- a/src/ui/fight-ui-handler.ts +++ b/src/ui/fight-ui-handler.ts @@ -12,6 +12,8 @@ import {Button} from "#enums/buttons"; import Pokemon, { PokemonMove } from "#app/field/pokemon.js"; export default class FightUiHandler extends UiHandler { + public static readonly MOVES_CONTAINER_NAME = "moves"; + private movesContainer: Phaser.GameObjects.Container; private moveInfoContainer: Phaser.GameObjects.Container; private typeIcon: Phaser.GameObjects.Sprite; @@ -35,7 +37,7 @@ export default class FightUiHandler extends UiHandler { const ui = this.getUi(); this.movesContainer = this.scene.add.container(18, -38.7); - this.movesContainer.setName("moves"); + this.movesContainer.setName(FightUiHandler.MOVES_CONTAINER_NAME); ui.add(this.movesContainer); this.moveInfoContainer = this.scene.add.container(1, 0); @@ -271,11 +273,10 @@ export default class FightUiHandler extends UiHandler { return undefined; } - const moveColors = opponents.map((opponent) => { - return opponent.getMoveEffectiveness(pokemon, pokemonMove); - }).filter((eff) => !!eff).sort((a, b) => b - a).map((effectiveness) => { - return getTypeDamageMultiplierColor(effectiveness, "offense"); - }); + const moveColors = opponents + .map((opponent) => opponent.getMoveEffectiveness(pokemon, pokemonMove)) + .sort((a, b) => b - a) + .map((effectiveness) => getTypeDamageMultiplierColor(effectiveness ?? 0, "offense")); return moveColors[0]; } From 1db26dab961451b7185cf492e7666f5044bc2d0a Mon Sep 17 00:00:00 2001 From: Enoch Date: Mon, 19 Aug 2024 08:50:31 +0900 Subject: [PATCH 08/11] fix wrong message key of curse(ghost type) (#3631) Co-authored-by: Frederico Santos --- src/data/move.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/data/move.ts b/src/data/move.ts index 79e67ece581..24651bacb2e 100644 --- a/src/data/move.ts +++ b/src/data/move.ts @@ -4441,7 +4441,7 @@ export class CurseAttr extends MoveEffectAttr { const curseRecoilDamage = Math.max(1, Math.floor(user.getMaxHp() / 2)); user.damageAndUpdate(curseRecoilDamage, HitResult.OTHER, false, true, true); user.scene.queueMessage( - i18next.t("battle:cursedOnAdd", { + i18next.t("battlerTags:cursedOnAdd", { pokemonNameWithAffix: getPokemonNameWithAffix(user), pokemonName: getPokemonNameWithAffix(target) }) From a46e35b8ddbabf0e7764dc73efe98c7267dd7440 Mon Sep 17 00:00:00 2001 From: Mumble Date: Sun, 18 Aug 2024 16:59:18 -0700 Subject: [PATCH 09/11] [Hotfix] Steal-able Mini Black Hole Pt 2 (#3632) * Still have no idea where Eternatus is given the MBH.... * typedocs --------- Co-authored-by: frutescens --- src/battle-scene.ts | 8 +------- src/phases.ts | 4 ++++ 2 files changed, 5 insertions(+), 7 deletions(-) diff --git a/src/battle-scene.ts b/src/battle-scene.ts index ae6cea2dcd1..4faf3863e3c 100644 --- a/src/battle-scene.ts +++ b/src/battle-scene.ts @@ -2419,13 +2419,7 @@ export default class BattleScene extends SceneBase { count = Math.max(count, Math.floor(chances / 2)); } getEnemyModifierTypesForWave(difficultyWaveIndex, count, [ enemyPokemon ], this.currentBattle.battleType === BattleType.TRAINER ? ModifierPoolType.TRAINER : ModifierPoolType.WILD, upgradeChance) - .map(mt => { - const enemyModifier = mt.newModifier(enemyPokemon); - if (enemyModifier instanceof TurnHeldItemTransferModifier) { - enemyModifier.setTransferrableFalse(); - } - enemyModifier.add(this.enemyModifiers, false, this); - }); + .map(mt => mt.newModifier(enemyPokemon).add(this.enemyModifiers, false, this)); }); this.updateModifiers(false).then(() => resolve()); }); diff --git a/src/phases.ts b/src/phases.ts index 565914879e4..c50d25acf60 100644 --- a/src/phases.ts +++ b/src/phases.ts @@ -878,6 +878,10 @@ export class EncounterPhase extends BattlePhase { } else if (!(battle.waveIndex % 1000)) { enemyPokemon.formIndex = 1; enemyPokemon.updateScale(); + const bossMBH = this.scene.findModifier(m => m instanceof TurnHeldItemTransferModifier && m.pokemonId === enemyPokemon.id, false) as TurnHeldItemTransferModifier; + this.scene.removeModifier(bossMBH!); + bossMBH?.setTransferrableFalse(); + this.scene.addEnemyModifier(bossMBH!); } } From 747e4f9360c9a7f297aab82b3da85dbfc3c401e4 Mon Sep 17 00:00:00 2001 From: NightKev <34855794+DayKev@users.noreply.github.com> Date: Sun, 18 Aug 2024 17:05:53 -0700 Subject: [PATCH 10/11] [Hotfix] Abilities that prevent ATK drops no longer stop other stat drops (#3624) * Abilities that prevent ATK drops no longer stop other stat drops * Apply suggestions from code review Co-authored-by: Mumble * Add `isNullOrUndefined()` utility function --------- --- src/data/ability.ts | 6 +-- src/test/abilities/hyper_cutter.test.ts | 58 +++++++++++++++++++++++++ src/utils.ts | 8 ++++ 3 files changed, 69 insertions(+), 3 deletions(-) create mode 100644 src/test/abilities/hyper_cutter.test.ts diff --git a/src/data/ability.ts b/src/data/ability.ts index cfd900d621c..38ca4eb25d0 100644 --- a/src/data/ability.ts +++ b/src/data/ability.ts @@ -2395,16 +2395,16 @@ export class PreStatChangeAbAttr extends AbAttr { } export class ProtectStatAbAttr extends PreStatChangeAbAttr { - private protectedStat: BattleStat | null; + private protectedStat?: BattleStat; constructor(protectedStat?: BattleStat) { super(); - this.protectedStat = protectedStat ?? null; + this.protectedStat = protectedStat; } applyPreStatChange(pokemon: Pokemon, passive: boolean, stat: BattleStat, cancelled: Utils.BooleanHolder, args: any[]): boolean { - if (!this.protectedStat || stat === this.protectedStat) { + if (Utils.isNullOrUndefined(this.protectedStat) || stat === this.protectedStat) { cancelled.value = true; return true; } diff --git a/src/test/abilities/hyper_cutter.test.ts b/src/test/abilities/hyper_cutter.test.ts new file mode 100644 index 00000000000..9637a80ddb4 --- /dev/null +++ b/src/test/abilities/hyper_cutter.test.ts @@ -0,0 +1,58 @@ +import { BattleStat } from "#app/data/battle-stat"; +import { Abilities } from "#enums/abilities"; +import { Moves } from "#enums/moves"; +import { Species } from "#enums/species"; +import GameManager from "#test/utils/gameManager"; +import { getMovePosition } from "#test/utils/gameManagerUtils"; +import { SPLASH_ONLY } from "#test/utils/testUtils"; +import Phaser from "phaser"; +import { afterEach, beforeAll, beforeEach, describe, expect, it } from "vitest"; + +describe("Abilities - Hyper Cutter", () => { + let phaserGame: Phaser.Game; + let game: GameManager; + + beforeAll(() => { + phaserGame = new Phaser.Game({ + type: Phaser.HEADLESS, + }); + }); + + afterEach(() => { + game.phaseInterceptor.restoreOg(); + }); + + beforeEach(() => { + game = new GameManager(phaserGame); + game.override + .battleType("single") + .moveset([Moves.SAND_ATTACK, Moves.NOBLE_ROAR, Moves.DEFOG, Moves.OCTOLOCK]) + .ability(Abilities.BALL_FETCH) + .enemySpecies(Species.SHUCKLE) + .enemyAbility(Abilities.HYPER_CUTTER) + .enemyMoveset(SPLASH_ONLY); + }); + + // Reference Link: https://bulbapedia.bulbagarden.net/wiki/Hyper_Cutter_(Ability) + + it("only prevents ATK drops", async () => { + await game.startBattle(); + + const enemy = game.scene.getEnemyPokemon()!; + + game.doAttack(getMovePosition(game.scene, 0, Moves.OCTOLOCK)); + await game.toNextTurn(); + game.doAttack(getMovePosition(game.scene, 0, Moves.DEFOG)); + await game.toNextTurn(); + game.doAttack(getMovePosition(game.scene, 0, Moves.NOBLE_ROAR)); + await game.toNextTurn(); + game.doAttack(getMovePosition(game.scene, 0, Moves.SAND_ATTACK)); + await game.toNextTurn(); + game.override.moveset([Moves.STRING_SHOT]); + game.doAttack(getMovePosition(game.scene, 0, Moves.STRING_SHOT)); + await game.toNextTurn(); + + expect(enemy.summonData.battleStats[BattleStat.ATK]).toEqual(0); + [BattleStat.ACC, BattleStat.DEF, BattleStat.EVA, BattleStat.SPATK, BattleStat.SPDEF, BattleStat.SPD].forEach((stat: number) => expect(enemy.summonData.battleStats[stat]).toBeLessThan(0)); + }); +}); diff --git a/src/utils.ts b/src/utils.ts index aa45c091286..c51ac2b5b0b 100644 --- a/src/utils.ts +++ b/src/utils.ts @@ -552,3 +552,11 @@ export function capitalizeString(str: string, sep: string, lowerFirstChar: boole } return null; } + +/** + * Returns if an object is null or undefined + * @param object + */ +export function isNullOrUndefined(object: any): boolean { + return null === object || undefined === object; +} From bdde03b0d5b340e256e7800c5571f60ca2aa60a9 Mon Sep 17 00:00:00 2001 From: Mumble <171087428+frutescens@users.noreply.github.com> Date: Sun, 18 Aug 2024 18:06:52 -0700 Subject: [PATCH 11/11] Grip Claw now shows the proper pokemon nickname (#3634) Co-authored-by: frutescens --- src/modifier/modifier.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/modifier/modifier.ts b/src/modifier/modifier.ts index 1dff041a14e..f4ec6c499f4 100644 --- a/src/modifier/modifier.ts +++ b/src/modifier/modifier.ts @@ -2414,7 +2414,7 @@ export class ContactHeldItemTransferChanceModifier extends HeldItemTransferModif } getTransferMessage(pokemon: Pokemon, targetPokemon: Pokemon, item: ModifierTypes.ModifierType): string { - return i18next.t("modifier:contactHeldItemTransferApply", { pokemonNameWithAffix: getPokemonNameWithAffix(targetPokemon), itemName: item.name, pokemonName: pokemon.name, typeName: this.type.name }); + return i18next.t("modifier:contactHeldItemTransferApply", { pokemonNameWithAffix: getPokemonNameWithAffix(targetPokemon), itemName: item.name, pokemonName: getPokemonNameWithAffix(pokemon), typeName: this.type.name }); } getMaxHeldItemCount(pokemon: Pokemon): integer {