Rename battle files and split move effects Part 1

1.asm, 4.asm, and 4_2.asm
This commit is contained in:
xCrystal 2015-04-01 11:23:27 +02:00
parent 9d93b5b630
commit e74dce24b4
14 changed files with 510 additions and 507 deletions

View file

@ -0,0 +1,34 @@
ConversionEffect_: ; 139a3 (4:79a3)
ld hl, wEnemyMonType1
ld de, wBattleMonType1
ld a, [H_WHOSETURN]
and a
ld a, [W_ENEMYBATTSTATUS1]
jr z, .asm_139b8
push hl
ld h, d
ld l, e
pop de
ld a, [W_PLAYERBATTSTATUS1]
.asm_139b8
bit Invulnerable, a ; is mon immune to typical attacks (dig/fly)
jr nz, PrintButItFailedText
ld a, [hli]
ld [de], a
inc de
ld a, [hl]
ld [de], a
ld hl, PlayCurrentMoveAnimation
call CallBankF
ld hl, ConvertedTypeText
jp PrintText
ConvertedTypeText: ; 139cd (4:79cd)
TX_FAR _ConvertedTypeText
db "@"
PrintButItFailedText: ; 139d2 (4:79d2)
ld hl, PrintButItFailedText_
CallBankF: ; 139d5 (4:79d5)
ld b, BANK(PrintButItFailedText_)
jp Bankswitch

View file

@ -0,0 +1,104 @@
DrainHPEffect_: ; 783f (1:783f)
ld hl, W_DAMAGE
ld a, [hl]
srl a ; divide damage by 2
ld [hli], a
ld a, [hl]
rr a
ld [hld], a
or [hl] ; is damage 0?
jr nz, .getAttackerHP
; if damage is 0, increase to 1 so that the attacker gains at least 1 HP
inc hl
inc [hl]
.getAttackerHP
ld hl, wBattleMonHP
ld de, wBattleMonMaxHP
ld a, [H_WHOSETURN]
and a
jp z, .addDamageToAttackerHP
ld hl, wEnemyMonHP
ld de, wEnemyMonMaxHP
.addDamageToAttackerHP
ld bc, wHPBarOldHP+1
; copy current HP to wHPBarOldHP
ld a, [hli]
ld [bc], a
ld a, [hl]
dec bc
ld [bc], a
; copy max HP to wHPBarMaxHP
ld a, [de]
dec bc
ld [bc], a
inc de
ld a, [de]
dec bc
ld [bc], a
; add damage to attacker's HP and copy new HP to wHPBarNewHP
ld a, [W_DAMAGE + 1]
ld b, [hl]
add b
ld [hld], a
ld [wHPBarNewHP], a
ld a, [W_DAMAGE]
ld b, [hl]
adc b
ld [hli], a
ld [wHPBarNewHP+1], a
jr c, .capToMaxHP ; if HP > 65,535, cap to max HP
; compare HP with max HP
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, .next
.capToMaxHP
ld a, [de]
ld [hld], a
ld [wHPBarNewHP], a
dec de
ld a, [de]
ld [hli], a
ld [wHPBarNewHP+1], a
inc de
.next
ld a, [H_WHOSETURN]
and a
hlCoord 10, 9
ld a, $1
jr z, .next2
hlCoord 2, 2
xor a
.next2
ld [wHPBarType], a
predef UpdateHPBar2
predef DrawPlayerHUDAndHPBar
predef DrawEnemyHUDAndHPBar
callab ReadPlayerMonCurHPAndStatus
ld hl, SuckedHealthText
ld a, [H_WHOSETURN]
and a
ld a, [W_PLAYERMOVEEFFECT]
jr z, .next3
ld a, [W_ENEMYMOVEEFFECT]
.next3
cp DREAM_EATER_EFFECT
jr nz, .printText
ld hl, DreamWasEatenText
.printText
jp PrintText
SuckedHealthText: ; 78dc (1:78dc)
TX_FAR _SuckedHealthText
db "@"
DreamWasEatenText: ; 78e1 (1:78e1)
TX_FAR _DreamWasEatenText
db "@"

