* Move phase types out of phase interceptor
* Create isXPhase method and add properties to each phase
* Replace instanceof phase with isXPhase
* Fix missing union types for phaseName
* Update doc comment in phase.ts
* Fix incomplete comment in encounter-phase
* Make phaseName as public and fix more uses
* Move phaseName property declaration before constructor in move anim phase
Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
* Rename isXPhase to is
---------
Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
Party pokemon will now gain EXP from EXP Share
even if all the active pokemon are fainted
---------
Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
* Rename `Abilities` to `AbilityId`
* Rename `abilities.ts` to `ability-id.ts`
* Rename `Moves` to `MoveId`
* Rename `moves.ts` to `move-id.ts`
* Rename `Species` to `SpeciesId`
* Rename `species.ts` to `species-id.ts`
* Rename `Biome` to `BiomeId`
* Rename `biome.ts` to `biome-id.ts`
* Replace `Abilities` with `AbilityId` in comments
* Replace `Biome` with `BiomeId` in comments
* Replace `Moves` with `MoveId` in comments
* Replace `Species` with `SpeciesId` in comments
* [Dev] Enable biome parsing of `pokemon.ts`
* Apply unsafe fixes
* Add + apply rule disallowing the use of the `integer` type alias
* Fix typo in comment; remove unnecessary `!!`
* Re-apply Biome after merge
* Re-apply Biome "unsafe" fixes after merge
* Fix import
* Add comment to `getFusionIconAtlasKey` too
* Fixed IVs of trainers using the Battle Seed.
* Renamed the randSeedInt functions that use the Battle Seed to randBattleSeedInt functions
* Incorrectly used this in common
* Fixed tests that were still calling the old function name
---------
Co-authored-by: damocleas <damocleas25@gmail.com>
Co-authored-by: Bertie690 <136088738+Bertie690@users.noreply.github.com>
Co-authored-by: AJ Fontaine <36677462+Fontbane@users.noreply.github.com>
Co-authored-by: Dean <69436131+emdeann@users.noreply.github.com>
Co-authored-by: lxy-lxy-lxy <55084073+lxy-lxy-lxy@users.noreply.github.com>
Co-authored-by: Xavion3 <xavion333@gmail.com>
Co-authored-by: Sirz Benjie <142067137+SirzBenjie@users.noreply.github.com>
Co-authored-by: Lylian BALL <131535108+PyGaVS@users.noreply.github.com>
Co-authored-by: Jimmybald1 <147992650+IBBCalc@users.noreply.github.com>
* Fix firstTarget calculation when a target was fainted
* Update type annotation in applyMoveEffects
Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
---------
Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
* Move fixed boss waves enum to file, adjust GL templates
* Move post return to default case
* Address comment
---------
Co-authored-by: Wlowscha <54003515+Wlowscha@users.noreply.github.com>
* Moved SelectBiomePhase in front of NewBattlePhase
* disguise test now has to go to QuietFormChangePhase
---------
Co-authored-by: Jimmybald1 <147992650+IBBCalc@users.noreply.github.com>
* Fix type hint after enemy disappears
* Add automated test for type hint bugfix
* Make onField default to true
* Replace reference to Mode with UiMode and battleType with BattleStyle
* Extract Mode enum out of UI and into its own file
Reduces circular imports from 909 to 773
* Move around utility files
Reduces cyclical dependencies from 773 to 765
* Remove starterColors and bypassLogin from battle-scene
Reduces cyclical dependencies from 765 to 623
* Fix test runner error
* Update import for bypassLogin in test
* Update mocks for utils in tests
* Fix broken tests
* Update selectWithTera override
* Update path for utils in ab-attr.ts
* Update path for utils in ability-class.ts
* Fix utils import path in healer.test.ts
* Add isPartner method to trainer class
* Ensure force switches cannot pull pokemon from the wrong trainer
* Add override for battle type
* Fixup tests and broken assumptions
* Make move fail override semi-invuln check
Bandaid fix because move effect phase does not allow for the move to fail if all of its conditions fail
* Restore overrides
* Apply kev's suggestions from code review
Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
* Fix illusion test battle type invocation
* Update struggle and healer tests to use battleStyle
---------
Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
* Add test for beak blast applying after user faints
* Rewrite tags for contact protected and check moveFlags.doesFlagEffectApply
* Add test to beak blast ensuring a long reach user does not get burned
* Re-add DamageProtectedTag to relevant inheritance chains
* Move resetSummonData to faintPhase instead of pokemon.apply
* Remove passing of grudge and destiny bond tags to faint phase
* Move ability.ts to subfolder
* Extract types out of ability.ts
* Update imports in ability.ts and friends
* Cleanup imports in ability.ts
* Re-add imports lost during sort
* Update imports forgotten during rebase
* Re-import proper type from enums
* Update biome.jsonc
Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
* Add commit to force tests to rerun
---------
Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
* Change how rival event rewards are generated
* Simplify to switch case
Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
---------
Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
* Move LearnMoveSituation to its own file
* Remove unused selfStatLowerMoves array
* Move all-moves to its own file
* Move TurnMove interface to its own file
* move AiType to its own file
* Move PokemonMove to its own file
* Move DamageCalculationResult interface to its own file
* Move fieldPosition to its own file
* Move hit-result to its own file
* Move DamageResult to its own file
* Move SpeciesWildEvolutionDelay to its own file
* move EvolutionItem to its own file
* Add PostSummonHealAbAttr and give it to appropriate abilities
* Add attr to insomnia
* Remove attr from leaf guard (it does not activate on gain with sun up)
* Add tests and remove attr from shields down
* Add PostSummonRemoveBattlerTag and give it to oblivious and own tempo
* Add tests for oblivious and own tempo
* Fix oblivious test sometimes failing
* Remove Comatose changes as it doesn't reapply
* Remove unused tagRemoved field
* Fix tests checking status instead of tag
* Fix attr comments
* Add PostSetStatusHealStatusAbAttr
* Add ResetStatusPhase
* Modify pokemon.resetStatus to use ResetStatusPhase
* Move post status effects to ObtainStatusEffectPhase
* Ensure status overriding (ie rest) works properly
* Add PostApplyBattlerTagRemoveTagAbAttr for own tempo and oblivious
* Guard removeTag call in PostApplyBattlerTagRemoveTagAbAttr
* Commenting
* Handle Mold Breaker case in MoveEndPhase
* Remove PostSummonHealStatusAbAttr from purifying salt
* Fix not passing overrideStatus to canSetStatus
* Apply suggestions from code review
Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
* Add isNullOrUndefined import
* Add canApply to new attrs
* Add followup argument back
* Remove guard around new MoveEndPhase
---------
Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
* Clean up various phases
Remove redundant code, utilize default parameters,
clean up some leftover `strict-null` `TODO`s,
replace `integer` with `number`
* Replace `* as Utils` imports with named imports
* Apply Biome