diff --git a/src/data/move.ts b/src/data/move.ts index 15090f8335d..ef413c5f36f 100644 --- a/src/data/move.ts +++ b/src/data/move.ts @@ -161,6 +161,16 @@ export default class Move { return false; } + isTypeImmune(type: Type): boolean { + switch (type) { + case Type.GRASS: + if (this.hasFlag(MoveFlags.POWDER_MOVE)) + return true; + break; + } + return false; + } + condition(condition: MoveCondition | MoveConditionFunc): this { if (typeof condition === 'function') condition = new MoveCondition(condition as MoveConditionFunc); diff --git a/src/field/pokemon.ts b/src/field/pokemon.ts index 1775e06779b..18a9855337e 100644 --- a/src/field/pokemon.ts +++ b/src/field/pokemon.ts @@ -1044,6 +1044,8 @@ export default abstract class Pokemon extends Phaser.GameObjects.Container { : 1); if (typeless) typeMultiplier.value = 1; + if (this.getTypes(true, true).find(t => move.isTypeImmune(t))) + typeMultiplier.value = 0; switch (moveCategory) { case MoveCategory.PHYSICAL: