This commit is contained in:
fabske0 2025-08-11 10:55:41 +02:00 committed by GitHub
commit c51f2c4231
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
49 changed files with 178 additions and 178 deletions

View File

@ -82,7 +82,7 @@ export const ATrainersTestEncounter: MysteryEncounter = MysteryEncounterBuilder.
encounter.dialogue.intro = [
{
speaker: `trainerNames:${trainerNameKey}`,
text: `${namespace}:${trainerNameKey}.intro_dialogue`,
text: `${namespace}:${trainerNameKey}.introDialogue`,
},
];
encounter.options[0].dialogue!.selected = [

View File

@ -237,7 +237,7 @@ export const AbsoluteAvariceEncounter: MysteryEncounter = MysteryEncounterBuilde
modifierConfigs: bossModifierConfigs,
tags: [BattlerTagType.MYSTERY_ENCOUNTER_POST_SUMMON],
mysteryEncounterBattleEffects: (pokemon: Pokemon) => {
queueEncounterMessage(`${namespace}:option.1.boss_enraged`);
queueEncounterMessage(`${namespace}:option.1.bossEnraged`);
globalScene.phaseManager.unshiftNew(
"StatStageChangePhase",
pokemon.getBattlerIndex(),
@ -300,7 +300,7 @@ export const AbsoluteAvariceEncounter: MysteryEncounter = MysteryEncounterBuilde
globalScene.addModifier(seedModifier, false, false, false, true);
}
});
queueEncounterMessage(`${namespace}:option.1.food_stash`);
queueEncounterMessage(`${namespace}:option.1.foodStash`);
};
setEncounterRewards({ fillRemaining: true }, undefined, givePartyPokemonReviverSeeds);

View File