View file

@ -0,0 +1,76 @@
HazeEffect_: ; 139da (4:79da)
ld a, $7
ld hl, wPlayerMonAttackMod
call ResetStatMods
ld hl, wEnemyMonAttackMod
call ResetStatMods
ld hl, wPlayerMonUnmodifiedAttack
ld de, wBattleMonAttack
call ResetStats
ld hl, wEnemyMonUnmodifiedAttack
ld de, wEnemyMonAttack
call ResetStats
ld hl, wEnemyMonStatus
ld de, wEnemySelectedMove
ld a, [H_WHOSETURN]
and a
jr z, .asm_13a09
ld hl, wBattleMonStatus
dec de
.asm_13a09
ld a, [hl]
ld [hl], $0
and $27
jr z, .asm_13a13
ld a, $ff
ld [de], a
.asm_13a13
xor a
ld [W_PLAYERDISABLEDMOVE], a
ld [W_ENEMYDISABLEDMOVE], a
ld hl, wccee
ld [hli], a
ld [hl], a
ld hl, W_PLAYERBATTSTATUS1
call CureStatuses
ld hl, W_ENEMYBATTSTATUS1
call CureStatuses
ld hl, PlayCurrentMoveAnimation
call CallBankF
ld hl, StatusChangesEliminatedText
jp PrintText
CureStatuses: ; 13a37 (4:7a37)
res Confused, [hl]
inc hl ; BATTSTATUS2
ld a, [hl]
and (1 << UsingRage) | (1 << NeedsToRecharge) | (1 << HasSubstituteUp) | (1 << 3) ; clear all but these from BATTSTATUS2
ld [hli], a ; BATTSTATUS3
ld a, [hl]
and %11110000 | (1 << Transformed) ; clear Bad Poison, Reflect and Light Screen statuses
ld [hl], a
ret
ResetStatMods: ; 13a43 (4:7a43)
ld b, $8
.loop
ld [hli], a
dec b
jr nz, .loop
ret
ResetStats: ; 13a4a (4:7a4a)
ld b, $8
.loop
ld a, [hli]
ld [de], a
inc de
dec b
jr nz, .loop
ret
StatusChangesEliminatedText: ; 13a53 (4:7a53)
TX_FAR _StatusChangesEliminatedText
db "@"

View file

@ -0,0 +1,68 @@
RecoilEffect_: ; 1392c (4:792c)
ld a, [H_WHOSETURN]
and a
ld a, [W_PLAYERMOVENUM]
ld hl, wBattleMonMaxHP
jr z, .asm_1393d
ld a, [W_ENEMYMOVENUM]
ld hl, wEnemyMonMaxHP
.asm_1393d
ld d, a
ld a, [W_DAMAGE]
ld b, a
ld a, [W_DAMAGE + 1]
ld c, a
srl b
rr c
ld a, d
cp STRUGGLE
jr z, .asm_13953
srl b
rr c
.asm_13953
ld a, b
or c
jr nz, .asm_13958
inc c
.asm_13958
ld a, [hli]
ld [wHPBarMaxHP+1], a
ld a, [hl]
ld [wHPBarMaxHP], a
push bc
ld bc, $fff2
add hl, bc
pop bc
ld a, [hl]
ld [wHPBarOldHP], a
sub c
ld [hld], a
ld [wHPBarNewHP], a
ld a, [hl]
ld [wHPBarOldHP+1], a
sbc b
ld [hl], a
ld [wHPBarNewHP+1], a
jr nc, .asm_13982
xor a
ld [hli], a
ld [hl], a
ld hl, wHPBarNewHP
ld [hli], a
ld [hl], a
.asm_13982
hlCoord 10, 9
ld a, [H_WHOSETURN]
and a
ld a, $1
jr z, .asm_13990
hlCoord 2, 2
xor a
.asm_13990
ld [wHPBarType], a
predef UpdateHPBar2
ld hl, HitWithRecoilText
jp PrintText
HitWithRecoilText: ; 1399e (4:799e)
TX_FAR _HitWithRecoilText
db "@"