diff options
author | Rangi <remy.oukaour+rangi42@gmail.com> | 2018-08-20 00:33:40 -0400 |
---|---|---|
committer | Rangi <remy.oukaour+rangi42@gmail.com> | 2018-08-20 00:33:40 -0400 |
commit | 3757886bb87f0fc63b65efdccf7a313c87cbe545 (patch) | |
tree | 4f64c2457bd84d4fe00b1aceffc23e5ca11735d0 | |
parent | 74724e0f5c9847065fcb6e1f4f5b8fc3f76f353a (diff) |
Dive
-rw-r--r-- | Dive.md | 39 |
1 files changed, 28 insertions, 11 deletions
@@ -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 |