* Removes firstHitOnly from AddArenaTagAttr to allow multi hit set up with ceaseless edge
* Creates initial test file with basic cases for ceaseless edge
* Fixes ceaseless edge unit test and expands on case 3
* Adds truthy/falsy expectations prior to use
* Adjusts bug bite functionality when stealing from opponent with three berry pouches
* Adjusts bug bite functionality when stealing from opponent with three berry pouches
* Adjusts bug bite to remove berry pouch preservation on opponent berries
* Remove Promise<Boolean> where unnecessary
Leftover code removed from previous testing of the EatBerryAttr class.
* Remove undefined check on chosenBerry
Co-authored-by: flx-sta <50131232+flx-sta@users.noreply.github.com>
* Update StealEatBerryAttr if-clause readability
Decrementing inside of an if-clause removed for readability. Changed to check: if count is 1, then remove modifier.
* Localization of StealEatBerryAttr battle message
* Fixes berry incrementing after improper adjustment to readability
* Fixes berry decrementing after improper adjustment to readability
* Update battle.ts
* Update src/locales/fr/battle.ts
Co-authored-by: Lugiad' <adrien.grivel@hotmail.fr>
* Update battle.ts properly
Incorrectly added localization in previous commit
* Remove unnecessary space
* Update src/locales/ko/battle.ts
I do not have experience with Korean, so this may need other review.
Co-authored-by: Enoch <enoch.jwsong@gmail.com>
* Rewrites EatBerryAttr to combine with StealEatBerryAttr
* Removes excess lines
* Revert and refactor StealEatBerry and EatBerryAttr
* Refactor for early returns instead of nesting
---------
Co-authored-by: flx-sta <50131232+flx-sta@users.noreply.github.com>
Co-authored-by: Lugiad' <adrien.grivel@hotmail.fr>
Co-authored-by: Enoch <enoch.jwsong@gmail.com>
* Parental Bond basic implementation
* Parental Bond unit tests
* ESLint
* PBond AbAttr rework, documentation, and multi-target unit tests
* Update post-target move attribute logic
For Parental Bond interaction.
* AddSecondStrikeAbAttr now uses Constructor util
* Unit tests for PBond + Multi-Lens interaction
* Remove random damage spread in unit test
* Add null checks to PBond AbAttr
* Set player pokemon for unit test
* Fixed Post Target check to account for KO's
* Fix multi-strike moves applying effects at wrong times
* Test cases for updated effect timing
* Add Wake-Up Slap test case
* Fix Fury Cutter/Echoed Voice multi-hit interaction
* Fix Pay Day, Relic Song, and Fury Cutter (again)
* Add early stopping to multi-hit moves
* RecoilAttr now uses lastHitOnly
* Add faint check to last hit logic
Implements AddArenaTrapTagHitAttr for moves like Stone Axe and Ceaseless Edge.
Fixes chance for selfstatus moves.
Added Comments For AddArenaTrapTagHitAttr
* Bug fixes for spite, creates class to extend spite for eerie spell
* Comments for clarity, creates class to extend ReducePpMoveAttr
* Resolve reference error with AttackReducePpMoveAttr
* Shows move failed in a clearer way with showMoveText
* Localization of pp reduction moves
* Fixes issue of eerie spell reducing pp when ratio is 0
* Removes unnecessary phase replacement
* Remove partial implementation from eerie spell
* Adds locale entry for ppReduced to other languages
* Partially implemented Magnet Rise
* Implemented Magnet Rise
* Changed pokemon.ts so all TypeImmune tags work instead of just
MagnetRisen
* Magnet Risen is now removed when Gravity is used.
* Magnet Rise is ignored by Thousand Arrows
and Smack Down.
* Fixed a bug where status ground type moves
would also be ignored by Magnet Rise
* Added a message when Magnet Rise is removed
* Inserted TypeImmuneTag check in
getAttackMoveEffectiveness() for the AI
* Created a magnetRiseCondition separately
* Created a test for Magnet Rise
* Bug Fix in Magnet Rise test
* Created Magnet Rise test with Gravity
* Shifted the code from getAttackMoveEffectiveness
and apply into getAttackTypeEffectiveness instead
* Replaced onNextPrompt with doAttack
* Removed redundant runFrom(Phase)
* Replaced magnetRiseCondition with
battlerTags.every anonymous function
* Fixed import errors
* Added an undefined check for summonData
for TypeImmuneTag in getAttackTypeEffectiveness
* Replaced undefined-check with optional chaining
* 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
* 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.