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

Well, 'unique' is VERY loose here. He looks and behaves identically to a Black Belt still, just with a proper name and a higher payout. He replaces the unused Junior class. In addition, I've brought back the text on the scrolls on the back wall in the Fighting Dojo that were accidentally inaccessible for a while.
370 lines
5.8 KiB
NASM
370 lines
5.8 KiB
NASM
;btlibs
|
|
; afters are farcallable for core.asm
|
|
BTLib1:
|
|
db "ready@@@@"
|
|
db "prepared@"
|
|
db "excited@@"
|
|
db "hyped@@@@"
|
|
|
|
BTLib2:
|
|
db "go@@@@@"
|
|
db "do it@@"
|
|
db "battle@"
|
|
db "rock@@@"
|
|
|
|
BTLib3::
|
|
db "Oh no@@@@@"
|
|
db "Argh no@@@"
|
|
db "Oh well@@@"
|
|
db "My streak@"
|
|
|
|
BTLib4::
|
|
db "game@@@"
|
|
db "battle@"
|
|
db "play@@@"
|
|
db "job@@@@"
|
|
|
|
BTBeforeBattlePtrTable:
|
|
dw BTBeforeBattleTemplate1
|
|
dw BTBeforeBattleTemplate2
|
|
dw BTBeforeBattleTemplate3
|
|
dw BTBeforeBattleTemplate4
|
|
dw BTBeforeBattleTemplate5
|
|
dw BTBeforeBattleTemplate6
|
|
dw BTBeforeBattleTemplate7
|
|
dw BTBeforeBattleTemplate8
|
|
|
|
BTAfterBattlePtrTable::
|
|
dw BTAfterBattleTemplate1
|
|
dw BTAfterBattleTemplate2
|
|
dw BTAfterBattleTemplate3
|
|
dw BTAfterBattleTemplate4
|
|
dw BTAfterBattleTemplate5
|
|
dw BTAfterBattleTemplate6
|
|
dw BTAfterBattleTemplate7
|
|
dw BTAfterBattleTemplate8
|
|
|
|
BTBeforeBattleTemplate1:
|
|
text "I'm @"
|
|
text_ram wStringBuffer1
|
|
text "!"
|
|
done
|
|
|
|
BTBeforeBattleTemplate2:
|
|
text "Get @"
|
|
text_ram wStringBuffer1
|
|
text "!"
|
|
done
|
|
|
|
BTBeforeBattleTemplate3:
|
|
text "Let's @"
|
|
text_ram wStringBuffer2
|
|
text "!"
|
|
done
|
|
|
|
BTBeforeBattleTemplate4:
|
|
text "I'm @"
|
|
text_ram wStringBuffer1
|
|
db 0
|
|
line "for this!"
|
|
|
|
para "Let's @"
|
|
text_ram wStringBuffer2
|
|
text "!"
|
|
done
|
|
|
|
BTBeforeBattleTemplate5:
|
|
text "Here I come!"
|
|
|
|
line "Let's @"
|
|
text_ram wStringBuffer2
|
|
text "!"
|
|
done
|
|
|
|
BTBeforeBattleTemplate6:
|
|
text "Let's @"
|
|
text_ram wStringBuffer2
|
|
db 0
|
|
line "together!"
|
|
done
|
|
|
|
BTBeforeBattleTemplate7:
|
|
text "I'm waiting for"
|
|
line "a while now."
|
|
|
|
para "Let's @"
|
|
text_ram wStringBuffer2
|
|
text "!"
|
|
done
|
|
|
|
BTBeforeBattleTemplate8:
|
|
text "Well, I'm"
|
|
line "@"
|
|
text_ram wStringBuffer1
|
|
text " now."
|
|
|
|
para "Let's @"
|
|
text_ram wStringBuffer2
|
|
text "."
|
|
done
|
|
|
|
BTAfterBattleTemplate1::
|
|
text "@"
|
|
text_ram wStringBuffer1
|
|
text "!"
|
|
|
|
para "Oh man.."
|
|
prompt
|
|
|
|
BTAfterBattleTemplate2::
|
|
text "@"
|
|
text_ram wStringBuffer1
|
|
text "!"
|
|
prompt
|
|
|
|
BTAfterBattleTemplate3::
|
|
text "@"
|
|
text_ram wStringBuffer1
|
|
text "!"
|
|
|
|
line "Good @"
|
|
text_ram wStringBuffer2
|
|
text "!"
|
|
prompt
|
|
|
|
BTAfterBattleTemplate4::
|
|
text "That was a nice"
|
|
line "@"
|
|
text_ram wStringBuffer2
|
|
text "!"
|
|
prompt
|
|
|
|
BTAfterBattleTemplate5::
|
|
text "I did the best"
|
|
line "I could."
|
|
|
|
para "I have no"
|
|
line "regrets!"
|
|
prompt
|
|
|
|
BTAfterBattleTemplate6::
|
|
text "@"
|
|
text_ram wStringBuffer1
|
|
text "!"
|
|
|
|
line "Nice @"
|
|
text_ram wStringBuffer2
|
|
text "!"
|
|
prompt
|
|
|
|
BTAfterBattleTemplate7::
|
|
text "That was a nice"
|
|
line "@"
|
|
text_ram wStringBuffer2
|
|
text ","
|
|
cont "don't you think?"
|
|
prompt
|
|
|
|
BTAfterBattleTemplate8::
|
|
text "Awesome"
|
|
line "@"
|
|
text_ram wStringBuffer2
|
|
text "!"
|
|
|
|
para "Shall we do this"
|
|
line "again?"
|
|
prompt
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
;data
|
|
BTTrainerClassList::
|
|
; structure:
|
|
; common - has 2 entries each in order to make the entire list exactly 32
|
|
db YOUNGSTER, SPRITE_YOUNGSTER, 0
|
|
db YOUNGSTER, SPRITE_YOUNGSTER, 0
|
|
db JR_TRAINER_M, SPRITE_COOLTRAINER_M, 0
|
|
db JR_TRAINER_M, SPRITE_COOLTRAINER_M, 0
|
|
db JR_TRAINER_F, SPRITE_COOLTRAINER_F, 0
|
|
db JR_TRAINER_F, SPRITE_COOLTRAINER_F, 0
|
|
db COOLTRAINER_M, SPRITE_COOLTRAINER_M, 9
|
|
db COOLTRAINER_M, SPRITE_COOLTRAINER_M, 9
|
|
db COOLTRAINER_F, SPRITE_COOLTRAINER_F, 9
|
|
db COOLTRAINER_F, SPRITE_COOLTRAINER_F, 9
|
|
; uncommon
|
|
db BUG_CATCHER, SPRITE_YOUNGSTER, 1
|
|
db LASS, SPRITE_COOLTRAINER_F, 7
|
|
db HIKER, SPRITE_HIKER, 2
|
|
db SAILOR, SPRITE_SAILOR, 3
|
|
db POKEMANIAC, SPRITE_SUPER_NERD, 0
|
|
db SUPER_NERD, SPRITE_SUPER_NERD, 0
|
|
db BURGLAR, SPRITE_SUPER_NERD, 0
|
|
db ENGINEER, SPRITE_SUPER_NERD, 4
|
|
db FISHER, SPRITE_FISHER, 3
|
|
db CUE_BALL, SPRITE_HIKER, 0
|
|
db COOLTRAINER_F, SPRITE_COOLTRAINER_F, 0
|
|
db BEAUTY, SPRITE_BEAUTY, 7
|
|
db PSYCHIC_TR, SPRITE_YOUNGSTER, 5
|
|
db ROCKER, SPRITE_ROCKER, 4
|
|
db JUGGLER, SPRITE_ROCKER, 5
|
|
db TAMER, SPRITE_ROCKER, 0
|
|
db BIRD_KEEPER, SPRITE_COOLTRAINER_M, 6
|
|
db BLACKBELT, SPRITE_HIKER, 2
|
|
db SCIENTIST, SPRITE_SCIENTIST, 8
|
|
db FIREFIGHTER, SPRITE_FISHER, 0
|
|
db STUDENT, SPRITE_GIRL, 8
|
|
db CHANNELER, SPRITE_CHANNELER, 8
|
|
|
|
BTMonList::
|
|
; List of 'mons, grouped in 8 roughly by types
|
|
; Normal+Bug set
|
|
db TAUROS
|
|
db PERSIAN
|
|
db TRAMPEL
|
|
db SNORLAX
|
|
db BUTTERFREE
|
|
db TRICULES
|
|
db SCIZOR
|
|
db PARASECT
|
|
; Rock+Fighting set
|
|
db GAWARHED
|
|
db KABUTOPS
|
|
db RHYPERIOR
|
|
db ARCANINE_H
|
|
db HITMONTOP
|
|
db TAUROS_P
|
|
db POLIWRATH
|
|
db HITMONLEE
|
|
; Water set
|
|
db JABETTA
|
|
db CLOYSTER
|
|
db LAPRAS
|
|
db GYARADOS
|
|
db BLASTOISE
|
|
db SHARPOON
|
|
db POLITOED
|
|
db PENDRAKEN
|
|
; Electric+Fire set
|
|
db JOLTEON
|
|
db ZAPDOS
|
|
db GOROCHU
|
|
db SANDY_SHOCKS
|
|
db CHARIZARD
|
|
db NINETALES
|
|
db MAGMORTAR
|
|
db MOLTRES
|
|
; Psychic+Ice set
|
|
db ALAKAZAM
|
|
db SLOWBRO
|
|
db STARMIE
|
|
db EXEGGUTOR
|
|
db ARTICUNO
|
|
db JYNX
|
|
db NINETALES_A
|
|
db MR_RIME
|
|
; Flying+Fire set
|
|
db LUXWAN
|
|
db AERODACTYL
|
|
db DRAGONITE
|
|
db DODRIO
|
|
db MAROWAK_A
|
|
db FLAREON
|
|
db RAPIDASH
|
|
db TAUROS_PB
|
|
; Normal+Grass set
|
|
db RAMOOSE
|
|
db CHANSEY
|
|
db KANGASKHAN
|
|
db RATICATE_A
|
|
db TANGROWTH
|
|
db CACTORMUS
|
|
db BELLIGNAN
|
|
db VICTREEBEL
|
|
; Ghost+Ground+Poison set
|
|
db STEELIX
|
|
db GUARDIA
|
|
db GOLEM
|
|
db GENGAR
|
|
db ANNIHILAPE
|
|
db CROBAT
|
|
db NIDOKING
|
|
db TENTACRUEL
|
|
; Normal+Dragon set
|
|
db PORYGON2
|
|
db PORYGONZ
|
|
db CLEFABLE
|
|
db RATICATE
|
|
db GAVILLAIN
|
|
db EXEGGUTOR_A
|
|
db IGUANARCH
|
|
db KINGDRA
|
|
|
|
|
|
;engine
|
|
ReadBattleTentTrainer::
|
|
ld a, 50
|
|
ld [wCurEnemyLVL],a
|
|
ld a, [wBTClass]
|
|
ld hl, BTTrainerClassList + 2 ; Team selector
|
|
ld bc, 3
|
|
call AddNTimes
|
|
ld a, [hl]
|
|
and a
|
|
jr z, .anyTeam
|
|
dec a
|
|
ld hl, BTMonList
|
|
ld bc, 8
|
|
call AddNTimes ; now hl points to the specific team
|
|
ld b, 3
|
|
.SpecificTeam
|
|
push hl
|
|
push bc
|
|
call Random
|
|
and 7
|
|
ld b, 0
|
|
ld c, a
|
|
add hl, bc
|
|
ld a, [hl]
|
|
ld [wcf91],a
|
|
ld a,1
|
|
ld [wMonDataLocation],a
|
|
call AddPartyMon
|
|
pop bc
|
|
pop hl
|
|
dec b
|
|
jr nz, .SpecificTeam
|
|
ret
|
|
.anyTeam
|
|
ld hl, BTMonList
|
|
ld b, 3
|
|
.anyTeamLoop
|
|
push hl
|
|
push bc
|
|
call Random
|
|
and 63
|
|
ld c, a ; max = 63
|
|
ld a, [hRandomSub]
|
|
bit 7, a
|
|
jr z, .skipinc
|
|
inc c ; max = 64
|
|
.skipinc
|
|
and 7
|
|
add c
|
|
ld c, a ; max = 71
|
|
ld b, 0
|
|
add hl, bc
|
|
ld a, [hl]
|
|
ld [wcf91],a
|
|
ld a,1
|
|
ld [wMonDataLocation],a
|
|
call AddPartyMon
|
|
pop bc
|
|
pop hl
|
|
dec b
|
|
jr nz, .anyTeamLoop
|
|
ret |