2015-04-01 09:23:27 +00:00
|
|
|
RecoilEffect_: ; 1392c (4:792c)
|
|
|
|
ld a, [H_WHOSETURN]
|
|
|
|
and a
|
2015-08-31 02:38:41 +00:00
|
|
|
ld a, [wPlayerMoveNum]
|
2015-04-01 09:23:27 +00:00
|
|
|
ld hl, wBattleMonMaxHP
|
2015-04-08 10:15:08 +00:00
|
|
|
jr z, .recoilEffect
|
2015-08-31 02:38:41 +00:00
|
|
|
ld a, [wEnemyMoveNum]
|
2015-04-01 09:23:27 +00:00
|
|
|
ld hl, wEnemyMonMaxHP
|
2015-04-08 10:15:08 +00:00
|
|
|
.recoilEffect
|
2015-04-01 09:23:27 +00:00
|
|
|
ld d, a
|
2015-08-31 02:38:41 +00:00
|
|
|
ld a, [wDamage]
|
2015-04-01 09:23:27 +00:00
|
|
|
ld b, a
|
2015-08-31 02:38:41 +00:00
|
|
|
ld a, [wDamage + 1]
|
2015-04-01 09:23:27 +00:00
|
|
|
ld c, a
|
|
|
|
srl b
|
|
|
|
rr c
|
|
|
|
ld a, d
|
2015-04-08 10:15:08 +00:00
|
|
|
cp STRUGGLE ; struggle deals 50% recoil damage
|
|
|
|
jr z, .gotRecoilDamage
|
2015-04-01 09:23:27 +00:00
|
|
|
srl b
|
|
|
|
rr c
|
2015-04-08 10:15:08 +00:00
|
|
|
.gotRecoilDamage
|
2015-04-01 09:23:27 +00:00
|
|
|
ld a, b
|
|
|
|
or c
|
2015-04-08 10:15:08 +00:00
|
|
|
jr nz, .updateHP
|
|
|
|
inc c ; minimum recoil damage is 1
|
|
|
|
.updateHP
|
|
|
|
; substract HP from user due to the recoil damage
|
2015-04-01 09:23:27 +00:00
|
|
|
ld a, [hli]
|
|
|
|
ld [wHPBarMaxHP+1], a
|
|
|
|
ld a, [hl]
|
|
|
|
ld [wHPBarMaxHP], a
|
|
|
|
push bc
|
2015-04-08 10:15:08 +00:00
|
|
|
ld bc, wBattleMonHP - wBattleMonMaxHP
|
2015-04-01 09:23:27 +00:00
|
|
|
add hl, bc
|
|
|
|
pop bc
|
|
|
|
ld a, [hl]
|
|
|
|
ld [wHPBarOldHP], a
|
|
|
|
sub c
|
|
|
|
ld [hld], a
|
|
|
|
ld [wHPBarNewHP], a
|
|
|
|
ld a, [hl]
|
|
|
|
ld [wHPBarOldHP+1], a
|
|
|
|
sbc b
|
|
|
|
ld [hl], a
|
|
|
|
ld [wHPBarNewHP+1], a
|
2015-04-08 10:15:08 +00:00
|
|
|
jr nc, .getHPBarCoords
|
|
|
|
; if recoil damage is higher than the Pokemon's HP, set its HP to 0
|
2015-06-11 22:41:33 +00:00
|
|
|
xor a
|
2015-04-01 09:23:27 +00:00
|
|
|
ld [hli], a
|
|
|
|
ld [hl], a
|
|
|
|
ld hl, wHPBarNewHP
|
|
|
|
ld [hli], a
|
|
|
|
ld [hl], a
|
2015-04-08 10:15:08 +00:00
|
|
|
.getHPBarCoords
|
2015-07-18 20:52:03 +00:00
|
|
|
coord hl, 10, 9
|
2015-04-01 09:23:27 +00:00
|
|
|
ld a, [H_WHOSETURN]
|
|
|
|
and a
|
|
|
|
ld a, $1
|
2015-04-08 10:15:08 +00:00
|
|
|
jr z, .updateHPBar
|
2015-07-18 20:52:03 +00:00
|
|
|
coord hl, 2, 2
|
2015-04-01 09:23:27 +00:00
|
|
|
xor a
|
2015-04-08 10:15:08 +00:00
|
|
|
.updateHPBar
|
2015-04-01 09:23:27 +00:00
|
|
|
ld [wHPBarType], a
|
|
|
|
predef UpdateHPBar2
|
|
|
|
ld hl, HitWithRecoilText
|
|
|
|
jp PrintText
|
|
|
|
HitWithRecoilText: ; 1399e (4:799e)
|
|
|
|
TX_FAR _HitWithRecoilText
|
|
|
|
db "@"
|