Showing evolution requirements in message box

This commit is contained in:
Wlowscha 2025-01-15 18:08:21 +01:00
parent 70f7ab89f3
commit 9e5ebb6285
No known key found for this signature in database
GPG Key ID: 3C8F1AD330565D04
3 changed files with 37 additions and 35 deletions

View File

@ -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;
}

View File

@ -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)
});
});
}

View File

@ -21,7 +21,7 @@ export default class PokedexScanUiHandler extends FormModalUiHandler {
abilityKeys: string[];
row: number;
constructor(scene, mode) {
constructor(mode) {
super(mode);
}