Fix moveset generation logic

pull/16/head
Flashfyre 2024-03-25 15:22:37 -04:00
parent 4633ac2426
commit 85d09462ad
1 changed files with 7 additions and 3 deletions

View File

@ -779,7 +779,7 @@ export default abstract class Pokemon extends Phaser.GameObjects.Container {
const evolutionChain = this.species.getSimulatedEvolutionChain(this.level, this.hasTrainer(), this.isBoss(), this.isPlayer()); const evolutionChain = this.species.getSimulatedEvolutionChain(this.level, this.hasTrainer(), this.isBoss(), this.isPlayer());
for (let e = 0; e < evolutionChain.length; e++) { for (let e = 0; e < evolutionChain.length; e++) {
const speciesLevelMoves = getPokemonSpecies(evolutionChain[e][0] as Species).getLevelMoves(); const speciesLevelMoves = getPokemonSpecies(evolutionChain[e][0] as Species).getLevelMoves();
levelMoves.push(...speciesLevelMoves.filter(lm => (includeEvolutionMoves && !lm[0]) || (!e && (e === evolutionChain.length - 1 || lm[0] < evolutionChain[e + 1][0])))); levelMoves.push(...speciesLevelMoves.filter(lm => (includeEvolutionMoves && !lm[0]) || (lm[0] >= evolutionChain[e][1] && (e === evolutionChain.length - 1 || lm[0] <= evolutionChain[e + 1][1]))));
} }
const uniqueMoves: Moves[] = []; const uniqueMoves: Moves[] = [];
levelMoves = levelMoves.filter(lm => { levelMoves = levelMoves.filter(lm => {
@ -924,8 +924,12 @@ export default abstract class Pokemon extends Phaser.GameObjects.Container {
const levelMove = allLevelMoves[m]; const levelMove = allLevelMoves[m];
if (this.level < levelMove[0]) if (this.level < levelMove[0])
break; break;
if (movePool.indexOf(levelMove[1]) === -1) if (movePool.indexOf(levelMove[1]) === -1) {
movePool.push(levelMove[1]); if (!allMoves[levelMove[1]].name.endsWith(' (N)'))
movePool.push(levelMove[1]);
else
movePool.unshift(levelMove[1]);
}
} }
const attackMovePool = movePool.filter(m => { const attackMovePool = movePool.filter(m => {