Update calls to getEffectiveStat

This commit is contained in:
Sirz Benjie 2025-03-28 21:56:25 -05:00
parent 31382eb72f
commit f4d0c0fac5
No known key found for this signature in database
GPG Key ID: 4A524B4D196C759E
2 changed files with 51 additions and 7 deletions

View File

@ -1644,7 +1644,9 @@ export class ContactDamageProtectedTag extends ProtectedTag {
if (effectPhase instanceof MoveEffectPhase && effectPhase.move.getMove().hasFlag(MoveFlags.MAKES_CONTACT)) { if (effectPhase instanceof MoveEffectPhase && effectPhase.move.getMove().hasFlag(MoveFlags.MAKES_CONTACT)) {
const attacker = effectPhase.getPokemon(); const attacker = effectPhase.getPokemon();
if (!attacker.hasAbilityWithAttr(BlockNonDirectDamageAbAttr)) { if (!attacker.hasAbilityWithAttr(BlockNonDirectDamageAbAttr)) {
attacker.damageAndUpdate(toDmgValue(attacker.getMaxHp() * (1 / this.damageRatio)), { result: HitResult.INDIRECT }); attacker.damageAndUpdate(toDmgValue(attacker.getMaxHp() * (1 / this.damageRatio)), {
result: HitResult.INDIRECT,
});
} }
} }
} }
@ -1970,7 +1972,7 @@ export class HighestStatBoostTag extends AbilityBattlerTag {
let highestStat: EffectiveStat; let highestStat: EffectiveStat;
EFFECTIVE_STATS.map(s => EFFECTIVE_STATS.map(s =>
pokemon.getEffectiveStat(s, undefined, undefined, undefined, undefined, undefined, undefined, true), pokemon.getEffectiveStat(s, undefined, undefined, undefined, undefined, undefined, undefined, undefined, true),
).reduce((highestValue: number, value: number, i: number) => { ).reduce((highestValue: number, value: number, i: number) => {
if (value > highestValue) { if (value > highestValue) {
highestStat = EFFECTIVE_STATS[i]; highestStat = EFFECTIVE_STATS[i];
@ -2240,7 +2242,9 @@ export class SaltCuredTag extends BattlerTag {
if (!cancelled.value) { if (!cancelled.value) {
const pokemonSteelOrWater = pokemon.isOfType(PokemonType.STEEL) || pokemon.isOfType(PokemonType.WATER); const pokemonSteelOrWater = pokemon.isOfType(PokemonType.STEEL) || pokemon.isOfType(PokemonType.WATER);
pokemon.damageAndUpdate(toDmgValue(pokemonSteelOrWater ? pokemon.getMaxHp() / 4 : pokemon.getMaxHp() / 8), { result: HitResult.INDIRECT }); pokemon.damageAndUpdate(toDmgValue(pokemonSteelOrWater ? pokemon.getMaxHp() / 4 : pokemon.getMaxHp() / 8), {
result: HitResult.INDIRECT,
});
globalScene.queueMessage( globalScene.queueMessage(
i18next.t("battlerTags:saltCuredLapse", { i18next.t("battlerTags:saltCuredLapse", {

View File

@ -46,16 +46,56 @@ describe("Abilities - Protosynthesis", () => {
// Nature of starting mon is randomized. We need to fix it to a neutral nature for the automated test. // Nature of starting mon is randomized. We need to fix it to a neutral nature for the automated test.
mew.setNature(Nature.HARDY); mew.setNature(Nature.HARDY);
const enemy = game.scene.getEnemyPokemon()!; const enemy = game.scene.getEnemyPokemon()!;
const def_before_boost = mew.getEffectiveStat(Stat.DEF, undefined, undefined, false, undefined, false, false, true); const def_before_boost = mew.getEffectiveStat(
const atk_before_boost = mew.getEffectiveStat(Stat.ATK, undefined, undefined, false, undefined, false, false, true); Stat.DEF,
undefined,
undefined,
false,
undefined,
undefined,
false,
false,
true,
);
const atk_before_boost = mew.getEffectiveStat(
Stat.ATK,
undefined,
undefined,
false,
undefined,
undefined,
false,
false,
true,
);
const initialHp = enemy.hp; const initialHp = enemy.hp;
game.move.select(Moves.TACKLE); game.move.select(Moves.TACKLE);
await game.setTurnOrder([BattlerIndex.PLAYER, BattlerIndex.ENEMY]); await game.setTurnOrder([BattlerIndex.PLAYER, BattlerIndex.ENEMY]);
await game.toNextTurn(); await game.toNextTurn();
const unboosted_dmg = initialHp - enemy.hp; const unboosted_dmg = initialHp - enemy.hp;
enemy.hp = initialHp; enemy.hp = initialHp;
const def_after_boost = mew.getEffectiveStat(Stat.DEF, undefined, undefined, false, undefined, false, false, true); const def_after_boost = mew.getEffectiveStat(
const atk_after_boost = mew.getEffectiveStat(Stat.ATK, undefined, undefined, false, undefined, false, false, true); Stat.DEF,
undefined,
undefined,
false,
undefined,
undefined,
false,
false,
true,
);
const atk_after_boost = mew.getEffectiveStat(
Stat.ATK,
undefined,
undefined,
false,
undefined,
undefined,
false,
false,
true,
);
game.move.select(Moves.TACKLE); game.move.select(Moves.TACKLE);
await game.setTurnOrder([BattlerIndex.PLAYER, BattlerIndex.ENEMY]); await game.setTurnOrder([BattlerIndex.PLAYER, BattlerIndex.ENEMY]);
await game.toNextTurn(); await game.toNextTurn();