summaryrefslogtreecommitdiff
path: root/Move-Tutor-and-Tutor-Moves.md
diff options
context:
space:
mode:
Diffstat (limited to 'Move-Tutor-and-Tutor-Moves.md')
-rw-r--r--Move-Tutor-and-Tutor-Moves.md48
1 files changed, 24 insertions, 24 deletions
diff --git a/Move-Tutor-and-Tutor-Moves.md b/Move-Tutor-and-Tutor-Moves.md
index 506cd86..eb64358 100644
--- a/Move-Tutor-and-Tutor-Moves.md
+++ b/Move-Tutor-and-Tutor-Moves.md
@@ -1,4 +1,4 @@
-Pokémon Crystal was the first time in the series' history that the player was introduced to move tutors. They teach the player's Pokémon some interesting moves, usually for a price.
+Pokémon Crystal was the first time in the series' history that the player was introduced to move tutors. They teach the player's Pokémon some interesting moves, usually for a price.
In this tutorial we will be expanding the existing move tutor code in pokecrystal, and create a new move tutor script to be used in a map. For this example, we will be creating a move tutor for Softboiled.
@@ -142,7 +142,7 @@ In this case, now that we've edited `.GetMoveTutorMove` to not contain `MOVETUTO
Now he functions just the same as before, but now the code that let him teach moves can now be expanded to teach others, as well.
## 3. Create a new tutor move
-There are three parts to creating a new tutor move. Defining the constant, defining the move, and lastly, adding the move to a Pokémon's existing learnset.
+There are three parts to creating a new tutor move. Defining the constant, defining the move, and lastly, adding the move to a Pokémon's existing learnset.
Let's define the constant first. Open [constants/item_constants.asm](../blob/master/constants/item_constants.asm)
Even though tutor moves aren't items and therefore do not have item constants, they're technically still similar to TMs and HMs, in order to work with Pokémon movesets. So they must be defined as such below.
@@ -248,7 +248,7 @@ Open up Chansey's base stats at [data/pokemon/base_stats/chansey.asm](../blob/ma
What we want to edit is the tm/hm learnset at the bottom. The TMs and HMs all follow the numeric order of each TM move from `tmhm_moves` and `item_constants`. Move tutor moves go at the end, and as you can see, Chansey already has the Goldenrod tutor moves at the end of her list, after HMs. Simply add `SOFTBOILED` to the end of the list, like so:
-```diff
+```diff
; tm/hm learnset
- tmhm DYNAMICPUNCH, HEADBUTT, CURSE, ROLLOUT, TOXIC, ZAP_CANNON, ROCK_SMASH, PSYCH_UP, HIDDEN_POWER, SUNNY_DAY, SNORE, BLIZZARD, HYPER_BEAM, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, SOLARBEAM, IRON_TAIL, THUNDER, RETURN, PSYCHIC_M, SHADOW_BALL, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SANDSTORM, FIRE_BLAST, DEFENSE_CURL, DREAM_EATER, REST, ATTRACT, STRENGTH, FLASH, FLAMETHROWER, THUNDERBOLT, ICE_BEAM
@@ -287,7 +287,7 @@ CeladonCityGramps1Text:
...
-db 9 ; object events
+ def_object_events
object_event 26, 11, SPRITE_FISHER, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, PAL_NPC_GREEN, OBJECTTYPE_SCRIPT, 0, CeladonCityFisherScript, -1
object_event 27, 11, SPRITE_POLIWAG, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, PAL_NPC_BLUE, OBJECTTYPE_SCRIPT, 0, CeladonCityPoliwrath, -1
object_event 20, 24, SPRITE_TEACHER, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 2, 0, -1, -1, PAL_NPC_RED, OBJECTTYPE_SCRIPT, 0, CeladonCityTeacher1Script, -1
@@ -299,7 +299,7 @@ db 9 ; object events
object_event 7, 22, SPRITE_LASS, SPRITEMOVEDATA_WALK_UP_DOWN, 0, 2, -1, -1, PAL_NPC_RED, OBJECTTYPE_SCRIPT, 0, CeladonCityLassScript, -1
```
-We'll be borrowing the old man at the house behind the small body of water in Celadon, `CeladonCityGramps1`.
+We'll be borrowing the old man at the house behind the small body of water in Celadon, `CeladonCityGramps1`.
You can either delete the `CeladonCityGramps1Script` and `CeladonCityGramps1Text` itself, or comment it out as we won't be needing them. The bottom part of this script block handles all the `object_event`s, the sprites that usually make up NPCs or important items. Now let's turn him into a tutor!
```diff
@@ -353,25 +353,25 @@ You can either delete the `CeladonCityGramps1Script` and `CeladonCityGramps1Text
+ line "luck that brought"
+ cont "us together."
+ done
-+
-+CeladonCityTutorSoftboiledText2:
++
++CeladonCityTutorSoftboiledText2:
+ text "Would you like me"
+ line "to teach your"
+ para "#MON to use"
+ line "SOFTBOILED"
-+
++
+CeladonCityTutorSoftboiledClear:
+ text ""
+ done
-+
++
+CeladonCityTutorSoftboiledRefused:
+ text "OK then."
+ done
-+
++
+CeladonCityTutorSoftboiledTaught:
+ text "Now if your"
+ line "#MON is in a"
-+ para "pinch, they can"
++ para "pinch, they can"
+ line "eat an egg"
+ cont "and restore HP."
+ para "Or if they are"
@@ -381,7 +381,7 @@ You can either delete the `CeladonCityGramps1Script` and `CeladonCityGramps1Text
...
- db 9 ; object events
+ def_object_events
object_event 26, 11, SPRITE_FISHER, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, PAL_NPC_GREEN, OBJECTTYPE_SCRIPT, 0, CeladonCityFisherScript, -1
object_event 27, 11, SPRITE_POLIWAG, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, PAL_NPC_BLUE, OBJECTTYPE_SCRIPT, 0, CeladonCityPoliwrath, -1
object_event 20, 24, SPRITE_TEACHER, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 2, 0, -1, -1, PAL_NPC_RED, OBJECTTYPE_SCRIPT, 0, CeladonCityTeacher1Script, -1
@@ -418,10 +418,10 @@ CeladonCityTutorSoftboiledScript:
end
+.NoPokeDoll:
-+ writetext CeladonCityTutorNoDoll
-+ waitbutton
-+ closetext
-+ end
++ writetext CeladonCityTutorNoDoll
++ waitbutton
++ closetext
++ end
.TeachMove
writetext CeladonCityTutorPayment
@@ -442,7 +442,7 @@ CeladonCityTutorSoftboiledScript:
CeladonCityTutorSoftboiledTaught:
text "Now if your"
line "#MON is in a"
- para "pinch, they can"
+ para "pinch, they can"
line "eat an egg"
cont "and restore HP."
para "Or if they are"
@@ -456,7 +456,7 @@ CeladonCityTutorSoftboiledTaught:
+
+ para "You can get one"
+ line "from the DEPT."
-+
++
+ para "STORE in CEL-"
+ line "ADON CITY."
+ done
@@ -485,15 +485,15 @@ CeladonCityTutorSoftboiledScript:
if_equal $0, .TeachMove
.NoPokeDoll:
- writetext CeladonCityTutorNoDoll
- waitbutton
- closetext
- end
+ writetext CeladonCityTutorNoDoll
+ waitbutton
+ closetext
+ end
.TeachMove
writetext CeladonCityTutorPayment
- takeitem POKE_DOLL
-+ takemoney YOUR_MONEY, 1000
++ takemoney YOUR_MONEY, 1000
waitbutton
writetext CeladonCityTutorSoftboiledTaught
waitbutton
@@ -501,4 +501,4 @@ CeladonCityTutorSoftboiledScript:
end
```
-For other ideas, look at the Goldenrod move tutor script. Perhaps you want move tutors that appear on different days of the week? Or teach different moves based on what day it is? All of this is possible, and left up to you intrepid assembly hackers to challenge yourself with. \ No newline at end of file
+For other ideas, look at the Goldenrod move tutor script. Perhaps you want move tutors that appear on different days of the week? Or teach different moves based on what day it is? All of this is possible, and left up to you intrepid assembly hackers to challenge yourself with.