Improvements to Chief!

- Now has a rematch team, just with boosted levels

- Has unique dialogue if you never picked up the Master Ball before fighting him, including after winning

- Has new dialogue on subsequent matches

We're nearly done.
This commit is contained in:
Martha Schilling 2023-12-30 22:39:09 +00:00
parent d20207f012
commit 4c0dfdfedd
8 changed files with 208 additions and 16 deletions

View file

@ -819,6 +819,7 @@ DEF INDIGO_PLATEAU_EVENTS_END EQU const_value - 1
const_skip 4 const_skip 4
const EVENT_VICTORY_ROAD_1_BOULDER_ON_SWITCH const EVENT_VICTORY_ROAD_1_BOULDER_ON_SWITCH
const EVENT_BEAT_CHIEF ; moved out of the below union to prevent bugs const EVENT_BEAT_CHIEF ; moved out of the below union to prevent bugs
const EVENT_MEWTWO_UNLOCKED
; Silph Gauntlet events ; Silph Gauntlet events
const_next $930 const_next $930

View file

@ -563,6 +563,7 @@ BlackbeltData:
ChiefData: ChiefData:
; Silph Gauntlet 7F ; Silph Gauntlet 7F
db $FF, 66, ELECTRODE, 65, LAPRAS, 66, SCIZOR, 65, GENGAR, 68, PORYGONZ, 70, OMEGADGE, 0 db $FF, 66, ELECTRODE, 65, LAPRAS, 66, SCIZOR, 65, GENGAR, 68, PORYGONZ, 70, OMEGADGE, 0
db $FF, 73, ELECTRODE, 72, LAPRAS, 73, SCIZOR, 72, GENGAR, 75, PORYGONZ, 78, OMEGADGE, 0
; Lapras and Gengar are used here since Lapras is given by a Silph worker, and Gengar represents the Silph Scope. ; Lapras and Gengar are used here since Lapras is given by a Silph worker, and Gengar represents the Silph Scope.
; Poison- and Electric-type Pokemon ; Poison- and Electric-type Pokemon

View file

@ -1362,6 +1362,27 @@ SpecialTrainerMoves:
db 6, 2, THUNDER_WAVE db 6, 2, THUNDER_WAVE
db 6, 4, ICE_BEAM db 6, 4, ICE_BEAM
db 0 db 0
db CHIEF, 2
db 1, 1, THUNDERBOLT
db 1, 2, THUNDER_WAVE
db 1, 3, HEADBUTT
db 2, 1, BLIZZARD
db 2, 2, THUNDERBOLT
db 2, 3, SING
db 2, 4, HYPER_BEAM
db 3, 1, IRON_HEAD
db 3, 3, HYPER_BEAM
db 4, 1, EXPLOSION
db 4, 2, THUNDERBOLT
db 4, 4, ICE_PUNCH
db 5, 1, THUNDERBOLT
db 5, 2, ICE_BEAM
db 5, 3, RECOVER
db 6, 1, THUNDERBOLT
db 6, 2, THUNDER_WAVE
db 6, 4, ICE_BEAM
db 0
db JESSIE_JAMES, 5 ; J&J postgame db JESSIE_JAMES, 5 ; J&J postgame
db 1, 1, BUBBLEBEAM db 1, 1, BUBBLEBEAM

View file

@ -141,7 +141,6 @@ ROMX $1D
"Itemfinder 1" "Itemfinder 1"
"Maps 20" "Maps 20"
"Maps 21" "Maps 21"
"Itemfinder 2"
ROMX $1E ROMX $1E
"bank1E" "bank1E"
ROMX $1F ROMX $1F
@ -151,6 +150,7 @@ ROMX $1F
"Sound Effects 3" "Sound Effects 3"
; "Audio Engine 3" ; "Audio Engine 3"
; "Music 3" ; "Music 3"
"Itemfinder 2"
ROMX $20 ROMX $20
"Text 1" "Text 1"
ROMX $21 ROMX $21

