https://github.com/pagefaultgames/pokerogue/pull/6178
* Replaced all instances of `game.scene.getXXXPokemon()!`
inside tests with `game.field.getXXXPokemon()`
* Fixed tests
* Fixed oblivious test
* Fix Grudge test
* 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>
* Introducing held items
* Pokemon class can add held items
* Example of applyHeldItemAttrs
* Introducing a PokemonItemManager class
* Moving away from HeldItemAttr
* Attempt at incorporating the new framework in modifier-type
* Changes
* More changes
* Splitting up methods in select-modifier-phase.ts
* Newrefactors of reward-pool-manager.ts
* New refactors of select-modifier-phase.ts
* Extracted logic from modifierSelectCallback
* Moved some files around, added many held item ids
* Introduced HeldItemReward class
* Introduced AttackBoosterReward
* Introduced AttackBoosterRewardGenerator
* Removed unused file
* Select modifier phase tentatively working with new held items
* Working leftovers in new style
* Moved modifier-bar to its own file
* Held items now show up in summary
* Added some suggestions
* Implemented more suggestions
* Splitting up held-item file
* Fixing various imports
* Created items folder
* Shell bell
* Converted White Herb
* HeldItem .apply() methods do not really need the stack as input, just the pokemon
* Made heldItems public in heldItemManager
* Update modifier bar is now called in the apply of consumable held items
* Refactored parameters passed to .apply() methods; introduced generic .applyHeldItems() function; all HeldItems classes specify an ITEM_EFFECT
* Lucky egg and Golden egg
* Converted wild pokemon pool to held item rewards
* Temporary stopgap on maxUpgradeCount to avoid game crashing on modifier select ui handler
* Changed held-items.ts to held-item-id.ts and renamed id object accoridngly
* Added reviver seed
* Simplified HeldItemReward
* Added effect of reviver seed (leveraging consumable logic)
* Remove InstantReviveModifier
* Added Stat Boost items; generic name and description in HeldItem class
* Added Crit Boost held items, King's Rock, Focus Band and Quick Claw
* Added Mystical Rock
* Added Shell Bell, Soul Dew
* Added multi lens and wide lens
* Added Baton and Golden Punch
* Baton switch logic in party ui handler now using held item
* Partial implementation of item steal items
* Using held items in some places
* Using phaseManager
* Tracking forms in held item manager
* Shuckle Juice and Old Gateau
* Using phaseManager
* Removed a bunch of modifiers
* Fixed shell bell in ability.ts (why is it here?)
* Changed BattleScene.removeModifier and pokemon.loseHeldItem
* Making some held items unstealable and unsuppressable
* Refactored most of battle-scene.ts with held items
* Added soundName to HeldItem (possibly useless)
* Reworked various effects that steal items
* Refactored Baton logic
* Reworked most entries in Modifier Types
* pokemon.getHeldItems now uses heldItemManager
* Added Evolution Tracker as held item
* MBE is always untransferable
* Improved item transfer
* Fixed types in held item manager
* Various fixes
* Fixed types in shuckle juice and old gateau
* MBE achievement now tracks held items
* Removed AttackTypeBoosterModifierRequirement for MEs
* Fixed Pickup
* Fixing (most) berry usage
* Using Berry held items in move.ts
* Split up vitamins from the rest of stat boosting items
* Fixed form change trigger after merge conflicts
* Added some utility functions to check if an item fits a list of items/categories, or to filter out which held items fit
* Fixed delibirdy encounter
* Various fixes
* Reworked EnemyPokemonConfig to include a HeldItemProperty object (to feed to the heldItemManager). Updated Dark Deal ME
* More various fixes; introduced isMaxStack(item) method to heldItemManager
* Updated modifier-bar.ts
* Converted Berries Abound encounter
* Converted The Strong Stuff encounter
* Fixed Slumbering Snorlax encounter, overrideItems of heldItemConfiguration can deal with items with 0 stack
* Preliminary changes to some MEs
* Changes to the summary ui handler
* Converting to held item pools
* Fixed evo tracker
* Moved many data types for held items to a dedicated file; introduced held item pools for item generation
* Fixed some MEs
* Added function to assign items from a given configuration
* Fixed held item evolution condition
* Fixed some ui handlers
* Fixed select-modifier-phase
* Some changes to modifier files
* Daily run items are generated within the new system
* Held item generation for enemies follows the new scheme
* Fixed init-modifier-pools.ts
* Held item overrides now use the new system
* Removed unused getOrInferTier function (was only used by thief and covet)
* Fixed shady vitamin ME and some HeldItem files
* Updated various MEs. HeldItemManager can now generate a configuration from its items.
* Converted most MEs, introduced some more utility functions and methods
* Replaced ModifierTier with RewardTier
* Fixed some rogue inputs
* Held item pools take a single pokemon as input, set weights to 0 for max stack items
* Restored various changes to held item pool generation; distinguishing target of the generation from the party
* Pools can now take a HaldItemConfigurationId without weights; set up table of item tiers; used custom pools in Clowning Around ME
* Fixing some phases
* Fixed several bugs related to accessing and visualizing held items
* Fixed position of enemy modifier bar
* Fixed berries, removed some debug messages
* Vitamins max stack temporarily set to 30
* Luck upgrades work correctly again (maybe)
* First steps to port tests to the new system
* Form change items work correctly when selected in battle
* Introducing helper functions for a modifier migrator; PokemonItemMap now uses pokemonId
* Renamed file with item migrator functions
* Restored missing strings
* Shuckle juic and Old gateau are not instance dependent
* Simplified HeldItemData
* Migrator utils include shuckle juice
* Introducing trainer items
* Enemy tokens are now also trainer items
* Converted most of modifierTypes
* Fixed various MEs; removed findModifier from battle-scene
* Removed most uses of globalScene.applyModifiers
* Removed more functions from globalScene; changed lure weight function
* Updated a variety of files
* Split out X_accuracy, fixed trainer-item-manager
* Fixed expert breeder ME
* Replaced updateModifiers with updateItems
* Removed modifiers from saveData
* Trainer item rewards are generating during runs, added properly to the scene
* Items (including held items) are saved and loaded correctly.
* Fixed several trainer item names and descriptions, plus various issues with item generation
* Restored override file
* Added icons to tokens
* Fixed Dire Hit starting stack
* Using Pokemon.getMoveType() in generation of attack type boosters
* Test for dire hit; ensuring that lapsing trainer items are added from config at full stack
* Eviolite does not apply to G-Max forms
* Changes to various item tests
* Some still broken tests
* More changes to tests but still failing
* Fixed evo tracker item
* Moved allHeldItems and allTrainerItems definitions to data-lists
* Renamed modifier-bar and moved to ui files
* Fixed held item when pokemon not passed
* Remove `package-lock.json` added by merge issue
* Add review comments as `TODO`s for now
---------
Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
* [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>
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>
* 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
* Add isPartner method to trainer class
* Ensure force switches cannot pull pokemon from the wrong trainer
* Add override for battle type
* Fixup tests and broken assumptions
* Make move fail override semi-invuln check
Bandaid fix because move effect phase does not allow for the move to fail if all of its conditions fail
* Restore overrides
* Apply kev's suggestions from code review
Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
* Fix illusion test battle type invocation
* Update struggle and healer tests to use battleStyle
---------
Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
* 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>
* Move LearnMoveSituation to its own file
* Remove unused selfStatLowerMoves array
* Move all-moves to its own file
* Move TurnMove interface to its own file
* move AiType to its own file
* Move PokemonMove to its own file
* Move DamageCalculationResult interface to its own file
* Move fieldPosition to its own file
* Move hit-result to its own file
* Move DamageResult to its own file
* Move SpeciesWildEvolutionDelay to its own file
* move EvolutionItem to its own file