* Force multi-hit moves to hit once if they are against an immune type
* Add test for multi-hit attacks against immune types
* Document MultiHitAttr
* Tiny change
* Wording fix
* Use shortcut methods in unit tests
* Fix leftover modifications from METRONOME testing
* Reorganize SAP SIPPER tests
* Fix extra imports
* Add generic to util holders to reduce manual type casting
* implement protean and libero abilities
* remove use only once per turn trigger
* Revert Attack Attribute Conditions back to requiring unused vars
* Remove conditional before invoking type change ability
* update protean to properly trigger and skip certain moves
* remove some dangerous typecasts
* revert autoformatting changes
* not all autoformatting changes were reverted
* Revert "Add generic to util holders to reduce manual type casting"
This reverts commit 3ee7f1d5ff0a3d37a41db87e151eeab2ab4ab543.
* change some variable names
* remove incorrect comment
* update abilities so they use gen 9 logic
* fix typescript error from missing Terrain type
* update gameManager switchPokemon to match other menu utilities
* add test cases for protean and libero
* Fix type immunity given by abilities only applying to attacking moves
* Add tests for type immunity granted by abilities
* Use Sap Sipper as base for testing
* Fix type-immunity abilities activating on self-targeted status moves
* Add tests for self-targeted moves on mons with type-immunity abilitiies
* Volt absorb tests
* replace forceBypass with bypassFaint flag
* add another path alias for src/test
* make form override work for the whole party instead of the first pokemon
* add tests for all abilities that are touched by this change
* remove unnecessary overrides from tests
* move SpeciesFormChangeTimeOfDayTrigger outside arena reset logic
* remove alll resetMock calls, rename it to test
* Fix type immunity given by abilities only applying to attacking moves
* Add tests for type immunity granted by abilities
* Use Sap Sipper as base for testing
* fix postSummonPhase when opponent does not summon and fix the statsChange from push to unshift
* added switch pokemon helper method
* added on switch tests for intimidate
* fix test by overriding passive in tests
* remove a test not needed
* cleanup imports
* Implement Arceus Plates and Silvally Memories
* German localization for items
* Run linter on changes, add items to zh_TW localization
* linter cleanup
* Finish localization for other languages
Names for items sourced from Bulbapedia. Names for the items in Portuguese could not be reliably sourced, so they were as directly translated as possible.
* Add custom Blank Memory item
Currently does nothing, but the idea is that it would be used if the all-in-one form change item idea is followed through.
* Update item atlas
* Use move.type instead of type.value
The type effectiveness now works again.
* Update comments
* Fix type changing affecting only Silvally
* Condense switch cases down to a single line
As per Brain Frog's suggestion.
* Fix tinted caught icon false positive
* Remove unused import
* Rename and optimize
* Block comment
* Draft of evil team grunt pokemon pools
* Add graphics and music
* Add grunt spawn logic
* Add Giovanni
* Add team leader graphics
Giovanni and Ghetsis already have sprites, so they do not need added.
* Add teams for other evil team bosses
* Fix some typos and change hp bars to 2/2/2
* Fix sprites and add random team boss
* Add forced grunt encounter and update dialogue
* Update locales
* also lint en trainers
* More merge conflicts
* Deleted some duplicate images
* Correctly renamed the grunt files
* Forgot about team rocket
* New Magma Sprites
* Adjusted the trimming. Now they dont have as huge of a shadow bbelow them
* Fix grunt sprites
* Add real dialogue
* German Localization of the Dialogue
* Changes
* Tweak waves grunts spawn on
* Fix some typos in dialogue
* Y is canon
* Disable evil team spawns
* Fix another merge conflict
---------
Co-authored-by: Madmadness65 <blaze.the.fireman@gmail.com>
Co-authored-by: Jannik Tappert <tappertjannik@googlemail.com>
* Added fix for Run Away ability being trapped by trapping abilities.
Added fix for ghost type pokemon not having a 100% chance to run from battles.
* Removed log statement
* Removed commented out code
* Removed ghost type run away mechanics
* type hints
* fix overwritten change
* don't set color to white, just leave it unchanged
* remove unrelated code
* don't show hints if no opponents, use type effectiveness instead of move effectiveness
* fix color not going back to white when new opponent is sent
* move effectiveness to move info container
* add effectiveness overlay, partial hints only show move effectiveness, improve colors
* lint
* docs
* remove full hints, move container to right of enemy info box
* hide effectiveness while flyout is visible
* move setting to display, use default style color instead of white
* Initial challenge framework
* Add type localisation
* Change how challenges are tracked
Also fixes the difficulty total text
* MVP
Renames challenge types, temporarily hides difficulty, and implements challenge saving.
* Attempt to fix one legal pokemon in a double battle
* Make monotype ignore type changing effects
* Make isOfType correctly detect normal types
* Try to fix double battles again
* Make challenge function more like classic
* Add helper function for fainted or not allowed
* Add framework for fresh start challenge and improve comments
* Try to fix evolution issues
* Make form changing items only usable from rewards screen
* Update localisation
* Additional localisation change
* Add achievements for completing challenges
* Fix initialisation bug with challenge achievements
* Add support for gamemode specific fixed battles
Also make monogen challenges face the e4 of their generation
* Add better support for mobile in challenges
* Localise illegal evolution/form change message
* Update achievement names
* Make alternate forms count for monogen
* Update monotype achievement icons
* Add more comments
* Improve comments
* Fix mid battle form changes
* Reorder mode list
* Remove currently unused localisation entry
* Add type overrides for monotype challenges
Meloetta always counts for psychic and castform always counts for normal
* Change how form changes are handled
Now attempts a switch at the start of each turn instead of immediately
* Add start button to challenge select screen
* Make starter select back out to challenge screen if using challenges
* Fix daily runs
* Update tests to new game mode logic
* Added check for move changing type before determining if defending is immune to it because of an ability
* Remove duplicate Ability change class and added getType() function under a move
* Reworking how moves get passed into hit calc
* Fixing exceptions and overreaching changes
* reverting forwarn and dancing move back to original since they are not being changed
* fixing some small move related bugs
* Fixing file permissions after testing
* Fixing move type not resetting after individual MoveEffectPhase
* Fixing move.ts permissions (again)
* Addressing some MR feedback and adding some documentation for PokemonMove class
This also necessitated giving them unique front & back sprites too, even if they are currently just duplicates of the normal forms. This change will help players identify when they are using/have encountered a Partner Pikachu or Eevee.