View file

@ -180,7 +180,7 @@ ResetLegendaryPokemon:
call ShowThis call ShowThis
.skipMew .skipMew
CheckEvent EVENT_POST_GAME_ATTAINED CheckEvent EVENT_POST_GAME_ATTAINED
jp z, .skipGalarianBirdsAndMewtwo ; If you haven't cleared the game yet, you've not met the Galarian Birds. So we may as well skip processing all this. jp z, .skipGalarianBirdsAndMewtwo
ld a, DEX_ARTICUNO_G ld a, DEX_ARTICUNO_G
call HoFIsPokemonBitSet call HoFIsPokemonBitSet
jr nz, .skipArticunoG jr nz, .skipArticunoG
@ -257,7 +257,6 @@ ObjectsToHide:
db HS_BILLS_NIDORINO ; Bill's Garden access db HS_BILLS_NIDORINO ; Bill's Garden access
db HS_MANSION_GUARD ; Pokemon Mansion basement access db HS_MANSION_GUARD ; Pokemon Mansion basement access
db HS_MT_MOON_CRATER_GUARD ; Mt. Moon Crater access db HS_MT_MOON_CRATER_GUARD ; Mt. Moon Crater access
db HS_CERULEAN_CAVE_GUY ; Cerulean Cave access
db -1 ; end db -1 ; end
; Farcalling this caused weird issues so I'm just using a clone ; Farcalling this caused weird issues so I'm just using a clone

View file