@ -71,7 +71,7 @@ export const AnOfferYouCantRefuseEncounter: MysteryEncounter = MysteryEncounterB
text: `${namespace}:intro`,
},
{
text: `${namespace}:intro_dialogue`,
text: `${namespace}:introDialogue`,
speaker: `${namespace}:speaker`,
},
])
@ -152,7 +152,7 @@ export const AnOfferYouCantRefuseEncounter: MysteryEncounter = MysteryEncounterB
.withDialogue({
buttonLabel: `${namespace}:option.2.label`,
buttonTooltip: `${namespace}:option.2.tooltip`,
disabledButtonTooltip: `${namespace}:option.2.tooltip_disabled`,
disabledButtonTooltip: `${namespace}:option.2.tooltipDisabled`,
selected: [
{
speaker: `${namespace}:speaker`,

View File

@ -254,7 +254,7 @@ export const BerriesAboundEncounter: MysteryEncounter = MysteryEncounterBuilder.
undefined,
doBerryRewards,
);
await showEncounterText(`${namespace}:option.2.selected_bad`);
await showEncounterText(`${namespace}:option.2.selectedBad`);
await initBattleWithEnemyConfig(config);
return;
}

View File

@ -198,7 +198,7 @@ export const BugTypeSuperfanEncounter: MysteryEncounter = MysteryEncounterBuilde
},
{
speaker: `${namespace}:speaker`,
text: `${namespace}:intro_dialogue`,
text: `${namespace}:introDialogue`,
},
])
.withOnInit(() => {
@ -312,7 +312,7 @@ export const BugTypeSuperfanEncounter: MysteryEncounter = MysteryEncounterBuilde
.withDialogue({
buttonLabel: `${namespace}:option.2.label`,
buttonTooltip: `${namespace}:option.2.tooltip`,
disabledButtonTooltip: `${namespace}:option.2.disabled_tooltip`,
disabledButtonTooltip: `${namespace}:option.2.disabledTooltip`,
})
.withPreOptionPhase(async () => {
// Player shows off their bug types
@ -333,7 +333,7 @@ export const BugTypeSuperfanEncounter: MysteryEncounter = MysteryEncounterBuilde
encounter.selectedOption!.dialogue!.selected = [
{
speaker: `${namespace}:speaker`,
text: `${namespace}:option.2.selected_0_to_1`,
text: `${namespace}:option.2.selected0To1`,
},
];
} else if (numBugTypes < 4) {
@ -344,7 +344,7 @@ export const BugTypeSuperfanEncounter: MysteryEncounter = MysteryEncounterBuilde
encounter.selectedOption!.dialogue!.selected = [
{
speaker: `${namespace}:speaker`,
text: `${namespace}:option.2.selected_2_to_3`,
text: `${namespace}:option.2.selected2To3`,
},
];
} else if (numBugTypes < 6) {
@ -355,7 +355,7 @@ export const BugTypeSuperfanEncounter: MysteryEncounter = MysteryEncounterBuilde
encounter.selectedOption!.dialogue!.selected = [
{
speaker: `${namespace}:speaker`,
text: `${namespace}:option.2.selected_4_to_5`,
text: `${namespace}:option.2.selected4To5`,
},
];
} else {
@ -398,7 +398,7 @@ export const BugTypeSuperfanEncounter: MysteryEncounter = MysteryEncounterBuilde
encounter.selectedOption!.dialogue!.selected = [
{
speaker: `${namespace}:speaker`,
text: `${namespace}:option.2.selected_6`,
text: `${namespace}:option.2.selected6`,
},
];
}
@ -421,17 +421,17 @@ export const BugTypeSuperfanEncounter: MysteryEncounter = MysteryEncounterBuilde
.withDialogue({
buttonLabel: `${namespace}:option.3.label`,
buttonTooltip: `${namespace}:option.3.tooltip`,
disabledButtonTooltip: `${namespace}:option.3.disabled_tooltip`,
disabledButtonTooltip: `${namespace}:option.3.disabledTooltip`,
selected: [
{
text: `${namespace}:option.3.selected`,
},
{
speaker: `${namespace}:speaker`,
text: `${namespace}:option.3.selected_dialogue`,
text: `${namespace}:option.3.selectedDialogue`,
},
],
secondOptionPrompt: `${namespace}:option.3.select_prompt`,
secondOptionPrompt: `${namespace}:option.3.selectPrompt`,
})
.withPreOptionPhase(async (): Promise<boolean> => {
const encounter = globalScene.currentBattle.mysteryEncounter!;
@ -476,7 +476,7 @@ export const BugTypeSuperfanEncounter: MysteryEncounter = MysteryEncounterBuilde
);
});
if (!hasValidItem) {
return getEncounterText(`${namespace}:option.3.invalid_selection`) ?? null;
return getEncounterText(`${namespace}:option.3.invalidSelection`) ?? null;
}
return null;
@ -713,7 +713,7 @@ function doBugTypeMoveTutor(): Promise<void> {
// biome-ignore lint/suspicious/noAsyncPromiseExecutor: TODO explain
return new Promise<void>(async resolve => {
const moveOptions = globalScene.currentBattle.mysteryEncounter!.misc.moveTutorOptions;
await showEncounterDialogue(`${namespace}:battle_won`, `${namespace}:speaker`);
await showEncounterDialogue(`${namespace}:battleWon`, `${namespace}:speaker`);
const moveInfoOverlay = new MoveInfoOverlay({
delayVisibility: false,
@ -748,7 +748,7 @@ function doBugTypeMoveTutor(): Promise<void> {
const result = await selectOptionThenPokemon(
optionSelectItems,
`${namespace}:teach_move_prompt`,
`${namespace}:teachMovePrompt`,
undefined,
onHoverOverCancel,
);

View File

@ -119,7 +119,7 @@ export const ClowningAroundEncounter: MysteryEncounter = MysteryEncounterBuilder
text: `${namespace}:intro`,
},
{
text: `${namespace}:intro_dialogue`,
text: `${namespace}:introDialogue`,
speaker: `${namespace}:speaker`,
},
])
@ -233,7 +233,7 @@ export const ClowningAroundEncounter: MysteryEncounter = MysteryEncounterBuilder
// After the battle, offer the player the opportunity to permanently swap ability
const abilityWasSwapped = await handleSwapAbility();
if (abilityWasSwapped) {
await showEncounterText(`${namespace}:option.1.ability_gained`);
await showEncounterText(`${namespace}:option.1.abilityGained`);
}
// Play animations once ability swap is complete
@ -267,10 +267,10 @@ export const ClowningAroundEncounter: MysteryEncounter = MysteryEncounterBuilder
speaker: `${namespace}:speaker`,
},
{
text: `${namespace}:option.2.selected_2`,
text: `${namespace}:option.2.selected2`,
},
{
text: `${namespace}:option.2.selected_3`,
text: `${namespace}:option.2.selected3`,
speaker: `${namespace}:speaker`,
},
],
@ -359,10 +359,10 @@ export const ClowningAroundEncounter: MysteryEncounter = MysteryEncounterBuilder
speaker: `${namespace}:speaker`,
},
{
text: `${namespace}:option.3.selected_2`,
text: `${namespace}:option.3.selected2`,
},
{
text: `${namespace}:option.3.selected_3`,
text: `${namespace}:option.3.selected3`,
speaker: `${namespace}:speaker`,
},
],
@ -432,8 +432,8 @@ export const ClowningAroundEncounter: MysteryEncounter = MysteryEncounterBuilder
async function handleSwapAbility() {
// biome-ignore lint/suspicious/noAsyncPromiseExecutor: TODO: Consider refactoring to avoid async promise executor
return new Promise<boolean>(async resolve => {
await showEncounterDialogue(`${namespace}:option.1.apply_ability_dialogue`, `${namespace}:speaker`);
await showEncounterText(`${namespace}:option.1.apply_ability_message`);
await showEncounterDialogue(`${namespace}:option.1.applyAbilityDialogue`, `${namespace}:speaker`);
await showEncounterText(`${namespace}:option.1.applyAbilityMessage`);
globalScene.ui.setMode(UiMode.MESSAGE).then(() => {
displayYesNoOptions(resolve);
@ -442,7 +442,7 @@ async function handleSwapAbility() {
}
function displayYesNoOptions(resolve) {
showEncounterText(`${namespace}:option.1.ability_prompt`, null, 500, false);
showEncounterText(`${namespace}:option.1.abilityPrompt`, null, 500, false);
const fullOptions = [
{
label: i18next.t("menu:yes"),

View File

@ -174,7 +174,7 @@ export const DancingLessonsEncounter: MysteryEncounter = MysteryEncounterBuilder
// Gets +1 to all stats except SPD on battle start
tags: [BattlerTagType.MYSTERY_ENCOUNTER_POST_SUMMON],
mysteryEncounterBattleEffects: (pokemon: Pokemon) => {
queueEncounterMessage(`${namespace}:option.1.boss_enraged`);
queueEncounterMessage(`${namespace}:option.1.bossEnraged`);
globalScene.phaseManager.unshiftNew(
"StatStageChangePhase",
pokemon.getBattlerIndex(),
@ -273,8 +273,8 @@ export const DancingLessonsEncounter: MysteryEncounter = MysteryEncounterBuilder
.withDialogue({
buttonLabel: `${namespace}:option.3.label`,
buttonTooltip: `${namespace}:option.3.tooltip`,
disabledButtonTooltip: `${namespace}:option.3.disabled_tooltip`,
secondOptionPrompt: `${namespace}:option.3.select_prompt`,
disabledButtonTooltip: `${namespace}:option.3.disabledTooltip`,
secondOptionPrompt: `${namespace}:option.3.selectPrompt`,
selected: [
{
text: `${namespace}:option.3.selected`,
@ -316,7 +316,7 @@ export const DancingLessonsEncounter: MysteryEncounter = MysteryEncounterBuilder
}
const meetsReqs = encounter.options[2].pokemonMeetsPrimaryRequirements(pokemon);
if (!meetsReqs) {
return getEncounterText(`${namespace}:invalid_selection`) ?? null;
return getEncounterText(`${namespace}:invalidSelection`) ?? null;
}
return null;

View File

@ -118,7 +118,7 @@ export const DarkDealEncounter: MysteryEncounter = MysteryEncounterBuilder.withE
},
{
speaker: `${namespace}:speaker`,
text: `${namespace}:intro_dialogue`,
text: `${namespace}:introDialogue`,
},
])
.withSceneWaveRangeRequirement(30, CLASSIC_MODE_MYSTERY_ENCOUNTER_WAVES[1])
@ -136,10 +136,10 @@ export const DarkDealEncounter: MysteryEncounter = MysteryEncounterBuilder.withE
selected: [
{
speaker: `${namespace}:speaker`,
text: `${namespace}:option.1.selected_dialogue`,
text: `${namespace}:option.1.selectedDialogue`,
},
{
text: `${namespace}:option.1.selected_message`,
text: `${namespace}:option.1.selectedMessage`,
},
],
})

View File

@ -193,7 +193,7 @@ export const DelibirdyEncounter: MysteryEncounter = MysteryEncounterBuilder.with
.withDialogue({
buttonLabel: `${namespace}:option.2.label`,
buttonTooltip: `${namespace}:option.2.tooltip`,
secondOptionPrompt: `${namespace}:option.2.select_prompt`,
secondOptionPrompt: `${namespace}:option.2.selectPrompt`,
selected: [
{
text: `${namespace}:option.2.selected`,
@ -229,7 +229,7 @@ export const DelibirdyEncounter: MysteryEncounter = MysteryEncounterBuilder.with
// If pokemon has valid item, it can be selected
const meetsReqs = encounter.options[1].pokemonMeetsPrimaryRequirements(pokemon);
if (!meetsReqs) {
return getEncounterText(`${namespace}:invalid_selection`) ?? null;
return getEncounterText(`${namespace}:invalidSelection`) ?? null;
}
return null;
@ -303,7 +303,7 @@ export const DelibirdyEncounter: MysteryEncounter = MysteryEncounterBuilder.with
.withDialogue({
buttonLabel: `${namespace}:option.3.label`,
buttonTooltip: `${namespace}:option.3.tooltip`,
secondOptionPrompt: `${namespace}:option.3.select_prompt`,
secondOptionPrompt: `${namespace}:option.3.selectPrompt`,
selected: [
{
text: `${namespace}:option.3.selected`,
@ -341,7 +341,7 @@ export const DelibirdyEncounter: MysteryEncounter = MysteryEncounterBuilder.with
// If pokemon has valid item, it can be selected
const meetsReqs = encounter.options[2].pokemonMeetsPrimaryRequirements(pokemon);
if (!meetsReqs) {
return getEncounterText(`${namespace}:invalid_selection`) ?? null;
return getEncounterText(`${namespace}:invalidSelection`) ?? null;
}
return null;

View File

@ -43,7 +43,7 @@ export const DepartmentStoreSaleEncounter: MysteryEncounter = MysteryEncounterBu
text: `${namespace}:intro`,
},
{
text: `${namespace}:intro_dialogue`,
text: `${namespace}:introDialogue`,
speaker: `${namespace}:speaker`,
},
])

View File

@ -56,7 +56,7 @@ export const FieldTripEncounter: MysteryEncounter = MysteryEncounterBuilder.with
text: `${namespace}:intro`,
},
{
text: `${namespace}:intro_dialogue`,
text: `${namespace}:introDialogue`,
speaker: `${namespace}:speaker`,
},
])
@ -70,7 +70,7 @@ export const FieldTripEncounter: MysteryEncounter = MysteryEncounterBuilder.with
.withDialogue({
buttonLabel: `${namespace}:option.1.label`,
buttonTooltip: `${namespace}:option.1.tooltip`,
secondOptionPrompt: `${namespace}:second_option_prompt`,
secondOptionPrompt: `${namespace}:secondOptionPrompt`,
})
.withPreOptionPhase(async (): Promise<boolean> => {
const encounter = globalScene.currentBattle.mysteryEncounter!;
@ -118,7 +118,7 @@ export const FieldTripEncounter: MysteryEncounter = MysteryEncounterBuilder.with
.withDialogue({
buttonLabel: `${namespace}:option.2.label`,
buttonTooltip: `${namespace}:option.2.tooltip`,
secondOptionPrompt: `${namespace}:second_option_prompt`,
secondOptionPrompt: `${namespace}:secondOptionPrompt`,
})
.withPreOptionPhase(async (): Promise<boolean> => {
const encounter = globalScene.currentBattle.mysteryEncounter!;
@ -166,7 +166,7 @@ export const FieldTripEncounter: MysteryEncounter = MysteryEncounterBuilder.with
.withDialogue({
buttonLabel: `${namespace}:option.3.label`,
buttonTooltip: `${namespace}:option.3.tooltip`,
secondOptionPrompt: `${namespace}:second_option_prompt`,
secondOptionPrompt: `${namespace}:secondOptionPrompt`,
})
.withPreOptionPhase(async (): Promise<boolean> => {
const encounter = globalScene.currentBattle.mysteryEncounter!;
@ -226,7 +226,7 @@ function pokemonAndMoveChosen(pokemon: PlayerPokemon, move: PokemonMove, correct
speaker: `${namespace}:speaker`,
},
{
text: `${namespace}:incorrect_exp`,
text: `${namespace}:incorrectExp`,
},
];
setEncounterExp(
@ -243,7 +243,7 @@ function pokemonAndMoveChosen(pokemon: PlayerPokemon, move: PokemonMove, correct
speaker: `${namespace}:speaker`,
},
{
text: `${namespace}:correct_exp`,
text: `${namespace}:correctExp`,
},
];
setEncounterExp([pokemon.id], 100);

View File

@ -247,7 +247,7 @@ export const FieryFalloutEncounter: MysteryEncounter = MysteryEncounterBuilder.w
// Burn applied
encounter.setDialogueToken("burnedPokemon", chosenPokemon.getNameToRender());
encounter.setDialogueToken("abilityName", allAbilities[AbilityId.HEATPROOF].name);
queueEncounterMessage(`${namespace}:option.2.target_burned`);
queueEncounterMessage(`${namespace}:option.2.targetBurned`);
// Also permanently change the burned Pokemon's ability to Heatproof
applyAbilityOverrideToPokemon(chosenPokemon, AbilityId.HEATPROOF);
@ -269,7 +269,7 @@ export const FieryFalloutEncounter: MysteryEncounter = MysteryEncounterBuilder.w
.withDialogue({
buttonLabel: `${namespace}:option.3.label`,
buttonTooltip: `${namespace}:option.3.tooltip`,
disabledButtonTooltip: `${namespace}:option.3.disabled_tooltip`,
disabledButtonTooltip: `${namespace}:option.3.disabledTooltip`,
selected: [
{
text: `${namespace}:option.3.selected`,
@ -313,6 +313,6 @@ function giveLeadPokemonAttackTypeBoostItem() {
const encounter = globalScene.currentBattle.mysteryEncounter!;
encounter.setDialogueToken("itemName", boosterModifierType.name);
encounter.setDialogueToken("leadPokemon", leadPokemon.getNameToRender());
queueEncounterMessage(`${namespace}:found_item`);
queueEncounterMessage(`${namespace}:foundItem`);
}
}

View File

@ -69,7 +69,7 @@ export const FightOrFlightEncounter: MysteryEncounter = MysteryEncounterBuilder.
isBoss: true,
tags: [BattlerTagType.MYSTERY_ENCOUNTER_POST_SUMMON],
mysteryEncounterBattleEffects: (pokemon: Pokemon) => {
queueEncounterMessage(`${namespace}:option.1.stat_boost`);
queueEncounterMessage(`${namespace}:option.1.statBoost`);
// Randomly boost 1 stat 2 stages
// Cannot boost Spd, Acc, or Evasion
globalScene.phaseManager.unshiftNew(
@ -165,7 +165,7 @@ export const FightOrFlightEncounter: MysteryEncounter = MysteryEncounterBuilder.
.withDialogue({
buttonLabel: `${namespace}:option.2.label`,
buttonTooltip: `${namespace}:option.2.tooltip`,
disabledButtonTooltip: `${namespace}:option.2.disabled_tooltip`,
disabledButtonTooltip: `${namespace}:option.2.disabledTooltip`,
selected: [
{
text: `${namespace}:option.2.selected`,

View File

@ -78,7 +78,7 @@ export const FunAndGamesEncounter: MysteryEncounter = MysteryEncounterBuilder.wi
.withIntroDialogue([
{
speaker: `${namespace}:speaker`,
text: `${namespace}:intro_dialogue`,
text: `${namespace}:introDialogue`,
},
])
.setLocalizationKey(`${namespace}`)
@ -118,7 +118,7 @@ export const FunAndGamesEncounter: MysteryEncounter = MysteryEncounterBuilder.wi
// Only Pokemon that are not KOed/legal can be selected
const selectableFilter = (pokemon: Pokemon) => {
return isPokemonValidForEncounterOptionSelection(pokemon, `${namespace}:invalid_selection`);
return isPokemonValidForEncounterOptionSelection(pokemon, `${namespace}:invalidSelection`);
};
return selectPokemonForOption(onPokemonSelected, undefined, selectableFilter);
@ -284,25 +284,25 @@ function handleNextTurn() {
guaranteedModifierTypeFuncs: [modifierTypes.MULTI_LENS],
fillRemaining: false,
});
resultMessageKey = `${namespace}:best_result`;
resultMessageKey = `${namespace}:bestResult`;
} else if (healthRatio < 0.15) {
// 2nd prize
setEncounterRewards({
guaranteedModifierTypeFuncs: [modifierTypes.SCOPE_LENS],
fillRemaining: false,
});
resultMessageKey = `${namespace}:great_result`;
resultMessageKey = `${namespace}:greatResult`;
} else if (healthRatio < 0.33) {
// 3rd prize
setEncounterRewards({
guaranteedModifierTypeFuncs: [modifierTypes.WIDE_LENS],
fillRemaining: false,
});
resultMessageKey = `${namespace}:good_result`;
resultMessageKey = `${namespace}:goodResult`;
} else {
// No prize
isHealPhase = true;
resultMessageKey = `${namespace}:bad_result`;
resultMessageKey = `${namespace}:badResult`;
}
// End the battle
@ -312,7 +312,7 @@ function handleNextTurn() {
globalScene.currentBattle.mysteryEncounter!.doContinueEncounter = undefined;
leaveEncounterWithoutBattle(isHealPhase);
// Must end the TurnInit phase prematurely so battle phases aren't added to queue
queueEncounterMessage(`${namespace}:end_game`);
queueEncounterMessage(`${namespace}:endGame`);
queueEncounterMessage(resultMessageKey);
// Skip remainder of TurnInitPhase
@ -320,9 +320,9 @@ function handleNextTurn() {
}
if (encounter.misc.turnsRemaining < 3) {
// Display charging messages on turns that aren't the initial turn
queueEncounterMessage(`${namespace}:charging_continue`);
queueEncounterMessage(`${namespace}:chargingContinue`);
}
queueEncounterMessage(`${namespace}:turn_remaining_${encounter.misc.turnsRemaining}`);
queueEncounterMessage(`${namespace}:turnRemaining${encounter.misc.turnsRemaining}`);
encounter.misc.turnsRemaining--;
// Don't skip remainder of TurnInitPhase

View File

@ -158,7 +158,7 @@ export const GlobalTradeSystemEncounter: MysteryEncounter = MysteryEncounterBuil
.withDialogue({
buttonLabel: `${namespace}:option.1.label`,
buttonTooltip: `${namespace}:option.1.tooltip`,
secondOptionPrompt: `${namespace}:option.1.trade_options_prompt`,
secondOptionPrompt: `${namespace}:option.1.tradeOptionsPrompt`,
})
.withPreOptionPhase(async (): Promise<boolean> => {
const encounter = globalScene.currentBattle.mysteryEncounter!;
@ -248,7 +248,7 @@ export const GlobalTradeSystemEncounter: MysteryEncounter = MysteryEncounterBuil
// Show the trade animation
await showTradeBackground();
await doPokemonTradeSequence(tradedPokemon, newPlayerPokemon);
await showEncounterText(`${namespace}:trade_received`, null, 0, true, 4000);
await showEncounterText(`${namespace}:tradeReceived`, null, 0, true, 4000);
globalScene.playBgm(encounter.misc.bgmKey);
await addPokemonDataToDexAndValidateAchievements(newPlayerPokemon);
await hideTradeBackground();
@ -369,7 +369,7 @@ export const GlobalTradeSystemEncounter: MysteryEncounter = MysteryEncounterBuil
// Show the trade animation
await showTradeBackground();
await doPokemonTradeSequence(tradedPokemon, newPlayerPokemon);
await showEncounterText(`${namespace}:trade_received`, null, 0, true, 4000);
await showEncounterText(`${namespace}:tradeReceived`, null, 0, true, 4000);
globalScene.playBgm(encounter.misc.bgmKey);
await addPokemonDataToDexAndValidateAchievements(newPlayerPokemon);
await hideTradeBackground();
@ -384,7 +384,7 @@ export const GlobalTradeSystemEncounter: MysteryEncounter = MysteryEncounterBuil
.withDialogue({
buttonLabel: `${namespace}:option.3.label`,
buttonTooltip: `${namespace}:option.3.tooltip`,
secondOptionPrompt: `${namespace}:option.3.trade_options_prompt`,
secondOptionPrompt: `${namespace}:option.3.tradeOptionsPrompt`,
})
.withPreOptionPhase(async (): Promise<boolean> => {
const encounter = globalScene.currentBattle.mysteryEncounter!;
@ -416,7 +416,7 @@ export const GlobalTradeSystemEncounter: MysteryEncounter = MysteryEncounterBuil
return it.isTransferable;
}).length > 0;
if (!meetsReqs) {
return getEncounterText(`${namespace}:option.3.invalid_selection`) ?? null;
return getEncounterText(`${namespace}:option.3.invalidSelection`) ?? null;
}
return null;
@ -468,7 +468,7 @@ export const GlobalTradeSystemEncounter: MysteryEncounter = MysteryEncounterBuil
// Generate a trainer name
const traderName = generateRandomTraderName();
encounter.setDialogueToken("tradeTrainerName", traderName.trim());
await showEncounterText(`${namespace}:item_trade_selected`);
await showEncounterText(`${namespace}:itemTradeSelected`);
leaveEncounterWithoutBattle();
})
.build(),
@ -740,10 +740,10 @@ function doPokemonTradeSequence(tradedPokemon: PlayerPokemon, receivedPokemon: P
duration: 500,
onComplete: async () => {
globalScene.fadeOutBgm(1000, false);
await showEncounterText(`${namespace}:pokemon_trade_selected`);
await showEncounterText(`${namespace}:pokemonTradeSelected`);
tradedPokemon.cry();
globalScene.playBgm("evolution");
await showEncounterText(`${namespace}:pokemon_trade_goodbye`);
await showEncounterText(`${namespace}:pokemonTradeGoodbye`);
tradedPokeball.setAlpha(0);
tradedPokeball.setVisible(true);

View File

@ -63,9 +63,9 @@ export const LostAtSeaEncounter: MysteryEncounter = MysteryEncounterBuilder.with
.withPokemonCanLearnMoveRequirement(OPTION_1_REQUIRED_MOVE)
.withDialogue({
buttonLabel: `${namespace}:option.1.label`,
disabledButtonLabel: `${namespace}:option.1.label_disabled`,
disabledButtonLabel: `${namespace}:option.1.labelDisabled`,
buttonTooltip: `${namespace}:option.1.tooltip`,
disabledButtonTooltip: `${namespace}:option.1.tooltip_disabled`,
disabledButtonTooltip: `${namespace}:option.1.tooltipDisabled`,
selected: [
{
text: `${namespace}:option.1.selected`,
@ -81,9 +81,9 @@ export const LostAtSeaEncounter: MysteryEncounter = MysteryEncounterBuilder.with
.withPokemonCanLearnMoveRequirement(OPTION_2_REQUIRED_MOVE)
.withDialogue({
buttonLabel: `${namespace}:option.2.label`,
disabledButtonLabel: `${namespace}:option.2.label_disabled`,
disabledButtonLabel: `${namespace}:option.2.labelDisabled`,
buttonTooltip: `${namespace}:option.2.tooltip`,
disabledButtonTooltip: `${namespace}:option.2.tooltip_disabled`,
disabledButtonTooltip: `${namespace}:option.2.tooltipDisabled`,
selected: [
{
text: `${namespace}:option.2.selected`,

View File

@ -58,7 +58,7 @@ export const PartTimerEncounter: MysteryEncounter = MysteryEncounterBuilder.with
},
{
speaker: `${namespace}:speaker`,
text: `${namespace}:intro_dialogue`,
text: `${namespace}:introDialogue`,
},
])
.withOnInit(() => {
@ -128,7 +128,7 @@ export const PartTimerEncounter: MysteryEncounter = MysteryEncounterBuilder.with
// Only Pokemon non-KOd pokemon can be selected
const selectableFilter = (pokemon: Pokemon) => {
return isPokemonValidForEncounterOptionSelection(pokemon, `${namespace}:invalid_selection`);
return isPokemonValidForEncounterOptionSelection(pokemon, `${namespace}:invalidSelection`);
};
return selectPokemonForOption(onPokemonSelected, undefined, selectableFilter);
@ -142,9 +142,9 @@ export const PartTimerEncounter: MysteryEncounter = MysteryEncounterBuilder.with
// Give money and do dialogue
if (moneyMultiplier > 2.5) {
await showEncounterDialogue(`${namespace}:job_complete_good`, `${namespace}:speaker`);
await showEncounterDialogue(`${namespace}:jobCompleteGood`, `${namespace}:speaker`);
} else {
await showEncounterDialogue(`${namespace}:job_complete_bad`, `${namespace}:speaker`);
await showEncounterDialogue(`${namespace}:jobCompleteBad`, `${namespace}:speaker`);
}
const moneyChange = globalScene.getWaveMoneyAmount(moneyMultiplier);
updatePlayerMoney(moneyChange, true, false);
@ -153,7 +153,7 @@ export const PartTimerEncounter: MysteryEncounter = MysteryEncounterBuilder.with
amount: moneyChange,
}),
);
await showEncounterText(`${namespace}:pokemon_tired`);
await showEncounterText(`${namespace}:pokemonTired`);
setEncounterRewards({ fillRemaining: true });
leaveEncounterWithoutBattle();
@ -210,7 +210,7 @@ export const PartTimerEncounter: MysteryEncounter = MysteryEncounterBuilder.with
// Only Pokemon non-KOd pokemon can be selected
const selectableFilter = (pokemon: Pokemon) => {
return isPokemonValidForEncounterOptionSelection(pokemon, `${namespace}:invalid_selection`);
return isPokemonValidForEncounterOptionSelection(pokemon, `${namespace}:invalidSelection`);
};
return selectPokemonForOption(onPokemonSelected, undefined, selectableFilter);
@ -224,9 +224,9 @@ export const PartTimerEncounter: MysteryEncounter = MysteryEncounterBuilder.with
// Give money and do dialogue
if (moneyMultiplier > 2.5) {
await showEncounterDialogue(`${namespace}:job_complete_good`, `${namespace}:speaker`);
await showEncounterDialogue(`${namespace}:jobCompleteGood`, `${namespace}:speaker`);
} else {
await showEncounterDialogue(`${namespace}:job_complete_bad`, `${namespace}:speaker`);
await showEncounterDialogue(`${namespace}:jobCompleteBad`, `${namespace}:speaker`);
}
const moneyChange = globalScene.getWaveMoneyAmount(moneyMultiplier);
updatePlayerMoney(moneyChange, true, false);
@ -235,7 +235,7 @@ export const PartTimerEncounter: MysteryEncounter = MysteryEncounterBuilder.with
amount: moneyChange,
}),
);
await showEncounterText(`${namespace}:pokemon_tired`);
await showEncounterText(`${namespace}:pokemonTired`);
setEncounterRewards({ fillRemaining: true });
leaveEncounterWithoutBattle();
@ -248,7 +248,7 @@ export const PartTimerEncounter: MysteryEncounter = MysteryEncounterBuilder.with
.withDialogue({
buttonLabel: `${namespace}:option.3.label`,
buttonTooltip: `${namespace}:option.3.tooltip`,
disabledButtonTooltip: `${namespace}:option.3.disabled_tooltip`,
disabledButtonTooltip: `${namespace}:option.3.disabledTooltip`,
selected: [
{
text: `${namespace}:option.3.selected`,
@ -282,7 +282,7 @@ export const PartTimerEncounter: MysteryEncounter = MysteryEncounterBuilder.with
await transitionMysteryEncounterIntroVisuals(false, false);
// Give money and do dialogue
await showEncounterDialogue(`${namespace}:job_complete_good`, `${namespace}:speaker`);
await showEncounterDialogue(`${namespace}:jobCompleteGood`, `${namespace}:speaker`);
const moneyChange = globalScene.getWaveMoneyAmount(2.5);
updatePlayerMoney(moneyChange, true, false);
await showEncounterText(
@ -290,7 +290,7 @@ export const PartTimerEncounter: MysteryEncounter = MysteryEncounterBuilder.with
amount: moneyChange,
}),
);
await showEncounterText(`${namespace}:pokemon_tired`);
await showEncounterText(`${namespace}:pokemonTired`);
setEncounterRewards({ fillRemaining: true });
leaveEncounterWithoutBattle();

View File

@ -205,7 +205,7 @@ const safariZoneGameOptions: MysteryEncounterOption[] = [
// 80% chance to increase flee stage +1
const fleeChangeResult = tryChangeFleeStage(1, 8);
if (!fleeChangeResult) {
await showEncounterText(getEncounterText(`${namespace}:safari.busy_eating`) ?? "", null, 1000, false);
await showEncounterText(getEncounterText(`${namespace}:safari.busyEating`) ?? "", null, 1000, false);
} else {
await showEncounterText(getEncounterText(`${namespace}:safari.eating`) ?? "", null, 1000, false);
}
@ -233,7 +233,7 @@ const safariZoneGameOptions: MysteryEncounterOption[] = [
// 80% chance to decrease catch stage -1
const catchChangeResult = tryChangeCatchStage(-1, 8);
if (!catchChangeResult) {
await showEncounterText(getEncounterText(`${namespace}:safari.beside_itself_angry`) ?? "", null, 1000, false);
await showEncounterText(getEncounterText(`${namespace}:safari.besideItselfAngry`) ?? "", null, 1000, false);
} else {
await showEncounterText(getEncounterText(`${namespace}:safari.angry`) ?? "", null, 1000, false);
}
@ -274,7 +274,7 @@ async function summonSafariPokemon() {
const encounter = globalScene.currentBattle.mysteryEncounter!;
// Message pokemon remaining
encounter.setDialogueToken("remainingCount", encounter.misc.safariPokemonRemaining);
globalScene.phaseManager.queueMessage(getEncounterText(`${namespace}:safari.remaining_count`) ?? "", null, true);
globalScene.phaseManager.queueMessage(getEncounterText(`${namespace}:safari.remainingCount`) ?? "", null, true);
// Generate pokemon using safariPokemonRemaining so they are always the same pokemon no matter how many turns are taken
// Safari pokemon roll twice on shiny and HA chances, but are otherwise normal

View File

@ -70,7 +70,7 @@ export const ShadyVitaminDealerEncounter: MysteryEncounter = MysteryEncounterBui
text: `${namespace}:intro`,
},
{
text: `${namespace}:intro_dialogue`,
text: `${namespace}:introDialogue`,
speaker: `${namespace}:speaker`,
},
])
@ -119,7 +119,7 @@ export const ShadyVitaminDealerEncounter: MysteryEncounter = MysteryEncounterBui
);
}
if (!encounter.pokemonMeetsPrimaryRequirements(pokemon)) {
return getEncounterText(`${namespace}:invalid_selection`) ?? null;
return getEncounterText(`${namespace}:invalidSelection`) ?? null;
}
return null;
@ -155,7 +155,7 @@ export const ShadyVitaminDealerEncounter: MysteryEncounter = MysteryEncounterBui
chosenPokemon.setCustomNature(newNature);
encounter.setDialogueToken("newNature", getNatureName(newNature));
queueEncounterMessage(`${namespace}:cheap_side_effects`);
queueEncounterMessage(`${namespace}:cheapSideEffects`);
setEncounterExp([chosenPokemon.id], 100);
await chosenPokemon.updateInfo();
})
@ -193,7 +193,7 @@ export const ShadyVitaminDealerEncounter: MysteryEncounter = MysteryEncounterBui
// Only Pokemon that can gain benefits are unfainted
const selectableFilter = (pokemon: Pokemon) => {
return isPokemonValidForEncounterOptionSelection(pokemon, `${namespace}:invalid_selection`);
return isPokemonValidForEncounterOptionSelection(pokemon, `${namespace}:invalidSelection`);
};
return selectPokemonForOption(onPokemonSelected, undefined, selectableFilter);
@ -215,7 +215,7 @@ export const ShadyVitaminDealerEncounter: MysteryEncounter = MysteryEncounterBui
const encounter = globalScene.currentBattle.mysteryEncounter!;
const chosenPokemon = encounter.misc.chosenPokemon;
queueEncounterMessage(`${namespace}:no_bad_effects`);
queueEncounterMessage(`${namespace}:noBadEffects`);
setEncounterExp([chosenPokemon.id], 100);
await chosenPokemon.updateInfo();

View File

@ -157,7 +157,7 @@ export const SlumberingSnorlaxEncounter: MysteryEncounter = MysteryEncounterBuil
// Fall asleep waiting for Snorlax
// Full heal party
globalScene.phaseManager.unshiftNew("PartyHealPhase", true);
queueEncounterMessage(`${namespace}:option.2.rest_result`);
queueEncounterMessage(`${namespace}:option.2.restResult`);
leaveEncounterWithoutBattle();
},
)
@ -167,7 +167,7 @@ export const SlumberingSnorlaxEncounter: MysteryEncounter = MysteryEncounterBuil
.withDialogue({
buttonLabel: `${namespace}:option.3.label`,
buttonTooltip: `${namespace}:option.3.tooltip`,
disabledButtonTooltip: `${namespace}:option.3.disabled_tooltip`,
disabledButtonTooltip: `${namespace}:option.3.disabledTooltip`,
selected: [
{
text: `${namespace}:option.3.selected`,

View File

@ -122,7 +122,7 @@ export const TeleportingHijinksEncounter: MysteryEncounter = MysteryEncounterBui
.withDialogue({
buttonLabel: `${namespace}:option.2.label`,
buttonTooltip: `${namespace}:option.2.tooltip`,
disabledButtonTooltip: `${namespace}:option.2.disabled_tooltip`,
disabledButtonTooltip: `${namespace}:option.2.disabledTooltip`,
selected: [
{
text: `${namespace}:option.2.selected`,
@ -227,7 +227,7 @@ async function doBiomeTransitionDialogueAndBattleInit() {
isBoss: true,
tags: [BattlerTagType.MYSTERY_ENCOUNTER_POST_SUMMON],
mysteryEncounterBattleEffects: (pokemon: Pokemon) => {
queueEncounterMessage(`${namespace}:boss_enraged`);
queueEncounterMessage(`${namespace}:bossEnraged`);
globalScene.phaseManager.unshiftNew(
"StatStageChangePhase",
pokemon.getBattlerIndex(),

View File

@ -139,7 +139,7 @@ export const TheExpertPokemonBreederEncounter: MysteryEncounter = MysteryEncount
},
{
speaker: trainerNameKey,
text: `${namespace}:intro_dialogue`,
text: `${namespace}:introDialogue`,
},
])
.withOnInit(() => {
@ -189,13 +189,13 @@ export const TheExpertPokemonBreederEncounter: MysteryEncounter = MysteryEncount
// Dialogue and egg calcs for Pokemon 1
const [pokemon1CommonEggs, pokemon1RareEggs] = calculateEggRewardsForPokemon(pokemon1);
let pokemon1Tooltip = getEncounterText(`${namespace}:option.1.tooltip_base`)!;
let pokemon1Tooltip = getEncounterText(`${namespace}:option.1.tooltipBase`)!;
if (pokemon1RareEggs > 0) {
const eggsText = i18next.t(`${namespace}:numEggs`, {
count: pokemon1RareEggs,
rarity: i18next.t("egg:greatTier"),
});
pokemon1Tooltip += i18next.t(`${namespace}:eggs_tooltip`, {
pokemon1Tooltip += i18next.t(`${namespace}:eggsTooltip`, {
eggs: eggsText,
});
encounter.setDialogueToken("pokemon1RareEggs", eggsText);
@ -205,7 +205,7 @@ export const TheExpertPokemonBreederEncounter: MysteryEncounter = MysteryEncount
count: pokemon1CommonEggs,
rarity: i18next.t("egg:defaultTier"),
});
pokemon1Tooltip += i18next.t(`${namespace}:eggs_tooltip`, {
pokemon1Tooltip += i18next.t(`${namespace}:eggsTooltip`, {
eggs: eggsText,
});
encounter.setDialogueToken("pokemon1CommonEggs", eggsText);
@ -214,13 +214,13 @@ export const TheExpertPokemonBreederEncounter: MysteryEncounter = MysteryEncount
// Dialogue and egg calcs for Pokemon 2
const [pokemon2CommonEggs, pokemon2RareEggs] = calculateEggRewardsForPokemon(pokemon2);
let pokemon2Tooltip = getEncounterText(`${namespace}:option.2.tooltip_base`)!;
let pokemon2Tooltip = getEncounterText(`${namespace}:option.2.tooltipBase`)!;
if (pokemon2RareEggs > 0) {
const eggsText = i18next.t(`${namespace}:numEggs`, {
count: pokemon2RareEggs,
rarity: i18next.t("egg:greatTier"),
});
pokemon2Tooltip += i18next.t(`${namespace}:eggs_tooltip`, {
pokemon2Tooltip += i18next.t(`${namespace}:eggsTooltip`, {
eggs: eggsText,
});
encounter.setDialogueToken("pokemon2RareEggs", eggsText);
@ -230,7 +230,7 @@ export const TheExpertPokemonBreederEncounter: MysteryEncounter = MysteryEncount
count: pokemon2CommonEggs,
rarity: i18next.t("egg:defaultTier"),
});
pokemon2Tooltip += i18next.t(`${namespace}:eggs_tooltip`, {
pokemon2Tooltip += i18next.t(`${namespace}:eggsTooltip`, {
eggs: eggsText,
});
encounter.setDialogueToken("pokemon2CommonEggs", eggsText);
@ -239,13 +239,13 @@ export const TheExpertPokemonBreederEncounter: MysteryEncounter = MysteryEncount
// Dialogue and egg calcs for Pokemon 3
const [pokemon3CommonEggs, pokemon3RareEggs] = calculateEggRewardsForPokemon(pokemon3);
let pokemon3Tooltip = getEncounterText(`${namespace}:option.3.tooltip_base`)!;
let pokemon3Tooltip = getEncounterText(`${namespace}:option.3.tooltipBase`)!;
if (pokemon3RareEggs > 0) {
const eggsText = i18next.t(`${namespace}:numEggs`, {
count: pokemon3RareEggs,
rarity: i18next.t("egg:greatTier"),
});
pokemon3Tooltip += i18next.t(`${namespace}:eggs_tooltip`, {
pokemon3Tooltip += i18next.t(`${namespace}:eggsTooltip`, {
eggs: eggsText,
});
encounter.setDialogueToken("pokemon3RareEggs", eggsText);
@ -255,7 +255,7 @@ export const TheExpertPokemonBreederEncounter: MysteryEncounter = MysteryEncount
count: pokemon3CommonEggs,
rarity: i18next.t("egg:defaultTier"),
});
pokemon3Tooltip += i18next.t(`${namespace}:eggs_tooltip`, {
pokemon3Tooltip += i18next.t(`${namespace}:eggsTooltip`, {
eggs: eggsText,
});
encounter.setDialogueToken("pokemon3CommonEggs", eggsText);
@ -321,14 +321,14 @@ export const TheExpertPokemonBreederEncounter: MysteryEncounter = MysteryEncount
];
if (encounter.dialogueTokens.hasOwnProperty("pokemon1CommonEggs")) {
encounter.dialogue.outro.push({
text: i18next.t(`${namespace}:gained_eggs`, {
text: i18next.t(`${namespace}:gainedEggs`, {
numEggs: encounter.dialogueTokens["pokemon1CommonEggs"],
}),
});
}
if (encounter.dialogueTokens.hasOwnProperty("pokemon1RareEggs")) {
encounter.dialogue.outro.push({
text: i18next.t(`${namespace}:gained_eggs`, {
text: i18next.t(`${namespace}:gainedEggs`, {
numEggs: encounter.dialogueTokens["pokemon1RareEggs"],
}),
});
@ -380,14 +380,14 @@ export const TheExpertPokemonBreederEncounter: MysteryEncounter = MysteryEncount
];
if (encounter.dialogueTokens.hasOwnProperty("pokemon2CommonEggs")) {
encounter.dialogue.outro.push({
text: i18next.t(`${namespace}:gained_eggs`, {
text: i18next.t(`${namespace}:gainedEggs`, {
numEggs: encounter.dialogueTokens["pokemon2CommonEggs"],
}),
});
}
if (encounter.dialogueTokens.hasOwnProperty("pokemon2RareEggs")) {
encounter.dialogue.outro.push({
text: i18next.t(`${namespace}:gained_eggs`, {
text: i18next.t(`${namespace}:gainedEggs`, {
numEggs: encounter.dialogueTokens["pokemon2RareEggs"],
}),
});
@ -439,14 +439,14 @@ export const TheExpertPokemonBreederEncounter: MysteryEncounter = MysteryEncount
];
if (encounter.dialogueTokens.hasOwnProperty("pokemon3CommonEggs")) {
encounter.dialogue.outro.push({
text: i18next.t(`${namespace}:gained_eggs`, {
text: i18next.t(`${namespace}:gainedEggs`, {
numEggs: encounter.dialogueTokens["pokemon3CommonEggs"],
}),
});
}
if (encounter.dialogueTokens.hasOwnProperty("pokemon3RareEggs")) {
encounter.dialogue.outro.push({
text: i18next.t(`${namespace}:gained_eggs`, {
text: i18next.t(`${namespace}:gainedEggs`, {
numEggs: encounter.dialogueTokens["pokemon3RareEggs"],
}),
});
@ -482,7 +482,7 @@ function getPartyConfig(): EnemyPartyConfig {
trainerType: TrainerType.EXPERT_POKEMON_BREEDER,
pokemonConfigs: [
{
nickname: i18next.t(`${namespace}:cleffa_1_nickname`, {
nickname: i18next.t(`${namespace}:cleffa1Nickname`, {
speciesName: getPokemonSpecies(cleffaSpecies).getName(),
}),
species: getPokemonSpecies(cleffaSpecies),
@ -501,7 +501,7 @@ function getPartyConfig(): EnemyPartyConfig {
// All 3 members always Cleffa line, but different configs
baseConfig.pokemonConfigs!.push(
{
nickname: i18next.t(`${namespace}:cleffa_2_nickname`, {
nickname: i18next.t(`${namespace}:cleffa2Nickname`, {
speciesName: getPokemonSpecies(cleffaSpecies).getName(),
}),
species: getPokemonSpecies(cleffaSpecies),
@ -514,7 +514,7 @@ function getPartyConfig(): EnemyPartyConfig {
ivs: [31, 31, 31, 31, 31, 31],
},
{
nickname: i18next.t(`${namespace}:cleffa_3_nickname`, {
nickname: i18next.t(`${namespace}:cleffa3Nickname`, {
speciesName: getPokemonSpecies(cleffaSpecies).getName(),
}),
species: getPokemonSpecies(cleffaSpecies),
@ -647,7 +647,7 @@ function onGameOver() {
encounter.dialogue.outro = [
{
speaker: trainerNameKey,
text: `${namespace}:outro_failed`,
text: `${namespace}:outroFailed`,
},
];

View File

@ -66,7 +66,7 @@ export const ThePokemonSalesmanEncounter: MysteryEncounter = MysteryEncounterBui
text: `${namespace}:intro`,
},
{
text: `${namespace}:intro_dialogue`,
text: `${namespace}:introDialogue`,
speaker: `${namespace}:speaker`,
},
])
@ -178,8 +178,8 @@ export const ThePokemonSalesmanEncounter: MysteryEncounter = MysteryEncounterBui
// Always max price for shiny (flip HA back to normal), and add special messaging
priceMultiplier = MAX_POKEMON_PRICE_MULTIPLIER;
pokemon.abilityIndex = 0;
encounter.dialogue.encounterOptionsDialogue!.description = `${namespace}:description_shiny`;
encounter.options[0].dialogue!.buttonTooltip = `${namespace}:option.1.tooltip_shiny`;
encounter.dialogue.encounterOptionsDialogue!.description = `${namespace}:descriptionShiny`;
encounter.options[0].dialogue!.buttonTooltip = `${namespace}:option.1.tooltipShiny`;
}
const price = globalScene.getWaveMoneyAmount(priceMultiplier);
encounter.setDialogueToken("purchasePokemon", pokemon.getNameToRender());
@ -202,7 +202,7 @@ export const ThePokemonSalesmanEncounter: MysteryEncounter = MysteryEncounterBui
buttonTooltip: `${namespace}:option.1.tooltip`,
selected: [
{
text: `${namespace}:option.1.selected_message`,
text: `${namespace}:option.1.selectedMessage`,
},
],
})
@ -215,7 +215,7 @@ export const ThePokemonSalesmanEncounter: MysteryEncounter = MysteryEncounterBui
updatePlayerMoney(-price, true, false);
// Show dialogue
await showEncounterDialogue(`${namespace}:option.1.selected_dialogue`, `${namespace}:speaker`);
await showEncounterDialogue(`${namespace}:option.1.selectedDialogue`, `${namespace}:speaker`);
await transitionMysteryEncounterIntroVisuals();
// "Catch" purchased pokemon

View File

@ -115,7 +115,7 @@ export const TheStrongStuffEncounter: MysteryEncounter = MysteryEncounterBuilder
],
tags: [BattlerTagType.MYSTERY_ENCOUNTER_POST_SUMMON],
mysteryEncounterBattleEffects: (pokemon: Pokemon) => {
queueEncounterMessage(`${namespace}:option.2.stat_boost`);
queueEncounterMessage(`${namespace}:option.2.statBoost`);
globalScene.phaseManager.unshiftNew(
"StatStageChangePhase",
pokemon.getBattlerIndex(),
@ -181,7 +181,7 @@ export const TheStrongStuffEncounter: MysteryEncounter = MysteryEncounterBuilder
encounter.setDialogueToken("reductionValue", HIGH_BST_REDUCTION_VALUE.toString());
encounter.setDialogueToken("increaseValue", BST_INCREASE_VALUE.toString());
await showEncounterText(`${namespace}:option.1.selected_2`, null, undefined, true);
await showEncounterText(`${namespace}:option.1.selected2`, null, undefined, true);
encounter.dialogue.outro = [
{

View File

@ -87,7 +87,7 @@ export const TheWinstrateChallengeEncounter: MysteryEncounter = MysteryEncounter
},
{
speaker: `${namespace}:speaker`,
text: `${namespace}:intro_dialogue`,
text: `${namespace}:introDialogue`,
},
])
.withAutoHideIntroVisuals(false)
@ -163,7 +163,7 @@ async function spawnNextTrainerOrEndEncounter() {
globalScene.playSound("item_fanfare");
await showEncounterText(i18next.t("battle:rewardGain", { modifierName: newModifier?.type.name }));
await showEncounterDialogue(`${namespace}:victory_2`, `${namespace}:speaker`);
await showEncounterDialogue(`${namespace}:victory2`, `${namespace}:speaker`);
globalScene.ui.clearText(); // Clears "Winstrate" title from screen as rewards get animated in
const machoBrace = generateModifierTypeOption(modifierTypes.MYSTERY_ENCOUNTER_MACHO_BRACE)!;
machoBrace.type.tier = ModifierTier.MASTER;

View File

@ -90,7 +90,7 @@ export const TrainingSessionEncounter: MysteryEncounter = MysteryEncounterBuilde
// Only Pokemon that are not KOed/legal can be trained
const selectableFilter = (pokemon: Pokemon) => {
return isPokemonValidForEncounterOptionSelection(pokemon, `${namespace}:invalid_selection`);
return isPokemonValidForEncounterOptionSelection(pokemon, `${namespace}:invalidSelection`);
};
return selectPokemonForOption(onPokemonSelected, undefined, selectableFilter);
@ -174,7 +174,7 @@ export const TrainingSessionEncounter: MysteryEncounter = MysteryEncounterBuilde
.withDialogue({
buttonLabel: `${namespace}:option.2.label`,
buttonTooltip: `${namespace}:option.2.tooltip`,
secondOptionPrompt: `${namespace}:option.2.select_prompt`,
secondOptionPrompt: `${namespace}:option.2.selectPrompt`,
selected: [
{
text: `${namespace}:option.selected`,
@ -205,7 +205,7 @@ export const TrainingSessionEncounter: MysteryEncounter = MysteryEncounterBuilde
// Only Pokemon that are not KOed/legal can be trained
const selectableFilter = (pokemon: Pokemon) => {
return isPokemonValidForEncounterOptionSelection(pokemon, `${namespace}:invalid_selection`);
return isPokemonValidForEncounterOptionSelection(pokemon, `${namespace}:invalidSelection`);
};
return selectPokemonForOption(onPokemonSelected, undefined, selectableFilter);
@ -248,7 +248,7 @@ export const TrainingSessionEncounter: MysteryEncounter = MysteryEncounterBuilde
.withDialogue({
buttonLabel: `${namespace}:option.3.label`,
buttonTooltip: `${namespace}:option.3.tooltip`,
secondOptionPrompt: `${namespace}:option.3.select_prompt`,
secondOptionPrompt: `${namespace}:option.3.selectPrompt`,
selected: [
{
text: `${namespace}:option.selected`,
@ -295,7 +295,7 @@ export const TrainingSessionEncounter: MysteryEncounter = MysteryEncounterBuilde
// Only Pokemon that are not KOed/legal can be trained
const selectableFilter = (pokemon: Pokemon) => {
return isPokemonValidForEncounterOptionSelection(pokemon, `${namespace}:invalid_selection`);
return isPokemonValidForEncounterOptionSelection(pokemon, `${namespace}:invalidSelection`);
};
return selectPokemonForOption(onPokemonSelected, undefined, selectableFilter);

View File

@ -194,7 +194,7 @@ export const TrashToTreasureEncounter: MysteryEncounter = MysteryEncounterBuilde
.withOptionPhase(async () => {
// Investigate garbage, battle Gmax Garbodor
globalScene.setFieldScale(0.75);
await showEncounterText(`${namespace}:option.2.selected_2`);
await showEncounterText(`${namespace}:option.2.selected2`);
await transitionMysteryEncounterIntroVisuals();
const encounter = globalScene.currentBattle.mysteryEncounter!;

View File

@ -97,7 +97,7 @@ export const UncommonBreedEncounter: MysteryEncounter = MysteryEncounterBuilder.
isBoss: false,
tags: [BattlerTagType.MYSTERY_ENCOUNTER_POST_SUMMON],
mysteryEncounterBattleEffects: (pokemon: Pokemon) => {
queueEncounterMessage(`${namespace}:option.1.stat_boost`);
queueEncounterMessage(`${namespace}:option.1.statBoost`);
globalScene.phaseManager.unshiftNew(
"StatStageChangePhase",
pokemon.getBattlerIndex(),
@ -191,7 +191,7 @@ export const UncommonBreedEncounter: MysteryEncounter = MysteryEncounterBuilder.
.withDialogue({
buttonLabel: `${namespace}:option.2.label`,
buttonTooltip: `${namespace}:option.2.tooltip`,
disabledButtonTooltip: `${namespace}:option.2.disabled_tooltip`,
disabledButtonTooltip: `${namespace}:option.2.disabledTooltip`,
selected: [
{
text: `${namespace}:option.2.selected`,
@ -236,7 +236,7 @@ export const UncommonBreedEncounter: MysteryEncounter = MysteryEncounterBuilder.
.withDialogue({
buttonLabel: `${namespace}:option.3.label`,
buttonTooltip: `${namespace}:option.3.tooltip`,
disabledButtonTooltip: `${namespace}:option.3.disabled_tooltip`,
disabledButtonTooltip: `${namespace}:option.3.disabledTooltip`,
selected: [
{
text: `${namespace}:option.3.selected`,

View File

@ -143,7 +143,7 @@ export const WeirdDreamEncounter: MysteryEncounter = MysteryEncounterBuilder.wit
},
{
speaker: `${namespace}:speaker`,
text: `${namespace}:intro_dialogue`,
text: `${namespace}:introDialogue`,
},
])
.setLocalizationKey(`${namespace}`)
@ -216,7 +216,7 @@ export const WeirdDreamEncounter: MysteryEncounter = MysteryEncounterBuilder.wit
await cutsceneDialoguePromise;
doHideDreamBackground();
await showEncounterText(`${namespace}:option.1.dream_complete`);
await showEncounterText(`${namespace}:option.1.dreamComplete`);
await doNewTeamPostProcess(transformations);
setEncounterRewards({
@ -329,7 +329,7 @@ export const WeirdDreamEncounter: MysteryEncounter = MysteryEncounterBuilder.wit
onBeforeRewards,
);
await showEncounterText(`${namespace}:option.2.selected_2`, null, undefined, true);
await showEncounterText(`${namespace}:option.2.selected2`, null, undefined, true);
await initBattleWithEnemyConfig(enemyPartyConfig);
},
)

View File

@ -66,7 +66,7 @@ describe("An Offer You Can't Refuse - Mystery Encounter", () => {
expect(AnOfferYouCantRefuseEncounter.dialogue).toBeDefined();
expect(AnOfferYouCantRefuseEncounter.dialogue.intro).toStrictEqual([
{ text: `${namespace}:intro` },
{ speaker: `${namespace}:speaker`, text: `${namespace}:intro_dialogue` },
{ speaker: `${namespace}:speaker`, text: `${namespace}:introDialogue` },
]);
expect(AnOfferYouCantRefuseEncounter.dialogue.encounterOptionsDialogue?.title).toBe(`${namespace}:title`);
expect(AnOfferYouCantRefuseEncounter.dialogue.encounterOptionsDialogue?.description).toBe(
@ -180,7 +180,7 @@ describe("An Offer You Can't Refuse - Mystery Encounter", () => {
expect(option.dialogue).toStrictEqual({
buttonLabel: `${namespace}:option.2.label`,
buttonTooltip: `${namespace}:option.2.tooltip`,
disabledButtonTooltip: `${namespace}:option.2.tooltip_disabled`,
disabledButtonTooltip: `${namespace}:option.2.tooltipDisabled`,
selected: [
{
speaker: `${namespace}:speaker`,

View File

@ -194,7 +194,7 @@ describe("Berries Abound - Mystery Encounter", () => {
// Should be enraged
expect(enemyField[0].summonData.statStages).toEqual([0, 1, 0, 1, 1, 0, 0]);
expect(encounterTextSpy).toHaveBeenCalledWith(`${namespace}:option.2.selected_bad`);
expect(encounterTextSpy).toHaveBeenCalledWith(`${namespace}:option.2.selectedBad`);
});
it("should start battle if fastest pokemon is slower than boss above wave 50", async () => {
@ -218,7 +218,7 @@ describe("Berries Abound - Mystery Encounter", () => {
// Should be enraged
expect(enemyField[0].summonData.statStages).toEqual([1, 1, 1, 1, 1, 0, 0]);
expect(encounterTextSpy).toHaveBeenCalledWith(`${namespace}:option.2.selected_bad`);
expect(encounterTextSpy).toHaveBeenCalledWith(`${namespace}:option.2.selectedBad`);
});
it("Should skip battle when fastest pokemon is faster than boss", async () => {

View File

@ -181,7 +181,7 @@ describe("Bug-Type Superfan - Mystery Encounter", () => {
},
{
speaker: `${namespace}:speaker`,
text: `${namespace}:intro_dialogue`,
text: `${namespace}:introDialogue`,
},
]);
expect(BugTypeSuperfanEncounter.dialogue.encounterOptionsDialogue?.title).toBe(`${namespace}:title`);
@ -389,7 +389,7 @@ describe("Bug-Type Superfan - Mystery Encounter", () => {
expect(option.dialogue).toStrictEqual({
buttonLabel: `${namespace}:option.2.label`,
buttonTooltip: `${namespace}:option.2.tooltip`,
disabledButtonTooltip: `${namespace}:option.2.disabled_tooltip`,
disabledButtonTooltip: `${namespace}:option.2.disabledTooltip`,
});
});
@ -513,17 +513,17 @@ describe("Bug-Type Superfan - Mystery Encounter", () => {
expect(option.dialogue).toStrictEqual({
buttonLabel: `${namespace}:option.3.label`,
buttonTooltip: `${namespace}:option.3.tooltip`,
disabledButtonTooltip: `${namespace}:option.3.disabled_tooltip`,
disabledButtonTooltip: `${namespace}:option.3.disabledTooltip`,
selected: [
{
text: `${namespace}:option.3.selected`,
},
{
speaker: `${namespace}:speaker`,
text: `${namespace}:option.3.selected_dialogue`,
text: `${namespace}:option.3.selectedDialogue`,
},
],
secondOptionPrompt: `${namespace}:option.3.select_prompt`,
secondOptionPrompt: `${namespace}:option.3.selectPrompt`,
});
});

View File

@ -80,7 +80,7 @@ describe("Clowning Around - Mystery Encounter", () => {
{ text: `${namespace}:intro` },
{
speaker: `${namespace}:speaker`,
text: `${namespace}:intro_dialogue`,
text: `${namespace}:introDialogue`,
},
]);
expect(ClowningAroundEncounter.dialogue.encounterOptionsDialogue?.title).toBe(`${namespace}:title`);
@ -249,11 +249,11 @@ describe("Clowning Around - Mystery Encounter", () => {
text: `${namespace}:option.2.selected`,
},
{
text: `${namespace}:option.2.selected_2`,
text: `${namespace}:option.2.selected2`,
},
{
speaker: `${namespace}:speaker`,
text: `${namespace}:option.2.selected_3`,
text: `${namespace}:option.2.selected3`,
},
],
});
@ -334,11 +334,11 @@ describe("Clowning Around - Mystery Encounter", () => {
text: `${namespace}:option.3.selected`,
},
{
text: `${namespace}:option.3.selected_2`,
text: `${namespace}:option.3.selected2`,
},
{
speaker: `${namespace}:speaker`,
text: `${namespace}:option.3.selected_3`,
text: `${namespace}:option.3.selected3`,
},
],
});

View File

@ -186,8 +186,8 @@ describe("Dancing Lessons - Mystery Encounter", () => {
expect(option.dialogue).toStrictEqual({
buttonLabel: `${namespace}:option.3.label`,
buttonTooltip: `${namespace}:option.3.tooltip`,
disabledButtonTooltip: `${namespace}:option.3.disabled_tooltip`,
secondOptionPrompt: `${namespace}:option.3.select_prompt`,
disabledButtonTooltip: `${namespace}:option.3.disabledTooltip`,
secondOptionPrompt: `${namespace}:option.3.selectPrompt`,
selected: [
{
text: `${namespace}:option.3.selected`,

View File

@ -186,7 +186,7 @@ describe("Delibird-y - Mystery Encounter", () => {
expect(option.dialogue).toStrictEqual({
buttonLabel: `${namespace}:option.2.label`,
buttonTooltip: `${namespace}:option.2.tooltip`,
secondOptionPrompt: `${namespace}:option.2.select_prompt`,
secondOptionPrompt: `${namespace}:option.2.selectPrompt`,
selected: [
{
text: `${namespace}:option.2.selected`,
@ -348,7 +348,7 @@ describe("Delibird-y - Mystery Encounter", () => {
expect(option.dialogue).toStrictEqual({
buttonLabel: `${namespace}:option.3.label`,
buttonTooltip: `${namespace}:option.3.tooltip`,
secondOptionPrompt: `${namespace}:option.3.select_prompt`,
secondOptionPrompt: `${namespace}:option.3.selectPrompt`,
selected: [
{
text: `${namespace}:option.3.selected`,

View File

@ -61,7 +61,7 @@ describe("Department Store Sale - Mystery Encounter", () => {
{ text: `${namespace}:intro` },
{
speaker: `${namespace}:speaker`,
text: `${namespace}:intro_dialogue`,
text: `${namespace}:introDialogue`,
},
]);
expect(DepartmentStoreSaleEncounter.dialogue.encounterOptionsDialogue?.title).toBe(`${namespace}:title`);

View File

@ -61,7 +61,7 @@ describe("Field Trip - Mystery Encounter", () => {
},
{
speaker: `${namespace}:speaker`,
text: `${namespace}:intro_dialogue`,
text: `${namespace}:introDialogue`,
},
]);
expect(FieldTripEncounter.dialogue.encounterOptionsDialogue?.title).toBe(`${namespace}:title`);
@ -78,7 +78,7 @@ describe("Field Trip - Mystery Encounter", () => {
expect(option.dialogue).toStrictEqual({
buttonLabel: `${namespace}:option.1.label`,
buttonTooltip: `${namespace}:option.1.tooltip`,
secondOptionPrompt: `${namespace}:second_option_prompt`,
secondOptionPrompt: `${namespace}:secondOptionPrompt`,
});
});
@ -139,7 +139,7 @@ describe("Field Trip - Mystery Encounter", () => {
expect(option.dialogue).toStrictEqual({
buttonLabel: `${namespace}:option.2.label`,
buttonTooltip: `${namespace}:option.2.tooltip`,
secondOptionPrompt: `${namespace}:second_option_prompt`,
secondOptionPrompt: `${namespace}:secondOptionPrompt`,
});
});
@ -200,7 +200,7 @@ describe("Field Trip - Mystery Encounter", () => {
expect(option.dialogue).toStrictEqual({
buttonLabel: `${namespace}:option.3.label`,
buttonTooltip: `${namespace}:option.3.tooltip`,
secondOptionPrompt: `${namespace}:second_option_prompt`,
secondOptionPrompt: `${namespace}:secondOptionPrompt`,
});
});

View File

@ -253,7 +253,7 @@ describe("Fiery Fallout - Mystery Encounter", () => {
expect(option1.dialogue).toStrictEqual({
buttonLabel: `${namespace}:option.3.label`,
buttonTooltip: `${namespace}:option.3.tooltip`,
disabledButtonTooltip: `${namespace}:option.3.disabled_tooltip`,
disabledButtonTooltip: `${namespace}:option.3.disabledTooltip`,
selected: [
{
text: `${namespace}:option.3.selected`,

View File

@ -143,7 +143,7 @@ describe("Fight or Flight - Mystery Encounter", () => {
expect(option.dialogue).toStrictEqual({
buttonLabel: `${namespace}:option.2.label`,
buttonTooltip: `${namespace}:option.2.tooltip`,
disabledButtonTooltip: `${namespace}:option.2.disabled_tooltip`,
disabledButtonTooltip: `${namespace}:option.2.disabledTooltip`,
selected: [
{
text: `${namespace}:option.2.selected`,

View File

@ -71,7 +71,7 @@ describe("Fun And Games! - Mystery Encounter", () => {
expect(FunAndGamesEncounter.dialogue.intro).toStrictEqual([
{
speaker: `${namespace}:speaker`,
text: `${namespace}:intro_dialogue`,
text: `${namespace}:introDialogue`,
},
]);
expect(FunAndGamesEncounter.dialogue.encounterOptionsDialogue?.title).toBe(`${namespace}:title`);

View File

@ -98,7 +98,7 @@ describe("Global Trade System - Mystery Encounter", () => {
expect(option.dialogue).toStrictEqual({
buttonLabel: `${namespace}:option.1.label`,
buttonTooltip: `${namespace}:option.1.tooltip`,
secondOptionPrompt: `${namespace}:option.1.trade_options_prompt`,
secondOptionPrompt: `${namespace}:option.1.tradeOptionsPrompt`,
});
});
@ -210,7 +210,7 @@ describe("Global Trade System - Mystery Encounter", () => {
expect(option.dialogue).toStrictEqual({
buttonLabel: `${namespace}:option.3.label`,
buttonTooltip: `${namespace}:option.3.tooltip`,
secondOptionPrompt: `${namespace}:option.3.trade_options_prompt`,
secondOptionPrompt: `${namespace}:option.3.tradeOptionsPrompt`,
});
});

View File

@ -99,9 +99,9 @@ describe("Lost at Sea - Mystery Encounter", () => {
expect(option1.dialogue).toBeDefined();
expect(option1.dialogue).toStrictEqual({
buttonLabel: `${namespace}:option.1.label`,
disabledButtonLabel: `${namespace}:option.1.label_disabled`,
disabledButtonLabel: `${namespace}:option.1.labelDisabled`,
buttonTooltip: `${namespace}:option.1.tooltip`,
disabledButtonTooltip: `${namespace}:option.1.tooltip_disabled`,
disabledButtonTooltip: `${namespace}:option.1.tooltipDisabled`,
selected: [
{
text: `${namespace}:option.1.selected`,
@ -162,9 +162,9 @@ describe("Lost at Sea - Mystery Encounter", () => {
expect(option2.dialogue).toBeDefined();
expect(option2.dialogue).toStrictEqual({
buttonLabel: `${namespace}:option.2.label`,
disabledButtonLabel: `${namespace}:option.2.label_disabled`,
disabledButtonLabel: `${namespace}:option.2.labelDisabled`,
buttonTooltip: `${namespace}:option.2.tooltip`,
disabledButtonTooltip: `${namespace}:option.2.tooltip_disabled`,
disabledButtonTooltip: `${namespace}:option.2.tooltipDisabled`,
selected: [
{
text: `${namespace}:option.2.selected`,

View File

@ -65,7 +65,7 @@ describe("Part-Timer - Mystery Encounter", () => {
{ text: `${namespace}:intro` },
{
speaker: `${namespace}:speaker`,
text: `${namespace}:intro_dialogue`,
text: `${namespace}:introDialogue`,
},
]);
expect(PartTimerEncounter.dialogue.encounterOptionsDialogue?.title).toBe(`${namespace}:title`);
@ -219,7 +219,7 @@ describe("Part-Timer - Mystery Encounter", () => {
expect(option.dialogue).toStrictEqual({
buttonLabel: `${namespace}:option.3.label`,
buttonTooltip: `${namespace}:option.3.tooltip`,
disabledButtonTooltip: `${namespace}:option.3.disabled_tooltip`,
disabledButtonTooltip: `${namespace}:option.3.disabledTooltip`,
selected: [
{
text: `${namespace}:option.3.selected`,

View File

@ -207,7 +207,7 @@ describe("Teleporting Hijinks - Mystery Encounter", () => {
expect(option.dialogue).toStrictEqual({
buttonLabel: `${namespace}:option.2.label`,
buttonTooltip: `${namespace}:option.2.tooltip`,
disabledButtonTooltip: `${namespace}:option.2.disabled_tooltip`,
disabledButtonTooltip: `${namespace}:option.2.disabledTooltip`,
selected: [
{
text: `${namespace}:option.2.selected`,

View File

@ -71,7 +71,7 @@ describe("The Expert Pokémon Breeder - Mystery Encounter", () => {
},
{
speaker: "trainerNames:expert_pokemon_breeder",
text: `${namespace}:intro_dialogue`,
text: `${namespace}:introDialogue`,
},
]);
expect(TheExpertPokemonBreederEncounter.dialogue.encounterOptionsDialogue?.title).toBe(`${namespace}:title`);

View File

@ -67,7 +67,7 @@ describe("The Pokemon Salesman - Mystery Encounter", () => {
expect(dialogue).toBeDefined();
expect(dialogue.intro).toStrictEqual([
{ text: `${namespace}:intro` },
{ speaker: `${namespace}:speaker`, text: `${namespace}:intro_dialogue` },
{ speaker: `${namespace}:speaker`, text: `${namespace}:introDialogue` },
]);
const { title, description, query } = dialogue.encounterOptionsDialogue!;
expect(title).toBe(`${namespace}:title`);
@ -120,7 +120,7 @@ describe("The Pokemon Salesman - Mystery Encounter", () => {
buttonTooltip: expect.stringMatching(new RegExp(`^${namespace}\\:option\\.1\\.tooltip(_shiny)?$`)),
selected: [
{
text: `${namespace}:option.1.selected_message`,
text: `${namespace}:option.1.selectedMessage`,
},
],
});

View File

@ -73,7 +73,7 @@ describe("The Winstrate Challenge - Mystery Encounter", () => {
{ text: `${namespace}:intro` },
{
speaker: `${namespace}:speaker`,
text: `${namespace}:intro_dialogue`,
text: `${namespace}:introDialogue`,
},
]);
expect(TheWinstrateChallengeEncounter.dialogue.encounterOptionsDialogue?.title).toBe(`${namespace}:title`);

View File

@ -172,7 +172,7 @@ describe("Uncommon Breed - Mystery Encounter", () => {
expect(option.dialogue).toStrictEqual({
buttonLabel: `${namespace}:option.2.label`,
buttonTooltip: `${namespace}:option.2.tooltip`,
disabledButtonTooltip: `${namespace}:option.2.disabled_tooltip`,
disabledButtonTooltip: `${namespace}:option.2.disabledTooltip`,
selected: [
{
text: `${namespace}:option.2.selected`,
@ -237,7 +237,7 @@ describe("Uncommon Breed - Mystery Encounter", () => {
expect(option.dialogue).toStrictEqual({
buttonLabel: `${namespace}:option.3.label`,
buttonTooltip: `${namespace}:option.3.tooltip`,
disabledButtonTooltip: `${namespace}:option.3.disabled_tooltip`,
disabledButtonTooltip: `${namespace}:option.3.disabledTooltip`,
selected: [
{
text: `${namespace}:option.3.selected`,

View File

@ -68,7 +68,7 @@ describe("Weird Dream - Mystery Encounter", () => {
},
{
speaker: `${namespace}:speaker`,
text: `${namespace}:intro_dialogue`,
text: `${namespace}:introDialogue`,
},
]);
expect(WeirdDreamEncounter.dialogue.encounterOptionsDialogue?.title).toBe(`${namespace}:title`);