Commit Graph

40 Commits

Author SHA1 Message Date
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
NightKev
50cf1c07a2
Fix broken multi_target tests and remove RNG-based failures (#3095) 2024-07-22 10:30:56 -04:00
Amani H.
a2edc214f0
[Refactor/Test] Update Dynamax Cannon Unit Tests (#3074)
* [Refactor/Test] Update Dynamax Cannon Unit Tests

* Adjust Test Names
2024-07-19 22:32:47 -04: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
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
mcmontag
f7b53faae3
[Bug] Fix import of overrides in a test (#3009) 2024-07-13 17:07:25 +01:00
mcmontag
0aa5e0d49d
[Feature] Fully implement Octolock (#2985)
* implement octolock

* Add tests
2024-07-13 03:19:53 +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
Amani H
d57a7c91af
[Test] Fix/Extend Unit Test for Hard Press (#2992) 2024-07-12 00:01:52 -04:00
Asdar
5aee958b96
[Qol/Balance] Dynamax cannon tweak (#2540)
* Dynamax Cannon fix

* Update src/locales/fr/move.ts

Added fr translation.

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

* Update src/locales/fr/move.ts

Adding an important missing precision in French description

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

* Update src/locales/de/move.ts

German locale commit.

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

* Update src/locales/zh_CN/move.ts

Chinese locale commit, checked by a native speaker

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

* Update src/locales/ko/move.ts

Korean locale added

Co-authored-by: returntoice <dieandbecome@gmail.com>

* fixed trailing space in Chinese locale

* added es locale

* Different Dynamax Cannon fix. This one is the one

* Dynamax Cannon fix localisations

* Update src/locales/fr/move.ts

Added fr locale

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

* Update src/locales/de/move.ts

German translation ^^

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

* Update src/locales/pt_BR/move.ts

pt-BR translation

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

* Update src/locales/de/move.ts

Eslint fix, good catch @Enoch

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

* Update src/locales/ko/move.ts

Korean locale ^^

Co-authored-by: sodam <66295123+sodaMelon@users.noreply.github.com>

* Update src/locales/zh_CN/move.ts

zh_CN locale

Co-authored-by: RimKnight <rimknight852@gmail.com>

* Update src/locales/zh_TW/move.ts

zh_TW locale

Co-authored-by: RimKnight <rimknight852@gmail.com>

* Update move.ts

linting mistake due to how my comment was written

* Update move.ts

linting mistake due to how my comment was written

* Update move.ts [Localization(it)]

* WIP test

* WIP test part 2

* [Test] Add Unit Tests for Dynamax Cannon

* removed some unnecessary cases in the test to reduce testing overhead

* Update src/locales/ko/move.ts

Updated kr locale

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

* [Test] Adjust Unit Tests for Dynamax Cannon

---------

Co-authored-by: Lugiad' <adrien.grivel@hotmail.fr>
Co-authored-by: Jannik Tappert <38758606+CodeTappert@users.noreply.github.com>
Co-authored-by: returntoice <dieandbecome@gmail.com>
Co-authored-by: José Ricardo Fleury Oliveira <josefleury@discente.ufg.br>
Co-authored-by: Enoch <enoch.jwsong@gmail.com>
Co-authored-by: sodam <66295123+sodaMelon@users.noreply.github.com>
Co-authored-by: RimKnight <rimknight852@gmail.com>
Co-authored-by: Niccolò <123510358+NicusPulcis@users.noreply.github.com>
Co-authored-by: xsn34kzx <xsn34kzx@gmail.com>
2024-07-12 00:37:55 +01:00
Dmitriy K
045fd57242
Update typescript and typedoc (#2988)
* update typescript and typedoc to latest versions

* forgot to add the package-lock

* add fixes for breaking type gen
2024-07-11 23:44:17 +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
schmidtc1
0b5b481de6
[Test] Prevent flying types/levitate from breaking Ceaseless Edge test (#2931)
* Modifies ceaseless edge test to account for flying types/levitate ability

* Removes .js from imports
2024-07-08 22:49:52 -04:00
schmidtc1
7474eac808
[Bug] Removes firstHitOnly from AddArenaTagAttr to allow multi hit set up with Ceaseless Edge (#2727)
* Removes firstHitOnly from AddArenaTagAttr to allow multi hit set up with ceaseless edge

* Creates initial test file with basic cases for ceaseless edge

* Fixes ceaseless edge unit test and expands on case 3

* Adds truthy/falsy expectations prior to use
2024-07-08 16:53:16 -04:00
Tempoanon
694616e1e9
[Bug] Fix hard press bp and pp (#2441)
* Fix hard press bp and pp

* Hard Press should have a max bp of 100

* Fix typo for acc

* Add test
2024-07-07 01:44:47 +01:00
innerthunder
a48429de09
[Bug] Fix Make It Rain applying stat change twice after KO'ing both opponents (#2696)
* Revert Make It Rain stat change behavior

* ESLint

* Add double KO unit test
2024-06-29 13:59:26 -04:00
NightKev
b82c85899e
[Unittest] Add tests for Tidy Up (#2667) 2024-06-29 13:56:38 -04:00
ReneGV
fd586ecd8e
[Bug] Fix purify (#2697) 2024-06-28 20:59:06 -04:00
innerthunder
b2048148c9
[Bug] Fix Make It Rain not applying effect on KO (#2670) 2024-06-27 19:52:13 -04:00
innerthunder
e521862096
[Bug] Fix Make It Rain applying effects for each target (#2664)
* Fix Make It Rain applying effects for each target

* Revert MoneyAttr change

* Remove RNG from parental bond tests
2024-06-27 15:21:24 -04:00
Adrian T
e9fb13cce9
[Move] Implement Flower Shield (#2543)
* implement flower shield

* add unit tests

* refactors, add test

* use HideSpriteTag instead

* update comment

* replace HideSpriteTag with SemiInvulnerableTag
2024-06-24 10:37:24 -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
Adrian T
464ffe7332
[Enhancement][Unit Test] Refactor + Unit Tests for Light Screen, Reflect and Aurora Veil (#2514)
* refactor copy pastas

* add tests

* specify arena tag types
2024-06-22 10:09:23 -04:00
innerthunder
86cc1018e3
[Bug] Fix Thousand Arrows not hitting Pokemon with Levitate (#2493) 2024-06-21 14:04:11 -04:00
innerthunder
7cad385a38
[Bug] Fix Thousand Arrows grounding opponents before use (#2485)
* Fix Thousand Arrows grounding opponents before use

* Use existing AddBattlerTag instead
2024-06-21 10:39:00 -04:00
innerthunder
22e26621b3
[Unittest] Remove HP assignment in unit tests (#2466) 2024-06-20 15:02:17 -04:00
Zach Day
f9d74aa836
[Fix] Fix randomness in Gastro Acid unit test (#2443)
* Make ability suppression fail if ability is already suppressed

* Document SuppressAbilitiesAttr

* Add gastro acid unit tests

* Fix rng broken unit test

* Fix it for both tests
2024-06-20 14:02:05 -04:00
Adrian T
a6dba35291
[Unit Test] add tailwind unit tests (#2436)
* add tailwind unit tests

* add addtl test
2024-06-20 11:27:16 +02:00
innerthunder
c803cb5cb0
[Enhancement] Optimize Unit tests (#2444)
* Optimize Unit tests

- Battery
- Unseen Fist
- Rage Powder
- Follow Me
- Spotlight
- Power Spot

* Fix Screen Cleaner unit test bug
2024-06-20 11:11:29 +02:00
Zach Day
07b9f5476a
[Fix] Ability suppression effects not failing correctly (#2440)
* Make ability suppression fail if ability is already suppressed

* Document SuppressAbilitiesAttr

* Add gastro acid unit tests
2024-06-20 00:43:45 -04:00
innerthunder
3b3b9e39af
[Move] Implement Follow Me, Rage Powder, and Spotlight (#1834)
* Implement "Center of Attention" battler tag + moves

* Powder immunity logic for Rage Powder

* Center of Attention unit tests
2024-06-17 18:05:21 -04: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
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
Dmitriy K
777a8ad9ea
update gameManager switchPokemon to match other menu utilities (#2147) 2024-06-12 20:49:07 +02:00
Greenlamp2
f57798fd1d
[Bug Fix] Correct PostSummonPhase Timing for Abilities and Entry Hazards (#2108)
* added test for spikes + forceOpponentToSwitch

* added conditionalQueue && pushConditionalPhase to fix entry hasard and abilities at post summon

* reduce timeout time to default
2024-06-12 00:55:16 +02: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