From eacaa8b20baff6da3cd8a665e5cad1438754acf2 Mon Sep 17 00:00:00 2001 From: damocleas Date: Sun, 10 Aug 2025 23:39:39 -0400 Subject: [PATCH] wip achievement changes --- public/images/items/common_egg.png | Bin 0 -> 318 bytes public/images/items/epic_egg.png | Bin 0 -> 327 bytes public/images/items/legendary_egg.png | Bin 0 -> 327 bytes public/images/items/manaphy_egg.png | Bin 0 -> 324 bytes public/images/items/rare_egg.png | Bin 0 -> 327 bytes public/images/items/rogue_egg.png | Bin 0 -> 327 bytes src/system/achv.ts | 109 +++++++++++++------------- src/ui/achvs-ui-handler.ts | 6 +- 8 files changed, 57 insertions(+), 58 deletions(-) create mode 100644 public/images/items/common_egg.png create mode 100644 public/images/items/epic_egg.png create mode 100644 public/images/items/legendary_egg.png create mode 100644 public/images/items/manaphy_egg.png create mode 100644 public/images/items/rare_egg.png create mode 100644 public/images/items/rogue_egg.png diff --git a/public/images/items/common_egg.png b/public/images/items/common_egg.png new file mode 100644 index 0000000000000000000000000000000000000000..50d77864a33a82380bb03ff71a1263f9d7cecd3a GIT binary patch literal 318 zcmV-E0m1%>P)Px#_en%SR47x0lA#xZKn%u5FdA%L!zc}#MkCc|ykMbOjYcDtNHAE5L~YVALOYv( zg1(KnIgt0f!rk6}`@W5NFmQa|e{;BL8n2(y32^eYNF;Byj_Iypfe^4s1jZP!^KGa2 z{g%PTrUDYA0etr%jA>Ay!^KkdApqm$7xto$C}B@#7DE0i#XniAa>+*(>4`_K ze`p_&p~QJRJ%(6K5|j$Yg3%cEyYm-f5WiZH?WJ*RlUM0y8TGQVYJX`z`9FT@mX`2$ Q00000NkvXXu0mjf0HSS$LI3~& literal 0 HcmV?d00001 diff --git a/public/images/items/epic_egg.png b/public/images/items/epic_egg.png new file mode 100644 index 0000000000000000000000000000000000000000..95b9a0fc686aacd64bf6b6199a11eed33a04bb51 GIT binary patch literal 327 zcmV-N0l5B&P)Px$0ZBwbR47wpWWWLx6cql$gdaS3z=*B{MF6H)Qb7T(?)ifUU^cR5xF(Q>!waMt z*m!jq;+tQh82<3?U54+UKf^VGH6d#N@zFJb#E><@HJx1R4mKT|29Ws24<8snP6auW z5o8M|FE4|NP1sT9?0{KZmSeRi$uR7fQAjYbO-*ELHTi||z1vzqr zqHBQZv`u&l2|bu5m~Aix$hLsQj-CI-P(JZBLK93Qh(@*%rV(TVa#F%bjL3-Px$0ZBwbR47wpWWWLx6cql$gdaS3z=*B{MF6IFs^)pPy6o$QU^cR5xF(Q>*+1$S zBz0vOK1;ix7=GvB4TjqLo^Xv|O~@KRd~{79F=UN!O={PJUlUxtBT+X!j` zY5cNdKG;wcO`sqa5*L7*itI0tUyuRZCXkPx#{YgYYR47xek|7gQ; z@e^>~I(y!sQ3|m4zI|`+&JaHy+qN5&i=r^v%US_K%Zf#R*dyKJR*A9L|kjG~#iA z2taleC`P@}3_^2F|9~*de}PVNrtU#d>JGg3YAhCWK0r7V+9l7MG$ZFA=RhrvEo~Ox zpNcd+84@tfmD~+hGKB7Rz5M{H3ttKKq_6p$#HeX^3DMYzLGH}1U$>Fn@aC@SFfUE9 WpW51LOius+002ovPDHLkV1fW?>4wDs literal 0 HcmV?d00001 diff --git a/public/images/items/rare_egg.png b/public/images/items/rare_egg.png new file mode 100644 index 0000000000000000000000000000000000000000..ac6494fbe49531c34854a6141bee5b625066666b GIT binary patch literal 327 zcmV-N0l5B&P)Px$07*naR47wpWWWLx6cql$gdaS3z=*B{MF6IlH*gVL-RJdjU^cR5xF(Q>t(uw) zoSK>pRf_2-hF`pLgW>zme7HuiCS(mDKDs857_vsVrhP#{VAHW_0Eu6{_mTnRRFE?n zLAG$ZPh`;7(ZCia3~l#kg2ny+2Qd8k_8#m^uqKP*ome%11Yw%KU%$=}p-~C8ji4rw z#@cNKU_((ffr40DNgQq}vcEunK?ZP}Kz?H35@guOxB>2d5M#xScDQVY>@lK=n!07*qoM6N<$f&d4Vg&+U` literal 0 HcmV?d00001 diff --git a/public/images/items/rogue_egg.png b/public/images/items/rogue_egg.png new file mode 100644 index 0000000000000000000000000000000000000000..1e2e35e3f5344883a7a1b903f7e46087e8a0eab3 GIT binary patch literal 327 zcmV-N0l5B&P)Px$07*naR47x0lEDfAVGzgX3lT+G2ggk*Uce)8cH`m&C~x54;;c9;4vx+|g4`*k zeE<}qB&}wcF}t>Wm;LtN{N_J1-xvruwr#sCJC0-gAs&H)&8;DEZhTC44GV<8FcN{h zWkG%4_9Q=EXW&Mc0urPF{P#nsX;7d=HcQ!q0D{hIz*4bHgD&P?f^?!9G!vL+`lMHO zWq{Cz$|T4N_W}VF8QLBW&^p!0?JtC2*K{bU2f`7jlSRp@`@&xI5hv^ko&}ia7T@{- zV33+hJi16vJaYY@sA+)7=Hv06oRI7Ba{vGU07*qoM6N<$f&h$Qi5LI? literal 0 HcmV?d00001 diff --git a/src/system/achv.ts b/src/system/achv.ts index 383d07252e6..a70a4c36883 100644 --- a/src/system/achv.ts +++ b/src/system/achv.ts @@ -458,6 +458,19 @@ export function getAchievementDescription(localizationKey: string): string { } export const achvs = { + CLASSIC_VICTORY: new Achv( + "CLASSIC_VICTORY", + "", + "CLASSIC_VICTORY.description", + "relic_crown", + 150, + _ => globalScene.gameData.gameStats.sessionsWon === 0, + ), + _10_RIBBONS: new RibbonAchv("10_RIBBONS", "", 10, "bronze_ribbon", 10), + _25_RIBBONS: new RibbonAchv("25_RIBBONS", "", 25, "great_ribbon", 25), + _50_RIBBONS: new RibbonAchv("50_RIBBONS", "", 50, "ultra_ribbon", 50), + _75_RIBBONS: new RibbonAchv("75_RIBBONS", "", 75, "rogue_ribbon", 75), + _100_RIBBONS: new RibbonAchv("100_RIBBONS", "", 100, "master_ribbon", 100), _10K_MONEY: new MoneyAchv("10K_MONEY", "", 10000, "nugget", 10), _100K_MONEY: new MoneyAchv("100K_MONEY", "", 100000, "big_nugget", 25).setSecret(true), _1M_MONEY: new MoneyAchv("1M_MONEY", "", 1000000, "relic_gold", 50).setSecret(true), @@ -473,11 +486,6 @@ export const achvs = { LV_100: new LevelAchv("LV_100", "", 100, "rare_candy", 25).setSecret(), LV_250: new LevelAchv("LV_250", "", 250, "rarer_candy", 50).setSecret(true), LV_1000: new LevelAchv("LV_1000", "", 1000, "candy_jar", 100).setSecret(true), - _10_RIBBONS: new RibbonAchv("10_RIBBONS", "", 10, "bronze_ribbon", 10), - _25_RIBBONS: new RibbonAchv("25_RIBBONS", "", 25, "great_ribbon", 25).setSecret(true), - _50_RIBBONS: new RibbonAchv("50_RIBBONS", "", 50, "ultra_ribbon", 50).setSecret(true), - _75_RIBBONS: new RibbonAchv("75_RIBBONS", "", 75, "rogue_ribbon", 75).setSecret(true), - _100_RIBBONS: new RibbonAchv("100_RIBBONS", "", 100, "master_ribbon", 100).setSecret(true), TRANSFER_MAX_STAT_STAGE: new Achv("TRANSFER_MAX_STAT_STAGE", "", "TRANSFER_MAX_STAT_STAGE.description", "baton", 20), MAX_FRIENDSHIP: new Achv("MAX_FRIENDSHIP", "", "MAX_FRIENDSHIP.description", "soothe_bell", 25), MEGA_EVOLVE: new Achv("MEGA_EVOLVE", "", "MEGA_EVOLVE.description", "mega_bracelet", 50), @@ -516,14 +524,6 @@ export const achvs = { HATCH_SHINY: new Achv("HATCH_SHINY", "", "HATCH_SHINY.description", "golden_egg", 100).setSecret(), HIDDEN_ABILITY: new Achv("HIDDEN_ABILITY", "", "HIDDEN_ABILITY.description", "ability_charm", 75), PERFECT_IVS: new Achv("PERFECT_IVS", "", "PERFECT_IVS.description", "blunder_policy", 100), - CLASSIC_VICTORY: new Achv( - "CLASSIC_VICTORY", - "", - "CLASSIC_VICTORY.description", - "relic_crown", - 150, - _ => globalScene.gameData.gameStats.sessionsWon === 0, - ), UNEVOLVED_CLASSIC_VICTORY: new Achv( "UNEVOLVED_CLASSIC_VICTORY", "", @@ -532,6 +532,47 @@ export const achvs = { 175, _ => globalScene.getPlayerParty().some(p => p.getSpeciesForm(true).speciesId in pokemonEvolutions), ), + FRESH_START: new ChallengeAchv( + "FRESH_START", + "", + "FRESH_START.description", + "reviver_seed", + 100, + c => + c instanceof FreshStartChallenge && + c.value === 1 && + !globalScene.gameMode.challenges.some( + c => [Challenges.INVERSE_BATTLE, Challenges.FLIP_STAT].includes(c.id) && c.value > 0, + ), + ), + NUZLOCKE: new ChallengeAchv( + "NUZLOCKE", + "", + "NUZLOCKE.description", + "leaf_stone", + 100, + c => + c instanceof LimitedCatchChallenge && + c.value > 0 && + globalScene.gameMode.challenges.some(c => c.id === Challenges.HARDCORE && c.value > 0) && + globalScene.gameMode.challenges.some(c => c.id === Challenges.FRESH_START && c.value > 0), + ), + INVERSE_BATTLE: new ChallengeAchv( + "INVERSE_BATTLE", + "", + "INVERSE_BATTLE.description", + "inverse", + 100, + c => c instanceof InverseBattleChallenge && c.value > 0, + ), + FLIP_STATS: new ChallengeAchv( + "FLIP_STATS", + "", + "FLIP_STATS.description", + "dubious_disc", + 100, + c => c instanceof FlipStatChallenge && c.value > 0, + ), MONO_GEN_ONE_VICTORY: new ChallengeAchv( "MONO_GEN_ONE", "", @@ -883,35 +924,6 @@ export const achvs = { c => [Challenges.INVERSE_BATTLE, Challenges.FLIP_STAT].includes(c.id) && c.value > 0, ), ), - FRESH_START: new ChallengeAchv( - "FRESH_START", - "", - "FRESH_START.description", - "reviver_seed", - 100, - c => - c instanceof FreshStartChallenge && - c.value === 1 && - !globalScene.gameMode.challenges.some( - c => [Challenges.INVERSE_BATTLE, Challenges.FLIP_STAT].includes(c.id) && c.value > 0, - ), - ), - INVERSE_BATTLE: new ChallengeAchv( - "INVERSE_BATTLE", - "", - "INVERSE_BATTLE.description", - "inverse", - 100, - c => c instanceof InverseBattleChallenge && c.value > 0, - ), - FLIP_STATS: new ChallengeAchv( - "FLIP_STATS", - "", - "FLIP_STATS.description", - "dubious_disc", - 100, - c => c instanceof FlipStatChallenge && c.value > 0, - ), FLIP_INVERSE: new ChallengeAchv( "FLIP_INVERSE", "", @@ -923,19 +935,6 @@ export const achvs = { c.value > 0 && globalScene.gameMode.challenges.some(c => c.id === Challenges.INVERSE_BATTLE && c.value > 0), ).setSecret(), - // TODO: Decide on icon - NUZLOCKE: new ChallengeAchv( - "NUZLOCKE", - "", - "NUZLOCKE.description", - "leaf_stone", - 100, - c => - c instanceof LimitedCatchChallenge && - c.value > 0 && - globalScene.gameMode.challenges.some(c => c.id === Challenges.HARDCORE && c.value > 0) && - globalScene.gameMode.challenges.some(c => c.id === Challenges.FRESH_START && c.value > 0), - ), BREEDERS_IN_SPACE: new Achv("BREEDERS_IN_SPACE", "", "BREEDERS_IN_SPACE.description", "moon_stone", 50).setSecret(), }; diff --git a/src/ui/achvs-ui-handler.ts b/src/ui/achvs-ui-handler.ts index 2c04e24e0f2..c558a425a87 100644 --- a/src/ui/achvs-ui-handler.ts +++ b/src/ui/achvs-ui-handler.ts @@ -30,7 +30,7 @@ const languageSettings: { [key: string]: LanguageSetting } = { export class AchvsUiHandler extends MessageUiHandler { private readonly ROWS = 4; - private readonly COLS = 17; + private readonly COLS = 18; private mainContainer: Phaser.GameObjects.Container; private iconsContainer: Phaser.GameObjects.Container; @@ -115,8 +115,8 @@ export class AchvsUiHandler extends MessageUiHandler { this.icons = []; for (let a = 0; a < this.ROWS * this.COLS; a++) { - const x = (a % this.COLS) * 18; - const y = Math.floor(a / this.COLS) * 18; + const x = (a % this.COLS) * 17; + const y = Math.floor(a / this.COLS) * 19; const icon = globalScene.add.sprite(x, y, "items", "unknown").setOrigin(0).setScale(0.5);