mirror of
https://github.com/thornAvery/kep-hack.git
synced 2025-09-17 02:40:50 +12:00
Add Trader to Celadon University
Includes fixes to allow trade evos to exist
This commit is contained in:
parent
2d0cac3830
commit
c243548fc4
|
@ -30,6 +30,7 @@ DEF SLOTS_SOMEONESKEYS EQU $ff
|
||||||
const TRADE_FOR_DORIS
|
const TRADE_FOR_DORIS
|
||||||
const TRADE_FOR_CRINKLES
|
const TRADE_FOR_CRINKLES
|
||||||
const TRADE_FOR_SPOT
|
const TRADE_FOR_SPOT
|
||||||
|
const TRADE_WITH_SELF
|
||||||
DEF NUM_NPC_TRADES EQU const_value
|
DEF NUM_NPC_TRADES EQU const_value
|
||||||
|
|
||||||
; in game trade dialog sets
|
; in game trade dialog sets
|
||||||
|
@ -38,6 +39,7 @@ DEF NUM_NPC_TRADES EQU const_value
|
||||||
const TRADE_DIALOGSET_CASUAL
|
const TRADE_DIALOGSET_CASUAL
|
||||||
const TRADE_DIALOGSET_POLITE
|
const TRADE_DIALOGSET_POLITE
|
||||||
const TRADE_DIALOGSET_HAPPY
|
const TRADE_DIALOGSET_HAPPY
|
||||||
|
const TRADE_DIALOGSET_SELF
|
||||||
|
|
||||||
; badges
|
; badges
|
||||||
; wObtainedBadges and wBeatGymFlags bits
|
; wObtainedBadges and wBeatGymFlags bits
|
||||||
|
|
|
@ -12,4 +12,5 @@ TradeMons:
|
||||||
db KADABRA, GRAVELER, TRADE_DIALOGSET_POLITE, "SABURO@@@@@" ; From JP Blue
|
db KADABRA, GRAVELER, TRADE_DIALOGSET_POLITE, "SABURO@@@@@" ; From JP Blue
|
||||||
db VENONAT, TANGELA, TRADE_DIALOGSET_HAPPY, "CRINKLES@@@"
|
db VENONAT, TANGELA, TRADE_DIALOGSET_HAPPY, "CRINKLES@@@"
|
||||||
db NIDORAN_M, NIDORAN_F, TRADE_DIALOGSET_HAPPY, "SPOT@@@@@@@"
|
db NIDORAN_M, NIDORAN_F, TRADE_DIALOGSET_HAPPY, "SPOT@@@@@@@"
|
||||||
|
db NO_MON, NO_MON, TRADE_DIALOGSET_SELF, "Unseen@@@@@"
|
||||||
assert_table_length NUM_NPC_TRADES
|
assert_table_length NUM_NPC_TRADES
|
||||||
|
|
|
@ -8,6 +8,7 @@ CeladonUniversityInside_Object:
|
||||||
def_bg_events
|
def_bg_events
|
||||||
|
|
||||||
def_object_events
|
def_object_events
|
||||||
object_event 8, 17, SPRITE_MIDDLE_AGED_MAN, STAY, ANY_DIR, 1 ; person
|
object_event 2, 3, SPRITE_MIDDLE_AGED_MAN, STAY, ANY_DIR, 1 ; person
|
||||||
|
object_event 4, 17, SPRITE_GAMEBOY_KID, STAY, DOWN, 2 ; person
|
||||||
|
|
||||||
def_warps_to CELADON_UNIVERSITY_INSIDE
|
def_warps_to CELADON_UNIVERSITY_INSIDE
|
|
@ -198,3 +198,21 @@ _UsedCutText::
|
||||||
text " hacked"
|
text " hacked"
|
||||||
line "away with CUT!"
|
line "away with CUT!"
|
||||||
prompt
|
prompt
|
||||||
|
|
||||||
|
_WannaTrade4Text::
|
||||||
|
text "I'm the TRADER!"
|
||||||
|
line "I love to help"
|
||||||
|
para "TRAINERs evolve"
|
||||||
|
line "their #MON!"
|
||||||
|
para "Wanna trade?"
|
||||||
|
done
|
||||||
|
|
||||||
|
_NoTrade4Text::
|
||||||
|
text "Ok, maybe next"
|
||||||
|
line "time then."
|
||||||
|
done
|
||||||
|
|
||||||
|
_Thanks4Text::
|
||||||
|
text "There we go!"
|
||||||
|
para "Hope I helped!"
|
||||||
|
done
|
||||||
|
|
|
@ -31,7 +31,7 @@ ENDC
|
||||||
db DUGTRIO, 56
|
db DUGTRIO, 56
|
||||||
db ARTICUNO, 57
|
db ARTICUNO, 57
|
||||||
IF DEF(_DEBUG)
|
IF DEF(_DEBUG)
|
||||||
db PIKACHU, 5
|
db KADABRA, 16 ; to test trade evos @ celadon uni - PvK
|
||||||
ENDC
|
ENDC
|
||||||
db -1 ; end
|
db -1 ; end
|
||||||
|
|
||||||
|
@ -86,7 +86,7 @@ IF DEF(_DEBUG)
|
||||||
ld a, 15
|
ld a, 15
|
||||||
ld [hl], a
|
ld [hl], a
|
||||||
|
|
||||||
; Pikachu gets Flash.
|
; Kadabra gets Flash.
|
||||||
ld hl, wPartyMon6Moves + 2
|
ld hl, wPartyMon6Moves + 2
|
||||||
ld a, FLASH
|
ld a, FLASH
|
||||||
ld [hl], a
|
ld [hl], a
|
||||||
|
|
|
@ -16,24 +16,8 @@ EvolveTradeMon:
|
||||||
; were used instead, where none can evolve.
|
; were used instead, where none can evolve.
|
||||||
|
|
||||||
; This was fixed in Yellow.
|
; This was fixed in Yellow.
|
||||||
|
; KEP removes this quirk.
|
||||||
|
|
||||||
ld a, [wInGameTradeReceiveMonName]
|
|
||||||
|
|
||||||
; GRAVELER
|
|
||||||
cp "G"
|
|
||||||
jr z, .ok
|
|
||||||
|
|
||||||
; "SPECTRE" (HAUNTER)
|
|
||||||
cp "S"
|
|
||||||
ret nz
|
|
||||||
ld a, [wInGameTradeReceiveMonName + 1]
|
|
||||||
cp "P"
|
|
||||||
ret nz
|
|
||||||
|
|
||||||
.ok
|
|
||||||
ld a, [wPartyCount]
|
|
||||||
dec a
|
|
||||||
ld [wWhichPokemon], a
|
|
||||||
ld a, $1
|
ld a, $1
|
||||||
ld [wForceEvolution], a
|
ld [wForceEvolution], a
|
||||||
ld a, LINK_STATE_TRADING
|
ld a, LINK_STATE_TRADING
|
||||||
|
|
|
@ -57,6 +57,9 @@ DoInGameTradeDialogue:
|
||||||
jr nz, .printText
|
jr nz, .printText
|
||||||
call InGameTrade_DoTrade
|
call InGameTrade_DoTrade
|
||||||
jr c, .printText
|
jr c, .printText
|
||||||
|
ld a, [wInGameTradeGiveMonSpecies]
|
||||||
|
cp NO_MON
|
||||||
|
jr z, .printText
|
||||||
ld hl, TradedForText
|
ld hl, TradedForText
|
||||||
call PrintText
|
call PrintText
|
||||||
.printText
|
.printText
|
||||||
|
@ -98,22 +101,29 @@ InGameTrade_DoTrade:
|
||||||
ld a, $1
|
ld a, $1
|
||||||
jp c, .tradeFailed ; jump if the player didn't select a pokemon
|
jp c, .tradeFailed ; jump if the player didn't select a pokemon
|
||||||
ld a, [wInGameTradeGiveMonSpecies]
|
ld a, [wInGameTradeGiveMonSpecies]
|
||||||
|
cp NO_MON
|
||||||
|
jr z, .skip_mon_check
|
||||||
ld b, a
|
ld b, a
|
||||||
ld a, [wcf91]
|
ld a, [wcf91]
|
||||||
cp b
|
cp b
|
||||||
ld a, $2
|
ld a, $2
|
||||||
jr nz, .tradeFailed ; jump if the selected mon's species is not the required one
|
jp nz, .tradeFailed ; jump if the selected mon's species is not the required one
|
||||||
|
.skip_mon_check
|
||||||
ld a, [wWhichPokemon]
|
ld a, [wWhichPokemon]
|
||||||
ld hl, wPartyMon1Level
|
ld hl, wPartyMon1Level
|
||||||
ld bc, wPartyMon2 - wPartyMon1
|
ld bc, wPartyMon2 - wPartyMon1
|
||||||
call AddNTimes
|
call AddNTimes
|
||||||
ld a, [hl]
|
ld a, [hl]
|
||||||
ld [wCurEnemyLVL], a
|
ld [wCurEnemyLVL], a
|
||||||
|
ld a, [wInGameTradeGiveMonSpecies]
|
||||||
|
cp NO_MON
|
||||||
|
jr z, .skip_flag_set
|
||||||
ld hl, wCompletedInGameTradeFlags
|
ld hl, wCompletedInGameTradeFlags
|
||||||
ld a, [wWhichTrade]
|
ld a, [wWhichTrade]
|
||||||
ld c, a
|
ld c, a
|
||||||
ld b, FLAG_SET
|
ld b, FLAG_SET
|
||||||
predef FlagActionPredef
|
predef FlagActionPredef
|
||||||
|
.skip_flag_set
|
||||||
ld hl, ConnectCableText
|
ld hl, ConnectCableText
|
||||||
call PrintText
|
call PrintText
|
||||||
ld a, [wWhichPokemon]
|
ld a, [wWhichPokemon]
|
||||||
|
@ -121,7 +131,14 @@ InGameTrade_DoTrade:
|
||||||
ld a, [wCurEnemyLVL]
|
ld a, [wCurEnemyLVL]
|
||||||
push af
|
push af
|
||||||
call LoadHpBarAndStatusTilePatterns
|
call LoadHpBarAndStatusTilePatterns
|
||||||
|
ld a, [wInGameTradeGiveMonSpecies]
|
||||||
|
cp NO_MON
|
||||||
|
jr nz, .normal_in_game_trade_data
|
||||||
|
call TradeSelf_PrepareTradeData
|
||||||
|
jr .self_trade_data
|
||||||
|
.normal_in_game_trade_data
|
||||||
call InGameTrade_PrepareTradeData
|
call InGameTrade_PrepareTradeData
|
||||||
|
.self_trade_data
|
||||||
predef InternalClockTradeAnim
|
predef InternalClockTradeAnim
|
||||||
pop af
|
pop af
|
||||||
ld [wCurEnemyLVL], a
|
ld [wCurEnemyLVL], a
|
||||||
|
@ -130,13 +147,21 @@ InGameTrade_DoTrade:
|
||||||
ld a, [wInGameTradeReceiveMonSpecies]
|
ld a, [wInGameTradeReceiveMonSpecies]
|
||||||
ld [wcf91], a
|
ld [wcf91], a
|
||||||
xor a
|
xor a
|
||||||
ld [wMonDataLocation], a ; not used
|
push af
|
||||||
|
ld a, [wInGameTradeGiveMonSpecies]
|
||||||
|
cp NO_MON
|
||||||
|
jr z, .skip_swap_mons
|
||||||
|
pop af
|
||||||
ld [wRemoveMonFromBox], a
|
ld [wRemoveMonFromBox], a
|
||||||
call RemovePokemon
|
call RemovePokemon
|
||||||
ld a, $80 ; prevent the player from naming the mon
|
ld a, $80 ; prevent the player from naming the mon
|
||||||
ld [wMonDataLocation], a
|
ld [wMonDataLocation], a
|
||||||
call AddPartyMon
|
call AddPartyMon
|
||||||
call InGameTrade_CopyDataToReceivedMon
|
call InGameTrade_CopyDataToReceivedMon
|
||||||
|
ld a, [wPartyCount]
|
||||||
|
dec a
|
||||||
|
ld [wWhichPokemon], a
|
||||||
|
.skip_swap_mons
|
||||||
callfar EvolveTradeMon
|
callfar EvolveTradeMon
|
||||||
call ClearScreen
|
call ClearScreen
|
||||||
call InGameTrade_RestoreScreen
|
call InGameTrade_RestoreScreen
|
||||||
|
@ -161,9 +186,22 @@ InGameTrade_RestoreScreen:
|
||||||
call DelayFrames
|
call DelayFrames
|
||||||
farjp LoadWildData
|
farjp LoadWildData
|
||||||
|
|
||||||
|
TradeSelf_PrepareTradeData:
|
||||||
|
ld a, [wWhichPokemon]
|
||||||
|
ld hl, wPartySpecies
|
||||||
|
ld b, 0
|
||||||
|
ld c, a
|
||||||
|
add hl, bc
|
||||||
|
ld a, [hl]
|
||||||
|
ld [wTradedPlayerMonSpecies], a
|
||||||
|
ld [wInGameTradeReceiveMonSpecies], a
|
||||||
|
ld hl, wTradedPlayerMonSpecies
|
||||||
|
jr InGameTrade_PrepareTradeData.loaded_self_trade_instead
|
||||||
|
|
||||||
InGameTrade_PrepareTradeData:
|
InGameTrade_PrepareTradeData:
|
||||||
ld hl, wTradedPlayerMonSpecies
|
ld hl, wTradedPlayerMonSpecies
|
||||||
ld a, [wInGameTradeGiveMonSpecies]
|
ld a, [wInGameTradeGiveMonSpecies]
|
||||||
|
.loaded_self_trade_instead
|
||||||
ld [hli], a ; wTradedPlayerMonSpecies
|
ld [hli], a ; wTradedPlayerMonSpecies
|
||||||
ld a, [wInGameTradeReceiveMonSpecies]
|
ld a, [wInGameTradeReceiveMonSpecies]
|
||||||
ld [hl], a ; wTradedEnemyMonSpecies
|
ld [hl], a ; wTradedEnemyMonSpecies
|
||||||
|
@ -237,6 +275,7 @@ InGameTradeTextPointers:
|
||||||
dw TradeTextPointers1
|
dw TradeTextPointers1
|
||||||
dw TradeTextPointers2
|
dw TradeTextPointers2
|
||||||
dw TradeTextPointers3
|
dw TradeTextPointers3
|
||||||
|
dw TradeTextPointers4
|
||||||
|
|
||||||
TradeTextPointers1:
|
TradeTextPointers1:
|
||||||
dw WannaTrade1Text
|
dw WannaTrade1Text
|
||||||
|
@ -259,6 +298,13 @@ TradeTextPointers3:
|
||||||
dw Thanks3Text
|
dw Thanks3Text
|
||||||
dw AfterTrade3Text
|
dw AfterTrade3Text
|
||||||
|
|
||||||
|
TradeTextPointers4:
|
||||||
|
dw WannaTrade4Text
|
||||||
|
dw NoTrade4Text
|
||||||
|
dw WrongMon1Text
|
||||||
|
dw Thanks4Text
|
||||||
|
dw AfterTrade1Text
|
||||||
|
|
||||||
ConnectCableText:
|
ConnectCableText:
|
||||||
text_far _ConnectCableText
|
text_far _ConnectCableText
|
||||||
text_end
|
text_end
|
||||||
|
@ -328,3 +374,15 @@ Thanks3Text:
|
||||||
AfterTrade3Text:
|
AfterTrade3Text:
|
||||||
text_far _AfterTrade3Text
|
text_far _AfterTrade3Text
|
||||||
text_end
|
text_end
|
||||||
|
|
||||||
|
WannaTrade4Text:
|
||||||
|
text_far _WannaTrade4Text
|
||||||
|
text_end
|
||||||
|
|
||||||
|
NoTrade4Text:
|
||||||
|
text_far _NoTrade4Text
|
||||||
|
text_end
|
||||||
|
|
||||||
|
Thanks4Text:
|
||||||
|
text_far _Thanks4Text
|
||||||
|
text_end
|
|
@ -3,9 +3,17 @@ CeladonUniversityInside_Script:
|
||||||
|
|
||||||
CeladonUniversityInside_TextPointers:
|
CeladonUniversityInside_TextPointers:
|
||||||
dw CeladonUniversityInsideText1
|
dw CeladonUniversityInsideText1
|
||||||
|
dw CeladonUniversityTrader
|
||||||
|
|
||||||
CeladonUniversityInsideText1:
|
CeladonUniversityInsideText1:
|
||||||
text_far _CeladonUniversityInsideText1
|
text_far _CeladonUniversityInsideText1
|
||||||
text_end
|
text_end
|
||||||
|
|
||||||
|
CeladonUniversityTrader:
|
||||||
|
text_asm
|
||||||
|
ld a, TRADE_WITH_SELF
|
||||||
|
ld [wWhichTrade], a
|
||||||
|
predef DoInGameTradeDialogue
|
||||||
|
jp TextScriptEnd
|
||||||
|
|
||||||
text_end ; unused
|
text_end ; unused
|
||||||
|
|
Loading…
Reference in a new issue