mirror of
https://github.com/pagefaultgames/pokerogue.git
synced 2024-11-25 16:26:25 +00:00
[Bug] add move effectiveness text color check to ignore ability (#2042)
This commit is contained in:
parent
36f3cc6b47
commit
bcfeaf0639
@ -1070,6 +1070,10 @@ export default abstract class Pokemon extends Phaser.GameObjects.Container {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
* Calculates the effectiveness of a move against the Pokémon.
|
||||||
|
*
|
||||||
|
* @param source - The Pokémon using the move.
|
||||||
|
* @param move - The move being used.
|
||||||
* @returns The type damage multiplier or undefined if it's a status move
|
* @returns The type damage multiplier or undefined if it's a status move
|
||||||
*/
|
*/
|
||||||
getMoveEffectiveness(source: Pokemon, move: PokemonMove): TypeDamageMultiplier | undefined {
|
getMoveEffectiveness(source: Pokemon, move: PokemonMove): TypeDamageMultiplier | undefined {
|
||||||
@ -1077,19 +1081,27 @@ export default abstract class Pokemon extends Phaser.GameObjects.Container {
|
|||||||
return undefined;
|
return undefined;
|
||||||
}
|
}
|
||||||
|
|
||||||
return this.getAttackMoveEffectiveness(source, move);
|
return this.getAttackMoveEffectiveness(source, move, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
getAttackMoveEffectiveness(source: Pokemon, pokemonMove: PokemonMove): TypeDamageMultiplier {
|
/**
|
||||||
|
* Calculates the effectiveness of an attack move against the Pokémon.
|
||||||
|
*
|
||||||
|
* @param source - The attacking Pokémon.
|
||||||
|
* @param pokemonMove - The move being used by the attacking Pokémon.
|
||||||
|
* @param ignoreAbility - Whether to check for abilities that might affect type effectiveness or immunity.
|
||||||
|
* @returns The type damage multiplier, indicating the effectiveness of the move
|
||||||
|
*/
|
||||||
|
getAttackMoveEffectiveness(source: Pokemon, pokemonMove: PokemonMove, ignoreAbility: boolean = false): TypeDamageMultiplier {
|
||||||
const move = pokemonMove.getMove();
|
const move = pokemonMove.getMove();
|
||||||
const typeless = move.hasAttr(TypelessAttr);
|
const typeless = move.hasAttr(TypelessAttr);
|
||||||
const typeMultiplier = new Utils.NumberHolder(this.getAttackTypeEffectiveness(move.type, source));
|
const typeMultiplier = new Utils.NumberHolder(this.getAttackTypeEffectiveness(move.type, source));
|
||||||
const cancelled = new Utils.BooleanHolder(false);
|
const cancelled = new Utils.BooleanHolder(false);
|
||||||
applyMoveAttrs(VariableMoveTypeMultiplierAttr, source, this, move, typeMultiplier);
|
applyMoveAttrs(VariableMoveTypeMultiplierAttr, source, this, move, typeMultiplier);
|
||||||
if (!typeless) {
|
if (!typeless && !ignoreAbility) {
|
||||||
applyPreDefendAbAttrs(TypeImmunityAbAttr, this, source, move, cancelled, typeMultiplier, true);
|
applyPreDefendAbAttrs(TypeImmunityAbAttr, this, source, move, cancelled, typeMultiplier, true);
|
||||||
}
|
}
|
||||||
if (!cancelled.value) {
|
if (!cancelled.value && !ignoreAbility) {
|
||||||
applyPreDefendAbAttrs(MoveImmunityAbAttr, this, source, move, cancelled, typeMultiplier, true);
|
applyPreDefendAbAttrs(MoveImmunityAbAttr, this, source, move, cancelled, typeMultiplier, true);
|
||||||
}
|
}
|
||||||
return (!cancelled.value ? typeMultiplier.value : 0) as TypeDamageMultiplier;
|
return (!cancelled.value ? typeMultiplier.value : 0) as TypeDamageMultiplier;
|
||||||
|
Loading…
Reference in New Issue
Block a user