From 075cf9236ad84842e5c71ef3c58d4aa070580da5 Mon Sep 17 00:00:00 2001 From: KDLPro <38602758+KDLPro@users.noreply.github.com> Date: Mon, 23 Nov 2020 17:02:01 +0800 Subject: Updated Move Tutor and Tutor Moves (markdown) --- Move-Tutor-and-Tutor-Moves.md | 113 +++++++++++++++++++++++++++++++++++++++++- 1 file changed, 111 insertions(+), 2 deletions(-) diff --git a/Move-Tutor-and-Tutor-Moves.md b/Move-Tutor-and-Tutor-Moves.md index 4ca64fc..d3ad038 100644 --- a/Move-Tutor-and-Tutor-Moves.md +++ b/Move-Tutor-and-Tutor-Moves.md @@ -508,7 +508,18 @@ Next, copy the script in Goldenrod City [maps/GoldenrodCity.asm](../blob/master/ + writetext NewBarkTownStarterTutorFarewellKidText + waitbutton + closetext -+ +``` + +We need to change `TEXTBOX_Y` in `.MoveMenuHeader` to accommodate 4 moves (and the CANCEL option on-screen). Also, we need to change the menu data to reflect the moves we want the tutor to teach. + +```diff +.TeachMove: + writetext NewBarkTownStarterTutorIfYouUnderstandYouveMadeItText + promptbutton + writetext NewBarkTownStarterTutorFarewellKidText + waitbutton + closetext + +.MoveMenuHeader: + db MENU_BACKUP_TILES ; flags + menu_coords 0, 2, 15, TEXTBOX_Y - 0 @@ -525,7 +536,105 @@ Next, copy the script in Goldenrod City [maps/GoldenrodCity.asm](../blob/master/ + db "CANCEL@" ``` -We need to change TEXTBOX_Y in .MoveMenuHeader to accommodate 4 moves (and the CANCEL option on-screen). +Finally, we add in the Tutor's quotes and add the Tutor NPC to the area. + +```diff +NewBarkTownElmsHouseSignText: + text "ELM'S HOUSE" + done + ++AskTeachAMoveText: ++ text "I can teach your" ++ line "starter amazing" ++ ++ para "moves if you'd" ++ line "like." ++ ++ para "Should I teach a" ++ line "new move?" ++ done ++ ++ ++NewBarkTownStarterTutorAwwButTheyreAmazingText: ++ text "Come back here" ++ line "if you want to" ++ ++ para "teach your" ++ line "starter a new" ++ cont "move!" ++ done ++ ++NewBarkTownStarterTutorWhichMoveShouldITeachText: ++ text "Great! You won't" ++ line "regret it!" ++ ++ para "Which move should" ++ line "I teach?" ++ done ++ ++ ++NewBarkTownStarterTutorIfYouUnderstandYouveMadeItText: ++ text "If you understand" ++ line "what's so amazing" ++ ++ para "about this move," ++ line "you've made it as" ++ cont "a trainer." ++ done ++ ++NewBarkTownStarterTutorFarewellKidText: ++ text "Farewell and" ++ line "good luck on" ++ cont "your journey!" ++ done ++ ++NewBarkTownStarterTutorBButText: ++ text "Your starter" ++ line "can't learn this" ++ cont "move…" ++ done ++ ++NewBarkTownStarterTutorMoveText: ++ text_start ++ done + +... + + def_object_events + object_event 6, 8, SPRITE_TEACHER, SPRITEMOVEDATA_SPINRANDOM_SLOW, 1, 0, -1, -1, 0, OBJECTTYPE_SCRIPT, 0, NewBarkTownTeacherScript, -1 + object_event 12, 9, SPRITE_FISHER, SPRITEMOVEDATA_WALK_UP_DOWN, 0, 1, -1, -1, PAL_NPC_GREEN, OBJECTTYPE_SCRIPT, 0, NewBarkTownFisherScript, -1 + object_event 3, 2, SPRITE_SILVER, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, OBJECTTYPE_SCRIPT, 0, NewBarkTownSilverScript, EVENT_RIVAL_NEW_BARK_TOWN ++ object_event 14, 14, SPRITE_TEACHER, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 1, 0, -1, -1, PAL_NPC_BLUE, OBJECTTYPE_SCRIPT, 0, StarterTutorScript, -1 +``` + +Finally, we need to update the learnset for the starters by editing the files [data/pokemon/base_stats/cyndaquil.asm](../blob/master/data/pokemon/base_stats/cyndaquil.asm), [data/pokemon/base_stats/chikorita.asm](../blob/master/data/pokemon/base_stats/chikorita.asm), and [data/pokemon/base_stats/totodile.asm](../blob/master/data/pokemon/base_stats/totodile.asm) for these Pokémon to learn the moves. + +```diff + dn EGG_GROUND, EGG_GROUND ; egg groups + + ; tmhm +- tmhm HEADBUTT, CURSE, ROLLOUT, TOXIC, HIDDEN_POWER, SUNNY_DAY, SNORE, PROTECT, ENDURE, FRUSTRATION, IRON_TAIL, RETURN, DIG, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, FIRE_BLAST, SWIFT, DEFENSE_CURL, DETECT, REST, ATTRACT, CUT, FLAMETHROWER ++ tmhm HEADBUTT, CURSE, ROLLOUT, TOXIC, HIDDEN_POWER, SUNNY_DAY, SNORE, PROTECT, ENDURE, FRUSTRATION, IRON_TAIL, RETURN, DIG, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, FIRE_BLAST, SWIFT, DEFENSE_CURL, DETECT, REST, ATTRACT, CUT, FLAMETHROWER, FIRE_SPIN + ; end +``` + +```diff + dn EGG_MONSTER, EGG_PLANT ; egg groups + + ; tm/hm ++ tmhm HEADBUTT, CURSE, TOXIC, HIDDEN_POWER, SUNNY_DAY, SWEET_SCENT, SNORE, PROTECT, GIGA_DRAIN, ENDURE, FRUSTRATION, SOLARBEAM, IRON_TAIL, RETURN, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, DETECT, REST, ATTRACT, CUT, FLASH, MEGA_DRAIN, ABSORB + ; end +``` + +```diff + dn EGG_GROUND, EGG_GROUND ; egg groups + + ; tmhm +- HEADBUTT, CURSE, ROLLOUT, TOXIC, HIDDEN_POWER, SUNNY_DAY, SNORE, PROTECT, ENDURE, FRUSTRATION, IRON_TAIL, RETURN, DIG, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, FIRE_BLAST, SWIFT, DEFENSE_CURL, DETECT, REST, ATTRACT, CUT, FLAMETHROWER ++ HEADBUTT, CURSE, ROLLOUT, TOXIC, HIDDEN_POWER, SUNNY_DAY, SNORE, PROTECT, ENDURE, FRUSTRATION, IRON_TAIL, RETURN, DIG, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, FIRE_BLAST, SWIFT, DEFENSE_CURL, DETECT, REST, ATTRACT, CUT, FLAMETHROWER, FIRE_SPIN + ; end +``` + ## 6. Other examples Now that new tutors can be added to the game, what else could you do? Like the tutors from Gen 3 onwards, you can charge a price, or demand a specific item. Adding a `checkitem` command is very simple, but effective! For this example, we will be using a `POKE_DOLL` to the Celadon City move tutor. -- cgit v1.2.3