pokered/engine/battle/end_of_battle.asm

89 lines
1.6 KiB
NASM
Raw Normal View History

2016-06-12 00:24:04 +00:00
EndOfBattle:
ld a, [wLinkState]
cp LINK_STATE_BATTLING
jr nz, .notLinkBattle
; link battle
ld a, [wEnemyMonPartyPos]
ld hl, wEnemyMon1Status
ld bc, wEnemyMon2 - wEnemyMon1
call AddNTimes
ld a, [wEnemyMonStatus]
ld [hl], a
call ClearScreen
callfar DisplayLinkBattleVersusTextBox
ld a, [wBattleResult]
cp $1
ld de, YouWinText
jr c, .placeWinOrLoseString
ld de, YouLoseText
jr z, .placeWinOrLoseString
ld de, DrawText
.placeWinOrLoseString
hlcoord 6, 8
call PlaceString
ld c, 200
call DelayFrames
jr .evolution
.notLinkBattle
ld a, [wBattleResult]
and a
jr nz, .resetVariables
ld hl, wTotalPayDayMoney
ld a, [hli]
or [hl]
inc hl
or [hl]
jr z, .evolution ; if pay day money is 0, jump
ld de, wPlayerMoney + 2
ld c, $3
predef AddBCDPredef
ld hl, PickUpPayDayMoneyText
call PrintText
.evolution
xor a
ld [wForceEvolution], a
predef EvolutionAfterBattle
.resetVariables
xor a
ld [wLowHealthAlarm], a ;disable low health alarm
ld [wChannelSoundIDs + CHAN5], a
2015-08-31 02:38:41 +00:00
ld [wIsInBattle], a
ld [wBattleType], a
ld [wMoveMissed], a
ld [wCurOpponent], a
2015-07-25 03:27:59 +00:00
ld [wForcePlayerToChooseMon], a
ld [wNumRunAttempts], a
ld [wEscapedFromBattle], a
2015-07-16 03:04:58 +00:00
ld hl, wPartyAndBillsPCSavedMenuItem
ld [hli], a
ld [hli], a
ld [hli], a
ld [hl], a
ld [wListScrollOffset], a
ld hl, wPlayerStatsToDouble
ld b, $18
.loop
ld [hli], a
dec b
jr nz, .loop
ld hl, wd72c
set 0, [hl]
call WaitForSoundToFinish
call GBPalWhiteOut
ld a, $ff
ld [wDestinationWarpID], a
ret
2016-06-12 00:24:04 +00:00
YouWinText:
db "YOU WIN@"
2016-06-12 00:24:04 +00:00
YouLoseText:
db "YOU LOSE@"
2016-06-12 00:24:04 +00:00
DrawText:
db " DRAW@"
2016-06-12 00:24:04 +00:00
PickUpPayDayMoneyText:
text_far _PickUpPayDayMoneyText
text_end