mirror of
https://github.com/thornAvery/kep-hack.git
synced 2025-09-17 02:40:50 +12:00
expanded Pokemon size
Rhyperior files are dummies and will need to be properly edited with sprites, Rhydon evo data, etc, but it (and the other files included) show that the trainer and pokemon sprite indexes have been separated, which allows us to add the other KEP mons
This commit is contained in:
parent
b33e266d44
commit
1893b4c7cf
|
@ -200,5 +200,6 @@
|
|||
const DEX_DRAGONITE ; 149
|
||||
const DEX_MEWTWO ; 150
|
||||
const DEX_MEW ; 151
|
||||
const DEX_RHYPERIOR
|
||||
|
||||
DEF NUM_POKEMON EQU const_value - 1
|
||||
|
|
|
@ -206,6 +206,7 @@
|
|||
const BETOBEBII ; $C5 (new)
|
||||
const BELLOSSOM ; $C6 (new)
|
||||
const SCIZOR ; $C7 (new)
|
||||
const RHYPERIOR ; $C8 (test)
|
||||
|
||||
DEF NUM_POKEMON_INDEXES EQU const_value - 1
|
||||
|
||||
|
|
|
@ -196,4 +196,5 @@ INCLUDE "data/pokemon/base_stats/dragonair.asm"
|
|||
INCLUDE "data/pokemon/base_stats/dragonite.asm"
|
||||
INCLUDE "data/pokemon/base_stats/mewtwo.asm"
|
||||
INCLUDE "data/pokemon/base_stats/mew.asm"
|
||||
INCLUDE "data/pokemon/base_stats/rhyperior.asm"
|
||||
assert_table_length NUM_POKEMON
|
||||
|
|
27
data/pokemon/base_stats/rhyperior.asm
Normal file
27
data/pokemon/base_stats/rhyperior.asm
Normal file
|
@ -0,0 +1,27 @@
|
|||
db DEX_RHYDON ; pokedex id
|
||||
|
||||
db 115, 140, 130, 50, 55
|
||||
; hp atk def spd spc
|
||||
|
||||
db GROUND, ROCK ; type
|
||||
db 60 ; catch rate
|
||||
db 204 ; base exp
|
||||
|
||||
INCBIN "gfx/pokemon/front/rhydon.pic", 0, 1 ; sprite dimensions
|
||||
dw RhydonPicFront, RhydonPicBack
|
||||
|
||||
db HORN_ATTACK, STOMP, TAIL_WHIP, FURY_ATTACK ; level 1 learnset
|
||||
db GROWTH_SLOW ; growth rate
|
||||
|
||||
; tm/hm learnset
|
||||
tmhm MEGA_PUNCH, MEGA_KICK, TOXIC, HORN_DRILL, BODY_SLAM, \
|
||||
TAKE_DOWN, DOUBLE_EDGE, BUBBLEBEAM, WATER_GUN, ICE_BEAM, \
|
||||
BLIZZARD, HYPER_BEAM, PAY_DAY, SUBMISSION, COUNTER, \
|
||||
SEISMIC_TOSS, RAGE, THUNDERBOLT, THUNDER, EARTHQUAKE, \
|
||||
FISSURE, DIG, MIMIC, DOUBLE_TEAM, BIDE, \
|
||||
FIRE_BLAST, SKULL_BASH, REST, ROCK_SLIDE, SUBSTITUTE, \
|
||||
SURF, STRENGTH
|
||||
; end
|
||||
|
||||
db BANK(RhydonPicFront)
|
||||
assert BANK(RhydonPicFront) == BANK(RhydonPicBack)
|
|
@ -205,4 +205,5 @@ CryData::
|
|||
mon_cry SFX_CRY_05, $FF, $40 ; Betobebii
|
||||
mon_cry SFX_CRY_00, $00, $00 ; Bellossom (unfinished)
|
||||
mon_cry SFX_CRY_00, $00, $00 ; Scizor (unfinished)
|
||||
mon_cry SFX_CRY_00, $00, $00 ; Rhyperior (test)
|
||||
assert_table_length NUM_POKEMON_INDEXES
|
||||
|
|
|
@ -199,6 +199,7 @@ PokedexEntryPointers:
|
|||
dw MissingNoDexEntry
|
||||
dw BellossomDexEntry
|
||||
dw ScizorDexEntry
|
||||
dw RhyperiorDexEntry
|
||||
assert_table_length NUM_POKEMON_INDEXES
|
||||
|
||||
; string: species name
|
||||
|
@ -1550,3 +1551,10 @@ ScizorDexEntry:
|
|||
text_far _ScizorDexEntry
|
||||
text_end
|
||||
|
||||
RhyperiorDexEntry:
|
||||
db "TEST@"
|
||||
db 5,11
|
||||
dw 5000
|
||||
text_far _RhyperiorDexEntry
|
||||
text_end
|
||||
|
|
@ -199,4 +199,5 @@ PokedexOrder:
|
|||
db DEX_BETOBEBII
|
||||
db DEX_BELLOSSOM
|
||||
db DEX_SCIZOR
|
||||
db DEX_RHYPERIOR
|
||||
assert_table_length NUM_POKEMON_INDEXES
|
||||
|
|
|
@ -202,6 +202,7 @@ EvosMovesPointerTable:
|
|||
dw BetobebiiEvosMoves
|
||||
dw BellossomEvosMoves
|
||||
dw ScizorEvosMoves
|
||||
dw RhyperiorEvosMoves
|
||||
assert_table_length NUM_POKEMON_INDEXES
|
||||
|
||||
RhydonEvosMoves:
|
||||
|
@ -2538,3 +2539,14 @@ ScizorEvosMoves:
|
|||
db 50, BULLET_PUNCH
|
||||
db 0
|
||||
|
||||
RhyperiorEvosMoves:
|
||||
; Evolutions
|
||||
db 0
|
||||
; Learnset
|
||||
db 30, STOMP
|
||||
db 35, TAIL_WHIP
|
||||
db 40, FURY_ATTACK
|
||||
db 48, HORN_DRILL
|
||||
db 55, LEER
|
||||
db 64, TAKE_DOWN
|
||||
db 0
|
||||
|
|
|
@ -196,4 +196,5 @@ MonPartyData:
|
|||
nybble ICON_SNAKE ; Dragonite
|
||||
nybble ICON_MON ; Mewtwo
|
||||
nybble ICON_MON ; Mew
|
||||
nybble ICON_MON ; Rhyperior
|
||||
end_nybble_array NUM_POKEMON
|
||||
|
|
|
@ -199,4 +199,5 @@ MonsterNames::
|
|||
db "BETOBEBII@"
|
||||
db "BELLOSSOM@"
|
||||
db "SCIZOR@@@@"
|
||||
db "RHYPERIOR@"
|
||||
assert_table_length NUM_POKEMON_INDEXES
|
||||
|
|
|
@ -448,6 +448,16 @@ _BellossomDexEntry::
|
|||
next "to summon the sun"
|
||||
dex
|
||||
|
||||
_RhyperiorDexEntry::
|
||||
text "This is a newly"
|
||||
next "discovered"
|
||||
next "#MON. It is"
|
||||
|
||||
page "currently under"
|
||||
next "investigation. No"
|
||||
next "info is available"
|
||||
dex
|
||||
|
||||
_MissingNoDexEntry::
|
||||
text "This is a newly"
|
||||
next "discovered"
|
||||
|
|
|
@ -197,4 +197,5 @@ MonsterPalettes:
|
|||
db PAL_BROWNMON ; DRAGONITE
|
||||
db PAL_MEWMON ; MEWTWO
|
||||
db PAL_MEWMON ; MEW
|
||||
db PAL_GREYMON ; RHYPERIOR
|
||||
assert_table_length NUM_POKEMON + 1
|
||||
|
|
|
@ -82,8 +82,8 @@ BattleTransitions:
|
|||
|
||||
GetBattleTransitionID_WildOrTrainer:
|
||||
ld a, [wCurOpponent]
|
||||
cp OPP_ID_OFFSET
|
||||
jr nc, .trainer
|
||||
and a
|
||||
jr nz, .trainer
|
||||
res 0, c
|
||||
ret
|
||||
.trainer
|
||||
|
|
|
@ -955,6 +955,12 @@ TrainerBattleVictory:
|
|||
; win money
|
||||
ld hl, MoneyForWinningText
|
||||
call PrintText
|
||||
|
||||
xor a
|
||||
ld [wIsTrainerBattle], a
|
||||
ld a, 1
|
||||
ld [wWasTrainerBattle], a
|
||||
|
||||
ld de, wPlayerMoney + 2
|
||||
ld hl, wAmountMoneyWon + 2
|
||||
ld c, $3
|
||||
|
@ -1142,6 +1148,8 @@ ChooseNextMon:
|
|||
; called when player is out of usable mons.
|
||||
; prints appropriate lose message, sets carry flag if player blacked out (special case for initial rival fight)
|
||||
HandlePlayerBlackOut:
|
||||
xor a
|
||||
ld [wIsTrainerBattle], a
|
||||
ld a, [wLinkState]
|
||||
cp LINK_STATE_BATTLING
|
||||
jr z, .notRival1Battle
|
||||
|
@ -6801,9 +6809,11 @@ InitBattleCommon:
|
|||
push af
|
||||
res 1, [hl]
|
||||
callfar InitBattleVariables
|
||||
ld a, [wIsTrainerBattle]
|
||||
and a
|
||||
jp z, InitWildBattle
|
||||
ld a, [wEnemyMonSpecies2]
|
||||
sub OPP_ID_OFFSET
|
||||
jp c, InitWildBattle
|
||||
ld [wTrainerClass], a
|
||||
call GetTrainerInformation
|
||||
callfar ReadTrainer
|
||||
|
|
|
@ -99,6 +99,7 @@ TryDoWildEncounter:
|
|||
ret
|
||||
.willEncounter
|
||||
xor a
|
||||
ld [wIsTrainerBattle], a
|
||||
ret
|
||||
|
||||
INCLUDE "data/wild/probabilities.asm"
|
||||
|
|
|
@ -119,6 +119,9 @@ UpdateNPCSprite:
|
|||
ld hl, wMapSpriteData
|
||||
add l
|
||||
ld l, a
|
||||
jr nc, .nc
|
||||
inc h
|
||||
.nc
|
||||
ld a, [hl] ; read movement byte 2
|
||||
ld [wCurSpriteMovement2], a
|
||||
ld h, HIGH(wSpriteStateData1)
|
||||
|
|
|
@ -22,3 +22,19 @@ CopyData::
|
|||
or b
|
||||
jr nz, CopyData
|
||||
ret
|
||||
|
||||
FarCopyData2::
|
||||
; Identical to FarCopyData, but uses hROMBankTemp
|
||||
; as temp space instead of wBuffer.
|
||||
ldh [hROMBankTemp], a
|
||||
ldh a, [hLoadedROMBank]
|
||||
push af
|
||||
ldh a, [hROMBankTemp]
|
||||
ldh [hLoadedROMBank], a
|
||||
ld [MBC1RomBank], a
|
||||
call CopyData
|
||||
pop af
|
||||
ldh [hLoadedROMBank], a
|
||||
ld [MBC1RomBank], a
|
||||
ret
|
||||
|
|
@ -1,18 +1,3 @@
|
|||
FarCopyData2::
|
||||
; Identical to FarCopyData, but uses hROMBankTemp
|
||||
; as temp space instead of wBuffer.
|
||||
ldh [hROMBankTemp], a
|
||||
ldh a, [hLoadedROMBank]
|
||||
push af
|
||||
ldh a, [hROMBankTemp]
|
||||
ldh [hLoadedROMBank], a
|
||||
ld [MBC1RomBank], a
|
||||
call CopyData
|
||||
pop af
|
||||
ldh [hLoadedROMBank], a
|
||||
ld [MBC1RomBank], a
|
||||
ret
|
||||
|
||||
FarCopyData3::
|
||||
; Copy bc bytes from a:de to hl.
|
||||
ldh [hROMBankTemp], a
|
||||
|
|
|
@ -143,6 +143,8 @@ DisplayListMenuIDLoop::
|
|||
ld [wd0b5], a
|
||||
ld a, BANK(ItemNames)
|
||||
ld [wPredefBank], a
|
||||
ld a, ITEM_NAME
|
||||
ld [wNameListType], a
|
||||
call GetName
|
||||
jr .storeChosenEntry
|
||||
.pokemonList
|
||||
|
|
|
@ -190,16 +190,20 @@ EndTrainerBattle::
|
|||
res 0, [hl] ; player is no longer engaged by any trainer
|
||||
ld a, [wIsInBattle]
|
||||
cp $ff
|
||||
jp z, ResetButtonPressedAndMapScript
|
||||
jr z, EndTrainerBattleWhiteout
|
||||
ld a, $2
|
||||
call ReadTrainerHeaderInfo
|
||||
ld a, [wTrainerHeaderFlagBit]
|
||||
ld c, a
|
||||
ld b, FLAG_SET
|
||||
call TrainerFlagAction ; flag trainer as fought
|
||||
ld a, [wEnemyMonOrTrainerClass]
|
||||
cp OPP_ID_OFFSET
|
||||
jr nc, .skipRemoveSprite ; test if trainer was fought (in that case skip removing the corresponding sprite)
|
||||
ld a, [wWasTrainerBattle]
|
||||
and a
|
||||
jr nz, .skipRemoveSprite ; test if trainer was fought (in that case skip removing the corresponding sprite)
|
||||
ld a, [wCurMap]
|
||||
cp POKEMON_TOWER_7F
|
||||
jr z, .skipRemoveSprite ; the tower 7f scripts call EndTrainerBattle manually after
|
||||
; wIsTrainerBattle has been unset
|
||||
ld hl, wMissableObjectList
|
||||
ld de, $2
|
||||
ld a, [wSpriteIndex]
|
||||
|
@ -209,11 +213,19 @@ EndTrainerBattle::
|
|||
ld [wMissableObjectIndex], a ; load corresponding missable object index and remove it
|
||||
predef HideObject
|
||||
.skipRemoveSprite
|
||||
xor a
|
||||
ld [wWasTrainerBattle], a
|
||||
ld hl, wd730
|
||||
bit 4, [hl]
|
||||
res 4, [hl]
|
||||
ret nz
|
||||
|
||||
EndTrainerBattleWhiteout:
|
||||
xor a
|
||||
ld [wIsTrainerBattle], a
|
||||
ld [wWasTrainerBattle], a
|
||||
; fallthrough to original routine
|
||||
|
||||
ResetButtonPressedAndMapScript::
|
||||
xor a
|
||||
ld [wJoyIgnore], a
|
||||
|
@ -232,12 +244,14 @@ InitBattleEnemyParameters::
|
|||
ld a, [wEngagedTrainerClass]
|
||||
ld [wCurOpponent], a
|
||||
ld [wEnemyMonOrTrainerClass], a
|
||||
cp OPP_ID_OFFSET
|
||||
ld a, [wIsTrainerBattle]
|
||||
and a
|
||||
jr z, .noTrainer
|
||||
ld a, [wEngagedTrainerSet]
|
||||
jr c, .noTrainer
|
||||
ld [wTrainerNo], a
|
||||
ret
|
||||
.noTrainer
|
||||
ld a, [wEngagedTrainerSet]
|
||||
ld [wCurEnemyLVL], a
|
||||
ret
|
||||
|
||||
|
@ -333,7 +347,17 @@ EngageMapTrainer::
|
|||
ld a, [hli] ; load trainer class
|
||||
ld [wEngagedTrainerClass], a
|
||||
ld a, [hl] ; load trainer mon set
|
||||
bit 7, a
|
||||
jr nz, .pokemon
|
||||
ld [wEngagedTrainerSet], a
|
||||
ld a, 1
|
||||
ld [wIsTrainerBattle], a
|
||||
jp PlayTrainerMusic
|
||||
.pokemon
|
||||
and $7F
|
||||
ld [wEngagedTrainerSet], a
|
||||
xor a
|
||||
ld [wIsTrainerBattle], a
|
||||
jp PlayTrainerMusic
|
||||
|
||||
PrintEndBattleText::
|
||||
|
|
|
@ -156,6 +156,8 @@ CeruleanCityScript1:
|
|||
ld a, $9
|
||||
.done
|
||||
ld [wTrainerNo], a
|
||||
ld a, 1
|
||||
ld [wIsTrainerBattle], a
|
||||
|
||||
xor a
|
||||
ldh [hJoyHeld], a
|
||||
|
@ -168,6 +170,8 @@ CeruleanCityScript2:
|
|||
ld a, [wIsInBattle]
|
||||
cp $ff
|
||||
jp z, CeruleanCityScript_1948c
|
||||
xor a
|
||||
ld [wIsTrainerBattle], a
|
||||
call CeruleanCityScript_1955d
|
||||
ld a, $f0
|
||||
ld [wJoyIgnore], a
|
||||
|
|
|
@ -382,6 +382,8 @@ OaksLabScript11:
|
|||
ret nz
|
||||
|
||||
; define which team rival uses, and fight it
|
||||
ld a, 1
|
||||
ld [wIsTrainerBattle], a
|
||||
ld a, OPP_RIVAL1
|
||||
ld [wCurOpponent], a
|
||||
ld a, [wRivalStarter]
|
||||
|
@ -416,6 +418,8 @@ OaksLabScript11:
|
|||
ret
|
||||
|
||||
OaksLabScript12:
|
||||
xor a
|
||||
ld [wIsTrainerBattle], a
|
||||
ld a, $f0
|
||||
ld [wJoyIgnore], a
|
||||
ld a, PLAYER_DIR_UP
|
||||
|
|
|
@ -66,6 +66,8 @@ PokemonTower2Script1:
|
|||
ld a, [wIsInBattle]
|
||||
cp $ff
|
||||
jp z, PokemonTower2Script_604fe
|
||||
xor a
|
||||
ld [wIsTrainerBattle], a
|
||||
ld a, $f0
|
||||
ld [wJoyIgnore], a
|
||||
SetEvent EVENT_BEAT_POKEMON_TOWER_RIVAL
|
||||
|
@ -164,6 +166,8 @@ PokemonTower2Text1:
|
|||
ld a, $6
|
||||
.done
|
||||
ld [wTrainerNo], a
|
||||
ld a, 1
|
||||
ld [wIsTrainerBattle], a
|
||||
|
||||
ld a, $1
|
||||
ld [wPokemonTower2FCurScript], a
|
||||
|
|
|
@ -33,6 +33,8 @@ Route12Script0:
|
|||
ld [wCurOpponent], a
|
||||
ld a, 30
|
||||
ld [wCurEnemyLVL], a
|
||||
xor a
|
||||
ld [wIsTrainerBattle], a
|
||||
ld a, HS_ROUTE_12_SNORLAX
|
||||
ld [wMissableObjectIndex], a
|
||||
predef HideObject
|
||||
|
|
|
@ -33,6 +33,8 @@ Route16Script0:
|
|||
ld [wCurOpponent], a
|
||||
ld a, 30
|
||||
ld [wCurEnemyLVL], a
|
||||
xor a
|
||||
ld [wIsTrainerBattle], a
|
||||
ld a, HS_ROUTE_16_SNORLAX
|
||||
ld [wMissableObjectIndex], a
|
||||
predef HideObject
|
||||
|
|
|
@ -33,6 +33,8 @@ Route22Script_50ed6:
|
|||
.asm_50ee1
|
||||
ld a, [hl]
|
||||
ld [wTrainerNo], a
|
||||
ld a, 1
|
||||
ld [wIsTrainerBattle], a
|
||||
ret
|
||||
|
||||
Route22MoveRivalSprite:
|
||||
|
@ -149,6 +151,8 @@ Route22Script2:
|
|||
ld a, [wIsInBattle]
|
||||
cp $ff
|
||||
jp z, Route22Script_50ece
|
||||
xor a
|
||||
ld [wIsTrainerBattle], a
|
||||
ld a, [wSpritePlayerStateData1FacingDirection]
|
||||
and a ; cp SPRITE_FACING_DOWN
|
||||
jr nz, .notDown
|
||||
|
@ -304,6 +308,8 @@ Route22Script5:
|
|||
ld a, [wIsInBattle]
|
||||
cp $ff
|
||||
jp z, Route22Script_50ece
|
||||
xor a
|
||||
ld [wIsTrainerBattle], a
|
||||
ld a, $2
|
||||
ldh [hSpriteIndex], a
|
||||
ld a, [wcf0d]
|
||||
|
|
|
@ -114,6 +114,8 @@ SSAnne2Script1:
|
|||
ld a, $3
|
||||
.done
|
||||
ld [wTrainerNo], a
|
||||
ld a, 1
|
||||
ld [wIsTrainerBattle], a
|
||||
|
||||
call SSAnne2Script_61416
|
||||
ld a, $2
|
||||
|
@ -124,6 +126,8 @@ SSAnne2Script2:
|
|||
ld a, [wIsInBattle]
|
||||
cp $ff
|
||||
jp z, SSAnne2Script_613ab
|
||||
xor a
|
||||
ld [wIsTrainerBattle], a
|
||||
call SSAnne2Script_61416
|
||||
ld a, $f0
|
||||
ld [wJoyIgnore], a
|
||||
|
|
|
@ -199,6 +199,8 @@ SilphCo7Script3:
|
|||
ld a, $9
|
||||
.asm_51cc0
|
||||
ld [wTrainerNo], a
|
||||
ld a, 1
|
||||
ld [wIsTrainerBattle], a
|
||||
ld a, $4
|
||||
jp SilphCo7Text_51c10
|
||||
|
||||
|
@ -206,6 +208,8 @@ SilphCo7Script4:
|
|||
ld a, [wIsInBattle]
|
||||
cp $ff
|
||||
jp z, SilphCo7Text_51c0c
|
||||
xor a
|
||||
ld [wIsTrainerBattle], a
|
||||
ld a, $f0
|
||||
ld [wJoyIgnore], a
|
||||
SetEvent EVENT_BEAT_SILPH_CO_RIVAL
|
||||
|
|
Loading…
Reference in a new issue