diff --git a/src/data/moves/move.ts b/src/data/moves/move.ts index f2157ab65b7..ac0d97f5d85 100644 --- a/src/data/moves/move.ts +++ b/src/data/moves/move.ts @@ -323,7 +323,7 @@ export default class Move implements Localizable { * @param {PokemonType} type the type of the move's target * @returns boolean */ - isTypeImmune(user: Pokemon, target: Pokemon, type: PokemonType): boolean { + isTypeImmune(user: Pokemon, target: Pokemon, type: PokemonType, move: Move): boolean { if (this.moveTarget === MoveTarget.USER) { return false; } @@ -339,6 +339,26 @@ export default class Move implements Localizable { return true; } break; + case PokemonType.FIRE: + if (move.id === Moves.WILL_O_WISP) { + return true; + } + break; + case PokemonType.ELECTRIC: + if (move.id === Moves.THUNDER_WAVE) { + return true; + } + break; + case PokemonType.POISON: + if (move.id === Moves.TOXIC) { + return true; + } + break; + case PokemonType.STEEL: + if (move.id === Moves.POISON_GAS) { + return true; + } + break; } return false; } diff --git a/src/field/pokemon.ts b/src/field/pokemon.ts index 890c6bab0d6..1f89cb91822 100644 --- a/src/field/pokemon.ts +++ b/src/field/pokemon.ts @@ -2459,7 +2459,7 @@ export default abstract class Pokemon extends Phaser.GameObjects.Container { typeMultiplier, ); if ( - this.getTypes(true, true).find(t => move.isTypeImmune(source, this, t)) + this.getTypes(true, true).find(t => move.isTypeImmune(source, this, t, move)) ) { typeMultiplier.value = 0; }