mirror of
https://gitlab.com/xCrystal/pokecrystal-board.git
synced 2024-09-09 09:51:34 -07:00
hidden power type/power calculation
This commit is contained in:
parent
94e9a3f764
commit
14160a180f
@ -10623,11 +10623,7 @@ BattleCommand6d: ; 37be8
|
||||
ld a, [AttackMissed]
|
||||
and a
|
||||
ret nz
|
||||
|
||||
ld a, $3e
|
||||
ld hl, $7ced
|
||||
rst FarCall
|
||||
|
||||
callba GetHiddenPower
|
||||
ret
|
||||
; 37bf4
|
||||
|
||||
|
108
battle/hidden_power.asm
Normal file
108
battle/hidden_power.asm
Normal file
@ -0,0 +1,108 @@
|
||||
GetHiddenPower: ; fbced
|
||||
; Override Hidden Power's type and power based on the actor's DVs.
|
||||
|
||||
ld hl, BattleMonDVs
|
||||
ld a, [hBattleTurn]
|
||||
and a
|
||||
jr z, .GotDVs
|
||||
ld hl, EnemyMonDVs
|
||||
.GotDVs
|
||||
|
||||
|
||||
; Power:
|
||||
|
||||
; Take the top bit from...
|
||||
|
||||
; Atk
|
||||
ld a, [hl]
|
||||
swap a
|
||||
and 8
|
||||
ld b, a
|
||||
; Def
|
||||
ld a, [hli]
|
||||
and 8
|
||||
srl a
|
||||
or b
|
||||
ld b, a
|
||||
; Spd
|
||||
ld a, [hl]
|
||||
swap a
|
||||
and 8
|
||||
srl a
|
||||
srl a
|
||||
or b
|
||||
ld b, a
|
||||
; Spc
|
||||
ld a, [hl]
|
||||
and 8
|
||||
srl a
|
||||
srl a
|
||||
srl a
|
||||
or b
|
||||
ld b, a
|
||||
|
||||
; * 5
|
||||
add a
|
||||
add a
|
||||
add b
|
||||
ld b, a
|
||||
|
||||
; + (Spc & 3)
|
||||
ld a, [hld]
|
||||
and 3
|
||||
add b
|
||||
|
||||
; / 2
|
||||
srl a
|
||||
|
||||
; + 30
|
||||
add 30
|
||||
; + 1
|
||||
inc a
|
||||
ld d, a
|
||||
|
||||
|
||||
; Type:
|
||||
|
||||
; Def & 3
|
||||
ld a, [hl]
|
||||
and 3
|
||||
ld b, a
|
||||
|
||||
; + (Atk & 3) << 2
|
||||
ld a, [hl]
|
||||
and 3 << 4
|
||||
swap a
|
||||
add a
|
||||
add a
|
||||
or b
|
||||
|
||||
; Skip Normal
|
||||
inc a
|
||||
|
||||
; Skip type 6 (unused)
|
||||
cp 6
|
||||
jr c, .GotType
|
||||
inc a
|
||||
|
||||
; Skip unused types between Steel and Fire
|
||||
cp STEEL + 1
|
||||
jr c, .GotType
|
||||
add FIRE - (STEEL + 1)
|
||||
|
||||
|
||||
.GotType
|
||||
push af
|
||||
ld a, BATTLE_VARS_MOVE_TYPE
|
||||
call GetBattleVarPair
|
||||
pop af
|
||||
ld [hl], a
|
||||
|
||||
ld a, d
|
||||
push af
|
||||
callba BattleCommand06
|
||||
pop af
|
||||
ld d, a
|
||||
ret
|
||||
; fbd54
|
||||
|
6
main.asm
6
main.asm
@ -66168,7 +66168,11 @@ INCBIN "baserom.gbc", $fba2e, $fbbfc - $fba2e
|
||||
|
||||
INCLUDE "battle/magikarp_length.asm"
|
||||
|
||||
INCBIN "baserom.gbc", $fbccf, $fbda4 - $fbccf
|
||||
INCBIN "baserom.gbc", $fbccf, $fbced - $fbccf
|
||||
|
||||
INCLUDE "battle/hidden_power.asm"
|
||||
|
||||
INCBIN "baserom.gbc", $fbd54, $fbda4 - $fbd54
|
||||
|
||||
|
||||
DoWeatherModifiers: ; fbda4
|
||||
|
Loading…
Reference in New Issue
Block a user