Commit Graph

144 Commits

Author SHA1 Message Date
innerthunder
4c4e2bc792
[Bug] Fix evasion multiplier in hit check (#2765)
* Fix evasion multiplier in hit check

* Make Sand Veil test more future-proof
2024-07-03 12:49:12 -04:00
flx-sta
cc36cdb1a8
[Tests] add unit tests for accounts (#2748)
* add unit tests for accounts

* only import from vitest (not node:test)

* resolve comments

* improve test coverage for accounts.updateUserInfo

* add test coverage for account.initLoggedInUser()

* code style improvements
2024-07-02 22:00:44 -04:00
Enoch
0bc4f26b9d
[Localization] localized status-effect.ts and translate. (#2528)
* make postposition not to dynamic for localize

* localize status-effect.ts

* added test code, modified english postposition, modifed toxic_orb test to make it always fix in English.

* Update src/locales/zh_CN/status-effect.ts

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

* Update src/locales/fr/status-effect.ts

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

* Update src/locales/de/status-effect.ts

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

* Update src/locales/de/status-effect.ts

* added test code for check message key

* remove multi-language tests (except english)

* Update src/locales/pt_BR/status-effect.ts

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

* remove language and change test code to check method call and parameter

* Update src/locales/es/status-effect.ts

Co-authored-by: GoldTra <162721984+GoldTra@users.noreply.github.com>

* Update src/locales/en/status-effect.ts

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

* Apply review suggestion

* Update src/locales/es/status-effect.ts

Co-authored-by: InnocentGameDev <asdargmng@gmail.com>

* Update src/locales/es/status-effect.ts

Co-authored-by: InnocentGameDev <asdargmng@gmail.com>

Update src/locales/es/status-effect.ts

Co-authored-by: InnocentGameDev <asdargmng@gmail.com>

Update src/locales/es/status-effect.ts

Co-authored-by: InnocentGameDev <asdargmng@gmail.com>

Update src/locales/es/status-effect.ts

Co-authored-by: InnocentGameDev <asdargmng@gmail.com>

Update src/locales/es/status-effect.ts

Co-authored-by: InnocentGameDev <asdargmng@gmail.com>

Update src/locales/es/status-effect.ts

Co-authored-by: InnocentGameDev <asdargmng@gmail.com>

Update src/locales/es/status-effect.ts

Co-authored-by: InnocentGameDev <asdargmng@gmail.com>

Update src/locales/es/status-effect.ts

Co-authored-by: InnocentGameDev <asdargmng@gmail.com>

Update src/locales/es/status-effect.ts

Co-authored-by: InnocentGameDev <asdargmng@gmail.com>

Update src/locales/es/status-effect.ts

Co-authored-by: InnocentGameDev <asdargmng@gmail.com>

Update src/locales/es/status-effect.ts

Co-authored-by: InnocentGameDev <asdargmng@gmail.com>

Update src/locales/es/status-effect.ts

Co-authored-by: InnocentGameDev <asdargmng@gmail.com>

Update src/locales/es/status-effect.ts

Co-authored-by: InnocentGameDev <asdargmng@gmail.com>

Update src/locales/es/status-effect.ts

Co-authored-by: InnocentGameDev <asdargmng@gmail.com>

Update src/locales/es/status-effect.ts

Co-authored-by: InnocentGameDev <asdargmng@gmail.com>

* Update src/locales/es/status-effect.ts

Co-authored-by: InnocentGameDev <asdargmng@gmail.com>

* add Test with empty string parameter

* Update src/locales/es/status-effect.ts

Co-authored-by: InnocentGameDev <asdargmng@gmail.com>

* Update src/locales/fr/status-effect.ts

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

---------

Co-authored-by: 송지원 <jiwsong@gmarket.com>
Co-authored-by: Yonmaru40 <47717431+40chyan@users.noreply.github.com>
Co-authored-by: Lugiad' <adrien.grivel@hotmail.fr>
Co-authored-by: Jannik Tappert <38758606+CodeTappert@users.noreply.github.com>
Co-authored-by: José Ricardo Fleury Oliveira <josefleury@discente.ufg.br>
Co-authored-by: GoldTra <162721984+GoldTra@users.noreply.github.com>
Co-authored-by: InnocentGameDev <asdargmng@gmail.com>
2024-07-02 10:22:46 -04:00
innerthunder
284c3c628b
[Unittest] Remove random berry effects from PBond tests (#2715) 2024-06-29 21:48:05 -04: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
NightKev
924ee17f70
[Unittest] Fix mocked value in Volt Absorb test (#2685) 2024-06-28 12:13:25 -04:00
NightKev
784035b6f5
[Unittest] Prevent berries from interfering with Dry Skin tests (#2679) 2024-06-28 00:55:09 -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
NightKev
23a1c461a9
[unittest] Remove more RNG from Dry Skin tests (#2647) 2024-06-27 01:06:16 -04:00
NightKev
8933a9bb05
[Test] Prevent RNG from breaking Dry Skin tests (#2630) 2024-06-26 21:39:35 -04:00
innerthunder
55dd6b5100
[Bug] Fix Multi-Lens/PBond interaction for spread moves (#2633) 2024-06-26 21:05:03 -04:00
Dmitriy K
576f099243
[Test] Optimize Quick Draw tests (#2625)
* optimize the tests

* add level override in favor of directly changing stats
2024-06-26 17:01:14 -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
Adrian T
fd08983181
[Ability] fix damage taken by disguise (#2601) 2024-06-25 15:32:45 -04:00
Teju Rajbabu
c8db3bff4c
[QOL] UI Improvement - Shiny Icon (#2372)
* Test changes to change variant label color based on Tint

* Revert "Test changes to change variant label"

This reverts commit 0ad0f62930.

* minimal recovery changes

* Finalized recovery and implemented ShinyIcon

* add setY in MockSprite

* added back some unintentional removed code

* added shiny_icons

* Initial test for tier change

* implemented Shiny Icon full functionality

* slight setY change for non-Base starters
2024-06-25 13:48:48 -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
Puchimono
8e6cbad3fc
[Bug] Legendary pull rate fix from Leg. up machine (#2587) 2024-06-25 10:14:28 -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
damocleas
ec91d2453a
[Balance] Protean / Libero changed to Gen 6-8 Implementation (#2473)
* Protean / Libero changed to Gen 6-8 Implementation

* take 2

* please just work

* Update protean.test.ts

* Update libero.test.ts
2024-06-24 20:58:50 -05:00
cadi
8c8ddd26b5
[Ability] Implement Quick Draw (#2287)
* implement quick draw

* add line

* change ability success condition

* quick draw comes before quick claw effect

* now ability has chance variable to test conditional situation

* add unit test

* Merge branch 'main' into ability-quick-draw

* modifed: ability.getTriggerMessage

* modified: to use pokemon.battleData.abilityRevealed

* modified: changed private variable to public

* erase expect interceptor log

* add localizations

* modified: add comma in locales

* modified: ability docs & trigger logic

* modified: changed test logic
2024-06-24 11:22:15 -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
sirzento
0bd25e925e
[BUG] Legendary egg pity & manaphy counter fix + Egg unit tests (#2534)
* Fixed bug that legendary egg pity only increased by one if egg pulled out of legendary gacha

* Removed debug logs

* Added new unit tests. Fixed bug that sometimes common eggs do count as manaphy eggs.
2024-06-23 12:40:37 -04:00
Adrian T
7f15efcd34
[Refactor] unit tests cleanup (#2533) 2024-06-23 12:38:40 -04:00
Matthew
d2f4c5b59c
[UI] UI Small Adjustments (#2525)
* UI Small Adjustments

* Fix Unit Tests

* Null check event display before clear

* better empty move placeholder debug name
2024-06-23 12:09:23 -04:00
hibiya (김종이)
cb5016d10f
[Localization] include pokemon names, stats into battle:stat* keys (#2373)
* [Localization] include pokemon names, stats into battle:stat* keys

* [Localization(fr)] Update stat change messages

Co-Authored-By: Lugiad <adrien.grivel@hotmail.fr>

* [Localization(es)] Update stat change messages

Co-Authored-By: GoldTra <162721984+GoldTra@users.noreply.github.com>

---------

Co-authored-by: Lugiad <adrien.grivel@hotmail.fr>
Co-authored-by: GoldTra <162721984+GoldTra@users.noreply.github.com>
2024-06-22 21:55:09 -04:00
Jacob Hatchett
77d25d18f9
[Ability] Implemented Aura Break (#2252)
* re-adjust according to new changes

* added unit tests

* add test fixes

* add documentation

* more fixes
2024-06-22 11:37:46 -04:00
Dmitriy K
3bbe01b288
[Ability] Implement Costar Ability (#1218)
* Add unthaw to moves that are missing it

Add unthaw to all damaging fire moves

Add Status Effect overrides for easier testing

clean up comments and readd status cure before fainting

* implement Costar ability, refactor TraceAbAttr to be more generic

* format code, clean up comments

* Revert "Add unthaw to moves that are missing it"

This reverts commit 89494fa0c8.

* clean up comments, remove unused call

* ability now copies negatives changes as well

* separate PostSummonCopy into two different classes

* small refactor of copy ability attrs

* add costar to test suite

* remove abstract declaration from comments

* remove broken import statement

* actually fix broken imports
2024-06-22 11:35:25 -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
sirzento
9d090f37f9
[Feature] [Same species Egg] Egg class rewrite to enable fully parameterized eggs to generate same species eggs + Egg overrides (#1833)
* Create variant-tiers enum

* Added variant tier override property to the egg class

* Added hasVariants function to pokemon species

* Implement variant override logic to egg hatching phase

* Delete src/enums/variant-tiers

* Create variant-tiers enum

* Added egg shiny and variant overrides

* fixed egg comment in overrides.ts

* Added override logic to egg hatch phase

* Added species pool filter logic when global override is set

* Added global egg tier override logic

* Added global egg tier override

* Added global gacha pull count override logic

* Added global gacha pull count override

* Renamed egg hatch override

* Renamed egg hatch override

* Added gacha pull without voucher global override

* Renamed free gacha pull global override

* Added free gacha pull override logic

* Gacha pull count override name fix

* Bugfix

* restored defaults + savegame bugfix

* eggOptions added to parameterize eggs. Added option to buy eggs of the same species.

* Small Bugfix for same species egg generation

* Removed translation from translator

* Improved the isManaphyEgg() check

* Fixed manaphy egg hatch wave count

* Added comments to IEggOptions

* Added eggOptions for hidden ability and rare egg move override

* Merge Fix: Update egg-hatch-phase.ts

* Fixed manaphy rates back to 1/256 like in PR #2182

* Renamed override, same species egg unlocks after passive is bought. Added code as comment for custom shiny, HA and rare egg move rates.

* Merge fix. Moved enums.

* quick fix for the commented out code

* Fixed that you can't buy an egg over the 99 egg limit

* Fix that you can't buy eternatus

* Use already existing randSeedShuffle instead of my own function

* Eternatus buyable again. Changed overrides to be able to set common tier/variants. Moved getGuaranteedEggTierFromPullCount().

* Changed eggOption gachaType to sourceType. Replaced eggOption overrideRareEggMove with eggMoveIndex to exatly specify an egg move. Moved egg move unlock logic into the egg class. Simplified shiny calculation. Added same species egg type descriptor. Moved custom rates for same species egg code into egg.ts.

* Added 19 unit tests for eggs

* Changed unit test description

* Added higher rates for same species eggs

* Adjusted same species egg cost for 1-3 cost starters and HA rates

* Added legacy egg loading unit test. Fixed gachaType legacy value loaded from DB and legacy tier loading

* Legacy egg loading from server DB fixed
2024-06-21 20:19:56 -04:00
innerthunder
86cc1018e3
[Bug] Fix Thousand Arrows not hitting Pokemon with Levitate (#2493) 2024-06-21 14:04:11 -04:00
Adrian T
d3e516b496
[Bug][Unit Test] fix and optimize sturdy unit tests (#2455)
* fix and optimize sturdy unit tests

* re-add timeout
2024-06-21 10:59:10 -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
Mark
eff1c8c333
[Unittest] Fix Ice Face Test where speed tie was sometimes breaking multi-hit test (#2487) 2024-06-21 10:37:09 -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
Adrian T
9181f434b7
add wind power unit tests (#2431) 2024-06-20 11:26:50 +02:00
Adrian T
0c42da8f10
[Enhancement] add wind rider unit tests (#2428)
* add wind rider unit tests

* specify wind rider ability on shiftry
2024-06-20 11:12:55 +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
Adrian T
29b8b3aa1f
[Bug] Fixes dragon tail vs ice face eiscue interaction (#2397)
* add optional chaining

* specify first hit
2024-06-19 09:51:50 -04:00
Adrian T
9463da8797
[Bug] Fix ice face blocking all hits from multihit moves (#2391)
* fix ice face bug

* add multihit test
2024-06-18 22:56:44 -04:00
ReneGV
026c048359
[ablity] Add tests to sturdy (#2362) 2024-06-17 23:39:59 -04:00
NxKarim
c52e0ac5b6
[Ability] Serene Grace, Shield Dust, Sheer Force (P) (#246)
Co-authored-by: okimin <danielgaston6@gmail.com>
2024-06-17 20:30:42 -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
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
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
layharu0
942cbb2181
[Localization][ko] StatRose, StatFell Message Fix (#2285) 2024-06-16 22:01:08 -04:00
Devin Korb
e10d67858f
remove the duplicate document.fonts code (#2282) 2024-06-16 00:37:02 -04:00
Devin Korb
728ee3809a
Add dependency cruiser command (#2192)
* add dependency cruiser and fix all default errors

* create svg render of dependencies in command

* move configs to ts files, await font loading

* fix i18n

* fix dependencies...

* fix typedoc generation and tsconfig exclusions

* revert github-pages fix for another pr

* no-circular -> no-circular-at-runtime for type imports (future)
2024-06-16 00:26:37 -04:00
Lee ByungHoon
9b8f6f312b
[Localization] Modification some code about battle stat for localization (#1985)
* [Localization] Modification some code about battle stat for localization.

* Corrections to failed generating typedoc docs.

* [Localization] Modification some code about battle stat for localization.

* Corrections to failed generating typedoc docs.

* Corrections to change localized key for battle stat and level change description.

* Deleted battle-stat.ts file in Deutsch locales.

* Fixed build failure

* Move unit test file into localisation folder from battle folder.

* Fixed localization key

* Fixed build failure

* Fix merge conflict

* Fix merge conflict again

---------

Co-authored-by: Tempoanon <163687446+Tempo-anon@users.noreply.github.com>
Co-authored-by: Temps Ray <temps.ray@gmail.com>
2024-06-15 22:25:18 -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 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
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 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
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 3ee7f1d5ff.

* 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
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
a2d0a9ece3
[CI] Add GitHub Action to Run Silent Tests on PRs to Main (#2100)
* github action to run tests in PR

* fix the CI name

* fix comment

* fix divergent tests + cut some useless long test + fix versions
2024-06-11 19:13:02 +02: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
Dmitriy K
ee4d130ebb
[Test(refactor)]: Refactor tests game manager (#2062)
* refactor tests game manager

* add setPosition to Mock Text class
2024-06-10 23:35:24 +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
d03c75c2f9
[QoL] Improve Input Accuracy by Refactoring Button Handling (#1936)
* refactored inputs-controller for better hold button management

* refactored the touch controls file to use a class and add holding button system

* added a method to deactivate pressed key for touch on focus lost

* better lost focus management
2024-06-09 19:15:37 -04:00
Greenlamp2
dd40c8caa2
added silent option to run tests and added a missing properties in the MockText (#1967) 2024-06-08 21:24:57 +01: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
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
Matthew
9c97e37c27
initVouchers correctly (#1940) 2024-06-07 23:50:07 -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
Matthew
69da96d543
Settings Refactor (#1771) 2024-06-03 19:57:47 -04:00
José Ricardo Fleury Oliveira
c7de17a46e
Achievements localization, organized some locales files and ptBR translations (#1150)
* organizing, translations and achv localization

* localized for all languages

* minor fix

* minor fix 2

* minor fix 3

* Fixed Achivment Localization, Added german localization and fixes some issues with german localization at other parts

* fix pickup description

* Update French achv.ts

* French typo correction achv.ts

* eslint fixes

* added zhTW

* minor fix

* Achivment Bar is localized and gets bigger when using german

* Changed some things to make it not as Big

* The Achivment Bar now grows with the context

* Updated Achivment Names in german

* Update French achv.ts

* Vouchers now will show the correct descrption again

* minor fix

* minor fixes

* "sub" to "semi"

* minor fix

* fixes warning and organizes some files

* forgot about english

* korean translations

* test fix

---------

Co-authored-by: Jannik Tappert <tappertjannik@googlemail.com>
Co-authored-by: Jannik Tappert <38758606+CodeTappert@users.noreply.github.com>
Co-authored-by: Lugiad <adrien.grivel@hotmail.fr>
2024-06-02 00:53:13 +01:00
Greenlamp2
060b1b2ccc
Menu - Controls Rebind - Gamepad & Keyboard (Cleaner git log) (#1666)
* squased merge rebind_menu

* azerty to qwerty

* add a check to preven a crash in firefox

* reset navigation menu on quit

* removed dual lock mekanism

* navigation display update icons on new bind

* added submit binding

* removed attribute no longer used

* change protected to abstract

* remove last bind protection since action and cancel are protected + renamed default controller to controller

* removed default alt qwerty keys in config

* fix some errors for doc

* fix tests

* fix some more errors for docs

* fix some more errors for docs final ?

* added alt bind for menu navigation + update icons on delete/home
2024-06-01 13:56:32 +01:00
flx-sta
48f2ecf39a
tests: add mock for FontFace and it to vitest setup (#1591) 2024-05-30 04:44:36 +01:00
Greenlamp2
b170478119
fix conflict without rebase (#1186) 2024-05-25 21:36:09 -04:00
Greenlamp2
c1a7df913a
refactor executed code while importing and initializing all of these in loading-scene (#1125) 2024-05-24 13:46:30 -04: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
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
Greenlamp2
136afa6b00
Tests - Check if something is wrong with the variant's sprite (#1175)
* 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
2024-05-20 14:40:40 -05:00
Greenlamp2
d2e455cdad
Tests - Check if something is wrong with the variant's sprite (#1162)
* return a list of errors if something is wrong with the variant's sprite

* reformat
2024-05-20 07:31:16 -05:00
Devin Korb
53def01b51
Add unit testing support with vitest (#18)
* update loose files and add vitest

* update test scripts

* more support for vitest

* more test support

* update vscode settings
2024-03-30 20:47:47 -04:00