Brunswick groundwork, misc. changes

The groundwork for Brunswick Trail events has been done. Wild data, Cactus event, and Zapdos-G events are set up, plus an NPC. This also makes the Fake Tree sprite available.

I made the warp at the tunnel in Brunswick goes directly to Celeste Hill and back. Warp tile made functional.

Many bugs right now:
- Cactus doesn't disappear after battling it. Also, making this work how I want it to is hard.
- Pokemon are encountered on every tile, which is likely because it's considered to be indoors. In trying to fix this, I seemed to completely screw up the maps, so this isn't being committed. Handle this with care.
- I made a spriteset specifically for Citrine, but it doesn't seem to be working for Brunswick, likely because Brunswick is an indoor map and thus isn't just taking it.

Misc. changes:
- Moved Sandy Shocks to a 4% encounter slot in Mt. Moon Crater to be equal to Scream Tail.
- Restored the proper translation for the "rotten PRESIDENT" scientist, courtesy of Dr. Lava and Nob Ogasawara.
This commit is contained in:
Llinos Evans 2023-04-27 04:08:27 +01:00
parent 7850a87e83
commit 108fb01070
19 changed files with 205 additions and 28 deletions

View file

@ -785,6 +785,8 @@
; Safari Zone events ; Safari Zone events
const_next $880 const_next $880
const EVENT_BEAT_CACTUS
const EVENT_BEAT_ZAPDOSG
const EVENT_GOT_HM03 const EVENT_GOT_HM03
const EVENT_GOT_MELTAN const EVENT_GOT_MELTAN

View file

@ -35,8 +35,6 @@ DEF SHOW EQU $15
const HS_SAFFRON_CITY_E ; 17 const HS_SAFFRON_CITY_E ; 17
const HS_SAFFRON_CITY_F ; 18 const HS_SAFFRON_CITY_F ; 18
const HS_SAFFRON_CITY_UP_GRADE ; 19 const HS_SAFFRON_CITY_UP_GRADE ; 19
const HS_ROUTE_2_ITEM_2 ; 1A X
const HS_ROUTE_4_ITEM ; 1B X
const HS_ROUTE_9_ITEM ; 1C X const HS_ROUTE_9_ITEM ; 1C X
const HS_ROUTE_12_SNORLAX ; 1D const HS_ROUTE_12_SNORLAX ; 1D
const HS_ROUTE_12_ITEM_1 ; 1E X const HS_ROUTE_12_ITEM_1 ; 1E X
@ -225,6 +223,8 @@ DEF SHOW EQU $15
const HS_VICTORY_ROAD_1F_ITEM_1 ; D4 X const HS_VICTORY_ROAD_1F_ITEM_1 ; D4 X
const HS_VICTORY_ROAD_1F_ITEM_2 ; D5 X const HS_VICTORY_ROAD_1F_ITEM_2 ; D5 X
const HS_CHAMPIONS_ROOM_OAK ; D6 const HS_CHAMPIONS_ROOM_OAK ; D6
const HS_CACTUS ; 1A was ROUTE_2_ITEM_2
const HS_ZAPDOSG ; 1B was ROUTE_4_ITEM
const HS_SEAFOAM_ISLANDS_1F_BOULDER_1 ; D7 const HS_SEAFOAM_ISLANDS_1F_BOULDER_1 ; D7
const HS_SEAFOAM_ISLANDS_1F_BOULDER_2 ; D8 const HS_SEAFOAM_ISLANDS_1F_BOULDER_2 ; D8
const HS_SEAFOAM_ISLANDS_B1F_BOULDER_1 ; D9 const HS_SEAFOAM_ISLANDS_B1F_BOULDER_1 ; D9

View file

