diff options
Diffstat (limited to 'engine/battle/1.asm')
-rwxr-xr-x | engine/battle/1.asm | 105 |
1 files changed, 105 insertions, 0 deletions
diff --git a/engine/battle/1.asm b/engine/battle/1.asm new file mode 100755 index 00000000..91f7d3b1 --- /dev/null +++ b/engine/battle/1.asm @@ -0,0 +1,105 @@ +DrainHPEffect_: ; 783f (1:783f) + ld hl, W_DAMAGE ; $d0d7 + ld a, [hl] + srl a ; divide damage by 2 + ld [hli], a + ld a, [hl] + rr a + ld [hld], a + or [hl] + jr nz, .asm_784f + inc hl + inc [hl] +.asm_784f + ld hl, W_PLAYERMONCURHP ; $d015 + ld de, W_PLAYERMONMAXHP ; $d023 + ld a, [H_WHOSETURN] ; $fff3 + and a + jp z, Func_7861 + ld hl, W_ENEMYMONCURHP ; $cfe6 + ld de, W_ENEMYMONMAXHP ; $cff4 + +Func_7861: ; 7861 (1:7861) + ld bc, wHPBarOldHP+1 + ld a, [hli] + ld [bc], a + ld a, [hl] + dec bc + ld [bc], a + ld a, [de] + dec bc + ld [bc], a + inc de + ld a, [de] + dec bc + ld [bc], a + ld a, [$d0d8] + ld b, [hl] + add b + ld [hld], a + ld [wHPBarNewHP], a + ld a, [W_DAMAGE] ; $d0d7 + ld b, [hl] + adc b + ld [hli], a + ld [wHPBarNewHP+1], a + jr c, .asm_7890 + ld a, [hld] + ld b, a + ld a, [de] + dec de + sub b + ld a, [hli] + ld b, a + ld a, [de] + inc de + sbc b + jr nc, .asm_789c +.asm_7890 + ld a, [de] + ld [hld], a + ld [wHPBarNewHP], a + dec de + ld a, [de] + ld [hli], a + ld [wHPBarNewHP+1], a + inc de +.asm_789c + ld a, [H_WHOSETURN] ; $fff3 + and a + FuncCoord 10, 9 ; $c45e + ld hl, Coord + ld a, $1 + jr z, .asm_78aa + FuncCoord 2, 2 ; $c3ca + ld hl, Coord + xor a +.asm_78aa + ld [wListMenuID], a ; $cf94 + ld a, $48 + call Predef ; indirect jump to UpdateHPBar (fa1d (3:7a1d)) + ld a, $0 + call Predef ; indirect jump to Func_3cd60 (3cd60 (f:4d60)) + ld a, $49 + call Predef ; indirect jump to Func_3cdec (3cdec (f:4dec)) + callab ReadPlayerMonCurHPAndStatus + ld hl, SuckedHealthText ; $78dc + ld a, [H_WHOSETURN] ; $fff3 + and a + ld a, [W_PLAYERMOVEEFFECT] ; $cfd3 + jr z, .asm_78d2 + ld a, [W_ENEMYMOVEEFFECT] ; $cfcd +.asm_78d2 + cp DREAM_EATER_EFFECT + jr nz, .asm_78d9 + ld hl, DreamWasEatenText +.asm_78d9 + jp PrintText + +SuckedHealthText: ; 78dc (1:78dc) + TX_FAR _SuckedHealthText + db "@" + +DreamWasEatenText: ; 78e1 (1:78e1) + TX_FAR _DreamWasEatenText + db "@" |