diff options
author | Daniel Harding <33dannye@gmail.com> | 2020-05-16 21:42:24 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-05-16 21:42:24 -0500 |
commit | 8a924f1f783572ff395f617f99546b4c949c8b04 (patch) | |
tree | 1b6c7de331cb983256651b11b8adf413a3a434f1 /engine/battle/move_effects/present.asm | |
parent | 88d7e9a34a8b610b358cec1ccc6660634ca9ce80 (diff) | |
parent | ed94962edf1668aba3f60938e8a5ba8040e2a59c (diff) |
Merge pull request #30 from entrpntr/spring-cleaning
Spring Cleaning
Diffstat (limited to 'engine/battle/move_effects/present.asm')
-rw-r--r-- | engine/battle/move_effects/present.asm | 75 |
1 files changed, 75 insertions, 0 deletions
diff --git a/engine/battle/move_effects/present.asm b/engine/battle/move_effects/present.asm new file mode 100644 index 00000000..360a4172 --- /dev/null +++ b/engine/battle/move_effects/present.asm @@ -0,0 +1,75 @@ +BattleCommand_Present: +; present + + call BattleCommand_Stab + ld a, [wTypeMatchup] + and a + jp z, AnimateFailedMove + ld a, [wAttackMissed] + and a + jp nz, AnimateFailedMove + + push bc + call BattleRandom + ld b, a + ld hl, PresentPower + ld c, 0 +.next + ld a, [hli] + cp -1 + jr z, .heal_effect + cp b + jr nc, .got_power + inc c + inc hl + jr .next + +.got_power + ld a, c + ld [wPresentPower], a + call AnimateCurrentMoveEitherSide + ld d, [hl] + pop bc + ret + +.heal_effect + pop bc + ld a, 3 + ld [wPresentPower], a + call AnimateCurrentMove + call BattleCommand_SwitchTurn + ld hl, AICheckPlayerMaxHP + ldh a, [hBattleTurn] + and a + jr z, .got_hp_fn_pointer + ld hl, AICheckEnemyMaxHP +.got_hp_fn_pointer + ld a, BANK(AICheckPlayerMaxHP) ; aka BANK(AICheckEnemyMaxHP) + rst FarCall + jr c, .already_fully_healed + + ld hl, GetQuarterMaxHP + call CallBattleCore + call BattleCommand_SwitchTurn + ld hl, RestoreHP + call CallBattleCore + call BattleCommand_SwitchTurn + ld hl, RegainedHealthText + call StdBattleTextbox + call BattleCommand_SwitchTurn + call UpdateOpponentInParty + jr .do_animation + +.already_fully_healed + call BattleCommand_SwitchTurn + ; check battle scene + ld a, [wOptions] + add a + jr nc, .do_animation + call AnimateFailedMove + ld hl, CantReceiveGiftText + call StdBattleTextbox +.do_animation + jp EndMoveEffect + +INCLUDE "data/moves/present_power.asm" |