@ -83,7 +83,7 @@ DEF FIRST_STILL_SPRITE EQU const_value
const SPRITE_POKEDEX ; $4b const SPRITE_POKEDEX ; $4b
const SPRITE_CLIPBOARD ; $4c const SPRITE_CLIPBOARD ; $4c
const SPRITE_SNORLAX ; $4d const SPRITE_SNORLAX ; $4d
const SPRITE_UNUSED_OLD_AMBER ; $4e const SPRITE_FAKE_TREE ; $4e was SPRITE_UNUSED_OLD_AMBER
const SPRITE_OLD_AMBER ; $4f const SPRITE_OLD_AMBER ; $4f
const SPRITE_UNUSED_GAMBLER_ASLEEP_1 ; $50 const SPRITE_UNUSED_GAMBLER_ASLEEP_1 ; $50
const SPRITE_UNUSED_GAMBLER_ASLEEP_2 ; $51 const SPRITE_UNUSED_GAMBLER_ASLEEP_2 ; $51

View file

@ -13,6 +13,7 @@
const SPRITESET_SILENCE_BRIDGE ; 08 const SPRITESET_SILENCE_BRIDGE ; 08
const SPRITESET_CYCLING_ROAD ; 09 const SPRITESET_CYCLING_ROAD ; 09
const SPRITESET_FUCHSIA ; 0a const SPRITESET_FUCHSIA ; 0a
const SPRITESET_CITRINE ; 0b
DEF NUM_SPRITE_SETS EQU const_value - 1 DEF NUM_SPRITE_SETS EQU const_value - 1
; split sprite set ids ; split sprite set ids

View file

@ -17,9 +17,9 @@ MapHSPointers:
dw NoHS dw NoHS
dw NoHS dw NoHS
dw Route1HS dw Route1HS
dw Route2HS dw NoHS ; Route2HS is unnecessary due to new events replacing it.
dw NoHS dw NoHS
dw Route4HS dw NoHS ; Route4HS was made unnecessary from replacements
dw NoHS dw NoHS
dw NoHS dw NoHS
dw NoHS dw NoHS
@ -177,7 +177,7 @@ MapHSPointers:
dw NoHS dw NoHS
dw NoHS dw NoHS
dw NoHS dw NoHS
dw NoHS dw BrunswickTrailHS
dw NoHS dw NoHS
dw NoHS dw NoHS
dw NoHS dw NoHS
@ -293,11 +293,11 @@ SaffronCityHS:
db SAFFRON_CITY, $0E, SHOW db SAFFRON_CITY, $0E, SHOW
db SAFFRON_CITY, $0F, HIDE db SAFFRON_CITY, $0F, HIDE
db SAFFRON_CITY, $1A, HIDE db SAFFRON_CITY, $1A, HIDE
Route2HS: ;Route2HS: - made redundant.
;db ROUTE_2, $01, SHOW - removed for the former ;db ROUTE_2, $01, SHOW
db ROUTE_2, $02, SHOW ;db ROUTE_2, $02, SHOW
Route4HS: ;Route4HS:
db ROUTE_4, $03, SHOW ;db ROUTE_4, $03, SHOW
Route9HS: Route9HS:
db ROUTE_9, $0A, SHOW db ROUTE_9, $0A, SHOW
Route12HS: Route12HS:
@ -555,6 +555,9 @@ VictoryRoad1FHS:
db VICTORY_ROAD_1F, $04, SHOW db VICTORY_ROAD_1F, $04, SHOW
ChampionsRoomHS: ChampionsRoomHS:
db CHAMPIONS_ROOM, $02, HIDE db CHAMPIONS_ROOM, $02, HIDE
BrunswickTrailHS:
db BRUNSWICK_TRAIL, $01, SHOW
db BRUNSWICK_TRAIL, $03, SHOW ; to test, SHOW, otherwise HIDE
SeafoamIslands1FHS: SeafoamIslands1FHS:
db SEAFOAM_ISLANDS_1F, $01, SHOW db SEAFOAM_ISLANDS_1F, $01, SHOW
db SEAFOAM_ISLANDS_1F, $02, SHOW db SEAFOAM_ISLANDS_1F, $02, SHOW

