Commit Graph

331 Commits

Author SHA1 Message Date
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
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
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
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
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
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
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
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
innerthunder
905ecd6576
[Bug] Remove grounding moves' arbitrary turn limits (#2526)
* Remove grounding moves' arbitrary turn limits

* Added documentation for GroundedTag

* Rename GROUNDED tag + add tag check to isGrounded

* Fix remaining GROUNDED reference

* Clean up calls to getTag
2024-06-23 12:48:49 -04:00
innerthunder
86cc1018e3
[Bug] Fix Thousand Arrows not hitting Pokemon with Levitate (#2493) 2024-06-21 14:04:11 -04:00
Adrian T
28b2dd15c2
[Bug] fix pre defend power multiplier (#2416) 2024-06-21 11:10:49 -04:00
Xavion3
a14128aece
Fix Minimize AI and add NaN AI score safeguard (#2460) 2024-06-21 09:26:32 +10:00
Dmitriy K
74aa5a8005
Create Class constructor utility type. (#2162) 2024-06-19 12:00:26 -04:00
innerthunder
21f1e077fa
[Featrue] Add Dark-type immunity to Prankster (#2355) 2024-06-18 11:21:54 -04:00
Matthew
d70dd16f8c
[Refactor] I18n Cleaning (#2348)
* I18n Cleaning

* pr comments

* appease typedoc

* moved types into src
2024-06-17 17:05:33 -04:00
Adrian T
fd1baef244
[Ability] Implement Power Spot & Battery (#2268)
* add battery

* add power spot

* refactor

* remove FieldVariableMovePowerAbAttr

* remove showing ability bar

* document + cleanup

* add unit tests

* update test name

* update variable names

* update multiplier
2024-06-17 16:12:11 -04:00
Dmitriy K
eab8db7d29
[Bug]: fix dark aura and fairy aura not applying to moves (#2246)
* fix dark aura and fairy aura not applying to moves

* use Set to prevent duplicate aura abilities from triggering

* switch to different AbAttr class
2024-06-17 20:52:33 +01:00
Frisk17
89eba349c9
[Move] Implemented Magnet Rise (#2081)
* Partially implemented Magnet Rise

* Implemented Magnet Rise

* Changed pokemon.ts so all TypeImmune tags work instead of just
MagnetRisen

* Magnet Risen is now removed when Gravity is used.

* Magnet Rise is ignored by Thousand Arrows
and Smack Down.

* Fixed a bug where status ground type moves
would also be ignored by Magnet Rise

* Added a message when Magnet Rise is removed

* Inserted TypeImmuneTag check in
getAttackMoveEffectiveness() for the AI

* Created a magnetRiseCondition separately

* Created a test for Magnet Rise

* Bug Fix in Magnet Rise test

* Created Magnet Rise test with Gravity

* Shifted the code from getAttackMoveEffectiveness
and apply into getAttackTypeEffectiveness instead

* Replaced onNextPrompt with doAttack

* Removed redundant runFrom(Phase)

* Replaced magnetRiseCondition with
battlerTags.every anonymous function

* Fixed import errors

* Added an undefined check for summonData
for TypeImmuneTag in getAttackTypeEffectiveness

* Replaced undefined-check with optional chaining
2024-06-17 17:35:06 +02:00
innerthunder
01435ed0e0
[Ability] Implement Unseen Fist (#1776)
* Implement Unseen Fist

* Add unit tests for Unseen Fist

* Fix unit test imports
2024-06-15 22:14:49 -04:00
Matthew Olker
02d5654be4 Pride Update 2024-06-14 12:42:37 -04:00
Matthew
dc30dd33b2
[QoL] Reorganize Enum Locations (#2185)
* moving enums

* import updates

* fix tsconfig paths importing (#2184)

* reverse index.ts addition

---------

Co-authored-by: Devin Korb <meepdarknessmeep@gmail.com>
2024-06-13 18:44:23 -04:00
Matthew Olker
e6c24dceab Revert "[QoL] Reorganize Enum Locations (#2142)"
This reverts commit cf06ff3b8d.
2024-06-13 11:30:47 -04:00
Matthew
cf06ff3b8d
[QoL] Reorganize Enum Locations (#2142)
* moving enums
2024-06-13 11:11:12 -04:00