* Add red color to the quantity if the item is at it's held limit
* Add shadow back to option text
* Attempt to fix transfer item crash and add tests for transferring items
* remove .js file extensions from test file imports
* Fix import paths for transfer-item.test
* add test coverage for battle-stat.getBattleStatName()
* add test coverage for battle-stat
* apply mockI18next() to status-effect.test.ts
* add testUtils jsdocs and optimize imports
* replace `-1` and with `RELEARN_MOVE` and `0` with `EVOLVE_MOVE`
* add documentation for RELEARN_MOVE & EVOLVE_MOVE
* Update src/data/pokemon-level-moves.ts
* feat: Add deployment workflow for beta environment
This commit adds a new GitHub Actions workflow file, deploy-beta.yml, which is responsible for deploying the application to the beta environment. The workflow is triggered on push and pull request events. It checks if the repository is 'pagefaultgames/pokerogue' before running the deployment steps. The deployment includes checking out the code, setting up the Node.js environment, installing dependencies, building the application, setting up SSH for secure communication, deploying the build on the server using rsync, and purging the Cloudflare cache. The deployment is only performed when the push event is triggered on the default branch.
It also changes the deploy.yml workflow to be triggered only when a release is generated.
* feat: Update deployment workflow for beta environment
* Update deploy-beta name
* chore: Update deploy-beta.yml to use 'f-fsantos:beta-environment' as the ref name
* chore: Update deploy-beta.yml to use 'f-fsantos:beta-environment' as the ref name
* chore: Update deploy-beta.yml to use '2595/merge' as the ref name
* chore: Update deploy-beta.yml to include event name in deployment message
* chore: Update deploy-beta.yml to use 'pull_request' event and '2595/merge' as the ref name
* chore: Update deploy-beta.yml to include SSH public key
* chore: Update deploy-beta.yml to include SSH public key
---------
Co-authored-by: Temps Ray <temps.ray@gmail.com>
* add unit tests for accounts
* only import from vitest (not node:test)
* resolve comments
* improve test coverage for accounts.updateUserInfo
* add test coverage for account.initLoggedInUser()
* code style improvements
* Adjusts bug bite functionality when stealing from opponent with three berry pouches
* Adjusts bug bite functionality when stealing from opponent with three berry pouches
* Adjusts bug bite to remove berry pouch preservation on opponent berries
* Remove Promise<Boolean> where unnecessary
Leftover code removed from previous testing of the EatBerryAttr class.
* Remove undefined check on chosenBerry
Co-authored-by: flx-sta <50131232+flx-sta@users.noreply.github.com>
* Update StealEatBerryAttr if-clause readability
Decrementing inside of an if-clause removed for readability. Changed to check: if count is 1, then remove modifier.
* Localization of StealEatBerryAttr battle message
* Fixes berry incrementing after improper adjustment to readability
* Fixes berry decrementing after improper adjustment to readability
* Update battle.ts
* Update src/locales/fr/battle.ts
Co-authored-by: Lugiad' <adrien.grivel@hotmail.fr>
* Update battle.ts properly
Incorrectly added localization in previous commit
* Remove unnecessary space
* Update src/locales/ko/battle.ts
I do not have experience with Korean, so this may need other review.
Co-authored-by: Enoch <enoch.jwsong@gmail.com>
* Rewrites EatBerryAttr to combine with StealEatBerryAttr
* Removes excess lines
* Revert and refactor StealEatBerry and EatBerryAttr
* Refactor for early returns instead of nesting
---------
Co-authored-by: flx-sta <50131232+flx-sta@users.noreply.github.com>
Co-authored-by: Lugiad' <adrien.grivel@hotmail.fr>
Co-authored-by: Enoch <enoch.jwsong@gmail.com>
* [Sprite] Gives Disguised form explicit identifier
`null` defaults to `disguised`, as is desired.
* [Sprite] Renamed Disguised form has exp sprites
* [Sprite] Add Busted Mimikyu to masterlist
* Rename static non-shiny front 778.png to 778-disguised.png
* static non-shiny front
* exp non-shiny front
* static non-shiny back
* exp non-shiny front
* static non-shiny back
* static shiny front
* static shiny front
* non-shiny icon
* exp non-shiny back
* shiny icon
* static var front
* exp non-shiny back
* exp shiny front
* exp shiny front
* exp shiny back
* static shiny back
* exp var front
* static var back
* Delete public/images/pokemon/variant/exp/778_3.png
* Delete public/images/pokemon/variant/exp/778_3.json
* exp shiny back
* exp shiny back
* rare icon
* epic icon
* exp var back
* static var front BUSTED
* static var back BUSTED
* exp var front BUSTED
* exp var back BUSTED
* [Sprite] Static Mimikyu Busted sprite fix
Fixes eyeholes on torso
* [Sprite] Exp Mimikyu sprite fixes
Fixes eyeholes on torsos
* Trim static shiny front sprite size
Addresses issue #2683
* [Sprite] Match static shiny Disguised w non-shiny
Addresses issue #2683
* Don't offer ball rewards past floor 189
* Remove balls from reward pool when you have max
* Change only applies to classic
* Function to weigh the player's balls
* Documented hasMaxBalls function
* More specific comment
* Giovannis Dialogue is no longer cut off in english
* Fixed the rest of the evil team dialogue
* Update src/locales/en/dialogue.ts
* Update French dialogue.ts
* Update French dialogue.ts
---------
Co-authored-by: Lugiad <adrien.grivel@hotmail.fr>
* Parental Bond basic implementation
* Parental Bond unit tests
* ESLint
* PBond AbAttr rework, documentation, and multi-target unit tests
* Update post-target move attribute logic
For Parental Bond interaction.
* AddSecondStrikeAbAttr now uses Constructor util
* Unit tests for PBond + Multi-Lens interaction
* Remove random damage spread in unit test
* Add null checks to PBond AbAttr
* Set player pokemon for unit test
* Fixed Post Target check to account for KO's
* Fix multi-strike moves applying effects at wrong times
* Test cases for updated effect timing
* Add Wake-Up Slap test case
* Fix Fury Cutter/Echoed Voice multi-hit interaction
* Fix Pay Day, Relic Song, and Fury Cutter (again)
* Add early stopping to multi-hit moves
* RecoilAttr now uses lastHitOnly
* Add faint check to last hit logic
* Test changes to change variant label color based on Tint
* Revert "Test changes to change variant label"
This reverts commit 0ad0f62930.
* minimal recovery changes
* Finalized recovery and implemented ShinyIcon
* add setY in MockSprite
* added back some unintentional removed code
* added shiny_icons
* Initial test for tier change
* implemented Shiny Icon full functionality
* slight setY change for non-Base starters
* Dry skin and ReceivedMoveDamageMultiplierAbAttr bug fix: first cut
* Dry skin and ReceivedMoveDamageMultiplierAbAttr bug fix: removed redundant branch
* Dry skin and ReceivedMoveDamageMultiplierAbAttr bug fix: reworded test cases that had typos anyway
* Dry skin and ReceivedMoveDamageMultiplierAbAttr bug fix: renamed PreDefendMovePowerToOneAbAttr (Disguise) to mention damage rather than power
* Dry skin and ReceivedMoveDamageMultiplierAbAttr bug fix: renamed powerMultiplier to damageMultiplier in ReceivedMoveDamageMultiplierAbAttr
* Add Eviolite with Unit Tests
* Localize for de, es, fr, it, ko, zh_CN, zh_TW
* Adjust German Localization
Co-authored-by: Jannik Tappert <38758606+CodeTappert@users.noreply.github.com>
* Adjust Italian Localization
* Change Multiplier Type
* Adjust Unit Test Import
* Change Constructor
* Make Unit Tests Localized
* Comment Out of Reward Pool
---------
Co-authored-by: Jannik Tappert <38758606+CodeTappert@users.noreply.github.com>
* waveIndex trainer team config generatoin is cursed
* Updated grunt pools
* Removed a comma that was bothering me
* Add locales for es, fr, it, pt, zh for translators
* Update src/locales/zh_CN/dialogue.ts
Co-authored-by: Yonmaru40 <47717431+40chyan@users.noreply.github.com>
* Fix lint issue
* Update src/locales/pt_BR/dialogue.ts
Co-authored-by: José Ricardo Fleury Oliveira <josefleury@discente.ufg.br>
* Last min team tweaks
---------
Co-authored-by: Yonmaru40 <47717431+40chyan@users.noreply.github.com>
Co-authored-by: José Ricardo Fleury Oliveira <josefleury@discente.ufg.br>
* Prevent lures from stacking different tiers
* Fix existing stacks of lures only applying once
* Revert "Fix existing stacks of lures only applying once"
This reverts commit c954a56b41.
* Document lure modifier code
* Added a bgmBar to show the name of the track once music is played
* Even more close to ability bar
* It now shows. And also shows already for a couple of them a readable name
* Now the queue actually works
* Create locales for bgmName (bgm-bar ui)
+ Most of the music has only Japanese and English names
But there are a number of tracks with official translations following OST commercialization
* Add i18n and use it to retrieve OST names (avoids a giga switch case)
+ A fallback key is implemented in the case of adding tracks not referenced in the translation files, its value being just the name of the bgm itself
* FormatText is now in Utils and not arena-flyout
BGM Names for non-localized music will be formatted to have capitalized letters and no _
* It is now a setting. It can be even changed mid fight
* Update src/ui/ability-bar.ts
* Apply suggestions from code review
Co-authored-by: Lugiad' <adrien.grivel@hotmail.fr>
* Update src/locales/de/bgm-name.ts
* Apply suggestions from code review
Co-authored-by: sodam <66295123+sodaMelon@users.noreply.github.com>
* Added the rest of the music names
* Changed PMD EoS to PMD ETH in german (Pokemon Mystery Dungeon Erkundungsteam Himmel)
* Due to feedback it is now "PMD ET-Himmel"
* Corrected the encounter theme names (and some missed trainer class names)
* Background is now a nicneslice. And it is at the top of the screen and above everything else
* The bar now scales with the text.
* Revert override
* Update src/locales/fr/bgm-name.ts
Co-authored-by: Lugiad' <adrien.grivel@hotmail.fr>
* It now only appears when V is pressed (in all but starter select)
* Cleared the cod eup
* Update src/locales/zh_CN/bgm-name.ts
Co-authored-by: Yonmaru40 <47717431+40chyan@users.noreply.github.com>
* Update src/locales/zh_CN/settings.ts
Co-authored-by: Yonmaru40 <47717431+40chyan@users.noreply.github.com>
* Update src/locales/ko/bgm-name.ts
Co-authored-by: sodam <66295123+sodaMelon@users.noreply.github.com>
* The bgmBar now appears in the pause menu instead.
* Should react better on settings change
* To be safe this required a reload now
* Update src/locales/fr/bgm-name.ts
Co-authored-by: Lugiad' <adrien.grivel@hotmail.fr>
* Update src/locales/fr/bgm-name.ts
Co-authored-by: Lugiad' <adrien.grivel@hotmail.fr>
* Write out pokemon mystery dungeon names in german
* Update src/locales/es/bgm-name.ts
Co-authored-by: GoldTra <162721984+GoldTra@users.noreply.github.com>
* Update src/locales/zh_CN/bgm-name.ts
Co-authored-by: Yonmaru40 <47717431+40chyan@users.noreply.github.com>
* Update src/battle-scene.ts
---------
Co-authored-by: Dakurei <maxime.palanchini@gmail.com>
Co-authored-by: Lugiad' <adrien.grivel@hotmail.fr>
Co-authored-by: sodam <66295123+sodaMelon@users.noreply.github.com>
Co-authored-by: Yonmaru40 <47717431+40chyan@users.noreply.github.com>
Co-authored-by: GoldTra <162721984+GoldTra@users.noreply.github.com>
* Corrected all English punctuation into Chinese in zh_TW
* Merged battle.ts and biome.ts translations into this branch
* abilitiy-trigger.ts and achv.ts
* battle.ts egg.ts fight-ui-handler.ts game-mode.ts
* a bunch of minor changes
* Fixed bug that legendary egg pity only increased by one if egg pulled out of legendary gacha
* Removed debug logs
* Added new unit tests. Fixed bug that sometimes common eggs do count as manaphy eggs.
* Update French ability-trigger.ts
* Update French fight-ui-handler.ts
* Update French menu.ts
* Update French settings.ts
* Update French egg.ts
* Update French modifier-type.ts
* Update modifier-type.ts
* Update modifier-type.ts
* Add unthaw to moves that are missing it
Add unthaw to all damaging fire moves
Add Status Effect overrides for easier testing
clean up comments and readd status cure before fainting
* implement Costar ability, refactor TraceAbAttr to be more generic
* format code, clean up comments
* Revert "Add unthaw to moves that are missing it"
This reverts commit 89494fa0c8.
* clean up comments, remove unused call
* ability now copies negatives changes as well
* separate PostSummonCopy into two different classes
* small refactor of copy ability attrs
* add costar to test suite
* remove abstract declaration from comments
* remove broken import statement
* actually fix broken imports
* add i18n calls
* add en keys to other locales and sort by alpha
* Add unthaw to moves that are missing it
Add unthaw to all damaging fire moves
Add Status Effect overrides for easier testing
clean up comments and readd status cure before fainting
* implement Costar ability, refactor TraceAbAttr to be more generic
* format code, clean up comments
* Revert "Add unthaw to moves that are missing it"
This reverts commit 89494fa0c8.
* clean up comments, remove unused call
* ability now copies negatives changes as well
* separate PostSummonCopy into two different classes
* small refactor of copy ability attrs
* add costar to test suite
* remove abstract declaration from comments
* remove broken import statement
* actually fix broken imports
* Localize hp phases and translate in Korean
* Change codeName for distinguish other HP restore message
* Update src/locales/fr/battle.ts
Co-authored-by: Lugiad' <adrien.grivel@hotmail.fr>
---------
Co-authored-by: 송지원 <jiwsong@gmarket.com>
Co-authored-by: Lugiad' <adrien.grivel@hotmail.fr>
* Fix - Avoids 'flashbanging' for players playing at x5 speed by making the transition time constant regardless of the speed chosen
* Forgot to delete a debugging value
* Hotfix: Override varaint tier if species was given. Fixed that some common egg where displayed as manaphy egg.
* Fixes wrong manaphy egg pulled stat count
* Create variant-tiers enum
* Added variant tier override property to the egg class
* Added hasVariants function to pokemon species
* Implement variant override logic to egg hatching phase
* Delete src/enums/variant-tiers
* Create variant-tiers enum
* Added egg shiny and variant overrides
* fixed egg comment in overrides.ts
* Added override logic to egg hatch phase
* Added species pool filter logic when global override is set
* Added global egg tier override logic
* Added global egg tier override
* Added global gacha pull count override logic
* Added global gacha pull count override
* Renamed egg hatch override
* Renamed egg hatch override
* Added gacha pull without voucher global override
* Renamed free gacha pull global override
* Added free gacha pull override logic
* Gacha pull count override name fix
* Bugfix
* restored defaults + savegame bugfix
* eggOptions added to parameterize eggs. Added option to buy eggs of the same species.
* Small Bugfix for same species egg generation
* Removed translation from translator
* Improved the isManaphyEgg() check
* Fixed manaphy egg hatch wave count
* Added comments to IEggOptions
* Added eggOptions for hidden ability and rare egg move override
* Merge Fix: Update egg-hatch-phase.ts
* Fixed manaphy rates back to 1/256 like in PR #2182
* Renamed override, same species egg unlocks after passive is bought. Added code as comment for custom shiny, HA and rare egg move rates.
* Merge fix. Moved enums.
* quick fix for the commented out code
* Fixed that you can't buy an egg over the 99 egg limit
* Fix that you can't buy eternatus
* Use already existing randSeedShuffle instead of my own function
* Eternatus buyable again. Changed overrides to be able to set common tier/variants. Moved getGuaranteedEggTierFromPullCount().
* Changed eggOption gachaType to sourceType. Replaced eggOption overrideRareEggMove with eggMoveIndex to exatly specify an egg move. Moved egg move unlock logic into the egg class. Simplified shiny calculation. Added same species egg type descriptor. Moved custom rates for same species egg code into egg.ts.
* Added 19 unit tests for eggs
* Changed unit test description
* Added higher rates for same species eggs
* Adjusted same species egg cost for 1-3 cost starters and HA rates
* Added legacy egg loading unit test. Fixed gachaType legacy value loaded from DB and legacy tier loading
* Legacy egg loading from server DB fixed
* Change Rouge Text Color to green, add black shadow behind name text
* Also added shader to cost text
* Update src/ui/modifier-select-ui-handler.ts
* Changed colors that didnt fit the contrast scaling thanks to @dakurai on discord.
* Removed a useless line and added a comment
* Apply suggestions from code review
Co-authored-by: Dakurei <maxime.palanchini@gmail.com>
* Revert changes
* Change colors for better contrast score (makes reading easier)
+ Corrects colors that were totally white when they should have been f8f8f8 like the others
* Created a new overlay especially for the shop
+ This one is an almost black color with a higher opacity. This makes the shop elements easier to read, as they blend much less into the UI underneath
* Add a filter on modifiers displayed in the shop
+ Add a getModifierBar() getter to retrieve the battle-scene bar directly
+ Modified the updateModifiers() method to filter the items displayed (modifiers held by Pokémon can be hidden)
+ Shop overlay hidding transition lengthened to the same duration as its showing
* Apply suggestion from @bennybroseph
* Apply suggestion from @brain-frog
* Fix - Removal of a warning in the generation of the typedoc for which my modification is responsible
---------
Co-authored-by: Dakurei <maxime.palanchini@gmail.com>
* localized dialouges in Hana region (1)
* localized elite-4 with chamion (in Hana region)
* localized other hana's trainer
* modified spaces after the sentence sign
Co-authored-by: Enoch <enoch.jwsong@gmail.com>
* Update src/locales/ko/dialogue.ts
Co-authored-by: Enoch <enoch.jwsong@gmail.com>
* Update src/locales/ko/dialogue.ts
---------
Co-authored-by: Enoch <enoch.jwsong@gmail.com>
* Make ability suppression fail if ability is already suppressed
* Document SuppressAbilitiesAttr
* Add gastro acid unit tests
* Fix rng broken unit test
* Fix it for both tests
* [Localization] Add missed manageNature entry in Korean for starter-select-ui-handler.ts
* [Localization] Add missed selectNature entry in Korean for starter-select-ui-handler.ts
Implements AddArenaTrapTagHitAttr for moves like Stone Axe and Ceaseless Edge.
Fixes chance for selfstatus moves.
Added Comments For AddArenaTrapTagHitAttr
* Added german dialogue for alder and kieran (lauro & jo)
* Added zh_CN and it
* Added Korean
* Added tradtional Chinese
* Added spanish
* Added french! (thanks dakurei)
* Bug fixes for spite, creates class to extend spite for eerie spell
* Comments for clarity, creates class to extend ReducePpMoveAttr
* Resolve reference error with AttackReducePpMoveAttr
* Shows move failed in a clearer way with showMoveText
* Localization of pp reduction moves
* Fixes issue of eerie spell reducing pp when ratio is 0
* Removes unnecessary phase replacement
* Remove partial implementation from eerie spell
* Adds locale entry for ppReduced to other languages
* Partially implemented Magnet Rise
* Implemented Magnet Rise
* Changed pokemon.ts so all TypeImmune tags work instead of just
MagnetRisen
* Magnet Risen is now removed when Gravity is used.
* Magnet Rise is ignored by Thousand Arrows
and Smack Down.
* Fixed a bug where status ground type moves
would also be ignored by Magnet Rise
* Added a message when Magnet Rise is removed
* Inserted TypeImmuneTag check in
getAttackMoveEffectiveness() for the AI
* Created a magnetRiseCondition separately
* Created a test for Magnet Rise
* Bug Fix in Magnet Rise test
* Created Magnet Rise test with Gravity
* Shifted the code from getAttackMoveEffectiveness
and apply into getAttackTypeEffectiveness instead
* Replaced onNextPrompt with doAttack
* Removed redundant runFrom(Phase)
* Replaced magnetRiseCondition with
battlerTags.every anonymous function
* Fixed import errors
* Added an undefined check for summonData
for TypeImmuneTag in getAttackTypeEffectiveness
* Replaced undefined-check with optional chaining
* feat: Add Reddit link to menu UI
Added a new menu option for Reddit with a corresponding handler to open the Reddit page in a new tab. This enhances the user experience by providing easy access to the Pokerogue subreddit.
* feat: Update wiki URL in menu UI
The wiki URL in the menu UI has been updated to "https://wiki.pokerogue.net/start" to provide a more specific starting point for users.
* Added nature selection menu
Added a nature selection menu to the starter selection, as you can way too easily skip over the nature you want when cycling.
All nature selections are furthermore persistent and stored in the starterData.
Those changes are compatible with the current save format, but will increase the size, so, in case the size of the save file can't be increased, further changes will be needed.
* Sorted nature selection into sub-menus
The nature-selection menu is now, instead of one large list, multiple smaller menus.
Those menus will appear once at least one nature of the appropriate kind has been collected.
Translations partially required.
* Update French starter-select-ui-handler.ts
* Added support for updated save structure
Adds compatibility with updated save-data structure which supports more persistent starter attributes
* more persistent start data
Abilities, Variants and Forms are now also saved.
* added gender to stored information
* fixed typedoc issues
* Starter Preferences now stored locally
* removed deprecated import (due last merge)
* Sub menus removed
---------
Co-authored-by: Lugiad <adrien.grivel@hotmail.fr>
* add dependency cruiser and fix all default errors
* create svg render of dependencies in command
* move configs to ts files, await font loading
* fix i18n
* fix dependencies...
* fix typedoc generation and tsconfig exclusions
* revert github-pages fix for another pr
* no-circular -> no-circular-at-runtime for type imports (future)
* [Localization] Modification some code about battle stat for localization.
* Corrections to failed generating typedoc docs.
* [Localization] Modification some code about battle stat for localization.
* Corrections to failed generating typedoc docs.
* Corrections to change localized key for battle stat and level change description.
* Deleted battle-stat.ts file in Deutsch locales.
* Fixed build failure
* Move unit test file into localisation folder from battle folder.
* Fixed localization key
* Fixed build failure
* Fix merge conflict
* Fix merge conflict again
---------
Co-authored-by: Tempoanon <163687446+Tempo-anon@users.noreply.github.com>
Co-authored-by: Temps Ray <temps.ray@gmail.com>
* chore: add translation for dialogue of cilan
* chore: add translation for dialogue of chili
* chore: add translation for dialogue of cress
* fix: fix spelling errors and make it compatible with eslint
* Add ALL option to transfer menu
It adds a new attribute to the PartyUiHandler to track whether the transfer is meant for all items of only for a particular one
It also introduces translations for PartyUiHandler, even though only the 'ALL' option can be translated for now.
* Use updated translation key for i18n for partyUiHandler:ALL
* Fix duplicated import
* Use optionCursor instead of optionCursorWithScroll to check if we need to transfer ALL