- several pokemon receive level adjustments
- Guts and Tinted Lens should be slightly less common
- Sheer Force is now filtered (will not be chosen without a move that benefits from it
- Bidoof now gets Moody for the lulz
In the event that the user and target get KOed in the same turn (Life Orb recoil, Iron Barbs, etc.), make sure the user isn't forced to switch to another Pokemon before the opponent chooses a replacement.
Two-turn moves are now controlled by a volatile, twoturnmove, which determines whether a Pokemon executes the charge turn or the move turn of a two-turn move. This handles mechanics like Truant Pokemon being unable to use two-turn moves, as the execution turn is their truancy turn. It also handles various edge cases involving moves that call other moves (e.g. Metronome) and Encore.
These changes add a new event, onChargeMove, in which one can return false to "skip" the charging turn and execute the move in full immediately. For example, Solarbeam returns false in onChargeMove if the weather is sunny, and Power Herb returns false if the Pokemon uses its item successfully. (Actually, those are the only two examples at present.)
This implementation is complete except for one issue, an inversion of a previous problem: whereas before, moves like Assist calling two-turn moves would execute them immediately, now, only the charge turn will be executed, and the Pokemon will not be locked into the move. This is due to be fixed soon.
- teams were passed around a lot more haphazardly before
- a race condition may have caused the team issue in LC earlier
- teams are now passed very carefully from search to battle start
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