From 95025f315a08f4f7313155e4cb6d88114018dc67 Mon Sep 17 00:00:00 2001 From: David Em-Yinn Date: Sat, 15 Feb 2025 18:39:11 -0800 Subject: [PATCH 1/2] bugfix: allow mystery encounter part timer rewards to account for amulet coin --- .../encounters/part-timer-encounter.ts | 49 ++++++++++--------- 1 file changed, 25 insertions(+), 24 deletions(-) diff --git a/src/data/mystery-encounters/encounters/part-timer-encounter.ts b/src/data/mystery-encounters/encounters/part-timer-encounter.ts index 1074eaf8c81..53f49059a70 100644 --- a/src/data/mystery-encounters/encounters/part-timer-encounter.ts +++ b/src/data/mystery-encounters/encounters/part-timer-encounter.ts @@ -22,6 +22,8 @@ import type { PlayerPokemon } from "#app/field/pokemon"; import type Pokemon from "#app/field/pokemon"; import { CLASSIC_MODE_MYSTERY_ENCOUNTER_WAVES } from "#app/constants"; import { isPokemonValidForEncounterOptionSelection } from "#app/data/mystery-encounters/utils/encounter-pokemon-utils"; +import { MoneyMultiplierModifier } from "#app/modifier/modifier"; +import * as Utils from "#app/utils"; /** the i18n namespace for the encounter */ const namespace = "mysteryEncounters/partTimer"; @@ -147,13 +149,9 @@ export const PartTimerEncounter: MysteryEncounter = MysteryEncounterBuilder.with } else { await showEncounterDialogue(`${namespace}:job_complete_bad`, `${namespace}:speaker`); } - const moneyChange = globalScene.getWaveMoneyAmount(moneyMultiplier); - updatePlayerMoney(moneyChange, true, false); - await showEncounterText( - i18next.t("mysteryEncounterMessages:receive_money", { - amount: moneyChange, - }), - ); + + const formattedMoneyAmount = applyMoneyMultipliers(moneyMultiplier); + await showEncounterText(i18next.t("mysteryEncounterMessages:receive_money", { amount: formattedMoneyAmount })); await showEncounterText(`${namespace}:pokemon_tired`); setEncounterRewards({ fillRemaining: true }); @@ -229,13 +227,9 @@ export const PartTimerEncounter: MysteryEncounter = MysteryEncounterBuilder.with } else { await showEncounterDialogue(`${namespace}:job_complete_bad`, `${namespace}:speaker`); } - const moneyChange = globalScene.getWaveMoneyAmount(moneyMultiplier); - updatePlayerMoney(moneyChange, true, false); - await showEncounterText( - i18next.t("mysteryEncounterMessages:receive_money", { - amount: moneyChange, - }), - ); + + const formattedMoneyAmount = applyMoneyMultipliers(moneyMultiplier); + await showEncounterText(i18next.t("mysteryEncounterMessages:receive_money", { amount: formattedMoneyAmount })); await showEncounterText(`${namespace}:pokemon_tired`); setEncounterRewards({ fillRemaining: true }); @@ -282,16 +276,12 @@ export const PartTimerEncounter: MysteryEncounter = MysteryEncounterBuilder.with // Bring visuals back in await transitionMysteryEncounterIntroVisuals(false, false); - // Give money and do dialogue - await showEncounterDialogue(`${namespace}:job_complete_good`, `${namespace}:speaker`); - const moneyChange = globalScene.getWaveMoneyAmount(2.5); - updatePlayerMoney(moneyChange, true, false); - await showEncounterText( - i18next.t("mysteryEncounterMessages:receive_money", { - amount: moneyChange, - }), - ); - await showEncounterText(`${namespace}:pokemon_tired`); + // Give money and do dialogue + await showEncounterDialogue(`${namespace}:job_complete_good`, `${namespace}:speaker`); + + const formattedMoneyAmount = applyMoneyMultipliers(2.5); + await showEncounterText(i18next.t("mysteryEncounterMessages:receive_money", { amount: formattedMoneyAmount })); + await showEncounterText(`${namespace}:pokemon_tired`); setEncounterRewards({ fillRemaining: true }); leaveEncounterWithoutBattle(); @@ -354,3 +344,14 @@ function doSalesSfx() { globalScene.playSound("battle_anims/PRSFX- Attract2"); }); } + +function applyMoneyMultipliers(moneyMultiplier) { + const moneyChange = new Utils.IntegerHolder(globalScene.getWaveMoneyAmount(moneyMultiplier)); + globalScene.applyModifiers(MoneyMultiplierModifier, true, moneyChange); + updatePlayerMoney(moneyChange.value, true, false); + + const userLocale = navigator.language || "en-US"; + const formattedMoneyAmount = moneyChange.value.toLocaleString(userLocale); + + return formattedMoneyAmount; +} From 8679f82367bb749cfa8a4994b52e8858faefed61 Mon Sep 17 00:00:00 2001 From: NightKev <34855794+DayKev@users.noreply.github.com> Date: Thu, 29 May 2025 21:53:28 -0700 Subject: [PATCH 2/2] Apply Biome --- .../encounters/part-timer-encounter.ts | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/src/data/mystery-encounters/encounters/part-timer-encounter.ts b/src/data/mystery-encounters/encounters/part-timer-encounter.ts index 53f49059a70..6e72d56e259 100644 --- a/src/data/mystery-encounters/encounters/part-timer-encounter.ts +++ b/src/data/mystery-encounters/encounters/part-timer-encounter.ts @@ -23,7 +23,7 @@ import type Pokemon from "#app/field/pokemon"; import { CLASSIC_MODE_MYSTERY_ENCOUNTER_WAVES } from "#app/constants"; import { isPokemonValidForEncounterOptionSelection } from "#app/data/mystery-encounters/utils/encounter-pokemon-utils"; import { MoneyMultiplierModifier } from "#app/modifier/modifier"; -import * as Utils from "#app/utils"; +import { NumberHolder } from "#app/utils/common"; /** the i18n namespace for the encounter */ const namespace = "mysteryEncounters/partTimer"; @@ -276,12 +276,12 @@ export const PartTimerEncounter: MysteryEncounter = MysteryEncounterBuilder.with // Bring visuals back in await transitionMysteryEncounterIntroVisuals(false, false); - // Give money and do dialogue - await showEncounterDialogue(`${namespace}:job_complete_good`, `${namespace}:speaker`); + // Give money and do dialogue + await showEncounterDialogue(`${namespace}:job_complete_good`, `${namespace}:speaker`); - const formattedMoneyAmount = applyMoneyMultipliers(2.5); - await showEncounterText(i18next.t("mysteryEncounterMessages:receive_money", { amount: formattedMoneyAmount })); - await showEncounterText(`${namespace}:pokemon_tired`); + const formattedMoneyAmount = applyMoneyMultipliers(2.5); + await showEncounterText(i18next.t("mysteryEncounterMessages:receive_money", { amount: formattedMoneyAmount })); + await showEncounterText(`${namespace}:pokemon_tired`); setEncounterRewards({ fillRemaining: true }); leaveEncounterWithoutBattle(); @@ -346,7 +346,7 @@ function doSalesSfx() { } function applyMoneyMultipliers(moneyMultiplier) { - const moneyChange = new Utils.IntegerHolder(globalScene.getWaveMoneyAmount(moneyMultiplier)); + const moneyChange = new NumberHolder(globalScene.getWaveMoneyAmount(moneyMultiplier)); globalScene.applyModifiers(MoneyMultiplierModifier, true, moneyChange); updatePlayerMoney(moneyChange.value, true, false);