2018-06-24 07:09:41 -07:00
|
|
|
BattleCommand_Metronome:
|
2013-12-01 11:19:57 -08:00
|
|
|
; metronome
|
|
|
|
|
2015-11-09 13:41:09 -08:00
|
|
|
call ClearLastMove
|
|
|
|
call CheckUserIsCharging
|
2020-10-04 16:43:28 -07:00
|
|
|
jr nz, .charging
|
2013-12-01 11:19:57 -08:00
|
|
|
|
2020-08-29 17:35:49 -07:00
|
|
|
ld a, [wBattleAnimParam]
|
2013-12-01 11:19:57 -08:00
|
|
|
push af
|
2015-11-06 13:42:38 -08:00
|
|
|
call BattleCommand_LowerSub
|
2013-12-01 11:19:57 -08:00
|
|
|
pop af
|
2020-08-29 17:35:49 -07:00
|
|
|
ld [wBattleAnimParam], a
|
2013-12-01 11:19:57 -08:00
|
|
|
|
2020-10-04 16:43:28 -07:00
|
|
|
.charging
|
2015-11-09 13:41:09 -08:00
|
|
|
call LoadMoveAnim
|
2013-12-01 11:19:57 -08:00
|
|
|
|
2016-04-10 11:42:14 -07:00
|
|
|
.GetMove:
|
2013-12-01 11:19:57 -08:00
|
|
|
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
|
2014-06-14 00:34:57 -07:00
|
|
|
call GetBattleVarAddr
|
2013-12-01 11:19:57 -08:00
|
|
|
ld [hl], b
|
|
|
|
call UpdateMoveData
|
|
|
|
jp ResetTurn
|
|
|
|
|
2018-07-03 23:42:11 -07:00
|
|
|
INCLUDE "data/moves/metronome_exception_moves.asm"
|