* fixing speed boost for pokemon being switched in and for if failed escape
* adding unit tests
* adding failed run away test case
* adding failed run away test case modification
* refactoring solution to be more consistent with coding style
* more fixes for consistency
* more fixes for consistency
* adding new AbAttr in abiliity.ts for posterity
* removing uneccesary variables
* fixing a merge conflict
* Adds updateInfo to transform move/ability, mirrors Transform functionality in Imposter
* Implements functionality for reducing pp to 5 or less for each move when transforming
* Refactors to async/await pattern, adds back removed anims/sounds from last commit
* Eslint fix attempt
* Update src/data/ability.ts
per DayKev's suggestion
Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
* Merge and fix conflicts
* Adds unit tests for pp-change with transform/imposter
* Updates to consistency in syntax/deprecated code
---------
Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
* Fix Early Bird, add tests
* Update tsdocs for Early Bird's `AbAttr`
Rename `turnCount` to `toxicTurnCount` and
`turnsRemaining` to `sleepTurnsRemaining` in `status-effect.ts`
* Fix Toxic Orb test
* Redundant code :despair:
* Fix status override to set the number of sleep turns
* Fixes some Substitute interactions
Specifically with Disguise/Ice Face and Gulp Missile
* Add tests
* Fix linting
* Add `hitsSubstitute()` checks to all `PostDefendAbAttr`s
Also fix comment indentation in `MoveEffectPhase`
* Revert `move-effect-phase.ts` changes
* [Bug] Fix Battle Bond continuing to buff Water Shuriken after Greninja returns to base form
* Test cleanup
* PR feedback
* Update test to use getMultiHitType()
* PR Feedback
* add: i18n backend support
the backend is being supported by using msw which will import the correct file from the local locales folder
* fix: tests to no longer rely on static i18n keys
* Update src/test/mystery-encounter/encounters/teleporting-hijinks-encounter.test.ts
Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
* Update src/test/mystery-encounter/encounters/teleporting-hijinks-encounter.test.ts
Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
* Update src/test/ui/type-hints.test.ts
Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
* Update src/test/mystery-encounter/encounters/a-trainers-test-encounter.test.ts
Co-authored-by: MokaStitcher <54149968+MokaStitcher@users.noreply.github.com>
* Fix typos
Co-authored-by: Adrian T. <68144167+torranx@users.noreply.github.com>
* Fix linting
* update locales submodule
update reference to `56eeb809eb5a2de40cfc5bc6128a78bef14deea9` (from `3ccef8472dd7cc7c362538489954cb8fdad27e5f`)
---------
Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
Co-authored-by: MokaStitcher <54149968+MokaStitcher@users.noreply.github.com>
Co-authored-by: Adrian T. <68144167+torranx@users.noreply.github.com>
* move: locales files to `/public` (from `/src`)
* install: i18next-http-backend module
* implement: i18next language lazy-loading
* remove: all `config.ts` files (for locales)
* disable: enConfig import in i18next.d.ts
* remove: console.log from utils.camelCaseToKebabCase()
* remove localization tests
we don't need to test if i18next is working.
This is the job of i18next itself
* mock i18next for tests
* fix: tests that have to use the i18next key now
instead of the english translation
* fix: absolute-avarice-encounter test
* fix: loading mystery-encounter translations
with lazy-load
* fix: 2 mystery encounter translation loading
* replace: i18next mocks any vi.fn() calls
* fix: new namespace usage in ME tests
now using "mysteryEncounters/..."
* fix: delibirdy encounter not being language specific
the encounter was checking if the modifier name includes `Berry` which is only true for english. Instead it has to check if the modifier is an instance of BerryModifier
* fix: the-expert-pokemon-breeder
the new i18n pattern requires a different namespacing which has been adopted
* fix: GTS encounter tests
* add: `MockText.on()`
* fix: berries abound test
* chore: apply review suggestion
from @DayKev
* update i18next.d.ts
* chore: fix i18next.d.ts
* fix: `dialogue-misc` switchup between `en` and `ja`
* move: `SpeciesFormKey` into enum
there was an issue with circular dependencies
* replace: `#app/enums/` with `#enums/` for `SpeciesFormKey` imports
* re-sync locales from `beta`
* rename: `ca_ES` -> `ca-ES`
* rename: `pt_BR` -> `pt-BR`
* rename: `zh_CN` -> `zh-CN`
* rename: `zh_TW` -> `zh-TW`
* fix loading Species-Form-Key in poemon-evo.
* update: i18next `supporterLngs` ...
and remove `nonExplicitSupportedLngs`
* fix: `${namespace}.` -> `${namespace}:`
thanks @MokaStitcher
* remove: manual timeout setting
some more sneaked in after changing the default-timeout to 20s. Possibly older PRs.
* remove: manual test timeouts from chilly reception tests
* adding immunity check
* making tests
* modifying and adding tests
* making tests more rigorous
* changing hitcheck return to be what it was originally, no significant effect
---------
Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
* add: mystery encounter to create-test
* remove: leftover `TIMEOUT`
in boss-pokemon.test
* add regex to replace ` ` with `_`
This was never done before. for any
* remove: manual test timeout overwrites
* add generic types to`Pokemon.getAbilityAttrs()`
* add invert check to `ProtectStatAbAttr.apply...`
This makes sure that a stat is only protected if no other ability inverts the change. E.g. `Contrary` inverts any decrease to an increase
* migrate contrary.test.ts to game.classicMode
* move `StatStageChangeMultiplierAbAttr` resolve above `ProtectStatAbAttr`
The effect of StatStageChangeMultiplierAbAttr is now applied before resolving any ProtectStatAbAttr. Thus the stage (level) of the BattleStat change was properly altered at the time of resolving the protection
* revert ability.ts changes
* add automated tests for `Clear Body` + `Contrary`
* StateStageChangePhase replace ~~`IntegerHolder`~~ with `NumberHolder`
Update Utils import and replace all occurcences of `Utils.`
* contrary.test.ts: remove `js` import
* Make `OPP_MOVESET_OVERRIDE` fully override the enemy's moveset
* Update tests with new override behavior
* Fix tests
* Fix another test
* Move overrides no longer required to be arrays
* Remove `SPLASH_ONLY` test utility variable
* Update moveset override helper functions
* Missed some tests
- remove any `.js` extension imports
- remove unncessary dynamic imports of `modifier.ts` file. The file was being imported statically & dynamically. Made it pure static
- increase vite chunk-size warning limit
Co-authored-by: Mumble <171087428+frutescens@users.noreply.github.com>
* Fix inconsistencies with ability triggers on variable-type moves
* Fix aura effects not accounting for the move user
* Fix Wonder Guard evaluating move type as if the defender used the move
* Some additional test coverage for move-type-changing effects
* Create Getters, Setters, and Types
* Work on `pokemon.ts`
* Adjust Types, Refactor `White Herb` Modifier
* Migrate `TempBattleStat` Usage
* Refactor `PokemonBaseStatModifier` Slightly
* Remove `BattleStat`, Use "Stat Stages" & New Names
* Address Phase `integers`
* Finalize `BattleStat` Removal
* Address Minor Manual NITs
* Apply Own Review Suggestions
* Fix Syntax Error
* Add Docs
* Overhaul X Items
* Implement Guard and Power Split with Unit Tests
* Add Several Unit Tests and Fixes
* Implement Speed Swap with Unit Tests
* Fix Keys in Summary Menu
* Fix Starf Berry Raising EVA and ACC
* Fix Contrary & Simple, Verify with Unit Tests
* Implement Power & Guard Swap with Unit Tests
* Add Move Effect Message to Speed Swap
* Add Move Effect Message to Power & Guard Split
* Add Localization Entries
* Adjust Last X Item Unit Test
* Overhaul X Items Unit Tests
* Finish Missing Docs
* Revamp Crit-Based Unit Tests & Dire Hit
* Address Initial NITs
* Apply NIT Batch
Co-authored-by: flx-sta <50131232+flx-sta@users.noreply.github.com>
* Fix Moody Test
* Address Multiple Messages for `ProtectStatAbAttr`
* Change `ignoreOverride` to `bypassSummonData`
* Adjust Italian Localization
Co-authored-by: Niccolò <123510358+NicusPulcis@users.noreply.github.com>
* Fix Moody
---------
Co-authored-by: flx-sta <50131232+flx-sta@users.noreply.github.com>
Co-authored-by: Niccolò <123510358+NicusPulcis@users.noreply.github.com>
* Moves copied by Dancer should not consume PP
* Add test for Dancer (unfinished)
* Delete src/test/abilities/dancer.test.ts
This test is not finished lol
* Add test
* Implement Tera Shell
* Apply suggestions from code review
Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
* Update src/data/ability.ts
Co-authored-by: Adrian T. <68144167+torranx@users.noreply.github.com>
* Add comments and fixed damage condition to `applyPreDefend`
* Fix speed tie breaking things in tera shell test
* Change deprecated `startBattle` calls
---------
Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
Co-authored-by: Adrian T. <68144167+torranx@users.noreply.github.com>
* Make type/category read-only
* Fix protean/libero tests
* Refactor Pokemon type effectiveness calculation
* Merge getMoveEffectiveness and getAttackMoveEffectiveness
* Move priority-blocking ability check
* Fix incorrect early stopping implementation in MultiHitAttr
* Fix Aerilate, etc. affecting variable-type moves
* Thunder Wave now respects Attack type immunities
* Use final move types for pre-defend abilities
* Steal some things from flx's PR hehe
* Fix Thousand Arrows + "No effect" messages
* Fix status type effectiveness check
* Another status move effectiveness update + some docs
* changing status logic again...
* Fix unnecessary "No Effect" message for Volt Absorb, etc
* Add type effectiveness unit test
* Add Galvanize integration tests
* Add multi-hit test to galvanize tests
* Add power check to first Galvanize test
* Add missing doc line
Co-authored-by: Amani H. <109637146+xsn34kzx@users.noreply.github.com>
* Resolve torranx's nits
* Apply suggestions from Kev's code review
Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
* More suggestions I missed
Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
* Optimize effectiveness test and make others more stylish (#3)
* Resolve Kev's remaining nits and some test issues
---------
Co-authored-by: Amani H. <109637146+xsn34kzx@users.noreply.github.com>
Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
Co-authored-by: flx-sta
Co-authored-by: frutescens