View file

@ -7,5 +7,8 @@ BrunswickTrail_Object:
def_bg_events def_bg_events
def_object_events def_object_events
object_event 29, 11, SPRITE_FAKE_TREE, STAY, NONE, 1, CACTUS, 60 | OW_POKEMON ; person
object_event 37, 23, SPRITE_BRUNETTE_GIRL, STAY, DOWN, 2 ; person
object_event 46, 7, SPRITE_BIRD, STAY, DOWN, 3, ZAPDOS_G, 70 | OW_POKEMON ; person
def_warps_to BRUNSWICK_TRAIL def_warps_to BRUNSWICK_TRAIL

View file

@ -2,8 +2,7 @@ CelesteHill_Object:
db $0 ; border block db $0 ; border block
def_warp_events def_warp_events
warp_event 13, 23, ROUTE_1, 1 warp_event 13, 23, BRUNSWICK_TRAIL, 1
warp_event 12, 23, ROUTE_1, 1
def_bg_events def_bg_events

View file

@ -14,7 +14,7 @@ MapSpriteSets:
db SPRITESET_SAFFRON ; SAFFRON_CITY db SPRITESET_SAFFRON ; SAFFRON_CITY
db SPRITESET_PALLET_VIRIDIAN ; CINNABAR_ISLAND db SPRITESET_PALLET_VIRIDIAN ; CINNABAR_ISLAND
db SPRITESET_INDIGO ; INDIGO_PLATEAU db SPRITESET_INDIGO ; INDIGO_PLATEAU
db SPRITESET_PALLET_VIRIDIAN ; CITRINE_CITY db SPRITESET_CITRINE ; CITRINE_CITY
db SPRITESET_PALLET_VIRIDIAN ; ROUTE_1 db SPRITESET_PALLET_VIRIDIAN ; ROUTE_1
db SPLITSET_ROUTE_2 ; ROUTE_2 db SPLITSET_ROUTE_2 ; ROUTE_2
db SPRITESET_PEWTER_CERULEAN ; ROUTE_3 db SPRITESET_PEWTER_CERULEAN ; ROUTE_3
@ -198,4 +198,17 @@ SpriteSets:
db SPRITE_POKE_BALL db SPRITE_POKE_BALL
db SPRITE_FOSSIL db SPRITE_FOSSIL
; SPRITESET_CITRINE
db SPRITE_BRUNETTE_GIRL
db SPRITE_BIRD
db SPRITE_SUPER_NERD ; free slot, add as needed.
db SPRITE_HIKER ; free slot, add as needed.
db SPRITE_GAMBLER ; free slot, add as needed.
db SPRITE_MONSTER ; free slot, add as needed.
db SPRITE_COOLTRAINER_F ; free slot, add as needed.
db SPRITE_COOLTRAINER_M ; free slot, add as needed.
db SPRITE_GUARD ; free slot, add as needed.
db SPRITE_POKE_BALL ; probably not free
db SPRITE_FAKE_TREE
assert_table_length NUM_SPRITE_SETS assert_table_length NUM_SPRITE_SETS

View file

