* 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>
* 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>
* 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>
* 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
* [Bug] Fix reloads erasing weather on first wave of biome
* Minor revisions
* Minor revisions 2
* Update test
---------
Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
* [ui] add prompt icon to the message boxes that don't have it
* [ui] add background overlay during tutorials
* add missing doc
* Improve documentation based on suggestions
Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
---------
Co-authored-by: flx-sta <50131232+flx-sta@users.noreply.github.com>
Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
* Resize and Reallocate to IV graph in new game
* decrease moveset container size
* fix to font shadow
* fix to shadows
* Remove unused variable
* Revert IV text back to original size
* fix eslint error check post merge
* Update src/ui/stats-container.ts
Reformat statLabel line.
Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
---------
Co-authored-by: tomasrggm <tomasrggm@gmail.com>
Co-authored-by: flx-sta <50131232+flx-sta@users.noreply.github.com>
Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
* EQ, magnitude, and bulldoze do half damage in grassy terrain
* Fix more styling issues in grassy glide
* lol unit tests
* Add test :pikastare:
---------
Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
* Update pokemon-species.ts Pokerus starters 3 -> 5
* Update starter-select-ui-handler.ts
* Updated pokemon-species.ts, changes from frutescens to make Pokerus # a constant that imports into starter select ui
* Update starter-select-ui-handler.ts to continue the other changes
* Update src/data/pokemon-species.ts
---------
Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
* Changes some evolutions
* more work
* Give Onix Iron Defense at 30
* Sirfetch'd and Gholdengo, pause any evolutions
* Fix pause evolution text
* adjust wild evolution delay
* Add localization keys, clean up evo pausing
* Clean up evo delays
* Adjust friendship evos, Leader's Crest sprite by chaosgrimmon
* Fix Nugget crash
* Fixed Gimmighoul fr
* Move Charcadet armors to common
* Locale migration, Lilligant shiny stone
* Cleanup
* Fix language migration error
* Change Cosmog line evo method
* Undo Ursaluna being night only
* Evo items roll during evo pause on Eevee
* Make all time based evos use dusk and dawn times
* Fix paused and unpaused evolution texts being reversed
* Fixed evolution delays
* Moved up Mimic in Mime Jr's moveset
* Remove Cosmoem time conditions, add Gimmighoul tracker
* Remove tracker after Gimmighoul evo
* Change Scyther Steel Wing back to 30, mark custom
* added various tests for protect based moves, reset protect test file bc no easy way to test specifically with protect, and changes in move-effect to fix the issue
* adding another non contact move test for baneful bunker
* Update src/test/moves/obstruct.test.ts
Co-authored-by: innerthunder <168692175+innerthunder@users.noreply.github.com>
* Update src/test/moves/baneful_bunker.test.ts
Co-authored-by: innerthunder <168692175+innerthunder@users.noreply.github.com>
* Update src/test/moves/baneful_bunker.test.ts
Co-authored-by: innerthunder <168692175+innerthunder@users.noreply.github.com>
* Update src/test/moves/baneful_bunker.test.ts
Co-authored-by: innerthunder <168692175+innerthunder@users.noreply.github.com>
* better descriptions for baneful bunker test
---------
Co-authored-by: innerthunder <168692175+innerthunder@users.noreply.github.com>
* Fixed SURF and FLY not beeing localized in "lost at sea"
Fixed Mysterious Challenger Title not beeing correct
Fixed Winstrate Names not beeing localized
* Revert the winstrate fix. It breaks other trainer battles for some reason...
* A new way of giving the winstrates localized names (and for the future all named trainers that dont use a "initFor" method)
* Updated test (with ok from ImperialSympathizer)
* Made the expected value simpler
* FLY and SURF can be localized much simpler
* Fixes damage within pokemon.ts for golden punch, since it has changed from a IntegerHolder (main) to a number (beta). This updates it to pass through the damage as an integer holder instead of a number
* Updated integer holder to number holder as per PR comment
* Create getAttackDamage function
* Add ignoreAbility params to getBattleStat
* Rewrite Pokemon.apply
* renamed damage variables
* Add `ignoreSourceAbility` arg to `getAttackDamage`
* Enemy AI now searches for KO moves
* Add probabilistic test for KO search
* Add tests to `damage_calculation`
* "killMoves" --> "koMoves"
* Clean up `randomMultiplier`
* Clean up damage calculation test
Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
* Fix stabMultiplier using base type for Tera bonus
* Restore simulation capabilities for Unaware
* move sourceTeraType closer to where it's used
* Add base damage test
* Exclude counter moves from KO search
---------
Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
* Undo egg skip event
* Readded vouchers to original weights
* Gmax Adjustments - Charizard Berserk, Stats for Eevee and Duraludon
* Set weight of 999.9kg for all Gigantamax forms
---------
Co-authored-by: Frederico Santos <frederico.f.santos@tecnico.ulisboa.pt>