Commit Graph

958 Commits

Author SHA1 Message Date
Chris
bda286cebb
[Bug] Fix Login Screen Buttons can be Pressed While Animating (#5170)
* destroy containers when processing external containers

* make form buttons uninteractible until tweens finished instead

* fix holding enter spam

* fix conflicts
2025-04-19 14:00:12 -07:00
Sirz Benjie
5854b21da0
[Refactor] Remove circular imports part 1 (#5663)
* Extract Mode enum out of UI and into its own file

Reduces circular imports from 909 to 773

* Move around utility files

Reduces cyclical dependencies from 773 to 765

* Remove starterColors and bypassLogin from battle-scene

Reduces cyclical dependencies from 765 to 623

* Fix test runner error

* Update import for bypassLogin in test

* Update mocks for utils in tests

* Fix broken tests

* Update selectWithTera override

* Update path for utils in ab-attr.ts

* Update path for utils in ability-class.ts

* Fix utils import path in healer.test.ts
2025-04-19 11:57:03 +00:00
Sirz Benjie
54ce58411b
[Bug] Fix forced switch bugs in enemy partner trainer battles (#5644)
* Add isPartner method to trainer class

* Ensure force switches cannot pull pokemon from the wrong trainer

* Add override for battle type

* Fixup tests and broken assumptions

* Make move fail override semi-invuln check

Bandaid fix because move effect phase does not allow for the move to fail if all of its conditions fail

* Restore overrides

* Apply kev's suggestions from code review

Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>

* Fix illusion test battle type invocation

* Update struggle and healer tests to use battleStyle

---------

Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
2025-04-18 09:35:46 +00:00
Sirz Benjie
ff44cbfa97
[Refactor] Refactor ability file part 1 (#5589)
* Move ability.ts to subfolder

* Extract types out of ability.ts

* Update imports in ability.ts and friends

* Cleanup imports in ability.ts

* Re-add imports lost during sort

* Update imports forgotten during rebase

* Re-import proper type from enums

* Update biome.jsonc

Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>

* Add commit to force tests to rerun

---------

Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
2025-04-15 14:08:35 +00:00
damocleas
b41eee3c7f
Revert "[Refactor] Move many interfaces and enums to their own file" (#5661)
Revert "[Refactor] Move many interfaces and enums to their own file (#5646)"

This reverts commit c82e01eed3.
2025-04-14 12:28:36 -04:00
Sirz Benjie
c82e01eed3
[Refactor] Move many interfaces and enums to their own file (#5646)
* Move LearnMoveSituation to its own file

* Remove unused selfStatLowerMoves array

* Move all-moves to its own file

* Move TurnMove interface to its own file

* move AiType to its own file

* Move PokemonMove to its own file

* Move DamageCalculationResult interface to its own file

* Move fieldPosition to its own file

* Move hit-result to its own file

* Move DamageResult to its own file

* Move SpeciesWildEvolutionDelay to its own file

* move EvolutionItem to its own file
2025-04-14 08:31:26 -07:00
Lylian BALL
15e535a1a0
[Ability] Implement Illusion (#3273)
* implement illusion ability with unit test and localizations

* try removing whitespace change on unnecessary files

* nit corrections

* nit update src/field/pokemon.ts

Co-authored-by: Adrian T. <68144167+torranx@users.noreply.github.com>

* nit update src/phases.ts

Co-authored-by: Amani H. <109637146+xsn34kzx@users.noreply.github.com>

* illusion test correction

* unexpected error correction

* refactor property pokemon.illusion to pokemon.battleData.illusion

* nit

* nit

* update unit test up-to-date

* add docs

* merge up to date

* bugfix

* bugfix

* merge up to date

* refactor field illusion out of battleData

* fix nit

* fix nit

* Zoroark change illusion after lastPokemon update

* Zoroark change illusion after lastPokemon update

* refactor bug fix

* bugfix

* bug fix on tests

* Update src/field/pokemon.ts

Co-authored-by: innerthunder <168692175+innerthunder@users.noreply.github.com>

* use GetFailedText

* remove useless import

* add condition 'no illusion' into transform move

* wild Zoroark creates an illusion according to the current biome

* wild Zoroark creates an illusion according to the current biome

* delete console.log()

* add doc

* Update src/field/pokemon.ts

Co-authored-by: innerthunder <168692175+innerthunder@users.noreply.github.com>

* fix tests

* update locales submodule

* update Illusion interface

* bug fix

* bug fix

* bugfix

* rename some params for future implementations

* Zoroark keep illusion between battles

* Zoroark keep illusion between battles

* delete draft

* merge up-to-date

* bugfix

* merge

* merge

* implement canApplyPresummon method

* Update test/abilities/illusion.test.ts

Co-authored-by: Sirz Benjie <142067137+SirzBenjie@users.noreply.github.com>

* Update src/data/ability.ts

Co-authored-by: Sirz Benjie <142067137+SirzBenjie@users.noreply.github.com>

* Update src/data/ability.ts

Co-authored-by: Sirz Benjie <142067137+SirzBenjie@users.noreply.github.com>

* Update test/abilities/illusion.test.ts

Co-authored-by: Sirz Benjie <142067137+SirzBenjie@users.noreply.github.com>

* Update test/abilities/illusion.test.ts

Co-authored-by: Sirz Benjie <142067137+SirzBenjie@users.noreply.github.com>

* nit

* review corrections

* nit

* type hints affected by enemy illusion

* type hints affected by enemy illusionin fight-ui-handler

* nit

* rename some parameters back in useIllusion

* Update src/field/pokemon.ts

Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>

* Update src/field/pokemon.ts

Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>

* refactor battleData.illusion as summonData.illusion and delete oncePerBattleClause

* add comments

* illusion will break before evolution

* Update src/field/pokemon.ts

Co-authored-by: Sirz Benjie <142067137+SirzBenjie@users.noreply.github.com>

* Update src/data/ability.ts

Co-authored-by: Sirz Benjie <142067137+SirzBenjie@users.noreply.github.com>

* Update src/data/ability.ts

Co-authored-by: Sirz Benjie <142067137+SirzBenjie@users.noreply.github.com>

* Update src/data/ability.ts

Co-authored-by: Sirz Benjie <142067137+SirzBenjie@users.noreply.github.com>

* Update src/data/ability.ts

Co-authored-by: Sirz Benjie <142067137+SirzBenjie@users.noreply.github.com>

* bug fix

* g

* get submodule back

* get submodule back

* bug fix to save illusion status

* add pokemon.getPokeball()

* Update src/field/pokemon.ts

Co-authored-by: Sirz Benjie <142067137+SirzBenjie@users.noreply.github.com>

* Update src/field/pokemon.ts

Co-authored-by: Sirz Benjie <142067137+SirzBenjie@users.noreply.github.com>

* Update src/field/pokemon.ts

Co-authored-by: Sirz Benjie <142067137+SirzBenjie@users.noreply.github.com>

* Update src/data/ability.ts

Co-authored-by: Sirz Benjie <142067137+SirzBenjie@users.noreply.github.com>

* Update src/field/pokemon.ts

Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>

* Update src/field/pokemon.ts

Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>

* Update src/field/pokemon.ts

Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>

* Update src/field/pokemon.ts

Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>

---------

Co-authored-by: Adrian T. <68144167+torranx@users.noreply.github.com>
Co-authored-by: Amani H. <109637146+xsn34kzx@users.noreply.github.com>
Co-authored-by: innerthunder <168692175+innerthunder@users.noreply.github.com>
Co-authored-by: flx-sta <50131232+flx-sta@users.noreply.github.com>
Co-authored-by: Sirz Benjie <142067137+SirzBenjie@users.noreply.github.com>
Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
2025-04-12 21:22:04 -04:00
NightKev
6f56dce771
[Biome] Add and apply lint/style/noNamespaceImport (#5650)
* Add `lint/style/noNamespaceImport` Biome rule

* Apply Biome rule, add exception for `*.test.ts` files
2025-04-12 01:31:56 -04:00
Sirz Benjie
787feceb14
[Refactor] Refactor variant sprite code part 1 (#5592)
* Move exp to its own masterlist, simplify initVariantData

* Update test/sprites/pokemonSprite.test.ts

* Extract loadPokemonVariantAssets out of BattleScene

* move variant.ts and update pokemon.loadAssets

* Add fuzzy matching for applying variant recolors

* Move glsl shaders to their own files

* Remove extra variants from shader masterlist

Their exp sprites have since been removed.

Co-authored-by: Unicorn_Power <189861924+Unicornpowerstar@users.noreply.github.com>

* Make exp sprite keys a set instead of an array

* Remove outdated exp sprite jsons

Co-authored-by: Unicorn_Power <189861924+Unicornpowerstar@users.noreply.github.com>

---------

Co-authored-by: Unicorn_Power <189861924+Unicornpowerstar@users.noreply.github.com>
2025-04-09 10:43:05 -05:00
NightKev
efa3662099
[Misc] AFD Event (#5596)
* global timed event manager

* more

* Music change

* Add AFD track loop points

* Add AFD music tracks

* changed music for afd

* Enable Seasonal Splash Text, adjust event values

* Add daily run challenge support

* update event date, change trainer shiny chance to 20%

* add banners lol

* fix activeeventhasbanner function

* Fix banner

* Update locales submodule

---------

Co-authored-by: AJ Fontaine <fontbane@gmail.com>
Co-authored-by: damocleas <damocleas25@gmail.com>
Co-authored-by: Madmadness65 <59298170+Madmadness65@users.noreply.github.com>
Co-authored-by: Dean <me@deann.dev>
Co-authored-by: AJ Fontaine <36677462+Fontbane@users.noreply.github.com>
2025-03-31 15:11:01 -07:00
Lugiad
111390631d
[Localization] LATAM Spanish inclusion (#5582)
* Update i18n.ts

* Update settings.ts

* Update settings-display-ui-handler.ts

* Update starter-select-ui-handler.ts

* Update utils.ts

* Add files via upload

* Update i18n.ts

* Add files via upload

* Update loading-scene.ts

---------

Co-authored-by: Dean <69436131+emdeann@users.noreply.github.com>
2025-03-30 19:29:28 +00:00
AJ Fontaine
d2ffc12d65
[Refactor] Remove game mode param from applyChallenges (#5585) 2025-03-30 06:18:18 +00:00
Wlowscha
05691970e2
[Bug] Fix pokedex option after catching (#5574)
* Fix pokedex entry after catching

* Allow turning pages

* Using isSeen in more places

* Evolutions show up as seen after catching

* Apply suggestions from code review

Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>

* Showing battle forms correctly for seen mons

---------

Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
2025-03-30 06:14:19 +00:00
NightKev
25b9fa7933
[Biome] Add "no unused imports" rule (#5580)
* Apply Biome to files

* Add `lint/correctness/noUnusedImports` rule

* Apply rule

* Remove obsolete eslint directives

* Fix variable naming in `game-speed.ts`
2025-03-29 10:24:23 +00:00
Sirz Benjie
35e733e87a
[Test] [Refactor] [GitHub] Enable no isolate for vitest (#5566)
* Reuse global scene between tests

Co-authored-by: PigeonBar <56974298+PigeonBar@users.noreply.github.com>

* Add missing each method to mockContainer

* Fix select-modifier-phase test

* Sanitize overrides before tests

Co-authored-by: PigeonBar <56974298+PigeonBar@users.noreply.github.com>

* Sanitize overrides before tests

Co-authored-by: PigeonBar <56974298+PigeonBar@users.noreply.github.com>

* [WIP] fix things

* Fix tests not working with --no-isolate

* Update npm tests to use no isolate

* Update test-shard-template

* Update package.json

Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>

---------

Co-authored-by: PigeonBar <56974298+PigeonBar@users.noreply.github.com>
Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
2025-03-28 17:30:38 -04:00
Wlowscha
188647d2e5
[Bug][UI/UX] Pokédex filters properly track TMs for evolutions (#5568)
Looking at speciesId for TMs
2025-03-28 16:02:42 +00:00
Wlowscha
46d110e705
[UI/UX] Grey options in Pokédex for uncaught mons (#5529)
* Options in Pokédex page are dark if unselectable

* Fixed docstring

* Changing display of seen Pokémon in the dex

* Changed visibility of icons in main Pokédex page
2025-03-28 03:59:05 +00:00
damocleas
19c61a041f
[Misc] New Splash Texts, March 2025 (#5345)
* Update splash-messages.ts 1

* Add Pokemon name splash text

This will display a random Pokemon's name, followed by an exclamation point (ex. "Bulbasaur!").

* Make Pokemon name splash message weighted

* Update splash-messages.ts

* Update splash-messages.ts

* fix trailing spaces

* Update splash-messages.ts

* Update splash-messages.ts

* Add splashes which use random Pokemon

* Update splash message tests

* Update splash-messages.ts

* Update splash-messages.ts

* Missing comma

* Fix length on test

It even says to do so whenever weight multipliers are adjusted...

* Update splash-messages.ts

* add missing prefix thing

* adjusted comment in splash_messages.test.ts

* Update splash-messages.ts

* fix blank line

* Add gender splash message code

This makes the specific April Fools splash message functional.
Also fixed a linter issue with the randomPokemon code.

* Update title-ui-handler.ts changed battles won fallback number to -1

* Update splash-messages.ts

* changed afd to 2 days

* Update splash_messages.test.ts

* Update src/data/splash-messages.ts

Co-authored-by: Jannik Tappert <38758606+CodeTappert@users.noreply.github.com>

---------

Co-authored-by: Madmadness65 <blaze.the.fireman@gmail.com>
Co-authored-by: Madmadness65 <59298170+Madmadness65@users.noreply.github.com>
Co-authored-by: Jannik Tappert <38758606+CodeTappert@users.noreply.github.com>
2025-03-27 19:56:26 -07:00
Wlowscha
5fdc133955
[UI/UX] Pokédex filters correctly show split passives (#5560)
* Pokédex filters properly take split passives into account

* Removed unused dependency
2025-03-27 03:26:03 +00:00
NightKev
db850c79cd
[Refactor] Moveset arrays can no longer hold null values (#4919)
* Pokemon movesets no longer allow `null` values

* Clean up all the bangs caused by movesets allowing `null`

* Pokemon movesets no longer allow `null` values

* Clean up all the bangs caused by movesets allowing `null`

* Fix merge issues

* Remove various unnecessary `?`

* Apply biome

* Fix `global-trade-system-encounter.ts`

* Fix merge issue

* Remove unnecessary parentheses

* Remove missed `?`

* Match formatting of `pokemon.ts`
2025-03-26 19:12:54 -07:00
Wlowscha
bba7c1610d
[UI/UX] Option to see Pokedex entry after catching wild Pokémon (#5538)
* pokedex option after catching

* Also changing catching for mystery encounters
2025-03-25 13:36:12 -07:00
Lugiad
f78015d757
[Localization] Catalan reactivation (#5555)
* Add files via upload

* Update settings.ts

* Add files via upload

* Add files via upload

* Update starter-select-ui-handler.ts

* Update utils.ts with Catalan

* Update loading-scene.ts
2025-03-25 13:06:24 -07:00
Wlowscha
7f72794d23
[UI/UX] Cancel button on Pokédex page to previously selected Pokémon (#5528)
* Removed redundant form index argument in show() of pokedex page

* Storing previous pokémon for cancel button
2025-03-23 22:03:11 -07:00
Wlowscha
37e51e9657
[Bug][Challenge][UI/UX] Exclude invalid starters when combining challenges (#5509)
* Filtering correctly when combining gen and monotype challenges

* Clean-up

* Apply suggestions from code review

Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>

* Always check requested form first

* Fixing Basculin

* Only check forms which are starter selectable

* Exclude form changes that are not triggered by an item

---------

Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
2025-03-24 02:40:17 +00:00
Matilde Simões
a1a6b0dd5a
[Bug] Nicknames not properly sanitized (#5537)
* Fix #5082: Nicknames not properly sanitized
When a player changes the name of the pokemon
to one that uses one of the following combination
of letters: "@c{}", "@s{}", "@d{}", "@f{}" and "$"
the game shows the name of the pokemon incorrectly in a battle.
Changes made:
- on message-ui-handler.ts file I updated the "showTextInternal"
function to get the original name of the pokemon
or pokemons (in case it's a double battle) saving it in a list
named "pokename" and change it in the text for their
correspondent placeholder which is saved in the list "repname"
(e.g "#POKEMON1" for the first pokemon and "#POKEMON2" for the
second pokemon). After the text is properly modified because
of the special characters ("@c{}", "@s{}", "@d{}", "@f{}")
the name of the pokemons is replaced to it's original value.
- on message-phase.ts file I updated the "start" function to use a
similar approach but only change the pokemon name to it's original
form after the "pageIndex" (which checks the index of the "$")
is updated, so the text is cut properly.
- on ui.ts file I updated the "showtext" function to use same
approach of the previous files, ensuring that the pokemon names
were only replaced back to their original values after all text
processing on "$" was completed.

* Replace `let` with `const`

---------

Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
2025-03-19 22:01:33 +00:00
Wlowscha
b1d494eadb
[UI/UX] [Bug] Icons for egg moves and passives show up even when not unlocked (#5540)
Reworked icons to more compact code
2025-03-19 03:22:52 +00:00
Dean
1d7f916240
[Refactor] Align ability display with mainline (#5267)
* Stop ShowAbilityPhase from ending until the bar has popped out

* Remove ability bar hiding from messagePhase

* Remove abilityBar reference from base Phase class

* Add HideAbilityPhase to hide ability bar after effects

* Add willSucceed to ability attrs

* Update AbAttrs and PostInitAbAttrs

* Update PreDefendAbAttrs

* Update postDefend, postMoveUsed, StatStage, postSetStatus, and PostDamage

* Update preAttack and fieldStat

* Partially implement postAttack

* Finish PostAttack

* Update PostSummon

* Update PreSwitchOut

* Update preStatStageChange

* Update PostStatStageChange, PreSetStatus, PreApplyBattlerTag

* Update postTurn and preWeatherEffect

* Update postWeatherChange

* Update postWeatherChange

* Update PostTerrainChange

* Update CheckTrapped and PostBattle

* Update postFaint

* Update PostItemLost

* Bug fixes from test cases

* Fix intimidate display

* Stop trace from displaying itself

* Rename to canApply

* Fix ability displays using getTriggerMessage

* Ensure abilities which are mistakenly shown are still hidden

* Fix ability bar showing the wrong ability with imposter

* Add canApply for imposter

* Update abilities using promises and `trySet...` functions

* Committing overrides changes is bad

* Document apply and canApply

* Update PreLeaveFieldAbAttr

* Remove boolean return type apply functions

* Remove redundant  assignment

* Remove ability display from abilities that shouldn't have it

* Move queueAbilityDisplay to battlescene

* Remove unused shown variable

* Minor changes

* Fix using id instead of battlerindex in queueAbilityDisplay

* Fix PostBattleInitFormChangeAbAttr displaying

* Prevent crashes in case an ability for a pokemon not on the field is shown

* Stop more abilities from displaying

* Move enemy ability bar to the right side

* Automatically reload bar if shown while already out, fix specific abilities

* Remove duplicate call to clearPhaseQueueSplice

* Remove ShowAbilityPhase import from ability.ts

* Update PostDefendTypeChangeAbAttr to use PokemonType

* Update PostSummonAddArenaTagAbAttr

* Minor changes
2025-03-16 02:51:02 +00:00
Sirz Benjie
408b66f913
[Misc][Refactor][GitHub] Ditch eslint for biome, and add a formatter (#5495)
Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
2025-03-09 14:13:25 -07:00
Sirz Benjie
60a4db7059
[Refactor] Refactor moves.ts part 1 (#5420) 2025-03-07 19:10:29 -06:00
David Yang
6181afc6d2
[UI/UX] Make left button also go back to run history from run info (#5474) 2025-03-04 00:40:04 +00:00
Xavion3
cabcfcbd39
[Balance] Make megas/max player pokemon unable to tera (#5469)
Co-authored-by: damocleas <damocleas25@gmail.com>
2025-03-02 21:22:37 -05:00
Wlowscha
6f686a05e3
[UI/UX] [Bug] Hiding tera button when toggling on stats mode (#5466) 2025-03-02 14:35:59 -05:00
Wlowscha
b50d2c0783
[Bug][UI/UX] Fix bug in Pokédex for Mothim and other niche cases (#5458) 2025-03-01 16:24:15 -05:00
Wlowscha
04ac5c3762
[Bug][UI/UX] Shiny button can cycle variants even if non-shiny form is uncaught (#5457) 2025-03-01 15:54:29 -05:00
Wlowscha
5c73a1ea46
[Bug][UI/UX] Starter select screen now looks for and displays form-specific abilities (#5454) 2025-03-01 15:43:18 -05:00
Wlowscha
d16197e950
[Bug] Gendered forms display correct information in Pokédex (#5452) 2025-02-28 22:34:49 -05:00
Wlowscha
b348626ec2
[Bug][UI/UX] Make candy icons show up again in starter select screen (#5451) 2025-03-01 01:00:56 +00:00
Wlowscha
7cc5f40af8
[Bug][UI/UX] Restore egg/tm move and passive icons when using filters in Pokédex (#5450) 2025-02-28 19:55:22 -05:00
Wlowscha
118bdcc49e
[Bug][UI/UX] Never select invisible containers in Pokédex (#5449) 2025-02-28 18:15:11 -06:00
Wlowscha
942bcacb56
[Bug][Hotfix] Restrict Use Candies option in the Pokédex during Shop (#5446) 2025-02-28 16:22:22 -05:00
Wlowscha
5941cfb001
[Bug][Hotfix] Fix bug with transferring all items (#5440) 2025-02-28 02:49:27 +00:00
Xavion3
9ff20af8b7
[UI] Make fight cursor tera icon while tera-ing (#5402)
Co-authored-by: damocleas <damocleas25@gmail.com>
Co-authored-by: Madmadness65 <blaze.the.fireman@gmail.com>
2025-02-27 23:13:35 +01:00
Xavion3
71f644c453
[UI] Tera type on summary screen (#5419) 2025-02-26 17:03:22 +00:00
Wlowscha
6e8a4b287c
[UI/UX] Pressing B on filter bar resets filters (#5404)
* Make dropdown update selection when reset to default

* Function to resect selection in filter bar

* Pressing B on filter now closes it or resets instead of going to top of starters

* Filter changes to starter select screen

* Method to get column at a given index in filter bar

* Specific reset behavior for caught filter in starter select menu

* Apply suggestions from code review

Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>

* Update src/ui/starter-select-ui-handler.ts

Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>

---------

Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
Co-authored-by: damocleas <damocleas25@gmail.com>
Co-authored-by: Madmadness65 <59298170+Madmadness65@users.noreply.github.com>
2025-02-26 01:05:39 -05:00
Wlowscha
7a9bede38d
[UI/UX][Bug] Fixing obsolete reference in Pokédex to filteredPokemonContainers #5415 2025-02-25 16:17:22 -05:00
Wlowscha
8cc5f650f3
[UI/UX] Reducing number of containers in the Pokédex (#5400)
* PokedexMonContainer now has a method to change species.

* Not setting tint to 0 in the container

* Using only 81 containers in Pokédex

* 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>
2025-02-25 08:54:48 -06:00
Wlowscha
b95bedce7a
[UI/UX] Pokedex - Ensure gender forms loop correctly with either button (#5387) 2025-02-24 20:45:45 -08:00
Wlowscha
4128d09a1d
[UI/UX] Pokedex - Page turning takes filters into account (#5372)
* Introducing list of indices of filtered mons to be passed to the Pokédex Page for scrolling

* Update pokedex-page-ui-handler.ts
2025-02-24 20:44:13 -08:00
Wlowscha
6857cd459c
[UI/UX] Pokédex - Fix candy filter (#5377)
* Hardcoding Pikachu to show 0 candies

* Looking at starterId to determine order in sort by candy
2025-02-24 20:43:53 -08:00
Wlowscha
cc7e1af827
[BUG] Base forms are now counted as caught when catching a battle form (#5385)
* Base forms are counted as caught when catching a battle form

* Ensuring that correct form shows up in Pokédex Index
2025-02-24 20:43:34 -08:00
Wlowscha
bd288ad862
[UI] Adding container to set transparency of optionSelectText (#5396) 2025-02-22 15:38:11 -08:00
Wlowscha
180a9cc054
[UI/UX] Pokedex - Separate shiny icons (#5371)
* Separate shiny icons

* Added forgotten access modifier
2025-02-21 14:09:00 -06:00
Wlowscha
97aeceab58
[UI/UX] Pokédex - Move Pokédex option up the starter select screen menu #5376 2025-02-21 03:26:50 -05:00
Xavion3
bec73fd8d3
[Bug][UI/UX] Remove redundant bgm bar (#5391) 2025-02-20 22:50:44 -08:00
Wlowscha
6a4c6f1c89
[UI/UX] Pokédex - Informative messages for level up moves #5388 2025-02-20 23:23:34 -06:00
Lugiad
073a36a33e
[Localization] Corrections move-touch-controls-handler local key names (#5365)
* Update move-touch-controls-handler.ts

* Update locales submodule

---------

Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
2025-02-21 10:49:57 +11:00
Xavion3
2d067ec7ce
[UI][Enhancement] Allow tera type choice on starter select (#5366)
* Allow tera type choice on starter select

* Make tera type actually apply in run

* Remove logging statement

* Add support for alternate forms
2025-02-21 07:23:08 +11:00
Lugiad
3a4c8eb92e
[UX/UI] [Localization] Summary removed Lv and ID No. as image texts (#5361)
* summary-ui-handler.ts Lv. and ID No. Text

* Remove Lv and ID No.

* Remove Lv and ID No.
2025-02-21 02:08:48 +11:00
Lugiad
c3045b58b6
[Localization] Localizable Lv UP pop-up bar (#5336)
* Update party-exp-bar.ts localizable

* Update party-exp-bar.ts
2025-02-21 02:06:12 +11:00
Lugiad
ed8ef48068
[Localization] Move Touch controls Localization (#5349)
* Update move-touch-controls-handler.ts localization

* Update move-touch-controls-handler.ts
2025-02-17 19:17:04 +01:00
Lugiad
db22354057
Update starter-select-ui-handler.ts Spnaish text size (#5356) 2025-02-16 22:30:27 -06:00
Sirz Benjie
4361aa089b
[Refactor] Replace integer holder with number holder (#5350)
* Replace integer holder with number holder

* Remove duplicate NumberHolder

---------

Co-authored-by: Madmadness65 <59298170+Madmadness65@users.noreply.github.com>
2025-02-16 15:31:46 -08:00
Xavion3
90d32b886c
[Feature] Tera Rework (#5233)
* 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>
2025-02-16 16:20:50 -05:00
Wlowscha
5b1950a1ae
[Bug][UI/UX] Setting proper labels in cost reduction dropdown filter #5316 2025-02-15 23:34:10 -05:00
Jannik Tappert
8555ef7cb7
[QOL] Make the name and formName readable for bigger sprites in pokedex (#5328)
* 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
2025-02-14 22:51:28 -06:00
Wlowscha
be0f3b2ab3
[Bug][UI/UX] Dex bug fixes 12 feb (#5307)
* 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
2025-02-12 19:14:22 -08:00
Wlowscha
7199aee9ad
[UI/UX] Fix showing form names and types (#5302)
* 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
2025-02-12 13:09:25 -05:00
Wlowscha
f087162eeb
Adding for text on main dex page (#5300) 2025-02-11 16:40:20 -06:00
AJ Fontaine
03011c4601
[Balance] Change IV Scanner to single stack (#5299)
* Make IV Scanner max stack 1

* Apply suggestions from code review

Co-authored-by: Sirz Benjie <142067137+SirzBenjie@users.noreply.github.com>

---------

Co-authored-by: Sirz Benjie <142067137+SirzBenjie@users.noreply.github.com>
Co-authored-by: damocleas <damocleas25@gmail.com>
2025-02-11 16:35:24 -06:00
AJ Fontaine
7fea8603f3
[Refactor] Add support for showing separate species form names (#5294)
* 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>
2025-02-11 15:41:22 -06:00
Wlowscha
60b27f4f62
[UI/UX] Pokedex updates batch (#5282)
* 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>
2025-02-10 23:32:32 -08:00
damocleas
f77bfc8367
Reapply [UI/UX] Show IVs on stats page of summary (#5172) #5291
This reverts commit 612e6a25c1.
2025-02-10 00:40:26 -05:00
damocleas
612e6a25c1
Revert "[UI/UX] Show IVs on stats page of summary (#5172)" (#5284)
This reverts commit 366c88517c.
2025-02-09 04:13:06 -05:00
AJ Fontaine
366c88517c
[UI/UX] Show IVs on stats page of summary (#5172)
* Show IVs on stats screen

* Clearer text and gold perfect IVs
2025-02-09 03:41:59 -05:00
Wlowscha
66c70b07a7
[UI/UX] In-Game Pokedex (#5083)
* 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>
2025-02-08 11:48:06 -05:00
Wlowscha
345329a31e
[UI/UX] Moving Daily Run option (#5273)
* Position of player count on title screen is set dynamically

* Moving daily run under "New run" option
2025-02-07 20:56:17 -07:00
Wlowscha
8d043a9f55
[Refactor] Replace all instances of integer with number (#5250)
* Replaced instances of "integer" with "number"
2025-02-04 17:56:13 -07:00
Wlowscha
4cc62c9d76
[UI/UX] Moving the "Run History" option to title phase (#5139)
Co-authored-by: damocleas <damocleas25@gmail.com>
2025-02-01 19:02:28 -07:00
Xavion3
6c845cc0d3
[Refactor] Add support for form and evolution specific passives (#5193)
* 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>
2025-01-29 21:35:01 -07:00
Wlowscha
974fe9f7d3
[UI/UX] Merged shiny and variant buttons in starter select menu (#5213)
* Merged shiny and variant options

* Modified test of starter-select ui to reflect button changes

* Removed unused graphics elements
2025-01-29 20:07:44 -07:00
AJ Fontaine
4e0b10769b
[Bug] [UI/UX] Allow arena flyout during target selection (#5208) 2025-01-29 19:25:58 -07:00
Bertie690
4c17ebd400
[Bug][Test] Instruct Bugfixes + More tests (#5134)
---------
Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
2025-01-29 19:19:05 -07:00
David Yang
33982c311e
[UI/UX] Allow viewing egg list from rewards screen (#5181) 2025-01-26 10:28:03 -07:00
AJ Fontaine
39283e373b
[UI/UX] Add sort by caught/hatched count to starter select (#5161) 2025-01-20 15:43:55 -07:00
Wlowscha
f551c51413
[UI/UX] Adding options to see mons with only one or only two cost reductions (#5045) 2025-01-20 10:01:42 -07:00
Dean
39b4d74e95
[Bug] Fix #5029 Memory leak when saving and exiting (#5128)
* 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>
2025-01-15 02:06:09 -07:00
Wlowscha
d2a3e4bb2d
[UI/UX] Looping cursor in save slot selection screen (#5109)
* Save slot selection allows looping

* Removed debug logs

---------

Co-authored-by: damocleas <damocleas25@gmail.com>
2025-01-15 00:23:38 -07:00
Wlowscha
7ae216f0d6
[UI/UX] Shop cursor freedom (#5110)
* Allowing cursor in shop to cycle horizontally

* Improved cycling of commands

---------

Co-authored-by: damocleas <damocleas25@gmail.com>
2025-01-14 23:18:24 -07:00
NightKev
0107b1d47e
[Refactor] Create global scene variable (#4766)
* 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>
2025-01-12 15:33:05 -08:00
Ori shalhon
d3fafa2770
[UI/UX] Add random selection option during starter select (#5075)
* Update submodule public/locales to the latest upstream commit

* feat: add random selection option during starter select

* move random selection behavior to seperate label

* Update public/locales submodule reference

* Remove debug console.log statement

* Update locales

* Update src/ui/starter-select-ui-handler.ts

Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>

* Update src/ui/starter-select-ui-handler.ts

Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>

* Update src/ui/starter-select-ui-handler.ts

Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>

* Update locales submodule

---------

Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
2025-01-10 20:10:52 -06:00
NightKev
29a079cfd3
Revert "[UI/UX] Refactor and enable seasonal splash messages (#5009)" (#5014)
This reverts commit 806585f1a6.
2024-12-19 16:04:12 -08:00
AJ Fontaine
806585f1a6
[UI/UX] Refactor and enable seasonal splash messages (#5009)
* Refactor and enable seasonal splash texts

* Update splash text test
2024-12-19 12:01:40 -08:00
Lugiad
cb719d99a5
[i18n] Update party-ui-handler.ts (#4986) 2024-12-16 03:34:14 -08:00
Jannik Tappert
22f4e747ab
Login now shows "beta" when playing on beta (#4973) 2024-12-06 17:48:55 -08:00
Mumble
2b59a53285
[Bug][UI] Fixes to Run History Logging (#4716)
* 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>
2024-12-01 19:48:43 +01:00
Daniel Pochert
fad29ffc51
[P1 Bug] Prevent crash from missing pokemon sprite (#4821)
* catch Sprite.play() errors in egg hatch phase

* catch more Sprite.play() errors causing crashes if sprite missing

* Add changes suggested by PigeonBar

---------

Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
Co-authored-by: Moka <54149968+MokaStitcher@users.noreply.github.com>
2024-12-01 19:07:48 +01:00
Moka
37b8c337e1
[UI] Add error message for too many eggs in starter UI (#4317)
* [qol] add missing error messages in starter UI

* remove locale change

* revert empty party message change

---------

Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
2024-12-01 18:58:44 +01:00
Brad Parbs
4d75d902d8
[Fix] Replace hardcoded party size limit with constant PLAYER_PARTY_MAX_SIZE (#4943) 2024-11-30 11:05:07 +01:00
Riley JM Young
75a50be3ce
[UI/UX] Added the (+) icon for newly non-shiny pokemon (#4920)
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>
2024-11-30 01:51:23 -08:00
Moka
5cc8013341
[UI/UX][QoL] Ask confirmation before disabling touchpad controls in settings (#4949)
* [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
2024-11-30 01:48:46 -08:00