ref: 5e4fa42fa7e2405760efc77f8c2e7167e67990ac
dir: /engine/battle/effect_commands/present.asm/
BattleCommand_Present: ; 37874 ; present 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 ld a, [AttackMissed] 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 ; 378a4 $11 cp b jr nc, .got_power ; 378a7 $4 inc c inc hl jr .next ; 378ab $f4 .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 ld a, [hBattleTurn] and a jr z, .got_hp_fn_pointer ; 378c9 $3 ld hl, AICheckEnemyMaxHP .got_hp_fn_pointer ld a, BANK(AICheckPlayerMaxHP) rst FarCall jr c, .already_fully_healed ; 378d1 $20 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 ; 378f1 $11 .already_fully_healed call BattleCommand_SwitchTurn call _CheckBattleScene jr nc, .do_animation ; 378f9 $9 call AnimateFailedMove ld hl, RefusedGiftText call StdBattleTextBox .do_animation jp EndMoveEffect .PresentPower: db 40 percent, 40 db 70 percent + 1, 80 db 80 percent, 120 db -1 ; end ; 3790e