* 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>
* 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
* Checks for hit result status on Grip Claw application
* Adds a boolean check for the Pollen Puff edge case in canBeMultiStrikeEnhanced
* Adds parental bond test
* Adds grip claw and multi lens tests
* Create new turnData field for tracking damageResults, check for HitResult in Reviver Seed modifier
* Optional chaining for cases like stealth rock
* Adds HitResult.SELF for confusion to distinguish from indirect damage
* Adds HitResult.SELF to damage sound effect switch
* Cover edge case of salt cure, insert HitResult for ALL damage regardless of optional variable
* Change Liquid Ooze HitResult to OTHER from HEAL
* Adjust OHKO moves to not bypass endure or RSeed
* Add tests for reviver seed
* Fixes endure to no longer block indirect damage, updates weather damage to be HitResult.OTHER, adds/fixes unit test
* Change destiny bond to HitResult.OTHER so it doesn't trigger rseed
* Adds destiny bond unit test
* Creates additional unit tests for endure
* Rename SELF hitresult to CONFUSION
* Update CONFUSION enum
* Refactors implementation per Wlowscha's suggestions: removes damageSources array and preventEndure variable
* Rename HitResult.OTHER to INDIRECT, create INDIRECT_KO for PSong/DBond, add functionality for INDIRECT_KO to damageanim/number handler
* Fixes hit result for stealth rock
* Removes unnecessary check, makes DamageResult default to EFFECTIVE, updates remaining damageAndUpdate calls to use INDIRECT
* Refactors damageAndUpdate to replace optional parameters with object parameter
* Fixes based on Kev's suggestions
* Updates tsdocs for damageAndUpdate
* Fix merge conflict
---------
Co-authored-by: Wlowscha <54003515+Wlowscha@users.noreply.github.com>