Finishing Silph Co. 11F

That's a fair chunk out of my day...

This commit finishes everything about Silph Co. 11F. DON'T. TOUCH IT. Unless there's a bug, but OTHERWISE, do NOT touch it. Holy shit.

Here's everything featured;
- Jessie and James fight, ported over.
- Rocket grunt changed to the appointment one from the strange room on the other side that really shouldn't be there tbh
- Omega fight now doesn't have the "watch out" text as I needed to do a micro-optimisation TRUST ME it was NECESSARY (it was not, in fact, necessary)
- Giovanni now reuses Beedrill and has a generally stronger team, scaling with the fifth Rival fight.
- Omega refight has been added after some toiling with the Team Rocket intro text that absolutely should not have happened but did for some reason AAA
- Rocket trio text somewhat tweaked

Oh and I ported over the balance patch on the stats, including some neo-Cryithan onboarding.
This commit is contained in:
Llinos Evans 2023-07-09 11:43:32 +01:00
parent e2901cd854
commit 0659fb1c65
17 changed files with 514 additions and 161 deletions

View file

@ -771,7 +771,10 @@
const_skip 5
const EVENT_BEAT_SILPH_CO_10F_TRAINER_0
const EVENT_BEAT_SILPH_CO_10F_TRAINER_1
const_skip 5
const_skip 2
const EVENT_780 ; jessie and james
const EVENT_781 ; jessie and james
const EVENT_782 ; jessie and james
const EVENT_SILPH_CO_10_UNLOCKED_DOOR
const_skip 11
const EVENT_BEAT_SILPH_CO_11F_TRAINER_0

View file

@ -199,9 +199,11 @@ DEF SHOW EQU $15
const HS_SILPH_CO_10F_ITEM_2 ; BA X best deck
const HS_SILPH_CO_10F_ITEM_3 ; BB X
const HS_SILPH_CO_11F_1 ; BC
const HS_SILPH_CO_11F_2 ; BD
const HS_SILPH_CO_11F_JAMES ; BD
const HS_SILPH_CO_11F_3 ; BE
const HS_SILPH_CO_11F_JESSIE ; BD
const HS_OMEGA ; BF
const HS_OMEGA_2
const HS_DRAGONITE ; C0
const HS_MOLTRES ; C1
const HS_POKEMON_MANSION_2F_ITEM ; C2 X
@ -260,5 +262,5 @@ DEF SHOW EQU $15
const HS_ROCK_TUNNEL_B1F_AMBER ; F8
const HS_ROCK_TUNNEL_B1F_WING ; F9
const HS_MT_MOON_CRATER_GUARD ; FA
const HS_DAYCARE_BULBASAUR ; FB
const HS_DAYCARE_BULBASAUR ; FB should be FD
DEF NUM_HS_OBJECTS EQU const_value

View file

@ -522,10 +522,12 @@ SilphCo10FHS:
db SILPH_CO_10F, $04, SHOW ; HS_SILPH_CO_10F_ITEM_1
db SILPH_CO_10F, $05, SHOW ; HS_SILPH_CO_10F_ITEM_2
SilphCo11FHS:
db SILPH_CO_11F, $03, SHOW ; HS_SILPH_CO_11F_1
db SILPH_CO_11F, $04, SHOW ; HS_SILPH_CO_11F_2
db SILPH_CO_11F, $05, SHOW ; HS_SILPH_CO_11F_3
db SILPH_CO_11F, $06, SHOW ; HS_OMEGA
db SILPH_CO_11F, $03, SHOW ; Giovanni
db SILPH_CO_11F, $04, SHOW ; James
db SILPH_CO_11F, $05, SHOW ; Rocket
db SILPH_CO_11F, $06, SHOW ; James
db SILPH_CO_11F, $07, SHOW ; HS_OMEGA
db SILPH_CO_11F, $08, HIDE ; HS_OMEGA_2
UnderwaterTunnelHS:
db UNDERWATER_TUNNEL, $01, SHOW ; HS_DRAGONITE
CinnabarVolcanoHS:

View file

