Add followers to readme & update migration script readme (#4719)
* Add followers to readme & update migration script readme * Apply suggestions from code review Co-authored-by: Eduardo Quezada <eduardo602002@gmail.com> * Update README.md Co-authored-by: Eduardo Quezada <eduardo602002@gmail.com> --------- Co-authored-by: Eduardo Quezada <eduardo602002@gmail.com>
This commit is contained in:
parent
fa81861593
commit
0a049ea6f7
8 changed files with 293 additions and 1 deletions
|
@ -141,6 +141,14 @@ Based off RHH's pokeemerald-expansion v1.8.0 https://github.com/rh-hideout/pokee
|
|||
- [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
|
||||
- [Saveblock Cleansing](https://github.com/ghoulslash/pokeemerald/tree/saveblock) by @ghoulslash
|
||||
- [Followers & Expanded IDs](https://github.com/aarant/pokeemerald/tree/followers-expanded-id) by @aarant
|
||||
- May be disabled.
|
||||
- Includes Pokémon followers like in HGSS, including interactions.
|
||||
- ***Expands the amount of possible object event IDs beyond 255.***
|
||||
- ***Includes an implementation of dynamic overworld palettes (DOWP).***
|
||||
- **Additional features**:
|
||||
- *Pokémon overworld sprites up to Generation 8.*
|
||||
- *Integration with our Pokémon Sprite Visualizer, allowing users to browse through the follower sprites alongside battle sprites.*
|
||||
- ***Other features***
|
||||
- Pressing B while holding a Pokémon drops them like in modern games (configurable).
|
||||
- Running indoors (configurable).
|
||||
|
|
|
@ -17,9 +17,293 @@ python3 migration_scripts/*.py ; #run the migration script
|
|||
|
||||
`*` will need to be replaced with the name of the appropriate script.
|
||||
|
||||
## 1.8.x to 1.9.x+
|
||||
|
||||
### Battle Anim Moves
|
||||
|
||||
* Filepath [`migration_scripts/1.9/battle_anim_moves_refactor.py`](1.9/battle_anim_moves_refactor.py)
|
||||
* Introduced in [Refactor move animations #4683](https://github.com/rh-hideout/pokeemerald-expansion/pull/4683)
|
||||
|
||||
Refactors all battle animation move scripts, removing the list from `data/battle_anim_scripts.s` and linking them to the moves in `gMovesInfo` for easier maintaining. Only necessary if new moves have been added.
|
||||
|
||||
#### [data/battle_anim_scripts.h](../data/battle_anim_scripts.s)
|
||||
```diff
|
||||
- .4byte Move_POUND
|
||||
```
|
||||
|
||||
#### [include/battle_anim_scripts.h](../include/battle_anim_scripts.h)
|
||||
```diff
|
||||
+ extern const u8 Move_POUND[];
|
||||
```
|
||||
|
||||
#### [src/data/moves_info.h](../src/data/moves_info.h)
|
||||
```diff
|
||||
[MOVE_POUND] =
|
||||
{
|
||||
.name = COMPOUND_STRING("Pound"),
|
||||
.description = COMPOUND_STRING(
|
||||
"Pounds the foe with\n"
|
||||
"forelegs or tail."),
|
||||
.effect = EFFECT_HIT,
|
||||
.power = 40,
|
||||
.type = TYPE_NORMAL,
|
||||
.accuracy = 100,
|
||||
.pp = 35,
|
||||
.target = MOVE_TARGET_SELECTED,
|
||||
.priority = 0,
|
||||
.category = DAMAGE_CATEGORY_PHYSICAL,
|
||||
.makesContact = TRUE,
|
||||
.ignoresKingsRock = B_UPDATED_MOVE_FLAGS == GEN_4,
|
||||
.contestEffect = CONTEST_EFFECT_HIGHLY_APPEALING,
|
||||
.contestCategory = CONTEST_CATEGORY_TOUGH,
|
||||
.contestComboStarterId = COMBO_STARTER_POUND,
|
||||
- .contestComboMoves = {0}
|
||||
+ .contestComboMoves = {0},
|
||||
+ .battleAnimScript = Move_POUND,
|
||||
},
|
||||
```
|
||||
|
||||
### Item Icons
|
||||
|
||||
* Filepath [`migration_scripts/1.9/convert_item_icons.py`](1.9/convert_item_icons.py)
|
||||
* Introduced in [Get rid of gItemIconTable #4579](https://github.com/rh-hideout/pokeemerald-expansion/pull/4579)
|
||||
|
||||
Moves all information from `gItemIconTable` to `gItemsInfo`.
|
||||
|
||||
#### [src/data/item_icon_table.h](..src/data/item_icon_table.h)
|
||||
```diff
|
||||
- [ITEM_POKE_BALL] = {gItemIcon_PokeBall, gItemIconPalette_PokeBall},
|
||||
```
|
||||
|
||||
#### [src/data/items.h](..src/data/items.h)
|
||||
```diff
|
||||
[ITEM_POKE_BALL] =
|
||||
{
|
||||
.name = _("Poké Ball"),
|
||||
.price = 200,
|
||||
.description = COMPOUND_STRING(
|
||||
"A tool used for\n"
|
||||
"catching wild\n"
|
||||
"Pokémon."),
|
||||
.pocket = POCKET_POKE_BALLS,
|
||||
.type = ITEM_USE_BAG_MENU,
|
||||
.battleUsage = EFFECT_ITEM_THROW_BALL,
|
||||
.secondaryId = ITEM_POKE_BALL - FIRST_BALL,
|
||||
+ .iconSprite = gItemIcon_PokeBall,
|
||||
+ .iconPalette = gItemIconPalette_PokeBall,
|
||||
},
|
||||
```
|
||||
|
||||
### Partner & Trainer Parties
|
||||
|
||||
* Filepaths [`migration_scripts/1.9/convert_trainer_parties.py`](1.9/convert_trainer_parties.py) and [`migration_scripts/1.9/convert_partner_parties.py`](1.9/convert_trainer_parties.py)
|
||||
* Introduced in [Competitive-formatted parties #3545](https://github.com/rh-hideout/pokeemerald-expansion/pull/3545) and [Make trainerproc compatible with partners #4421](https://github.com/rh-hideout/pokeemerald-expansion/pull/4421)
|
||||
|
||||
Converts trainer data (for `convert_trainer_parties.py`) and partner data (for `convert_partner_data.py`) to the new `.party` format. Not necessary if `COMPETITIVE_PARTY_SYNTAX` is turned off.
|
||||
|
||||
#### [src/data/trainer_parties.h](..src/data/trainer_parties.h)
|
||||
```diff
|
||||
-static const struct TrainerMon sParty_Sawyer1[] = {
|
||||
- {
|
||||
- .lvl = 21,
|
||||
- .species = SPECIES_GEODUDE,
|
||||
- }
|
||||
-};
|
||||
```
|
||||
|
||||
#### [src/data/trainers.party](..src/data/trainers.party)
|
||||
```diff
|
||||
+=== TRAINER_SAWYER_1 ===
|
||||
+Name: SAWYER
|
||||
+Class: Hiker
|
||||
+Pic: Hiker
|
||||
+Gender: Male
|
||||
+Music: Hiker
|
||||
+Double Battle: No
|
||||
+AI: Check Bad Move / Try To Faint / Check Viability
|
||||
+
|
||||
+Geodude
|
||||
+Level: 21
|
||||
+IVs: 0 HP / 0 Atk / 0 Def / 0 SpA / 0 SpD / 0 Spe
|
||||
```
|
||||
|
||||
#### [src/data/partner_parties.h](..src/data/partner_parties.h)
|
||||
```diff
|
||||
-static const struct TrainerMon sParty_StevenPartner[] = {
|
||||
- {
|
||||
- .species = SPECIES_METANG,
|
||||
- .lvl = 42,
|
||||
- .nature = NATURE_BRAVE,
|
||||
- .iv = TRAINER_PARTY_IVS(31, 31, 31, 31, 31, 31),
|
||||
- .ev = TRAINER_PARTY_EVS(0, 252, 252, 0, 6, 0),
|
||||
- .moves = {MOVE_LIGHT_SCREEN, MOVE_PSYCHIC, MOVE_REFLECT, MOVE_METAL_CLAW},
|
||||
- },
|
||||
- {
|
||||
- .species = SPECIES_SKARMORY,
|
||||
- .lvl = 43,
|
||||
- .nature = NATURE_IMPISH,
|
||||
- .iv = TRAINER_PARTY_IVS(31, 31, 31, 31, 31, 31),
|
||||
- .ev = TRAINER_PARTY_EVS(252, 0, 0, 0, 6, 252),
|
||||
- .moves = {MOVE_TOXIC, MOVE_AERIAL_ACE, MOVE_PROTECT, MOVE_STEEL_WING},
|
||||
- },
|
||||
- {
|
||||
- .species = SPECIES_AGGRON,
|
||||
- .lvl = 44,
|
||||
- .nature = NATURE_ADAMANT,
|
||||
- .iv = TRAINER_PARTY_IVS(31, 31, 31, 31, 31, 31),
|
||||
- .ev = TRAINER_PARTY_EVS(0, 252, 0, 0, 252, 6),
|
||||
- .moves = {MOVE_THUNDER, MOVE_PROTECT, MOVE_SOLAR_BEAM, MOVE_DRAGON_CLAW},
|
||||
- }
|
||||
-};
|
||||
```
|
||||
|
||||
#### [src/data/battle_partners.party](..src/data/battle_partners.party)
|
||||
```diff
|
||||
+=== PARTNER_STEVEN ===
|
||||
+Name: STEVEN
|
||||
+Class: Rival
|
||||
+Pic: Steven
|
||||
+Gender: Male
|
||||
+Music: Male
|
||||
+
|
||||
+Metang
|
||||
+Brave Nature
|
||||
+Level: 42
|
||||
+IVs: 31 HP / 31 Atk / 31 Def / 31 SpA / 31 SpD / 31 Spe
|
||||
+EVs: 252 Atk / 252 Def / 6 SpA
|
||||
+- Light Screen
|
||||
+- Psychic
|
||||
+- Reflect
|
||||
+- Metal Claw
|
||||
+
|
||||
+Skarmory
|
||||
+Impish Nature
|
||||
+Level: 43
|
||||
+IVs: 31 HP / 31 Atk / 31 Def / 31 SpA / 31 SpD / 31 Spe
|
||||
+EVs: 252 HP / 6 SpA / 252 SpD
|
||||
+- Toxic
|
||||
+- Aerial Ace
|
||||
+- Protect
|
||||
+- Steel Wing
|
||||
+
|
||||
+Aggron
|
||||
+Adamant Nature
|
||||
+Level: 44
|
||||
+IVs: 31 HP / 31 Atk / 31 Def / 31 SpA / 31 SpD / 31 Spe
|
||||
+EVs: 252 Atk / 252 SpA / 6 SpD
|
||||
+- Thunder
|
||||
+- Protect
|
||||
+- Solar Beam
|
||||
+- Dragon Claw
|
||||
```
|
||||
|
||||
### Egg Move Refactor
|
||||
|
||||
* Filepaths [`migration_scripts/1.9/egg_move_refactor.py`](1.9/egg_move_refactor.py)
|
||||
* Introduced in [Egg Move Refactor #4534](https://github.com/rh-hideout/pokeemerald-expansion/pull/4534)
|
||||
|
||||
Updates egg moves to the refactored format. Only necessary if new species have been added or if egg moves of an existing species was altered.
|
||||
|
||||
#### [src/data/pokemon/egg_moves.h](..src/data/pokemon/egg_moves.h)
|
||||
```diff
|
||||
- egg_moves(BULBASAUR,
|
||||
- MOVE_SKULL_BASH,
|
||||
- MOVE_CHARM,
|
||||
- MOVE_PETAL_DANCE,
|
||||
- MOVE_MAGICAL_LEAF,
|
||||
- MOVE_GRASS_WHISTLE,
|
||||
- MOVE_CURSE,
|
||||
- MOVE_INGRAIN,
|
||||
- MOVE_NATURE_POWER,
|
||||
- MOVE_AMNESIA,
|
||||
- MOVE_LEAF_STORM,
|
||||
- MOVE_POWER_WHIP,
|
||||
- MOVE_SLUDGE,
|
||||
- MOVE_ENDURE,
|
||||
- MOVE_GIGA_DRAIN,
|
||||
- MOVE_GRASSY_TERRAIN),
|
||||
+static const u16 sBulbasaurEggMoveLearnset[] = {
|
||||
+ MOVE_SKULL_BASH,
|
||||
+ MOVE_CHARM,
|
||||
+ MOVE_PETAL_DANCE,
|
||||
+ MOVE_MAGICAL_LEAF,
|
||||
+ MOVE_GRASS_WHISTLE,
|
||||
+ MOVE_CURSE,
|
||||
+ MOVE_INGRAIN,
|
||||
+ MOVE_NATURE_POWER,
|
||||
+ MOVE_AMNESIA,
|
||||
+ MOVE_LEAF_STORM,
|
||||
+ MOVE_POWER_WHIP,
|
||||
+ MOVE_SLUDGE,
|
||||
+ MOVE_ENDURE,
|
||||
+ MOVE_GIGA_DRAIN,
|
||||
+ MOVE_GRASSY_TERRAIN,
|
||||
+ MOVE_UNAVAILABLE,
|
||||
};
|
||||
```
|
||||
|
||||
#### [src/data/pokemon/species_info/gen_1_families.h](..src/data/pokemon/species_info/gen_1_families.h)
|
||||
```diff
|
||||
[SPECIES_BULBASAUR] =
|
||||
{
|
||||
.baseHP = 45,
|
||||
.baseAttack = 49,
|
||||
.baseDefense = 49,
|
||||
.baseSpeed = 45,
|
||||
.baseSpAttack = 65,
|
||||
.baseSpDefense = 65,
|
||||
.types = MON_TYPES(TYPE_GRASS, TYPE_POISON),
|
||||
.catchRate = 45,
|
||||
.expYield = 64,
|
||||
.evYield_SpAttack = 1,
|
||||
.genderRatio = PERCENT_FEMALE(12.5),
|
||||
.eggCycles = 20,
|
||||
.friendship = STANDARD_FRIENDSHIP,
|
||||
.growthRate = GROWTH_MEDIUM_SLOW,
|
||||
.eggGroups = MON_EGG_GROUPS(EGG_GROUP_MONSTER, EGG_GROUP_GRASS),
|
||||
.abilities = { ABILITY_OVERGROW, ABILITY_NONE, ABILITY_CHLOROPHYLL },
|
||||
.bodyColor = BODY_COLOR_GREEN,
|
||||
.speciesName = _("Bulbasaur"),
|
||||
.cryId = CRY_BULBASAUR,
|
||||
.natDexNum = NATIONAL_DEX_BULBASAUR,
|
||||
.categoryName = _("Seed"),
|
||||
.height = 7,
|
||||
.weight = 69,
|
||||
.description = COMPOUND_STRING(
|
||||
"Bulbasaur can be seen napping in bright\n"
|
||||
"sunlight. There is a seed on its back.\n"
|
||||
"By soaking up the sun's rays, the seed\n"
|
||||
"grows progressively larger."),
|
||||
.pokemonScale = 356,
|
||||
.pokemonOffset = 17,
|
||||
.trainerScale = 256,
|
||||
.trainerOffset = 0,
|
||||
.frontPic = gMonFrontPic_Bulbasaur,
|
||||
.frontPicSize = MON_COORDS_SIZE(40, 40),
|
||||
.frontPicYOffset = 13,
|
||||
.frontAnimFrames = sAnims_Bulbasaur,
|
||||
.frontAnimId = ANIM_V_JUMPS_H_JUMPS,
|
||||
.backPic = gMonBackPic_Bulbasaur,
|
||||
.backPicSize = MON_COORDS_SIZE(56, 40),
|
||||
.backPicYOffset = 13,
|
||||
.backAnimId = BACK_ANIM_DIP_RIGHT_SIDE,
|
||||
.palette = gMonPalette_Bulbasaur,
|
||||
.shinyPalette = gMonShinyPalette_Bulbasaur,
|
||||
.iconSprite = gMonIcon_Bulbasaur,
|
||||
.iconPalIndex = 4,
|
||||
FOOTPRINT(Bulbasaur)
|
||||
.levelUpLearnset = sBulbasaurLevelUpLearnset,
|
||||
.teachableLearnset = sBulbasaurTeachableLearnset,
|
||||
+ .eggMoveLearnset = sBulbasaurEggMoveLearnset,
|
||||
.evolutions = EVOLUTION({EVO_LEVEL, 16, SPECIES_IVYSAUR}),
|
||||
},
|
||||
```
|
||||
|
||||
## 1.7.x to 1.8.x+
|
||||
|
||||
### Item Balls
|
||||
|
||||
* Filepath [`migration_scripts/item_ball_refactor.py`](item_ball_refactor.py)
|
||||
* Filepath [`migration_scripts/1.8/item_ball_refactor.py`](1.8/item_ball_refactor.py)
|
||||
* Introduced in [Item Ball refactor / Pluralize item names for giveitem and finditem #3942](https://github.com/rh-hideout/pokeemerald-expansion/pull/3942)
|
||||
|
||||
Modifies all item ball scripts defined using to original Game Freak method to the new refactored method.
|
||||
|
|
Loading…
Reference in a new issue