* 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
* Move exp to its own masterlist, simplify initVariantData
* Update test/sprites/pokemonSprite.test.ts
* Extract loadPokemonVariantAssets out of BattleScene
* move variant.ts and update pokemon.loadAssets
* Add fuzzy matching for applying variant recolors
* Move glsl shaders to their own files
* Remove extra variants from shader masterlist
Their exp sprites have since been removed.
Co-authored-by: Unicorn_Power <189861924+Unicornpowerstar@users.noreply.github.com>
* Make exp sprite keys a set instead of an array
* Remove outdated exp sprite jsons
Co-authored-by: Unicorn_Power <189861924+Unicornpowerstar@users.noreply.github.com>
---------
Co-authored-by: Unicorn_Power <189861924+Unicornpowerstar@users.noreply.github.com>
* 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>
* Move trainer-config.ts
* move TeraAIMode enum to its own file
* Move TrainerPoolTier enum to its own file
* Move TrainerSlot enum to its own file
* Reorder and group imports
* Move TrainerPartyTemplate to its own file
* Remove speciesPoolPerEvilTeamAdmin method
* Apply kev's suggestions from code review
Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
* Fix typo in zinzolin's name
---------
Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
* 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>
* [BUG] fixes#5472 - transform on reload
* Fix the bug where transformed pokemon failed to load sprite on reload if it was not the base form
* Now properly loads the transformed sprite assets during summon phase
* Add neutralizing gas arena tag
* Add PostSummonAddArenaTagAbAttr
* Add PreLeaveField attr for neutralizing gas
* Remove old SuppressFieldAbilitiesAttr
* Fix ability suppression logic
* Add basic tests
* Reapply onGain abilities when neutralizing gas ends
* Untodo ability remval test
* Add more tests
* Modify gastro acid to call onLose attributes when suppressing
* Properly cancel abilities on switch in
* Add documentation
* Remove partial designation
* Update locale key usage
* Reactivate the last source's other abilities when it becomes the last remaining
* Fix loop vars
* Add access modifiers for SuppressAbilitiesTag
* Minor changes
* Move test to reflect new location
* Remove promises from abattr function signatures
* Make moveset gen consider multi hit moves fairly
* Make getTargetBenefitScore consider effective power
* Apply Kev's suggestions
Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
* Fix improper stat ratio.
* Fix expected hit count for pop-bomb like moves
Accuracy is now properly divided by 100
* Update src/data/move.ts
Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
* Update src/data/move.ts
Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
* Update src/data/move.ts
Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
---------
Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
* Remove Promises from moves and abilities
* Fix `PostSummonPhase`
* Apply suggestions from Kev's review
* More suggestions
Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
* Cleaning up some updated functions
* Remove Promise from `addEnemyModifier`
+ fixes to some extraneous `await`s
* Test fixes
* Fix missing import in revival blessing test
Co-authored-by: innerthunder <brandonerickson98@gmail.com>
* Add back applyPreLeaveFieldAttrs
Attribute was removed due to absence in a cherry-pick
* Make applyPostApplyEffects work
* Fix move-effect-phase.ts applications
Some applyX methods were missed in the cherry pick commit and were still returning functions instead of running the function themselves
* Mock `BattleScene.addPokemonIcon` in tests
* Revival Blessing condition and tests
* Incorporate Despair-Games/poketernity/pull/48
* Break up imports
* Remove enemy modifier chance dead code
* Remove async from applyAbAttrsInternal
Stray async leftover from merge
* Remove docs and comments referencing promises
* Add `user.setTempAbility` to transform phase
---------
Co-authored-by: innerthunder <brandonerickson98@gmail.com>
Co-authored-by: innerthunder <168692175+innerthunder@users.noreply.github.com>
Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
Co-authored-by: PigeonBar <56974298+PigeonBar@users.noreply.github.com>
* Add setAbility method to pokemon.ts
* Edit SwitchAbilitiesAttr to use setAbility
* Change AbilityGiveAttr to use setAbility
* Rename setAbility to be more accurate
* Fix AbilityCopyAttr
* Fix AbilityChangeAttr
* Fix Transform
* Fix imposter
* Fix PostDefendAbilityGiveAbAttr
* Actually fix imposter
* Actually fix transform
* Fix CopyFaintedAllyAbilityAbAttr
* Fix Trace
* Fix PostDefendAbilitySwapAbAttr
* Add tests for skill swap
* Add tests for doodle
* Add tests for entrainment
* Add tests for role play
* Add test for simple beam
* Add test for transform
* Add test for imposter
* Add tests for mummy
* Add tests for trace
* Add tests for wandering spirit
* Consider legendary weather when changing ability
* Ensure that passives are not (re)applied when main abilities change
* Add general ability swap test cases
* Fix test name
* Add NoMidTurnActivationAttr
* Remove NoMidTurnActivationAttr from illusion
* Remove extraneous call to triggerWeatherBasedFormChanges
* Fix primal weather clearing
* Change "MidTurn" to "OnGain"
* Change NoOnGainActivationAttr to a field in PostSummonAbAttr
* Add passive support
* Remove redundant parentheses
Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
---------
Co-authored-by: damocleas <damocleas25@gmail.com>
Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
* Commit old stashed changes
* Complete basic implementation of Tera
* Fix effectiveness test
* Make tera retain until forced recall or faint, regain on biome change
* Experimental sparkle fix
* Fix champion teras
* Attempted fix for double battles tera UI bug
* Fix the fix
* Fix linting and test issues
* Fix more tests
* Change int type
* Implement tera for ME trainers
* Cleanup species inclusivity check
* Make tera instant recharge if terapagos in party
* Make useless tera shards not generate
* Implement stellar tera damage boost
* Improve tera selection UI
* Tidy up animation and localisation
* Improve tera button sprite
* Fix Lance tera
* Make tera instant recharge during E4 in classic modes.
* Fix formatting in the tera common animation
The animation was also not playing due to `frameTimedEvents` being missing as well.
* Make tera effect start after animation
* Implement save migration
* Update version number for migration code
---------
Co-authored-by: Madmadness65 <blaze.the.fireman@gmail.com>
Co-authored-by: Madmadness65 <59298170+Madmadness65@users.noreply.github.com>
* fully implemented spectral thief
* Update to structure of implementation
* line commented target.scene.queueMessage since message does not exist yet
* changed documentation
* added move-trigger.json key
* removed line comment since key was added to english locales
* removed console.log messages used for debugging
* refactored move-trigger key to race with @muscode13
* added more automated tests
* github tests failed
* removed line comment since key was added to english locales
* refactored move-trigger key to race with @muscode13
* added more automated tests
* github tests failed
* solved conflicts
* Update src/data/move.ts
Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
* removed .partial()
* corrected spectral thief name
* changed target.scene to globalScene
* changed comments
---------
Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
Co-authored-by: Sirz Benjie <142067137+SirzBenjie@users.noreply.github.com>
* added the ability to ignore held items at stat calculation
* integer -> number in src/field/pokemon.ts
* added tests from @SirzBenjie
* Update test
* Fix test filename
* added turnorder to tests
* added tera_blast changes and tests
---------
Co-authored-by: damocleas <damocleas25@gmail.com>
Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
* Add Valentines event data
* Event ends Feb 21 not March 21
* Event starts Feb 11 12:00 UTC for testing on beta
* Oops I meant February 10
* Add Luvdisc +3 Luck Boost
* Added Applin to round out the total pokemon and because I know people are going to be confused why it isn't here if they've actually read in gen 8 (any readers in chat?)
---------
Co-authored-by: Jannik Tappert <38758606+CodeTappert@users.noreply.github.com>
Co-authored-by: damocleas <damocleas25@gmail.com>
* Fix super-niche edgecase with mega gengar and telekinesis
* Update TelekinesisTag doc comment
* Remove comment about mega gengar as this update fixes it
* Added new AbAttr that triggers whenever a pokemon leaves the field
* Use leaveField everywhere
* Changing order for PreSwitchOutAbAttr
* Don't clearEffects when catching in a mystery encounter
* Attempts to make new overrides for testing
* New options in overrides
* Implemented tests for Desolate Land
* Fixing instruct test to not read turnData of fainted mon
* Removed post faint clear weather
* Apply suggestions from code review
Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
* Has_passive_ability override now turns off passives if set to "false", defaults to "null"
* Updating overrides type definitions
* Apply suggestions from code review
Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
* Suggestions from review
* Fixed strings in suggestions
* Simplified function to throw balls in tests
* Added tsdocs to overrideHelper.ts
---------
Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
* customPokemonData.types now accepts Type.UNKNOWN, ignores when determining type
* Changed test for clowning around encounter to look at getTypes() instead of directly accessing customData
* Simplifying logic for fusions when overrides are involved, introducing new tests in pokemon.test.ts
* Renamed overrideTypes to customTypes to avoid confusion with override
* pokemon.getType() properly recognizes Normal secondary type
* Added effectiveness test for ghost on normal
---------
Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
* customPokemonData.types now accepts Type.UNKNOWN, ignores when determining type
* Changed test for clowning around encounter to look at getTypes() instead of directly accessing customData
* Simplifying logic for fusions when overrides are involved, introducing new tests in pokemon.test.ts
* Fixed typo
* Fixed another typo
* Renamed overrideTypes to customTypes to avoid confusion with override
* Fixing comments
* Add support for form and evolution specific passives
* Update src/data/pokemon-species.ts
---------
Co-authored-by: Amani H. <109637146+xsn34kzx@users.noreply.github.com>
Co-authored-by: damocleas <damocleas25@gmail.com>
* Refactor timed event changes
* Use getWeather function
* Add mystery encounter tier change/disabling to timed events
* Event luck boost, event encounter helper function
* Events without shiny boost shouldn't give shiny charm
* globalScene -> this in battle scene class
* Change event pools