diff --git a/src/ui/abstact-option-select-ui-handler.ts b/src/ui/abstact-option-select-ui-handler.ts index fa6e019361d..c3434faeeb7 100644 --- a/src/ui/abstact-option-select-ui-handler.ts +++ b/src/ui/abstact-option-select-ui-handler.ts @@ -7,7 +7,6 @@ import * as Utils from "../utils"; import { argbFromRgba } from "@material/material-color-utilities"; import { Button } from "#enums/buttons"; import BBCodeText from "phaser3-rex-plugins/plugins/bbcodetext"; -import { UiTheme } from "#app/enums/ui-theme"; export interface OptionSelectConfig { xOffset?: number; @@ -189,6 +188,7 @@ export default abstract class AbstractOptionSelectUiHandler extends UiHandler { this.optionSelectContainer.setVisible(true); this.scrollCursor = 0; + this.fullCursor = 0; this.setCursor(0); if (this.config.delay) { @@ -198,6 +198,11 @@ export default abstract class AbstractOptionSelectUiHandler extends UiHandler { globalScene.time.delayedCall(Utils.fixedInt(this.config.delay), () => this.unblockInput()); } + if (this.config?.supportHover) { + // handle hover code if the element supports hover-handlers and the option has the optional hover-handler set. + this.config?.options[this.unskippedIndices[this.fullCursor]]?.onHover?.(); + } + return true; } diff --git a/src/ui/pokedex-page-ui-handler.ts b/src/ui/pokedex-page-ui-handler.ts index 9a201330130..13cbfcd5a85 100644 --- a/src/ui/pokedex-page-ui-handler.ts +++ b/src/ui/pokedex-page-ui-handler.ts @@ -1322,6 +1322,19 @@ export default class PokedexPageUiHandler extends MessageUiHandler { }); this.prevolutions.map(pre => { const preSpecies = allSpecies.find(species => species.speciesId === pokemonPrevolutions[this.lastSpecies.speciesId]); + + let conditionText:string = ""; + if (pre.condition) { + conditionText = i18next.t("pokedexUiHandler:evolveGeneric"); + } else if (pre.level > 1) { + conditionText = i18next.t("pokedexUiHandler:evolveAtLv") + ` ${pre.level}`; + } else if (pre.item) { + conditionText = i18next.t("pokedexUiHandler:evolveUsing") + i18next.t(`modifierType:EvolutionItem.${EvolutionItem[pre.item].toUpperCase()}`) + + " (" + (pre.item > 50 ? "Ultra" : "Great") + ")"; + } else { + conditionText = ""; + } + options.push({ label: pre.preFormKey ? this.getFormString(pre.preFormKey, preSpecies ?? this.lastSpecies, true) : @@ -1337,22 +1350,8 @@ export default class PokedexPageUiHandler extends MessageUiHandler { this.clearText(); ui.setMode(Mode.POKEDEX_PAGE, newSpecies, newFormIndex, this.starterAttributes); return true; - } - }); - - let label:string = ""; - if (pre.level > 1) { - label = i18next.t("pokedexUiHandler:evolveAtLv") + ` ${pre.level}`; - } else if (pre.item) { - label = i18next.t("pokedexUiHandler:evolveUsing") + i18next.t(`modifierType:EvolutionItem.${EvolutionItem[pre.item].toUpperCase()}`) + - " (" + (pre.item > 50 ? "Ultra" : "Great") + ")"; - } else { - label = i18next.t("pokedexUiHandler:evolveGeneric"); - } - options.push({ - label: label, - skip: true, - handler: () => false + }, + onHover: () => this.showText(conditionText) }); }); } @@ -1368,6 +1367,19 @@ export default class PokedexPageUiHandler extends MessageUiHandler { const evoSpecies = allSpecies.find(species => species.speciesId === evo.speciesId); const evoSpeciesStarterDexEntry = evoSpecies ? globalScene.gameData.dexData[evoSpecies.speciesId] : null; const isCaughtEvo = evoSpeciesStarterDexEntry?.caughtAttr ? true : false; + + let conditionText:string = ""; + if (evo.condition) { + conditionText = i18next.t("pokedexUiHandler:evolveGeneric"); + } else if (evo.level > 1) { + conditionText = i18next.t("pokedexUiHandler:evolveAtLv") + ` ${evo.level}`; + } else if (evo.item) { + conditionText = i18next.t("pokedexUiHandler:evolveUsing") + i18next.t(`modifierType:EvolutionItem.${EvolutionItem[evo.item].toUpperCase()}`) + + " (" + (evo.item > 50 ? "Ultra" : "Great") + ")"; + } else { + conditionText = ""; + } + options.push({ label: evo.evoFormKey ? this.getFormString(evo.evoFormKey, evoSpecies ?? this.lastSpecies, true) : @@ -1384,23 +1396,8 @@ export default class PokedexPageUiHandler extends MessageUiHandler { this.clearText(); ui.setMode(Mode.POKEDEX_PAGE, newSpecies, newFormIndex, this.starterAttributes); return true; - } - }); - let label:string = ""; - if (evo.condition) { - label = i18next.t("pokedexUiHandler:evolveGeneric"); - } else if (evo.level > 1) { - label = i18next.t("pokedexUiHandler:evolveAtLv") + ` ${evo.level}`; - } else if (evo.item) { - label = i18next.t("pokedexUiHandler:evolveUsing") + i18next.t(`modifierType:EvolutionItem.${EvolutionItem[evo.item].toUpperCase()}`) + - " (" + (evo.item > 50 ? "Ultra" : "Great") + ")"; - } else { - label = i18next.t("pokedexUiHandler:evolveGeneric"); - } - options.push({ - label: label, - skip: true, - handler: () => false + }, + onHover: () => this.showText(conditionText) }); }); } diff --git a/src/ui/pokedex-scan-ui-handler.ts b/src/ui/pokedex-scan-ui-handler.ts index 37727d85a73..0fc7171842a 100644 --- a/src/ui/pokedex-scan-ui-handler.ts +++ b/src/ui/pokedex-scan-ui-handler.ts @@ -21,7 +21,7 @@ export default class PokedexScanUiHandler extends FormModalUiHandler { abilityKeys: string[]; row: number; - constructor(scene, mode) { + constructor(mode) { super(mode); }