@ -95,6 +95,7 @@ ChiefScript4:
ld a, HS_CERULEAN_CAVE_GUY ld a, HS_CERULEAN_CAVE_GUY
ld [wMissableObjectIndex], a ld [wMissableObjectIndex], a
predef HideObject predef HideObject
SetEvent EVENT_MEWTWO_UNLOCKED
ResetEventRange SILPH_GAUNTLET_EVENTS_START, SILPH_GAUNTLET_EVENTS_END, 1 ResetEventRange SILPH_GAUNTLET_EVENTS_START, SILPH_GAUNTLET_EVENTS_END, 1
ld a, $0 ld a, $0
@ -117,8 +118,10 @@ SilphGauntlet7F_TextPointers:
ChiefText1: ChiefText1:
text_asm text_asm
CheckEvent EVENT_MEWTWO_UNLOCKED
jr nz, .chiefSecondFight
CheckEvent EVENT_BEAT_CHIEF ; Check if Chief was beaten CheckEvent EVENT_BEAT_CHIEF ; Check if Chief was beaten
jr nz, .chiefBeaten ; If Chief has been beaten, skip the trainer loading jr nz, .chiefBeaten1 ; If Chief has been beaten, skip the trainer loading
; standard processing ; standard processing
ld hl, ChiefMonologue ld hl, ChiefMonologue
call PrintText call PrintText
@ -127,6 +130,9 @@ ChiefText1:
call z, WaitForTextScrollButtonPress ; and here. call z, WaitForTextScrollButtonPress ; and here.
call EnableAutoTextBoxDrawing ; and here. call EnableAutoTextBoxDrawing ; and here.
CheckEvent EVENT_GOT_MASTER_BALL ; Check if Master Ball was collected.
ld hl, ChiefMonologueMasterBallNotCollected ; If no, load this text...
jr z, .masterBallSkip ; ...then skip.
CheckEvent EVENT_USED_MASTER_BALL ; Check if the Master Ball has been used. CheckEvent EVENT_USED_MASTER_BALL ; Check if the Master Ball has been used.
ld hl, ChiefMonologueMasterBallNotUsed ; Load not used by default. ld hl, ChiefMonologueMasterBallNotUsed ; Load not used by default.
jr z, .masterBallSkip ; In which case, we can skip. jr z, .masterBallSkip ; In which case, we can skip.
@ -153,12 +159,48 @@ ChiefText1:
ld de, ChiefVictoryText ld de, ChiefVictoryText
call SaveEndBattleTextPointers call SaveEndBattleTextPointers
jr .done jr .done
.chiefBeaten .chiefBeaten1
ld hl, ChiefAfterBattleText CheckEvent EVENT_GOT_MASTER_BALL ; Check if Master Ball was collected.
ld hl, ChiefAltAfterBattleText ; If no, load this text...
jr z, .noMBallskip ; ...then skip.
ld hl, ChiefAfterBattleText ; otherwise, load this.
.noMBallskip
call PrintText call PrintText
; fallthrough ; fallthrough
.done .done
jp TextScriptEnd jp TextScriptEnd
.chiefSecondFight
CheckEvent EVENT_BEAT_CHIEF ; Check if Chief was beaten
jr nz, .chiefBeaten2 ; If Chief has been beaten, skip the trainer loading
ld hl, ChiefMonologueRematch
call PrintText
ld a, [wSimulatedJoypadStatesEnd] ; ensuring that the text doesn't autoskip.
and a ; yep, here too.
call z, WaitForTextScrollButtonPress ; and here.
call EnableAutoTextBoxDrawing ; and here.
ld c, BANK(Music_MeetEvilTrainer)
ld a, MUSIC_MEET_EVIL_TRAINER
call PlayMusic
call Delay3
ld hl, wd72d
set 6, [hl]
set 7, [hl]
ld a, OPP_CHIEF
ld [wCurOpponent], a
ld a, 2
ld [wTrainerNo], a
ld [wIsTrainerBattle], a
ld a, $1
ld [wSilphGauntlet7FCurScript], a
ld hl, ChiefDefeatedText2
ld de, ChiefVictoryText2
call SaveEndBattleTextPointers
jr .done
.chiefBeaten2
ld hl, ChiefAfterBattleText2
call PrintText
jr .done
ChiefMonologue: ChiefMonologue:
text_far _ChiefMonologue text_far _ChiefMonologue
@ -171,6 +213,10 @@ ChiefMonologueMasterBallUsed:
ChiefMonologueMasterBallNotUsed: ChiefMonologueMasterBallNotUsed:
text_far _ChiefMonologueMasterBallNotUsed text_far _ChiefMonologueMasterBallNotUsed
text_end text_end
ChiefMonologueMasterBallNotCollected:
text_far _ChiefMonologueMasterBallNotCollected
text_end
ChiefDefeatedText: ChiefDefeatedText:
text_far _ChiefDefeatedText text_far _ChiefDefeatedText
@ -183,6 +229,26 @@ ChiefVictoryText:
ChiefAfterBattleText: ChiefAfterBattleText:
text_far _ChiefAfterBattleText text_far _ChiefAfterBattleText
text_end text_end
ChiefAltAfterBattleText:
text_far _ChiefAltAfterBattleText
text_end
ChiefMonologueRematch:
text_far _ChiefMonologueRematch
text_end
ChiefDefeatedText2:
text_far _ChiefDefeatedText2
text_end
ChiefVictoryText2:
text_far _ChiefVictoryText2
text_end
ChiefAfterBattleText2:
text_far _ChiefAfterBattleText2
text_end
ChiefPC: ChiefPC:
text_far _ChiefPCText text_far _ChiefPCText

View file

@ -148,7 +148,7 @@ _SilphCo10Text_6237b::
_OmegaBattleText:: _OmegaBattleText::
text "Bzzt! Clank!" text "Bzzt! Clank!"
text_end done
; Fun fact: For some reason, this text is stored in 10F. Seems to be a beta element - they ARE encountered in 11F. ; Fun fact: For some reason, this text is stored in 10F. Seems to be a beta element - they ARE encountered in 11F.
_SilphCoJessieJamesText1:: _SilphCoJessieJamesText1::

View file