@ -4,12 +4,12 @@ RedsHouse2F_Object:
def_warp_events
warp_event 7, 1, REDS_HOUSE_1F, 3
;warp_event 5, 1, SILPH_GAUNTLET_7F, 1 ; - Test Chief
;warp_event 5, 1, SILPH_CO_11F, 1 ; - Test J&J, Omega, & Giovanni
warp_event 5, 1, SILPH_CO_11F, 2 ; - Test J&J, Omega, & Giovanni. To test the Omega refight, change to SHOW in hide/show data, and set warp ID to 1.
;warp_event 5, 1, ROCKET_HIDEOUT_B4F, 2 ; - Test Giovanni 1
;warp_event 5, 1, MT_MOON_SQUARE, 1 ; - Test Shop, NPCs, and Crater
;warp_event 5, 1, CELESTE_HILL, 1 ; - Test GMolt
;warp_event 5, 1, INDIGO_PLATEAU_LOBBY, 1 ; easy league access
warp_event 5, 1, GARNET_CAVERN_B1F, 1 ; Test GCuno
;warp_event 5, 1, GARNET_CAVERN_B1F, 1 ; Test GCuno
;warp_event 5, 1, FARAWAY_ISLAND_INSIDE, 1 ; Test Mew
def_bg_events

View file

@ -13,8 +13,10 @@ SilphCo11F_Object:
object_event 7, 5, SPRITE_SILPH_PRESIDENT, STAY, DOWN, 1 ; person
object_event 10, 5, SPRITE_BEAUTY, STAY, DOWN, 2 ; person
object_event 6, 9, SPRITE_GIOVANNI, STAY, DOWN, 3, OPP_GIOVANNI, 2
object_event 3, 16, SPRITE_ROCKET, STAY, UP, 4, OPP_ROCKET, 41
object_event 15, 9, SPRITE_ROCKET, STAY, UP, 5, OPP_ROCKET, 40
object_event 6, 11, SPRITE_MONSTER, STAY, UP, 7, OMEGA, 45 | OW_POKEMON
object_event 2, 8, SPRITE_JAMES, STAY, UP, 4
object_event 3, 16, SPRITE_ROCKET, STAY, UP, 5, OPP_ROCKET, 41
object_event 3, 8, SPRITE_JESSIE, STAY, UP, 6
object_event 6, 11, SPRITE_MONSTER, STAY, UP, 11, OMEGA, 45 | OW_POKEMON
object_event 15, 15, SPRITE_MONSTER, STAY, UP, 12, OMEGA, 75 | OW_POKEMON
def_warps_to SILPH_CO_11F

View file

@ -3,7 +3,7 @@
db 72, 53, 46, 98, 81
; hp atk def spd spc
db WATER, WATER ; type
db DRAGON, DRAGON ; type
db 45 ; catch rate
db 144 ; base exp

View file

@ -1,9 +1,9 @@
db DEX_CRYITHAN ; pokedex id
db 92, 83, 76, 118, 101
db 92, 93, 76, 108, 121
; hp atk def spd spc
db WATER, DRAGON ; type
db DRAGON, DRAGON ; type
db 9 ; catch rate
db 210 ; base exp

View file

@ -1,6 +1,6 @@
db DEX_GYAOON ; pokedex id
db 101, 110, 100, 30, 95
db 101, 124, 100, 30, 95
; hp atk def spd spc
db ROCK, ROCK ; type

View file

@ -1,6 +1,6 @@
db DEX_OMEGA ; pokedex id
db 101, 100, 120, 25, 95
db 101, 106, 120, 25, 95
; hp atk def spd spc
db STEEL, STEEL ; type

View file

@ -3,7 +3,7 @@
db 62, 43, 36, 88, 71
; hp atk def spd spc
db WATER, WATER ; type
db DRAGON, DRAGON ; type
db 60 ; catch rate
db 67 ; base exp

View file

@ -1,6 +1,6 @@
db DEX_TRAMPEL ; pokedex id
db 130, 100, 90, 56, 64
db 110, 100, 90, 56, 64
; hp atk def spd spc
db NORMAL, GROUND ; type

View file

@ -739,11 +739,11 @@ JackData:
db 70, ANIMON, PURAKKUSU, HITMONLEE, PORYGON2, HITMONCHAN, SCIZOR, 0 ; not 100% sure what to do with this guy...
JessieJamesData:
db 14, EKANS, MEOWTH, KOFFING, 0 ; Mt. Moon
db 25, KOFFING, LICKITUNG, MEOWTH, EKANS, 0 ; Rocket Hideout
db 14, MEOWTH, EKANS, KOFFING, 0 ; Mt. Moon
db 25, MEOWTH, EKANS, LICKITUNG, KOFFING, 0 ; Rocket Hideout
db 27, MEOWTH, LICKITUNG, ARBOK, VICTREEBEL, WEEZING, 0 ; Pokemon Tower
db 31, WEEZING, ARBOK, LICKITUNG, VICTREEBEL, GYARADOS, MEOWTH, 0 ; Silph Co.
db $FF, 80, MEOWTH, 72, ARBOK, 71, WEEZING, 74, LICKILICKY, 74, VICTREEBEL, 74, GYARADOS, 0 ; Citrine Rocket House
db 37, MEOWTH, LICKITUNG, ARBOK, VICTREEBEL, WEEZING, GYARADOS, 0 ; Silph Co.
db $FF, 80, MEOWTH, 72, LICKILICKY, 72, ARBOK, 71, VICTREEBEL, 74, WEEZING, 76, GYARADOS, 0 ; Citrine Rocket House
INCLUDE "data/trainers/scaled_parties.asm"
INCLUDE "data/trainers/rival_parties.asm"

