You've already forked pokecrystal-board
mirror of
https://gitlab.com/xCrystal/pokecrystal-board.git
synced 2025-09-08 08:13:02 -07:00
hidden power type/power calculation
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user