@ -87,7 +87,7 @@ SpriteSheetPointerTable:
overworld_sprite PokedexSprite, 4 ; SPRITE_POKEDEX overworld_sprite PokedexSprite, 4 ; SPRITE_POKEDEX
overworld_sprite ClipboardSprite, 4 ; SPRITE_CLIPBOARD overworld_sprite ClipboardSprite, 4 ; SPRITE_CLIPBOARD
overworld_sprite SnorlaxSprite, 4 ; SPRITE_SNORLAX overworld_sprite SnorlaxSprite, 4 ; SPRITE_SNORLAX
overworld_sprite OldAmberSprite, 4 ; SPRITE_UNUSED_OLD_AMBER overworld_sprite FakeTreeSprite, 4 ; was SPRITE_UNUSED_OLD_AMBER
overworld_sprite OldAmberSprite, 4 ; SPRITE_OLD_AMBER overworld_sprite OldAmberSprite, 4 ; SPRITE_OLD_AMBER
overworld_sprite GamblerAsleepSprite, 4 ; SPRITE_UNUSED_GAMBLER_ASLEEP_1 overworld_sprite GamblerAsleepSprite, 4 ; SPRITE_UNUSED_GAMBLER_ASLEEP_1
overworld_sprite GamblerAsleepSprite, 4 ; SPRITE_UNUSED_GAMBLER_ASLEEP_2 overworld_sprite GamblerAsleepSprite, 4 ; SPRITE_UNUSED_GAMBLER_ASLEEP_2

View file

@ -36,5 +36,5 @@ Tilesets:
tileset PreGym, $3A, $3B, -1, -1, TILEANIM_NONE tileset PreGym, $3A, $3B, -1, -1, TILEANIM_NONE
tileset Citrine, -1, -1, -1, $3F, TILEANIM_WATER_FLOWER tileset Citrine, -1, -1, -1, $3F, TILEANIM_WATER_FLOWER
tileset Celeste, -1, -1, -1, $19, TILEANIM_WATER_FLOWER tileset Celeste, -1, -1, -1, $19, TILEANIM_WATER_FLOWER
tileset RocketHouse, $0A, -1, -1, -1, TILEANIM_NONE tileset RocketHouse, $0A, -1, -1, -1, TILEANIM_NONE
assert_table_length NUM_TILESETS assert_table_length NUM_TILESETS

View file

@ -98,7 +98,7 @@ ENDM
warp_tiles $23 warp_tiles $23
.CitrineWarpTileIDs: .CitrineWarpTileIDs:
warp_tiles $1B, $1C, $0B, $0C warp_tiles $1B, $1C, $0B, $0C, $58, $59
.CelesteWarpTileIDs: .CelesteWarpTileIDs:
warp_tiles $5A, $5C, $3A, $30, $50, $51 ; Like Forest but a bit better warp_tiles $5A, $5C, $3A, $30, $50, $51 ; Like Forest but a bit better

View file

@ -174,7 +174,7 @@ WildDataPointers:
dw NothingWildMons dw NothingWildMons
dw NothingWildMons dw NothingWildMons
dw NothingWildMons dw NothingWildMons
dw NothingWildMons dw BrunswickTrailMons
dw NothingWildMons dw NothingWildMons
dw NothingWildMons dw NothingWildMons
dw NothingWildMons dw NothingWildMons
@ -334,3 +334,4 @@ INCLUDE "data/wild/maps/MtMoonCrater.asm"
INCLUDE "data/wild/maps/UnderwaterTunnel.asm" INCLUDE "data/wild/maps/UnderwaterTunnel.asm"
INCLUDE "data/wild/maps/BillsGarden.asm" INCLUDE "data/wild/maps/BillsGarden.asm"
INCLUDE "data/wild/maps/CelesteHill.asm" INCLUDE "data/wild/maps/CelesteHill.asm"
INCLUDE "data/wild/maps/BrunswickTrail.asm"

View file

@ -0,0 +1,28 @@
; Given it's the Galarian Zapdos area, let's theme it with racing Pokemon.
; Some of these are Pokemon featured in the Big P Pokemon Race from the anime.
BrunswickTrailMons:
def_grass_wildmons 10 ; encounter rate
db 49, TOEDSCOOL
db 47, DODRIO
db 53, TOEDSCOOL
db 52, DODRIO
db 52, RAPIDASH
db 55, TAUROS
db 55, SANDSLASH
db 56, TOEDSCRUEL
db 56, TOEDSCRUEL
db 55, CACTUS
end_grass_wildmons
def_water_wildmons 10 ; encounter rate
db 52, WEIRDUCK
db 54, WEIRDUCK
db 50, GOLDUCK
db 56, STARYU
db 50, STARYU
db 52, GOLDUCK ; The fastest swimmer in Kanto, as stated in the Pokedex book.
db 54, GOLDUCK
db 50, SEADRA
db 56, SEADRA
db 50, RATICATE ; Raticate are said to be able to swim; fun Easter Egg; seen in the anime.
end_water_wildmons

