* Remove Promises from moves and abilities
* Fix `PostSummonPhase`
* Apply suggestions from Kev's review
* More suggestions
Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
* Cleaning up some updated functions
* Remove Promise from `addEnemyModifier`
+ fixes to some extraneous `await`s
* Test fixes
* Fix missing import in revival blessing test
Co-authored-by: innerthunder <brandonerickson98@gmail.com>
* Add back applyPreLeaveFieldAttrs
Attribute was removed due to absence in a cherry-pick
* Make applyPostApplyEffects work
* Fix move-effect-phase.ts applications
Some applyX methods were missed in the cherry pick commit and were still returning functions instead of running the function themselves
* Mock `BattleScene.addPokemonIcon` in tests
* Revival Blessing condition and tests
* Incorporate Despair-Games/poketernity/pull/48
* Break up imports
* Remove enemy modifier chance dead code
* Remove async from applyAbAttrsInternal
Stray async leftover from merge
* Remove docs and comments referencing promises
* Add `user.setTempAbility` to transform phase
---------
Co-authored-by: innerthunder <brandonerickson98@gmail.com>
Co-authored-by: innerthunder <168692175+innerthunder@users.noreply.github.com>
Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
Co-authored-by: PigeonBar <56974298+PigeonBar@users.noreply.github.com>
* Add quash logic for single targets
* Multi-squash power
* Update MovePhase constructor
* Start searching from front of phaseQueue instead of weather
* Use findPhase instead of looping to search
* Basic test case
* Test for failure on a already moved target
* Speed order test
* Fix speed test comment
* Fix ForceLastAttr to properly respect speed order
* Respect trick room in quash turn order
* Test for respecting TR
* Add comments, fix var name
* Allow for quashed speed ties
* Avoid reapplying if a move is already forced last
* Spacing
* Quash does fail in a single battle despite this not being documented anywhere
* Add move text
* Update move.ts (readability)
Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
* Use globalScene
---------
Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
* Add setAbility method to pokemon.ts
* Edit SwitchAbilitiesAttr to use setAbility
* Change AbilityGiveAttr to use setAbility
* Rename setAbility to be more accurate
* Fix AbilityCopyAttr
* Fix AbilityChangeAttr
* Fix Transform
* Fix imposter
* Fix PostDefendAbilityGiveAbAttr
* Actually fix imposter
* Actually fix transform
* Fix CopyFaintedAllyAbilityAbAttr
* Fix Trace
* Fix PostDefendAbilitySwapAbAttr
* Add tests for skill swap
* Add tests for doodle
* Add tests for entrainment
* Add tests for role play
* Add test for simple beam
* Add test for transform
* Add test for imposter
* Add tests for mummy
* Add tests for trace
* Add tests for wandering spirit
* Consider legendary weather when changing ability
* Ensure that passives are not (re)applied when main abilities change
* Add general ability swap test cases
* Fix test name
* Add NoMidTurnActivationAttr
* Remove NoMidTurnActivationAttr from illusion
* Remove extraneous call to triggerWeatherBasedFormChanges
* Fix primal weather clearing
* Change "MidTurn" to "OnGain"
* Change NoOnGainActivationAttr to a field in PostSummonAbAttr
* Add passive support
* Remove redundant parentheses
Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
---------
Co-authored-by: damocleas <damocleas25@gmail.com>
Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
* 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>
* Fixed bug when setting tint of eggs for egg move filter
* Form text is properly hidden when going to filters
* Displaying level up moves of alternate forms
* Offsetting form cycle button when uncaught text is shown
* Pokedex buttons now appear on mobile touchpad
* Hotfix to prevent "Normal" form to showing the text
* Preventing filter texts from showing gibberish
* Moving cursor to input text when pressing on filter
* Introducing method to get full obtainable unlocks for a given species
* Filtering obtainable unlocks in dex
* Buying eggs in dex does not crash the game
* Shiny icon does not overlap with luck text for evolutions
* Shiny is maintained correctly when cycling through different pages
* Displacing text elements to avoid overlap for localized form names
* Checking starter caughtAttr in addition to pokemon caughtAttr
* Correctly displaying form names
* Fixed bug which displayed wrong form types
* Handling unobtainable forms
* F button does not show up if there is only one obtainable form
* Added tests for snad spit, seed sower and perish body; for all three, the test checking if the ability triggers after the user faints is failing.
* Adding .bypassFaint() to the three abilities, tests passing
* Apply suggestions from code review
Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
* Removed incorrect test for perish song
* Added tests for perish body when one mon already has the perish song tag, both ways
* Changed ability behavior to pass tests
* Removing superfluous conditional
---------
Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
* Support for localization of regional form names
* Show names of regional and other forms where appropriate
* Add form name to evolution screen
* Remove formKey parameter
* Update docstrings
* More SpeciesFormKey
Co-authored-by: Wlowscha <54003515+Wlowscha@users.noreply.github.com>
* Clean up
* Fix inconsistent key name
---------
Co-authored-by: Wlowscha <54003515+Wlowscha@users.noreply.github.com>
* fully implemented spectral thief
* Update to structure of implementation
* line commented target.scene.queueMessage since message does not exist yet
* changed documentation
* added move-trigger.json key
* removed line comment since key was added to english locales
* removed console.log messages used for debugging
* refactored move-trigger key to race with @muscode13
* added more automated tests
* github tests failed
* removed line comment since key was added to english locales
* refactored move-trigger key to race with @muscode13
* added more automated tests
* github tests failed
* solved conflicts
* Update src/data/move.ts
Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
* removed .partial()
* corrected spectral thief name
* changed target.scene to globalScene
* changed comments
---------
Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
Co-authored-by: Sirz Benjie <142067137+SirzBenjie@users.noreply.github.com>
* Add unit tests for magic bounce
* Add reflectable tag and apply to moves
* Add BattlerTagType for Magic Coat
* Add more magic bounce tests
* Add magic bounce test for sticky web source
* Mostly working magic bounce and magic coat
* Fix missing negation on mayBounce check
* Move onto the next target after bouncing
* Fix magic bounce accuracy check test
* Finish magic bounce impl
* Make spikes use leftmost magic bounce target
* Add magic coat tests
* Add MagicCoatTag to battler-tags.ts
* Add final set of tests for Magic Coat / Bounce
* Fix semi invulnerbale check in hitCheck
* Fix magic bounce semi-invulnerable interaction
This was based on smogon's incorrect handling of this situation
* Magic bounce should not bounce anything during semi-invulnerable state
* Activate mirror armor interaction test
Also update i18 locales key to `magicCoatActivated`
* 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>
* added the ability to ignore held items at stat calculation
* integer -> number in src/field/pokemon.ts
* added tests from @SirzBenjie
* Update test
* Fix test filename
* added turnorder to tests
* added tera_blast changes and tests
---------
Co-authored-by: damocleas <damocleas25@gmail.com>
Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
* Add Valentines event data
* Event ends Feb 21 not March 21
* Event starts Feb 11 12:00 UTC for testing on beta
* Oops I meant February 10
* Add Luvdisc +3 Luck Boost
* Added Applin to round out the total pokemon and because I know people are going to be confused why it isn't here if they've actually read in gen 8 (any readers in chat?)
---------
Co-authored-by: Jannik Tappert <38758606+CodeTappert@users.noreply.github.com>
Co-authored-by: damocleas <damocleas25@gmail.com>
* beginnings of implementation of mirror armor
* logging some new changes
* fixing edge cases
* adding changes for sticky web and other features of mirror armor
* adding changes for sticky web and other features of mirror armor
* adding more unit tests and cleaning up notes
* Update src/data/ability.ts
Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
* Update src/data/ability.ts
Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
* Update src/data/ability.ts
Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
* Update src/data/ability.ts
Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
* using arena tags source id variable
* updating submodule pointer for locales
* small change
* Update src/data/move.ts
commit Kev fix (minor flip for consistency)
Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
* fix import
* Use global scene
* Update tests
---------
Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
Co-authored-by: Madmadness65 <59298170+Madmadness65@users.noreply.github.com>
Co-authored-by: Madmadness65 <blaze.the.fireman@gmail.com>
* Working ui, missing logic, logs
* Filtering starters by name is working
* Filtering moves and abilities correctly
* Opening starter page on button.action
* Removed ugly leftover from title
* Added container for text with different colors and titles
* Showing all species in pokedex with no decorations and shinies
* Filtering includes extra forms; moving cursor from filterText to starters does not reset scrollIndex; toggle button for decorations
* Can access evolution page
* Abilities are colored properly (still missing info overlay)
* Biome filter; displays for baseStats, biomes and evolutions
* Removed lockable select ui handler, replaced by changes to standard ui handler.
* Evolutions are selectable from list and displayed properly
* Keeps shiny variant, gender and form when switching to evolutions; show ability descriptions; properly displaying sprites for megas and other forms
* Listing prevolutions and base forms
* Fixed filtering of baby forms with no biome assigned; Caught filter is ALL by default
* Highlighting text filters, resetting all filters when starting up
* No error messag when cursor on uncaught species, showing sprite again after toggling stats
* Simplified Pokemon Scan logic, accepts separate words as input
* Dynamically resizing ability box, showing ability description on first hover. Removed debug logs.
* Removed some more debug messages.
* Filter bar can adjust cursorOffset and x padding
* Fixed some type definitions
* Fixed more warnings; added localization strings in the pokedex scan overlay.
* Fixed fatal bug due to using Object.keys
* Removed debug messages
* Added try catch construct to prevent error that was breaking reloadHelper tests
* Added filter for starters / evolutions
* Biome filter option for uncatchable mons
* C and V buttons snap cursor to filters
* Changing background to make instructions visible
* Can buy candy upgrades through pokedex
* Displaying base stats as bars in an overlay
* Including baby forms among uncatchable mons
* Including evolutions when filtering by biome
* Working logic for select ui handler with skips and scroll
* -Pokedex page showing biomes from prevolutions; displaying correct biomes for forms of Rotom, Burmy and Lycanroc
* Fixed bug in base stats overlay
* Regional forms display name of region in evolutions and prevolutions
* Better messages for evolution conditions
* Showing proper descriptions for menu
* Adding sound effects to menu, and pokemon cry when opening page
* Changing menu colors to textstyle options supporting a legacy version.
* Fix to getStarterSpeciesId to work with all-unlocks files
* Passing a TextStyle to option select ui handler to allow for shadowed text
* Fixed bug of overlapping labels in text filters
* Fixed bug with supportHover and skipped indices in option select ui handler
* Localization of pokemon number label
* Fix to pokemon number localization
* Fix to pokemon number localization
* Adding some comments, removing useless elements
* More cleanup
* Removed candy upgrade instructions from evolved pokemon; attempting to buy candies from evolution now gives error sound instead of crashing the game
* Attempting to exit from filter text is now allowed if current option is empty
* UI changes to make dex pages work in legacy style
* Pokemon name shown while in alt form is no more capitalized
* Handling uncaught pokemon
* Showing types on Pokémon page
* Introducing globalScene everywhere
* Showing evolution requirements in message box
* Displaying form changing items; now using pokemonFormChanges to only show reachable forms
* Playing correct cry
* Pokemon cry in setSpeciesDetails
* Left and right buttons to turn previous or next pokedex page
* Cleaned up "last" from this.species; turning pages now preserves memories of unlocks
* Pokerus cursor is now treated as decoration
* Correctly displaying prevolutions for Pikachu and Gholdengo
* Uncaught forms can be cycled through (with black sprite and no options available)
* Filtering by moves now shows icons to distinguish egg and tm moves
* Added icons for passive abilities
* Added icons to legacy mode; fixed bug that caused game to hang when switching to or from legacy mode
* Pokedex entries are accessible through party screen
* Adding sort criteria for consistency with starter select screen
* Added options to cost reduction filter for consistency with starter select screen
* Updating optionSelectUiHandler to simplify logic and fix bug of autocomplete showing options incorrectly
* Adding Pokedéx option in starter select screen
* Prevolutions are shown properly again; battle forms are considered caught as long as the base form is caught
* Small fixes to evolution and form change descriptions
* Reworked evolutions menu to incorporate condition descriptions
* Moving evolution condition description logic entirely to the SpeciesEvolution class
* Removed extra Miraidon and Koraidon forms
* Properly showing evolution text for Dunsparce and Maushold
* Displaying uncaught forms for Dudunsparce and Maushold properly
* Displaying correct forms for Urshifu and Toxicitry after evolution
* Cleared up comments
* Updating test for tandemaus evolution
* Localized labels for egg moves and abilities
* Added button to show back sprites
* Back to showing only caught battleforms; added dexForDevs option
* Merging shiny and variant buttons
* Uncaught battle forms options are shown in dark text, like evolutions
* Showing proper gender for mons that can only be (or have only caught in) one gender
* Apply suggestions from code review
Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
* Removed unused options from base-stats-overlay
* Fixed import of BaseStatsOverlay
* Displaying form-specific TMs properly; adjusting for passives rework
* Removed logging messages
* resetting containers to prevent memory leaks
* Updating integer to number in pokedex
* Implemented suggestion
* Removed some stray comments
* Fixed logic for cursor coming down from filter bar
* Transition from filters to dex box now works in a visually pleasing way
---------
Co-authored-by: Lugiad <2070109+Adri1@users.noreply.github.com>
Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
Co-authored-by: damocleas <damocleas25@gmail.com>
* [Balance] Update base exp values to gen 9
* [Balance] Updated Bloodmoon Ursaluna and Ultra Necrozma with exp formula
---------
Co-authored-by: Jimmybald1 <147992650+IBBCalc@users.noreply.github.com>
Co-authored-by: damocleas <damocleas25@gmail.com>
* Fix super-niche edgecase with mega gengar and telekinesis
* Update TelekinesisTag doc comment
* Remove comment about mega gengar as this update fixes it
* Added new AbAttr that triggers whenever a pokemon leaves the field
* Use leaveField everywhere
* Changing order for PreSwitchOutAbAttr
* Don't clearEffects when catching in a mystery encounter
* Attempts to make new overrides for testing
* New options in overrides
* Implemented tests for Desolate Land
* Fixing instruct test to not read turnData of fainted mon
* Removed post faint clear weather
* Apply suggestions from code review
Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
* Has_passive_ability override now turns off passives if set to "false", defaults to "null"
* Updating overrides type definitions
* Apply suggestions from code review
Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
* Suggestions from review
* Fixed strings in suggestions
* Simplified function to throw balls in tests
* Added tsdocs to overrideHelper.ts
---------
Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
* Introducing catchableStarters in biomes.ts
* Introducing SpeciesTmMoves with a list of TM moves for each species
* speciesTmMoves now properly accounts for form-specific tms
* Removed argument from transverse function
* Adding types to passive abilities data structures
* Update tms.ts
* Update src/data/balance/passives.ts
Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
---------
Co-authored-by: damocleas <damocleas25@gmail.com>
Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
* customPokemonData.types now accepts Type.UNKNOWN, ignores when determining type
* Changed test for clowning around encounter to look at getTypes() instead of directly accessing customData
* Simplifying logic for fusions when overrides are involved, introducing new tests in pokemon.test.ts
* Fixed typo
* Fixed another typo
* Renamed overrideTypes to customTypes to avoid confusion with override
* Fixing comments
* Add support for form and evolution specific passives
* Update src/data/pokemon-species.ts
---------
Co-authored-by: Amani H. <109637146+xsn34kzx@users.noreply.github.com>
Co-authored-by: damocleas <damocleas25@gmail.com>
* Refactor timed event changes
* Use getWeather function
* Add mystery encounter tier change/disabling to timed events
* Event luck boost, event encounter helper function
* Events without shiny boost shouldn't give shiny charm
* globalScene -> this in battle scene class
* Change event pools
* Adding extensions of the SpeciesEvolutionCondition class
* Commented out logs
* Introducing descriptions for form changes; new class SpeciesFormChangeAbilityTrigger which is functionally identical to SpeciesFormChangeManualTrigger but has appropriate description
* Fix in description of compound trigger
* Commenting out logs
* Small fixes, clearing logs, implementing suggestions
* Apply suggestions from code review
Trigger functions are declared with no arguments when not needed.
Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
* Removed exports for new classes
---------
Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
Co-authored-by: damocleas <damocleas25@gmail.com>
* Implement Flip Stat Challange
* Add Achivement
* Update challenge code to block other challenges.
* Add Achievment Image
* Add FLIP_STAT to enum ChallengeType
* Fix comment for FlipStatChallenge
* Add applyFlipStat override to Challenge Class, and add override inside of FlipStatsChallenge
* Add ChallengeType.FLIP_STAT case to export function applyChallenges (Master Switch Function)
* Properly block other challange achviements
* Change the way achivements are blocked by challenge modes to a more flexible method
* Adjust the image for Flip Stat, and add an additional achivement for completing both Flip and Inverse
* Fix FLIP_INVERSE achivement to check ALL challanges are met, not SOME
* Remove outdated image
* Fix FlipStat applyChallenges inside calculateBaseStats
* Update locales
---------
Co-authored-by: Scooom <na@na.na>
Co-authored-by: Scooom <jerry@hosterslice.com>
Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
* Combine moveset from allies and uses it to get a move
* Clearer implementation of combining user and teammates' moves
* Refactor assist and sleep talk to use metronome's attribute for calling a move
* Refactor move filtering in RandomMovesetMoveAttr, creates arrays with invalid moves for assist/sleep talk
* Refactor RandomMoveAttr to set moveId in condition, places reused code in callMove in RandomMoveAttr
* Correct invalid move lists, adds Max/Z moves to metronome's list
* Remove ignoresVirtual from beta merge
* Remove Max/Z moves per frutescens' comment
* Fix bug with metronome/copycat/assist/sleep talk targeting ally
* Experimental async/await to be tested
* Refactor other attributes to extend CallMoveAttr
* Replace QueuedMove with TurnMove, refactor to attempt two-turn move fix for metronome
* Fix Swallow test due to TurnMove refactor
* Further fixes for TurnMove refactor
* Fix metronome two turn moves for enemy pokemon
* Replace nested ternary with if-else block per DayKev's comment
* Minor fixes
* Adjust command phase args handling
* Create metronome test, refactor RandomMoveAttr for easier testing
* Add unit test for recharge moves
* Refactor Copycat and Mirror Move, adjust move targeting
* Add unit test for ally targeting with Aromatic Mist
* Add tests for secondary effects and recharge moves for metronome
* Add test for Roar, remove test for Acupressure
* Create test for Assist
* Add test for assist failing
* Add sleep talk unit test coverage
* Adjust move-phase to better track last move for copycat, write and update unit tests for assist/copycat
* Create moveHistory in Battle to track all moves used, adjust mirror move to use this, writes unit tests
* Correct mirror move implementation, rewrite unit test to adjust
* Add docs to attrs, update assist to only grab allies sets
* Update assist unit test to match expected functionality
* Update metronome unit test to use getMoveOverride
* Update copycat unit test to use metronome getMoveOverride mock
* Fix phase interception
* Add docs from missed conversations
* Update assist tests to use manual moveset overrides
Minor fixes to other tests
* Remove `export` from `CallMoveAttr`
* Add missing `.unimplemented()` to some Max- and Z-Moves
---------
Co-authored-by: Tempoanon <163687446+Tempo-anon@users.noreply.github.com>
Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
* [Balance] Allow Island and Laboratory in Generate Random Biome
* [Bug] Fix off by one error in Generate Random Biome
* [Balance] Daily Mode now has its own Generate Random Starting Biome
* [Misc] Filtering out Town and End specifically instead of assuming enum value stays consistent forever
---------
Co-authored-by: Jimmybald1 <147992650+IBBCalc@users.noreply.github.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>
* Fixed defog not removing the target's Safeguard and Mist
* Made requested changes and added unit test
* Remove stray newline
---------
Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
* Change gyms accessible before wave 30
* Prevent wave 20 gym leader from evolving
* Check game mode for wave 20 trainer evo ban
* Add Whitney Girafarig Crasher Wake Magikarp
* beginning immplementation of lunar dance
* adding tests
* changing in game message and making full hp message not display
* Reuse Healing Wish's move attr, update test
---------
Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
* [Move][Beta] Powder edge cases
* Fix Heavy Rain check to account for weather suppression
Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
* "{Pokemon} used {Fire-type move}!" now displays before Powder activation
Co-authored-by: innerthunder <168692175+innerthunder@users.noreply.github.com>
* Make `showMoveText()` and `showFailedText()` public for now
---------
Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
Co-authored-by: innerthunder <168692175+innerthunder@users.noreply.github.com>
* Powder basic implementation
* Add Powder integration tests
* Fix thaw test
* Use new test utils and type check function
* More edge case tests
* Make Powder (P)
* Add locale keys
* Add placeholder common anim
* Use CommonAnimPhase instead of async animation
* Add comments with new English text
* Make Powder `edgeCase` instead
* ESLint
* Fix imports
* Add `moveName` key arg for other languages
* ESLint
* Update locales
* Fix pages issues
* Update Powder explosion animation
* Update common-powder.json
* Update src/test/moves/powder.test.ts
Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
* Remove lingering TIMEOUTs
* More test cleanup
---------
Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
* new function
* weak attempt of documentation
* mysterious chest handled...? maybe.
* override comments
* one more instruction
* fixing up the logging lol
* lah
* fixing it up
* coommrent
* lalal
* run info fixes
* Addressed PigeonBar's comments
* Centered run info text + fixed trainer sprites.
* Fixed function name.
* Update tsdoc in `overrides.ts`
Co-authored-by: Moka <54149968+MokaStitcher@users.noreply.github.com>
* Fix tsdoc comment
* sligthly rewrite centering of biome and wave text in run info
---------
Co-authored-by: frutescens <info@laptop>
Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
Co-authored-by: Moka <54149968+MokaStitcher@users.noreply.github.com>
Co-authored-by: Moka <millennium.stitcher@gmail.com>
* Added checks for Sheer Force interactions currently in the code.
* Test for Relic Song interaction
* Test for Shell Bell interaction
* Created new Modifier class MoveEffectModifier
* Applied new modifier class.
* Revert "Applied new modifier class."
This reverts commit 222bc8d428.
* Revert "Created new Modifier class MoveEffectModifier"
This reverts commit 0e57ed03ff.
* Added checks for Shell Bell, Scope Lens, Wide Lens, Leek, and Golden Punch
* Fixing function calls.
* Fixed getSecondaryChanceMultiplier to just look at sheer force.
* Rewrote old Sheer Force tests in accordance to current testing standards.
* Resetting modifiers.ts
* Update src/data/pokemon-forms.ts
Co-authored-by: innerthunder <168692175+innerthunder@users.noreply.github.com>
* Moved getSecondaryChanceMultiplier to FlinchChanceModifier and revised Serene Grace tests
* Adding an additional override to prevent test failures.
* Removed Serene Grace factor from modifier.
* Added forgotten conditional.
* Added comment
---------
Co-authored-by: frutescens <info@laptop>
Co-authored-by: innerthunder <168692175+innerthunder@users.noreply.github.com>
* [ME] Fix GTS Wonder Trade shiny not giving luck
* [ME] Shiny Magikarp from Pokemon Salesman can have any variant
* [ME] Shiny lock MEs with custom or special sprites
* [ME] GTS shows shiny sparkle for received Pokemon
* [ME] Shiny lock 'Slumbering Snorlax' and 'The Strong Stuff'
* [ME] Dancing Lessson: show shiny sparkle for Oricorio in intro
* [ME] Show shiny sparkles for Pokemon in ME intro
* fix tests
* Ensure shiny sparkle animation is initialized before playing it (Fixes#3924)
* make loading variant assets cleaner
* cleanup EnemyPokemon shiny initialization
* test fixes and final cleanup
* Make 'getSpeciesFilterRandomPartyMemberFunc' more readable
---------
Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
Changes:
- Increase default value for friendship gain from winning a battle (from 2 to 3)
- Increase Classic candy friendship multiplier (from 2 to 3)
- Increase Rare Candy friendship gain (from 5 to 6)
- Decrease value for friendship decrease from losing a battle (from 10 to 5)
- Update Candy friendship thresholds for getting candy for some starter costs.
- Change Soothe Bell from Rogue to Great (Weight: 2 in Great)
- Adjust Map weight to account for change (Weight: 1 to 2)
- Clowning around ME: When shuffling items, soothe bells will get replaced by a random Ultra Tier item
- Clowning around ME: When shuffling items, no item will get replaced by a Soothe Bell
Commit history:
* Candy friendship changes
Update default value for friendship gain from battle and adjust Soothe Bell tier to Great
* Update modifier-type.ts
* Update friendship constants
* Clowning around encounter no longer consider soothe bell rogue tier
* Expert Breeder ME test will no longer fail if candy gain per battle is changed
---------
Co-authored-by: Starkrieg <starkieg.art@gmail.com>
Co-authored-by: damocleas <damocleas25@gmail.com>
Co-authored-by: Moka <millennium.stitcher@gmail.com>
Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
* Honey Gather and Pickup will only activate if the battle was won
* Add tests for Honey Gather
* Moves `highestEndlessWave` and `battles` stats outside of victory condition
* Analytic only increases damage if the user moves last
* Return `isNullOrUndefined()` instead of `if` chain
---------
Co-authored-by: innerthunder <168692175+innerthunder@users.noreply.github.com>
* Remove Pika/Eevee forms from Trainers before wave 30, and BB Gren
* Fix `egg` test
* Ban hidden ability from Rival starter
---------
Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
* Full implementation of freeze-dry including edge cases such as Normalize and Electrify plus tests
* Update comments
* renamed WaterSuperEffectTypeMultiplierAttr to FreezeDryAttr
* Added test case for freeze dry during inverse battles
* cleaned up code making it more general
* Added some more documentation
* implementing reviewed changes
* used getMoveType() instead of move.type
* added additional test cases to freeze dry
* Revert "used getMoveType() instead of move.type"
This reverts commit 03445dfab4.
* added reviewed changes without changing public/locales
---------
Co-authored-by: ga27lok <geeil.han@tum.de>
* [P2][Beta] Several Unburden bug fixes
* Unburden test adjustments
* Some further test cleanup
* Add suggested `.bypassFaint()` to Unburden
---------
Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
* Converted EncoreTag into a MoveRestrictionBattlerTag
* Wrote test and added documentation
* Added documentation describing EncoreTag as a whole
* Added PRE_MOVE lapse code to handle early tag expiration from PP-less encored move
* Replaced PRE_MOVE with CUSTOM for lapsing Encore in situations where the encored move has 0 PP
* Add encore tests
* fix overrides
* Apply suggestions from code review
Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
* Update command-phase.ts
* Addressed failing eslint test
---------
Co-authored-by: frutescens <info@laptop>
Co-authored-by: innerthunder <brandonerickson98@gmail.com>
Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
* Added check to make sure that Sketch does not copy a failed move.
* Added check for Struggle.
* Added a revised check.
* Added test + change to valid move finding conditional.
* Made revision to .find target
* Reverting previous commit, whoops.
* Add moveset checks to Sketch tests
---------
Co-authored-by: frutescens <info@laptop>
Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
* Change shake probability to match Gen 6
* Add critical captures, update shake probability to gen 6
* Change IntegerHolder to NumberHolder
* Adjust dex count thresholds for multiplier
* Disable critical captures in fresh start runs
* Skip first shake check for critical captures
* Move shake check for crit captures to after first shake
* Use less insane catch formula
* Integer to number in bounceanim signature
* Use max crit catch dex multiplier in daily runs
* Adjust crit capture animation
---------
Co-authored-by: innerthunder <168692175+innerthunder@users.noreply.github.com>
Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
* [Bug] fixed interaction between freeze dry and soaked wonder guard target
* added automated test for freeze dry interaction with soaked wonder guard target
* using parameter instead of function to get typeMultiplier
* Implement Order Up (mostly untested)
* Commander unit tests + bug fixes
* Implement Order Up (misnamed the other commit...)
* Order Up unit tests
* applying Temp's suggestions + other bugfixes
* add TODO comment
* Reviver Seed reapplies Commander
* ESLint woes
* Some animation fixes
* Update locales
* Order Up now uses attr option
* Prevent semi-invulnerability lapsing out while Commanding
* semi-invulnerability test
* Add `edgeCase`
* start migrating Utils.apiFetch to api class
* move dailyranking to api
* use api in title-ui-handler
* remove: Utils.apiFetch
* migrate `updateSystemSavedata` to api
* migrate clear session savedata to api
* migrate updateAllSavedata to api
* migrate `updateSessionSavedata` to api
* rename `api` to `pokerogue-api`
* migrate unlink discord to pokerogue-api
* migrate unlink google to pokerogue-api
* update pokerogue-api login
* migrate register account to pokerogue-api
* remove Utils.apiPost
* reset overrides.ts
* chore: cleanup
* fix env.development
* fix circular dependencies with api
* fix gamedata verify missing await
* fix daily api calls in daily-run-scorebard
* fix discord-link request body being empty
there was a double `toUrlSearchParams()` call involved
* add pokerogue-api test coverge
* add test-utils `getApiBaseUrl()` method
* add pokerogue-admin-api test coverage
* add pokerogue-account-api test coverage
* add pokerogue-daily-api test coverage
* add pokerogue-savedata-api test coverage
* fix some test describes
* add pokerogue-session-savedata-api test coverage
* add pokerogue-system-savedata-api test coverage
* fix tests
* fix tryExportData
thanks @MokaStitcher
* chore: fix menu-ui-handlers.ts
* fix admin-ui-handler (types)
* extend test-coverage for admin-api
* remove outdated code
* skip some clowning-around-encounter tests if events are active
this is not a permanent solution
* Update src/system/game-data.ts
Co-authored-by: PigeonBar <56974298+PigeonBar@users.noreply.github.com>
* Revert "skip some clowning-around-encounter tests if events are active"
This reverts commit a97dafe8b2.
* mark `localServerUrl` and `apiUrl` as deprecated
in `utils.ts`
---------
Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
Co-authored-by: PigeonBar <56974298+PigeonBar@users.noreply.github.com>
* Miscellaneous code cleanup:
- Update `overrides.ts` imports
- Add missing comment and `;` in `eslint.config.js`
- `field/pokemon.ts`:
Rename `generateVariant` to `generateShinyVariant`
Mark some functions as `public`/etc
Update various tsdocs/comments, add tsdocs to `isOfType`
Turn an unreadable 450+ character line into a
readable block of code
- `utils.ts`:
Remove unused function `randSeedEasedWeightedItem`
Mark `IntegerHolder` and `FixedInt` as deprecated
Update some tsdocs/comments
* Convert to inline anonymous function
* Fix indentation in `move-effect-phase.ts`
Rename `getTarget` to `getFirstTarget` for clarity
Convert namespace import to named imports
Add `public`/etc to methods
* Rename `verifyLang` to `hasAllLocalizedSprite` and update tsdoc
* update locale submodule
* Put missing `null` guards around some uses of `getUserPokemon()`
* Fix locales
* Fix Unburden test
---------
Co-authored-by: Moka <millennium.stitcher@gmail.com>
Co-authored-by: Tempoanon <163687446+Tempo-anon@users.noreply.github.com>
* unburden implemented
* Used tag instead of stat changes for Unburden
* added documentation and neutralizing gas test
* accounted for unburden in getEffectiveStat
* fixed doubling speed in two places
* merge conflict resolve
* changed documentation wording, added test for stuff cheeks
* refactor unburden
* merge
* remove console logs
* Update src/data/ability.ts
Co-authored-by: innerthunder <168692175+innerthunder@users.noreply.github.com>
* add neut gas check
Co-authored-by: innerthunder <168692175+innerthunder@users.noreply.github.com>
* Added test for NeutGas user entering while unburden activated
* add spaces to tests, removed passive and [] from applyPostItemLostAbAttrs
* added line breaks after test cases
---------
Co-authored-by: innerthunder <168692175+innerthunder@users.noreply.github.com>
* Update `battle-scene.ts` and `data/field/pokemon.ts`
`battle-scene.ts` changes:
- `getParty()` renamed to `getPlayerParty()` for clarity
- `getNonSwitchedXPokemon()` consolidated into `getXPokemon()`
- Some tsdocs were added/updated for
`getXParty()`, `getXField()` and `getXPokemon()`;
and those functions were explicitly marked as `public`
- Helper function `getPokemonAllowedInBattle()` added
`pokemon.ts` changes:
- `isAllowed()` renamed to `isAllowedInChallenge()` for clarity
- A redundant check for an active scene is removed in `isActive()`
- Some tsdocs were added/updated for `isFainted()`,
`isAllowedInChallenge()`, `isAllowedInBattle()` and `isActive()`;
and those functions were explicitly marked as `public`
- `isFainted()` now checks for `hp <= 0` instead of `!hp`
Co-authored-by: flx-sta <50131232+flx-sta@users.noreply.github.com>
* Backport eslint change to reduce merge conflicts
* Fix merge issues
---------
Co-authored-by: flx-sta <50131232+flx-sta@users.noreply.github.com>
Co-authored-by: Tempoanon <163687446+Tempo-anon@users.noreply.github.com>
* Setting species-variables to read only
* set generations to protected
* formIndex set to protected
* quick fix
* typedocs fixes
* get / set generation
* wait
* Use get/set for formIndex too
* Fix misplaced line
* Replace a couple `!!` with default params
---------
Co-authored-by: frutescens <info@laptop>
Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
Co-authored-by: Tempoanon <163687446+Tempo-anon@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>
* fixing speed boost for pokemon being switched in and for if failed escape
* adding unit tests
* adding failed run away test case
* adding failed run away test case modification
* refactoring solution to be more consistent with coding style
* more fixes for consistency
* more fixes for consistency
* adding new AbAttr in abiliity.ts for posterity
* removing uneccesary variables
* fixing a merge conflict
* Chloroblast & Struggle should not recoil if no damage was dealt
* Protect against missing move entry
Co-authored-by: PigeonBar <56974298+PigeonBar@users.noreply.github.com>
---------
Co-authored-by: PigeonBar <56974298+PigeonBar@users.noreply.github.com>
* Adds updateInfo to transform move/ability, mirrors Transform functionality in Imposter
* Implements functionality for reducing pp to 5 or less for each move when transforming
* Refactors to async/await pattern, adds back removed anims/sounds from last commit
* Eslint fix attempt
* Update src/data/ability.ts
per DayKev's suggestion
Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
* Merge and fix conflicts
* Adds unit tests for pp-change with transform/imposter
* Updates to consistency in syntax/deprecated code
---------
Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
* Fix Early Bird, add tests
* Update tsdocs for Early Bird's `AbAttr`
Rename `turnCount` to `toxicTurnCount` and
`turnsRemaining` to `sleepTurnsRemaining` in `status-effect.ts`
* Fix Toxic Orb test
* Redundant code :despair:
* Fix status override to set the number of sleep turns
* [Refactor] Added ON_GET_HIT BattlerTagLapseType
Adjusted BeakBlastChargingTag and ShellTrapTag to use new lapse type
Adjusted MoveEffectPhase to now lapse all tags with the ON_GET_HIT lapse type
* [Refactor] Added ON_GET_HIT BattlerTagLapseType
Adjusted BeakBlastChargingTag and ShellTrapTag to use new lapse type
Adjusted MoveEffectPhase to now lapse all tags with the ON_GET_HIT lapse type
* Fix nits
* Rename `ON_GET_HIT` to `AFTER_HIT`
Change `isOpponentTo` to `isOpponent`
* Fix a couple minor nits
* Remove single-use function
---------
Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
* Mystery Encounter bugfixes
* more ME bug fixes
* update allowed pokemon in ME requirements
* some unit test cleanup and general tidying
* fix null exception on isBattleMysteryEncounter
* clean up tsdocs and fix pokemon hasAbility check
* fix double battle crash in challenge mode with a single eligible pokemon
* apply suggestions from PR#4619's code reviews
* revert fix for Keldeo crashes + implement fix suggestion from PR #4619
* fix session migration for PokemonCustomData
* prevent test failure due to keldeo fix
---------
Co-authored-by: ImperialSympathizer <imperialsympathizer@gmail.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`
* [P1 Bug] Fix softlock when a phazing attack activates a reviver seed
* Polishing tests
* Change approach to respect Parting Shot's targeting
* Tests: Added checks for correct number of Pokemon on field
* some early set up
* localization
* Added Wiglett family to restrictions
* Added Smack Down + 1000 Arrows Interactions
* Added checks for certain tags
* Gravity removes telekinesis from all pokemon on the field
* need to check something else real quick
* mmmmmm
* think this is fine?
* ingrain fixes
* more ingrain
* Telekinesis Test + Move Fix
* Test Name change
* another day another try...
* Test Cleanup
* fsfdsfds
* Revert "fsfdsfds"
This reverts commit cb7abcfd9f.
* whoops
* Apply suggestions from code review
Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
* Missed one
* Update src/data/move.ts
Co-authored-by: PigeonBar <56974298+PigeonBar@users.noreply.github.com>
* Apply suggestions from code review
Co-authored-by: innerthunder <168692175+innerthunder@users.noreply.github.com>
* Add separate battler tags in move attr
* Update src/data/battler-tags.ts
Co-authored-by: innerthunder <168692175+innerthunder@users.noreply.github.com>
* removed onRemove
* Documentation
* Update src/data/battler-tags.ts
---------
Co-authored-by: frutescens <info@laptop>
Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
Co-authored-by: PigeonBar <56974298+PigeonBar@users.noreply.github.com>
Co-authored-by: innerthunder <168692175+innerthunder@users.noreply.github.com>
* [Bug] Toxic Spikes implementation issues fixed
Adjusted MoveEffectPhase.start() so that ENEMY_SIDE targeted moves no longer occur twice per use in double battles.
Updated Toxic Orb test to no longer expect a tick of damage turn 1.
Fixed Toxic/Poison dealing damage immediately when applied.
Fixed Hazards not persisting through save
Added unit tests
Fixed flyout not displaying correct number of Spikes/Toxic Spikes after a refresh
* Update Toxic Orb test
* Updates Toxic Spikes tests
* Apply suggestions from code review
* Fix merge issues
Replace `integer` with `number` in `arena-tag.ts`
* Remove partial Magic Bounce implementation
* Remove stray newline
* Remove extra change in safeguard test
---------
Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
* creates table for tracking species egg tiers
* creates table for tracking species egg tiers
* rename EggTier enum values
* replace clamp util function with Phaser function
---------
Co-authored-by: ImperialSympathizer <imperialsympathizer@gmail.com>
* Fixes some Substitute interactions
Specifically with Disguise/Ice Face and Gulp Missile
* Add tests
* Fix linting
* Add `hitsSubstitute()` checks to all `PostDefendAbAttr`s
Also fix comment indentation in `MoveEffectPhase`
* Revert `move-effect-phase.ts` changes
* [Bug] Fix Battle Bond continuing to buff Water Shuriken after Greninja returns to base form
* Test cleanup
* PR feedback
* Update test to use getMultiHitType()
* PR Feedback
* Triple Arrows effect chance for stat change is now properly 50%
* Add tsdocs to `StatStageChangeAttr`
* Add test for Serene Grace interaction
* Fix linting
---------
Co-authored-by: Mumble <171087428+frutescens@users.noreply.github.com>
* Diamond Storm should only trigger once when hitting multiple pokemon
* Also fix Clangorous Soulblaze just in case
* Fix linting
* Fix linting
Oops missed this one
* Implement Fire/Grass Pledge combo
* Add other Pledge combo effects (untested)
* Fix missing enums
* Pledge moves integration tests
* Add turn order manipulation + more tests
* Safeguarding against weird Instruct interactions
* Update src/test/moves/pledge_moves.test.ts
Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
* Fix style issues
* Delete arena-tag.json
* Update package-lock.json
* Use `instanceof` for all arg type inference
* Add Pledge Move sleep test
* Fix linting
* Fix linting
Apparently GitHub has a limit on how many errors it will show
* Pledges now only bypass redirection from abilities
---------
Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
* Fix TM compatibility on forms, Tera Blast on Indigo Disk mons
* Additional single strike moves
---------
Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
Ensure that a Pokémon's animation speed is reset properly after saving
and quitting. Previously, if a Pokémon was put to sleep, which slows
its framerate, saving and quitting would result in the slower framerate
persisting even though the Pokémon was no longer asleep. This fix adds
an else condition to reset the frameRate to 12 if the sprite is already
loaded upon resuming the game.
Fixes#4465
* Fixes bug with Status Cure moves only curing player pokemon, refactors PartyStatusCureAttr, removes PartyStatusCurePhase
* Adds check for user ID, since user always cures its own status regardless of ability
* Adds unit tests for sparkly swirl
* Merge and fix conflicts
* Fix conflicts with SPLASH_ONLY
* Fix failing sparkly swirl test due to splash_only
* Adds unit tests for heal bell and aromatherapy
* Update src/data/move.ts
---------
Co-authored-by: flx-sta <50131232+flx-sta@users.noreply.github.com>
* move: locales files to `/public` (from `/src`)
* install: i18next-http-backend module
* implement: i18next language lazy-loading
* remove: all `config.ts` files (for locales)
* disable: enConfig import in i18next.d.ts
* remove: console.log from utils.camelCaseToKebabCase()
* remove localization tests
we don't need to test if i18next is working.
This is the job of i18next itself
* mock i18next for tests
* fix: tests that have to use the i18next key now
instead of the english translation
* fix: absolute-avarice-encounter test
* fix: loading mystery-encounter translations
with lazy-load
* fix: 2 mystery encounter translation loading
* replace: i18next mocks any vi.fn() calls
* fix: new namespace usage in ME tests
now using "mysteryEncounters/..."
* fix: delibirdy encounter not being language specific
the encounter was checking if the modifier name includes `Berry` which is only true for english. Instead it has to check if the modifier is an instance of BerryModifier
* fix: the-expert-pokemon-breeder
the new i18n pattern requires a different namespacing which has been adopted
* fix: GTS encounter tests
* add: `MockText.on()`
* fix: berries abound test
* chore: apply review suggestion
from @DayKev
* update i18next.d.ts
* chore: fix i18next.d.ts
* fix: `dialogue-misc` switchup between `en` and `ja`
* move: `SpeciesFormKey` into enum
there was an issue with circular dependencies
* replace: `#app/enums/` with `#enums/` for `SpeciesFormKey` imports
* re-sync locales from `beta`
* rename: `ca_ES` -> `ca-ES`
* rename: `pt_BR` -> `pt-BR`
* rename: `zh_CN` -> `zh-CN`
* rename: `zh_TW` -> `zh-TW`
* fix loading Species-Form-Key in poemon-evo.
* update: i18next `supporterLngs` ...
and remove `nonExplicitSupportedLngs`
* fix: `${namespace}.` -> `${namespace}:`
thanks @MokaStitcher
Remove Meloetta from the `TYPE_OVERRIDES` array so wrong-form
Meloetta can't be sent into battle.
This was missed when Meloetta was changed in a previous PR
Also disallow Meloetta from being added to the party in
starter select if it's in the wrong form
for the current mono-type challenge
* major/minor ME bug fixes
* potential fix for failed save with rental pokemon
* Update src/system/game-data.ts
Co-authored-by: flx-sta <50131232+flx-sta@users.noreply.github.com>
* Update src/system/game-data.ts
Co-authored-by: flx-sta <50131232+flx-sta@users.noreply.github.com>
* more bug fix cleanup and PR feedback
* fix Uncommon Breed ME crash
* real fix to Fun and Games force switch issues
* add isBattleMysteryEncounter() helper function
* add isBattleMysteryEncounter() helper function
* fix unintentional replace all errors
* fix catches not updating dex
---------
Co-authored-by: ImperialSympathizer <imperialsympathizer@gmail.com>
Co-authored-by: flx-sta <50131232+flx-sta@users.noreply.github.com>
* Gmax Changes for Venusaur, Blastoise, Lapras, Regenerator Mega Audino, Darkrai and Cosmog upped 6 -> 7 cost
* Changed Heal Order to 5pp to match other Recovery options
* Updated Ursaluna-BM and Eternal-Floette to Sub-Legend for easier handling, Adjust catchrates to Metagross to match Baxcalibur line, and Iron Leaves/Walking Wake catchrate to match the other paradox legends
* Actually updated catchrate for Iron Leaves and Walking Wake
* Added comments for all changes
* part 2 passive changes for the update, Pidgey, Lickitung, Stantler, Regigigas, Frillish, Litten, Chien Pao
* fix space
* Updated Meloetta Cost, Updated Krabby Passive
* Added Snow Worker Dialogue Keys and Dialogue
Includes en, fr, it, es, de, ko
-placeholders for ja, pt_br, zh_cn, and zh_tw
* Update dialogue.json
* Added \n$ in Spanish and German so the textboxes don't overflow
* Fixed "defeat" Formatting for Singles and Doubles English, and Doubles Korean, Italian, French, Japanese, and German
* Fixed Formatting for English Singles "defeat", and Japanese Doubles "defeat"
* Update src/locales/ko/dialogue.json
Turns the periods into ellipses for Korean Snow worker Doubles
Co-authored-by: returntoice <171243264+returntoice@users.noreply.github.com>
* Update src/locales/ko/dialogue.json
Adds a period to Korean Singles Defeat
Co-authored-by: returntoice <171243264+returntoice@users.noreply.github.com>
* Update dialogue.json
* Update src/locales/ko/dialogue.json
Adds a space on line 310
Co-authored-by: returntoice <171243264+returntoice@users.noreply.github.com>
* Update src/locales/ja/dialogue.json
Co-authored-by: flx-sta <50131232+flx-sta@users.noreply.github.com>
* Update src/locales/zh_TW/dialogue.json
Co-authored-by: flx-sta <50131232+flx-sta@users.noreply.github.com>
* Update src/locales/zh_CN/dialogue.json
Co-authored-by: flx-sta <50131232+flx-sta@users.noreply.github.com>
* Update src/locales/pt_BR/dialogue.json
Co-authored-by: flx-sta <50131232+flx-sta@users.noreply.github.com>
---------
Co-authored-by: Lugiad <adrien.grivel@hotmail.fr>
Co-authored-by: returntoice <171243264+returntoice@users.noreply.github.com>
Co-authored-by: flx-sta <50131232+flx-sta@users.noreply.github.com>
* remove: `StatusEffect.NONE` from displaying any messages
even thougn this case will never occur, by code definition it should be covered
* remove: obsolete `statusEffect:none.` translation keys
* fix: status-effect test
* chore: undo overrides commit (whops)
* adding immunity check
* making tests
* modifying and adding tests
* making tests more rigorous
* changing hitcheck return to be what it was originally, no significant effect
---------
Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
* extend: log in encounter phase for better debugging
* fix: `the storng stuff` test flakiness
The enemy pokemon could get contrary or other abilities that cause the expected values to be ... not as expected
* remove accidental it.each
tests were being executed 30-100 times. This is a debugging tool but was never supposed to make it to merge.
* Implement Autotomize
* Another linting
* Fix unit tests
* Add nonnull after checking for null
* Update autotomize test
---------
Co-authored-by: flx-sta <50131232+flx-sta@users.noreply.github.com>
Arrows allow for dynamic placement based on language
---------
Co-authored-by: MokaStitcher <54149968+MokaStitcher@users.noreply.github.com>
Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
Co-authored-by: flx-sta <50131232+flx-sta@users.noreply.github.com>
* various bug fixes for MEs
* various bug fixes for MEs
* fix final isTransferable rename that was missed
* change Trainer's test vouchers for second option
* change unit test skips
* cut down excess ME track length and loop properly
* ME bug fix cleanup
* updating AI for Slumbering Snorlax ME, and small ME balance changes
* fix ts error
* fix bug type superfan dialogue discrepancy
* ME bug fixes PR feedback
* ME PR nits and fixes
* update naming convention of sprites
* ME balance changes and bug fixes
* fix tests
* fix An Offer You Can't Refuse ME requirements
* clean up post-battle logic for Breeder ME
* party size requirement cleanup
* clean up challenge requirements for disabling certain MEs
---------
Co-authored-by: ImperialSympathizer <imperialsympathizer@gmail.com>
* Add Team Star (WIP)
Still missing dialogue for all new trainer types, team compositions will need refining, and Starmobile graphics still do not exist yet.
* Add dialogue for all Team Star trainers
Dialogue put together courtesy of @Blitz425
* Add additional Macro Grunt dialogue lines
As suggested to be included by @Blitz425
* Add dialogue entries in dialogue.ts
Forgot them with my last commit, whoops
* Add back Team Star trainer types
Latest merge of beta into this PR deleted them for some reason
* Update Team Star boss team compositions
Bunch up Eeveelutions more in first fight, move random Rotom form to first fight. Remove Espeon, Umbreon, and Rotom from second fight, add legendary beasts and paradox beasts in their place, remove Zacian chance from second fight.
Co-authored-by: Tempoanon <163687446+Tempo-anon@users.noreply.github.com>
* fix missing semicolon
* Guarantee Sylveon is always Terastallized
* Guarantee Starmobiles on admin's teams
Also resizing the Starmobiles by 1.5 like Gigantamax Pokémon (it is still just regular Revavroom visually for now).
* Adjust trainer pools for Grunts and Admins
* Add new custom sprites for Starmobiles
This adds front and shiny front sprites made by Kieran. Party icons and back sprites are still placeholders for now.
* Minor pool adjustments
Eevee moved to Uncommon on grunts, Varoom replaced with Hisui Qwilfish for Atticus, and Heracross replaced with Pawmi for Eri.
* Remove Leon's Zamazenta, rename Team Star Boss
As to not have overlap between the champion and Star boss teams.
Also doubled the weights of the Starmobile forms.
* Force movesets for Starmobiles
Also fix accidentally giving Mela a Venusaur instead of a Revavroom. (it was just a testing thing, I swear)
* Correct movesets
Didn't realize copied movesets were desired, ech
---------
Co-authored-by: Tempoanon <163687446+Tempo-anon@users.noreply.github.com>
* make `berries-abound` test more robust
the "should reward the player with X berries based on wave" test was failing due to berry max stacks and the party only having 1 pokemone.
Increased it to 3 to reduce that probability
* berries abound test: change `defaultParty`
increase size of default-party to 3
* add: some missing types in berries-abound encounter
for ease of reading
* fix: berries abound tests
the "Should skip battle when fastest pokemon is faster than boss" test was failing due to the party being more than 1 pokemon.
* add: seasonsl splash messages logic + scaffolding
* refactor: settin up and displaying splash messages.
They are now stored with their i18next keys and only get translated as soon as they are displayed. This also allows for better display of the `battlesWon` parameter which now supports better number formatting and the count is an interpolation
* fix: updateTitleStats not checking the namespace of battlesWon
* add tests for splash_messages
* test: always use UTC time
* fix: time-pattern to MM-DD
* fix splash_messages test
* add: const to control usage of seasonal splash messages
* fix tests (splashj)
* Update src/locales/ja/splash-messages.json
Co-authored-by: Chapybara-jp <charlie.beer@hotmail.com>
* Update src/locales/es/splash-messages.json
Add missing `number` format for battlesWon message
---------
Co-authored-by: Chapybara-jp <charlie.beer@hotmail.com>
* 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>
* various bug fixes for MEs
* various bug fixes for MEs
* fix final isTransferable rename that was missed
* change Trainer's test vouchers for second option
* change unit test skips
* cut down excess ME track length and loop properly
* ME bug fix cleanup
* updating AI for Slumbering Snorlax ME, and small ME balance changes
* fix ts error
* fix bug type superfan dialogue discrepancy
* ME bug fixes PR feedback
* ME PR nits and fixes
---------
Co-authored-by: ImperialSympathizer <imperialsympathizer@gmail.com>
* add generic types to`Pokemon.getAbilityAttrs()`
* add invert check to `ProtectStatAbAttr.apply...`
This makes sure that a stat is only protected if no other ability inverts the change. E.g. `Contrary` inverts any decrease to an increase
* migrate contrary.test.ts to game.classicMode
* move `StatStageChangeMultiplierAbAttr` resolve above `ProtectStatAbAttr`
The effect of StatStageChangeMultiplierAbAttr is now applied before resolving any ProtectStatAbAttr. Thus the stage (level) of the BattleStat change was properly altered at the time of resolving the protection
* revert ability.ts changes
* add automated tests for `Clear Body` + `Contrary`
* StateStageChangePhase replace ~~`IntegerHolder`~~ with `NumberHolder`
Update Utils import and replace all occurcences of `Utils.`
* contrary.test.ts: remove `js` import
* EQ, magnitude, and bulldoze do half damage in grassy terrain
* Fix more styling issues in grassy glide
* lol unit tests
* Add test :pikastare:
---------
Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
* Update pokemon-species.ts Pokerus starters 3 -> 5
* Update starter-select-ui-handler.ts
* Updated pokemon-species.ts, changes from frutescens to make Pokerus # a constant that imports into starter select ui
* Update starter-select-ui-handler.ts to continue the other changes
* Update src/data/pokemon-species.ts
---------
Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
* Changes some evolutions
* more work
* Give Onix Iron Defense at 30
* Sirfetch'd and Gholdengo, pause any evolutions
* Fix pause evolution text
* adjust wild evolution delay
* Add localization keys, clean up evo pausing
* Clean up evo delays
* Adjust friendship evos, Leader's Crest sprite by chaosgrimmon
* Fix Nugget crash
* Fixed Gimmighoul fr
* Move Charcadet armors to common
* Locale migration, Lilligant shiny stone
* Cleanup
* Fix language migration error
* Change Cosmog line evo method
* Undo Ursaluna being night only
* Evo items roll during evo pause on Eevee
* Make all time based evos use dusk and dawn times
* Fix paused and unpaused evolution texts being reversed
* Fixed evolution delays
* Moved up Mimic in Mime Jr's moveset
* Remove Cosmoem time conditions, add Gimmighoul tracker
* Remove tracker after Gimmighoul evo
* Change Scyther Steel Wing back to 30, mark custom
* Fixed SURF and FLY not beeing localized in "lost at sea"
Fixed Mysterious Challenger Title not beeing correct
Fixed Winstrate Names not beeing localized
* Revert the winstrate fix. It breaks other trainer battles for some reason...
* A new way of giving the winstrates localized names (and for the future all named trainers that dont use a "initFor" method)
* Updated test (with ok from ImperialSympathizer)
* Made the expected value simpler
* FLY and SURF can be localized much simpler
* Create getAttackDamage function
* Add ignoreAbility params to getBattleStat
* Rewrite Pokemon.apply
* renamed damage variables
* Add `ignoreSourceAbility` arg to `getAttackDamage`
* Enemy AI now searches for KO moves
* Add probabilistic test for KO search
* Add tests to `damage_calculation`
* "killMoves" --> "koMoves"
* Clean up `randomMultiplier`
* Clean up damage calculation test
Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
* Fix stabMultiplier using base type for Tera bonus
* Restore simulation capabilities for Unaware
* move sourceTeraType closer to where it's used
* Add base damage test
* Exclude counter moves from KO search
---------
Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
* Undo egg skip event
* Readded vouchers to original weights
* Gmax Adjustments - Charizard Berserk, Stats for Eevee and Duraludon
* Set weight of 999.9kg for all Gigantamax forms
---------
Co-authored-by: Frederico Santos <frederico.f.santos@tecnico.ulisboa.pt>
* 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>
* Allow Meloetta's starting form to be selected
* Meloetta won't change forms during a monotype challenge
Also removes reversion to Aria form when arena resets
* double checking tests on a new made branch for bug 3984
* roost test update
* added roost test file
* Roost test update
* removed random stackdump
* cleaned up message for roost
* fixed test file for linter
* cleaning up code and fixing some desync test issues
* Cleaned up more code and added case for double shock
* fixing some messages and putting burn up and double shock in same class
---------
Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
* Resolves bugs with freezy frost vs ally, and freezy frost fainting opp
* Adjusts unit tests, adds one more for doubles
* Refactor apply function to follow the async/await pattern
* Eslint fix attempt
* Update freezy_frost.test.ts
Remove js file extension
* Obstruct et al no longer protect against status moves
* Remove `.js` from import
Co-authored-by: ImperialSympathizer <110984302+ben-lear@users.noreply.github.com>
* Add tsdocs for new/modified classes
* List relevant moves in tsdocs
---------
Co-authored-by: ImperialSympathizer <110984302+ben-lear@users.noreply.github.com>
* Complete after you implementation (no localization)
* reset override changes
* Remove hardcoded English text, add tests
* Fix test
* Make sure phases occur in the correct order
* fix after-you issues
- fix i18n interpolation ot state "target name" and not "pokemon name" as the target takes the offer, not the user
- fix some tsdocs
- add override to apply
- update scene.findPhase to be able to use generic types. Add tsdocs
* add move-trigger.afterYou for DE
* fix after_you.test.ts
---------
Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
Co-authored-by: flx-sta <50131232+flx-sta@users.noreply.github.com>
* Fixed Delta Stream remaining active when last mon dies to indirect damage
* Rebasing changes
* Linting fix
* Combined if statements
* Changed params to optional
* Added unit test
* Apply suggestions from code review
* Fix test and remove `.js` from import
---------
Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
- remove any `.js` extension imports
- remove unncessary dynamic imports of `modifier.ts` file. The file was being imported statically & dynamically. Made it pure static
- increase vite chunk-size warning limit
Co-authored-by: Mumble <171087428+frutescens@users.noreply.github.com>
* Fix off-by-one error in some random number calls
* Fix mock RNG function used by tests
Also remove unnecessary extra RNG mock from Glaive Rush test
* Just some github UI manipulation don't mind me
* Update Glaive Rush test
* Remove unnecessary `Math.floor()`
* Remove resolved comment
* Add tsdocs to various functions
* Remove `src/rng.md` file
* Update tsdoc
* Use BattlerTag for move-disabling effects
* Fix RUN command causing freeze
* Improve documentation
* Clean up and document PokemonMove.isUsable
* Fix isMoveDisabled missing return
* Tags define the message shown when disabling interrupts a move
* Fix -1 duration on Disable effect
* Add tests for Disable
* En loc and fix message functions
* Fix Disable test
* Fix broken imports
* Fix test
* All disable tests passing
* Localize remaining strings
* Move cancellation logic out of lapse; use use TURN_END for lapse type
* Prevent disabling STRUGGLE
* Inline struggle check function
* Restore RechargingTag docs
* Move cancellation logic back to tag
Wanted to increase similarity to the existing code base to avoid that stupid hyper beam error but it's still happening here
* Fix hyper beam test
* Remove erroneous shit
* Fill movesets with SPLASH for disable test
* More robust condition for disable checking
* Remove DisabledTag lapse
* Simplify DisablingBattlerTag lapse
* Cancel disable-interrupted moves instead of failing them
* Avoid disabling virtual moves
* Consistent access modifiers across Disable tags
* Add abstract function for message when player tries to select the disabled move
* Fix syntax mistake
* Always disable last-used non-virtual move
* Overhaul tests + add tests
* Implement loadTag for DisabledTag
* Update translations
* Update translations
* Reimplement phase changes
* fix battlertag strings
* Fix disable test not running
* Update name of base class
* Rename "disabling" to "restriction"
* Fix sneaky string fuckup
* Fix test failure
* fix merge problems
* fix merge problems
* Update tests
* rerun RNG test
* Properly mock stats in test
* Document everything in battlertag
* More docs + typo fix
* Update tests
---------
Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
* Fix inconsistencies with ability triggers on variable-type moves
* Fix aura effects not accounting for the move user
* Fix Wonder Guard evaluating move type as if the defender used the move
* Some additional test coverage for move-type-changing effects
* Add `isTransferrable` property to `BattlerTag`s
* Update Baton Pass to check `isTransferrable` for `BattlerTag`s
* Don't mark Salt Cure as transferrable
* Add Destiny Bond, remove `GroundedTag` and `ExposedTag`
* Fix daily mode test
* Add test
* Rename `isTransferrable` to `isBatonPassable`
* cherry picked commits / manual copy
* better dex tracking for summary after regular egg hatching
* ui changes
* updated egg hatch bg, added candy tracker, icon anims for new shiny or new form unlock
* added i18 line, reset overrides
* touchup
* code cleanup, documentation and slight refactor
* sprite display fix
* load interrupts, simple sfx and no summary for small egg amounts
* Garbage Collection + Eslint/Docs approved.
* time logging and optimisation
* skip redundant load
* more time logs and fix pre-load issues
* more detailed loading logs
* changed loading to be on demand from cursor nav
* fix missing variant icon fallback
* removing redundant time logs and code touchup
* code cleanup
* Comments so developer doesn't get bugged about garbage collecton
* remove logs n stuff
* lang settings touchup and final touchup plus uploading blank egg summary bg
* fix nits, js imports, extra docs, magic numbers changed
* extra docs and spacing nits
* Update Github
---------
Co-authored-by: James Diefenbach <z5421232@ad.unsw.edu.au>
Co-authored-by: Frederico Santos <frederico.f.santos@tecnico.ulisboa.pt>
Co-authored-by: frutescens <info@laptop>
Co-authored-by: Mumble <171087428+frutescens@users.noreply.github.com>
* [Bug] Fix reloads causing RNG inconsistencies
* Minor revisions
* Allow reload helper to directly access getSessionSaveData()
* Changed Moody and Acupressure to use seeded RNG
* Fix broken unit test
* [Bug] Fix eggs having exploitable RNG
* Fix Wind Rider test having random chance to fail
* Revert egg's ID back to its own unseeded generation
* Remove change from wind rider test
---------
Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
Co-authored-by: Mumble <171087428+frutescens@users.noreply.github.com>
* Create Getters, Setters, and Types
* Work on `pokemon.ts`
* Adjust Types, Refactor `White Herb` Modifier
* Migrate `TempBattleStat` Usage
* Refactor `PokemonBaseStatModifier` Slightly
* Remove `BattleStat`, Use "Stat Stages" & New Names
* Address Phase `integers`
* Finalize `BattleStat` Removal
* Address Minor Manual NITs
* Apply Own Review Suggestions
* Fix Syntax Error
* Add Docs
* Overhaul X Items
* Implement Guard and Power Split with Unit Tests
* Add Several Unit Tests and Fixes
* Implement Speed Swap with Unit Tests
* Fix Keys in Summary Menu
* Fix Starf Berry Raising EVA and ACC
* Fix Contrary & Simple, Verify with Unit Tests
* Implement Power & Guard Swap with Unit Tests
* Add Move Effect Message to Speed Swap
* Add Move Effect Message to Power & Guard Split
* Add Localization Entries
* Adjust Last X Item Unit Test
* Overhaul X Items Unit Tests
* Finish Missing Docs
* Revamp Crit-Based Unit Tests & Dire Hit
* Address Initial NITs
* Apply NIT Batch
Co-authored-by: flx-sta <50131232+flx-sta@users.noreply.github.com>
* Fix Moody Test
* Address Multiple Messages for `ProtectStatAbAttr`
* Change `ignoreOverride` to `bypassSummonData`
* Adjust Italian Localization
Co-authored-by: Niccolò <123510358+NicusPulcis@users.noreply.github.com>
* Fix Moody
---------
Co-authored-by: flx-sta <50131232+flx-sta@users.noreply.github.com>
Co-authored-by: Niccolò <123510358+NicusPulcis@users.noreply.github.com>
* fix: Enable female gender for all default starters and all existing saves
* Fixed Fresh Start so it doesn't restrict gender
---------
Co-authored-by: Mumble <171087428+frutescens@users.noreply.github.com>
Co-authored-by: frutescens <info@laptop>
* Moves copied by Dancer should not consume PP
* Add test for Dancer (unfinished)
* Delete src/test/abilities/dancer.test.ts
This test is not finished lol
* Add test
* Implement Tera Shell
* Apply suggestions from code review
Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
* Update src/data/ability.ts
Co-authored-by: Adrian T. <68144167+torranx@users.noreply.github.com>
* Add comments and fixed damage condition to `applyPreDefend`
* Fix speed tie breaking things in tera shell test
* Change deprecated `startBattle` calls
---------
Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
Co-authored-by: Adrian T. <68144167+torranx@users.noreply.github.com>
* Biome Adjustments 1
* MOUNTAIN OUT FROM ANCIENT RUINS
* snorlax gmax adjustment
* Localizers please calm down - Snorlax Ability + Passive change
* One more time let's give it a go biomes.ts
* fixed ]
* Update biomes.ts
* fixed spelling mistake
* Biome.END goes somewhere random
* this way island is included too
* no towns or plains
* Enums are dumb
---------
Co-authored-by: frutescens <info@laptop>
* Inserts break to prevent fall through in checkFlag
* Adds break to IGNORE_PROTECT case for safety
* Revert "Adds break to IGNORE_PROTECT case for safety"
This reverts commit 2589faf69e.
* Adds break to IGNORE_PROTECT properly
* Make sure trainers are using fully evolved Pokemon by gym 3
* Expand comment info
Co-authored-by: Mumble <kimjoanne@protonmail.com>
* Implement suggestions
* Update `getPokemonSpecies()` to throw an error if passed `undefined`
---------
Co-authored-by: Mumble <kimjoanne@protonmail.com>
* Make type/category read-only
* Fix protean/libero tests
* Refactor Pokemon type effectiveness calculation
* Merge getMoveEffectiveness and getAttackMoveEffectiveness
* Move priority-blocking ability check
* Fix incorrect early stopping implementation in MultiHitAttr
* Fix Aerilate, etc. affecting variable-type moves
* Thunder Wave now respects Attack type immunities
* Use final move types for pre-defend abilities
* Steal some things from flx's PR hehe
* Fix Thousand Arrows + "No effect" messages
* Fix status type effectiveness check
* Another status move effectiveness update + some docs
* changing status logic again...
* Fix unnecessary "No Effect" message for Volt Absorb, etc
* Add type effectiveness unit test
* Add Galvanize integration tests
* Add multi-hit test to galvanize tests
* Add power check to first Galvanize test
* Add missing doc line
Co-authored-by: Amani H. <109637146+xsn34kzx@users.noreply.github.com>
* Resolve torranx's nits
* Apply suggestions from Kev's code review
Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
* More suggestions I missed
Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
* Optimize effectiveness test and make others more stylish (#3)
* Resolve Kev's remaining nits and some test issues
---------
Co-authored-by: Amani H. <109637146+xsn34kzx@users.noreply.github.com>
Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
Co-authored-by: flx-sta
Co-authored-by: frutescens
* [Balance] Gigantamax State/Form Rebalance (WIP)
* GMAX Ability for Orbeetle adjusted
* fixed typo on CHLOROPHYLL
* Adjusted stats so there was a less intense drop in some stats
* Added comments to GMAX Pikachu, Eevee, Meowth
* Updated ability for GMAX Kingler and Eevee
* Added Stellar typing to GMAX Eevee
* Fixed typing on GMAX Eevee and Snorlax
* GMax Garbodor- Toxic Debris > Corrosion
* Corrected Trubbish passive to not overlap with GMax Garbodor
* Update pokemonFixed Coalossal, Flapple, and Centiskorch BST, Alcremie Ability Change
* Changed Alcremie Passive in adjustment with Gmax ability
* Undid Eevee being Stellar
* Gmax Sandaconda Sand Stream -> Sand Spit
* Balance Sweep of changes by damo, less dropped stats and simpler spreads
* fixed 5 Appletun BST I missed
* fixed missing Hatterene BST
* Sets Lunar Blessing selfTarget healing to false
* Removes redundant lines
* Adds unit test for Lunar Blessing
* Adjusts unit tests to spy on function calls
* Changed how non-BGM are loaded into the game + moved into directories
* some leftovers
* Apply suggestions from code review
Co-authored-by: flx-sta <50131232+flx-sta@users.noreply.github.com>
* Added setting for Field Volume + rewrote playSound() and updateSoundVolume() functions to reflect the new settings.
* Main -> Beta (#3635)
* Fixed issue with falsy issue within condition to get a stat for IV scanner
* add fix setting code to prevent form/variant bug when default form/variant setting is wrong.
in addition, that fix code include gender fix, so i revert old gender fix.
update wrong log message.
* [Hotfix] Fix Memory Mushroom not showing relearner moves (#3619)
* Fix Memory Mushroom not showing relearner moves
* Fix rollout test
* Rewrite player faint logic in FaintPhase (#3614)
* 867 runerigus sprite (#3629)
cropped static frames, fixed cropped sprite
set runerigus exp to use the shiny exp's animation
verified all hex colors are unchanged
- fixed ultra necrozma exp front variant swapped arrays.
- xatu female eye color fix
* [Bug] Preventing the MBH from being stolen in Endless (#3630)
* Endless MBH Fix
* add import
* Revert "add import"
This reverts commit 814a4059c2.
* Revert "Endless MBH Fix"
This reverts commit 8eb4481301.
* removed newline
---------
Co-authored-by: Frederico Santos <frederico.f.santos@tecnico.ulisboa.pt>
Co-authored-by: frutescens <info@laptop>
* [Bug] Fix type-hints for immunity (#3620)
* enable mock containers to be found by name
* enable mock text to be found by name
* add test coverage for type-hints
Only for "immunity" and "status moves"
* fix wrong message key of curse(ghost type) (#3631)
Co-authored-by: Frederico Santos <frederico.f.santos@tecnico.ulisboa.pt>
* [Hotfix] Steal-able Mini Black Hole Pt 2 (#3632)
* Still have no idea where Eternatus is given the MBH....
* typedocs
---------
Co-authored-by: frutescens <info@laptop>
* [Hotfix] Abilities that prevent ATK drops no longer stop other stat drops (#3624)
* Abilities that prevent ATK drops no longer stop other stat drops
* Apply suggestions from code review
Co-authored-by: Mumble <kimjoanne@protonmail.com>
* Add `isNullOrUndefined()` utility function
---------
* Grip Claw now shows the proper pokemon nickname (#3634)
Co-authored-by: frutescens <info@laptop>
---------
Co-authored-by: Opaque02 <66582645+Opaque02@users.noreply.github.com>
Co-authored-by: KimJeongSun <leo@atlaslabs.ai>
Co-authored-by: Frederico Santos <frederico.f.santos@tecnico.ulisboa.pt>
Co-authored-by: innerthunder <168692175+innerthunder@users.noreply.github.com>
Co-authored-by: cam <lrlrliwoo@gmail.com>
Co-authored-by: Mumble <kimjoanne@protonmail.com>
Co-authored-by: frutescens <info@laptop>
Co-authored-by: flx-sta <50131232+flx-sta@users.noreply.github.com>
Co-authored-by: Enoch <enoch.jwsong@gmail.com>
Co-authored-by: Mumble <171087428+frutescens@users.noreply.github.com>
* [Bug] Preventing the MBH from being stolen in Endless (#3630)
* Endless MBH Fix
* add import
* Revert "add import"
This reverts commit 814a4059c2.
* Revert "Endless MBH Fix"
This reverts commit 8eb4481301.
* removed newline
---------
Co-authored-by: Frederico Santos <frederico.f.santos@tecnico.ulisboa.pt>
Co-authored-by: frutescens <info@laptop>
* [Hotfix] Steal-able Mini Black Hole Pt 2 (#3632)
* Still have no idea where Eternatus is given the MBH....
* typedocs
---------
Co-authored-by: frutescens <info@laptop>
* Deleted phases.ts (#3618)
* Updated sound terms
* Added space for localization
* Update src/locales/ko/settings.ts
Co-authored-by: Enoch <enoch.jwsong@gmail.com>
* Update src/locales/zh_TW/settings.ts
Co-authored-by: mercurius-00 <80205689+mercurius-00@users.noreply.github.com>
* Update src/locales/pt_BR/settings.ts
Co-authored-by: José Ricardo Fleury Oliveira <josefleury@discente.ufg.br>
* Update src/locales/zh_CN/settings.ts
Co-authored-by: mercurius-00 <80205689+mercurius-00@users.noreply.github.com>
* Update src/locales/de/settings.ts
Co-authored-by: Jannik Tappert <38758606+CodeTappert@users.noreply.github.com>
* Update src/locales/ko/settings.ts
Co-authored-by: returntoice <dieandbecome@gmail.com>
* Update src/locales/fr/settings.ts
Co-authored-by: Lugiad' <adrien.grivel@hotmail.fr>
* Update src/locales/it/settings.ts
Co-authored-by: Niccolò <123510358+NicusPulcis@users.noreply.github.com>
* Include sound effects that were loaded in as BGM.
* Removed stray placeholder localization
---------
Co-authored-by: Frutescens <info@laptop>
Co-authored-by: flx-sta <50131232+flx-sta@users.noreply.github.com>
Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
Co-authored-by: Opaque02 <66582645+Opaque02@users.noreply.github.com>
Co-authored-by: KimJeongSun <leo@atlaslabs.ai>
Co-authored-by: Frederico Santos <frederico.f.santos@tecnico.ulisboa.pt>
Co-authored-by: innerthunder <168692175+innerthunder@users.noreply.github.com>
Co-authored-by: cam <lrlrliwoo@gmail.com>
Co-authored-by: Enoch <enoch.jwsong@gmail.com>
Co-authored-by: mercurius-00 <80205689+mercurius-00@users.noreply.github.com>
Co-authored-by: José Ricardo Fleury Oliveira <josefleury@discente.ufg.br>
Co-authored-by: Jannik Tappert <38758606+CodeTappert@users.noreply.github.com>
Co-authored-by: returntoice <dieandbecome@gmail.com>
Co-authored-by: Lugiad' <adrien.grivel@hotmail.fr>
Co-authored-by: Niccolò <123510358+NicusPulcis@users.noreply.github.com>
* fix damage calculations. add test code
* define toIntValue function to replace every repeatitive min floor function.
* revert unnecessary minimum boundary
* update function name `toIntValue` -> `toDmgValue`. update comments.
* add missing updates for changing function name
* Update src/utils.ts
Co-authored-by: flx-sta <50131232+flx-sta@users.noreply.github.com>
* remove redundant comment
* update import code for test with phase
---------
Co-authored-by: flx-sta <50131232+flx-sta@users.noreply.github.com>
* Adds simulated tag support to all abilities
* Fix compiler errors in ability.ts
Most things are still on fire 😢
* Fix errors left over after merge
* Another pass through simulated ability call logic
* Fix leftover errors from merge resolution
* Another gh pages issue :pikamad:
* Simulated call fixes based on Kev's feedback
* RIP phases.ts
---------
Co-authored-by: Xavion3 <xavion333@gmail.com>
* Fix Jaw Lock not removing TRAPPED tag after enemy faints
* Create tests for Jaw Lock
* Fix overrides import
* Clean up implementation + tests
* minor style change to phases
* Update src/data/move.ts
Co-authored-by: Adrian T. <68144167+torranx@users.noreply.github.com>
* Jaw Lock no longer overlaps its trapping effect
* Friendship ended with JAW_LOCK tag type
Now TRAPPED is my new best friend
---------
Co-authored-by: EmberCM <kooly213@hotmail.com>
Co-authored-by: Adrian T. <68144167+torranx@users.noreply.github.com>
* Fixed issue with falsy issue within condition to get a stat for IV scanner
* add fix setting code to prevent form/variant bug when default form/variant setting is wrong.
in addition, that fix code include gender fix, so i revert old gender fix.
update wrong log message.
* [Hotfix] Fix Memory Mushroom not showing relearner moves (#3619)
* Fix Memory Mushroom not showing relearner moves
* Fix rollout test
* Rewrite player faint logic in FaintPhase (#3614)
* 867 runerigus sprite (#3629)
cropped static frames, fixed cropped sprite
set runerigus exp to use the shiny exp's animation
verified all hex colors are unchanged
- fixed ultra necrozma exp front variant swapped arrays.
- xatu female eye color fix
* [Bug] Preventing the MBH from being stolen in Endless (#3630)
* Endless MBH Fix
* add import
* Revert "add import"
This reverts commit 814a4059c2.
* Revert "Endless MBH Fix"
This reverts commit 8eb4481301.
* removed newline
---------
Co-authored-by: Frederico Santos <frederico.f.santos@tecnico.ulisboa.pt>
Co-authored-by: frutescens <info@laptop>
* [Bug] Fix type-hints for immunity (#3620)
* enable mock containers to be found by name
* enable mock text to be found by name
* add test coverage for type-hints
Only for "immunity" and "status moves"
* fix wrong message key of curse(ghost type) (#3631)
Co-authored-by: Frederico Santos <frederico.f.santos@tecnico.ulisboa.pt>
* [Hotfix] Steal-able Mini Black Hole Pt 2 (#3632)
* Still have no idea where Eternatus is given the MBH....
* typedocs
---------
Co-authored-by: frutescens <info@laptop>
* [Hotfix] Abilities that prevent ATK drops no longer stop other stat drops (#3624)
* Abilities that prevent ATK drops no longer stop other stat drops
* Apply suggestions from code review
Co-authored-by: Mumble <kimjoanne@protonmail.com>
* Add `isNullOrUndefined()` utility function
---------
* Grip Claw now shows the proper pokemon nickname (#3634)
Co-authored-by: frutescens <info@laptop>
---------
Co-authored-by: Opaque02 <66582645+Opaque02@users.noreply.github.com>
Co-authored-by: KimJeongSun <leo@atlaslabs.ai>
Co-authored-by: Frederico Santos <frederico.f.santos@tecnico.ulisboa.pt>
Co-authored-by: innerthunder <168692175+innerthunder@users.noreply.github.com>
Co-authored-by: cam <lrlrliwoo@gmail.com>
Co-authored-by: Mumble <kimjoanne@protonmail.com>
Co-authored-by: frutescens <info@laptop>
Co-authored-by: flx-sta <50131232+flx-sta@users.noreply.github.com>
Co-authored-by: Enoch <enoch.jwsong@gmail.com>
Co-authored-by: Mumble <171087428+frutescens@users.noreply.github.com>
* Abilities that prevent ATK drops no longer stop other stat drops
* Apply suggestions from code review
Co-authored-by: Mumble <kimjoanne@protonmail.com>
* Add `isNullOrUndefined()` utility function
---------
* [Balance] Various Fixes
* Readjusted Legendary same-species eggs back to 10 candy
* Updated some passives
* Changed Chien Pao Passive
* Eevee passive final adjustment
* Chi Yu and Chien Pao changed again
* Arcto passives
Updated Pokemon.getLevelMoves()
Now enforces uniqueness AFTER filtering moves within the given range. This allows a pokemon to learn the same move at two different levels.
Updated pokemon-level-moves.ts
Changed Smeargle to learn Sketch at levels 11, 21, 31, ..., 91, instead of only at level 1.
* Refactor protection moves
* Revert Protected move result change
* Fix typo in documentation
* Fix merge conflicts in integration tests
* Improve readability of apply function
* Fix effects applying through Protect
* Fix typos in `src/data/egg.ts` comments
* [Localization(it)] Added Honey Gather translation (#2301)
* Update ability.ts [Localization(it)]
* Update ability.ts [Localization(it)]
Fixed capitalization
* Hitting into protect now records a move as failed
* Add check for move success before applying additional effects (Stone Axe)
* `Overrides` should be capitalized
* Add fail conditions for `RechargeAttr` and Jaw Lock
* Update protect test
* Add check for protect in Glaive Rush
* Update tests to use new overrides helpers
* Account for Mat Block and add protect test for Glaive Rush
---------
Co-authored-by: Niccolò <123510358+NicusPulcis@users.noreply.github.com>
* Crafty Shield now blocks ALL protect-ignoring moves
* Crafty Shield test + Fix blocking ally-target moves
* ESLint
* Mat Block and Wide Guard integration tests
* Fix strict-null errors in integration tests
* Fix strict-null issue in arena-tag
* Fix strict-null in unrelated test :pikamad:
* Fix conflicting AbAttr
---------
Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
Co-authored-by: Niccolò <123510358+NicusPulcis@users.noreply.github.com>