github rh-hideout/pokeemerald-expansion expansion/1.14.0
Expansion 1.14.0

2 hours ago
## How to update
- If you haven't set up a remote, run the command `git remote add RHH https://github.com/rh-hideout/pokeemerald-expansion`.
- Once you have your remote set up, run the command `git pull RHH expansion/1.14.0
`.

🌋 REFACTORS 🌋

📜 = Uses a migration script.

  • Refactors Attackstring and PP deduction by @AlexOn1ine in #7402
  • Attackcanceller fixes and improvements by @AlexOn1ine in #7698
  • Fixes activation order for a couple abilities by @AlexOn1ine in #7732
  • feat: change defines in constants/abilities.h to an enum by @khbsd in #7006
  • Item battle effect refactor by @AlexOn1ine in #7857
  • Optimize GetWhichBattlerFasterOrTies by @AlexOn1ine in #7953
  • Decouple passive hp updates from move damage updates by @AlexOn1ine in #7942
  • Make movelist calculations happen during compilation instead of runtime by @FosterProgramming in #7967
    • tmIlliterate flag in speciesInfo changed to teachingType. The options are DEFAULT_LEARNING, TM_ILLITERATE and ALL_TEACHABLES. The first two options match the tmIlliterate = false and tmIlliterate = true while the third one allow a pokemon to learn all teachables similarly to Mew
    • Reduce EWRAM usage of HGSS dex
    • Fix pokemon.c needing to be recompiled everytime a .inc file was changed
    • P_TUTOR_MOVES_ARRAY has been removed (now always true when HGSS dex is enabled)
    • Mew move teaching exception and univeral moves are now coded in the JSON file src/data/pokemon/special_movesets.json under the name signatureTeachables and universalMoves
  • Grudge, Destiny Bond and FaintBattler refactor by @AlexOn1ine in #8072
  • Increase number of additional move effects by @AlexOn1ine in #8149
  • 📜 update: time-based encounters system tuneup and @cawtds' header script by @khbsd in #8158
  • Refactor random functions to be runner specific by @FosterProgramming in #7816

🧬 General 🧬

Added

  • Battle debug menu: highlight chosen action and change separator by @grintoul1 in #7709

  • Implement field_name_box by @mudskipper13 in #7697

  • Add new actions to Debug Menu by @FosterProgramming in #7837

    • Adds an action to change a Pokemon ability in the party side of the Debug Menu
    • Adds an action to set the friendship of a Pokemon in the party side of the Debug Menu
  • Display TM/HM's move name in the debug menu by @estellarc in #7994

Changed

  • Text rendering optimizations by @mrgriffin in #7497
  • Battle debug menu now checks correct parties depending on battler party by @grintoul1 in #7652
  • Add make release target by @jschoeny in #7296
    • Most of what's above. But most importantly, that normal make will have all the debug stuff enabled and so releases should be done with make release.
  • Add pool rules for Mega Stones and Z-Crystals by @hedara90 in #7720
  • field_name_box smol followup by @mudskipper13 in #7762
  • Added COMPOUND_STRINGs to region_map_entries.h by @fdeblasio in #7669
  • Improve ability/heldEffect access for IsBattlerGrounded func by @AlexOn1ine in #7753
  • Removed SAVE_TYPE_ERROR_SCREEN config by @AsparagusEduardo in #7836
  • Give the Coin Case when coins are maxed by @estellarc in #7973
  • Revert HGSS dex and movelist changes by @FosterProgramming in #8016
  • Converts some defines to enums and name unnamed enums by @Bassoonian in #8019
  • Some more documentation and cleanup by @Bassoonian in #8020
  • Even more enums and documentation by @Bassoonian in #8029
  • Add type enum by @Bassoonian in #8054
  • Minor clean up in menu.c by @estellarc in #8060
  • Adds an auto-generated include file of script commands by @FosterProgramming in #8156
  • Master to upcoming merge 20251107 by @grintoul1 in #8167
  • porymap default settings by @FosterProgramming in #8038
    • WARNING: A change was made for new projects map files to match poymap output. This change might break people's projects with existing versions of those files. The files affected are data/maps/map_groups.json, src/data/heal_locations.json, src/data/region_map/region_map_sections.json and src/data/wild_encounters.json
      If you have an issue with one of those files during the merging process, you should run this command
      git checkout HEAD -- <filename>
      which will reset the file to the version before you initiated the merge
  • Adjust label workflow to only run if PR is approved by @hedara90 in #8183
  • Add include/constants/script_commands.h to gitignore by @AlexOn1ine in #8169
  • Converted landmarks to COMPOUND_STRINGs by @fdeblasio in #8205
  • Added contest config and cleaned up contest category variables by @fdeblasio in #8178
  • Moves name box configs into a new file by @AlexOn1ine in #8250
  • Converted options text into COMPOUND_STRINGs by @fdeblasio in #8248
  • Adjust Canceler naming to contain only one l by @AlexOn1ine in #8258
  • Pret merge (16th of November, 2025) by @AlexOn1ine in #8262
  • Fixed bKGD for last_used_ball_r_cycle.png by @montmoguri in #8261
  • Small bg drawing optimization by @estellarc in #8259
  • Added missing 'coolness' string by @fdeblasio in #8274
  • *.party: text with lfs by @mrgriffin in #8320
  • Fedora install instructions by @estellarc in #8355
  • Indent unintented if statement by @hedara90 in #8367

