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

This commit adds a large fundamental change to KEP, that being Gym Rematches. This is achieved alongside a rework to the script that makes those post-game-gating NPCs shift around. If you add a new one, just add its constant to the lists you'll see in the Hall of Fame script. It also fixes a few bugs: - Fixed a bug where Cinnabar Gym loaded a fleet of Blaines. This occurred due to the way he is coded at base, and a misunderstanding I had when implementing his scaling. This is now fixed by standardising his gym script instead, while letting the gym trainers still use the old one. - Fixed a bug where the Up-Grade NPC would not appear after beating Silph Co. 11F. However, Giovanni currently seems to have trouble with his text. This floor needs some re-coding anyway, given we need to add Jessie and James to it. And some misc. changes: - Changed the first Moon Stone in Mt. Moon to a Poison Stone for the Nidoking speedrunners - Debug Mode now has a line of code to set up the post-game easily - Changed Surge's initial battle text to Yellow's - Added Sabrina's more accurate LGPE initial battle text, referring to the spoon she bent by accident
210 lines
3.7 KiB
NASM
210 lines
3.7 KiB
NASM
; This function is a debugging feature to give the player Tsunekazu Ishihara's
|
|
; favorite Pokemon. This is indicated by the overpowered Exeggutor, which
|
|
; Ishihara (president of Creatures Inc.) said was his favorite Pokemon in an ABC
|
|
; interview on February 8, 2000.
|
|
; "Exeggutor is my favorite. That's because I was always using this character
|
|
; while I was debugging the program."
|
|
; http://www.ign.com/articles/2000/02/09/abc-news-pokamon-chat-transcript
|
|
|
|
SetIshiharaTeam:
|
|
ld de, IshiharaTeam
|
|
.loop
|
|
ld a, [de]
|
|
cp -1
|
|
ret z
|
|
ld [wcf91], a
|
|
inc de
|
|
ld a, [de]
|
|
ld [wCurEnemyLVL], a
|
|
inc de
|
|
call AddPartyMon
|
|
jr .loop
|
|
|
|
IshiharaTeam:
|
|
db EXEGGUTOR_A, 90
|
|
db MELTAN, 90
|
|
db TRAMPEL, 90
|
|
IF DEF(_DEBUG)
|
|
db TAUROS_PB, 90
|
|
db SNORLAX, 50
|
|
ENDC
|
|
db -1 ; end
|
|
|
|
DebugStart:
|
|
IF DEF(_DEBUG)
|
|
xor a ; PLAYER_PARTY_DATA
|
|
ld [wMonDataLocation], a
|
|
|
|
; Fly anywhere.
|
|
dec a ; $ff
|
|
ld [wTownVisitedFlag], a
|
|
ld [wTownVisitedFlag + 1], a
|
|
|
|
; This hack was coded by transfems.
|
|
ld a, 1
|
|
ld [wPlayerSex], a
|
|
|
|
; Test Candy Jar Evolution
|
|
ld a, 39
|
|
ld [wCandyJarCount], a
|
|
|
|
; Test Vermilion Beauty
|
|
; Set a to 4 to test increments.
|
|
; Set BeautyChoice to GROWLITHE to test the other choice.
|
|
ld a, 5
|
|
ld [wBeautyCounter], a
|
|
ld a, MEOWTH
|
|
ld [wBeautyChoice], a
|
|
|
|
; Test Post-Game Functionality.
|
|
SetEvent EVENT_POST_GAME_ATTAINED
|
|
|
|
; Get all badges except Earth Badge.
|
|
ld a, ~(1 << BIT_EARTHBADGE)
|
|
ld [wObtainedBadges], a
|
|
|
|
call SetIshiharaTeam
|
|
|
|
; Exeggutor (Pokemon 1) gets four HM moves.
|
|
ld hl, wPartyMon1Moves
|
|
ld a, FLY
|
|
ld [hli], a
|
|
ld a, CUT
|
|
ld [hli], a
|
|
ld a, SURF
|
|
ld [hli], a
|
|
ld a, STRENGTH
|
|
ld [hl], a
|
|
ld hl, wPartyMon1PP
|
|
ld a, 15
|
|
ld [hli], a
|
|
ld a, 30
|
|
ld [hli], a
|
|
ld a, 15
|
|
ld [hli], a
|
|
ld [hl], a
|
|
|
|
; Jolteon (Pokemon 3) gets Thunderbolt.
|
|
; Adjusted for Trampel
|
|
ld hl, wPartyMon3Moves + 3
|
|
ld a, EARTHQUAKE
|
|
ld [hl], a
|
|
ld hl, wPartyMon3PP + 3
|
|
ld a, 15
|
|
ld [hl], a
|
|
|
|
; Blaze Tauros (Pokemon 4) has a full moveset
|
|
ld hl, wPartyMon4Moves
|
|
ld a, FIRE_BLAST
|
|
ld [hli], a
|
|
ld a, LOW_KICK
|
|
ld [hli], a
|
|
ld a, FIRE_SPIN
|
|
ld [hli], a
|
|
ld a, HYPER_BEAM
|
|
ld [hl], a
|
|
ld hl, wPartyMon1PP
|
|
ld a, 99
|
|
ld [hli], a
|
|
ld a, 99
|
|
ld [hli], a
|
|
ld a, 99
|
|
ld [hli], a
|
|
ld [hl], a
|
|
|
|
; Articuno (Pokemon 5) gets Fly.
|
|
ld hl, wPartyMon5Moves
|
|
ld a, FLY
|
|
ld [hl], a
|
|
ld hl, wPartyMon5PP
|
|
ld a, 15
|
|
ld [hl], a
|
|
|
|
; Kadabra (Pokemon 6) gets Flash and Teleport
|
|
ld hl, wPartyMon6Moves + 2
|
|
ld a, FLASH
|
|
ld [hl], a
|
|
ld hl, wPartyMon6PP + 2
|
|
ld a, 15
|
|
ld [hl], a
|
|
ld a, TELEPORT
|
|
ld [hl], a
|
|
|
|
; Get some debug items.
|
|
ld hl, wNumBagItems
|
|
ld de, DebugItemsList
|
|
.items_loop
|
|
ld a, [de]
|
|
cp -1
|
|
jr z, .items_end
|
|
ld [wcf91], a
|
|
inc de
|
|
ld a, [de]
|
|
inc de
|
|
ld [wItemQuantity], a
|
|
call AddItemToInventory
|
|
jr .items_loop
|
|
.items_end
|
|
|
|
; Complete the Pokédex.
|
|
ld hl, wPokedexOwned
|
|
call DebugSetPokedexEntries
|
|
ld hl, wPokedexSeen
|
|
call DebugSetPokedexEntries
|
|
SetEvent EVENT_GOT_POKEDEX
|
|
|
|
; Rival chose Pikachu,
|
|
; Player chose Eevee.
|
|
; Eevee is used to test the Celadon Mansion Roof House.
|
|
ld hl, wRivalStarter
|
|
ld a, STARTER4
|
|
ld [hli], a
|
|
inc hl ; hl = wPlayerStarter
|
|
ld a, STARTER5
|
|
ld [hl], a
|
|
|
|
ret
|
|
|
|
DebugSetPokedexEntries:
|
|
ld b, wPokedexOwnedEnd - wPokedexOwned
|
|
ld a, %11111111
|
|
.loop
|
|
ld [hli], a
|
|
dec b
|
|
jr nz, .loop
|
|
ld [hl], %01111111
|
|
ret
|
|
|
|
DebugItemsList:
|
|
db MASTER_BALL, 99
|
|
db MYSTERY_BOX, 1
|
|
db CANDY_JAR, 1
|
|
db BICYCLE, 1
|
|
db FULL_RESTORE, 99
|
|
db MAX_REPEL, 99
|
|
db RARE_CANDY, 99
|
|
db ESCAPE_ROPE, 99
|
|
db POKE_BALL, 99 ; test ball miss text with this
|
|
db SECRET_KEY, 1
|
|
db CARD_KEY, 1
|
|
db S_S_TICKET, 1
|
|
db CITRINE_PASS, 1
|
|
db SUPER_ROD, 1
|
|
db COIN_CASE, 1
|
|
db POKE_FLUTE, 1
|
|
db SILPH_SCOPE, 1
|
|
db OLD_SEA_MAP, 1
|
|
db UP_GRADE, 1
|
|
db TM_MEGA_PUNCH, 1
|
|
db HM_SURF, 1
|
|
db METAL_COAT, 99
|
|
db BLK_AUGURITE, 99
|
|
db BOTTLE_CAP, 99
|
|
db -1 ; end
|
|
|
|
DebugUnusedList:
|
|
db -1 ; end
|
|
ELSE
|
|
ret
|
|
ENDC
|