kep-hack/scripts/PokemonTower2F.asm
emaskyesmogon 1893b4c7cf 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
2022-08-31 20:47:02 -06:00

197 lines
3.8 KiB
NASM

PokemonTower2F_Script:
call EnableAutoTextBoxDrawing
ld hl, PokemonTower2F_ScriptPointers
ld a, [wPokemonTower2FCurScript]
jp CallFunctionInTable
PokemonTower2Script_604fe:
xor a
ld [wJoyIgnore], a
ld [wPokemonTower2FCurScript], a
ld [wCurMapScript], a
ret
PokemonTower2F_ScriptPointers:
dw PokemonTower2Script0
dw PokemonTower2Script1
dw PokemonTower2Script2
PokemonTower2Script0:
IF DEF(_DEBUG)
call DebugPressedOrHeldB
ret nz
ENDC
CheckEvent EVENT_BEAT_POKEMON_TOWER_RIVAL
ret nz
ld hl, CoordsData_6055e
call ArePlayerCoordsInArray
ret nc
ld a, SFX_STOP_ALL_MUSIC
ld [wNewSoundID], a
call PlaySound
ld c, BANK(Music_MeetRival)
ld a, MUSIC_MEET_RIVAL
call PlayMusic
ResetEvent EVENT_POKEMON_TOWER_RIVAL_ON_LEFT
ld a, [wCoordIndex]
cp $1
ld a, PLAYER_DIR_UP
ld b, SPRITE_FACING_DOWN
jr nz, .asm_60544
; the rival is on the left side and the player is on the right side
SetEvent EVENT_POKEMON_TOWER_RIVAL_ON_LEFT
ld a, PLAYER_DIR_LEFT
ld b, SPRITE_FACING_RIGHT
.asm_60544
ld [wPlayerMovingDirection], a
ld a, $1
ldh [hSpriteIndex], a
ld a, b
ldh [hSpriteFacingDirection], a
call SetSpriteFacingDirectionAndDelay
ld a, $1
ldh [hSpriteIndexOrTextID], a
call DisplayTextID
xor a
ldh [hJoyHeld], a
ldh [hJoyPressed], a
ret
CoordsData_6055e:
dbmapcoord 15, 5
dbmapcoord 14, 6
db -1 ; fixes coord termination which can have adverse effects
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
ld a, $1
ldh [hSpriteIndexOrTextID], a
call DisplayTextID
ld de, MovementData_605b2
CheckEvent EVENT_POKEMON_TOWER_RIVAL_ON_LEFT
jr nz, .asm_60589
ld de, MovementData_605a9
.asm_60589
ld a, $1
ldh [hSpriteIndex], a
call MoveSprite
ld a, SFX_STOP_ALL_MUSIC
ld [wNewSoundID], a
call PlaySound
farcall Music_RivalAlternateStart
ld a, $2
ld [wPokemonTower2FCurScript], a
ld [wCurMapScript], a
ret
MovementData_605a9:
db NPC_MOVEMENT_RIGHT
db NPC_MOVEMENT_DOWN
db NPC_MOVEMENT_DOWN
db NPC_MOVEMENT_RIGHT
db NPC_MOVEMENT_DOWN
db NPC_MOVEMENT_DOWN
db NPC_MOVEMENT_RIGHT
db NPC_MOVEMENT_RIGHT
db -1 ; end
MovementData_605b2:
db NPC_MOVEMENT_DOWN
db NPC_MOVEMENT_DOWN
db NPC_MOVEMENT_RIGHT
db NPC_MOVEMENT_RIGHT
db NPC_MOVEMENT_RIGHT
db NPC_MOVEMENT_RIGHT
db NPC_MOVEMENT_DOWN
db NPC_MOVEMENT_DOWN
db -1 ; end
PokemonTower2Script2:
ld a, [wd730]
bit 0, a
ret nz
ld a, HS_POKEMON_TOWER_2F_RIVAL
ld [wMissableObjectIndex], a
predef HideObject
xor a
ld [wJoyIgnore], a
call PlayDefaultMusic
ld a, $0
ld [wPokemonTower2FCurScript], a
ld [wCurMapScript], a
ret
PokemonTower2F_TextPointers:
dw PokemonTower2Text1
dw PokemonTower2Text2
PokemonTower2Text1:
text_asm
CheckEvent EVENT_BEAT_POKEMON_TOWER_RIVAL
jr z, .asm_16f24
ld hl, PokemonTower2Text_6063c
call PrintText
jr .asm_41852
.asm_16f24
ld hl, PokemonTower2Text_6062d
call PrintText
ld hl, wd72d
set 6, [hl]
set 7, [hl]
ld hl, PokemonTower2Text_60632
ld de, PokemonTower2Text_60637
call SaveEndBattleTextPointers
ld a, OPP_RIVAL2
ld [wCurOpponent], a
; select which team to use during the encounter
ld a, [wRivalStarter]
cp STARTER2
jr nz, .NotSquirtle
ld a, $4
jr .done
.NotSquirtle
cp STARTER3
jr nz, .Charmander
ld a, $5
jr .done
.Charmander
ld a, $6
.done
ld [wTrainerNo], a
ld a, 1
ld [wIsTrainerBattle], a
ld a, $1
ld [wPokemonTower2FCurScript], a
ld [wCurMapScript], a
.asm_41852
jp TextScriptEnd
PokemonTower2Text_6062d:
text_far _PokemonTower2Text_6062d
text_end
PokemonTower2Text_60632:
text_far _PokemonTower2Text_60632
text_end
PokemonTower2Text_60637:
text_far _PokemonTower2Text_60637
text_end
PokemonTower2Text_6063c:
text_far _PokemonTower2Text_6063c
text_end
PokemonTower2Text2:
text_far _PokemonTower2Text2
text_end