MoreCalculateDamage (you pick a better name)...

hg-commit-id: d9d71c17cafc
This commit is contained in:
stag019 2012-03-22 03:19:55 -04:00
parent 694acb6a42
commit 1a80ed6019

View file

@ -39202,7 +39202,7 @@ INCBIN "baserom.gbc",$3d435,$274
call $6093 call $6093
jr z,.next11\@ jr z,.next11\@
call CalculateDamage call CalculateDamage
call $5F65 call MoreCalculateDamage
jp z,$574B jp z,$574B
call $63A5 call $63A5
call $6687 call $6687
@ -39769,7 +39769,7 @@ UnnamedText_3ddca: ; 0x3ddca
CalculateDamage: ; 0x3ddcf CalculateDamage: ; 0x3ddcf
xor a xor a
ld hl, $d0d7 ;damage to eventually inflict, intitialise to zero ld hl, W_DAMAGE ;damage to eventually inflict, intitialise to zero
ldi [hl], a ldi [hl], a
ld [hl], a ld [hl], a
ld hl, W_PLAYERMOVEPOWER ld hl, W_PLAYERMOVEPOWER
@ -39869,7 +39869,71 @@ CalculateDamage: ; 0x3ddcf
and a and a
ret ret
INCBIN "baserom.gbc",$3de75,$3e04f - $3de75 INCBIN "baserom.gbc",$3de75,$3df65 - $3de75
MoreCalculateDamage: ;$3df65
ld a, [$ff00+$f3] ;FFF3 decides which address to use
and a
ld a, [W_PLAYERMOVEEFFECT]
jr z, .next\@
ld a, [$cfcd]
.next\@
cp a, 7 ;effect to halve opponent defense [suicide moves]
jr nz, .next2\@
.halveDefense
srl c ;explosion and selfdestruct will halve the defense...
jr nz, .next2\@
inc c ;...with a minimum value of 1 [it is used as a divisor later on]
.next2\@
cp a, $1d
jr z, .next3\@
cp a, $1e
jr z, .next3\@
cp a, $26 ;OHKO?
jp z, $6016
ld a, d ;if attack base power zero then do nothing
and a
ret z
.next3\@
xor a
ld hl, $ff95 ;multiplication address
ldi [hl], a ;init to zero
ldi [hl], a
ld [hl], a
ld a, e
add a ;A = level *2
jr nc, .noCarry
.carry
push af
ld a, 1 ;add carry for level if needed
ld [hl], a ;level high byte [previously zero]
pop af
.noCarry
inc hl
ldi [hl], a ;level low byte
ld a, 5 ;[divisor] = 5
ldd [hl], a
push bc
ld b, 4
call Divide ;divide level by 5
pop bc
inc [hl] ;+2 [?]
inc [hl]
inc hl ;8bit multiplier
ld [hl], d
call Multiply ;*multiply by attack base power
ld [hl], b
call Multiply ;*multiply by attacker attack stat
ld [hl], c
ld b, 4
call Divide ;*divide by defender defense stat
ld [hl], $32
ld b, 4
call Divide ;divide above result by 50
ld hl, W_DAMAGE ;[stuff below I never got to, was only interested in stuff above]
INCBIN "baserom.gbc",$3dfc0,$3e04f - $3dfc0
; azure heights claims "the fastest pokémon (who are,not coincidentally, ; azure heights claims "the fastest pokémon (who are,not coincidentally,
; among the most popular) tend to CH about 20 to 25% of the time." ; among the most popular) tend to CH about 20 to 25% of the time."