mirror of
https://github.com/pagefaultgames/pokerogue.git
synced 2025-07-16 21:32:18 +02:00
organizing, translations and achv localization
This commit is contained in:
parent
b95a59c094
commit
af9ac1e17e
@ -1237,5 +1237,4 @@ export const ability: AbilityTranslationEntries = {
|
||||
name: "Poison Puppeteer",
|
||||
description: "Pokémon envenenados pelos movimentos de Pecharunt também ficarão confusos.",
|
||||
},
|
||||
|
||||
} as const;
|
||||
|
171
src/locales/pt_BR/achv.ts
Normal file
171
src/locales/pt_BR/achv.ts
Normal file
@ -0,0 +1,171 @@
|
||||
import { AchievementTranslationEntries } from "#app/plugins/i18n.js";
|
||||
|
||||
export const achv: AchievementTranslationEntries = {
|
||||
"Achv": {
|
||||
name: "Conquistas",
|
||||
},
|
||||
"Locked": {
|
||||
name: "Não conquistado",
|
||||
},
|
||||
|
||||
"MoneyAchv": {
|
||||
description: "Acumule um total de ₽{{moneyAmount}}",
|
||||
},
|
||||
"10K_MONEY": {
|
||||
name: "Chuva de Dinheiro",
|
||||
},
|
||||
"100K_MONEY": {
|
||||
name: "Tô Rica!",
|
||||
},
|
||||
"1M_MONEY": {
|
||||
name: "Quem Quer Ser Um Milionário?",
|
||||
},
|
||||
"10M_MONEY": {
|
||||
name: "Tio Patinhas",
|
||||
},
|
||||
|
||||
"DamageAchv": {
|
||||
description: "Inflija {{damageAmount}} de dano em um único golpe",
|
||||
},
|
||||
"250_DMG": {
|
||||
name: "Essa Doeu!",
|
||||
},
|
||||
"1000_DMG": {
|
||||
name: "Essa Doeu Mais!",
|
||||
},
|
||||
"2500_DMG": {
|
||||
name: "Essa Doeu Muito!",
|
||||
},
|
||||
"10000_DMG": {
|
||||
name: "Essa Doeu Pra Caramba!",
|
||||
},
|
||||
|
||||
"HealAchv": {
|
||||
description: "Cure {{healAmount}} de PS de uma vez só com um movimento, habilidade ou item segurado",
|
||||
},
|
||||
"250_HEAL": {
|
||||
name: "Residente",
|
||||
},
|
||||
"1000_HEAL": {
|
||||
name: "Enfermeiro",
|
||||
},
|
||||
"2500_HEAL": {
|
||||
name: "Médico",
|
||||
},
|
||||
"10000_HEAL": {
|
||||
name: "Médico de Plantão",
|
||||
},
|
||||
|
||||
"LevelAchv": {
|
||||
description: "Eleve um Pokémon para o Lv{{level}}",
|
||||
},
|
||||
"LV_100": {
|
||||
name: "Calma Que Tem Mais!",
|
||||
},
|
||||
"LV_250": {
|
||||
name: "Treinador de Elite",
|
||||
},
|
||||
"LV_1000": {
|
||||
name: "Ao Infinito e Além!",
|
||||
},
|
||||
|
||||
"RibbonAchv": {
|
||||
description: "Acumule um total de {{ribbonAmount}} Fitas",
|
||||
},
|
||||
"10_RIBBONS": {
|
||||
name: "Fita de Bronze",
|
||||
},
|
||||
"25_RIBBONS": {
|
||||
name: "Fita de Prata",
|
||||
},
|
||||
"50_RIBBONS": {
|
||||
name: "Fita de Ouro",
|
||||
},
|
||||
"75_RIBBONS": {
|
||||
name: "Fita de Platina",
|
||||
},
|
||||
"100_RIBBONS": {
|
||||
name: "Fita de Diamante",
|
||||
},
|
||||
|
||||
"TRANSFER_MAX_BATTLE_STAT": {
|
||||
name: "Trabalho em Equipe",
|
||||
description: "Use Baton Pass com pelo menos um atributo aumentado ao máximo",
|
||||
},
|
||||
"MAX_FRIENDSHIP": {
|
||||
name: "Melhores Amigos",
|
||||
description: "Alcance a amizade máxima com um Pokémon",
|
||||
},
|
||||
"MEGA_EVOLVE": {
|
||||
name: "Megamorfose",
|
||||
description: "Megaevolua um Pokémon",
|
||||
},
|
||||
"GIGANTAMAX": {
|
||||
name: "Ficou Gigante!",
|
||||
description: "Gigantamax um Pokémon",
|
||||
},
|
||||
"TERASTALLIZE": {
|
||||
name: "Terastalização",
|
||||
description: "Terastalize um Pokémon",
|
||||
},
|
||||
"STELLAR_TERASTALLIZE": {
|
||||
name: "Estrela Cadente",
|
||||
description: "Terastalize um Pokémon para o tipo Estelar",
|
||||
},
|
||||
"SPLICE": {
|
||||
name: "Fusão!",
|
||||
description: "Funda dois Pokémon com um Splicer de DNA",
|
||||
},
|
||||
"MINI_BLACK_HOLE": {
|
||||
name: "Buraco Sem Fundo",
|
||||
description: "Adquira um Mini Buraco Negro",
|
||||
},
|
||||
"CATCH_MYTHICAL": {
|
||||
name: "Mítico",
|
||||
description: "Capture um Pokémon Mítico",
|
||||
},
|
||||
"CATCH_SUB_LEGENDARY": {
|
||||
name: "Quase Lendário",
|
||||
description: "Capture um Pokémon Sub-Lendário",
|
||||
},
|
||||
"CATCH_LEGENDARY": {
|
||||
name: "Lendário",
|
||||
description: "Capture um Pokémon Lendário",
|
||||
},
|
||||
"SEE_SHINY": {
|
||||
name: "Ué, Tá Brilhando?",
|
||||
description: "Encontre um Pokémon Shiny selvagem",
|
||||
},
|
||||
"SHINY_PARTY": {
|
||||
name: "Tá Todo Mundo Brilhando!",
|
||||
description: "Tenha uma equipe formada somente por Pokémon Shiny",
|
||||
},
|
||||
"HATCH_MYTHICAL": {
|
||||
name: "Ovo Mítico",
|
||||
description: "Choque um Pokémon Mítico",
|
||||
},
|
||||
"HATCH_SUB_LEGENDARY": {
|
||||
name: "Ovo Sub-Lendário",
|
||||
description: "Choque um Pokémon Sub-Lendário",
|
||||
},
|
||||
"HATCH_LEGENDARY": {
|
||||
name: "Ovo Lendário",
|
||||
description: "Choque um Pokémon Lendário",
|
||||
},
|
||||
"HATCH_SHINY": {
|
||||
name: "Ovo Shiny",
|
||||
description: "Choque um Pokémon Shiny",
|
||||
},
|
||||
"HIDDEN_ABILITY": {
|
||||
name: "Potencial Oculto",
|
||||
description: "Capture um Pokémon com uma Habilidade Oculta",
|
||||
},
|
||||
"PERFECT_IVS": {
|
||||
name: "Perfeição Certificada",
|
||||
description: "Obtenha IVs perfeitos em um Pokémon",
|
||||
},
|
||||
"CLASSIC_VICTORY": {
|
||||
name: "Invencível",
|
||||
description: "Vença o jogo no modo clássico",
|
||||
},
|
||||
} as const;
|
@ -52,5 +52,5 @@ export const battle: SimpleTranslationEntries = {
|
||||
"notDisabled": "O movimento {{moveName}}\nnão está mais desabilitado!",
|
||||
"skipItemQuestion": "Tem certeza de que não quer escolher um item?",
|
||||
"eggHatching": "Opa?",
|
||||
"ivScannerUseQuestion": "Quer usar o Scanner de IVs em {{pokemonName}}?"
|
||||
"ivScannerUseQuestion": "Quer usar o Scanner de IVs em {{pokemonName}}?",
|
||||
} as const;
|
@ -1,6 +1,8 @@
|
||||
import { ability } from "./ability";
|
||||
import { abilityTriggers } from "./ability-trigger";
|
||||
import { achv } from "./achv";
|
||||
import { battle } from "./battle";
|
||||
import { berry } from "./berry";
|
||||
import { commandUiHandler } from "./command-ui-handler";
|
||||
import { egg } from "./egg";
|
||||
import { fightUiHandler } from "./fight-ui-handler";
|
||||
@ -17,34 +19,34 @@ import { splashMessages } from "./splash-messages";
|
||||
import { starterSelectUiHandler } from "./starter-select-ui-handler";
|
||||
import { titles, trainerClasses, trainerNames } from "./trainers";
|
||||
import { tutorial } from "./tutorial";
|
||||
import { weather } from "./weather";
|
||||
import { berry } from "./berry";
|
||||
import { voucher } from "./voucher";
|
||||
import { weather } from "./weather";
|
||||
|
||||
|
||||
export const ptBrConfig = {
|
||||
ability: ability,
|
||||
abilityTriggers: abilityTriggers,
|
||||
achv: achv,
|
||||
battle: battle,
|
||||
berry: berry,
|
||||
commandUiHandler: commandUiHandler,
|
||||
egg: egg,
|
||||
fightUiHandler: fightUiHandler,
|
||||
menuUiHandler: menuUiHandler,
|
||||
growth: growth,
|
||||
menu: menu,
|
||||
menuUiHandler: menuUiHandler,
|
||||
modifierType: modifierType,
|
||||
move: move,
|
||||
nature: nature,
|
||||
pokeball: pokeball,
|
||||
pokemonInfo: pokemonInfo,
|
||||
pokemon: pokemon,
|
||||
pokemonInfo: pokemonInfo,
|
||||
splashMessages: splashMessages,
|
||||
starterSelectUiHandler: starterSelectUiHandler,
|
||||
titles: titles,
|
||||
trainerClasses: trainerClasses,
|
||||
trainerNames: trainerNames,
|
||||
tutorial: tutorial,
|
||||
splashMessages: splashMessages,
|
||||
nature: nature,
|
||||
growth: growth,
|
||||
weather: weather,
|
||||
modifierType: modifierType,
|
||||
berry: berry,
|
||||
voucher: voucher,
|
||||
weather: weather,
|
||||
}
|
||||
|
@ -17,5 +17,5 @@ export const egg: SimpleTranslationEntries = {
|
||||
"notEnoughVouchers": "Você não tem vouchers suficientes!",
|
||||
"tooManyEggs": "Você já tem muitos ovos!",
|
||||
"pull": "Prêmio",
|
||||
"pulls": "Prêmios"
|
||||
"pulls": "Prêmios",
|
||||
} as const;
|
@ -6,5 +6,5 @@ export const growth: SimpleTranslationEntries = {
|
||||
"Medium_Fast": "Meio Rápido",
|
||||
"Medium_Slow": "Meio Lento",
|
||||
"Slow": "Lento",
|
||||
"Fluctuating": "Flutuante"
|
||||
"Fluctuating": "Flutuante",
|
||||
} as const;
|
@ -19,5 +19,5 @@ export const menuUiHandler: SimpleTranslationEntries = {
|
||||
"importData": "Importar dados",
|
||||
"exportData": "Exportar dados",
|
||||
"cancel": "Cancelar",
|
||||
"losingProgressionWarning": "Você vai perder todo o progresso desde o início da batalha. Confirmar?"
|
||||
"losingProgressionWarning": "Você vai perder todo o progresso desde o início da batalha. Confirmar?",
|
||||
} as const;
|
@ -110,7 +110,7 @@ export const modifierType: ModifierTypeTranslationEntries = {
|
||||
},
|
||||
"TerastallizeModifierType": {
|
||||
name: "{{teraType}} Fragmento Tera",
|
||||
description: "{{teraType}} Terastaliza um Pokémon por até 10 batalhas",
|
||||
description: "{{teraType}} Terastalize um Pokémon por até 10 batalhas",
|
||||
},
|
||||
"ContactHeldItemTransferChanceModifierType": {
|
||||
description: "Quando atacar, tem {{chancePercent}}% de chance de roubar um item do oponente",
|
||||
|
@ -3808,5 +3808,5 @@ export const move: MoveTranslationEntries = {
|
||||
"malignantChain": {
|
||||
name: "Malignant Chain",
|
||||
effect: "O usuário derrama toxinas no alvo envolvendo-o em uma corrente tóxica e corrosiva. Isso também pode deixar o alvo seriamente envenenado."
|
||||
}
|
||||
},
|
||||
} as const;
|
@ -13,7 +13,7 @@ export const pokemonInfo: PokemonInfoTranslationEntries = {
|
||||
"SPDEF": "Def. Esp.",
|
||||
"SPDEFshortened": "DefEsp",
|
||||
"SPD": "Veloc.",
|
||||
"SPDshortened": "Veloc."
|
||||
"SPDshortened": "Veloc.",
|
||||
},
|
||||
|
||||
Type: {
|
||||
@ -36,6 +36,6 @@ export const pokemonInfo: PokemonInfoTranslationEntries = {
|
||||
"DRAGON": "Dragão",
|
||||
"DARK": "Sombrio",
|
||||
"FAIRY": "Fada",
|
||||
"STELLAR": "Estelar"
|
||||
"STELLAR": "Estelar",
|
||||
},
|
||||
} as const;
|
@ -40,5 +40,5 @@ export const starterSelectUiHandler: SimpleTranslationEntries = {
|
||||
"disablePassive": "Desativar Passiva",
|
||||
"locked": "Bloqueada",
|
||||
"disabled": "Desativada",
|
||||
"uncaught": "Não capturado"
|
||||
"uncaught": "Não capturado",
|
||||
}
|
||||
|
@ -2,10 +2,10 @@ import { SimpleTranslationEntries } from "#app/plugins/i18n";
|
||||
|
||||
export const voucher: SimpleTranslationEntries = {
|
||||
"vouchers": "Vouchers",
|
||||
"eggVoucher": "Egg Voucher",
|
||||
"eggVoucherPlus": "Egg Voucher Plus",
|
||||
"eggVoucherPremium": "Egg Voucher Premium",
|
||||
"eggVoucherGold": "Egg Voucher Gold",
|
||||
"locked": "Locked",
|
||||
"defeatTrainer": "Defeat {{trainerName}}"
|
||||
"eggVoucher": "Voucher de Ovo",
|
||||
"eggVoucherPlus": "Voucher de Ovo Plus",
|
||||
"eggVoucherPremium": "Voucher de Ovo Premium",
|
||||
"eggVoucherGold": "Voucher de Ovo Dourado",
|
||||
"locked": "Bloqueado",
|
||||
"defeatTrainer": "Derrote {{trainerName}}",
|
||||
} as const;
|
@ -51,13 +51,22 @@ export interface PokemonInfoTranslationEntries {
|
||||
|
||||
export interface BerryTranslationEntry {
|
||||
name: string,
|
||||
effect: string
|
||||
effect: string,
|
||||
}
|
||||
|
||||
export interface BerryTranslationEntries {
|
||||
[key: string]: BerryTranslationEntry
|
||||
}
|
||||
|
||||
export interface AchievementTranslationEntry {
|
||||
name?: string,
|
||||
description?: string,
|
||||
}
|
||||
|
||||
export interface AchievementTranslationEntries {
|
||||
[key: string]: AchievementTranslationEntry
|
||||
}
|
||||
|
||||
export interface Localizable {
|
||||
localize(): void;
|
||||
}
|
||||
@ -153,7 +162,8 @@ declare module 'i18next' {
|
||||
modifierType: ModifierTypeTranslationEntries;
|
||||
battleMessageUiHandler: SimpleTranslationEntries;
|
||||
berry: BerryTranslationEntries;
|
||||
voucher: SimpleTranslationEntries;
|
||||
voucher: SimpleTranslationEntries;
|
||||
achv: AchievementTranslationEntries;
|
||||
};
|
||||
}
|
||||
}
|
||||
|
@ -1,7 +1,8 @@
|
||||
import { Modifier } from "typescript";
|
||||
import BattleScene from "../battle-scene";
|
||||
import * as Utils from "../utils";
|
||||
import { TurnHeldItemTransferModifier } from "../modifier/modifier";
|
||||
import i18next from '../plugins/i18n';
|
||||
import * as Utils from "../utils";
|
||||
|
||||
export enum AchvTier {
|
||||
COMMON,
|
||||
@ -67,7 +68,7 @@ export class MoneyAchv extends Achv {
|
||||
private moneyAmount: integer;
|
||||
|
||||
constructor(name: string, moneyAmount: integer, iconImage: string, score: integer) {
|
||||
super(name, `Accumulate a total of ₽${moneyAmount.toLocaleString('en-US')}`, iconImage, score, (scene: BattleScene, _args: any[]) => scene.money >= this.moneyAmount);
|
||||
super(name, i18next.t("achv:MoneyAchv.description", {"moneyAmount": moneyAmount.toLocaleString('en-US')}), iconImage, score, (scene: BattleScene, _args: any[]) => scene.money >= this.moneyAmount);
|
||||
|
||||
this.moneyAmount = moneyAmount;
|
||||
}
|
||||
@ -77,7 +78,7 @@ export class RibbonAchv extends Achv {
|
||||
private ribbonAmount: integer;
|
||||
|
||||
constructor(name: string, ribbonAmount: integer, iconImage: string, score: integer) {
|
||||
super(name, `Accumulate a total of ${ribbonAmount.toLocaleString('en-US')} Ribbons`, iconImage, score, (scene: BattleScene, _args: any[]) => scene.gameData.gameStats.ribbonsOwned >= this.ribbonAmount);
|
||||
super(name, i18next.t("achv:RibbonAchv.description", {"ribbonAmount": ribbonAmount.toLocaleString('en-US')}), iconImage, score, (scene: BattleScene, _args: any[]) => scene.gameData.gameStats.ribbonsOwned >= this.ribbonAmount);
|
||||
|
||||
this.ribbonAmount = ribbonAmount;
|
||||
}
|
||||
@ -87,7 +88,7 @@ export class DamageAchv extends Achv {
|
||||
private damageAmount: integer;
|
||||
|
||||
constructor(name: string, damageAmount: integer, iconImage: string, score: integer) {
|
||||
super(name, `Inflict ${damageAmount.toLocaleString('en-US')} damage in one hit`, iconImage, score, (_scene: BattleScene, args: any[]) => (args[0] as Utils.NumberHolder).value >= this.damageAmount);
|
||||
super(name, i18next.t("achv:DamageAchv.description", {"damageAmount": damageAmount.toLocaleString('en-US')}), iconImage, score, (_scene: BattleScene, args: any[]) => (args[0] as Utils.NumberHolder).value >= this.damageAmount);
|
||||
|
||||
this.damageAmount = damageAmount;
|
||||
}
|
||||
@ -97,7 +98,7 @@ export class HealAchv extends Achv {
|
||||
private healAmount: integer;
|
||||
|
||||
constructor(name: string, healAmount: integer, iconImage: string, score: integer) {
|
||||
super(name, `Heal ${healAmount.toLocaleString('en-US')} HP at once with a move, ability, or held item`, iconImage, score, (_scene: BattleScene, args: any[]) => (args[0] as Utils.NumberHolder).value >= this.healAmount);
|
||||
super(name, i18next.t("achv:HealAchv.description", {"healAmount": healAmount.toLocaleString('en-US')}), iconImage, score, (_scene: BattleScene, args: any[]) => (args[0] as Utils.NumberHolder).value >= this.healAmount);
|
||||
|
||||
this.healAmount = healAmount;
|
||||
}
|
||||
@ -107,7 +108,7 @@ export class LevelAchv extends Achv {
|
||||
private level: integer;
|
||||
|
||||
constructor(name: string, level: integer, iconImage: string, score: integer) {
|
||||
super(name, `Level up a Pokémon to Lv${level}`, iconImage, score, (scene: BattleScene, args: any[]) => (args[0] as Utils.IntegerHolder).value >= this.level);
|
||||
super(name, i18next.t("achv:LevelAchv.description", {"level": level}), iconImage, score, (scene: BattleScene, args: any[]) => (args[0] as Utils.IntegerHolder).value >= this.level);
|
||||
|
||||
this.level = level;
|
||||
}
|
||||
@ -120,46 +121,46 @@ export class ModifierAchv extends Achv {
|
||||
}
|
||||
|
||||
export const achvs = {
|
||||
_10K_MONEY: new MoneyAchv('Money Haver', 10000, 'nugget', 10),
|
||||
_100K_MONEY: new MoneyAchv('Rich', 100000, 'big_nugget', 25).setSecret(true),
|
||||
_1M_MONEY: new MoneyAchv('Millionaire', 1000000, 'relic_gold', 50).setSecret(true),
|
||||
_10M_MONEY: new MoneyAchv('One Percenter', 10000000, 'coin_case', 100).setSecret(true),
|
||||
_250_DMG: new DamageAchv('Hard Hitter', 250, 'lucky_punch', 10),
|
||||
_1000_DMG: new DamageAchv('Harder Hitter', 1000, 'lucky_punch_great', 25).setSecret(true),
|
||||
_2500_DMG: new DamageAchv('That\'s a Lotta Damage!', 2500, 'lucky_punch_ultra', 50).setSecret(true),
|
||||
_10000_DMG: new DamageAchv('One Punch Man', 10000, 'lucky_punch_master', 100).setSecret(true),
|
||||
_250_HEAL: new HealAchv('Novice Healer', 250, 'potion', 10),
|
||||
_1000_HEAL: new HealAchv('Big Healer', 1000, 'super_potion', 25).setSecret(true),
|
||||
_2500_HEAL: new HealAchv('Cleric', 2500, 'hyper_potion', 50).setSecret(true),
|
||||
_10000_HEAL: new HealAchv('Recovery Master', 10000, 'max_potion', 100).setSecret(true),
|
||||
LV_100: new LevelAchv('But Wait, There\'s More!', 100, 'rare_candy', 25).setSecret(),
|
||||
LV_250: new LevelAchv('Elite', 250, 'rarer_candy', 50).setSecret(true),
|
||||
LV_1000: new LevelAchv('To Go Even Further Beyond', 1000, 'candy_jar', 100).setSecret(true),
|
||||
_10_RIBBONS: new RibbonAchv('Pokémon League Champion', 10, 'bronze_ribbon', 10),
|
||||
_25_RIBBONS: new RibbonAchv('Great League Champion', 25, 'great_ribbon', 25).setSecret(true),
|
||||
_50_RIBBONS: new RibbonAchv('Ultra League Champion', 50, 'ultra_ribbon', 50).setSecret(true),
|
||||
_75_RIBBONS: new RibbonAchv('Rogue League Champion', 75, 'rogue_ribbon', 75).setSecret(true),
|
||||
_100_RIBBONS: new RibbonAchv('Master League Champion', 100, 'master_ribbon', 100).setSecret(true),
|
||||
TRANSFER_MAX_BATTLE_STAT: new Achv('Teamwork', 'Baton pass to another party member with at least one stat maxed out', 'stick', 20),
|
||||
MAX_FRIENDSHIP: new Achv('Friendmaxxing', 'Reach max friendship on a Pokémon', 'soothe_bell', 25),
|
||||
MEGA_EVOLVE: new Achv('Megamorph', 'Mega evolve a Pokémon', 'mega_bracelet', 50),
|
||||
GIGANTAMAX: new Achv('Absolute Unit', 'Gigantamax a Pokémon', 'dynamax_band', 50),
|
||||
TERASTALLIZE: new Achv('STAB Enthusiast', 'Terastallize a Pokémon', 'tera_orb', 25),
|
||||
STELLAR_TERASTALLIZE: new Achv('The Hidden Type', 'Stellar Terastallize a Pokémon', 'stellar_tera_shard', 25).setSecret(true),
|
||||
SPLICE: new Achv('Infinite Fusion', 'Splice two Pokémon together with DNA Splicers', 'dna_splicers', 10),
|
||||
MINI_BLACK_HOLE: new ModifierAchv('A Hole Lot of Items', 'Acquire a Mini Black Hole', 'mini_black_hole', 25, modifier => modifier instanceof TurnHeldItemTransferModifier).setSecret(),
|
||||
CATCH_MYTHICAL: new Achv('Mythical', 'Catch a mythical Pokémon', 'strange_ball', 50).setSecret(),
|
||||
CATCH_SUB_LEGENDARY: new Achv('(Sub-)Legendary', 'Catch a sub-legendary Pokémon', 'rb', 75).setSecret(),
|
||||
CATCH_LEGENDARY: new Achv('Legendary', 'Catch a legendary Pokémon', 'mb', 100).setSecret(),
|
||||
SEE_SHINY: new Achv('Shiny', 'Find a shiny Pokémon in the wild', 'pb_gold', 75),
|
||||
SHINY_PARTY: new Achv('That\'s Dedication', 'Have a full party of shiny Pokémon', 'shiny_charm', 100).setSecret(true),
|
||||
HATCH_MYTHICAL: new Achv('Mythical Egg', 'Hatch a mythical Pokémon from an egg', 'pair_of_tickets', 75).setSecret(),
|
||||
HATCH_SUB_LEGENDARY: new Achv('Sub-Legendary Egg', 'Hatch a sub-legendary Pokémon from an egg', 'mystic_ticket', 100).setSecret(),
|
||||
HATCH_LEGENDARY: new Achv('Legendary Egg', 'Hatch a legendary Pokémon from an egg', 'mystic_ticket', 125).setSecret(),
|
||||
HATCH_SHINY: new Achv('Shiny Egg', 'Hatch a shiny Pokémon from an egg', 'golden_mystic_ticket', 100).setSecret(),
|
||||
HIDDEN_ABILITY: new Achv('Hidden Potential', 'Catch a Pokémon with a hidden ability', 'ability_charm', 75),
|
||||
PERFECT_IVS: new Achv('Certificate of Authenticity', 'Get perfect IVs on a Pokémon', 'blunder_policy', 100),
|
||||
CLASSIC_VICTORY: new Achv('Undefeated', 'Beat the game in classic mode', 'relic_crown', 150)
|
||||
_10K_MONEY: new MoneyAchv(i18next.t("achv:10K_MONEY.name"), 10000, 'nugget', 10),
|
||||
_100K_MONEY: new MoneyAchv(i18next.t("achv:100K_MONEY.name"), 100000, 'big_nugget', 25).setSecret(true),
|
||||
_1M_MONEY: new MoneyAchv(i18next.t("achv:1M_MONEY.name"), 1000000, 'relic_gold', 50).setSecret(true),
|
||||
_10M_MONEY: new MoneyAchv(i18next.t("achv:10M_MONEY.name"), 10000000, 'coin_case', 100).setSecret(true),
|
||||
_250_DMG: new DamageAchv(i18next.t("achv:250_DMG.name"), 250, 'lucky_punch', 10),
|
||||
_1000_DMG: new DamageAchv(i18next.t("achv:1000_DMG.name"), 1000, 'lucky_punch_great', 25).setSecret(true),
|
||||
_2500_DMG: new DamageAchv(i18next.t("achv:2500_DMG.name"), 2500, 'lucky_punch_ultra', 50).setSecret(true),
|
||||
_10000_DMG: new DamageAchv(i18next.t("achv:10000_DMG.name"), 10000, 'lucky_punch_master', 100).setSecret(true),
|
||||
_250_HEAL: new HealAchv(i18next.t("achv:250_HEAL.name"), 250, 'potion', 10),
|
||||
_1000_HEAL: new HealAchv(i18next.t("achv:1000_HEAL.name"), 1000, 'super_potion', 25).setSecret(true),
|
||||
_2500_HEAL: new HealAchv(i18next.t("achv:2500_HEAL.name"), 2500, 'hyper_potion', 50).setSecret(true),
|
||||
_10000_HEAL: new HealAchv(i18next.t("achv:10000_HEAL.name"), 10000, 'max_potion', 100).setSecret(true),
|
||||
LV_100: new LevelAchv(i18next.t("achv:LV_100.name"), 100, 'rare_candy', 25).setSecret(),
|
||||
LV_250: new LevelAchv(i18next.t("achv:LV_250.name"), 250, 'rarer_candy', 50).setSecret(true),
|
||||
LV_1000: new LevelAchv(i18next.t("achv:LV_1000.name"), 1000, 'candy_jar', 100).setSecret(true),
|
||||
_10_RIBBONS: new RibbonAchv(i18next.t("achv:10_RIBBONS.name"), 10, 'bronze_ribbon', 10),
|
||||
_25_RIBBONS: new RibbonAchv(i18next.t("achv:25_RIBBONS.name"), 25, 'great_ribbon', 25).setSecret(true),
|
||||
_50_RIBBONS: new RibbonAchv(i18next.t("achv:50_RIBBONS.name"), 50, 'ultra_ribbon', 50).setSecret(true),
|
||||
_75_RIBBONS: new RibbonAchv(i18next.t("achv:75_RIBBONS.name"), 75, 'rogue_ribbon', 75).setSecret(true),
|
||||
_100_RIBBONS: new RibbonAchv(i18next.t("achv:100_RIBBONS.name"), 100, 'master_ribbon', 100).setSecret(true),
|
||||
TRANSFER_MAX_BATTLE_STAT: new Achv(i18next.t("achv:TRANSFER_MAX_BATTLE_STAT.name"), i18next.t("achv:TRANSFER_MAX_BATTLE_STAT.description"), 'stick', 20),
|
||||
MAX_FRIENDSHIP: new Achv(i18next.t("achv:MAX_FRIENDSHIP.name"), i18next.t("achv:MAX_FRIENDSHIP.description"), 'soothe_bell', 25),
|
||||
MEGA_EVOLVE: new Achv(i18next.t("achv:MEGA_EVOLVE.name"), i18next.t("achv:MEGA_EVOLVE.description"), 'mega_bracelet', 50),
|
||||
GIGANTAMAX: new Achv(i18next.t("achv:GIGANTAMAX.name"), i18next.t("achv:GIGANTAMAX.description"), 'dynamax_band', 50),
|
||||
TERASTALLIZE: new Achv(i18next.t("achv:TERASTALLIZE.name"), i18next.t("achv:TERASTALLIZE.description"), 'tera_orb', 25),
|
||||
STELLAR_TERASTALLIZE: new Achv(i18next.t("achv:STELLAR_TERASTALLIZE.name"), i18next.t("achv:STELLAR_TERASTALLIZE.description"), 'stellar_tera_shard', 25).setSecret(true),
|
||||
SPLICE: new Achv(i18next.t("achv:SPLICE.name"), i18next.t("achv:SPLICE.description"), 'dna_splicers', 10),
|
||||
MINI_BLACK_HOLE: new ModifierAchv(i18next.t("achv:MINI_BLACK_HOLE.name"), i18next.t("achv:MINI_BLACK_HOLE.description"), 'mini_black_hole', 25, modifier => modifier instanceof TurnHeldItemTransferModifier).setSecret(),
|
||||
CATCH_MYTHICAL: new Achv(i18next.t("achv:CATCH_MYTHICAL.name"), i18next.t("achv:CATCH_MYTHICAL.description"), 'strange_ball', 50).setSecret(),
|
||||
CATCH_SUB_LEGENDARY: new Achv(i18next.t("achv:CATCH_SUB_LEGENDARY.name"), i18next.t("achv:CATCH_SUB_LEGENDARY.description"), 'rb', 75).setSecret(),
|
||||
CATCH_LEGENDARY: new Achv(i18next.t("achv:CATCH_LEGENDARY.name"), i18next.t("achv:CATCH_LEGENDARY.description"), 'mb', 100).setSecret(),
|
||||
SEE_SHINY: new Achv(i18next.t("achv:SEE_SHINY.name"), i18next.t("achv:SEE_SHINY.description"), 'pb_gold', 75),
|
||||
SHINY_PARTY: new Achv(i18next.t("achv:SHINY_PARTY.name"), i18next.t("achv:SHINY_PARTY.description"), 'shiny_charm', 100).setSecret(true),
|
||||
HATCH_MYTHICAL: new Achv(i18next.t("achv:HATCH_MYTHICAL.name"), i18next.t("achv:HATCH_MYTHICAL.description"), 'pair_of_tickets', 75).setSecret(),
|
||||
HATCH_SUB_LEGENDARY: new Achv(i18next.t("achv:HATCH_SUB_LEGENDARY.name"), i18next.t("achv:HATCH_SUB_LEGENDARY.description"), 'mystic_ticket', 100).setSecret(),
|
||||
HATCH_LEGENDARY: new Achv(i18next.t("achv:HATCH_LEGENDARY.name"), i18next.t("achv:HATCH_LEGENDARY.description"), 'mystic_ticket', 125).setSecret(),
|
||||
HATCH_SHINY: new Achv(i18next.t("achv:HATCH_SHINY.name"), i18next.t("achv:HATCH_SHINY.description"), 'golden_mystic_ticket', 100).setSecret(),
|
||||
HIDDEN_ABILITY: new Achv(i18next.t("achv:HIDDEN_ABILITY.name"), i18next.t("achv:HIDDEN_ABILITY.description"), 'ability_charm', 75),
|
||||
PERFECT_IVS: new Achv(i18next.t("achv:PERFECT_IVS.name"), i18next.t("achv:PERFECT_IVS.description"), 'blunder_policy', 100),
|
||||
CLASSIC_VICTORY: new Achv(i18next.t("achv:CLASSIC_VICTORY.name"), i18next.t("achv:CLASSIC_VICTORY.description"), 'relic_crown', 150),
|
||||
};
|
||||
|
||||
{
|
||||
|
@ -1,10 +1,11 @@
|
||||
import BattleScene from "../battle-scene";
|
||||
import { Button } from "../enums/buttons";
|
||||
import i18next from "../plugins/i18n";
|
||||
import { Achv, achvs } from "../system/achv";
|
||||
import MessageUiHandler from "./message-ui-handler";
|
||||
import { TextStyle, addTextObject } from "./text";
|
||||
import { Mode } from "./ui";
|
||||
import { addWindow } from "./ui-theme";
|
||||
import {Button} from "../enums/buttons";
|
||||
|
||||
export default class AchvsUiHandler extends MessageUiHandler {
|
||||
private achvsContainer: Phaser.GameObjects.Container;
|
||||
@ -32,7 +33,7 @@ export default class AchvsUiHandler extends MessageUiHandler {
|
||||
const headerBg = addWindow(this.scene, 0, 0, (this.scene.game.canvas.width / 6) - 2, 24);
|
||||
headerBg.setOrigin(0, 0);
|
||||
|
||||
const headerText = addTextObject(this.scene, 0, 0, 'Achievements', TextStyle.SETTINGS_LABEL);
|
||||
const headerText = addTextObject(this.scene, 0, 0, i18next.t("achv:Achv.name"), TextStyle.SETTINGS_LABEL);
|
||||
headerText.setOrigin(0, 0);
|
||||
headerText.setPositionRelative(headerBg, 8, 4);
|
||||
|
||||
@ -142,7 +143,7 @@ export default class AchvsUiHandler extends MessageUiHandler {
|
||||
this.titleText.setText(unlocked ? achv.name : '???');
|
||||
this.showText(!hidden ? achv.description : '');
|
||||
this.scoreText.setText(`${achv.score}pt`);
|
||||
this.unlockText.setText(unlocked ? new Date(achvUnlocks[achv.id]).toLocaleDateString() : 'Locked');
|
||||
this.unlockText.setText(unlocked ? new Date(achvUnlocks[achv.id]).toLocaleDateString() : i18next.t('achv:Locked.name'));
|
||||
}
|
||||
|
||||
processInput(button: Button): boolean {
|
||||
|
@ -62,24 +62,24 @@ const languageSettings: { [key: string]: LanguageSetting } = {
|
||||
starterInfoTextSize: '56px',
|
||||
instructionTextSize: '35px',
|
||||
},
|
||||
"fr":{
|
||||
starterInfoTextSize: '54px',
|
||||
instructionTextSize: '42px',
|
||||
},
|
||||
"it":{
|
||||
starterInfoTextSize: '56px',
|
||||
instructionTextSize: '38px',
|
||||
},
|
||||
"fr":{
|
||||
starterInfoTextSize: '54px',
|
||||
instructionTextSize: '42px',
|
||||
"pt_BR":{
|
||||
starterInfoTextSize: '47px',
|
||||
instructionTextSize: '38px',
|
||||
starterInfoXPos: 33,
|
||||
},
|
||||
"zh_CN":{
|
||||
starterInfoTextSize: '40px',
|
||||
instructionTextSize: '42px',
|
||||
starterInfoYOffset: 2
|
||||
},
|
||||
"pt_BR":{
|
||||
starterInfoTextSize: '47px',
|
||||
instructionTextSize: '38px',
|
||||
starterInfoXPos: 32,
|
||||
},
|
||||
}
|
||||
|
||||
const starterCandyCosts: { passive: integer, costReduction: [integer, integer] }[] = [
|
||||
|
@ -1,10 +1,10 @@
|
||||
import i18next from "i18next";
|
||||
import BBCodeText from "phaser3-rex-plugins/plugins/gameobjects/tagtext/bbcodetext/BBCodeText";
|
||||
import InputText from "phaser3-rex-plugins/plugins/inputtext";
|
||||
import { ModifierTier } from "../modifier/modifier-tier";
|
||||
import { EggTier } from "../data/enums/egg-type";
|
||||
import BattleScene from "../battle-scene";
|
||||
import { EggTier } from "../data/enums/egg-type";
|
||||
import { UiTheme } from "../enums/ui-theme";
|
||||
import i18next from "i18next";
|
||||
import { ModifierTier } from "../modifier/modifier-tier";
|
||||
|
||||
export enum TextStyle {
|
||||
MESSAGE,
|
||||
@ -42,10 +42,10 @@ const languageSettings: { [key: string]: LanguageSetting } = {
|
||||
"en":{},
|
||||
"de":{},
|
||||
"es":{},
|
||||
"it":{},
|
||||
"fr":{},
|
||||
"zh_CN":{},
|
||||
"it":{},
|
||||
"pt_BR":{},
|
||||
"zh_CN":{},
|
||||
}
|
||||
|
||||
export function addTextObject(scene: Phaser.Scene, x: number, y: number, content: string, style: TextStyle, extraStyleOptions?: Phaser.Types.GameObjects.Text.TextStyle): Phaser.GameObjects.Text {
|
||||
|
Loading…
Reference in New Issue
Block a user