mirror of
https://github.com/pagefaultgames/pokerogue.git
synced 2025-07-29 11:42:21 +02:00
Abilities are colored properly (still missing info overlay)
This commit is contained in:
parent
3d0b4480e4
commit
dcf3399e31
@ -2,9 +2,8 @@ import { pokemonPrevolutions, pokemonStarters } from "#app/data/balance/pokemon-
|
|||||||
import { Variant, getVariantTint, getVariantIcon } from "#app/data/variant";
|
import { Variant, getVariantTint, getVariantIcon } from "#app/data/variant";
|
||||||
import { argbFromRgba } from "@material/material-color-utilities";
|
import { argbFromRgba } from "@material/material-color-utilities";
|
||||||
import i18next from "i18next";
|
import i18next from "i18next";
|
||||||
import BBCodeText from "phaser3-rex-plugins/plugins/bbcodetext";
|
|
||||||
import BattleScene, { starterColors } from "#app/battle-scene";
|
import BattleScene, { starterColors } from "#app/battle-scene";
|
||||||
import { allAbilities } from "#app/data/ability";
|
import { Ability, allAbilities } from "#app/data/ability";
|
||||||
import { speciesEggMoves } from "#app/data/balance/egg-moves";
|
import { speciesEggMoves } from "#app/data/balance/egg-moves";
|
||||||
import { GrowthRate, getGrowthRateColor } from "#app/data/exp";
|
import { GrowthRate, getGrowthRateColor } from "#app/data/exp";
|
||||||
import { Gender, getGenderColor, getGenderSymbol } from "#app/data/gender";
|
import { Gender, getGenderColor, getGenderSymbol } from "#app/data/gender";
|
||||||
@ -23,7 +22,7 @@ import { OptionSelectItem } from "#app/ui/abstact-option-select-ui-handler";
|
|||||||
import MessageUiHandler from "#app/ui/message-ui-handler";
|
import MessageUiHandler from "#app/ui/message-ui-handler";
|
||||||
import PokemonIconAnimHandler, { PokemonIconAnimMode } from "#app/ui/pokemon-icon-anim-handler";
|
import PokemonIconAnimHandler, { PokemonIconAnimMode } from "#app/ui/pokemon-icon-anim-handler";
|
||||||
import { StatsContainer } from "#app/ui/stats-container";
|
import { StatsContainer } from "#app/ui/stats-container";
|
||||||
import { TextStyle, addBBCodeTextObject, addTextObject, getTextStyleOptions } from "#app/ui/text";
|
import { TextStyle, addTextObject, getTextStyleOptions } from "#app/ui/text";
|
||||||
import { Mode } from "#app/ui/ui";
|
import { Mode } from "#app/ui/ui";
|
||||||
import { addWindow } from "#app/ui/ui-theme";
|
import { addWindow } from "#app/ui/ui-theme";
|
||||||
import { Egg } from "#app/data/egg";
|
import { Egg } from "#app/data/egg";
|
||||||
@ -163,12 +162,6 @@ export default class PokedexPageUiHandler extends MessageUiHandler {
|
|||||||
private pokemonLuckText: Phaser.GameObjects.Text;
|
private pokemonLuckText: Phaser.GameObjects.Text;
|
||||||
private pokemonGenderText: Phaser.GameObjects.Text;
|
private pokemonGenderText: Phaser.GameObjects.Text;
|
||||||
private pokemonUncaughtText: Phaser.GameObjects.Text;
|
private pokemonUncaughtText: Phaser.GameObjects.Text;
|
||||||
private pokemonAbilityLabelText: Phaser.GameObjects.Text;
|
|
||||||
private pokemonAbilityText: Phaser.GameObjects.Text;
|
|
||||||
private pokemonPassiveLabelText: Phaser.GameObjects.Text;
|
|
||||||
private pokemonPassiveText: Phaser.GameObjects.Text;
|
|
||||||
private pokemonNatureLabelText: Phaser.GameObjects.Text;
|
|
||||||
private pokemonNatureText: BBCodeText;
|
|
||||||
private pokemonMovesContainer: Phaser.GameObjects.Container;
|
private pokemonMovesContainer: Phaser.GameObjects.Container;
|
||||||
private pokemonMoveContainers: Phaser.GameObjects.Container[];
|
private pokemonMoveContainers: Phaser.GameObjects.Container[];
|
||||||
private pokemonMoveBgs: Phaser.GameObjects.NineSlice[];
|
private pokemonMoveBgs: Phaser.GameObjects.NineSlice[];
|
||||||
@ -189,8 +182,6 @@ export default class PokedexPageUiHandler extends MessageUiHandler {
|
|||||||
private pokemonHatchedIcon : Phaser.GameObjects.Sprite;
|
private pokemonHatchedIcon : Phaser.GameObjects.Sprite;
|
||||||
private pokemonHatchedCountText: Phaser.GameObjects.Text;
|
private pokemonHatchedCountText: Phaser.GameObjects.Text;
|
||||||
private pokemonShinyIcon: Phaser.GameObjects.Sprite;
|
private pokemonShinyIcon: Phaser.GameObjects.Sprite;
|
||||||
private pokemonPassiveDisabledIcon: Phaser.GameObjects.Sprite;
|
|
||||||
private pokemonPassiveLockedIcon: Phaser.GameObjects.Sprite;
|
|
||||||
|
|
||||||
private activeTooltip: "ABILITY" | "PASSIVE" | "CANDY" | undefined;
|
private activeTooltip: "ABILITY" | "PASSIVE" | "CANDY" | undefined;
|
||||||
private instructionsContainer: Phaser.GameObjects.Container;
|
private instructionsContainer: Phaser.GameObjects.Container;
|
||||||
@ -238,6 +229,13 @@ export default class PokedexPageUiHandler extends MessageUiHandler {
|
|||||||
private eggMoves: Moves[] = [];
|
private eggMoves: Moves[] = [];
|
||||||
private hasEggMoves: boolean[] = [];
|
private hasEggMoves: boolean[] = [];
|
||||||
private tmMoves: Moves[] = [];
|
private tmMoves: Moves[] = [];
|
||||||
|
private ability1: Ability;
|
||||||
|
private ability2: Ability;
|
||||||
|
private abilityHidden: Ability;
|
||||||
|
private passive: Ability;
|
||||||
|
private hasPassive: boolean;
|
||||||
|
private hasAbilities: number[];
|
||||||
|
|
||||||
private speciesStarterDexEntry: DexEntry | null;
|
private speciesStarterDexEntry: DexEntry | null;
|
||||||
private speciesStarterMoves: Moves[];
|
private speciesStarterMoves: Moves[];
|
||||||
private canCycleShiny: boolean;
|
private canCycleShiny: boolean;
|
||||||
@ -329,57 +327,6 @@ export default class PokedexPageUiHandler extends MessageUiHandler {
|
|||||||
this.pokemonUncaughtText.setOrigin(0, 0);
|
this.pokemonUncaughtText.setOrigin(0, 0);
|
||||||
this.starterSelectContainer.add(this.pokemonUncaughtText);
|
this.starterSelectContainer.add(this.pokemonUncaughtText);
|
||||||
|
|
||||||
|
|
||||||
// The position should be set per language
|
|
||||||
const starterInfoXPos = textSettings?.starterInfoXPos || 31;
|
|
||||||
const starterInfoYOffset = textSettings?.starterInfoYOffset || 0;
|
|
||||||
|
|
||||||
// The font size should be set per language
|
|
||||||
const starterInfoTextSize = textSettings?.starterInfoTextSize || 56;
|
|
||||||
|
|
||||||
this.pokemonAbilityLabelText = addTextObject(this.scene, 6, 127 + starterInfoYOffset, i18next.t("starterSelectUiHandler:ability"), TextStyle.SUMMARY_ALT, { fontSize: starterInfoTextSize });
|
|
||||||
this.pokemonAbilityLabelText.setOrigin(0, 0);
|
|
||||||
this.pokemonAbilityLabelText.setVisible(false);
|
|
||||||
|
|
||||||
this.starterSelectContainer.add(this.pokemonAbilityLabelText);
|
|
||||||
|
|
||||||
this.pokemonAbilityText = addTextObject(this.scene, starterInfoXPos, 127 + starterInfoYOffset, "", TextStyle.SUMMARY_ALT, { fontSize: starterInfoTextSize });
|
|
||||||
this.pokemonAbilityText.setOrigin(0, 0);
|
|
||||||
this.pokemonAbilityText.setInteractive(new Phaser.Geom.Rectangle(0, 0, 250, 55), Phaser.Geom.Rectangle.Contains);
|
|
||||||
|
|
||||||
this.starterSelectContainer.add(this.pokemonAbilityText);
|
|
||||||
|
|
||||||
this.pokemonPassiveLabelText = addTextObject(this.scene, 6, 136 + starterInfoYOffset, i18next.t("starterSelectUiHandler:passive"), TextStyle.SUMMARY_ALT, { fontSize: starterInfoTextSize });
|
|
||||||
this.pokemonPassiveLabelText.setOrigin(0, 0);
|
|
||||||
this.pokemonPassiveLabelText.setVisible(false);
|
|
||||||
this.starterSelectContainer.add(this.pokemonPassiveLabelText);
|
|
||||||
|
|
||||||
this.pokemonPassiveText = addTextObject(this.scene, starterInfoXPos, 136 + starterInfoYOffset, "", TextStyle.SUMMARY_ALT, { fontSize: starterInfoTextSize });
|
|
||||||
this.pokemonPassiveText.setOrigin(0, 0);
|
|
||||||
this.pokemonPassiveText.setInteractive(new Phaser.Geom.Rectangle(0, 0, 250, 55), Phaser.Geom.Rectangle.Contains);
|
|
||||||
this.starterSelectContainer.add(this.pokemonPassiveText);
|
|
||||||
|
|
||||||
this.pokemonPassiveDisabledIcon = this.scene.add.sprite(starterInfoXPos, 137 + starterInfoYOffset, "icon_stop");
|
|
||||||
this.pokemonPassiveDisabledIcon.setOrigin(0, 0.5);
|
|
||||||
this.pokemonPassiveDisabledIcon.setScale(0.35);
|
|
||||||
this.pokemonPassiveDisabledIcon.setVisible(false);
|
|
||||||
this.starterSelectContainer.add(this.pokemonPassiveDisabledIcon);
|
|
||||||
|
|
||||||
this.pokemonPassiveLockedIcon = this.scene.add.sprite(starterInfoXPos, 137 + starterInfoYOffset, "icon_lock");
|
|
||||||
this.pokemonPassiveLockedIcon.setOrigin(0, 0.5);
|
|
||||||
this.pokemonPassiveLockedIcon.setScale(0.42, 0.38);
|
|
||||||
this.pokemonPassiveLockedIcon.setVisible(false);
|
|
||||||
this.starterSelectContainer.add(this.pokemonPassiveLockedIcon);
|
|
||||||
|
|
||||||
this.pokemonNatureLabelText = addTextObject(this.scene, 6, 145 + starterInfoYOffset, i18next.t("starterSelectUiHandler:nature"), TextStyle.SUMMARY_ALT, { fontSize: starterInfoTextSize });
|
|
||||||
this.pokemonNatureLabelText.setOrigin(0, 0);
|
|
||||||
this.pokemonNatureLabelText.setVisible(false);
|
|
||||||
this.starterSelectContainer.add(this.pokemonNatureLabelText);
|
|
||||||
|
|
||||||
this.pokemonNatureText = addBBCodeTextObject(this.scene, starterInfoXPos, 145 + starterInfoYOffset, "", TextStyle.SUMMARY_ALT, { fontSize: starterInfoTextSize });
|
|
||||||
this.pokemonNatureText.setOrigin(0, 0);
|
|
||||||
this.starterSelectContainer.add(this.pokemonNatureText);
|
|
||||||
|
|
||||||
this.pokemonMoveContainers = [];
|
this.pokemonMoveContainers = [];
|
||||||
this.pokemonMoveBgs = [];
|
this.pokemonMoveBgs = [];
|
||||||
this.pokemonMoveLabels = [];
|
this.pokemonMoveLabels = [];
|
||||||
@ -752,14 +699,32 @@ export default class PokedexPageUiHandler extends MessageUiHandler {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
starterSetup(species): void {
|
starterSetup(species: PokemonSpecies): void {
|
||||||
// TODO: Make sure this takes into account all of pokemonFormLevelMoves properly! Should change when toggling forms.
|
// TODO: Make sure this takes into account all of pokemonFormLevelMoves properly! Should change when toggling forms.
|
||||||
this.levelMoves = pokemonSpeciesLevelMoves[species.speciesId];
|
this.levelMoves = pokemonSpeciesLevelMoves[species.speciesId];
|
||||||
this.eggMoves = speciesEggMoves[this.getStarterSpeciesId(species.speciesId)] ?? [];
|
this.eggMoves = speciesEggMoves[this.getStarterSpeciesId(species.speciesId)] ?? [];
|
||||||
this.hasEggMoves = Array.from({ length: 4 }, (_, em) => (this.scene.gameData.starterData[this.getStarterSpeciesId(species.speciesId)].eggMoves & (1 << em)) !== 0);
|
this.hasEggMoves = Array.from({ length: 4 }, (_, em) => (this.scene.gameData.starterData[this.getStarterSpeciesId(species.speciesId)].eggMoves & (1 << em)) !== 0);
|
||||||
console.log(speciesTmMoves[species.speciesId ?? []]);
|
|
||||||
this.tmMoves = (speciesTmMoves[species.speciesId] ?? []).sort((a, b) => allMoves[a].name > allMoves[b].name ? 1 : -1);
|
this.tmMoves = (speciesTmMoves[species.speciesId] ?? []).sort((a, b) => allMoves[a].name > allMoves[b].name ? 1 : -1);
|
||||||
console.log(this.tmMoves);
|
this.ability1 = species.ability1;
|
||||||
|
this.ability2 = (species.ability2 === species.ability1) ? null : species.ability2;
|
||||||
|
this.abilityHidden = species.abilityHidden;
|
||||||
|
this.passive = starterPassiveAbilities[this.getStarterSpeciesId(species.speciesId)];
|
||||||
|
|
||||||
|
const starterData = this.scene.gameData.starterData[this.getStarterSpeciesId(species.speciesId)];
|
||||||
|
const abilityAttr = starterData.abilityAttr;
|
||||||
|
this.hasPassive = starterData.passiveAttr > 0;
|
||||||
|
|
||||||
|
const hasAbility1 = abilityAttr & AbilityAttr.ABILITY_1;
|
||||||
|
const hasAbility2 = abilityAttr & AbilityAttr.ABILITY_2;
|
||||||
|
const hasHiddenAbility = abilityAttr & AbilityAttr.ABILITY_HIDDEN;
|
||||||
|
// Due to a past bug it is possible that some Pokemon with a single ability have the ability2 flag
|
||||||
|
// In this case, we only count ability2 as valid if ability1 was not unlocked, otherwise we ignore it
|
||||||
|
this.hasAbilities = [
|
||||||
|
hasAbility1,
|
||||||
|
hasAbility2,
|
||||||
|
hasHiddenAbility
|
||||||
|
];
|
||||||
|
console.log(this.hasAbilities);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -1064,7 +1029,7 @@ export default class PokedexPageUiHandler extends MessageUiHandler {
|
|||||||
let starterContainer;
|
let starterContainer;
|
||||||
const starterData = this.scene.gameData.starterData[this.getStarterSpeciesId(this.lastSpecies.speciesId)];
|
const starterData = this.scene.gameData.starterData[this.getStarterSpeciesId(this.lastSpecies.speciesId)];
|
||||||
// prepare persistent starter data to store changes
|
// prepare persistent starter data to store changes
|
||||||
let starterAttributes = this.starterPreferences[this.getStarterSpeciesId(this.lastSpecies.speciesId)];
|
const starterAttributes = this.starterPreferences[this.getStarterSpeciesId(this.lastSpecies.speciesId)];
|
||||||
|
|
||||||
if (button === Button.ACTION) {
|
if (button === Button.ACTION) {
|
||||||
|
|
||||||
@ -1229,11 +1194,124 @@ export default class PokedexPageUiHandler extends MessageUiHandler {
|
|||||||
});
|
});
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case MenuOptions.ABILITIES:
|
||||||
|
|
||||||
|
this.blockInput = true;
|
||||||
|
|
||||||
|
ui.setMode(Mode.POKEDEX_PAGE, "refresh").then(() => {
|
||||||
|
|
||||||
|
ui.showText(i18next.t("pokedexUiHandler:abilities"), null, () => {
|
||||||
|
|
||||||
|
// this.moveInfoOverlay.show(allMoves[this.eggMoves[0]]);
|
||||||
|
|
||||||
|
const options: any[] = [];
|
||||||
|
|
||||||
|
if (this.ability1) {
|
||||||
|
options.push({
|
||||||
|
label: allAbilities[this.ability1].name,
|
||||||
|
color: this.hasAbilities[0] > 0 ? "#ffffff" : "#6b5a73",
|
||||||
|
handler: () => false,
|
||||||
|
onHover: () => this.moveInfoOverlay.show(allMoves[this.eggMoves[3]])
|
||||||
|
});
|
||||||
|
}
|
||||||
|
if (this.ability2) {
|
||||||
|
options.push({
|
||||||
|
label: allAbilities[this.ability2].name,
|
||||||
|
color: this.hasAbilities[1] > 0 ? "#ffffff" : "#6b5a73",
|
||||||
|
handler: () => false,
|
||||||
|
onHover: () => this.moveInfoOverlay.show(allMoves[this.eggMoves[3]])
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
if (this.abilityHidden) {
|
||||||
|
options.push({
|
||||||
|
label: "Hidden:",
|
||||||
|
skip: true,
|
||||||
|
color: "#ccbe00",
|
||||||
|
handler: () => false,
|
||||||
|
onHover: () => this.moveInfoOverlay.clear()
|
||||||
|
});
|
||||||
|
options.push({
|
||||||
|
label: allAbilities[this.abilityHidden].name,
|
||||||
|
color: this.hasAbilities[2] > 0 ? "#ffffff" : "#6b5a73",
|
||||||
|
handler: () => false,
|
||||||
|
onHover: () => this.moveInfoOverlay.show(allMoves[this.eggMoves[3]])
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
if (this.passive) {
|
||||||
|
options.push({
|
||||||
|
label: "Passive:",
|
||||||
|
skip: true,
|
||||||
|
color: "#ccbe00",
|
||||||
|
handler: () => false,
|
||||||
|
onHover: () => this.moveInfoOverlay.clear()
|
||||||
|
});
|
||||||
|
options.push({
|
||||||
|
label: allAbilities[this.passive].name,
|
||||||
|
color: this.hasPassive ? "#ffffff" : "#6b5a73",
|
||||||
|
handler: () => false,
|
||||||
|
onHover: () => this.moveInfoOverlay.show(allMoves[this.eggMoves[3]])
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
options.push({
|
||||||
|
label: i18next.t("menu:cancel"),
|
||||||
|
handler: () => {
|
||||||
|
this.moveInfoOverlay.clear();
|
||||||
|
this.clearText();
|
||||||
|
ui.setMode(Mode.POKEDEX_PAGE, "refresh");
|
||||||
|
return true;
|
||||||
|
},
|
||||||
|
onHover: () => this.moveInfoOverlay.clear()
|
||||||
|
});
|
||||||
|
|
||||||
|
ui.setModeWithoutClear(Mode.OPTION_SELECT, {
|
||||||
|
options: options,
|
||||||
|
supportHover: true,
|
||||||
|
maxOptions: 8,
|
||||||
|
yOffset: 19
|
||||||
|
});
|
||||||
|
|
||||||
|
this.blockInput = false;
|
||||||
|
});
|
||||||
|
});
|
||||||
|
break;
|
||||||
|
|
||||||
case MenuOptions.TOGGLE_IVS:
|
case MenuOptions.TOGGLE_IVS:
|
||||||
this.toggleStatsMode();
|
this.toggleStatsMode();
|
||||||
ui.setMode(Mode.POKEDEX_PAGE, "refresh");
|
ui.setMode(Mode.POKEDEX_PAGE, "refresh");
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
|
case MenuOptions.NATURES:
|
||||||
|
this.blockInput = true;
|
||||||
|
ui.setMode(Mode.POKEDEX_PAGE, "refresh").then(() => {
|
||||||
|
ui.showText(i18next.t("pokedexUiHandler:showNature"), null, () => {
|
||||||
|
const natures = this.scene.gameData.getNaturesForAttr(this.speciesStarterDexEntry?.natureAttr);
|
||||||
|
ui.setModeWithoutClear(Mode.OPTION_SELECT, {
|
||||||
|
options: natures.map((n: Nature, i: number) => {
|
||||||
|
const option: OptionSelectItem = {
|
||||||
|
label: getNatureName(n, true, true, true, this.scene.uiTheme),
|
||||||
|
handler: () => {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
return option;
|
||||||
|
}).concat({
|
||||||
|
label: i18next.t("menu:cancel"),
|
||||||
|
handler: () => {
|
||||||
|
this.clearText();
|
||||||
|
ui.setMode(Mode.POKEDEX_PAGE, "refresh");
|
||||||
|
this.blockInput = false;
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}),
|
||||||
|
maxOptions: 8,
|
||||||
|
yOffset: 19
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
default:
|
default:
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
@ -1258,58 +1336,6 @@ export default class PokedexPageUiHandler extends MessageUiHandler {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
if (this.canCycleNature) {
|
|
||||||
// if we could cycle natures, enable the improved nature menu
|
|
||||||
const showNatureOptions = () => {
|
|
||||||
|
|
||||||
this.blockInput = true;
|
|
||||||
|
|
||||||
ui.setMode(Mode.POKEDEX_PAGE, "refresh").then(() => {
|
|
||||||
ui.showText(i18next.t("starterSelectUiHandler:selectNature"), null, () => {
|
|
||||||
const natures = this.scene.gameData.getNaturesForAttr(this.speciesStarterDexEntry?.natureAttr);
|
|
||||||
ui.setModeWithoutClear(Mode.OPTION_SELECT, {
|
|
||||||
options: natures.map((n: Nature, i: number) => {
|
|
||||||
const option: OptionSelectItem = {
|
|
||||||
label: getNatureName(n, true, true, true, this.scene.uiTheme),
|
|
||||||
handler: () => {
|
|
||||||
// update default nature in starter save data
|
|
||||||
if (!starterAttributes) {
|
|
||||||
starterAttributes = this.starterPreferences[this.getStarterSpeciesId(this.lastSpecies.speciesId)] = {};
|
|
||||||
}
|
|
||||||
starterAttributes.nature = n;
|
|
||||||
this.clearText();
|
|
||||||
ui.setMode(Mode.POKEDEX_PAGE, "refresh");
|
|
||||||
// set nature for starter
|
|
||||||
this.setSpeciesDetails(this.lastSpecies, { natureIndex: n });
|
|
||||||
this.blockInput = false;
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
};
|
|
||||||
return option;
|
|
||||||
}).concat({
|
|
||||||
label: i18next.t("menu:cancel"),
|
|
||||||
handler: () => {
|
|
||||||
this.clearText();
|
|
||||||
ui.setMode(Mode.POKEDEX_PAGE, "refresh");
|
|
||||||
this.blockInput = false;
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}),
|
|
||||||
maxOptions: 8,
|
|
||||||
yOffset: 19
|
|
||||||
});
|
|
||||||
});
|
|
||||||
});
|
|
||||||
};
|
|
||||||
options.push({
|
|
||||||
label: i18next.t("starterSelectUiHandler:manageNature"),
|
|
||||||
handler: () => {
|
|
||||||
showNatureOptions();
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
const passiveAttr = starterData.passiveAttr;
|
const passiveAttr = starterData.passiveAttr;
|
||||||
|
|
||||||
// Purchases with Candy
|
// Purchases with Candy
|
||||||
@ -1831,9 +1857,6 @@ export default class PokedexPageUiHandler extends MessageUiHandler {
|
|||||||
this.scene.ui.hideTooltip();
|
this.scene.ui.hideTooltip();
|
||||||
}
|
}
|
||||||
|
|
||||||
this.pokemonAbilityText.off("pointerover");
|
|
||||||
this.pokemonPassiveText.off("pointerover");
|
|
||||||
|
|
||||||
const starterAttributes : StarterAttributes | null = species ? { ...this.starterPreferences[species.speciesId] } : null;
|
const starterAttributes : StarterAttributes | null = species ? { ...this.starterPreferences[species.speciesId] } : null;
|
||||||
|
|
||||||
if (starterAttributes?.nature) {
|
if (starterAttributes?.nature) {
|
||||||
@ -1888,9 +1911,6 @@ export default class PokedexPageUiHandler extends MessageUiHandler {
|
|||||||
this.pokemonGrowthRateText.setShadowColor(getGrowthRateColor(species.growthRate, true));
|
this.pokemonGrowthRateText.setShadowColor(getGrowthRateColor(species.growthRate, true));
|
||||||
this.pokemonGrowthRateLabelText.setVisible(true);
|
this.pokemonGrowthRateLabelText.setVisible(true);
|
||||||
this.pokemonUncaughtText.setVisible(false);
|
this.pokemonUncaughtText.setVisible(false);
|
||||||
this.pokemonAbilityLabelText.setVisible(true);
|
|
||||||
this.pokemonPassiveLabelText.setVisible(true);
|
|
||||||
this.pokemonNatureLabelText.setVisible(true);
|
|
||||||
this.pokemonCaughtCountText.setText(`${this.speciesStarterDexEntry.caughtCount}`);
|
this.pokemonCaughtCountText.setText(`${this.speciesStarterDexEntry.caughtCount}`);
|
||||||
if (species.speciesId === Species.MANAPHY || species.speciesId === Species.PHIONE) {
|
if (species.speciesId === Species.MANAPHY || species.speciesId === Species.PHIONE) {
|
||||||
this.pokemonHatchedIcon.setFrame("manaphy");
|
this.pokemonHatchedIcon.setFrame("manaphy");
|
||||||
@ -1999,9 +2019,6 @@ export default class PokedexPageUiHandler extends MessageUiHandler {
|
|||||||
this.pokemonLuckText.setVisible(false);
|
this.pokemonLuckText.setVisible(false);
|
||||||
this.pokemonShinyIcon.setVisible(false);
|
this.pokemonShinyIcon.setVisible(false);
|
||||||
this.pokemonUncaughtText.setVisible(true);
|
this.pokemonUncaughtText.setVisible(true);
|
||||||
this.pokemonAbilityLabelText.setVisible(false);
|
|
||||||
this.pokemonPassiveLabelText.setVisible(false);
|
|
||||||
this.pokemonNatureLabelText.setVisible(false);
|
|
||||||
this.pokemonCaughtHatchedContainer.setVisible(false);
|
this.pokemonCaughtHatchedContainer.setVisible(false);
|
||||||
this.pokemonCandyContainer.setVisible(false);
|
this.pokemonCandyContainer.setVisible(false);
|
||||||
this.pokemonFormText.setVisible(false);
|
this.pokemonFormText.setVisible(false);
|
||||||
@ -2033,9 +2050,6 @@ export default class PokedexPageUiHandler extends MessageUiHandler {
|
|||||||
this.pokemonLuckText.setVisible(false);
|
this.pokemonLuckText.setVisible(false);
|
||||||
this.pokemonShinyIcon.setVisible(false);
|
this.pokemonShinyIcon.setVisible(false);
|
||||||
this.pokemonUncaughtText.setVisible(!!species);
|
this.pokemonUncaughtText.setVisible(!!species);
|
||||||
this.pokemonAbilityLabelText.setVisible(false);
|
|
||||||
this.pokemonPassiveLabelText.setVisible(false);
|
|
||||||
this.pokemonNatureLabelText.setVisible(false);
|
|
||||||
this.pokemonCaughtHatchedContainer.setVisible(false);
|
this.pokemonCaughtHatchedContainer.setVisible(false);
|
||||||
this.pokemonCandyContainer.setVisible(false);
|
this.pokemonCandyContainer.setVisible(false);
|
||||||
this.pokemonFormText.setVisible(false);
|
this.pokemonFormText.setVisible(false);
|
||||||
@ -2094,10 +2108,6 @@ export default class PokedexPageUiHandler extends MessageUiHandler {
|
|||||||
}
|
}
|
||||||
|
|
||||||
this.pokemonSprite.setVisible(false);
|
this.pokemonSprite.setVisible(false);
|
||||||
this.pokemonPassiveLabelText.setVisible(false);
|
|
||||||
this.pokemonPassiveText.setVisible(false);
|
|
||||||
this.pokemonPassiveDisabledIcon.setVisible(false);
|
|
||||||
this.pokemonPassiveLockedIcon.setVisible(false);
|
|
||||||
|
|
||||||
if (this.assetLoadCancelled) {
|
if (this.assetLoadCancelled) {
|
||||||
this.assetLoadCancelled.value = true;
|
this.assetLoadCancelled.value = true;
|
||||||
@ -2224,77 +2234,6 @@ export default class PokedexPageUiHandler extends MessageUiHandler {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (dexEntry.caughtAttr) {
|
if (dexEntry.caughtAttr) {
|
||||||
const ability = allAbilities[this.lastSpecies.getAbility(abilityIndex!)]; // TODO: is this bang correct?
|
|
||||||
this.pokemonAbilityText.setText(ability.name);
|
|
||||||
|
|
||||||
const isHidden = abilityIndex === (this.lastSpecies.ability2 ? 2 : 1);
|
|
||||||
this.pokemonAbilityText.setColor(this.getTextColor(!isHidden ? TextStyle.SUMMARY_ALT : TextStyle.SUMMARY_GOLD));
|
|
||||||
this.pokemonAbilityText.setShadowColor(this.getTextColor(!isHidden ? TextStyle.SUMMARY_ALT : TextStyle.SUMMARY_GOLD, true));
|
|
||||||
|
|
||||||
const passiveAttr = this.scene.gameData.starterData[this.getStarterSpeciesId(species.speciesId)].passiveAttr;
|
|
||||||
const passiveAbility = allAbilities[starterPassiveAbilities[this.getStarterSpeciesId(this.lastSpecies.speciesId)]];
|
|
||||||
|
|
||||||
if (this.pokemonAbilityText.visible) {
|
|
||||||
if (this.activeTooltip === "ABILITY") {
|
|
||||||
this.scene.ui.editTooltip(`${ability.name}`, `${ability.description}`);
|
|
||||||
}
|
|
||||||
|
|
||||||
this.pokemonAbilityText.on("pointerover", () => {
|
|
||||||
this.scene.ui.showTooltip(`${ability.name}`, `${ability.description}`, true);
|
|
||||||
this.activeTooltip = "ABILITY";
|
|
||||||
});
|
|
||||||
this.pokemonAbilityText.on("pointerout", () => {
|
|
||||||
this.scene.ui.hideTooltip();
|
|
||||||
this.activeTooltip = undefined;
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
if (passiveAbility) {
|
|
||||||
const isUnlocked = !!(passiveAttr & PassiveAttr.UNLOCKED);
|
|
||||||
const isEnabled = !!(passiveAttr & PassiveAttr.ENABLED);
|
|
||||||
|
|
||||||
const textStyle = isUnlocked && isEnabled ? TextStyle.SUMMARY_ALT : TextStyle.SUMMARY_GRAY;
|
|
||||||
const textAlpha = isUnlocked && isEnabled ? 1 : 0.5;
|
|
||||||
|
|
||||||
this.pokemonPassiveLabelText.setVisible(true);
|
|
||||||
this.pokemonPassiveLabelText.setColor(this.getTextColor(TextStyle.SUMMARY_ALT));
|
|
||||||
this.pokemonPassiveLabelText.setShadowColor(this.getTextColor(TextStyle.SUMMARY_ALT, true));
|
|
||||||
this.pokemonPassiveText.setVisible(true);
|
|
||||||
this.pokemonPassiveText.setText(passiveAbility.name);
|
|
||||||
this.pokemonPassiveText.setColor(this.getTextColor(textStyle));
|
|
||||||
this.pokemonPassiveText.setAlpha(textAlpha);
|
|
||||||
this.pokemonPassiveText.setShadowColor(this.getTextColor(textStyle, true));
|
|
||||||
|
|
||||||
if (this.activeTooltip === "PASSIVE") {
|
|
||||||
this.scene.ui.editTooltip(`${passiveAbility.name}`, `${passiveAbility.description}`);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (this.pokemonPassiveText.visible) {
|
|
||||||
this.pokemonPassiveText.on("pointerover", () => {
|
|
||||||
this.scene.ui.showTooltip(`${passiveAbility.name}`, `${passiveAbility.description}`, true);
|
|
||||||
this.activeTooltip = "PASSIVE";
|
|
||||||
});
|
|
||||||
this.pokemonPassiveText.on("pointerout", () => {
|
|
||||||
this.scene.ui.hideTooltip();
|
|
||||||
this.activeTooltip = undefined;
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
const iconPosition = {
|
|
||||||
x: this.pokemonPassiveText.x + this.pokemonPassiveText.displayWidth + 1,
|
|
||||||
y: this.pokemonPassiveText.y + this.pokemonPassiveText.displayHeight / 2
|
|
||||||
};
|
|
||||||
this.pokemonPassiveDisabledIcon.setVisible(isUnlocked && !isEnabled);
|
|
||||||
this.pokemonPassiveDisabledIcon.setPosition(iconPosition.x, iconPosition.y);
|
|
||||||
this.pokemonPassiveLockedIcon.setVisible(!isUnlocked);
|
|
||||||
this.pokemonPassiveLockedIcon.setPosition(iconPosition.x, iconPosition.y);
|
|
||||||
|
|
||||||
} else if (this.activeTooltip === "PASSIVE") {
|
|
||||||
// No passive and passive tooltip is active > hide it
|
|
||||||
this.scene.ui.hideTooltip();
|
|
||||||
}
|
|
||||||
|
|
||||||
this.pokemonNatureText.setText(getNatureName(natureIndex as unknown as Nature, true, true, false, this.scene.uiTheme));
|
|
||||||
|
|
||||||
let levelMoves: LevelMoves;
|
let levelMoves: LevelMoves;
|
||||||
if (pokemonFormLevelMoves.hasOwnProperty(species.speciesId) && formIndex && pokemonFormLevelMoves[species.speciesId].hasOwnProperty(formIndex)) {
|
if (pokemonFormLevelMoves.hasOwnProperty(species.speciesId) && formIndex && pokemonFormLevelMoves[species.speciesId].hasOwnProperty(formIndex)) {
|
||||||
@ -2343,9 +2282,6 @@ export default class PokedexPageUiHandler extends MessageUiHandler {
|
|||||||
|
|
||||||
this.setTypeIcons(speciesForm.type1, speciesForm.type2);
|
this.setTypeIcons(speciesForm.type1, speciesForm.type2);
|
||||||
} else {
|
} else {
|
||||||
this.pokemonAbilityText.setText("");
|
|
||||||
this.pokemonPassiveText.setText("");
|
|
||||||
this.pokemonNatureText.setText("");
|
|
||||||
this.setTypeIcons(null, null);
|
this.setTypeIcons(null, null);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
@ -2353,9 +2289,6 @@ export default class PokedexPageUiHandler extends MessageUiHandler {
|
|||||||
this.pokemonNumberText.setColor(this.getTextColor(TextStyle.SUMMARY));
|
this.pokemonNumberText.setColor(this.getTextColor(TextStyle.SUMMARY));
|
||||||
this.pokemonNumberText.setShadowColor(this.getTextColor(TextStyle.SUMMARY, true));
|
this.pokemonNumberText.setShadowColor(this.getTextColor(TextStyle.SUMMARY, true));
|
||||||
this.pokemonGenderText.setText("");
|
this.pokemonGenderText.setText("");
|
||||||
this.pokemonAbilityText.setText("");
|
|
||||||
this.pokemonPassiveText.setText("");
|
|
||||||
this.pokemonNatureText.setText("");
|
|
||||||
this.setTypeIcons(null, null);
|
this.setTypeIcons(null, null);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user