Fixed

  • Added brackets where needed by @hedara90 in #7781
  • Fix shiny stars being freed before shiny animation was played by @FosterProgramming in #7917
    • Fixes shiny sparks in battle not appearing properly in rare circumstances (more common with various speedup options)
  • Make movelist calculations happen during compilation instead of runtime by @FosterProgramming in #7967
    • tmIlliterate flag in speciesInfo changed to teachingType. The options are DEFAULT_LEARNING, TM_ILLITERATE and ALL_TEACHABLES. The first two options match the tmIlliterate = false and tmIlliterate = true while the third one allow a pokemon to learn all teachables similarly to Mew
    • Reduce EWRAM usage of HGSS dex
    • Fix pokemon.c needing to be recompiled everytime a .inc file was changed
    • P_TUTOR_MOVES_ARRAY has been removed (now always true when HGSS dex is enabled)
    • Mew move teaching exception and univeral moves are now coded in the JSON file src/data/pokemon/special_movesets.json under the name signatureTeachables and universalMoves
  • Fix unhandled config in hgss dex by @FosterProgramming in #7999
  • Fixes compilation error due to #8002 by @AlexOn1ine in #8050
  • Fix compile issue in gcc 11 by @AsparagusEduardo in #8095
  • Update mdbook to v0.5.0-beta.1 by @rayrobdod in #8133
  • Fix build failing with NOOPT=1 due to discarding static data. by @Ultimate-Bob in #8053
  • Fix wild_encounters script not closing arrays properly by @FosterProgramming in #8123
  • Fix missing FREE_MATCH_CALL by @FosterProgramming in #8171
  • Again fixed compiling in GCC11 by @AsparagusEduardo in #8184
  • Fix scroll prompt sometimes being off-screen with automatic line breaks by @hedara90 in #8182
  • Fix gcc11 again by @AsparagusEduardo in #8188
  • Fixed decompression error reporter OOB window creation by @hedara90 in #8199
  • Fix error when compiling with P_FUSION_FORMS disabled by @cawtds in #8298
  • Fix compile on gcc11 by @AlexOn1ine in #8300
  • Fix debug battle flag never being cleared by @FosterProgramming in #8357

🗺️ Overworld 🗺️

Added

  • New Feature: ORAS Dowsing by @Bivurnum in #7211
    • Added ORAS Dowsing Machine mechanics.
  • feat: adds stevebeller's instant text and MandL27's faster text printing by @khbsd in #8063
  • Implement GSC berry/apricorn tree functionality. by @GraionDilach in #7777
    • Implement GSC berry/apricorn tree functionality.

Changed

  • Trainers trigger in local id order by @grintoul1 in #7424
  • Added regional form evolution condition by @AsparagusEduardo in #6990
  • Update fishing odds to match official games by @FosterProgramming in #7574
    • (BREAKING!) Fishing config has been moved to a new file. If you did not use default config fishing, make sure to reapply your config settings in the new file.
    • (WARNING!) If you wrote custom code that calls one the following function, you may need to include fishing.h to get access to them(their functionaly was not affected):
    • StartFishingpreviously defined in field_player_avatar.h
    • CalculateChainFishingShinyRolls previously_defined in wild_encounter.h
    • Adds a new config option to increase fish bite chance in morning and evening to match XY
    • Modifies the way fishing "proximity boost" is calculated to match XY
    • Fix Sticky Hold / Suction Cups bug which were increasing odds the wrong way
  • Add additional comment explaing map name popup transparency side-effects by @FosterProgramming in #8117
  • update: time-based encounters system tuneup and @cawtds' header script by @khbsd in #8158
  • Sets instant text speed flag to false by default by @khbsd in #8179
  • Follower NPCs no longer move if the player would be forced back onto the same tile. by @Bivurnum in #8260
    • Follower NPCs no longer move if the player would be forced back onto the same tile

