kep-hack/engine/battletentdata.asm
Martha Schilling 543ea46d8e Koichi unique trainer class!
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.
2023-12-24 22:18:00 +00:00

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