* Add simulated support for Arena Tag application
* Add type inference to ArenaTag.apply
* Fix screen tests
* back to `any` again lol
* fix missing spread syntax (maybe)
* updated docs
* named imports for `Utils`
* some early set up
* localization
* Added Wiglett family to restrictions
* Added Smack Down + 1000 Arrows Interactions
* Added checks for certain tags
* Gravity removes telekinesis from all pokemon on the field
* need to check something else real quick
* mmmmmm
* think this is fine?
* ingrain fixes
* more ingrain
* Telekinesis Test + Move Fix
* Test Name change
* another day another try...
* Test Cleanup
* fsfdsfds
* Revert "fsfdsfds"
This reverts commit cb7abcfd9f69342ae7b1864e2e4e124029f9f67e.
* whoops
* Apply suggestions from code review
Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
* Missed one
* Update src/data/move.ts
Co-authored-by: PigeonBar <56974298+PigeonBar@users.noreply.github.com>
* Apply suggestions from code review
Co-authored-by: innerthunder <168692175+innerthunder@users.noreply.github.com>
* Add separate battler tags in move attr
* Update src/data/battler-tags.ts
Co-authored-by: innerthunder <168692175+innerthunder@users.noreply.github.com>
* removed onRemove
* Documentation
* Update src/data/battler-tags.ts
---------
Co-authored-by: frutescens <info@laptop>
Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
Co-authored-by: PigeonBar <56974298+PigeonBar@users.noreply.github.com>
Co-authored-by: innerthunder <168692175+innerthunder@users.noreply.github.com>
* creates table for tracking species egg tiers
* creates table for tracking species egg tiers
* rename EggTier enum values
* replace clamp util function with Phaser function
---------
Co-authored-by: ImperialSympathizer <imperialsympathizer@gmail.com>
* Implement Fire/Grass Pledge combo
* Add other Pledge combo effects (untested)
* Fix missing enums
* Pledge moves integration tests
* Add turn order manipulation + more tests
* Safeguarding against weird Instruct interactions
* Update src/test/moves/pledge_moves.test.ts
Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
* Fix style issues
* Delete arena-tag.json
* Update package-lock.json
* Use `instanceof` for all arg type inference
* Add Pledge Move sleep test
* Fix linting
* Fix linting
Apparently GitHub has a limit on how many errors it will show
* Pledges now only bypass redirection from abilities
---------
Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
* Refactor `MovePhase` to improve readability/maintainability
Add tsdocs/comments all over
Mark all functions/fields with public/etc
Fix multi-hit moves called from Metronome/etc, fixes#3914
Remove unused function `BattleScene.pushMovePhase`
Don't use failure text as a condition for move success
A move defining potential failure text doesn't mean it failed
Replace relative imports with absolute imports in `battle-scene.ts`
Change some fields from optional to default `false`
* Fix Whirlwind test
* Fix linting
* move: locales files to `/public` (from `/src`)
* install: i18next-http-backend module
* implement: i18next language lazy-loading
* remove: all `config.ts` files (for locales)
* disable: enConfig import in i18next.d.ts
* remove: console.log from utils.camelCaseToKebabCase()
* remove localization tests
we don't need to test if i18next is working.
This is the job of i18next itself
* mock i18next for tests
* fix: tests that have to use the i18next key now
instead of the english translation
* fix: absolute-avarice-encounter test
* fix: loading mystery-encounter translations
with lazy-load
* fix: 2 mystery encounter translation loading
* replace: i18next mocks any vi.fn() calls
* fix: new namespace usage in ME tests
now using "mysteryEncounters/..."
* fix: delibirdy encounter not being language specific
the encounter was checking if the modifier name includes `Berry` which is only true for english. Instead it has to check if the modifier is an instance of BerryModifier
* fix: the-expert-pokemon-breeder
the new i18n pattern requires a different namespacing which has been adopted
* fix: GTS encounter tests
* add: `MockText.on()`
* fix: berries abound test
* chore: apply review suggestion
from @DayKev
* update i18next.d.ts
* chore: fix i18next.d.ts
* fix: `dialogue-misc` switchup between `en` and `ja`
* move: `SpeciesFormKey` into enum
there was an issue with circular dependencies
* replace: `#app/enums/` with `#enums/` for `SpeciesFormKey` imports
* re-sync locales from `beta`
* rename: `ca_ES` -> `ca-ES`
* rename: `pt_BR` -> `pt-BR`
* rename: `zh_CN` -> `zh-CN`
* rename: `zh_TW` -> `zh-TW`
* fix loading Species-Form-Key in poemon-evo.
* update: i18next `supporterLngs` ...
and remove `nonExplicitSupportedLngs`
* fix: `${namespace}.` -> `${namespace}:`
thanks @MokaStitcher
* fixing form issues generating tms pokemon shouldnt have
* cleaning up some code
* fixing tests and allowing rotom unique moves to be learned as tms for that rotom form
* Update src/test/field/pokemon.test.ts
Co-authored-by: flx-sta <50131232+flx-sta@users.noreply.github.com>
* making tests simpler
---------
Co-authored-by: flx-sta <50131232+flx-sta@users.noreply.github.com>
* major/minor ME bug fixes
* potential fix for failed save with rental pokemon
* Update src/system/game-data.ts
Co-authored-by: flx-sta <50131232+flx-sta@users.noreply.github.com>
* Update src/system/game-data.ts
Co-authored-by: flx-sta <50131232+flx-sta@users.noreply.github.com>
* more bug fix cleanup and PR feedback
* fix Uncommon Breed ME crash
* real fix to Fun and Games force switch issues
* add isBattleMysteryEncounter() helper function
* add isBattleMysteryEncounter() helper function
* fix unintentional replace all errors
* fix catches not updating dex
---------
Co-authored-by: ImperialSympathizer <imperialsympathizer@gmail.com>
Co-authored-by: flx-sta <50131232+flx-sta@users.noreply.github.com>
* Disable Luck in Daily Runs
If the Game Mode is Daily Run, the player's Luck is set to 0, and the Luck value is hidden.
* Give free map in daily
Adds a Map to the player's pool of starting items for Daily Runs.
* Disable Eviolite in Daily Runs
Disables Eviolite spawning in Daily Run mode.
* Write shop test and add new overrides
Adds new overrides that allow you to force content to be locked or unlocked
These overrides were also added to the OverridesHelper to make them available to tests
Adds a new check function for content unlocks, which returns `true` if it is overrode to be unlocked, `false` if it is overrode to be locked, and the unlock data mapped to a Boolean otherwise
All existing checks (other than the ones that involve actually unlocking things) for unlockables have been changed to use this
Added a pair of new exporting booleans, specifically for my test, that check if Eviolite or Mini Black Hole are in the loot table
* Prevent shinies from altering runs
Places variant rolls inside of an ExecuteWithSeedOffset block, using the current floor's RNG seed as the seed and the Pokémon's ID as the offset.
---------
Co-authored-by: Leo Kim <47556641+KimJeongSun@users.noreply.github.com>
Co-authored-by: flx-sta <50131232+flx-sta@users.noreply.github.com>
Co-authored-by: Amani H. <109637146+xsn34kzx@users.noreply.github.com>
Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
Co-authored-by: Jannik Tappert <38758606+CodeTappert@users.noreply.github.com>
* fix: new pokemon not being hidden initially
When switching the active pokemon (slot 1) with the new one, the new ones visibility is `true` causing a crash with animation frames
* chore: fix typo
Co-authored-by: Adrian T. <68144167+torranx@users.noreply.github.com>
---------
Co-authored-by: Adrian T. <68144167+torranx@users.noreply.github.com>
* Implement Autotomize
* Another linting
* Fix unit tests
* Add nonnull after checking for null
* Update autotomize test
---------
Co-authored-by: flx-sta <50131232+flx-sta@users.noreply.github.com>
* various bug fixes for MEs
* various bug fixes for MEs
* fix final isTransferable rename that was missed
* change Trainer's test vouchers for second option
* change unit test skips
* cut down excess ME track length and loop properly
* ME bug fix cleanup
* updating AI for Slumbering Snorlax ME, and small ME balance changes
* fix ts error
* fix bug type superfan dialogue discrepancy
* ME bug fixes PR feedback
* ME PR nits and fixes
* update naming convention of sprites
* ME balance changes and bug fixes
* fix tests
* fix An Offer You Can't Refuse ME requirements
* clean up post-battle logic for Breeder ME
* party size requirement cleanup
* clean up challenge requirements for disabling certain MEs
---------
Co-authored-by: ImperialSympathizer <imperialsympathizer@gmail.com>
* Add Team Star (WIP)
Still missing dialogue for all new trainer types, team compositions will need refining, and Starmobile graphics still do not exist yet.
* Add dialogue for all Team Star trainers
Dialogue put together courtesy of @Blitz425
* Add additional Macro Grunt dialogue lines
As suggested to be included by @Blitz425
* Add dialogue entries in dialogue.ts
Forgot them with my last commit, whoops
* Add back Team Star trainer types
Latest merge of beta into this PR deleted them for some reason
* Update Team Star boss team compositions
Bunch up Eeveelutions more in first fight, move random Rotom form to first fight. Remove Espeon, Umbreon, and Rotom from second fight, add legendary beasts and paradox beasts in their place, remove Zacian chance from second fight.
Co-authored-by: Tempoanon <163687446+Tempo-anon@users.noreply.github.com>
* fix missing semicolon
* Guarantee Sylveon is always Terastallized
* Guarantee Starmobiles on admin's teams
Also resizing the Starmobiles by 1.5 like Gigantamax Pokémon (it is still just regular Revavroom visually for now).
* Adjust trainer pools for Grunts and Admins
* Add new custom sprites for Starmobiles
This adds front and shiny front sprites made by Kieran. Party icons and back sprites are still placeholders for now.
* Minor pool adjustments
Eevee moved to Uncommon on grunts, Varoom replaced with Hisui Qwilfish for Atticus, and Heracross replaced with Pawmi for Eri.
* Remove Leon's Zamazenta, rename Team Star Boss
As to not have overlap between the champion and Star boss teams.
Also doubled the weights of the Starmobile forms.
* Force movesets for Starmobiles
Also fix accidentally giving Mela a Venusaur instead of a Revavroom. (it was just a testing thing, I swear)
* Correct movesets
Didn't realize copied movesets were desired, ech
---------
Co-authored-by: Tempoanon <163687446+Tempo-anon@users.noreply.github.com>
* Adds Expert Breeder Mystery Encounter to the game
* add achievement for Breeders in Space and remove redundant tests
* rename to Expert Pokemon Breeder
* remove unintentional test code
* remove unintentional test code
* test fix with breeder rename
---------
Co-authored-by: ImperialSympathizer <imperialsympathizer@gmail.com>
Co-authored-by: Jannik Tappert <38758606+CodeTappert@users.noreply.github.com>
* add generic types to`Pokemon.getAbilityAttrs()`
* add invert check to `ProtectStatAbAttr.apply...`
This makes sure that a stat is only protected if no other ability inverts the change. E.g. `Contrary` inverts any decrease to an increase
* migrate contrary.test.ts to game.classicMode
* move `StatStageChangeMultiplierAbAttr` resolve above `ProtectStatAbAttr`
The effect of StatStageChangeMultiplierAbAttr is now applied before resolving any ProtectStatAbAttr. Thus the stage (level) of the BattleStat change was properly altered at the time of resolving the protection
* revert ability.ts changes
* add automated tests for `Clear Body` + `Contrary`
* StateStageChangePhase replace ~~`IntegerHolder`~~ with `NumberHolder`
Update Utils import and replace all occurcences of `Utils.`
* contrary.test.ts: remove `js` import