A move cannot "miss" if there is no target, and if the target is immune to an attack, the game always displays the immunity message - the move will never register as "missing".
This fixes a bug where a Pokemon with a type-absorbing ability (e.g. Volt Absorb) behind a Substitute would not absorb status moves (e.g. Thunder Wave) - they'd be blocked by the Substitute before the immunity check was ever run.
There is still a graphical glitch where if a move fails its accuracy check against an immune opponent, the animation will still be that of the move missing, even though the text will be the immunity text. I'm not sure how to fix that given the current move message format.
- the original names BattleItems etc have been deprecated; please use:
- Tools.getItem() accessor method if possible
- Tools.data.Items for lower-level access (e.g. iteration)
- app.js was also rearranged a bit