View file

@ -79,8 +79,8 @@ SabrinaData:
GiovanniData: ; is not scaled as he is always fought last
; Rocket Hideout B4F
db $FF, 30, BEEDRILL, 32, RHYHORN, 32, KANGASKHAN, 34, PERSIAN, 0
; Silph Co. 11F
db $FF, 37, KANGASKHAN, 36, NIDOKING, 37, NIDOQUEEN, 40, PERSIAN, 42, RHYDON, 0
; Silph Co. 11F - did you know this team was weaker than the rival in vanilla level-wise?
db $FF, 40, BEEDRILL, 42, RHYDON, 42, KANGASKHAN, 43, NIDOKING, 43, NIDOQUEEN, 45, PERSIAN, 0 ; if persian slash is desirable, make it L47.
; Viridian Gym
db $FF, 47, TRAMPEL, 46, DUGTRIO, 46, NIDOQUEEN, 48, GUARDIA, 48, NIDOKING, 50, RHYPERIOR, 0

View file

@ -161,16 +161,16 @@ ResetLegendaryPokemon:
call ShowThis
.skipMoltres
; Omega is special.
; If Omega wasn't obtained, it'll be available somewhere else on Silph Co. 11F.
; Commented out until we actually do this.
; ld a, DEX_OMEGA
; ld [wd11e], a
; call HoFIsPokemonBitSet
; jr nz, .skipOmega
; ResetEvent EVENT_BEAT_OMEGA_2
; ld a, HS_OMEGA_2
; call ShowThis
;.skipOmega
; If Omega wasn't caught, it'll be available in the empty room of Silph Co. 11F.
; In my mind, Omega was sent there, pending eventual scrapping for spare parts.
ld a, DEX_OMEGA
ld [wd11e], a
call HoFIsPokemonBitSet
jr nz, .skipOmega
ResetEvent EVENT_BEAT_OMEGA ; Reusing the old event - it's completely free to use.
ld a, HS_OMEGA_2
call ShowThis
.skipOmega
; Mew's hints aren't until the post-game, but is available regardless.
; So, we put this here.
ld a, DEX_MEW

View file

