Split battle/ into data/ and engine/ components
This commit is contained in:
116
engine/battle/effect_commands/thief.asm
Normal file
116
engine/battle/effect_commands/thief.asm
Normal file
@@ -0,0 +1,116 @@
|
||||
BattleCommand_Thief: ; 37492
|
||||
; thief
|
||||
|
||||
ld a, [hBattleTurn]
|
||||
and a
|
||||
jr nz, .enemy
|
||||
|
||||
; The player needs to be able to steal an item.
|
||||
|
||||
call .playeritem
|
||||
ld a, [hl]
|
||||
and a
|
||||
ret nz
|
||||
|
||||
; The enemy needs to have an item to steal.
|
||||
|
||||
call .enemyitem
|
||||
ld a, [hl]
|
||||
and a
|
||||
ret z
|
||||
|
||||
; Can't steal mail.
|
||||
|
||||
ld [wd265], a
|
||||
ld d, a
|
||||
farcall ItemIsMail
|
||||
ret c
|
||||
|
||||
ld a, [EffectFailed]
|
||||
and a
|
||||
ret nz
|
||||
|
||||
ld a, [wLinkMode]
|
||||
and a
|
||||
jr z, .stealenemyitem
|
||||
|
||||
ld a, [wBattleMode]
|
||||
dec a
|
||||
ret z
|
||||
|
||||
.stealenemyitem
|
||||
call .enemyitem
|
||||
xor a
|
||||
ld [hl], a
|
||||
ld [de], a
|
||||
|
||||
call .playeritem
|
||||
ld a, [wd265]
|
||||
ld [hl], a
|
||||
ld [de], a
|
||||
jr .stole
|
||||
|
||||
|
||||
.enemy
|
||||
|
||||
; The enemy can't already have an item.
|
||||
|
||||
call .enemyitem
|
||||
ld a, [hl]
|
||||
and a
|
||||
ret nz
|
||||
|
||||
; The player must have an item to steal.
|
||||
|
||||
call .playeritem
|
||||
ld a, [hl]
|
||||
and a
|
||||
ret z
|
||||
|
||||
; Can't steal mail!
|
||||
|
||||
ld [wd265], a
|
||||
ld d, a
|
||||
farcall ItemIsMail
|
||||
ret c
|
||||
|
||||
ld a, [EffectFailed]
|
||||
and a
|
||||
ret nz
|
||||
|
||||
; If the enemy steals your item,
|
||||
; it's gone for good if you don't get it back.
|
||||
|
||||
call .playeritem
|
||||
xor a
|
||||
ld [hl], a
|
||||
ld [de], a
|
||||
|
||||
call .enemyitem
|
||||
ld a, [wd265]
|
||||
ld [hl], a
|
||||
ld [de], a
|
||||
|
||||
|
||||
.stole
|
||||
call GetItemName
|
||||
ld hl, StoleText
|
||||
jp StdBattleTextBox
|
||||
|
||||
|
||||
.playeritem
|
||||
ld a, 1
|
||||
call BattlePartyAttr
|
||||
ld d, h
|
||||
ld e, l
|
||||
ld hl, BattleMonItem
|
||||
ret
|
||||
|
||||
.enemyitem
|
||||
ld a, 1
|
||||
call OTPartyAttr
|
||||
ld d, h
|
||||
ld e, l
|
||||
ld hl, EnemyMonItem
|
||||
ret
|
||||
; 37517
|
Reference in New Issue
Block a user