diff options
-rw-r--r-- | Add-a-new-Fairy-type.md | 58 |
1 files changed, 29 insertions, 29 deletions
diff --git a/Add-a-new-Fairy-type.md b/Add-a-new-Fairy-type.md index 74c2a5c..7d26853 100644 --- a/Add-a-new-Fairy-type.md +++ b/Add-a-new-Fairy-type.md @@ -2,19 +2,19 @@ This tutorial is for how to add a new type for Pokémon or moves. As an example, In short, we need to update all of these files: -- [constants/type_constants.asm](../../blob/master/constants/type_constants.asm) -- `TypeNames` in [data/types/names.asm](../../blob/master/data/types/names.asm) -- `TypeMatchups` in [data/types/type_matchups.asm](../../blob/master/data/types/type_matchups.asm) -- `PokedexTypeSearchConversionTable` in [data/types/search_types.asm](../../blob/master/data/types/search_types.asm) -- `PokedexTypeSearchStrings` in [data/types/search_strings.asm](../../blob/master/data/types/search_strings.asm) -- `TypeBoostItems` in [data/types/type_boost_items.asm](../../blob/master/data/types/type_boost_items.asm) +- [constants/type_constants.asm](../blob/master/constants/type_constants.asm) +- `TypeNames` in [data/types/names.asm](../blob/master/data/types/names.asm) +- `TypeMatchups` in [data/types/type_matchups.asm](../blob/master/data/types/type_matchups.asm) +- `PokedexTypeSearchConversionTable` in [data/types/search_types.asm](../blob/master/data/types/search_types.asm) +- `PokedexTypeSearchStrings` in [data/types/search_strings.asm](../blob/master/data/types/search_strings.asm) +- `TypeBoostItems` in [data/types/type_boost_items.asm](../blob/master/data/types/type_boost_items.asm) ## 1. Add a `FAIRY_T` constant Gen 2 was before the physical/special split, so the types after `SPECIAL` count as special, and the rest count as physical. Fairy moves are mostly special, so we'll add it there. -Edit [constants/type_constants.asm](../../blob/master/constants/type_constants.asm): +Edit [constants/type_constants.asm](../blob/master/constants/type_constants.asm): ```diff SPECIAL EQU const_value @@ -35,7 +35,7 @@ Note that we have to call it `FAIRY_T` because `FAIRY` is already used for an eg ## 2. Update `TypeNames` -Edit [data/types/names.asm](../../blob/master/data/types/names.asm): +Edit [data/types/names.asm](../blob/master/data/types/names.asm): ```diff TypeNames: ; 5097b @@ -54,7 +54,7 @@ Dark: db "DARK@" ## 3. Update `TypeMatchups` -Edit [data/types/type_matchups.asm](../../blob/master/data/types/type_matchups.asm): +Edit [data/types/type_matchups.asm](../blob/master/data/types/type_matchups.asm): ```diff TypeMatchups: ; 34bb1 @@ -87,7 +87,7 @@ TypeMatchups: ; 34bb1 These tables are used for the Pokédex's type search feature. -Edit [data/types/search_types.asm](../../blob/master/data/types/search_types.asm): +Edit [data/types/search_types.asm](../blob/master/data/types/search_types.asm): ```diff PokedexTypeSearchConversionTable: ; 410f6 @@ -99,7 +99,7 @@ PokedexTypeSearchConversionTable: ; 410f6 ; 41107 ``` -Edit [data/types/search_strings.asm](../../blob/master/data/types/search_strings.asm): +Edit [data/types/search_strings.asm](../blob/master/data/types/search_strings.asm): ```diff PokedexTypeSearchStrings: ; 40fe4 @@ -115,26 +115,26 @@ PokedexTypeSearchStrings: ; 40fe4 ## 5. Update Pokémon types -Edit the type entries in [data/pokemon/base_stats/](../../blob/master/data/pokemon/base_stats/): +Edit the type entries in [data/pokemon/base_stats/](../blob/master/data/pokemon/base_stats/): -- [azumarill.asm](../../blob/master/data/pokemon/base_stats/azumarill.asm): `db WATER, WATER` → `db WATER, FAIRY_T` -- [clefable.asm](../../blob/master/data/pokemon/base_stats/clefable.asm): `db NORMAL, NORMAL` → `db FAIRY_T, FAIRY_T` -- [clefairy.asm](../../blob/master/data/pokemon/base_stats/clefairy.asm): `db NORMAL, NORMAL` → `db FAIRY_T, FAIRY_T` -- [cleffa.asm](../../blob/master/data/pokemon/base_stats/cleffa.asm): `db NORMAL, NORMAL` → `db FAIRY_T, FAIRY_T` -- [granbull.asm](../../blob/master/data/pokemon/base_stats/granbull.asm): `db NORMAL, NORMAL` → `db FAIRY_T, FAIRY_T` -- [igglybuff.asm](../../blob/master/data/pokemon/base_stats/igglybuff.asm): `db NORMAL, NORMAL` → `db NORMAL, FAIRY_T` -- [jigglypuff.asm](../../blob/master/data/pokemon/base_stats/jigglypuff.asm): `db NORMAL, NORMAL` → `db NORMAL, FAIRY_T` -- [marill.asm](../../blob/master/data/pokemon/base_stats/marill.asm): `db WATER, WATER` → `db WATER, FAIRY_T` -- [mr__mime.asm](../../blob/master/data/pokemon/base_stats/mr__mime.asm): `db PSYCHIC, PSYCHIC` → `db PSYCHIC, FAIRY_T` -- [snubbull.asm](../../blob/master/data/pokemon/base_stats/snubbull.asm): `db NORMAL, NORMAL` → `db FAIRY_T, FAIRY_T` -- [togepi.asm](../../blob/master/data/pokemon/base_stats/togepi.asm): `db NORMAL, NORMAL` → `db FAIRY_T, FAIRY_T` -- [togetic.asm](../../blob/master/data/pokemon/base_stats/togetic.asm): `db NORMAL, FLYING` → `db FAIRY_T, FLYING` -- [wigglytuff.asm](../../blob/master/data/pokemon/base_stats/wigglytuff.asm): `db NORMAL, NORMAL` → `db NORMAL, FAIRY_T` +- [azumarill.asm](../blob/master/data/pokemon/base_stats/azumarill.asm): `db WATER, WATER` → `db WATER, FAIRY_T` +- [clefable.asm](../blob/master/data/pokemon/base_stats/clefable.asm): `db NORMAL, NORMAL` → `db FAIRY_T, FAIRY_T` +- [clefairy.asm](../blob/master/data/pokemon/base_stats/clefairy.asm): `db NORMAL, NORMAL` → `db FAIRY_T, FAIRY_T` +- [cleffa.asm](../blob/master/data/pokemon/base_stats/cleffa.asm): `db NORMAL, NORMAL` → `db FAIRY_T, FAIRY_T` +- [granbull.asm](../blob/master/data/pokemon/base_stats/granbull.asm): `db NORMAL, NORMAL` → `db FAIRY_T, FAIRY_T` +- [igglybuff.asm](../blob/master/data/pokemon/base_stats/igglybuff.asm): `db NORMAL, NORMAL` → `db NORMAL, FAIRY_T` +- [jigglypuff.asm](../blob/master/data/pokemon/base_stats/jigglypuff.asm): `db NORMAL, NORMAL` → `db NORMAL, FAIRY_T` +- [marill.asm](../blob/master/data/pokemon/base_stats/marill.asm): `db WATER, WATER` → `db WATER, FAIRY_T` +- [mr__mime.asm](../blob/master/data/pokemon/base_stats/mr__mime.asm): `db PSYCHIC, PSYCHIC` → `db PSYCHIC, FAIRY_T` +- [snubbull.asm](../blob/master/data/pokemon/base_stats/snubbull.asm): `db NORMAL, NORMAL` → `db FAIRY_T, FAIRY_T` +- [togepi.asm](../blob/master/data/pokemon/base_stats/togepi.asm): `db NORMAL, NORMAL` → `db FAIRY_T, FAIRY_T` +- [togetic.asm](../blob/master/data/pokemon/base_stats/togetic.asm): `db NORMAL, FLYING` → `db FAIRY_T, FLYING` +- [wigglytuff.asm](../blob/master/data/pokemon/base_stats/wigglytuff.asm): `db NORMAL, NORMAL` → `db NORMAL, FAIRY_T` ## 6. Update move types -Edit the type columns in [data/moves/moves.asm](../../blob/master/data/moves/moves.asm): +Edit the type columns in [data/moves/moves.asm](../blob/master/data/moves/moves.asm): - `CHARM`: `NORMAL` → `FAIRY_T` - `SWEET_KISS`: `NORMAL` → `FAIRY_T` @@ -145,7 +145,7 @@ Edit the type columns in [data/moves/moves.asm](../../blob/master/data/moves/mov At this point we're technically done: all the canon aspects of the Fairy type are implemented. (If you want to add new Fairy-type Pokémon or moves, check out different tutorials.) But there's no held type-boosting item for it, and Gen 2 happens to have the unavailable `POLKADOT_BOW` item that boosts Normal moves like `PINK_BOW`, so let's change it to boost Fairy moves instead. -Edit [data/types/type_boost_items.asm](../../blob/master/data/types/type_boost_items.asm): +Edit [data/types/type_boost_items.asm](../blob/master/data/types/type_boost_items.asm): ```diff TypeBoostItems: ; 35703 @@ -158,7 +158,7 @@ TypeBoostItems: ; 35703 ; 35726 ``` -But we still need to define `HELD_FAIRY_BOOST` and apply it to `POLKADOT_BOW`. So edit [constants/item_data_constants.asm](../../blob/master/constants/item_data_constants.asm): +But we still need to define `HELD_FAIRY_BOOST` and apply it to `POLKADOT_BOW`. So edit [constants/item_data_constants.asm](../blob/master/constants/item_data_constants.asm): ```diff const_value set 50 @@ -168,7 +168,7 @@ const_value set 50 + const HELD_FAIRY_BOOST ``` -And [data/items/attributes.asm](../../blob/master/data/items/attributes.asm): +And [data/items/attributes.asm](../blob/master/data/items/attributes.asm): ```diff ItemAttributes: ; 67c1 |