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
* Improve Volcalith tests readability
* Add G-Max Volcalith recoil damage order test
* Add 1 HP priority tests
* Add charge move targeting test
* Correct assertions of Ripen / Sturdy
* Skip failing tests
* Add Volcalith Black Sludge test
* Add Pressure Max / Z-move tests
* Add Pressure submove test
* Add NGas speed test
* Skip NGas speed test
* Add White Herb double Intimidate test
* Remove debug log
* Remove duplicate Pressure test
* Improve White Herb Intimidate test title
* Add Rollout Storage tests
* Add spread move Rollout storage test
* Add Magician Weakness Policy test
* Add Sleep tests
* Add Shell Bell spread move test
* Add Synchronize Lum Berry test
* oh yeah it doesn't work
* Remove duplicate test
* Add Sunsteel Strike tests
* Add Leech Seed ally switch test
* Add Primal weather Natural Gift test
* Add Emergency Exit hazards test
* Add generic hazards tests
* Add and standardize Arceus tests
* Add Transform ability test
* Add and standardize Parting Shot tests
* Add Memento tests
* Add Me First test
* Add Cursed Body Z-move test
* Add Assurance targeting test
* Clarify Assurance test description
* Add double faint switch test
* Add Receiver KO boost ability
* Add double Unnerve test
* Add Dynamax Eject Pack test
* Improve Dynamax forced switchout test
* Add Protective Pads Perish Body test
* Add Sticky Web Pressure test
* Add Speed modifier lower bound test
* Add Cloud Nine Hydration test
* Correct Cursed Body test
* Add Grassy Terrain Leftovers test
* Remove leftover debug
* Add additional Receiver and Soul-Heart tests
* Add Spite tests
* mish
* Add Shell Bell multihit test
* Add WP Dragon Tail test
Co-authored-by: The Immortal <the_immortal123@live.com>
It turns out that when I switched us from `assert` to `assert.strict`,
I didn't actually update any existing tests or tell anyone:
0df0d234f2
So apparently everyone else just kept on using `strictEqual`.
This will be a PR and also throw an error if people continue trying to
use it, which should make it much clearer what PS policy is on this.
A lot of the problem may be that TypeScript marks assert.strict.equal
as deprecated when it's not. This was fixed 4 days ago:
https://github.com/DefinitelyTyped/DefinitelyTyped/pull/48452
But this probably hasn't made it to a thing yet. Until then, you'll
have to deal with TS marking your tests as deprecated, but it shouldn't
be too long.
Accidentally using `assert` instead of `assert.strict` should now show
an error. This protects against the probably much worse mistake of
accidentally using `assert.equal` rather than `assert.strict.equal`.
`assert.ok` is also deprecated now.