pokecrystal-board/engine/battle/move_effects/present.asm

88 lines
1.6 KiB
NASM
Raw Permalink Normal View History

2018-06-24 07:09:41 -07:00
BattleCommand_Present:
; BUG: Present damage is incorrect in link battles (see docs/bugs_and_glitches.md)
2015-11-06 19:36:06 -08:00
ld a, [wLinkMode]
cp LINK_COLOSSEUM
jr z, .colosseum_skippush
push bc
push de
.colosseum_skippush
call BattleCommand_Stab
ld a, [wLinkMode]
cp LINK_COLOSSEUM
jr z, .colosseum_skippop
pop de
pop bc
.colosseum_skippop
ld a, [wTypeMatchup]
and a
jp z, AnimateFailedMove
2018-01-23 14:39:09 -08:00
ld a, [wAttackMissed]
2015-11-06 19:36:06 -08:00
and a
jp nz, AnimateFailedMove
push bc
call BattleRandom
ld b, a
2018-01-25 18:34:42 -08:00
ld hl, PresentPower
2015-11-06 19:36:06 -08:00
ld c, 0
.next
ld a, [hli]
2018-01-10 19:53:42 -08:00
cp -1
2018-06-24 18:39:23 -07:00
jr z, .heal_effect
2015-11-06 19:36:06 -08:00
cp b
2018-06-24 18:39:23 -07:00
jr nc, .got_power
2015-11-06 19:36:06 -08:00
inc c
inc hl
2018-06-24 18:39:23 -07:00
jr .next
2015-11-06 19:36:06 -08:00
.got_power
ld a, c
ld [wBattleAnimParam], a
2015-11-06 19:36:06 -08:00
call AnimateCurrentMoveEitherSide
ld d, [hl]
pop bc
ret
.heal_effect
pop bc
ld a, $3 ; heal animation
ld [wBattleAnimParam], a
2015-11-06 19:36:06 -08:00
call AnimateCurrentMove
call BattleCommand_SwitchTurn
ld hl, AICheckPlayerMaxHP
ldh a, [hBattleTurn]
2015-11-06 19:36:06 -08:00
and a
2018-06-24 18:39:23 -07:00
jr z, .got_hp_fn_pointer
2015-11-06 19:36:06 -08:00
ld hl, AICheckEnemyMaxHP
.got_hp_fn_pointer
ld a, BANK(AICheckPlayerMaxHP) ; aka BANK(AICheckEnemyMaxHP)
2015-11-06 19:36:06 -08:00
rst FarCall
2018-06-24 18:39:23 -07:00
jr c, .already_fully_healed
2015-11-06 19:36:06 -08:00
ld hl, GetQuarterMaxHP
call CallBattleCore
call BattleCommand_SwitchTurn
ld hl, RestoreHP
call CallBattleCore
call BattleCommand_SwitchTurn
ld hl, RegainedHealthText
2019-04-08 05:15:10 -07:00
call StdBattleTextbox
2015-11-06 19:36:06 -08:00
call BattleCommand_SwitchTurn
call UpdateOpponentInParty
2018-06-24 18:39:23 -07:00
jr .do_animation
2015-11-06 19:36:06 -08:00
.already_fully_healed
call BattleCommand_SwitchTurn
call _CheckBattleScene
2018-06-24 18:39:23 -07:00
jr nc, .do_animation
2015-11-06 19:36:06 -08:00
call AnimateFailedMove
ld hl, PresentFailedText
2019-04-08 05:15:10 -07:00
call StdBattleTextbox
2015-11-06 19:36:06 -08:00
.do_animation
jp EndMoveEffect
2018-01-26 08:01:15 -08:00
INCLUDE "data/moves/present_power.asm"