summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRangi <remy.oukaour+rangi42@gmail.com>2018-08-20 00:33:40 -0400
committerRangi <remy.oukaour+rangi42@gmail.com>2018-08-20 00:33:40 -0400
commit3757886bb87f0fc63b65efdccf7a313c87cbe545 (patch)
tree4f64c2457bd84d4fe00b1aceffc23e5ca11735d0
parent74724e0f5c9847065fcb6e1f4f5b8fc3f76f353a (diff)
Dive
-rw-r--r--Dive.md39
1 files changed, 28 insertions, 11 deletions
diff --git a/Dive.md b/Dive.md
index 0f54e44..b1c76cb 100644
--- a/Dive.md
+++ b/Dive.md
@@ -14,13 +14,11 @@ TODO
## 1. Start to prepare the Dive move
-Refer to [this tutorial](Add-a-new-move).
+First, we have to add the move Rock Climb, following [this tutorial](Add-a-new-move).
-- constants/move_constants.asm
-- data/moves/names.asm
-- data/moves/descriptions.asm
-- data/moves/moves.asm
-- data/pokemon/evos_attacks.asm
+Replace `MOVE_OR_ANIM_FC` with `ROCK_CLIMB`; give it a name, description, and battle properties (`DIVE, EFFECT_FLY, 80, WATER, 100, 10, 0`); and add it to Pokémon learnsets (Seel and Dewgong learn it by level-up).
+
+We still have to implement the move animation, so let's do that next.
## 2. Create the Dive move animation
@@ -63,6 +61,10 @@ Refer to [this tutorial](Add-a-new-TM-or-HM).
- home/hm_moves.asm
- data/pokemon/base_stats/\*.asm
+We also have to add the item HM08, following [this tutorial](Add-a-new-TM-or-HM).
+
+Add an HM for `DIVE`; give it a name and attributes (`0, HELD_NONE, 0, CANT_SELECT | CANT_TOSS, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE`); associate it with the move `DIVE`; make it unforgettable; and add it to Pokémon base learnsets (50 Pokémon are compatible with it).
+
## 6. Define collision types for Dive water
@@ -73,11 +75,26 @@ Refer to [this tutorial](Add-a-new-TM-or-HM).
## 7. Start to prepare the Dive field move effect
-Refer to [this tutorial](Add-a-new-field-move-effect).
-
-- constants/menu_constants.asm
-- data/mon_menu.asm
-- engine/menus/start_menu.asm
+Now we can start to add the field move effect, following [this tutorial](Add-a-new-field-move-effect).
+
+Define `MONMENUITEM_DIVE`; associate it with the move `DIVE`; and implement `MonMenu_Dive` for its menu action (in [engine/pokemon/mon_menu.asm](../blob/master/engine/pokemon/mon_menu.asm), or [engine/menus/start_menu.asm](../blob/master/engine/menus/start_menu.asm) in older versions of pokecrystal) like this:
+
+```diff
++MonMenu_Dive:
++ farcall DiveFunction
++ ld a, [wFieldMoveSucceeded]
++ cp $1
++ jr nz, .Fail
++ ld b, $4
++ ld a, $2
++ ret
++
++.Fail:
++ ld a, $3
++ ret
+```
+
+We still have to implement `DiveFunction`; but first, let's define some more components for it.
## 8. Define a utility function to check for Dive water