mirror of
https://github.com/thornAvery/kep-hack.git
synced 2025-09-17 02:40: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.
315 lines
6.5 KiB
NASM
315 lines
6.5 KiB
NASM
FightingDojo_Script:
|
|
call EnableAutoTextBoxDrawing
|
|
ld hl, FightingDojoTrainerHeaders
|
|
ld de, FightingDojo_ScriptPointers
|
|
ld a, [wFightingDojoCurScript]
|
|
call ExecuteCurMapScriptInTable
|
|
ld [wFightingDojoCurScript], a
|
|
ret
|
|
|
|
FightingDojoScript_5cd70:
|
|
xor a
|
|
ld [wJoyIgnore], a
|
|
ld [wFightingDojoCurScript], a
|
|
ld [wCurMapScript], a
|
|
ret
|
|
|
|
FightingDojo_ScriptPointers:
|
|
dw FightingDojoScript1
|
|
dw DisplayEnemyTrainerTextAndStartBattle
|
|
dw EndTrainerBattle
|
|
dw FightingDojoScript3
|
|
|
|
FightingDojoScript1:
|
|
CheckEvent EVENT_DEFEATED_FIGHTING_DOJO
|
|
ret nz
|
|
call CheckFightingMapTrainers
|
|
ld a, [wTrainerHeaderFlagBit]
|
|
and a
|
|
ret nz
|
|
CheckEvent EVENT_BEAT_KARATE_MASTER
|
|
ret nz
|
|
xor a
|
|
ldh [hJoyHeld], a
|
|
ld [wcf0d], a
|
|
ld a, [wYCoord]
|
|
cp 3
|
|
ret nz
|
|
ld a, [wXCoord]
|
|
cp 4
|
|
ret nz
|
|
ld a, $1
|
|
ld [wcf0d], a
|
|
ld a, PLAYER_DIR_RIGHT
|
|
ld [wPlayerMovingDirection], a
|
|
ld a, $1
|
|
ldh [hSpriteIndex], a
|
|
ld a, SPRITE_FACING_LEFT
|
|
ldh [hSpriteFacingDirection], a
|
|
call SetSpriteFacingDirectionAndDelay
|
|
ld a, $1
|
|
ldh [hSpriteIndexOrTextID], a
|
|
call DisplayTextID
|
|
ret
|
|
|
|
FightingDojoScript3:
|
|
ld a, [wIsInBattle]
|
|
cp $ff
|
|
jp z, FightingDojoScript_5cd70
|
|
ld a, [wcf0d]
|
|
and a
|
|
jr z, .asm_5cde4
|
|
ld a, PLAYER_DIR_RIGHT
|
|
ld [wPlayerMovingDirection], a
|
|
ld a, $1
|
|
ldh [hSpriteIndex], a
|
|
ld a, SPRITE_FACING_LEFT
|
|
ldh [hSpriteFacingDirection], a
|
|
call SetSpriteFacingDirectionAndDelay
|
|
|
|
.asm_5cde4
|
|
ld a, $f0
|
|
ld [wJoyIgnore], a
|
|
SetEventRange EVENT_BEAT_KARATE_MASTER, EVENT_BEAT_FIGHTING_DOJO_TRAINER_3
|
|
ld a, $8
|
|
ldh [hSpriteIndexOrTextID], a
|
|
call DisplayTextID
|
|
xor a
|
|
ld [wJoyIgnore], a
|
|
ld [wFightingDojoCurScript], a
|
|
ld [wCurMapScript], a
|
|
ret
|
|
|
|
FightingDojo_TextPointers:
|
|
dw FightingDojoText1
|
|
dw FightingDojoText2
|
|
dw FightingDojoText3
|
|
dw FightingDojoText4
|
|
dw FightingDojoText5
|
|
dw FightingDojoText6
|
|
dw FightingDojoText7
|
|
dw FightingDojoText8
|
|
|
|
FightingDojoTrainerHeaders:
|
|
def_trainers 2
|
|
FightingDojoTrainerHeader0:
|
|
trainer EVENT_BEAT_FIGHTING_DOJO_TRAINER_0, 4, FightingDojoBattleText1, FightingDojoEndBattleText1, FightingDojoAfterBattleText1
|
|
FightingDojoTrainerHeader1:
|
|
trainer EVENT_BEAT_FIGHTING_DOJO_TRAINER_1, 4, FightingDojoBattleText2, FightingDojoEndBattleText2, FightingDojoAfterBattleText2
|
|
FightingDojoTrainerHeader2:
|
|
trainer EVENT_BEAT_FIGHTING_DOJO_TRAINER_2, 3, FightingDojoBattleText3, FightingDojoEndBattleText3, FightingDojoAfterBattleText3
|
|
FightingDojoTrainerHeader3:
|
|
trainer EVENT_BEAT_FIGHTING_DOJO_TRAINER_3, 3, FightingDojoBattleText4, FightingDojoEndBattleText4, FightingDojoAfterBattleText4
|
|
db -1 ; end
|
|
|
|
FightingDojoText1:
|
|
text_asm
|
|
CheckEvent EVENT_DEFEATED_FIGHTING_DOJO
|
|
jp nz, .continue1
|
|
CheckEventReuseA EVENT_BEAT_KARATE_MASTER
|
|
jp nz, .continue2
|
|
ld hl, FightingDojoText_5ce8e
|
|
call PrintText
|
|
ld hl, wd72d
|
|
set 6, [hl]
|
|
set 7, [hl]
|
|
ld hl, FightingDojoText_5ce93
|
|
ld de, FightingDojoText_5ce93
|
|
call SaveEndBattleTextPointers
|
|
ldh a, [hSpriteIndexOrTextID]
|
|
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_BLACKBELT
|
|
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, $3
|
|
ld [wFightingDojoCurScript], a
|
|
ld [wCurMapScript], a
|
|
jr .asm_9dba4
|
|
.continue1
|
|
ld hl, FightingDojoText_5ce9d
|
|
call PrintText
|
|
jr .asm_9dba4
|
|
.continue2
|
|
ld hl, FightingDojoText8
|
|
call PrintText
|
|
.asm_9dba4
|
|
jp TextScriptEnd
|
|
|
|
FightingDojoText_5ce8e:
|
|
text_far _FightingDojoText_5ce8e
|
|
text_end
|
|
|
|
FightingDojoText_5ce93:
|
|
text_far _FightingDojoText_5ce93
|
|
text_end
|
|
|
|
FightingDojoText8:
|
|
text_far _FightingDojoText_5ce98
|
|
text_end
|
|
|
|
FightingDojoText_5ce9d:
|
|
text_far _FightingDojoText_5ce9d
|
|
text_end
|
|
|
|
FightingDojoText2:
|
|
text_asm
|
|
ld hl, FightingDojoTrainerHeader0
|
|
call TalkToTrainer
|
|
jp TextScriptEnd
|
|
|
|
FightingDojoBattleText1:
|
|
text_far _FightingDojoBattleText1
|
|
text_end
|
|
|
|
FightingDojoEndBattleText1:
|
|
text_far _FightingDojoEndBattleText1
|
|
text_end
|
|
|
|
FightingDojoAfterBattleText1:
|
|
text_far _FightingDojoAfterBattleText1
|
|
text_end
|
|
|
|
FightingDojoText3:
|
|
text_asm
|
|
ld hl, FightingDojoTrainerHeader1
|
|
call TalkToTrainer
|
|
jp TextScriptEnd
|
|
|
|
FightingDojoBattleText2:
|
|
text_far _FightingDojoBattleText2
|
|
text_end
|
|
|
|
FightingDojoEndBattleText2:
|
|
text_far _FightingDojoEndBattleText2
|
|
text_end
|
|
|
|
FightingDojoAfterBattleText2:
|
|
text_far _FightingDojoAfterBattleText2
|
|
text_end
|
|
|
|
FightingDojoText4:
|
|
text_asm
|
|
ld hl, FightingDojoTrainerHeader2
|
|
call TalkToTrainer
|
|
jp TextScriptEnd
|
|
|
|
FightingDojoBattleText3:
|
|
text_far _FightingDojoBattleText3
|
|
text_end
|
|
|
|
FightingDojoEndBattleText3:
|
|
text_far _FightingDojoEndBattleText3
|
|
text_end
|
|
|
|
FightingDojoAfterBattleText3:
|
|
text_far _FightingDojoAfterBattleText3
|
|
text_end
|
|
|
|
FightingDojoText5:
|
|
text_asm
|
|
ld hl, FightingDojoTrainerHeader3
|
|
call TalkToTrainer
|
|
jp TextScriptEnd
|
|
|
|
FightingDojoBattleText4:
|
|
text_far _FightingDojoBattleText4
|
|
text_end
|
|
|
|
FightingDojoEndBattleText4:
|
|
text_far _FightingDojoEndBattleText4
|
|
text_end
|
|
|
|
FightingDojoAfterBattleText4:
|
|
text_far _FightingDojoAfterBattleText4
|
|
text_end
|
|
|
|
FightingDojoText6:
|
|
; Hitmonlee Poké Ball
|
|
text_asm
|
|
CheckEitherEventSet EVENT_GOT_HITMONLEE, EVENT_GOT_HITMONCHAN
|
|
jr z, .GetMon
|
|
ld hl, OtherHitmonText
|
|
call PrintText
|
|
jr .done
|
|
.GetMon
|
|
ld a, HITMONLEE
|
|
call DisplayPokedex
|
|
ld hl, WantHitmonleeText
|
|
call PrintText
|
|
call YesNoChoice
|
|
ld a, [wCurrentMenuItem]
|
|
and a
|
|
jr nz, .done
|
|
ld a, [wcf91]
|
|
ld b, a
|
|
ld c, 30
|
|
call GivePokemon
|
|
jr nc, .done
|
|
|
|
; once Poké Ball is taken, hide sprite
|
|
ld a, HS_FIGHTING_DOJO_GIFT_1
|
|
ld [wMissableObjectIndex], a
|
|
predef HideObject
|
|
SetEvents EVENT_GOT_HITMONLEE, EVENT_DEFEATED_FIGHTING_DOJO
|
|
.done
|
|
jp TextScriptEnd
|
|
|
|
WantHitmonleeText:
|
|
text_far _WantHitmonleeText
|
|
text_end
|
|
|
|
FightingDojoText7:
|
|
; Hitmonchan Poké Ball
|
|
text_asm
|
|
CheckEitherEventSet EVENT_GOT_HITMONLEE, EVENT_GOT_HITMONCHAN
|
|
jr z, .GetMon
|
|
ld hl, OtherHitmonText
|
|
call PrintText
|
|
jr .done
|
|
.GetMon
|
|
ld a, HITMONCHAN
|
|
call DisplayPokedex
|
|
ld hl, WantHitmonchanText
|
|
call PrintText
|
|
call YesNoChoice
|
|
ld a, [wCurrentMenuItem]
|
|
and a
|
|
jr nz, .done
|
|
ld a, [wcf91]
|
|
ld b, a
|
|
ld c, 30
|
|
call GivePokemon
|
|
jr nc, .done
|
|
SetEvents EVENT_GOT_HITMONCHAN, EVENT_DEFEATED_FIGHTING_DOJO
|
|
|
|
; once Poké Ball is taken, hide sprite
|
|
ld a, HS_FIGHTING_DOJO_GIFT_2
|
|
ld [wMissableObjectIndex], a
|
|
predef HideObject
|
|
.done
|
|
jp TextScriptEnd
|
|
|
|
WantHitmonchanText:
|
|
text_far _WantHitmonchanText
|
|
text_end
|
|
|
|
OtherHitmonText:
|
|
text_far _OtherHitmonText
|
|
text_end
|