120 Commits

Author SHA1 Message Date
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
Adrian T
57b5c33c4b
[Ability] Implement Screen Cleaner (#2346)
* implement screen cleaner

* add documentation

* add unit tests

* rename arena to arenaTag
2024-06-17 15:37:11 -04: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
Adrian T
0b019d9823
[Ability] Implement Wonder Skin (#2231)
* implement wonder skin

* add unit tests

* fixes

* move applyPreDefendAbAttrs
2024-06-15 17:06:32 +01:00
Adrian T
2f933d2865
[Enhancement] Unit tests for Ice Face (#2215)
* add ice face test

* complete unit tests

* fix imports
2024-06-15 00:38:30 +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
Zach Day
f8c8605710
[Move] Fix multi-hit moves activating type-immunity abilities multiple times (#2165)
* Force multi-hit moves to hit once if they are against an immune type

* Add test for multi-hit attacks against immune types

* Document MultiHitAttr

* Tiny change

* Wording fix

* Use shortcut methods in unit tests

* Fix leftover modifications from METRONOME testing

* Reorganize SAP SIPPER tests

* Fix extra imports
2024-06-13 14:23:13 -04:00
Matthew Olker
e6c24dceab Revert "[QoL] Reorganize Enum Locations (#2142)"
This reverts commit cf06ff3b8d3bca1195150533b9f72f46271b167f.
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
819fe9b4a1
[Ability] Implement Protean and Libero abilities (#1309)
* Add generic to util holders to reduce manual type casting

* implement protean and libero abilities

* remove use only once per turn trigger

* Revert Attack Attribute Conditions back to requiring unused vars

* Remove conditional before invoking type change ability

* update protean to properly trigger and skip certain moves

* remove some dangerous typecasts

* revert autoformatting changes

* not all autoformatting changes were reverted

* Revert "Add generic to util holders to reduce manual type casting"

This reverts commit 3ee7f1d5ff0a3d37a41db87e151eeab2ab4ab543.

* change some variable names

* remove incorrect comment

* update abilities so they use gen 9 logic

* fix typescript error from missing Terrain type

* update gameManager switchPokemon to match other menu utilities

* add test cases for protean and libero
2024-06-13 10:54:23 -04:00
Zach Day
a85a2a9b8b
[Bug] Fix type-immunity abilities activating on self-targeted status moves (#2168)
* Fix type immunity given by abilities only applying to attacking moves

* Add tests for type immunity granted by abilities

* Use Sap Sipper as base for testing

* Fix type-immunity abilities activating on self-targeted status moves

* Add tests for self-targeted moves on mons with type-immunity abilitiies

* Volt absorb tests
2024-06-13 09:49:40 -04:00
Greenlamp2
c908153761
[Bug] Fix PostSummonPhase Logic to Support Single Pokémon Teams (#2153)
* added test for spikes + forceOpponentToSwitch

* fix conditional for intimidate in a double if there is only 1 pokemon available on our side

* fix variable naming and ternary condition

* added a fallback to clear the conditionalQueue if it's a new turn

* speed up tests by skipping LoginPhase
2024-06-13 08:42:25 -04:00
Dmitriy K
0970c2cd4e
[Refactor] Replace forceBypass with bypassFaint flag (#1839)
* replace forceBypass with bypassFaint flag

* add another path alias for src/test

* make form override work for the whole party instead of the first pokemon

* add tests for all abilities that are touched by this change

* remove unnecessary overrides from tests

* move SpeciesFormChangeTimeOfDayTrigger outside arena reset logic

* remove alll resetMock calls, rename it to test
2024-06-13 11:36:12 +02:00
Dmitriy K
777a8ad9ea
update gameManager switchPokemon to match other menu utilities (#2147) 2024-06-12 20:49:07 +02:00
Zach Day
31406b35fd
[Move] Fix type immunities granted by abilities only applying to attacks (#2145)
* Fix type immunity given by abilities only applying to attacking moves

* Add tests for type immunity granted by abilities

* Use Sap Sipper as base for testing
2024-06-12 14:46:45 -04:00
Greenlamp2
1263ff3af2
fix opponent triggering abilities each turn (#2094) 2024-06-11 17:13:40 +02:00
Greenlamp2
0faccad49e
[Bug Fix] Corrected PostSummonPhase Trigger Timing for Accurate Stat Changes (#2057)
* fix postSummonPhase when opponent does not summon and fix the statsChange from push to unshift

* added switch pokemon helper method

* added on switch tests for intimidate

* fix test by overriding passive in tests

* remove a test not needed

* cleanup imports
2024-06-11 16:12:46 +02:00
Greenlamp2
e29c08ba1f
[Test] Add Tests for Zen Mode Ability (#1978)
* added tests for zen mode - change form in battle

* added tests to run some battle against trainer/rival & boss

* added a test with a method to kill a pokemon

* added an override in the clock mocked to reduce the time of fainting pokemon and thus reducing test time from 5s to less than 1s

* added some more tests + doAttack, doKillOpponents, toNextWave, toNextTurn helper

* added some more tests + doAttack, doKillOpponents, toNextWave, toNextTurn helper + fix some tests
2024-06-10 10:10:23 -04:00
Greenlamp2
c301a54039
[Improvement] Refactored Test Phase Management with Error Handling (#1962)
* better phase management in tests

* cleanup runFrom/to

* first step of async error handling

* second step of async error handling, halt await, still an issue with select-starter test

* added back whenAboutToRun

* added back full run suite for starter-select.test.ts
2024-06-08 20:54:20 +01: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