@ -8,9 +8,13 @@ _ChiefMonologue::
para "However, I can't" para "However, I can't"
line "let you leave" line "let you leave"
cont "this place. You" cont "this place quite"
cont "are still looking" cont "yet..."
cont "for the ultimate" prompt
_ChiefMonologueMasterBallNotUsed::
text "You're looking for"
line "for the ultimate"
cont "#MON, aren't" cont "#MON, aren't"
cont "you?" cont "you?"
@ -22,10 +26,8 @@ _ChiefMonologue::
cont "GIOVANNI gone," cont "GIOVANNI gone,"
cont "our company is" cont "our company is"
cont "going under!" cont "going under!"
prompt
_ChiefMonologueMasterBallNotUsed:: para "Now there's only"
text "Now there's only"
line "one way to catch" line "one way to catch"
cont "MEWTWO, and it's" cont "MEWTWO, and it's"
cont "in your hands!" cont "in your hands!"
@ -33,10 +35,24 @@ _ChiefMonologueMasterBallNotUsed::
para "<PLAYER>!" para "<PLAYER>!"
para "Give me that BALL!" para "Give me that BALL!"
prompt done
_ChiefMonologueMasterBallUsed:: _ChiefMonologueMasterBallUsed::
text "...what? You used" text "You're looking for"
line "for the ultimate"
cont "#MON, aren't"
cont "you?"
para "That MASTER"
line "BALL... I should"
cont "never have given"
cont "it to you! With"
cont "MEWTWO loose and"
cont "GIOVANNI gone,"
cont "our company is"
cont "going under!"
para "...what? You used"
line "the MASTER BALL?!" line "the MASTER BALL?!"
para "You stupid child!" para "You stupid child!"
@ -50,7 +66,31 @@ _ChiefMonologueMasterBallUsed::
para "You are in for" para "You are in for"
line "a world of hurt!" ; Like Giovanni, but with a slightly more pompous tone in using "hurt". line "a world of hurt!" ; Like Giovanni, but with a slightly more pompous tone in using "hurt".
prompt done
_ChiefMonologueMasterBallNotCollected::
text "As I watched you"
line "battle GIOVANNI,"
cont "I know how you"
cont "and your #MON"
cont "fight."
para "I must say, your"
line "strength seems..."
cont "promising. That's"
cont "why I invited you"
cont "here, after all."
para "Before my next big"
line "plan, I must see"
cont "how well I stand"
cont "against the new"
cont "champion!"
para "<PLAYER>!"
para "Give it your all!"
done
_ChiefDefeatedText:: _ChiefDefeatedText::
text "No! I..." text "No! I..."
@ -92,6 +132,27 @@ _ChiefAfterBattleText::
cont "world." cont "world."
done done
_ChiefAltAfterBattleText::
text "CHIEF: Just as"
line "I thought..."
cont "No product I"
cont "have is capable"
cont "of trouncing you."
para "Money means I can"
line "be as powerful as"
cont "I want, but what"
cont "I do with that"
cont "power...is very"
cont "important."
para "I still have much"
line "yet to learn..."
para "Go."
done
_ChiefPCText:: _ChiefPCText::
text "It's a PC with" text "It's a PC with"
@ -119,3 +180,46 @@ _ChiefPainting2::
line "of GAWARHED, an" line "of GAWARHED, an"
cont "extinct #MON!" cont "extinct #MON!"
done done
_ChiefMonologueRematch::
text "CHIEF: What?"
line "you're back?"
para "Hmm...you're"
line "looking for a"
cont "rematch, is that"
cont "it?"
para "Alright, if you"
line "insist. OMEGADGE"
cont "could always use"
cont "some more battle"
cont "data..."
para "So, no holding"
line "back!"
done
_ChiefDefeatedText2::
text "Impressive"
line "work..."
prompt
_ChiefVictoryText2::
text "CHIEF: I"
line "expected better."
prompt
_ChiefAfterBattleText2::
text "CHIEF: It really"
line "is no wonder"
cont "how you've been"
cont "capable of"
cont "accomplishing so"
cont "much..."
para "You truly trust"
line "and care for"
cont "your #MON."
done