mirror of
https://github.com/thornAvery/kep-hack.git
synced 2026-02-23 07:32:19 +13:00
Add subdirectories to engine/ similar to pokecrystal
This commit is contained in:
parent
5559d51c86
commit
f275790aec
124 changed files with 342 additions and 346 deletions
112
engine/events/poison.asm
Normal file
112
engine/events/poison.asm
Normal file
|
|
@ -0,0 +1,112 @@
|
|||
ApplyOutOfBattlePoisonDamage:
|
||||
ld a, [wd730]
|
||||
add a
|
||||
jp c, .noBlackOut ; no black out if joypad states are being simulated
|
||||
ld a, [wPartyCount]
|
||||
and a
|
||||
jp z, .noBlackOut
|
||||
call IncrementDayCareMonExp
|
||||
ld a, [wStepCounter]
|
||||
and $3 ; is the counter a multiple of 4?
|
||||
jp nz, .noBlackOut ; only apply poison damage every fourth step
|
||||
ld [wWhichPokemon], a
|
||||
ld hl, wPartyMon1Status
|
||||
ld de, wPartySpecies
|
||||
.applyDamageLoop
|
||||
ld a, [hl]
|
||||
and (1 << PSN)
|
||||
jr z, .nextMon2 ; not poisoned
|
||||
dec hl
|
||||
dec hl
|
||||
ld a, [hld]
|
||||
ld b, a
|
||||
ld a, [hli]
|
||||
or b
|
||||
jr z, .nextMon ; already fainted
|
||||
; subtract 1 from HP
|
||||
ld a, [hl]
|
||||
dec a
|
||||
ld [hld], a
|
||||
inc a
|
||||
jr nz, .noBorrow
|
||||
; borrow 1 from upper byte of HP
|
||||
dec [hl]
|
||||
inc hl
|
||||
jr .nextMon
|
||||
.noBorrow
|
||||
ld a, [hli]
|
||||
or [hl]
|
||||
jr nz, .nextMon ; didn't faint from damage
|
||||
; the mon fainted from the damage
|
||||
push hl
|
||||
inc hl
|
||||
inc hl
|
||||
ld [hl], a
|
||||
ld a, [de]
|
||||
ld [wd11e], a
|
||||
push de
|
||||
ld a, [wWhichPokemon]
|
||||
ld hl, wPartyMonNicks
|
||||
call GetPartyMonName
|
||||
xor a
|
||||
ld [wJoyIgnore], a
|
||||
call EnableAutoTextBoxDrawing
|
||||
ld a, TEXT_MON_FAINTED
|
||||
ld [hSpriteIndexOrTextID], a
|
||||
call DisplayTextID
|
||||
pop de
|
||||
pop hl
|
||||
.nextMon
|
||||
inc hl
|
||||
inc hl
|
||||
.nextMon2
|
||||
inc de
|
||||
ld a, [de]
|
||||
inc a
|
||||
jr z, .applyDamageLoopDone
|
||||
ld bc, wPartyMon2 - wPartyMon1
|
||||
add hl, bc
|
||||
push hl
|
||||
ld hl, wWhichPokemon
|
||||
inc [hl]
|
||||
pop hl
|
||||
jr .applyDamageLoop
|
||||
.applyDamageLoopDone
|
||||
ld hl, wPartyMon1Status
|
||||
ld a, [wPartyCount]
|
||||
ld d, a
|
||||
ld e, 0
|
||||
.countPoisonedLoop
|
||||
ld a, [hl]
|
||||
and (1 << PSN)
|
||||
or e
|
||||
ld e, a
|
||||
ld bc, wPartyMon2 - wPartyMon1
|
||||
add hl, bc
|
||||
dec d
|
||||
jr nz, .countPoisonedLoop
|
||||
ld a, e
|
||||
and a ; are any party members poisoned?
|
||||
jr z, .skipPoisonEffectAndSound
|
||||
ld b, $2
|
||||
predef ChangeBGPalColor0_4Frames ; change BG white to dark grey for 4 frames
|
||||
ld a, SFX_POISONED
|
||||
call PlaySound
|
||||
.skipPoisonEffectAndSound
|
||||
predef AnyPartyAlive
|
||||
ld a, d
|
||||
and a
|
||||
jr nz, .noBlackOut
|
||||
call EnableAutoTextBoxDrawing
|
||||
ld a, TEXT_BLACKED_OUT
|
||||
ld [hSpriteIndexOrTextID], a
|
||||
call DisplayTextID
|
||||
ld hl, wd72e
|
||||
set 5, [hl]
|
||||
ld a, $ff
|
||||
jr .done
|
||||
.noBlackOut
|
||||
xor a
|
||||
.done
|
||||
ld [wOutOfBattleBlackout], a
|
||||
ret
|
||||
Loading…
Add table
Add a link
Reference in a new issue