Commit Graph

552 Commits

Author SHA1 Message Date
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
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
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
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
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
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
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
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
José Serrado Marques
1e876ec595
[BUG] fixes #5472 - transform on reload (#5508)
* [BUG] fixes #5472 - transform on reload

* Fix the bug where transformed pokemon failed to load sprite on reload if it was not the base form

* Now properly loads the transformed sprite assets during summon phase
2025-03-23 12:07:14 -07:00
NightKev
e8e0041ed0
[Misc] OPP_FORM_OVERRIDES now accepts 0 as a valid form index (#5514) 2025-03-13 21:48:53 +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
schmidtc1
7a9b1e5033
[Bug] Fix critical hits not bypassing screens (#5470) 2025-03-06 09:14:22 +00:00
Xavion3
cabcfcbd39
[Balance] Make megas/max player pokemon unable to tera (#5469)
Co-authored-by: damocleas <damocleas25@gmail.com>
2025-03-02 21:22:37 -05: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
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
AJ Fontaine
d14f71d27a
[Bug] Maintain Gimmighoul evo counter when fusing (#5411) 2025-02-24 21:15:15 -08:00
Xavion3
0cb3a28dfa
Fix tera type access (#5364) 2025-02-25 04:33:39 +11:00
Xavion3
9fb654ce73
[Balance] Make dual STABs way more likely #5401 2025-02-24 11:44:22 -05:00
Sirz Benjie
e4ce822ce6
[Refactor] Remove Promises from moves and abilities (#5283)
* Remove Promises from moves and abilities

* Fix `PostSummonPhase`

* Apply suggestions from Kev's review

* More suggestions

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

* Cleaning up some updated functions

* Remove Promise from `addEnemyModifier`

+ fixes to some extraneous `await`s

* Test fixes

* Fix missing import in revival blessing test

Co-authored-by: innerthunder <brandonerickson98@gmail.com>

* Add back applyPreLeaveFieldAttrs

Attribute was removed due to absence in a cherry-pick

* Make applyPostApplyEffects work

* Fix move-effect-phase.ts applications

Some applyX methods were missed in the cherry pick commit and were still returning functions instead of running the function themselves

* Mock `BattleScene.addPokemonIcon` in tests

* Revival Blessing condition and tests

* Incorporate Despair-Games/poketernity/pull/48

* Break up imports

* Remove enemy modifier chance dead code

* Remove async from applyAbAttrsInternal

Stray async leftover from merge

* Remove docs and comments referencing promises

* Add `user.setTempAbility` to transform phase

---------

Co-authored-by: innerthunder <brandonerickson98@gmail.com>
Co-authored-by: innerthunder <168692175+innerthunder@users.noreply.github.com>
Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
Co-authored-by: PigeonBar <56974298+PigeonBar@users.noreply.github.com>
2025-02-21 09:34:39 +01:00
Xavion3
ed8d162125
[Balance] Make stat a much larger factor in moveset gen #5383 2025-02-21 10:50:39 +11:00
Dean
9cc1b17745
[Bug] Fix moves/abilities which modify abilities (#5146)
* Add setAbility method to pokemon.ts

* Edit SwitchAbilitiesAttr to use setAbility

* Change AbilityGiveAttr to use setAbility

* Rename setAbility to be more accurate

* Fix AbilityCopyAttr

* Fix AbilityChangeAttr

* Fix Transform

* Fix imposter

* Fix PostDefendAbilityGiveAbAttr

* Actually fix imposter

* Actually fix transform

* Fix CopyFaintedAllyAbilityAbAttr

* Fix Trace

* Fix PostDefendAbilitySwapAbAttr

* Add tests for skill swap

* Add tests for doodle

* Add tests for entrainment

* Add tests for role play

* Add test for simple beam

* Add test for transform

* Add test for imposter

* Add tests for mummy

* Add tests for trace

* Add tests for wandering spirit

* Consider legendary weather when changing ability

* Ensure that passives are not (re)applied when main abilities change

* Add general ability swap test cases

* Fix test name

* Add NoMidTurnActivationAttr

* Remove NoMidTurnActivationAttr from illusion

* Remove extraneous call to triggerWeatherBasedFormChanges

* Fix primal weather clearing

* Change "MidTurn" to "OnGain"

* Change NoOnGainActivationAttr to a field in PostSummonAbAttr

* Add passive support

* Remove redundant parentheses

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

---------

Co-authored-by: damocleas <damocleas25@gmail.com>
Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
2025-02-19 09:02:39 +01:00
Sirz Benjie
4361aa089b
[Refactor] Replace integer holder with number holder (#5350)
* Replace integer holder with number holder

* Remove duplicate NumberHolder

---------

Co-authored-by: Madmadness65 <59298170+Madmadness65@users.noreply.github.com>
2025-02-16 15:31:46 -08:00
Xavion3
90d32b886c
[Feature] Tera Rework (#5233)
* Commit old stashed changes

* Complete basic implementation of Tera

* Fix effectiveness test

* Make tera retain until forced recall or faint, regain on biome change

* Experimental sparkle fix

* Fix champion teras

* Attempted fix for double battles tera UI bug

* Fix the fix

* Fix linting and test issues

* Fix more tests

* Change int type

* Implement tera for ME trainers

* Cleanup species inclusivity check

* Make tera instant recharge if terapagos in party

* Make useless tera shards not generate

* Implement stellar tera damage boost

* Improve tera selection UI

* Tidy up animation and localisation

* Improve tera button sprite

* Fix Lance tera

* Make tera instant recharge during E4 in classic modes.

* Fix formatting in the tera common animation

The animation was also not playing due to `frameTimedEvents` being missing as well.

* Make tera effect start after animation

* Implement save migration

* Update version number for migration code

---------

Co-authored-by: Madmadness65 <blaze.the.fireman@gmail.com>
Co-authored-by: Madmadness65 <59298170+Madmadness65@users.noreply.github.com>
2025-02-16 16:20:50 -05:00
AJ Fontaine
7b9d1d6570
[Hotfix] Fix crash involving female Pyroar fusions with exp sprites (#5331)
* Fix crash involving female Pyroar fusions with exp sprites

* Update locales submodule
2025-02-14 18:51:41 -08:00
Xavion3
77fbcc70ef
[Bug][Hotfix] Fix fusion with dual type + monotype with shared primary type. (#5322)
* Fix fusion with dual type + monotype with shared primary type.

* Update version number

* Add test case
2025-02-14 02:40:13 -05:00
geeilhan
b31d5fd23e
[Move] Spectral Thief Full Implementation (#4891)
* fully implemented spectral thief

* Update to structure of implementation

* line commented target.scene.queueMessage since message does not exist yet

* changed documentation

* added move-trigger.json key

* removed line comment since key was added to english locales

* removed console.log messages used for debugging

* refactored move-trigger key to race with @muscode13

* added more automated tests

* github tests failed

* removed line comment since key was added to english locales

* refactored move-trigger key to race with @muscode13

* added more automated tests

* github tests failed

* solved conflicts

* Update src/data/move.ts

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

* removed .partial()

* corrected spectral thief name

* changed target.scene to globalScene

* changed comments

---------

Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
Co-authored-by: Sirz Benjie <142067137+SirzBenjie@users.noreply.github.com>
2025-02-11 03:26:01 -08:00
Scooom
abf9c83607
[Bug] Fix Fused Pokemon not having stats Flipped correctly (#5295)
Co-authored-by: Scooom <jerry@hosterslice.com>
2025-02-10 19:33:13 -08:00
geeilhan
e75ddfa975
[Ability] Ignore Held Items for Stat Calculation (#5254)
* added the ability to ignore held items at stat calculation

* integer -> number in src/field/pokemon.ts

* added tests from @SirzBenjie

* Update test

* Fix test filename

* added turnorder to tests

* added tera_blast changes and tests

---------

Co-authored-by: damocleas <damocleas25@gmail.com>
Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
2025-02-10 18:56:56 -06:00
AJ Fontaine
3daa9054f3
[Misc] Add data for theoretical Valentine's event (#5244)
* Add Valentines event data

* Event ends Feb 21 not March 21

* Event starts Feb 11 12:00 UTC for testing on beta

* Oops I meant February 10

* Add Luvdisc +3 Luck Boost

* Added Applin to round out the total pokemon and because I know people are going to be confused why it isn't here if they've actually read in gen 8 (any readers in chat?)

---------

Co-authored-by: Jannik Tappert <38758606+CodeTappert@users.noreply.github.com>
Co-authored-by: damocleas <damocleas25@gmail.com>
2025-02-10 00:30:39 -06:00
Sirz Benjie
986fbf3cf7
[Move] [Bug] Fix super-niche edgecase with mega gengar and telekinesis (#5266)
* Fix super-niche edgecase with mega gengar and telekinesis

* Update TelekinesisTag doc comment

* Remove comment about mega gengar as this update fixes it
2025-02-07 15:00:25 -07:00
Wlowscha
6c4dedb73e
[Refactor/Bug] Pokemon.leaveField(), Fix Related Abilities (#5191)
* Added new AbAttr that triggers whenever a pokemon leaves the field

* Use leaveField everywhere

* Changing order for PreSwitchOutAbAttr

* Don't clearEffects when catching in a mystery encounter

* Attempts to make new overrides for testing

* New options in overrides

* Implemented tests for Desolate Land

* Fixing instruct test to not read turnData of fainted mon

* Removed post faint clear weather

* Apply suggestions from code review

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

* Has_passive_ability override now turns off passives if set to "false", defaults to "null"

* Updating overrides type definitions

* Apply suggestions from code review

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

* Suggestions from review

* Fixed strings in suggestions

* Simplified function to throw balls in tests

* Added tsdocs to overrideHelper.ts

---------

Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
2025-02-06 18:37:50 -05:00
Wlowscha
8d043a9f55
[Refactor] Replace all instances of integer with number (#5250)
* Replaced instances of "integer" with "number"
2025-02-04 17:56:13 -07:00
Wlowscha
3f71f79d7b
[Bug] Ensuring proper .getTypes() behavior with secondary Normal type (#5241)
* customPokemonData.types now accepts Type.UNKNOWN, ignores when determining type

* Changed test for clowning around encounter to look at getTypes() instead of directly accessing customData

* Simplifying logic for fusions when overrides are involved, introducing new tests in pokemon.test.ts

* Renamed overrideTypes to customTypes to avoid confusion with override

* pokemon.getType() properly recognizes Normal secondary type

* Added effectiveness test for ghost on normal

---------

Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
2025-02-02 19:17:08 -07:00
Wlowscha
82da3c1b6d
[Bug][Refactor] Custom types from MEs are correctly applied on form changes (#5229)
* customPokemonData.types now accepts Type.UNKNOWN, ignores when determining type

* Changed test for clowning around encounter to look at getTypes() instead of directly accessing customData

* Simplifying logic for fusions when overrides are involved, introducing new tests in pokemon.test.ts

* Fixed typo

* Fixed another typo

* Renamed overrideTypes to customTypes to avoid confusion with override

* Fixing comments
2025-02-01 20:32:37 -06:00
Wlowscha
38e2abc059
[Balance] Removing Pain Split from boss move pool (#5235)
* Adding HpSplitAttr moves to those removed from the boss pool

---------

Co-authored-by: damocleas <damocleas25@gmail.com>
2025-02-01 17:06:13 -07:00
Jimmybald1
da076d0aa2
[Bug] Fix #5211 gender override would not activate for Male (#5220)
Co-authored-by: Jimmybald1 <147992650+IBBCalc@users.noreply.github.com>
2025-02-01 16:31:29 -07:00
Xavion3
6c845cc0d3
[Refactor] Add support for form and evolution specific passives (#5193)
* Add support for form and evolution specific passives

* Update src/data/pokemon-species.ts

---------

Co-authored-by: Amani H. <109637146+xsn34kzx@users.noreply.github.com>
Co-authored-by: damocleas <damocleas25@gmail.com>
2025-01-29 21:35:01 -07:00
Bertie690
4c17ebd400
[Bug][Test] Instruct Bugfixes + More tests (#5134)
---------
Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
2025-01-29 19:19:05 -07:00
AJ Fontaine
8685ec3c3c
[Misc] Rework some aspects of timed events (#5099)
* Refactor timed event changes

* Use getWeather function

* Add mystery encounter tier change/disabling to timed events

* Event luck boost, event encounter helper function

* Events without shiny boost shouldn't give shiny charm

* globalScene -> this in battle scene class

* Change event pools
2025-01-24 15:59:24 -07:00
Bertie690
747656e8df
[Test] Added learn move utility function & level cap overrides (#5058)
* Added learn move utility function
* Added utility functions
* add another test
* Update overrides.ts
* Update moveHelper.ts
* Update overridesHelper.ts
---------
Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
Co-authored-by: damocleas <damocleas25@gmail.com>
2025-01-23 18:47:22 -07:00
NightKev
d85aedbdfc
[Bug] Prevent pokemon with 0 HP from being statused (#5137)
* [Bug] Prevent pokemon with 0 HP from being statused

* Update test

* Move check to `trySetStatus()` and update test
2025-01-20 09:12:58 -08:00