* Commit old stashed changes
* Complete basic implementation of Tera
* Fix effectiveness test
* Make tera retain until forced recall or faint, regain on biome change
* Experimental sparkle fix
* Fix champion teras
* Attempted fix for double battles tera UI bug
* Fix the fix
* Fix linting and test issues
* Fix more tests
* Change int type
* Implement tera for ME trainers
* Cleanup species inclusivity check
* Make tera instant recharge if terapagos in party
* Make useless tera shards not generate
* Implement stellar tera damage boost
* Improve tera selection UI
* Tidy up animation and localisation
* Improve tera button sprite
* Fix Lance tera
* Make tera instant recharge during E4 in classic modes.
* Fix formatting in the tera common animation
The animation was also not playing due to `frameTimedEvents` being missing as well.
* Make tera effect start after animation
* Implement save migration
* Update version number for migration code
---------
Co-authored-by: Madmadness65 <blaze.the.fireman@gmail.com>
Co-authored-by: Madmadness65 <59298170+Madmadness65@users.noreply.github.com>
* Make the name, formName and type readable (bring it infront of larger sprites that would block it)
* Dont to type Icons otherwise they will overlay on the "want to go back" text
* Update src/ui/pokedex-ui-handler.ts
* Fixed bug when setting tint of eggs for egg move filter
* Form text is properly hidden when going to filters
* Displaying level up moves of alternate forms
* Offsetting form cycle button when uncaught text is shown
* Pokedex buttons now appear on mobile touchpad
* Hotfix to prevent "Normal" form to showing the text
* Preventing filter texts from showing gibberish
* Moving cursor to input text when pressing on filter
* Introducing method to get full obtainable unlocks for a given species
* Filtering obtainable unlocks in dex
* Buying eggs in dex does not crash the game
* Shiny icon does not overlap with luck text for evolutions
* Shiny is maintained correctly when cycling through different pages
* Displacing text elements to avoid overlap for localized form names
* Checking starter caughtAttr in addition to pokemon caughtAttr
* Correctly displaying form names
* Fixed bug which displayed wrong form types
* Handling unobtainable forms
* F button does not show up if there is only one obtainable form
* Support for localization of regional form names
* Show names of regional and other forms where appropriate
* Add form name to evolution screen
* Remove formKey parameter
* Update docstrings
* More SpeciesFormKey
Co-authored-by: Wlowscha <54003515+Wlowscha@users.noreply.github.com>
* Clean up
* Fix inconsistent key name
---------
Co-authored-by: Wlowscha <54003515+Wlowscha@users.noreply.github.com>
* Introducing tray to display form icons in the pokedex; displaying correct information for uncaught and seen forms in pokedex page; dexForDevs now unlocks everything in the main page
* Filtering correctly passive abilities and form abilities. Passive candy symbol is now colored
* Pikachu does not break the dex due to having no passive
* Fixed position of pokemonFormText
* Added button instructions to show forms
* Allowing candy upgrades for evolutions; too expensive options shown in shadow text
* Apply suggestions from code review
Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
* Fixed game crashing after save and quit
* Updating import of BBCodeText
* Restoring name on dex page
* getStarterSpecies now looks at speciesStarterCosts to determine what is a starter instead of looking at game data (exception for Pikachu)
* Selecting pokedex option in starter select menu does not play error sound
* Mons having no TM moves don't freeze the game in the dex
* Menu in pokedex page is not pushed to the left when localized options are long
* Removed spurious globalScene.clearPhaseQueue() call
* Showing error message when clicking tm option if no tm moves are available
* Egg move icon and passive icon are darkened when filtering if the respective move or passive has not been unlocked
* Hiding form button when switching to filters
* Hiding "Show forms" button while forms are being shown
---------
Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
* Working ui, missing logic, logs
* Filtering starters by name is working
* Filtering moves and abilities correctly
* Opening starter page on button.action
* Removed ugly leftover from title
* Added container for text with different colors and titles
* Showing all species in pokedex with no decorations and shinies
* Filtering includes extra forms; moving cursor from filterText to starters does not reset scrollIndex; toggle button for decorations
* Can access evolution page
* Abilities are colored properly (still missing info overlay)
* Biome filter; displays for baseStats, biomes and evolutions
* Removed lockable select ui handler, replaced by changes to standard ui handler.
* Evolutions are selectable from list and displayed properly
* Keeps shiny variant, gender and form when switching to evolutions; show ability descriptions; properly displaying sprites for megas and other forms
* Listing prevolutions and base forms
* Fixed filtering of baby forms with no biome assigned; Caught filter is ALL by default
* Highlighting text filters, resetting all filters when starting up
* No error messag when cursor on uncaught species, showing sprite again after toggling stats
* Simplified Pokemon Scan logic, accepts separate words as input
* Dynamically resizing ability box, showing ability description on first hover. Removed debug logs.
* Removed some more debug messages.
* Filter bar can adjust cursorOffset and x padding
* Fixed some type definitions
* Fixed more warnings; added localization strings in the pokedex scan overlay.
* Fixed fatal bug due to using Object.keys
* Removed debug messages
* Added try catch construct to prevent error that was breaking reloadHelper tests
* Added filter for starters / evolutions
* Biome filter option for uncatchable mons
* C and V buttons snap cursor to filters
* Changing background to make instructions visible
* Can buy candy upgrades through pokedex
* Displaying base stats as bars in an overlay
* Including baby forms among uncatchable mons
* Including evolutions when filtering by biome
* Working logic for select ui handler with skips and scroll
* -Pokedex page showing biomes from prevolutions; displaying correct biomes for forms of Rotom, Burmy and Lycanroc
* Fixed bug in base stats overlay
* Regional forms display name of region in evolutions and prevolutions
* Better messages for evolution conditions
* Showing proper descriptions for menu
* Adding sound effects to menu, and pokemon cry when opening page
* Changing menu colors to textstyle options supporting a legacy version.
* Fix to getStarterSpeciesId to work with all-unlocks files
* Passing a TextStyle to option select ui handler to allow for shadowed text
* Fixed bug of overlapping labels in text filters
* Fixed bug with supportHover and skipped indices in option select ui handler
* Localization of pokemon number label
* Fix to pokemon number localization
* Fix to pokemon number localization
* Adding some comments, removing useless elements
* More cleanup
* Removed candy upgrade instructions from evolved pokemon; attempting to buy candies from evolution now gives error sound instead of crashing the game
* Attempting to exit from filter text is now allowed if current option is empty
* UI changes to make dex pages work in legacy style
* Pokemon name shown while in alt form is no more capitalized
* Handling uncaught pokemon
* Showing types on Pokémon page
* Introducing globalScene everywhere
* Showing evolution requirements in message box
* Displaying form changing items; now using pokemonFormChanges to only show reachable forms
* Playing correct cry
* Pokemon cry in setSpeciesDetails
* Left and right buttons to turn previous or next pokedex page
* Cleaned up "last" from this.species; turning pages now preserves memories of unlocks
* Pokerus cursor is now treated as decoration
* Correctly displaying prevolutions for Pikachu and Gholdengo
* Uncaught forms can be cycled through (with black sprite and no options available)
* Filtering by moves now shows icons to distinguish egg and tm moves
* Added icons for passive abilities
* Added icons to legacy mode; fixed bug that caused game to hang when switching to or from legacy mode
* Pokedex entries are accessible through party screen
* Adding sort criteria for consistency with starter select screen
* Added options to cost reduction filter for consistency with starter select screen
* Updating optionSelectUiHandler to simplify logic and fix bug of autocomplete showing options incorrectly
* Adding Pokedéx option in starter select screen
* Prevolutions are shown properly again; battle forms are considered caught as long as the base form is caught
* Small fixes to evolution and form change descriptions
* Reworked evolutions menu to incorporate condition descriptions
* Moving evolution condition description logic entirely to the SpeciesEvolution class
* Removed extra Miraidon and Koraidon forms
* Properly showing evolution text for Dunsparce and Maushold
* Displaying uncaught forms for Dudunsparce and Maushold properly
* Displaying correct forms for Urshifu and Toxicitry after evolution
* Cleared up comments
* Updating test for tandemaus evolution
* Localized labels for egg moves and abilities
* Added button to show back sprites
* Back to showing only caught battleforms; added dexForDevs option
* Merging shiny and variant buttons
* Uncaught battle forms options are shown in dark text, like evolutions
* Showing proper gender for mons that can only be (or have only caught in) one gender
* Apply suggestions from code review
Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
* Removed unused options from base-stats-overlay
* Fixed import of BaseStatsOverlay
* Displaying form-specific TMs properly; adjusting for passives rework
* Removed logging messages
* resetting containers to prevent memory leaks
* Updating integer to number in pokedex
* Implemented suggestion
* Removed some stray comments
* Fixed logic for cursor coming down from filter bar
* Transition from filters to dex box now works in a visually pleasing way
---------
Co-authored-by: Lugiad <2070109+Adri1@users.noreply.github.com>
Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
Co-authored-by: damocleas <damocleas25@gmail.com>
* Add support for form and evolution specific passives
* Update src/data/pokemon-species.ts
---------
Co-authored-by: Amani H. <109637146+xsn34kzx@users.noreply.github.com>
Co-authored-by: damocleas <damocleas25@gmail.com>
* Add destroy function to ui handlers
* Implement destroy() for StarterSelectUiHandler
* Update battlescene to free memory when resetting
* Document destroy for starter select
---------
Co-authored-by: damocleas <damocleas25@gmail.com>
* Replace various `scene` pass-arounds with global scene variable
* Modify tests
* Add scene back to `fade[in|out]()` calls
Co-authored-by: Moka <54149968+MokaStitcher@users.noreply.github.com>
* Fix Bug Superfan ME test
Co-authored-by: Moka <54149968+MokaStitcher@users.noreply.github.com>
* Re-enable fixed test
Co-authored-by: Moka <54149968+MokaStitcher@users.noreply.github.com>
* Rename `gScene` to `globalScene`
* Move `globalScene` to its own file to fix import/async issues
* Fix `SelectModifierPhase` tests
* Fix ME tests by removing `scene` from `expect()`s
* Resolve merge issues
* Remove tsdocs referencing `scene` params
Remove missed instances of `.scene`
* Remove unnecessary `globalScene` usage in `loading-scene.ts`
* Fix merge conflicts
* Attempt to fix circular import issue
* Found the source of the import issue
* Fix merge issues
---------
Co-authored-by: Moka <54149968+MokaStitcher@users.noreply.github.com>
* new function
* weak attempt of documentation
* mysterious chest handled...? maybe.
* override comments
* one more instruction
* fixing up the logging lol
* lah
* fixing it up
* coommrent
* lalal
* run info fixes
* Addressed PigeonBar's comments
* Centered run info text + fixed trainer sprites.
* Fixed function name.
* Update tsdoc in `overrides.ts`
Co-authored-by: Moka <54149968+MokaStitcher@users.noreply.github.com>
* Fix tsdoc comment
* sligthly rewrite centering of biome and wave text in run info
---------
Co-authored-by: frutescens <info@laptop>
Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
Co-authored-by: Moka <54149968+MokaStitcher@users.noreply.github.com>
Co-authored-by: Moka <millennium.stitcher@gmail.com>
Will only show the (+) icon if you catch a non-shiny, have caught a shiny of that species before, and have not caught a non-shiny before.
Removed magic numbers from new non-shiny check
Co-authored-by: Riley Young <rileyyoung17@gmail.com>
Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
* [UI] Ask Confirmation before disabling touch controls
* show a message when asking for confirmation in settings
* small cleanup
* change settings message box to display 2 lines with word wrap
* Converted EncoreTag into a MoveRestrictionBattlerTag
* Wrote test and added documentation
* Added documentation describing EncoreTag as a whole
* Added PRE_MOVE lapse code to handle early tag expiration from PP-less encored move
* Replaced PRE_MOVE with CUSTOM for lapsing Encore in situations where the encored move has 0 PP
* Add encore tests
* fix overrides
* Apply suggestions from code review
Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
* Update command-phase.ts
* Addressed failing eslint test
---------
Co-authored-by: frutescens <info@laptop>
Co-authored-by: innerthunder <brandonerickson98@gmail.com>
Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
* start migrating Utils.apiFetch to api class
* move dailyranking to api
* use api in title-ui-handler
* remove: Utils.apiFetch
* migrate `updateSystemSavedata` to api
* migrate clear session savedata to api
* migrate updateAllSavedata to api
* migrate `updateSessionSavedata` to api
* rename `api` to `pokerogue-api`
* migrate unlink discord to pokerogue-api
* migrate unlink google to pokerogue-api
* update pokerogue-api login
* migrate register account to pokerogue-api
* remove Utils.apiPost
* reset overrides.ts
* chore: cleanup
* fix env.development
* fix circular dependencies with api
* fix gamedata verify missing await
* fix daily api calls in daily-run-scorebard
* fix discord-link request body being empty
there was a double `toUrlSearchParams()` call involved
* add pokerogue-api test coverge
* add test-utils `getApiBaseUrl()` method
* add pokerogue-admin-api test coverage
* add pokerogue-account-api test coverage
* add pokerogue-daily-api test coverage
* add pokerogue-savedata-api test coverage
* fix some test describes
* add pokerogue-session-savedata-api test coverage
* add pokerogue-system-savedata-api test coverage
* fix tests
* fix tryExportData
thanks @MokaStitcher
* chore: fix menu-ui-handlers.ts
* fix admin-ui-handler (types)
* extend test-coverage for admin-api
* remove outdated code
* skip some clowning-around-encounter tests if events are active
this is not a permanent solution
* Update src/system/game-data.ts
Co-authored-by: PigeonBar <56974298+PigeonBar@users.noreply.github.com>
* Revert "skip some clowning-around-encounter tests if events are active"
This reverts commit a97dafe8b2.
* mark `localServerUrl` and `apiUrl` as deprecated
in `utils.ts`
---------
Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
Co-authored-by: PigeonBar <56974298+PigeonBar@users.noreply.github.com>
* Clean up some code related to SSUI
Replace a few nested ternaries with if blocks
Remove some `undefined`s with destructuring
* Add comment, use `v === 0` instead of `!v`
Co-authored-by: Moka <54149968+MokaStitcher@users.noreply.github.com>
---------
Co-authored-by: Moka <54149968+MokaStitcher@users.noreply.github.com>
* Update `battle-scene.ts` and `data/field/pokemon.ts`
`battle-scene.ts` changes:
- `getParty()` renamed to `getPlayerParty()` for clarity
- `getNonSwitchedXPokemon()` consolidated into `getXPokemon()`
- Some tsdocs were added/updated for
`getXParty()`, `getXField()` and `getXPokemon()`;
and those functions were explicitly marked as `public`
- Helper function `getPokemonAllowedInBattle()` added
`pokemon.ts` changes:
- `isAllowed()` renamed to `isAllowedInChallenge()` for clarity
- A redundant check for an active scene is removed in `isActive()`
- Some tsdocs were added/updated for `isFainted()`,
`isAllowedInChallenge()`, `isAllowedInBattle()` and `isActive()`;
and those functions were explicitly marked as `public`
- `isFainted()` now checks for `hp <= 0` instead of `!hp`
Co-authored-by: flx-sta <50131232+flx-sta@users.noreply.github.com>
* Backport eslint change to reduce merge conflicts
* Fix merge issues
---------
Co-authored-by: flx-sta <50131232+flx-sta@users.noreply.github.com>
Co-authored-by: Tempoanon <163687446+Tempo-anon@users.noreply.github.com>
* Updated admin panel to allow the concept of unlinking accounts
* Don't look too hard at this commit, nothing to see here
* Admin stuff
* Fixed linking and unlinking and updated menu options
* Undid some changes and cleaned up some code
* Updated some logic and added some comments
* Updates to admin panel logic
* Stupid promises everyone hates them and they deserver to die
* Promise stuff still
* Promises working thanks to Ydarissep on discord - pushing with debug code before it decides to stop working again
* Removed debugging code
* All discord functionality seems to be working here?? Not sure what happened but yay
* Fixed up some bugs and code
* Added registered date to the panel
* Fixed and updated some minor error message related stuff
* Minor changes
* Fixed some minor bugs, made the save related errors have error codes, and added updated icons
* Updated search field error
* Missed a couple of things to push
* Fixed linting and doc errors
* Revert dev related code and clean up dev comments
* Reverting utils
* Updating front end to match back end from Pancakes' comments
* make getFields and getInputFieldConfigs a single function of FormUiHandler
* remove outdated doc
* Apply suggestions from code review
Moka review changes
Co-authored-by: MokaStitcher <54149968+MokaStitcher@users.noreply.github.com>
* Added docs
* eslint fixes
* Fixed error not showing up in certain conditions
---------
Co-authored-by: flx-sta <50131232+flx-sta@users.noreply.github.com>
Co-authored-by: MokaStitcher <millennium.stitcher@gmail.com>
Co-authored-by: MokaStitcher <54149968+MokaStitcher@users.noreply.github.com>
Co-authored-by: innerthunder <brandonerickson98@gmail.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>
* Have Friendship Value be shown in summary
* Fix how "fill" of icon is calced
* Update src/locales/de/pokemon-summary.json
* Actually add the images
* Add correct image files
* Update src/ui/summary-ui-handler.ts
Co-authored-by: Adrian T. <68144167+torranx@users.noreply.github.com>
* Update src/ui/summary-ui-handler.ts
Co-authored-by: Adrian T. <68144167+torranx@users.noreply.github.com>
* Update src/ui/summary-ui-handler.ts
* Update src/ui/summary-ui-handler.ts
Co-authored-by: MokaStitcher <54149968+MokaStitcher@users.noreply.github.com>
* Made changed suggested in code review
* Update src/locales/en/pokemon-summary.json
---------
Co-authored-by: Adrian T. <68144167+torranx@users.noreply.github.com>
Co-authored-by: MokaStitcher <54149968+MokaStitcher@users.noreply.github.com>
* Removed local translation files
added translations submodule
[Enhancement] Add post-merge command to update submodules in lefthook configuration
[Enhancement] Add postinstall script to install lefthook after package installation
[Enhancement] Update postinstall script to run post-merge command after lefthook installation
* Add subproject commit for locales directory
* Remove translation team assignments from CODEOWNERS
* Add recursive submodule checkout to workflow files and update README for translations
* fix: run without locales present (#4539)
some code was hard-wired with locales having to be present. This is no longer the case now
---------
Co-authored-by: flx-sta <50131232+flx-sta@users.noreply.github.com>
* feat: show app version on title screen
* fix: adjust app version positions
* update app version text
---------
Co-authored-by: flx-sta <50131232+flx-sta@users.noreply.github.com>
* Remove unnecessary loading of trainer sprites in loading scene
* load trainer assets on demand for run history UI
---------
Co-authored-by: ImperialSympathizer <imperialsympathizer@gmail.com>
Arrows allow for dynamic placement based on language
---------
Co-authored-by: MokaStitcher <54149968+MokaStitcher@users.noreply.github.com>
Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
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: seasonsl splash messages logic + scaffolding
* refactor: settin up and displaying splash messages.
They are now stored with their i18next keys and only get translated as soon as they are displayed. This also allows for better display of the `battlesWon` parameter which now supports better number formatting and the count is an interpolation
* fix: updateTitleStats not checking the namespace of battlesWon
* add tests for splash_messages
* test: always use UTC time
* fix: time-pattern to MM-DD
* fix splash_messages test
* add: const to control usage of seasonal splash messages
* fix tests (splashj)
* Update src/locales/ja/splash-messages.json
Co-authored-by: Chapybara-jp <charlie.beer@hotmail.com>
* Update src/locales/es/splash-messages.json
Add missing `number` format for battlesWon message
---------
Co-authored-by: Chapybara-jp <charlie.beer@hotmail.com>
* Fix - need to test though
* New Line for Personal Best
* Run History basic Interpretation
* Stray console log
* Added personal best message fix
* argh
* removed a stray log
---------
Co-authored-by: frutescens <info@laptop>
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
---------
Co-authored-by: ImperialSympathizer <imperialsympathizer@gmail.com>
* [bug] fix scrollable elements not resetting properly
* [ui] add wrap around and scrolling bar to the achievements menu
* [ui] add scrollbar to the settings
* Have English Status Symbols show up again :)
* It now uses the function instead
---------
Co-authored-by: flx-sta <50131232+flx-sta@users.noreply.github.com>