# Version 1.8.0 ```md ## 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.8.0`. ``` ## 🌋 *IMPORTANT CHANGES* 🌋 * ***Python is now a required for the Expansion***. * Run the `command -v python3` command to see if you have it. If you don't, please check INSTALL.md to see how to install it. * **Support for PoryMap v5.1.1 and lower has been dropped.** * [Please update your PoryMap version](https://github.com/huderlem/porymap/releases). * Specifically, we have removed the commented-out `gMonIconTable` table used to associate species IDs with icon images by @Bassoonian in https://github.com/rh-hideout/pokeemerald-expansion/pull/3896 * From PoryMap v5.2.0 onwards, these icons are autodetected based on file/directory names instead. * To continue using older versions of PoryMap, you may restore the commented-out table, though you'll need to keep it up to date with any new items you add. * **Backwards-compatible `BoxPokemon` Refactor** by @mrgriffin in https://github.com/rh-hideout/pokeemerald-expansion/pull/3438 * HP and Status is now kept when depositing Pokémon in the PC * Previous behavior can be restored by setting `OW_PC_HEAL`. * Nature Mints are now fully functional. * Nature colors in summary screen are based on the changed nature by @Bassoonian in https://github.com/rh-hideout/pokeemerald-expansion/pull/3898 * Gigantamax Factor and Dynamax Level fully supported. * Cannot be seen in summary screen. * Dynamax Candy effect added. * Gigantamax Factor prevents Duraludon from evolving, like Pikachu, Eevee and Meowth beforehand. * Added `hasgigantamaxfactor` and `togglegigantamaxfactor` overworld script commands. * Gigantamax Factor cannot be toggled for Mythical Pokémon (vanilla behavior). * Hyper Training is now fully supported. * Cannot be seen in summary screen. * Added `canhypertrain` and `hypertrain` overworld script commands. * Shininess can be toggled with `MON_DATA_IS_SHINY`. * Added Tera Type field is added for future-proofing. * It can be seen in the summary screen by turning `P_SHOW_TERA_TYPE` on. * Added `isShadow` field for future-proofing. * Added options for Tera Type, Dynamax Level, Gigantamax Factor and Shadow flag in tests. * Cleanup by * @fdeblasio in https://github.com/rh-hideout/pokeemerald-expansion/pull/3832 * @AsparagusEduardo in https://github.com/rh-hideout/pokeemerald-expansion/pull/4017 * **Move Refactors**: * ***Move data unification*** by @LOuroboros, with help from @Bassoonian, @cfmnephrite and @AsparagusEduardo in https://github.com/rh-hideout/pokeemerald-expansion/pull/3999 * Renamed `gBattleMoves` to `gMovesInfo`. * Moved move names to `gMovesInfo`. * Added `GetMoveName` to get all move names, removing the need for `GetMaxMoveName` and `GetZMoveName`. * Moved move descriptions to `gMovesInfo`. * Moved contest data to `gMovesInfo`. * ***Secondary/primary effects overhaul*** by @cfmnephrite in https://github.com/rh-hideout/pokeemerald-expansion/pull/3577 * Secondary effects such as stat stage modifiers and status via are now set via `additionalEffects` field. * Eg. ```c [MOVE_THUNDER_FANG] = { .effect = EFFECT_FLINCH_STATUS, .secondaryEffectChance = 10, .argument = STATUS1_PARALYSIS, ... }, ``` Now becomes: ```c [MOVE_THUNDER_FANG] = { .effect = EFFECT_HIT, .additionalEffects = ADDITIONAL_EFFECTS( { .moveEffect = MOVE_EFFECT_PARALYSIS, .chance = 10, }, { .moveEffect = MOVE_EFFECT_FLINCH, .chance = 10, } ), ... }, ``` With customizable independent chances for each effect. Because of this, `secondaryEffectChance` has been removed. * For more info, check the wiki article on [How to add a new move](https://github.com/rh-hideout/pokeemerald-expansion/wiki/How-to-add-a-new-move-(Version-1.8.0-and-higher)). * Cleanup by: * @GraionDilach in https://github.com/rh-hideout/pokeemerald-expansion/pull/3986 * @AlexOn1ine in https://github.com/rh-hideout/pokeemerald-expansion/pull/4003 * By @cfmnephrite in https://github.com/rh-hideout/pokeemerald-expansion/pull/4137 * By @AlexOn1ine in https://github.com/rh-hideout/pokeemerald-expansion/pull/4277 * ***Renamed Battle Move "Split" to the proper "Category" term*** by @AsparagusEduardo in https://github.com/rh-hideout/pokeemerald-expansion/pull/3774 ```diff -.split = SPLIT_PHYSICAL, +.category = DAMAGE_CATEGORY_PHYSICAL, ``` * Z-move power override (eg. Mega Drain) was moved from a switch in `GetZMovePower` to move data. It's part of an union alongsize with Z-move status effect by @cfmnephrite in https://github.com/rh-hideout/pokeemerald-expansion/pull/3575 * Cleanup by @AsparagusEduardo in https://github.com/rh-hideout/pokeemerald-expansion/pull/4201 * Removed `EFFECT_RECOIL_x` effects in favor of new `recoil` field by @cfmnephrite in https://github.com/rh-hideout/pokeemerald-expansion/pull/3575 * Removed critical-hit move effects in favor of new `criticalHitStage` by @cfmnephrite in https://github.com/rh-hideout/pokeemerald-expansion/pull/3779 * Added `alwaysCriticalHit` move flag. * Converted `EFFECT_x` defines to an enum by @cfmnephrite in https://github.com/rh-hideout/pokeemerald-expansion/pull/3975 * Move data now uses ternaries for data that was changed only once across generations by @AsparagusEduardo in https://github.com/rh-hideout/pokeemerald-expansion/pull/3987 ```diff [MOVE_SWORDS_DANCE] = { - #if B_UPDATED_MOVE_DATA >= GEN_6 - .pp = 20, - #else - .pp = 30, - #endif .effect = EFFECT_ATTACK_UP_2, .power = 0, .type = TYPE_NORMAL, .accuracy = 0, + .pp = B_UPDATED_MOVE_DATA >= GEN_6 ? 20 : 30, ``` * Moved effect script array to `src/data/battle_move_effects.h` by @cfmnephrite in https://github.com/rh-hideout/pokeemerald-expansion/pull/3994 * AI's `sEncouragedEncoreEffects` and Battle TV's `sPoints_MoveEffect` are now handled in this struct. * Some move flags were moved to this array instead * Semi-invulnerable flag (`semiInvulnerableEffect`) in https://github.com/rh-hideout/pokeemerald-expansion/pull/4062 * Cleanup by @cfmnephrite in https://github.com/rh-hideout/pokeemerald-expansion/pull/4150 * Flag to define Two-turn effects (`twoTurnEffect`) in https://github.com/rh-hideout/pokeemerald-expansion/pull/4062 * Flag for increasing the protection counter (`usesProtectCounter`) in https://github.com/rh-hideout/pokeemerald-expansion/pull/4062 * Removed `sheerForceBoost` in favor of checking their actual secondary effects by @cfmnephrite in https://github.com/rh-hideout/pokeemerald-expansion/pull/4096 * To force Sheer Boost acting for a move without secondary effect, you can add `SHEER_FORCE_HACK` in the `additionalEffects` field. * ***Learnset refactors*** * ***Level up learnsets can now be switched by generational config*** by @MartyKen in https://github.com/rh-hideout/pokeemerald-expansion/pull/4049 * Adds a file for each generation with data for all species. * Gen 1: Yellow * Gen 2: Crystal * Gen 3: RSE * Gen 4: HGSS * Gen 5: B2W2 * Gen 6: ORAS * Gen 7: USUM * Gen 8: * Species from Gens 1-4: BDSP * Species from Legends: Arceus: Use that game's data. * Species from Gens 5-8: SwSh if they exist there. Otherwise, default to Gen 7's data. * Gen 9: * If they exist in SV, use that game's data. * Otherwise, default to Gen 8's data. * If a Pokémon doesn't exist in the respective generation, it uses the first instance it appears in. * Eg. Chikorita uses its Gen 2 learnset if the config is set to Gen 1. * ***IMPORTANT:*** Since the expansion's default had most movesets correspond to USUM's, conflicts will arise in `data/pokemon/level_up_learnsets/gen_7.h` if you modified the level learnsets. Be sure to backup your `data/pokemon/level_up_learnsets.h` before merging and then do the following after merging to keep your changes: ```diff +#include "data/pokemon/level_up_learnsets.h" +#if FALSE + #if P_LVL_UP_LEARNSETS >= GEN_9 #include "data/pokemon/level_up_learnsets/gen_9.h" #elif P_LVL_UP_LEARNSETS >= GEN_8 #include "data/pokemon/level_up_learnsets/gen_8.h" #elif P_LVL_UP_LEARNSETS >= GEN_7 #include "data/pokemon/level_up_learnsets/gen_7.h" #elif P_LVL_UP_LEARNSETS >= GEN_6 #include "data/pokemon/level_up_learnsets/gen_6.h" #elif P_LVL_UP_LEARNSETS >= GEN_5 #include "data/pokemon/level_up_learnsets/gen_5.h" #elif P_LVL_UP_LEARNSETS >= GEN_4 #include "data/pokemon/level_up_learnsets/gen_4.h" #elif P_LVL_UP_LEARNSETS >= GEN_3 #include "data/pokemon/level_up_learnsets/gen_3.h" #elif P_LVL_UP_LEARNSETS >= GEN_2 #include "data/pokemon/level_up_learnsets/gen_2.h" #elif P_LVL_UP_LEARNSETS >= GEN_1 #include "data/pokemon/level_up_learnsets/gen_1.h" #endif +#endif ``` * Cleanup by * @MartyKen in https://github.com/rh-hideout/pokeemerald-expansion/pull/4267 * @AsparagusEduardo in https://github.com/rh-hideout/pokeemerald-expansion/pull/4275 * Added `sUniversalMoves`, a near-universal teachable move array by @Bassoonian in https://github.com/rh-hideout/pokeemerald-expansion/pull/4052 * This removes the need to add moves such as Hidden Power to almost every species. * Adds `tmIlliterate` flag that controls when specific species cannot learn these moves, such as Magikarp, Caterpie and Ditto. * ***Auto-generate teachable learnset data from JSON data*** by @Bassoonian in https://github.com/rh-hideout/pokeemerald-expansion/pull/3856 - Scans the repository for TMs and tutor moves. - Checks JSON files (same format as PoryMoves, with minor label adjustments for an easier time) for compatibility. - Creates a `teachable_learnsets.h` file with the smallest size possible by only including the moves found in the scan. - Users can easily delete/add JSON files to reference less/more data as they see fit. - Eg. they can remove hgss.json to remove those games' compatibility list from being considered. - Any changes in `teachable_learnsets.h` made before this tool runs for the first time will be saved in `custom.json` for flawless migration. * Updated `teachable_learnsets.h` using this script by @Bassoonian in https://github.com/rh-hideout/pokeemerald-expansion/pull/4064 * Further updated with new Indigo Disk data compatibility by @AsparagusEduardo in https://github.com/rh-hideout/pokeemerald-expansion/pull/4155 * Can be disabled via `P_LEARNSET_HELPER_TEACHABLE`. * Removed previously untutorable moves from Mew's unteachable moves by @fdeblasio in https://github.com/rh-hideout/pokeemerald-expansion/pull/4142 * **Ability Refactor: new struct called `Ability` that stores both name and description of abilities** by @Bassoonian in https://github.com/rh-hideout/pokeemerald-expansion/pull/3861 * AI ability scores moved to this struct by @Bassoonian in https://github.com/rh-hideout/pokeemerald-expansion/pull/3862 * Added ability flags to replace arrays and switch statements by @cfmnephrite in https://github.com/rh-hideout/pokeemerald-expansion/pull/3886 * `cantBeCopied`: Cannot be copied by Role Play or Doodle. * `cantBeSwapped`: Cannot be swapped with Skill Swap or Wandering Spirit. * `cantBeTraced`: Cannot be copied by Trace. * `cantBeSuppressed`: Cannot be negated by Gastro Acid or Neutralizing Gas. * `cantBeOverwritten`: Cannot be overwritten by Entrainment, Worry Seed or Simple Beam. Mummy/Lingering Aroma checks for `cantBeSuppressed` instead. * `breakable`: Can be bypassed by Mold Breaker-like abilities. * `failsOnImposter`: Currently unused. * Cleanup by @cfmnephrite in https://github.com/rh-hideout/pokeemerald-expansion/pull/3889 * **Type info consolidation by @fdeblasio in https://github.com/rh-hideout/pokeemerald-expansion/pull/4185** * New struct called `TypeInfo` that stores: * Name * Generic move name * Icon Palette index number * Type Z-Move * Type Max Move * Commented out data to assist users that desire to use it in their own hacks and as a reference for them to add items of new types. * Type-enhancing item (eg. Charcoal) * Type-resist berry * Type Gems * Z-Crystal * Tera Shard * Arceus form * Cleanup by @AsparagusEduardo in https://github.com/rh-hideout/pokeemerald-expansion/pull/4276 ## 🧬 General 🧬 ### Added * Added optional high-quality RNG by @tertu-m in https://github.com/rh-hideout/pokeemerald-expansion/pull/3780 * Can be toggled with `HQ_RANDOM`. * Cleanup by * @tertu-m in https://github.com/rh-hideout/pokeemerald-expansion/pull/3812 * @tertu-m in https://github.com/rh-hideout/pokeemerald-expansion/pull/4218 * @tertu-m in https://github.com/rh-hideout/pokeemerald-expansion/pull/4278 * Added defines to RHH's rom header * `MOVES_COUNT` and `NUM_SPECIES` by @Ninjdai1 in https://github.com/rh-hideout/pokeemerald-expansion/pull/3831 * Cleanup by @Ninjdai1 in https://github.com/rh-hideout/pokeemerald-expansion/pull/3992 * `ITEMS_COUNT` and `ITEM_NAME_LENGTH` by @Ninjdai1 in https://github.com/rh-hideout/pokeemerald-expansion/pull/3988 * IWRAM and EWRAM variables can now be assigned at boot by using `EWRAM_INIT` and `IWRAM_INIT` by @aronson in https://github.com/rh-hideout/pokeemerald-expansion/pull/3892 * For example: ```c EWRAM_INIT u32 gFoo = 1337; IWRAM_INIT u32 gFastFoo = 31337; ``` * Cleanup by @aronson in https://github.com/rh-hideout/pokeemerald-expansion/pull/3903 * Level Caps by @AlexOn1ine, @SBird1337 and PokemonCrazy in https://github.com/rh-hideout/pokeemerald-expansion/pull/3632 * Types of caps (set in `B_EXP_CAP_TYPE`): * None (`EXP_CAP_NONE`): Regular behavior, no level caps are applied. * Hard (`EXP_CAP_HARD`): Pokémon with a level equal or above cap cap cannot gain any experience. * Soft (`EXP_CAP_SOFT`): Pokémon with a level equal or above cap will gain reduced experience. * Cap level can be set using either: * `LEVEL_CAP_FLAG_LIST`: Level cap is chosen according to the first unset flag in `sLevelCapFlagMap`. * `LEVEL_CAP_VARIABLE`: Uses a defined variable to dynamically change level cap. * Additional options include: * `B_RARE_CANDY_CAP`: If set to true, Rare Candies can't be used to go over the level cap. * `B_LEVEL_CAP_EXP_UP`: If set to true, mons under level cap will receive more experience. * Cleanup by @AsparagusEduardo in https://github.com/rh-hideout/pokeemerald-expansion/pull/4275 * Added new metaprogram macros by @cfmnephrite in https://github.com/rh-hideout/pokeemerald-expansion/pull/3968 * Allows to set up default data without explicitily defining it. * Eg. setting Poké Balls as the default ball for all trainer classes. * Elite Four/Champion transitions can now easily be applied to any trainer in their data by @fdeblasio in https://github.com/rh-hideout/pokeemerald-expansion/pull/4000 * Based off @ShinyDragonHunter's [BetterMugshots](https://github.com/ShinyDragonHunter/pokeemerald/tree/BetterMugshots) branch. * To use, use these in `src/data/trainers.h`: * Use`mugshotEnabled` to enable it for the specific trainer. * Use `mugshotColor` to choose the color of the background for the transition between the following: * `MUGSHOT_COLOR_PURPLE` * `MUGSHOT_COLOR_GREEN` * `MUGSHOT_COLOR_PINK` * `MUGSHOT_COLOR_BLUE` * `MUGSHOT_COLOR_YELLOW` * Cleanup using metaprogram by @fdeblasio in https://github.com/rh-hideout/pokeemerald-expansion/pull/4140 * Added `OW_DOUBLE_APPROACH_WITH_ONE_MON` config to allow being spotted by two trainers with one mon in party for a 2v1 battle by @Bassoonian in https://github.com/rh-hideout/pokeemerald-expansion/pull/4007 * Added configs to enable metric system units by @pkmnsnfrn in https://github.com/rh-hideout/pokeemerald-expansion/pull/4183 * Toggled by `UNITS` in `include/config.h`. * Cleanup by @pkmnsnfrn in https://github.com/rh-hideout/pokeemerald-expansion/pull/4193 * ***Implemented custom GiveMon scripting command*** by @LOuroboros, with help from @ghoulslash and @mrgriffin in https://github.com/rh-hideout/pokeemerald-expansion/pull/3924 * Based off @ghoulslash's [custom_givemon](https://github.com/ghoulslash/pokeemerald/tree/custom_givemon) branch. * In addition to Species, Level and Held Item, users can now specify: * Poké Ball * Nature * Ability number * You can pass `NUM_ABILITY_PERSONALITY` to generate the ability based on personality by @LOuroboros in https://github.com/rh-hideout/pokeemerald-expansion/pull/4192 * Gender * EVs * IVs * Moves * Shininess * Gigantamax Factor * Tera Type * Save-compatible SaveBlock3, with 1624 bytes by @mrgriffin in https://github.com/rh-hideout/pokeemerald-expansion/pull/4112 * ***IMPORTANT:*** This is incompatible with the "[Extra save space with two lines of code](https://github.com/pret/pokeemerald/wiki/Extra-save-space-with-two-lines-of-code)" tutorial, which allocates that additional space to `SaveBlock1`, `SaveBlock2`, and `PokemonStorage` instead. To preserve save compatibility, change `SAVE_BLOCK_3_CHUNK_SIZE` to 0 and keep `SECTOR_DATA_SIZE` as 4084. * Trainer Control * Trainer data encapsulation by @AsparagusEduardo in https://github.com/rh-hideout/pokeemerald-expansion/pull/4216 * Added options for `TrainerMon`: * By @mrgriffin in https://github.com/rh-hideout/pokeemerald-expansion/pull/3438 * Dynamax Level (`dynamaxLevel`) * Gigantamax Factor (`gigantamaxFactor`) * By @Nopinou in https://github.com/rh-hideout/pokeemerald-expansion/pull/4169 * AI flags to signal when to Dynamax (`shouldDynamax`) * AI flags to signal when to Terastalize (`shouldTerastal`) * Sets neutral nature and ability to 0 as default by @AlexOn1ine in https://github.com/rh-hideout/pokeemerald-expansion/pull/4172 * Added `randompercentage` and `randomelement` script commands by @mrgriffin in https://github.com/rh-hideout/pokeemerald-expansion/pull/4189 * Allows to do the following: ``` @ VAR_RESULT is one of Treecko, Torchic, or Mudkip randomelement SPECIES_TREECKO, SPECIES_TORCHIC, SPECIES_MUDKIP @ Gives a random one of Treecko, Torchic, or Mudkip. givemon VAR_RESULT, 5 ``` ``` @ VAR_RESULT is TRUE 25% of the time, and FALSE 75% of the time. randompercentage 25 @ Gives a Wobbuffet that is shiny 25% of the time. givemon SPECIES_WOBBUFFET, 20, isShiny=VAR_RESULT ``` ### Changed * Simplified creation of Object Events by adding `overworld_ascending_frames` for sequential `overworld_ascending`s by @mrgriffin in https://github.com/rh-hideout/pokeemerald-expansion/pull/3625 * Comparison functions now follow -1, 1, 0 convention by @DizzyEggg in https://github.com/rh-hideout/pokeemerald-expansion/pull/3777 * Centralized Trainer sprites by @fdeblasio in https://github.com/rh-hideout/pokeemerald-expansion/pull/3597 * Standarized usage of array shuffling to use `Shuffle` function by @tertu-m in https://github.com/rh-hideout/pokeemerald-expansion/pull/3801 * Turned nature names into compound strings by @Bassoonian in https://github.com/rh-hideout/pokeemerald-expansion/pull/3871 * `TrainerMoney` struct is renamed to `TrainerClass` and now includes Trainer Class name by @fdeblasio in https://github.com/rh-hideout/pokeemerald-expansion/pull/3875 * Improve error message with unsupported cpp by @DizzyEggg in https://github.com/rh-hideout/pokeemerald-expansion/pull/4272 ### Fixed * Fixed potential compiler errors by @DizzyEggg in https://github.com/rh-hideout/pokeemerald-expansion/pull/4252 * Fixed `ScriptGiveMonParameterized` not recognizing the state of `P_FLAG_FORCE_SHINY` and `P_FLAG_FORCE_NO_SHINY` by @LOuroboros in https://github.com/rh-hideout/pokeemerald-expansion/pull/4256 * Fixed a graphical issue when catching a form of a Pokémon for the first time by @AsparagusEduardo in https://github.com/rh-hideout/pokeemerald-expansion/pull/4279 * Fixed `ScriptGiveMonParameterized` randomizing nature even when being set by @LOuroboros in https://github.com/rh-hideout/pokeemerald-expansion/pull/4271 ## ✨ Feature Branches ✨ ### ***Incorporated @SBird1337's Dynamic Multichoices*** by @SBird1337 in https://github.com/rh-hideout/pokeemerald-expansion/pull/3826 * This allows to set up custom multichoices much easier! * Allows you to control what options appear based custom conditions (such as them being based on what items you have currently, or even completely at random!). * Event callbacks can be added as well, to fully customize what happens with your multichoices. * Included there's `DYN_MULTICHOICE_CB_SHOW_ITEM`, which shows icons of the items defined by your script. * Compatible with Poryscript. * For more information and how to use it, please visit the [Pokécommunity thread](https://www.pokecommunity.com/threads/event-scripts-dynamic-multichoice.489984/). ### ***Incorporated @ghoulslash's Saveblock Cleansing branch*** by @Bassoonian in https://github.com/rh-hideout/pokeemerald-expansion/pull/4113 * Differences from the the standalone branch: - Moved configs to dedicated file (`include/config/save.h`). - Fixed comments to the proper amount of space saved. - Added `FREE_MYSTERY_GIFT`, saving 876 bytes in `SaveBlock1`. * Added new `FREE_EXTRA_SEEN_FLAGS_SAVEBLOCK2` to Pokedex struct to save an extra 108 in `SaveBlock2` by @AsparagusEduardo in https://github.com/rh-hideout/pokeemerald-expansion/pull/4213 * Renamed `FREE_EXTRA_SEEN_FLAGS` to `FREE_EXTRA_SEEN_FLAGS_SAVEBLOCK1` by @AsparagusEduardo in https://github.com/rh-hideout/pokeemerald-expansion/pull/4213 - Converted `#ifndef` configs to the config format the rest of expansion uses - Cleaned up the code and fixed to work on `modern`. ### ***TheXaman's Debug Menu***: #### Added * *"Give Pokémon Complex"* option can now set EVs by @LOuroboros in https://github.com/rh-hideout/pokeemerald-expansion/pull/3566 * Fix by @gabrielcowley in https://github.com/rh-hideout/pokeemerald-expansion/pull/3930 * Added *"Clear bag"* option by @LOuroboros in https://github.com/rh-hideout/pokeemerald-expansion/ * Added new party debug options by @LOuroboros, with help from @ghoulslash and @mrgriffin in https://github.com/rh-hideout/pokeemerald-expansion/pull/3924 * *"Check IV"*: Checks the selected Pokémon's IVs. * *"Check EV"*: Checks the selected Pokémon's EVs. * *"Clear Party"*: Deletes all Pokémon from the Player's party. * Cleanup by @AsparagusEduardo in https://github.com/rh-hideout/pokeemerald-expansion/pull/4275 * Upgraded "Poison Party" to "Inflict Status1" by @LOuroboros in https://github.com/rh-hideout/pokeemerald-expansion/pull/4235 * Now it can also inflict: Paralysis, Sleep, Burn, Freeze and Frostbite. * Can be applied to a single member or the whole party. * Built using SBird's Multichoice. #### Changed * Cleaned up text and adjusted size to support longer text by @fdeblasio in https://github.com/rh-hideout/pokeemerald-expansion/pull/3919 * Reorganization and better naming by @LOuroboros in https://github.com/rh-hideout/pokeemerald-expansion/pull/3926 * Removed duplicated "Give all TMs" option by @AsparagusEduardo in https://github.com/rh-hideout/pokeemerald-expansion/pull/4025 #### Fixed * Fixed sound effect clipping when giving an item via debug menu by using a shorter sound by @AsparagusEduardo in https://github.com/rh-hideout/pokeemerald-expansion/pull/4025 ## 🐉 Pokémon 🐉 ### Added * Added Indigo Disk Pokémon data: * Doesn't break saves since it uses the reserved IDs used in 1.7.0 * Species data by @kittenchilly in https://github.com/rh-hideout/pokeemerald-expansion/pull/3878 * Cleanup by @kittenchilly in https://github.com/rh-hideout/pokeemerald-expansion/pull/3974 * Sprites from [PokéCommunity's 64x64 DS-Style thread](https://www.pokecommunity.com/threads/ds-style-gen-vii-and-beyond-pok%C3%A9mon-sprite-repository-in-64x64.368703/post-10786160) by @AlexOn1ine in https://github.com/rh-hideout/pokeemerald-expansion/pull/4117 * Front/Back sprites for: Gouging Fire, Raging Bolt, Iron Boulder, Iron Crown, Archaludon, Hydrapple. * Icon for: Hydrapple. * Cries by @AsparagusEduardo in https://github.com/rh-hideout/pokeemerald-expansion/pull/4164 * Added `P_FOOTPRINTS` config to disable Pokémon footprints, saving around 35KB of ROM space by @Bassoonian in https://github.com/rh-hideout/pokeemerald-expansion/pull/3902 * Cleanup by * @AsparagusEduardo in https://github.com/rh-hideout/pokeemerald-expansion/pull/3925 * @AsparagusEduardo in https://github.com/rh-hideout/pokeemerald-expansion/pull/4251 * Added missing `P_UPDATED_EVS` config that allows setting the EV yield changes across generations by @Bassoonian in https://github.com/rh-hideout/pokeemerald-expansion/pull/3993 * Added missing `P_UPDATED_EXP_YIELDS` config that allows setting the Experience yield changes across generations by @Bassoonian in https://github.com/rh-hideout/pokeemerald-expansion/pull/3995 * Added evolution methods that require custom trackers (`MON_DATA_EVOLUTION_TRACKER`) by @Bassoonian in https://github.com/rh-hideout/pokeemerald-expansion/pull/4087 * `EVO_LEVEL_MOVE_TWENTY_TIMES`: * Stantler can now evolve into Wyrdeer by using Psyshield Bash 20 times. * Primeape can now evolve into Annihilape by using Rage Fist 20 times. * `EVO_LEVEL_RECOIL_DAMAGE_MALE`/`EVO_LEVEL_RECOIL_DAMAGE_FEMALE` * White-Striped Basculin can now evolve into Basculegion when leveling up after receiving 294HP of recoil damage and being the corresponding gender. * Added missing Paldean Wooper icon by @kittenchilly in https://github.com/rh-hideout/pokeemerald-expansion/pull/4260 * Added missing data for placeholder Pokémon by @AsparagusEduardo in https://github.com/rh-hideout/pokeemerald-expansion/pull/4281 * Internal Mothim forms used for accurate breeding. * Internal Scatterbug/Spewpa forms that can be used to specify Vivillon form in previous stages. * Totem Pokémon * Partner Pikachu/Eevee ### Changed * ***Made all species IDs absolute instead of relative, to avoid confusion when adding new species*** by @AsparagusEduardo in https://github.com/rh-hideout/pokeemerald-expansion/pull/4281 * Moved shared Pokédex text descriptions to their own file by @AsparagusEduardo in https://github.com/rh-hideout/pokeemerald-expansion/pull/4281 * Renamed `species_info/gen_X.h` to `species_info/gen_X_families.h` * Added missing entries for Hidden Abilities that default to `ABILITY_NONE`. * Updated Gen 9 mon sprites from [PokéCommunity's 64x64 DS-Style thread](https://www.pokecommunity.com/threads/ds-style-gen-vii-and-beyond-pok%C3%A9mon-sprite-repository-in-64x64.368703/post-10786160) by @AlexOn1ine in https://github.com/rh-hideout/pokeemerald-expansion/pull/3969 - Brute Bonnet - Chi-Yu - Flutter Mane - Iron Bundle - Sandy Shocks - Scream Tail - Skeledirge - Slither Wing * Added `MON_TYPES` and `MON_EGG_GROUPS` metaprogram macros by @Bassoonian in https://github.com/rh-hideout/pokeemerald-expansion/pull/4154 * They're used to define a single type/egg group without needing to define it twice. ```diff -.types = { TYPE_WATER, TYPE_WATER }, +.types = MON_TYPES(TYPE_WATER), ... -.eggGroups = { EGG_GROUP_WATER_3, EGG_GROUP_WATER_3 }, +.eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_3), ``` Still supports double types: ```diff -.types = { TYPE_GROUND, TYPE_ROCK }, +.types = MON_TYPES(TYPE_GROUND, TYPE_ROCK), ... -.eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_FIELD }, +.eggGroups = MON_EGG_GROUPS(EGG_GROUP_MONSTER, EGG_GROUP_FIELD), ``` * ***To avoid confusion, reverted gSpeciesInfo "INFO" macros*** by @AsparagusEduardo in https://github.com/rh-hideout/pokeemerald-expansion/pull/4230 ## ⚔️ Battle General ⚔️ ## ### Added * Implemented optional Gen1 type immunity logic. by @GraionDilach in https://github.com/rh-hideout/pokeemerald-expansion/pull/3627 * Added Calyrex's blue Dynamax aura by @AsparagusEduardo in https://github.com/rh-hideout/pokeemerald-expansion/pull/4018 * Expanded `VAR_TERRAIN` functionality * Added `B_VAR_STARTING_STATUS_TIMER` to allow `VAR_TERRAIN` (now called `B_VAR_STARTING_STATUS`) to last only a certain amount of turns instead of permanently by @LOuroboros in https://github.com/rh-hideout/pokeemerald-expansion/pull/4132 * Further expanded by @ghoulslash in https://github.com/rh-hideout/pokeemerald-expansion/pull/4176 * Can be used to set up these as well: * Trick Room * Magic Room * Wonder Room * Tailwind (for player or opponent sides independenly) * Cleanup by @AsparagusEduardo in https://github.com/rh-hideout/pokeemerald-expansion/pull/4237 * AI score debug menu can now cycle through battlers by pressing L/R by @ghoulslash in https://github.com/rh-hideout/pokeemerald-expansion/pull/4134 ### Changed * Simplified Battle Partners code (eg. Steven) by @AlexOn1ine in https://github.com/rh-hideout/pokeemerald-expansion/pull/3592 * Based off @ShinyDragonHunter's [CustomMultiBattles](https://github.com/ShinyDragonHunter/pokeemerald/tree/CustomMultiBattles) branch. * Removed specialized code for Steven partner cases. * Partners are now stored in their own array. * Fixed infinite loop by @GraionDilach in https://github.com/rh-hideout/pokeemerald-expansion/pull/3808 * B_VAR_TERRAIN_TIMERRenamed VAR_TERRAIN to B_VAR_TERRAIN and added a var-based field terrain timer by @LOuroboros in https://github.com/rh-hideout/pokeemerald-expansion/pull/4132 ### Fixed * Fixed AI calculations potentially stomping data when emiting data by @DizzyEggg in https://github.com/rh-hideout/pokeemerald-expansion/pull/3784 * Fixed Battle AI debug screen showing shiny sprites by @fdeblasio in https://github.com/rh-hideout/pokeemerald-expansion/pull/3922 * Fixed Gigantamax Factor not changing form by @AsparagusEduardo in https://github.com/rh-hideout/pokeemerald-expansion/pull/4108 * Fixed Quick Draw having increased chances of activation in double battles by @ghoulslash in https://github.com/rh-hideout/pokeemerald-expansion/pull/4266 ## 🤹 Moves 🤹 ### Added * Added missing move effects: * Ally Switch by @DizzyEggg in https://github.com/rh-hideout/pokeemerald-expansion/pull/3533 * Cleanup by @DizzyEggg in https://github.com/rh-hideout/pokeemerald-expansion/pull/3835 * Doodle by @kittenchilly in https://github.com/rh-hideout/pokeemerald-expansion/pull/3609 * Cleanup by @AlexOn1ine in https://github.com/rh-hideout/pokeemerald-expansion/pull/3800 * Fillet Away by @kittenchilly in https://github.com/rh-hideout/pokeemerald-expansion/pull/3616 * Shed Tail by @AlexOn1ine in https://github.com/rh-hideout/pokeemerald-expansion/pull/4016 * Last Respects by @AsparagusEduardo in https://github.com/rh-hideout/pokeemerald-expansion/pull/4151 * Tidy Up by @AlexOn1ine in https://github.com/rh-hideout/pokeemerald-expansion/pull/4136 * Added Indigo Disk Moves * Data by @Bassoonian in https://github.com/rh-hideout/pokeemerald-expansion/pull/3704 * Moves with existing effects by @Bassoonian in https://github.com/rh-hideout/pokeemerald-expansion/pull/3704 * Thunderclap * Mighty Cleave * Tachyon Cutter * Hard Press * Temper Flare * Animation by @ZnogyroP in https://github.com/rh-hideout/pokeemerald-expansion/pull/4145 * Supercell Slam * Malignant Chain * New move effects * By @AlexOn1ine in https://github.com/rh-hideout/pokeemerald-expansion/pull/3853 * Burning Bulwark (uses Protect's animation as placeholder) * Alluring Voice (and animation) * Fickle Beam * Electro Shot * Animation by @AlexOn1ine in https://github.com/rh-hideout/pokeemerald-expansion/pull/4148 * Psychic Noise by @AlexOn1ine in https://github.com/rh-hideout/pokeemerald-expansion/pull/4005 * Animation by @ZnogyroP in https://github.com/rh-hideout/pokeemerald-expansion/pull/4145 * Cleanup by @AlexOn1ine in https://github.com/rh-hideout/pokeemerald-expansion/pull/4021 * Upper Hand (and animation) by @ZnogyroP in https://github.com/rh-hideout/pokeemerald-expansion/pull/4085 * Dragon Cheer by @AlexOn1ine in https://github.com/rh-hideout/pokeemerald-expansion/pull/4122 * Cleanup by @AlexOn1ine, based on comments by @Skeli789 and @mrgriffin in https://github.com/rh-hideout/pokeemerald-expansion/pull/4136 * Added move animations for existing moves: * By @ZnogyroP, with adjustments from @AlexOn1ine and @ghoulslash in https://github.com/rh-hideout/pokeemerald-expansion/pull/3989 * Raging Bull * Gigaton Hammer * Ice Spinner * Aqua Cutter * Jet Punch by @PCG06 in https://github.com/rh-hideout/pokeemerald-expansion/pull/4067 * By @ZnogyroP in https://github.com/rh-hideout/pokeemerald-expansion/pull/4145 * Last Respects * Lumina Crash * Kowtow Cleave * Torch Song * Aqua Step * Hydro Steam * Tidy Up * Pounce * Trailblaze * Chilling Water * Rage Fist ### Changed * Updated move data to Gen 9 with configs by @Bassoonian in https://github.com/rh-hideout/pokeemerald-expansion/pull/3704 * Added `sketchBanned` move flag, given to: * Sketch, Dark Void, Hyperspace Fury, Revival Blessing, Torque moves. * Luster Purge: 70 Power -> 95 Power * Mist Ball: 70 Power -> 95 Power * Aeroblast: Added Wind Move flag. * Ivy Cudgel's type now changes based on Ogerpon's form rather than held item by @kittenchilly in https://github.com/rh-hideout/pokeemerald-expansion/pull/3865 * Renamed `healBlockBanned` flag to `healingMove` by @AsparagusEduardo in https://github.com/rh-hideout/pokeemerald-expansion/pull/3981 * Removed some hardcoded move IDs * By @AsparagusEduardo in https://github.com/rh-hideout/pokeemerald-expansion/pull/3982 * `MOVE_EXPLOSION`, `MOVE_SELF_DESTRUCT`, `MOVE_FRUSTRATION`, `MOVE_AURA_WHEEL`, `MOVE_PRESENT`, `MOVE_BLIZZARD`. * By @ZnogyroP in https://github.com/rh-hideout/pokeemerald-expansion/pull/4085 * `MOVE_SUCKER_PUNCH`. * Removed now redundant `EFFECT_HURRICANE` in favor of `EFFECT_THUNDER` by @AsparagusEduardo in https://github.com/rh-hideout/pokeemerald-expansion/pull/3982 * Renamed `constants/z_move_effects.h` to `constants/battle_z_move_effects.h` by @AsparagusEduardo in https://github.com/rh-hideout/pokeemerald-expansion/pull/3982 * Updated Draco Meteor's animation to use @Skeli789's from CFRU, by @AlexOn1ine in https://github.com/rh-hideout/pokeemerald-expansion/pull/3989 * Improved Double Shock's animation by @AlexOn1ine in https://github.com/rh-hideout/pokeemerald-expansion/pull/3989 * Set `EFFECT_PLACEHOLDER` as the default move effect by @AsparagusEduardo in https://github.com/rh-hideout/pokeemerald-expansion/pull/4079 * Renamed `EFFECT_FAKE_OUT` to `EFFECT_FIRST_TURN_ONLY` due to the flinch effect separation by @AlexOn1ine in https://github.com/rh-hideout/pokeemerald-expansion/pull/4081 * Renamed `EFFECT_WRING_OUT` to `EFFECT_VARY_POWER_BASED_ON_HP` and now it uses `argument` to set its base power by @LOuroboros in https://github.com/rh-hideout/pokeemerald-expansion/pull/4180 ### Fixed * Fixed `GetBattleAnimMoveTargets` function that caused multiple animation issues, such as Overheat's animation by @ghoulslash in https://github.com/rh-hideout/pokeemerald-expansion/pull/4139 * Fixed hardcoded battle strings by @ZnogyroP in https://github.com/rh-hideout/pokeemerald-expansion/pull/4147 * Hospitality had Sinistcha's name hardcoded. * Battler prefixes (eg. "The opposing") were hardcoded in some places. * Fixed Supreme Overlord's incorrect effect by @AsparagusEduardo in https://github.com/rh-hideout/pokeemerald-expansion/pull/4151 * Fixed Hard Press' base power by @LOuroboros in https://github.com/rh-hideout/pokeemerald-expansion/pull/4180 * Fixed Teeter Dance not being copyable by Dancer in singles by @AlexOn1ine in https://github.com/rh-hideout/pokeemerald-expansion/pull/4129 * *Known issue*: In doubles, it copies the move, but only confuses a single Pokémon. ## 🎭 Abilities 🎭 ### Added * Added Mind's Eye by @AlexOn1ine in https://github.com/rh-hideout/pokeemerald-expansion/pull/3782 * Added Hospitality by @AlexOn1ine in https://github.com/rh-hideout/pokeemerald-expansion/pull/3818 * Fixed Dynamax interaction by @AlexOn1ine in https://github.com/rh-hideout/pokeemerald-expansion/pull/3821 * Added Embody Aspect (all 4 versions) by @AlexOn1ine in https://github.com/rh-hideout/pokeemerald-expansion/pull/3821 * Added Supersweet Syrup by @ghoulslash in https://github.com/rh-hideout/pokeemerald-expansion/pull/4115 * Cleanup by * @Bassoonian in https://github.com/rh-hideout/pokeemerald-expansion/pull/4170 * @AlexOn1ine in https://github.com/rh-hideout/pokeemerald-expansion/pull/4171 * Indigo Disk Abilities * Data by @Bassoonian in https://github.com/rh-hideout/pokeemerald-expansion/pull/3838 ### Changed * Updated ability banlists to Indigo Disk data by @kittenchilly in https://github.com/rh-hideout/pokeemerald-expansion/pull/3609 ### Fixed * Fixed Tangling Hair preventing Rocky Helmet from triggering interaction by @AlexOn1ine, with help from @ZnogyroP in https://github.com/rh-hideout/pokeemerald-expansion/pull/4219 ## 🧶 Items 🧶 ### Added * Added Meteorite item form change functionality for Deoxys by @kittenchilly in https://github.com/rh-hideout/pokeemerald-expansion/pull/3770 * Added item price configs by @Bassoonian in https://github.com/rh-hideout/pokeemerald-expansion/pull/3834 * `I_PRICE` and `I_BERRY_PRICE`. * Fixed missing data by @kittenchilly in https://github.com/rh-hideout/pokeemerald-expansion/pull/3836 * Added Pokemon Box Link functionality by @kittenchilly in https://github.com/rh-hideout/pokeemerald-expansion/pull/3837 * Added Indigo Disk item data by @kittenchilly in https://github.com/rh-hideout/pokeemerald-expansion/pull/3854 * Metal Alloy * Stellar Tera Shard * Added Legends: Arceus item data by @Bassoonian in https://github.com/rh-hideout/pokeemerald-expansion/pull/3825 * Jubilife Muffin - Local specialty (Full Heal) * Remedy - Medicine (Potion) * Fine Remedy - Medicine (Super Potion) * Super Remedy - Medicine (Hyper Potion) * Aux items * Aux Evasion * Aux Power * Aux Guard * Aux Powerguard * Sprites based off [lichen's sprites from Relic Castle](https://reliccastle.com/resources/1287/) by @MartyKen in https://github.com/rh-hideout/pokeemerald-expansion/pull/4160 * Choice Dumpling * Swap Snack * Twice Spiced Radish * Pokéshi Doll * ***Berry Expansion*** by @Bassoonian in https://github.com/rh-hideout/pokeemerald-expansion/pull/3618 * Berry Mutations (from XY): Planting a Berry tree next to another has a `BERRY_MUTATION_CHANCE` (25% by default) chance of causing a mutation (as dictated by `sBerryMutations`). Mutations mean that besides the usual output, the Berry plant will have a single Berry of the mutation (e.g. planting a Iapapa Berry next to a Mago Berry will cause it to have a single Pomeg Berry on top of its usual output). * Enabled via `OW_BERRY_MUTATIONS` config. * Easier Berry Debugging: Add berry manipulation functions to the debug menu to allow for forced growth and more. * Mulch (from Gen IV and XY): Using it on soil affects the growth, watering and production values of the plants. * Enabled via `OW_BERRY_MULCH_USAGE` config. * Gradient watering (from Gen IV and XY) (`OW_BERRY_MOISTURE` and `OW_BERRY_ALWAYS_WATERABLE`): rather than keeping track of if each stage has been watered like Gen III, the humidity of the soil is kept track of separately. * Enabled via `OW_BERRY_MOISTURE` config. * Switch between Gen4/6 via `OW_BERRY_ALWAYS_WATERABLE` config. * Rate of drying set by `OW_BERRY_DRAIN_RATE` config. * Weeding from XY: Berries may require unweeding for additional produce. * Enabled via `OW_BERRY_WEEDS` config. * Pests (from XY): Bug-type Pokémon may appear to feast on your plants. * Enabled via `OW_BERRY_PESTS` config. * Customisable stages: XY has six stages rather than four, so with this easy toggle you can choose the amount of stages without influencing the growth time. * Enabled via `OW_BERRY_SIX_STAGES` config. * Growth configs: Pick a generation whose Berry growth rates to use * Changed via `OW_BERRY_GROWTH_RATE` config. * Yield configs: Pick a generation whose Berry yields to use * Changed via `OW_BERRY_YIELD_RATE` config. * Cleanup by * @Bassoonian in https://github.com/rh-hideout/pokeemerald-expansion/pull/3931 * @GraionDilach in https://github.com/rh-hideout/pokeemerald-expansion/pull/4028 * @AsparagusEduardo in https://github.com/rh-hideout/pokeemerald-expansion/pull/4275 * Added missing pre-Gen7 Power Item config (giving 4 EVs instead of 8) by @Bassoonian in https://github.com/rh-hideout/pokeemerald-expansion/pull/3961 * Added LGPE+ Premier Ball Bonus config by @AsparagusEduardo in https://github.com/rh-hideout/pokeemerald-expansion/pull/4191 * Originally based off [pret's tutorial](https://github.com/pret/pokeemerald/wiki/LGPE-Style-Bonus-Premier-Balls), but with the following changes: - If there's no space for the full amount of Premier Balls that would've been given, give the partial amount. - Shows the amount of Premier Balls given. ### Changed * ***Raised the limit of max items per stack to 999*** by @LOuroboros in https://github.com/rh-hideout/pokeemerald-expansion/pull/3923 * ***Unified item data*** * Move descriptions are now defined in `src/data/items.h` instead of `src/data/text/item_descriptions.h` by @LOuroboros in https://github.com/rh-hideout/pokeemerald-expansion/pull/3432 * Cleanup by * @Bassoonian in https://github.com/rh-hideout/pokeemerald-expansion/pull/3797 * @AsparagusEduardo in https://github.com/rh-hideout/pokeemerald-expansion/pull/4088 * Moved Item Effects (`gItemEffectTable`) to `gItemsInfo` by @AsparagusEduardo in https://github.com/rh-hideout/pokeemerald-expansion/pull/3991 * Renamed `gItems` to `gItemsInfo` by @Bassoonian in https://github.com/rh-hideout/pokeemerald-expansion/pull/4068 * Item Balls now can be defined in the map's JSON (or using PoryMap) via the common script `Common_EventScript_FindItem` instead of needing to define a new script for it by @pkmnsnfrn in https://github.com/rh-hideout/pokeemerald-expansion/pull/3942 ```diff "trainer_type": "TRAINER_TYPE_NONE", - "trainer_sight_or_berry_tree_id": "0", - "script": "AbandonedShip_CaptainsOffice_EventScript_ItemStorageKey", + "trainer_sight_or_berry_tree_id": "ITEM_STORAGE_KEY", + "script": "Common_EventScript_FindItem", "flag": "FLAG_ITEM_ABANDONED_SHIP_CAPTAINS_OFFICE_STORAGE_KEY" ``` * Item count can also be defined by using the `movement_range_x` field: ```diff "trainer_sight_or_berry_tree_id": "ITEM_NUGGET", "script": "Common_EventScript_FindItem", "flag": "FLAG_ITEM_AQUA_HIDEOUT_B1F_NUGGET" + "movement_range_x": 2, ``` * Existing scripts have been adapted to use this new format. * Added plural item name support with new `pluralName` field in `gItemsInfo` by @pkmnsnfrn in https://github.com/rh-hideout/pokeemerald-expansion/pull/3942 * When obtaining multiples of an item and the field is not defined, it appends an `s` at the end instead (eg. "Brendan got 40 Potion***s***!"). * Python migration script available in `migration_scripts/item_ball_refactor.py` by @pkmnsnfrn in https://github.com/rh-hideout/pokeemerald-expansion/pull/3997 * Deprecated `GetBerryCountString` by @Bassoonian in https://github.com/rh-hideout/pokeemerald-expansion/pull/4012 * Cleanup by * @pkmnsnfrn in https://github.com/rh-hideout/pokeemerald-expansion/pull/4001 * @Bassoonian in https://github.com/rh-hideout/pokeemerald-expansion/pull/4015 * Combined `CannotUseBagBattleItem` and `CannotUsePartyBattleItem` into `CannotUseItemsInBattle` by @LOuroboros in https://github.com/rh-hideout/pokeemerald-expansion/pull/3524 ### Fixed * Fixed some ball multiplier data by @Bassoonian in https://github.com/rh-hideout/pokeemerald-expansion/pull/3939 * Fixed `B_SPORT_BALL_MODIFIER` config being ignored and always applying a 1.5x multiplier. * Added missing `B_SAFARI_BALL_MODIFIER` that makes Safari Balls have a 1x multiplier from Gen7 onwards. * Added missing `B_LURE_BALL_MODIFIER` state that sets Lure Ball's multiplier to 4x from Gen8 onwards. * Fixed Quick Claw having increased chances of activation in double battles by @ghoulslash in https://github.com/rh-hideout/pokeemerald-expansion/pull/4266 ## 🤖 Battle AI 🤖 ### Added * Added `AI_CalcMoveScore` function to more easily control score increases by @AlexOn1ine in https://github.com/rh-hideout/pokeemerald-expansion/pull/3984 * Added `AI_FLAG_POWERFUL_STATUS` AI flag, replacing `AI_FLAG_SCREENER` by @AlexOn1ine in https://github.com/rh-hideout/pokeemerald-expansion/pull/4125 * It's meant to force the AI to do status instead of fainting the target (eg. setting up Trick Room to support the rest of the team) ### Changed * AI flags are now saved by battler position instead of per side by @ghoulslash in https://github.com/rh-hideout/pokeemerald-expansion/pull/3003 * Cleanup by @AlexOn1ine in https://github.com/rh-hideout/pokeemerald-expansion/pull/4114 ### Fixed * Improved AI score changes handling by @AlexOn1ine in https://github.com/rh-hideout/pokeemerald-expansion/pull/4036 * AI will not further increase Attack / Sp. Atk stat if it knows it faints to target. * AI will not use Throat Chop if opposing mon has a better move. * AI will select Throat Chop if the sound move is the best damaging move from opposing mon. * Cleanup by * @AlexOn1ine in https://github.com/rh-hideout/pokeemerald-expansion/pull/4074 * @AlexOn1ine in https://github.com/rh-hideout/pokeemerald-expansion/pull/4075 * @AlexOn1ine in https://github.com/rh-hideout/pokeemerald-expansion/pull/4199 * Fixed AI not setting sets up double flags correctly by @DizzyEggg in https://github.com/rh-hideout/pokeemerald-expansion/pull/4228 * Move most damage `AI_BadMove` checks to `AI_CalcDamage` by @AlexOn1ine in https://github.com/rh-hideout/pokeemerald-expansion/pull/4238 * Fixes AI trying to use Burn Up after losing its fire type. * Fixes AI trying to use Electric moves when the target has Volt Absorb. * Fixed AI vs AI battles would crash during the throw animation by @DizzyEggg in https://github.com/rh-hideout/pokeemerald-expansion/pull/4240 * Fixed AI considering Mold Breaker but not Turboblaze/Teravolt for flinch-related decisions by @AsparagusEduardo in https://github.com/rh-hideout/pokeemerald-expansion/pull/4244 ## 🧹 Other Cleanup 🧹 * Removed hardcoded uses of `MOVE_STUFF_CHEEKS` and `MOVE_ME_FIRST` by @AsparagusEduardo in https://github.com/rh-hideout/pokeemerald-expansion/pull/3950 * Cleaned up `CheckMoveLimitations` to use less horizontal space by @AsparagusEduardo in https://github.com/rh-hideout/pokeemerald-expansion/pull/3950 * Small `CanFirstMonBoostHeldItemRarity` optimization by @AsparagusEduardo in https://github.com/rh-hideout/pokeemerald-expansion/pull/4008 * Tag previously-unused icon pals as such in code. by @GraionDilach in https://github.com/rh-hideout/pokeemerald-expansion/pull/4072 * Converted a bunch of `#if/#else` to regular conditions by @Bassoonian in https://github.com/rh-hideout/pokeemerald-expansion/pull/4071 * Clean up contest strings by @Bassoonian in https://github.com/rh-hideout/pokeemerald-expansion/pull/3876 * Fixed inconsistent braces style by @AsparagusEduardo in https://github.com/rh-hideout/pokeemerald-expansion/pull/4023 * Replaced some `AI_GetMoveEffectiveness` instances with `AI_CanStatus` for speeding up calculations by @ghoulslash in https://github.com/rh-hideout/pokeemerald-expansion/pull/4166 * Remove some unused data by @DizzyEggg in https://github.com/rh-hideout/pokeemerald-expansion/pull/4239 * Use `u32` instead of `u8`/`u16` in gflib files by @DizzyEggg in https://github.com/rh-hideout/pokeemerald-expansion/pull/4250 * Unify monSpritesGfx bytes/ptr field by @DizzyEggg in https://github.com/rh-hideout/pokeemerald-expansion/pull/4252 * `gHeap` can go in the middle of ram by @DizzyEggg in https://github.com/rh-hideout/pokeemerald-expansion/pull/4253 * Corrected initial value of `targetSpecies` variable in `GetEvolutionTargetSpecies` by @LOuroboros in https://github.com/rh-hideout/pokeemerald-expansion/pull/4269 * Replaces `MOVE_FIRST_IMPRESSION` argument with a check for Fake Out for 100% flinch effect by @AlexOn1ine in https://github.com/rh-hideout/pokeemerald-expansion/pull/4274 ## 🧪 Test Runner 🧪 ### Added * Added option to set flags in tests by @fakuzatsu in https://github.com/rh-hideout/pokeemerald-expansion/pull/3786 * Added missing Illuminate and Keen Eye Tests by @AlexOn1ine in https://github.com/rh-hideout/pokeemerald-expansion/pull/3782 * Added missing Belly Drum tests by @kittenchilly in https://github.com/rh-hideout/pokeemerald-expansion/pull/3616 * Added missing Stuff Cheeks by @AsparagusEduardo in https://github.com/rh-hideout/pokeemerald-expansion/pull/3950 * Added Teeter Dance + Dancer test for doubles by @AlexOn1ine in https://github.com/rh-hideout/pokeemerald-expansion/pull/4274 ### Changed * Updated tests to use Gen 9 mon for appropiate abilities by @AlexOn1ine in https://github.com/rh-hideout/pokeemerald-expansion/pull/3740 * Tests no longer allow to use SEND_OUT if the chosen mon is fainted by @DizzyEggg in https://github.com/rh-hideout/pokeemerald-expansion/pull/3752 ### Fixed * Consistent `BENCHMARK` timing by @mrgriffin in https://github.com/rh-hideout/pokeemerald-expansion/pull/3866 * Fixed Teatime test checking for Wonder Room instead of Magic Room by @AsparagusEduardo in https://github.com/rh-hideout/pokeemerald-expansion/pull/3950 * Fixed test battle move category assumptions by @AsparagusEduardo in https://github.com/rh-hideout/pokeemerald-expansion/pull/4051 * Fixed Tri Attack status ability immunity test by @AsparagusEduardo in https://github.com/rh-hideout/pokeemerald-expansion/pull/4229 * Fixed Dauntless Shield test names by @AsparagusEduardo in https://github.com/rh-hideout/pokeemerald-expansion/pull/4229 ## 📦 Pret merges 📦 * 2023/12/30 by @Bassoonian in https://github.com/rh-hideout/pokeemerald-expansion/pull/3869 * 2024/02/10 by @AsparagusEduardo in https://github.com/rh-hideout/pokeemerald-expansion/pull/4173 * 2024/03/07 by @DizzyEggg in https://github.com/rh-hideout/pokeemerald-expansion/pull/4255 ## New Contributors * @cfmnephrite made their first contribution in https://github.com/rh-hideout/pokeemerald-expansion/pull/3575 * @tertu-m made their first contribution in https://github.com/rh-hideout/pokeemerald-expansion/pull/3780 * @aronson made their first contribution in https://github.com/rh-hideout/pokeemerald-expansion/pull/3892 * @MartyKen made their first contribution in https://github.com/rh-hideout/pokeemerald-expansion/pull/4049 * @ZnogyroP made their first contribution in https://github.com/rh-hideout/pokeemerald-expansion/pull/4085 * @Nopinou made their first contribution in https://github.com/rh-hideout/pokeemerald-expansion/pull/4169 **Full Changelog**: https://github.com/rh-hideout/pokeemerald-expansion/compare/expansion/1.7.4...expansion/1.8.0