* replace `-1` and with `RELEARN_MOVE` and `0` with `EVOLVE_MOVE`
* add documentation for RELEARN_MOVE & EVOLVE_MOVE
* Update src/data/pokemon-level-moves.ts
* Adjusts bug bite functionality when stealing from opponent with three berry pouches
* Adjusts bug bite functionality when stealing from opponent with three berry pouches
* Adjusts bug bite to remove berry pouch preservation on opponent berries
* Remove Promise<Boolean> where unnecessary
Leftover code removed from previous testing of the EatBerryAttr class.
* Remove undefined check on chosenBerry
Co-authored-by: flx-sta <50131232+flx-sta@users.noreply.github.com>
* Update StealEatBerryAttr if-clause readability
Decrementing inside of an if-clause removed for readability. Changed to check: if count is 1, then remove modifier.
* Localization of StealEatBerryAttr battle message
* Fixes berry incrementing after improper adjustment to readability
* Fixes berry decrementing after improper adjustment to readability
* Update battle.ts
* Update src/locales/fr/battle.ts
Co-authored-by: Lugiad' <adrien.grivel@hotmail.fr>
* Update battle.ts properly
Incorrectly added localization in previous commit
* Remove unnecessary space
* Update src/locales/ko/battle.ts
I do not have experience with Korean, so this may need other review.
Co-authored-by: Enoch <enoch.jwsong@gmail.com>
* Rewrites EatBerryAttr to combine with StealEatBerryAttr
* Removes excess lines
* Revert and refactor StealEatBerry and EatBerryAttr
* Refactor for early returns instead of nesting
---------
Co-authored-by: flx-sta <50131232+flx-sta@users.noreply.github.com>
Co-authored-by: Lugiad' <adrien.grivel@hotmail.fr>
Co-authored-by: Enoch <enoch.jwsong@gmail.com>
* [Sprite] Gives Disguised form explicit identifier
`null` defaults to `disguised`, as is desired.
* [Sprite] Renamed Disguised form has exp sprites
* [Sprite] Add Busted Mimikyu to masterlist
* Rename static non-shiny front 778.png to 778-disguised.png
* static non-shiny front
* exp non-shiny front
* static non-shiny back
* exp non-shiny front
* static non-shiny back
* static shiny front
* static shiny front
* non-shiny icon
* exp non-shiny back
* shiny icon
* static var front
* exp non-shiny back
* exp shiny front
* exp shiny front
* exp shiny back
* static shiny back
* exp var front
* static var back
* Delete public/images/pokemon/variant/exp/778_3.png
* Delete public/images/pokemon/variant/exp/778_3.json
* exp shiny back
* exp shiny back
* rare icon
* epic icon
* exp var back
* static var front BUSTED
* static var back BUSTED
* exp var front BUSTED
* exp var back BUSTED
* [Sprite] Static Mimikyu Busted sprite fix
Fixes eyeholes on torso
* [Sprite] Exp Mimikyu sprite fixes
Fixes eyeholes on torsos
* Trim static shiny front sprite size
Addresses issue #2683
* [Sprite] Match static shiny Disguised w non-shiny
Addresses issue #2683
* Parental Bond basic implementation
* Parental Bond unit tests
* ESLint
* PBond AbAttr rework, documentation, and multi-target unit tests
* Update post-target move attribute logic
For Parental Bond interaction.
* AddSecondStrikeAbAttr now uses Constructor util
* Unit tests for PBond + Multi-Lens interaction
* Remove random damage spread in unit test
* Add null checks to PBond AbAttr
* Set player pokemon for unit test
* Fixed Post Target check to account for KO's
* Fix multi-strike moves applying effects at wrong times
* Test cases for updated effect timing
* Add Wake-Up Slap test case
* Fix Fury Cutter/Echoed Voice multi-hit interaction
* Fix Pay Day, Relic Song, and Fury Cutter (again)
* Add early stopping to multi-hit moves
* RecoilAttr now uses lastHitOnly
* Add faint check to last hit logic
* Test changes to change variant label color based on Tint
* Revert "Test changes to change variant label"
This reverts commit 0ad0f62930.
* minimal recovery changes
* Finalized recovery and implemented ShinyIcon
* add setY in MockSprite
* added back some unintentional removed code
* added shiny_icons
* Initial test for tier change
* implemented Shiny Icon full functionality
* slight setY change for non-Base starters
* Dry skin and ReceivedMoveDamageMultiplierAbAttr bug fix: first cut
* Dry skin and ReceivedMoveDamageMultiplierAbAttr bug fix: removed redundant branch
* Dry skin and ReceivedMoveDamageMultiplierAbAttr bug fix: reworded test cases that had typos anyway
* Dry skin and ReceivedMoveDamageMultiplierAbAttr bug fix: renamed PreDefendMovePowerToOneAbAttr (Disguise) to mention damage rather than power
* Dry skin and ReceivedMoveDamageMultiplierAbAttr bug fix: renamed powerMultiplier to damageMultiplier in ReceivedMoveDamageMultiplierAbAttr
* waveIndex trainer team config generatoin is cursed
* Updated grunt pools
* Removed a comma that was bothering me
* Add locales for es, fr, it, pt, zh for translators
* Update src/locales/zh_CN/dialogue.ts
Co-authored-by: Yonmaru40 <47717431+40chyan@users.noreply.github.com>
* Fix lint issue
* Update src/locales/pt_BR/dialogue.ts
Co-authored-by: José Ricardo Fleury Oliveira <josefleury@discente.ufg.br>
* Last min team tweaks
---------
Co-authored-by: Yonmaru40 <47717431+40chyan@users.noreply.github.com>
Co-authored-by: José Ricardo Fleury Oliveira <josefleury@discente.ufg.br>
* Fixed bug that legendary egg pity only increased by one if egg pulled out of legendary gacha
* Removed debug logs
* Added new unit tests. Fixed bug that sometimes common eggs do count as manaphy eggs.
* Add unthaw to moves that are missing it
Add unthaw to all damaging fire moves
Add Status Effect overrides for easier testing
clean up comments and readd status cure before fainting
* implement Costar ability, refactor TraceAbAttr to be more generic
* format code, clean up comments
* Revert "Add unthaw to moves that are missing it"
This reverts commit 89494fa0c8.
* clean up comments, remove unused call
* ability now copies negatives changes as well
* separate PostSummonCopy into two different classes
* small refactor of copy ability attrs
* add costar to test suite
* remove abstract declaration from comments
* remove broken import statement
* actually fix broken imports
* add i18n calls
* add en keys to other locales and sort by alpha
* Add unthaw to moves that are missing it
Add unthaw to all damaging fire moves
Add Status Effect overrides for easier testing
clean up comments and readd status cure before fainting
* implement Costar ability, refactor TraceAbAttr to be more generic
* format code, clean up comments
* Revert "Add unthaw to moves that are missing it"
This reverts commit 89494fa0c8.
* clean up comments, remove unused call
* ability now copies negatives changes as well
* separate PostSummonCopy into two different classes
* small refactor of copy ability attrs
* add costar to test suite
* remove abstract declaration from comments
* remove broken import statement
* actually fix broken imports
* Hotfix: Override varaint tier if species was given. Fixed that some common egg where displayed as manaphy egg.
* Fixes wrong manaphy egg pulled stat count
* Create variant-tiers enum
* Added variant tier override property to the egg class
* Added hasVariants function to pokemon species
* Implement variant override logic to egg hatching phase
* Delete src/enums/variant-tiers
* Create variant-tiers enum
* Added egg shiny and variant overrides
* fixed egg comment in overrides.ts
* Added override logic to egg hatch phase
* Added species pool filter logic when global override is set
* Added global egg tier override logic
* Added global egg tier override
* Added global gacha pull count override logic
* Added global gacha pull count override
* Renamed egg hatch override
* Renamed egg hatch override
* Added gacha pull without voucher global override
* Renamed free gacha pull global override
* Added free gacha pull override logic
* Gacha pull count override name fix
* Bugfix
* restored defaults + savegame bugfix
* eggOptions added to parameterize eggs. Added option to buy eggs of the same species.
* Small Bugfix for same species egg generation
* Removed translation from translator
* Improved the isManaphyEgg() check
* Fixed manaphy egg hatch wave count
* Added comments to IEggOptions
* Added eggOptions for hidden ability and rare egg move override
* Merge Fix: Update egg-hatch-phase.ts
* Fixed manaphy rates back to 1/256 like in PR #2182
* Renamed override, same species egg unlocks after passive is bought. Added code as comment for custom shiny, HA and rare egg move rates.
* Merge fix. Moved enums.
* quick fix for the commented out code
* Fixed that you can't buy an egg over the 99 egg limit
* Fix that you can't buy eternatus
* Use already existing randSeedShuffle instead of my own function
* Eternatus buyable again. Changed overrides to be able to set common tier/variants. Moved getGuaranteedEggTierFromPullCount().
* Changed eggOption gachaType to sourceType. Replaced eggOption overrideRareEggMove with eggMoveIndex to exatly specify an egg move. Moved egg move unlock logic into the egg class. Simplified shiny calculation. Added same species egg type descriptor. Moved custom rates for same species egg code into egg.ts.
* Added 19 unit tests for eggs
* Changed unit test description
* Added higher rates for same species eggs
* Adjusted same species egg cost for 1-3 cost starters and HA rates
* Added legacy egg loading unit test. Fixed gachaType legacy value loaded from DB and legacy tier loading
* Legacy egg loading from server DB fixed
Implements AddArenaTrapTagHitAttr for moves like Stone Axe and Ceaseless Edge.
Fixes chance for selfstatus moves.
Added Comments For AddArenaTrapTagHitAttr
* Bug fixes for spite, creates class to extend spite for eerie spell
* Comments for clarity, creates class to extend ReducePpMoveAttr
* Resolve reference error with AttackReducePpMoveAttr
* Shows move failed in a clearer way with showMoveText
* Localization of pp reduction moves
* Fixes issue of eerie spell reducing pp when ratio is 0
* Removes unnecessary phase replacement
* Remove partial implementation from eerie spell
* Adds locale entry for ppReduced to other languages
* Partially implemented Magnet Rise
* Implemented Magnet Rise
* Changed pokemon.ts so all TypeImmune tags work instead of just
MagnetRisen
* Magnet Risen is now removed when Gravity is used.
* Magnet Rise is ignored by Thousand Arrows
and Smack Down.
* Fixed a bug where status ground type moves
would also be ignored by Magnet Rise
* Added a message when Magnet Rise is removed
* Inserted TypeImmuneTag check in
getAttackMoveEffectiveness() for the AI
* Created a magnetRiseCondition separately
* Created a test for Magnet Rise
* Bug Fix in Magnet Rise test
* Created Magnet Rise test with Gravity
* Shifted the code from getAttackMoveEffectiveness
and apply into getAttackTypeEffectiveness instead
* Replaced onNextPrompt with doAttack
* Removed redundant runFrom(Phase)
* Replaced magnetRiseCondition with
battlerTags.every anonymous function
* Fixed import errors
* Added an undefined check for summonData
for TypeImmuneTag in getAttackTypeEffectiveness
* Replaced undefined-check with optional chaining
* add dependency cruiser and fix all default errors
* create svg render of dependencies in command
* move configs to ts files, await font loading
* fix i18n
* fix dependencies...
* fix typedoc generation and tsconfig exclusions
* revert github-pages fix for another pr
* no-circular -> no-circular-at-runtime for type imports (future)
* [Localization] Modification some code about battle stat for localization.
* Corrections to failed generating typedoc docs.
* [Localization] Modification some code about battle stat for localization.
* Corrections to failed generating typedoc docs.
* Corrections to change localized key for battle stat and level change description.
* Deleted battle-stat.ts file in Deutsch locales.
* Fixed build failure
* Move unit test file into localisation folder from battle folder.
* Fixed localization key
* Fixed build failure
* Fix merge conflict
* Fix merge conflict again
---------
Co-authored-by: Tempoanon <163687446+Tempo-anon@users.noreply.github.com>
Co-authored-by: Temps Ray <temps.ray@gmail.com>
* Force multi-hit moves to hit once if they are against an immune type
* Add test for multi-hit attacks against immune types
* Document MultiHitAttr
* Tiny change
* Wording fix
* Use shortcut methods in unit tests
* Fix leftover modifications from METRONOME testing
* Reorganize SAP SIPPER tests
* Fix extra imports
* Add generic to util holders to reduce manual type casting
* implement protean and libero abilities
* remove use only once per turn trigger
* Revert Attack Attribute Conditions back to requiring unused vars
* Remove conditional before invoking type change ability
* update protean to properly trigger and skip certain moves
* remove some dangerous typecasts
* revert autoformatting changes
* not all autoformatting changes were reverted
* Revert "Add generic to util holders to reduce manual type casting"
This reverts commit 3ee7f1d5ff.
* change some variable names
* remove incorrect comment
* update abilities so they use gen 9 logic
* fix typescript error from missing Terrain type
* update gameManager switchPokemon to match other menu utilities
* add test cases for protean and libero
* Fix type immunity given by abilities only applying to attacking moves
* Add tests for type immunity granted by abilities
* Use Sap Sipper as base for testing
* Fix type-immunity abilities activating on self-targeted status moves
* Add tests for self-targeted moves on mons with type-immunity abilitiies
* Volt absorb tests
* replace forceBypass with bypassFaint flag
* add another path alias for src/test
* make form override work for the whole party instead of the first pokemon
* add tests for all abilities that are touched by this change
* remove unnecessary overrides from tests
* move SpeciesFormChangeTimeOfDayTrigger outside arena reset logic
* remove alll resetMock calls, rename it to test
* Fix type immunity given by abilities only applying to attacking moves
* Add tests for type immunity granted by abilities
* Use Sap Sipper as base for testing
* fix postSummonPhase when opponent does not summon and fix the statsChange from push to unshift
* added switch pokemon helper method
* added on switch tests for intimidate
* fix test by overriding passive in tests
* remove a test not needed
* cleanup imports
* Implement Arceus Plates and Silvally Memories
* German localization for items
* Run linter on changes, add items to zh_TW localization
* linter cleanup
* Finish localization for other languages
Names for items sourced from Bulbapedia. Names for the items in Portuguese could not be reliably sourced, so they were as directly translated as possible.
* Add custom Blank Memory item
Currently does nothing, but the idea is that it would be used if the all-in-one form change item idea is followed through.
* Update item atlas
* Use move.type instead of type.value
The type effectiveness now works again.
* Update comments
* Fix type changing affecting only Silvally
* Condense switch cases down to a single line
As per Brain Frog's suggestion.
* Fix tinted caught icon false positive
* Remove unused import
* Rename and optimize
* Block comment
* Draft of evil team grunt pokemon pools
* Add graphics and music
* Add grunt spawn logic
* Add Giovanni
* Add team leader graphics
Giovanni and Ghetsis already have sprites, so they do not need added.
* Add teams for other evil team bosses
* Fix some typos and change hp bars to 2/2/2
* Fix sprites and add random team boss
* Add forced grunt encounter and update dialogue
* Update locales
* also lint en trainers
* More merge conflicts
* Deleted some duplicate images
* Correctly renamed the grunt files
* Forgot about team rocket
* New Magma Sprites
* Adjusted the trimming. Now they dont have as huge of a shadow bbelow them
* Fix grunt sprites
* Add real dialogue
* German Localization of the Dialogue
* Changes
* Tweak waves grunts spawn on
* Fix some typos in dialogue
* Y is canon
* Disable evil team spawns
* Fix another merge conflict
---------
Co-authored-by: Madmadness65 <blaze.the.fireman@gmail.com>
Co-authored-by: Jannik Tappert <tappertjannik@googlemail.com>
* Added fix for Run Away ability being trapped by trapping abilities.
Added fix for ghost type pokemon not having a 100% chance to run from battles.
* Removed log statement
* Removed commented out code
* Removed ghost type run away mechanics
* type hints
* fix overwritten change
* don't set color to white, just leave it unchanged
* remove unrelated code
* don't show hints if no opponents, use type effectiveness instead of move effectiveness
* fix color not going back to white when new opponent is sent
* move effectiveness to move info container
* add effectiveness overlay, partial hints only show move effectiveness, improve colors
* lint
* docs
* remove full hints, move container to right of enemy info box
* hide effectiveness while flyout is visible
* move setting to display, use default style color instead of white
* Initial challenge framework
* Add type localisation
* Change how challenges are tracked
Also fixes the difficulty total text
* MVP
Renames challenge types, temporarily hides difficulty, and implements challenge saving.
* Attempt to fix one legal pokemon in a double battle
* Make monotype ignore type changing effects
* Make isOfType correctly detect normal types
* Try to fix double battles again
* Make challenge function more like classic
* Add helper function for fainted or not allowed
* Add framework for fresh start challenge and improve comments
* Try to fix evolution issues
* Make form changing items only usable from rewards screen
* Update localisation
* Additional localisation change
* Add achievements for completing challenges
* Fix initialisation bug with challenge achievements
* Add support for gamemode specific fixed battles
Also make monogen challenges face the e4 of their generation
* Add better support for mobile in challenges
* Localise illegal evolution/form change message
* Update achievement names
* Make alternate forms count for monogen
* Update monotype achievement icons
* Add more comments
* Improve comments
* Fix mid battle form changes
* Reorder mode list
* Remove currently unused localisation entry
* Add type overrides for monotype challenges
Meloetta always counts for psychic and castform always counts for normal
* Change how form changes are handled
Now attempts a switch at the start of each turn instead of immediately
* Add start button to challenge select screen
* Make starter select back out to challenge screen if using challenges
* Fix daily runs
* Update tests to new game mode logic
* Added check for move changing type before determining if defending is immune to it because of an ability
* Remove duplicate Ability change class and added getType() function under a move
* Reworking how moves get passed into hit calc
* Fixing exceptions and overreaching changes
* reverting forwarn and dancing move back to original since they are not being changed
* fixing some small move related bugs
* Fixing file permissions after testing
* Fixing move type not resetting after individual MoveEffectPhase
* Fixing move.ts permissions (again)
* Addressing some MR feedback and adding some documentation for PokemonMove class
This also necessitated giving them unique front & back sprites too, even if they are currently just duplicates of the normal forms. This change will help players identify when they are using/have encountered a Partner Pikachu or Eevee.
* [Move] Implemented Court Change
* Returned overides to normal
* Added recommended changes
* Removed an unnecessary if statement for swaparenatagsattr
* Move the swaptags array to the call as well as changes to the quiet boolean
---------
Co-authored-by: Juan <jmora279@fiu.edu>