Fixed

  • CheckForTrainersWantingBattle trainerObjects array now initialized to zero and loop now starts at zero by @grintoul1 in #7765
  • Bugfix setspeaker Namebox not beign drawn correctly by @estellarc in #7771
  • Banned species list by @FosterProgramming in #8003
    • Add a window displaying caught banned species list in the Battle Frontier instead of the string detailing all the is
  • Fix namebox bug when reloading the map mid-script by @FosterProgramming in #8073
  • Fix copyvar instead of setvar causing issue with LTO by @FosterProgramming in #8097
  • Fix berry blender not computing flavor correctly by @FosterProgramming in #8113
  • Allow vs seekers to work with script not starting with trainerbattle by @FosterProgramming in #8062
    • VS seeker now work with trainers who don't start with trainer_battle. You can use vsseeker_rematchid TRAINER_ID to indicate that this NPC is a battling trainer and the game will fetch the appropriate rematch if necessary. vsseeker_rematchid work like a cant_see_if_trainerflag_set with additional functionality to handle vs seeker.
    • All NPCs who don't start with either vsseeker_rematchid or trainerbattle will show as "X"/unmatchable by the vs seeker, so non-rematchable trainer who do not start with trainerbattle may "lie" and not show an excalmation mark showing they haven't been fought yet. This can be fixed by including a vsseeker_rematchid` for them too.
  • Fix grade in summary screen not accounting for 26 IV by @FosterProgramming in #8157
  • Fix match call regression by @FosterProgramming in #8227
  • Fix mew sprite not appearing correctly by @FosterProgramming in #8235
  • Fix wrong palette for types sprites in hgss dex after catching mon by @FosterProgramming in #8153
  • Fix Apricorns with OW_SHOW_ITEM_DESCRIPTIONS not off by @hedara90 in #8253
  • Fix mirage tower ceiling crumble color by @FosterProgramming in #8081
  • Fix light flickering when different types of light sprite are present by @FosterProgramming in #8043
    • Light intensity of neon signs was reduced to avoid conflicts with other light sources
    • Fix flickering when both neon signs and light ball are present on screen
  • Bug Fix: NPC Followers not working on slow sideways stairs by @Bivurnum in #8257
    • Fixed NPC followers on slow sideways stairs
  • Fix not enough memory being allocated when moves load background in contests by @FosterProgramming in #8284
  • Make MON_DATA_NICKNAME10 return a 10 character string by @FosterProgramming in #8291
    • Fix bug where interviews would print bad data in their string
  • Fix game freeze when trainers try to walk on sideway stairs by @FosterProgramming in #8316
  • Fix tossing items applying to the wrong stack by @FosterProgramming in #8282
  • Prevent moves to be changed when choosing half party by @FosterProgramming in #8336

🐉 Pokémon 🐉

Added

  • Add Legends Z-A content by @Bassoonian in #7935
    • To retain compatibility with your new items and species, make sure to move the new additions behind your own additions.
    • The save block will shift if you have enabled USE_DEXNAV_SEARCH_LEVELS (due to the new species) or if OW_SHOW_ITEM_DESCRIPTIONS is set to OW_ITEM_DESCRIPTIONS_FIRST_TIME (due to the new items).
  • Move Relearners for TMs, Tutors and Egg moves by @PCG06 in #8040
    • Increased the size of MAX_RELEARNER_MOVES to 60 to prevent crashes when viewing Mew.

Changed

Fixed

  • Fix gba sprites trying load non existent female versions by @FosterProgramming in #7996
    • Fixes issues with pokemon getting gender differences in later gens when using gen3 sprite config
  • GetEggSpecies: Only enabled species by @mrgriffin in #8221
  • Fix compiling using make debug by @PCG06 in #8380

⚔️ Battle General ⚔️

Added

Changed

Fixed

  • Fixes Weak Armor and items not displaying stat change attributes by @PhallenTree in #7701
  • Refactors ruin ability checks into a field effect by @AlexOn1ine in #7711
  • Attackcanceller fixes and improvements by @AlexOn1ine in #7698
  • Fix Critical Capture RNG and Catching Charm boost by @kittenchilly in #7534
  • Fixes activation order for a couple abilities by @AlexOn1ine in #7732
  • More White Herb fixes/clean up by @AlexOn1ine in #7826
  • Missing IsBattlerAlive checks in Opportunist/Mirror Herb by @AlexOn1ine in #7829
  • Item battle effect refactor by @AlexOn1ine in #7857
  • Fix Fling Mental Herb message by @AlexOn1ine in #7984
  • Fixes Ruin field statuses negation conditions + upcoming cleanup by @PhallenTree in #8042
  • Fix nature power string and add support for evnvironment in tests by @FosterProgramming in #8068
    • Add option to choose an environment when setting up a battle test
  • Corrects battler position checks in battle_message.c by @grintoul1 in #8070
  • Emergency Exit on hazards activation + fix end of turn activation by @PhallenTree in #8075
  • Improve sBattleIntroSlideFuncs bounds check by @hedara90 in #8084
  • Fixes Sticky Barb never getting transferred to attacker + tests by @PhallenTree in #8108
  • Fixes flung items sometimes being blocked by Unnerve by @PhallenTree in #8114
  • Adjust faint battler script by @AlexOn1ine in #8137
  • Allow to send active mon to PC when capturing a Pokemon by @FosterProgramming in #8111
  • Fix transform not loading the correct sprites when facing shiny or unown by @FosterProgramming in #8146
  • Fixes Receiver not immediately activating copied abilities by @PhallenTree in #8162
  • Fix destiny knot behavior and add tests by @FosterProgramming in #8174
  • Fix recharge moves + add recharge move tests by @FosterProgramming in #8181
  • Fixes Magician for spread moves by @AlexOn1ine in #8170
  • Fix tera tint not applying on activation by @FosterProgramming in #8135
  • Fixes wrongly assigned count for Semi Invulnerable state by @AlexOn1ine in #8175
  • Fixes Drain Punch / Parental Bond / Scale Shot interaction by @AlexOn1ine in #8198
  • Avoid illegal GetBattlerAtPosition by @mrgriffin in #8225
  • DamageContext: chosenMove by @mrgriffin in #8224
  • AccuracyCheck: Avoid calling GetMoveEffect with NO_ACC_CALC_CHECK_LOC… by @mrgriffin in #8222
  • moveend: Handle MOVE_UNAVAILABLE in MOVEEND_THIRD_MOVE_BLOCK by @mrgriffin in #8215
  • Fix wrong ditto sprite on capture by @FosterProgramming in #8226
  • SpriteCB_EnemyShadow: Avoid use-after-free by @mrgriffin in #8220
  • trysethelpinghand avoid illegal target by @mrgriffin in #8218
  • Fixed an issue related to same turn Encore targeting by @LinathanZel in #8230
  • Avoid illegal move retargeting in singles by @mrgriffin in #8217
  • Fixes Shell Trap not activating on contact but no damage by @AlexOn1ine in #8243
  • Fix Magic Coat reflecting hazard moves incorrectly when used by a partner by @moostoet in #8272
    • Magic Coat now properly reflects hazard moves from either slot in double battles.
  • Shell Trap tests and Fix for Encore interaction by @AlexOn1ine in #8268
  • Fix max mushroom unable to be selected when one stat is maxed by @FosterProgramming in #8287
  • Block selecting x items when contrary pokemon are at minimum stages by @FosterProgramming in #8288
  • Fix Fur Coat affecting confusion self-damage by @moostoet in #8267
    • Fix confusion self-damage ignoring defense/attack abilities such as Fur Coat.
  • Fixes End Turn Speed Order by @AlexOn1ine in #8289
  • Make switchout abilities trigger after a pokemon has returned to its ball by @FosterProgramming in #8304
  • Fix Shed Shell allowing fleeing/teleporting and Smoke Ball failing to guarantee escape by @moostoet in #8286
  • Fix bug where defiant/competitive would pass their stat change to the next target by @FosterProgramming in #8312
  • Fix max move message against semi invulnerable target by @FosterProgramming in #8313
  • Fixes Neutralizing Gas displaying message when exiting with multiple users by @PhallenTree in #8318
  • Fix Kings Rock not being ignored by flinch moves by @AlexOn1ine in #8327
  • Fix Upper Hand failure still activating Protean by @AlexOn1ine in #8329
  • Fix Protosynthesis stat boosts ignoring speed drops by @moostoet in #8277
    • Protosynthesis and Quark Drive now recalculate their boosted stat when Speed is lowered or Neutralizing Gas temporarily disables the ability.
  • Fix switch-in abilities not triggering on revive by @FosterProgramming in #8293
  • More Neutralizing Gas cleanup by @PhallenTree in #8335
  • Clear Destiny Bond/Grudge bits when not activated by @PhallenTree in #8334
  • Fix cure status item effect not working properly in doubles by @FosterProgramming in #8339
  • Fix infinite confusion (berserk gene) not being cured by cure_status bag items by @FosterProgramming in #8343
  • Fix B_PHYSICAL_SPECIAL_SPLIT when set to Gen 4 by @AsparagusEduardo in #8348
  • Refactor Beat Up handling for Gen 3/4 defaults, fix crit check, and expand test coverage by @moostoet in #8307
    • BUGFIX: Beat Up (GEN =< 5) now no longer doubles its damage on every non-critical hit
    • Beat Up now precomputes eligible party members/strikers for consistent multi-hit resolution and expanded tests covering both pre-Gen5 and Gen5+ rules
  • Fix substitute graphic not disappearing after using a pivor move by @FosterProgramming in #8340
  • Fixes Beak Blast burning after Beak Blast was already used by @PhallenTree in #8361
  • Fix Roar not being recorded for LastUsedMove by @AlexOn1ine in #8362
  • Fixes Neutralizing Gas / Mold Breaker / Dragon Darts interaction by @AlexOn1ine in #8389
  • Fixes battle tv overwriting damage values by @AlexOn1ine in #8378
  • Fix ball cycling not working properly when the same ball take multiple bag slots by @FosterProgramming in #8163
    • Two new defines added to items.h FIRST_BALL_INDEX and LAST_BALL_INDEX
    • We now assume the indexes of all regular ball usable in wild battle have consecutive indexes and some features (throw ball shortcut in battle) might break if not true
  • Prevent double Dynamax for single-trainer 2v1 multi battles by @moostoet in #8323
    • Fixed AI 2v1 multibattles incorrectly allowing both opponent leads to Dynamax in the same turn.

🤹 Moves 🤹

Changed

Fixed

  • Fix some move animations leaking VRAM and freeing already freed tags by @hedara90 in #7977

🎭 Abilities 🎭

Changed

  • followup: AbilityBattleEffects return type is incorrect by @khbsd in #7827

🧶 Items 🧶

Fixed

  • Allow vs seekers to work with script not starting with trainerbattle by @FosterProgramming in #8062
    • VS seeker now work with trainers who don't start with trainer_battle. You can use vsseeker_rematchid TRAINER_ID to indicate that this NPC is a battling trainer and the game will fetch the appropriate rematch if necessary. vsseeker_rematchid work like a cant_see_if_trainerflag_set with additional functionality to handle vs seeker.
    • All NPCs who don't start with either vsseeker_rematchid or trainerbattle will show as "X"/unmatchable by the vs seeker, so non-rematchable trainer who do not start with trainerbattle may "lie" and not show an excalmation mark showing they haven't been fought yet. This can be fixed by including a vsseeker_rematchid` for them too.
  • Removed extra period in Pokéshi Doll description by @montmoguri in #8252

