Indicate starters that exceed cost on starter select and show values for locked starters

pull/71/head
Flashfyre 2024-04-09 16:58:56 -04:00
parent 2a6042ff7e
commit e672ead184
2 changed files with 10 additions and 5 deletions

View File

@ -2729,7 +2729,7 @@ export function initAbilities() {
new Ability(Abilities.DAUNTLESS_SHIELD, "Dauntless Shield", "Boosts the Pokémon's Defense stat when the Pokémon enters a battle.", 8)
.attr(PostSummonStatChangeAbAttr, BattleStat.DEF, 1, true),
new Ability(Abilities.LIBERO, "Libero (N)", "Changes the Pokémon's type to the type of the move it's about to use.", 8),
new Ability(Abilities.BALL_FETCH, "Ball Fetch (N)", "If the Pokémon is not holding an item, it will fetch the Poké Ball from the first failed throw of the battle.", 8),
new Ability(Abilities.BALL_FETCH, "Ball Fetch (N)", "The Pokémon will fetch the Poké Ball from the first failed throw of the battle.", 8),
new Ability(Abilities.COTTON_DOWN, "Cotton Down (N)", "When the Pokémon is hit by an attack, it scatters cotton fluff around and lowers the Speed stat of all Pokémon except itself.", 8),
new Ability(Abilities.PROPELLER_TAIL, "Propeller Tail (N)", "Ignores the effects of opposing Pokémon's Abilities and moves that draw in moves.", 8),
new Ability(Abilities.MIRROR_ARMOR, "Mirror Armor (N)", "Bounces back only the stat-lowering effects that the Pokémon receives.", 8)

View File

@ -889,7 +889,7 @@ export default class StarterSelectUiHandler extends MessageUiHandler {
const genLimit = this.genSpecies[genCursorWithScroll].length;
for (let s = 0; s < 81; s++) {
const speciesId = s < genLimit ? this.genSpecies[genCursorWithScroll][s].speciesId : 0 as Species;
const slotVisible = speciesId && !!(this.scene.gameData.dexData[speciesId].caughtAttr);
const slotVisible = !!speciesId;
if (slotVisible) {
const baseStarterValue = speciesStarters[speciesId];
const starterValue = slotVisible ? this.scene.gameData.getSpeciesStarterValue(speciesId) : 0;
@ -914,7 +914,7 @@ export default class StarterSelectUiHandler extends MessageUiHandler {
this.starterValueLabels[s].setShadowColor(this.getTextColor(textStyle, true));
}
this.starterValueLabels[s].setVisible(slotVisible);
this.shinyIcons[s].setVisible(slotVisible && !!(this.scene.gameData.dexData[speciesId].caughtAttr & DexAttr.SHINY));
this.shinyIcons[s].setVisible(slotVisible && !!this.scene.gameData.dexData[speciesId].caughtAttr && !!(this.scene.gameData.dexData[speciesId].caughtAttr & DexAttr.SHINY));
}
} else {
changed = super.setCursor(cursor);
@ -1244,17 +1244,22 @@ export default class StarterSelectUiHandler extends MessageUiHandler {
tryUpdateValue(add?: integer): boolean {
const value = this.starterGens.reduce((total: integer, gen: integer, i: integer) => total += this.scene.gameData.getSpeciesStarterValue(this.genSpecies[gen][this.starterCursors[i]].speciesId), 0);
const newValue = value + (add || 0);
const overLimit = newValue > this.getValueLimit();
const valueLimit = this.getValueLimit();
const overLimit = newValue > valueLimit;
let newValueStr = newValue.toString();
if (newValueStr.startsWith('0.'))
newValueStr = newValueStr.slice(1);
this.valueLimitLabel.setText(`${newValueStr}/${this.getValueLimit()}`);
this.valueLimitLabel.setText(`${newValueStr}/${valueLimit}`);
this.valueLimitLabel.setColor(this.getTextColor(!overLimit ? TextStyle.TOOLTIP_CONTENT : TextStyle.SUMMARY_PINK));
this.valueLimitLabel.setShadowColor(this.getTextColor(!overLimit ? TextStyle.TOOLTIP_CONTENT : TextStyle.SUMMARY_PINK, true));
if (overLimit) {
this.scene.time.delayedCall(Utils.fixedInt(500), () => this.tryUpdateValue());
return false;
}
for (let g = 0; g < this.genSpecies.length; g++) {
for (let s = 0; s < this.genSpecies[g].length; s++)
(this.starterSelectGenIconContainers[g].getAt(s) as Phaser.GameObjects.Sprite).setAlpha((newValue + this.scene.gameData.getSpeciesStarterValue(this.genSpecies[g][s].speciesId)) > valueLimit ? 0.375 : 1);
}
this.value = newValue;
return true;
}