diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml new file mode 100644 index 00000000000..180c7af1240 --- /dev/null +++ b/.github/FUNDING.yml @@ -0,0 +1 @@ +github: patapancakes diff --git a/src/battle-scene.ts b/src/battle-scene.ts index af63f0b0a39..eaf550e7d10 100644 --- a/src/battle-scene.ts +++ b/src/battle-scene.ts @@ -83,6 +83,7 @@ import { SwitchPhase } from "./phases/switch-phase"; import { TitlePhase } from "./phases/title-phase"; import { ToggleDoublePositionPhase } from "./phases/toggle-double-position-phase"; import { TurnInitPhase } from "./phases/turn-init-phase"; +import { ShopCursorTarget } from "./enums/shop-cursor-target"; export const bypassLogin = import.meta.env.VITE_BYPASS_LOGIN === "1"; @@ -127,6 +128,7 @@ export default class BattleScene extends SceneBase { public gameSpeed: integer = 1; public damageNumbersMode: integer = 0; public reroll: boolean = false; + public shopCursorTarget: number = ShopCursorTarget.CHECK_TEAM; public showMovesetFlyout: boolean = true; public showArenaFlyout: boolean = true; public showTimeOfDayWidget: boolean = true; diff --git a/src/data/ability.ts b/src/data/ability.ts index 8a2efb40640..d39f272a22e 100644 --- a/src/data/ability.ts +++ b/src/data/ability.ts @@ -3288,11 +3288,25 @@ export class PostTurnLootAbAttr extends PostTurnAbAttr { } } +/** + * Attribute used for {@linkcode Abilities.MOODY} + */ export class MoodyAbAttr extends PostTurnAbAttr { constructor() { super(true); } - + /** + * Randomly increases one BattleStat by 2 stages and decreases a different BattleStat by 1 stage + * @param {Pokemon} pokemon Pokemon that has this ability + * @param passive N/A + * @param simulated true if applying in a simulated call. + * @param args N/A + * @returns true + * + * Any BattleStats at +6 or -6 are excluded from being increased or decreased, respectively + * If the pokemon already has all BattleStats raised to stage 6, it will only decrease one BattleStat by 1 stage + * If the pokemon already has all BattleStats lowered to stage -6, it will only increase one BattleStat by 2 stages + */ applyPostTurn(pokemon: Pokemon, passive: boolean, simulated: boolean, args: any[]): boolean { const increaseStatArray = EFFECTIVE_STATS.filter(s => pokemon.getStatStage(s) < 6); let decreaseStatArray = EFFECTIVE_STATS.filter(s => pokemon.getStatStage(s) > -6); @@ -3303,7 +3317,7 @@ export class MoodyAbAttr extends PostTurnAbAttr { pokemon.scene.unshiftPhase(new StatStageChangePhase(pokemon.scene, pokemon.getBattlerIndex(), true, [increaseStat], 2)); } if (!simulated && decreaseStatArray.length > 0) { - const decreaseStat = EFFECTIVE_STATS[Utils.randInt(EFFECTIVE_STATS.length)]; + const decreaseStat = decreaseStatArray[Utils.randInt(EFFECTIVE_STATS.length)]; pokemon.scene.unshiftPhase(new StatStageChangePhase(pokemon.scene, pokemon.getBattlerIndex(), true, [decreaseStat], -1)); } return true; @@ -4579,7 +4593,7 @@ export function initAbilities() { .ignorable(), new Ability(Abilities.CLOUD_NINE, 3) .attr(SuppressWeatherEffectAbAttr, true) - .attr(PostSummonUnnamedMessageAbAttr, "The effects of the weather disappeared."), + .attr(PostSummonUnnamedMessageAbAttr, i18next.t("abilityTriggers:weatherEffectDisappeared")), new Ability(Abilities.COMPOUND_EYES, 3) .attr(StatMultiplierAbAttr, Stat.ACC, 1.3), new Ability(Abilities.INSOMNIA, 3) @@ -4774,7 +4788,7 @@ export function initAbilities() { .ignorable(), new Ability(Abilities.AIR_LOCK, 3) .attr(SuppressWeatherEffectAbAttr, true) - .attr(PostSummonUnnamedMessageAbAttr, "The effects of the weather disappeared."), + .attr(PostSummonUnnamedMessageAbAttr, i18next.t("abilityTriggers:weatherEffectDisappeared")), new Ability(Abilities.TANGLED_FEET, 4) .conditionalAttr(pokemon => !!pokemon.getTag(BattlerTagType.CONFUSED), StatMultiplierAbAttr, Stat.EVA, 2) .ignorable(), diff --git a/src/data/pokemon-species.ts b/src/data/pokemon-species.ts index c37451d8791..410da31c086 100644 --- a/src/data/pokemon-species.ts +++ b/src/data/pokemon-species.ts @@ -3317,6 +3317,28 @@ export function getStarterValueFriendshipCap(value: integer): integer { } } +/** +* Method to get the daily list of starters with Pokerus. +* @param scene {@linkcode BattleScene} used as part of RNG +* @returns A list of starters with Pokerus +*/ +export function getPokerusStarters(scene: BattleScene): PokemonSpecies[] { + const pokerusStarters: PokemonSpecies[] = []; + const date = new Date(); + const starterCount = 3; //for easy future adjustment! + date.setUTCHours(0, 0, 0, 0); + scene.executeWithSeedOffset(() => { + while (pokerusStarters.length < starterCount) { + const randomSpeciesId = parseInt(Utils.randSeedItem(Object.keys(speciesStarters)), 10); + const species = getPokemonSpecies(randomSpeciesId); + if (!pokerusStarters.includes(species)) { + pokerusStarters.push(species); + } + } + }, 0, date.getTime().toString()); + return pokerusStarters; +} + export const starterPassiveAbilities = { [Species.BULBASAUR]: Abilities.GRASSY_SURGE, [Species.CHARMANDER]: Abilities.BEAST_BOOST, diff --git a/src/data/trainer-config.ts b/src/data/trainer-config.ts index 2d54a79441d..5f47ce42a62 100644 --- a/src/data/trainer-config.ts +++ b/src/data/trainer-config.ts @@ -1577,11 +1577,11 @@ export const trainerConfigs: TrainerConfigs = { })), [TrainerType.RIVAL]: new TrainerConfig((t = TrainerType.RIVAL)).setName("Finn").setHasGenders("Ivy").setHasCharSprite().setTitle("Rival").setStaticParty().setEncounterBgm(TrainerType.RIVAL).setBattleBgm("battle_rival").setMixedBattleBgm("battle_rival").setPartyTemplates(trainerPartyTemplates.RIVAL) - .setModifierRewardFuncs(() => modifierTypes.SUPER_EXP_CHARM, () => modifierTypes.EXP_SHARE, () => modifierTypes.SHINY_CHARM, () => modifierTypes.ABILITY_CHARM) + .setModifierRewardFuncs(() => modifierTypes.SUPER_EXP_CHARM, () => modifierTypes.EXP_SHARE) .setPartyMemberFunc(0, getRandomPartyMemberFunc([Species.BULBASAUR, Species.CHARMANDER, Species.SQUIRTLE, Species.CHIKORITA, Species.CYNDAQUIL, Species.TOTODILE, Species.TREECKO, Species.TORCHIC, Species.MUDKIP, Species.TURTWIG, Species.CHIMCHAR, Species.PIPLUP, Species.SNIVY, Species.TEPIG, Species.OSHAWOTT, Species.CHESPIN, Species.FENNEKIN, Species.FROAKIE, Species.ROWLET, Species.LITTEN, Species.POPPLIO, Species.GROOKEY, Species.SCORBUNNY, Species.SOBBLE, Species.SPRIGATITO, Species.FUECOCO, Species.QUAXLY], TrainerSlot.TRAINER, true)) .setPartyMemberFunc(1, getRandomPartyMemberFunc([Species.PIDGEY, Species.HOOTHOOT, Species.TAILLOW, Species.STARLY, Species.PIDOVE, Species.FLETCHLING, Species.PIKIPEK, Species.ROOKIDEE, Species.WATTREL], TrainerSlot.TRAINER, true)), [TrainerType.RIVAL_2]: new TrainerConfig(++t).setName("Finn").setHasGenders("Ivy").setHasCharSprite().setTitle("Rival").setStaticParty().setMoneyMultiplier(1.25).setEncounterBgm(TrainerType.RIVAL).setBattleBgm("battle_rival").setMixedBattleBgm("battle_rival").setPartyTemplates(trainerPartyTemplates.RIVAL_2) - .setModifierRewardFuncs(() => modifierTypes.EXP_SHARE, () => modifierTypes.SHINY_CHARM) + .setModifierRewardFuncs(() => modifierTypes.EXP_SHARE) .setPartyMemberFunc(0, getRandomPartyMemberFunc([Species.IVYSAUR, Species.CHARMELEON, Species.WARTORTLE, Species.BAYLEEF, Species.QUILAVA, Species.CROCONAW, Species.GROVYLE, Species.COMBUSKEN, Species.MARSHTOMP, Species.GROTLE, Species.MONFERNO, Species.PRINPLUP, Species.SERVINE, Species.PIGNITE, Species.DEWOTT, Species.QUILLADIN, Species.BRAIXEN, Species.FROGADIER, Species.DARTRIX, Species.TORRACAT, Species.BRIONNE, Species.THWACKEY, Species.RABOOT, Species.DRIZZILE, Species.FLORAGATO, Species.CROCALOR, Species.QUAXWELL], TrainerSlot.TRAINER, true)) .setPartyMemberFunc(1, getRandomPartyMemberFunc([Species.PIDGEOTTO, Species.HOOTHOOT, Species.TAILLOW, Species.STARAVIA, Species.TRANQUILL, Species.FLETCHINDER, Species.TRUMBEAK, Species.CORVISQUIRE, Species.WATTREL], TrainerSlot.TRAINER, true)) .setPartyMemberFunc(2, getSpeciesFilterRandomPartyMemberFunc((species: PokemonSpecies) => !pokemonEvolutions.hasOwnProperty(species.speciesId) && !pokemonPrevolutions.hasOwnProperty(species.speciesId) && species.baseTotal >= 450)), diff --git a/src/enums/shop-cursor-target.ts b/src/enums/shop-cursor-target.ts new file mode 100644 index 00000000000..d2f72fed0d6 --- /dev/null +++ b/src/enums/shop-cursor-target.ts @@ -0,0 +1,13 @@ +/** + * Determines the cursor target when entering the shop phase. + */ +export enum ShopCursorTarget { + /** Cursor points to Reroll */ + REROLL, + /** Cursor points to Items */ + ITEMS, + /** Cursor points to Shop */ + SHOP, + /** Cursor points to Check Team */ + CHECK_TEAM +} diff --git a/src/locales/ca_ES/ability-trigger.ts b/src/locales/ca_ES/ability-trigger.ts index 2bdd17baa56..0b7fe8bd0bc 100644 --- a/src/locales/ca_ES/ability-trigger.ts +++ b/src/locales/ca_ES/ability-trigger.ts @@ -47,6 +47,7 @@ export const abilityTriggers: SimpleTranslationEntries = { "postFaintContactDamage": "{{pokemonNameWithAffix}}'s {{abilityName}}\nhurt its attacker!", "postFaintHpDamage": "{{pokemonNameWithAffix}}'s {{abilityName}}\nhurt its attacker!", "postSummonPressure": "{{pokemonNameWithAffix}} is exerting its Pressure!", + "weatherEffectDisappeared": "The effects of the weather disappeared.", "postSummonMoldBreaker": "{{pokemonNameWithAffix}} breaks the mold!", "postSummonAnticipation": "{{pokemonNameWithAffix}} shuddered!", "postSummonTurboblaze": "{{pokemonNameWithAffix}} is radiating a blazing aura!", diff --git a/src/locales/ca_ES/dialogue.ts b/src/locales/ca_ES/dialogue.ts index 6db337517da..e783ea14006 100644 --- a/src/locales/ca_ES/dialogue.ts +++ b/src/locales/ca_ES/dialogue.ts @@ -2573,8 +2573,7 @@ export const PGMdialogue: DialogueTranslationEntries = { 1: `@c{shock}Wow… You cleaned me out.\nAre you actually a beginner? $@c{smile}Maybe it was a bit of luck but…\nWho knows you might just be able to go all the way. $By the way, the professor asked me to give you these items. They look pretty cool. - $@c{serious_smile_fists}Good luck out there! - $@c{smile}Oh- and I hope you enjoy the event!` + $@c{serious_smile_fists}Good luck out there!` }, }, "rival_female": { @@ -2588,8 +2587,7 @@ export const PGMdialogue: DialogueTranslationEntries = { 1: `@c{shock}You just started and you're already this strong?!@d{96}\n@c{angry}You totally cheated, didn't you? $@c{smile_wave_wink}Just kidding!@d{64} @c{smile_eclosed}I lost fair and square… I have a feeling you're going to do really well out there. $@c{smile}By the way, the professor wanted me to give you some items. Hopefully they're helpful! - $@c{smile_wave}Do your best like always! I believe in you! - $@c{smile}Oh- and I hope you enjoy the event!` + $@c{smile_wave}Do your best like always! I believe in you!` }, }, "rival_2": { @@ -2605,7 +2603,7 @@ export const PGMdialogue: DialogueTranslationEntries = { $@c{smile}That's alright, though. I figured this might happen.\n@c{serious_mopen_fists}It just means I need to try harder for next time!\n $@c{smile}Oh, not that you really need the help, but I had an extra one of these lying around and figured you might want it.\n $@c{serious_smile_fists}Don't expect another one after this, though!\nI can't keep giving my opponent an advantage after all. - $@c{smile}Anyway, take care, and enjoy the event!` + $@c{smile}Anyway, take care!` }, }, "rival_2_female": { @@ -2621,7 +2619,7 @@ export const PGMdialogue: DialogueTranslationEntries = { $@c{smile}Aw well. That just means I'll have to train even harder for next time! $@c{smile_wave}I also got you another one of these!\n@c{smile_wave_wink}No need to thank me~. $@c{angry_mopen}This is the last one, though! You won't be getting anymore freebies from me after this! - $@c{smile_wave}Keep at it, and enjoy the event!` + $@c{smile_wave}Keep at it!` }, "defeat": { 1: "It's OK to lose sometimes…" diff --git a/src/locales/ca_ES/settings.ts b/src/locales/ca_ES/settings.ts index 491bfa4a481..9c0b3f36365 100644 --- a/src/locales/ca_ES/settings.ts +++ b/src/locales/ca_ES/settings.ts @@ -96,5 +96,10 @@ export const settings: SimpleTranslationEntries = { "controller": "Controller", "gamepadSupport": "Gamepad Support", "showBgmBar": "Show Music Names", - "shopOverlayOpacity": "Shop Overlay Opacity" + "shopOverlayOpacity": "Shop Overlay Opacity", + "shopCursorTarget": "Shop Cursor Target", + "items": "Items", + "reroll": "Reroll", + "shop": "Shop", + "checkTeam": "Check Team" } as const; diff --git a/src/locales/de/ability-trigger.ts b/src/locales/de/ability-trigger.ts index 72023a842b3..9e4ef9df6ed 100644 --- a/src/locales/de/ability-trigger.ts +++ b/src/locales/de/ability-trigger.ts @@ -46,6 +46,7 @@ export const abilityTriggers: SimpleTranslationEntries = { "postFaintContactDamage": "{{abilityName}} von {{pokemonNameWithAffix}} schadet seinem Angreifer!", "postFaintHpDamage": "{{abilityName}} von {{pokemonNameWithAffix}} schadet seinem Angreifer!", "postSummonPressure": "{{pokemonNameWithAffix}} setzt Gegner mit Erzwinger unter Druck!", + "weatherEffectDisappeared": "Jegliche wetterbedingten Effekte wurden aufgehoben!", "postSummonMoldBreaker": "{{pokemonNameWithAffix}} gelingt es, gegnerische Fähigkeiten zu überbrücken!", "postSummonAnticipation": "{{pokemonNameWithAffix}} erschaudert!", "postSummonTurboblaze": "{{pokemonNameWithAffix}} strahlt eine lodernde Aura aus!", diff --git a/src/locales/de/dialogue.ts b/src/locales/de/dialogue.ts index 4c964db6dc3..a84060143fc 100644 --- a/src/locales/de/dialogue.ts +++ b/src/locales/de/dialogue.ts @@ -2641,8 +2641,7 @@ export const PGMdialogue: DialogueTranslationEntries = { $@c{smile}Vielleicht war es einfach etwas Glück, aber…\nWer weiß, vielleicht schaffst du es irgendwann $ja wirklich ganz groß raus zu kommen. $Übrigens, der Professor hat mich gebeten dir diese Items zu geben. Die sehen wirklich cool aus. - $@c{serious_smile_fists}Viel Glück da draußen! - $@c{smile}Oh-und genieße das Event!` + $@c{serious_smile_fists}Viel Glück da draußen!` }, }, "rival_female": { @@ -2657,8 +2656,7 @@ export const PGMdialogue: DialogueTranslationEntries = { 1: `@c{shock}Du hast gerade erst angefangen und bist schon so stark?!@d{96} @c{angry}Du hast sowas von betrogen, oder? $@c{smile_wave_wink}Ich mach nur Spaß!@d{64} @c{smile_eclosed}Ich habe ehrlich verloren… Ich habe das Gefühl, dass du es dort draußen weit bringen wirst. $@c{smile}Übrigens, der Professor hat mich gebeten dir diese Items zu geben. Ich hoffe sie sind hilfreich! - $@c{smile_wave}Gib wie immer dein Bestes! Ich glaube an dich! - $@c{smile}Oh-und genieße das Event!` + $@c{smile_wave}Gib wie immer dein Bestes! Ich glaube an dich!` }, }, "rival_2": { @@ -2676,7 +2674,7 @@ export const PGMdialogue: DialogueTranslationEntries = { $@c{smile}Nicht, dass du wirklich Hilfe benötigen würdest, aber ich habe hier noch eins von diesen Dingern herumliegen. $Du kannst es haben.\n $@c{serious_smile_fists}Erwarte aber nicht, dass ich dir noch mehr gebe!\nIch kann meinen Rivalen doch keine Vorteile verschaffen. - $@c{smile}Egal, pass auf dich auf und genieße das Event!` + $@c{smile}Egal, pass auf dich auf!` }, }, "rival_2_female": { @@ -2692,7 +2690,7 @@ export const PGMdialogue: DialogueTranslationEntries = { $@c{smile}Na gut. Das bedeutet ich muss noch härter tranieren! $@c{smile_wave}Ich habe noch eins von diesen Dingern!\n@c{smile_wave_wink}Kein Grund mir zu danken~. $@c{angry_mopen}Das ist aber das Letzte! Du bekommst ab jett keine Geschenke mehr von mir! - $@c{smile_wave}Bleib stark und genieße das Event!` + $@c{smile_wave}Bleib stark!` }, "defeat": { 1: "Es ist Ok manchmal zu verlieren…" diff --git a/src/locales/de/settings.ts b/src/locales/de/settings.ts index 7d4523c8cbd..3942e470e3f 100644 --- a/src/locales/de/settings.ts +++ b/src/locales/de/settings.ts @@ -99,4 +99,9 @@ export const settings: SimpleTranslationEntries = { "showBgmBar": "Musiknamen anzeigen", "moveTouchControls": "Bewegung Touch Steuerung", "shopOverlayOpacity": "Shop Overlay Deckkraft", + "shopCursorTarget": "Shop Cursor Target", + "items": "Items", + "reroll": "Reroll", + "shop": "Shop", + "checkTeam": "Check Team" } as const; diff --git a/src/locales/en/ability-trigger.ts b/src/locales/en/ability-trigger.ts index 035fe8371be..2a0e0df255a 100644 --- a/src/locales/en/ability-trigger.ts +++ b/src/locales/en/ability-trigger.ts @@ -46,6 +46,7 @@ export const abilityTriggers: SimpleTranslationEntries = { "postFaintContactDamage": "{{pokemonNameWithAffix}}'s {{abilityName}}\nhurt its attacker!", "postFaintHpDamage": "{{pokemonNameWithAffix}}'s {{abilityName}}\nhurt its attacker!", "postSummonPressure": "{{pokemonNameWithAffix}} is exerting its Pressure!", + "weatherEffectDisappeared": "The effects of the weather disappeared.", "postSummonMoldBreaker": "{{pokemonNameWithAffix}} breaks the mold!", "postSummonAnticipation": "{{pokemonNameWithAffix}} shuddered!", "postSummonTurboblaze": "{{pokemonNameWithAffix}} is radiating a blazing aura!", diff --git a/src/locales/en/dialogue.ts b/src/locales/en/dialogue.ts index 1180e202f3c..715f245e518 100644 --- a/src/locales/en/dialogue.ts +++ b/src/locales/en/dialogue.ts @@ -2574,8 +2574,7 @@ export const PGMdialogue: DialogueTranslationEntries = { 1: `@c{shock}Wow… You cleaned me out.\nAre you actually a beginner? $@c{smile}Maybe it was a bit of luck but…\nWho knows you might just be able to go all the way. $By the way, the professor asked me to give you these items. They look pretty cool. - $@c{serious_smile_fists}Good luck out there! - $@c{smile}Oh- and I hope you enjoy the event!` + $@c{serious_smile_fists}Good luck out there!` }, }, "rival_female": { @@ -2589,8 +2588,7 @@ export const PGMdialogue: DialogueTranslationEntries = { 1: `@c{shock}You just started and you're already this strong?!@d{96}\n@c{angry}You totally cheated, didn't you? $@c{smile_wave_wink}Just kidding!@d{64} @c{smile_eclosed}I lost fair and square… I have a feeling you're going to do really well out there. $@c{smile}By the way, the professor wanted me to give you some items. Hopefully they're helpful! - $@c{smile_wave}Do your best like always! I believe in you! - $@c{smile}Oh- and I hope you enjoy the event!` + $@c{smile_wave}Do your best like always! I believe in you!` }, }, "rival_2": { @@ -2604,9 +2602,9 @@ export const PGMdialogue: DialogueTranslationEntries = { "victory": { 1: `@c{neutral_eclosed}Oh. I guess I was overconfident. $@c{smile}That's alright, though. I figured this might happen.\n@c{serious_mopen_fists}It just means I need to try harder for next time!\n - $@c{smile}Oh, not that you really need the help, but I had an extra one of each of these lying around and figured you might want them.\n + $@c{smile}Oh, not that you really need the help, but I had an extra one of these lying around and figured you might want it.\n $@c{serious_smile_fists}Don't expect another one after this, though!\nI can't keep giving my opponent an advantage after all. - $@c{smile}Anyway, take care, and enjoy the event!` + $@c{smile}Anyway, take care!` }, }, "rival_2_female": { @@ -2620,9 +2618,9 @@ export const PGMdialogue: DialogueTranslationEntries = { "victory": { 1: `@c{neutral}I… wasn't supposed to lose that time… $@c{smile}Aw well. That just means I'll have to train even harder for next time! - $@c{smile_wave}I also got you another two of these!\n@c{smile_wave_wink}No need to thank me~. + $@c{smile_wave}I also got you another one of these!\n@c{smile_wave_wink}No need to thank me~. $@c{angry_mopen}This is the last one, though! You won't be getting anymore freebies from me after this! - $@c{smile_wave}Keep at it, and enjoy the event!` + $@c{smile_wave}Keep at it!` }, "defeat": { 1: "It's OK to lose sometimes…" diff --git a/src/locales/en/settings.ts b/src/locales/en/settings.ts index c63f9de6049..ad2ea914dc9 100644 --- a/src/locales/en/settings.ts +++ b/src/locales/en/settings.ts @@ -98,5 +98,10 @@ export const settings: SimpleTranslationEntries = { "gamepadSupport": "Gamepad Support", "showBgmBar": "Show Music Names", "moveTouchControls": "Move Touch Controls", - "shopOverlayOpacity": "Shop Overlay Opacity" + "shopOverlayOpacity": "Shop Overlay Opacity", + "shopCursorTarget": "Shop Cursor Target", + "items": "Items", + "reroll": "Reroll", + "shop": "Shop", + "checkTeam": "Check Team" } as const; diff --git a/src/locales/es/ability-trigger.ts b/src/locales/es/ability-trigger.ts index 60bc186e99d..99ebfe3bd4c 100644 --- a/src/locales/es/ability-trigger.ts +++ b/src/locales/es/ability-trigger.ts @@ -46,6 +46,7 @@ export const abilityTriggers: SimpleTranslationEntries = { "postFaintContactDamage": "{{pokemonNameWithAffix}}'s {{abilityName}}\nhurt its attacker!", "postFaintHpDamage": "{{pokemonNameWithAffix}}'s {{abilityName}}\nhurt its attacker!", "postSummonPressure": "{{pokemonNameWithAffix}} is exerting its Pressure!", + "weatherEffectDisappeared": "El tiempo atmosférico ya no ejerce ninguna influencia.", "postSummonMoldBreaker": "{{pokemonNameWithAffix}} breaks the mold!", "postSummonAnticipation": "{{pokemonNameWithAffix}} shuddered!", "postSummonTurboblaze": "{{pokemonNameWithAffix}} is radiating a blazing aura!", diff --git a/src/locales/es/dialogue.ts b/src/locales/es/dialogue.ts index 07e51458a29..187127d1d39 100644 --- a/src/locales/es/dialogue.ts +++ b/src/locales/es/dialogue.ts @@ -2569,8 +2569,7 @@ export const PGMdialogue: DialogueTranslationEntries = { 1: `@c{shock}Wow… You cleaned me out.\nAre you actually a beginner? $@c{smile}Maybe it was a bit of luck but…\nWho knows you might just be able to go all the way. $By the way, the professor asked me to give you these items. They look pretty cool. - $@c{serious_smile_fists}Good luck out there! - $@c{smile}Oh- and I hope you enjoy the event!` + $@c{serious_smile_fists}Good luck out there!` }, }, "rival_female": { @@ -2584,8 +2583,7 @@ export const PGMdialogue: DialogueTranslationEntries = { 1: `@c{shock}You just started and you're already this strong?!@d{96}\n@c{angry}You totally cheated, didn't you? $@c{smile_wave_wink}Just kidding!@d{64} @c{smile_eclosed}I lost fair and square… I have a feeling you're going to do really well out there. $@c{smile}By the way, the professor wanted me to give you some items. Hopefully they're helpful! - $@c{smile_wave}Do your best like always! I believe in you! - $@c{smile}Oh- and I hope you enjoy the event!` + $@c{smile_wave}Do your best like always! I believe in you!` }, }, "rival_2": { @@ -2601,7 +2599,7 @@ export const PGMdialogue: DialogueTranslationEntries = { $@c{smile}That's alright, though. I figured this might happen.\n@c{serious_mopen_fists}It just means I need to try harder for next time!\n $@c{smile}Oh, not that you really need the help, but I had an extra one of these lying around and figured you might want it.\n $@c{serious_smile_fists}Don't expect another one after this, though!\nI can't keep giving my opponent an advantage after all. - $@c{smile}Anyway, take care, and enjoy the event!` + $@c{smile}Anyway, take care!` }, }, "rival_2_female": { @@ -2617,7 +2615,7 @@ export const PGMdialogue: DialogueTranslationEntries = { $@c{smile}Aw well. That just means I'll have to train even harder for next time! $@c{smile_wave}I also got you another one of these!\n@c{smile_wave_wink}No need to thank me~. $@c{angry_mopen}This is the last one, though! You won't be getting anymore freebies from me after this! - $@c{smile_wave}Keep at it, and enjoy the event!` + $@c{smile_wave}Keep at it!` }, "defeat": { 1: "It's OK to lose sometimes…" diff --git a/src/locales/es/settings.ts b/src/locales/es/settings.ts index c7f723fe80c..fbc56d92fe5 100644 --- a/src/locales/es/settings.ts +++ b/src/locales/es/settings.ts @@ -98,5 +98,10 @@ export const settings: SimpleTranslationEntries = { "gamepadSupport": "Gamepad Support", "showBgmBar": "Show Music Names", "moveTouchControls": "Move Touch Controls", - "shopOverlayOpacity": "Opacidad de la fase de compra" + "shopOverlayOpacity": "Opacidad de la fase de compra", + "shopCursorTarget": "Shop Cursor Target", + "items": "Items", + "reroll": "Reroll", + "shop": "Shop", + "checkTeam": "Check Team" } as const; diff --git a/src/locales/fr/ability-trigger.ts b/src/locales/fr/ability-trigger.ts index cd077993b4e..92e02b82414 100644 --- a/src/locales/fr/ability-trigger.ts +++ b/src/locales/fr/ability-trigger.ts @@ -46,6 +46,7 @@ export const abilityTriggers: SimpleTranslationEntries = { "postFaintContactDamage": "{{pokemonNameWithAffix}} est blessé\npar son talent {{abilityName}} !", "postFaintHpDamage": "{{pokemonNameWithAffix}} est blessé\npar son talent {{abilityName}} !", "postSummonPressure": "{{pokemonNameWithAffix}}\naugmente la pression !", + "weatherEffectDisappeared": "Les effets de la météo se dissipent !", "postSummonMoldBreaker": "{{pokemonNameWithAffix}}\nbrise le moule !", "postSummonAnticipation": "{{pokemonNameWithAffix}}\nest tout tremblant !", "postSummonTurboblaze": "{{pokemonNameWithAffix}} dégage\nune aura de flammes incandescentes !", diff --git a/src/locales/fr/dialogue.ts b/src/locales/fr/dialogue.ts index 49dc6124fbf..8a8707dc4e5 100644 --- a/src/locales/fr/dialogue.ts +++ b/src/locales/fr/dialogue.ts @@ -2372,8 +2372,7 @@ export const PGMdialogue: DialogueTranslationEntries = { 1: `@c{shock}Wah… Tu m’as vraiment lavé.\nT’es vraiment un débutant ? $@c{smile}T’as peut-être eu de la chance, mais…\nPeut-être que t’arriveras jusqu’au bout du chemin. $D’ailleurs, le prof m’a demandé de te filer ces objets.\nIls ont l’air sympas. - $@c{serious_smile_fists}Bonne chance à toi ! - $@c{smile}Oh, et profite bien de l’évènement !` + $@c{serious_smile_fists}Bonne chance à toi !` }, }, "rival_female": { @@ -2387,8 +2386,7 @@ export const PGMdialogue: DialogueTranslationEntries = { 1: `@c{shock}Tu viens de commencer et t’es déjà si fort ?!@d{96}\n@c{angry}T’as triché non ? Avoue ! $@c{smile_wave_wink}J’déconne !@d{64} @c{smile_eclosed}J’ai perdu dans les règles…\nJ’ai le sentiment que tu vas très bien t’en sortir. $@c{smile}D’ailleurs, le prof veut que je te donne ces quelques objets. Ils te seront utiles, pour sûr ! - $@c{smile_wave}Fais de ton mieux, comme toujours !\nJe crois fort en toi ! - $@c{smile}Oh, et profite bien de l’évènement !` + $@c{smile_wave}Fais de ton mieux, comme toujours !\nJe crois fort en toi !` }, }, "rival_2": { @@ -2404,7 +2402,7 @@ export const PGMdialogue: DialogueTranslationEntries = { $@c{smile}Pas grave, c’est OK. Je me doutais que ça arriverait.\n@c{serious_mopen_fists}Je vais juste devoir encore plus m’entrainer !\n $@c{smile}Ah, et pas que t’aies réellement besoin d’aide, mais j’ai ça en trop sur moi qui pourrait t’intéresser.\n $@c{serious_smile_fists}Mais n’espère plus en avoir d’autres !\nJe peux pas passer mon temps à aider mon adversaire. - $@c{smile}Bref, prends soin de toi et profite bien de l’évènement !` + $@c{smile}Bref, prends soin de toi !` }, }, "rival_2_female": { @@ -2419,8 +2417,8 @@ export const PGMdialogue: DialogueTranslationEntries = { 1: `@c{neutral}Je… J’étais pas encore supposée perdre… $@c{smile}Bon. Ça veut juste dire que je vais devoir encore plus m’entrainer ! $@c{smile_wave}J’ai aussi ça en rab pour toi !\n@c{smile_wave_wink}Inutile de me remercier ~. - $@c{angry_mopen}C’étaient les derniers, terminé les cadeaux après ceux-là ! - $@c{smile_wave}Allez, tiens le coup et profite bien de l’évènement !` + $@c{angry_mopen}C’était le dernier, terminé les cadeaux après celui-là ! + $@c{smile_wave}Allez, tiens le coup !` }, "defeat": { 1: "Je suppose que c’est parfois normal de perdre…" @@ -5053,8 +5051,7 @@ export const PGFdialogue: DialogueTranslationEntries = { 1: `@c{shock}Wah… Tu m’as vraiment lavé.\nT’es vraiment une débutante ? $@c{smile}T’as peut-être eu de la chance, mais…\nPeut-être que t’arriveras jusqu’au bout du chemin. $D’ailleurs, le prof m’a demandé de te filer ces objets.\nIls ont l’air sympas. - $@c{serious_smile_fists}Bonne chance à toi ! - $@c{smile}Oh, et profite bien de l’évènement !` + $@c{serious_smile_fists}Bonne chance à toi !` }, }, "rival_female": { @@ -5068,8 +5065,7 @@ export const PGFdialogue: DialogueTranslationEntries = { 1: `@c{shock}Tu viens de commencer et t’es déjà si forte ?!@d{96}\n@c{angry}T’as triché non ? Avoue ! $@c{smile_wave_wink}J’déconne !@d{64} @c{smile_eclosed}J’ai perdu dans les règles…\nJ’ai le sentiment que tu vas très bien t’en sortir. $@c{smile}D’ailleurs, le prof veut que je te donne ces quelques objets. Ils te seront utiles, pour sûr ! - $@c{smile_wave}Fais de ton mieux, comme toujours !\nJe crois fort en toi ! - $@c{smile}Oh, et profite bien de l’évènement !` + $@c{smile_wave}Fais de ton mieux, comme toujours !\nJe crois fort en toi !` }, }, "rival_2": { @@ -5085,7 +5081,7 @@ export const PGFdialogue: DialogueTranslationEntries = { $@c{smile}Pas grave, c’est OK. Je me doutais que ça arriverait.\n@c{serious_mopen_fists}Je vais juste devoir encore plus m’entrainer !\n $@c{smile}Ah, et pas que t’aies réellement besoin d’aide, mais j’ai ça en trop sur moi qui pourrait t’intéresser.\n $@c{serious_smile_fists}Mais n’espère plus en avoir d’autres !\nJe peux pas passer mon temps à aider mon adversaire. - $@c{smile}Bref, prends soin de toi et profite bien de l’évènement !` + $@c{smile}Bref, prends soin de toi !` }, }, "rival_2_female": { @@ -5101,7 +5097,7 @@ export const PGFdialogue: DialogueTranslationEntries = { $@c{smile}Bon. Ça veut juste dire que je vais devoir encore plus m’entrainer ! $@c{smile_wave}J’ai aussi ça en rab pour toi !\n@c{smile_wave_wink}Inutile de me remercier ~. $@c{angry_mopen}C’était le dernier, terminé les cadeaux après celui-là ! - $@c{smile_wave}Allez, tiens le coup et profite bien de l’évènement !` + $@c{smile_wave}Allez, tiens le coup !` }, "defeat": { 1: "Je suppose que c’est parfois normal de perdre…" diff --git a/src/locales/fr/settings.ts b/src/locales/fr/settings.ts index 95246ccb7d0..d5e4047bb12 100644 --- a/src/locales/fr/settings.ts +++ b/src/locales/fr/settings.ts @@ -98,5 +98,10 @@ export const settings: SimpleTranslationEntries = { "gamepadSupport": "Gamepad Support", "showBgmBar": "Titre de la musique", "moveTouchControls": "Déplacer les contrôles tactiles", - "shopOverlayOpacity": "Opacité boutique" + "shopOverlayOpacity": "Opacité boutique", + "shopCursorTarget": "Choix après relance", + "items": "Obj. gratuits", + "reroll": "Relance", + "shop": "Boutique", + "checkTeam": "Équipe" } as const; diff --git a/src/locales/it/ability-trigger.ts b/src/locales/it/ability-trigger.ts index c834fa28fbe..6ac5e76ee3e 100644 --- a/src/locales/it/ability-trigger.ts +++ b/src/locales/it/ability-trigger.ts @@ -46,6 +46,7 @@ export const abilityTriggers: SimpleTranslationEntries = { "postFaintContactDamage": "{{abilityName}} di {{pokemonNameWithAffix}}\nferisce il Pokémon che lo ha attaccato!", "postFaintHpDamage": "{{abilityName}} di {{pokemonNameWithAffix}}\nferisce il Pokémon che lo ha attaccato!", "postSummonPressure": "{{pokemonNameWithAffix}} fa pressione!", + "weatherEffectDisappeared": "Le condizioni atmosferiche non hanno alcun effetto.", "postSummonMoldBreaker": "{{pokemonNameWithAffix}} ha l’abilità Rompiforma!", "postSummonAnticipation": "{{pokemonNameWithAffix}} rabbrividisce!", "postSummonTurboblaze": "{{pokemonNameWithAffix}} emana un’aura infuocata!", diff --git a/src/locales/it/dialogue.ts b/src/locales/it/dialogue.ts index f692b9b848a..1089db4e6f8 100644 --- a/src/locales/it/dialogue.ts +++ b/src/locales/it/dialogue.ts @@ -2569,8 +2569,7 @@ export const PGMdialogue: DialogueTranslationEntries = { 1: `@c{shock}Wow… You cleaned me out.\nAre you actually a beginner? $@c{smile}Maybe it was a bit of luck but…\nWho knows you might just be able to go all the way. $By the way, the professor asked me to give you these items. They look pretty cool. - $@c{serious_smile_fists}Good luck out there! - $@c{smile}Oh- and I hope you enjoy the event!` + $@c{serious_smile_fists}Good luck out there!` }, }, "rival_female": { @@ -2584,8 +2583,7 @@ export const PGMdialogue: DialogueTranslationEntries = { 1: `@c{shock}You just started and you're already this strong?!@d{96}\n@c{angry}You totally cheated, didn't you? $@c{smile_wave_wink}Just kidding!@d{64} @c{smile_eclosed}I lost fair and square… I have a feeling you're going to do really well out there. $@c{smile}By the way, the professor wanted me to give you some items. Hopefully they're helpful! - $@c{smile_wave}Do your best like always! I believe in you! - $@c{smile}Oh- and I hope you enjoy the event!` + $@c{smile_wave}Do your best like always! I believe in you!` }, }, "rival_2": { @@ -2601,7 +2599,7 @@ export const PGMdialogue: DialogueTranslationEntries = { $@c{smile}That's alright, though. I figured this might happen.\n@c{serious_mopen_fists}It just means I need to try harder for next time!\n $@c{smile}Oh, not that you really need the help, but I had an extra one of these lying around and figured you might want it.\n $@c{serious_smile_fists}Don't expect another one after this, though!\nI can't keep giving my opponent an advantage after all. - $@c{smile}Anyway, take care, and enjoy the event!` + $@c{smile}Anyway, take care!` }, }, "rival_2_female": { @@ -2617,7 +2615,7 @@ export const PGMdialogue: DialogueTranslationEntries = { $@c{smile}Aw well. That just means I'll have to train even harder for next time! $@c{smile_wave}I also got you another one of these!\n@c{smile_wave_wink}No need to thank me~. $@c{angry_mopen}This is the last one, though! You won't be getting anymore freebies from me after this! - $@c{smile_wave}Keep at it, and enjoy the event!` + $@c{smile_wave}Keep at it!` }, "defeat": { 1: "It's OK to lose sometimes…" diff --git a/src/locales/it/settings.ts b/src/locales/it/settings.ts index 0d05d01ba1c..278a02bef52 100644 --- a/src/locales/it/settings.ts +++ b/src/locales/it/settings.ts @@ -98,5 +98,10 @@ export const settings: SimpleTranslationEntries = { "gamepadSupport": "Supporto Gamepad", "showBgmBar": "Mostra Nomi Musica", "moveTouchControls": "Move Touch Controls", - "shopOverlayOpacity": "Opacità Finestra Negozio" + "shopOverlayOpacity": "Opacità Finestra Negozio", + "shopCursorTarget": "Target Cursore Negozio", + "items": "Oggetti", + "reroll": "Rerolla", + "shop": "Negozio", + "checkTeam": "Squadra" } as const; diff --git a/src/locales/ja/ability-trigger.ts b/src/locales/ja/ability-trigger.ts index 7c7d081f645..cf4c89ff5a4 100644 --- a/src/locales/ja/ability-trigger.ts +++ b/src/locales/ja/ability-trigger.ts @@ -47,6 +47,7 @@ export const abilityTriggers: SimpleTranslationEntries = { "postFaintContactDamage": "{{pokemonNameWithAffix}}は {{abilityName}}で\n相手に ダメージを 与えた!", "postFaintHpDamage": "{{pokemonNameWithAffix}}は {{abilityName}}で\n相手に ダメージを 与えた!", "postSummonPressure": "{{pokemonNameWithAffix}}は\nプレッシャーを 放っている!", + "weatherEffectDisappeared": "天候の影響が なくなった!", "postSummonMoldBreaker": "{{pokemonNameWithAffix}}は\nかたやぶりだ!", "postSummonAnticipation": "{{pokemonNameWithAffix}}は\nみぶるいした!", "postSummonTurboblaze": "{{pokemonNameWithAffix}}は\n燃え盛(もえさか)る オーラを 放っている!", diff --git a/src/locales/ja/dialogue.ts b/src/locales/ja/dialogue.ts index 6db337517da..e783ea14006 100644 --- a/src/locales/ja/dialogue.ts +++ b/src/locales/ja/dialogue.ts @@ -2573,8 +2573,7 @@ export const PGMdialogue: DialogueTranslationEntries = { 1: `@c{shock}Wow… You cleaned me out.\nAre you actually a beginner? $@c{smile}Maybe it was a bit of luck but…\nWho knows you might just be able to go all the way. $By the way, the professor asked me to give you these items. They look pretty cool. - $@c{serious_smile_fists}Good luck out there! - $@c{smile}Oh- and I hope you enjoy the event!` + $@c{serious_smile_fists}Good luck out there!` }, }, "rival_female": { @@ -2588,8 +2587,7 @@ export const PGMdialogue: DialogueTranslationEntries = { 1: `@c{shock}You just started and you're already this strong?!@d{96}\n@c{angry}You totally cheated, didn't you? $@c{smile_wave_wink}Just kidding!@d{64} @c{smile_eclosed}I lost fair and square… I have a feeling you're going to do really well out there. $@c{smile}By the way, the professor wanted me to give you some items. Hopefully they're helpful! - $@c{smile_wave}Do your best like always! I believe in you! - $@c{smile}Oh- and I hope you enjoy the event!` + $@c{smile_wave}Do your best like always! I believe in you!` }, }, "rival_2": { @@ -2605,7 +2603,7 @@ export const PGMdialogue: DialogueTranslationEntries = { $@c{smile}That's alright, though. I figured this might happen.\n@c{serious_mopen_fists}It just means I need to try harder for next time!\n $@c{smile}Oh, not that you really need the help, but I had an extra one of these lying around and figured you might want it.\n $@c{serious_smile_fists}Don't expect another one after this, though!\nI can't keep giving my opponent an advantage after all. - $@c{smile}Anyway, take care, and enjoy the event!` + $@c{smile}Anyway, take care!` }, }, "rival_2_female": { @@ -2621,7 +2619,7 @@ export const PGMdialogue: DialogueTranslationEntries = { $@c{smile}Aw well. That just means I'll have to train even harder for next time! $@c{smile_wave}I also got you another one of these!\n@c{smile_wave_wink}No need to thank me~. $@c{angry_mopen}This is the last one, though! You won't be getting anymore freebies from me after this! - $@c{smile_wave}Keep at it, and enjoy the event!` + $@c{smile_wave}Keep at it!` }, "defeat": { 1: "It's OK to lose sometimes…" diff --git a/src/locales/ja/settings.ts b/src/locales/ja/settings.ts index ef20d071d2d..3be237e26ae 100644 --- a/src/locales/ja/settings.ts +++ b/src/locales/ja/settings.ts @@ -98,4 +98,9 @@ export const settings: SimpleTranslationEntries = { "gamepadSupport": "コントローラーサポート", "showBgmBar": "Show Music Names", "shopOverlayOpacity": "Shop Overlay Opacity", + "shopCursorTarget": "Shop Cursor Target", + "items": "Items", + "reroll": "Reroll", + "shop": "Shop", + "checkTeam": "Check Team" } as const; diff --git a/src/locales/ko/ability-trigger.ts b/src/locales/ko/ability-trigger.ts index 974e6970569..9e330c176e7 100644 --- a/src/locales/ko/ability-trigger.ts +++ b/src/locales/ko/ability-trigger.ts @@ -46,6 +46,7 @@ export const abilityTriggers: SimpleTranslationEntries = { "postFaintContactDamage": "{{pokemonNameWithAffix}}[[는]] {{abilityName}}[[로]]\n상대에게 데미지를 입혔다!", "postFaintHpDamage": "{{pokemonNameWithAffix}}[[는]] {{abilityName}}[[로]]\n상대에게 데미지를 입혔다!", "postSummonPressure": "{{pokemonNameWithAffix}}[[는]]\n프레셔를 발산하고 있다!", + "weatherEffectDisappeared": "날씨의 영향이 없어졌다!", "postSummonMoldBreaker": "{{pokemonNameWithAffix}}의\n틀깨기!", "postSummonAnticipation": "{{pokemonNameWithAffix}}[[는]]\n몸을 떨었다!", "postSummonTurboblaze": "{{pokemonNameWithAffix}}[[는]]\n활활 타오르는 오라를 발산하고 있다!", diff --git a/src/locales/ko/dialogue.ts b/src/locales/ko/dialogue.ts index ce6af0e43e7..ed0b498abbc 100644 --- a/src/locales/ko/dialogue.ts +++ b/src/locales/ko/dialogue.ts @@ -2569,8 +2569,7 @@ export const PGMdialogue: DialogueTranslationEntries = { 1: `@c{shock}와… 정말 깔끔하게 당했네.\n초보자 맞아? $@c{smile}운이 따른 건지도 모르겠지만…\n그래도 정말 꿈을 이룰 지도. $그나저나, 박사님께서 이걸 전해달라고 하시더라.\n좋아 보이던데. - $@c{serious_smile_fists}아무튼, 힘 내는거야! - $@c{smile}아- 그리고 이벤트 즐겁게 보내!` + $@c{serious_smile_fists}아무튼, 힘 내는거야!` }, }, "rival_female": { @@ -2584,8 +2583,7 @@ export const PGMdialogue: DialogueTranslationEntries = { 1: `@c{shock}왜 벌써 이렇게 센 건데?!@d{96}\n@c{angry}아니면 뭔가 속임수, 그런 거? $@c{smile_wave_wink}농담, 농담!@d{64} @c{smile_eclosed}내가 진 거 맞아…\n너 정말 앞으로도 잘 하겠는데. $@c{smile}아 그래, 박사님께서 전해달라던 물건.\n도움이 되면 좋겠어! - $@c{smile_wave}항상 최선을 다 하라구! 믿고 있을게! - $@c{smile}아- 그리고 이벤트 즐겁게 보내!` + $@c{smile_wave}항상 최선을 다 하라구! 믿고 있을게!` }, }, "rival_2": { @@ -2601,7 +2599,7 @@ export const PGMdialogue: DialogueTranslationEntries = { $@c{smile}그래, 또 지고 말았네.\n@c{serious_mopen_fists}좀 더 열심히 훈련을 해야겠어!\n $@c{smile}너한테 도움이 필요할 것 같지는 않지만, 이거.\n남는 게 있어서 말이야. $@c{serious_smile_fists}물론 이번이 마지막이야, 알겠지?\n공평하게 하지 않으면 그게 내 핑계거리가 되고 말거야. - $@c{smile}이제 갈게. 앞으로도 조심하고, 이벤트도 즐겁게 보내!` + $@c{smile}이제 갈게. 앞으로도 조심하고!` }, }, "rival_2_female": { @@ -2617,7 +2615,7 @@ export const PGMdialogue: DialogueTranslationEntries = { $@c{smile}으, 그래. 더 열심히 훈련하면 되겠지! $@c{smile_wave}이것도 하나 더 챙겨왔으니 받아!\n@c{smile_wave_wink}감사 인사는 됐다구~. $@c{angry_mopen}하지만, 마지막이야!\n또 이렇게 공짜로 나눠주진 않을 테니까! - $@c{smile_wave}그럼! 이벤트 잘 즐기고!` + $@c{smile_wave}그럼!` }, "defeat": { 1: "가끔은 지는 것도 괜찮아…" diff --git a/src/locales/ko/settings.ts b/src/locales/ko/settings.ts index aa4adfc4e41..38b0679d911 100644 --- a/src/locales/ko/settings.ts +++ b/src/locales/ko/settings.ts @@ -98,5 +98,10 @@ export const settings: SimpleTranslationEntries = { "gamepadSupport": "게임패드 지원", "showBgmBar": "BGM 제목 보여주기", "moveTouchControls": "터치 컨트롤 이동", - "shopOverlayOpacity": "상점 오버레이 투명도" + "shopOverlayOpacity": "상점 오버레이 투명도", + "shopCursorTarget": "상점 커서 위치", + "items": "아이템", + "reroll": "갱신", + "shop": "상점", + "checkTeam": "파티 확인" } as const; diff --git a/src/locales/pt_BR/ability-trigger.ts b/src/locales/pt_BR/ability-trigger.ts index da91fa3213f..9cfa42edce3 100644 --- a/src/locales/pt_BR/ability-trigger.ts +++ b/src/locales/pt_BR/ability-trigger.ts @@ -46,6 +46,7 @@ export const abilityTriggers: SimpleTranslationEntries = { "postFaintContactDamage": "{{abilityName}} de {{pokemonNameWithAffix}}\nferiu seu adversário!", "postFaintHpDamage": "{{abilityName}} de {{pokemonNameWithAffix}}\nferiu seu adversário!", "postSummonPressure": "{{pokemonNameWithAffix}} está exercendo sua pressão!", + "weatherEffectDisappeared": "Os efeitos do clima desapareceram.", "postSummonMoldBreaker": "{{pokemonNameWithAffix}} quebra o molde!", "postSummonAnticipation": "{{pokemonNameWithAffix}} se arrepiou!", "postSummonTurboblaze": "{{pokemonNameWithAffix}} está irradiando uma aura ardente!", diff --git a/src/locales/pt_BR/dialogue.ts b/src/locales/pt_BR/dialogue.ts index 969c6fc36a9..076ca00d951 100644 --- a/src/locales/pt_BR/dialogue.ts +++ b/src/locales/pt_BR/dialogue.ts @@ -2541,8 +2541,7 @@ export const PGMdialogue: DialogueTranslationEntries = { 1: `@c{shock}Caramba… Você me limpou.\nVocê é mesmo um novato? $@c{smile}Talvez tenha sido um pouco de sorte, mas…\nQuem sabe você consiga chegar até o fim. $Aliás, o professor me pediu para te dar esses itens. Eles parecem bem legais. - $@c{serious_smile_fists}Boa sorte lá fora! - $@c{smile}Ah- e eu espero que você aproveite o evento!` + $@c{serious_smile_fists}Boa sorte lá fora!` }, }, "rival_female": { @@ -2556,8 +2555,7 @@ export const PGMdialogue: DialogueTranslationEntries = { 1: `@c{shock}Você acabou de começar e já está tão forte?!@d{96}\n@c{angry}Você trapaceou, não foi? $@c{smile_wave_wink}Brincadeirinha!@d{64} @c{smile_eclosed}Eu perdi de forma justa… Tenho a sensação de que você vai se sair muito bem lá fora. $@c{smile}Aliás, o professor pediu para eu te dar alguns itens. Espero que sejam úteis! - $@c{smile_wave}Dê o seu melhor, como sempre! Eu acredito em você! - $@c{smile}Ah- e eu espero que você aproveite o evento!` + $@c{smile_wave}Dê o seu melhor, como sempre! Eu acredito em você!` }, }, "rival_2": { @@ -2573,7 +2571,7 @@ export const PGMdialogue: DialogueTranslationEntries = { $@c{smile}Tudo bem, no entanto. Eu imaginei que isso poderia acontecer.\n@c{serious_mopen_fists}Isso só significa que preciso me esforçar mais para a próxima vez!\n $@c{smile}Ah, não que você precise realmente de ajuda, mas eu tinha um extra desses itens e pensei que você poderia querer. $@c{serious_smile_fists}Não espere outro depois deste!\nNão posso continuar dando vantagem ao meu oponente. - $@c{smile}Enfim, cuide-se, e aproveite o evento!` + $@c{smile}Enfim, cuide-se!` }, }, "rival_2_female": { @@ -2587,9 +2585,9 @@ export const PGMdialogue: DialogueTranslationEntries = { "victory": { 1: `@c{neutral}Eu… não era para eu perder dessa vez… $@c{smile}Ah bem. Isso só significa que vou ter que treinar ainda mais para a próxima vez! - $@c{smile_wave}Também consegui mais dois desses para você!\n@c{smile_wave_wink}Não precisa me agradecer~. - $@c{angry_mopen}Estes são os últimos, hein! Você não vai ganhar mais nenhum presente de mim depois desse! - $@c{smile_wave}Continue assim, e aproveite o evento!` + $@c{smile_wave}Também consegui mais um desses para você!\n@c{smile_wave_wink}Não precisa me agradecer~. + $@c{angry_mopen}Este é o último, hein! Você não vai ganhar mais nenhum presente de mim depois desse! + $@c{smile_wave}Continue assim!` }, "defeat": { 1: "Está tudo bem perder às vezes…" @@ -5227,8 +5225,7 @@ export const PGFdialogue: DialogueTranslationEntries = { 1: `@c{shock}Caramba… Você me limpou.\nVocê é mesmo uma novata? $@c{smile}Talvez tenha sido um pouco de sorte, mas…\nQuem sabe você consiga chegar até o fim. $Aliás, o professor me pediu para te dar esses itens. Eles parecem bem legais. - $@c{serious_smile_fists}Boa sorte lá fora! - $@c{smile}Ah- e eu espero que você aproveite o evento!` + $@c{serious_smile_fists}Boa sorte lá fora!` }, }, "rival_female": { @@ -5242,8 +5239,7 @@ export const PGFdialogue: DialogueTranslationEntries = { 1: `@c{shock}Você acabou de começar e já está tão forte?!@d{96}\n@c{angry}Você trapaceou, não foi? $@c{smile_wave_wink}Brincadeirinha!@d{64} @c{smile_eclosed}Eu perdi de forma justa… Tenho a sensação de que você vai se sair muito bem lá fora. $@c{smile}Aliás, o professor pediu para eu te dar alguns itens. Espero que sejam úteis! - $@c{smile_wave}Dê o seu melhor, como sempre! Eu acredito em você! - $@c{smile}Ah- e eu espero que você aproveite o evento!` + $@c{smile_wave}Dê o seu melhor, como sempre! Eu acredito em você!` }, }, "rival_2": { @@ -5259,7 +5255,7 @@ export const PGFdialogue: DialogueTranslationEntries = { $@c{smile}Tudo bem, no entanto. Eu imaginei que isso poderia acontecer.\n@c{serious_mopen_fists}Isso só significa que preciso me esforçar mais para a próxima vez!\n $@c{smile}Ah, não que você precise realmente de ajuda, mas eu tinha um extra desses itens e pensei que você poderia querer. $@c{serious_smile_fists}Não espere outro depois deste!\nNão posso continuar dando vantagem ao meu oponente. - $@c{smile}Enfim, cuide-se, e aproveite o evento!` + $@c{smile}Enfim, cuide-se!` }, }, "rival_2_female": { @@ -5273,9 +5269,9 @@ export const PGFdialogue: DialogueTranslationEntries = { "victory": { 1: `@c{neutral}Eu… não era para eu perder dessa vez… $@c{smile}Ah bem. Isso só significa que vou ter que treinar ainda mais para a próxima vez! - $@c{smile_wave}Também consegui mais dois desses para você!\n@c{smile_wave_wink}Não precisa me agradecer~. - $@c{angry_mopen}Estes são os últimos, hein! Você não vai ganhar mais nenhum presente de mim depois desse! - $@c{smile_wave}Continue assim, e aproveite o evento!` + $@c{smile_wave}Também consegui mais um desses para você!\n@c{smile_wave_wink}Não precisa me agradecer~. + $@c{angry_mopen}Este é o último, hein! Você não vai ganhar mais nenhum presente de mim depois desse! + $@c{smile_wave}Continue assim!` }, "defeat": { 1: "Está tudo bem perder às vezes…" diff --git a/src/locales/pt_BR/settings.ts b/src/locales/pt_BR/settings.ts index 14646b59742..e34fdfa0e5d 100644 --- a/src/locales/pt_BR/settings.ts +++ b/src/locales/pt_BR/settings.ts @@ -98,5 +98,10 @@ export const settings: SimpleTranslationEntries = { "gamepadSupport": "Suporte para Controle", "showBgmBar": "Exibir Nomes das Músicas", "moveTouchControls": "Move Touch Controls", - "shopOverlayOpacity": "Opacidade da Loja" + "shopOverlayOpacity": "Opacidade da Loja", + "shopCursorTarget": "Alvo do Cursor da Loja", + "items": "Itens", + "reroll": "Atualizar", + "shop": "Loja", + "checkTeam": "Checar Time" } as const; diff --git a/src/locales/zh_CN/ability-trigger.ts b/src/locales/zh_CN/ability-trigger.ts index 0d69a78f0f7..337c0655c87 100644 --- a/src/locales/zh_CN/ability-trigger.ts +++ b/src/locales/zh_CN/ability-trigger.ts @@ -46,6 +46,7 @@ export const abilityTriggers: SimpleTranslationEntries = { "postFaintContactDamage": "{{pokemonNameWithAffix}}的{{abilityName}}\n使对方受到了伤害!", "postFaintHpDamage": "{{pokemonNameWithAffix}}的{{abilityName}}\n使对方受到了伤害!", "postSummonPressure": "从{{pokemonNameWithAffix}}的身上\n感到了一种压迫感!", + "weatherEffectDisappeared": "天气的影响消失了!", "postSummonMoldBreaker": "{{pokemonNameWithAffix}}\n打破了常规!", "postSummonAnticipation": "{{pokemonNameWithAffix}}\n发抖了!", "postSummonTurboblaze": "{{pokemonNameWithAffix}}\n正在释放炽焰气场!", diff --git a/src/locales/zh_CN/dialogue.ts b/src/locales/zh_CN/dialogue.ts index 29afb56c40e..20d1d0d6040 100644 --- a/src/locales/zh_CN/dialogue.ts +++ b/src/locales/zh_CN/dialogue.ts @@ -2463,7 +2463,7 @@ export const PGMdialogue: DialogueTranslationEntries = { 1: "@c{smile}嘿,我在找你呢!我知道你急着上路,\n但至少说个再见吧…$@c{smile_eclosed}所以你终于要开始追逐梦想了?\n我几乎不敢相信。$@c{serious_smile_fists}来都来了,来一场对战怎么样?\n毕竟,我想看看你是不是准备周全了。$@c{serious_mopen_fists}不要手下留情,我想让你全力以赴!", }, "victory": { - 1: "@c{shock}哇…你彻底击败了我。\n你是真初学者吗?$@c{smile}也许是靠点运气,但是…\n谁知道,你可能真的能一路走下去。$顺便说一下,博士让我给你这些东西。它们看起来可牛了。$@c{serious_smile_fists}祝你好运!$@c{smile}哦!我希望你能喜欢这次的活动! ", + 1: "@c{shock}哇…你彻底击败了我。\n你是真初学者吗?$@c{smile}也许是靠点运气,但是…\n谁知道,你可能真的能一路走下去。$顺便说一下,博士让我给你这些东西。它们看起来可牛了。$@c{serious_smile_fists}祝你好运!", }, }, "rival_female": { @@ -2471,7 +2471,7 @@ export const PGMdialogue: DialogueTranslationEntries = { 1: "@c{smile_wave}你在这儿啊!我到处找你呢!$@c{angry_mopen}你忘了和你最好的朋友说再见了吗?$@c{smile_ehalf}你要去追逐梦想了,对吧?\n从今天开始,是不是…$@c{smile}不管怎样,忘了我的事就原谅你吧,\n但有个条件。@c{smile_wave_wink}你必须和我对战!$@c{angry_mopen}全力以赴!\n你也不想让你的冒险在开始之前就结束了,对吧?", }, "victory": { - 1: "@c{shock}你刚开始就已经这么强了?!@d{96}$@c{angry}你是不是开了?$@c{smile_wave_wink}只是开个玩笑啦!@d{64} @c{smile_eclosed}我输地心服口服了…\n我感觉你出去挺有天赋的。$@c{smile}顺便说一下,博士想让我给你一些东西。\n希望它们能帮上忙!$@c{smile_wave}像往常一样尽力而为!\n我相信你!$@c{smile}哦!我希望你能喜欢这次的活动! ", + 1: "@c{shock}你刚开始就已经这么强了?!@d{96}$@c{angry}你是不是开了?$@c{smile_wave_wink}只是开个玩笑啦!@d{64} @c{smile_eclosed}我输地心服口服了…\n我感觉你出去挺有天赋的。$@c{smile}顺便说一下,博士想让我给你一些东西。\n希望它们能帮上忙!$@c{smile_wave}像往常一样尽力而为!\n我相信你!", }, }, "rival_2": { @@ -2479,7 +2479,7 @@ export const PGMdialogue: DialogueTranslationEntries = { 1: "@c{smile}嘿,你也在这里吗?$@c{smile_eclosed}一路过关斩将,是吧?$@c{serious_mopen_fists}我知道看起来好像我尾随着你来到这里,\n怎么可能啦。$@c{serious_smile_fists}说真的,自从你在老家打败我后,\n我就一直很渴望再比一场。$我自己也进行了很多训练,\n所以这次我肯定会好好打一场。$@c{serious_mopen_fists}不要手下留情,就像以前一样!$让我们开始吧!", }, "victory": { - 1: "@c{neutral_eclosed}哦。我过于自信了。$@c{smile}不过没关系。我猜到可能会这样。$@c{serious_mopen_fists}这只意味着我下次需要更努力!$$@c{smile}呃,不是特意帮你,我正好有多余的这个,\n我觉得你可能想要。$$@c{serious_smile_fists}不过这次之后别指望再有了!$我不能一直给我的对手优势。$@c{smile}反正,保重,要享受活动哦!", + 1: "@c{neutral_eclosed}哦。我过于自信了。$@c{smile}不过没关系。我猜到可能会这样。$@c{serious_mopen_fists}这只意味着我下次需要更努力!$$@c{smile}呃,不是特意帮你,我正好有多余的这个,\n我觉得你可能想要。$$@c{serious_smile_fists}不过这次之后别指望再有了!$我不能一直给我的对手优势。$@c{smile}反正,保重!", }, }, "rival_2_female": { @@ -2487,7 +2487,7 @@ export const PGMdialogue: DialogueTranslationEntries = { 1: "@c{smile_wave}哦,真巧,在这里遇见你。\n看来你还没输过嘛。@c{angry_mopen}哈……好家伙!$@c{angry_mopen}我知道你在想什么,\n不,我才不会跟踪你什么呢。 @c{smile_eclosed}我只是碰巧在附近。$@c{smile_ehalf}我为你感到高兴,但我只想让你知道\n有时输了是可以接受的。$@c{smile}我们从错误中学到的东西\n往往比我们一直成功时学到的还要多。$@c{angry_mopen}无论如何,我为了我们的复赛已经努力训练了\n所以你最好全力以赴!", }, "victory": { - 1: "@c{neutral}我……没打算会输来着……$@c{smile}嗷……好吧。看来我要再更加努力训练了!$@c{smile_wave}我还给你带了个这个$@c{smile_wave_wink}不用谢我哦~.$@c{angry_mopen}不过,这是最后一个啦!\n你可别想再从我这赚小便宜了~$@c{smile_wave}要保重哦,要享受活动哦!", + 1: "@c{neutral}我……没打算会输来着……$@c{smile}嗷……好吧。看来我要再更加努力训练了!$@c{smile_wave}我还给你带了个这个$@c{smile_wave_wink}不用谢我哦~.$@c{angry_mopen}不过,这是最后一个啦!\n你可别想再从我这赚小便宜了~$@c{smile_wave}要保重哦!", }, "defeat": { 1: "输了有时候也不要紧的…", diff --git a/src/locales/zh_CN/settings.ts b/src/locales/zh_CN/settings.ts index 422b1bd591d..d727ac2bef5 100644 --- a/src/locales/zh_CN/settings.ts +++ b/src/locales/zh_CN/settings.ts @@ -98,5 +98,10 @@ export const settings: SimpleTranslationEntries = { "gamepadSupport": "手柄支持", "showBgmBar": "显示音乐名称", "moveTouchControls": "移动触摸控制", - "shopOverlayOpacity": "商店显示不透明度" + "shopOverlayOpacity": "商店显示不透明度", + "shopCursorTarget": "商店指针位置", + "items": "道具", + "reroll": "刷新", + "shop": "购买", + "checkTeam": "检查队伍" } as const; diff --git a/src/locales/zh_TW/ability-trigger.ts b/src/locales/zh_TW/ability-trigger.ts index c0d348633bc..14aa6de1af7 100644 --- a/src/locales/zh_TW/ability-trigger.ts +++ b/src/locales/zh_TW/ability-trigger.ts @@ -46,6 +46,7 @@ export const abilityTriggers: SimpleTranslationEntries = { "postFaintContactDamage": "{{pokemonNameWithAffix}}'s {{abilityName}}\nhurt its attacker!", "postFaintHpDamage": "{{pokemonNameWithAffix}}'s {{abilityName}}\nhurt its attacker!", "postSummonPressure": "{{pokemonNameWithAffix}} is exerting its Pressure!", + "weatherEffectDisappeared": "天氣的影響消失了!", "postSummonMoldBreaker": "{{pokemonNameWithAffix}} breaks the mold!", "postSummonAnticipation": "{{pokemonNameWithAffix}} shuddered!", "postSummonTurboblaze": "{{pokemonNameWithAffix}} is radiating a blazing aura!", diff --git a/src/locales/zh_TW/dialogue.ts b/src/locales/zh_TW/dialogue.ts index 06ccc745a49..cfe43317bb7 100644 --- a/src/locales/zh_TW/dialogue.ts +++ b/src/locales/zh_TW/dialogue.ts @@ -2463,7 +2463,7 @@ export const PGMdialogue: DialogueTranslationEntries = { 1: "@c{smile}嘿,我在找你呢!我知道你急著上路,\n但至少說個再見吧…$@c{smile_eclosed}所以你終於要開始追逐夢想了?\n我幾乎不敢相信。$@c{serious_smile_fists}來都來了,來一場對戰怎麼樣?\n畢竟,我想看看你是不是準備周全了。$@c{serious_mopen_fists}不要手下留情,我想讓你全力以赴!", }, "victory": { - 1: "@c{shock}哇…你徹底擊敗了我。\n你是真初學者嗎?$@c{smile}也許是靠點運氣,但是…\n誰知道,你可能真的能一路走下去。$順便說一下,博士讓我給你這些東西。它們看起來可牛了。$@c{serious_smile_fists}祝你好运!$@c{smile}哦!我希望你能喜歡這次的活動!", + 1: "@c{shock}哇…你徹底擊敗了我。\n你是真初學者嗎?$@c{smile}也許是靠點運氣,但是…\n誰知道,你可能真的能一路走下去。$順便說一下,博士讓我給你這些東西。它們看起來可牛了。$@c{serious_smile_fists}祝你好运!", }, }, "rival_female": { @@ -2471,7 +2471,7 @@ export const PGMdialogue: DialogueTranslationEntries = { 1: "@c{smile_wave}你在這兒啊!我到處找你呢!$@c{angry_mopen}你忘了和你最好的朋友說再見了嗎?$@c{smile_ehalf}你要去追逐夢想了,對吧?\n從今天開始,是不是…$@c{smile}不管怎樣,忘了我的事就原諒你吧,\n但有個條件。@c{smile_wave_wink}你必須和我對戰!$@c{angry_mopen}全力以赴!\n你也不想讓你的冒險在開始之前就結束了,對吧?", }, "victory": { - 1: "@c{shock}你剛開始就已經這麼強了?!@d{96}$@c{angry}你是不是開了?$@c{smile_wave_wink}只是開個玩笑啦!@d{64} @c{smile_eclosed}我輸地心服口服了…\n我感覺你出去挺有天賦的。$@c{smile}順便說一下,博士想讓我給你一些東西。\n希望它們能幫上忙!$@c{smile_wave}像往常一樣盡力而為!\n我相信你!$@c{smile}哦!我希望你能喜歡這次的活動!", + 1: "@c{shock}你剛開始就已經這麼強了?!@d{96}$@c{angry}你是不是開了?$@c{smile_wave_wink}只是開個玩笑啦!@d{64} @c{smile_eclosed}我輸地心服口服了…\n我感覺你出去挺有天賦的。$@c{smile}順便說一下,博士想讓我給你一些東西。\n希望它們能幫上忙!$@c{smile_wave}像往常一樣盡力而為!\n我相信你!", }, }, "rival_2": { @@ -2479,7 +2479,7 @@ export const PGMdialogue: DialogueTranslationEntries = { 1: "@c{smile}嘿,你也在這裡嗎?$@c{smile_eclosed}一路過關斬將,是吧?$@c{serious_mopen_fists}我知道看起來好像我尾隨著你來到這裡,\n怎麼可能啦。$@c{serious_smile_fists}說真的,自從你在老家打敗我後,\n我就一直很渴望再比一場。$我自己也進行了很多訓練,\n所以這次我肯定會好好打一場。$@c{serious_mopen_fists}不要手下留情,就像以前一樣!$讓我們開始吧!", }, "victory": { - 1: "@c{neutral_eclosed}哦。我過於自信了。$@c{smile}不過沒關係。我猜到可能會這樣。$@c{serious_mopen_fists}這只意味著我下次需要更努力!$$@c{smile}呃,不是特意幫你,我正好有多餘的這個,\n我覺得你可能想要。$$@c{serious_smile_fists}不過這次之後別指望再有了!$我不能一直給我的對手優勢。$@c{smile}反正,保重, 要享受活動哦!", + 1: "@c{neutral_eclosed}哦。我過於自信了。$@c{smile}不過沒關係。我猜到可能會這樣。$@c{serious_mopen_fists}這只意味著我下次需要更努力!$$@c{smile}呃,不是特意幫你,我正好有多餘的這個,\n我覺得你可能想要。$$@c{serious_smile_fists}不過這次之後別指望再有了!$我不能一直給我的對手優勢。$@c{smile}反正,保重!", }, }, "rival_2_female": { @@ -2487,7 +2487,7 @@ export const PGMdialogue: DialogueTranslationEntries = { 1: "@c{smile_wave}哦,真巧,在這裡遇見你。\n看來你還沒輸過嘛。@c{angry_mopen}哈……好傢伙!$@c{angry_mopen}我知道你在想什麼,\n不,我才不會跟蹤你什麼呢。 @c{smile_eclosed}我只是碰巧在附近。$@c{smile_ehalf}我為你感到高興,但我只想讓你知道\n有時輸了是可以接受的。$@c{smile}我們從錯誤中學到的東西\n往往比我們一直成功時學到的還要多。$@c{angry_mopen}無論如何,我為了我們的複賽已經努力訓練了\n所以你最好全力以赴!", }, "victory": { - 1: "@c{neutral}我……沒打算會輸來著……$@c{smile}嗷……好吧。看來我要再更加努力訓練了!$@c{smile_wave}我還給你帶了個這個$@c{smile_wave_wink}不用謝我哦~.$@c{angry_mopen}不過,這是最後一個啦!\n 你可別想再從我這賺小便宜了~$@c{smile_wave}要保重哦,要享受活動哦!", + 1: "@c{neutral}我……沒打算會輸來著……$@c{smile}嗷……好吧。看來我要再更加努力訓練了!$@c{smile_wave}我還給你帶了個這個$@c{smile_wave_wink}不用謝我哦~.$@c{angry_mopen}不過,這是最後一個啦!\n 你可別想再從我這賺小便宜了~$@c{smile_wave}要保重哦!", }, "defeat": { 1: "輸了有時候也不要緊的…", diff --git a/src/locales/zh_TW/settings.ts b/src/locales/zh_TW/settings.ts index 35499f45d15..7e6bf25bd7a 100644 --- a/src/locales/zh_TW/settings.ts +++ b/src/locales/zh_TW/settings.ts @@ -98,5 +98,10 @@ export const settings: SimpleTranslationEntries = { "gamepadSupport": "手柄支持", "showBgmBar": "Show Music Names", "moveTouchControls": "移動觸控控制", - "shopOverlayOpacity": "Shop Overlay Opacity" + "shopOverlayOpacity": "Shop Overlay Opacity", + "shopCursorTarget": "Shop Cursor Target", + "items": "Items", + "reroll": "Reroll", + "shop": "Shop", + "checkTeam": "Check Team" } as const; diff --git a/src/phases/select-modifier-phase.ts b/src/phases/select-modifier-phase.ts index 67ae904fb58..57b842e7b38 100644 --- a/src/phases/select-modifier-phase.ts +++ b/src/phases/select-modifier-phase.ts @@ -205,7 +205,7 @@ export class SelectModifierPhase extends BattlePhase { return true; } - getRerollCost(typeOptions: ModifierTypeOption[], lockRarities: boolean): integer { + getRerollCost(typeOptions: ModifierTypeOption[], lockRarities: boolean): number { let baseValue = 0; if (Overrides.WAIVE_ROLL_FEE_OVERRIDE) { return baseValue; diff --git a/src/system/settings/settings.ts b/src/system/settings/settings.ts index 7263ae3a3de..4bd69788f04 100644 --- a/src/system/settings/settings.ts +++ b/src/system/settings/settings.ts @@ -9,6 +9,7 @@ import { EaseType } from "#enums/ease-type"; import { MoneyFormat } from "#enums/money-format"; import { PlayerGender } from "#enums/player-gender"; import { getIsInitialized, initI18n } from "#app/plugins/i18n.js"; +import { ShopCursorTarget } from "#app/enums/shop-cursor-target"; function getTranslation(key: string): string { if (!getIsInitialized()) { @@ -102,6 +103,7 @@ export const SettingKeys = { Damage_Numbers: "DAMAGE_NUMBERS", Move_Animations: "MOVE_ANIMATIONS", Show_Stats_on_Level_Up: "SHOW_LEVEL_UP_STATS", + Reroll_Target: "REROLL_TARGET", Candy_Upgrade_Notification: "CANDY_UPGRADE_NOTIFICATION", Candy_Upgrade_Display: "CANDY_UPGRADE_DISPLAY", Move_Info: "MOVE_INFO", @@ -577,6 +579,30 @@ export const Setting: Array = [ activatable: true, isHidden: () => !hasTouchscreen() }, + { + key: SettingKeys.Reroll_Target, + label: i18next.t("settings:shopCursorTarget"), + options: [ + { + value:"Reroll", + label: i18next.t("settings:reroll") + }, + { + value:"Items", + label: i18next.t("settings:items") + }, + { + value:"Shop", + label: i18next.t("settings:shop") + }, + { + value:"Check Team", + label: i18next.t("settings:checkTeam") + } + ], + default: ShopCursorTarget.CHECK_TEAM, + type: SettingType.DISPLAY + }, { key: SettingKeys.Shop_Overlay_Opacity, label: i18next.t("settings:shopOverlayOpacity"), @@ -709,6 +735,8 @@ export function setSetting(scene: BattleScene, setting: string, value: integer): case SettingKeys.Show_Stats_on_Level_Up: scene.showLevelUpStats = Setting[index].options[value].value === "On"; break; + case SettingKeys.Reroll_Target: + scene.shopCursorTarget = value; case SettingKeys.EXP_Gains_Speed: scene.expGainsSpeed = value; break; diff --git a/src/test/abilities/moody.test.ts b/src/test/abilities/moody.test.ts new file mode 100644 index 00000000000..9e936e8100a --- /dev/null +++ b/src/test/abilities/moody.test.ts @@ -0,0 +1,93 @@ +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 { SPLASH_ONLY } from "#test/utils/testUtils"; +import Phaser from "phaser"; +import { afterEach, beforeAll, beforeEach, describe, expect, it } from "vitest"; + +describe("Abilities - Moody", () => { + let phaserGame: Phaser.Game; + let game: GameManager; + + const battleStatsArray = [BattleStat.ATK, BattleStat.DEF, BattleStat.SPATK, BattleStat.SPDEF, BattleStat.SPD]; + + beforeAll(() => { + phaserGame = new Phaser.Game({ + type: Phaser.HEADLESS, + }); + }); + + afterEach(() => { + game.phaseInterceptor.restoreOg(); + }); + + beforeEach(() => { + game = new GameManager(phaserGame); + + game.override + .battleType("single") + .enemySpecies(Species.RATTATA) + .enemyAbility(Abilities.BALL_FETCH) + .enemyPassiveAbility(Abilities.HYDRATION) + .ability(Abilities.MOODY) + .enemyMoveset(SPLASH_ONLY) + .moveset(SPLASH_ONLY); + }); + + it( + "should increase one BattleStat by 2 stages and decrease a different BattleStat by 1 stage", + async () => { + await game.startBattle(); + + const playerPokemon = game.scene.getPlayerPokemon()!; + game.move.select(Moves.SPLASH); + await game.toNextTurn(); + + // Find the increased and decreased stats, make sure they are different. + const statChanges = playerPokemon.summonData.battleStats; + const changedStats = battleStatsArray.filter(bs => statChanges[bs] === 2 || statChanges[bs] === -1); + + expect(changedStats).toBeTruthy(); + expect(changedStats.length).toBe(2); + expect(changedStats[0] !== changedStats[1]).toBeTruthy(); + }); + + it( + "should only increase one BattleStat by 2 stages if all BattleStats are at -6", + async () => { + await game.startBattle(); + + const playerPokemon = game.scene.getPlayerPokemon()!; + // Set all BattleStats to -6 + battleStatsArray.forEach(bs => playerPokemon.summonData.battleStats[bs] = -6); + + game.move.select(Moves.SPLASH); + await game.toNextTurn(); + + // Should increase one BattleStat by 2 (from -6, meaning it will be -4) + const increasedStat = battleStatsArray.filter(bs => playerPokemon.summonData.battleStats[bs] === -4); + + expect(increasedStat).toBeTruthy(); + expect(increasedStat.length).toBe(1); + }); + + it( + "should only decrease one BattleStat by 1 stage if all BattleStats are at 6", + async () => { + await game.startBattle(); + + const playerPokemon = game.scene.getPlayerPokemon()!; + // Set all BattleStats to 6 + battleStatsArray.forEach(bs => playerPokemon.summonData.battleStats[bs] = 6); + + game.move.select(Moves.SPLASH); + await game.toNextTurn(); + + // Should decrease one BattleStat by 1 (from 6, meaning it will be 5) + const decreasedStat = battleStatsArray.filter(bs => playerPokemon.summonData.battleStats[bs] === 5); + expect(decreasedStat).toBeTruthy(); + expect(decreasedStat.length).toBe(1); + }); +}); diff --git a/src/ui/modifier-select-ui-handler.ts b/src/ui/modifier-select-ui-handler.ts index 016708027ca..bb1f970fe1c 100644 --- a/src/ui/modifier-select-ui-handler.ts +++ b/src/ui/modifier-select-ui-handler.ts @@ -12,6 +12,7 @@ import { allMoves } from "../data/move"; import * as Utils from "./../utils"; import Overrides from "#app/overrides"; import i18next from "i18next"; +import { ShopCursorTarget } from "#app/enums/shop-cursor-target"; export const SHOP_OPTIONS_ROW_LIMIT = 6; @@ -249,11 +250,22 @@ export default class ModifierSelectUiHandler extends AwaitableUiHandler { duration: 250 }); - this.setCursor(0); - this.setRowCursor(1); + const updateCursorTarget = () => { + if (this.scene.shopCursorTarget === ShopCursorTarget.CHECK_TEAM) { + this.setRowCursor(0); + this.setCursor(2); + } else { + this.setRowCursor(this.scene.shopCursorTarget); + this.setCursor(0); + } + }; - handleTutorial(this.scene, Tutorial.Select_Item).then(() => { - this.setCursor(0); + updateCursorTarget(); + + handleTutorial(this.scene, Tutorial.Select_Item).then((res) => { + if (res) { + updateCursorTarget(); + } this.awaitingActionInput = true; this.onActionInput = args[2]; }); diff --git a/src/ui/starter-select-ui-handler.ts b/src/ui/starter-select-ui-handler.ts index 67e870838a2..bc809d8c686 100644 --- a/src/ui/starter-select-ui-handler.ts +++ b/src/ui/starter-select-ui-handler.ts @@ -13,7 +13,7 @@ import { allMoves } from "../data/move"; import { Nature, getNatureName } from "../data/nature"; import { pokemonFormChanges } from "../data/pokemon-forms"; import { LevelMoves, pokemonFormLevelMoves, pokemonSpeciesLevelMoves } from "../data/pokemon-level-moves"; -import PokemonSpecies, { allSpecies, getPokemonSpecies, getPokemonSpeciesForm, getStarterValueFriendshipCap, speciesStarters, starterPassiveAbilities } from "../data/pokemon-species"; +import PokemonSpecies, { allSpecies, getPokemonSpeciesForm, getStarterValueFriendshipCap, speciesStarters, starterPassiveAbilities, getPokerusStarters } from "../data/pokemon-species"; import { Type } from "../data/type"; import { GameModes } from "../game-mode"; import { AbilityAttr, DexAttr, DexAttrProps, DexEntry, StarterMoveset, StarterAttributes, StarterPreferences, StarterPrefs } from "../system/game-data"; @@ -872,38 +872,6 @@ export default class StarterSelectUiHandler extends MessageUiHandler { this.message.setOrigin(0, 0); this.starterSelectMessageBoxContainer.add(this.message); - const date = new Date(); - date.setUTCHours(0, 0, 0, 0); - - this.scene.executeWithSeedOffset(() => { - for (let c = 0; c < 3; c++) { - let randomSpeciesId: Species; - let species: PokemonSpecies | undefined; - - const generateSpecies = () => { - randomSpeciesId = Utils.randSeedItem(starterSpecies); - species = getPokemonSpecies(randomSpeciesId); - }; - - let dupe = false; - - do { - dupe = false; - - generateSpecies(); - - for (let ps = 0; ps < c; ps++) { - if (this.pokerusSpecies[ps] === species) { - dupe = true; - break; - } - } - } while (dupe); - - this.pokerusSpecies.push(species!); // TODO: is the bang correct? - } - }, 0, date.getTime().toString()); - this.statsContainer = new StatsContainer(this.scene, 6, 16); this.scene.add.existing(this.statsContainer); @@ -934,6 +902,8 @@ export default class StarterSelectUiHandler extends MessageUiHandler { this.starterPreferences = StarterPrefs.load(); } this.moveInfoOverlay.clear(); // clear this when removing a menu; the cancel button doesn't seem to trigger this automatically on controllers + this.pokerusSpecies = getPokerusStarters(this.scene); + if (args.length >= 1 && args[0] instanceof Function) { super.show(args); this.starterSelectCallback = args[0] as StarterSelectCallback;