446 Commits

Author SHA1 Message Date
td76099
06ba63dd7d
[Bug] Liquid Ooze hurts move user instead of one with ability (#1301)
* 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)
2024-06-01 15:53:32 -04:00
Dmitriy K
d052d444b6
[QoL] Add type inference to getAttrs methods and refactor accordingly (#1633)
* 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>
2024-05-31 19:50:30 -05:00
dielle000
bda3013c19
Allow selection of item quantity when transferring items (fixes #723) (#1394)
* 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
2024-05-30 16:58:10 -05:00
Ethan
d70ab3eaf6
[Move] Implement Punishment (#1610)
* Implement Punishment and reopen pull request 373

* Fix console log and ()
2024-05-30 17:01:42 -04:00
Dmitriy K
329c9619f6
Add unthaw logic to Steam Eruption, Scorching Sands, Matcha Gotcha and all Damaging Fire moves (#940)
* 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 prefaint

* use helper instead of accessing attrs directly

* remove status overrides
2024-05-30 15:04:50 -05:00
Benjamin Odom
8d3c334e50
Fix move.ts Errors (#1564) 2024-05-29 11:54:33 -04:00
Xavion3
1b7b539d68
Implements Supreme Overlord and fixes Last Respects (#1219)
* Implements Supreme Overlord

Also fixes count for Last Respects

* Add comments
2024-05-29 11:07:59 -04:00
Amani H
47d39388ac
Implement Triple Kick/Triple Axel/Population Bomb (#1341)
* Implement Triple Kick/Triple Axel/Population Bomb

* Add maximum allowed base power increments

* Add documentation

* Fix Population Bomb, Account for Skill Link

* Change multi-hit power increment behavior

* Fix Typo
2024-05-29 00:07:35 +01:00
Dmitriy K
9893c21a7e
implement Cheek Pouch ability (#987)
* 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 3fbbc9a165b5244325851a08c4daa8415337834b.

* add partial tags to abilities that would be blocked by Heal Block
2024-05-28 13:19:03 -04:00
ReneGV
bfe018ef65
Implement Comatose (#1423)
* Implement Comatose

* Lint

* Remove todo comment

* Remove partial
2024-05-27 06:01:03 -05:00
td76099
c4c4774528
Beat Up checks the user's party instead of always checking player's party (#1268) 2024-05-25 06:31:04 -05:00
innerthunder
4ffff8e1ee
Implement Quick Guard and other conditional team protection moves (#1275)
* Implement conditional protection arena tag

Affected moves:
- Quick Guard
- Wide Guard
- Mat Block
- Crafty Shield
- Feint (updated)

* Add support for moves that ignore Protect to conditional protection moves

* Comments for protect arena tags

* ESLint

---------

Co-authored-by: Benjamin Odom <bennybroseph@gmail.com>
2024-05-25 06:22:10 -05:00
ReneGV
5c327e347a
Implement Purify (#1291)
* Implement purify

* Code review fixes

* Remove vitest import

* Update status-effect.ts

* Update status-effect.ts

---------

Co-authored-by: Benjamin Odom <bennybroseph@gmail.com>
2024-05-25 06:01:23 -05:00
arColm
ae2928e1c9
Implement Poison Puppeteer (#320)
Co-authored-by: Benjamin Odom <bennybroseph@gmail.com>
2024-05-25 04:51:36 -05:00
Douglas Marchione de Souza
0d6145263f
Acrobatics does not treat vitamins as held items (#718)
* Changed the move Acrobatics so it doesn't include
non-held items on it's damage calculations

* Changed exception so it includes within_party
items, and updated the move description

* Small typo e_e'

* Change Description of Move

---------

Co-authored-by: Benjamin Odom <bennybroseph@gmail.com>
2024-05-24 15:49:23 -05:00
Jakub Hanko
a48ba9864d
Implement Destiny Bond move (#1104)
* Use getBattleStat instead of getStat in BattleStatRatioPowerAttr

* Change unnecessary let into const

* Refactor BattleStatRatioPowerAttr into two distinct classes

* Add TSDoc for the new classes

* Implementation of Destiny Bond

* Add TSDocs

* Make the move fail in boss battles

* Fix boss immunity and ally fainting

* Update docs

* Add doc of return value of tag lapse

* Fix ESLint
2024-05-24 15:23:23 -05:00
Greenlamp2
622885767d
Enforce Consistent Spacing with ESLint's space-before-blocks and keyword-spacing Rules (#1308)
* added rule no-trailing-spaces

* added rule space-before-block

* added rule keyword spacing
2024-05-23 19:19:20 -05:00
Greenlamp2
e2be6ba002
added rule no-trailing-spaces (#1307) 2024-05-23 18:45:04 -05:00
Greenlamp2
bac6c22973
ESLint - The Essential Linter and Formatter for JavaScript and TypeScript (#1224)
* 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 77a88e0895f7c3389cb223651b90d918af778fe9.

* 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>
2024-05-23 11:03:10 -04:00
Vance Ehrlich
45415a87bb
Disable tera-blast to prevent its use while there is not an animation (#1270)
* Disable tera-blast to prevent its use while there is not an animation

* Update TERA_BLAST to be unimplemented rather than partial
2024-05-22 23:37:23 -05:00
Ethan
ecc17c5342
Fixes Issue #805, the TODO was for a bug and was fixed in Platinum (#1238) 2024-05-22 09:59:29 -05:00
arColm
80f6b62d1b
Implement Revival Blessing (#343) 2024-05-19 18:02:17 -05:00
rayanzmn
f1394307f4
Fixes recoil damage calculation (#1063)
Recoil damage previously used the total damage dealt by the user instead of using the damage dealt in the current turn.
2024-05-19 17:54:17 -05:00
arColm
f649179e24
Implement Grassy Glide (#272) 2024-05-19 17:52:51 -05:00
lucfd
9f699537bc
Implemented Bug Bite, Pluck, Teatime (#232)
* implemented pluck, bug bite

* steal blocked by sticky hold

* implemented teatime

* added stuff cheeks

* added berry pouch support

* fixed StealEatBerryAttr sometimes eating 2 stacks of a berry

* added comments & documentation

* added more comments

* added comment on stuff cheeks condition

* fixed 0 stack berry modifier  not disappearing

* stuff cheeks bug fix

* fix leppa berry logic

* removed stuff cheeks
2024-05-19 17:47:30 -05:00
hayuna
840dba79cc
Implement Trump Card move (#816)
* Implement Trump Card move

* Add docs, rearrange order of conditions

* Add Pressure consequences

* Remove additional reducing PP if pressure

* Update comments to adjust ways of working
2024-05-19 13:17:58 -05:00
Jaime
df7cb209f7
Fix Curse targeting for non ghost types (#782) 2024-05-19 12:40:56 -05:00
Alvin Zou
608a968db4
Implement Beat Up (#593) 2024-05-19 09:22:37 -05:00
Matt Ross
e8c1098b91
Mostly implements upper hand (#433) 2024-05-19 09:04:19 -05:00
lucfd
78c8e8164d
Implemented Terrain Pulse & Misty Explosion (#235)
* implemented Terrain Pulse

* type only changes when grounded

* Implement Misty Explosion

* fixed grounded check

* added tsdoc

* Update move.ts

---------

Co-authored-by: Benjamin Odom <bennybroseph@gmail.com>
2024-05-19 08:31:13 -05:00
Benjamin Odom
4a9664c04c
Fix Entry Hazard Miss (#984)
* Fix Entry Hazard Miss

Made Entry Hazards bypass the accuracy check as they cannot miss a target. There's still one more bug to fix with this but it requires way more code changes. This change needed to be done as well, so I'm getting it out early.

* Update move.ts
2024-05-17 21:20:02 -04:00
Madmadness65
1f1c243415 Revert "Fix sparkly swirl cure status (#1051)"
This reverts commit 6bcf4e008a77026a47a22605c482b1045a4243a0.
2024-05-17 15:37:34 -05:00
Charlie Giang
6bcf4e008a
Fix sparkly swirl cure status (#1051) 2024-05-17 15:03:55 -05:00
Jakub Hanko
b4f643f0fa
Use getBattleStat instead of getStat in BattleStatRatioPowerAttr (#742)
* Use getBattleStat instead of getStat in BattleStatRatioPowerAttr

* Change unnecessary let into const

* Refactor BattleStatRatioPowerAttr into two distinct classes

* Add TSDoc for the new classes
2024-05-17 01:42:43 -04:00
Tempoanon
f2b5a1b6f4
Fix some Pokemon classifications (#857) 2024-05-16 22:11:53 -05:00
Benjamin Odom
ff086ca492 Adjust all Existing Comments to Match
Adjusted all existing comments on move.ts to match
2024-05-16 08:38:27 -04:00
Ice
b9d48e9138
Change seed flare stat drop to 2 stages (#943) 2024-05-16 00:12:19 -05:00
Flashfyre
3c8d919ef8 Revert "Implemented Power Split and Guard Split (#699)"
This reverts commit 0b75a5210aea737e18acbbadfe3013fed30136df.
2024-05-15 10:13:29 -04:00
Frederico Santos
0b75a5210a
Implemented Power Split and Guard Split (#699)
* Implemented Power Split and Guard Split

* Update changeStat method to use summonData for Pokemon stats

This commit modifies the `changeStat` method in the `Pokemon` class to use the `summonData` object for updating Pokemon stats instead of directly modifying the `stats` object. This change ensures that the updated stats are correctly reflected in the `summonData` object, which is used for battle calculations and other related operations.

Refactor the `getStat` method to check if `summonData` exists and return the corresponding stat value from `summonData.stats` if it does. Otherwise, return the stat value from the `stats` object.

This change improves the accuracy of stat calculations during battles and ensures consistency between the `stats` and `summonData` objects.

* Added documentation for Power Split and Guard Split + linting

* removed incorrect files

* Removed incorrect folder

* removed unnecessary import

* Added documentation for getStat and changeSummonStat methods

* New description for getStat()

* Adjusting function descriptions

* adjusted descriptions according to guideline

---------

Co-authored-by: Frederico Santos <frederico.santos@fivedegrees.nl>
2024-05-15 07:41:40 -05:00
andrew-wilcox
1f5b2726b5
added auto hit and 2x damage from certain moves when targeting a pokemon that used minimize (#824)
* added auto hit and 2x damage from certain moves when targetting a pokemon who used minimize

* review fixes and bad merge

* review fixes and bad merge v2

* changed to be double damage instead of power for the minimize condition

* added TSdocs for function]

* remove ability to add minimize tag to dynamax-mons

* status cannot be applied to max-mons, and falls off if they dynamax

* updated doccumentation

* Update move.ts

---------

Co-authored-by: Cae Rulius <cae@polywhack.com>
Co-authored-by: Benjamin Odom <bennybroseph@gmail.com>
2024-05-15 07:36:34 -05:00
Jannik Tappert
512016faef
Sacrifical Moves (that dont require a target like explosion or self d… (#691)
* Sacrifical Moves (that dont require a target like explosion or self destruct) now also work if the target is flying, diving etc.

There is also a new catagorie of moves. "SacrificalMovesOnHit" for all moves that need to hit for them to be sacrifical like MEMENTO

* Added comments, added (what i think is TSDoc) to functions and classes. Removed empty lines i introduced

* .

* Added fixes for the Review by TempsRay.

* Added missing *

* Remove Target Requirement of SacrificialAttr

* Update move.ts

---------

Co-authored-by: Benjamin Odom <bennybroseph@gmail.com>
2024-05-15 04:10:20 -05:00
Benjamin Odom
835b00d457
Added Comments to Base Classes (#860) 2024-05-14 23:19:12 -05:00
Ethan
7d3cf577a6
Implented Gen VII Sheer Cold Changes (#349)
* Made Sheer Cold not affect Ice Types, as well as implementing the Gen VII change of 20% for non ice types.

* Pushed accurancy change

* Updated and separated the accuracy attribute and the Ice no effect attribute

* Fixed the OHKO attribute (accidentally removed) and fixed multiplier

* Updated attribute names, as well as making the move cancelled instead of 0x multiplier

* Added TSDoc comments

* Updated accuracy logic

* Changed the text response for Sheer Cold immunity

* Added immune to the HitResult enum
2024-05-14 13:01:37 -05:00
Brandon Rodgers
06c3611d06
Ability Corrosion (#744)
* 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>
2024-05-14 13:00:37 -05:00
Madmadness65
4e279224c5 Update Let's Go moves to their Gen 8 functionality
This primarily just affects Zippy Zap, as it loses its always crit attribute for an evasion increase (Associated localization strings will need updating). Also implemented Sparkly Swirl's status curing attribute.

Also included is a wild evolution delay for some stone evolution Pokémon that was previously overlooked.
2024-05-13 20:59:38 -05:00
LaukkaE
1d29ca7974
Fix Comeuppance (#781) 2024-05-13 18:48:22 -05:00
Matt Ross
4e6cf2a6ac
Facade should ignore burn damage reduction (#530)
* Facade should ignore burn damage reduction

* update order of burn conditions

* remove unnecessary space

* undo facade check in apply

* Rework facade bypassing burn as move attribute

* Only check ability attribute if move attribute was false

* Add missing semicolon

* Add tsdoc comment

* Add comment to burn damage reduction class

* Added changes from Discord thread

---------

Co-authored-by: Benjamin Odom <bennybroseph@gmail.com>
2024-05-13 13:06:15 -05:00
Marcos
3cc990f5d2
Fully implemented floral healing (#250)
* Created BoostedHealAttr and implemented Floral Healing

* Update move.ts

---------

Co-authored-by: Benjamin Odom <bennybroseph@gmail.com>
2024-05-13 04:27:38 -05:00
Frederico Santos
e4afdf1d45
Add ignoresProtect to life dew (#758)
Co-authored-by: Frederico Santos <frederico.santos@fivedegrees.nl>
2024-05-12 02:18:23 -05:00
notpatchmaybe
ea459826d0
Heart Swap implementation. (#712)
* Heart Swap implementation.

 Simply switches the values in 3 arrays.

* Fixed missing space

* Removed some lines.

Removed a for loop.

* Removed an unneccesary line

* TSDoc commentation added

* Changed message method to be more descriptive

* Adjusted message line to be consistent with Pokemon Showdown

* Adjusted priorBoostArray to priorBoost integer

Only one values is relevant at a time, so the array was pointless, woops.
2024-05-11 09:42:57 -05:00