@ -1,5 +1,5 @@
SilphCo11F_Script:
call SilphCo11Script_62110
call SilphCo11Script_62127
call EnableAutoTextBoxDrawing
ld hl, SilphCo11TrainerHeaders
ld de, SilphCo11F_ScriptPointers
@ -8,36 +8,27 @@ SilphCo11F_Script:
ld [wSilphCo11FCurScript], a
ret
SilphCo11F_ScriptPointers:
dw SilphCo11Script0
dw DisplayEnemyTrainerTextAndStartBattle
dw EndTrainerBattle
dw SilphCo11Script3
dw SilphCo11Script4
dw SilphCo11Script5
dw SilphCo11Script6
dw SilphCo11Script7
SilphCo11Script_62110:
SilphCo11Script_62127:
ld hl, wCurrentMapScriptFlags
bit 5, [hl]
res 5, [hl]
ret z
ld hl, SilphCo11GateCoords
call SilphCo11Script_62137
call SilphCo11Script_62163
call SilphCo11Script_6214f
call SilphCo11Script_6217b
CheckEvent EVENT_SILPH_CO_11_UNLOCKED_DOOR
ret nz
ld a, $20
ld [wNewTileBlockID], a
lb bc, 6, 3
predef_jump ReplaceTileBlock
predef ReplaceTileBlock
ret
SilphCo11GateCoords:
dbmapcoord 3, 6
db -1 ; end
SilphCo11Script_62137:
SilphCo11Script_6214f:
push hl
ld hl, wCardKeyDoorY
ld a, [hli]
@ -73,12 +64,12 @@ SilphCo11Script_62137:
ldh [hUnlockedSilphCoDoors], a
ret
SilphCo11Script_62163: ; This is altered to have Omega rush you once the door is open.
SilphCo11Script_6217b:
ldh a, [hUnlockedSilphCoDoors]
and a
ret z
SetEvent EVENT_SILPH_CO_11_UNLOCKED_DOOR
ld a, $6
ld a, $7
ldh [hSpriteIndex], a ; TODO: Make Omega look at the player.
call MoveOmegaSprite
ld a, OMEGA
@ -90,16 +81,16 @@ SilphCo11Script_62163: ; This is altered to have Omega rush you once the door is
ld a, MUSIC_MEET_MALE_TRAINER
call PlayMusic
;add code here to make Rocket NPC look at Omega
ld a, $6
ld a, 15
ld [wSilphCo11FCurScript], a
ret
SilphCo11Script6:
SilphCo11ScriptOmegaBattle:
ld a, [wd730]
bit 0, a
ret nz
ld [wJoyIgnore], a
ld a, $6
ld a, 11
ldh [hSpriteIndexOrTextID], a
call DisplayTextID
ld a, OMEGA
@ -117,21 +108,6 @@ SilphCo11Script6:
ld [wCurMapScript], a
ret
SilphCo11Script7:
ld a, [wIsInBattle]
cp $ff
jp z, SilphCo11Script_50ece
ld a, $3
ld [wSilphCo11FCurScript], a
ret
SilphCo11Script_50ed6:
ld a, 0
ld [wTrainerNo], a
ld a, 1
ld [wIsTrainerBattle], a
ret
OmegaMovementData:
db NPC_MOVEMENT_DOWN
db NPC_MOVEMENT_DOWN
@ -145,17 +121,6 @@ MoveOmegaSprite:
jp SetSpriteFacingDirectionAndDelay
ret
.asm_50ef1
call MoveSprite
ld a, SPRITE_FACING_RIGHT
ldh [hSpriteFacingDirection], a
jp SetSpriteFacingDirectionAndDelay
SilphCo11Script_50ece:
xor a
ld [wJoyIgnore], a
ld [wSilphCo11FCurScript], a
SilphCo11Script_6216d:
ld hl, MissableObjectIDs_6219b
.asm_62170
@ -221,24 +186,49 @@ MissableObjectIDs_6219b:
db HS_SILPH_CO_10F_1
db HS_SILPH_CO_10F_2
db HS_SILPH_CO_11F_1
db HS_SILPH_CO_11F_2
db HS_SILPH_CO_11F_3
db -1 ; end
SilphCo11Script_621c4:
SilphCo11Script_62185:
xor a
ld [wJoyIgnore], a
SilphCo11Script_621c8:
SilphCo11Script_62189:
ld [wSilphCo11FCurScript], a
ld [wCurMapScript], a
ret
SilphCo11F_ScriptPointers:
dw SilphCo11Script0
dw DisplayEnemyTrainerTextAndStartBattle
dw EndTrainerBattle
dw SilphCo11Script3
dw SilphCo11Script4
dw SilphCo11Script5
dw SilphCo11Script6
dw SilphCo11Script7
dw SilphCo11Script8
dw SilphCo11Script9
dw SilphCo11Script10
dw SilphCo11Script11
dw SilphCo11Script12
dw SilphCo11Script13
dw SilphCo11Script14
dw SilphCo11ScriptOmegaBattle
SilphCo11Script0:
CheckEvent EVENT_BEAT_SILPH_CO_GIOVANNI
IF DEF(_DEBUG)
call DebugPressedOrHeldB
ret nz
ENDC
CheckEvent EVENT_BEAT_SILPH_CO_11F_TRAINER_0
call z, SilphCo11Script_6229c
CheckEvent EVENT_782
ret nz
CheckEvent EVENT_BEAT_SILPH_CO_GIOVANNI
call z, SilphCo11Script_621c5
ret
SilphCo11Script_621c5:
ld hl, CoordsData_62211
call ArePlayerCoordsInArray
jp nc, CheckFightingMapTrainers
@ -248,10 +238,10 @@ SilphCo11Script0:
ldh [hJoyHeld], a
ld a, $f0
ld [wJoyIgnore], a
ld a, $3
ld c, 0 ; BANK(Music_Sakaki)
ld a, MUSIC_SAKAKI
call PlayMusic
ld a, $3
ldh [hSpriteIndexOrTextID], a
call DisplayTextID
ld a, $3
@ -259,8 +249,9 @@ SilphCo11Script0:
call SetSpriteMovementBytesToFF
ld de, MovementData_62216
call MoveSprite
ld a, $3
jp SilphCo11Script_621c8
ld a, $4
call SilphCo11Script_62189
ret
CoordsData_62211:
dbmapcoord 6, 13
@ -273,18 +264,18 @@ MovementData_62216:
db NPC_MOVEMENT_DOWN
db -1 ; end
SilphCo11Script_6221a:
SilphCo11Script_621ff:
ld [wPlayerMovingDirection], a
ld a, $3
ldh [hSpriteIndex], a
ld a, b
ldh [hSpriteFacingDirection], a
jp SetSpriteFacingDirectionAndDelay
ld [wSprite03StateData1FacingDirection], a
ld a, $2
ld [wSprite03StateData1MovementStatus], a
ret
SilphCo11Script5:
SilphCo11Script3:
ld a, [wIsInBattle]
cp $ff
jp z, SilphCo11Script_621c4
jp z, SilphCo11Script_62185
ld a, [wcf0d]
cp $1
jr z, .asm_6223c
@ -295,23 +286,23 @@ SilphCo11Script5:
ld a, PLAYER_DIR_UP
ld b, SPRITE_FACING_DOWN
.asm_62240
call SilphCo11Script_6221a
call SilphCo11Script_621ff
ld a, $f0
ld [wJoyIgnore], a
ld a, $8
ld a, 13
ldh [hSpriteIndexOrTextID], a
call DisplayTextID
call GBFadeOutToBlack
call SilphCo11Script_6216d
call SaffronCityHideRocketsShowCitizens
call UpdateSprites
call Delay3
call GBFadeInFromBlack
SetEvent EVENT_BEAT_SILPH_CO_GIOVANNI
xor a
ld [wJoyIgnore], a
jp SilphCo11Script_621c8
jp SilphCo11Script_62189
SilphCo11Script3:
SilphCo11Script4:
ld a, [wd730]
bit 0, a
ret nz
@ -328,26 +319,346 @@ SilphCo11Script3:
ld a, PLAYER_DIR_UP
ld b, SPRITE_FACING_DOWN
.asm_62288
call SilphCo11Script_6221a
call SilphCo11Script_621ff
call Delay3
ld a, $4
jp SilphCo11Script_621c8
SilphCo11Script4:
xor a
ld [wJoyIgnore], a
ld hl, wd72d
set 6, [hl]
set 7, [hl]
ld hl, SilphCo10Text_62330
ld de, SilphCo10Text_62330
ld hl, SilphCo10Text_62528
ld de, SilphCo10Text_62528
call SaveEndBattleTextPointers
ldh a, [hSpriteIndex]
ld [wSpriteIndex], a
call EngageMapTrainer
call InitBattleEnemyParameters
ld a, $3
jp SilphCo11Script_62189
SilphCo11Script_6229c:
ld a, [wYCoord]
cp $3
ret nz
ld a, [wXCoord]
cp $4
ret nc
ResetEvents EVENT_780, EVENT_781
ld a, [wXCoord]
cp $3
jr z, .asm_622c3
SetEventReuseHL EVENT_780
ld a, [wXCoord]
cp $2
jr z, .asm_622c3
ResetEventReuseHL EVENT_780
SetEventReuseHL EVENT_781
.asm_622c3
call StopMusic
ld c, 0 ; BANK(Music_MeetJessieJames)
ld a, MUSIC_MEET_JESSIE_JAMES
call PlayMusic
xor a
ldh [hJoyHeld], a
ld a, $fc
ld [wJoyIgnore], a
ld a, $1
ld [wDoNotWaitForButtonPressAfterDisplayingText], a
ld a, 4
ldh [hSpriteIndexOrTextID], a
call DisplayTextID
xor a
ld [wDoNotWaitForButtonPressAfterDisplayingText], a
ld a, $ff
ld [wJoyIgnore], a
SetEvent EVENT_782
ld a, $5
jp SilphCo11Script_621c8
call SilphCo11Script_62189
ret
SilphCo11MovementData_622f5:
db NPC_MOVEMENT_UP
db NPC_MOVEMENT_UP
db NPC_MOVEMENT_UP
db NPC_MOVEMENT_UP
db NPC_MOVEMENT_UP
db -1
SilphCo11MovementData_622fb:
db NPC_MOVEMENT_UP
db NPC_MOVEMENT_UP
db NPC_MOVEMENT_UP
db NPC_MOVEMENT_UP
db -1
SilphCo11MovementData_62300:
db NPC_MOVEMENT_UP
db NPC_MOVEMENT_UP
db NPC_MOVEMENT_UP
db NPC_MOVEMENT_UP
db -1
SilphCo11MovementData_62305:
db NPC_MOVEMENT_UP
db NPC_MOVEMENT_UP
db NPC_MOVEMENT_UP
db NPC_MOVEMENT_UP
db NPC_MOVEMENT_UP
db -1
SilphCo11MovementData_6230b:
db NPC_MOVEMENT_UP
db NPC_MOVEMENT_UP
db NPC_MOVEMENT_LEFT
db NPC_MOVEMENT_UP
db NPC_MOVEMENT_UP
db -1
SilphCo11MovementData_62311:
db NPC_MOVEMENT_UP
db NPC_MOVEMENT_UP
db NPC_MOVEMENT_UP
db NPC_MOVEMENT_LEFT
db NPC_MOVEMENT_UP
db NPC_MOVEMENT_UP
db -1
SilphCo11Script5:
ld de, SilphCo11MovementData_622f5
CheckEitherEventSet EVENT_780, EVENT_781
and a
jr z, .asm_6232d
ld de, SilphCo11MovementData_62300
cp $1
jr z, .asm_6232d
ld de, SilphCo11MovementData_6230b
.asm_6232d
ld a, $4
ldh [hSpriteIndexOrTextID], a
call MoveSprite
ld a, $ff
ld [wJoyIgnore], a
ld a, $6
call SilphCo11Script_62189
ret
SilphCo11Script6:
ld a, $ff
ld [wJoyIgnore], a
ld a, [wd730]
bit 0, a
ret nz
SilphCo11Script7:
ld a, $2
ld [wSprite04StateData1MovementStatus], a
ld hl, wSprite04StateData1FacingDirection
ld [hl], SPRITE_FACING_RIGHT
CheckEitherEventSet EVENT_780, EVENT_781
and a
jr z, .asm_6235e
ld [hl], SPRITE_FACING_UP
.asm_6235e
call Delay3
ld a, $fc
ld [wJoyIgnore], a
SilphCo11Script8:
ld de, SilphCo11MovementData_622fb
CheckEitherEventSet EVENT_780, EVENT_781
and a
jr z, .asm_6237b
ld de, SilphCo11MovementData_62305
cp $1
jr z, .asm_6237b
ld de, SilphCo11MovementData_62311
.asm_6237b
ld a, $6
ldh [hSpriteIndexOrTextID], a
call MoveSprite
ld a, $ff
ld [wJoyIgnore], a
ld a, $9
call SilphCo11Script_62189
ret
SilphCo11Script9:
ld a, $ff
ld [wJoyIgnore], a
ld a, [wd730]
bit 0, a
ret nz
ld a, $fc
ld [wJoyIgnore], a
SilphCo11Script10:
ld a, $2
ld [wSprite06StateData1MovementStatus], a
ld hl, wSprite06StateData1FacingDirection
ld [hl], SPRITE_FACING_UP
CheckEitherEventSet EVENT_780, EVENT_781
and a
jr z, .asm_623b1
ld [hl], SPRITE_FACING_LEFT
.asm_623b1
call Delay3
ld a, $9
ldh [hSpriteIndexOrTextID], a
call DisplayTextID
SilphCo11Script11:
ld hl, wd72d
set 6, [hl]
set 7, [hl]
call Delay3
ld hl, SilphCo11Text_624c2
ld de, SilphCo11Text_624c2
call SaveEndBattleTextPointers
ld a, OPP_JESSIE_JAMES
ld [wCurOpponent], a
ld a, 4
ld [wTrainerNo], a
ld [wIsTrainerBattle], a
xor a
ldh [hJoyHeld], a
ld [wJoyIgnore], a
ld a, $c
call SilphCo11Script_62189
ret
SilphCo11Script12:
ld a, $ff
ld [wJoyIgnore], a
ld a, [wIsInBattle]
cp $ff
jp z, SilphCo11Script_62185
ld a, $2
ld [wSprite04StateData1MovementStatus], a
ld [wSprite06StateData1MovementStatus], a
xor a
ld [wSprite04StateData1FacingDirection], a
ld [wSprite06StateData1FacingDirection], a
ld a, $fc
ld [wJoyIgnore], a
ld a, $1
ld [wDoNotWaitForButtonPressAfterDisplayingText], a
ld a, $a
ldh [hSpriteIndexOrTextID], a
call DisplayTextID
xor a
ld [wDoNotWaitForButtonPressAfterDisplayingText], a
call StopMusic
ld c, 0 ; BANK(Music_MeetJessieJames)
ld a, MUSIC_MEET_JESSIE_JAMES
call PlayMusic
ld a, $ff
ld [wJoyIgnore], a
ld a, $d
call SilphCo11Script_62189
ret
SilphCo11Script13:
ld a, $ff
ld [wJoyIgnore], a
call GBFadeOutToBlack
ld a, HS_SILPH_CO_11F_JAMES
call SilphCo11Script_6246d
ld a, HS_SILPH_CO_11F_JESSIE
call SilphCo11Script_6246d
call UpdateSprites
call Delay3
call GBFadeInFromBlack
ld a, $e
call SilphCo11Script_62189
ret
SilphCo11Script14:
call PlayDefaultMusic
xor a
ldh [hJoyHeld], a
ld [wJoyIgnore], a
ResetEvent EVENT_782
SetEventReuseHL EVENT_BEAT_SILPH_CO_11F_TRAINER_0
ld a, $0
call SilphCo11Script_62189
ret
SilphCo11Script_6245e:
ld [wMissableObjectIndex], a
predef ShowObject
call UpdateSprites
call Delay3
ret
SilphCo11Script_6246d:
ld [wMissableObjectIndex], a
predef HideObject
ret
SaffronCityHideRocketsShowCitizens:
ld hl, SaffronCityRockets
.hideLoop
ld a, [hli]
cp $ff ; have we run out of rockets to hide?
jr z, .showCitizens ; if so, start showing the citizens
push hl
ld [wMissableObjectIndex], a
predef HideObject
pop hl
jr .hideLoop
.showCitizens
ld hl, SaffronCityCitizens
.showLoop
ld a, [hli]
cp $ff ; have we run out of citizens to show?
ret z ; if so, we're done here
push hl
ld [wMissableObjectIndex], a
predef ShowObject
pop hl
jr .showLoop
SaffronCityCitizens:
db HS_SAFFRON_CITY_8
db HS_SAFFRON_CITY_9
db HS_SAFFRON_CITY_A
db HS_SAFFRON_CITY_B
db HS_SAFFRON_CITY_C
db HS_SAFFRON_CITY_D
db HS_SAFFRON_CITY_UP_GRADE
db -1 ; end
SaffronCityRockets:
db HS_SAFFRON_CITY_1
db HS_SAFFRON_CITY_2
db HS_SAFFRON_CITY_3
db HS_SAFFRON_CITY_4
db HS_SAFFRON_CITY_5
db HS_SAFFRON_CITY_6
db HS_SAFFRON_CITY_7
db HS_SAFFRON_CITY_E
db HS_SAFFRON_CITY_F
db HS_SILPH_CO_3F_1
db HS_SILPH_CO_3F_2
db HS_SILPH_CO_4F_1
db HS_SILPH_CO_4F_2
db HS_SILPH_CO_4F_3
db HS_SILPH_CO_5F_1
db HS_SILPH_CO_5F_2
db HS_SILPH_CO_5F_3
db HS_SILPH_CO_5F_4
db HS_SILPH_CO_6F_1
db HS_SILPH_CO_6F_2
db HS_SILPH_CO_6F_3
db HS_SILPH_CO_7F_1
db HS_SILPH_CO_7F_2
db HS_SILPH_CO_7F_3
db HS_SILPH_CO_7F_4
db HS_SILPH_CO_8F_1
db HS_SILPH_CO_8F_2
db HS_SILPH_CO_8F_3
db HS_SILPH_CO_10F_1
db HS_SILPH_CO_10F_2
db HS_SILPH_CO_11F_1
db HS_SILPH_CO_11F_3
db -1 ; end
SilphCo11F_TextPointers:
dw SilphCo11Text1
@ -356,21 +667,55 @@ SilphCo11F_TextPointers:
dw SilphCo11Text4
dw SilphCo11Text5
dw SilphCo11Text6
dw SilphCo11Text7
dw SilphCo11Text8
dw SilphCo11Text9
dw SilphCo11Text10
dw OmegaText
dw Omega2Text
dw StupidGiovanniFix
SilphCo11TrainerHeaders:
def_trainers 4
def_trainers 5
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
trainer EVENT_BEAT_SILPH_CO_11F_TRAINER_1, 3, SilphCo11Trainer1BattleText, SilphCo11Trainer1EndBattleText, SilphCo11Trainer1AfterBattleText
Omega2TrainerHeader:
trainer EVENT_BEAT_OMEGA, 0, Omega2BattleText, Omega2BattleText, Omega2BattleText
db -1 ; end
OmegaText:
text_far _OmegaBattleText
SilphCo11Text4:
SilphCo11Text6:
SilphCo11Text8:
text_far _SilphCoJessieJamesText1
text_asm
ld c, 10
call DelayFrames
ld a, $4
ld [wPlayerMovingDirection], a
ld a, $0
ld [wEmotionBubbleSpriteIndex], a
ld a, EXCLAMATION_BUBBLE
ld [wWhichEmotionBubble], a
predef EmotionBubble
ld c, 20
call DelayFrames
jp TextScriptEnd
SilphCo11Text9:
text_far _SilphCoJessieJamesText2
text_end
SilphCo11Text_624c2:
text_far _SilphCoJessieJamesText3
text_end
SilphCo11Text10:
text_far _SilphCoJessieJamesText4
text_asm
ld c, 64
call DelayFrames
jp TextScriptEnd
SilphCo11Text1:
text_asm
CheckEvent EVENT_GOT_MASTER_BALL
@ -419,68 +764,56 @@ SilphCo11Text3:
text_far _SilphCo11Text3
text_end
SilphCo10Text_62330:
SilphCo10Text_62528:
text_far _SilphCo10Text_62330
text_end
SilphCo11Text6:
SilphCo11Text7:
text_far _SilphCo10Text_62335
text_end
SilphCo11Text4:
SilphCo11Text5:
text_asm
ld hl, SilphCo11TrainerHeader0
call TalkToTrainer
jp TextScriptEnd
SilphCo11BattleText1:
text_far _SilphCo11BattleText1
text_end
SilphCo11EndBattleText1:
text_far _SilphCo11EndBattleText1
text_end
SilphCo11AfterBattleText1:
text_far _SilphCo11AfterBattleText1
text_end
SilphCo11Text5:
text_asm
ld hl, SilphCo11TrainerHeader1
call TalkToTrainer
jp TextScriptEnd
SilphCo11BattleText2:
SilphCo11Trainer1BattleText:
text_far _SilphCo11BattleText2
text_end
SilphCo11EndBattleText2:
SilphCo11Trainer1EndBattleText:
text_far _SilphCo11EndBattleText2
text_end
SilphCo11AfterBattleText2:
SilphCo11Trainer1AfterBattleText:
text_far _SilphCo11AfterBattleText2
text_end
SilphCo10Text_6236c:
text_asm
ld hl, SilphCo10Text_6237b
call PrintText
ld a, PORYGON
call DisplayPokedex
jp TextScriptEnd
SilphCo10Text_6237b:
text_far _SilphCo10Text_6237b
; Omega Boss Fight text begins here.
OmegaText:
text_far _OmegaBattleText
text_end
; Omega Boss Fight text begins here.
OmegaBattleText:
text_far _OmegaBattleText
text_asm
jp TextScriptEnd
Omega2Text:
text_asm
ld hl, Omega2TrainerHeader
call TalkToTrainer
jp TextScriptEnd
Omega2BattleText:
text_far _OmegaBattleText
text_asm
ld a, OMEGA
call PlayCry
call WaitForSoundToFinish
jp TextScriptEnd
StupidGiovanniFix:
text_far _SilphCo10Text_62335
text_end

