* 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
* Force multi-hit moves to hit once if they are against an immune type
* Add test for multi-hit attacks against immune types
* Document MultiHitAttr
* Tiny change
* Wording fix
* Use shortcut methods in unit tests
* Fix leftover modifications from METRONOME testing
* Reorganize SAP SIPPER tests
* Fix extra imports
* Add generic to util holders to reduce manual type casting
* implement protean and libero abilities
* remove use only once per turn trigger
* Revert Attack Attribute Conditions back to requiring unused vars
* Remove conditional before invoking type change ability
* update protean to properly trigger and skip certain moves
* remove some dangerous typecasts
* revert autoformatting changes
* not all autoformatting changes were reverted
* Revert "Add generic to util holders to reduce manual type casting"
This reverts commit 3ee7f1d5ff.
* change some variable names
* remove incorrect comment
* update abilities so they use gen 9 logic
* fix typescript error from missing Terrain type
* update gameManager switchPokemon to match other menu utilities
* add test cases for protean and libero
* Fix type immunity given by abilities only applying to attacking moves
* Add tests for type immunity granted by abilities
* Use Sap Sipper as base for testing
* Fix type-immunity abilities activating on self-targeted status moves
* Add tests for self-targeted moves on mons with type-immunity abilitiies
* Volt absorb tests
* added test for spikes + forceOpponentToSwitch
* fix conditional for intimidate in a double if there is only 1 pokemon available on our side
* fix variable naming and ternary condition
* added a fallback to clear the conditionalQueue if it's a new turn
* speed up tests by skipping LoginPhase
* replace forceBypass with bypassFaint flag
* add another path alias for src/test
* make form override work for the whole party instead of the first pokemon
* add tests for all abilities that are touched by this change
* remove unnecessary overrides from tests
* move SpeciesFormChangeTimeOfDayTrigger outside arena reset logic
* remove alll resetMock calls, rename it to test
* Fix type immunity given by abilities only applying to attacking moves
* Add tests for type immunity granted by abilities
* Use Sap Sipper as base for testing
* golden chart for perfect IVs
The IVs chart is now golden in case all IVs are perfect.
A few overrides have also been added to make testing easier:
- the opponents IVs can be overridden
- the color can be modded via the window.perfectIVsChartColor variable.
* added perfectIVsChartColor to window
* added changes as requested
- removed global variable
- removed chart versatility
- changed color
* Ability Bar can now be localized. In a way that pokemonName abilityName and passive string can be ordered freely
* Update src/locales/ko/fight-ui-handler.ts
Co-authored-by: returntoice <dieandbecome@gmail.com>
* Update src/locales/de/fight-ui-handler.ts
* Update src/locales/de/fight-ui-handler.ts
---------
Co-authored-by: returntoice <dieandbecome@gmail.com>
* [Localization] Add localization of message when pokemon fainted in battle phase.
* Correction of Deutsch localization
* [Localization] Add localization of message when pokemon fainted in battle phase.
* Correction of Deutsch localization
* added test for spikes + forceOpponentToSwitch
* added conditionalQueue && pushConditionalPhase to fix entry hasard and abilities at post summon
* reduce timeout time to default