Commit Graph

423 Commits

Author SHA1 Message Date
Ei
c77508aef3
[Bug] Fixed getAttackMoveEffectiveness (#2006) 2024-06-09 12:37:50 -04:00
Xavion3
07f0a67c78
Make getTypes ignore transform when ignoring overrides (#1976) 2024-06-08 21:08:30 -04:00
Yentis
3f9eaf4a5d
Add setting for showing type effectiveness hints (#1061)
* 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
2024-06-08 15:33:13 -04:00
Xavion3
696ff6eae3
Add Challenges (#1459)
* 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
2024-06-08 01:07:23 -04:00
Greenlamp2
1a149bfa04
[Testing] Flexible Testing Wrapper for Phaser-Based Battle-Scenes (#1908)
* refactor executed code while importing and initializing all of these in loading-scene

* reset to main

* fix server url

* added rule no-trailing-spaces

* made progress

* test somme data from a session save is working

* trying to launch a battle

* added fetch wrapper to load data locally

* trying to mockAllSettled

* pushPhase & shiftPhase

* check integrity of exported session

* set toke + loggedInUser in tests

* progress on starting new battle

* tring to test phase but it's async

* mocking fetch

* working mock fetch

* need to handle pile of data

* attempt to use real phaser classes

* reorder overrides

* refactored to use some real classes from phaser

* removed useless things

* started to work on some container mock

* finished the mockContainer time to add some logic

* some more mock containers

* removed addMethods since there is the mock classes now

* commented issues

* attempt to create mockTextureManager

* fix tests

* mockSprite & mockText

* yes but not really

* yes but not really

* fix tutorial callback

* reached mode title

* added achievement tests

* fix test achievements with current state of mock

* correct sequence loading for BattleScene with mockLoader !

* deep dive into next step

* working wait until starter selection screen

* added newGame method into wrapper

* expect to save_slot

* trying to manage pokemon sprite for getAll without success yet

* added test for egg output

* fixed egg test for June

* fix tests + locate next issue to fix

* we are in battle baby

* added new game in one-line

* export is working but export only what's in the fetch

* fix start game as guest

* refactored how we start a battle + cleanup

* overrided mewtwo but issue with currentBattle

* refactor: rename InitAchievements to initAchievements

* added missing mock method

* override level and pokemon forms working as intended

* bringToTop Obj

* remove launch battle in achivement test

* fix getIndex when same pokemon

* can run all tests

* first attack, faint, and shop modifiers, MockClock

* on method for container

* added doAttack one-liner

* one-line export data

* removed throw error

* feat: Make `scenes` property of `GameWrapper` class public

The `scenes` property of the `GameWrapper` class was changed from private to public. This change allows external access to the `scenes` map, which is used to store Phaser scenes. This modification was made to enable easier manipulation and interaction with the scenes in the game.

* correction

* removed CanvasRenderer

* added a param to remove console.log and added a param to preven scene create call

* fix encounter wave 30 when it's a trainer

* test double-battle

* test fight without KO

* test double fight no ko

* fix crashing texture + added Text wrapper to log fight

* fix tests on boss - trainer - rival

* chore: Refactor BattleScene initialization and add new phases

Refactor the BattleScene initialization code to remove unnecessary delay and improve performance. Also, add new phases for the title and unavailable states to enhance the game experience.

* rework of Game tests

* skipFn is working

* added onNextPrompt and restore Og Start

* better newGame

* added skipFN in remove

* not yet working test but updated interceptors

* do attack work but not on PostSummonPhase phase when there is mention of silcoon and wurmple

* error located, it's just a double fight, i was not there yet

* single OHKO & double no OHKO

* added expirationFn into next prompt

* all tests are passing

* working test on non damaging move from opponent

* cleaned a bit

* removed phaser initialisation on every tests

* renamed test file

* added load system data

* added some ability support

* added onKill & onSummon abilities test

* removed useless test + cleanup

* removed useless test + cleanup

* fixed tests after merge main

* added itemHeld endTurn trigger test (toxic orb)

* added runFrom..To

* added mustRun to assert currentPhase

* added no-miss move to test things

* cleaner restore mock

* fix test

* fix moxie test + game speed

* improve test speed

* added onOurself and onOpponent mvoe test

* added onDamage test for tackle

* removed timeout in intervals to run tests faster

* cleanup

* added never crit override + separate file per test + remove randomness in randBattleSeedInt

* move folders

* better org

* renamed itemHeld folder to items

* fix deploy.yml

* cleanup

* simplified the gameManager start battle and allow single pokemon in party

* remove the need of mode development

* added input handler to test inputs + remove time from phaser into inputController

* added keyboard support

* added fakeMobile support

* added details

* removed a console.log + added logUp

* move test to folder

* fixed canvas issue

* added starter select tests

* added some more test on starter-select

* added battle-order tests

* added battle-order tests

* fixing Phaser RNG

* ordering stats for better reading

* fix tests for main

* adapt battle-order test to be more readable

* fix merge

* fix some errors and silent all errors from gameWrapper since it's not possible to avoid them

* fix mocks to manage childs & stuffs

* added some docs

* fix achievement test

* removed an unused file

* separate misc tests to clean battle.test file

* added a basic french lokalization test

* added i18n where it needs to be used only

* revers extracted method

* removed unused method

* removed handler fetch since we do not test anything server related

* fix test with handlers removed

* added intrepid sword test

* fix enum exp party

---------

Co-authored-by: Frederico Santos <frederico.f.santos@tecnico.ulisboa.pt>
2024-06-07 18:33:45 -04:00
td76099
0a17c2495a
Bugfix: Abilities check final move type instead of default move type (#1440)
* 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
2024-06-07 16:57:57 -04:00
Corrade
c177f3c1fb
[Bug] Ignored strong winds for stealth rock and anticipation (#1682) 2024-06-07 15:15:24 -04:00
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
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 ef8b6aa4f9.
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
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
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 6c4b60a2fa.
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
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
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
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 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>
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
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
Xavion3
9197f9f070 Limit rare eggs to e4+ and fix trainer boss check
Also fixes weighting to account for adjusted level ranges
2024-05-15 11:55:47 -04:00
Flashfyre
3c8d919ef8 Revert "Implemented Power Split and Guard Split (#699)"
This reverts commit 0b75a5210a.
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
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
Flashfyre
7e5c7fb4f7 Don't allow trainer egg moves before level 60 and no rare egg moves at all 2024-05-13 17:03:53 -04: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
Matt Ross
fa60e002e8
Fixes some variable damage moves not working with tinted lens (#759)
* 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>
2024-05-13 13:05:09 -05:00
Flashfyre
347972d103 Remove boosted shiny rate 2024-05-12 20:45:41 -04:00
Matthew
e195c6d799
Show Default Pokemon icon for missing shiny icon (#802) 2024-05-13 06:41:02 +10:00
Benjamin Odom
79a87e1c65 Update pokemon.ts 2024-05-12 10:27:54 -04:00
LaukkaE
ced74efc52
fix isGrounded check (#774) 2024-05-12 06:30:18 -05:00
Landon Lee
a27822b624
Fix cry when pokemon is fused with its own species (#615)
If the pokemon species and form is the same as the second fusion component, then skip the logic to make a fused cry and just use the cry of the primary component.
2024-05-12 03:01:59 -05:00
Thomas Huynh
d5f82611f5
added battle tag check in isGrounded method (#750)
Co-authored-by: unknown <t_huynh927@yahoo.com>
2024-05-12 02:28:30 -05:00
Xavion3
db6008d15c
Add tsdoc comments for ability getters (#764)
* Add tsdoc comments for ability getters

* Add links to the docs
2024-05-12 00:48:56 -05:00
Xavion3
34aa68df14
Fix fusion icon variant id (#747) 2024-05-11 13:15:01 -05:00
Benjamin Odom
ae7c1ef4f0
Fix Charge Move Infinites (#741)
Fixed an issue where two turn charge moves could be paused by status or Truant causing some infinite sequences if not careful.
2024-05-11 23:22:26 +10:00
Xavion3
d24762b5dc
Fix bug in moveset code (#735)
Pokemon with very limited movepools could sometimes generate with no moves
2024-05-11 00:46:36 -05:00
Xavion3
72467388fc
Redo moveset generation (#550)
* Redo moveset generation

* Decrease the weight of lower power moves and egg moves

* More weight tweaking

Trainers never get OHKO moves, are less likely to get self KO and multiturn moves, and more likely to get stat buffing moves. All pokemon are less likely to get offstat moves.
2024-05-11 00:20:21 -04:00
AJ Fontaine
7219556e77
Hydro Steam (#231)
* Hydro Steam, Spirit Shackle, U-turn fix

Match formatting to project style

Co-authored-by: Samuel H <flashfireex@gmail.com>

* Fix Hydro Steam power up in Sun, even harsh sun if type changes

* Fix issue with Hydro Steam outside sun

* Add comments to IgnoreWeatherTypeDebuffAttr for documentation

* Move U-turn fix to another PR

---------

Co-authored-by: Samuel H <flashfireex@gmail.com>
2024-05-09 21:21:57 -04:00
Flashfyre
2bc1cfb0fc Extend the temporary shiny chance increase by 1 day 2024-05-09 20:16:29 -04:00
Flashfyre
02cba0f741 Add temporary triple shiny chance 2024-05-09 19:59:21 -04:00
Matthew
10cf1cd94f
Cleanup overrides and imports (#603)
* cleanup overrides and imports

* Add GreenLamps Modifier Overrides

* added comments

* starting money and biome comments

* account for overriding empty move

* more override descriptions

* added generator held item names to override comment
2024-05-09 14:52:09 -05:00
Xavion3
e6ba60364e
Save battler tags (#516)
* Save battler tags

Also saves the rest of the summonData except for transform specific things.

* Add missing values for type boost tag.

* Add intellisense comments
2024-05-09 00:37:51 -05:00
Tempoanon
d16cb1202f
Fix charge (#614)
* Fix charge

* Remove console logs
2024-05-08 23:37:50 -05:00
alpaca
76ac86d2ae
Implements healer (#259)
* 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
2024-05-08 20:21:55 -05:00
Benjamin Odom
ea5e535f9f
Fixed Failed Moves Not Using PP (#634)
Fixed an issue where if a move failed, it would not use power points.
2024-05-08 15:51:56 -05:00
Jeremy B
bb28d3599e
fix scrappy and mindseye working as passive ability (#567)
* fix scrappy and mindseye working as passive ability

* update apply for ignoretypeimmunityabattr

* simplify logic for ignoretypeimmunityabattr

---------

Co-authored-by: contra1337 <jpbastyr@gmail.com>
2024-05-08 00:32:38 -05:00
alpaca
36cde21ce3
Adds ribbon in starter screen if mon has beat classic mode (#370)
* adds the ribbon asset, hooking it up

* works if override. need to add field on server side I imagine

* moves count to starterData, increments on win

* formatting

* increment works properly

* recursively check for prevolution

* cleaned up to use getRootSpeciesId()

* changes ribbon to gold medal version

* adds Akuma's ribbon achievements

* ribbons increment correctly

* missed ui handler update

* reorder achievements

* ribbon correct, vouchers not. currently investigating

* increments properly, but voucher reward phase not appearing

* some cleanup

* works great, need to better reflect who is getting ribbon in message and cry

* plays level fanfare, tabling cry for now

* reran items.bat

* Minor fixes

---------

Co-authored-by: Flashfyre <flashfireex@gmail.com>
2024-05-07 00:44:41 -04:00
Xavion3
2d740f1952 Implement once per battle restriction on abilities
Currently just Intrepid Sword and Dauntless Shield
2024-05-07 00:39:16 -04:00
Reldnahc
84f6f06ca4 add override to force double battles.
add override for passive abilities.
2024-05-06 19:11:34 -04:00
lucfd
80b6001c77
Implemented Revelation Dance (#166)
* implemented Revelation Dance

* fixed steam engine activating on all water moves

* implemented typeless

* stellar handling for revelation dance

* removed testing lines

* changed to UNKNOWN implementation

* removed UNKNOWN RGB

* removed print debug + unnecessary logic

* simplified test condition further
2024-05-06 10:24:37 -05:00
Jeremy B
bc8cb51dc1
Add Scrappy ability handling (#473)
* partially implement scrappy

* add minds eye handling also

* remove unimplemented from minds eye

---------

Co-authored-by: jbastyr <jpbastyr@gmail.com>
Co-authored-by: Madmadness65 <59298170+Madmadness65@users.noreply.github.com>
2024-05-06 00:27:56 -05:00
Benjamin Odom
2b4dc9a4f0
Fixes Struggle Softlock (#531)
* Fixes Struggle Softlock

Fixed an issue where moves marked as (N) would prevent you from being able to Struggle.

Also fixes messaging so that a message shows when you are out of PP, Disabled, or trying to use an unimplemented move consistently.

* Update phases.ts
2024-05-06 00:02:52 -04:00
LaukkaE
67ee104178
Fix Protosynthesis and Quark Drive (#289)
* Fix Protosynthesis and Quark Drive

* add partial tags
2024-05-06 10:26:11 +10:00
Ivan Perez
3a218eb92b
Fixed a bug where a yawned target in a semi-vulnerable state would be stuck in that state (#396) 2024-05-05 00:35:47 -05:00
Benjamin Odom
daa6e3b3a8
Prevent Fusion Status Errors +Fix Double Battle Issue (#472)
* Reapply "Prevent Fusing Status Errors (#465)"

This reverts commit 18a1c152c0.

* Update phases.ts
2024-05-04 22:16:59 -05:00
Madmadness65
18a1c152c0 Revert "Prevent Fusing Status Errors (#465)"
This reverts commit 68eca464f7.
2024-05-04 20:50:48 -05:00
Benjamin Odom
68eca464f7
Prevent Fusing Status Errors (#465) 2024-05-04 20:37:31 -05:00
Benjamin Odom
5d6181926a Removed Hardcoded Values
Realized there was an enum for the -1 value which should help clear up confusion if someone has to mess with this code later
2024-05-03 23:26:56 -04:00
Tempoanon
5b44905b86
Fix Shedinja passive, mummy passive, acupressure, moody, and added a second move override (#369) 2024-05-04 12:30:23 +10:00
Benjamin Odom
e02b85629f Fix Enemy Counter Moves
The AI couldn't decide who to target with CounterDamageAttr  moves which don't need a target. This change makes an exception. Now functions the same as when the player selects one of these moves.
2024-05-03 21:00:56 -04:00
Xavion3
c7c4deb416 Implement Sniper 2024-05-03 12:05:20 -04:00
Benjamin Odom
b84a4b4ee5 Fix Shedinja PPused Share
Fixed having Shedinja share PP usage with the Ninjask it evolved from and vice versa.

The solution was to make a deep copy of each move in the moveset array rather than copying the array itself.
2024-05-03 08:33:33 -04:00
Flashfyre
b30ab6136e Starter friendship for candies is split between spliced species 2024-05-02 21:55:11 -04:00
Benjamin Odom
fec8771830 Fix Shedinja Luck and Crash
Shedinja wasn't taking the luck value from Ninjask so when it calculated its luck it just took the entire fused Pokemon's luck somehow. This has been fixed so it takes both the first and second part of the fusion's luck values instead.

Also fixes an issue where Shedinja crashed the game if it was the second part of a fusion combo. Now the correct pokemon species gets checked against and the correct pokemon evolution occurs to create Shedinja.
2024-05-02 17:55:45 -04:00
Flashfyre
991f097e9e Rebalance friendship and add starter friendship with candy reward 2024-05-02 17:48:08 -04:00
Benjamin Odom
9d8f7ddcf0
Implement Tailwind (#398)
Added a new ArenaTagType for Tailwind. Lasts 4 turns including the turn used.
2024-05-02 14:10:21 -05:00
Flashfyre
6ac224ab8a Refactor to split battle messages from menu 2024-05-01 18:54:35 -04:00
TeKrop
e34b204664 feat: added support for localisation on battle scene sentences 2024-05-01 18:54:35 -04:00
Flashfyre
7a418109c3 Fix not checking move conditions for AI 2024-05-01 18:17:12 -04:00
Xavion3
5a6ea40dae Implement Acrobatics
Currently scales from 0-5 items
2024-05-01 17:11:16 -04:00
Xavion3
d6ca09e431 Implement Belch 2024-05-01 16:52:48 -04:00
Flashfyre
93765d4121 Update battle info on stat change 2024-04-30 23:23:32 -04:00
Flashfyre
6fd5709b13 Reapply stat change feature with fixes 2024-04-30 23:02:16 -04:00
Flashfyre
8a54e862fc Revert "Add togglable stat change display"
This reverts commit 718585062b.
2024-04-30 22:14:24 -04:00
Flashfyre
718585062b Add togglable stat change display 2024-04-30 22:06:54 -04:00
NxKarim
8e64eaea3f
Some Fixes (HPRatio, Hustle, Imposter, Sleep Talk) (#353)
* 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>
2024-04-30 11:47:10 -04:00
Xavion3
ad5efdf4f9 Refactor overrides 2024-04-30 09:12:19 -04:00
Flashfyre
9641d77bba Re-add shiny override EXCEPT FALSE THIS TIME 2024-04-28 22:03:29 -04:00
Flashfyre
57ece2c1d7 Revert "Add shiny and variant debug override"
This reverts commit 21482a641b.
2024-04-28 20:41:38 -04:00
Flashfyre
0b438d0ff4 Revert "Add temporary double wild shiny chance"
This reverts commit 4607782578.
2024-04-28 20:30:12 -04:00
Flashfyre
21482a641b Add shiny and variant debug override 2024-04-28 20:30:03 -04:00
Flashfyre
00150fd0bb Fix using wrong variant value when fusing 2024-04-26 20:11:37 -04:00
Flashfyre
4607782578 Add temporary double wild shiny chance 2024-04-26 19:57:38 -04:00
Flashfyre
f281605146 Fix wild shiny luck generation 2024-04-26 19:36:27 -04:00
Flashfyre
6b9542511f Add fusion luck as a separate field 2024-04-26 18:27:00 -04:00
Flashfyre
bf2a83993c Make luck independent from shininess and variant 2024-04-26 17:32:28 -04:00
Flashfyre
5e7356636e Update shiny luck mechanics and count both fusion components 2024-04-26 11:31:39 -04:00
Xavion3
46227d65f2 Fix mind blown/explosion moves 2024-04-26 08:33:29 -04:00
Flashfyre
ef552c7ffd Fix crash with certain animated variant sprites 2024-04-26 02:00:58 -04:00
InfernoVulpix
d4c265443f Assurance effect implementation
Theoretically implemented for all use cases but only tested for regular damage so far.
2024-04-25 23:03:00 -04:00
AJ Fontaine
9f3bef0142
Implemented explosive moves and Damp (#290)
* Implemented explosives

* Add Aftermath and Magic Guard interactions

* Adjust AI score for Mind Blown/Steel Beam
2024-04-25 21:42:41 -04:00
Flashfyre
728512cf7d Fix Baton Pass not working 2024-04-25 20:52:52 -04:00
Flashfyre
ba71d2750b Load files from manifest for caching 2024-04-23 22:00:23 -04:00
Xavion3
049fa306b9 Add dynamax buffs 2024-04-23 12:02:09 -04:00
Flashfyre
4950dd0e73 Fix shiny variant back sprite color mapping not working 2024-04-22 00:31:33 -04:00
Flashfyre
4fc194295b Remove event shiny bonus 2024-04-21 19:58:55 -04:00
Xavion3
c3eaa0506f Make it so you can't freeze in sun 2024-04-21 00:41:33 -04:00
Flashfyre
9b03d6f8d3 Fix crash related to fusion sprites 2024-04-20 16:08:33 -04:00
Flashfyre
f0ac060466 Add temporary shiny rate increase for event 2024-04-19 19:49:58 -04:00
Xavion3
9dfd5a1e6e Implement Soak, Forest's Curse, and Trick-or-Treat
Updates the UI and type effectiveness to support three types, and makes old moves that change types update the UI.
2024-04-19 13:47:40 -04:00
Temps Ray
e94b17bbf5 Implement getAttackTypeEffectiveness check 2024-04-19 13:11:41 -04:00
Flashfyre
bd80281859 Fix various shiny checks for palettes 2024-04-19 11:11:19 -04:00
Flashfyre
7ed8dba46a Fix undefined variant for existing shinies in runs 2024-04-19 01:44:51 -04:00
Flashfyre
6220165315 Fix issue with undefined variant 2024-04-19 01:25:19 -04:00
Flashfyre
3f9e7b4839 Working fix to shiny crash issue 2024-04-19 00:58:59 -04:00
Flashfyre
c76f8c5e7e Add tiered shiny variants 2024-04-18 22:52:26 -04:00
Xavion3
0b4963aefc Block form changing abilities while fused 2024-04-18 18:56:50 -04:00
Xavion3
453c5644aa Fix mold breaker + implement neutralising gas 2024-04-18 10:52:31 -04:00
Tempoanon
cf2bd4d3da
Implement Charge and more abilities (#163)
* 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
2024-04-17 01:09:15 -04:00
Ishan Patel
1f9834d1f6
Fixed when roost removes flying type (#148)
* Initial push with roost fix

* Roost fix

* Added GROUNDED to Levitate

* Cleaned up GROUNDED code
2024-04-16 14:31:30 -04:00
Xavion3
420d7fbade Fix paralysis speed drop
Should only be 0.5x
2024-04-16 12:25:41 -04:00
Flashfyre
05bb384934 Update crit chance to gen 7 odds 2024-04-16 12:14:33 -04:00
shayebeadling
95aa78487f
Present implementation, adds a 0 dmg override for 0 power moves. (#152)
* Implements present, adds an override in the dmg calc to make 0 power moves do 0 dmg

* present doesn't make contact

* removes console log

* only === 0
2024-04-16 00:41:15 -04:00
prateau
0196cf8310 Add snow as a weather 2024-04-15 17:45:52 -04:00
LaukkaE
2a5351e2f6
impl Priority immunity abilities (#137) 2024-04-15 12:48:33 -04:00
Xavion3
6881246d17 Implement check functions for abilities 2024-04-15 01:11:27 -04:00
Flashfyre
99aa7854c0 Prevent replacing learnset when species is overridden 2024-04-14 20:23:51 -04:00
surniki
208279ce77 Copies the moveset of the evolving Nincada to the newly generated pokemon for Shedinja. 2024-04-14 20:09:58 -04:00
Flashfyre
669bc367e5 Fix Super Luck working on the wrong side 2024-04-14 18:19:35 -04:00
Tempoanon
946e6d8c5c
Implement Rivalry, Quick Feet, Liquid Voice, and Normalize (#108)
* 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
2024-04-14 13:15:01 -04:00
Flashfyre
75ce0e8f73 Fix transform and imposter not copying ability 2024-04-14 12:23:49 -04:00
Xavion3
cc20d24afa
Implement sucker punch (#121)
* Implement sucker punch

* Fix variable name
2024-04-14 11:54:46 -04:00
Flashfyre
824a73ef71 Add candy system for passives and value reductions 2024-04-13 18:59:58 -04:00
LaukkaE
8cf8ce1258 Fix terrain power boosting
fix
2024-04-13 13:51:13 -04:00
EmoUsedHM01
cabba43598
Added support for Super Luck with BonusCritAbAttr (#106)
* Fixed Super Luck, and added a new BonusCritAbAttr

* Added crit clause for BonusCritAbAttr ( Super Luck )

* Changed it to +1 like it should be
2024-04-12 17:21:56 -04:00
EmoUsedHM01
930c14fa62
Laser Focus support, with the added BattlerTagTypes to support it (#103)
* Added a new BattlerTagType and support for Laser Focus

BattlerTagType.ALWAYS_CRIT

* Updated battler-tags to support ALWAYS_CRIT

* Added ALWAYS_CRIT = "ALWAYS_CRIT", for the updated battler-tag-type

* Updated the crit formula to include the new critAlways

* Updated crit logic to include critAlways, fixed indents
2024-04-12 16:05:32 -04:00
Flashfyre
3961550f62 Fix fusion move learning bug and inaccurate HP in battle info 2024-04-11 20:40:16 -04:00
Flashfyre
3e9fdc2d0a Fix rest not overriding status 2024-04-11 20:01:43 -04:00
Flashfyre
d50521755e Fix fusion move merge happening after wave end 2024-04-11 16:30:29 -04:00
Flashfyre
3d959e3860 SpDef boost in sandstorm only applies to rock types 2024-04-11 14:52:32 -04:00
Flashfyre
377dabdb27 Boss buffs ignore abilities 2024-04-11 12:11:55 -04:00
Flashfyre
43bf8e13ea Fix stack overflow with weather abilities 2024-04-11 09:39:15 -04:00
Flashfyre
fbb901e591 Temporarily disable passive abilities 2024-04-11 09:30:40 -04:00
Flashfyre
31050a5181 Add passive secondary abilities for bosses 2024-04-11 09:24:03 -04:00
Xavion3
4f63b83bd9 Add support for variable category moves
Also lets shell side arm poison
2024-04-10 22:41:16 -04:00
Flashfyre
81536e7e8e Ignore fusion species generation on egg hatch 2024-04-10 20:31:52 -04:00
Flashfyre
012158e7ff Improve enemy move selection AI 2024-04-10 12:49:23 -04:00
Flashfyre
ca778e07d5 Implement Pokemon fusion icons 2024-04-10 10:57:06 -04:00
LaukkaE
973eefee1d Add electric terrain electric type boost 2024-04-10 09:12:27 -04:00
LaukkaE
2a5cfbf758 Psyblade & Rising voltage affected by Electric Terrain
fix
2024-04-10 09:12:27 -04:00
LaukkaE
c9eff345cf
Implement Aura Wheel and Raging Bull types (#69)
* Implement Aura Wheel and Raging Bull types

* Account for fusion
2024-04-09 14:02:41 -04:00
Flashfyre
52f0f5a149 Fix status move immunity not working (ie. Thunder Wave) 2024-04-08 16:02:12 -04:00
Flashfyre
fdcefbd5c1 Fix weather and terrain abilities not applying in endless mode on biome switch 2024-04-08 09:31:30 -04:00
musicman928
b7368afa9e Add type change abilities 2024-04-07 22:27:07 -07:00
Flashfyre
a0e2427974 Fix strong winds effect not working on moves 2024-04-07 23:18:04 -04:00
neverblde
6decbec6a9 Fix pokemon applying burn reduction 2024-04-07 08:49:46 -04:00
Flashfyre
70a4d54ec9 Predetermine overflow line breaks 2024-04-06 23:03:20 -04:00
Flashfyre
570f10345b Add missing weather effects for fog and strong winds 2024-04-06 22:10:38 -04:00
Flashfyre
59cb4daa52 Fix gendered form evolutions always assigning male 2024-04-06 20:48:58 -04:00
Flashfyre
6821404023 Filter out sacrificial moves from boss movesets 2024-04-06 19:41:12 -04:00
Matthew
3dabfd3c55 Fix sturdy 2024-04-06 01:51:42 -04:00
Flashfyre
4c383e105f Add evolution for secondary fusion species 2024-04-05 21:12:29 -04:00
Matthew
5b2925cf85 Endure updated 2024-04-05 18:50:10 -04:00
Flashfyre
e2a49ffa25 Fix critical hits causing decimal damage 2024-04-05 18:38:46 -04:00
Flashfyre
77e8ff3785 Nerf critical hit damage to 1.5x 2024-04-05 15:47:46 -04:00
Jaime
887a4176ab Implemented moves Reflect, Light Screen and Aurora Veil 2024-04-05 11:44:21 -04:00
Flashfyre
37eb5c8eb0 Add more recent move selections for trainer and boss Pokemon 2024-04-05 11:42:55 -04:00
Flashfyre
efb6b9dbc9 Fix stat drops always being ignored 2024-04-05 07:32:56 -04:00
Flashfyre
2fab4a35ab Fix critical hit logic 2024-04-05 00:13:03 -04:00
Flashfyre
eaba6e655c Revert crit change 2024-04-04 23:57:28 -04:00
Flashfyre
a45fe05f53 Critical hits ignore stat drops and X items last 10 battles 2024-04-04 23:32:09 -04:00
Flashfyre
8b84965d7a Remove revive tokens, nerf heal token, add endure token 2024-04-04 22:42:24 -04:00
Flashfyre
e76fa25bc8 Fix attack type boosters applying universally and buff Soul Dew 2024-04-04 20:33:08 -04:00
Flashfyre
87e0e06b9e Add faster evolution skipping 2024-04-04 18:54:50 -04:00
Flashfyre
4f0b1fdcfb Fix namebox not updating with theme
Fix namebox not updating with theme; ban certain species from being used by trainers
2024-04-04 18:00:21 -04:00
Flashfyre
b04cdd3f60 Fix final boss burn cheese 2024-04-04 14:20:14 -04:00
Flashfyre
563ff21ad4 Fix moveset generation priority reversed 2024-04-03 16:35:11 -04:00
Flashfyre
4d2d04858f Fix tera power boost still applying when multi scope is held 2024-04-03 12:36:19 -04:00
Flashfyre
5759a5e5ce Add Multi Lens item 2024-04-03 11:42:09 -04:00
Flashfyre
ae03f541dd Allow Kyurem forms to be fused 2024-04-03 10:38:36 -04:00
Flashfyre
7400ba0503 Update IVs in dex on evolution 2024-04-03 09:23:45 -04:00
Flashfyre
880433a7f8 Fix not setting initial nature override 2024-04-02 23:47:48 -04:00
Flashfyre
6bb40c6d15 Fix Soul Dew not factoring in overridden nature 2024-04-02 23:21:55 -04:00