View file

@ -153,7 +153,9 @@ _MtMoonJessieJamesText3::
prompt
_MtMoonJessieJamesText4::
text "TEAM ROCKET, blast"
line "off at the speed"
cont "of light!@"
text "Looks like TEAM"
line "ROCKET's blasting"
cont "off!"
para "We'll be back!@"
text_end

View file

@ -3,6 +3,13 @@ _SilphCoPresidentText::
line "you for saving"
cont "SILPH!"
para "And...sorry about"
line "that OMEGA model."
cont "It must have seen"
cont "you as a threat."
para "Anyway!"
para "I will never"
line "forget you saved"
cont "us in our moment"
@ -54,8 +61,13 @@ _SilphCo11Text2::
line "you for rescuing"
cont "all of us!"
para "We admire your"
line "courage."
para "Hmm? OMEGA?"
para "All I know is the"
line "CHIEF quickly"
cont "started making it"
cont "last year."
done
_SilphCo11Text3::
@ -135,10 +147,7 @@ _SilphCo10Text_6237b::
done
_OmegaBattleText::
text "ROCKET: Hey, kid!"
line "Watch out!"
para "Bzzt! Clank!"
text "Bzzt! Clank!"
prompt
; Fun fact: For some reason, this text is stored in 10F. Seems to be a beta element - they ARE encountered in 11F.