* Added various ribbon utils
* Added ribbon tray to pokédex page
* V button in Pokédex toggles IVs
* Introduced visibility toggle
* Added ribbons (and full ivs) to unlocks file
* For real this time
* Added descriptions to the ribbons
* Fixed bug of tray not opening with visibility option on
* Minor cleanup of ribbon tray
* Use unique ribbon icons
* Make achv use image instead of sprite
* Tweak size of ribbons
* Improve clarity on comment
---------
Co-authored-by: Sirz Benjie <142067137+SirzBenjie@users.noreply.github.com>
* make IVs use Uint8Array
* Add many typed array helpers
* Move array utils to its own file
* Add suppression comment
* Adjust type of `getStats`
* Adjust test mocks to use typed arrays
* Adjust signatures of some phases to use ArrayLike<T>
* Adjust signature of src/ui/containers/stats-container#updateIvs
* Remove comment gap to try to satisfy typedoc
* Ensure ivs are always set
* fix: fun-and-games me to use typed array
* Add new tests for array utilities
* Update type of ivs in save-data.ts
* Update part-timer-encounter.test.ts
* Convert uses of StatusEffect[] to Uint8Array
* Update ssui to use uint8array for ivs
* Revert use of typed arrays
* Move `nil` to @types/common
* Make more arrays readonly
* fix: remnant change to immune effects
* Even more array improvements
* Apply kev's suggestions from code review
Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
* address Bertie's comments from code review
* tests: remove undefined check for bigint array types
* fixup abilities.ts
---------
Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
* create and use namespace-i18n-plugin.ts
* Changes to src/utils.ts to ensure correct importing by Vite plugins and extraction of the
amespaceMap constant to its own file.
* Added more comments for create help a new namespace
* create utils-plugins.ts and more docs
* console info appearance
* chore: handle merge conflicts
* chore: run biome
* add biome to namespace map dropped after merge
---------
Co-authored-by: Sirz Benjie <142067137+SirzBenjie@users.noreply.github.com>
* Add caching for test matchers types to improve ts performance
* add skipLibCheck to tsconfig.json
* Bump package versions
* Move tm species map to its own file
* Turn on ts-nocheck in pokemon-level-moves
* Move initBiomes to own file
* Add types to methods in ME encounter phase utils
* Fix spacing
---------
Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
https://github.com/pagefaultgames/pokerogue/pull/6617
The formula is `round(max friendship * (current wave / 200))`
where the max friendship value a Pokemon can have is `255`
and `current wave / 200` represents a % value based on
how far in the game you are
* [P2 Bug] Fit initBiomes incorrectly getting evo level threshold
The evolution level threshold wasn't applying correctly to the biome entries of Pokemon that evolved via evolution items (so anything with a level 1 "requirement"), this has been fixed. The evolution delay for certain Pokemon has been lowered, as it it was compounding with their existing level requirements, making their evolutions take way too long to happen. The values were lowered to match the intended levels the Balance Team desired. The outputPools function has also been run, updating all the levels of the Pokemon with set evolution delays.
* Remove evo delay
* Improve clarity for mantyke evo level
---------
Co-authored-by: Sirz Benjie <142067137+SirzBenjie@users.noreply.github.com>
* balance: adjust evolution delay requirements
* Remove evo delay test
* Update mystery encounter test matcher
* fix: callsite errors
* Fix desynced edit in ai-species-gen.ts
* Formatting
So the linter stops complaining
* [WIP] Add temporary logging statements and address evolution
* Fix off by one error related to species ID
* Fix issue with pokemon species
* Fix biome outputs generating with NaN for evolution levels
Co-authored-by: Madmadness65 <59298170+Madmadness65@users.noreply.github.com>
* Make type boost items consider moves that have a variable, but static type
* fix: type boost item not spawning for moves without variable type
* make tera blast consider a tera-capable user's tera type
* Adjust tera blast's getTypesForItemSpawn method
* Address comments from code review
* docs: clarify `canTerastallize`
* Add failure conditions and move failures part 1
* Add second and third failure sequences
* Refactor mostly complete, need to recheck tests
* Adjust status checks to respect ignoreStatus useModes
* Adjust restriction for stuff cheeks
* Address bertie's review comments
* Add counterRedirectAttr to other counter-like moves
* Adjust some documentation for new methods
* Make substitute use the move tag
* Adjust counter attr to use array.find
* Adjust move condition check that occurs in the third failure check sequence
* Insert move failure check sequence part 4 into move phase
* Revert type adjustment to getBattlerIndex
* Make charging moves deduct pp on use instead of on release
* Fix first move condition not using 1 based starting wave
* Tweak charge move handling and protean timing
* Adjust fly tests to expect pp reduction properly
* Add missing attribute to counter
* Adjust revival blessing hardcore test to respect new return value of isUsable
* Adjust copycat test to account for how it actually works
* Play sleep animation and message
* Remove BYPASS_SLEEP battler tag in favor of boolean holder
* Finish unfinished docs
* Ensure move restrictions are only checked for players
* Adjust pollen puff condition, fix docs on `isOpponent`
* Fix failAgainstFinalBossCondition
* Fix dig test
* Adjust dive's test
* Fix missing break in applyConditions
* Fix getBattlerIndex for enemyPokemon
* Adjust type hint test to not rely on teleport
* Minor adjustments from code review
Co-authored-by: Bertie690 <136088738+Bertie690@users.noreply.github.com>
* Add tests for teleport
* Minor adjustments from code review
Co-authored-by: Bertie690 <136088738+Bertie690@users.noreply.github.com>
* PR review changes
Fix type hints test name
Update Dig/Dive test name
Separate TSDoc imports in `pokemon-utils.ts`
Add missing `@returns` in `move-phase.ts`
Fix comment typos
Separate TSDoc imports in `move-phase.ts`
Add return hints to `trySelectMove`
Minor formatting
Remove duplicate `.affectedByGravity()` on Telekinesis
Fix docs for `checkRestrictions`
Manually format method definition
Fix comment spacing
Fix variable naming
* Address kev's review comments
Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
* Minor adjustments from code review
Co-authored-by: Bertie690 <136088738+Bertie690@users.noreply.github.com>
* Remove optional chaining
* fix: type for InferKeys
* chore: apply biome
* chore: fix merge conflicts from Biome update
* Remove latent isNullOrUndefined
* Drop readonly on timingModifier
* docs: Add class comment
* Address comments from code review
* Drop readonly from timingModifier
* Cleanup proc chance computation
* Move `cureStatus` into the Pokemon class
* Final touchups
---------
Co-authored-by: Bertie690 <136088738+Bertie690@users.noreply.github.com>
Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
* Fix minimum move count threshold and utilize baseWeights
* Mark a flaky test as TODO
* Add regression test to ensure pokemon generates with sufficient move counts
* Game stats ui handler takes save data as input
* Make admin panel functional for local testing
* Added button to show stats; mocking for local testing with current save data
* Adding pokédex to admin panel
* Many nice things
* Fixed typo
* Add backend support
* Fixed button width in admin panel
* Apply suggestions from code review
---------
Co-authored-by: Sirz Benjie <142067137+SirzBenjie@users.noreply.github.com>
https://github.com/pagefaultgames/pokerogue/pull/6554
* Removed `ARENA_TINT_OVERRIDE` + minor cleanup of arena tint code
* Added `TIME_OF_DAY_OVERRIDE` to replace tint override
* Fixed visual bug with time of day override
* Fixed the frag stuff and blah blah blah
* Update sprite-types.ts
* Add license information
* Add reuse lint workflow
* Add snippets for spdx
* fix: minor wording adjustments and typo fixes
Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
* chore: add FileContributor attributions for Bertie
Co-authored-by: Bertie690 <136088738+Bertie690@users.noreply.github.com>
* begin licensing some audio assets
* Add pokemon reborn sound affect attribution
* Annotate Leavannite's section
* Add more licensing info
* Add license info to license files ._.
* Move ps1 files out of public
* Add license for animation jsons
* Add license for bat scripts in public
* Update licensing in scripts
* Fix typo in license ref
* Fix AGPL-3.0-or-later
* Add license info to typedoc.config.js
* Add MIT license for snippets
* chore: update license info for files in scripts
* chore: update license info
* chore: update license info
* chore: update license info
* Remove licenses used only by public before linting with reuse
* Add license info to new files added by docker PR
* chore: apply biome
* fix: add back linting workflow lost during merge
* Add attribution based on Hanniel's information
* Add attribution based on Officer Porkchop and Green Ninja's information
* add attribution to unicorn_power for reshiram/zekrom/kyurem epic variant
* Fixup minor typo
* Adjust sprite test to not think REUSE.toml is a sprite json
* Add missing continue-on-error to workflow
* fix: address kev's comments from code review
* docs: minor touchups
---------
Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
Co-authored-by: Bertie690 <136088738+Bertie690@users.noreply.github.com>
* Reworked `Starter` interface with more explicit information
* Use Starter in ssui
* Fixed some bugs
* Passing starter.ivs to playerPokemon
* Using speciesIds
* Fixed getTestRunStarters
* Reverted some parameter changes
* Initialize starters in ssui
* Don't clear starters before starting run
* Fix to game manager
* Apply suggestions from code review
Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
* Set ivs to 0 in part timer test
* Setting the right ivs
* Moved ssui to handlers folder
* Ran biome all
* Fixed broken imports
---------
Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
* Implement supreme overlord as a battler tag
* Make ability a conditionalattr
* Add tag to map
* Update test
Co-authored-by: Bertie690 <136088738+Bertie690@users.noreply.github.com>
* Add edgeCase marker
* Extend from AbilityBattlerTag
* Run biome
---------
Co-authored-by: Bertie690 <136088738+Bertie690@users.noreply.github.com>
* Fix terrain & weather max duration flyout
* show correct max duration for tags
* maka maxDuration optional in arenaEvent constructor
* Apply suggestions from code review
Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
---------
Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
Added new biome entries for Type: Null, Silvally, Poipole, Naganadel, Kubfu, Urshifu, Scientist, and Swimmer to their respective init functions, and reran `outputPools`.
* Lower TM weight in moveset generation.
* Implement a cap on amount of TMs based on wave.
* Extract ai moveset generation to its own file
* Minor doc cleanup
* Move magic numbers to balance file and export them
* Tweak stab move weight generation
---------
Co-authored-by: Sirz Benjie <142067137+SirzBenjie@users.noreply.github.com>
https://github.com/pagefaultgames/pokerogue/pull/6551
* [Balance] Change Happiny evolution method
Happiny now evolves into Chansey by using an Oval Stone during the Dawn or Day, instead of 160 friendship (Blissey's friendship requirement of 200 remains unchanged).
Also removed unnecessary comments from Gligar's and Sneasel's evolutions.
* Update Chansey -> Blissey 200 -> 180 Friendship Required (Base 140)
---------
Co-authored-by: damocleas <damocleas25@gmail.com>
Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
* Move type definitions away from game-data.ts
* Update src/@types/data-types.ts
Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
* Renamed file to save-data.ts
* Fixed broken import
* Moved some ui files
* Run biome, fix broken import
* Fixed one more broken input
* add language selection
* Move language option up
* Move language list to seperate file
* fix circular dependency
* Move language selection to own icon
* run biome
* add icon
* add icon to legacy ui
* Add blacklist of moves that can't be forced STAB.
* Add exploding moves to blacklist.
* Change blacklist from array to list.
* Sort blacklist and add steel beam
---------
Co-authored-by: Sirz Benjie <142067137+SirzBenjie@users.noreply.github.com>
* Added more biome rules
* Fixes
* Added a few more rules
* Added global phaser to biome
* Fix tpyo
* Updated biome to 2.1.4; improved docs on linting/localization; added vcs support
Also added `.build` to gitignore cuz reasons
* Fixed tpyo
* dd
* Applied linter fixes
* Partially fixed some private property issues
* Upgraded to Biome 2.2.0; added `operatorLinebreak` and a few new rules
* Moved operator linebreaks before lines
* Applied kev's suggestions
* Update biome.jsonc
Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
* added like all the rules and then some
* modify biome.jsonc
* apply biome formatting
* Reverted changes to balance folder
* fixed stuff
* Fixed biome stripping trailing globstars from everything
* made `noInvertedElse` an error rule
* Add & apply fixes for `useExplicitLengthCheck`, `useAtIndex` and `noNonNullAssertedOptionalChain`
* Bumped biome to 2.2.3
* Fixed a few syntax errors
* Removed trailing globstars since biome actually fixed their shit
* Final clean up
* foobarbaz
* Fixed remaining issues
* Fixed a few errors in SSUI
* fixed rounding issue
* Fixed test to not round funky
* Fixed biome false positive for vitest hooks
* Apply biome:all
---------
Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
Co-authored-by: Sirz Benjie <142067137+SirzBenjie@users.noreply.github.com>
* Store session id in session data to prevent somehow deleting wrong slot
* Only log session / system if beta or local; fix promise
* Fix serialization/deserialization when logging session/system data
* Force loadSaveSlot to set the logged in user's last session
* No longer add slotId to session data
* Use pointer events instead of touch events in `TouchControl`
* Marked some touch-related tests as todo
* Changing test mocker to send pointer events
* Also updated the ui to change the position of touch controls
Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
* Added egg move parse utility script
* Update interactive.js
Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
* Update interactive.js
Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
* Update interactive.js
Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
* Applied kev's reviews
* Removed `basePath` from tsconfig
the docs literally recommend against using it so yeah
* Fixed up configs so that script folder has its own file
* Reverted changes to egg move contents
* renamed boilerplate so biome doesn't lint it
* Fix `jsconfig.json` so that it doesn't typecheck all of `node_modules`
See https://github.com/microsoft/TypeScript/issues/50862#issuecomment-1565175938 for more info
* Update tsconfig.json
Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
* Updated workflows and fixed issues
* Removed eslint from linting workflow
* Fixed type error in d.ts file to shut up linters
* Reverted test-filters.yml
* Update biome.jsonc
* Update decrypt-save.js comment
* Update interactive.js
* Apply Biome
* Fixed type errors for scripts
* Fixed biome from removing tsdoc linkcodes
* Update test/@types/vitest.d.ts
---------
Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
* Added mock console and fixed up many many things
* Cleaned up handling of colors and such
* Added minor comment
* Fix Focus Punch test
* Fix typo
* Remove redundant comment
* Update vitest.setup.ts
Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
* Added color map inside new folder
* Made constants not object bc i was told to
* Update src/constants/colors.ts
* Removed all moves init check
* Removed import
* Fixed up some stuff + added aquamarine color to settings helper
* Added logging for test end
* Removed intentionally failing test
* Fixed console log to use inheritance to not override vitest's wrapping
* Added a custom Vitest reporter to not log the test name every 2 lines
* Moved coloration to a hook to prevent misplacing things
* Fixed import issue by copypasting vitest soure
* Removed intentionally failing test
look i need to check that `test:silent` works on github ok
* Added REUSE annotations to copied parts of source
* Fixed import issue
---------
Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
* Check if items are able to transfer for `ALL` option
* show amount of transferable items in `ALL` option
* Show number of transferable items in the 'ALL' option
* Apply suggestions
- The constant `isLocal` now checks to see if `import.meta.env.MODE`
is `"development"` (which it is when running via `pnpm start:dev`)
instead of checking what URL is being used to access the client
(e.g. `"localhost"` or an IP address)
- Remove `start` from `package.json` and replace it with
`start:prod` (which runs `vite --mode production`) and
`start:beta` (which runs `vite --mode beta`)
`start:prod` -> `isBeta` and `isLocal` are both `false`
`start:beta` -> `isBeta` is `true` and `isLocal` is `false`
`start:dev` -> `isBeta` is `false` and `isLocal` is `true`
- Remove obsolete/unused `localServerUrl` and `apiUrl` constants
* Prevent an empty starterpreferences object from being saved
* Fix ssui nullish coalescing
* Update src/utils/data.ts
Co-authored-by: Dean <69436131+emdeann@users.noreply.github.com>
---------
Co-authored-by: Dean <69436131+emdeann@users.noreply.github.com>