View file

@ -2,14 +2,14 @@ MtMoonCraterMons:
def_grass_wildmons 10 ; encounter rate def_grass_wildmons 10 ; encounter rate
db 49, DUGTRIO db 49, DUGTRIO
db 47, VENOMOTH db 47, VENOMOTH
db 53, CHANSEY db 53, RAICHU
db 52, VENOMOTH db 52, VENOMOTH
db 52, DUGTRIO db 52, DUGTRIO
db 55, RAICHU db 55, ESPEON
db 55, UMBREON db 55, UMBREON
db 56, ESPEON db 56, SANDY_SHOCKS
db 50, SCREAM_TAIL db 50, SCREAM_TAIL
db 50, SANDY_SHOCKS db 50, CHANSEY ; I don't like this but I also don't like the Paradox Pokemon not both being 4%. Sue me.
end_grass_wildmons end_grass_wildmons
def_water_wildmons 10 ; encounter rate def_water_wildmons 10 ; encounter rate

View file

@ -89,3 +89,4 @@ SurfingPikachuSprite:: INCBIN "gfx/sprites/surfing_pikachu.2bpp"
JessieSprite:: INCBIN "gfx/sprites/jessie.2bpp" JessieSprite:: INCBIN "gfx/sprites/jessie.2bpp"
JamesSprite:: INCBIN "gfx/sprites/james.2bpp" JamesSprite:: INCBIN "gfx/sprites/james.2bpp"
SmallBirdSprite:: INCBIN "gfx/sprites/smallbird.2bpp" SmallBirdSprite:: INCBIN "gfx/sprites/smallbird.2bpp"
FakeTreeSprite:: INCBIN "gfx/sprites/fake_tree.2bpp"

View file

@ -2077,7 +2077,7 @@ wSilphCo11FCurScript:: db
ds 1 ds 1
wFuchsiaGymCurScript:: db wFuchsiaGymCurScript:: db
wSaffronGymCurScript:: db wSaffronGymCurScript:: db
ds 1 wBrunswickTrailCurScript:: db
wCinnabarGymCurScript:: db wCinnabarGymCurScript:: db
wGameCornerCurScript:: db wGameCornerCurScript:: db
wRoute16Gate1FCurScript:: db wRoute16Gate1FCurScript:: db
@ -2085,7 +2085,7 @@ wBillsHouseCurScript:: db
wRoute5GateCurScript:: db wRoute5GateCurScript:: db
wPowerPlantCurScript:: ; overload wPowerPlantCurScript:: ; overload
wRoute7GateCurScript:: db wRoute7GateCurScript:: db
wRoute1CurScript:: db ; pls work - for oak wRoute1CurScript:: db
wSSAnne2FCurScript:: db wSSAnne2FCurScript:: db
wCitrineCityCurScript:: db wCitrineCityCurScript:: db
wSeafoamIslandsB3FCurScript:: db wSeafoamIslandsB3FCurScript:: db

View file

