* Fix Thousand Arrows not hitting through Magnet Rise
* Add integration test for Thousand Arrows vs. Magnet Rise
* ESLint
* Remove unnecessary checks in integration tests
* fixing order of messages, scences, to render messages before fainting
* updated fix for effectiveness text rendering order for multi hit moves
* fixing messages not appearing for multi-hit moves on faint
* updated multi-hit condition)
* fixing PR conflicts
* adding comments and FaintPhase setPhaseQueueSplice bug, fixing overrides merge conflict
* writing better comments
* removing space diff in overrides
* adding fainting check for self damage moves
* emergency fixing broken last commit
* additional comments for multi-hit problem
* updating comments, jsdoc style
* fixing linter, destiny bond errors
* splitting up varaible comments to be in JSDoc format
* fixing tests and merge mistakes
* adding rendering of multihit moves that only hit once
* fixing comment formatting_tabs and spaces
---------
Co-authored-by: Benjamin Odom <bennybroseph@gmail.com>
* Added basic temp renaming
* Made nickname persistant after reloading
* Localization and cancel button
* Fixed instant rename on active pokemon
* Small bugfix to prevent console errors
* Changed logic to use the new nickname field. Replaced most .name with getNameToRender() for display.
* Changed evolution message. Removed log messagesc
* Added localization keys for other languages
* Removed empty lines
* French translation
Co-authored-by: Lugiad' <adrien.grivel@hotmail.fr>
* Chinese translation
Co-authored-by: Yonmaru40 <47717431+40chyan@users.noreply.github.com>
* Portuguese (Brazil) translation
Co-authored-by: José Ricardo Fleury Oliveira <josefleury@discente.ufg.br>
* Korean translation
Co-authored-by: Enoch <enoch.jwsong@gmail.com>
* Update menu.ts
* Update menu.ts [Localization(it)]
* Changed most .getNameToRender() instance to getPokemonNameWithAffix()
* Changed wild encounter messages back to just use the name without affix.
* Added localization for the party ui rename selection
* Escaping nickname characters to support all characters
* Better Error handling
* Update src/field/pokemon.ts
Co-authored-by: flx-sta <50131232+flx-sta@users.noreply.github.com>
---------
Co-authored-by: Lugiad' <adrien.grivel@hotmail.fr>
Co-authored-by: Yonmaru40 <47717431+40chyan@users.noreply.github.com>
Co-authored-by: José Ricardo Fleury Oliveira <josefleury@discente.ufg.br>
Co-authored-by: Enoch <enoch.jwsong@gmail.com>
Co-authored-by: Niccolò <123510358+NicusPulcis@users.noreply.github.com>
Co-authored-by: flx-sta <50131232+flx-sta@users.noreply.github.com>
* Finish implementation of Glaive Rush
* Fix test RNG
* Add code/test for Multi-Lens interaction
* Fix off-by-one error in test caused by rounding issues
* Update for code changes
* Fix BattlerTag name
* fix: damage multiplier by the number of targets
* fix: used actual number value rather than the number holder
* test: added unit test for counting targets
* multi-target: fixed names of the unit tests.
* test: simple-test changes
* test: changed multi-target test code
* test: testing damage decreasement
* test: multi-target test fix
* resolved conflicts in test
---------
Co-authored-by: Tempoanon <163687446+Tempo-anon@users.noreply.github.com>
* ReceivedMoveDamageMultiplierAbAttr patch: WIP refactored damage calculation, reordered ReceivedMoveDamageMultiplierAbAttr to avoid issues with fixed damage and OHKO moves, stubbed unit tests for dragon rage (fixed damage) and fissure (OHKO)
* ReceivedMoveDamageMultiplierAbAttr patch: commented concerns regarding EnemyDamageBooster/ReducerModifier for others' reference in WIP branch
* ReceivedMoveDamageMultiplierAbAttr patch: reordered ReceivedMoveDamageMultiplierAbAttr and EnemyDamageBooster/ReducerModifier to not trigger for fixed damage and OHKO moves, completed relevant tests for dragon rage and fissure
* ReceivedMoveDamageMultiplierAbAttr patch: removed newline
* ReceivedMoveDamageMultiplierAbAttr patch: in the unit test, extracted hard-coded Dragon Rage damage to a variable
* ReceivedMoveDamageMultiplierAbAttr patch: naming consistency
* ReceivedMoveDamageMultiplierAbAttr patch: replaced awaiting DamagePhase with TurnEndPhase as the former assumes damage will be done
* ReceivedMoveDamageMultiplierAbAttr patch: removed redundant overrides in Fissure tests
* ReceivedMoveDamageMultiplierAbAttr patch: tests: refactored crit removal, removed berries, fixed bug associated with Porygon sometimes getting Trace and copying the opponent's ability, which would override the manual ability override
* Fixed unit tests
* Added a comment and cleaned up an existing one
* refactor power calc, fix battery & power spot
* fix hard press unit test
* fix hard press
* refactor tests
* use sypOn hp instead
* rename method
* cleanup tests
* improve tests
* use slow vs fast pokemon
* fix steely spirit test
* fix steely spirit for real this time
* remove unnecessary test
* address pr feedback
* add removed code
* Made FormChangeItems untransferrable. Replaced getTransferrable()
* Made isTransferrable readonly. Removed unnecessary 'm as PokemonHeldItemModifier'.
* Create default overrides class and export that with custom overrides
* add comment to mock import and replace typecast with type narrowing
* change modifier override type to pick keys from modifierTypes
* [Help] [Move/Bug] Patches Psychic Terrain applicability edge cases
Was cancelling moves even if targeted mons weren't on the terrain.
* [Bug `]Pokemon.isGrounded` does not exist
Replaced with `Pokemon.isGrounded()`, which does.
* [Bug] Psychic Terrain priority move cancel ignoring ungrounded
* [Bug] Semi-invulnerable should not be grounded
* 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
* Dry skin and ReceivedMoveDamageMultiplierAbAttr bug fix: first cut
* Dry skin and ReceivedMoveDamageMultiplierAbAttr bug fix: removed redundant branch
* Dry skin and ReceivedMoveDamageMultiplierAbAttr bug fix: reworded test cases that had typos anyway
* Dry skin and ReceivedMoveDamageMultiplierAbAttr bug fix: renamed PreDefendMovePowerToOneAbAttr (Disguise) to mention damage rather than power
* Dry skin and ReceivedMoveDamageMultiplierAbAttr bug fix: renamed powerMultiplier to damageMultiplier in ReceivedMoveDamageMultiplierAbAttr
* Add Eviolite with Unit Tests
* Localize for de, es, fr, it, ko, zh_CN, zh_TW
* Adjust German Localization
Co-authored-by: Jannik Tappert <38758606+CodeTappert@users.noreply.github.com>
* Adjust Italian Localization
* Change Multiplier Type
* Adjust Unit Test Import
* Change Constructor
* Make Unit Tests Localized
* Comment Out of Reward Pool
---------
Co-authored-by: Jannik Tappert <38758606+CodeTappert@users.noreply.github.com>
* 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