Skip to content

Commit

Permalink
Add followers to readme & update migration script readme (#4719)
Browse files Browse the repository at this point in the history
* Add followers to readme & update migration script readme

* Apply suggestions from code review

Co-authored-by: Eduardo Quezada <[email protected]>

* Update README.md

Co-authored-by: Eduardo Quezada <[email protected]>

---------

Co-authored-by: Eduardo Quezada <[email protected]>
  • Loading branch information
Bassoonian and AsparagusEduardo committed Jun 7, 2024
1 parent fa81861 commit 0a049ea
Show file tree
Hide file tree
Showing 8 changed files with 293 additions and 1 deletion.
8 changes: 8 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -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).
Expand Down
File renamed without changes.
File renamed without changes.
File renamed without changes.
286 changes: 285 additions & 1 deletion migration_scripts/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -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.
Expand Down

0 comments on commit 0a049ea

Please sign in to comment.