split curse effect into battle/effects/curse.asm

This commit is contained in:
yenatch 2013-09-09 18:43:22 -04:00
parent d3fa77253a
commit 110477cd9e
2 changed files with 99 additions and 97 deletions

View File

@ -9542,103 +9542,7 @@ BattleCommand53: ; 37563
; 37588
BattleCommand54: ; 37588
; curse
ld de, BattleMonType1
ld bc, PlayerStatLevels
ld a, [hBattleTurn]
and a
jr z, .go
ld de, EnemyMonType1
ld bc, EnemyStatLevels
.go
; Curse is different for Ghost-types.
ld a, [de]
cp GHOST
jr z, .ghost
inc de
ld a, [de]
cp GHOST
jr z, .ghost
; If no stats can be increased, don't.
; Attack
ld a, [bc]
cp 13 ; max
jr c, .raise
; Defense
inc bc
ld a, [bc]
cp 13 ; max
jr nc, .cantraise
.raise
; Raise Attack and Defense, and lower Speed.
ld a, $1
ld [$c689], a
call Function0x37e01
ld a, $2
call Function0x36532
call SwitchTurn
call BattleCommand8d
call ResetMiss
call SwitchTurn
call BattleCommand70
call BattleCommand8c
call ResetMiss
call BattleCommand71
jp BattleCommand8c
.ghost
; Cut HP in half and put a curse on the opponent.
call CheckHiddenOpponent
jr nz, .failed
call CheckSubstituteOpp
jr nz, .failed
ld a, BATTLE_VARS_SUBSTATUS1_OPP
call GetBattleVarPair
bit 1, [hl]
jr nz, .failed
set 1, [hl]
call Function0x37e01
ld hl, GetHalfMaxHP
call CallBankF
ld hl, Function3cc3f
call CallBankF
call UpdateUserInParty
ld hl, PutACurseText
jp StdBattleTextBox
.failed
call Function0x37e77
jp PrintButItFailed
.cantraise
; Can't raise either stat.
ld b, $8 ; ABILITY
call GetStatName
call Function0x37e77
ld hl, WontRiseAnymoreText
jp StdBattleTextBox
; 37618
INCLUDE "battle/effects/curse.asm"
BattleCommand55: ; 37618

98
battle/effects/curse.asm Normal file
View File

@ -0,0 +1,98 @@
BattleCommand54: ; 37588
; curse
ld de, BattleMonType1
ld bc, PlayerStatLevels
ld a, [hBattleTurn]
and a
jr z, .go
ld de, EnemyMonType1
ld bc, EnemyStatLevels
.go
; Curse is different for Ghost-types.
ld a, [de]
cp GHOST
jr z, .ghost
inc de
ld a, [de]
cp GHOST
jr z, .ghost
; If no stats can be increased, don't.
; Attack
ld a, [bc]
cp 13 ; max
jr c, .raise
; Defense
inc bc
ld a, [bc]
cp 13 ; max
jr nc, .cantraise
.raise
; Raise Attack and Defense, and lower Speed.
ld a, $1
ld [$c689], a
call Function0x37e01
ld a, $2
call Function0x36532
call SwitchTurn
call BattleCommand8d
call ResetMiss
call SwitchTurn
call BattleCommand70
call BattleCommand8c
call ResetMiss
call BattleCommand71
jp BattleCommand8c
.ghost
; Cut HP in half and put a curse on the opponent.
call CheckHiddenOpponent
jr nz, .failed
call CheckSubstituteOpp
jr nz, .failed
ld a, BATTLE_VARS_SUBSTATUS1_OPP
call GetBattleVarPair
bit 1, [hl]
jr nz, .failed
set 1, [hl]
call Function0x37e01
ld hl, GetHalfMaxHP
call CallBankF
ld hl, Function3cc3f
call CallBankF
call UpdateUserInParty
ld hl, PutACurseText
jp StdBattleTextBox
.failed
call Function0x37e77
jp PrintButItFailed
.cantraise
; Can't raise either stat.
ld b, $8 ; ABILITY
call GetStatName
call Function0x37e77
ld hl, WontRiseAnymoreText
jp StdBattleTextBox
; 37618