* Modify custom starters and added boss, biome and luck custom seed overrides
* Added form index to boss custom seed
* Fix circular dependency in daily-run.ts
* Review for PR 6248
- Use early returns
- Update TSDocs
- Use `getEnumValues` instead of `Object.values` for `enum`s
- Add console logging for invalid seeds
---------
Co-authored-by: Jimmybald1 <147992650+IBBCalc@users.noreply.github.com>
Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
https://github.com/pagefaultgames/pokerogue/pull/5712
* Created Double Edge testing for recoil damage on substitutes
* Changed the logic for substitute damage
* Made testing for the updated substitute logic
* Update test formatting
* Fixed error in damage logic
* Apply Biome
* Fix test file
* Apply suggestion and update test
* Remove obsolete workaround and console logs
---------
Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
* Update trainer-config.ts
* Update Starmobiles to use their mainline movesets
* Update Starmobile forms and Trainer Config
---------
Co-authored-by: damocleas <damocleas25@gmail.com>
* fix comment typos
* fix typos in variable/parameter/class names
* fix typos in object names
* fix typos in `console.log()` and i18n key use
* fix typo in filename `abstact-option-select-ui-handler.ts`
* fix casing of `@privateremarks` to `@privateRemarks`
* fix use of `cancelControllerChoice`
- Adjusted A Trainer's Test
- Adjusted The Expert Pokémon Breeder
- Adjusted Trash to Treasure
- Adjusted Weird Dream
- Reorganized Dark Deal
- Adjusted Weird Dream Test
* Protect rng now resets on new waves and fixed to look at all turns in the same wave.
* Added per-wave move history object to fix issues
@Jimmybald1 I added a commented out `console.log` in the protect code (L5797) for you to use for testing
* Added many tests
* Wave move history has to be looped in reverse
* Update src/data/moves/move.ts
Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
* Update src/data/moves/move.ts
Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
* comments
* Fixed forceEnemyMove references after merge
* Removed console log
Co-authored-by: Amani H. <109637146+xsn34kzx@users.noreply.github.com>
* Fixed test message
Co-authored-by: Bertie690 <136088738+Bertie690@users.noreply.github.com>
* Apply Biome
* Fix merge issues
* Fix Crafty Shield test
* Remove protect chance reset on wave change
* Fix merge issue
---------
Co-authored-by: Jimmybald1 <147992650+IBBCalc@users.noreply.github.com>
Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
Co-authored-by: Amani H. <109637146+xsn34kzx@users.noreply.github.com>
Co-authored-by: Bertie690 <136088738+Bertie690@users.noreply.github.com>
* Partially ported over pkty matchers (WIP)
* Cleaned up some more matchers
* Fiexd up matchers
* Fixed up remaining matchers
* Removed the word "matcher" from the pkty matcher functions
If we want them back we can always undo this commit and convert the other custom ones
* Added wip spite test
* Added `toHaveUsedPP` matcher
* Fixed up docs and tests
* Fixed spite test
* Ran biome
* Apply Biome
* Reverted biome breaking i18next
* Update src/typings/i18next.d.ts comment
* Fixed log message to not be overly verbose
* Added option to check for all PP used in pp matcher + cleaned up grudge tests
* Fixed up tests
* Fixed tests and such
* Fix various TSDocs + missing TSDoc imports
* [feature]Implemented needed parts for discard function from issue #4780:
-TryDiscardFunction in battlescene;
-Created a party discard mode button;
-Updated Transfer button in modifier-select-ui-handler to Manage items;
-Created tests for the discard function in test/ui;
-Added images for the new discard and transfer buttons to loading-scene;
-Created placeholder messages for discard feature in party-ui-handler;
Co-authored-by: Tiago Rodrigues <tiago.n.rodrigues@tecnico.ulisboa.pt>
* [Fix] Updated icon for dynamic messaging
* [Fix] Corrected legacy mode icons and adjusted double-battle button location
* [Fix]Adjusted button positioning and mapping after review. Mapping requires debugging.
* [Fix] Fixed visible pokeball in legacy mode and key mapping
* [Fix] Background fixes,manage menu is the only one affected by changes now
* Implement i18n keys
* [Fix] implemented most code optimizations and callbacks to the modified locales folder
* [Fix] Implemented 3 suggestions
* [Fix]improved/corrected test structure
Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
* [Fix] added functionality test for the discard button
* [Fix] added necessary comment
Co-authored-by: Bertie690 <136088738+Bertie690@users.noreply.github.com>
* [Fix] Implemented suggested changes in test/discard text prompt
* [Fix] Implemented UI suggestions and removed discard text confirmation
* [Fix] added missing imports
* Fix imports in test file
* [Fix] Implemented suggested cursor behavior and reworked test code
* [Fix] Corrected failed test
* [Fix] atempting to fix the test timeout issue
* [Fix] Undoing latest attempt
* [Fix] Implemented suggestions to fix broken tests
* Reviews
* [Fix] replaced icon images
* [Fix] Updated jsons to match new icons and removed pokeball icon from legacy mode
* Optimized new images
* [Fix] Fixed referenced bug and added similar confirmation box to release
* [Fix] Updated tests to handle the corfirmation box
* [Fix] Added back the accidentally removed changes
* [Fix]updated incorrect import path
* [fix] add description for the manageItemMode function
Co-authored-by: Bertie690 <136088738+Bertie690@users.noreply.github.com>
* Update src/ui/party-ui-handler.ts
Co-authored-by: Bertie690 <136088738+Bertie690@users.noreply.github.com>
* [Fix] corrected formating issue
---------
Co-authored-by: Mikhail Shueb <mikhail.shueb@tecnico.ulisboa.pt>
Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
Co-authored-by: Bertie690 <136088738+Bertie690@users.noreply.github.com>
Co-authored-by: damocleas <damocleas25@gmail.com>
Co-authored-by: Bertie690 <taylormw163@gmail.com>
Co-authored-by: Adri1 <adrien.grivel@hotmail.fr>
* Fixed move flags
* Disabled order up interactionn with sheer force
* Update src/data/moves/move.ts
* Removed order up test that no longer applies
shouldn't have been there in the first place
* Improve type signatures of serialized arena/battler tags
* Minor adjustments to tsdocs from code review
Co-authored-by: Bertie690 <136088738+Bertie690@users.noreply.github.com>
---------
Co-authored-by: Bertie690 <136088738+Bertie690@users.noreply.github.com>
* [Fix] Fix button overlap
* [Fix] Fix input field overlaps
* use getWidth to determine if label should be shortened
---------
Co-authored-by: Sirz Benjie <142067137+SirzBenjie@users.noreply.github.com>
Co-authored-by: damocleas <damocleas25@gmail.com>
* [Balance] End of turn triggers won't occur when you end a biome
* Add tests
* Move phase manipulation logic into `PhaseManager`
* Rename "biome end" to "interlude"
* Rename `TurnEndPhase#endOfBiome` to `upcomingInterlude`
---------
Co-authored-by: Wlowscha <54003515+Wlowscha@users.noreply.github.com>
* Added string utility package to replace util functions
* Changed string manipulation functions fully over to `change-case`
* Fixed missing comma in package.json
trailing commas when :(
* fixed lockfile
* Hopefully re-added all the string utils
* fixed package json
* Fixed remaining cases of regex + code dupliation
* Fixed more bugs and errors
* Moved around functions and hopefully fixed the regex issues
* Minor renaming
* Fixed incorrect casing on setting strings
pascal snake case 💀
* ran biome
* Rework promise handling to ensure no races
* Add delay to ensure pokeball opening animation can be seen
* Remove leftover debug statements.
Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
* Add tween bouncing pokeball to tweens that must complete for promise to resolve
* Fix typo in tsdoc
Co-authored-by: Bertie690 <136088738+Bertie690@users.noreply.github.com>
---------
Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
Co-authored-by: Bertie690 <136088738+Bertie690@users.noreply.github.com>
* Sinistea and Poltchageist line alt forms now available
* Unmark Poltchageist line as unobtainable, fix sprite key of alt forms
* Correct forms not being marked as starter selectable
* Reduce wild chance for Antique/Masterpiece forms
Instead of being 1/2 chance to get the Antique or Masterpiece forms, it is now only a 1/16 chance to get them.
---------
Co-authored-by: damocleas <damocleas25@gmail.com>
https://github.com/pagefaultgames/pokerogue/pull/6134
* Removed `sanitizeOverrides`
* Moved initialization code to its own file
* Hopefully fixed test contamination
* Actually listened to people now
* fixed the thingy
* Run stub setup on init because
* Update testFileInitialization.ts
Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
---------
Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
* Standardize filenames to kebab-case
Co-authored-by: pymilkmaiden <cassiopeiamahler56@gmail.com>
* Move script outside of public folder
* Move update_exp_sprites to scripts
* Add ls-lint to lint file and directory names
* Update lefthook.yml to skip merge / rebase on all pre-commit commands
---------
Co-authored-by: pymilkmaiden <cassiopeiamahler56@gmail.com>
* Fixed tests for Magic Guard, Battle phase; fixed innards out stuff
* Fixde magic guard aftermath
* fixed tests
* Fixed innards out
* fixed using sizzly slide instead of will o wisp to inflict burn
* ran boime
* Readd simulated oopsie
* Fix HJK test to use protect + docs and such
* Apply Biome
---------
Co-authored-by: Sirz Benjie <142067137+SirzBenjie@users.noreply.github.com>
Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
* [Balance] Add faint trigger to Battle Bond Greninja's form change
The form change functionality will now be slightly closer to Generation 7/8, as the Greninja will now revert from Ash form to Battle Bond form upon fainting.
* Change how the form change on faint is triggered
It is no longer directly handled by the faint phase, and is instead part of the abilities now, as more than Battle Bond Greninja revert via this method (Disguise Mimikyu, Power Construct Zygarde).
* Adjust Disguise test
* Fix return in applyChosenModifier
* Stop race condition in modifier-select-ui
* Fix null errors inside the tween's onUpdate method
* Minor cleanup of tween chains
* Minor cleanup of tween chains
* Minor fixup
* Updated enum utils to refuse non-enum values;
added strong typing on return values
* Moved Enum functions to own file; added type helpers for enums
* Cleaned up some code
* Fixed up tests
* Fix training-session-encounter.ts
* Fixed Transform and Imposter Bug
* Updated Comments
* Revised Comments
* Revised Changes on how tranformed pokemon are referenced to align with reviewer's suggestions
* Removed unused BattlerTag type for transform
* Removed addition of the transform tag to a pokemon in the PokemonTransformPhase
* Moved the check for whether Transform can be used within the TransformAttr class as suggested and removed uneccesary moveId check
* Consolidated if statement regarding isTransformed
* Removed overrides
* Added move condition to Transform + fixed up imposter target selection
* Condensed tests into 1 file + added more automated tests
This includes a couple regression tests for the fusion shenanigans
* Fixed comment
* Updated override typo for unimplemented methods
* Remove redundant parentheses
* Apply suggestions from code review
Co-authored-by: Bertie690 <136088738+Bertie690@users.noreply.github.com>
---------
Co-authored-by: Bertie690 <taylormw163@gmail.com>
Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
Co-authored-by: Sirz Benjie <142067137+SirzBenjie@users.noreply.github.com>
Co-authored-by: Bertie690 <136088738+Bertie690@users.noreply.github.com>
* Cleanup fight ui handler
* Add types to fight-ui-handler#show
* Fix poor logic in toggleInfo
* Make addInfoToggle capable of taking in multiple toggles
* Convert egg gacha type into an object literal
* Refactor egg gacha ui handler
* Apply kev's suggestions from code review
Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
* Condense Object.freeze inside of gacha-type.ts
---------
Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
* Update biome pools for wild Pokémon
`outputPools` has been run, correcting evolution delays for some Pokémon like Grapploct and Cosmoem, and generally adding spaces to all bracketed lines.
* Revert change to Pawniard line evo delays
Kingambit was evolving before Bisharp due to being an item evolution. The evolution delay for it is now back to level 64.
https://github.com/pagefaultgames/pokerogue/pull/6067
* Fix anger point always procing on multi-hit
when first strike was a crit
* Fix comment spacing
Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
* Rename PostDefendCritStatStageChangeAbAttr
---------
Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
https://github.com/pagefaultgames/pokerogue/pull/6016
* Refactored items and respective MEs
* Changed icon names, added bad berry juice, fixed locales
* Berry juice uses a number parameter again, allowing to convert from old saves without a migrator
* Updated encounter with correct sprite
* Update src/data/mystery-encounters/encounters/weird-dream-encounter.ts
Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
* Replaced bad berry juice icon
* Repacked atlas
* Re-export item atlas
---------
Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
Co-authored-by: Madmadness65 <blaze.the.fireman@gmail.com>
* Minor Attempt run phase rework to abstract logic to whole team
* Decoupled individual pokemon from run phase logic
* Formatting
* Completed run phase refactor implementation and updated tests
* Updated run phase to extend field phase instead of pokemon phase
* Removed unused phase decleration in tests
* Removed unecessary arg in turn start phase as refactor no longer needs it
* Cleaned up getPlayerField
* Made adjustments based on reviewer suggestions
* Reintrocuded calculateEscapeChance into AttemptRunPhase and removed run utils
* Resolve merge issues
* Minor TSDoc improvement to `BattleScene#getPlayerField`
* Moved early override check to top of calculateEscapeChance
---------
Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
* Split up Pokemon data types to own files
* Moved `AttackMoveResult` and `TurnMove` to own files
* Moved `customPokemonData` into types folder + fixed comments
* Moved files around + fixed stuff
* Moved `DamageResult` into new file
* Fixed imports
* ran biome
* Fix merge issue
* [WIP] Refactor ability attribute apply args
* [WIP] update ability signatures
* Update callsites in pokemon.ts
* Update callsites in moves.ts
* Update abattr callsites in move-phase
* Update abattr callsites in battler-tags
Also removed stat drop ability application from cancelling ME stat boost effects
* format with biome and remove cancelled from weather lapse
* Update abattr callsites in MEP
* Update callsites in turn-start-phase
* Update abAttr callsites in misc phases
* Remove latent test functionality
* update ability attribute callsite in shield dust test
* update abattr callsite in winstrate challenge encounter
* Fix some tests to mock proper methods
* Remove improper condition in mimicry's ability application
* Fix improper simulated check in moody's apply method
* Pass source to postApplyDamage in pokemon.ts
* [wip] fix cud chew tests
* Make cud chew consumption not subclass postTurnAbAttr
* Fix regression in flower veil
* Update trySetStatus test in pokemon to respect new return value for undefined
* Remove empty, unused file
* Fix blockCrit method broken in merge
* Fix unnecessary attr type cast in move phase
* Address typing issue in safeguard test
* Improve documentation and get rid of ts-expect-error directive
* Minor comment/TSDoc updates and fixes
* Apply suggestions from code review
Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
* Apply suggestions from code review
---------
Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
* Cleanup evolution phase
* Update evolution phase and types
* Refactor form change phase
* Simplify game-speed.ts and update evo phase
* Move delay in formChangePhase to first element
* Fix mock video object return methods
* Fix tween chain mock
* Add todo comment to mock phaser's tween manager
* Remove jarring flash when evolution begins
* Fix missing method chaining in evo phase
* Apply biome formatting
https://github.com/pagefaultgames/pokerogue/pull/5932
* Fixed modifier code, removed instances of "0 ID = no mon"
* corrected casing + dejanked seed tag
* Added test file, added overload to `findModifier` if given type predicate
* fixed test
* Revert predicate stuff for now
going in separate PR
* Fix id check syrup bomb test
Wasn't running phase due to being a turn end effect
* [WIP] Changed test to use destiny bond as proper regression
* Removed `instant` and `ignoreUpdate` parameters from `tryTransferHeldItemModifier`; fixed post-battle loot code to _not_ break type safety
* Fixed up tests
* Reverted unneeded changes
* Removed outdated modifier test
* Fix import
* Apply Biome
* Update battler-tags.ts
Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
* Update battler-tags.ts
Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
* Update arena-tag.ts
Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
* Update arena-tag.ts
Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
---------
Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
* Large Number Abbreviations opended for transaltion
* Large Number Abbreviations opended for transaltion
* Apply Biome
---------
Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
* Run `npm audit fix`
* Update Biome to 2.0.0
* Migrate `biome.jsonc` to 2.0
* Apply Biome and fix some suppression comments
* Fix some suppression comments and update config
* More config updates
Added at "error": `noUnusedLabels`, `noThisInStatic`
Changed `useDefaultParameterLast` from "off" to "warn"
Changed `noDocumentCookie` (from recommended) from "warn" to "off"
Changed `noExcessiveCognitiveComplexity` from "warn" to "info"
* Add a bunch of rules
* Apply Biome safe fixes
* Apply Biome unsafe fixes
* Remove irrelevant `useSelfClosingElements` rule
* Upgrade already followed rules to "error"
* Remove unnecessary type cast
* Disable fixer for `useDefaultParameterLast`
* Disable `useJsonImportAttribute` rule and revert changes
* Fix `mockImage.ts`
* ...there's a `@ts-nocheck` in this file
* Use whole-file lint suppression comment in `version_converter.ts`
* Add a couple comments to `biome.jsonc`
* Remove ESLint packages and GitHub workflow
* Implemented AI improvements:
The changes in the game AI were as follows ("pokemon.ts"):
- More accurately accounts for the Pokémon's actual moves and their
effectiveness against the player instead of only the pokemon type
- Introduced logic to decide when a Pokémon should be sacrificed or
switched based on its HP and speed.
Signed-off-by: Matilde Simões <matilde.simoes@tecnico.ulisboa.pt>
Co-authored-by: Fuad Ali <fuad.ali@tecnico.ulisboa.pt>
* Corrected grammar error in variable declaration in getMatchupScore
Signed-off-by: Fuad Ali <fuad.ali@tecnico.ulisboa.pt>
Co-authored-by: Matilde Simões <matilde.simoes@tecnico.ulisboa.pt>
---------
Signed-off-by: Matilde Simões <matilde.simoes@tecnico.ulisboa.pt>
Co-authored-by: Fuad Ali <fuad.ali@tecnico.ulisboa.pt>
Co-authored-by: Sirz Benjie <142067137+SirzBenjie@users.noreply.github.com>
Co-authored-by: damocleas <damocleas25@gmail.com>
Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
https://github.com/pagefaultgames/pokerogue/pull/5857
* Add test for forecast
* Fix PostSummonFormChangeByWeatherAbAttr
* Fix overrides in forecast test
* Remove a test whose trigger conditions can no longer happen
* Update src/data/abilities/ability.ts
Co-authored-by: Dean <69436131+emdeann@users.noreply.github.com>
* Fix missing tsdoc param
* Apply kev's suggestions from code review
Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
* Simplify PostSummonFormChangeByWeather's canApplyPostSummon
* Fix unused params that messed up after rebase
* Fix form change import
Messed up due to improper rebase
---------
Co-authored-by: Dean <69436131+emdeann@users.noreply.github.com>
Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
* Refactor evo conditions and descriptions
* Fix test
* Fix Shedinja
* Simplify Gimmighoul evolution
* Primeape and Stantler evolve by using their move 10 times
* Basculin white stripe evolves by taking 294 recoil damage
* Primeape and Stantler use modifiers for tracking
* Basculin uses modifier too
* Remove evo count from pokemon data
* No more evo counter data, Gallade/Froslass
* Fix allmoves import
* Clamperl
* Struggle shouldn't count for Basc recoil
* Change to nicer type
* Apply Benjie's suggestions
Co-authored-by: Sirz Benjie <142067137+SirzBenjie@users.noreply.github.com>
* Address formatting
* Undo new evolution changes
* Remove unused imports
* Fix speciesid
* Fixed up descriptions a little
* Change a key name
* Fix Gimmighoul
* Apply Biome
* Apply Biome unsafe fixes
* Review suggestions
- Convert `EvoCondKey` enum to `const` object
- Use early returns in `SpeciesEvolutionCondition#description`
and `SpeciesFormEvolution#description`
- Replace `!!x.find` with `x.some`
and `y.indexOf() > -1` with `y.includes()`
- Implement `coerceArray`
- Fix Shelmet evolution condition
checking for Shelmet and not Karrablast
- Remove unnecessary type casting in `battle-scene.ts`
* Remove leftover enforce func loop
* Fix circular imports issue
- `getPokemonSpecies` moved to `src/utils/pokemon-utils.ts`
- `allSpecies` moved to `src/data/data-lists.ts`
---------
Co-authored-by: Sirz Benjie <142067137+SirzBenjie@users.noreply.github.com>
Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
* Added `MoveUseType` and refactored MEP
* Fixed Wimp out tests & ME code
finally i think all the booleans are gone
i hope
* Added version migration for last resort and co.
buh gumbug
* Fixed various bugs and added tests for previous bugfixes
* Reverted a couple doc changes
* WIP
* Update pokemon-species.ts
Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
* Update pokemon-phase.ts
Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
* Fixed remaining tests (I think)
* Reverted rollout test changes
* Fixed command phase bug causing metronome test timeout
* Revert early_bird.test.ts
* Fix biome.jsonc
* Made `MoveUseType` start at 1
As per @DayKev's request
* Fixed a thing
* Fixed bolt beak condition to be marginally less jank
* Applied some review suggestions
* Reverted move phase operations
* Added helper functions complete with markdown tables
* Fixed things
* Update battler-tags.ts
* Fixed random issues
* Fixed code
* Fixed comment
* Fixed import issues
* Fix disable.test.ts conflicts
* Update instruct.test.ts
* Update `biome.jsonc`
* Renamed `MoveUseType` to `MoveUseMode`; applied review comments
* Fixed space
* Fixed phasemanager bugs
* Fixed instruct test to not bork
* Fixed gorilla tactics bug
* Battler Tags doc fixes
* Fixed formatting and suttff
* Minor comment updates and remove unused imports in `move.ts`
* Re-add `public`, remove unnecessary default value in `battler-tags.ts`
* Restore `{}` in `turn-start-phase.ts`
Fixes `lint/correctness/noSwitchDeclarations`
* Remove extra space in TSDoc in `move-phase.ts`
* Use `game.field` instead of `game.scene` in `instruct.test.ts`
Also `game.toEndOfTurn()` instead of
`game.phaseInterceptor.to("BerryPhase")`
* Use `game.field` instead of `game.scene` in `metronome.test.ts`
* Use `toEndOfTurn()` instead of `to("BerryPhase")` in `powder.test.ts`
* Convert `MoveUseMode` enum to `const` object
* Update move-phase.ts
Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
* Add `enumValueToKey` utility function
* Apply Biome
---------
Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
* Update `.dependency-cruiser.cjs` config file
* Update GitHub workflow
* Have `depcruise` check `test/` as well
* Remove circular import between `battle-anims.ts` and `battler-tags.ts`
* [Refactor] Create utility function `makeArray`
This replaces the `if(!Array.isArray(var)) { var = [var] }` pattern
* Replace `if` with ternary, rename to `coerceArray`
* Add TSDocs
* Improve type inferencing
* Replace missed `Array.isArray` checks
* Apply Biome
* Re-apply changes to phase manager
* Re-apply to `SpeciesFormChangeStatusEffectTrigger` constructor
Apply to new instances in test mocks
https://github.com/pagefaultgames/pokerogue/pull/5513
* Add prependToPhaseWithCondition and use it in SummonPhase to determine speed order
* Move logic to PostSummonPhase
* Add test base
* Pivot to using sort strategy instead
* Add and update tests
* Support priority ability activations
* Ensure priority abilities are still activated on switch in
* Add test for priority
* Update to use priority numbers instead of a boolean
* Add ability priorities to constructors
* Move sorting to BattleScene
* Rename phase file
* Update import
* Move application to applyPostSummonAbAttrs and stop assuming no other phases in queue
* Ensure all PostSummonPhases from encounters are added at the same time
* Switch to priority queue approach
* Ensure that zero/negative priority activations happen after postsummonphase
* Revert 07646fe (not needed due to stable sort)
* Always create separate ability phases for passive and use boolean instead of priority number when applying
* Add test for dynamic updates
* Add BattlerIndex import
* Clear queues for testing
* Benjie suggestion
* Split files
* Update import in battlescene
* Remove extra spaces added by VSCode
* Fix other conflicts
* Update PhaseManager
* Update to use PhaseManager
* Immediately start postsummons
* Fix test
* Fix BattlerIndex import
* Remove unused imports
* Fix postsummon application
* Make priority readonly
* Add abilityAttr.is methods
* [WIP] move modifier stuff around
* Untangle circular deps from modifiers
* Move unlockables to own file
* Untangle all circular deps outside of MEs
* Move constants in MEs to their own files
* Re-add missing import to battle.ts
* Add necessary overload for getTag
* Add missing type import in weather.ts
* Init modifier types and pools in loading-scene
* Remove stray commented code
* Apply kev's suggestions from code review
Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
---------
Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
https://github.com/pagefaultgames/pokerogue/pull/5924
* [UI/UX] "Stop trying to teach move" Defaulting to "No"
* [Test] setCursor to 0, 'Yes' to end learning move
* Move confirmUIMode to its own file in enums, add docs
---------
Co-authored-by: Sirz Benjie <142067137+SirzBenjie@users.noreply.github.com>
* Move game-mode to its own file
Reduces circular imports to 325
* Move battler-index to own file
Reduces circular deps to 314
* Move trainer-variant to own file
Reduces circ deps to 313
* Move enums in pokemon to their own file
* Move arena-tag-type to its own file
* Move pokemon-moves to its own file
* Move command to own file
* Move learnMoveType to own file
* Move form change item to own file
* Move battlerTagLapseType to own file
* Move anim enums to own shared file
* Move enums out of challenges
* Move species form change triggers to own file
Reduces circ imports to 291
* Update test importing pokemon move
* Replace move attribute imports with string names
* Untangle circular deps from game data
* Fix missing string call in switch summon phase
* Apply kev's suggestions from code review
Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
* Ensure ChargeMove's is method calls super
* Use InstanceType for proper narrowing
* Apply kev's suggestions from code review
Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
---------
Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
* [UI/UIX] Legendary UP Gacha timer
* Update egg-gacha-ui-handler.ts
Seems "fixedInt" was needed on the delay of the playTimeTimer so the game speed doesn't affect it.
* New timer container by damocleas.
* gacha_legendary.png second version from @damocleas
* Use phaser object chaining methods
---------
Co-authored-by: Sirz Benjie <142067137+SirzBenjie@users.noreply.github.com>
* Move phase types out of phase interceptor
* Create isXPhase method and add properties to each phase
* Replace instanceof phase with isXPhase
* Fix missing union types for phaseName
* Update doc comment in phase.ts
* Fix incomplete comment in encounter-phase
* Make phaseName as public and fix more uses
* Move phaseName property declaration before constructor in move anim phase
Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
* Rename isXPhase to is
---------
Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
Party pokemon will now gain EXP from EXP Share
even if all the active pokemon are fainted
---------
Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
* Rename `Abilities` to `AbilityId`
* Rename `abilities.ts` to `ability-id.ts`
* Rename `Moves` to `MoveId`
* Rename `moves.ts` to `move-id.ts`
* Rename `Species` to `SpeciesId`
* Rename `species.ts` to `species-id.ts`
* Rename `Biome` to `BiomeId`
* Rename `biome.ts` to `biome-id.ts`
* Replace `Abilities` with `AbilityId` in comments
* Replace `Biome` with `BiomeId` in comments
* Replace `Moves` with `MoveId` in comments
* Replace `Species` with `SpeciesId` in comments
Remove Expert Breeder trainer type from ME eggs
It effectively duplicated the text in the egg source text box,
and overflowed the visual text box as a result.
* [Test] Add/update test utils
- Add `FieldHelper` which has methods to mock a pokemon's ability
or force a pokemon to be Terastallized
- Add `MoveHelper#use` which can be used to remove the need
for setting pokemon move overrides by modifying the
moveset of the pokemon
- Add `MoveHelper#selectEnemyMove` to make an enemy pokemon
select a specific move
- Add `MoveHelper#forceEnemyMove` which modifies
the pokemon's moveset and then uses `selectEnemyMove`
- Fix `GameManager#toNextTurn` to work correctly in double battles
- Add `GameManager#toEndOfTurn` which advances to the end of the turn
* Update some tests
- Disable broken Good As Gold test
and add `.edgeCase` to Good As Gold
- Fix Powder test
- Update some tests to demonstrate new methods
* Create battle-info directory and move battle-info.ts to it
* Move player and enemy battle info to their own files
* Move subclass specific parts of constructor to subclass constructor
* Fixup mock gameobject methods to match phaser gameobject returns
* Make statOrder specific to subclass
* Create getShinyDescriptor function in utils
* Move icon construction to its own function
* Cleanup enemybattleinfo constructor to use chaining
* Make flyout exclusive to EnemyBattleInfo
* Move EnemyPokemon specific init Logic to its class
* Break up initInfo into different methods
* Remove hp bar segment dividers from base battle info
* Move setMini to pokemoninfo
* Breakup updateInfo into smaller parts
* Remove hp info handling from base updateInfo
* Use phaser object chaining methods
* Add some docs
* Add missing chain usage
* Use getShinyDescriptor in pokemon-info-container
* Minor cleanup of updatePokemonExp
* Fixup setSizeToFrame mock
* Ensure pokemon hp numbers are not visible during stat display
* Update src/utils/common.ts
Co-authored-by: Wlowscha <54003515+Wlowscha@users.noreply.github.com>
* Make summary-ui-handler use new shinyDescriptor method
* Remove `undefined` parameter pass
Co-authored-by: Amani H. <109637146+xsn34kzx@users.noreply.github.com>
* Address kev's review comments
Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
* Ensure hp number display fades in/out
* Ensure ribbon and caught indicator fade with stat display
* Update src/ui/battle-info/battle-info.ts
Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
* Move construction of stats and type icons to their own methods
* Make setPositionRelative return this
* Improve doc comment on paddingX param
* Fix mock sprite's setPositionRelative
---------
Co-authored-by: Wlowscha <54003515+Wlowscha@users.noreply.github.com>
Co-authored-by: Amani H. <109637146+xsn34kzx@users.noreply.github.com>
Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
* Allow gastro acid to suppress passives if main ability is unsuppressable
* Update gastro_acid.test.ts
* Update src/data/moves/move.ts
Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
* Add test to ensure unsuppressable main ability is not suppressed
---------
Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
* [Dev] Enable biome parsing of `pokemon.ts`
* Apply unsafe fixes
* Add + apply rule disallowing the use of the `integer` type alias
* Fix typo in comment; remove unnecessary `!!`
* Re-apply Biome after merge
* Re-apply Biome "unsafe" fixes after merge
* Fix import
* Add comment to `getFusionIconAtlasKey` too
* Splitting process input for menu into its own function
* Making logic for return button more expressive
* Breaking up processOptionMenuInput
* Extracting filterResult logic from processInput
* Inverting order of several conditional checks (if the function always returns after seeing the summary option, may as well check for it straight away...)
* Moving edge case for release option into processReleaseOption
* Splitting up options for when selectCallback is present
* Added some TODOs for later
* Extracted setOptionsCursor function
* Extracted updateOptionsWindow()
* Changing options so that each case is completely separate (almost)
* Added some TODOs
* Reorganizing option processing
* Fixed Baton Pass; logging for testing
* Fixed case of switching out by selecting the Pokemon command
* Clearing options when switching out
* Changed condition on switch for clarity
* Updating TODO
* Fixed options not clearing after item transfer
* Splitting up processing of transfer and move recall mode; ensuring that the cancel option works properly
* Breaking up processInput()
* Removed some redundant playSelect
* Cleaned up some TODOs
* Added private to all new methods
* 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>
* Add Deep Sea Scale & Tooth items
Also changes Clamperl's evolution method from gender-specific to requiring one of the Deep Sea items to be held.
* Move Deep Sea items to Great tier
Also gives every species stat booster item a `rare` boolean to split these items from the rest of the species stat booster items. Updated the existing tests accordingly to account for the split.
* Reduce Great tier species booster item weight
* Fix global scene on evolution conditions
* Merge branch 'beta' into deep-sea-items
* Change how the held item is found in evolution condition
It should no longer look through the entire party's modifiers when seeing if Clamperl is eligible to use a Linking Cord.
* Fix wrong type being boosted
---------
Co-authored-by: damocleas <damocleas25@gmail.com>
Co-authored-by: Sirz Benjie <142067137+SirzBenjie@users.noreply.github.com>
* [BUG] Fixes#5010 Roar and Whirlwind don´t display a fail message
Roar and Whirlwind should now display a fail message when
used against a trainer with only one pokémon left
* Apply suggestions from code review made by SirzBenjie
* Fixed IVs of trainers using the Battle Seed.
* Renamed the randSeedInt functions that use the Battle Seed to randBattleSeedInt functions
* Incorrectly used this in common
* Fixed tests that were still calling the old function name
---------
Co-authored-by: damocleas <damocleas25@gmail.com>
Co-authored-by: Bertie690 <136088738+Bertie690@users.noreply.github.com>
Co-authored-by: AJ Fontaine <36677462+Fontbane@users.noreply.github.com>
Co-authored-by: Dean <69436131+emdeann@users.noreply.github.com>
Co-authored-by: lxy-lxy-lxy <55084073+lxy-lxy-lxy@users.noreply.github.com>
Co-authored-by: Xavion3 <xavion333@gmail.com>
Co-authored-by: Sirz Benjie <142067137+SirzBenjie@users.noreply.github.com>
Co-authored-by: Lylian BALL <131535108+PyGaVS@users.noreply.github.com>
Co-authored-by: Jimmybald1 <147992650+IBBCalc@users.noreply.github.com>
* Fix firstTarget calculation when a target was fainted
* Update type annotation in applyMoveEffects
Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
---------
Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
* fix revelation dance using the type of the illusion instead of the actual type
* fix other move that might get the illusion type as well
* fix other move that might get the illusion type as well
* fix abilities that might get the illusion type as well
* fix illusion icon in party ui handler
* Fix TSDoc for `Pokemon#getTypes`
* Remove now-unnecessary changes to `.getTypes()` calls
Revert `overrides.ts` changes
* Replace `|| false` with `!!`
---------
Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>