mirror of
https://github.com/thornAvery/kep-hack.git
synced 2025-09-17 02:40:50 +12:00

So it turns out that the code used in Factory Adventure *or* the TPP Anniversary Repository, by all accounts, should not actually work. Like, no, really, it ends up loading 0xFF as code, thus why it would always rst38. It just...doesn't...do anything. My friend Enigami, who figured out the issue, described the function as being "half-finished". We came up with a solution that results in less functionality - now it needs a free box - but it results in less load times, so maybe it's just better this way. I doubt many people will catch that many Pokemon unless they were shooting for a living dex, which is unfeasible in its current state anyway. I considered putting Bottle Caps in here, but it felt like making the game too grindy, so I changed it to just be in the Battle Tent shop with a very high price.
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 JACK, SPRITE_SCIENTIST, 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 PURAKKUSU
|
|
db SCIZOR
|
|
db PARASECT
|
|
; Rock+Fighting set
|
|
db GYAOON
|
|
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 JAGG
|
|
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 MADAAMU
|
|
db AERODACTYL
|
|
db DRAGONITE
|
|
db DODRIO
|
|
db MAROWAK_A
|
|
db FLAREON
|
|
db RAPIDASH
|
|
db TAUROS_PB
|
|
; Normal+Grass set
|
|
db DEER
|
|
db CHANSEY
|
|
db KANGASKHAN
|
|
db RATICATE_A
|
|
db TANGROWTH
|
|
db CACTUS
|
|
db TSUBOMITTO
|
|
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 CROCKY
|
|
db EXEGGUTOR_A
|
|
db CRYITHAN
|
|
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 |