From e944e114796c66abfd209814a8feba9932acc2ba Mon Sep 17 00:00:00 2001 From: Llinos Evans <36418502+PlagueVonKarma@users.noreply.github.com> Date: Tue, 23 Jul 2024 12:50:30 +0100 Subject: [PATCH 1/2] Old City is now Sepia City, two houses Earl now lives in Sepia City and alludes to White City, family house added too. City renamed Sepia City. --- constants/map_constants.asm | 2 + data/maps/attributes.asm | 2 + data/maps/blocks.asm | 2 + data/maps/landmarks.asm | 3 +- data/maps/maps.asm | 2 + data/maps/scripts.asm | 2 + data/trainers/parties_new_classes.asm | 1 + maps/OldCity.asm | 50 +++++++++++++--- maps/OldCityEarlsHouse.asm | 84 +++++++++++++++++++++++++++ maps/OldCityFamilyHouse.asm | 60 +++++++++++++++++++ maps/OldCityPokecenter1F.asm | 22 +++---- maps/Route49OldCityGate1F.asm | 9 ++- maps/Route49OldCityGate2F.asm | 2 +- 13 files changed, 214 insertions(+), 27 deletions(-) create mode 100644 maps/OldCityEarlsHouse.asm create mode 100644 maps/OldCityFamilyHouse.asm diff --git a/constants/map_constants.asm b/constants/map_constants.asm index a505fe9..0679a26 100644 --- a/constants/map_constants.asm +++ b/constants/map_constants.asm @@ -640,6 +640,8 @@ ENDM map_const OLD_CITY_POKECENTER_1F, 10, 4 ; 2 map_const OLD_MART, 8, 4 ; 3 map_const HONEY_GRANDMAS_HOUSE, 5, 5 ; 4 + map_const OLD_CITY_EARLS_HOUSE, 4, 4 ; 5 + map_const OLD_CITY_FAMILY_HOUSE, 4, 4 ; 6 endgroup newgroup BLUE_FOREST ; 36 diff --git a/data/maps/attributes.asm b/data/maps/attributes.asm index 1706ee3..6b65411 100644 --- a/data/maps/attributes.asm +++ b/data/maps/attributes.asm @@ -829,6 +829,8 @@ ENDM map_attributes OldCityPokecenter1F, OLD_CITY_POKECENTER_1F, $00, 0 map_attributes OldMart, OLD_MART, $00, 0 map_attributes HoneyGrandmasHouse, HONEY_GRANDMAS_HOUSE, $00, 0 + map_attributes OldCityEarlsHouse, OLD_CITY_EARLS_HOUSE, $00, 0 + map_attributes OldCityFamilyHouse, OLD_CITY_FAMILY_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 1ecaa46..930df42 100644 --- a/data/maps/blocks.asm +++ b/data/maps/blocks.asm @@ -415,6 +415,8 @@ EcruteakLugiaSpeechHouse_Blocks: EcruteakItemfinderHouse_Blocks: VioletNicknameSpeechHouse_Blocks: VioletKylesHouse_Blocks: +OldCityEarlsHouse_Blocks: +OldCityFamilyHouse_Blocks: INCBIN "maps/House2.ablk" UnionCaveB1F_Blocks: diff --git a/data/maps/landmarks.asm b/data/maps/landmarks.asm index 836239e..0abd915 100644 --- a/data/maps/landmarks.asm +++ b/data/maps/landmarks.asm @@ -249,5 +249,6 @@ UnknownName: db "?????@" Route66Name: db "ROUTE 66@" Route49Name: db "ROUTE 49@" QuietCaveName: db "QUIET¯CAVE@" -OldCityName: db "OLD CITY@" ; I've considered the name "Archaic City", whereas "High Tech" will be "Vogue City". Thoughts? Archaic is considered a little snarly in modern day, so I haven't put it in yet. +OldCityName: db "SEPIA¯CITY@" +; High Tech will be called "Vogue City" BlueForestName: db "BLUE¯FOREST@" diff --git a/data/maps/maps.asm b/data/maps/maps.asm index a07f376..a0f6c4a 100644 --- a/data/maps/maps.asm +++ b/data/maps/maps.asm @@ -699,6 +699,8 @@ MapGroup_OldCity: map OldCityPokecenter1F, TILESET_POKECENTER, INDOOR, LANDMARK_OLD_CITY, MUSIC_POKEMON_CENTER, FALSE, PALETTE_DAY, FISHGROUP_NONE map OldMart, TILESET_NIHON_MART, INDOOR, LANDMARK_OLD_CITY, MUSIC_POKEMON_CENTER, FALSE, PALETTE_DAY, FISHGROUP_NONE map HoneyGrandmasHouse, TILESET_TRADITIONAL_HOUSE, INDOOR, LANDMARK_OLD_CITY, MUSIC_VIOLET_CITY, FALSE, PALETTE_DAY, FISHGROUP_NONE + map OldCityEarlsHouse, TILESET_TRADITIONAL_HOUSE, INDOOR, LANDMARK_OLD_CITY, MUSIC_VIOLET_CITY, FALSE, PALETTE_DAY, FISHGROUP_NONE + map OldCityFamilyHouse, TILESET_TRADITIONAL_HOUSE, INDOOR, LANDMARK_OLD_CITY, MUSIC_VIOLET_CITY, FALSE, PALETTE_DAY, FISHGROUP_NONE assert_table_length NUM_OLD_CITY_MAPS MapGroup_BlueForest: diff --git a/data/maps/scripts.asm b/data/maps/scripts.asm index 59d3069..c33f075 100644 --- a/data/maps/scripts.asm +++ b/data/maps/scripts.asm @@ -582,6 +582,8 @@ INCLUDE "maps/OldCity.asm" INCLUDE "maps/OldCityPokecenter1F.asm" INCLUDE "maps/OldMart.asm" INCLUDE "maps/HoneyGrandmasHouse.asm" +INCLUDE "maps/OldCityEarlsHouse.asm" +INCLUDE "maps/OldCityFamilyHouse.asm" SECTION "Map Scripts 30", ROMX ; spillover INCLUDE "maps/TanobyRuins.asm" diff --git a/data/trainers/parties_new_classes.asm b/data/trainers/parties_new_classes.asm index 24ad71f..4aebd7b 100644 --- a/data/trainers/parties_new_classes.asm +++ b/data/trainers/parties_new_classes.asm @@ -87,6 +87,7 @@ SoldierGroup: end_list_items SportsmanGroup: + ; one should be called Jet, using Dodrio, Electrode, Rapidash, Tauros, and Bellosom. Manga character. next_list_item ; SPORTSMAN (1) db "JACQUES@", TRAINERTYPE_NORMAL db 23 diff --git a/maps/OldCity.asm b/maps/OldCity.asm index 463546d..c176ed6 100644 --- a/maps/OldCity.asm +++ b/maps/OldCity.asm @@ -26,25 +26,56 @@ HoneyGrandmaSignText: line "house" done +OldCityEarlsHouseSignScript: + jumptext OldCityEarlsHouseSignText + +OldCityEarlsHouseSignText: + text "EARL's house" + done + +OldCityGymSignScript: + jumptext OldCityGymSignText + +OldCityGymSignText: + text "OLD CITY" + line "#MON GYM" + para "LEADER: WALKER" + + para "The Cunning" ; Man I snapped here + line "Corvid of the" + cont "Skies!" + done + +OldCitySouthSignScript: + jumptext OldCitySouthSignText + +OldCitySouthSignText: + text "SOUTH: ROUTE 50" + done + +; Gets its name from sepia often being used to show the romantic old days, while doubling as an orangey, autumny colour. OldCitySignScript: jumptext OldCitySignText OldCitySignText: - text "OLD CITY" + text "SEPIA CITY" para "The city of gold-" line "en leaves." ; doubles as a HGSS ref. maybe have a gold/silver leaf maniac somewhere idfk they're in the game and totally useless done +; TODO: What are they doing in the tower? Probably something to do with Shi-Shi, but what? +; the five-story pagoda has different statues on each floor; growlithe, pikachu, tentacruel, ho-oh(fearow?), and abra. the pikachu floor specifically has mediums, otherwise sages. it's mainly a battle place, like sprout tower. +; perhaps it's a test, link w/ the museum on having shi-shi's ball? how to integrate? GrowlitheTowerSignScript: jumptext GrowlitheTowerSignText -; TODO: What are they doing in the tower? Probably something to do with Shi-Shi, but what? GrowlitheTowerSignText: - text "GROWLITHE TOWER" + text "GROWLITHE PAGODA" line "Comment to be" cont "written." done +; museum could possibly be a collector trying to get certain objects. change when you give him certain things? OldCityMuseumSignScript: jumptext OldCityMuseumSignText @@ -67,7 +98,7 @@ OldCityOldManScript: jumptextfaceplayer OldCityOldManText OldCityOldManText: - text "GROWLITHE TOWER" + text "GROWLITHE PAGODA" line "is only open to" cont "citizens." @@ -154,7 +185,7 @@ OldCity_MapEvents: def_warp_events warp_event 18, 31, ROUTE_49_OLD_CITY_GATE_1F, 3 warp_event 19, 31, ROUTE_49_OLD_CITY_GATE_1F, 4 - warp_event 22, 26, DEBUG_ROOM, 1 ; Right-down house + warp_event 22, 26, DEBUG_ROOM, 1 ; Right-down house (Trainer School) warp_event 3, 26, OLD_MART, 1 ; Mart warp_event 27, 12, DEBUG_ROOM, 1 ; gym right warp_event 26, 12, DEBUG_ROOM, 1 ; gym left @@ -164,8 +195,8 @@ OldCity_MapEvents: warp_event 11, 16, DEBUG_ROOM, 1 ; Growlithe Tower left warp_event 3, 31, HONEY_GRANDMAS_HOUSE, 1 ; southwest house (Honey Grandma) warp_event 27, 28, OLD_CITY_POKECENTER_1F, 1 ; pokecenter - warp_event 30, 20, DEBUG_ROOM, 1 ; right-up house - warp_event 10, 26, DEBUG_ROOM, 1 ; house by mart + warp_event 30, 20, OLD_CITY_EARLS_HOUSE, 2 ; right-up house (Earl's House) + warp_event 10, 26, OLD_CITY_FAMILY_HOUSE, 2 ; house by mart (Man with a daughter and son) ; considering a tearoom where the waiters are passive-aggressive. classic kyoto. def_coord_events @@ -173,11 +204,12 @@ OldCity_MapEvents: bg_event 20, 22, BGEVENT_READ, OldCitySignScript bg_event 4, 32, BGEVENT_READ, HoneyGrandmaSignScript bg_event 8, 14, BGEVENT_READ, GrowlitheTowerSignScript - bg_event 26, 20, BGEVENT_READ, OldCityMuseumSignScript - bg_event 28, 14, BGEVENT_READ, OldCityMuseumSignScript + bg_event 26, 20, BGEVENT_READ, OldCityEarlsHouseSignScript ; Bill's House + bg_event 28, 14, BGEVENT_READ, OldCityGymSignScript ; Gym Sign bg_event 8, 11, BGEVENT_READ, OldCityMuseumSignScript bg_event 28, 28, BGEVENT_READ, OldCityPokecenterSign bg_event 4, 26, BGEVENT_READ, OldCityMartSign + bg_event 20, 30, BGEVENT_READ, OldCitySouthSignScript def_object_events object_event 24, 3, SPRITE_FRUIT_TREE, SPRITEMOVEDATA_STILL, 0, 0, -1, -1, 0, OBJECTTYPE_SCRIPT, 0, OldCityFruitTree, -1 diff --git a/maps/OldCityEarlsHouse.asm b/maps/OldCityEarlsHouse.asm new file mode 100644 index 0000000..45f7bf5 --- /dev/null +++ b/maps/OldCityEarlsHouse.asm @@ -0,0 +1,84 @@ +; In the SW97 demo, Bill's House is in Old City. +; Fitting this in is a bit hard: The Sea Cottage is Bill's "home", which is housesat by his grandfather while Bill visits his family in Goldenrod. +; Technically, everything still works, but requires that the Sea Cottage is retconned to being Bill's holiday home or something. In the anime, he is an aristocrat, but isn't it a bit of a reach? +; So instead, I'm using it for Earl, who doesn't have a certain home and can talk about White City. + object_const_def + const OLDCITY_EARL + +OldCityEarlsHouse_MapScripts: + def_scene_scripts + + def_callbacks + +OldCityEarlScript: + faceplayer + applymovement OLDCITY_EARL, OldCityEarlSpin + faceplayer + opentext + writetext OldCityEarlText1 + waitbutton + closetext + faceplayer + applymovement OLDCITY_EARL, OldCityEarlSpin + faceplayer + opentext + writetext OldCityEarlText2 + waitbutton + closetext + faceplayer + applymovement OLDCITY_EARL, OldCityEarlSpin + end + +OldCityEarlText1: + text "Oh! You it is!" + + para "Remember me do" + line "you? My smartest" + cont "student!" + + para "Live here in SEPIA" + line "CITY I do, my aca-" + cont "emy famous world-" + cont "wide!" + done + +OldCityEarlText2: + text "But also! Seminars" + line "across NIHON, I" + cont "hold! Many schools" + cont "my expertise they" + cont "desire!" + + para "Ooh, la la! Come" + line "to WHITE CITY," + cont "you must!" + + para "Smartest students" + line "go there!" + done + + +OldCityEarlSpin: + turn_head DOWN + turn_head LEFT + turn_head UP + turn_head RIGHT + turn_head DOWN + turn_head LEFT + turn_head UP + turn_head RIGHT + step_end + +OldCityEarlsHouse_MapEvents: + db 0, 0 ; filler + + def_warp_events + warp_event 4, 7, OLD_CITY, 13 + warp_event 3, 7, OLD_CITY, 13 + + def_coord_events + + def_bg_events + + def_object_events + object_event 2, 3, SPRITE_FISHER, SPRITEMOVEDATA_STANDING_RIGHT, 2, 2, -1, -1, PAL_NPC_GREEN, OBJECTTYPE_SCRIPT, 0, OldCityEarlScript, -1 diff --git a/maps/OldCityFamilyHouse.asm b/maps/OldCityFamilyHouse.asm new file mode 100644 index 0000000..cad1909 --- /dev/null +++ b/maps/OldCityFamilyHouse.asm @@ -0,0 +1,60 @@ + object_const_def + const OLDCITY_FAMILYMAN + const OLDCITY_FAMILYYOUNGSTER + const OLDCITY_FAMILYGIRL + +OldCityFamilyHouse_MapScripts: + def_scene_scripts + + def_callbacks + +OldCityFamilyManScript: + jumptextfaceplayer OldCityFamilyManText + +OldCityFamilyManText: + text "SEPIA CITY is" + line "known for its" + cont "traditional archi-" + cont "tecture." + done + +OldCityFamilyYoungsterScript: + jumptextfaceplayer OldCityFamilyYoungsterText + +OldCityFamilyYoungsterText: + text "My sister is" + line "always telling" + cont "tall tales!" + + para "A month ago, she" + line "said she saw a" + cont "bird with hands!" + done + +OldCityFamilyLassScript: + jumptextfaceplayer OldCityFamilyLassText + +OldCityFamilyLassText: + text "Daddy! I saw a" + line "huge lion-like" + cont "#MON!" + + para "It rode on the" + line "wind!" + done + +OldCityFamilyHouse_MapEvents: + db 0, 0 ; filler + + def_warp_events + warp_event 4, 7, OLD_CITY, 14 + warp_event 3, 7, OLD_CITY, 14 + + def_coord_events + + def_bg_events + + def_object_events + object_event 2, 3, SPRITE_POKEFAN_M, SPRITEMOVEDATA_STANDING_RIGHT, 2, 2, -1, -1, 0, OBJECTTYPE_SCRIPT, 0, OldCityFamilyManScript, -1 + object_event 5, 1, SPRITE_YOUNGSTER, SPRITEMOVEDATA_STANDING_DOWN, 2, 2, -1, -1, 0, OBJECTTYPE_SCRIPT, 0, OldCityFamilyYoungsterScript, -1 + object_event 0, 4, SPRITE_LASS, SPRITEMOVEDATA_WALK_UP_DOWN, 2, 2, -1, -1, 0, OBJECTTYPE_SCRIPT, 0, OldCityFamilyLassScript, -1 diff --git a/maps/OldCityPokecenter1F.asm b/maps/OldCityPokecenter1F.asm index 3e230ab..de61c30 100644 --- a/maps/OldCityPokecenter1F.asm +++ b/maps/OldCityPokecenter1F.asm @@ -1,8 +1,8 @@ object_const_def const OLDCITYPOKECENTER1F_NURSE const OLDCITYPOKECENTER1F_FISHER - const OLDCITYPOKECENTER1F_COOLTRAINER_M const OLDCITYPOKECENTER1F_COOLTRAINER_F + const OLDCITYPOKECENTER1F_ROCKET OldCityPokecenter1F_MapScripts: def_scene_scripts @@ -12,17 +12,17 @@ OldCityPokecenter1F_MapScripts: OldCityPokecenter1FNurseScript: jumpstd PokecenterNurseScript -OldCityPokecenter1FCoolTrainerMScript: - jumptextfaceplayer OldCityPokecenter1FCoolTrainerMText +; Seen in the SW97 demo. Purpose? No clue. +; Possibly like the RBY one. +OldCityPokecenter1FRocketGruntScript: + jumptextfaceplayer OldCityPokecenter1FRocketGruntText -OldCityPokecenter1FCoolTrainerMText: - text "There's a strange" - line "house full of odd" - cont "geeks on ROUTE 50." +OldCityPokecenter1FRocketGruntText: + text "Kekeke! BOSS, this" + line "is so great!" - para "I wonder why? Is" - line "something going" - cont "on?" + para "Hm? I'm on the" + line "phone, here! Shoo!" done OldCityPokecenter1FCoolTrainerFScript: @@ -63,4 +63,4 @@ OldCityPokecenter1F_MapEvents: object_event 5, 1, SPRITE_NURSE, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, OBJECTTYPE_SCRIPT, 0, OldCityPokecenter1FNurseScript, -1 object_event 13, 3, SPRITE_FISHER, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, 0, OBJECTTYPE_SCRIPT, 0, OldCityPokecenter1FFisherScript, -1 object_event 1, 4, SPRITE_COOLTRAINER_F, SPRITEMOVEDATA_WANDER, 0, 0, -1, -1, 0, OBJECTTYPE_SCRIPT, 0, OldCityPokecenter1FCoolTrainerFScript, -1 - object_event 7, 5, SPRITE_COOLTRAINER_M, SPRITEMOVEDATA_WANDER, 1, 2, -1, -1, 0, OBJECTTYPE_SCRIPT, 0, OldCityPokecenter1FCoolTrainerMScript, -1 + object_event 7, 5, SPRITE_ROCKET, SPRITEMOVEDATA_STANDING_DOWN, 1, 2, -1, -1, 0, OBJECTTYPE_SCRIPT, 0, OldCityPokecenter1FRocketGruntScript, -1 diff --git a/maps/Route49OldCityGate1F.asm b/maps/Route49OldCityGate1F.asm index 079a521..9105105 100644 --- a/maps/Route49OldCityGate1F.asm +++ b/maps/Route49OldCityGate1F.asm @@ -31,8 +31,8 @@ Route49OldCityGateYoungsterScript: jumptextfaceplayer Route49OldCityYoungsterText Route49OldCityYoungsterText: - text "OLD CITY is just" - line "on the other side" + text "SEPIA CITY is on" + line "the other side" cont "of this gate!" done @@ -40,10 +40,9 @@ Route49OldCityGateCooltrainerFScript: jumptextfaceplayer Route49OldCityCooltrainerFText Route49OldCityCooltrainerFText: - text "OLD CITY has a" + text "SEPIA CITY has a" line "famous 5-STORY" - cont "PAGODA! We call it" - cont "GROWLITHE TOWER!" + cont "PAGODA!" para "Have you ever" line "been there? You" diff --git a/maps/Route49OldCityGate2F.asm b/maps/Route49OldCityGate2F.asm index 49002a9..ea69ce8 100644 --- a/maps/Route49OldCityGate2F.asm +++ b/maps/Route49OldCityGate2F.asm @@ -33,7 +33,7 @@ Route49OldCityGate2FTwinText: text "You're a tourist?" line "That's too bad." - para "GROWLITHE TOWER" + para "GROWLITHE PAGODA" line "isn't open to just" cont "anyone." done From 8ec7b027fd4af17e96ee998eab96702992071b19 Mon Sep 17 00:00:00 2001 From: Llinos Evans <36418502+PlagueVonKarma@users.noreply.github.com> Date: Tue, 23 Jul 2024 15:24:55 +0100 Subject: [PATCH 2/2] Sepia School Adds a prep-style school to Sepia City, which talks about all those super intricate GSC mechanics. It also gave it the May98 front porch and sign. I like to imagine they all have their little Munchlaxes being trained up, maybe stockpiling on Ultra Balls to catch their first Zapdos too. --- constants/map_constants.asm | 2 + data/maps/attributes.asm | 1 + data/maps/blocks.asm | 3 + data/maps/maps.asm | 1 + data/maps/scripts.asm | 1 + data/tilesets/lab_attributes.bin | Bin 1024 -> 1024 bytes data/tilesets/lab_collision.asm | 14 +- data/tilesets/lab_metatiles.bin | Bin 1024 -> 1024 bytes data/tilesets/nihon_old_attributes.bin | Bin 1024 -> 1040 bytes data/tilesets/nihon_old_collision.asm | 1 + data/tilesets/nihon_old_metatiles.bin | Bin 1024 -> 1040 bytes maps/OldCity.ablk | Bin 360 -> 360 bytes maps/OldCity.asm | 56 +-- maps/SepiaSchool.ablk | 1 + maps/SepiaSchool.asm | 465 +++++++++++++++++++++++++ 15 files changed, 517 insertions(+), 28 deletions(-) create mode 100644 maps/SepiaSchool.ablk create mode 100644 maps/SepiaSchool.asm diff --git a/constants/map_constants.asm b/constants/map_constants.asm index 0679a26..cbf1e88 100644 --- a/constants/map_constants.asm +++ b/constants/map_constants.asm @@ -642,6 +642,8 @@ ENDM map_const HONEY_GRANDMAS_HOUSE, 5, 5 ; 4 map_const OLD_CITY_EARLS_HOUSE, 4, 4 ; 5 map_const OLD_CITY_FAMILY_HOUSE, 4, 4 ; 6 + map_const SEPIA_SCHOOL, 4, 8 ; 7 + endgroup newgroup BLUE_FOREST ; 36 diff --git a/data/maps/attributes.asm b/data/maps/attributes.asm index 6b65411..20fb9ac 100644 --- a/data/maps/attributes.asm +++ b/data/maps/attributes.asm @@ -831,6 +831,7 @@ ENDM map_attributes HoneyGrandmasHouse, HONEY_GRANDMAS_HOUSE, $00, 0 map_attributes OldCityEarlsHouse, OLD_CITY_EARLS_HOUSE, $00, 0 map_attributes OldCityFamilyHouse, OLD_CITY_FAMILY_HOUSE, $00, 0 + map_attributes SepiaSchool, SEPIA_SCHOOL, $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 930df42..6a122c7 100644 --- a/data/maps/blocks.asm +++ b/data/maps/blocks.asm @@ -1232,3 +1232,6 @@ OldCity_Blocks: HoneyGrandmasHouse_Blocks: INCBIN "maps/HoneyGrandmasHouse.ablk" + +SepiaSchool_Blocks: + INCBIN "maps/SepiaSchool.ablk" diff --git a/data/maps/maps.asm b/data/maps/maps.asm index a0f6c4a..58bf60e 100644 --- a/data/maps/maps.asm +++ b/data/maps/maps.asm @@ -701,6 +701,7 @@ MapGroup_OldCity: map HoneyGrandmasHouse, TILESET_TRADITIONAL_HOUSE, INDOOR, LANDMARK_OLD_CITY, MUSIC_VIOLET_CITY, FALSE, PALETTE_DAY, FISHGROUP_NONE map OldCityEarlsHouse, TILESET_TRADITIONAL_HOUSE, INDOOR, LANDMARK_OLD_CITY, MUSIC_VIOLET_CITY, FALSE, PALETTE_DAY, FISHGROUP_NONE map OldCityFamilyHouse, TILESET_TRADITIONAL_HOUSE, INDOOR, LANDMARK_OLD_CITY, MUSIC_VIOLET_CITY, FALSE, PALETTE_DAY, FISHGROUP_NONE + map SepiaSchool, TILESET_LAB, INDOOR, LANDMARK_OLD_CITY, MUSIC_VIOLET_CITY, FALSE, PALETTE_DAY, FISHGROUP_NONE assert_table_length NUM_OLD_CITY_MAPS MapGroup_BlueForest: diff --git a/data/maps/scripts.asm b/data/maps/scripts.asm index c33f075..71b9e19 100644 --- a/data/maps/scripts.asm +++ b/data/maps/scripts.asm @@ -584,6 +584,7 @@ INCLUDE "maps/OldMart.asm" INCLUDE "maps/HoneyGrandmasHouse.asm" INCLUDE "maps/OldCityEarlsHouse.asm" INCLUDE "maps/OldCityFamilyHouse.asm" +INCLUDE "maps/SepiaSchool.asm" SECTION "Map Scripts 30", ROMX ; spillover INCLUDE "maps/TanobyRuins.asm" diff --git a/data/tilesets/lab_attributes.bin b/data/tilesets/lab_attributes.bin index 59481a841ecc25579a083b0a2235b834520aa416..83939152d870e44f746fcd22ae61eb779edae78d 100644 GIT binary patch literal 1024 zcmd6lSq^|O2t-Q_#OVF+D`QIqT;iX;IH3bnyI9IQsFS-nF?H_xEYDmDl>4*C>unBV zbnr2g=gWXd1ZqTQS?#E`?$Z4t>+J6B91u~*_dUoop?cJt6UpoId;4O1Ue6p@|A;Pn i)#r-E;p=v9{;rLhFF+ZYb_2WA8Da1&zy delta 17 YcmZqRXyDlJfoXCfbN}Q9<_1O%06K>S=l}o! diff --git a/data/tilesets/lab_collision.asm b/data/tilesets/lab_collision.asm index b3aa6ef..55c43ee 100644 --- a/data/tilesets/lab_collision.asm +++ b/data/tilesets/lab_collision.asm @@ -46,13 +46,13 @@ tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 2d tilecoll FLOOR, FLOOR, WARP_CARPET_DOWN, WARP_CARPET_DOWN ; 2e tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 2f - tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 30 - tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 31 - tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 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 WALL, WALL, FLOOR, FLOOR ; 30 + tilecoll FLOOR, FLOOR, FLOOR, WARP_CARPET_DOWN ; 31 + tilecoll FLOOR, FLOOR, WARP_CARPET_DOWN, FLOOR ; 32 + tilecoll WALL, WALL, FLOOR, FLOOR ; 33 + tilecoll WALL, WALL, FLOOR, FLOOR ; 34 + tilecoll WALL, WALL, FLOOR, FLOOR ; 35 + tilecoll FLOOR, WALL, FLOOR, FLOOR ; 36 tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 37 tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 38 tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 39 diff --git a/data/tilesets/lab_metatiles.bin b/data/tilesets/lab_metatiles.bin index 3a4e8f70acf1776c38e7df4ca6f6b92d7c0e1aa6..a04eb8459e7b02053472634f2cc42d0ec3fab60d 100644 GIT binary patch delta 141 zcmZqRXyDlJfvH{q4QOd=>sVP^+c-EnI0gg;1R|uFm;?lbgkXFa&qP;G&&1Zw&IAZR ka(a6DCU$oAATF2>Wc1~4RMph7F1pqQa15N+{ delta 6 NcmbQh(ZI2Q1po%>0mT3S diff --git a/data/tilesets/nihon_old_collision.asm b/data/tilesets/nihon_old_collision.asm index 2ec4c6a..e737d20 100644 --- a/data/tilesets/nihon_old_collision.asm +++ b/data/tilesets/nihon_old_collision.asm @@ -62,3 +62,4 @@ tilecoll WALL, DOOR, FLOOR, FLOOR ; 3d tilecoll DOOR, WALL, WALL, WALL ; 3e tilecoll WALL, WALL, WALL, WALL ; 3f + tilecoll WALL, WALL, FLOOR, WALL ; 40 diff --git a/data/tilesets/nihon_old_metatiles.bin b/data/tilesets/nihon_old_metatiles.bin index d3ef9ba975093cfb58fff4b39d2f4b0e5bc5f13f..f23faf84f82d20cb464e4c9e1d4184ba3fba525f 100644 GIT binary patch delta 23 ecmZqRn82}sML=3wT84>t~2!4Uv2Tmvxx delta 6 NcmbQh(ZI2Q1po%>0mT3S diff --git a/maps/OldCity.ablk b/maps/OldCity.ablk index 8ac303510098d5b3087120a7ab19dd615c6ac01f..26f80042d8c1a437f29c4d4fa81426490c1c3c7b 100644 GIT binary patch delta 33 icmaFC^nz)^FEK4`Mn(n*(9>a5Q)UDLJ%`Bxj1d5S`32qp delta 33 icmaFC^nz)^FEK?WMn(n*(9>a5Q)UDLHRZ_yj1d5QZ3U+Q diff --git a/maps/OldCity.asm b/maps/OldCity.asm index c176ed6..2a9051e 100644 --- a/maps/OldCity.asm +++ b/maps/OldCity.asm @@ -26,11 +26,19 @@ HoneyGrandmaSignText: line "house" done -OldCityEarlsHouseSignScript: - jumptext OldCityEarlsHouseSignText +OldCityBillsHouseSignScript: + jumptext OldCityBillsHouseSignText -OldCityEarlsHouseSignText: - text "EARL's house" +OldCityBillsHouseSignText: + text "BILL'S house" + done + +OldCityTrainerSchoolSignScript: + jumptext OldCityTrainerSchoolSignText + +OldCityTrainerSchoolSignText: + text "SEPIA SCHOOL FOR" + line "ADVANCED TRAINERS" done OldCityGymSignScript: @@ -66,11 +74,11 @@ OldCitySignText: ; TODO: What are they doing in the tower? Probably something to do with Shi-Shi, but what? ; the five-story pagoda has different statues on each floor; growlithe, pikachu, tentacruel, ho-oh(fearow?), and abra. the pikachu floor specifically has mediums, otherwise sages. it's mainly a battle place, like sprout tower. ; perhaps it's a test, link w/ the museum on having shi-shi's ball? how to integrate? -GrowlitheTowerSignScript: - jumptext GrowlitheTowerSignText +PokemonPagodaSignScript: + jumptext PokemonPagodaSignText -GrowlitheTowerSignText: - text "GROWLITHE PAGODA" +PokemonPagodaSignText: + text "#MON PAGODA" line "Comment to be" cont "written." done @@ -98,7 +106,7 @@ OldCityOldManScript: jumptextfaceplayer OldCityOldManText OldCityOldManText: - text "GROWLITHE PAGODA" + text "The #MON PAGODA" line "is only open to" cont "citizens." @@ -109,8 +117,13 @@ OldCityTwinScript: jumptextfaceplayer OldCityTwinText OldCityTwinText: - text "Comment to be" - line "written." + text "EARL is the best" + line "teacher ever!" + + para "WALKER had his" + line "kid study under" + cont "him!" + done OldCityBugCatcherScript: @@ -185,31 +198,32 @@ OldCity_MapEvents: def_warp_events warp_event 18, 31, ROUTE_49_OLD_CITY_GATE_1F, 3 warp_event 19, 31, ROUTE_49_OLD_CITY_GATE_1F, 4 - warp_event 22, 26, DEBUG_ROOM, 1 ; Right-down house (Trainer School) + warp_event 21, 26, SEPIA_SCHOOL, 1 warp_event 3, 26, OLD_MART, 1 ; Mart warp_event 27, 12, DEBUG_ROOM, 1 ; gym right warp_event 26, 12, DEBUG_ROOM, 1 ; gym left warp_event 5, 12, DEBUG_ROOM, 1 ; Museum(?) right warp_event 4, 12, DEBUG_ROOM, 1 ; Museum(?) left - warp_event 12, 16, DEBUG_ROOM, 1 ; Growlithe Tower right - warp_event 11, 16, DEBUG_ROOM, 1 ; Growlithe Tower left - warp_event 3, 31, HONEY_GRANDMAS_HOUSE, 1 ; southwest house (Honey Grandma) - warp_event 27, 28, OLD_CITY_POKECENTER_1F, 1 ; pokecenter - warp_event 30, 20, OLD_CITY_EARLS_HOUSE, 2 ; right-up house (Earl's House) - warp_event 10, 26, OLD_CITY_FAMILY_HOUSE, 2 ; house by mart (Man with a daughter and son) + warp_event 12, 16, DEBUG_ROOM, 1 ; Pokemon Pagoda right + warp_event 11, 16, DEBUG_ROOM, 1 ; Pokemon Pagoda left + warp_event 3, 31, HONEY_GRANDMAS_HOUSE, 1 + warp_event 27, 28, OLD_CITY_POKECENTER_1F, 1 + warp_event 30, 20, OLD_CITY_EARLS_HOUSE, 1 + warp_event 10, 26, OLD_CITY_FAMILY_HOUSE, 1 ; considering a tearoom where the waiters are passive-aggressive. classic kyoto. def_coord_events def_bg_events bg_event 20, 22, BGEVENT_READ, OldCitySignScript bg_event 4, 32, BGEVENT_READ, HoneyGrandmaSignScript - bg_event 8, 14, BGEVENT_READ, GrowlitheTowerSignScript - bg_event 26, 20, BGEVENT_READ, OldCityEarlsHouseSignScript ; Bill's House - bg_event 28, 14, BGEVENT_READ, OldCityGymSignScript ; Gym Sign + bg_event 8, 14, BGEVENT_READ, PokemonPagodaSignScript + bg_event 26, 20, BGEVENT_READ, OldCityBillsHouseSignScript + bg_event 28, 14, BGEVENT_READ, OldCityGymSignScript bg_event 8, 11, BGEVENT_READ, OldCityMuseumSignScript bg_event 28, 28, BGEVENT_READ, OldCityPokecenterSign bg_event 4, 26, BGEVENT_READ, OldCityMartSign bg_event 20, 30, BGEVENT_READ, OldCitySouthSignScript + bg_event 23, 27, BGEVENT_READ, OldCityTrainerSchoolSignScript def_object_events object_event 24, 3, SPRITE_FRUIT_TREE, SPRITEMOVEDATA_STILL, 0, 0, -1, -1, 0, OBJECTTYPE_SCRIPT, 0, OldCityFruitTree, -1 diff --git a/maps/SepiaSchool.ablk b/maps/SepiaSchool.ablk new file mode 100644 index 0000000..24ab400 --- /dev/null +++ b/maps/SepiaSchool.ablk @@ -0,0 +1 @@ +345/6///00//00//00//00//////12/ \ No newline at end of file diff --git a/maps/SepiaSchool.asm b/maps/SepiaSchool.asm new file mode 100644 index 0000000..76e02e7 --- /dev/null +++ b/maps/SepiaSchool.asm @@ -0,0 +1,465 @@ +; This acts as a more "advanced" version of the Trainer School in Violet. +; Lots of GSC mechanical details, focused on what was "new" for the time. +; It also visualises some GSC intricacies that aren't talked about. + +; Some of this was in Stadium 2. + + object_const_def + const SEPIASCHOOL_EARL + const SEPIASCHOOL_COOLTRAINER_F + const SEPIASCHOOL_GAMEBOY_KID1 + const SEPIASCHOOL_GAMEBOY_KID2 + const SEPIASCHOOL_COOLTRAINER_M + const SEPIASCHOOL_POKEDEX + +SepiaSchool_MapScripts: + def_scene_scripts + + def_callbacks + +SepiaSchoolEarl: + applymovement SEPIASCHOOL_EARL, SepiaSchoolEarlSpinMovement + faceplayer + opentext + writetext SepiaSchoolEarlIntroText + yesorno + iffalse .Part1 + writetext SepiaSchoolEarlStatExpText + yesorno + iffalse .Done +.Part1: + writetext SepiaSchoolEarlTeachMoreText + yesorno + iffalse .Done + writetext SepiaSchoolEarlDVsText + waitbutton + closetext + end + +.Done: + writetext SepiaSchoolEarlNoMoreToTeachText + waitbutton + closetext + end + +SepiaSchoolCoolTrainerFScript: + jumptextfaceplayer SepiaSchoolCoolTrainerFText + +SepiaSchoolGameboyKid1Script: + faceplayer + opentext + writetext SepiaSchoolGameboyKid1Text + waitbutton + closetext + turnobject SEPIASCHOOL_GAMEBOY_KID1, DOWN + end + +SepiaSchoolGameboyKid2Script: + faceplayer + opentext + writetext SepiaSchoolGameboyKid2Text + waitbutton + closetext + turnobject SEPIASCHOOL_GAMEBOY_KID2, DOWN + end + +SepiaSchoolCoolTrainerMScript: + jumptextfaceplayer SepiaSchoolCoolTrainerMText + +SepiaSchoolBlackboard: + opentext + writetext SepiaSchoolBlackboardText +.Loop: + loadmenu .BlackboardMenuHeader + _2dmenu + closewindow + ifequal 1, .Confusion + ifequal 2, .MeanPass + ifequal 3, .Nightmare + ifequal 4, .Spikes + ifequal 5, .PhysSpc + closetext + end + +.Confusion: + writetext SepiaSchoolConfusionText + waitbutton + sjump .Loop + +.MeanPass: + writetext SepiaSchoolMeanPassText + waitbutton + sjump .Loop + +.Nightmare: + writetext SepiaSchoolNightmareText + waitbutton + sjump .Loop + +.Spikes: + writetext SepiaSchoolSpikesText + waitbutton + sjump .Loop + +.PhysSpc: + writetext SepiaSchoolPhysSpcText + waitbutton + sjump .Loop + +.BlackboardMenuHeader: + db MENU_BACKUP_TILES ; flags + menu_coords 0, 0, 11, 13 + dw .MenuData + db 1 ; default option + +.MenuData: + db STATICMENU_CURSOR ; flags + dn 6, 1 ; rows, columns + db 5 ; spacing + dba .Text + dbw BANK(@), NULL + +.Text: + db "CONFUSION@" + db "TRAPPING@" + db "NIGHTMARE@" + db "SPIKES@" + db "ATK TYPE@" + db "QUIT@" + +SepiaSchoolNotebook: + opentext + writetext SepiaSchoolNotebookText + yesorno + iffalse .Done + writetext SepiaSchoolNotebookText1 + yesorno + iffalse .Done + writetext SepiaSchoolNotebookText2 + yesorno + iffalse .Done + writetext SepiaSchoolNotebookText3 + waitbutton +.Done: + closetext + end + +SepiaSchoolBookshelf: + jumpstd DifficultBookshelfScript + +SepiaSchoolEarlSpinMovement: + turn_head DOWN + turn_head LEFT + turn_head UP + turn_head RIGHT + turn_head DOWN + turn_head LEFT + turn_head UP + turn_head RIGHT + turn_head DOWN + turn_head LEFT + turn_head UP + turn_head RIGHT + turn_head DOWN + step_end + +SepiaSchoolEarlIntroText: + text "Aha! !" + + para "More I can teach," + line "there is!" + + para "Hear me, you" + line "must!" + done + +SepiaSchoolEarlStatExpText: + text "Good! Teach you," + line "I will!" + + para "If your #MON" + line "beats another, it" + cont "gains STAT EXP.!" + + para "What it gets is" + line "based on what" + cont "that #MON was" + cont "good at." + + para "Beat KADABRA," + line "gain much SPEED" + cont "and SPCL.ATK!" + + para "Beat MANTINE," + line "gain much SPCL." + cont "DEF!" + + para "More from me you" + line "want to hear?" + done + +SepiaSchoolEarlTeachMoreText: + text "So, want to know" + line "how to breed" + cont "strong #MON?" + done + +SepiaSchoolEarlDVsText: + text "Fine! Teach you," + line "I will!" + + para "Each #MON have" + line "genes." + + para "Determine the" + line "stats of your" + cont "#MON they will!" + + para "SPECIAL stats" + line "will use the" + cont "same gene." + + para "They can be pas-" + line "sed down with" + cont "EGGs, so good" + cont "usage means" + cont "strong #MON!" + done + +SepiaSchoolEarlNoMoreToTeachText: + text "Oh! Smart student" + line "you are! Nothing" + cont "more do I teach!" + + para "Good at #MON" + line "you must be!" + done + +SepiaSchoolCoolTrainerFText: + text "Man, these are" + line "really specific…" + + para "Will this be on" + line "the test?" + done + +SepiaSchoolGameboyKid1Text: + text "We're trading" + line "#MON so we can" + cont "gain more EXP!" + done + +SepiaSchoolGameboyKid2Text: + text "Having a trusted" + line "friend like this" + cont "guy is great!" + + para "Alright, let's" + line "beat up some" + cont "#MON!" + done + +SepiaSchoolCoolTrainerMText: + text "A #MON with low" + line "HP will deal" + cont "more damage if" + cont "it uses FLAIL" + cont "or REVERSAL?" + + para "So if I use" + line "ENDURE…" + + para "Whoa! That means" + line "my DODRIO…" + done + +SepiaSchoolBlackboardText: + text "The blackboard" + line "describes #MON" + cont "intricacies." + done + +SepiaSchoolConfusionText: + text "If confused, a" + line "#MON will hit" + cont "itself half of" + cont "the time." + + para "If its ATTACK" + line "was increased," + cont "it will take" + cont "more damage!" + + para "Cure it with a" + line "BITTER BERRY!" + done + +SepiaSchoolMeanPassText: + text "If a #MON is" + line "affecting another" + cont "with SPIDER WEB" + cont "or MEAN LOOK," + + para "that #MON" + line "can't switch out!" + + para "BATON PASS will" + line "also keep the" + cont "#MON trapped!" + + para "Use this to" + line "your advantage!" + done + +SepiaSchoolNightmareText: + text "If used against" + line "a sleeping #-" + cont "MON, NIGHTMARE" + cont "deals a quarter" + cont "of a #MON's HP" + cont "every turn!" + + para "The only cure" + line "is to wake it" + cont "up or switch" + cont "out!" + done + +SepiaSchoolSpikesText: + text "SPIKES will" + line "deal a little" + cont "damage to #-" + cont "MON that switch" + cont "into battle!" + + para "FLYING type #-" + line "MON are immune." + + para "Remove SPIKES" + line "with RAPID SPIN!" + done + +SepiaSchoolPhysSpcText: + text "Moves are physical" + line "or special based" + cont "on type." + + para "Physical attacks:" + line "NORMAL, ROCK, BUG," + cont "FIGHTING, FLYING," + cont "GHOST, POISON, GR-" + cont "OUND, and STEEL." + + para "Special attacks:" + line "FIRE, WATER, ICE," + cont "ELECTRIC, PSYCHIC," + cont "GRASS, DRAGON," + cont "DARK, and FAIRY." + done + +SepiaSchoolNotebookText: + text "It's this kid's" + line "notebook…" + + ; Hilarious glitch btw + para "If a #MON" + line "tries to use" + cont "BELLY DRUM," + cont "but can't, it" + cont "still gets an" + cont "ATTACK boost!" + + para "Keep reading?" + done + +SepiaSchoolNotebookText1: + text "GUST and TWISTER" + line "deal double damage" + cont "to a FLYing" + cont "#MON!" + + para "EARTHQUAKE does" + line "the same if it" + cont "uses DIG!" + + para "Keep reading?" + done + +SepiaSchoolNotebookText2: + text "Some moves that" + line "restore HP will" + cont "vary by weather." + + para "In the sun, SYN-" + line "THESIS and MOR-" + cont "NING SUN are best." + + para "In the rain, use" + line "MOONLIGHT!" + + para "Sandstorms will" + line "make most worse." + + para "Keep reading?" + done + +SepiaSchoolNotebookText3: + text "PROTECT and DETECT" + line "will fail if used" + cont "too often." + + para "The chance halves" + line "each time!" + + para "The next page" + line "is… Blank!" + + para "GIRL: Hey!" + + para "These notes are" + line "mine! I want to" + cont "succeed at the" + cont "championship!" + done + +SepiaSchoolYoungsterScript: + jumptextfaceplayer SepiaSchoolYoungsterText + +SepiaSchoolYoungsterText: + text "I was using my" + line "best GUARDIA, but" + cont "after it used" + cont "SWORDS DANCE, it" + cont "became weak all" + cont "of a sudden!" + + para "Gah! Was it so" + line "strong it turned" + cont "negative?!" + + para "Surely not, right?" + done + +SepiaSchool_MapEvents: + db 0, 0 ; filler + + def_warp_events + warp_event 3, 15, OLD_CITY, 3 + warp_event 4, 15, OLD_CITY, 3 + + def_coord_events + + def_bg_events + bg_event 0, 1, BGEVENT_READ, SepiaSchoolBookshelf + bg_event 1, 1, BGEVENT_READ, SepiaSchoolBookshelf + bg_event 3, 0, BGEVENT_READ, SepiaSchoolBlackboard + bg_event 4, 0, BGEVENT_READ, SepiaSchoolBlackboard + + def_object_events + object_event 3, 1, SPRITE_FISHER, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_GREEN, OBJECTTYPE_SCRIPT, 0, SepiaSchoolEarl, 0 + object_event 4, 5, SPRITE_COOLTRAINER_F, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, PAL_NPC_RED, OBJECTTYPE_SCRIPT, 0, SepiaSchoolCoolTrainerFScript, -1 + object_event 2, 9, SPRITE_GAMEBOY_KID, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, OBJECTTYPE_SCRIPT, 0, SepiaSchoolGameboyKid1Script, -1 + object_event 3, 9, SPRITE_GAMEBOY_KID, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, PAL_NPC_RED, OBJECTTYPE_SCRIPT, 0, SepiaSchoolGameboyKid2Script, -1 + object_event 5, 7, SPRITE_COOLTRAINER_M, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, OBJECTTYPE_SCRIPT, 0, SepiaSchoolCoolTrainerMScript, -1 + object_event 4, 4, SPRITE_POKEDEX, SPRITEMOVEDATA_STILL, 0, 0, -1, -1, 0, OBJECTTYPE_SCRIPT, 0, SepiaSchoolNotebook, -1 + object_event 5, 11, SPRITE_YOUNGSTER, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, OBJECTTYPE_SCRIPT, 0, SepiaSchoolYoungsterScript, -1