summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Add-a-new-Fairy-type.md58
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