Merge branch 'beta' into WorkingDiscardFunction

This commit is contained in:
Mikhail Shueb 2025-06-17 18:21:12 +01:00 committed by GitHub
commit 0d998a7d3a
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 9 additions and 4 deletions

View File

@ -291,13 +291,18 @@ export class SpeciesFormEvolution {
);
}
/**
* Checks if this evolution is item-based and any conditions for it are fulfilled
* @param pokemon {@linkcode Pokemon} who wants to evolve
* @param forFusion defaults to False. Whether this evolution is meant for the secondary fused mon. In that case, use their form key.
* @returns whether this evolution uses an item and can apply to the Pokemon
*/
public isValidItemEvolution(pokemon: Pokemon, forFusion = false): boolean {
return (
// If an item is given, check if it's the right one
!isNullOrUndefined(this.item) &&
pokemon.level >= this.level &&
// Check form key, using the fusion's form key if we're checking the fusion
(isNullOrUndefined(this.preFormKey) || (forFusion ? pokemon.getFormKey() : pokemon.getFusionFormKey()) === this.preFormKey) &&
(isNullOrUndefined(this.preFormKey) || (forFusion ? pokemon.getFusionFormKey() : pokemon.getFormKey()) === this.preFormKey) &&
(isNullOrUndefined(this.condition) || this.condition.conditionsFulfilled(pokemon))
);
}

View File

@ -1603,12 +1603,12 @@ class EvolutionItemModifierTypeGenerator extends ModifierTypeGenerator {
)
.flatMap(p => {
const evolutions = pokemonEvolutions[p.fusionSpecies!.speciesId];
return evolutions.filter(e => e.validate(p, true));
return evolutions.filter(e => e.isValidItemEvolution(p, true));
}),
]
.flat()
.flatMap(e => e.evoItem)
.filter(i => (!!i && i > 50) === rare);
.filter(i => !!i && i > 50 === rare);
if (!evolutionItemPool.length) {
return null;