ref: cf26f559857de7317900578c21c2e8727964d36c
dir: /engine/battle/move_effects/future_sight.asm/
BattleCommand_CheckFutureSight: ; checkfuturesight ld hl, wPlayerFutureSightCount ld de, wPlayerFutureSightDamage ldh a, [hBattleTurn] and a jr z, .ok ld hl, wEnemyFutureSightCount ld de, wEnemyFutureSightDamage .ok ld a, [hl] and a ret z cp 1 ret nz ld [hl], 0 ld a, [de] inc de ld [wCurDamage], a ld a, [de] ld [wCurDamage + 1], a ld b, futuresight_command jp SkipToBattleCommand BattleCommand_FutureSight: ; futuresight call CheckUserIsCharging jr nz, .AlreadyChargingFutureSight ld a, BATTLE_VARS_MOVE_ANIM call GetBattleVar ld b, a ld a, BATTLE_VARS_LAST_COUNTER_MOVE call GetBattleVarAddr ld [hl], b ld a, BATTLE_VARS_LAST_MOVE call GetBattleVarAddr ld [hl], b .AlreadyChargingFutureSight: ld hl, wPlayerFutureSightCount ldh a, [hBattleTurn] and a jr z, .GotFutureSightCount ld hl, wEnemyFutureSightCount .GotFutureSightCount: ld a, [hl] and a jr nz, .failed ld a, 4 ld [hl], a call BattleCommand_LowerSub call BattleCommand_MoveDelay ld hl, ForesawAttackText call StdBattleTextbox call BattleCommand_RaiseSub ld de, wPlayerFutureSightDamage ldh a, [hBattleTurn] and a jr z, .StoreDamage ld de, wEnemyFutureSightDamage .StoreDamage: ld hl, wCurDamage ld a, [hl] ld [de], a ld [hl], 0 inc hl inc de ld a, [hl] ld [de], a ld [hl], 0 jp EndMoveEffect .failed pop bc call ResetDamage call AnimateFailedMove call PrintButItFailed jp EndMoveEffect