Commit Graph

1964 Commits

Author SHA1 Message Date
Sirz Benjie
5854b21da0
[Refactor] Remove circular imports part 1 (#5663)
* Extract Mode enum out of UI and into its own file

Reduces circular imports from 909 to 773

* Move around utility files

Reduces cyclical dependencies from 773 to 765

* Remove starterColors and bypassLogin from battle-scene

Reduces cyclical dependencies from 765 to 623

* Fix test runner error

* Update import for bypassLogin in test

* Update mocks for utils in tests

* Fix broken tests

* Update selectWithTera override

* Update path for utils in ab-attr.ts

* Update path for utils in ability-class.ts

* Fix utils import path in healer.test.ts
2025-04-19 11:57:03 +00:00
damocleas
a6e87c8438
[Bug] [Move] Supercell Slam now hits Minimized targets for double damage and can't miss (#5680)
Added AlwaysHitMinimizeAttr and HitsTagForDoubleDamageAttr to Supercell Slam for Minimize
2025-04-18 22:25:05 -04:00
Sirz Benjie
54ce58411b
[Bug] Fix forced switch bugs in enemy partner trainer battles (#5644)
* Add isPartner method to trainer class

* Ensure force switches cannot pull pokemon from the wrong trainer

* Add override for battle type

* Fixup tests and broken assumptions

* Make move fail override semi-invuln check

Bandaid fix because move effect phase does not allow for the move to fail if all of its conditions fail

* Restore overrides

* Apply kev's suggestions from code review

Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>

* Fix illusion test battle type invocation

* Update struggle and healer tests to use battleStyle

---------

Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
2025-04-18 09:35:46 +00:00
Sirz Benjie
3a46aae687
[Bug] Fix beak blast: not applying if user faints and not respecting long reach (#5639)
* Add test for beak blast applying after user faints

* Rewrite tags for contact protected and check moveFlags.doesFlagEffectApply

* Add test to beak blast ensuring a long reach user does not get burned

* Re-add DamageProtectedTag to relevant inheritance chains

* Move resetSummonData to faintPhase instead of pokemon.apply

* Remove passing of grudge and destiny bond tags to faint phase
2025-04-17 15:25:38 -05:00
Sirz Benjie
eef8367caf
[Bug] Fix experimental sprites not loading in starter select (#5664)
[Bug][Sprite] Fix experimental variant sprites not being loaded in starter select screen
2025-04-17 09:57:30 -07:00
Sirz Benjie
b2bab46e1c
[Bug][Ability] Fix healer queueing its message when its ally is fainted (#5642)
* Add check against faint status effect

* Add tests for healer

* Remove redundant portions of the tests

* Fix broken test
2025-04-17 04:47:49 +00:00
damocleas
8d311e65cf
[Bug] [Ability] Fixed wrong Sheer Force interactions and multiplier from ~1.33 -> 1.3 (#5515)
* sheer force #, sheer force and burning jealousy test fix, and move chance fixes

* removed order up sheer force interaction mention and test - updated comments

* remove electro shot from changes
2025-04-16 19:31:53 -07:00
Stephen Kelman
18c4dddcf0
[Bug] Fixing Tera Starstorm for first turn of terastallization (#5658)
* Updating tera starstorm targeting condition so that it is a spread move on the turn that terastallization happens

* added new unit tests to verify behavior of tera starstorm under non-tera conditions as well as on terastallization turns
2025-04-15 14:19:19 +00:00
Sirz Benjie
ff44cbfa97
[Refactor] Refactor ability file part 1 (#5589)
* Move ability.ts to subfolder

* Extract types out of ability.ts

* Update imports in ability.ts and friends

* Cleanup imports in ability.ts

* Re-add imports lost during sort

* Update imports forgotten during rebase

* Re-import proper type from enums

* Update biome.jsonc

Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>

* Add commit to force tests to rerun

---------

Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
2025-04-15 14:08:35 +00:00
Madmadness65
4740b593a0
[Balance] Fix Depot Agent trainer type lacking Pokémon (#5623)
Fix Depot Agent trainer type lacking Pokémon

Also removes a stray duplicate Barboach from the Fisherman.
2025-04-15 05:27:14 +00:00
AJ Fontaine
3ec8f236f9
[Refactor] Change how rival event rewards are generated (#5638)
* Change how rival event rewards are generated

* Simplify to switch case

Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>

---------

Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
2025-04-15 00:13:05 +00:00
damocleas
b41eee3c7f
Revert "[Refactor] Move many interfaces and enums to their own file" (#5661)
Revert "[Refactor] Move many interfaces and enums to their own file (#5646)"

This reverts commit c82e01eed3.
2025-04-14 12:28:36 -04:00
Sirz Benjie
c82e01eed3
[Refactor] Move many interfaces and enums to their own file (#5646)
* Move LearnMoveSituation to its own file

* Remove unused selfStatLowerMoves array

* Move all-moves to its own file

* Move TurnMove interface to its own file

* move AiType to its own file

* Move PokemonMove to its own file

* Move DamageCalculationResult interface to its own file

* Move fieldPosition to its own file

* Move hit-result to its own file

* Move DamageResult to its own file

* Move SpeciesWildEvolutionDelay to its own file

* move EvolutionItem to its own file
2025-04-14 08:31:26 -07:00
Lylian BALL
15e535a1a0
[Ability] Implement Illusion (#3273)
* implement illusion ability with unit test and localizations

* try removing whitespace change on unnecessary files

* nit corrections

* nit update src/field/pokemon.ts

Co-authored-by: Adrian T. <68144167+torranx@users.noreply.github.com>

* nit update src/phases.ts

Co-authored-by: Amani H. <109637146+xsn34kzx@users.noreply.github.com>

* illusion test correction

* unexpected error correction

* refactor property pokemon.illusion to pokemon.battleData.illusion

* nit

* nit

* update unit test up-to-date

* add docs

* merge up to date

* bugfix

* bugfix

* merge up to date

* refactor field illusion out of battleData

* fix nit

* fix nit

* Zoroark change illusion after lastPokemon update

* Zoroark change illusion after lastPokemon update

* refactor bug fix

* bugfix

* bug fix on tests

* Update src/field/pokemon.ts

Co-authored-by: innerthunder <168692175+innerthunder@users.noreply.github.com>

* use GetFailedText

* remove useless import

* add condition 'no illusion' into transform move

* wild Zoroark creates an illusion according to the current biome

* wild Zoroark creates an illusion according to the current biome

* delete console.log()

* add doc

* Update src/field/pokemon.ts

Co-authored-by: innerthunder <168692175+innerthunder@users.noreply.github.com>

* fix tests

* update locales submodule

* update Illusion interface

* bug fix

* bug fix

* bugfix

* rename some params for future implementations

* Zoroark keep illusion between battles

* Zoroark keep illusion between battles

* delete draft

* merge up-to-date

* bugfix

* merge

* merge

* implement canApplyPresummon method

* Update test/abilities/illusion.test.ts

Co-authored-by: Sirz Benjie <142067137+SirzBenjie@users.noreply.github.com>

* Update src/data/ability.ts

Co-authored-by: Sirz Benjie <142067137+SirzBenjie@users.noreply.github.com>

* Update src/data/ability.ts

Co-authored-by: Sirz Benjie <142067137+SirzBenjie@users.noreply.github.com>

* Update test/abilities/illusion.test.ts

Co-authored-by: Sirz Benjie <142067137+SirzBenjie@users.noreply.github.com>

* Update test/abilities/illusion.test.ts

Co-authored-by: Sirz Benjie <142067137+SirzBenjie@users.noreply.github.com>

* nit

* review corrections

* nit

* type hints affected by enemy illusion

* type hints affected by enemy illusionin fight-ui-handler

* nit

* rename some parameters back in useIllusion

* Update src/field/pokemon.ts

Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>

* Update src/field/pokemon.ts

Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>

* refactor battleData.illusion as summonData.illusion and delete oncePerBattleClause

* add comments

* illusion will break before evolution

* Update src/field/pokemon.ts

Co-authored-by: Sirz Benjie <142067137+SirzBenjie@users.noreply.github.com>

* Update src/data/ability.ts

Co-authored-by: Sirz Benjie <142067137+SirzBenjie@users.noreply.github.com>

* Update src/data/ability.ts

Co-authored-by: Sirz Benjie <142067137+SirzBenjie@users.noreply.github.com>

* Update src/data/ability.ts

Co-authored-by: Sirz Benjie <142067137+SirzBenjie@users.noreply.github.com>

* Update src/data/ability.ts

Co-authored-by: Sirz Benjie <142067137+SirzBenjie@users.noreply.github.com>

* bug fix

* g

* get submodule back

* get submodule back

* bug fix to save illusion status

* add pokemon.getPokeball()

* Update src/field/pokemon.ts

Co-authored-by: Sirz Benjie <142067137+SirzBenjie@users.noreply.github.com>

* Update src/field/pokemon.ts

Co-authored-by: Sirz Benjie <142067137+SirzBenjie@users.noreply.github.com>

* Update src/field/pokemon.ts

Co-authored-by: Sirz Benjie <142067137+SirzBenjie@users.noreply.github.com>

* Update src/data/ability.ts

Co-authored-by: Sirz Benjie <142067137+SirzBenjie@users.noreply.github.com>

* Update src/field/pokemon.ts

Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>

* Update src/field/pokemon.ts

Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>

* Update src/field/pokemon.ts

Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>

* Update src/field/pokemon.ts

Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>

---------

Co-authored-by: Adrian T. <68144167+torranx@users.noreply.github.com>
Co-authored-by: Amani H. <109637146+xsn34kzx@users.noreply.github.com>
Co-authored-by: innerthunder <168692175+innerthunder@users.noreply.github.com>
Co-authored-by: flx-sta <50131232+flx-sta@users.noreply.github.com>
Co-authored-by: Sirz Benjie <142067137+SirzBenjie@users.noreply.github.com>
Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
2025-04-12 21:22:04 -04:00
NightKev
6f56dce771
[Biome] Add and apply lint/style/noNamespaceImport (#5650)
* Add `lint/style/noNamespaceImport` Biome rule

* Apply Biome rule, add exception for `*.test.ts` files
2025-04-12 01:31:56 -04:00
Blitzy
81f424dc71
[Balance] Fix and Adjust TM Compatibility
Curse
Skill Swap
Aqua Tail
Zen Headbutt
Hidden Power
Tera Blast
2025-04-11 16:33:25 -04:00
Sirz Benjie
787feceb14
[Refactor] Refactor variant sprite code part 1 (#5592)
* Move exp to its own masterlist, simplify initVariantData

* Update test/sprites/pokemonSprite.test.ts

* Extract loadPokemonVariantAssets out of BattleScene

* move variant.ts and update pokemon.loadAssets

* Add fuzzy matching for applying variant recolors

* Move glsl shaders to their own files

* Remove extra variants from shader masterlist

Their exp sprites have since been removed.

Co-authored-by: Unicorn_Power <189861924+Unicornpowerstar@users.noreply.github.com>

* Make exp sprite keys a set instead of an array

* Remove outdated exp sprite jsons

Co-authored-by: Unicorn_Power <189861924+Unicornpowerstar@users.noreply.github.com>

---------

Co-authored-by: Unicorn_Power <189861924+Unicornpowerstar@users.noreply.github.com>
2025-04-09 10:43:05 -05:00
Dean
31835e6d53
[Bug] Fix #4972 Status-Prevention Abilities do not Cure Status (#5406)
* Add PostSummonHealAbAttr and give it to appropriate abilities

* Add attr to insomnia

* Remove attr from leaf guard (it does not activate on gain with sun up)

* Add tests and remove attr from shields down

* Add PostSummonRemoveBattlerTag and give it to oblivious and own tempo

* Add tests for oblivious and own tempo

* Fix oblivious test sometimes failing

* Remove Comatose changes as it doesn't reapply

* Remove unused tagRemoved field

* Fix tests checking status instead of tag

* Fix attr comments

* Add PostSetStatusHealStatusAbAttr

* Add ResetStatusPhase

* Modify pokemon.resetStatus to use ResetStatusPhase

* Move post status effects to ObtainStatusEffectPhase

* Ensure status overriding (ie rest) works properly

* Add PostApplyBattlerTagRemoveTagAbAttr for own tempo and oblivious

* Guard removeTag call in PostApplyBattlerTagRemoveTagAbAttr

* Commenting

* Handle Mold Breaker case in MoveEndPhase

* Remove PostSummonHealStatusAbAttr from purifying salt

* Fix not passing overrideStatus to canSetStatus

* Apply suggestions from code review

Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>

* Add isNullOrUndefined import

* Add canApply to new attrs

* Add followup argument back

* Remove guard around new MoveEndPhase

---------

Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
2025-04-07 16:32:10 -07:00
Diogo Cruz Diniz
0479b9dfcc
Fix #2735: Hazard moves incorrectly require targets (#5635)
* Fix #2735: Hazard moves incorrectly require targets
Hazard moves should no longer require targets to successfully execute

* Apply suggestions from code review made by NightKev

Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>

---------

Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
2025-04-07 08:50:52 -05:00
Sirz Benjie
5318d717b3
[Refactor] [Docs] Minor refactor of move.checkFlags into move.doesFlagEffectApply (#5264)
* Refactor Move.checkFlags

* Improve jsdoc clarity

* Fix improper recursive call for the IGNORE_PROTECT check

* Fix improper placement of followUp check

* Get rid of unnecssary break

* Fix last import

* Remove latent checkFlag call in move-effect-phase

* Remedy perish body oversight

* Apply kev's suggestions from code review

Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>

---------

Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
2025-04-05 00:43:46 +00:00
Sirz Benjie
9e4162d429
[Bug] Fix super luck implementation (#5625)
* Fix super luck implementation

* Use numberholder instead of booleanholder

* Update tsdoc for getCritStage
2025-04-04 17:40:25 -07:00
Dean
4c8f81bb09
[Bug] Fix uses of getAlly() (#5618)
* Fix plus/minus crash

* Update getAlly() uses
2025-04-02 17:28:58 -07:00
Wlowscha
db7ed43ad7
[Bug][UI/UX] Make sure forms and evolutions are counted in challenges again (#5617)
Making sure to actually count forms...
2025-04-02 19:42:36 -04:00
Dean
2773354193
[Bug][Hotfix] Fix various ability flyouts not disappearing (#5614)
* Add hide phases for rogue ability showing

* Hide ability bar on game over

* Hide ability bar in TurnEndPhase
2025-04-02 02:56:19 -04:00
damocleas
951d8b633d
[Balance] Minor Passive Adjustments for 1.8.2 (#5613)
* Update passives.ts
2025-04-02 02:42:10 -04:00
Dean
5416c76ecb
[Bug][Hotfix] Fix crash when pulling trainer names for (certain) non-English languages (#5608)
* Fix key usage for trainer locales

* Update gts

* Fix partner name generation

---------

Co-authored-by: Wlowscha <54003515+Wlowscha@users.noreply.github.com>
2025-04-01 21:31:52 -04:00
Dean
1229bfe004
[Bug][Hotfix] Fix Parental bond + Pollen Puff softlock (#5607)
* Fix parental bond softlock

* Add test for pollen puff

---------

Co-authored-by: Sirz Benjie <142067137+SirzBenjie@users.noreply.github.com>
2025-04-01 12:10:59 -07:00
Dean
95194ce8f1 Mark Sinistcha/Poltchageist forms as unselectable/unobtainable 2025-03-31 18:20:49 -07:00
Dean
136ea70a6e
[Bug][Hotfix] Fix Flower Gift/Forecast flyout (#5599)
Fix Flower Gift flyout
2025-03-31 20:01:30 -05:00
NightKev
efa3662099
[Misc] AFD Event (#5596)
* global timed event manager

* more

* Music change

* Add AFD track loop points

* Add AFD music tracks

* changed music for afd

* Enable Seasonal Splash Text, adjust event values

* Add daily run challenge support

* update event date, change trainer shiny chance to 20%

* add banners lol

* fix activeeventhasbanner function

* Fix banner

* Update locales submodule

---------

Co-authored-by: AJ Fontaine <fontbane@gmail.com>
Co-authored-by: damocleas <damocleas25@gmail.com>
Co-authored-by: Madmadness65 <59298170+Madmadness65@users.noreply.github.com>
Co-authored-by: Dean <me@deann.dev>
Co-authored-by: AJ Fontaine <36677462+Fontbane@users.noreply.github.com>
2025-03-31 15:11:01 -07:00
damocleas
6add614e1c
[Balance] Trash to Treasure and The Strong Stuff minor adjustments (#5593)
* Update trash-to-treasure-encounter.ts

* Update the-strong-stuff-encounter.ts

* add 'set' items to garbodor

* Update relevant tests

---------

Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
2025-03-31 12:34:16 -04:00
damocleas
7e4151f1ef
[Balance] Even more Split Passive fixes (#5591)
* Initial Split Passives

* Update split passives final v1

* Lock Battle Bond Froakie/Frogadier Ability, Gallade back to Inner Focus

* fix mispell

* remove unneeded ability on froakie and frogadier after testing

* fix some form passives

* Update passives.ts

* Update passives.ts

* Correct BB Froakie, G-Max changes for Flapple, Appletun, Toxtricity, Hatterene, Grimmsnarl, Alcremie

* Update egg-moves.ts

* Seviper now matches Zangoose's egg tier wow

* fix mispell

* Update passives.ts

* Update passives.ts
2025-03-31 01:19:58 -04:00
NightKev
51f765d67a
[Move] Add message for called moves failing due to no targets (#5590) 2025-03-31 00:00:59 -04:00
damocleas
28234e577e
[Balance] Beta Passive Fixes, 1.8 Egg Move Changes, Egg Tier Change, and G-Max Form Re-Evaluation finished (#5588)
* Update passives.ts

* Correct BB Froakie, G-Max changes for Flapple, Appletun, Toxtricity, Hatterene, Grimmsnarl, Alcremie

* Update egg-moves.ts

* Seviper now matches Zangoose's egg tier wow
2025-03-30 06:21:12 +00:00
AJ Fontaine
d2ffc12d65
[Refactor] Remove game mode param from applyChallenges (#5585) 2025-03-30 06:18:18 +00:00
Dean
b33d95d27d
[Bug][Refactor] Fix Unsuppressable Abilities being Unreplaceable (#5547)
* Switch unsuppressable to unswappable

* Update test

* Change suppress/replace/copy flags

* Make flower gift unreplaceable

* Make forecast unreplaceable

* No holding hands

* [Sprite] Reduce Mystical Rock sprite's size (#5570)

* Updating the size to be smaller

* Update item atlas

* Fix Malicious Armor missing outline

Noticed when exporting atlas that the item sprite broke

---------

Co-authored-by: Madmadness65 <blaze.the.fireman@gmail.com>
Co-authored-by: damocleas <damocleas25@gmail.com>

* Switch unsuppressable to unswappable

* Update test

* Change suppress/replace/copy flags

* Make flower gift unreplaceable

* Make forecast unreplaceable

* No holding hands

* Apply suggestions from code review

Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>

* Remove trivial type annotations

---------

Co-authored-by: Unicorn_Power <189861924+Unicornpowerstar@users.noreply.github.com>
Co-authored-by: Madmadness65 <blaze.the.fireman@gmail.com>
Co-authored-by: damocleas <damocleas25@gmail.com>
Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
2025-03-30 05:37:35 +00:00
Sirz Benjie
66bc83fce4
[Ability] Flower Veil implementation (#5327)
* [WIP] flower veil implementation

Signed-off-by: Sirz Benjie <142067137+SirzBenjie@users.noreply.github.com>

* Remove promises

Signed-off-by: Sirz Benjie <142067137+SirzBenjie@users.noreply.github.com>

* Fully implement Flower Veil

Signed-off-by: Sirz Benjie <142067137+SirzBenjie@users.noreply.github.com>

* Fix ally interaction for battler tag

* Condense and cleanup test files

* Remove a console.log message

* Remove stray excess import

* Update doc comments and apply kev's suggestions from code review

Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>

* Remove duplicated test

---------

Signed-off-by: Sirz Benjie <142067137+SirzBenjie@users.noreply.github.com>
Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
2025-03-29 21:32:35 -07:00
Sirz Benjie
451b1f6b08
[Misc] Update packages (#5462)
* Update via `npm audit fix --force`

* Update i18next family

* Update typescript family

* Update vite-tsconfig-paths

* Update jsdom to 26.0

Important! Security fixes, and performance/stability improvements.

* Update @stylistic/eslint-plugin-js to 4.1.0

* Update inquirer to 12.4.2

* Remove commented code and defunct import

* Run npm-audit fix

* Fix ts errors

* Update eslint family

* Update phaser family

* Update eslint plugin

* Update rest of imports
2025-03-29 22:13:50 -05:00
Blitzy
9c13fa5f80
[Balance] Evil Team Tweaks (#5579)
* Update evil-admin-trainer-pools.ts

* Update trainer-config.ts

* Fix Pokemon names

* Update / Fix Teams

* typo

* Rotom Revival Protocol (and Ponyta)

Accidentally removed Rotom from two different places

* unevolve the buddies

* Update evil-admin-trainer-pools.ts

---------

Co-authored-by: Madmadness65 <59298170+Madmadness65@users.noreply.github.com>
2025-03-30 03:02:27 +00:00
schmidtc1
27a1638243
[Bug] Fix interactions for Pollen Puff Parental Bond, Multi-Lens, Grip Claw Ally Healing (#5550)
* Checks for hit result status on Grip Claw application

* Adds a boolean check for the Pollen Puff edge case in canBeMultiStrikeEnhanced

* Adds parental bond test

* Adds grip claw and multi lens tests
2025-03-29 18:25:34 +00:00
damocleas
4f19e4a126
[Move] False Swipe/Hold Back don't fail if the target has 1 HP (#5577)
* Remove condition from `SurviveDamageAttr`

* Add test for False Swipe

---------

Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
Co-authored-by: EmberCM <kooly213@hotmail.com>
2025-03-29 17:10:07 +00:00
NightKev
25b9fa7933
[Biome] Add "no unused imports" rule (#5580)
* Apply Biome to files

* Add `lint/correctness/noUnusedImports` rule

* Apply rule

* Remove obsolete eslint directives

* Fix variable naming in `game-speed.ts`
2025-03-29 10:24:23 +00:00
Dean
a727375730
[Bug] Fix Flash Fire has No Message (#5578)
Add flash fire message
2025-03-29 09:51:28 +01:00
Sirz Benjie
5f01caffae
[Refactor] Minor refactor of trainer-config files (#5573)
* Move trainer-config.ts

* move TeraAIMode enum to its own file

* Move TrainerPoolTier enum to its own file

* Move TrainerSlot enum to its own file

* Reorder and group imports

* Move TrainerPartyTemplate to its own file

* Remove speciesPoolPerEvilTeamAdmin method

* Apply kev's suggestions from code review

Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>

* Fix typo in zinzolin's name

---------

Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
2025-03-29 00:19:35 -04:00
Sirz Benjie
fac20ca97a
[Ability] Fully implement Flower Gift and Victory Star (#5222)
* Fully implement Flower Gift and Victory Star

* Fully implement Flower Gift and Victory Star

* Update src/field/pokemon.ts

Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>

* Update src/field/pokemon.ts

Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>

* Update src/data/ability.ts

Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>

* Update src/data/ability.ts

Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>

* Accept suggested change

Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>

* Accept suggested change

Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>

* Update src/data/ability.ts

Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>

* Update src/data/ability.ts

Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>

* Update src/data/ability.ts

Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>

* Update src/field/pokemon.ts

Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>

* Fix check for ignore_abilities move flag

* Fix missing argument to getBaseDamage in getAttackDamage

* Fix merge conflict due to same changed import line

* Fix call to getAttackDamage that was reset after merge

* Update calls to getEffectiveStat

---------

Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
2025-03-28 22:24:19 -05:00
Dean
b838d5f775
[Misc] Allow Localization of Common Trainer Names (#5569)
* Localize common trainer names

* Update locale key usage
2025-03-28 21:23:57 +00:00
Dean
f09c77c81b
[Bug] Fix Extra Ability Activation Flyouts during AI Decisions (#5563)
Fix extra messages in getMoveChance
2025-03-28 18:38:20 +00:00
Wlowscha
46d110e705
[UI/UX] Grey options in Pokédex for uncaught mons (#5529)
* Options in Pokédex page are dark if unselectable

* Fixed docstring

* Changing display of seen Pokémon in the dex

* Changed visibility of icons in main Pokédex page
2025-03-28 03:59:05 +00:00
damocleas
19c61a041f
[Misc] New Splash Texts, March 2025 (#5345)
* Update splash-messages.ts 1

* Add Pokemon name splash text

This will display a random Pokemon's name, followed by an exclamation point (ex. "Bulbasaur!").

* Make Pokemon name splash message weighted

* Update splash-messages.ts

* Update splash-messages.ts

* fix trailing spaces

* Update splash-messages.ts

* Update splash-messages.ts

* Add splashes which use random Pokemon

* Update splash message tests

* Update splash-messages.ts

* Update splash-messages.ts

* Missing comma

* Fix length on test

It even says to do so whenever weight multipliers are adjusted...

* Update splash-messages.ts

* add missing prefix thing

* adjusted comment in splash_messages.test.ts

* Update splash-messages.ts

* fix blank line

* Add gender splash message code

This makes the specific April Fools splash message functional.
Also fixed a linter issue with the randomPokemon code.

* Update title-ui-handler.ts changed battles won fallback number to -1

* Update splash-messages.ts

* changed afd to 2 days

* Update splash_messages.test.ts

* Update src/data/splash-messages.ts

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

---------

Co-authored-by: Madmadness65 <blaze.the.fireman@gmail.com>
Co-authored-by: Madmadness65 <59298170+Madmadness65@users.noreply.github.com>
Co-authored-by: Jannik Tappert <38758606+CodeTappert@users.noreply.github.com>
2025-03-27 19:56:26 -07:00
Dean
eb12b8c692
[Bug] Stop Shield Dust and Gluttony from Displaying (#5564)
Prevent displays
2025-03-27 15:01:33 -04:00
Amani H.
6316218bd3
[Item] Add Weather and Terrain Extender Item (#4799)
* [Item] Add Weather and Terrain Extender Item

* Add Documentation

* Clean Up Unit Tests

* Add Weight Function

* Include Suggestions
2025-03-26 22:40:46 -04:00
NightKev
db850c79cd
[Refactor] Moveset arrays can no longer hold null values (#4919)
* Pokemon movesets no longer allow `null` values

* Clean up all the bangs caused by movesets allowing `null`

* Pokemon movesets no longer allow `null` values

* Clean up all the bangs caused by movesets allowing `null`

* Fix merge issues

* Remove various unnecessary `?`

* Apply biome

* Fix `global-trade-system-encounter.ts`

* Fix merge issue

* Remove unnecessary parentheses

* Remove missed `?`

* Match formatting of `pokemon.ts`
2025-03-26 19:12:54 -07:00
damocleas
938f1b8756
[Balance] G-Max Form Re-Evaluation (#5545)
* Update pokemon-species.ts

* Orbeetle and Drednaw adjustment

* Cinderace, Corviknight, Drednaw, and Coalossal adjustments

* Fix Urshifus

* Butterfree, Orbettle, and Drednaw adjustments
2025-03-26 17:57:30 -05:00
damocleas
f911ffc266
[Balance] Split Passives and related (#5531)
* Initial Split Passives

* Lock Battle Bond Froakie/Frogadier Ability, Gallade back to Inner Focus
2025-03-26 16:01:54 -04:00
Wlowscha
bba7c1610d
[UI/UX] Option to see Pokedex entry after catching wild Pokémon (#5538)
* pokedex option after catching

* Also changing catching for mystery encounters
2025-03-25 13:36:12 -07:00
Madmadness65
f3141280c9
[Balance] Implement more trainer types & add to biomes (#5520)
* Add more trainer types to biomes

This makes the Hooligans, Musician, Pilot, Poké Fan, Rich, and Rich Kid trainer types able to be battled.

* Adjusted Rich and Rich Kid $$$ multipliers

* Add basic dialogue for trainer types

Also added the Clerk's dialogue entries, as that trainer type has localized text, but no entry in the code.

* Fix Musician to Pokefan encounter music

* Add dialogue entries for new dialogue

---------

Co-authored-by: damocleas <damocleas25@gmail.com>
2025-03-25 01:51:59 -04:00
Wlowscha
37e51e9657
[Bug][Challenge][UI/UX] Exclude invalid starters when combining challenges (#5509)
* Filtering correctly when combining gen and monotype challenges

* Clean-up

* Apply suggestions from code review

Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>

* Always check requested form first

* Fixing Basculin

* Only check forms which are starter selectable

* Exclude form changes that are not triggered by an item

---------

Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
2025-03-24 02:40:17 +00:00
schmidtc1
40e1e7fd4e
[Bug] Fix Reviver Seed and endure triggering on indirect damage (#5182)
* Create new turnData field for tracking damageResults, check for HitResult in Reviver Seed modifier

* Optional chaining for cases like stealth rock

* Adds HitResult.SELF for confusion to distinguish from indirect damage

* Adds HitResult.SELF to damage sound effect switch

* Cover edge case of salt cure, insert HitResult for ALL damage regardless of optional variable

* Change Liquid Ooze HitResult to OTHER from HEAL

* Adjust OHKO moves to not bypass endure or RSeed

* Add tests for reviver seed

* Fixes endure to no longer block indirect damage, updates weather damage to be HitResult.OTHER, adds/fixes unit test

* Change destiny bond to HitResult.OTHER so it doesn't trigger rseed

* Adds destiny bond unit test

* Creates additional unit tests for endure

* Rename SELF hitresult to CONFUSION

* Update CONFUSION enum

* Refactors implementation per Wlowscha's suggestions: removes damageSources array and preventEndure variable

* Rename HitResult.OTHER to INDIRECT, create INDIRECT_KO for PSong/DBond, add functionality for INDIRECT_KO to damageanim/number handler

* Fixes hit result for stealth rock

* Removes unnecessary check, makes DamageResult default to EFFECTIVE, updates remaining damageAndUpdate calls to use INDIRECT

* Refactors damageAndUpdate to replace optional parameters with object parameter

* Fixes based on Kev's suggestions

* Updates tsdocs for damageAndUpdate

* Fix merge conflict

---------

Co-authored-by: Wlowscha <54003515+Wlowscha@users.noreply.github.com>
2025-03-23 22:59:19 +00:00
Dean
817095d895
[Bug] Fix #2769 Revival Blessing Softlock in doubles (#5141)
* Properly handle cases where enemy switches in due to revival

* Fix user ally using move when revived

* Move revival blessing function to move.ts

* Properly filter for the right switch phase to remove

* Re-add bug fix

* Add test
2025-03-23 20:47:51 +00:00
NightKev
4b8f1df8cd
[Bug] Add list of uncallable moves for Mirror Move (#5552)
* Add list of uncallable moves for Mirror Move

* Mirror Move now respects the uncallable moves list

---------

Co-authored-by: damocleas <damocleas25@gmail.com>
2025-03-22 14:46:58 -07:00
damocleas
d0a9672e91
[Balance] [Move] Add Fleur Cannon as a Metronome callableove (#5551)
* Update invalid-moves.ts

* forgot fleur cannon
2025-03-22 13:18:08 -07:00
damocleas
87b78e6b70
[Balance] [Move] Made more moves callable with Metronome, Assist, Sleep Talk, and Copycat (#5549)
Update invalid-moves.ts
2025-03-22 15:47:41 -04:00
AJ Fontaine
c792d5e704
[Balance] Changes to several trainer classes (#5505)
* Changes to Biker, Baker, Beauty, Cyclist, Parasol Lady, Hex Maniac

* Linting and extra beauty mons

* Further changes

* Find to some

---------

Co-authored-by: damocleas <damocleas25@gmail.com>
2025-03-20 19:53:27 +00:00
Dean
66965bf7e2
[Bug] Fix Slow Start Message being Deferred (#5534)
Fix deferred message
2025-03-20 19:37:16 +00:00
Dean
17e71a1b8a
[Bug] Fix Poison Heal Crash on beta (#5544)
Fix !== null uses
2025-03-20 19:26:49 +00:00
Matheus Rabello Noya Alves
3f887988a6
[Bug] [UI/UX] Smack Down and Thousand Arrows now display a message for Grounding (#5536)
Fix #5027: Missing confirmation message for moves special effects
When using the moves Thousand Arrows and Smack Down, though the special
effect of grounding the opponent is applied, a confirming message was
not displayed. In this fix a new AddBattlerTagAttr subclass has been
created to handle the message display, compared to previous multiple
attribute additions. This new subclass verifies the conditions for the
message to be displayed through asserting if target is grounded and
accesses a new locale message created to display if necessary.
2025-03-19 22:45:41 +00:00
Dean
d9288a7908
[Bug] Add Neutralizing Gas Message for each user (#5527)
Add message to onOverlap

Co-authored-by: damocleas <damocleas25@gmail.com>
2025-03-18 21:19:37 +01:00
Wlowscha
a5ed9c5191
[UI/UX] Mark Revavroom forms as unobtainable (#5525) 2025-03-16 21:51:27 -04:00
Dean
02ae7952ad
[Bug] Fix Commander crash after 5267 (#5524)
Fix reversed commander checks
2025-03-16 12:44:48 +01:00
Dean
1d7f916240
[Refactor] Align ability display with mainline (#5267)
* Stop ShowAbilityPhase from ending until the bar has popped out

* Remove ability bar hiding from messagePhase

* Remove abilityBar reference from base Phase class

* Add HideAbilityPhase to hide ability bar after effects

* Add willSucceed to ability attrs

* Update AbAttrs and PostInitAbAttrs

* Update PreDefendAbAttrs

* Update postDefend, postMoveUsed, StatStage, postSetStatus, and PostDamage

* Update preAttack and fieldStat

* Partially implement postAttack

* Finish PostAttack

* Update PostSummon

* Update PreSwitchOut

* Update preStatStageChange

* Update PostStatStageChange, PreSetStatus, PreApplyBattlerTag

* Update postTurn and preWeatherEffect

* Update postWeatherChange

* Update postWeatherChange

* Update PostTerrainChange

* Update CheckTrapped and PostBattle

* Update postFaint

* Update PostItemLost

* Bug fixes from test cases

* Fix intimidate display

* Stop trace from displaying itself

* Rename to canApply

* Fix ability displays using getTriggerMessage

* Ensure abilities which are mistakenly shown are still hidden

* Fix ability bar showing the wrong ability with imposter

* Add canApply for imposter

* Update abilities using promises and `trySet...` functions

* Committing overrides changes is bad

* Document apply and canApply

* Update PreLeaveFieldAbAttr

* Remove boolean return type apply functions

* Remove redundant  assignment

* Remove ability display from abilities that shouldn't have it

* Move queueAbilityDisplay to battlescene

* Remove unused shown variable

* Minor changes

* Fix using id instead of battlerindex in queueAbilityDisplay

* Fix PostBattleInitFormChangeAbAttr displaying

* Prevent crashes in case an ability for a pokemon not on the field is shown

* Stop more abilities from displaying

* Move enemy ability bar to the right side

* Automatically reload bar if shown while already out, fix specific abilities

* Remove duplicate call to clearPhaseQueueSplice

* Remove ShowAbilityPhase import from ability.ts

* Update PostDefendTypeChangeAbAttr to use PokemonType

* Update PostSummonAddArenaTagAbAttr

* Minor changes
2025-03-16 02:51:02 +00:00
AJ Fontaine
7aa5649aa8
[Refactor] Move signature species to separate file (#5519) 2025-03-14 17:06:19 -04:00
NightKev
4e1ee9e50b
Revert "[Enhancement] Add form changes for Solgaleo, Lunala, & Marshadow cosmetic forms" (#5512) 2025-03-13 22:32:35 +01:00
Scooom
dc46cf6d05
[BUG] Add Multi Attack, Revelation Dance, and Terrain Pulse to Normalize Exceptions (#5503) 2025-03-12 07:03:12 +00:00
Madmadness65
f3f43f4a44
[Enhancement] Add form changes for Solgaleo, Lunala, & Marshadow cosmetic forms (#5344) 2025-03-12 01:00:33 -04:00
Dean
b298138157
[Bug] Fix NG crash when ability is reactivated for a Pokemon off the field (#5478) 2025-03-11 03:20:00 +00:00
Dean
929392fe8b
[Bug] Fix #5358 Abilities that Redirect Moves Consider Move-Typings before Ability Modifiers (#5464) 2025-03-11 03:02:51 +00:00
Sirz Benjie
408b66f913
[Misc][Refactor][GitHub] Ditch eslint for biome, and add a formatter (#5495)
Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
2025-03-09 14:13:25 -07:00
Sirz Benjie
60a4db7059
[Refactor] Refactor moves.ts part 1 (#5420) 2025-03-07 19:10:29 -06:00
Mikhail Shueb
e73dbe9861
[Bug] Chilly Reception no longer replaces Legendary Weather (Primordial Sea, Desolate Land, Delta Stream) (#5484)
Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
2025-03-07 12:31:34 -05:00
Fuad Ali
da68cf15c6
[Bug] Harsh Sun, Heavy Rain, and Delta Stream messages now display when their effects are triggered (#5489) 2025-03-06 19:03:01 -05:00
NightKev
6595966478
[Misc] getPokemonSpecies() no longer accepts undefined (#5477) 2025-03-06 02:18:24 +00:00
damocleas
ff4184e23f
[Balance] Make Pickup and Honey Gather Unsuppressable (#5476) 2025-03-03 16:33:53 -08:00
Sirz Benjie
5e469620ef
[Bug] Fix battle-anims crashing in certain cases (#5337) 2025-03-02 17:15:51 -08:00
Wlowscha
882b965da1
[Bug] Pledge moves in summary do not break the game (#5461) 2025-03-01 19:46:38 -06:00
Wlowscha
89e8085c39
[Bug] Display Pokémon name in Focus Punch lost focus message (#5448) 2025-02-28 23:22:51 -05:00
AJ Fontaine
13429446d3
[Bug] Fix tera slot wrapping (#5437) 2025-02-28 06:18:58 +00:00
Xavion3
b33ffb29b3
[Bug] Fix mycelium might softlock (#5441) 2025-02-27 19:08:55 -08:00
Blitzy
9701f27c63
[Bug] [Hotfix] Remove Penny's Extra Zamazenta (#5439)
Co-authored-by: damocleas <damocleas25@gmail.com>
2025-02-28 02:05:11 +00:00
damocleas
d12aa635af
[Balance] Follow Cost Change from #5416 (#5430) 2025-02-27 05:56:01 +00:00
Wlowscha
13373a6391
[UI/UX] Pokédex - New locales keys for standalone battle forms (#5386) 2025-02-26 16:57:05 -05:00
Dean
905fec92e9
[Bug] Fix Neutralizing Gas not Deactivating on Faint and Capture (#5423) 2025-02-26 22:39:08 +01:00
AJ Fontaine
85f8c59036
[Balance] Paldean Gym Leader, E4, and other Tera-related trainer adjustments #5367 2025-02-26 14:11:46 -05:00
Esca
883bf45bc0
[Bug][Move] Shed Tail now rounds incurred damage up, not down (#5219)
* Shed Tail rounds incurred damage up

* Altered Substitute/Shed Tail success condition to account for rounding up

* Altered the test to match correct functionality

* Update src/data/move.ts

Removed default value in constructor due to it having become redundant

Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>

---------

Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
Co-authored-by: Sirz Benjie <142067137+SirzBenjie@users.noreply.github.com>
2025-02-26 00:45:29 -08:00
Dean
b9a853ed2e
[Bug] Fix canApplyAbility check but for real this time (#5418)
* Move canApplyAbility check

* Fix suppressed abilities not activated properly

* Move canApplyAbility to applySingleAbAttrs

---------

Co-authored-by: damocleas <damocleas25@gmail.com>
2025-02-26 00:48:44 -05:00
damocleas
92ee9d06ca
[Balance] February 2025 Passive/Egg Move/Cost Changes 2 #5416
* Update egg-moves.ts

* Update starters.ts cost changes

* Update passives.ts

* Update mystery-encounter-utils.test.ts
2025-02-25 23:02:04 -05:00
Sirz Benjie
aa3f924633
Revert "[Bug] Fix canApplyAbility check #5413" (#5417)
This reverts commit 2cc0ac90f8.
2025-02-25 22:05:18 -05:00
Dean
2cc0ac90f8
[Bug] Fix canApplyAbility check #5413 2025-02-25 20:22:32 -05:00
Dean
870bff0e6e
[Bug][Ability] Fix Neutralizing Gas interactions #5381
* Add neutralizing gas arena tag

* Add PostSummonAddArenaTagAbAttr

* Add PreLeaveField attr for neutralizing gas

* Remove old SuppressFieldAbilitiesAttr

* Fix ability suppression logic

* Add basic tests

* Reapply onGain abilities when neutralizing gas ends

* Untodo ability remval test

* Add more tests

* Modify gastro acid to call onLose attributes when suppressing

* Properly cancel abilities on switch in

* Add documentation

* Remove partial designation

* Update locale key usage

* Reactivate the last source's other abilities when it becomes the last remaining

* Fix loop vars

* Add access modifiers for SuppressAbilitiesTag

* Minor changes

* Move test to reflect new location

* Remove promises from abattr function signatures
2025-02-25 18:38:17 -05:00
Sirz Benjie
c81d9b6a89
[Balance] Update moveset gen to calculate expected power (#5390)
* Make moveset gen consider multi hit moves fairly

* Make getTargetBenefitScore consider effective power

* Apply Kev's suggestions

Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>

* Fix improper stat ratio.

* Fix expected hit count for pop-bomb like moves

Accuracy is now properly divided by 100

* Update src/data/move.ts

Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>

* Update src/data/move.ts

Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>

* Update src/data/move.ts

Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>

---------

Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
2025-02-25 08:22:25 -06:00
Madmadness65
88a5c9d416
[Ability] Implement Teraform Zero ability (#5359)
* Partially implement Teraform Zero ability

The functionality of the ability is all there, it just isn't limited to one use per Terastallization yet.

* Add the once per battle condition

This removes the partial from the ability.

* Make attribute names more generic

---------

Co-authored-by: damocleas <damocleas25@gmail.com>
2025-02-25 08:46:07 +01:00