diff --git a/.github/ISSUE_TEMPLATE/01_battle_engine_bugs.yaml b/.github/ISSUE_TEMPLATE/01_battle_engine_bugs.yaml index 33af7d9649..9b892bc732 100644 --- a/.github/ISSUE_TEMPLATE/01_battle_engine_bugs.yaml +++ b/.github/ISSUE_TEMPLATE/01_battle_engine_bugs.yaml @@ -23,17 +23,15 @@ body: label: Version description: What version of pokeemerald-expansion are you using as a base? options: - - 1.7.4 (Latest release) - - master (default when pulling, unreleased bugfixes) + - 1.8.0 (Latest release) + - master (default, unreleased bugfixes) - upcoming (Edge) + - 1.7.4 - 1.7.3 - 1.7.2 - 1.7.1 - 1.7.0 - - 1.6.2 - - 1.6.1 - - 1.6.0 - - pre-1.6.0 + - pre-1.7.0 validations: required: true - type: input diff --git a/.github/ISSUE_TEMPLATE/02_battle_ai_issues.yaml b/.github/ISSUE_TEMPLATE/02_battle_ai_issues.yaml index cabfda4990..ae2752be6a 100644 --- a/.github/ISSUE_TEMPLATE/02_battle_ai_issues.yaml +++ b/.github/ISSUE_TEMPLATE/02_battle_ai_issues.yaml @@ -23,17 +23,15 @@ body: label: Version description: What version of pokeemerald-expansion are you using as a base? options: - - 1.7.4 (Latest release) - - master (default when pulling, unreleased bugfixes) + - 1.8.0 (Latest release) + - master (default, unreleased bugfixes) - upcoming (Edge) + - 1.7.4 - 1.7.3 - 1.7.2 - 1.7.1 - 1.7.0 - - 1.6.2 - - 1.6.1 - - 1.6.0 - - pre-1.6.0 + - pre-1.7.0 validations: required: true - type: input diff --git a/.github/ISSUE_TEMPLATE/04_other_errors.yaml b/.github/ISSUE_TEMPLATE/04_other_errors.yaml index 33c85c15fb..de6b18030a 100644 --- a/.github/ISSUE_TEMPLATE/04_other_errors.yaml +++ b/.github/ISSUE_TEMPLATE/04_other_errors.yaml @@ -23,17 +23,15 @@ body: label: Version description: What version of pokeemerald-expansion are you using as a base? options: - - 1.7.4 (Latest release) - - master (default when pulling, unreleased bugfixes) + - 1.8.0 (Latest release) + - master (default, unreleased bugfixes) - upcoming (Edge) + - 1.7.4 - 1.7.3 - 1.7.2 - 1.7.1 - 1.7.0 - - 1.6.2 - - 1.6.1 - - 1.6.0 - - pre-1.6.0 + - pre-1.7.0 validations: required: true - type: input diff --git a/CHANGELOG.md b/CHANGELOG.md index f8e0c66e20..e74fd67340 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,8 @@ # Pokeemerald-Expansion Changelogs +## Version 1.8.x +### [Version 1.8.0](docs/changelogs/1.8.0.md) - Feature Release + ## Version 1.7.x ### [Version 1.7.4](docs/changelogs/1.7.4.md) - Bugfix Release ### [Version 1.7.3](docs/changelogs/1.7.3.md) - Bugfix Release diff --git a/README.md b/README.md index dcb9861615..c1c14b1266 100644 --- a/README.md +++ b/README.md @@ -25,24 +25,23 @@ Based off RHH's pokeemerald-expansion v1.7.3 https://github.com/rh-hideout/pokee - Physical/Special/Status Category (configurable). - New moves and abilities up to Scarlet and Violet. - Custom Contest data up to SwSh, newer moves are WIP. ([source](https://pokemonurpg.com/info/contests/rse-move-list/)) - - Mega Evolution - - Primal Reversion - - Ultra Burst - - Z-Moves - - Gen 8+ damaging moves are given power extrapolated from Gen 7. - - Gen 8+ status moves have no additional effects, like Healing Wish. - - Dynamax - - Gigantamax forms + - Battle gimmick support: + - Mega Evolution + - Primal Reversion + - Ultra Burst + - Z-Moves + - Gen 8+ damaging moves are given power extrapolated from Gen 7. + - Gen 8+ status moves have no additional effects, like Healing Wish. + - Dynamax and Gigantamax - Initial battle parameters - Queueing stat boosts (aka, Totem Boosts) - Setting Terrains. - Mid-turn speed recalculation. - Quick Poké Ball selection in Wild Battles - - Press `R` to use last selected Poké Ball. - Hold `R` to change selection with the D-Pad. + - Press `R` to use last selected Poké Ball. - Run option shortcut - - Faster battle intro - - Message and animation/cry happens at the same time. + - Faster battle intro - Message and animation/cry happens at the same time. - Faster HP drain. - Battle Debug menu. - Accessed by pressing `Select` on the "Fight/Bag/Pokémon/Run" menu. @@ -105,7 +104,8 @@ Based off RHH's pokeemerald-expansion v1.7.3 https://github.com/rh-hideout/pokee - HP Threshold (eg. Darmanitan) - Weather (eg. Castform) - End of turn (eg. Morpeko) - - Time of day (Shaymin) + - Time of day (eg. Shaymin) + - Fusions (eg. Kyurem) - ***Breeding Improvements*** - Incense Baby Pokémon now happen automatically (configurable). - Level 1 eggs (configurable). @@ -138,7 +138,6 @@ Based off RHH's pokeemerald-expansion v1.7.3 https://github.com/rh-hideout/pokee - *Dark Mode*. - [Nature Colors](https://github.com/DizzyEggg/pokeemerald/tree/nature_color) in summary screen by @DizzyEggg - [Dynamic Multichoice](https://github.com/SBird1337/pokeemerald/tree/feature/dynmulti) by @SBird1337 - - [Guillotine](https://github.com/aarant/pokeemerald/tree/guillotine) (Decapitalization) by @aarant - ***Other features*** - Pressing B while holding a Pokémon drops them like in modern games (configurable). - Running indoors (configurable). @@ -165,7 +164,7 @@ With this, you'll get the latest version of pokeemerald-expansion, plus a couple ## **How do I update my version of pokeemerald-expansion?** - 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.7.4`. +- Once you have your remote set up, run the command `git pull RHH expansion/1.8.0`. ### Please consider crediting the entire [list of contributors](https://github.com/rh-hideout/pokeemerald-expansion/wiki/Credits) in your project, as they have all worked hard to develop this project :) diff --git a/docs/changelogs/1.8.0.md b/docs/changelogs/1.8.0.md new file mode 100644 index 0000000000..afe6a03bf1 --- /dev/null +++ b/docs/changelogs/1.8.0.md @@ -0,0 +1,704 @@ +# 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 save block 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 + + diff --git a/docs/changelogs/template.md b/docs/changelogs/template.md index f67520c388..57edc6ec6a 100644 --- a/docs/changelogs/template.md +++ b/docs/changelogs/template.md @@ -17,6 +17,14 @@ ### Fixed * N/A +## ✨ Feature Branches ✨ +### Added +* N/A +### Changed +* N/A +### Fixed +* N/A + ## 🐉 Pokémon 🐉 ### Added * N/A diff --git a/include/constants/expansion.h b/include/constants/expansion.h index 63f262aeee..49998a20d3 100644 --- a/include/constants/expansion.h +++ b/include/constants/expansion.h @@ -1,12 +1,13 @@ #ifndef GUARD_CONSTANTS_EXPANSION_H #define GUARD_CONSTANTS_EXPANSION_H +// 1.8.0 #define EXPANSION_VERSION_MAJOR 1 -#define EXPANSION_VERSION_MINOR 7 -#define EXPANSION_VERSION_PATCH 4 +#define EXPANSION_VERSION_MINOR 8 +#define EXPANSION_VERSION_PATCH 0 // FALSE if this this version of Expansion is not a tagged commit, i.e. // it contains unreleased changes. -#define EXPANSION_TAGGED_RELEASE FALSE +#define EXPANSION_TAGGED_RELEASE TRUE #endif