WIP Omega Event

So this isn't working very well. It's halfway there and worked exactly once with what I can only describe as a cosmic ray event.

Here's how it's intended to work: Right as you open the Card Key door, Omega comes barging through, having previously been fighting with Giovanni.

The walking and stuff seems to work, but there are three issues:
- Omega's battle doesn't start, causing a softlock. `call TalkToTrainer` seems to be the iffy point. Note that this code is usually used when talking to a static entity.
- The music bugs out as Omega walks over; this may be linked to the above problem.
- Once these issues are alleviated, Omega will have to disappear, but this isn't a massive deal.

Also includes a dev door in Red's room to easily access the event, and minor code cleanup with Viridian Pre-Gym and Oak's lab - just unnecessary comments.
This commit is contained in:
Llinos Evans 2023-04-13 17:13:11 +01:00
parent bb65963836
commit da13aa9a32
8 changed files with 53 additions and 13 deletions

View file

@ -949,9 +949,9 @@ OaksLabScript_1d157:
jr z, OaksLabLookAtSquirtle
cp $4
jr z, OaksLabLookAtBulbasaur
cp $8 ; these may be the wrong way around.
cp $8
jr nz, OaksLabLookAtPikachu
cp $7 ; ^
cp $7
jr nz, OaksLabLookAtEevee

View file

@ -63,12 +63,27 @@ SilphCo11Script_62137:
ldh [hUnlockedSilphCoDoors], a
ret
SilphCo11Script_62163:
SilphCo11Script_62163: ; This is altered to have Omega rush you once the door is open.
ldh a, [hUnlockedSilphCoDoors]
and a
ret z
SetEvent EVENT_SILPH_CO_11_UNLOCKED_DOOR
ret
ld a, $6
ldh [hSpriteIndex], a
ld de, .OmegaMovement1
call MoveSprite
ld a, [wXCoord] ; compare x coord before moving
cp 6
ld a, NPC_MOVEMENT_RIGHT
jp OmegaText
.OmegaMovement1:
db NPC_MOVEMENT_DOWN
db NPC_MOVEMENT_DOWN
db -1 ; end
SilphCo11Script_6216d:
ld hl, MissableObjectIDs_6219b
@ -280,6 +295,7 @@ SilphCo11F_TextPointers:
dw SilphCo11Text4
dw SilphCo11Text5
dw SilphCo11Text6
dw OmegaText
SilphCo11TrainerHeaders:
def_trainers 4
@ -287,6 +303,8 @@ SilphCo11TrainerHeader0:
trainer EVENT_BEAT_SILPH_CO_11F_TRAINER_0, 4, SilphCo11BattleText1, SilphCo11EndBattleText1, SilphCo11AfterBattleText1
SilphCo11TrainerHeader1:
trainer EVENT_BEAT_SILPH_CO_11F_TRAINER_1, 3, SilphCo11BattleText2, SilphCo11EndBattleText2, SilphCo11AfterBattleText2
OmegaTrainerHeader:
trainer EVENT_BEAT_OMEGA, 0, OmegaBattleText, OmegaBattleText, OmegaBattleText
db -1 ; end
SilphCo11Text1:
@ -392,3 +410,20 @@ SilphCo10Text_6236c:
SilphCo10Text_6237b:
text_far _SilphCo10Text_6237b
text_end
; Omega Boss Fight text begins here.
OmegaBattleText:
text_far _OmegaBattleText
text_asm
ld a, OMEGA
call PlayCry
call WaitForSoundToFinish
jp TextScriptEnd
OmegaText:
call Delay3
text_asm
ld hl, OmegaTrainerHeader
call TalkToTrainer
ld [wJoyIgnore], a
jp TextScriptEnd

View file

@ -86,9 +86,6 @@ YujirouText:
jr .done
.done
jp TextScriptEnd
; where the hell do i put SetEvent EVENT_BEAT_YUJIROU
YujirouIntro::
text_far _YujirouIntro