@ -1,6 +1,92 @@
BrunswickTrail_Script: BrunswickTrail_Script:
jp EnableAutoTextBoxDrawing jp EnableAutoTextBoxDrawing
ld hl, BrunswickTrail_ScriptPointers
ld a, [wBrunswickTrailCurScript]
jp CallFunctionInTable
BrunswickTrail_ScriptPointers:
dw CheckFightingMapTrainers
dw DisplayEnemyTrainerTextAndStartBattle
dw EndTrainerBattle
BrunswickTrail_TextPointers: BrunswickTrail_TextPointers:
dw FakeTreeEvent
dw ZapdosGuy
dw GalarianZapdosText
BrunswickTrailTrainerHeaders:
def_trainers 0
CactusTrainerHeader:
trainer EVENT_BEAT_CACTUS, 0, CactusBattleText, CactusBattleText, CactusBattleText
GalarianZapdosTrainerHeader:
trainer EVENT_BEAT_ZAPDOSG, 0, GalarianZapdosBattleText, GalarianZapdosBattleText, GalarianZapdosBattleText
db -1 ; end
ZapdosGuy:
text_far _ZapdosGuy
text_end
FakeTreeNoCut:
text_far _FakeTreeNoCut
text_end
FakeTreePrompt:
text_far _FakeTreePrompt
text_end
; Ok, so here's how it is.
; So look, I tried to make the text work more efficiently with FakeTreeEvent.
; But one bug literally took me back to the fucking title screen and at that point I gave up and decided to do it this hacky way.
; I wanted to have some text before the CUT check. It did not work. It was terrifying.
; So instead I have two different versions of the same text, despite some being the same.
; It is inefficient, but it works. There's a lot to see in this life, and I'm not wasting it in Notepad++.
FakeTreeEvent:
text_asm
; ld d, CUT
; farcall HasPartyMove
; jr z, .NoCut
; jr nz, .HasCut
;.HasCut
ld hl, FakeTreePrompt
call PrintText
call YesNoChoice
ld a, [wCurrentMenuItem]
and a
jr nz, .refused
ld a, SFX_CUT
call PlaySound
ld hl, CactusTrainerHeader
call TalkToTrainer
jp TextScriptEnd ; I have tried a lot of things and it's not disappearing AAA
;.NoCut
; ld hl, FakeTreeNoCut ; Why do you have to be this way? I scream, for I do not know.
; call PrintText
; ret
.refused
jp TextScriptEnd
CactusBattleText:
text_far _FakeTreeAttack
text_asm
ld a, CACTUS
call PlayCry
call WaitForSoundToFinish
jp TextScriptEnd
GalarianZapdosText:
text_asm
ld hl, GalarianZapdosTrainerHeader
call TalkToTrainer
jp TextScriptEnd
GalarianZapdosBattleText:
text_far _GalarianZapdosBattleText
text_asm
ld a, ZAPDOS_G
call PlayCry
call WaitForSoundToFinish
jp TextScriptEnd
text_end ; unused text_end ; unused

View file

@ -0,0 +1,40 @@
_ZapdosGuy::
text "Sometimes, a BIRD"
line "#MON with"
cont "strong legs comes"
cont "to race all the"
cont "#MON here."
done
_FakeTreeNoCut::
text "This tree can be"
line "CUT!"
done
_FakeTreePrompt::
text "This tree can be"
line "CUT!"
para "Would you like to"
line "use CUT?"
prompt
; The Cut script currently doesn't load what I want it to. Sp, I commented out the RAM and made it "you".
; For this to work, I need to make a special version of HasPartyMove.
_FakeTreeAttack::
;text_ram wcd6d
text "You tried"
line "to hack away..."
para "But it was a"
line "CACTUS!"
para "CACTUS retaliated"
line "in a rage!"
prompt
_GalarianZapdosBattleText::
text "Kyooo!"
prompt
; Martha can do the text for her things...

View file

@ -73,11 +73,11 @@ _SilphCo6AfterBattleText2::
_SilphCo6BattleText3:: _SilphCo6BattleText3::
text "That rotten" text "That rotten"
line "PRESIDENT!" line "CHIEF!"
para "He shouldn't have" para "He shouldn't have"
line "sent me to the" line "sent me to PONAYA"
cont "TIKSI BRANCH!" cont "TUNGUSKA!"
done done
_SilphCo6EndBattleText3:: _SilphCo6EndBattleText3::