summaryrefslogtreecommitdiff
path: root/engine/battle/effect_commands/mirror_move.asm
diff options
context:
space:
mode:
Diffstat (limited to 'engine/battle/effect_commands/mirror_move.asm')
-rw-r--r--engine/battle/effect_commands/mirror_move.asm52
1 files changed, 52 insertions, 0 deletions
diff --git a/engine/battle/effect_commands/mirror_move.asm b/engine/battle/effect_commands/mirror_move.asm
new file mode 100644
index 000000000..c4f208d77
--- /dev/null
+++ b/engine/battle/effect_commands/mirror_move.asm
@@ -0,0 +1,52 @@
+BattleCommand_MirrorMove: ; 373c9
+; mirrormove
+
+ call ClearLastMove
+
+ ld a, BATTLE_VARS_MOVE
+ call GetBattleVarAddr
+
+ ld a, BATTLE_VARS_LAST_COUNTER_MOVE_OPP
+ call GetBattleVar
+ and a
+ jr z, .failed
+
+ call CheckUserMove
+ jr nz, .use
+
+.failed
+ call AnimateFailedMove
+
+ ld hl, MirrorMoveFailedText
+ call StdBattleTextBox
+ jp EndMoveEffect
+
+.use
+ ld a, b
+ ld [hl], a
+ ld [wd265], a
+
+ push af
+ ld a, BATTLE_VARS_MOVE_ANIM
+ call GetBattleVarAddr
+ ld d, h
+ ld e, l
+ pop af
+
+ dec a
+ call GetMoveData
+ call GetMoveName
+ call CopyName1
+ call CheckUserIsCharging
+ jr nz, .done
+
+ ld a, [wKickCounter]
+ push af
+ call BattleCommand_LowerSub
+ pop af
+ ld [wKickCounter], a
+
+.done
+ call BattleCommand_MoveDelay
+ jp ResetTurn
+; 37418