export const Moves: import('../../../sim/dex-moves').ModdedMoveDataTable = { // Belly Drum no longer boosts attack by 2 stages if under 50% health. bellydrum: { inherit: true, onHit(target) { if (target.boosts.atk >= 6 || target.hp <= target.maxhp / 2) { return false; } this.directDamage(target.maxhp / 2); const originalStage = target.boosts.atk; let currentStage = originalStage; let boosts = 0; let loopStage = 0; while (currentStage < 6) { loopStage = currentStage; currentStage++; if (currentStage < 6) currentStage++; target.boosts.atk = loopStage; if (target.getStat('atk', false, true) < 999) { target.boosts.atk = currentStage; continue; } target.boosts.atk = currentStage - 1; break; } boosts = target.boosts.atk - originalStage; target.boosts.atk = originalStage; this.boost({ atk: boosts }); }, }, destinybond: { inherit: true, onPrepareHit(pokemon) { if (pokemon.side.pokemonLeft === 1) { this.hint("In Pokemon Stadium 2, Destiny Bond fails if it is being used by your last Pokemon."); return false; } }, }, /** * In Stadium 2, moves which affect the stat stages of a Pokemon, such as moves which boost ones own stats, * lower the targets stats, or Haze, causes the afflicted stat to be re-calculated without factoring in * status aliments, thus if a Pokemon is burned or paralyzed and either active Pokemon uses Haze, then their * attack and speed are re-calculated while ignoring their status ailments, so their attack would go from 50% to normal */ haze: { inherit: true, onHitField() { this.add('-clearallboost'); for (const pokemon of this.getAllActive()) { pokemon.clearBoosts(); pokemon.removeVolatile('brnattackdrop'); pokemon.removeVolatile('parspeeddrop'); } }, }, perishsong: { inherit: true, onPrepareHit(pokemon) { if (pokemon.side.pokemonLeft === 1) { this.hint("In Pokemon Stadium 2, Perish Song fails if it is being used by your last Pokemon."); return false; } }, }, };