Compare commits

...

4 Commits

Author SHA1 Message Date
Madmadness65
9c21ed243f Add egg to legacy UI, re-export item atlas 2025-08-11 00:08:24 -05:00
damocleas
6e99707f39 painful eggs 2025-08-11 01:03:27 -04:00
Madmadness65
ef45a21837 Adjust egg image sizes, re-export item atlas 2025-08-10 22:47:33 -05:00
damocleas
eacaa8b20b wip achievement changes 2025-08-10 23:39:39 -04:00
15 changed files with 7624 additions and 7549 deletions

File diff suppressed because it is too large Load Diff

Binary file not shown.

Before

Width:  |  Height:  |  Size: 52 KiB

After

Width:  |  Height:  |  Size: 55 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 435 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 447 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 274 B

After

Width:  |  Height:  |  Size: 584 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 447 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 514 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 447 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 514 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 435 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 435 B

View File

@ -98,7 +98,7 @@ export class LoadingScene extends SceneBase {
this.loadImage("type_tera", "ui");
this.loadAtlas("type_bgs", "ui");
this.loadAtlas("button_tera", "ui");
this.loadImage("mystery_egg", "ui");
this.loadImage("common_egg", "ui");
this.loadImage("normal_memory", "ui");
this.loadImage("dawn_icon_fg", "ui");

View File

@ -42,13 +42,11 @@ export class Achv {
constructor(
localizationKey: string,
name: string,
description: string,
iconImage: string,
score: number,
conditionFunc?: ConditionFn,
) {
this.name = name;
this.description = description;
this.iconImage = iconImage;
this.score = score;
@ -107,8 +105,8 @@ export class Achv {
export class MoneyAchv extends Achv {
moneyAmount: number;
constructor(localizationKey: string, name: string, moneyAmount: number, iconImage: string, score: number) {
super(localizationKey, name, "", iconImage, score, (_args: any[]) => globalScene.money >= this.moneyAmount);
constructor(localizationKey: string, moneyAmount: number, iconImage: string, score: number) {
super(localizationKey, "", iconImage, score, (_args: any[]) => globalScene.money >= this.moneyAmount);
this.moneyAmount = moneyAmount;
}
}
@ -116,10 +114,9 @@ export class MoneyAchv extends Achv {
export class RibbonAchv extends Achv {
ribbonAmount: number;
constructor(localizationKey: string, name: string, ribbonAmount: number, iconImage: string, score: number) {
constructor(localizationKey: string, ribbonAmount: number, iconImage: string, score: number) {
super(
localizationKey,
name,
"",
iconImage,
score,
@ -132,10 +129,9 @@ export class RibbonAchv extends Achv {
export class DamageAchv extends Achv {
damageAmount: number;
constructor(localizationKey: string, name: string, damageAmount: number, iconImage: string, score: number) {
constructor(localizationKey: string, damageAmount: number, iconImage: string, score: number) {
super(
localizationKey,
name,
"",
iconImage,
score,
@ -148,10 +144,9 @@ export class DamageAchv extends Achv {
export class HealAchv extends Achv {
healAmount: number;
constructor(localizationKey: string, name: string, healAmount: number, iconImage: string, score: number) {
constructor(localizationKey: string, healAmount: number, iconImage: string, score: number) {
super(
localizationKey,
name,
"",
iconImage,
score,
@ -164,10 +159,9 @@ export class HealAchv extends Achv {
export class LevelAchv extends Achv {
level: number;
constructor(localizationKey: string, name: string, level: number, iconImage: string, score: number) {
constructor(localizationKey: string, level: number, iconImage: string, score: number) {
super(
localizationKey,
name,
"",
iconImage,
score,
@ -180,26 +174,24 @@ export class LevelAchv extends Achv {
export class ModifierAchv extends Achv {
constructor(
localizationKey: string,
name: string,
description: string,
iconImage: string,
score: number,
modifierFunc: (modifier: Modifier) => boolean,
) {
super(localizationKey, name, description, iconImage, score, (args: any[]) => modifierFunc(args[0] as Modifier));
super(localizationKey, description, iconImage, score, (args: any[]) => modifierFunc(args[0] as Modifier));
}
}
export class ChallengeAchv extends Achv {
constructor(
localizationKey: string,
name: string,
description: string,
iconImage: string,
score: number,
challengeFunc: (challenge: Challenge) => boolean,
) {
super(localizationKey, name, description, iconImage, score, (args: any[]) => challengeFunc(args[0] as Challenge));
super(localizationKey, description, iconImage, score, (args: any[]) => challengeFunc(args[0] as Challenge));
}
}
@ -458,83 +450,109 @@ export function getAchievementDescription(localizationKey: string): string {
}
export const achvs = {
_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),
_10M_MONEY: new MoneyAchv("10M_MONEY", "", 10000000, "coin_case", 100).setSecret(true),
_250_DMG: new DamageAchv("250_DMG", "", 250, "lucky_punch", 10),
_1000_DMG: new DamageAchv("1000_DMG", "", 1000, "lucky_punch_great", 25).setSecret(true),
_2500_DMG: new DamageAchv("2500_DMG", "", 2500, "lucky_punch_ultra", 50).setSecret(true),
_10000_DMG: new DamageAchv("10000_DMG", "", 10000, "lucky_punch_master", 100).setSecret(true),
_250_HEAL: new HealAchv("250_HEAL", "", 250, "potion", 10),
_1000_HEAL: new HealAchv("1000_HEAL", "", 1000, "super_potion", 25).setSecret(true),
_2500_HEAL: new HealAchv("2500_HEAL", "", 2500, "hyper_potion", 50).setSecret(true),
_10000_HEAL: new HealAchv("10000_HEAL", "", 10000, "max_potion", 100).setSecret(true),
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),
GIGANTAMAX: new Achv("GIGANTAMAX", "", "GIGANTAMAX.description", "dynamax_band", 50),
TERASTALLIZE: new Achv("TERASTALLIZE", "", "TERASTALLIZE.description", "tera_orb", 25),
STELLAR_TERASTALLIZE: new Achv(
"STELLAR_TERASTALLIZE",
"",
"STELLAR_TERASTALLIZE.description",
"stellar_tera_shard",
25,
).setSecret(true),
SPLICE: new Achv("SPLICE", "", "SPLICE.description", "dna_splicers", 10),
MINI_BLACK_HOLE: new ModifierAchv(
"MINI_BLACK_HOLE",
"",
"MINI_BLACK_HOLE.description",
"mini_black_hole",
25,
modifier => modifier instanceof TurnHeldItemTransferModifier,
).setSecret(),
CATCH_MYTHICAL: new Achv("CATCH_MYTHICAL", "", "CATCH_MYTHICAL.description", "strange_ball", 50).setSecret(),
CATCH_SUB_LEGENDARY: new Achv("CATCH_SUB_LEGENDARY", "", "CATCH_SUB_LEGENDARY.description", "rb", 75).setSecret(),
CATCH_LEGENDARY: new Achv("CATCH_LEGENDARY", "", "CATCH_LEGENDARY.description", "mb", 100).setSecret(),
SEE_SHINY: new Achv("SEE_SHINY", "", "SEE_SHINY.description", "pb_gold", 75),
SHINY_PARTY: new Achv("SHINY_PARTY", "", "SHINY_PARTY.description", "shiny_charm", 100).setSecret(true),
HATCH_MYTHICAL: new Achv("HATCH_MYTHICAL", "", "HATCH_MYTHICAL.description", "mystery_egg", 75).setSecret(),
HATCH_SUB_LEGENDARY: new Achv(
"HATCH_SUB_LEGENDARY",
"",
"HATCH_SUB_LEGENDARY.description",
"oval_stone",
100,
).setSecret(),
HATCH_LEGENDARY: new Achv("HATCH_LEGENDARY", "", "HATCH_LEGENDARY.description", "lucky_egg", 125).setSecret(),
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,
),
_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),
_10M_MONEY: new MoneyAchv("10M_MONEY", 10000000, "coin_case", 100).setSecret(true),
_250_DMG: new DamageAchv("250_DMG", 250, "lucky_punch", 10),
_1000_DMG: new DamageAchv("1000_DMG", 1000, "lucky_punch_great", 25).setSecret(true),
_2500_DMG: new DamageAchv("2500_DMG", 2500, "lucky_punch_ultra", 50).setSecret(true),
_10000_DMG: new DamageAchv("10000_DMG", 10000, "lucky_punch_master", 100).setSecret(true),
_250_HEAL: new HealAchv("250_HEAL", 250, "potion", 10),
_1000_HEAL: new HealAchv("1000_HEAL", 1000, "super_potion", 25).setSecret(true),
_2500_HEAL: new HealAchv("2500_HEAL", 2500, "hyper_potion", 50).setSecret(true),
_10000_HEAL: new HealAchv("10000_HEAL", 10000, "max_potion", 100).setSecret(true),
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),
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),
GIGANTAMAX: new Achv("GIGANTAMAX", "GIGANTAMAX.description", "dynamax_band", 50),
TERASTALLIZE: new Achv("TERASTALLIZE", "TERASTALLIZE.description", "tera_orb", 25),
STELLAR_TERASTALLIZE: new Achv(
"STELLAR_TERASTALLIZE",
"STELLAR_TERASTALLIZE.description",
"stellar_tera_shard",
25,
).setSecret(true),
SPLICE: new Achv("SPLICE", "SPLICE.description", "dna_splicers", 10),
MINI_BLACK_HOLE: new ModifierAchv(
"MINI_BLACK_HOLE",
"MINI_BLACK_HOLE.description",
"mini_black_hole",
25,
modifier => modifier instanceof TurnHeldItemTransferModifier,
).setSecret(),
CATCH_MYTHICAL: new Achv("CATCH_MYTHICAL", "CATCH_MYTHICAL.description", "strange_ball", 50).setSecret(),
CATCH_SUB_LEGENDARY: new Achv("CATCH_SUB_LEGENDARY", "CATCH_SUB_LEGENDARY.description", "rb", 75).setSecret(),
CATCH_LEGENDARY: new Achv("CATCH_LEGENDARY", "CATCH_LEGENDARY.description", "mb", 100).setSecret(),
SEE_SHINY: new Achv("SEE_SHINY", "SEE_SHINY.description", "pb_gold", 75),
SHINY_PARTY: new Achv("SHINY_PARTY", "SHINY_PARTY.description", "shiny_charm", 100).setSecret(true),
HATCH_MYTHICAL: new Achv("HATCH_MYTHICAL", "HATCH_MYTHICAL.description", "manaphy_egg", 75).setSecret(),
HATCH_SUB_LEGENDARY: new Achv("HATCH_SUB_LEGENDARY", "HATCH_SUB_LEGENDARY.description", "epic_egg", 100).setSecret(),
HATCH_LEGENDARY: new Achv("HATCH_LEGENDARY", "HATCH_LEGENDARY.description", "legendary_egg", 125).setSecret(),
HATCH_SHINY: new Achv("HATCH_SHINY", "HATCH_SHINY.description", "rogue_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),
UNEVOLVED_CLASSIC_VICTORY: new Achv(
"UNEVOLVED_CLASSIC_VICTORY",
"",
"UNEVOLVED_CLASSIC_VICTORY.description",
"eviolite",
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",
"",
"MONO_GEN_ONE.description",
"ribbon_gen1",
100,
@ -547,7 +565,6 @@ export const achvs = {
),
MONO_GEN_TWO_VICTORY: new ChallengeAchv(
"MONO_GEN_TWO",
"",
"MONO_GEN_TWO.description",
"ribbon_gen2",
100,
@ -560,7 +577,6 @@ export const achvs = {
),
MONO_GEN_THREE_VICTORY: new ChallengeAchv(
"MONO_GEN_THREE",
"",
"MONO_GEN_THREE.description",
"ribbon_gen3",
100,
@ -573,7 +589,6 @@ export const achvs = {
),
MONO_GEN_FOUR_VICTORY: new ChallengeAchv(
"MONO_GEN_FOUR",
"",
"MONO_GEN_FOUR.description",
"ribbon_gen4",
100,
@ -586,7 +601,6 @@ export const achvs = {
),
MONO_GEN_FIVE_VICTORY: new ChallengeAchv(
"MONO_GEN_FIVE",
"",
"MONO_GEN_FIVE.description",
"ribbon_gen5",
100,
@ -599,7 +613,6 @@ export const achvs = {
),
MONO_GEN_SIX_VICTORY: new ChallengeAchv(
"MONO_GEN_SIX",
"",
"MONO_GEN_SIX.description",
"ribbon_gen6",
100,
@ -612,7 +625,6 @@ export const achvs = {
),
MONO_GEN_SEVEN_VICTORY: new ChallengeAchv(
"MONO_GEN_SEVEN",
"",
"MONO_GEN_SEVEN.description",
"ribbon_gen7",
100,
@ -625,7 +637,6 @@ export const achvs = {
),
MONO_GEN_EIGHT_VICTORY: new ChallengeAchv(
"MONO_GEN_EIGHT",
"",
"MONO_GEN_EIGHT.description",
"ribbon_gen8",
100,
@ -638,7 +649,6 @@ export const achvs = {
),
MONO_GEN_NINE_VICTORY: new ChallengeAchv(
"MONO_GEN_NINE",
"",
"MONO_GEN_NINE.description",
"ribbon_gen9",
100,
@ -651,7 +661,6 @@ export const achvs = {
),
MONO_NORMAL: new ChallengeAchv(
"MONO_NORMAL",
"",
"MONO_NORMAL.description",
"silk_scarf",
100,
@ -664,7 +673,6 @@ export const achvs = {
),
MONO_FIGHTING: new ChallengeAchv(
"MONO_FIGHTING",
"",
"MONO_FIGHTING.description",
"black_belt",
100,
@ -677,7 +685,6 @@ export const achvs = {
),
MONO_FLYING: new ChallengeAchv(
"MONO_FLYING",
"",
"MONO_FLYING.description",
"sharp_beak",
100,
@ -690,7 +697,6 @@ export const achvs = {
),
MONO_POISON: new ChallengeAchv(
"MONO_POISON",
"",
"MONO_POISON.description",
"poison_barb",
100,
@ -703,7 +709,6 @@ export const achvs = {
),
MONO_GROUND: new ChallengeAchv(
"MONO_GROUND",
"",
"MONO_GROUND.description",
"soft_sand",
100,
@ -716,7 +721,6 @@ export const achvs = {
),
MONO_ROCK: new ChallengeAchv(
"MONO_ROCK",
"",
"MONO_ROCK.description",
"hard_stone",
100,
@ -729,7 +733,6 @@ export const achvs = {
),
MONO_BUG: new ChallengeAchv(
"MONO_BUG",
"",
"MONO_BUG.description",
"silver_powder",
100,
@ -742,7 +745,6 @@ export const achvs = {
),
MONO_GHOST: new ChallengeAchv(
"MONO_GHOST",
"",
"MONO_GHOST.description",
"spell_tag",
100,
@ -755,7 +757,6 @@ export const achvs = {
),
MONO_STEEL: new ChallengeAchv(
"MONO_STEEL",
"",
"MONO_STEEL.description",
"metal_coat",
100,
@ -768,7 +769,6 @@ export const achvs = {
),
MONO_FIRE: new ChallengeAchv(
"MONO_FIRE",
"",
"MONO_FIRE.description",
"charcoal",
100,
@ -781,7 +781,6 @@ export const achvs = {
),
MONO_WATER: new ChallengeAchv(
"MONO_WATER",
"",
"MONO_WATER.description",
"mystic_water",
100,
@ -794,7 +793,6 @@ export const achvs = {
),
MONO_GRASS: new ChallengeAchv(
"MONO_GRASS",
"",
"MONO_GRASS.description",
"miracle_seed",
100,
@ -807,7 +805,6 @@ export const achvs = {
),
MONO_ELECTRIC: new ChallengeAchv(
"MONO_ELECTRIC",
"",
"MONO_ELECTRIC.description",
"magnet",
100,
@ -820,7 +817,6 @@ export const achvs = {
),
MONO_PSYCHIC: new ChallengeAchv(
"MONO_PSYCHIC",
"",
"MONO_PSYCHIC.description",
"twisted_spoon",
100,
@ -833,7 +829,6 @@ export const achvs = {
),
MONO_ICE: new ChallengeAchv(
"MONO_ICE",
"",
"MONO_ICE.description",
"never_melt_ice",
100,
@ -846,7 +841,6 @@ export const achvs = {
),
MONO_DRAGON: new ChallengeAchv(
"MONO_DRAGON",
"",
"MONO_DRAGON.description",
"dragon_fang",
100,
@ -859,7 +853,6 @@ export const achvs = {
),
MONO_DARK: new ChallengeAchv(
"MONO_DARK",
"",
"MONO_DARK.description",
"black_glasses",
100,
@ -872,7 +865,6 @@ export const achvs = {
),
MONO_FAIRY: new ChallengeAchv(
"MONO_FAIRY",
"",
"MONO_FAIRY.description",
"fairy_feather",
100,
@ -883,38 +875,8 @@ 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",
"",
"FLIP_INVERSE.description",
"cracked_pot",
100,
@ -923,20 +885,7 @@ 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(),
BREEDERS_IN_SPACE: new Achv("BREEDERS_IN_SPACE", "BREEDERS_IN_SPACE.description", "moon_stone", 50).setSecret(),
};
export function initAchievements() {

View File

@ -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);

View File

@ -107,7 +107,7 @@ export class PokedexMonContainer extends Phaser.GameObjects.Container {
this.candyUpgradeOverlayIcon = candyUpgradeOverlayIcon;
// move icons
const eggMove1Icon = globalScene.add.image(0, 12, "mystery_egg");
const eggMove1Icon = globalScene.add.image(0, 12, "common_egg");
eggMove1Icon.setOrigin(0, 0);
eggMove1Icon.setScale(0.25);
eggMove1Icon.setVisible(false);
@ -123,7 +123,7 @@ export class PokedexMonContainer extends Phaser.GameObjects.Container {
this.tmMove1Icon = tmMove1Icon;
// move icons
const eggMove2Icon = globalScene.add.image(7, 12, "mystery_egg");
const eggMove2Icon = globalScene.add.image(7, 12, "common_egg");
eggMove2Icon.setOrigin(0, 0);
eggMove2Icon.setScale(0.25);
eggMove2Icon.setVisible(false);