mirror of
https://github.com/thornAvery/kep-hack.git
synced 2025-09-17 02:40:50 +12:00
parent
b30b14f322
commit
155695cbfe
|
@ -13,6 +13,10 @@ BATTLE_TYPE_NORMAL EQU 0
|
||||||
BATTLE_TYPE_OLD_MAN EQU 1
|
BATTLE_TYPE_OLD_MAN EQU 1
|
||||||
BATTLE_TYPE_SAFARI EQU 2
|
BATTLE_TYPE_SAFARI EQU 2
|
||||||
|
|
||||||
|
; damage limits before type effectiveness
|
||||||
|
MIN_NEUTRAL_DAMAGE EQU 2
|
||||||
|
MAX_NEUTRAL_DAMAGE EQU 999
|
||||||
|
|
||||||
; fixed damage constants
|
; fixed damage constants
|
||||||
SONICBOOM_DAMAGE EQU 20
|
SONICBOOM_DAMAGE EQU 20
|
||||||
DRAGON_RAGE_DAMAGE EQU 40
|
DRAGON_RAGE_DAMAGE EQU 40
|
||||||
|
|
|
@ -4485,37 +4485,42 @@ CalculateDamage:
|
||||||
ld b, 4
|
ld b, 4
|
||||||
call Divide
|
call Divide
|
||||||
|
|
||||||
|
; Update wCurDamage.
|
||||||
|
; Capped at MAX_NEUTRAL_DAMAGE - MIN_NEUTRAL_DAMAGE: 999 - 2 = 997.
|
||||||
ld hl, wDamage
|
ld hl, wDamage
|
||||||
ld b, [hl]
|
ld b, [hl]
|
||||||
ld a, [hQuotient + 3]
|
ld a, [hQuotient + 3]
|
||||||
add b
|
add b
|
||||||
ld [hQuotient + 3], a
|
ld [hQuotient + 3], a
|
||||||
jr nc, .asm_3dfd0
|
jr nc, .dont_cap_1
|
||||||
|
|
||||||
ld a, [hQuotient + 2]
|
ld a, [hQuotient + 2]
|
||||||
inc a
|
inc a
|
||||||
ld [hQuotient + 2], a
|
ld [hQuotient + 2], a
|
||||||
and a
|
and a
|
||||||
jr z, .asm_3e004
|
jr z, .cap
|
||||||
|
|
||||||
.asm_3dfd0
|
.dont_cap_1
|
||||||
ld a, [hQuotient]
|
ld a, [hQuotient]
|
||||||
ld b, a
|
ld b, a
|
||||||
ld a, [hQuotient + 1]
|
ld a, [hQuotient + 1]
|
||||||
or a
|
or a
|
||||||
jr nz, .asm_3e004
|
jr nz, .cap
|
||||||
|
|
||||||
ld a, [hQuotient + 2]
|
ld a, [hQuotient + 2]
|
||||||
cp 998 / $100
|
cp (MAX_NEUTRAL_DAMAGE - MIN_NEUTRAL_DAMAGE + 1) / $100
|
||||||
jr c, .asm_3dfe8
|
jr c, .dont_cap_2
|
||||||
cp 998 / $100 + 1
|
|
||||||
jr nc, .asm_3e004
|
|
||||||
ld a, [hQuotient + 3]
|
|
||||||
cp 998 % $100
|
|
||||||
jr nc, .asm_3e004
|
|
||||||
|
|
||||||
.asm_3dfe8
|
cp (MAX_NEUTRAL_DAMAGE - MIN_NEUTRAL_DAMAGE + 1) / $100 + 1
|
||||||
|
jr nc, .cap
|
||||||
|
|
||||||
|
ld a, [hQuotient + 3]
|
||||||
|
cp (MAX_NEUTRAL_DAMAGE - MIN_NEUTRAL_DAMAGE + 1) % $100
|
||||||
|
jr nc, .cap
|
||||||
|
|
||||||
|
.dont_cap_2
|
||||||
inc hl
|
inc hl
|
||||||
|
|
||||||
ld a, [hQuotient + 3]
|
ld a, [hQuotient + 3]
|
||||||
ld b, [hl]
|
ld b, [hl]
|
||||||
add b
|
add b
|
||||||
|
@ -4525,36 +4530,37 @@ CalculateDamage:
|
||||||
ld b, [hl]
|
ld b, [hl]
|
||||||
adc b
|
adc b
|
||||||
ld [hl], a
|
ld [hl], a
|
||||||
jr c, .asm_3e004
|
jr c, .cap
|
||||||
|
|
||||||
ld a, [hl]
|
ld a, [hl]
|
||||||
cp 998 / $100
|
cp (MAX_NEUTRAL_DAMAGE - MIN_NEUTRAL_DAMAGE + 1) / $100
|
||||||
jr c, .asm_3e00a
|
jr c, .dont_cap_3
|
||||||
cp 998 / $100 + 1
|
|
||||||
jr nc, .asm_3e004
|
cp (MAX_NEUTRAL_DAMAGE - MIN_NEUTRAL_DAMAGE + 1) / $100 + 1
|
||||||
|
jr nc, .cap
|
||||||
|
|
||||||
inc hl
|
inc hl
|
||||||
ld a, [hld]
|
ld a, [hld]
|
||||||
cp 998 % $100
|
cp (MAX_NEUTRAL_DAMAGE - MIN_NEUTRAL_DAMAGE + 1) % $100
|
||||||
jr c, .asm_3e00a
|
jr c, .dont_cap_3
|
||||||
|
|
||||||
.asm_3e004
|
.cap
|
||||||
; cap at 997
|
ld a, (MAX_NEUTRAL_DAMAGE - MIN_NEUTRAL_DAMAGE) / $100
|
||||||
ld a, 997 / $100
|
|
||||||
ld [hli], a
|
ld [hli], a
|
||||||
ld a, 997 % $100
|
ld a, (MAX_NEUTRAL_DAMAGE - MIN_NEUTRAL_DAMAGE) % $100
|
||||||
ld [hld], a
|
ld [hld], a
|
||||||
|
|
||||||
.asm_3e00a
|
.dont_cap_3
|
||||||
; add 2
|
; Add back MIN_NEUTRAL_DAMAGE (capping at 999).
|
||||||
inc hl
|
inc hl
|
||||||
ld a, [hl]
|
ld a, [hl]
|
||||||
add 2
|
add MIN_NEUTRAL_DAMAGE
|
||||||
ld [hld], a
|
ld [hld], a
|
||||||
jr nc, .done
|
jr nc, .dont_floor
|
||||||
inc [hl]
|
inc [hl]
|
||||||
|
.dont_floor
|
||||||
|
|
||||||
.done
|
; Returns nz and nc.
|
||||||
; minimum damage is 1
|
|
||||||
ld a, 1
|
ld a, 1
|
||||||
and a
|
and a
|
||||||
ret
|
ret
|
||||||
|
|
Loading…
Reference in a new issue