Commit Graph

532 Commits

Author SHA1 Message Date
Xavion3
2d067ec7ce
[UI][Enhancement] Allow tera type choice on starter select (#5366)
* Allow tera type choice on starter select

* Make tera type actually apply in run

* Remove logging statement

* Add support for alternate forms
2025-02-21 07:23:08 +11:00
Dean
a346318f9d
[Move] Implement Quash (#5049)
* Add quash logic for single targets

* Multi-squash power

* Update MovePhase constructor

* Start searching from front of phaseQueue instead of weather

* Use findPhase instead of looping to search

* Basic test case

* Test for failure on a already moved target

* Speed order test

* Fix speed test comment

* Fix ForceLastAttr to properly respect speed order

* Respect trick room in quash turn order

* Test for respecting TR

* Add comments, fix var name

* Allow for quashed speed ties

* Avoid reapplying if a move is already forced last

* Spacing

* Quash does fail in a single battle despite this not being documented anywhere

* Add move text

* Update move.ts (readability)

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

* Use globalScene

---------

Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
2025-02-19 18:59:54 -06: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
NightKev
7fafccf8de
[Test] Disable broken Wimp Out test (#5369) 2025-02-18 19:47:50 -08:00
Xavion3
8864347cb0
[Move] Make Disable disable most recent move instead of oldest move (#5321) 2025-02-17 20:53:57 -06: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
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
Wlowscha
5743751e5c
[Bug][Test] Adding bypass faint to abilities that need it + fixing Perish Body (#5226)
* Added tests for snad spit, seed sower and perish body; for all three, the test checking if the ability triggers after the user faints is failing.

* Adding .bypassFaint() to the three abilities, tests passing

* Apply suggestions from code review

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

* Removed incorrect test for perish song

* Added tests for perish body when one mon already has the perish song tag, both ways

* Changed ability behavior to pass tests

* Removing superfluous conditional

---------

Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
2025-02-11 17:01:54 -06:00
AJ Fontaine
195a3936b3
[Sprite] Update Litleo/Pyroar exp sprites, enable female exp sprites (#5260)
* Enable female experimental sprites

* Update Litleo/Pyroar exp sprites

Co-authored-by: Unicornpowerstar <gabriella.pahankala@hotmail.se>

* Update sprite test to check exp female variants

* Fix shading on shiny Pyroar, remove unused 668-female files

---------

Co-authored-by: Unicornpowerstar <gabriella.pahankala@hotmail.se>
2025-02-11 14:34:40 -08: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
Sirz Benjie
5296966f70
[Ability] [Move] Implement Magic Bounce and Magic Coat (#5225)
* Add unit tests for magic bounce

* Add reflectable tag and apply to moves

* Add BattlerTagType for Magic Coat

* Add more magic bounce tests

* Add magic bounce test for sticky web source

* Mostly working magic bounce and magic coat

* Fix missing negation on mayBounce check

* Move onto the next target after bouncing

* Fix magic bounce accuracy check test

* Finish magic bounce impl

* Make spikes use leftmost magic bounce target

* Add magic coat tests

* Add MagicCoatTag to battler-tags.ts

* Add final set of tests for Magic Coat / Bounce

* Fix semi invulnerbale check in hitCheck

* Fix magic bounce semi-invulnerable interaction

This was based on smogon's incorrect handling of this situation

* Magic bounce should not bounce anything during semi-invulnerable state

* Activate mirror armor interaction test

Also update i18 locales key to `magicCoatActivated`
2025-02-11 03:25:36 -08:00
NightKev
f5ef4a5da9
[Test] Fix Tera Blast test (#5297) 2025-02-10 23:14:54 -08:00
geeilhan
42c4ca27e6
[Ability][Move] Last Respects Refactor and Full Implementation (#5200)
* full implementation of supreme overlord + test

* removed unused import

* changed documentation since Battle.playerFaints is not used in supreme overlord

* Update faint-phase.ts

* changed supreme overlords power calculation function and adjusted tests

* added changes to Last Respects too

* added playerFaints to SessionSaveData to make the counter saveable

* Apply Kev's suggestions

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

* Reset enemy faint counter per battle

* Re-mark supreme overlord as partial

* added automated test case

* moved playerFaints reset to resetArenaEffects

* removed resetEnemyFaintCount() function since it is unused

---------

Co-authored-by: Sirz Benjie <142067137+SirzBenjie@users.noreply.github.com>
Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
2025-02-11 00:53:37 -06: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
Sirz Benjie
c5968d52ce
Merge pull request #5228 from DayKev/add-eslint-promises-rule
[Test] Add eslint rule enforcing proper `await` usage in tests
2025-02-09 18:57:22 -06:00
PrabbyDD
7cd3217114
[Ability] Implement Mirror Armor (#4769)
* beginnings of implementation of mirror armor

* logging some new changes

* fixing edge cases

* adding changes for sticky web and other features of mirror armor

* adding changes for sticky web and other features of mirror armor

* adding more unit tests and cleaning up notes

* 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/data/ability.ts

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

* using arena tags source id variable

* updating submodule pointer for locales

* small change

* Update src/data/move.ts

commit Kev fix (minor flip for consistency)

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

* fix import

* Use global scene

* Update tests

---------

Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
Co-authored-by: Madmadness65 <59298170+Madmadness65@users.noreply.github.com>
Co-authored-by: Madmadness65 <blaze.the.fireman@gmail.com>
2025-02-09 03:14:56 -05:00
NightKev
090a60dfba
[Test] Update sprite test to give more useful error messages (#5281) 2025-02-08 10:54:45 -08:00
bjparker1226
66024c9bcd
[Bug] Fix Fell Stinger giving boost when enemy dies to another source (#4723)
* check last source of damage instead of last successful attacker

* implement unit tests for Fell Stinger

---------

Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
2025-02-08 10:52:59 -08:00
Wlowscha
66c70b07a7
[UI/UX] In-Game Pokedex (#5083)
* Working ui, missing logic, logs

* Filtering starters by name is working

* Filtering moves and abilities correctly

* Opening starter page on button.action

* Removed ugly leftover from title

* Added container for text with different colors and titles

* Showing all species in pokedex with no decorations and shinies

* Filtering includes extra forms; moving cursor from filterText to starters does not reset scrollIndex; toggle button for decorations

* Can access evolution page

* Abilities are colored properly (still missing info overlay)

* Biome filter; displays for baseStats, biomes and evolutions

* Removed lockable select ui handler, replaced by changes to standard ui handler.

* Evolutions are selectable from list and displayed properly

* Keeps shiny variant, gender and form when switching to evolutions; show ability descriptions; properly displaying sprites for megas and other forms

* Listing prevolutions and base forms

* Fixed filtering of baby forms with no biome assigned; Caught filter is ALL by default

* Highlighting text filters, resetting all filters when starting up

* No error messag when cursor on uncaught species, showing sprite again after toggling stats

* Simplified Pokemon Scan logic, accepts separate words as input

* Dynamically resizing ability box, showing ability description on first hover. Removed debug logs.

* Removed some more debug messages.

* Filter bar can adjust cursorOffset and x padding

* Fixed some type definitions

* Fixed more warnings; added localization strings in the pokedex scan overlay.

* Fixed fatal bug due to using Object.keys

* Removed debug messages

* Added try catch construct to prevent error that was breaking reloadHelper tests

* Added filter for starters / evolutions

* Biome filter option for uncatchable mons

* C and V buttons snap cursor to filters

* Changing background to make instructions visible

* Can buy candy upgrades through pokedex

* Displaying base stats as bars in an overlay

* Including baby forms among uncatchable mons

* Including evolutions when filtering by biome

* Working logic for select ui handler with skips and scroll

* -Pokedex page showing biomes from prevolutions; displaying correct biomes for forms of Rotom, Burmy and Lycanroc

* Fixed bug in base stats overlay

* Regional forms display name of region in evolutions and prevolutions

* Better messages for evolution conditions

* Showing proper descriptions for menu

* Adding sound effects to menu, and pokemon cry when opening page

* Changing menu colors to textstyle options supporting a legacy version.

* Fix to getStarterSpeciesId to work with all-unlocks files

* Passing a TextStyle to option select ui handler to allow for shadowed text

* Fixed bug of overlapping labels in text filters

* Fixed bug with supportHover and skipped indices in option select ui handler

* Localization of pokemon number label

* Fix to pokemon number localization

* Fix to pokemon number localization

* Adding some comments, removing useless elements

* More cleanup

* Removed candy upgrade instructions from evolved pokemon; attempting to buy candies from evolution now gives error sound instead of crashing the game

* Attempting to exit from filter text is now allowed if current option is empty

* UI changes to make dex pages work in legacy style

* Pokemon name shown while in alt form is no more capitalized

* Handling uncaught pokemon

* Showing types on Pokémon page

* Introducing globalScene everywhere

* Showing evolution requirements in message box

* Displaying form changing items; now using pokemonFormChanges to only show reachable forms

* Playing correct cry

* Pokemon cry in setSpeciesDetails

* Left and right buttons to turn previous or next pokedex page

* Cleaned up "last" from this.species; turning pages now preserves memories of unlocks

* Pokerus cursor is now treated as decoration

* Correctly displaying prevolutions for Pikachu and Gholdengo

* Uncaught forms can be cycled through (with black sprite and no options available)

* Filtering by moves now shows icons to distinguish egg and tm moves

* Added icons for passive abilities

* Added icons to legacy mode; fixed bug that caused game to hang when switching to or from legacy mode

* Pokedex entries are accessible through party screen

* Adding sort criteria for consistency with starter select screen

* Added options to cost reduction filter for consistency with starter select screen

* Updating optionSelectUiHandler to simplify logic and fix bug of autocomplete showing options incorrectly

* Adding Pokedéx option in starter select screen

* Prevolutions are shown properly again; battle forms are considered caught as long as the base form is caught

* Small fixes to evolution and form change descriptions

* Reworked evolutions menu to incorporate condition descriptions

* Moving evolution condition description logic entirely to the SpeciesEvolution class

* Removed extra Miraidon and Koraidon forms

* Properly showing evolution text for Dunsparce and Maushold

* Displaying uncaught forms for Dudunsparce and Maushold properly

* Displaying correct forms for Urshifu and Toxicitry after evolution

* Cleared up comments

* Updating test for tandemaus evolution

* Localized labels for egg moves and abilities

* Added button to show back sprites

* Back to showing only caught battleforms; added dexForDevs option

* Merging shiny and variant buttons

* Uncaught battle forms options are shown in dark text, like evolutions

* Showing proper gender for mons that can only be (or have only caught in) one gender

* Apply suggestions from code review

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

* Removed unused options from base-stats-overlay

* Fixed import of BaseStatsOverlay

* Displaying form-specific TMs properly; adjusting for passives rework

* Removed logging messages

* resetting containers to prevent memory leaks

* Updating integer to number in pokedex

* Implemented suggestion

* Removed some stray comments

* Fixed logic for cursor coming down from filter bar

* Transition from filters to dex box now works in a visually pleasing way

---------

Co-authored-by: Lugiad <2070109+Adri1@users.noreply.github.com>
Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
Co-authored-by: damocleas <damocleas25@gmail.com>
2025-02-08 11:48:06 -05: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
Sirz Benjie
c363d2b93c
[Ability] Fully Implement Good as Gold (#5245)
* Fix good as gold

* Update good as gold tests with Kev's feedback
2025-02-04 21:28:49 -07: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
Sirz Benjie
0d1dacbc7a
[Bug] Fix softlock caused by shields down preventing faint status (#5252) 2025-02-03 20:21:49 -08: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
NightKev
7d6036df98 Fix files glob 2025-02-01 01:29:25 -08:00
NightKev
c2a7afc5ba [Test] Add eslint rule enforcing proper await usage in tests 2025-02-01 00:54:04 -08:00
Scooom
db37dcc204
[Misc] Add 100% New Save File (#5104) 2025-01-30 21:25:06 -07:00
Sirz Benjie
6b36e4ca06
[Ability] Fully implement shields down (#5205) 2025-01-30 12:21:48 -07:00
Wlowscha
974fe9f7d3
[UI/UX] Merged shiny and variant buttons in starter select menu (#5213)
* Merged shiny and variant options

* Modified test of starter-select ui to reflect button changes

* Removed unused graphics elements
2025-01-29 20:07:44 -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
geeilhan
f3256ec5d4
[Move] Improve implementation of Rage Fist damage increase (#5129)
* implementation of rage fist

* Apply suggestions from code review

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

* Update src/test/moves/rage_fist.test.ts

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

* added removed TODO from some test cases

* Apply suggestions from code review

Added changes to documentation and cleaning up code

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

* added protected to updateHitReceivedCount()

---------

Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
Co-authored-by: damocleas <damocleas25@gmail.com>
2025-01-19 11:52:50 -06:00
schmidtc1
001b61c1c7
[Bug][Move] Refactor moves that call a random move (#3380)
* Combine moveset from allies and uses it to get a move

* Clearer implementation of combining user and teammates' moves

* Refactor assist and sleep talk to use metronome's attribute for calling a move

* Refactor move filtering in RandomMovesetMoveAttr, creates arrays with invalid moves for assist/sleep talk

* Refactor RandomMoveAttr to set moveId in condition, places reused code in callMove in RandomMoveAttr

* Correct invalid move lists, adds Max/Z moves to metronome's list

* Remove ignoresVirtual from beta merge

* Remove Max/Z moves per frutescens' comment

* Fix bug with metronome/copycat/assist/sleep talk targeting ally

* Experimental async/await to be tested

* Refactor other attributes to extend CallMoveAttr

* Replace QueuedMove with TurnMove, refactor to attempt two-turn move fix for metronome

* Fix Swallow test due to TurnMove refactor

* Further fixes for TurnMove refactor

* Fix metronome two turn moves for enemy pokemon

* Replace nested ternary with if-else block per DayKev's comment

* Minor fixes

* Adjust command phase args handling

* Create metronome test, refactor RandomMoveAttr for easier testing

* Add unit test for recharge moves

* Refactor Copycat and Mirror Move, adjust move targeting

* Add unit test for ally targeting with Aromatic Mist

* Add tests for secondary effects and recharge moves for metronome

* Add test for Roar, remove test for Acupressure

* Create test for Assist

* Add test for assist failing

* Add sleep talk unit test coverage

* Adjust move-phase to better track last move for copycat, write and update unit tests for assist/copycat

* Create moveHistory in Battle to track all moves used, adjust mirror move to use this, writes unit tests

* Correct mirror move implementation, rewrite unit test to adjust

* Add docs to attrs, update assist to only grab allies sets

* Update assist unit test to match expected functionality

* Update metronome unit test to use getMoveOverride

* Update copycat unit test to use metronome getMoveOverride mock

* Fix phase interception

* Add docs from missed conversations

* Update assist tests to use manual moveset overrides

Minor fixes to other tests

* Remove `export` from `CallMoveAttr`

* Add missing `.unimplemented()` to some Max- and Z-Moves

---------

Co-authored-by: Tempoanon <163687446+Tempo-anon@users.noreply.github.com>
Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
2025-01-14 15:26:35 -08:00
NightKev
0107b1d47e
[Refactor] Create global scene variable (#4766)
* Replace various `scene` pass-arounds with global scene variable

* Modify tests

* Add scene back to `fade[in|out]()` calls

Co-authored-by: Moka <54149968+MokaStitcher@users.noreply.github.com>

* Fix Bug Superfan ME test

Co-authored-by: Moka <54149968+MokaStitcher@users.noreply.github.com>

* Re-enable fixed test

Co-authored-by: Moka <54149968+MokaStitcher@users.noreply.github.com>

* Rename `gScene` to `globalScene`

* Move `globalScene` to its own file to fix import/async issues

* Fix `SelectModifierPhase` tests

* Fix ME tests by removing `scene` from `expect()`s

* Resolve merge issues

* Remove tsdocs referencing `scene` params

Remove missed instances of `.scene`

* Remove unnecessary `globalScene` usage in `loading-scene.ts`

* Fix merge conflicts

* Attempt to fix circular import issue

* Found the source of the import issue

* Fix merge issues

---------

Co-authored-by: Moka <54149968+MokaStitcher@users.noreply.github.com>
2025-01-12 15:33:05 -08:00
Zain
b0c347e20d
[Bug] Fixed defog not removing the target's Safeguard and Mist (#5107)
* Fixed defog not removing the target's Safeguard and Mist

* Made requested changes and added unit test

* Remove stray newline

---------

Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
2025-01-10 18:29:25 -06:00
AJ Fontaine
ec5dadb4f4
[Misc] Undo winter holiday event changes (#5068) 2025-01-03 16:42:06 -07:00
Asuka Kuwahara
8f884a7ef0
[BUG] fix #5038 update shedinja's gender to genderless on evolution (#5039)
* update shedinja's gender to genderless

* update unit test
2024-12-29 20:09:11 -06:00
damocleas
e9d97db11b
Winter Holiday Event (#5015)
* Update trainer-victory-phase.ts

* Update starters.ts for event

* Update timed-event-manager.ts

* Event stuff

* Cleaning up

* Winter Holiday 2024 Banners

* Update timed-event-manager.ts

* Fix event banner

* Update trainer-config.ts

* FoF, BBound, weather changes

* Fix German Banner

* Add Iron Bundle to event encounters

* Update delibirdy-encounter.test.ts

* Update src/data/weather.ts

Co-authored-by: AJ Fontaine <36677462+Fontbane@users.noreply.github.com>

---------

Co-authored-by: AJ Fontaine <fontbane@gmail.com>
Co-authored-by: Lugiad <2070109+Adri1@users.noreply.github.com>
Co-authored-by: AJ Fontaine <36677462+Fontbane@users.noreply.github.com>
2024-12-20 14:11:06 -08:00
NightKev
29a079cfd3
Revert "[UI/UX] Refactor and enable seasonal splash messages (#5009)" (#5014)
This reverts commit 806585f1a6.
2024-12-19 16:04:12 -08:00
AJ Fontaine
806585f1a6
[UI/UX] Refactor and enable seasonal splash messages (#5009)
* Refactor and enable seasonal splash texts

* Update splash text test
2024-12-19 12:01:40 -08:00
PrabbyDD
5db3074e2c
[Move] Implement Lunar Dance (#4926)
* beginning immplementation of lunar dance

* adding tests

* changing in game message and making full hp message not display

* Reuse Healing Wish's move attr, update test

---------

Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
2024-12-09 21:25:28 -06:00
PigeonBar
dd72c5e189
[Move][Beta] Powder edge cases (#4960)
* [Move][Beta] Powder edge cases

* Fix Heavy Rain check to account for weather suppression

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

* "{Pokemon} used {Fire-type move}!" now displays before Powder activation

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

* Make `showMoveText()` and `showFailedText()` public for now

---------

Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
Co-authored-by: innerthunder <168692175+innerthunder@users.noreply.github.com>
2024-12-02 22:28:57 -08:00
damocleas
3ca0fdae6b
[Balance] December Starter Balance Changes (#4883)
* Update passives.ts

* Update egg-moves.ts

* Update egg-moves.ts

* Update species-egg-tiers.ts

* Update egg-moves.ts

* Update egg-moves.ts

* Update starters cost

* Update egg-moves.ts

* fixed mispell

* update egg tests to match latest species egg tier changes

* Update starters.ts - fixed placements and reduced Duraludon back to 5

* Update species-egg-tiers.ts fixed placements

* Kartana and Iron Valiant passive change

* Update passives.ts

* Update egg-moves.ts

* Update species-egg-tiers.ts

* Update starters.ts

* fix '

---------

Co-authored-by: Moka <millennium.stitcher@gmail.com>
Co-authored-by: Moka <54149968+MokaStitcher@users.noreply.github.com>
2024-12-02 14:59:02 -05:00
PigeonBar
2f377f26b7
[P1 Bug] Fix multi lens granting infinite Future Sight hits (#4961)
* [P1 Bug] Fix multi lens granting infinite Future Sight hits

* Updated `.partial()` tags

* Added corresponding TODO comments to tests
2024-12-02 12:40:59 -05:00
innerthunder
e930536efe
[Move] Implement Powder (with edge case) (#3662)
* Powder basic implementation

* Add Powder integration tests

* Fix thaw test

* Use new test utils and type check function

* More edge case tests

* Make Powder (P)

* Add locale keys

* Add placeholder common anim

* Use CommonAnimPhase instead of async animation

* Add comments with new English text

* Make Powder `edgeCase` instead

* ESLint

* Fix imports

* Add `moveName` key arg for other languages

* ESLint

* Update locales

* Fix pages issues

* Update Powder explosion animation

* Update common-powder.json

* Update src/test/moves/powder.test.ts

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

* Remove lingering TIMEOUTs

* More test cleanup

---------

Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
2024-12-01 14:27:55 -08:00