diff options
Diffstat (limited to 'engine/battle/move_effects/false_swipe.asm')
-rw-r--r-- | engine/battle/move_effects/false_swipe.asm | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/engine/battle/move_effects/false_swipe.asm b/engine/battle/move_effects/false_swipe.asm new file mode 100644 index 00000000..e2e0c6f1 --- /dev/null +++ b/engine/battle/move_effects/false_swipe.asm @@ -0,0 +1,48 @@ +BattleCommand_FalseSwipe: +; falseswipe + +; Makes sure wCurDamage < MonHP + + ld hl, wEnemyMonHP + ldh a, [hBattleTurn] + and a + jr z, .got_hp + ld hl, wBattleMonHP +.got_hp + ld de, wCurDamage + ld c, 2 + push hl + push de + call CompareBytes + pop de + pop hl + jr c, .done + + ld a, [hli] + ld [de], a + inc de + ld a, [hl] + dec a + ld [de], a + + inc a + jr nz, .okay + dec de + ld a, [de] + dec a + ld [de], a +.okay + + ld a, [wCriticalHit] + cp 2 + jr nz, .carry + xor a + ld [wCriticalHit], a + +.carry + scf + ret + +.done + and a + ret |