🤖 Battle AI 🤖

Added

  • Improved move additional effect handling; now accounts for Shield Dust. by @surskitty in #7650
  • Adjusted AI handling for Gravity; AI for weather/field status additional effects. by @surskitty in #7651
  • Improved AI for status curing; trainer items, Purify, Smelling Salts, Sparkling Aria by @surskitty in #7853

Changed

  • AI uses Magnetic Flux. by @surskitty in #7642
  • AI uses Flower Shield. by @surskitty in #7640
  • AI uses Life Dew. by @surskitty in #7643
  • AI uses Gear Up. by @surskitty in #7641
  • Correcting test AI won't use status moves if partner chose Helping Hand by @surskitty in #7649
  • IncreaseStatUpScore adjustments for Simple, +3 moves, Acupressure, max move effects by @surskitty in #7662
  • AI handling for Coaching. by @surskitty in #7661
  • Simplifying calls to IsBattlerTrapped; treats being unable to switch as trappedness by @surskitty in #7671
  • AI Tests: Gimmick Support by @mrgriffin in #7694
  • AI can use Z-status moves by @surskitty in #7666
  • Move some checks out of IncreaseStatUpScore to ShouldRaiseAnyStat by @surskitty in #7722
  • Moving additional effects out of AI_CalcMoveEffectScore and into AI_CalcMoveAdditionalEffectScore by @surskitty in #7727
  • AI sees dynamic moves and Nature Power as correct types for weather, terrain by @surskitty in #7759
  • Fix abusable two-turn-move switch behaviour by @Pawkkie in #7770
  • Z Status move handling: Conversion, Detect, Nature Power, Transform by @surskitty in #7721
  • Use stored values for ai switch-in effectiveness checks by @AlexOn1ine in #7794
  • Changing all HasBattlerSideAbility to AI_IsAbilityOnSide. by @surskitty in #7927
  • Weather/Terrain AI touch-ups. by @surskitty in #7933
  • Improving the checks for the AI to avoid Encore; adding RISK_ENCORE_CHANCE config. by @surskitty in #7929
  • Fixes CanUseLastResort and resolves 3 KNOWN_FAILING Last Resort tests by @grintoul1 in #8032
  • Add AI flag AI_FLAG_KNOW_OPPONENT_PARTY to know all species in party by @moostoet in #8290

