diff --git a/constants/event_flags.asm b/constants/event_flags.asm index caa497f..174c820 100644 --- a/constants/event_flags.asm +++ b/constants/event_flags.asm @@ -895,6 +895,8 @@ const EVENT_BEAT_LASS_DANA2 const EVENT_BEAT_LASS_DANA3 const EVENT_BEAT_LASS_IKUE + const EVENT_BEAT_LASS_CASEY + const EVENT_BEAT_LASS_DUPLICA ; Hiker const EVENT_BEAT_HIKER_ANTHONY2 const EVENT_BEAT_HIKER_RUSSELL @@ -961,6 +963,7 @@ const EVENT_BEAT_COOLTRAINERM_KEVIN const EVENT_BEAT_COOLTRAINERM_STEVE const EVENT_BEAT_COOLTRAINERM_ALLEN + const EVENT_BEAT_COOLTRAINERM_RITCHIE ; CooltrainerF const EVENT_BEAT_COOLTRAINERF_GWEN const EVENT_BEAT_COOLTRAINERF_LOIS diff --git a/constants/trainer_constants.asm b/constants/trainer_constants.asm index fa8957a..6c4cac3 100644 --- a/constants/trainer_constants.asm +++ b/constants/trainer_constants.asm @@ -257,6 +257,8 @@ DEF KRIS EQU __trainer_class__ const DANA4 const DANA5 const IKUE ; Name taken from LGPE, referencing Pikachu's voice actor, Ikue Otani. Technically exists in Picnicker Brooke, but it's more convenient to put her in Viridian Forest, so... + const CASEY ; anime reference + const DUPLICA ; anime reference trainerclass JANINE ; 1a const JANINE1 @@ -282,6 +284,7 @@ DEF KRIS EQU __trainer_class__ const STEVE const ALLEN const DARIN + const RITCHIE ; anime reference trainerclass COOLTRAINERF ; 1c const GWEN diff --git a/data/trainers/parties.asm b/data/trainers/parties.asm index 5a5741f..b58d013 100644 --- a/data/trainers/parties.asm +++ b/data/trainers/parties.asm @@ -1634,6 +1634,22 @@ CooltrainerMGroup: dw DRAGONAIR dw WRAP, SURF, DRAGON_RAGE, SLAM db -1 ; end + + next_list_item ; COOLTRAINERM (11) + db "RITCHIE@", TRAINERTYPE_MOVES ; anime reference + db 43 + dw BUTTERFREE + dw SLEEP_POWDER, PSYCHIC_M, WHIRLWIND, STUN_SPORE + db 41 + dw PUPITAR + dw HEADBUTT, SANDSTORM, ROCK_SLIDE, EARTHQUAKE + db 41 + dw CHARIZARD + dw FLAMETHROWER, WING_ATTACK, SLASH, EARTHQUAKE + db 45 + dw GOROCHU + dw THUNDERBOLT, SUBMISSION, BODY_SLAM, THUNDER_WAVE + db -1 ; end end_list_items diff --git a/data/trainers/parties_new_classes.asm b/data/trainers/parties_new_classes.asm index fd1ce48..9d902a8 100644 --- a/data/trainers/parties_new_classes.asm +++ b/data/trainers/parties_new_classes.asm @@ -349,7 +349,7 @@ LassGroup: dw DISABLE, SURF, PSYCHIC_M, SCREECH db -1 ; end - next_list_item ; LASS (2) + next_list_item ; LASS (18) db "IKUE@", TRAINERTYPE_ITEM_MOVES db 43 dw NIDOQUEEN ; From the Yellow Lass @@ -364,6 +364,33 @@ LassGroup: db LIGHT_BALL dw THUNDERBOLT, QUICK_ATTACK, DOUBLE_EDGE, AGILITY ; Moves from Johto anime db -1 ; end + + next_list_item ; LASS (19) + db "CASEY@", TRAINERTYPE_MOVES ; anime reference + db 45 ; She's from New Bark Town, and is last seen when going to Cerulean City to watch a baseball game. + dw RATICATE ; So she's on Route 4, here. + dw SUPER_FANG, HYPER_FANG, BUBBLEBEAM, TAIL_WHIP ; BubbleBeam is a soft-reference to Misty's old TM, also BubbleRat is cool + db 45 + dw PIDGEOT + dw WING_ATTACK, DOUBLE_EDGE, MIRROR_MOVE, SING + db 45 + dw BEEDRILL + dw TWINEEDLE, SLUDGE_BOMB, SWORDS_DANCE, AGILITY + db 45 + dw ELECTIVIRE + dw MEDITATE, CROSS_CHOP, THUNDERBOLT, ICE_PUNCH + db 45 + dw MEGANIUM + dw SWORDS_DANCE, EARTHQUAKE, RAZOR_LEAF, BODY_SLAM + db -1 + + next_list_item ; COOLTRAINERM (11) + db "DUPLICA@", TRAINERTYPE_NORMAL ; anime reference + db 40 + dw DITTO ; Mini-Dit! + db 43 + dw MIMMEO + db -1 ; end end_list_items diff --git a/maps/Route26.asm b/maps/Route26.asm index 77677df..7777631 100644 --- a/maps/Route26.asm +++ b/maps/Route26.asm @@ -7,6 +7,7 @@ const ROUTE26_FISHER const ROUTE26_FRUIT_TREE const ROUTE26_POKE_BALL + const ROUTE26_RITCHIE Route26_MapScripts: def_scene_scripts @@ -24,6 +25,42 @@ TrainerCooltrainermJake: closetext end +; Anime reference - that one trainer Ash lost to because his Charizard decided to be funny. +; He isn't on Victory Road as this would mean Silver missed someone. +; This also means you have a pretty hefty challenge after the Heal House. For a challenge, try fighting him without using it! +TrainerCoolTrainerRitchie: + trainer COOLTRAINERM, RITCHIE, EVENT_BEAT_COOLTRAINERM_RITCHIE, CoolTrainerRitchieSeenText, CoolTrainerRitchieBeatenText, 0, .Script + +.Script: + endifjustbattled + opentext + writetext CoolTrainerRitchieAfterBattleText + waitbutton + closetext + end + +CoolTrainerRitchieSeenText: ; if you can improve this go ahead + text "I want to be a" + line "#MON MASTER!" + + para "That's why you're" + line "here too, right?" + done + +CoolTrainerRitchieBeatenText: + text "Tough match!" + done + +CoolTrainerRitchieAfterBattleText: ; A reference to Zippo being unusually obedient compared to Ash and Trevor's Charizard. + text "They say CHARIZARD" + line "are hard to train." + + para "I think they just" + line "need to fight" + cont "stronger foes" + cont "regularly, though!" + done + TrainerCooltrainermGaven3: trainer COOLTRAINERM, GAVEN3, EVENT_BEAT_COOLTRAINERM_GAVEN, CooltrainermGaven3SeenText, CooltrainermGaven3BeatenText, 0, .Script @@ -432,3 +469,4 @@ Route26_MapEvents: object_event 10, 92, SPRITE_FISHER, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_GREEN, OBJECTTYPE_TRAINER, 3, TrainerFisherScott, -1 object_event 14, 54, SPRITE_FRUIT_TREE, SPRITEMOVEDATA_STILL, 0, 0, -1, -1, 0, OBJECTTYPE_SCRIPT, 0, Route26FruitTree, -1 object_event 9, 15, SPRITE_POKE_BALL, SPRITEMOVEDATA_STILL, 0, 0, -1, -1, 0, OBJECTTYPE_ITEMBALL, 0, Route26MaxElixer, EVENT_ROUTE_26_MAX_ELIXER + object_event 11, 8, SPRITE_COOLTRAINER_M, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_GREEN, OBJECTTYPE_TRAINER, 1, TrainerCoolTrainerRitchie, -1 diff --git a/maps/Route4.asm b/maps/Route4.asm index 4f86bf5..b14a0a2 100644 --- a/maps/Route4.asm +++ b/maps/Route4.asm @@ -3,6 +3,7 @@ const ROUTE4_LASS1 const ROUTE4_LASS2 const ROUTE4_POKE_BALL + const ROUTE4_CASEY Route4_MapScripts: def_scene_scripts @@ -42,6 +43,38 @@ TrainerPicnickerSharon: closetext end +; A reference to "Those Darn Electabuzz!", a popular episode of the Johto anime. +; She's actually a super in-depth character, being based on Mighty Casey and such. +; Not much lore added, just something nice. +TrainerLassCasey: + trainer LASS, CASEY, EVENT_BEAT_LASS_CASEY, LassCaseySeenText, LassCaseyBeatenText, 0, .Script + +.Script: + endifjustbattled + opentext + writetext LassCaseyAfterBattleText + waitbutton + closetext + end + +LassCaseySeenText: + text "I'm goin' ta watch" ; In the Japanese version, she speaks with the Kansai dialect, like Bill. Let's make her more casual. + line "a baseball game!" + done + +LassCaseyBeatenText: + text "ELECTIVIRE! Bahhh!" + done + +LassCaseyAfterBattleText: + text "METRONOME safe at" + line "home, HYPER BEAM" + cont "too!" + + para "Huh? It's my" + line "favourite song!" + done + MtMoonSquareSign: jumptext MtMoonSquareSignText @@ -135,3 +168,4 @@ Route4_MapEvents: object_event 9, 8, SPRITE_LASS, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, PAL_NPC_GREEN, OBJECTTYPE_TRAINER, 4, TrainerPicnickerHope, -1 object_event 21, 6, SPRITE_LASS, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, PAL_NPC_GREEN, OBJECTTYPE_TRAINER, 4, TrainerPicnickerSharon, -1 object_event 26, 3, SPRITE_POKE_BALL, SPRITEMOVEDATA_STILL, 0, 0, -1, -1, 0, OBJECTTYPE_ITEMBALL, 0, Route4HPUp, EVENT_ROUTE_4_HP_UP + object_event 23, 11, SPRITE_LASS, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, PAL_NPC_GREEN, OBJECTTYPE_TRAINER, 4, TrainerLassCasey, -1 diff --git a/maps/Route5.asm b/maps/Route5.asm index ae2912b..d2d6557 100644 --- a/maps/Route5.asm +++ b/maps/Route5.asm @@ -1,5 +1,6 @@ object_const_def const ROUTE5_POKEFAN_M + const ROUTE5_DUPLICA Route5_MapScripts: def_scene_scripts @@ -37,6 +38,42 @@ HouseForSaleSignText: line "Nobody lives here." done +; Duplica is an anime character based on the Copycat. +; Adding her here to populate this route with a trainer. Not normally done, but making Kanto feel alive is very important. +; Plus, since she's a Ditto specialist, we can add some extra Mimmeo lore to substantiate its existence. +TrainerLassDuplica: + trainer LASS, DUPLICA, EVENT_BEAT_LASS_DUPLICA, LassDuplicaSeenText, LassDuplicaBeatenText, 0, .Script + +.Script: + endifjustbattled + opentext + writetext LassDuplicaAfterBattleText + waitbutton + closetext + end + +LassDuplicaSeenText: + text "You must know all" + line "#MON to use DITTO!" + done + +LassDuplicaBeatenText: + text "I've got a lot" + line "to learn!" + done + +LassDuplicaAfterBattleText: + text "MIMMEO is very" + line "strange." + + para "It learns moves" + line "that can help" + cont "its TRANSFORM!" + + para "It slicks around" ; explaining its ridiculous speed with some quasi-lore. + line "so quickly, too!" + done + Route5_MapEvents: db 0, 0 ; filler @@ -54,3 +91,4 @@ Route5_MapEvents: def_object_events object_event 17, 16, SPRITE_POKEFAN_M, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_RED, OBJECTTYPE_SCRIPT, 0, Route5PokefanMScript, EVENT_ROUTE_5_6_POKEFAN_M_BLOCKS_UNDERGROUND_PATH + object_event 18, 6, SPRITE_LASS, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, PAL_NPC_GREEN, OBJECTTYPE_TRAINER, 3, TrainerLassDuplica, -1 diff --git a/maps/VictoryRoad.asm b/maps/VictoryRoad.asm index 57fcd1a..020ecda 100644 --- a/maps/VictoryRoad.asm +++ b/maps/VictoryRoad.asm @@ -161,6 +161,8 @@ VictoryRoadRivalBattleExitMovement2: step DOWN step_end +; HGSS-like text to preserve the lore that Silver beat everyone on Victory Road. +; I've altered the text to be less formal too. For some reason, he's kind of...awkward...in the original. VictoryRoadRivalBeforeText: text "Hold it." @@ -169,22 +171,25 @@ VictoryRoadRivalBeforeText: cont "LEAGUE challenge?" para "…Don't make me" - line "laugh." + line "laugh. Didn't" + cont "you notice?" + + para "… … …" + + para "You still don't" + line "get it." - para "You're so much" - line "weaker than I am." + para "You didn't see" + cont "any TRAINERs on" + cont "the way, did you?" + + para "Haha! They were" + line "all spineless!" + cont "I crushed them" + cont "all!" - para "I'm not like I was" - line "before." - - para "I now have the" - line "best and strongest" - - para "#MON with me." - line "I'm invincible!" - - para "!" - line "I challenge you!" + para "Just like I'll do" + line "to you, !" done VictoryRoadRivalDefeatText: