No entiendo muy bien. Quieres que focus sash nunca se pierda y se pueda usar infinitas veces en el mismo combate, o que una vez usada no pueda usarse en ese mismo combate?
En caso de lo primero tienes que hacer algo asi:
push af
push bc
push hl
ld bc, 30 ; OT/PartyMon N Item - OT/PartyMon N-1 Item
ld a, (hBattleTurn)
and a
jr nz, .enemy
ld a, (curPartyMon)
inc a
ld hl, PartyMon1Item - 30
.loop: ; apuntar a la posicion del item del pokemon actualmente en combate
add hl, bc
dec a
jr nz, .loop
ld a, (hl)
cp FOCUS_SASH
jr nz, .terminar
call AICheckPlayerMaxHP
jr nc, .terminar
ld hl, PlayerSubStatus1
set ENDURE_BIT, (hl)
jr .terminar
.enemy:
ld a, (curOTMon)
inc a
ld hl, OTMon1Item - 30
.loop2: ; apuntar a la posicion del item del pokemon rival actualmente en combate
add hl, bc
dec a
jr nz, .loop2
ld a, (hl)
cp FOCUS_SASH
jr nz, .terminar
call AICheckEnemyMaxHP
jr nc, .terminar
ld hl, EnemySubStatus1
set ENDURE_BIT, (hl)
.terminar:
pop hl
pop bc
pop af
ret