ref: c1096d08f6620d83b382e5270af478301d40c7ef
dir: /battle/effects/curse.asm/
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 _GetBattleVar 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