* Obstruct et al no longer protect against status moves
* Remove `.js` from import
Co-authored-by: ImperialSympathizer <110984302+ben-lear@users.noreply.github.com>
* Add tsdocs for new/modified classes
* List relevant moves in tsdocs
---------
Co-authored-by: ImperialSympathizer <110984302+ben-lear@users.noreply.github.com>
* Complete after you implementation (no localization)
* reset override changes
* Remove hardcoded English text, add tests
* Fix test
* Make sure phases occur in the correct order
* fix after-you issues
- fix i18n interpolation ot state "target name" and not "pokemon name" as the target takes the offer, not the user
- fix some tsdocs
- add override to apply
- update scene.findPhase to be able to use generic types. Add tsdocs
* add move-trigger.afterYou for DE
* fix after_you.test.ts
---------
Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
Co-authored-by: flx-sta <50131232+flx-sta@users.noreply.github.com>
* Fixed Delta Stream remaining active when last mon dies to indirect damage
* Rebasing changes
* Linting fix
* Combined if statements
* Changed params to optional
* Added unit test
* Apply suggestions from code review
* Fix test and remove `.js` from import
---------
Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
- remove any `.js` extension imports
- remove unncessary dynamic imports of `modifier.ts` file. The file was being imported statically & dynamically. Made it pure static
- increase vite chunk-size warning limit
Co-authored-by: Mumble <171087428+frutescens@users.noreply.github.com>
* Fix off-by-one error in some random number calls
* Fix mock RNG function used by tests
Also remove unnecessary extra RNG mock from Glaive Rush test
* Just some github UI manipulation don't mind me
* Update Glaive Rush test
* Remove unnecessary `Math.floor()`
* Remove resolved comment
* Add tsdocs to various functions
* Remove `src/rng.md` file
* Update tsdoc
* Use BattlerTag for move-disabling effects
* Fix RUN command causing freeze
* Improve documentation
* Clean up and document PokemonMove.isUsable
* Fix isMoveDisabled missing return
* Tags define the message shown when disabling interrupts a move
* Fix -1 duration on Disable effect
* Add tests for Disable
* En loc and fix message functions
* Fix Disable test
* Fix broken imports
* Fix test
* All disable tests passing
* Localize remaining strings
* Move cancellation logic out of lapse; use use TURN_END for lapse type
* Prevent disabling STRUGGLE
* Inline struggle check function
* Restore RechargingTag docs
* Move cancellation logic back to tag
Wanted to increase similarity to the existing code base to avoid that stupid hyper beam error but it's still happening here
* Fix hyper beam test
* Remove erroneous shit
* Fill movesets with SPLASH for disable test
* More robust condition for disable checking
* Remove DisabledTag lapse
* Simplify DisablingBattlerTag lapse
* Cancel disable-interrupted moves instead of failing them
* Avoid disabling virtual moves
* Consistent access modifiers across Disable tags
* Add abstract function for message when player tries to select the disabled move
* Fix syntax mistake
* Always disable last-used non-virtual move
* Overhaul tests + add tests
* Implement loadTag for DisabledTag
* Update translations
* Update translations
* Reimplement phase changes
* fix battlertag strings
* Fix disable test not running
* Update name of base class
* Rename "disabling" to "restriction"
* Fix sneaky string fuckup
* Fix test failure
* fix merge problems
* fix merge problems
* Update tests
* rerun RNG test
* Properly mock stats in test
* Document everything in battlertag
* More docs + typo fix
* Update tests
---------
Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
* Fix inconsistencies with ability triggers on variable-type moves
* Fix aura effects not accounting for the move user
* Fix Wonder Guard evaluating move type as if the defender used the move
* Some additional test coverage for move-type-changing effects
* Add `isTransferrable` property to `BattlerTag`s
* Update Baton Pass to check `isTransferrable` for `BattlerTag`s
* Don't mark Salt Cure as transferrable
* Add Destiny Bond, remove `GroundedTag` and `ExposedTag`
* Fix daily mode test
* Add test
* Rename `isTransferrable` to `isBatonPassable`
* cherry picked commits / manual copy
* better dex tracking for summary after regular egg hatching
* ui changes
* updated egg hatch bg, added candy tracker, icon anims for new shiny or new form unlock
* added i18 line, reset overrides
* touchup
* code cleanup, documentation and slight refactor
* sprite display fix
* load interrupts, simple sfx and no summary for small egg amounts
* Garbage Collection + Eslint/Docs approved.
* time logging and optimisation
* skip redundant load
* more time logs and fix pre-load issues
* more detailed loading logs
* changed loading to be on demand from cursor nav
* fix missing variant icon fallback
* removing redundant time logs and code touchup
* code cleanup
* Comments so developer doesn't get bugged about garbage collecton
* remove logs n stuff
* lang settings touchup and final touchup plus uploading blank egg summary bg
* fix nits, js imports, extra docs, magic numbers changed
* extra docs and spacing nits
* Update Github
---------
Co-authored-by: James Diefenbach <z5421232@ad.unsw.edu.au>
Co-authored-by: Frederico Santos <frederico.f.santos@tecnico.ulisboa.pt>
Co-authored-by: frutescens <info@laptop>
Co-authored-by: Mumble <171087428+frutescens@users.noreply.github.com>
* [Bug] Fix reloads causing RNG inconsistencies
* Minor revisions
* Allow reload helper to directly access getSessionSaveData()
* Changed Moody and Acupressure to use seeded RNG
* Fix broken unit test
* [Bug] Fix eggs having exploitable RNG
* Fix Wind Rider test having random chance to fail
* Revert egg's ID back to its own unseeded generation
* Remove change from wind rider test
---------
Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
Co-authored-by: Mumble <171087428+frutescens@users.noreply.github.com>
* Create Getters, Setters, and Types
* Work on `pokemon.ts`
* Adjust Types, Refactor `White Herb` Modifier
* Migrate `TempBattleStat` Usage
* Refactor `PokemonBaseStatModifier` Slightly
* Remove `BattleStat`, Use "Stat Stages" & New Names
* Address Phase `integers`
* Finalize `BattleStat` Removal
* Address Minor Manual NITs
* Apply Own Review Suggestions
* Fix Syntax Error
* Add Docs
* Overhaul X Items
* Implement Guard and Power Split with Unit Tests
* Add Several Unit Tests and Fixes
* Implement Speed Swap with Unit Tests
* Fix Keys in Summary Menu
* Fix Starf Berry Raising EVA and ACC
* Fix Contrary & Simple, Verify with Unit Tests
* Implement Power & Guard Swap with Unit Tests
* Add Move Effect Message to Speed Swap
* Add Move Effect Message to Power & Guard Split
* Add Localization Entries
* Adjust Last X Item Unit Test
* Overhaul X Items Unit Tests
* Finish Missing Docs
* Revamp Crit-Based Unit Tests & Dire Hit
* Address Initial NITs
* Apply NIT Batch
Co-authored-by: flx-sta <50131232+flx-sta@users.noreply.github.com>
* Fix Moody Test
* Address Multiple Messages for `ProtectStatAbAttr`
* Change `ignoreOverride` to `bypassSummonData`
* Adjust Italian Localization
Co-authored-by: Niccolò <123510358+NicusPulcis@users.noreply.github.com>
* Fix Moody
---------
Co-authored-by: flx-sta <50131232+flx-sta@users.noreply.github.com>
Co-authored-by: Niccolò <123510358+NicusPulcis@users.noreply.github.com>
* fix: Enable female gender for all default starters and all existing saves
* Fixed Fresh Start so it doesn't restrict gender
---------
Co-authored-by: Mumble <171087428+frutescens@users.noreply.github.com>
Co-authored-by: frutescens <info@laptop>
* Moves copied by Dancer should not consume PP
* Add test for Dancer (unfinished)
* Delete src/test/abilities/dancer.test.ts
This test is not finished lol
* Add test
* Implement Tera Shell
* Apply suggestions from code review
Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
* Update src/data/ability.ts
Co-authored-by: Adrian T. <68144167+torranx@users.noreply.github.com>
* Add comments and fixed damage condition to `applyPreDefend`
* Fix speed tie breaking things in tera shell test
* Change deprecated `startBattle` calls
---------
Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
Co-authored-by: Adrian T. <68144167+torranx@users.noreply.github.com>
* Biome Adjustments 1
* MOUNTAIN OUT FROM ANCIENT RUINS
* snorlax gmax adjustment
* Localizers please calm down - Snorlax Ability + Passive change
* One more time let's give it a go biomes.ts
* fixed ]
* Update biomes.ts
* fixed spelling mistake
* Biome.END goes somewhere random
* this way island is included too
* no towns or plains
* Enums are dumb
---------
Co-authored-by: frutescens <info@laptop>
* Inserts break to prevent fall through in checkFlag
* Adds break to IGNORE_PROTECT case for safety
* Revert "Adds break to IGNORE_PROTECT case for safety"
This reverts commit 2589faf69e.
* Adds break to IGNORE_PROTECT properly
* Make sure trainers are using fully evolved Pokemon by gym 3
* Expand comment info
Co-authored-by: Mumble <kimjoanne@protonmail.com>
* Implement suggestions
* Update `getPokemonSpecies()` to throw an error if passed `undefined`
---------
Co-authored-by: Mumble <kimjoanne@protonmail.com>
* Make type/category read-only
* Fix protean/libero tests
* Refactor Pokemon type effectiveness calculation
* Merge getMoveEffectiveness and getAttackMoveEffectiveness
* Move priority-blocking ability check
* Fix incorrect early stopping implementation in MultiHitAttr
* Fix Aerilate, etc. affecting variable-type moves
* Thunder Wave now respects Attack type immunities
* Use final move types for pre-defend abilities
* Steal some things from flx's PR hehe
* Fix Thousand Arrows + "No effect" messages
* Fix status type effectiveness check
* Another status move effectiveness update + some docs
* changing status logic again...
* Fix unnecessary "No Effect" message for Volt Absorb, etc
* Add type effectiveness unit test
* Add Galvanize integration tests
* Add multi-hit test to galvanize tests
* Add power check to first Galvanize test
* Add missing doc line
Co-authored-by: Amani H. <109637146+xsn34kzx@users.noreply.github.com>
* Resolve torranx's nits
* Apply suggestions from Kev's code review
Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
* More suggestions I missed
Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
* Optimize effectiveness test and make others more stylish (#3)
* Resolve Kev's remaining nits and some test issues
---------
Co-authored-by: Amani H. <109637146+xsn34kzx@users.noreply.github.com>
Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
Co-authored-by: flx-sta
Co-authored-by: frutescens
* [Balance] Gigantamax State/Form Rebalance (WIP)
* GMAX Ability for Orbeetle adjusted
* fixed typo on CHLOROPHYLL
* Adjusted stats so there was a less intense drop in some stats
* Added comments to GMAX Pikachu, Eevee, Meowth
* Updated ability for GMAX Kingler and Eevee
* Added Stellar typing to GMAX Eevee
* Fixed typing on GMAX Eevee and Snorlax
* GMax Garbodor- Toxic Debris > Corrosion
* Corrected Trubbish passive to not overlap with GMax Garbodor
* Update pokemonFixed Coalossal, Flapple, and Centiskorch BST, Alcremie Ability Change
* Changed Alcremie Passive in adjustment with Gmax ability
* Undid Eevee being Stellar
* Gmax Sandaconda Sand Stream -> Sand Spit
* Balance Sweep of changes by damo, less dropped stats and simpler spreads
* fixed 5 Appletun BST I missed
* fixed missing Hatterene BST
* Sets Lunar Blessing selfTarget healing to false
* Removes redundant lines
* Adds unit test for Lunar Blessing
* Adjusts unit tests to spy on function calls
* Changed how non-BGM are loaded into the game + moved into directories
* some leftovers
* Apply suggestions from code review
Co-authored-by: flx-sta <50131232+flx-sta@users.noreply.github.com>
* Added setting for Field Volume + rewrote playSound() and updateSoundVolume() functions to reflect the new settings.
* Main -> Beta (#3635)
* Fixed issue with falsy issue within condition to get a stat for IV scanner
* add fix setting code to prevent form/variant bug when default form/variant setting is wrong.
in addition, that fix code include gender fix, so i revert old gender fix.
update wrong log message.
* [Hotfix] Fix Memory Mushroom not showing relearner moves (#3619)
* Fix Memory Mushroom not showing relearner moves
* Fix rollout test
* Rewrite player faint logic in FaintPhase (#3614)
* 867 runerigus sprite (#3629)
cropped static frames, fixed cropped sprite
set runerigus exp to use the shiny exp's animation
verified all hex colors are unchanged
- fixed ultra necrozma exp front variant swapped arrays.
- xatu female eye color fix
* [Bug] Preventing the MBH from being stolen in Endless (#3630)
* Endless MBH Fix
* add import
* Revert "add import"
This reverts commit 814a4059c2.
* Revert "Endless MBH Fix"
This reverts commit 8eb4481301.
* removed newline
---------
Co-authored-by: Frederico Santos <frederico.f.santos@tecnico.ulisboa.pt>
Co-authored-by: frutescens <info@laptop>
* [Bug] Fix type-hints for immunity (#3620)
* enable mock containers to be found by name
* enable mock text to be found by name
* add test coverage for type-hints
Only for "immunity" and "status moves"
* fix wrong message key of curse(ghost type) (#3631)
Co-authored-by: Frederico Santos <frederico.f.santos@tecnico.ulisboa.pt>
* [Hotfix] Steal-able Mini Black Hole Pt 2 (#3632)
* Still have no idea where Eternatus is given the MBH....
* typedocs
---------
Co-authored-by: frutescens <info@laptop>
* [Hotfix] Abilities that prevent ATK drops no longer stop other stat drops (#3624)
* Abilities that prevent ATK drops no longer stop other stat drops
* Apply suggestions from code review
Co-authored-by: Mumble <kimjoanne@protonmail.com>
* Add `isNullOrUndefined()` utility function
---------
* Grip Claw now shows the proper pokemon nickname (#3634)
Co-authored-by: frutescens <info@laptop>
---------
Co-authored-by: Opaque02 <66582645+Opaque02@users.noreply.github.com>
Co-authored-by: KimJeongSun <leo@atlaslabs.ai>
Co-authored-by: Frederico Santos <frederico.f.santos@tecnico.ulisboa.pt>
Co-authored-by: innerthunder <168692175+innerthunder@users.noreply.github.com>
Co-authored-by: cam <lrlrliwoo@gmail.com>
Co-authored-by: Mumble <kimjoanne@protonmail.com>
Co-authored-by: frutescens <info@laptop>
Co-authored-by: flx-sta <50131232+flx-sta@users.noreply.github.com>
Co-authored-by: Enoch <enoch.jwsong@gmail.com>
Co-authored-by: Mumble <171087428+frutescens@users.noreply.github.com>
* [Bug] Preventing the MBH from being stolen in Endless (#3630)
* Endless MBH Fix
* add import
* Revert "add import"
This reverts commit 814a4059c2.
* Revert "Endless MBH Fix"
This reverts commit 8eb4481301.
* removed newline
---------
Co-authored-by: Frederico Santos <frederico.f.santos@tecnico.ulisboa.pt>
Co-authored-by: frutescens <info@laptop>
* [Hotfix] Steal-able Mini Black Hole Pt 2 (#3632)
* Still have no idea where Eternatus is given the MBH....
* typedocs
---------
Co-authored-by: frutescens <info@laptop>
* Deleted phases.ts (#3618)
* Updated sound terms
* Added space for localization
* Update src/locales/ko/settings.ts
Co-authored-by: Enoch <enoch.jwsong@gmail.com>
* Update src/locales/zh_TW/settings.ts
Co-authored-by: mercurius-00 <80205689+mercurius-00@users.noreply.github.com>
* Update src/locales/pt_BR/settings.ts
Co-authored-by: José Ricardo Fleury Oliveira <josefleury@discente.ufg.br>
* Update src/locales/zh_CN/settings.ts
Co-authored-by: mercurius-00 <80205689+mercurius-00@users.noreply.github.com>
* Update src/locales/de/settings.ts
Co-authored-by: Jannik Tappert <38758606+CodeTappert@users.noreply.github.com>
* Update src/locales/ko/settings.ts
Co-authored-by: returntoice <dieandbecome@gmail.com>
* Update src/locales/fr/settings.ts
Co-authored-by: Lugiad' <adrien.grivel@hotmail.fr>
* Update src/locales/it/settings.ts
Co-authored-by: Niccolò <123510358+NicusPulcis@users.noreply.github.com>
* Include sound effects that were loaded in as BGM.
* Removed stray placeholder localization
---------
Co-authored-by: Frutescens <info@laptop>
Co-authored-by: flx-sta <50131232+flx-sta@users.noreply.github.com>
Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
Co-authored-by: Opaque02 <66582645+Opaque02@users.noreply.github.com>
Co-authored-by: KimJeongSun <leo@atlaslabs.ai>
Co-authored-by: Frederico Santos <frederico.f.santos@tecnico.ulisboa.pt>
Co-authored-by: innerthunder <168692175+innerthunder@users.noreply.github.com>
Co-authored-by: cam <lrlrliwoo@gmail.com>
Co-authored-by: Enoch <enoch.jwsong@gmail.com>
Co-authored-by: mercurius-00 <80205689+mercurius-00@users.noreply.github.com>
Co-authored-by: José Ricardo Fleury Oliveira <josefleury@discente.ufg.br>
Co-authored-by: Jannik Tappert <38758606+CodeTappert@users.noreply.github.com>
Co-authored-by: returntoice <dieandbecome@gmail.com>
Co-authored-by: Lugiad' <adrien.grivel@hotmail.fr>
Co-authored-by: Niccolò <123510358+NicusPulcis@users.noreply.github.com>
* fix damage calculations. add test code
* define toIntValue function to replace every repeatitive min floor function.
* revert unnecessary minimum boundary
* update function name `toIntValue` -> `toDmgValue`. update comments.
* add missing updates for changing function name
* Update src/utils.ts
Co-authored-by: flx-sta <50131232+flx-sta@users.noreply.github.com>
* remove redundant comment
* update import code for test with phase
---------
Co-authored-by: flx-sta <50131232+flx-sta@users.noreply.github.com>
* Adds simulated tag support to all abilities
* Fix compiler errors in ability.ts
Most things are still on fire 😢
* Fix errors left over after merge
* Another pass through simulated ability call logic
* Fix leftover errors from merge resolution
* Another gh pages issue :pikamad:
* Simulated call fixes based on Kev's feedback
* RIP phases.ts
---------
Co-authored-by: Xavion3 <xavion333@gmail.com>
* Fix Jaw Lock not removing TRAPPED tag after enemy faints
* Create tests for Jaw Lock
* Fix overrides import
* Clean up implementation + tests
* minor style change to phases
* Update src/data/move.ts
Co-authored-by: Adrian T. <68144167+torranx@users.noreply.github.com>
* Jaw Lock no longer overlaps its trapping effect
* Friendship ended with JAW_LOCK tag type
Now TRAPPED is my new best friend
---------
Co-authored-by: EmberCM <kooly213@hotmail.com>
Co-authored-by: Adrian T. <68144167+torranx@users.noreply.github.com>
* Fixed issue with falsy issue within condition to get a stat for IV scanner
* add fix setting code to prevent form/variant bug when default form/variant setting is wrong.
in addition, that fix code include gender fix, so i revert old gender fix.
update wrong log message.
* [Hotfix] Fix Memory Mushroom not showing relearner moves (#3619)
* Fix Memory Mushroom not showing relearner moves
* Fix rollout test
* Rewrite player faint logic in FaintPhase (#3614)
* 867 runerigus sprite (#3629)
cropped static frames, fixed cropped sprite
set runerigus exp to use the shiny exp's animation
verified all hex colors are unchanged
- fixed ultra necrozma exp front variant swapped arrays.
- xatu female eye color fix
* [Bug] Preventing the MBH from being stolen in Endless (#3630)
* Endless MBH Fix
* add import
* Revert "add import"
This reverts commit 814a4059c2.
* Revert "Endless MBH Fix"
This reverts commit 8eb4481301.
* removed newline
---------
Co-authored-by: Frederico Santos <frederico.f.santos@tecnico.ulisboa.pt>
Co-authored-by: frutescens <info@laptop>
* [Bug] Fix type-hints for immunity (#3620)
* enable mock containers to be found by name
* enable mock text to be found by name
* add test coverage for type-hints
Only for "immunity" and "status moves"
* fix wrong message key of curse(ghost type) (#3631)
Co-authored-by: Frederico Santos <frederico.f.santos@tecnico.ulisboa.pt>
* [Hotfix] Steal-able Mini Black Hole Pt 2 (#3632)
* Still have no idea where Eternatus is given the MBH....
* typedocs
---------
Co-authored-by: frutescens <info@laptop>
* [Hotfix] Abilities that prevent ATK drops no longer stop other stat drops (#3624)
* Abilities that prevent ATK drops no longer stop other stat drops
* Apply suggestions from code review
Co-authored-by: Mumble <kimjoanne@protonmail.com>
* Add `isNullOrUndefined()` utility function
---------
* Grip Claw now shows the proper pokemon nickname (#3634)
Co-authored-by: frutescens <info@laptop>
---------
Co-authored-by: Opaque02 <66582645+Opaque02@users.noreply.github.com>
Co-authored-by: KimJeongSun <leo@atlaslabs.ai>
Co-authored-by: Frederico Santos <frederico.f.santos@tecnico.ulisboa.pt>
Co-authored-by: innerthunder <168692175+innerthunder@users.noreply.github.com>
Co-authored-by: cam <lrlrliwoo@gmail.com>
Co-authored-by: Mumble <kimjoanne@protonmail.com>
Co-authored-by: frutescens <info@laptop>
Co-authored-by: flx-sta <50131232+flx-sta@users.noreply.github.com>
Co-authored-by: Enoch <enoch.jwsong@gmail.com>
Co-authored-by: Mumble <171087428+frutescens@users.noreply.github.com>
* Abilities that prevent ATK drops no longer stop other stat drops
* Apply suggestions from code review
Co-authored-by: Mumble <kimjoanne@protonmail.com>
* Add `isNullOrUndefined()` utility function
---------
* [Balance] Various Fixes
* Readjusted Legendary same-species eggs back to 10 candy
* Updated some passives
* Changed Chien Pao Passive
* Eevee passive final adjustment
* Chi Yu and Chien Pao changed again
* Arcto passives
Updated Pokemon.getLevelMoves()
Now enforces uniqueness AFTER filtering moves within the given range. This allows a pokemon to learn the same move at two different levels.
Updated pokemon-level-moves.ts
Changed Smeargle to learn Sketch at levels 11, 21, 31, ..., 91, instead of only at level 1.