diff --git a/constants/engine_flags.asm b/constants/engine_flags.asm index e671d92..b0bfc44 100644 --- a/constants/engine_flags.asm +++ b/constants/engine_flags.asm @@ -123,6 +123,8 @@ const ENGINE_INDIGO_PLATEAU_RIVAL_FIGHT const ENGINE_DAILY_MOVE_TUTOR const ENGINE_BUENAS_PASSWORD +; wJackyTimer + const ENGINE_JACKY_TIMER ; wSwarmFlags const ENGINE_BUENAS_PASSWORD_2 const ENGINE_GOLDENROD_DEPT_STORE_SALE_IS_ON diff --git a/constants/event_flags.asm b/constants/event_flags.asm index c359ef3..d11761e 100644 --- a/constants/event_flags.asm +++ b/constants/event_flags.asm @@ -777,8 +777,8 @@ const EVENT_BEAT_BEAUTY_JESSICA const EVENT_BEAT_BEAUTY_RACHAEL const EVENT_BEAT_BEAUTY_ANGELICA - const EVENT_BEAT_BEAUTY_KENDRA - const EVENT_BEAT_BEAUTY_VERONICA +; const EVENT_BEAT_BEAUTY_KENDRA +; const EVENT_BEAT_BEAUTY_VERONICA const EVENT_BEAT_BEAUTY_JULIA const EVENT_BEAT_BEAUTY_THERESA const EVENT_BEAT_BEAUTY_VALERIE @@ -891,7 +891,7 @@ const EVENT_BEAT_LASS_DANA const EVENT_BEAT_LASS_ELLEN const EVENT_BEAT_LASS_CONNIE2 - const EVENT_BEAT_LASS_CONNIE3 + const EVENT_BEAT_LASS_LOWRI const EVENT_BEAT_LASS_DANA2 const EVENT_BEAT_LASS_DANA3 const EVENT_BEAT_LASS_IKUE @@ -1061,6 +1061,8 @@ const EVENT_BEAT_YOUNGSTER_JIMMY const EVENT_BEAT_YOUNGSTER_OWEN const EVENT_BEAT_YOUNGSTER_JASON + const EVENT_BEAT_YOUNGSTER_LUC + const EVENT_BEAT_YOUNGSTER_HUW ; Teacher const EVENT_BEAT_TEACHER_COLETTE const EVENT_BEAT_TEACHER_HILLARY @@ -1119,7 +1121,8 @@ const EVENT_BEAT_ARCHER2 const EVENT_BEAT_ARCHER3 const EVENT_BEAT_PROFBLUE -; Unused: next 77 events + const EVENT_BEAT_SHINJUKU_JACKY_ONCE +; Unused: next 76 events const_next 1600 ; Sprite visibility flags diff --git a/constants/landmark_constants.asm b/constants/landmark_constants.asm index 8c9a3bb..23cca5d 100644 --- a/constants/landmark_constants.asm +++ b/constants/landmark_constants.asm @@ -133,6 +133,7 @@ DEF NIHON_LANDMARK EQU const_value const LANDMARK_QUIET_CAVE const LANDMARK_OLD_CITY const LANDMARK_POKEMON_PAGODA + const LANDMARK_ROUTE_50 const LANDMARK_BLUE_FOREST const LANDMARK_ROUTE_66 const LANDMARK_WHITE_CITY diff --git a/constants/map_constants.asm b/constants/map_constants.asm index e18e986..a44a4b4 100644 --- a/constants/map_constants.asm +++ b/constants/map_constants.asm @@ -650,10 +650,12 @@ ENDM map_const OLD_CITY_GYM, 6, 10 ; 8 map_const OLD_CITY_MUSEUM, 8, 3 ; 9 map_const POKEMON_PAGODA_1F, 5, 5 ; 10 - map_const POKEMON_PAGODA_2F, 5, 5 ; 10 - map_const POKEMON_PAGODA_3F, 5, 5 ; 10 - map_const POKEMON_PAGODA_4F, 5, 5 ; 10 - map_const POKEMON_PAGODA_5F, 3, 3 ; 10 + map_const POKEMON_PAGODA_2F, 5, 5 ; 11 + map_const POKEMON_PAGODA_3F, 5, 5 ; 12 + map_const POKEMON_PAGODA_4F, 5, 5 ; 13 + map_const POKEMON_PAGODA_5F, 3, 3 ; 14 + map_const ROUTE_50, 15, 9 ; 15 + map_const JACKYS_HOUSE, 4, 4 ; 16 endgroup newgroup BLUE_FOREST ; 37 diff --git a/constants/trainer_constants.asm b/constants/trainer_constants.asm index f503655..8ffbead 100644 --- a/constants/trainer_constants.asm +++ b/constants/trainer_constants.asm @@ -126,6 +126,8 @@ DEF KRIS EQU __trainer_class__ const JASON const JOEY4 const JOEY5 + const LUC + const HUW trainerclass SCHOOLBOY ; 17 const JACK1 @@ -192,7 +194,7 @@ DEF KRIS EQU __trainer_class__ const DANA1 const ELLEN const CONNIE2 ; unused - const CONNIE3 ; unused + const LOWRI ; previously CONNIE3 const DANA2 const DANA3 const DANA4 @@ -259,8 +261,8 @@ DEF KRIS EQU __trainer_class__ const JESSICA ; unused const RACHAEL ; unused const ANGELICA ; unused - const KENDRA ; unused - const VERONICA ; unused +; const KENDRA ; unused +; const VERONICA ; unused const JULIA const THERESA const VALERIE @@ -809,6 +811,9 @@ DEF KRIS EQU __trainer_class__ trainerclass ELDER const LI const KONG + + trainerclass JACK + const JACKY DEF TOPAZ EQU __trainer_class__ DEF NUM_TRAINER_CLASSES EQU __trainer_class__ - 1 diff --git a/constants/wram_constants.asm b/constants/wram_constants.asm index 26f3c48..82c1bba 100644 --- a/constants/wram_constants.asm +++ b/constants/wram_constants.asm @@ -305,6 +305,9 @@ DEF CELEBIEVENT_FOREST_IS_RESTLESS_F EQU 2 const DAILYFLAGS2_MOVE_TUTOR_F ; 6 const DAILYFLAGS2_BUENAS_PASSWORD_F ; 7 +; wJackyTimer:: + const DAILYFLAG_JACKY_TIMER + ; wSwarmFlags:: const_def const SWARMFLAGS_BUENAS_PASSWORD_F ; 0 diff --git a/data/events/engine_flags.asm b/data/events/engine_flags.asm index 0626af8..9db96d5 100644 --- a/data/events/engine_flags.asm +++ b/data/events/engine_flags.asm @@ -133,6 +133,8 @@ EngineFlags: engine_flag wDailyFlags2, DAILYFLAGS2_INDIGO_PLATEAU_RIVAL_FIGHT_F engine_flag wDailyFlags2, DAILYFLAGS2_MOVE_TUTOR_F engine_flag wDailyFlags2, DAILYFLAGS2_BUENAS_PASSWORD_F + + engine_flag wJackyTimer, DAILYFLAG_JACKY_TIMER engine_flag wSwarmFlags, SWARMFLAGS_BUENAS_PASSWORD_F engine_flag wSwarmFlags, SWARMFLAGS_GOLDENROD_DEPT_STORE_SALE_F diff --git a/data/maps/attributes.asm b/data/maps/attributes.asm index ffc6818..89ae952 100644 --- a/data/maps/attributes.asm +++ b/data/maps/attributes.asm @@ -374,17 +374,6 @@ ENDM map_attributes Route10South, ROUTE_10_SOUTH, $2c, NORTH | SOUTH connection north, Route10North, ROUTE_10_NORTH, 0 connection south, LavenderTown, LAVENDER_TOWN, 0 - - map_attributes SilentHills, SILENT_HILLS, $05, EAST | WEST ; Add Prince connections later - connection west, Route49, ROUTE_49, 0 - connection east, Route66, ROUTE_66, 0 - - map_attributes Route49, ROUTE_49, $05, EAST | WEST - connection east, SilentHills, SILENT_HILLS, $00, 0 - connection west, Route49_2, ROUTE_49_2, $05, 0 - - map_attributes Route49_2, ROUTE_49_2, $05, 0, EAST - connection east, Route49, ROUTE_49, $05, 0 map_attributes Route23, ROUTE_23, $0f, 0 map_attributes SproutTower1F, SPROUT_TOWER_1F, $00, 0 @@ -815,10 +804,21 @@ ENDM map_attributes WinnersPathOutside, WINNERS_PATH_OUTSIDE, $05, NORTH connection north, Route66, ROUTE_66, 0 + map_attributes SilentHills, SILENT_HILLS, $05, EAST | WEST ; Add Prince connections later + connection west, Route49, ROUTE_49, 0 + connection east, Route66, ROUTE_66, 0 + + map_attributes Route49, ROUTE_49, $05, EAST | WEST + connection east, SilentHills, SILENT_HILLS, $00, 0 + connection west, Route49_2, ROUTE_49_2, $05, 0 + + map_attributes Route49_2, ROUTE_49_2, $05, 0, EAST + connection east, Route49, ROUTE_49, $05, 0 + map_attributes Route66, ROUTE_66, $05, WEST | SOUTH connection south, WinnersPathOutside, WINNERS_PATH_OUTSIDE, 0 - connection west, SilentHills, SILENT_HILLS, 0 + map_attributes QuietCave, QUIET_CAVE, $76, 0 map_attributes BlueLab, BLUE_LAB, $00, 0 map_attributes SilentHillsPokecenter1F, SILENT_HILLS_POKECENTER_1F, $00, 0 @@ -826,7 +826,11 @@ ENDM map_attributes CalsHouse1F, CALS_HOUSE_1F, $00, 0 map_attributes CalsHouse2F, CALS_HOUSE_2F, $00, 0 - map_attributes OldCity, OLD_CITY, $00, 0 ; will have a west exit. + map_attributes OldCity, OLD_CITY, $00, WEST + connection west, Route50, ROUTE_50, 4 + + map_attributes Route50, ROUTE_50, $00, EAST + connection east, OldCity, OLD_CITY, -4 map_attributes Route49OldCityGate1F, ROUTE_49_OLD_CITY_GATE_1F, $00, 0 map_attributes Route49OldCityGate2F, ROUTE_49_OLD_CITY_GATE_2F, $00, 0 @@ -843,6 +847,7 @@ ENDM map_attributes PokemonPagoda3F, POKEMON_PAGODA_3F, $00, 0 map_attributes PokemonPagoda4F, POKEMON_PAGODA_4F, $00, 0 map_attributes PokemonPagoda5F, POKEMON_PAGODA_5F, $00, 0 + map_attributes JackysHouse, JACKYS_HOUSE, $00, 0 map_attributes BlueForest, BLUE_FOREST, $00, 0 ; this is on its own for now. add connections later. diff --git a/data/maps/blocks.asm b/data/maps/blocks.asm index f6505f9..5163eea 100644 --- a/data/maps/blocks.asm +++ b/data/maps/blocks.asm @@ -1273,3 +1273,9 @@ PokemonPagoda4F_Blocks: PokemonPagoda5F_Blocks: INCBIN "maps/PokemonPagoda5F.ablk" + +Route50_Blocks: + INCBIN "maps/Route50.ablk" + +JackysHouse_Blocks: + INCBIN "maps/JackysHouse.ablk" diff --git a/data/maps/landmarks.asm b/data/maps/landmarks.asm index 4423587..186c753 100644 --- a/data/maps/landmarks.asm +++ b/data/maps/landmarks.asm @@ -137,6 +137,7 @@ Landmarks: landmark 76, 108, QuietCaveName landmark 76, 100, OldCityName landmark 76, 100, PokemonPagodaName + landmark 60, 100, Route50Name landmark 140, 60, BlueForestName landmark 108, 108, Route66Name landmark 124, 108, WhiteCityName @@ -250,6 +251,7 @@ SilentHillsName: db "SILENT¯HILLS@" UnknownName: db "?????@" Route66Name: db "ROUTE 66@" Route49Name: db "ROUTE 49@" +Route50Name: db "ROUTE 50@" QuietCaveName: db "QUIET¯CAVE@" OldCityName: db "SEPIA¯CITY@" PokemonPagodaName: db "#MON¯PAGODA@" diff --git a/data/maps/maps.asm b/data/maps/maps.asm index ceea80a..7854d9c 100644 --- a/data/maps/maps.asm +++ b/data/maps/maps.asm @@ -714,6 +714,8 @@ MapGroup_OldCity: map PokemonPagoda3F, TILESET_TOWER, INDOOR, LANDMARK_POKEMON_PAGODA, MUSIC_SPROUT_TOWER, FALSE, PALETTE_DAY, FISHGROUP_NONE map PokemonPagoda4F, TILESET_TOWER, INDOOR, LANDMARK_POKEMON_PAGODA, MUSIC_SPROUT_TOWER, FALSE, PALETTE_DAY, FISHGROUP_NONE map PokemonPagoda5F, TILESET_TOWER, INDOOR, LANDMARK_POKEMON_PAGODA, MUSIC_SPROUT_TOWER, FALSE, PALETTE_DAY, FISHGROUP_NONE + map Route50, TILESET_NIHON_OLD, ROUTE, LANDMARK_ROUTE_50, MUSIC_ROUTE_30, TRUE, PALETTE_AUTO, FISHGROUP_NONE + map JackysHouse, TILESET_HOUSE, INDOOR, LANDMARK_ROUTE_50, MUSIC_VIOLET_CITY, FALSE, PALETTE_DAY, FISHGROUP_NONE assert_table_length NUM_OLD_CITY_MAPS MapGroup_BlueForest: diff --git a/data/maps/outdoor_sprites.asm b/data/maps/outdoor_sprites.asm index 7d835ea..63d598e 100644 --- a/data/maps/outdoor_sprites.asm +++ b/data/maps/outdoor_sprites.asm @@ -741,7 +741,7 @@ OldCityGroupSprites: db SPRITE_TWIN db SPRITE_BUG_CATCHER db SPRITE_YOUNGSTER - db SPRITE_BEAUTY + db SPRITE_SPACEWORLD_GIRL db SPRITE_SUPER_NERD db SPRITE_GRANNY db SPRITE_MONSTER diff --git a/data/maps/scripts.asm b/data/maps/scripts.asm index 7e5230b..cff486d 100644 --- a/data/maps/scripts.asm +++ b/data/maps/scripts.asm @@ -600,6 +600,8 @@ INCLUDE "maps/LavenderCryptSet1.asm" INCLUDE "maps/LavenderCryptSet2.asm" INCLUDE "maps/LavenderCryptSet3.asm" INCLUDE "maps/LavenderCryptDokuroarsRoom.asm" +INCLUDE "maps/Route50.asm" +INCLUDE "maps/JackysHouse.asm" SECTION "Map Scripts 31", ROMX ; spillover INCLUDE "maps/TanobyRuins.asm" diff --git a/data/tilesets/house_attributes.bin b/data/tilesets/house_attributes.bin index ef8e53e..434f0ce 100644 Binary files a/data/tilesets/house_attributes.bin and b/data/tilesets/house_attributes.bin differ diff --git a/data/tilesets/house_collision.asm b/data/tilesets/house_collision.asm index 7c7f3fc..b01be01 100644 --- a/data/tilesets/house_collision.asm +++ b/data/tilesets/house_collision.asm @@ -50,15 +50,16 @@ tilecoll FLOOR, WALL, FLOOR, WALL ; 31 tilecoll WALL, WINDOW, WALL, WALL ; 32 tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 33 - tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 34 - tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 35 - tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 36 - tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 37 - tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 38 - tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 39 - tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 3a - tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 3b - tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 3c - tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 3d - tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 3e - tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 3f + tilecoll WALL, FLOOR, FLOOR, FLOOR ; 34 + tilecoll WALL, FLOOR, FLOOR, FLOOR ; 35 + tilecoll WALL, WALL, WALL, WALL ; 36 + tilecoll WALL, WALL, FLOOR, FLOOR ; 37 + tilecoll WINDOW, WALL, FLOOR, FLOOR ; 38 + tilecoll WALL, WINDOW, FLOOR, FLOOR ; 39 + tilecoll FLOOR, FLOOR, WARP_CARPET_DOWN, WARP_CARPET_DOWN ; 3a + tilecoll WALL, WALL, TV, FLOOR ; 3b + tilecoll WALL, WALL, FLOOR, RADIO ; 3c + tilecoll FLOOR, FLOOR, FLOOR, WALL ; 3d + tilecoll FLOOR, FLOOR, WALL, FLOOR ; 3e + tilecoll FLOOR, WALL, FLOOR, FLOOR ; 3f + tilecoll WALL, FLOOR, FLOOR, FLOOR ; 40 diff --git a/data/tilesets/house_metatiles.bin b/data/tilesets/house_metatiles.bin index 0d3a22f..4675c0e 100644 Binary files a/data/tilesets/house_metatiles.bin and b/data/tilesets/house_metatiles.bin differ diff --git a/data/tilesets/nihon_old_attributes.bin b/data/tilesets/nihon_old_attributes.bin index 18d6a0d..c43e559 100644 Binary files a/data/tilesets/nihon_old_attributes.bin and b/data/tilesets/nihon_old_attributes.bin differ diff --git a/data/tilesets/nihon_old_collision.asm b/data/tilesets/nihon_old_collision.asm index cd47386..6e33e81 100644 --- a/data/tilesets/nihon_old_collision.asm +++ b/data/tilesets/nihon_old_collision.asm @@ -64,3 +64,10 @@ tilecoll WALL, WALL, WALL, WALL ; 3f tilecoll WALL, WALL, FLOOR, WALL ; 40 tilecoll HEADBUTT_TREE, FLOOR, FLOOR, FLOOR ; 41 + tilecoll FLOOR, WALL, FLOOR, WALL ; 42 + tilecoll HEADBUTT_TREE, HEADBUTT_TREE, HEADBUTT_TREE, HEADBUTT_TREE ; 43 + tilecoll TALL_GRASS, TALL_GRASS, TALL_GRASS, TALL_GRASS ; 44 + tilecoll WALL, DOOR, WALL, FLOOR ; 45 + tilecoll WALL, WALL, FLOOR, FLOOR ; 46 + tilecoll WALL, WALL, DOOR, WALL ; 47 + tilecoll WALL, WALL, WALL, WALL ; 48 diff --git a/data/tilesets/nihon_old_metatiles.bin b/data/tilesets/nihon_old_metatiles.bin index 6e43671..8bb8a6d 100644 Binary files a/data/tilesets/nihon_old_metatiles.bin and b/data/tilesets/nihon_old_metatiles.bin differ diff --git a/data/trainers/attributes.asm b/data/trainers/attributes.asm index 3096d99..ef4a11c 100644 --- a/data/trainers/attributes.asm +++ b/data/trainers/attributes.asm @@ -555,4 +555,10 @@ TrainerClassAttributes: dw AI_BASIC | AI_SETUP | AI_TYPES | AI_CAUTIOUS | AI_STATUS | AI_RISKY dw CONTEXT_USE | SWITCH_SOMETIMES +; Jack + db NO_ITEM, NO_ITEM ; items + db 10 ; base reward + dw AI_BASIC | AI_SETUP | AI_TYPES | AI_CAUTIOUS | AI_STATUS | AI_RISKY + dw CONTEXT_USE | SWITCH_SOMETIMES + assert_table_length NUM_TRAINER_CLASSES diff --git a/data/trainers/class_names.asm b/data/trainers/class_names.asm index 0097dc1..37e4301 100644 --- a/data/trainers/class_names.asm +++ b/data/trainers/class_names.asm @@ -93,4 +93,5 @@ TrainerClassNames:: li "EXECUTIVE" li "PROFESSOR" li "ELDER" + li "SHINJUKU" ; JACK assert_list_length NUM_TRAINER_CLASSES diff --git a/data/trainers/dvs.asm b/data/trainers/dvs.asm index eb5857c..3687ee5 100644 --- a/data/trainers/dvs.asm +++ b/data/trainers/dvs.asm @@ -94,4 +94,5 @@ TrainerClassDVs: dn 13, 12, 13, 13 ; ARCHER dn 13, 12, 13, 13 ; PROF.BLUE dn 12, 15, 13, 13 ; ELDER (HP Ground) + dn 12, 15, 13, 13 ; JACK (HP Ground) assert_table_length NUM_TRAINER_CLASSES diff --git a/data/trainers/encounter_music.asm b/data/trainers/encounter_music.asm index 37d85d5..13af98e 100644 --- a/data/trainers/encounter_music.asm +++ b/data/trainers/encounter_music.asm @@ -96,4 +96,5 @@ TrainerEncounterMusic:: db MUSIC_ROCKET_ENCOUNTER ; ARCHER db MUSIC_OFFICER_ENCOUNTER ; PROF.BLUE db MUSIC_SAGE_ENCOUNTER ; ELDER + db MUSIC_HIKER_ENCOUNTER ; JACK assert_table_length NUM_TRAINER_CLASSES + 1 diff --git a/data/trainers/gendered_trainers.asm b/data/trainers/gendered_trainers.asm index f6fc843..4f04eb4 100644 --- a/data/trainers/gendered_trainers.asm +++ b/data/trainers/gendered_trainers.asm @@ -37,6 +37,7 @@ MaleTrainers: db SPORTSMAN db AEROFOSSIL db ELDER + db JACK .End FemaleTrainers: diff --git a/data/trainers/genders.asm b/data/trainers/genders.asm index 864f597..0a47376 100644 --- a/data/trainers/genders.asm +++ b/data/trainers/genders.asm @@ -95,4 +95,5 @@ BTTrainerClassGenders: db FEMALE ; ARCHER db MALE ; PROF.BLUE db MALE ; ELDER + db MALE ; JACK assert_table_length NUM_TRAINER_CLASSES diff --git a/data/trainers/palettes.asm b/data/trainers/palettes.asm index 3321609..a80dfc9 100644 --- a/data/trainers/palettes.asm +++ b/data/trainers/palettes.asm @@ -101,7 +101,8 @@ INCBIN "gfx/trainers/kurt.gbcpal", middle_colors INCBIN "gfx/trainers/ariana.gbcpal", middle_colors INCBIN "gfx/trainers/archer.gbcpal", middle_colors INCBIN "gfx/trainers/blue_professor.gbcpal", middle_colors -INCBIN "gfx/trainers/elder.gbcpal", middle_colors ; elder +INCBIN "gfx/trainers/elder.gbcpal", middle_colors +INCBIN "gfx/trainers/jack.gbcpal", middle_colors EnbyPalette: INCLUDE "gfx/player/topaz.pal" diff --git a/data/trainers/parties.asm b/data/trainers/parties.asm index a4cc06d..2f874a1 100644 --- a/data/trainers/parties.asm +++ b/data/trainers/parties.asm @@ -935,6 +935,26 @@ YoungsterGroup: dw RATICATE dw HYPER_BEAM, QUICK_ATTACK, HYPER_FANG, PURSUIT db -1 ; end + + next_list_item ; YOUNGSTER (14) + db "LUC@", TRAINERTYPE_MOVES + db 45 + dw ARIADOS + dw SLUDGE_BOMB, PSYCHIC_M, PURSUIT, AGILITY + db 45 + dw RATICATE + dw HYPER_FANG, QUICK_ATTACK, SUPER_FANG, SHADOW_BALL + db -1 ; end + + next_list_item ; YOUNGSTER (14) + db "HUW@", TRAINERTYPE_MOVES + db 45 + dw SANDSLASH + dw SWORDS_DANCE, EARTHQUAKE, ROCK_SLIDE, METAL_CLAW + db 45 + dw QUAGSIRE + dw EARTHQUAKE, SURF, HEADBUTT, AMNESIA + db -1 ; end end_list_items @@ -1903,17 +1923,17 @@ BeautyGroup: dw SENTRET db -1 ; end - next_list_item ; BEAUTY (12) - db "KENDRA@", TRAINERTYPE_NORMAL - db 15 - dw SENTRET - db -1 ; end +; next_list_item ; BEAUTY (12) +; db "KENDRA@", TRAINERTYPE_NORMAL +; db 15 +; dw SENTRET +; db -1 ; end - next_list_item ; BEAUTY (13) - db "VERONICA@", TRAINERTYPE_NORMAL - db 15 - dw SENTRET - db -1 ; end +; next_list_item ; BEAUTY (13) +; db "VERONICA@", TRAINERTYPE_NORMAL +; db 15 +; dw SENTRET +; db -1 ; end next_list_item ; BEAUTY (14) db "JULIA@", TRAINERTYPE_NORMAL diff --git a/data/trainers/parties_new_classes.asm b/data/trainers/parties_new_classes.asm index 607ece3..4a1c035 100644 --- a/data/trainers/parties_new_classes.asm +++ b/data/trainers/parties_new_classes.asm @@ -216,10 +216,12 @@ LassGroup: dw MARILL db -1 ; end - next_list_item ; LASS (13) - db "CONNIE@", TRAINERTYPE_NORMAL - db 21 - dw MARILL + next_list_item ; LASS (13) - originally Connie 3 + db "LOWRI@", TRAINERTYPE_NORMAL + db 45 + dw BELLEDAM + db 45 + dw RAITORA db -1 ; end next_list_item ; LASS (14) @@ -701,6 +703,24 @@ ElderGroup: db -1 ; end end_list_items +JackGroup: + next_list_item + db "JACKY@", TRAINERTYPE_MOVES + db 50 + dw AMANOBI ; Kage-Maru + dw METAL_CLAW, SPIKES, FIRE_SPIN, PETAL_DANCE + db 50 + dw ANNIHILAPE + dw CROSS_CHOP, ROCK_HEAD, MEDITATE, HEADBUTT + db 50 + dw PORYGON_Z + dw LOCK_ON, ZAP_CANNON, RECOVER, TRI_ATTACK + db 50 + dw HITMONCHAN + dw MACH_PUNCH, COUNTER, DETECT, HI_JUMP_KICK + db -1 ; end + end_list_items + ; No rematches here, just a lot of unused dupes. ; Potential alt usage? rename a few? ; See spreadsheet for combinations. diff --git a/data/trainers/party_pointers.asm b/data/trainers/party_pointers.asm index 061e924..607e629 100644 --- a/data/trainers/party_pointers.asm +++ b/data/trainers/party_pointers.asm @@ -95,4 +95,5 @@ TrainerGroups: dba ArcherGroup dba ProfBlueGroup dba ElderGroup + dba JackGroup assert_table_length NUM_TRAINER_CLASSES diff --git a/data/trainers/pic_pointers.asm b/data/trainers/pic_pointers.asm index 2620901..17fcb41 100644 --- a/data/trainers/pic_pointers.asm +++ b/data/trainers/pic_pointers.asm @@ -95,4 +95,5 @@ TrainerPicPointers:: dba ArcherPic dba ProfBluePic dba ElderPic + dba JackPic assert_table_length NUM_TRAINER_CLASSES diff --git a/data/trainers/sprites.asm b/data/trainers/sprites.asm index 5fababb..add86d1 100644 --- a/data/trainers/sprites.asm +++ b/data/trainers/sprites.asm @@ -93,4 +93,5 @@ BTTrainerClassSprites: db SPRITE_RED ; Archer db SPRITE_RED ; Prof.Blue db SPRITE_SAGE ; ELDER + db SPRITE_ROCKER ; JACK assert_table_length NUM_TRAINER_CLASSES diff --git a/data/wild/nihon_grass.asm b/data/wild/nihon_grass.asm index 7c04dea..0d8324e 100644 --- a/data/wild/nihon_grass.asm +++ b/data/wild/nihon_grass.asm @@ -171,5 +171,33 @@ NihonGrassWildMons: dbw 32, MARILL dbw 35, SKARMORY end_grass_wildmons - + + def_grass_wildmons ROUTE_50 + db 10 percent, 10 percent, 10 percent ; encounter rates: morn/day/nite + ; morn + dbw 30, CATERPIE + dbw 31, METAPOD + dbw 30, CATERPIE + dbw 31, METAPOD + dbw 32, PIDGEY + dbw 32, CATERPIE + dbw 35, SUNFLORA + ; day + dbw 30, CATERPIE + dbw 31, PIDGEY + dbw 30, RATTATA + dbw 31, RATTATA + dbw 32, RATTATA + dbw 32, CATERPIE + dbw 35, GIRAFARIG + ; nite + dbw 30, RATTATA + dbw 31, HOOTHOOT + dbw 30, ODDISH + dbw 31, HOOTHOOT + dbw 32, ODDISH + dbw 32, ODDISH + dbw 35, SKARMORY + end_grass_wildmons + db -1 ; end diff --git a/engine/overworld/time.asm b/engine/overworld/time.asm index d983e47..12fce56 100644 --- a/engine/overworld/time.asm +++ b/engine/overworld/time.asm @@ -7,6 +7,7 @@ ClearDailyTimers: ld [wLuckyNumberDayTimer], a ld [wSweetHoneyTimer], a ld [wDailyResetTimer], a + ld [wJackyTimer], a ; This could use an engine flag I think but mehhhhhhhh ret InitCallReceiveDelay:: diff --git a/gfx/pics.asm b/gfx/pics.asm index 9e13e73..72f0a46 100644 --- a/gfx/pics.asm +++ b/gfx/pics.asm @@ -1048,3 +1048,4 @@ TeacherMPic: INCBIN "gfx/trainers/teacherm.2bpp.lz" PainterPic: INCBIN "gfx/trainers/painter.2bpp.lz" SoldierPic: INCBIN "gfx/trainers/soldier.2bpp.lz" SportsmanPic: INCBIN "gfx/trainers/sportsman.2bpp.lz" +JackPic: INCBIN "gfx/trainers/jack.2bpp.lz" diff --git a/gfx/tilesets/house.png b/gfx/tilesets/house.png index 0c38681..acac220 100644 Binary files a/gfx/tilesets/house.png and b/gfx/tilesets/house.png differ diff --git a/gfx/trainers/jack.png b/gfx/trainers/jack.png index f8f22c8..01db405 100644 Binary files a/gfx/trainers/jack.png and b/gfx/trainers/jack.png differ diff --git a/maps/JackysHouse.ablk b/maps/JackysHouse.ablk new file mode 100644 index 0000000..613d92f --- /dev/null +++ b/maps/JackysHouse.ablk @@ -0,0 +1 @@ +;;6<543333=>3:?@ \ No newline at end of file diff --git a/maps/JackysHouse.asm b/maps/JackysHouse.asm new file mode 100644 index 0000000..071cb8b --- /dev/null +++ b/maps/JackysHouse.asm @@ -0,0 +1,359 @@ +; To paraphrase KEP: +; Shinjuku Jacky was a famous Virtua Fighter player and the source of the famous "Jack" sprite. +; He wrote the book "Virtua Fighter Maniax", the first to feature frame data for Virtua Fighter 1 and thus a very notable resource. +; If you ever view a frame data resource, thank Jacky for popularising the concept. +; At the time, many Virtua Fighter players had "geographical names", representing their residences. Shinjuku is notably within Tokyo, near to Shibuya. +; Because Celadon City is based on Tokyo Metropolis, specifically Shinjuku and Shibuya, and there's a map called JISAN.MAP that featured N64s, in RG ROM Hacks, he's normally placed there. + +; In JEP, Jacky is a gamer near Sepia City who you can fight for Gold Leaves, which I want to serve as Heart Scales. + + object_const_def + +JackysHouse_MapScripts: + def_scene_scripts + + def_callbacks + +; You can fight Shinjuku Jacky every day to get Gold Leaves, which serve as Heart Scale currency. +JackysHouseJackyScript: + faceplayer + checkevent EVENT_BEAT_SHINJUKU_JACKY_ONCE + opentext + iftrue .beatOnce + writetext JackyWelcomeText + waitbutton + closetext + sjump .firstFight +.beatOnce + checkflag ENGINE_JACKY_TIMER + iftrue .tuckeredOut + opentext + writetext JackyPostBeat + waitbutton + closetext + ; fallthrough +.firstFight + yesorno + iffalse .No + sjump .Yes +.No + opentext + writetext JackyNo + waitbutton + closetext + sjump .end +.Yes + opentext + writetext JackyYes + waitbutton + closetext + winlosstext JackyLossText, 0 + loadtrainer JACK, JACKY + startbattle + reloadmapafterbattle + + setevent EVENT_BEAT_SHINJUKU_JACKY_ONCE + setflag ENGINE_JACKY_TIMER + opentext + writetext JackyAfterBattle + promptbutton + verbosegiveitem GOLD_LEAF + iffalse .NoRoomForGoldLeaf + writetext JackyGift + waitbutton + closetext + sjump .end +.tuckeredOut + opentext + writetext JackyTiredText + waitbutton + closetext + ; fallthrough +.end + end + +.NoRoomForGoldLeaf: + writetext JackyNoRoomForGoldLeaf + closetext + end + +JackyWelcomeText: + text "I am SHINJUKU" + line "JACKY!" + + para "I know everything" + line "about the world" + cont "of #MON!" + + para "Hm? You think you" + line "can take me?" + done + +JackyYes: + text "Let's see if you" + line "can walk the" + cont "walk! Come on!" + done + +JackyNo: + text "Maybe another" + line "time…" + done + +JackyLossText: + text "I can't believe" + line "I lost!" + done + +JackyAfterBattle: + text "It was like you" + line "were fighting in" + cont "slow motion…" + + para "Ok! I will give" + line "you a gift to" + cont "help you on your" + cont "quest!" + done + +JackyGift: + text "There's a guy in" + line "WEST CITY who" + cont "loves these!" + + para "Go find him!" + + para "I look forward to" + line "our next bout!" + done + +JackyNoRoomForGoldLeaf: + text "Whoa, dude! You've" + line "got some loaded" + cont "pockets!" + + para "Go make room!" + done + +JackyPostBeat: + text "Hey, it's you!" + + para "Wanna fight again?" + line "I'm out of your" + cont "league!" + done + +JackyTiredText: + text "Chawwww!" + + para "I'm tuckered out!" + line "I gotta take my" + cont "#MON to the" + cont "CENTER in SEPIA!" + + para "Gimme a day," + line "would ya?" + done + +JackyN64: + jumptext JackyN64Text + +JackyN64Text: + text "It's a NINTENDO" + line "64! The latest" + cont "game console!" + done + +JackySNES: + jumptext JackySNESText + +JackySNESText: + text "It's a SNES!" + + para "Aren't these old" + line "now?" + + para "JACKY: Hey! The" + line "games are still" + cont "fun! You're on a" + cont "GAME BOY!" + done + +JackyVirtualBoy: + jumptext JackyVirtualBoy + +JackyVirtualBoyText: + text "It's a VIRTUAL" + line "BOY!" + + para " looked" + line "inside…" + + para "A plumber is" ; Mario's Tennis, arguably the best game on the system. + line "playing tennis!" ; Ok, I guess Wario Land is better... + + para "Best not look" ; Safety is key, Kris! + line "for too long…" + done + +JackyTVFightersDestiny: + jumptext JackyTVFightersDestiny + +; Virtua Fighter 3 never made it to the N64, but Fighters Destiny is basically the same thing. +JackyTVFightersDestinyText: + text "Some characters" + line "are fighting in" + cont "3D! Wow!" + + para "Isn't this too" + line "realistic?" + done + +JackyTVStreetFighterII: + jumptext JackyTVStreetFighterII + +; Jacky was a big Virtua Fighter nerd, so I imagine he'd have two fighting games running at once. +JackyTVStreetFighterIIText: + text "A man in a ban-" + line "dana is fighting" + cont "an American!" + + para "Fiery projectiles" + line "and crazy kicks!" + + para "A true classic!" + done + +JackyMetalSlugPoster: + jumptext JackyMetalSlugPosterText + +JackyMetalSlugPosterText: + text "It's a poster" + line "advertising a" + cont "game with huge" + cont "tanks and guns!" + done + +JackyDDRPoster: + jumptext JackyDDRPoster + +JackyDDRPosterText: + text "It's a poster" + line "advertising a" + cont "dancing game!" + done + +JackyPCStarcraft: + jumptext JackyPCStarcraft + +JackyPCStarcraftText: ; Brood War hadn't long come out, and was really popular in Korea at least. They made the Zerg rush! + text "There's an Eng-" + line "lish game on the" + cont "screen." + + para "Tons of little" + line "creatures are" + cont "attacking some-" + cont "one's base!" + done + +JackyDND: + jumptext JackyDNDText + +JackyDNDText: + text "It's a book for" + line "a tabletop game." + + para "It's called…" + + para "MOUNTAINs and" + line "CHARIZARDs?" + done + +SuperNerdAboutJacky: + jumptextfaceplayer SuperNerdAboutJackyText + +SuperNerdAboutJackyText: + text "JACKY? He was in" + line "CELADON a few" + cont "years ago." + + para "He was voice act-" + line "ing for the next" + cont "big fighting" + cont "game!" ; Shinjuku Jacky voice acted for Virtua Fighter 3! + + para "But he seems more" + line "interested in a" + cont "kid he fought." + + para "Weird, huh?" + done + +JackySuperNerd2: + jumptextfaceplayer JackySuperNerd2Text + +JackySuperNerd2Text: + text "The VIRTUAL BOY" + line "is so cool," + cont "right?" + + para "It'll catch on" + line "eventually." + done + +JackySuperNerd3: + jumptextfaceplayer JackySuperNerd3Text + +JackySuperNerd3Text: + text "JACKY still has" + line "that old SNES." + + para "The games were" + line "awesome, though." + cont "I totally get it!" + done + +JackySuperNerd4: + jumptextfaceplayer JackySuperNerd4Text + +JackySuperNerd4Text: ; A legitimate talking point at the time, before console upgrades became common. + text "I don't get it." + line "Why do we need" + cont "to buy a new" + cont "game console?" + + para "The SNES was" + line "fine. I want to" + cont "keep playing" + cont "my old games," + cont "but they're not" + cont "compatible." + done + +JackysHouse_MapEvents: + db 0, 0 ; filler + + def_warp_events + warp_event 2, 7, ROUTE_50, 2 + warp_event 3, 7, ROUTE_50, 2 + + def_coord_events + + def_bg_events + bg_event 0, 2, BGEVENT_READ, JackyN64 + bg_event 2, 2, BGEVENT_READ, JackySNES + bg_event 5, 1, BGEVENT_READ, JackyVirtualBoy + bg_event 3, 0, BGEVENT_READ, JackyMetalSlugPoster + bg_event 1, 0, BGEVENT_READ, JackyDDRPoster + bg_event 4, 1, BGEVENT_READ, JackyPCStarcraft + bg_event 0, 1, BGEVENT_READ, JackyTVFightersDestiny + bg_event 2, 1, BGEVENT_READ, JackyTVStreetFighterII + bg_event 5, 6, BGEVENT_READ, JackyDND + + def_object_events + object_event 3, 4, SPRITE_BANCHOMAN, SPRITEMOVEDATA_STANDING_DOWN, 2, 2, -1, -1, PAL_NPC_RED, OBJECTTYPE_SCRIPT, 0, JackysHouseJackyScript, -1 ; He has the Banchoman sprite for now, but this could absolutely change! + object_event 7, 6, SPRITE_SUPER_NERD, SPRITEMOVEDATA_STANDING_LEFT, 2, 2, -1, -1, 0, OBJECTTYPE_SCRIPT, 0, SuperNerdAboutJacky, -1 + object_event 7, 5, SPRITE_SUPER_NERD, SPRITEMOVEDATA_STANDING_LEFT, 2, 2, -1, -1, 0, OBJECTTYPE_SCRIPT, 0, JackySuperNerd2, -1 + object_event 5, 4, SPRITE_SUPER_NERD, SPRITEMOVEDATA_STANDING_DOWN, 2, 2, -1, -1, 0, OBJECTTYPE_SCRIPT, 0, JackySuperNerd3, -1 + object_event 4, 5, SPRITE_SUPER_NERD, SPRITEMOVEDATA_STANDING_RIGHT, 2, 2, -1, -1, 0, OBJECTTYPE_SCRIPT, 0, JackySuperNerd4, -1 diff --git a/maps/OldCity.asm b/maps/OldCity.asm index bd5d28e..1ef2feb 100644 --- a/maps/OldCity.asm +++ b/maps/OldCity.asm @@ -23,14 +23,14 @@ HoneyGrandmaSignScript: HoneyGrandmaSignText: text "HONEY GRANDMA's" - line "house" + line "HOUSE" done OldCityEarlsHouseSignScript: jumptext OldCityEarlsHouseSignText OldCityEarlsHouseSignText: - text "EARL'S house" + text "EARL'S HOUSE" done OldCityTrainerSchoolSignScript: @@ -58,7 +58,7 @@ OldCitySouthSignScript: jumptext OldCitySouthSignText OldCitySouthSignText: - text "SOUTH: ROUTE 50" + text "SOUTH: ROUTE 49" done ; Gets its name from sepia often being used to show the romantic old days, while doubling as an orangey, autumny colour. diff --git a/maps/Route50.ablk b/maps/Route50.ablk new file mode 100644 index 0000000..aaebd3b Binary files /dev/null and b/maps/Route50.ablk differ diff --git a/maps/Route50.asm b/maps/Route50.asm new file mode 100644 index 0000000..9586850 --- /dev/null +++ b/maps/Route50.asm @@ -0,0 +1,132 @@ + object_const_def + +Route50_MapScripts: + def_scene_scripts + + def_callbacks + +GameHouseSign: + jumptext GameHouseSignText + +GameHouseSignText: + text "JACKY GEEK HOUSE" + done + +Route50Sign: + jumptext Route50SignText + +Route50SignText: + text "ROUTE 50" + para "EAST: SEPIA CITY" + line "WEST: fuck uh idk" + done + +TrainerLassLowri: + trainer LASS, LOWRI, EVENT_BEAT_LASS_LOWRI, LassLowriSeenText, LassLowriBeatenText, 0, .AfterScript + +.AfterScript: + endifjustbattled + opentext + writetext LassLowriAfterBattleText + waitbutton + closetext + end + +LassLowriSeenText: + text "I'm not like" + line "other LASSes!" ; bwahahahaha + done + +LassLowriBeatenText: + text "My cute fluffies!" + done + +LassLowriAfterBattleText: + text "Isn't this place" + line "beautiful?" + + para "I want to move" + line "here! Away from" + cont "the big city!" ; This implies she lives in West! + + para "I wish HUW would" + line "understand!" + done + +TrainerYoungsterLuc: + trainer YOUNGSTER, LUC, EVENT_BEAT_YOUNGSTER_LUC, YoungsterLucSeenText, YoungsterLucBeatenText, 0, .AfterScript + +.AfterScript: + endifjustbattled + opentext + writetext YoungsterLucAfterBattleText + waitbutton + closetext + end + +YoungsterLucSeenText: + text "Have you met" + line "JACKY?" + done + +YoungsterLucBeatenText: + text "Urk!" + done + +YoungsterLucAfterBattleText: + text "JACKY is a world-" + line "class gamer!" + + para "You should stop" + line "by his place!" + done + +TrainerYoungsterHuw: + trainer YOUNGSTER, HUW, EVENT_BEAT_YOUNGSTER_HUW, YoungsterHuwSeenText, YoungsterHuwBeatenText, 0, .AfterScript + +.AfterScript: + endifjustbattled + opentext + writetext YoungsterHuwAfterBattleText + waitbutton + closetext + end + +YoungsterHuwSeenText: + text "Passing through?" + + para "Not without a" + line "battle, you're" + cont "not!" + done + +YoungsterHuwBeatenText: + text "Awk!" + done + +YoungsterHuwAfterBattleText: + text "I want to be as" + line "good at games" + cont "as JACKY." + + para "But LOWRI keeps" + line "bothering me!" + done + +Route50_MapEvents: + db 0, 0 ; filler + + def_warp_events + warp_event 6, 5, DEBUG_ROOM, 1 ; West Gate + warp_event 15, 4, JACKYS_HOUSE, 1 ; Game House + + def_coord_events + + def_bg_events + bg_event 14, 5, BGEVENT_READ, GameHouseSign + bg_event 24, 10, BGEVENT_READ, Route50Sign + + def_object_events + object_event 23, 7, SPRITE_SPACEWORLD_GIRL, SPRITEMOVEDATA_SPINRANDOM_SLOW, 2, 2, -1, -1, 0, OBJECTTYPE_TRAINER, 2, TrainerLassLowri, -1 + object_event 16, 9, SPRITE_YOUNGSTER, SPRITEMOVEDATA_SPINRANDOM_SLOW, 2, 2, -1, -1, 0, OBJECTTYPE_TRAINER, 4, TrainerYoungsterLuc, -1 + object_event 10, 8, SPRITE_YOUNGSTER, SPRITEMOVEDATA_SPINRANDOM_SLOW, 2, 2, -1, -1, 0, OBJECTTYPE_TRAINER, 3, TrainerYoungsterHuw, -1 diff --git a/maps/SilentHills.asm b/maps/SilentHills.asm index 90ca76a..2a6d69e 100644 --- a/maps/SilentHills.asm +++ b/maps/SilentHills.asm @@ -110,7 +110,7 @@ SilentHillsSign1: jumptext SilentHillsSign1Text SilentHillsSign1Text: - text "CAL's House" + text "CAL's HOUSE" done SilentHillsSign2: @@ -118,7 +118,7 @@ SilentHillsSign2: SilentHillsSign2Text: text "SILENT HILLS" - line "Ever peaceful..." + line "Ever peaceful…" done SilentHillsSign3: @@ -133,14 +133,14 @@ SilentHillsSign4: SilentHillsSign4Text: text "Huh? The door is" - line "closed..." + line "closed…" done SilentHillsSign5: jumptext SilentHillsSign5Text SilentHillsSign5Text: - text "'s House" + text "'s HOUSE" done SilentHillsPokecenterSign: diff --git a/ram/wram.asm b/ram/wram.asm index bc452d4..d82dce5 100644 --- a/ram/wram.asm +++ b/ram/wram.asm @@ -3207,7 +3207,8 @@ wDailyResetTimer:: dw wDailyFlags1:: db wDailyFlags2:: db wSwarmFlags:: db - ds 2 +wJackyTimer:: db + ds 1 wTimerEventStartDay:: db ds 3