Fixed

  • Score adjustments towards guaranteed stat drops. by @surskitty in #7670
  • AI uses Extreme Evoboost. by @surskitty in #7706
  • Fixes AI scoring when Priority moves are blocked by @PhallenTree in #7745
  • fix (AI scoring): shield dust considerations, IsMoveEffectInMinus self effect edge case, hitsToKO zero-case consideration by @ghostyboyy97 in #8126
    • The AI now sees Shield Dust on the player's Pokemon correctly
    • The AI now sees self-targeted positive effect boosts correctly
  • fix (contrary): Contrary stat down handling in MoveEffectInPlus by @ghostyboyy97 in #8165
    • When comparing positive move effects in damaging move comparison, the AI will correctly see moves like Leaf Storm as beneficial if their Pokemon has Contrary.
  • Added check for parental bond killing through sturdy by @MaximeGr00 in #8206
    • AI now accounts for Parental Bond when checking if a move can ko the player through sturdy/focus sash.
  • AI: Handle MOVE_UNAVAILABLE in last used moves by @mrgriffin in #8219
  • Fix AI_FLAG_DOUBLE_ACE_POKEMON sending duplicate Pokémon in doubles by @moostoet in #8279
    • Fixed AI_FLAG_DOUBLE_ACE_POKEMON trainers resending the same Pokémon after a KO instead of their two Ace Pokémon in double battles.
  • Rework switch AI and add more tests for ace pokemon flags by @FosterProgramming in #8321
    • All remaining issues with the AI flags Ace Pokemon and Double Ace pokemon should be fixed
    • The smart switching AI should be less likely to switch a pokemon about to die if it doesn't have a pokemon with a good matchup to replace it
  • Fix switchin KO threshold logic by @Pawkkie in #8370

