* 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>
* 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>
* 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>
* 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
* 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
* 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>
* 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
* Add neutralizing gas arena tag
* Add PostSummonAddArenaTagAbAttr
* Add PreLeaveField attr for neutralizing gas
* Remove old SuppressFieldAbilitiesAttr
* Fix ability suppression logic
* Add basic tests
* Reapply onGain abilities when neutralizing gas ends
* Untodo ability remval test
* Add more tests
* Modify gastro acid to call onLose attributes when suppressing
* Properly cancel abilities on switch in
* Add documentation
* Remove partial designation
* Update locale key usage
* Reactivate the last source's other abilities when it becomes the last remaining
* Fix loop vars
* Add access modifiers for SuppressAbilitiesTag
* Minor changes
* Move test to reflect new location
* Remove promises from abattr function signatures
* 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>
* full implementation of supreme overlord + test
* removed unused import
* changed documentation since Battle.playerFaints is not used in supreme overlord
* Update faint-phase.ts
* changed supreme overlords power calculation function and adjusted tests
* added changes to Last Respects too
* added playerFaints to SessionSaveData to make the counter saveable
* Apply Kev's suggestions
Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
* Reset enemy faint counter per battle
* Re-mark supreme overlord as partial
* added automated test case
* moved playerFaints reset to resetArenaEffects
* removed resetEnemyFaintCount() function since it is unused
---------
Co-authored-by: Sirz Benjie <142067137+SirzBenjie@users.noreply.github.com>
Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
* Replace Title BGM with custom BGM by Firel
Also added descriptions for the battle scene and arena's getBgmLoopPoint methods.
---------
Co-authored-by: damocleas <damocleas25@gmail.com>
* 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>
* the fix... will maybe write a test later
* ughh
* made a test
* moved aorund function
* Update src/test/moves/camouflage.test.ts
Co-authored-by: PigeonBar <56974298+PigeonBar@users.noreply.github.com>
* lalal
---------
Co-authored-by: frutescens <info@laptop>
Co-authored-by: PigeonBar <56974298+PigeonBar@users.noreply.github.com>
* Add simulated support for Arena Tag application
* Add type inference to ArenaTag.apply
* Fix screen tests
* back to `any` again lol
* fix missing spread syntax (maybe)
* updated docs
* named imports for `Utils`
* Refactor `MovePhase` to improve readability/maintainability
Add tsdocs/comments all over
Mark all functions/fields with public/etc
Fix multi-hit moves called from Metronome/etc, fixes#3914
Remove unused function `BattleScene.pushMovePhase`
Don't use failure text as a condition for move success
A move defining potential failure text doesn't mean it failed
Replace relative imports with absolute imports in `battle-scene.ts`
Change some fields from optional to default `false`
* Fix Whirlwind test
* Fix linting
* Adds Expert Breeder Mystery Encounter to the game
* add achievement for Breeders in Space and remove redundant tests
* rename to Expert Pokemon Breeder
* remove unintentional test code
* remove unintentional test code
* test fix with breeder rename
---------
Co-authored-by: ImperialSympathizer <imperialsympathizer@gmail.com>
Co-authored-by: Jannik Tappert <38758606+CodeTappert@users.noreply.github.com>
* add .github/workflows/mystery-event.yml
* update mystery-event.yml
* mystery encounters: resolve review comments:
Lost at Sea:
-fix typo in handlePokemonGuidingYouPhase function
Mysterious Chest:
- remove obsolete commented code
mystery-encounter.ts
- remove unused `onDone` field from MysteryEncounterBuilder
* fix typo in CanLearnMoveRequirementOptions
* remove redundance from Pokemon.isAllowedInBattle()
* chore: jsdoc formatting
* fix lost-at-sea tests
* add fallback for biomeMysteryEncounters if empty
* lost-at-sea-encounter: fix and extend tests
* move "battle:fainted" into `koPlayerPokemon`
* add retries to quick-draw tests
* fix lost-at-sea-encounter tests
* clean up battle animation logic
* Update and rename mystery-event.yml to mystery-events.yml
* Update mystery-events.yml
* Fix typo
* Update mystery-events.yml
Fix debug runs
* clean up unit tests and utils
* attach github issues to all encounter jsdocs
* start dialogue refactor
* update sleeping snorlax encounter
* migrate encounters dialogue to new format
* cleanup and add jsdocs
* finish fiery fallout encounter
* fix unit test breaks
* add skeleton tests to fiery fallout
* commit latest test changes
* finish unit tests for fiery fallout
* bug fix for empty modifier shop
* stash working changes
* stash changes
* Update src/data/mystery-encounters/encounters/fiery-fallout-encounter.ts
Co-authored-by: flx-sta <50131232+flx-sta@users.noreply.github.com>
* Update src/test/utils/overridesHelper.ts
Co-authored-by: flx-sta <50131232+flx-sta@users.noreply.github.com>
* Update src/test/utils/overridesHelper.ts
Co-authored-by: flx-sta <50131232+flx-sta@users.noreply.github.com>
* Update src/test/utils/overridesHelper.ts
Co-authored-by: flx-sta <50131232+flx-sta@users.noreply.github.com>
* Update src/test/utils/overridesHelper.ts
Co-authored-by: flx-sta <50131232+flx-sta@users.noreply.github.com>
* Update src/data/mystery-encounters/encounters/fiery-fallout-encounter.ts
Co-authored-by: flx-sta <50131232+flx-sta@users.noreply.github.com>
* Update src/data/battle-anims.ts
Co-authored-by: flx-sta <50131232+flx-sta@users.noreply.github.com>
* nit updates and cleanup
* Update src/data/mystery-encounters/encounters/fiery-fallout-encounter.ts
Co-authored-by: flx-sta <50131232+flx-sta@users.noreply.github.com>
* Apply suggestions from code review
Co-authored-by: flx-sta <50131232+flx-sta@users.noreply.github.com>
* add jsdocs and more cleanup
* add more jsdoc
* add the strong stuff encounter
* add the strong stuff encounter and more unit tests
* cleanup container length checks in ME ui
* add retries to tests
* add retries to tests
* fix trainer wave disable override
* add shuckle juice modifier
* add dialogue bug fixes
* add dialogue bug fixes
* add pokemon salesman encounter and affects pokedex UI display
* add unit tests for pokemon salesman
* temp stash
* add offer you can't refuse
* add unit tests for offer you can't refuse encounter
* remove unnecessary prompt handlers
* add tests for disabled encounter options
* add delibird-y encounter
* add delibird-y encounter
* add absolute avarice encounter
* finish absolute avarice encounter
* add unit tests and enhancements for item overrides in tests
* fix unit test
* cleanup absolute avarice PR
* small bug fixes with latest sync from main
* update visuals loading for safari and stat trainer visuals
* update visuals loading for safari and stat trainer visuals
* update a trainer's test encounter and add unit tests
* add Trash to Treasure encounter
* clean up trash to treasure encounter
* clean up trash to treasure encounter
* add berries abound encounter
* start clowning around encounter
* first implementation pass at clowning around
* add unit tests for clowning around
* add unit tests for clowning around
* clean up ME unit tests
* clean up unit tests
* update unit tests
* add part timer and dancing lessons encounters
* add unit tests for Dancing Lessons and Part-Timer
* reordered biome list and adjusted redirection for project and labels
* Add Weird Dream encounter and slight reworks to Berries Abound/Fight or Flight
* adjusting yml to match new labels
* fix yml whoopsie
* Expanded 'Weird Dream' banlist and fixed a bug with the BST bump range
* adds Winstrate Challenge mystery encounter
* small cleanup for winstrates
* add unit tests for Winstrate Challenge
* fix pokemon not returning after winstrate battle
* commit latest beta merge updates
* fix ME null checks and unit tests with beta update
* fix ME null checks and unit tests with beta update
* MEs to pokerogue beta branch
* test dialogue changes
* test patch fix
* test patch fix
* test patch fix
* adds teleporting hijinks encounter
* add unit tests for Teleporting Hijinks
* small change to teleporting hijinks dialogue
* migrate ME translations to json
* add retries to berries-abound.Option1: should reward the player with X berries based on wave
* add missing ME dialogue back in
* revert template changes
* add ME unique trainer dialogue to both dialogue jsons
* fix hanging comma in json
* fix broken imports
* resolve lint issues
* fix flaky test
* balance tweaks to a few MEs, updates to bug superfan
* add unit tests for Bug-Type Superfan and clean up dialogue
* Adds Fun and Games mystery encounter
* add unit tests for Fun and Games encounter
* update jsdoc
* small ME balance changes
* small ME balance changes
* Adds Uncommon Breed ME and misc. ME bug fixes
* Update getFinalSessionData() to collect Mystery Encounter data
* adds GTS encounter
* various ME bug fixes and balance changes
* latest ME bug fixes
* clean up GTS Encounter and add unit tests
* small cleanup to MEs branch
* add BGM music names for ME music
* bug fixes and balance changes for MEs
* ME data schema updates
* balance changes and bug fixes to MEs
* balance changes and bug fixes to MEs
* update tests for MEs
* add jsdoc to party exp function
* dialogue updates and test fixes for MEs
* dialogue updates and test fixes for MEs
* PR suggestions and fixees
* stash PR feedback and bugfixes
* fix all tests for MEs and cleanup
* PR feedback
* update flaky ME test
* update tests, bug fix MEs, and sprite assets
* remove unintentional console log
* re-enable stubbed function for Phaser text styling
* handle undefined introVisuals properly
* PR feedback from NightKev
* disable Uncommon Breed tests
* locales updates and bug fixes for safari zone
* more PR feedback and update field trip with Rarer Candy
* fix unit test
* Change how reroll button gets disabled in Modifier Shop Phase
* update continue button text logic
* Update src/ui/modifier-select-ui-handler.ts
Co-authored-by: flx-sta <50131232+flx-sta@users.noreply.github.com>
* fix money formatting and some nits
* more nits
* more nits
* update ME tsdocs with links
* update ME tsdocs with links
---------
Co-authored-by: Felix Staud <felix.staud@headwire.com>
Co-authored-by: flx-sta <50131232+flx-sta@users.noreply.github.com>
Co-authored-by: ImperialSympathizer <imperialsympathizer@gmail.com>
Co-authored-by: InnocentGameDev <asdargmng@gmail.com>
Co-authored-by: Mumble <171087428+frutescens@users.noreply.github.com>
* add `hasTag` to arena
* fix flying type damage calculation for grounded states
Before the grounded state would make e.g. electric moves no more very-effective. This is invalid
Co-authored-by: Tristan D Gant <tgant2017@outlook.com>
* add tests for gravity v. ground v. electric
* Update src/test/arena/arena_gravity.test.ts
fix typo
Co-authored-by: Adrian T. <68144167+torranx@users.noreply.github.com>
* use `arena` instead of this.scene.arena
* use `const arena = this.scene.arean` instead of destructoring
* Apply suggestions from code review
Co-authored-by: Mumble <171087428+frutescens@users.noreply.github.com>
* fix es-lint
---------
Co-authored-by: Tristan D Gant <tgant2017@outlook.com>
Co-authored-by: Adrian T. <68144167+torranx@users.noreply.github.com>
Co-authored-by: Mumble <171087428+frutescens@users.noreply.github.com>
* TS: enable strict-null
* fix battle-scene.ts
* fix voucher.ts
* adapt more files to strict-null
* adapt more files to strict-null ( 2)
* adapt ability.ts to strict-null
* adapt `arena.ts` to strict-null
* adapt TagAddedEvent constructor to strict-null
* adapt phases.ts.to strict-null
* adapt status-effect.ts to strict-null
* adapt `account.ts` to strict-null
* adapt `configHandler.ts` to strict-null
* adapt `ability.ts` to strict-null
* adapt `biomes.ts` to strict-null
* adapt `challenge.ts` to strict-null
* adapt `daily-run.ts` to strict-null
* adapt `nature.ts` to strict-null
* adapt `pokemon-forms.ts` to strict-null
* adapt `tainer-names.ts` to strict-null
* adapt `types.ts` to strict-null
* adapt `weather.ts` to strict-null
* adapt `egg-hatch-phase.ts` to strict-null
* adapt `evolution-phase.ts` to strict-null
* adapt `pokemon-sprite-sparkle-handler.ts` to strict-null
* adapt `evolution-phase.ts` to strict-null
* adapt `game-mode.ts` to strict-null
* adapt `utils.ts` to strict-null
* adapt `voucher-ui-handler.ts` to strict-null
* adapt `src/ui/unavailable-modal-ui-handler.ts` to strict-null
* adapt `src/ui/ui.ts` to strict-null
* adapt `src/ui/ui-theme.ts` to strict-null
* adapt `src/ui/title-ui-handler.ts` to strict-null
* adapt `src/ui/time-of-day-widget.ts` to strict-null
* adapt `src/ui/text.ts` to strict-null
* adapt `src/ui/target-select-ui-handler.ts` to strict-null
* adapt `src/ui/settings/settings-keyboard-ui-handler.ts` to strict-null
* adapt more files to strict-null (3)
* adapt more files to strict-null (4)
* adapt more files (mostly tests) to strict-null (5)
* adapt more files to strict-null (6)
* adapt more files to strict-null (7)
* Update `src/data/pokemon-evolutions.ts` for strict-null
Partial update `src/data/pokemon-species.ts` for strict-null
* adapt more files to strict-null (8)
* adapt more files to strict-null (9)
* Strict some more nulls (still a few errors remaining)
* adapt rest of the files to strict-null (9)
* fix tests (check for null instead of undefined)
* repalce a lot of `??` with bangs
And added TODO notice as usual
* fix more tests
* all tests pass now
* fix broken game-loop after trainer battle
add some console.warn for missing cases and falling back to default
* remove guessed fallback from utils.rgbHexToRgba
* add TODO for this.currentBattle = null
* adjust getPokemonById() return to include `null`
* fix compilation errors
* add test for pokemon.trySetStatus
* `chanceMultiplier` shouldn't be optional
* allow `null` for currentPhase
* adjust hasExpSprite logic for no keymatch found
* reduce bang usage in account.updateUserInfo()
* fix new strict-null issues after merge
* fix `strict-null` issues in dropdown.ts
and sand_spit.test.ts
* fix egg-gacha
* adapt gul_missile.test.ts to strict-null
* fix move.ts strict-null
* fix i18n.ts strict-null
* fix strict-null issues
* fix baton_pass test
after accidentially breaking it
* chore: fix compiler errors
* revert accidential changes in baton_pass.test.ts
---------
Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>