kep-hack/scripts/BrunswickTrail.asm
Llinos Evans f65e0dd3bf Groundwork for Galarian Bird event
This adds the first half of an event where you will find the Galarian Birds. It is not finished yet.

It currently bugs out when Galarian Zapdos tries to run away and I don't know why. Frame-by-frame, it seems to be when the player has to move. I've tried different things to make this less bad, but they don't work.

Here's how it's meant to go:
1) Articuno flies away (done)
2) Zapdos barges past the player like Silver does in GSC (bugs out)
3) Moltres moves in front of the player and engages (not done)

If anyone has a better way to do this, please let me know!

Minor changes;
- Connection for Brunswick-Citrine looks nicer
- Celeste has a few changes to make the event run easier.
2023-04-27 18:00:47 +01:00

96 lines
2.2 KiB
NASM

BrunswickTrail_Script:
call EnableAutoTextBoxDrawing
ld hl, BrunswickTrailTrainerHeaders
ld de, BrunswickTrail_ScriptPointers
ld a, [wBrunswickTrailCurScript]
call ExecuteCurMapScriptInTable
ld [wBrunswickTrailCurScript], a
ret
BrunswickTrail_ScriptPointers:
dw CheckFightingMapTrainers
dw DisplayEnemyTrainerTextAndStartBattle
dw EndTrainerBattle
BrunswickTrail_TextPointers:
dw FakeTreeEvent
dw ZapdosGuy
dw GalarianZapdosText
BrunswickTrailTrainerHeaders:
def_trainers
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.
; I tried to make the text work more efficiently here, but nothing worked.
; One bug literally took me back to the fucking title screen and at that point I gave up.
; 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