307 Commits

Author SHA1 Message Date
Tempoanon
ac8ae6c724
Thunderclap should not let the AI read your inputs (#1884) 2024-06-06 12:59:22 -05:00
Dmitriy K
223d8a731d
[Feature] Implement Full Heal/Lum/Full Restore to heal Confusion #1658 (#1876)
* Added Confusion to be healed with Full Heals and Full Restores

* Semi-Colon oversight

* Changed resetStatus to have a condition whether to include confusion or not, defaults to false so you manually have to add

* Fixed spacing and semicolon

* Refactored the Lum Berry case

* Fix berry conflicts

* Update {}

* Fix PP Conflict

* Build fix?

* Fix Modifier

* Build Fix

* Fix

* Fix StatuHeal from eslint

* Fix revive (will show testing through everything again)

* Update documentation

---------

Co-authored-by: Ethan <hensley.ethan64@gmail.com>
Co-authored-by: Ethan <71776311+EvasiveAce@users.noreply.github.com>
2024-06-06 12:04:16 -04:00
c4vv
e0401a93aa
[Bug] Fix generateVariant to account for forms (#1783)
* Add form check to generateVaraint

* Add index check

* Fix for typedoc
2024-06-06 10:55:50 -04:00
Matthew
c5689dfc96
dont make api calls when no server is connected in local (#1847)
* dont make api calls in local without a server connected and fix fusionLuck not set by default
2024-06-05 21:24:47 -04:00
Matthew Olker
b532a6b2d0 okay not that lucky 2024-06-05 11:21:47 -04:00
Matthew Olker
6d71db0f13 luck based encounter 2024-06-05 11:02:58 -04:00
NightKev
395fa6e33d
[Bug] Allow second mon of a fusion to learn/remember on-evo moves (#1778)
Fixes #520
2024-06-05 10:36:42 -04:00
Benjamin Odom
6dbf99cc72
[Bug] Fix Circular Dependency with BerryType (#1802)
* Fix Potential Circular Dependency with BerryType

* remove .js
2024-06-04 19:03:02 +01:00
Tempoanon
1c73b3b084
Revert "[Feature] Add possibility to override whole user party (#1643)" (#1796)
This reverts commit ef8b6aa4f9fee580d178b8e5333b41286825d19c.
2024-06-04 16:39:02 +01:00
hayuna
ef8b6aa4f9
[Feature] Add possibility to override whole user party (#1643)
* Add possibility to override whole user party

* Update species overriding

* Replace SPARTER_SPECIES_OVERRIDE with array

* Replace SPARTER_SPECIES_OVERRIDE with array

* Add possibility to override species forms

* Add possibility to override species forms

* Fix eslint styling

* Add possibility to override Abilities for party

* Override status, gender, moveset

* Add possibility to override shinies

* Fix CI
2024-06-04 11:29:38 -04:00
Benjamin Odom
98cff12fd1
[QoL] Add Arena Info Flyout for Weather, Terrain, etc. (#1734)
* Initial Commit

* Add Time of Day Icons and Remove Fight UI Dependancy

* Rename to Match

* Update battle-scene.ts

* Add Settings

* Add Comments
2024-06-03 21:18:09 -05:00
Jannik Tappert
7ee6c979cf
Disables all unique double battles but tate and Liza. And those two will now always have lunatone and the other one (solrock?) as their first pokemon (#1654) 2024-06-02 09:15:17 +10: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
Benjamin Odom
19885e0558
Add Arena Events (#1627)
* Add Arena Events

* Update arena-events.ts
2024-05-31 17:52:16 -05:00
innerthunder
2dff35c407
Fix Neutralizing Gas self-suppression (#1662) 2024-05-31 16:35:52 -05:00
Tempoanon
0c862839d3
Revert "[Bug] Full Heals and Full Restore cure confusion (#1112)" (#1653)
This reverts commit 6c4b60a2faca4f52fd83808e1bd6c331aa98a2c3.
2024-05-31 15:56:39 +01:00
Ethan
6c4b60a2fa
[Bug] Full Heals and Full Restore cure confusion (#1112)
* Added Confusion to be healed with Full Heals and Full Restores

* Semi-Colon oversight

* Changed resetStatus to have a condition whether to include confusion or not, defaults to false so you manually have to add

* Fixed spacing and semicolon

* Refactored the Lum Berry case

* Fix berry conflicts

* Update {}

* Fix PP Conflict

* Build fix?

* Fix Modifier

* Build Fix

* Fix

* Fix StatuHeal from eslint
2024-05-31 10:31:15 -04: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
Tempoanon
cb6a0b9973
Fix bug with variant rate (#1613) 2024-05-30 22:25:53 +01:00
Tempoanon
3e932ce2d0
Shinylock uncatchable Pokemon in endless mode (#1252)
* Shinylock uncatchable Pokemon

* Fix typos

* Pass the linter vibe check

* Remove 2 shinylock cases

* refactor
2024-05-30 16:20:27 -04:00
ImperialSympathizer
3b852c5bf2
[Bug] Fix weather effects to work on the first turn of being cast (#1503)
* update weather phase so weather effects proc properly

* remove redundant weather replace phase logic

---------

Co-authored-by: ImperialSympathizer <imperialsympathizer@gmail.com>
2024-05-30 12:07:28 -05:00
Dmitriy K
b1c208cd86
[Feature] Add status override (#1602) 2024-05-30 12:49:57 -04:00
Benjamin Odom
9b5c1cdadb
Adds a Small Flyout Panel to the Battle Info Object (#1377)
* Initial Commit

* Update pbinfo_enemy_boss_stats.png

* Move to Separate Key

* Add Separate Mobile Control for Flyout

* Add Setting to Enable/Disable

* Add to the Tutorial

* Change to BUTTON.V
2024-05-29 20:29:59 -04:00
Benjamin Odom
700ccf3afc
Various Error Fixes (#1580)
* Add @types/node to the package lock to resolve node_module errors

Devs will need to run npm install --save-dev @types/node on their end as well

* Final Various Fixes
2024-05-29 18:14:32 -05:00
Jannik Tappert
ac4e72c87a
Fix double battle named trainers having unevolved Pokemon (#1582) 2024-05-29 18:33:18 -04:00
Frederico Santos
89f58961cb
Implement Zero to hero (#1131)
* 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
2024-05-28 06:11:04 -05:00
Greenlamp2
3120917368
Overrides - Gender, Xp multiplier and arena tint (day & night) overrides (#1201)
* added override gender and arena tint (day & night)

* cleaner diff

* reset override

* fix gender override default value

* removed useless return variable

* also null for opponent

* add override tint, gender, xp multiplier

* remove condition duplicated + set overrides initial value to null

* added comments

* eslint

* Update overrides.ts

---------

Co-authored-by: Benjamin Odom <bennybroseph@gmail.com>
2024-05-26 11:17:41 -05:00
Jannik Tappert
bc773f07e3
Added a check for if it is a double battle. Otherwise a named trainer that has a potential double would show the "female" (partner) sprite if the solo battle was of female variant. (#1383) 2024-05-26 15:48:28 +01:00
Jannik Tappert
aaa96ebe0e
Adding the option to have named trainers be able to have a double battle together (#1318)
* WIP: Adding the option to have named trainers be able to have a double battle together

* The team generation now works.
Also changed it so the special pools are now seperatly defined so we can access it for the team generation of the doubles.

They will happen at a 33% chance.

TODO: Option for seperate double dialogue (because for example the dialogue for tate and liza dont make sense since they reference their other sibling not beeing there...)

* Obviously didnt mean to push changes to battle.ts... (I made this change for a test)

* The doubles now have victory and encounter dialogue (the dialogue itself isnt THAT good since english isnt my first language)

* Changed signatureSpecies for the new galar elite 4

* Added Marnie & Piers as a double

* ESLint

---------

Co-authored-by: Benjamin Odom <bennybroseph@gmail.com>
2024-05-25 07:47:18 -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
Matthew Olker
1e283afc84 fix anmation duplicate warnings 2024-05-24 22:57:47 -04: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
Franck TROUILLEZ
68e94845ab
Add BattleInfo to TargetSelectUiHandler to move when target selected (#1255)
This change allows to move the box containing the battle info of the ennemy pokemons during double battle when the user has to choose a target. In addition to the pokemon opacity constantly changing, the battle info will also move up and down to indicate which Pokemon is targeted.

It exposes the BattleInfo object from the Pokemon object through an accessor method.
2024-05-23 18:28:53 -04: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
Xavion3
7ae09a31a5
Hotfix Sucker Punch and Upper Hand AI (#1237) 2024-05-22 07:13:39 -05:00
Franck TROUILLEZ
7ac4900a3e
Allow to explicitly ignore faint phase when damaging. (#1182)
This allows to skip the faint phase in the `#damage` method for physical and special moves, to ensure we first queue the messages for the effectiveness of the attack and the potential critical hit.
We then explicitly unshift the faint phase in this case.
2024-05-22 01:01:16 -05:00
Madmadness65
3c8b4550b6 End shiny event
I hope everyone enjoyed the extended shiny event this weekend.
2024-05-21 18:58:48 -05:00
LaukkaE
8c01403630
tie event to UTC (#1203)
correct time
2024-05-21 09:38:07 -05:00
Xavion3
3fd1ecf6a7
Update moveset logic to account for new sacrifice attr (#1192) 2024-05-21 02:40:53 -05:00
Greenlamp2
c454e2d232
Fix - shiny color swap (#1183)
* return a list of errors if something is wrong with the variant's sprite

* reformat

* added data in error message

* added read comfort + detection of missing json for existing variant

* fix an error of message display

* fix fetch color swap, missing a return
2024-05-20 19:17:21 -05:00
Matthew Olker
04045623a0 Update shiny event end to match discord announcement 2024-05-20 16:41:40 -04: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
NxKarim
1ae5847e49
Implements Merciless (#440)
* 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.
2024-05-19 09:06:58 -05:00
Jannik Tappert
e3b25a9fab
So currently if you meet someone with a title it only shows there nam… (#1055)
* So currently if you meet someone with a title it only shows there name and only then the title (not like trainer classes). So i wanted to change that

* The title is not set again to its own value. It is just got differenlty for the nametag (includeTitle true)

* Added the ; as well as some comments that are hopefully helpful for others (i am terrible at writing comments)

* Forgot getTitle for comments
2024-05-19 06:23:24 -05:00
Benjamin Odom
6dc10f549f
Fix Crashes when Sprites for Pokémon are missing (#1021)
* Fix Crashes when Sprites for Pokémon are missing

Fixes an issue where a missing sprite will cause the game to crash instead of using the base sprite or the Substitute sprite.

Failsafes were already in place to load these backups, this code just allows a graceful fail and a simple error message instead of a crash.

* Check Against OK status
2024-05-18 18:29:09 -05:00
Matthew Olker
5dd017fa30 Begin shiny weekend 2024-05-17 18:13:12 -04:00
Benjamin Odom
6880c7afe0
Updated Logic when Animating Trainer Sprites (#1016)
Updated the check in place when attempting to play a trainer sprite. Separated it into a separate function to reduce reusing code and to make it easier to exit early when failures occur.
2024-05-17 12:37:38 -05:00