* Remove lastDamage as a field for Bide + remove some useless fields
* Bide: use time instead of duration, so that it doesn't get changed with slp/frz/etc
* Bide totalDamage should be adjusted before reducing Bide time. Damage counting should be done when the Bide user moves, not when the foe attacks it
* Call the stored damage 'damage' rather than 'totalDamage'
* Fix Bide target, Bide can hit substitutes, add test
s
* Add test for Bide vs switching / using moves that don't reset lastDamage
* Bide damage is reset to 0 when a Pokemon faints
* Add test for Bide when asleep
* Add Desync messages for Bide clearing stored damage when a Pokemon faints
* Mention Desync Clause Mod in test
* Specify 'in gen 1' in hint messages
* Bide is paused if disabled
* Improve Bide-Disable test
* Further adjust the Bide-Disable test
For side conditions, `onStart`/`onRestart`/`onResidual`/`onEnd`
have been renamed `onSideStart`/`onSideRestart`/`onSideResidual`/`onSideEnd`,
with the `onResidualOrder` properties renamed `onSideResidualOrder`.
For field conditions, `onStart`/`onRestart`/`onResidual`/`onEnd`
have been renamed `onFieldStart`/`onFieldRestart`/`onFieldResidual`/`onFieldEnd`,
with the `onResidualOrder` properties renamed `onFieldResidualOrder`.
(The `onField` and `onSide` part helps make it clear to the type system
that the first argument is a Field or Side, not a Pokemon.)
Side and field conditions can now use `onResidual` to tick separately
on each pokemon in Speed order. `onResidualOrder` (the per-pokemon
tick) can be timed separate from `onSideResidualOrder` (the
per-condition tick), allowing conditions to end at a different priority
than they tick per-pokemon.
Relatedly, `onTeamPreview` and `onStart` in formats now need to be
`onFieldTeamPreview` and `onFieldStart`.
Unrelatedly, `effectData` has been renamed `effectState`, and the
corresponding state containers (`pokemon.statusData`,
`pokemon.speciesData`, `pokemon.itemData`, `pokemon.abilityData`,
`field.weatherData`, `field.terrainData`) have been similarly renamed. I
renamed the types a while ago, but I was holding off renaming the fields
because it would be a breaking change. But this is a breaking change
anyway, so we might as well do it now.
Note: `onResidual` will tick even on `onSideEnd` turns, although
`onSideResidual` won't. When refactoring weather, remember to
check `this.state.duration` so you don't deal weather damage on the
ending turn.
Intended as a better fix for #8216