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 EVENT_VICTORY_ROAD_1_BOULDER_ON_SWITCH
const EVENT_BEAT_CHIEF ; moved out of the below union to prevent bugs
const EVENT_MEWTWO_UNLOCKED
; Silph Gauntlet events
const_next $930

View file

@ -563,6 +563,7 @@ BlackbeltData:
ChiefData:
; Silph Gauntlet 7F
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.
; Poison- and Electric-type Pokemon

View file

@ -1363,6 +1363,27 @@ SpecialTrainerMoves:
db 6, 4, ICE_BEAM
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 1, 1, BUBBLEBEAM
db 1, 2, THUNDERBOLT

View file

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

View file

@ -180,7 +180,7 @@ ResetLegendaryPokemon:
call ShowThis
.skipMew
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
call HoFIsPokemonBitSet
jr nz, .skipArticunoG
@ -257,7 +257,6 @@ ObjectsToHide:
db HS_BILLS_NIDORINO ; Bill's Garden access
db HS_MANSION_GUARD ; Pokemon Mansion basement access
db HS_MT_MOON_CRATER_GUARD ; Mt. Moon Crater access
db HS_CERULEAN_CAVE_GUY ; Cerulean Cave access
db -1 ; end
; 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 [wMissableObjectIndex], a
predef HideObject
SetEvent EVENT_MEWTWO_UNLOCKED
ResetEventRange SILPH_GAUNTLET_EVENTS_START, SILPH_GAUNTLET_EVENTS_END, 1
ld a, $0
@ -117,8 +118,10 @@ SilphGauntlet7F_TextPointers:
ChiefText1:
text_asm
CheckEvent EVENT_MEWTWO_UNLOCKED
jr nz, .chiefSecondFight
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
ld hl, ChiefMonologue
call PrintText
@ -127,6 +130,9 @@ ChiefText1:
call z, WaitForTextScrollButtonPress ; 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.
ld hl, ChiefMonologueMasterBallNotUsed ; Load not used by default.
jr z, .masterBallSkip ; In which case, we can skip.
@ -153,12 +159,48 @@ ChiefText1:
ld de, ChiefVictoryText
call SaveEndBattleTextPointers
jr .done
.chiefBeaten
ld hl, ChiefAfterBattleText
.chiefBeaten1
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
; fallthrough
.done
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:
text_far _ChiefMonologue
@ -172,6 +214,10 @@ ChiefMonologueMasterBallNotUsed:
text_far _ChiefMonologueMasterBallNotUsed
text_end
ChiefMonologueMasterBallNotCollected:
text_far _ChiefMonologueMasterBallNotCollected
text_end
ChiefDefeatedText:
text_far _ChiefDefeatedText
text_end
@ -184,6 +230,26 @@ ChiefAfterBattleText:
text_far _ChiefAfterBattleText
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:
text_far _ChiefPCText
text_end

View file

@ -148,7 +148,7 @@ _SilphCo10Text_6237b::
_OmegaBattleText::
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.
_SilphCoJessieJamesText1::

View file

@ -8,9 +8,13 @@ _ChiefMonologue::
para "However, I can't"
line "let you leave"
cont "this place. You"
cont "are still looking"
cont "for the ultimate"
cont "this place quite"
cont "yet..."
prompt
_ChiefMonologueMasterBallNotUsed::
text "You're looking for"
line "for the ultimate"
cont "#MON, aren't"
cont "you?"
@ -22,10 +26,8 @@ _ChiefMonologue::
cont "GIOVANNI gone,"
cont "our company is"
cont "going under!"
prompt
_ChiefMonologueMasterBallNotUsed::
text "Now there's only"
para "Now there's only"
line "one way to catch"
cont "MEWTWO, and it's"
cont "in your hands!"
@ -33,10 +35,24 @@ _ChiefMonologueMasterBallNotUsed::
para "<PLAYER>!"
para "Give me that BALL!"
prompt
done
_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?!"
para "You stupid child!"
@ -50,7 +66,31 @@ _ChiefMonologueMasterBallUsed::
para "You are in for"
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::
text "No! I..."
@ -93,6 +133,27 @@ _ChiefAfterBattleText::
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::
text "It's a PC with"
line "blueprints for"
@ -119,3 +180,46 @@ _ChiefPainting2::
line "of GAWARHED, an"
cont "extinct #MON!"
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