Commit Graph

396 Commits

Author SHA1 Message Date
NightKev
9f01b52d6b
[Bug] Prevent evolution causing a swap from the second ability to the HA (#3138)
* Prevent evolution causing a swap from the second ability to the HA

* Add tests

* Update `starter-select-ui-handler.ts`
2024-07-25 12:50:17 +01:00
Corrade
928a3ae977
[Bug] Fixed OHKO moves being affected by accuracy and evasion battle stats (#3117)
* Fixed OHKO moves being affected by accuracy and evasion battle stats

* Added related tests for Fissure, unskipped related test for Hustle

* Tweaked fissure accuracy and evasion tests to use spyOn() for getAccuracyMultiplier() as per feedback

* Fixed accuracy test for Fissure
2024-07-24 20:34:02 -04:00
schmidtc1
e1662b8251
[Bug] Adjust how counter attacks target to account for uturn/voltswitch and double battles (#2462)
* Adjust how counter attacks target to account for uturn/voltswitch

* Creates move flag for metal burst/comeuppance to redirect in some cases

* Remove debug printing

* Bit shifts the redirect counter flag

* Removes extraneous class from prior testing

* Remove vitest timestamp file that was accidentally added
2024-07-24 16:07:32 -04:00
schmidtc1
54feaa0b32
[Bug] Fixes bug with frenzy moves keeping the confusion counter despite disruption (#3041)
* Adds frenzyMissFunc trigger on NO_EFFECT hit result

* Refactors FrenzyAttr to properly lapse tags each turn and remove tags on disrupt

* Makes comment on CONFUSED tag clearer

* Changes all integer usages to number in battler-tags

* Update getBattlerTag function to use number instead of integer
2024-07-24 14:07:51 -04:00
EmberCM
a526403534
[Bug] Fix HP rounding issues (#2968) 2024-07-24 14:05:26 -04:00
NightKev
5edaec9f98
[Bug] Remove ability swap code in PlayerPokemon.evolve() (#3113) 2024-07-23 17:31:26 -04:00
mcmontag
0e5fd80431
[Move] Implement Stockpile, Spit Up, Swallow (#2960)
* feat: Implement Stockpile, Spit Up, Swallow

* chore: Minor, likely unnecessary null checks

* feat: Localization

* Undo non-English localizations (unsure if they went through proper channels)

* ko localization

from @EnochG1

Co-authored-by: Enoch <enoch.jwsong@gmail.com>

* linting fix

* add tests, tiny (non-functional) tweaks

* Remove unnecessary cast

* Update src/data/move.ts

(oops)

* remove some unnecessary comments, rename something for clarity

---------

Co-authored-by: Enoch <enoch.jwsong@gmail.com>
2024-07-23 17:30:42 -04:00
NightKev
ef5e0d4c24
[Refactor] Code readability update (#3085)
* Clean up/clarify `src/field/pokemon.ts` a bit

Code provided by DerTapp on Discord

* Update `PokemonSpeciesForm.getAbilityCount()`

* Update `PokemonSpeciesForm.getAbility()`

* Add explicit `Abilities.NONE` checks

* Add tests

* Add jsdoc and implement test suggestions
2024-07-23 14:59:59 -04:00
NightKev
a0502fb0b5
[Refactor] Replaces the single and double battles overrides with a single override (#3104)
`SINGLE_BATTLE_OVERRIDE` and `DOUBLE_BATTLE_OVERRIDE` are now `BATTLE_TYPE`

Also updates all uses of the old overrides with the new one
2024-07-23 11:19:47 -04:00
innerthunder
1d39f8d638
[Bug] Fix Thousand Arrows not hitting targets under the effects of Magnet Rise (#3100)
* Fix Thousand Arrows not hitting through Magnet Rise

* Add integration test for Thousand Arrows vs. Magnet Rise

* ESLint

* Remove unnecessary checks in integration tests
2024-07-23 10:19:48 -04:00
NightKev
86ebd0c5e5
[Bug] Ability changing on evolution fix (#2995)
* Prevent Pokemon with their second ability from evolving into their HA

* Add check for fusions too
2024-07-22 19:57:30 -04:00
DustinLin
ccb38ca12b
[BUG] fixing multi-hit and move messages on faint (#2981)
* fixing order of messages, scences, to render messages before fainting

* updated fix for effectiveness text rendering order for multi hit moves

* fixing messages not appearing for multi-hit moves on faint

* updated multi-hit condition)

* fixing PR conflicts

* adding comments and FaintPhase setPhaseQueueSplice bug, fixing overrides merge conflict

* writing better comments

* removing space diff in overrides

* adding fainting check for self damage moves

* emergency fixing broken last commit

* additional comments for multi-hit problem

* updating comments, jsdoc style

* fixing linter, destiny bond errors

* splitting up varaible comments to be in JSDoc format

* fixing tests and merge mistakes

* adding rendering of multihit moves that only hit once

* fixing comment formatting_tabs and spaces

---------

Co-authored-by: Benjamin Odom <bennybroseph@gmail.com>
2024-07-22 13:44:29 -04:00
sirzento
01de9b9b58
[Feature] Added pokemon nicknames/renaming (#2570)
* Added basic temp renaming

* Made nickname persistant after reloading

* Localization and cancel button

* Fixed instant rename on active pokemon

* Small bugfix to prevent console errors

* Changed logic to use the new nickname field. Replaced most .name with getNameToRender() for display.

* Changed evolution message. Removed log messagesc

* Added localization keys for other languages

* Removed empty lines

* French translation

Co-authored-by: Lugiad' <adrien.grivel@hotmail.fr>

* Chinese translation

Co-authored-by: Yonmaru40 <47717431+40chyan@users.noreply.github.com>

* Portuguese (Brazil) translation

Co-authored-by: José Ricardo Fleury Oliveira <josefleury@discente.ufg.br>

* Korean translation

Co-authored-by: Enoch <enoch.jwsong@gmail.com>

* Update menu.ts

* Update menu.ts [Localization(it)]

* Changed most .getNameToRender() instance to getPokemonNameWithAffix()

* Changed wild encounter messages back to just use the name without affix.

* Added localization for the party ui rename selection

* Escaping nickname characters to support all characters

* Better Error handling

* Update src/field/pokemon.ts

Co-authored-by: flx-sta <50131232+flx-sta@users.noreply.github.com>

---------

Co-authored-by: Lugiad' <adrien.grivel@hotmail.fr>
Co-authored-by: Yonmaru40 <47717431+40chyan@users.noreply.github.com>
Co-authored-by: José Ricardo Fleury Oliveira <josefleury@discente.ufg.br>
Co-authored-by: Enoch <enoch.jwsong@gmail.com>
Co-authored-by: Niccolò <123510358+NicusPulcis@users.noreply.github.com>
Co-authored-by: flx-sta <50131232+flx-sta@users.noreply.github.com>
2024-07-22 12:46:52 -04:00
NightKev
b6266c6da1
[Move] Finish implementation of Glaive Rush (#2720)
* Finish implementation of Glaive Rush

* Fix test RNG

* Add code/test for Multi-Lens interaction

* Fix off-by-one error in test caused by rounding issues

* Update for code changes

* Fix BattlerTag name
2024-07-22 11:16:59 -04:00
Adrian T.
f298ec3111
[Enhancement] Decouple move accuracy and accuracy multiplier calculation from phases.ts (#2899)
* refactor accuracy calc

* update doc

* move accuracy multiplier calculation outside phases

* update wonder skin unit test

* rename method

* add docs

* add unit tests

* address feedback

* rename method

* fix imports

* improve tests

* add test for ohko move accuracy
2024-07-22 11:14:42 -04:00
Dakurei
be1f938d2c
[Music/BGM] New music added for the "Sea" biome, composed by Andr06 (#3063)
* Replacement of the BGM in the sea biome (by Andr06)

* Modification of BGM credits in README.md

* Replacement of the BGM name by the title chosen by its composer in all languages

* Update BGM loop point for biome 'SEA'
2024-07-19 00:51:10 -04:00
DustinLin
37526c8356
[BUG] Uturn faint switch bug fix (#2980)
* reordering adding switch phases for u-turn

* reverting some temp changes

* generalizing function

* adding PR suggestions

* nit indenting
2024-07-19 00:03:57 +01:00
송영진
eb4604db26
[Bug] implemented multi target damage penalty (#2329)
* fix: damage multiplier by  the number of targets

* fix: used actual number value rather than the number holder

* test: added unit test for counting targets

* multi-target: fixed names of the unit tests.

* test: simple-test changes

* test: changed multi-target test code

* test: testing damage decreasement

* test: multi-target test fix

* resolved conflicts in test

---------

Co-authored-by: Tempoanon <163687446+Tempo-anon@users.noreply.github.com>
2024-07-18 16:49:00 -04:00
Dakurei
719764e2a4
[Music/BGM] New music added for the "Slum" biome, composed by Andr06 (#3000)
* Replacement of the BGM in the slum biome (by Andr06)

* Modification of BGM credits in README.md

* Replacement of the BGM name by the title chosen by its composer in all languages

* Update BGM loop point for biome 'SLUM'
2024-07-18 16:41:13 -04:00
Amani H.
99f4a9dd25
[Item] Add Scope Lens and Leek (#2666)
* [Item] Add Scope Lens and Leek

* Add Entry to pt_BR

* Localize for pt_BR

Co-authored-by: José Ricardo Fleury Oliveira <josefleury@discente.ufg.br>

* Fix & Clean Unit Tests

---------

Co-authored-by: José Ricardo Fleury Oliveira <josefleury@discente.ufg.br>
2024-07-18 10:20:55 -04:00
Corrade
b1e7ae43a1
[Bug] Prevent fixed-damage and OHKO moves from being modified by damage-reducing abilities (#2703)
* ReceivedMoveDamageMultiplierAbAttr patch: WIP refactored damage calculation, reordered ReceivedMoveDamageMultiplierAbAttr to avoid issues with fixed damage and OHKO moves, stubbed unit tests for dragon rage (fixed damage) and fissure (OHKO)

* ReceivedMoveDamageMultiplierAbAttr patch: commented concerns regarding EnemyDamageBooster/ReducerModifier for others' reference in WIP branch

* ReceivedMoveDamageMultiplierAbAttr patch: reordered ReceivedMoveDamageMultiplierAbAttr and EnemyDamageBooster/ReducerModifier to not trigger for fixed damage and OHKO moves, completed relevant tests for dragon rage and fissure

* ReceivedMoveDamageMultiplierAbAttr patch: removed newline

* ReceivedMoveDamageMultiplierAbAttr patch: in the unit test, extracted hard-coded Dragon Rage damage to a variable

* ReceivedMoveDamageMultiplierAbAttr patch: naming consistency

* ReceivedMoveDamageMultiplierAbAttr patch: replaced awaiting DamagePhase with TurnEndPhase as the former assumes damage will be done

* ReceivedMoveDamageMultiplierAbAttr patch: removed redundant overrides in Fissure tests

* ReceivedMoveDamageMultiplierAbAttr patch: tests: refactored crit removal, removed berries, fixed bug associated with Porygon sometimes getting Trace and copying the opponent's ability, which would override the manual ability override

* Fixed unit tests

* Added a comment and cleaned up an existing one
2024-07-14 19:16:15 -04:00
Adrian T
8d5bfa51e8
[Enhancement] Decouple move power calculation from Pokemon.apply(), Fixes Power Spot & Battery not boosting ally's move (#2984)
* refactor power calc, fix battery & power spot

* fix hard press unit test

* fix hard press

* refactor tests

* use sypOn hp instead

* rename method

* cleanup tests

* improve tests

* use slow vs fast pokemon

* fix steely spirit test

* fix steely spirit for real this time

* remove unnecessary test

* address pr feedback

* add removed code
2024-07-14 00:28:39 -04:00
Arxalc
4a399465d2
[Bug] Fix Clear terrains upon Trainer Battle (#2027)
* Clear terrains upon Trainer Battle

* Adjusted comment
2024-07-13 19:09:33 +01:00
Arxalc
0c0de4103b
[Bug] Making FormChangeItems Untransferrable (#2695)
* Made FormChangeItems untransferrable. Replaced getTransferrable()

* Made isTransferrable readonly. Removed unnecessary 'm as PokemonHeldItemModifier'.
2024-07-13 19:09:01 +01:00
Dmitriy K
2314d34907
[QoL] Create default overrides class and export that with custom overrides (#2999)
* Create default overrides class and export that with custom overrides

* add comment to mock import and replace typecast with type narrowing

* change modifier override type to pick keys from modifierTypes
2024-07-12 21:18:52 +01:00
innerthunder
50d7ed34d9
[Bug] Fix battler tags lapsing at incorrect times (#2944)
* Fix battler tags lapsing at incorrect times

* Document FlinchedTag
2024-07-11 17:12:49 +01:00
chaosgrimmon
55f2a32d9f
[Bug] Grounded on Terrain fixes (#2969)
* [Help] [Move/Bug] Patches Psychic Terrain applicability edge cases

Was cancelling moves even if targeted mons weren't on the terrain.

* [Bug `]Pokemon.isGrounded` does not exist

Replaced with `Pokemon.isGrounded()`, which does.

* [Bug] Psychic Terrain priority move cancel ignoring ungrounded

* [Bug] Semi-invulnerable should not be grounded
2024-07-11 10:21:38 -04:00
NightKev
6bc191c44e
[Bug] Fix off-by-one error in damage calc (#2970)
* Fix random damage roll to be 85-100% instead of 85-99%

* Update battle.test.ts to reflect the fix
2024-07-11 10:20:23 -04:00
Tempoanon
4797878d18
Hardcoded Pokemon should have proper names (#2941) 2024-07-10 22:02:15 +01:00
Tempoanon
f9327680dd
[Feature] Stop random trainers from spawning near fixed battles (#2610)
* Stop trainer spawns on evil team and E4 floors

* Thanks Xavion

* change "floors" to "wave" in coment

* at test for not spawning 3 waves within fixed trainer battle

* remove out-commented code

* apply code formatting

* Updated test and make sure isWaveTrainer returns a boolean

* Update comment

---------

Co-authored-by: Felix Staud <felix.staud@headwire.com>
2024-07-08 10:33:47 -04:00
Tempoanon
0f510996f0
[Bug] Fix strong winds calculation (#2423)
* Fix strong winds calculation

* add unit test

* Add strong winds effect message

* Update src/locales/de/weather.ts

Co-authored-by: Jannik Tappert <38758606+CodeTappert@users.noreply.github.com>

* Update src/locales/es/weather.ts

Co-authored-by: Jannik Tappert <38758606+CodeTappert@users.noreply.github.com>

* Update src/locales/fr/weather.ts

Co-authored-by: Jannik Tappert <38758606+CodeTappert@users.noreply.github.com>

* Update src/locales/it/weather.ts

Co-authored-by: Jannik Tappert <38758606+CodeTappert@users.noreply.github.com>

* Update src/locales/ko/weather.ts

Co-authored-by: Jannik Tappert <38758606+CodeTappert@users.noreply.github.com>

---------

Co-authored-by: torranx <torranicles@gmail.com>
Co-authored-by: Jannik Tappert <38758606+CodeTappert@users.noreply.github.com>
2024-07-05 19:59:53 +01:00
AJ Fontaine
34058a57ed
Don't apply Classic bonus to friendship decreases (#2552) 2024-07-03 14:36:00 -05:00
Xavion3
ef5a29f9b2
Implement support for relearner only moves (#1667)
Currently only used by Zangoose
2024-07-03 21:13:25 +02:00
Adrian T
dad065cbae
[Ability] Fully Implement Steely Spirit (#2749)
* implement steely spirit

* add unit test

* cleanup

* cleanup and add another test
2024-07-03 12:55:39 -04:00
hayuna
13b23289d1
[Bug] Fix incorrect move effectiveness (#2757)
* Fix incorrect move effectiveness

* Casting variable should be enough
2024-07-02 12:20:45 -04:00
innerthunder
f4c8f0080a
[Bug] Add user Pokemon check to multi-hit early stopping (#2726) 2024-06-30 15:21:23 -04:00
innerthunder
d278df8fef
[Bug] Fix multi-hit moves persisting after sleep/freeze (#2712) 2024-06-29 17:30:10 -04:00
Madmadness65
15671a6922
Add new custom biome music by Firel (#2681) 2024-06-28 11:26:06 -05:00
flx-sta
d5b1459422
[Docs] add some inline docs for boss segments logic (#2678) 2024-06-27 23:20:42 -04:00
flx-sta
384f6e1fee
[Bug] add flag to know if pokemon was populated from data-source to fix boss segments for endless double bosses (#2672)
also reverted previous change as this was breaking for non-session-restored fights
2024-06-27 19:55:27 -04:00
innerthunder
e477fccaab
[Bug] Fix multi-hit early stopping (#2648) 2024-06-27 00:41:31 -04:00
innerthunder
55dd6b5100
[Bug] Fix Multi-Lens/PBond interaction for spread moves (#2633) 2024-06-26 21:05:03 -04:00
innerthunder
cd92d4d7d3
[Ability] Implement Parental Bond (#2384)
* 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
2024-06-26 16:03:14 -04:00
Amani H
f7f8988cdb
[Item] Add Light Ball, Thick Club, Metal Powder, and Quick Powder (#1899)
* Add Light Ball, Thick Club, and Metal/Quick Powder

* Fix Typo, Account for Fusions

* Fix Errors with Fusions

* Group Items into Generator

* Refactor Generator and Type, Fix Localization (en)

* Adjust Generator, Add Override Type

* Fix Enum Import

* Localize for de, es, fr, it, ko, zh_CN, zh_TW

* Add Unit Tests

* Add Type

* Fix Items Atlas

* Change Cubone Passive Ability, Adjust Weight
2024-06-26 13:48:10 -05:00
flx-sta
74a7b1bb79
[Bug] fix boss-segment reload persistence: (#2613)
add boss-segments to into pokemon-data & load it in EnemyPokemon constructor
2024-06-26 13:19:24 -04:00
Corrade
e70113073f
[Bug] Fix Dry Skin and ReceivedMoveDamageMultiplierAbAttr abilities (#2592)
* 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
2024-06-25 13:23:48 -04:00
flx-sta
3e5ef3e3fb
[Bug] add playerfiled length check for score determination (#2583) 2024-06-25 00:15:11 -04:00
Amani H
136652caa9
[Item] Implement Eviolite Behavior (#2161)
* Add Eviolite with Unit Tests

* Localize for de, es, fr, it, ko, zh_CN, zh_TW

* Adjust German Localization

Co-authored-by: Jannik Tappert <38758606+CodeTappert@users.noreply.github.com>

* Adjust Italian Localization

* Change Multiplier Type

* Adjust Unit Test Import

* Change Constructor

* Make Unit Tests Localized

* Comment Out of Reward Pool

---------

Co-authored-by: Jannik Tappert <38758606+CodeTappert@users.noreply.github.com>
2024-06-24 21:00:59 -05:00
Adrian T
2bab7d3778
[Bug] Fix trainer double battle crash (#2573)
* fix double battle crash

* remove !

* fixes crash on double battle
2024-06-24 17:32:21 -04:00
DustinLin
8c9603ab19
[Bug] fix softlock/runtime error after roar in doubles (#2553)
* added undefined runtime safeguard checks

* adding documentation

* fixing typos and logic

* removing operator bc i forgor
2024-06-24 01:06:15 -04:00