* Fixing Liquid Ooze to turn move user and not one with the ability as well as converted strength sap to use same logic instead of making it a separate class
* Replaced "undefined" with "null"
* Updated based on feedback + fix file permissions
* Fixing file permission on battler-tags
* Adding localization for drain message
* Apparently this file is 755 unlike the others
* Removed ability for custom message in exchange for getting to pass Pokemon name
* Once again changing moves from 644 to 755 like it is in repo right now :)
* putting ability back to 755 (why are file permissions all over the place)
* add type inference to getAttrs methods and refactor accordingly
* Tests/infer types for get attrs methods (#1)
* #1633: add spec/tests for coverage
* move ability/move tests into /src/tests and rename to *.test.ts to match common naming patterns
* use None in test cases to remove ambiguity
* revert back to before test cases were merged
---------
Co-authored-by: flx-sta <50131232+flx-sta@users.noreply.github.com>
* Implement Poison Heal Ability
* Removed unneeded import
* Fix some comments, as well as make Poison Heal only notify when healing
* Eslint fix
* Revert Phases
* Pushing for sake of reviewing; PR IS NOT DONE IT NEEDS TO BE TESTED AND COMMENTED AGAIN
* Changed the way healing is done, through a heal phase instead of heal(); Also added better documentation
* Changed healing, as well as making abilityTriggers updated
* Transferring item does not kick out of transfer menu
* Select simultaneously the item to transfer and the quantity
* eslint fix
* eslint fix
* Reset quantity on scroll
* Documentation
* eslint fix
* Added Perish Body ability
* fix linting issues
* Documentation + Checking if either pokemon has perish song tag
* Fixed typo and improved TriggerMessage
* Implements Magnet Pull and lets Levitate/Flying Pokemon ignore Arena Trap
* using isGrounded() instead of checking for Flying/Levitate
* MR feedback to use condtions for trapping instead of having it in the class
* Making Shadow Tag Pokemon immune to Shadow Tag
* Updated to make sure Tera Stellar Pokemon are checked against their original type as well
* Fixes Issue #993 by changing from base stats to include summonBattleStats
* Added TODO with Substitute
* Fix conflicts
* Unsure why true was put through for passive, probably just a mistake on my end
* !== fix
* Conflict fix
* Eslint Fix
* Implement Double Battle average to take in stats from both Pkmn
* Partially implement Cheek Pouch ability
* add cheek pouch trigger to EatBerryAttr class
* Partially implement Cheek Pouch ability
* add cheek pouch trigger to EatBerryAttr class
* add cheek pouch trigger to new berry phase, remove partial tag
* run auto formatter because I forgot
* hotfix berries triggering before status effects
* Revert "hotfix berries triggering before status effects"
This reverts commit 3fbbc9a165.
* add partial tags to abilities that would be blocked by Heal Block
* Implemented Zero-To-Hero
* Zero to Hero documentation and form reset on summon
* Zero to Hero: form reset on biome/trainer
* Updated documentation on PreSwitchOutFormChangeAbAttr apply
* Faint bypass on canApplyAbility
* revert zygarde
* zero to hero post-merge
* eslint config + packages
* updated eslint config
* fix the issue eslint adding ;;;; at interfaces
* first round with eslint --fix .
* removed config for unused export
* Revert "first round with eslint --fix ."
This reverts commit 77a88e0895.
* removed config for camelCase
* for real this time, first round of eslint --fix .
* halfway to manual eslint fix
* eslint done
* added "how to setup" the hook to eslint --fix each new file before commit (if wanted)
* removed eslintrc config file duplicat
* fix human error + ignore build folder + merge overrides
* added curly brace style + eslint
* applied double quote linter rule
* added lefthook
* test precommit
* test precommit
* test precommit
* test precommit
* test precommit
* test precommit
* test precommit
* github action to run eslint
* added node_modules to ignore eslint
* different action for typescript
* no need for different glob (default src)
* node 20
* node 20
* removed no longer needed install file
* remove hooks part from README
* eslint fixes
---------
Co-authored-by: Frederico Santos <frederico.f.santos@tecnico.ulisboa.pt>
* Adds in the accuracy and evasion bypass for Mind's Eye
* Added comment to new IgnoreOpponentEvasionAbAttr class
* Added docs to apply so that it is actually complete
* test commit
* de modified readme
* first implementation, needs testing with healer
* fixed beahviour if 2+ opponents are on field, also added message
* further fixed
* reset of overrides.ts before merge to main
* fixed grammar
Co-authored-by: Jonas Pinson <jonas.pinson@gmail.com>
* Implemented changes suggested by @bennybroseph and @TempsRay
* Added more docs to the class
* removed old comments
* fixed ability name in comments
* added translation and made message localized
* fixed ability name
* added missing bracket
---------
Co-authored-by: Jonas Pinson <jonas.pinson@gmail.com>
* Checks if Pokemon is Ghost type when determining if it is trapped
* Adding doc comments based on new standard
* Update ability.ts
---------
Co-authored-by: Benjamin Odom <bennybroseph@gmail.com>
* Implemented Ball Fetch
* Added once per battle condition
* Ability only functions on player side
* Update ability.ts
---------
Co-authored-by: SamuelHudson <samuel.hudson2017@gmail.com>
Co-authored-by: Benjamin Odom <bennybroseph@gmail.com>
* Implemented Merciless
Attribute CritIfTargetIsPoisonedAbAttr
Fix BlockCritAbAttr
* Changed CritIfTargetPoisonedAbAttr to ConditionalCritAbAttr
Now any condition related to user, target or the move used can be applied to guarantee a critical hit.
* Ability Corrosion
Implemented Corrosion Partially.
Tested against:
- Poison Powder
- Toxic
- Dire Claw
- Sludge Bomb
- Psycho Shift
They all work as expected
Missing ability Magic Bounce to test against.
* Added TSDoc Documentation
Added documentation to the new IgnoreTypeStatusEffectImunnityAbAttr and added comments to the checks for this ability attribute.
* Added More Documentation
Add comment into Phases for what sourcePokemon is for.
Renamed source to sourcePokemon onto trySetStatus and canSetStatus.
Added TSDoc head for what sourcePokemon is and anything else I am aware of what they are used for.
* Removed unfinished TSDoc
Removed TSDoc headers due to not having enough understanding to fill out all of the parameters
* Fix Formatting and Reorder Parameters
* Update arena-tag.ts
* Update phases.ts
* Update ability.ts
Added access modifiers to my class and the class I compared to.
---------
Co-authored-by: Benjamin Odom <bennybroseph@gmail.com>
* Airlock ability now properly announces when it is
in field when the pokemon with it is switched in
* Set message as in the original games, also created
a new attribute for in switch messages to not have
the pokemon name required to be on it.
* Committing language changes (i18n function)
* Revert "Committing language changes (i18n function)"
This reverts commit 2a3152003b.
* Changed message variable name
* Fixes some variable damage moves not working with abilities
* Rework as new ability attribute
* Update variable base power check to original location
* formatting
* Add tsdoc comments
* add floor for potential non int multipliers
* Update pokemon.ts
---------
Co-authored-by: Benjamin Odom <bennybroseph@gmail.com>
* Fixes sturdy to stop popping up even if not used
* Made changes to better the code, also added
a check for wonder_guard 1hp
* Refined code, as requested by bennybroseph
* Made a small fix and added better comments in
relation to interaction with Wonder_guard ability
* Implemented Snipe Shot and Stalwart/Propeller Tail
* Remove Testing Overrides
I don't know why these got pushed, they are in the gitignore file.
* Snipe Shot also has a high crit rate
* Add Comment
* Add TsDoc documentation to BypassRedirectAttr
* Add ability pop-up for when Propeller Tail/Stalwart proc.
* Fix Formatting
* Tab align comment
* Implements healer
* adds an ally check to the condition
* done testing, changes chance back to 30%
* adds comment header for PostTurnResetStatusAbAttr
* adds override to resetStatus to not allow revive
* dont revive
* override revert
* implements cursed body
* 30 percent chance to proc
* check if max
* removes unimplemented tag
* bypasses faint
* un-disable message specifies pokemon name
* adds prefix to un-disable message
* space issue
* fix scrappy and mindseye working as passive ability
* update apply for ignoretypeimmunityabattr
* simplify logic for ignoretypeimmunityabattr
---------
Co-authored-by: contra1337 <jpbastyr@gmail.com>
* Fixed Crash Moves and Reckless
Added a new MoveFlags flag 'RECKLESS_MOVE' to make crash and recoil moves in line with other move flag boosting attacks.
Modified how flags were defined so they are easier to maintain.
Added the appropriate flag to all mvoes listed as being affected by Reckless. Steel Beam and Mind Blown do not count according to source:
https://bulbapedia.bulbagarden.net/wiki/Reckless_(Ability)
* Update move.ts
* Update abilities.ts
* abilities: implement guard dog, abilities that give intimidate immunity
* abilities: implement rattled's second effect, remove refs to mold breaker
* abilities: fix rattled not giving the attack drop still
* abilities: make ability bars pop in to some success
* abilities: implement suction cups since it has the same effect
* moves: add custom fail text, fix animation issues with Guard Dog/Roar
* abilities: manually show intimidate ability bar to prevent weirdness
* abilities: implement opportunist
* abilities: make it not infinitely loop like a dummy
* abilities: properly ignore only opportunist on opportunist boosts
* abilities: rename some things to make a bit more sense
* abilities: implement anger shell and berserk
* abilities: fix small typo causing berserk to raise speed instead of spatk
* abilities: condense battlestats into an array instead of multiple attrs
* Fix effect spore, tera blast distribution, and IVs shown on catch
* Forgot to add tms
* Unown does not learn any TMs
* Fix some tera blast learns
* delelele whooooop
* Some Fixes
- HP ratio related checks (`getHpRatio`): Added rounding to 2 decimals for non-precise option.
- Hustle (`BattleStatMultiplierAbAttr`): added optional condition; Hustle now works only for physical attacks.
- Imposter (`PostSummonTransformAbAttr`): Switch in a double battle after both foes have been defeated no longer crashes the game.
- Sleep Talk (`RandomMovesetMoveAttr`): Single target moves no longer target allies.
* Formatting changes for consistency
---------
Co-authored-by: Flashfyre <flashfireex@gmail.com>
Both abilities are still not fully functional yet (Battle Bond does not interact with Water Shuriken yet, Power Construct does not interact with 10% Power Construct Zygarde, and both forms do not revert after a battle yet), but this is a step to having them both completed.
Battle Bond Froakie line and Power Construct 50% Zygardes (as well as Aura Break 10% Zygardes) can now randomly appear in the wild.
Expect Battle Bond to potentially change to its Gen 9 version at some point in the future, rendering Ash-Greninja inaccessible.
* Support localization of Pokemon abilities
* Reload ability localization when language is changed
* Add Spanish localization for abilities
* Add missing French abilities localization
* Add missing localize call on abilities
---------
Co-authored-by: Flashfyre <flashfireex@gmail.com>
* Implement Rivalry
* Implement Quick Feet, Liquid Voice, and Normalize
* Forgot paralysis is half speed instead of a quarter
* Remove log statements
* Fix minor edge case in rivalry for gendered vs genderless
* Add wind abilities and charge
* Implement Charge and more abilities
* Add i18n support and Beedrill fury cutter
* Fix merge conflict in taunt
* More English strings removed
Shields Down is only partially implemented; the form changing aspect is implemented, but the immunity to statuses is not yet.
Minior's alternate colored forms can now be encountered in the wild.
Rotom's appliance forms should *finally* appear in the wild correctly now.
And a minor fix for Zen Mode activating incorrectly.
Since Competitive is just Defiant but for SPATK, the code for Defiant was reused with the buff changed to special attack. This should mean the ability works the exact same way as Defiant for it's respective stat.
* Implement Rivalry
* Implement Quick Feet, Liquid Voice, and Normalize
* Forgot paralysis is half speed instead of a quarter
* Remove log statements
* Fix minor edge case in rivalry for gendered vs genderless
* Snow Cloak Hail Condition Fix
Snow Cloak's evasion wasn't actually checking for hail, so the condition has been added.
* Snow Cloak
getWeatherCondition is not meant to have a capital.
* Implement Shed Skin (and Hydration!)
Implemented Shed Skin, with a 1/3 chance to remove a non-volatile status condition if inflicted with it at the end of each turn. While doing this I noticed Hydration is the same effect but in Rain/Heavy Rain, so I implemented that too.
* Update to ability.ts based on changes.
Formatting errors should be largely fixed, and we've switched from Math.rand to Utils.
* Update src/data/ability.ts
---------
Co-authored-by: Samuel H <flashfireex@gmail.com>
* Fix checking the wrong Pokemon for statuses when determining if abilities such as Static should activate.
* Implement Rough Skin
* Implement Iron Barbs and make Rough Skin code reusable for other abilities
* Remove unused import
* Changes for consistency
* Add missing ceiling function to damage
---------
Co-authored-by: Flashfyre <flashfireex@gmail.com>
More work toward getting Ogerpon's unique Terastal forms functional. Also fixes the graphics for the Terastal Ogerpon forms, as they were scaled incorrectly.
The Attack and Special Defense boost works, but only for the ability holder currently. It does not change Cherrim's form yet.
Also adds the necessary battler tag entries because I forgot them in the previous commit.
This implements Chilling Neigh, Grim Neigh, and both As One abilities.
Also separates the Embody Aspect ability into four for later when it's implemented, and adds the graphics for Ogerpon's Terastallized forms.
Fully implements Electric, Psychic, Misty, and Grassy Surge. Partially implements Grass Pelt, Surge Surfer, and Hadron Engine, as their stat-boosting properties don't seem to work as intended.
This fix currently has the unintended side effect of making Champion Leon unable to be fought, but every other set of Elite Fours is now followed by the proper Champions as intended.