summaryrefslogtreecommitdiff
path: root/engine/battle/move_effects/metronome.asm
diff options
context:
space:
mode:
authorRangi <remy.oukaour+rangi42@gmail.com>2018-01-26 11:36:00 -0500
committerRangi <remy.oukaour+rangi42@gmail.com>2018-01-26 11:36:00 -0500
commit0cf4eb68955952659b0e94fbeae0a75fe36255ae (patch)
treef38113626f149a5f71b01212a6440c0f8926b662 /engine/battle/move_effects/metronome.asm
parenta0cc4a33929f6aeb08a733c4a985c3bbb24ef55f (diff)
Move-unique effect commands consistently go in engine/battle/move_effects/
Diffstat (limited to 'engine/battle/move_effects/metronome.asm')
-rw-r--r--engine/battle/move_effects/metronome.asm46
1 files changed, 46 insertions, 0 deletions
diff --git a/engine/battle/move_effects/metronome.asm b/engine/battle/move_effects/metronome.asm
new file mode 100644
index 000000000..6835ab569
--- /dev/null
+++ b/engine/battle/move_effects/metronome.asm
@@ -0,0 +1,46 @@
+BattleCommand_Metronome: ; 37418
+; metronome
+
+ call ClearLastMove
+ call CheckUserIsCharging
+ jr nz, .asm_3742b
+
+ ld a, [wKickCounter]
+ push af
+ call BattleCommand_LowerSub
+ pop af
+ ld [wKickCounter], a
+
+.asm_3742b
+ call LoadMoveAnim
+
+.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
+
+
+INCLUDE "data/battle/metronome_exception_moves.asm"