summaryrefslogtreecommitdiff
path: root/battle/effect_commands.asm
diff options
context:
space:
mode:
Diffstat (limited to 'battle/effect_commands.asm')
-rw-r--r--battle/effect_commands.asm207
1 files changed, 4 insertions, 203 deletions
diff --git a/battle/effect_commands.asm b/battle/effect_commands.asm
index 5ac336ed9..87196653a 100644
--- a/battle/effect_commands.asm
+++ b/battle/effect_commands.asm
@@ -9542,212 +9542,13 @@ BattleCommand53: ; 37563
; 37588
-BattleCommand54: ; 37588
-; curse
+INCLUDE "battle/effects/curse.asm"
- 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
-
-
-BattleCommand55: ; 37618
-; protect
-
- call Function0x3762c
- ret c
- ld a, BATTLE_VARS_SUBSTATUS1
- call GetBattleVarPair
- set 2, [hl]
- call Function0x37e01
- ld hl, ProtectedItselfText
- jp StdBattleTextBox
-; 3762c
-
-
-Function0x3762c: ; 3762c
- ld de, $c679
- ld a, [hBattleTurn]
- and a
- jr z, .asm_37637
- ld de, $c681
-
-.asm_37637
- call Function0x36abf
- jr nz, .asm_37665
-
- ld a, $3
- call CleanGetBattleVarPair
- bit 4, a
- jr nz, .asm_37665
-
- ld b, $ff
- ld a, [de]
- ld c, a
-.asm_37649
- ld a, c
- and a
- jr z, .asm_37656
-
- dec c
- srl b
- ld a, b
- and a
- jr nz, .asm_37649
+INCLUDE "battle/effects/protect.asm"
- jr .asm_37665
+INCLUDE "battle/effects/endure.asm"
-.asm_37656
- call BattleRandom
- and a
- jr z, .asm_37656
-
- dec a
- cp b
- jr nc, .asm_37665
-
- ld a, [de]
- inc a
- ld [de], a
- and a
- ret
-
-.asm_37665
- xor a
- ld [de], a
- call Function0x37e77
- call PrintButItFailed
- scf
- ret
-; 3766f
-
-
-BattleCommand5a: ; 3766f
-; endure
-
- call Function0x3762c
- ret c
-
- ld a, BATTLE_VARS_SUBSTATUS1
- call GetBattleVarPair
- set SUBSTATUS_ENDURE, [hl]
- call Function0x37e01
- ld hl, BracedItselfText
- jp StdBattleTextBox
-; 37683
-
-
-BattleCommand56: ; 37683
-; spikes
-
- ld hl, EnemyScreens
- ld a, [hBattleTurn]
- and a
- jr z, .asm_3768e
- ld hl, PlayerScreens
-
-.asm_3768e
- bit 0, [hl]
- jr nz, .failed
-
- set 0, [hl]
- call Function0x37e01
- ld hl, SpikesText
- jp StdBattleTextBox
-
-.failed
- jp Function0x37354
-; 376a0
+INCLUDE "battle/effects/spikes.asm"
BattleCommand57: ; 376a0