mirror of
https://github.com/thornAvery/kep-hack.git
synced 2025-09-16 18:30:50 +12:00

This adds gym scaling for every leader, plus Koichi of the Fighting Dojo. Me and Ema decided to give Koichi scaling, as he is a gym leader in everything but class. I will likely give Yujirou the same treatment once he's all set up. The parties have not been set up, assuming Martha is working on them. An important note: space is somewhat limited on trainers now, so the leaders will need implementing incrementally. You will most likely have to remove unnecessary trainers to make this work.
306 lines
6.5 KiB
NASM
306 lines
6.5 KiB
NASM
CeladonGym_Script:
|
|
ld hl, wCurrentMapScriptFlags
|
|
bit 6, [hl]
|
|
res 6, [hl]
|
|
call nz, .LoadNames
|
|
call EnableAutoTextBoxDrawing
|
|
ld hl, CeladonGymTrainerHeaders
|
|
ld de, CeladonGym_ScriptPointers
|
|
ld a, [wCeladonGymCurScript]
|
|
call ExecuteCurMapScriptInTable
|
|
ld [wCeladonGymCurScript], a
|
|
ret
|
|
|
|
.LoadNames:
|
|
ld hl, .CityName
|
|
ld de, .LeaderName
|
|
jp LoadGymLeaderAndCityName
|
|
|
|
.CityName:
|
|
db "CELADON CITY@"
|
|
|
|
.LeaderName:
|
|
db "ERIKA@"
|
|
|
|
CeladonGymResetScripts:
|
|
xor a
|
|
ld [wJoyIgnore], a
|
|
ld [wCeladonGymCurScript], a
|
|
ld [wCurMapScript], a
|
|
ret
|
|
|
|
CeladonGym_ScriptPointers:
|
|
dw CheckFightingMapTrainers
|
|
dw DisplayEnemyTrainerTextAndStartBattle
|
|
dw EndTrainerBattle
|
|
dw CeladonGymErikaPostBattle
|
|
|
|
CeladonGymErikaPostBattle:
|
|
ld a, [wIsInBattle]
|
|
cp $ff
|
|
jp z, CeladonGymResetScripts
|
|
ld a, $f0
|
|
ld [wJoyIgnore], a
|
|
|
|
CeladonGymReceiveTM21:
|
|
ld a, $9
|
|
ldh [hSpriteIndexOrTextID], a
|
|
call DisplayTextID
|
|
SetEvent EVENT_BEAT_ERIKA
|
|
lb bc, TM_MEGA_DRAIN, 1
|
|
call GiveItem
|
|
jr nc, .BagFull
|
|
ld a, $a
|
|
ldh [hSpriteIndexOrTextID], a
|
|
call DisplayTextID
|
|
SetEvent EVENT_GOT_TM21
|
|
jr .gymVictory
|
|
.BagFull
|
|
ld a, $b
|
|
ldh [hSpriteIndexOrTextID], a
|
|
call DisplayTextID
|
|
.gymVictory
|
|
ld hl, wObtainedBadges
|
|
set BIT_RAINBOWBADGE, [hl]
|
|
ld hl, wBeatGymFlags
|
|
set BIT_RAINBOWBADGE, [hl]
|
|
|
|
; deactivate gym trainers
|
|
SetEventRange EVENT_BEAT_CELADON_GYM_TRAINER_0, EVENT_BEAT_CELADON_GYM_TRAINER_6
|
|
|
|
jp CeladonGymResetScripts
|
|
|
|
CeladonGym_TextPointers:
|
|
dw ErikaText
|
|
dw CeladonGymTrainerText1
|
|
dw CeladonGymTrainerText2
|
|
dw CeladonGymTrainerText3
|
|
dw CeladonGymTrainerText4
|
|
dw CeladonGymTrainerText5
|
|
dw CeladonGymTrainerText6
|
|
dw CeladonGymTrainerText7
|
|
dw ErikaRainbowBadgeInfoText
|
|
dw ReceivedTM21Text
|
|
dw TM21NoRoomText
|
|
|
|
CeladonGymTrainerHeaders:
|
|
def_trainers 2
|
|
CeladonGymTrainerHeader0:
|
|
trainer EVENT_BEAT_CELADON_GYM_TRAINER_0, 2, CeladonGymBattleText2, CeladonGymEndBattleText2, CeladonGymAfterBattleText2
|
|
CeladonGymTrainerHeader1:
|
|
trainer EVENT_BEAT_CELADON_GYM_TRAINER_1, 2, CeladonGymBattleText3, CeladonGymEndBattleText3, CeladonGymAfterBattleText3
|
|
CeladonGymTrainerHeader2:
|
|
trainer EVENT_BEAT_CELADON_GYM_TRAINER_2, 4, CeladonGymBattleText4, CeladonGymEndBattleText4, CeladonGymAfterBattleText4
|
|
CeladonGymTrainerHeader3:
|
|
trainer EVENT_BEAT_CELADON_GYM_TRAINER_3, 4, CeladonGymBattleText5, CeladonGymEndBattleText5, CeladonGymAfterBattleText5
|
|
CeladonGymTrainerHeader4:
|
|
trainer EVENT_BEAT_CELADON_GYM_TRAINER_4, 2, CeladonGymBattleText6, CeladonGymEndBattleText6, CeladonGymAfterBattleText6
|
|
CeladonGymTrainerHeader5:
|
|
trainer EVENT_BEAT_CELADON_GYM_TRAINER_5, 2, CeladonGymBattleText7, CeladonGymEndBattleText7, CeladonGymAfterBattleText7
|
|
CeladonGymTrainerHeader6:
|
|
trainer EVENT_BEAT_CELADON_GYM_TRAINER_6, 3, CeladonGymBattleText8, CeladonGymEndBattleText8, CeladonGymAfterBattleText8
|
|
db -1 ; end
|
|
|
|
ErikaText:
|
|
text_asm
|
|
CheckEvent EVENT_BEAT_ERIKA
|
|
jr z, .beforeBeat
|
|
CheckEventReuseA EVENT_GOT_TM21
|
|
jr nz, .afterBeat
|
|
call z, CeladonGymReceiveTM21
|
|
call DisableWaitingAfterTextDisplay
|
|
jr .done
|
|
.afterBeat
|
|
ld hl, ErikaPostBattleAdviceText
|
|
call PrintText
|
|
jr .done
|
|
.beforeBeat
|
|
ld hl, ErikaPreBattleText
|
|
call PrintText
|
|
ld hl, wd72d
|
|
set 6, [hl]
|
|
set 7, [hl]
|
|
ld hl, ReceivedRainbowBadgeText
|
|
ld de, ReceivedRainbowBadgeText
|
|
call SaveEndBattleTextPointers
|
|
ldh a, [hSpriteIndex]
|
|
ld [wSpriteIndex], a
|
|
call EngageMapTrainer
|
|
; call InitBattleEnemyParameters ; put this back if you mess up
|
|
|
|
; gym scaling spaghetti code begins here - remove initial parameters as we're making our own
|
|
ld a, OPP_ERIKA
|
|
ld [wCurOpponent], a
|
|
|
|
ld hl, wObtainedBadges ; Picking the team based on badge count. Need +1 so it loads the right team: remember, you're fighting for the badge! Thanks to Chatot4444 for the help.
|
|
ld b, 1
|
|
call CountSetBits
|
|
ld a, [wNumSetBits]
|
|
inc a
|
|
|
|
ld [wTrainerNo], a
|
|
ld a, 1
|
|
ld [wIsTrainerBattle], a
|
|
|
|
;ends here
|
|
|
|
ld a, $4
|
|
ld [wGymLeaderNo], a
|
|
ld a, $3
|
|
ld [wCeladonGymCurScript], a
|
|
ld [wCurMapScript], a
|
|
.done
|
|
jp TextScriptEnd
|
|
|
|
ErikaPreBattleText:
|
|
text_far _ErikaPreBattleText
|
|
text_end
|
|
|
|
ReceivedRainbowBadgeText:
|
|
text_far _ReceivedRainbowBadgeText
|
|
text_end
|
|
|
|
ErikaPostBattleAdviceText:
|
|
text_far _ErikaPostBattleAdviceText
|
|
text_end
|
|
|
|
ErikaRainbowBadgeInfoText:
|
|
text_far _ErikaRainbowBadgeInfoText
|
|
text_end
|
|
|
|
ReceivedTM21Text:
|
|
text_far _ReceivedTM21Text
|
|
sound_get_item_1
|
|
text_far _TM21ExplanationText
|
|
text_end
|
|
|
|
TM21NoRoomText:
|
|
text_far _TM21NoRoomText
|
|
text_end
|
|
|
|
CeladonGymTrainerText1:
|
|
text_asm
|
|
ld hl, CeladonGymTrainerHeader0
|
|
call TalkToTrainer
|
|
jp TextScriptEnd
|
|
|
|
CeladonGymBattleText2:
|
|
text_far _CeladonGymBattleText2
|
|
text_end
|
|
|
|
CeladonGymEndBattleText2:
|
|
text_far _CeladonGymEndBattleText2
|
|
text_end
|
|
|
|
CeladonGymAfterBattleText2:
|
|
text_far _CeladonGymAfterBattleText2
|
|
text_end
|
|
|
|
CeladonGymTrainerText2:
|
|
text_asm
|
|
ld hl, CeladonGymTrainerHeader1
|
|
call TalkToTrainer
|
|
jp TextScriptEnd
|
|
|
|
CeladonGymBattleText3:
|
|
text_far _CeladonGymBattleText3
|
|
text_end
|
|
|
|
CeladonGymEndBattleText3:
|
|
text_far _CeladonGymEndBattleText3
|
|
text_end
|
|
|
|
CeladonGymAfterBattleText3:
|
|
text_far _CeladonGymAfterBattleText3
|
|
text_end
|
|
|
|
CeladonGymTrainerText3:
|
|
text_asm
|
|
ld hl, CeladonGymTrainerHeader2
|
|
call TalkToTrainer
|
|
jp TextScriptEnd
|
|
|
|
CeladonGymBattleText4:
|
|
text_far _CeladonGymBattleText4
|
|
text_end
|
|
|
|
CeladonGymEndBattleText4:
|
|
text_far _CeladonGymEndBattleText4
|
|
text_end
|
|
|
|
CeladonGymAfterBattleText4:
|
|
text_far _CeladonGymAfterBattleText4
|
|
text_end
|
|
|
|
CeladonGymTrainerText4:
|
|
text_asm
|
|
ld hl, CeladonGymTrainerHeader3
|
|
call TalkToTrainer
|
|
jp TextScriptEnd
|
|
|
|
CeladonGymBattleText5:
|
|
text_far _CeladonGymBattleText5
|
|
text_end
|
|
|
|
CeladonGymEndBattleText5:
|
|
text_far _CeladonGymEndBattleText5
|
|
text_end
|
|
|
|
CeladonGymAfterBattleText5:
|
|
text_far _CeladonGymAfterBattleText5
|
|
text_end
|
|
|
|
CeladonGymTrainerText5:
|
|
text_asm
|
|
ld hl, CeladonGymTrainerHeader4
|
|
call TalkToTrainer
|
|
jp TextScriptEnd
|
|
|
|
CeladonGymBattleText6:
|
|
text_far _CeladonGymBattleText6
|
|
text_end
|
|
|
|
CeladonGymEndBattleText6:
|
|
text_far _CeladonGymEndBattleText6
|
|
text_end
|
|
|
|
CeladonGymAfterBattleText6:
|
|
text_far _CeladonGymAfterBattleText6
|
|
text_end
|
|
|
|
CeladonGymTrainerText6:
|
|
text_asm
|
|
ld hl, CeladonGymTrainerHeader5
|
|
call TalkToTrainer
|
|
jp TextScriptEnd
|
|
|
|
CeladonGymBattleText7:
|
|
text_far _CeladonGymBattleText7
|
|
text_end
|
|
|
|
CeladonGymEndBattleText7:
|
|
text_far _CeladonGymEndBattleText7
|
|
text_end
|
|
|
|
CeladonGymAfterBattleText7:
|
|
text_far _CeladonGymAfterBattleText7
|
|
text_end
|
|
|
|
CeladonGymTrainerText7:
|
|
text_asm
|
|
ld hl, CeladonGymTrainerHeader6
|
|
call TalkToTrainer
|
|
jp TextScriptEnd
|
|
|
|
CeladonGymBattleText8:
|
|
text_far _CeladonGymBattleText8
|
|
text_end
|
|
|
|
CeladonGymEndBattleText8:
|
|
text_far _CeladonGymEndBattleText8
|
|
text_end
|
|
|
|
CeladonGymAfterBattleText8:
|
|
text_far _CeladonGymAfterBattleText8
|
|
text_end
|