diff --git a/constants/engine_flags.asm b/constants/engine_flags.asm index d89dd57206..0de1395ca3 100644 --- a/constants/engine_flags.asm +++ b/constants/engine_flags.asm @@ -270,4 +270,7 @@ const ENGINE_PLAYER_CAUGHT_MEWTWO const ENGINE_PLAYER_CAUGHT_CELEBI const ENGINE_PLAYER_CAUGHT_SUDOWOODO + const ENGINE_PLAYER_CAUGHT_GALARIAN_ARTICUNO + const ENGINE_PLAYER_CAUGHT_GALARIAN_ZAPDOS + const ENGINE_PLAYER_CAUGHT_GALARIAN_MOLTRES DEF NUM_ENGINE_FLAGS EQU const_value diff --git a/constants/event_flags.asm b/constants/event_flags.asm index e3b89e3a44..944b94c652 100644 --- a/constants/event_flags.asm +++ b/constants/event_flags.asm @@ -2175,9 +2175,9 @@ const EVENT_BOULDER_IN_CINNABAR_VOLCANO_1F_4 const EVENT_BOULDER_IN_CINNABAR_VOLCANO_B1F const EVENT_LUCKY_ISLAND_CIVILIANS - const EVENT_CELADON_UNIVERSITY_BLANCHE - const EVENT_CELADON_UNIVERSITY_CANDELA - const EVENT_CELADON_UNIVERSITY_SPARK + const_skip + const_skip + const_skip const EVENT_MURKY_SWAMP_CHERYL const EVENT_DIM_CAVE_RILEY const EVENT_CINNABAR_VOLCANO_BUCK @@ -2212,9 +2212,9 @@ const EVENT_SHAMOUTI_ISLAND_PIKABLU_GUY const EVENT_SHAMOUTI_POKE_CENTER_IVY const EVENT_NOISY_FOREST_PIKABLU - const EVENT_SHAMOUTI_COAST_BLANCHE - const EVENT_SHAMOUTI_COAST_CANDELA - const EVENT_SHAMOUTI_COAST_SPARK + const_skip + const_skip + const_skip ; New to Crystal const EVENT_KURTS_HOUSE_GRANDDAUGHTER_1 @@ -2410,6 +2410,38 @@ const EVENT_TALKED_TO_VIOLET_CEMETERY_CARETAKER const EVENT_VIOLET_CEMETERY_CARETAKER const EVENT_GOT_CANDY_JAR + const EVENT_BEAT_BLACK_BELT_RYLAN + const EVENT_BEAT_SCIENTIST_SANDERS + const EVENT_BEAT_PICNICKER_ZANE + const EVENT_BEAT_BATTLE_GIRL_SASHA + const EVENT_BEAT_LASS_MAVIS + const EVENT_PICKED_UP_MOON_STONE_FROM_ROCKET_HIDEOUT_B1F + const EVENT_PICKED_UP_ZINC_FROM_ROCKET_HIDEOUT_B1F + const EVENT_ROCKET_HIDEOUT_B1F_HIDDEN_MAX_REVIVE + const EVENT_BEAT_HEX_MANIAC_CORYN + const EVENT_PICKED_UP_ULTRA_BALL_FROM_ROCKET_HIDEOUT_B2F + const EVENT_PICKED_UP_SUPER_REPEL_FROM_ROCKET_HIDEOUT_B2F + const EVENT_PICKED_UP_NUGGET_FROM_ROCKET_HIDEOUT_B2F + const EVENT_PICKED_UP_RARE_CANDY_FROM_ROCKET_HIDEOUT_B2F + const EVENT_BEAT_COSPLAYER_LYRIC + const EVENT_BEAT_COOL_DUDE_DARIC + const EVENT_PICKED_UP_CARBOS_FROM_ROCKET_HIDEOUT_B3F + const EVENT_PICKED_UP_ELIXIR_FROM_ROCKET_HIDEOUT_B3F + const EVENT_ROCKET_HIDEOUT_B3F_HIDDEN_FULL_HEAL + const EVENT_BEAT_YOUNGSTER_ARDEN + const EVENT_PICKED_UP_LIFT_KEY_FROM_ROCKET_HIDEOUT_B4F + const EVENT_BEAT_TEACHER_SERENA + const EVENT_BEAT_SUPER_NERD_NOLAN + const EVENT_ROCKET_HIDEOUT_B4F_HIDDEN_MAX_POTION + const EVENT_PICKED_UP_X_SP_ATK_FROM_ROCKET_HIDEOUT_B4F + const EVENT_PICKED_UP_PP_UP_FROM_ROCKET_HIDEOUT_B4F + const EVENT_PICKED_UP_DUBIOUS_DISC_FROM_ROCKET_HIDEOUT_B4F + const EVENT_CHERRYGROVE_BAY_FOUGHT_GALARIAN_ARTICUNO + const EVENT_CHERRYGROVE_BAY_FOUGHT_GALARIAN_ZAPDOS + const EVENT_CHERRYGROVE_BAY_FOUGHT_GALARIAN_MOLTRES + const EVENT_PUSHED_GAME_CORNER_SWITCH + const EVENT_RICH_BOY_TOBIN + const EVENT_BEAT_RICH_BOY_TOBIN const_next $8ff DEF NUM_EVENTS EQU const_value ; 2303 diff --git a/constants/item_constants.asm b/constants/item_constants.asm index 6e718f65a1..af6bcc0129 100644 --- a/constants/item_constants.asm +++ b/constants/item_constants.asm @@ -667,14 +667,15 @@ DEF NUM_CANDIES EQU const_value - 1 const ORANGETICKET ; 1d const MYSTICTICKET ; 1e const OLD_SEA_MAP ; 1f - const HARSH_LURE ; 20 - const POTENT_LURE ; 21 - const MALIGN_LURE ; 22 + const LIFT_KEY ; 20 + const HARSH_LURE ; 21 + const POTENT_LURE ; 22 + const MALIGN_LURE ; 23 DEF CHARMS_START EQU const_value ; Only charms below this point! - const SHINY_CHARM ; 23 - const OVAL_CHARM ; 24 - const CATCH_CHARM ; 25 + const SHINY_CHARM ; 24 + const OVAL_CHARM ; 25 + const CATCH_CHARM ; 26 DEF NUM_KEY_ITEMS EQU const_value - 1 ; Alphabetical order (see data/items/name_order.asm) @@ -694,6 +695,7 @@ DEF NUM_KEY_ITEMS EQU const_value - 1 const NAM_GS_BALL const NAM_HARSH_LURE const NAM_ITEMFINDER + const NAM_LIFT_KEY const NAM_LOST_ITEM const NAM_MACHINE_PART const NAM_MALIGN_LURE diff --git a/constants/menu_constants.asm b/constants/menu_constants.asm index 360de391a3..1fa7955640 100644 --- a/constants/menu_constants.asm +++ b/constants/menu_constants.asm @@ -109,3 +109,9 @@ DEF NUM_PARTYMENUACTIONS EQU const_value const NAME_TRENDY const NAME_BOX DEF NUM_NAME_TYPES EQU const_value + +; Lure Menu Options (see engine/menus/lure_menu.asm) + const_def 1 + const HARSH_LURE_MENU_OPT ; 1 + const POTENT_LURE_MENU_OPT ; 2 + const MALIGN_LURE_MENU_OPT ; 3 diff --git a/constants/ram_constants.asm b/constants/ram_constants.asm index 2350788c2d..05cda01f9b 100644 --- a/constants/ram_constants.asm +++ b/constants/ram_constants.asm @@ -491,10 +491,13 @@ DEF CELEBIEVENT_FOREST_IS_RESTLESS_F EQU 2 ; wPlayerCaught2:: const_def - const PLAYER_CAUGHT_MEW_F ; 0 - const PLAYER_CAUGHT_MEWTWO_F ; 1 - const PLAYER_CAUGHT_CELEBI_F ; 2 - const PLAYER_CAUGHT_SUDOWOODO_F ; 3 + const PLAYER_CAUGHT_MEW_F ; 0 + const PLAYER_CAUGHT_MEWTWO_F ; 1 + const PLAYER_CAUGHT_CELEBI_F ; 2 + const PLAYER_CAUGHT_SUDOWOODO_F ; 3 + const PLAYER_CAUGHT_GALARIAN_ARTICUNO_F ; 4 + const PLAYER_CAUGHT_GALARIAN_ZAPDOS_F ; 5 + const PLAYER_CAUGHT_GALARIAN_MOLTRES_F ; 6 DEF CAUGHT_DUO_MASK EQU (1 << PLAYER_CAUGHT_HO_OH_F) | (1 << PLAYER_CAUGHT_LUGIA_F) DEF CAUGHT_BEASTS_MASK EQU (1 << PLAYER_CAUGHT_RAIKOU_F) | (1 << PLAYER_CAUGHT_ENTEI_F) | (1 << PLAYER_CAUGHT_SUICUNE_F) diff --git a/constants/trainer_constants.asm b/constants/trainer_constants.asm index 0a51deddbe..8be152a5ae 100644 --- a/constants/trainer_constants.asm +++ b/constants/trainer_constants.asm @@ -137,6 +137,7 @@ DEF CRYS EQU __trainer_class__ const OLIVER const CHAZ const TYLER + const ARDEN trainerclass BUG_CATCHER ; 21 const WADE1 @@ -213,6 +214,7 @@ DEF CRYS EQU __trainer_class__ const GINGER const CHEYENNE const ADRIAN + const ZANE trainerclass TWINS ; 24 const AMYANDMAY1 @@ -406,6 +408,7 @@ DEF CRYS EQU __trainer_class__ const CHLOE const BROOKE const KUROKO + const LYRIC trainerclass SUPER_NERD ; 31 const STAN @@ -453,6 +456,7 @@ DEF CRYS EQU __trainer_class__ const GINA const ALICE const DUPLICA + const MAVIS trainerclass BEAUTY ; 33 const VICTORIA @@ -579,6 +583,7 @@ DEF CRYS EQU __trainer_class__ const ESTHER const MATILDA const BETHANY + const CORYN trainerclass SAGE ; 3c const CHOW @@ -663,6 +668,7 @@ DEF CRYS EQU __trainer_class__ const WINSTON const GERALD const IRVING + const TOBIN trainerclass LADY ; 4b const JESSICA @@ -793,6 +799,7 @@ DEF CRYS EQU __trainer_class__ const JOSEPH const NIGEL const PIOTR + const SANDERS trainerclass ROCKET_SCIENTIST ; 55 const ROSS @@ -830,6 +837,7 @@ DEF CRYS EQU __trainer_class__ const MANFORD const ANDER const TAKEO + const RYLAN trainerclass BATTLE_GIRL ; 59 const SUBARU @@ -839,6 +847,7 @@ DEF CRYS EQU __trainer_class__ const RONDA const PADMA const EMY + const SASHA trainerclass DRAGON_TAMER ; 5a const PAUL @@ -859,12 +868,16 @@ DEF CRYS EQU __trainer_class__ const GUSTAV const NICOLAS - trainerclass TEACHER ; 5c + trainerclass TEACHER_F ; 5c const COLETTE const HILLARY const SHIRLEY const KATHRYN const CLARICE + const SERENA + + trainerclass TEACHER_M ; 9a + const NOLAN trainerclass GUITARISTM ; 5d const CLYDE @@ -970,6 +983,7 @@ DEF CRYS EQU __trainer_class__ const COOLTRAINERM_COREY const COOLTRAINERM_RAYMOND const FERGUS + const DARIC trainerclass COOLTRAINERF ; 6b const BETH1 @@ -1124,16 +1138,16 @@ DEF CRYS EQU __trainer_class__ DEF NUM_TRAINER_CLASSES EQU __trainer_class__ - 1 - trainerclass OMASTAR_FOSSIL ; 9a + trainerclass OMASTAR_FOSSIL ; 9b - trainerclass KABUTOPS_FOSSIL ; 9b + trainerclass KABUTOPS_FOSSIL ; 9c - trainerclass AERODACTYL_FOSSIL ; 9c + trainerclass AERODACTYL_FOSSIL ; 9d - trainerclass CUBONE_ARMOR ; 9d + trainerclass CUBONE_ARMOR ; 9e - trainerclass METEORITE ; 9e + trainerclass METEORITE ; 9f - trainerclass SILHOUETTE ; 9f + trainerclass SILHOUETTE ; a0 DEF NUM_TRAINER_CLASS_PICS EQU __trainer_class__ - 1 diff --git a/data/battle_tower/classes.asm b/data/battle_tower/classes.asm index d6f1ed4a60..08d984c3ff 100644 --- a/data/battle_tower/classes.asm +++ b/data/battle_tower/classes.asm @@ -80,7 +80,7 @@ BattleTowerTrainers: rawchar "Morse@@@@@", SUPER_NERD rawchar "Phelps@@@@", SWIMMERM rawchar "Zeke@@@@@@", DRAGON_TAMER - rawchar "Bisom@@@@@", TEACHER + rawchar "Bisom@@@@@", TEACHER_F rawchar "Nadia@@@@@", BREEDER rawchar "Hatcher@@@", GENTLEMAN rawchar "Frida@@@@@", ARTIST @@ -96,7 +96,7 @@ BattleTowerTrainers: rawchar "Axl@@@@@@@", SUPER_NERD rawchar "Gerald@@@@", SIGHTSEERM rawchar "Kafuka@@@@", SCHOOLGIRL - rawchar "Hong@@@@@@", TEACHER + rawchar "Hong@@@@@@", TEACHER_F rawchar "Pov@@@@@@@", BOARDER rawchar "Collins@@@", POKEFANM rawchar "Darwin@@@@", BUG_CATCHER diff --git a/data/events/engine_flags.asm b/data/events/engine_flags.asm index e322a37008..62982bcf10 100644 --- a/data/events/engine_flags.asm +++ b/data/events/engine_flags.asm @@ -287,5 +287,8 @@ EngineFlags: engine_flag wPlayerCaught2, PLAYER_CAUGHT_MEWTWO_F engine_flag wPlayerCaught2, PLAYER_CAUGHT_CELEBI_F engine_flag wPlayerCaught2, PLAYER_CAUGHT_SUDOWOODO_F + engine_flag wPlayerCaught2, PLAYER_CAUGHT_GALARIAN_ARTICUNO_F + engine_flag wPlayerCaught2, PLAYER_CAUGHT_GALARIAN_ZAPDOS_F + engine_flag wPlayerCaught2, PLAYER_CAUGHT_GALARIAN_MOLTRES_F assert_table_length NUM_ENGINE_FLAGS diff --git a/data/events/initialize_events.asm b/data/events/initialize_events.asm index bc6970c1ed..89472ec109 100644 --- a/data/events/initialize_events.asm +++ b/data/events/initialize_events.asm @@ -143,9 +143,6 @@ InitialEvents: dw EVENT_SOUL_HOUSE_MR_FUJI dw EVENT_ROUTE_8_KANTO_POKEMON_FEDERATION dw EVENT_SHAMOUTI_ISLAND_PIKABLU_GUY - dw EVENT_SHAMOUTI_COAST_CANDELA - dw EVENT_SHAMOUTI_COAST_BLANCHE - dw EVENT_SHAMOUTI_COAST_SPARK dw EVENT_LAWRENCE_ROUTE_10 dw EVENT_LAWRENCES_ZAPDOS_ROUTE_10 dw EVENT_LAWRENCE_FINAL_BIRD diff --git a/data/items/attributes.asm b/data/items/attributes.asm index 8efff17934..fa3bde2ecf 100644 --- a/data/items/attributes.asm +++ b/data/items/attributes.asm @@ -587,6 +587,8 @@ KeyItemAttributes: key_item_attribute 0, ITEMMENU_CURRENT, ITEMMENU_NOUSE ; OLD SEA MAP key_item_attribute 0, ITEMMENU_CURRENT, ITEMMENU_NOUSE +; LIFT KEY + key_item_attribute 0, ITEMMENU_NOUSE, ITEMMENU_NOUSE ; HARSH LURE key_item_attribute 0, ITEMMENU_NOUSE, ITEMMENU_NOUSE ; POTENT LURE diff --git a/data/items/descriptions.asm b/data/items/descriptions.asm index 152734c9c6..8c3d02c544 100644 --- a/data/items/descriptions.asm +++ b/data/items/descriptions.asm @@ -289,6 +289,7 @@ KeyItemDescriptions: dw OrangeTicketDesc dw MysticTicketDesc dw OldSeaMapDesc + dw LiftKeyDesc dw HarshLureDesc dw PotentLureDesc dw MalignLureDesc @@ -1665,6 +1666,11 @@ MalignLureDesc: next "malevolent odor." done +LiftKeyDesc: + text "Operates the lift" + next "in a building." + done + ShinyCharmDesc: text "A charm for find-" next "ing shiny #mon." diff --git a/data/items/icon_pointers.asm b/data/items/icon_pointers.asm index 99c639c68f..3bd713c376 100644 --- a/data/items/icon_pointers.asm +++ b/data/items/icon_pointers.asm @@ -291,6 +291,7 @@ KeyItemIconPointers: dba OrangeTicketIcon dba MysticTicketIcon dba OldSeaMapIcon + dba LiftKeyIcon dba HarshLureIcon dba PotentLureIcon dba MalignLureIcon diff --git a/data/items/key_names.asm b/data/items/key_names.asm index d0de1a240c..f64ec91cd8 100644 --- a/data/items/key_names.asm +++ b/data/items/key_names.asm @@ -32,6 +32,7 @@ KeyItemNames:: li "OrangeTicket" li "MysticTicket" li "Old Sea Map" + li "Lift Key" li "Harsh Lure" li "Potent Lure" li "Malign Lure" diff --git a/data/items/name_order.asm b/data/items/name_order.asm index f015f3fc34..239de5cfaf 100644 --- a/data/items/name_order.asm +++ b/data/items/name_order.asm @@ -346,6 +346,7 @@ KeyItemNameOrder: db NAM_HARSH_LURE db NAM_POTENT_LURE db NAM_MALIGN_LURE + db NAM_LIFT_KEY db NAM_SHINY_CHARM db NAM_OVAL_CHARM db NAM_CATCH_CHARM diff --git a/data/maps/scenes.asm b/data/maps/scenes.asm index 1608f3fdca..d9283fd916 100644 --- a/data/maps/scenes.asm +++ b/data/maps/scenes.asm @@ -110,4 +110,5 @@ MapScenes:: scene_var WILLS_ROOM, wWillsRoomSceneID scene_var WISE_TRIOS_ROOM, wWiseTriosRoomSceneID scene_var YELLOW_FOREST, wYellowForestSceneID + scene_var ROCKET_HIDEOUT_B4F, wRocketHideoutB4FSceneID db -1 diff --git a/data/tilesets/underground_attributes.bin b/data/tilesets/underground_attributes.bin index a3e0589a89..c86b6e13ad 100644 Binary files a/data/tilesets/underground_attributes.bin and b/data/tilesets/underground_attributes.bin differ diff --git a/data/tilesets/underground_collision.asm b/data/tilesets/underground_collision.asm index 93b5694a11..ae313b83de 100644 --- a/data/tilesets/underground_collision.asm +++ b/data/tilesets/underground_collision.asm @@ -103,3 +103,4 @@ tilecoll FLOOR, FLOOR, WALL, FLOOR ; 66 tilecoll WALL, ELEVATOR_BUTTON, FLOOR, FLOOR ; 67 tilecoll DOOR, WALL, FLOOR, FLOOR ; 68 + tilecoll FLOOR, FLOOR, WALL, WALL ; 69 diff --git a/data/tilesets/underground_metatiles.bin b/data/tilesets/underground_metatiles.bin index 0c9c9287d4..5be9747aec 100644 Binary files a/data/tilesets/underground_metatiles.bin and b/data/tilesets/underground_metatiles.bin differ diff --git a/data/trainers/attributes.asm b/data/trainers/attributes.asm index 91e89d7eed..6ac7f892c7 100644 --- a/data/trainers/attributes.asm +++ b/data/trainers/attributes.asm @@ -548,7 +548,13 @@ TrainerClassAttributes: dw AI_BASIC + AI_SETUP + AI_TYPES + AI_SMART + AI_OPPORTUNIST + AI_CAUTIOUS + AI_STATUS + AI_RISKY dw CONTEXT_USE + SWITCH_SOMETIMES -; Teacher +; Teacher_F + db 0, 0 ; items + db 18 ; base reward + dw AI_BASIC + AI_OPPORTUNIST + AI_AGGRESSIVE + AI_STATUS + dw CONTEXT_USE + SWITCH_SOMETIMES + + ; Teacher_M db 0, 0 ; items db 18 ; base reward dw AI_BASIC + AI_OPPORTUNIST + AI_AGGRESSIVE + AI_STATUS diff --git a/data/trainers/class_names.asm b/data/trainers/class_names.asm index 68317d07b3..f161b61de3 100755 --- a/data/trainers/class_names.asm +++ b/data/trainers/class_names.asm @@ -92,7 +92,8 @@ TrainerClassNames:: li "Battle Girl" ; BATTLE_GIRL li "Dragon Tamer" ; DRAGON_TAMER li "Engineer" ; ENGINEER - li "Teacher" ; TEACHER + li "Teacher" ; TEACHER_F + li "Teacher" ; TEACHER_M li "Guitarist" ; GUITARISTM li "Guitarist" ; GUITARISTF li "Biker" ; BIKER @@ -137,9 +138,9 @@ TrainerClassNames:: li " Trainer" ; ANABEL li "Valet" ; DARACH li "Lady" ; CAITLIN - li " Trainer" ; CANDELA - li " Trainer" ; BLANCHE - li " Trainer" ; SPARK_T + li "Leader" ; CANDELA + li "Leader" ; BLANCHE + li "Leader" ; SPARK_T li "Trainer" ; FLANNERY li "Fighter" ; MAYLENE li "Swimmer" ; MARLON diff --git a/data/trainers/dvs.asm b/data/trainers/dvs.asm index a67abef28f..79b4216f52 100644 --- a/data/trainers/dvs.asm +++ b/data/trainers/dvs.asm @@ -94,7 +94,8 @@ TrainerClassDVsAndPersonality: db 64, $FF, $DD, $DD, FEMALE ; battle girl db 72, $DF, $DF, $DD, MALE ; dragon tamer db 72, $DD, $DD, $DD, MALE ; engineer - db 72, $DD, $DD, $DD, FEMALE ; teacher + db 72, $DD, $DD, $DD, FEMALE ; teacher_f + db 72, $DD, $DD, $DD, FEMALE ; teacher_m db 72, $DD, $DD, $DD, MALE ; guitaristm db 72, $DD, $DD, $DD, FEMALE ; guitaristf db 72, $DD, $DD, $DD, MALE ; biker diff --git a/data/trainers/encounter_music.asm b/data/trainers/encounter_music.asm index 7a0a64c4ad..226452135e 100644 --- a/data/trainers/encounter_music.asm +++ b/data/trainers/encounter_music.asm @@ -93,7 +93,8 @@ TrainerEncounterMusic: db MUSIC_LASS_ENCOUNTER ; battle_girl db MUSIC_HIKER_ENCOUNTER ; dragon_tamer db MUSIC_HIKER_ENCOUNTER ; engineer - db MUSIC_BEAUTY_ENCOUNTER ; teacher + db MUSIC_BEAUTY_ENCOUNTER ; teacher_f + db MUSIC_POKEMANIAC_ENCOUNTER ; teacher_m db MUSIC_HIKER_ENCOUNTER ; guitaristm db MUSIC_BEAUTY_ENCOUNTER ; guitaristf db MUSIC_HIKER_ENCOUNTER ; biker diff --git a/data/trainers/genders.asm b/data/trainers/genders.asm index c21de2f359..246e69e714 100644 --- a/data/trainers/genders.asm +++ b/data/trainers/genders.asm @@ -22,14 +22,14 @@ BTTrainerClassGenders: genders MALE, MALE, FEMALE, FEMALE, FEMALE, FEMALE, MALE, MALE ; SWIMMERF, BURGLAR, PI, SCIENTIST, ROCKET_SCIENTIST, BOARDER, SKIER, BLACKBELT_T genders FEMALE, MALE, MALE, MALE, MALE, MALE, FEMALE, MALE - ; BATTLE_GIRL, DRAGON_TAMER, ENGINEER, TEACHER, GUITARISTM, GUITARISTF, BIKER, ROUGHNECK - genders FEMALE, MALE, MALE, FEMALE, MALE, FEMALE, MALE, MALE - ; TAMER, ARTIST, AROMA_LADY, SOLDIER, WAITER, WAITRESS, SIGHTSEERM, SIGHTSEERF - genders MALE, FEMALE, FEMALE, MALE, MALE, FEMALE, MALE, FEMALE - ; SIGHTSEERS, COOLTRAINERM, COOLTRAINERF, ACE_DUO, VETERAN_M, VETERAN_F, PROTON, PETREL - genders MALE, MALE, FEMALE, MALE, MALE, FEMALE, MALE, MALE - ; ARCHER, ARIANA, GIOVANNI, PROF_OAK, PROF_ELM, PROF_IVY, MYSTICALMAN, KARATE_KING - genders MALE, FEMALE, MALE, MALE, MALE, FEMALE, FEMALE, MALE - ; TOWERTYCOON, FACTORYHEAD - genders MALE, MALE + ; BATTLE_GIRL, DRAGON_TAMER, ENGINEER, TEACHER_F, TEACHER_M, GUITARISTM, GUITARISTF, BIKER + genders FEMALE, MALE, MALE, FEMALE, MALE, MALE, FEMALE, MALE + ; ROUGHNECK, TAMER, ARTIST, AROMA_LADY, SOLDIER, WAITER, WAITRESS, SIGHTSEERM + genders MALE, MALE, FEMALE, FEMALE, MALE, MALE, FEMALE, MALE + ; SIGHTSEERF, SIGHTSEERS, COOLTRAINERM, COOLTRAINERF, ACE_DUO, VETERAN_M, VETERAN_F, PROTON + genders FEMALE, MALE, MALE, FEMALE, MALE, MALE, FEMALE, MALE + ; PETREL, ARCHER, ARIANA, GIOVANNI, PROF_OAK, PROF_ELM, PROF_IVY, MYSTICALMAN + genders MALE, MALE, FEMALE, MALE, MALE, MALE, FEMALE, FEMALE + ; KARATE_KING, TOWERTYCOON, FACTORYHEAD + genders MALE, MALE, MALE assert_table_length (FACTORYHEAD + 7) / 8 diff --git a/data/trainers/palettes.asm b/data/trainers/palettes.asm index e8cd657ea4..e3f833384b 100644 --- a/data/trainers/palettes.asm +++ b/data/trainers/palettes.asm @@ -98,7 +98,8 @@ INCLUDE "gfx/trainers/blackbelt_t.pal" INCLUDE "gfx/trainers/battle_girl.pal" INCLUDE "gfx/trainers/dragon_tamer.pal" INCLUDE "gfx/trainers/engineer.pal" -INCLUDE "gfx/trainers/teacher.pal" +INCLUDE "gfx/trainers/teacher_f.pal" +INCLUDE "gfx/trainers/teacher_m.pal" INCLUDE "gfx/trainers/guitarist_m.pal" INCLUDE "gfx/trainers/guitarist_f.pal" INCLUDE "gfx/trainers/biker.pal" diff --git a/data/trainers/parties.asm b/data/trainers/parties.asm index 0ba9ebb533..d2205ef2a6 100644 --- a/data/trainers/parties.asm +++ b/data/trainers/parties.asm @@ -2365,6 +2365,14 @@ YoungsterGroup: dbp LEVEL_FROM_BADGES + 8, SANDSLASH db -1 ; end + ; YOUNGSTER + db "Arden@" + db TRAINERTYPE_NORMAL + ; party + dbp 55, FLAREON + dbp 53, TAUROS + dbp 55, RAPIDASH + db -1 ; end SECTION "BugCatcherGroup", ROMX BugCatcherGroup: @@ -2977,6 +2985,14 @@ endc dbp 62, PARASECT db -1 ; end + ; PICNICKER + db "Zane@" + db TRAINERTYPE_NORMAL + ; party + dbp 54, JOLTEON + dbp 53, RAICHU + dbp 55, ELECTIVIRE + db -1 ; end SECTION "TwinsGroup", ROMX TwinsGroup: @@ -4835,6 +4851,14 @@ CosplayerGroup: db CHARCOAL db -1 ; end + ; COSPLAYER + db "Lyric@" + db TRAINERTYPE_NORMAL + ; party + dbp 54, LANTURN + dbp 53, MAGNEZONE + dbp 55, ELECTRODE + db -1 ; end SECTION "SuperNerdGroup", ROMX SuperNerdGroup: @@ -5004,7 +5028,6 @@ SuperNerdGroup: dbp 56, CHARIZARD db -1 ; end - SECTION "LassGroup", ROMX LassGroup: @@ -5236,6 +5259,15 @@ endc db FOCUS_SASH db -1 ; end + ; LASS + db "Mavis@" + db TRAINERTYPE_NORMAL + ; party + dbp 55, TOGEKISS + dbp 53, JOLTEON + dbp 52, AMPHAROS + db -1 ; end + SECTION "BeautyGroup", ROMX BeautyGroup: @@ -6239,6 +6271,14 @@ HexManiacGroup: dbp 54, MISDREAVUS db -1 ; end + ; HEX_MANIAC + db "Coryn@" + db TRAINERTYPE_NORMAL + ; party + dbp 53, MISMAGIUS + dbp 52, ESPEON + dbp 55, GENGAR + db -1 ; end SECTION "SageGroup", ROMX SageGroup: @@ -6789,6 +6829,15 @@ endc db HEADBUTT, ATTRACT, MUD_SLAP, DISARM_VOICE db -1 ; end + ; RICH_BOY + db "Tobin@" + db TRAINERTYPE_NORMAL + ; party + dbp 53, MAGMAR + dbp 54, GOLEM + dbp 55, MACHOKE + db -1 ; end + SECTION "LadyGroup", ROMX LadyGroup: @@ -7774,6 +7823,14 @@ ScientistGroup: dbp 55, ALAKAZAM db -1 ; end + ; SCIENTIST + db "Sanders@" + db TRAINERTYPE_NORMAL + ; party + dbp 52, ALAKAZAM + dbp 54, LAPRAS + dbp 53, NOCTOWL + db -1 ; end SECTION "RocketScientistGroup", ROMX RocketScientistGroup: @@ -8068,6 +8125,15 @@ BlackbeltGroup: dbp 56, POLIWRATH db -1 ; end + ; BLACKBELT_T + db "Rylan@" + db TRAINERTYPE_NORMAL + ; party + dbp 54, MAGMORTAR + dbp 52, ARCANINE + dbp 53, HOUNDOOM + db -1 ; end + SECTION "BattleGirlGroup", ROMX BattleGirlGroup: @@ -8137,6 +8203,15 @@ BattleGirlGroup: db PLAY_ROUGH, SLASH, BELLY_DRUM, NIGHT_SLASH db -1 ; end + ; BATTLE_GIRL + db "Sasha@" + db TRAINERTYPE_NORMAL + ; party + dbp 52, PRIMEAPE + dbp 55, TYPHLOSION + dbp 54, RAPIDASH + db -1 ; end + SECTION "DragonTamerGroup", ROMX DragonTamerGroup: @@ -8307,17 +8382,17 @@ EngineerGroup: db ABILITY_2 | NAT_NEUTRAL db -1 ; end -SECTION "TeacherGroup", ROMX -TeacherGroup: +SECTION "TeacherFGroup", ROMX +TeacherFGroup: - ; TEACHER + ; TEACHER_F db "Colette@" db TRAINERTYPE_NORMAL ; party dbp 60, CLEFAIRY db -1 ; end - ; TEACHER + ; TEACHER_F db "Hillary@" db TRAINERTYPE_NORMAL ; party @@ -8326,14 +8401,14 @@ TeacherGroup: dbp 59, MAROWAK db -1 ; end - ; TEACHER + ; TEACHER_F db "Shirley@" db TRAINERTYPE_NORMAL ; party dbp 47, WIGGLYTUFF db -1 ; end - ; TEACHER + ; TEACHER_F db "Kathryn@" db TRAINERTYPE_NORMAL ; party @@ -8342,7 +8417,7 @@ TeacherGroup: dbp LEVEL_FROM_BADGES + 2, FURRET db -1 ; end - ; TEACHER + ; TEACHER_F db "Clarice@" db TRAINERTYPE_NORMAL ; party @@ -8350,6 +8425,14 @@ TeacherGroup: dbp 56, SUNFLORA db -1 ; end + ; TEACHER_F + db "Serena@" + db TRAINERTYPE_NORMAL + ; party + dbp 55, UMBREON + dbp 52, VAPOREON + dbp 54, ESPEON + db -1 ; end SECTION "GuitaristMGroup", ROMX GuitaristMGroup: @@ -9164,6 +9247,15 @@ CooltrainerMGroup: ev_spread 192 Atk, 192 Spe db -1 ; end + ; COOLTRAINERM + db "Daric@" + db TRAINERTYPE_NORMAL + ; party + dbp 54, PORYGON_Z + dbp 53, SLOWKING + dbp 55, GLACEON + db -1 ; end + SECTION "CooltrainerFGroup", ROMX CooltrainerFGroup: @@ -11453,4 +11545,17 @@ ReiGroup: db NASTY_PLOT, FIRE_BLAST, DARK_PULSE, SHADOW_BALL db -1 ; end + +SECTION "TeacherMGroup", ROMX +TeacherMGroup: + + ; TEACHER_M + db "Nolan@" + db TRAINERTYPE_NORMAL + ; party + dbp 54, ELECTRODE + dbp 55, MAGNEZONE + dbp 56, ELECTIVIRE + db -1 ; end + ENDSECTION diff --git a/data/trainers/party_pointers.asm b/data/trainers/party_pointers.asm index 7efbcd63a6..724004dffe 100644 --- a/data/trainers/party_pointers.asm +++ b/data/trainers/party_pointers.asm @@ -94,7 +94,8 @@ TrainerGroups: dba BattleGirlGroup dba DragonTamerGroup dba EngineerGroup - dba TeacherGroup + dba TeacherFGroup + dba TeacherMGroup dba GuitaristMGroup dba GuitaristFGroup dba BikerGroup diff --git a/data/trainers/pic_pointers.asm b/data/trainers/pic_pointers.asm index 98f25c52dd..3938540686 100644 --- a/data/trainers/pic_pointers.asm +++ b/data/trainers/pic_pointers.asm @@ -92,7 +92,8 @@ TrainerPicPointers:: dba BattleGirlPic dba DragonTamerPic dba EngineerPic - dba TeacherPic + dba TeacherFPic + dba TeacherMPic dba GuitaristmPic dba GuitaristfPic dba BikerPic diff --git a/data/trainers/sprites.asm b/data/trainers/sprites.asm index 369a07ebf3..990d5faa96 100644 --- a/data/trainers/sprites.asm +++ b/data/trainers/sprites.asm @@ -92,7 +92,8 @@ BTTrainerClassSprites: db SPRITE_BATTLE_GIRL ; BATTLE_GIRL db SPRITE_DRAGON_TAMER ; DRAGON_TAMER db SPRITE_ENGINEER ; ENGINEER - db SPRITE_TEACHER ; TEACHER + db SPRITE_TEACHER ; TEACHER_F + db SPRITE_SUPER_NERD ; TEACHER_M db SPRITE_ROCKER ; GUITARISTM db SPRITE_BATTLE_GIRL ; GUITARISTF db SPRITE_BIKER ; BIKER diff --git a/engine/events/celebi.asm b/engine/events/celebi.asm index f058375e28..c07ae7331f 100755 --- a/engine/events/celebi.asm +++ b/engine/events/celebi.asm @@ -1,3 +1,69 @@ +GalarianArticunoEvent: + call DelayFrame + ld a, [wStateFlags] + push af + xor a + ld [wStateFlags], a + + ld a, PAL_OW_PURPLE + farcall CopySpritePalToOBPal7 + + call ClearSpriteAnims + ld hl, ArticunoGalarianIcon + ld de, vTiles0 tile $84 + lb bc, BANK(ArticunoGalarianIcon), 4 * 2 + call DecompressRequest2bpp + + ld hl, ArticunoGalarianIcon + ld de, vTiles0 tile $8c + lb bc, BANK(ArticunoGalarianIcon), 4 * 2 + call DecompressRequest2bpp + jr DoCelebiEvent + +GalarianMoltresEvent: + call DelayFrame + ld a, [wStateFlags] + push af + xor a + ld [wStateFlags], a + + ld a, PAL_OW_RED + farcall CopySpritePalToOBPal7 + + call ClearSpriteAnims + ld hl, MoltresGalarianIcon + ld de, vTiles0 tile $84 + lb bc, BANK(MoltresGalarianIcon), 4 * 2 + call DecompressRequest2bpp + + ld hl, MoltresGalarianIcon + ld de, vTiles0 tile $8c + lb bc, BANK(MoltresGalarianIcon), 4 * 2 + call DecompressRequest2bpp + jr DoCelebiEvent + +GalarianZapdosEvent: + call DelayFrame + ld a, [wStateFlags] + push af + xor a + ld [wStateFlags], a + + ld a, PAL_OW_RED + farcall CopySpritePalToOBPal7 + + call ClearSpriteAnims + ld hl, ZapdosGalarianIcon + ld de, vTiles0 tile $84 + lb bc, BANK(ZapdosGalarianIcon), 4 * 2 + call DecompressRequest2bpp + + ld hl, ZapdosGalarianIcon + ld de, vTiles0 tile $8c + lb bc, BANK(ZapdosGalarianIcon), 4 * 2 + call DecompressRequest2bpp + jr DoCelebiEvent + Special_CelebiShrineEvent: call DelayFrame ld a, [wStateFlags] @@ -13,6 +79,8 @@ Special_CelebiShrineEvent: ld de, vTiles0 tile $84 lb bc, BANK(SpecialCelebiGFX), 4 * 4 call DecompressRequest2bpp +; fallthrough +DoCelebiEvent: xor a ld [wJumptableIndex], a diff --git a/engine/events/specials.asm b/engine/events/specials.asm index 90c3b1bd6d..e4b1160664 100644 --- a/engine/events/specials.asm +++ b/engine/events/specials.asm @@ -439,10 +439,28 @@ RespawnOneOffs: ld de, ENGINE_PLAYER_CAUGHT_HO_OH farcall EngineFlagAction - ret nz + jr nz, .CaughtHoOh eventflagreset EVENT_TIN_TOWER_ROOF_HO_OH eventflagreset EVENT_FOUGHT_HO_OH eventflagreset EVENT_EUSINES_HOUSE_EUSINE +.CaughtHoOh + + ld de, ENGINE_PLAYER_CAUGHT_GALARIAN_ARTICUNO + farcall EngineFlagAction + jr nz, .CaughtGalarianArticuno + eventflagreset EVENT_CHERRYGROVE_BAY_FOUGHT_GALARIAN_ARTICUNO +.CaughtGalarianArticuno + + ld de, ENGINE_PLAYER_CAUGHT_GALARIAN_ZAPDOS + farcall EngineFlagAction + jr nz, .CaughtGalarianZapdos + eventflagreset EVENT_CHERRYGROVE_BAY_FOUGHT_GALARIAN_ZAPDOS +.CaughtGalarianZapdos + + ld de, ENGINE_PLAYER_CAUGHT_GALARIAN_MOLTRES + farcall EngineFlagAction + ret nz + eventflagreset EVENT_CHERRYGROVE_BAY_FOUGHT_GALARIAN_MOLTRES ret RespawnRoamingRaikou: diff --git a/engine/items/item_effects.asm b/engine/items/item_effects.asm index 0cf46c75ac..6cf625c233 100755 --- a/engine/items/item_effects.asm +++ b/engine/items/item_effects.asm @@ -313,6 +313,7 @@ KeyItemEffects: dw IsntTheTimeMessage ; ORANGETICKET dw IsntTheTimeMessage ; MYSTICTICKET dw IsntTheTimeMessage ; OLD_SEA_MAP + dw IsntTheTimeMessage ; LIFT_KEY dw IsntTheTimeMessage ; HARSH_LURE dw IsntTheTimeMessage ; POTENT_LURE dw IsntTheTimeMessage ; MALIGN_LURE diff --git a/engine/menus/lure_menu.asm b/engine/menus/lure_menu.asm new file mode 100644 index 0000000000..319fccb8a2 --- /dev/null +++ b/engine/menus/lure_menu.asm @@ -0,0 +1,99 @@ + const_def + const HARSH_LURE_F ; 0 + const POTENT_LURE_F ; 1 + const MALIGN_LURE_F ; 2 + +CheckForLures: + xor a + ldh [hScriptVar], a + ld a, HARSH_LURE + ld [wCurKeyItem], a + call CheckKeyItem + jr nc, .no_harsh_lure + ld a, (1 << HARSH_LURE_F) + ldh [hScriptVar], a +.no_harsh_lure + ld a, POTENT_LURE + ld [wCurKeyItem], a + call CheckKeyItem + jr nc, .no_potent_lure + ld hl, hScriptVar + set POTENT_LURE_F, [hl] +.no_potent_lure + ld a, MALIGN_LURE + ld [wCurKeyItem], a + call CheckKeyItem + ret nc + ld hl, hScriptVar + set MALIGN_LURE_F, [hl] + ret + +SetUpLureMenu: + ldh a, [hScriptVar] + and a + ret z + ld [wWhichIndexSet], a + ld hl, .LureMenu + call LoadMenuHeader + call DoNthMenu + jr nc, .continue + xor a + ldh [hScriptVar], a + jmp ExitMenu +.continue + ld a, [wMenuSelection] + ldh [hScriptVar], a + jmp ExitMenu + +.LureMenu + db MENU_BACKUP_TILES | MENU_NO_CLICK_SFX + menu_coords 0, 0, 15, 12 + dw .MenuData + db 1 ; default option + +.MenuData + db $a0 ; flags + db 0 ; items + dw .WhichLures + dw PlaceMenuStrings + dw .MenuStrings + +.WhichLures + ; dummy for no lures + db 0 + db 0 + db -1 + + db 1 + db HARSH_LURE_MENU_OPT + db -1 + + db 1 + db POTENT_LURE_MENU_OPT + db -1 + + db 2 + db HARSH_LURE_MENU_OPT, POTENT_LURE_MENU_OPT + db -1 + + db 1 + db MALIGN_LURE_MENU_OPT + db -1 + + db 2 + db HARSH_LURE_MENU_OPT, MALIGN_LURE_MENU_OPT + db -1 + + db 2 + db POTENT_LURE_MENU_OPT, MALIGN_LURE_MENU_OPT + db -1 + + db 3 + db HARSH_LURE_MENU_OPT, POTENT_LURE_MENU_OPT, MALIGN_LURE_MENU_OPT + db -1 + +.MenuStrings + db "@" ; dummy string so we don't return 0 + db "Harsh Lure@" + db "Potent Lure@" + db "Malign Lure@" diff --git a/engine/overworld/scripting.asm b/engine/overworld/scripting.asm index 75a9d3c5ab..6d69da5234 100644 --- a/engine/overworld/scripting.asm +++ b/engine/overworld/scripting.asm @@ -270,6 +270,7 @@ ScriptCommandTable: dw Script_iffalsefwd ; d3 dw Script_iftruefwd ; d4 dw Script_scalltable ; d5 + dw Script_setmapobjectmovedata ; d6 assert_table_length NUM_EVENT_COMMANDS GetScriptWordDE:: @@ -2632,3 +2633,23 @@ Script_keyitemnotify: ; The key item icon overwrites nine font tiles, including ; the "▶" needed by the right cursor arrow. farjp LoadFonts_NoOAMUpdate + +Script_setmapobjectmovedata: + call GetScriptByte + cp LAST_TALKED + jr nz, .ok + ldh a, [hLastTalked] +.ok + call CheckObjectVisibility + ret c + ld hl, OBJECT_MAP_OBJECT_INDEX + add hl, bc + ld a, [hl] + cp -1 + ret z + call GetMapObject + ld hl, MAPOBJECT_MOVEMENT + add hl, bc + call GetScriptByte + ld [hl], a + ret diff --git a/engine/phone/scripts/liz.asm b/engine/phone/scripts/liz.asm index 4050e5b912..bb665c55ca 100644 --- a/engine/phone/scripts/liz.asm +++ b/engine/phone/scripts/liz.asm @@ -75,7 +75,7 @@ LizGossip: sjumpfwd LizGossipScript .Teacher: - gettrainerclassname TEACHER, $1 + gettrainerclassname TEACHER_F, $1 sjumpfwd LizGossipScript .SwimmerF: diff --git a/gfx/items.asm b/gfx/items.asm index 7044a6a036..493414fe75 100644 --- a/gfx/items.asm +++ b/gfx/items.asm @@ -822,3 +822,6 @@ ExpCandyLIcon:: INCBIN "gfx/items/exp_candy_l.2bpp.lz" SECTION "ExpCandyXLIcon", ROMX ExpCandyXLIcon:: INCBIN "gfx/items/exp_candy_xl.2bpp.lz" + +SECTION "LiftKeyIcon", ROMX +LiftKeyIcon:: INCBIN "gfx/items/lift_key.2bpp.lz" diff --git a/gfx/items/key_items.pal b/gfx/items/key_items.pal index fc4c6e4ed8..017f943c09 100644 --- a/gfx/items/key_items.pal +++ b/gfx/items/key_items.pal @@ -111,7 +111,10 @@ endc ; OLD SEA MAP RGB 27, 23, 17 RGB 22, 18, 13 -; EERIE LURE +; LIFT KEY + RGB 13, 13, 13 + RGB 25, 11, 07 +; HARSH LURE RGB 24, 24, 24 RGB 23, 18, 25 ; TOUGH LURE diff --git a/gfx/items/lift_key.png b/gfx/items/lift_key.png new file mode 100644 index 0000000000..9e2e19c18b Binary files /dev/null and b/gfx/items/lift_key.png differ diff --git a/gfx/pokemon/anims.asm b/gfx/pokemon/anims.asm index 08b2c4844a..0e0cda0fd9 100644 --- a/gfx/pokemon/anims.asm +++ b/gfx/pokemon/anims.asm @@ -275,12 +275,12 @@ UnownQuestionAnimation: INCLUDE "gfx/pokemon/unown_question/anim.asm" PichuPlainAnimation: INCLUDE "gfx/pokemon/pichu_plain/anim.asm" PichuSpikyAnimation: INCLUDE "gfx/pokemon/pichu_spiky/anim.asm" -PikachuSparkAnimation: PikachuPlainAnimation: INCLUDE "gfx/pokemon/pikachu_plain/anim.asm" PikachuFlyAnimation: INCLUDE "gfx/pokemon/pikachu_fly/anim.asm" PikachuSurfAnimation: INCLUDE "gfx/pokemon/pikachu_surf/anim.asm" PikachuPikaAnimation: INCLUDE "gfx/pokemon/pikachu_pika/anim.asm" PikachuChuchuAnimation: INCLUDE "gfx/pokemon/pikachu_chuchu/anim.asm" +PikachuSparkAnimation: INCLUDE "gfx/pokemon/pikachu_spark/anim.asm" ArbokJohtoAnimation: INCLUDE "gfx/pokemon/arbok_johto/anim.asm" ArbokKantoAnimation: INCLUDE "gfx/pokemon/arbok_kanto/anim.asm" diff --git a/gfx/pokemon/bitmasks.asm b/gfx/pokemon/bitmasks.asm index 69ab021ee7..a5a584f2ef 100644 --- a/gfx/pokemon/bitmasks.asm +++ b/gfx/pokemon/bitmasks.asm @@ -274,12 +274,12 @@ UnownQuestionBitmasks: INCLUDE "gfx/pokemon/unown_question/bitmask.asm" PichuPlainBitmasks: INCLUDE "gfx/pokemon/pichu_plain/bitmask.asm" PichuSpikyBitmasks: INCLUDE "gfx/pokemon/pichu_spiky/bitmask.asm" -PikachuSparkBitmasks: PikachuPlainBitmasks: INCLUDE "gfx/pokemon/pikachu_plain/bitmask.asm" PikachuFlyBitmasks: INCLUDE "gfx/pokemon/pikachu_fly/bitmask.asm" PikachuSurfBitmasks: INCLUDE "gfx/pokemon/pikachu_surf/bitmask.asm" PikachuPikaBitmasks: INCLUDE "gfx/pokemon/pikachu_pika/bitmask.asm" PikachuChuchuBitmasks: INCLUDE "gfx/pokemon/pikachu_chuchu/bitmask.asm" +PikachuSparkBitmasks: INCLUDE "gfx/pokemon/pikachu_spark/bitmask.asm" ArbokJohtoBitmasks: INCLUDE "gfx/pokemon/arbok_johto/bitmask.asm" ArbokKantoBitmasks: INCLUDE "gfx/pokemon/arbok_kanto/bitmask.asm" diff --git a/gfx/trainers.asm b/gfx/trainers.asm index 6ac4347a97..a51b608850 100644 --- a/gfx/trainers.asm +++ b/gfx/trainers.asm @@ -258,8 +258,11 @@ DragonTamerPic: INCBIN "gfx/trainers/dragon_tamer.2bpp.lz" SECTION "EngineerPic", ROMX EngineerPic: INCBIN "gfx/trainers/engineer.2bpp.lz" -SECTION "TeacherPic", ROMX -TeacherPic: INCBIN "gfx/trainers/teacher.2bpp.lz" +SECTION "TeacherFPic", ROMX +TeacherFPic: INCBIN "gfx/trainers/teacher_f.2bpp.lz" + +SECTION "TeacherMPic", ROMX +TeacherMPic: INCBIN "gfx/trainers/teacher_m.2bpp.lz" SECTION "GuitaristmPic", ROMX GuitaristmPic: INCBIN "gfx/trainers/guitarist_m.2bpp.lz" diff --git a/gfx/trainers/teacher.pal b/gfx/trainers/teacher_f.pal similarity index 100% rename from gfx/trainers/teacher.pal rename to gfx/trainers/teacher_f.pal diff --git a/gfx/trainers/teacher.png b/gfx/trainers/teacher_f.png similarity index 100% rename from gfx/trainers/teacher.png rename to gfx/trainers/teacher_f.png diff --git a/gfx/trainers/teacher_m.pal b/gfx/trainers/teacher_m.pal new file mode 100644 index 0000000000..862d4e21e0 --- /dev/null +++ b/gfx/trainers/teacher_m.pal @@ -0,0 +1,4 @@ + + RGB 30, 22, 17 + RGB 11, 09, 10 + diff --git a/gfx/trainers/teacher_m.png b/gfx/trainers/teacher_m.png new file mode 100644 index 0000000000..66c17107ef Binary files /dev/null and b/gfx/trainers/teacher_m.png differ diff --git a/macros/scripts/events.asm b/macros/scripts/events.asm index 72e914f346..93120fdd09 100644 --- a/macros/scripts/events.asm +++ b/macros/scripts/events.asm @@ -1370,4 +1370,11 @@ MACRO scalltable dw \1 ; pointer table ENDM + const setmapobjectmovedata_command +MACRO setmapobjectmovedata + db setmapobjectmovedata_command + db \1 ; person + db \2 ; SpriteMovementData index +ENDM + DEF NUM_EVENT_COMMANDS EQU const_value diff --git a/main.asm b/main.asm index a9000a3259..73b7d6af41 100644 --- a/main.asm +++ b/main.asm @@ -732,3 +732,8 @@ INCLUDE "engine/events/weather.asm" SECTION "Exp Candy Names", ROMX INCLUDE "data/items/exp_candy_names.asm" + + +SECTION "LureMenu", ROMX + +INCLUDE "engine/menus/lure_menu.asm" diff --git a/maps/CeladonGameCorner.ablk b/maps/CeladonGameCorner.ablk index 12d2782bcf..68594811d9 100644 --- a/maps/CeladonGameCorner.ablk +++ b/maps/CeladonGameCorner.ablk @@ -1,4 +1,4 @@ -M               \ No newline at end of file +M               \ No newline at end of file diff --git a/maps/CeladonGameCorner.asm b/maps/CeladonGameCorner.asm index ff6430a456..8a855b1c79 100644 --- a/maps/CeladonGameCorner.asm +++ b/maps/CeladonGameCorner.asm @@ -2,11 +2,12 @@ CeladonGameCorner_MapScriptHeader: def_scene_scripts def_callbacks + callback MAPCALLBACK_TILES, CeladonGameCornerStairsScript def_warp_events warp_event 14, 13, CELADON_CITY, 6 warp_event 15, 13, CELADON_CITY, 6 - warp_event 15, 0, ROCKET_HIDEOUT_B1F, 2 + warp_event 17, 0, ROCKET_HIDEOUT_B1F, 2 def_coord_events @@ -47,8 +48,7 @@ CeladonGameCorner_MapScriptHeader: bg_event 18, 9, BGEVENT_READ, MapCeladonGameCornerSignpost35Script bg_event 18, 10, BGEVENT_READ, MapCeladonGameCornerSignpost35Script bg_event 18, 11, BGEVENT_RIGHT, MapCeladonGameCornerSignpost35Script - bg_event 15, 0, BGEVENT_JUMPTEXT, CeladonGameCornerPoster1Text - bg_event 9, 0, BGEVENT_JUMPTEXT, CeladonGameCornerPoster2Text + bg_event 9, 0, BGEVENT_READ, CeladonGameCornerPosterScript def_object_events object_event 5, 2, SPRITE_CLERK, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_GREEN, OBJECTTYPE_COMMAND, jumpstd, gamecornercoinvendor, -1 @@ -59,6 +59,25 @@ CeladonGameCorner_MapScriptHeader: object_event 8, 10, SPRITE_FAT_GUY, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, (1 << DAY) | (1 << NITE), PAL_NPC_RED, OBJECTTYPE_SCRIPT, 0, CeladonGameCornerFisherScript, -1 object_event 11, 3, SPRITE_GYM_GUY, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_RED, OBJECTTYPE_COMMAND, jumptextfaceplayer, CeladonGymGuyText, -1 object_event 2, 8, SPRITE_GRAMPS, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, PAL_NPC_GREEN, OBJECTTYPE_SCRIPT, 0, CeladonGameCornerGrampsScript, -1 + object_event 9, 1, SPRITE_RICH_BOY, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, OBJECTTYPE_TRAINER, 1, CeladonGameCornerRichBoyTobin, EVENT_RICH_BOY_TOBIN + + object_const_def + const CELADONGAMECORNER_CLERK + const CELADONGAMECORNER_RECEPTIONIST + const CELADONGAMECORNER_POKEFAN_M + const CELADONGAMECORNER_POKEFAN_F + const CELADONGAMECORNER_FISHING_GURU + const CELADONGAMECORNER_FAT_GUY + const CELADONGAMECORNER_GYM_GUY + const CELADONGAMECORNER_GRAMPS + const CELADONGAMECORNER_TOBIN + +CeladonGameCornerStairsScript: + checkevent EVENT_PUSHED_GAME_CORNER_SWITCH + iftruefwd .StairsOpen + changeblock 16, 0, $03 +.StairsOpen + endcallback CeladonGameCornerPokefanMScript: showtextfaceplayer CeladonGameCornerPokefanMText @@ -159,6 +178,75 @@ MapCeladonGameCornerSignpost9Script: special Special_CardFlip endtext +CeladonGameCornerRichBoyTobin: + trainer RICH_BOY, TOBIN, EVENT_BEAT_RICH_BOY_TOBIN, .SeenText, .BeatenText, 0, .AfterScript + +.Script: + checkevent EVENT_BEAT_RICH_BOY_TOBIN + iftruefwd .AfterScript + jumpthistextfaceplayer + +.SeenText: + text "What're you doing" + line "snooping around" + cont "here?" + + para "You better not be" + line "messing with Team" + cont "Valor!" + done + +.BeatenText: + text "I didn't see that" + line "coming…" + done + +.AfterScript + showtext .AfterText + readvar VAR_FACING + ifequalfwd RIGHT, .player_facing_right + ifequalfwd LEFT, .player_facing_left +; .player_facing_up + applymovement CELADONGAMECORNER_TOBIN, .LeaveMovementPlayerUp + sjumpfwd .done +.player_facing_left + applymovement CELADONGAMECORNER_TOBIN, .LeaveMovementPlayerRight + sjumpfwd .done +.player_facing_right + applymovement CELADONGAMECORNER_TOBIN, .LeaveMovementPlayerLeft +.done + playsound SFX_EXIT_BUILDING + disappear CELADONGAMECORNER_TOBIN + end + +.AfterText + text "Fine! There's" + line "nothing here" + cont "anyway!" + + para "The poster? Ha!" + line "It's just decor!" + done + +.LeaveMovementPlayerUp + step_right +.LeaveMovementPlayerLeft +rept 5 + step_right +endr + step_end + +.LeaveMovementPlayerRight + step_down + step_right + step_right + step_up +rept 5 + step_right +endr + step_end + + CeladonGameCornerReceptionistText: text "Welcome!" @@ -280,22 +368,32 @@ CeladonGameCornerGrampsText: line "but… What to do?" done -CeladonGameCornerPoster1Text: - text "Hey!" +CeladonGameCornerPosterScript: + checkevent EVENT_PUSHED_GAME_CORNER_SWITCH + iftruefwd .AlreadyPushed + showtext .PushSwitchText + playsound SFX_PUSH_BUTTON + playsound SFX_ENTER_DOOR + setevent EVENT_PUSHED_GAME_CORNER_SWITCH + changeblock 16, 0, $4d + end - para "Underneath this" - line "poster…" +.AlreadyPushed + showtext .AlreadyPushedText + end - para "There's nothing!" +.AlreadyPushedText + text "The switch has" + line "already been" + cont "pushed." done -CeladonGameCornerPoster2Text: +.PushSwitchText text "Hey!" - para "Underneath this" - line "poster…" - - para "There's nothing!" + para "A switch behind" + line "the poster!?" + cont "Let's push it!" done CeladonGameCornerLighterText: diff --git a/maps/CeladonUniversityClassroom2.asm b/maps/CeladonUniversityClassroom2.asm index fb6ba87777..2f57af6330 100644 --- a/maps/CeladonUniversityClassroom2.asm +++ b/maps/CeladonUniversityClassroom2.asm @@ -17,8 +17,8 @@ CeladonUniversityClassroom2_MapScriptHeader: bg_event 7, 1, BGEVENT_JUMPTEXT, CeladonUniversityClassroom2Bookshelf2Text def_object_events - object_event 2, 1, SPRITE_BLANCHE, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, OBJECTTYPE_COMMAND, jumptextfaceplayer, CeladonUniversityClassroom2BlancheText, EVENT_CELADON_UNIVERSITY_BLANCHE - object_event 2, 1, SPRITE_TEACHER, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_BLUE, OBJECTTYPE_COMMAND, jumptextfaceplayer, CeladonUniversityClassroom2TeacherText, EVENT_SHAMOUTI_COAST_BLANCHE + object_event 2, 1, SPRITE_BLANCHE, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, (1 << MORN) | (1 << DAY), 0, OBJECTTYPE_COMMAND, jumptextfaceplayer, CeladonUniversityClassroom2BlancheText, -1 + object_event 2, 1, SPRITE_TEACHER, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, (1 << EVE) | (1 << NITE), PAL_NPC_BLUE, OBJECTTYPE_COMMAND, jumptextfaceplayer, CeladonUniversityClassroom2TeacherText, -1 object_event 4, 5, SPRITE_SCHOOLBOY, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, PAL_NPC_RED, OBJECTTYPE_COMMAND, jumptextfaceplayer, CeladonUniversityClassroom2YoungsterText, -1 object_event 2, 7, SPRITE_CHILD, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, PAL_NPC_PURPLE, OBJECTTYPE_COMMAND, jumptextfaceplayer, CeladonUniversityClassroom2ChildText, -1 object_event 5, 7, SPRITE_LADY, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, PAL_NPC_GREEN, OBJECTTYPE_COMMAND, jumptextfaceplayer, CeladonUniversityClassroom2LadyText, -1 @@ -40,11 +40,8 @@ CeladonUniversityClassroom2TeacherText: text "I'm afraid Blanche" line "isn't available." - para "I'm the substitute" - line "until they return" - - para "from an errand on" - line "Shamouti Island." + para "They only teach" + line "during the day." done CeladonUniversityClassroom2YoungsterText: diff --git a/maps/CeladonUniversityClassroom3.asm b/maps/CeladonUniversityClassroom3.asm index 21ea4524d4..5005dae643 100644 --- a/maps/CeladonUniversityClassroom3.asm +++ b/maps/CeladonUniversityClassroom3.asm @@ -17,8 +17,8 @@ CeladonUniversityClassroom3_MapScriptHeader: bg_event 7, 1, BGEVENT_JUMPTEXT, CeladonUniversityClassroom3Bookshelf2Text def_object_events - object_event 2, 1, SPRITE_SPARK, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, OBJECTTYPE_COMMAND, jumptextfaceplayer, CeladonUniversityClassroom3SparkText, EVENT_CELADON_UNIVERSITY_SPARK - object_event 2, 1, SPRITE_TEACHER, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_GREEN, OBJECTTYPE_COMMAND, jumptextfaceplayer, CeladonUniversityClassroom3TeacherText, EVENT_SHAMOUTI_COAST_SPARK + object_event 2, 1, SPRITE_SPARK, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, (1 << MORN) | (1 << DAY), 0, OBJECTTYPE_COMMAND, jumptextfaceplayer, CeladonUniversityClassroom3SparkText, -1 + object_event 2, 1, SPRITE_TEACHER, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, (1 << EVE) | (1 << NITE), PAL_NPC_GREEN, OBJECTTYPE_COMMAND, jumptextfaceplayer, CeladonUniversityClassroom3TeacherText, -1 object_event 4, 5, SPRITE_CHILD, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, PAL_NPC_RED, OBJECTTYPE_COMMAND, jumptextfaceplayer, CeladonUniversityClassroom3ChildText, -1 object_event 3, 7, SPRITE_LASS, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, OBJECTTYPE_COMMAND, jumptextfaceplayer, CeladonUniversityClassroom3LassText, -1 object_event 4, 7, SPRITE_SUPER_NERD, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, 0, OBJECTTYPE_COMMAND, jumptextfaceplayer, CeladonUniversityClassroom3Super_nerdText, -1 @@ -46,12 +46,8 @@ CeladonUniversityClassroom3TeacherText: text "Are you looking" line "for Spark?" - para "He's out doing" - line "something on" - cont "Shamouti Island." - - para "I'm subbing in for" - line "his classes." + para "He will be back" + line "tomrrow morning." done CeladonUniversityClassroom3ChildText: diff --git a/maps/CeladonUniversityClassroom4.asm b/maps/CeladonUniversityClassroom4.asm index 6e4e1403ca..9d80c30c18 100644 --- a/maps/CeladonUniversityClassroom4.asm +++ b/maps/CeladonUniversityClassroom4.asm @@ -18,8 +18,8 @@ CeladonUniversityClassroom4_MapScriptHeader: def_object_events object_event 5, 2, SPRITE_ACE_TRAINER_M, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, 0, OBJECTTYPE_SCRIPT, 0, CeladonUniversityClassroom4RaymondScript, -1 - object_event 2, 1, SPRITE_CANDELA, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, OBJECTTYPE_COMMAND, jumptextfaceplayer, CeladonUniversityClassroom4CandelaText, EVENT_CELADON_UNIVERSITY_CANDELA - object_event 2, 1, SPRITE_TEACHER, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_RED, OBJECTTYPE_COMMAND, jumptextfaceplayer, CeladonUniversityClassroom4TeacherText, EVENT_SHAMOUTI_COAST_CANDELA + object_event 2, 1, SPRITE_CANDELA, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, (1 << MORN) | (1 << DAY), 0, OBJECTTYPE_COMMAND, jumptextfaceplayer, CeladonUniversityClassroom4CandelaText, -1 + object_event 2, 1, SPRITE_TEACHER, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, (1 << EVE) | (1 << NITE), PAL_NPC_RED, OBJECTTYPE_COMMAND, jumptextfaceplayer, CeladonUniversityClassroom4TeacherText, -1 object_event 2, 5, SPRITE_BUG_CATCHER, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, OBJECTTYPE_COMMAND, jumptextfaceplayer, CeladonUniversityClassroom4Bug_catcherText, -1 object_event 3, 7, SPRITE_FISHER, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, OBJECTTYPE_COMMAND, jumptextfaceplayer, CeladonUniversityClassroom4FisherText, -1 object_event 5, 7, SPRITE_AROMA_LADY, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, OBJECTTYPE_COMMAND, jumptextfaceplayer, CeladonUniversityClassroom4LadyText, -1 @@ -162,15 +162,9 @@ CeladonUniversityClassroom4CandelaText: done CeladonUniversityClassroom4TeacherText: - text "I'm just a sub-" - line "stitute." - - para "The usual instruc-" - line "tor, Candela, went" - - para "off to Shamouti" - line "Island for some" - cont "reason." + text "Candela? She only" + line "teaches during the" + cont "day." done CeladonUniversityClassroom4Bug_catcherText: diff --git a/maps/CherrygroveBay.asm b/maps/CherrygroveBay.asm index 4cb1246cbf..f13c515fe4 100644 --- a/maps/CherrygroveBay.asm +++ b/maps/CherrygroveBay.asm @@ -11,6 +11,7 @@ CherrygroveBay_MapScriptHeader: def_bg_events bg_event 21, 21, BGEVENT_JUMPSTD, treegrotto, HIDDENGROTTO_CHERRYGROVE_BAY bg_event 22, 21, BGEVENT_JUMPSTD, treegrotto, HIDDENGROTTO_CHERRYGROVE_BAY + bg_event 11, 12, BGEVENT_READ, CherrygroveBayGalarianBirdsScript def_object_events object_event 9, 32, SPRITE_HIKER, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, OBJECTTYPE_SCRIPT, 0, CherrygroveBayHikerScript, -1 @@ -28,6 +29,115 @@ CherrygroveBay_MapScriptHeader: fruittree_event 15, 11, FRUITTREE_CHERRYGROVE_BAY_5, GREPA_BERRY, PAL_NPC_YELLOW fruittree_event 14, 13, FRUITTREE_CHERRYGROVE_BAY_6, TAMATO_BERRY, PAL_NPC_RED +CherrygroveBayGalarianBirdsScript: + callasm CheckForLures + iffalse_endtext ; User has no lures, do nothing + opentext + writetext .LikeToUseItemText + yesorno + iffalse_endtext + writetext .WhichLureText + callasm CheckForLures + callasm SetUpLureMenu + iffalse_endtext ; User canceled the menu + writetext .YouSprayedTheLureText + waitbutton + ifequalfwd POTENT_LURE_MENU_OPT, .Galarian_Articuno + ifequalfwd MALIGN_LURE_MENU_OPT, .Galarian_Zapdos +; HARSH_LURE_MENU_OPT, .Galarian_Moltres + checkevent EVENT_CHERRYGROVE_BAY_FOUGHT_GALARIAN_MOLTRES + iftruefwd .NothingHappens + closetext + callasm GalarianMoltresEvent + opentext + farwritetext MoltresText + cry MOLTRES + pause 15 + closetext + loadwildmon MOLTRES, GALARIAN_FORM, 65 + loadvar VAR_BATTLETYPE, BATTLETYPE_LEGENDARY + startbattle + setevent EVENT_CHERRYGROVE_BAY_FOUGHT_GALARIAN_MOLTRES + reloadmapafterbattle + special CheckBattleCaughtResult + iffalsefwd .NoCatchGalarianMoltres + setflag ENGINE_PLAYER_CAUGHT_GALARIAN_MOLTRES +.NoCatchGalarianMoltres + end + +.Galarian_Articuno + checkevent EVENT_CHERRYGROVE_BAY_FOUGHT_GALARIAN_ARTICUNO + iftruefwd .NothingHappens + closetext + callasm GalarianArticunoEvent + opentext + farwritetext ArticunoText + cry ARTICUNO + pause 15 + closetext + loadwildmon ARTICUNO, GALARIAN_FORM, 65 + loadvar VAR_BATTLETYPE, BATTLETYPE_LEGENDARY + startbattle + setevent EVENT_CHERRYGROVE_BAY_FOUGHT_GALARIAN_ARTICUNO + reloadmapafterbattle + special CheckBattleCaughtResult + iffalsefwd .NoCatchGalarianArticuno + setflag ENGINE_PLAYER_CAUGHT_GALARIAN_ARTICUNO +.NoCatchGalarianArticuno + end + +.Galarian_Zapdos + checkevent EVENT_CHERRYGROVE_BAY_FOUGHT_GALARIAN_ZAPDOS + iftruefwd .NothingHappens + closetext + callasm GalarianZapdosEvent + opentext + farwritetext ZapdosText + cry ZAPDOS + pause 15 + closetext + loadwildmon ZAPDOS, GALARIAN_FORM, 65 + loadvar VAR_BATTLETYPE, BATTLETYPE_LEGENDARY + startbattle + setevent EVENT_CHERRYGROVE_BAY_FOUGHT_GALARIAN_ZAPDOS + reloadmapafterbattle + special CheckBattleCaughtResult + iffalsefwd .NoCatchGalarianZapdos + setflag ENGINE_PLAYER_CAUGHT_GALARIAN_ZAPDOS +.NoCatchGalarianZapdos + end + +.NothingHappens + writetext .NothingHappensText + waitbutton + endtext + +.GreatTreeText + text "It's The Great" + line "Tree of Cherry-" + cont "grove!" + done + +.LikeToUseItemText + text "Would you like to" + line "use a Lure on" + cont "The Great Tree?" + done + +.WhichLureText + text "Which Lure would" + line "you like to use?" + done + +.YouSprayedTheLureText + text "You sprayed the" + line "Lure on the tree." + done + +.NothingHappensText + text "Nothing happened…" + done + CherrygroveBayHikerScript: faceplayer opentext @@ -100,9 +210,15 @@ GenericTrainerSwimmerfSally: GenericTrainerSwimmerfTara: generictrainer SWIMMERF, TARA, EVENT_BEAT_SWIMMERF_TARA, .SeenText, .BeatenText - text "There's a grove of" - line "golden trees north" - cont "of Ecruteak City." + text "North of here is" + line "The Great Tree of" + cont "Cherrygrove." + + para "Some say many bird" + line "#MON come from" + + para "far away to nest" + line "there." para "I'd love to visit" line "someday." @@ -123,16 +239,22 @@ GenericTrainerHikerTony: generictrainer HIKER, TONY, EVENT_BEAT_HIKER_TONY, .SeenText, .BeatenText text "After a long hike," - line "resting under the" + line "I saw what looked" + + para "like a big bird" + line "flying this way!" - para "cherry trees hits" - line "the spot." + para "Where was it head-" + line "ing to and why?" done .SeenText: text "I hiked through" line "miles of woods" - cont "to get here!" + + para "just to see the" + line "legendary bird" + cont "#MON!" done .BeatenText: @@ -145,6 +267,16 @@ CherrygroveBayFisherText: para "from afar while" line "I fish." + + para "Oh! And I also saw" + line "some really big" + + para "birds the other" + line "day." + + para "I think they were" + line "headed to that big" + cont "ol' tree nearby?" done CherrygroveBayHikerText: diff --git a/maps/CinnabarVolcanoB2F.asm b/maps/CinnabarVolcanoB2F.asm index 9bbf1864a0..fe49dbba8f 100644 --- a/maps/CinnabarVolcanoB2F.asm +++ b/maps/CinnabarVolcanoB2F.asm @@ -94,11 +94,9 @@ CinnabarVolcanoMoltres: setevent EVENT_CINNABAR_VOLCANO_MOLTRES reloadmapafterbattle special CheckBattleCaughtResult - iffalsefwd .NoCandela + iffalsefwd .NoCatch setflag ENGINE_PLAYER_CAUGHT_MOLTRES - setevent EVENT_CELADON_UNIVERSITY_CANDELA - clearevent EVENT_SHAMOUTI_COAST_CANDELA -.NoCandela +.NoCatch checkevent EVENT_SEAFOAM_ISLANDS_ARTICUNO iffalsefwd .end checkevent EVENT_ROUTE_10_ZAPDOS diff --git a/maps/FastShipB1F.asm b/maps/FastShipB1F.asm index 2950f72354..ddd67f9435 100644 --- a/maps/FastShipB1F.asm +++ b/maps/FastShipB1F.asm @@ -157,7 +157,7 @@ GenericTrainerSailorKenneth: done GenericTrainerTeacherShirley: - generictrainer TEACHER, SHIRLEY, EVENT_BEAT_TEACHER_SHIRLEY, TeacherShirleySeenText, TeacherShirleyBeatenText + generictrainer TEACHER_F, SHIRLEY, EVENT_BEAT_TEACHER_SHIRLEY, TeacherShirleySeenText, TeacherShirleyBeatenText text "We're on a field" line "trip to the ruins" diff --git a/maps/FireIslandRoof.asm b/maps/FireIslandRoof.asm index 156f3c4df0..8787cd0207 100644 --- a/maps/FireIslandRoof.asm +++ b/maps/FireIslandRoof.asm @@ -11,51 +11,5 @@ FireIslandRoof_MapScriptHeader: def_bg_events def_object_events - object_event 5, 5, SPRITE_CANDELA, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, 0, OBJECTTYPE_SCRIPT, 0, FireIslandRoofCandelaScript, EVENT_SHAMOUTI_COAST_CANDELA object_const_def - const FIREISLANDROOF_CANDELA - -FireIslandRoofCandelaScript: - faceplayer - opentext - writetext .GreetingText - yesorno - iffalsefwd .Refused - writetext .SeenText - waitbutton - closetext - winlosstext .BeatenText, 0 - loadtrainer CANDELA, 1 - startbattle - reloadmapafterbattle - setevent EVENT_BEAT_CANDELA - showtext .AfterText - playsound SFX_WARP_TO - applyonemovement FIREISLANDROOF_CANDELA, teleport_from - disappear FIREISLANDROOF_CANDELA - clearevent EVENT_CELADON_UNIVERSITY_CANDELA - end - -.Refused: - jumpopenedtext .RefusedText - -.GreetingText: - text "TODO" - done - -.SeenText: - text "TODO" - done - -.BeatenText: - text "TODO" - done - -.AfterText: - text "TODO" - done - -.RefusedText: - text "TODO" - done diff --git a/maps/IceIslandRoof.asm b/maps/IceIslandRoof.asm index cb7c0b23c3..44b520cb4d 100644 --- a/maps/IceIslandRoof.asm +++ b/maps/IceIslandRoof.asm @@ -11,51 +11,5 @@ IceIslandRoof_MapScriptHeader: def_bg_events def_object_events - object_event 5, 5, SPRITE_BLANCHE, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, 0, OBJECTTYPE_SCRIPT, 0, IceIslandRoofBlancheScript, EVENT_SHAMOUTI_COAST_BLANCHE object_const_def - const ICEISLANDROOF_BLANCHE - -IceIslandRoofBlancheScript: - faceplayer - opentext - writetext .GreetingText - yesorno - iffalsefwd .Refused - writetext .SeenText - waitbutton - closetext - winlosstext .BeatenText, 0 - loadtrainer BLANCHE, 1 - startbattle - reloadmapafterbattle - setevent EVENT_BEAT_BLANCHE - showtext .AfterText - playsound SFX_WARP_TO - applyonemovement ICEISLANDROOF_BLANCHE, teleport_from - disappear ICEISLANDROOF_BLANCHE - clearevent EVENT_CELADON_UNIVERSITY_BLANCHE - end - -.Refused: - jumpopenedtext .RefusedText - -.GreetingText: - text "TODO" - done - -.SeenText: - text "TODO" - done - -.BeatenText: - text "TODO" - done - -.AfterText: - text "TODO" - done - -.RefusedText: - text "TODO" - done diff --git a/maps/LightningIslandRoof.asm b/maps/LightningIslandRoof.asm index e8f3106733..884dc307cd 100644 --- a/maps/LightningIslandRoof.asm +++ b/maps/LightningIslandRoof.asm @@ -11,51 +11,5 @@ LightningIslandRoof_MapScriptHeader: def_bg_events def_object_events - object_event 5, 5, SPRITE_SPARK, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, 0, OBJECTTYPE_SCRIPT, 0, LightningIslandRoofSparkScript, EVENT_SHAMOUTI_COAST_SPARK object_const_def - const LIGHTNINGISLANDROOF_SPARK - -LightningIslandRoofSparkScript: - faceplayer - opentext - writetext .GreetingText - yesorno - iffalsefwd .Refused - writetext .SeenText - waitbutton - closetext - winlosstext .BeatenText, 0 - loadtrainer SPARK_T, 1 - startbattle - reloadmapafterbattle - setevent EVENT_BEAT_SPARK - showtext .AfterText - playsound SFX_WARP_TO - applyonemovement LIGHTNINGISLANDROOF_SPARK, teleport_from - disappear LIGHTNINGISLANDROOF_SPARK - clearevent EVENT_CELADON_UNIVERSITY_SPARK - end - -.Refused: - jumpopenedtext .RefusedText - -.GreetingText: - text "TODO" - done - -.SeenText: - text "TODO" - done - -.BeatenText: - text "TODO" - done - -.AfterText: - text "TODO" - done - -.RefusedText: - text "TODO" - done diff --git a/maps/RocketHideoutB1F.asm b/maps/RocketHideoutB1F.asm index d19d1ccfdc..3bede32d5b 100644 --- a/maps/RocketHideoutB1F.asm +++ b/maps/RocketHideoutB1F.asm @@ -2,6 +2,7 @@ RocketHideoutB1F_MapScriptHeader: def_scene_scripts def_callbacks + callback MAPCALLBACK_TILES, RocketHideoutB1FDoorScript def_warp_events warp_event 15, 2, ROCKET_HIDEOUT_B2F, 1 @@ -13,5 +14,160 @@ RocketHideoutB1F_MapScriptHeader: def_coord_events def_bg_events + bg_event 13, 15, BGEVENT_ITEM + MAX_REVIVE, EVENT_ROCKET_HIDEOUT_B1F_HIDDEN_MAX_REVIVE def_object_events + object_event 20, 18, SPRITE_BLACK_BELT, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, 0, OBJECTTYPE_TRAINER, 4, RocketHideoutB1FBlackBeltRylan, -1 + object_event 4, 6, SPRITE_SCIENTIST, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, OBJECTTYPE_GENERICTRAINER, 4, RocketHideoutB1FScientistSanders, -1 + object_event 18, 8, SPRITE_PICNICKER, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, 0, OBJECTTYPE_GENERICTRAINER, 1, RocketHideoutB1FPicnickerZane, -1 + object_event 10, 17, SPRITE_BATTLE_GIRL, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, OBJECTTYPE_GENERICTRAINER, 4, RocketHideoutB1FBattleGirlSasha, -1 + object_event 7, 23, SPRITE_LASS, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, OBJECTTYPE_GENERICTRAINER, 3, RocketHideoutB1FLassMavis, -1 + itemball_event 1, 17, MOON_STONE, 1, EVENT_PICKED_UP_MOON_STONE_FROM_ROCKET_HIDEOUT_B1F + itemball_event 3, 14, ZINC, 1, EVENT_PICKED_UP_ZINC_FROM_ROCKET_HIDEOUT_B1F + +RocketHideoutB1FDoorScript: + checkevent EVENT_BEAT_BLACK_BELT_RYLAN + iftruefwd .DoorOpen + changeblock 16, 16, $13 +.DoorOpen + endcallback + +RocketHideoutB1FBlackBeltRylan: + trainer BLACKBELT_T, RYLAN, EVENT_BEAT_BLACK_BELT_RYLAN, .SeenText, .BeatenText, 0, .AfterScript + +.Script: + checkevent EVENT_BEAT_BLACK_BELT_RYLAN + iftruefwd .AfterScript + jumpthistextfaceplayer + +.SeenText: + text "In Team Valor, we" + line "push our limits." + + para "Strength is all" + line "that matters!" + done + +.AfterScript + checkjustbattled + iffalsefwd .AfterText + changeblock 16, 16, $0d + playsound SFX_ENTER_DOOR + waitsfx + refreshmap + special RestartMapMusic + end + +.AfterText + jumptextfaceplayer .Text + end + +.Text + text "You've got guts…" + + para "Perhaps you should" + line "join Team Valor." + done + +.BeatenText: + text "Your strength is" + line "superior…" + done + +RocketHideoutB1FScientistSanders: + generictrainer SCIENTIST, SANDERS, EVENT_BEAT_SCIENTIST_SANDERS, .SeenText, .BeatenText + + text "Leader Blanche ex-" + line "cels in strategy." + + para "He decides where" + line "we are stationed." + done + +.SeenText: + text "Team Mystic" + line "values strategy." + + para "Only a strong mind" + line "could win here." + done + +.BeatenText: + text "Your tactics are" + line "flawless!" + done + +RocketHideoutB1FPicnickerZane: + generictrainer PICNICKER, ZANE, EVENT_BEAT_PICNICKER_ZANE, .SeenText, .BeatenText + + text "Spark would be" + line "impressed." + + para "Let's see if you" + line "can keep going!" + done + +.SeenText: + text "Team Instinct is" + line "all about trusting" + cont "your gut." + + para "No time to think," + line "just act!" + done + +.BeatenText: + text "You've got that" + line "“spark”, alright." + + para "Keep it alive!" + done + +RocketHideoutB1FBattleGirlSasha: + generictrainer BATTLE_GIRL, SASHA, EVENT_BEAT_BATTLE_GIRL_SASHA, .SeenText, .BeatenText + + text "The flame of Valor" + line "burns within you." + + para "Candela's trial" + line "will test your" + cont "limits." + done + +.SeenText: + text "Team Valor's all" + line "about passion and" + cont "taking risks." + + para "Think you can" + line "match my in-" + cont "tensity?" + done + +.BeatenText: + text "Your flame…" + line "Too bright!" + done + +RocketHideoutB1FLassMavis: + generictrainer LASS, MAVIS, EVENT_BEAT_LASS_MAVIS, .SeenText, .BeatenText + + text "Spark's battles" + line "are unpredictable." + + para "Thats why I mix" + line "things up!" + done + +.SeenText: + text "My strategy?" + + para "Pure instinct and" + line "nothing more!" + done + +.BeatenText: + text "I guess your in-" + line "stinct is better" + cont "than mine." + done diff --git a/maps/RocketHideoutB2F.asm b/maps/RocketHideoutB2F.asm index 967c1c6b69..f67f7b67db 100644 --- a/maps/RocketHideoutB2F.asm +++ b/maps/RocketHideoutB2F.asm @@ -15,3 +15,29 @@ RocketHideoutB2F_MapScriptHeader: def_bg_events def_object_events + object_event 20, 6, SPRITE_HEX_MANIAC, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, 0, OBJECTTYPE_GENERICTRAINER, 2, RocketHideoutB2FHexManiacCoryn, -1 + itemball_event 16, 2, ULTRA_BALL, 1, EVENT_PICKED_UP_ULTRA_BALL_FROM_ROCKET_HIDEOUT_B2F + itemball_event 1, 5, SUPER_REPEL, 1, EVENT_PICKED_UP_SUPER_REPEL_FROM_ROCKET_HIDEOUT_B2F + itemball_event 6, 6, NUGGET, 1, EVENT_PICKED_UP_NUGGET_FROM_ROCKET_HIDEOUT_B2F + itemball_event 3, 15, RARE_CANDY, 1, EVENT_PICKED_UP_RARE_CANDY_FROM_ROCKET_HIDEOUT_B2F + +RocketHideoutB2FHexManiacCoryn: + generictrainer HEX_MANIAC, CORYN, EVENT_BEAT_HEX_MANIAC_CORYN, .SeenText, .BeatenText + + text "Team Mystic could" + line "use more talents" + cont "like yours." + done + +.SeenText: + text "You might have" + line "potential for" + cont "Team Mystic." + + para "Let me test your" + line "limits." + done + +.BeatenText: + text "Squared away…" + done diff --git a/maps/RocketHideoutB3F.asm b/maps/RocketHideoutB3F.asm index e8e1ea7869..a6145e5868 100644 --- a/maps/RocketHideoutB3F.asm +++ b/maps/RocketHideoutB3F.asm @@ -10,5 +10,54 @@ RocketHideoutB3F_MapScriptHeader: def_coord_events def_bg_events + bg_event 19, 13, BGEVENT_ITEM + FULL_HEAL, EVENT_ROCKET_HIDEOUT_B3F_HIDDEN_FULL_HEAL def_object_events + object_event 18, 8, SPRITE_COSPLAYER, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, OBJECTTYPE_GENERICTRAINER, 3, RocketHideoutB3FCosplayerLyric, -1 + object_event 2, 18, SPRITE_COOL_DUDE, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, OBJECTTYPE_GENERICTRAINER, 3, RocketHideoutB3FCoolDudeDaric, -1 + itemball_event 12, 10, CARBOS, 1, EVENT_PICKED_UP_CARBOS_FROM_ROCKET_HIDEOUT_B3F + itemball_event 18, 13, ELIXIR, 1, EVENT_PICKED_UP_ELIXIR_FROM_ROCKET_HIDEOUT_B3F + +RocketHideoutB3FCosplayerLyric: + generictrainer COSPLAYER, LYRIC, EVENT_BEAT_COSPLAYER_LYRIC, .SeenText, .BeatenText + + text "Leader Spark's" + line "energy is high!" + + para "Hope you're ready" + line "for a jolt!" + done + +.SeenText: + text "Instinct doesn't" + line "need calculations." + + para "We just strike" + line "fast and hard." + done + +.BeatenText: + text "Can't keep up!" + done + +RocketHideoutB3FCoolDudeDaric: + generictrainer COOLTRAINERM, DARIC, EVENT_BEAT_COOL_DUDE_DARIC, .SeenText, .BeatenText + + text "Leader Blanche ex-" + line "pects no less than" + cont "maximum effort!" + done + +.SeenText: + text "Emotion clouds" + line "judgement." + + para "Let's see if your" + line "focus is good." + + done + +.BeatenText: + text "My judgement was" + line "flawed…" + done diff --git a/maps/RocketHideoutB4F.asm b/maps/RocketHideoutB4F.asm index 8d331e9a1d..e4dcd0f0cd 100644 --- a/maps/RocketHideoutB4F.asm +++ b/maps/RocketHideoutB4F.asm @@ -1,7 +1,11 @@ RocketHideoutB4F_MapScriptHeader: def_scene_scripts + scene_script RocketHideoutB4FMeetLeadersScene + scene_script RocketHideoutB4FMetLeadersScene def_callbacks + callback MAPCALLBACK_OBJECTS, RocketHideoutB4FLiftKeyScript + callback MAPCALLBACK_TILES, RocketHideoutB4FDoorScript def_warp_events warp_event 11, 10, ROCKET_HIDEOUT_B3F, 2 @@ -9,7 +13,613 @@ RocketHideoutB4F_MapScriptHeader: warp_event 17, 15, ROCKET_HIDEOUT_ELEVATOR, 1 def_coord_events + coord_event 16, 11, 0, RocketHideoutB4FMeetLeadersLeftScript + coord_event 17, 11, 0, RocketHideoutB4FMeetLeadersRightScript def_bg_events + bg_event 17, 1, BGEVENT_ITEM + MAX_POTION, EVENT_ROCKET_HIDEOUT_B4F_HIDDEN_MAX_POTION def_object_events + object_event 17, 3, SPRITE_CANDELA, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, (1 << EVE) | (1 << NITE), 0, OBJECTTYPE_SCRIPT, 0, RocketHideoutB4FCandelaScript, -1 + object_event 16, 6, SPRITE_SPARK, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, (1 << EVE) | (1 << NITE), 0, OBJECTTYPE_SCRIPT, 0, RocketHideoutB4FSparkScript, -1 + object_event 19, 6, SPRITE_BLANCHE, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, (1 << EVE) | (1 << NITE), 0, OBJECTTYPE_SCRIPT, 0, RocketHideoutB4FBlancheScript, -1 + object_event 3, 2, SPRITE_YOUNGSTER, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, OBJECTTYPE_SCRIPT, 0, RocketHideoutB4FYoungsterArdenScript, -1 + object_event 15, 12, SPRITE_TEACHER, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, OBJECTTYPE_TRAINER, 2, RocketHideoutB4FTeacherSerena, -1 + object_event 18, 12, SPRITE_SUPER_NERD, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, OBJECTTYPE_TRAINER, 2, RocketHideoutB4FSuperNerdNolan, -1 + keyitemball_event 2, 2, LIFT_KEY, EVENT_PICKED_UP_LIFT_KEY_FROM_ROCKET_HIDEOUT_B4F + itemball_event 1, 4, X_SP_ATK, 1, EVENT_PICKED_UP_X_SP_ATK_FROM_ROCKET_HIDEOUT_B4F + itemball_event 2, 12, PP_UP, 1, EVENT_PICKED_UP_PP_UP_FROM_ROCKET_HIDEOUT_B4F + itemball_event 4, 20, DUBIOUS_DISC, 1, EVENT_PICKED_UP_DUBIOUS_DISC_FROM_ROCKET_HIDEOUT_B4F + + object_const_def + const ROCKETHIDEOUTB4F_CANDELA + const ROCKETHIDEOUTB4F_SPARK + const ROCKETHIDEOUTB4F_BLANCHE + const ROCKETHIDEOUTB4F_YOUNGSTER_ARDEN + const ROCKETHIDEOUTB4F_TEACHER_SERENA + const ROCKETHIDEOUTB4F_SUPER_NERD_NOLAN + const ROCKETHIDEOUTB4F_LIFT_KEY + +RocketHideoutB4FDoorScript: + checkevent EVENT_BEAT_TEACHER_SERENA + iftruefwd .beat_serena + changeblock 16, 10, $69 + endcallback +.beat_serena + checkevent EVENT_BEAT_SUPER_NERD_NOLAN + iftruefwd .beat_theo + changeblock 16, 10, $69 + endcallback +.beat_theo + changeblock 16, 10, $0d + endcallback + +RocketHideoutB4FLiftKeyScript: + checkevent EVENT_BEAT_YOUNGSTER_ARDEN + iftruefwd .beat_rory + disappear ROCKETHIDEOUTB4F_LIFT_KEY + endcallback +.beat_rory + appear ROCKETHIDEOUTB4F_LIFT_KEY + endcallback + +RocketHideoutB4FMeetLeadersLeftScript: + checktime (1 << EVE) | (1 << NITE) + iffalse TooEarly + applymovement PLAYER, .MovePlayerUp + sjumpfwd RocketHideoutB4FMeetLeadersScript + +.MovePlayerUp: + step_up + step_up + step_up + step_up + step_right + turn_head_up + step_end + +RocketHideoutB4FMeetLeadersRightScript: + checktime (1 << EVE) | (1 << NITE) + iffalse TooEarly + applymovement PLAYER, .MovePlayerUp + sjumpfwd RocketHideoutB4FMeetLeadersScript + +.MovePlayerUp: + step_up + step_up + step_up + step_up + step_end + +RocketHideoutB4FMeetLeadersScript: + setscene $1 + showtext .CandelaIntro1Text + turnobject ROCKETHIDEOUTB4F_SPARK, RIGHT + showtext .BlancheIntro1Text + turnobject ROCKETHIDEOUTB4F_BLANCHE, LEFT + turnobject ROCKETHIDEOUTB4F_SPARK, UP + pause 20 + turnobject ROCKETHIDEOUTB4F_SPARK, RIGHT + showtext .SparkIntro1Text + turnobject ROCKETHIDEOUTB4F_SPARK, UP + turnobject ROCKETHIDEOUTB4F_BLANCHE, UP + showtext .CandelaIntro2Text + turnobject ROCKETHIDEOUTB4F_SPARK, RIGHT + showtext .BlancheIntro2Text + turnobject ROCKETHIDEOUTB4F_BLANCHE, LEFT + turnobject ROCKETHIDEOUTB4F_SPARK, UP + showtext .SparkIntro2Text + turnobject ROCKETHIDEOUTB4F_SPARK, DOWN + showtext .SparkIntro3Text + turnobject ROCKETHIDEOUTB4F_BLANCHE, DOWN + showtext .CandelaIntro3Text + setmapobjectmovedata ROCKETHIDEOUTB4F_SPARK, SPRITEMOVEDATA_STANDING_DOWN + setmapobjectmovedata ROCKETHIDEOUTB4F_BLANCHE, SPRITEMOVEDATA_STANDING_DOWN + end + + +.CandelaIntro1Text: + text "Candela: I'm tell-" + line "ing you, raw power" + cont "wins every time!" + + para "Training should be" + line "tough, like a" + cont "battle!" + done + +.BlancheIntro1Text: + text "Blanche: Strength" + line "is pointless with-" + cont "out strategy." + + para "Smart planning" + line "wins, every time." + done + +.SparkIntro1Text: + text "Spark: Both of you" + line "are missing the" + cont "point!" + + para "Instinct is key-" + line "trust your gut!" + done + +.CandelaIntro2Text: + text "Candela: Instinct?" + line "That's just guess-" + cont "work!" + + para "Real trainers rely" + line "on strength!" + done + +.BlancheIntro2Text: + text "Blanche: Candela," + line "Spark, this isn't" + cont "the time!" + + para "What about the" + line "The Great Tree" + cont "project?" + done + +.SparkIntro2Text: + text "Spark: Right! The" + line "big cherry tree-" + done + +.SparkIntro3Text: + text "Wait, who's that?" + done + +.CandelaIntro3Text: + text "Candela: Looks" + line "like this one has" + cont "has power!" + + para "Since you made it" + line "this far, let's" + cont "battle!" + + para "If you win, we'll" + line "let you in on our" + cont "big project!" + done + +RocketHideoutB4FMeetLeadersScene: +RocketHideoutB4FMetLeadersScene: +TooEarly: + end + + +RocketHideoutB4FSparkScript: + faceplayer + checkevent EVENT_BEAT_SPARK + iftrue_jumptext .AfterText2 + opentext + writetext .GreetingText + yesorno + iffalsefwd .Refused + writetext .SeenText + waitbutton + closetext + winlosstext .BeatenText, 0 + loadtrainer SPARK_T, 1 + startbattle + reloadmapafterbattle + setevent EVENT_BEAT_SPARK + opentext + writetext .AfterText1 + waitbutton + verbosegivekeyitem MALIGN_LURE + writetext .AfterText2 + waitbutton + checkevent EVENT_BEAT_CANDELA + iffalse_endtext + checkevent EVENT_BEAT_BLANCHE + iffalse_endtext + sjump RocketHideoutB4FDefeatedAllLeadersScript + +.Refused: + jumpopenedtext .RefusedText + +.GreetingText: + text "Spark: Hey! Ready" + line "to trust your gut?" + cont "In a battle?" + done + +.SeenText: + text "Sweet! Let's see" + line "how far your inst-" + cont "inct takes you!" + done + +.BeatenText: + text "Whoa, you totally" + line "nailed it!" + + para "Guess your gut" + line "was right!" + done + +.AfterText1: + text "Spark: Here's the" + line "Malign Lure." + done + +.AfterText2: + text "The Malign Lure" + line "draws on bold" + cont "energy." + + para "It's my way of" + line "sparking some" + cont "creativity!" + + para "Use it boldly!" + done + +.RefusedText: + text "Aw, bummer!" + line "Don't let fear" + cont "hold you back!" + + para "Come back when" + line "you're feeling it." + done + +RocketHideoutB4FCandelaScript: + faceplayer + checkevent EVENT_BEAT_CANDELA + iftrue_jumptext .AfterText2 + opentext + writetext .GreetingText + yesorno + iffalsefwd .Refused + writetext .SeenText + waitbutton + closetext + winlosstext .BeatenText, 0 + loadtrainer CANDELA, 1 + startbattle + reloadmapafterbattle + setevent EVENT_BEAT_CANDELA + opentext + writetext .AfterText1 + waitbutton + verbosegivekeyitem HARSH_LURE + writetext .AfterText2 + waitbutton + checkevent EVENT_BEAT_SPARK + iffalse_endtext + checkevent EVENT_BEAT_BLANCHE + iffalse_endtext + sjump RocketHideoutB4FDefeatedAllLeadersScript + +.Refused: + jumpopenedtext .RefusedText + +.GreetingText: + text "Candela: Ready to" + line "test your strength?" + done + +.SeenText: + text "That's the spirit!" + line "Show me your" + cont "power!" + done + +.BeatenText: + text "Alright, you've" + line "proven your" + cont "strength today." + + para "I'll admit defeat." + done + +.AfterText1: + text "Candela: Here's the" + line "Harsh Lure." + done + +.AfterText2: + text "Candela: The Harsh" + line "Lure draws fierce" + cont "power." + + para "This is my contri-" + line "bution to our" + cont "project." + + para "Use it wisely." + done + +.RefusedText: + text "No? Guess your" + line "not ready yet." + + para "Come back when you" + line "have more fire!" + done + +RocketHideoutB4FBlancheScript: + faceplayer + checkevent EVENT_BEAT_BLANCHE + iftrue_jumptext .AfterText2 + opentext + writetext .GreetingText + yesorno + iffalsefwd .Refused + writetext .SeenText + waitbutton + closetext + winlosstext .BeatenText, 0 + loadtrainer BLANCHE, 1 + startbattle + reloadmapafterbattle + setevent EVENT_BEAT_BLANCHE + opentext + writetext .AfterText1 + waitbutton + verbosegivekeyitem POTENT_LURE + writetext .AfterText2 + waitbutton + checkevent EVENT_BEAT_SPARK + iffalse_endtext + checkevent EVENT_BEAT_CANDELA + iffalse_endtext + sjump RocketHideoutB4FDefeatedAllLeadersScript + +.Refused: + jumpopenedtext .RefusedText + +.GreetingText: + text "Blanche: Do you" + line "value strategy?" + + para "Shall we test" + line "your tactics?" + done + +.SeenText: + text "Very well, let's" + line "see your" + cont "technique!" + done + +.BeatenText: + text "A well-executed" + line "plan, indeed." + + para "You've bested me." + done + +.AfterText1: + text "Blanche: This is" + line "the Potent Lure." + done + +.AfterText2: + text "The Potent Lure" + line "amplifies its" + cont "precision." + + para "It's my contri-" + line "bution to ensuring" + cont "our success." + + para "Use it carefully." + done + +.RefusedText: + text "Hmm, not" + line "feeling confident?" + + para "Return when you're" + line "ready to think" + cont "ahead." + done + +RocketHideoutB4FYoungsterArdenScript: + faceplayer + checkevent EVENT_BEAT_YOUNGSTER_ARDEN + iftruefwd .AfterBattle + opentext + writetext .GreetingText + closetext + winlosstext .BeatenText, 0 + loadtrainer YOUNGSTER, ARDEN + startbattle + reloadmapafterbattle + setevent EVENT_BEAT_YOUNGSTER_ARDEN + readvar VAR_FACING + ifnotequal RIGHT, .NotLeftOfArden + moveobject ROCKETHIDEOUTB4F_LIFT_KEY, 4, 2 +.NotLeftOfArden + appear ROCKETHIDEOUTB4F_LIFT_KEY +.AfterBattle + showtext .AfterText + end + +.GreetingText + text "Team Valor is…" + + para "Wait--no!" + + para "I mean, I think" + line "I'm lost!" + done + +.BeatenText: + text "Which way was" + line "the elevator?" + done + +.AfterText: + text "Aww, I dropped" + line "the lift key!" + + para "Candela is going" + line "to be so mad!" + done + +RocketHideoutB4FTeacherSerena: + trainer TEACHER_F, SERENA, EVENT_BEAT_TEACHER_SERENA, .SeenText, .AfterText, 0, .Script + +.Script + checkevent EVENT_BEAT_TEACHER_SERENA + iftruefwd .AfterScript + jumpthistextfaceplayer + +.AfterScript + checkevent EVENT_BEAT_SUPER_NERD_NOLAN + iftruefwd .DoorScript + endifjustbattled + jumptextfaceplayer .AfterText + end + +.DoorScript + checkjustbattled + iffalsefwd .skip_open + changeblock 16, 10, $0d + reloadmap + end +.skip_open + jumptextfaceplayer .AfterText + end + +.AfterText + text "The leaders are" + line "only here at" + cont "night." + + para "They work at" + line "the university" + cont "during the day." + done + +.SeenText: + text "Let me see if you" + line "are smart enough" + + para "to take on the" + line "leaders!" + done + +.BeatenText: + text "Class dismissed!" + done + +RocketHideoutB4FSuperNerdNolan: + trainer TEACHER_M, NOLAN, EVENT_BEAT_SUPER_NERD_NOLAN, .SeenText, .AfterText, 0, .Script + +.Script + checkevent EVENT_BEAT_SUPER_NERD_NOLAN + iftruefwd .AfterScript + jumpthistextfaceplayer + +.AfterScript + checkevent EVENT_BEAT_TEACHER_SERENA + iftruefwd .DoorScript + endifjustbattled + jumptextfaceplayer .AfterText + end + +.DoorScript + checkjustbattled + iffalsefwd .skip_open + changeblock 16, 10, $0d + reloadmap + end +.skip_open + jumptextfaceplayer .AfterText + end + +.AfterText + text "The leaders argue" + line "a lot, but they" + cont "are good friends." + done + +.SeenText: + text "You here to chal-" + line "lenge the leaders?" + + para "You need to beat" + line "me first!" + done + +.BeatenText: + text "I choked!" + done + +RocketHideoutB4FDefeatedAllLeadersScript: + closetext + special FadeOutPalettes + warpfacing UP, ROCKET_HIDEOUT_B4F, 17, 7 + turnobject ROCKETHIDEOUTB4F_SPARK, DOWN + turnobject ROCKETHIDEOUTB4F_BLANCHE, DOWN + special LoadMapPalettes + special FadeInPalettes_EnableDynNoApply + showtext .FinalText + end + +.FinalText: + text "Candela: You're" + line "stronger than I" + cont "expected." + + para "The sprays we've" + line "given you are more" + cont "than they seem." + + para "Blanche: Each" + line "lure contains the" + + para "essense of a" + line "legendary bird." + + para "They were created" + line "to call out to" + + para "others of their" + line "kind." + + para "Spark: But they're" + line "only useful in the" + cont "right place." + + para "That's why The" + line "Great Tree is" + line "important." + + para "Candela: The tree" + line "is ancient," + + para "a sacred site for" + line "roosting." + + para "It's connected to" + line "the energy of the" + cont "region." + + para "Blanche: Birds of" + line "great power have" + + para "gathered there for" + line "generations." + + para "The tree amplifies" + line "the call of the" + cont "lures." + + para "Spark: So if you" + line "use them there," + + para "who knows what" + line "might appear!" + done diff --git a/maps/RocketHideoutElevator.asm b/maps/RocketHideoutElevator.asm index 54c077827a..8a2ca8aa4a 100644 --- a/maps/RocketHideoutElevator.asm +++ b/maps/RocketHideoutElevator.asm @@ -15,6 +15,14 @@ RocketHideoutElevator_MapScriptHeader: RocketHideoutElevatorButton: opentext + checkkeyitem LIFT_KEY + iftruefwd .UseElevator + writetext .AppearsToNeedKeyText + waitbutton + closetext + end + +.UseElevator elevator .Floors closetext iffalse DoNothingScript @@ -30,3 +38,9 @@ RocketHideoutElevatorButton: elevfloor FLOOR_B2F, 5, ROCKET_HIDEOUT_B2F elevfloor FLOOR_B4F, 3, ROCKET_HIDEOUT_B4F db -1 ; end + +.AppearsToNeedKeyText + text "It appears to" + line "need a key to" + cont "operate." + done diff --git a/maps/Route10North.asm b/maps/Route10North.asm index 4161e6e98e..969aa1c298 100644 --- a/maps/Route10North.asm +++ b/maps/Route10North.asm @@ -214,11 +214,9 @@ Route10Zapdos: setevent EVENT_ROUTE_10_ZAPDOS reloadmapafterbattle special CheckBattleCaughtResult - iffalsefwd .NoSpark + iffalsefwd .NoCatch setflag ENGINE_PLAYER_CAUGHT_ZAPDOS - setevent EVENT_CELADON_UNIVERSITY_SPARK - clearevent EVENT_SHAMOUTI_COAST_SPARK -.NoSpark +.NoCatch checkevent EVENT_SEAFOAM_ISLANDS_ARTICUNO iffalsefwd .end checkevent EVENT_CINNABAR_VOLCANO_MOLTRES diff --git a/maps/Route14.asm b/maps/Route14.asm index e995356005..a246c1e43c 100644 --- a/maps/Route14.asm +++ b/maps/Route14.asm @@ -178,7 +178,7 @@ GenericTrainerSchoolboyTravis: done GenericTrainerTeacherClarice: - generictrainer TEACHER, CLARICE, EVENT_BEAT_TEACHER_CLARICE, .SeenText, .BeatenText + generictrainer TEACHER_F, CLARICE, EVENT_BEAT_TEACHER_CLARICE, .SeenText, .BeatenText text "Don't relax just" line "'cause you won." diff --git a/maps/Route15.asm b/maps/Route15.asm index af7eee3704..f771b195d5 100644 --- a/maps/Route15.asm +++ b/maps/Route15.asm @@ -27,7 +27,7 @@ Route15_MapScriptHeader: object_event 43, 6, SPRITE_BALL_CUT_FRUIT, SPRITEMOVEDATA_CUTTABLE_TREE, 0, 0, -1, -1, 0, OBJECTTYPE_SCRIPT, 0, ObjectEvent, EVENT_ROUTE_14_CUT_TREE_3 GenericTrainerTeacherColette: - generictrainer TEACHER, COLETTE, EVENT_BEAT_TEACHER_COLETTE, TeacherColetteSeenText, TeacherColetteBeatenText + generictrainer TEACHER_F, COLETTE, EVENT_BEAT_TEACHER_COLETTE, TeacherColetteSeenText, TeacherColetteBeatenText text "Before I became a" line "teacher, I used to" @@ -37,7 +37,7 @@ GenericTrainerTeacherColette: done GenericTrainerTeacherHillary: - generictrainer TEACHER, HILLARY, EVENT_BEAT_TEACHER_HILLARY, TeacherHillarySeenText, TeacherHillaryBeatenText + generictrainer TEACHER_F, HILLARY, EVENT_BEAT_TEACHER_HILLARY, TeacherHillarySeenText, TeacherHillaryBeatenText text "Studying is impor-" line "tant, but exercise" diff --git a/maps/SeafoamIslandsB4F.asm b/maps/SeafoamIslandsB4F.asm index 752038ca45..ad3b7b81b1 100644 --- a/maps/SeafoamIslandsB4F.asm +++ b/maps/SeafoamIslandsB4F.asm @@ -109,11 +109,9 @@ SeafoamIslandsArticuno: setevent EVENT_SEAFOAM_ISLANDS_ARTICUNO reloadmapafterbattle special CheckBattleCaughtResult - iffalsefwd .NoBlanche + iffalsefwd .NoCatch setflag ENGINE_PLAYER_CAUGHT_ARTICUNO - setevent EVENT_CELADON_UNIVERSITY_BLANCHE - clearevent EVENT_SHAMOUTI_COAST_BLANCHE -.NoBlanche +.NoCatch checkevent EVENT_ROUTE_10_ZAPDOS iffalsefwd .end checkevent EVENT_CINNABAR_VOLCANO_MOLTRES diff --git a/maps/ShamoutiCoast.asm b/maps/ShamoutiCoast.asm index 11f39aeb6a..31330027f0 100644 --- a/maps/ShamoutiCoast.asm +++ b/maps/ShamoutiCoast.asm @@ -20,9 +20,6 @@ ShamoutiCoast_MapScriptHeader: object_event 66, 4, SPRITE_SIGHTSEER_M, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_PURPLE, OBJECTTYPE_GENERICTRAINER, 1, GenericTrainerSightseersCyandvi1, -1 object_event 67, 4, SPRITE_LADY, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_PURPLE, OBJECTTYPE_GENERICTRAINER, 1, GenericTrainerSightseersCyandvi2, -1 object_event 71, 16, SPRITE_SWIMMER_GUY, SPRITEMOVEDATA_SPINCLOCKWISE, 0, 0, -1, -1, 0, OBJECTTYPE_GENERICTRAINER, 3, GenericTrainerSwimmermAshe, -1 - object_event 21, 11, SPRITE_CANDELA, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, 0, OBJECTTYPE_SCRIPT, 0, ObjectEvent, EVENT_SHAMOUTI_COAST_CANDELA - object_event 53, 7, SPRITE_BLANCHE, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, 0, OBJECTTYPE_SCRIPT, 0, ObjectEvent, EVENT_SHAMOUTI_COAST_BLANCHE - object_event 83, 9, SPRITE_SPARK, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, 0, OBJECTTYPE_SCRIPT, 0, ObjectEvent, EVENT_SHAMOUTI_COAST_SPARK object_event 6, -3, SPRITE_LADY, SPRITEMOVEDATA_STANDING_DOWN, 0, 2, -1, -1, PAL_NPC_BLUE, OBJECTTYPE_SCRIPT, 0, ObjectEvent, -1 itemball_event 6, 11, STAR_PIECE, 1, EVENT_SHAMOUTI_COAST_STAR_PIECE diff --git a/maps/YellowForest.asm b/maps/YellowForest.asm index 86d754a849..eec45f8f7e 100644 --- a/maps/YellowForest.asm +++ b/maps/YellowForest.asm @@ -112,7 +112,7 @@ GenericTrainerSchoolgirlIsabel: done GenericTrainerTeacherKathryn: - generictrainer TEACHER, KATHRYN, EVENT_BEAT_TEACHER_KATHRYN, TeacherKathrynSeenText, TeacherKathrynBeatenText + generictrainer TEACHER_F, KATHRYN, EVENT_BEAT_TEACHER_KATHRYN, TeacherKathrynSeenText, TeacherKathrynBeatenText text "Keeping an eye on" line "everyone during a" diff --git a/ram/wramx.asm b/ram/wramx.asm index 897f2898f5..5a2c779b1d 100644 --- a/ram/wramx.asm +++ b/ram/wramx.asm @@ -1068,7 +1068,7 @@ wDragonsDenB1FSceneID:: db wDragonShrineSceneID:: db wEcruteakGymSceneID:: db wEcruteakHouseSceneID:: db - ds 1 ; unused +wRocketHideoutB4FSceneID:: db wElmsLabSceneID:: db wFarawayIslandSceneID:: db wFastShip1FSceneID:: db @@ -1180,7 +1180,7 @@ wNeededPalIndex:: db wEmotePal:: db - ds 65 ; unused + ds 64 ; unused wCandyAmounts:: wExpCandyXSAmount:: db