🧹 Other Cleanup 🧹

🧪 Test Runner 🧪

Added

Changed

Fixed

  • Corrects ONE_VS_TWO_BATTLE_TEST to use BATTLE_TEST_ARGS_ONE_VS_TWO by @grintoul1 in #8061
  • Fixes difficulty not being restored after tests by @grintoul1 in #8129
  • Reset saveblock data between test runs by @hedara90 in #8145
  • Sheer force test fix by @grintoul1 in #8142
  • Test only enabled species by @mrgriffin in #8216
  • Fix ohko moves ai tests by @FosterProgramming in #8309
  • Fixed broken friendship from items in battle test and added new test for opposite case by @pkmnsnfrn in #7872
  • Add tests to verify aromatherapy is not affected by heal bell config by @FosterProgramming in #8344
  • Pre gen 5 encored move now signals the test engine a move is happening by @FosterProgramming in #8338
  • Refactor Beat Up handling for Gen 3/4 defaults, fix crit check, and expand test coverage by @moostoet in #8307
    • BUGFIX: Beat Up (GEN =< 5) now no longer doubles its damage on every non-critical hit
    • Beat Up now precomputes eligible party members/strikers for consistent multi-hit resolution and expanded tests covering both pre-Gen5 and Gen5+ rules
  • Fix player and partner trainer sprite palettes to 8 and 9, preventing unwanted palette changes by @grintoul1 in #8127
  • Fix known failing AI trace test by @FosterProgramming in #8337

📚 Documentation 📚

New Contributors

Full Changelog: expansion/1.13.3...expansion/1.14.0

Don't miss a new pokeemerald-expansion release

NewReleases is sending notifications on new releases.