pokecrystal-board/battle/effects/metronome.asm
yenatch 8e03321069 Blindly use wram labels for everything except mobile, part 1.
Wram banks and mobile make this tough, since any address can secretly be a ghost.

As usual, mobile completely disregards 99% of the codebase. It's been ignored in kind.
2015-02-10 00:53:03 -08:00

63 lines
803 B
NASM

BattleCommand34: ; 37418
; metronome
call Function372d8
call Function34548
jr nz, .asm_3742b
ld a, [wc689]
push af
call BattleCommand0a
pop af
ld [wc689], a
.asm_3742b
call Function37e36
.GetMove
call BattleRandom
; No invalid moves.
cp NUM_ATTACKS + 1
jr nc, .GetMove
; None of the moves in MetronomeExcepts.
push af
ld de, 1
ld hl, MetronomeExcepts
call IsInArray
pop bc
jr c, .GetMove
; No moves the user already has.
ld a, b
call CheckUserMove
jr z, .GetMove
ld a, BATTLE_VARS_MOVE
call GetBattleVarAddr
ld [hl], b
call UpdateMoveData
jp ResetTurn
; 37454
MetronomeExcepts: ; 37454
db NO_MOVE
db METRONOME
db STRUGGLE
db SKETCH
db MIMIC
db COUNTER
db MIRROR_COAT
db PROTECT
db DETECT
db ENDURE
db DESTINY_BOND
db SLEEP_TALK
db THIEF
db -1
; 37462