From 4b18ad74b3390ffe3fcf3c81ac2539aea89c157b Mon Sep 17 00:00:00 2001 From: Xavion3 Date: Wed, 27 Aug 2025 09:47:51 +1000 Subject: [PATCH] [Balance] Adjust moveset generation weighting (#6387) --- src/field/pokemon.ts | 27 +++++++++++++++------------ 1 file changed, 15 insertions(+), 12 deletions(-) diff --git a/src/field/pokemon.ts b/src/field/pokemon.ts index 707a8fb93ee..8e2f26af158 100644 --- a/src/field/pokemon.ts +++ b/src/field/pokemon.ts @@ -3070,14 +3070,17 @@ export abstract class Pokemon extends Phaser.GameObjects.Container { if (this.level < levelMove[0]) { break; } - let weight = levelMove[0]; + let weight = levelMove[0] + 20; // Evolution Moves - if (weight === EVOLVE_MOVE) { - weight = 50; + if (levelMove[0] === EVOLVE_MOVE) { + weight = 70; } // Assume level 1 moves with 80+ BP are "move reminder" moves and bump their weight. Trainers use actual relearn moves. - if ((weight === 1 && allMoves[levelMove[1]].power >= 80) || (weight === RELEARN_MOVE && this.hasTrainer())) { - weight = 40; + if ( + (levelMove[0] === 1 && allMoves[levelMove[1]].power >= 80) || + (levelMove[0] === RELEARN_MOVE && this.hasTrainer()) + ) { + weight = 60; } if (!movePool.some(m => m[0] === levelMove[1]) && !allMoves[levelMove[1]].name.endsWith(" (N)")) { movePool.push([levelMove[1], weight]); @@ -3107,11 +3110,11 @@ export abstract class Pokemon extends Phaser.GameObjects.Container { } if (compatible && !movePool.some(m => m[0] === moveId) && !allMoves[moveId].name.endsWith(" (N)")) { if (tmPoolTiers[moveId] === ModifierTier.COMMON && this.level >= 15) { - movePool.push([moveId, 4]); + movePool.push([moveId, 24]); } else if (tmPoolTiers[moveId] === ModifierTier.GREAT && this.level >= 30) { - movePool.push([moveId, 8]); + movePool.push([moveId, 28]); } else if (tmPoolTiers[moveId] === ModifierTier.ULTRA && this.level >= 50) { - movePool.push([moveId, 14]); + movePool.push([moveId, 34]); } } } @@ -3121,7 +3124,7 @@ export abstract class Pokemon extends Phaser.GameObjects.Container { for (let i = 0; i < 3; i++) { const moveId = speciesEggMoves[this.species.getRootSpeciesId()][i]; if (!movePool.some(m => m[0] === moveId) && !allMoves[moveId].name.endsWith(" (N)")) { - movePool.push([moveId, 40]); + movePool.push([moveId, 60]); } } const moveId = speciesEggMoves[this.species.getRootSpeciesId()][3]; @@ -3132,13 +3135,13 @@ export abstract class Pokemon extends Phaser.GameObjects.Container { !allMoves[moveId].name.endsWith(" (N)") && !this.isBoss() ) { - movePool.push([moveId, 30]); + movePool.push([moveId, 50]); } if (this.fusionSpecies) { for (let i = 0; i < 3; i++) { const moveId = speciesEggMoves[this.fusionSpecies.getRootSpeciesId()][i]; if (!movePool.some(m => m[0] === moveId) && !allMoves[moveId].name.endsWith(" (N)")) { - movePool.push([moveId, 40]); + movePool.push([moveId, 60]); } } const moveId = speciesEggMoves[this.fusionSpecies.getRootSpeciesId()][3]; @@ -3149,7 +3152,7 @@ export abstract class Pokemon extends Phaser.GameObjects.Container { !allMoves[moveId].name.endsWith(" (N)") && !this.isBoss() ) { - movePool.push([moveId, 30]); + movePool.push([moveId, 50]); } } }