From e2c431b913acc7f32790fee3ab55b23c868219c8 Mon Sep 17 00:00:00 2001 From: Felix Staud Date: Sun, 14 Jul 2024 21:32:22 -0700 Subject: [PATCH] polish lost at sea encounter - fix guide pokemon not receiving exp --- .../encounters/lost-at-sea-encounter.ts | 16 +++++++--------- .../mystery-encounter-option.ts | 1 - src/data/mystery-encounters/mystery-encounter.ts | 1 - src/locales/en/mystery-encounters/lost-at-sea.ts | 4 ++-- 4 files changed, 9 insertions(+), 13 deletions(-) diff --git a/src/data/mystery-encounters/encounters/lost-at-sea-encounter.ts b/src/data/mystery-encounters/encounters/lost-at-sea-encounter.ts index 340bfdd4281..5e95c9d2b1f 100644 --- a/src/data/mystery-encounters/encounters/lost-at-sea-encounter.ts +++ b/src/data/mystery-encounters/encounters/lost-at-sea-encounter.ts @@ -1,6 +1,5 @@ import { Moves } from "#app/enums/moves.js"; import { Species } from "#app/enums/species.js"; -import { PlayerPokemon } from "#app/field/pokemon.js"; import { MysteryEncounterType } from "#enums/mystery-encounter-type"; import BattleScene from "../../../battle-scene"; import MysteryEncounter, { MysteryEncounterBuilder, MysteryEncounterTier } from "../mystery-encounter"; @@ -18,9 +17,6 @@ const DAMAGE_PERCENTAGE: number = 30; // 0 - 100 /** The i18n namespace for the encounter */ const namepsace = "mysteryEncounter:lostAtSea"; -let surfablePkm: PlayerPokemon; -let flyingPkm: PlayerPokemon; - /** * Lost at sea encounter. * @see {@link https://github.com/AsdarDevelops/PokeRogue-Events/issues/9 | GitHub Issue #9} @@ -73,7 +69,7 @@ export const LostAtSeaEncounter: MysteryEncounter = MysteryEncounterBuilder.with }, ], }) - .withOptionPhase(async (scene: BattleScene) => handlePokemongGuidingYouPhase(scene, surfablePkm)) + .withOptionPhase(async (scene: BattleScene) => handlePokemongGuidingYouPhase(scene)) .build() ) .withOption( @@ -95,7 +91,7 @@ export const LostAtSeaEncounter: MysteryEncounter = MysteryEncounterBuilder.with }, ], }) - .withOptionPhase(async (scene: BattleScene) => handlePokemongGuidingYouPhase(scene, flyingPkm)) + .withOptionPhase(async (scene: BattleScene) => handlePokemongGuidingYouPhase(scene)) .build() ) .withSimpleOption( @@ -132,15 +128,17 @@ export const LostAtSeaEncounter: MysteryEncounter = MysteryEncounterBuilder.with * @param scene Battle scene * @param guidePokemon pokemon choosen as a guide */ -function handlePokemongGuidingYouPhase(scene: BattleScene, guidePokemon: PlayerPokemon) { +function handlePokemongGuidingYouPhase(scene: BattleScene) { /** Base EXP value for guiding pokemon. Currently Lapras base-value */ const baseExpValue: number = 187; + const { mysteryEncounter } = scene.currentBattle; - if (guidePokemon) { - setEncounterExp(scene, guidePokemon.id, baseExpValue, true); + if (mysteryEncounter.selectedOption) { + setEncounterExp(scene, mysteryEncounter.selectedOption.primaryPokemon.id, baseExpValue, true); } else { console.warn("Lost at sea: No guide pokemon found but pokemon guides player. huh!?"); } leaveEncounterWithoutBattle(scene); + return true; } diff --git a/src/data/mystery-encounters/mystery-encounter-option.ts b/src/data/mystery-encounters/mystery-encounter-option.ts index f6542a19d1a..edf08b26da7 100644 --- a/src/data/mystery-encounters/mystery-encounter-option.ts +++ b/src/data/mystery-encounters/mystery-encounter-option.ts @@ -68,7 +68,6 @@ export default class MysteryEncounterOption implements MysteryEncounterOption { } let qualified: PlayerPokemon[] = scene.getParty(); for (const req of this.primaryPokemonRequirements) { - console.log(req); if (req.meetsRequirement(scene)) { if (req instanceof EncounterPokemonRequirement) { qualified = qualified.filter(pkmn => req.queryParty(scene.getParty()).includes(pkmn)); diff --git a/src/data/mystery-encounters/mystery-encounter.ts b/src/data/mystery-encounters/mystery-encounter.ts index dfe824cc831..a072c0f80a8 100644 --- a/src/data/mystery-encounters/mystery-encounter.ts +++ b/src/data/mystery-encounters/mystery-encounter.ts @@ -188,7 +188,6 @@ export default class IMysteryEncounter implements IMysteryEncounter { } let qualified: PlayerPokemon[] = scene.getParty(); for (const req of this.primaryPokemonRequirements) { - console.log(req); if (req.meetsRequirement(scene)) { if (req instanceof EncounterPokemonRequirement) { qualified = qualified.filter(pkmn => req.queryParty(scene.getParty()).includes(pkmn)); diff --git a/src/locales/en/mystery-encounters/lost-at-sea.ts b/src/locales/en/mystery-encounters/lost-at-sea.ts index d5413a48ffc..35cceaa17a8 100644 --- a/src/locales/en/mystery-encounters/lost-at-sea.ts +++ b/src/locales/en/mystery-encounters/lost-at-sea.ts @@ -9,14 +9,14 @@ export const lostAtSea = { label: "Use {{option1PrimaryName}}", label_disabled: "Can't {{option1RequiredMove}}", tooltip: "Use {{option1PrimaryName}} to guide you back. {{option1PrimaryName}} earns EXP as if having defeated a Lapras.", - tooltip_disabled: "You have no Pokémon that could learn {{option1RequiredMove}}", + tooltip_disabled: "You have no Pokémon to {{option1RequiredMove}} on", selected: "{{option1PrimaryName}} guides you back and earns EXP.", }, 2: { label: "Use {{option2PrimaryName}}", label_disabled: "Can't {{option2RequiredMove}}", tooltip: "Use {{option2PrimaryName}} to guide you back. {{option2PrimaryName}} earns EXP as if having defeated a Lapras.", - tooltip_disabled: "You have no Pokémon that could learn {{option2RequiredMove}}", + tooltip_disabled: "You have no Pokémon to {{option2RequiredMove}} with", selected: "{{option2PrimaryName}} guides you back and earns EXP.", }, 3: {