pokered/scripts/Daycare.asm

270 lines
4.7 KiB
NASM
Raw Normal View History

Daycare_Script:
2014-05-18 18:19:10 +00:00
jp EnableAutoTextBoxDrawing
Daycare_TextPointers:
2014-05-18 18:19:10 +00:00
dw DayCareMText1
2016-06-12 00:24:04 +00:00
DayCareMText1:
text_asm
2014-05-18 18:19:10 +00:00
call SaveScreenTilesToBuffer2
2015-08-31 02:38:41 +00:00
ld a, [wDayCareInUse]
2014-05-18 18:19:10 +00:00
and a
2015-07-19 03:49:52 +00:00
jp nz, .daycareInUse
ld hl, DayCareIntroText
2014-05-18 18:19:10 +00:00
call PrintText
call YesNoChoice
ld a, [wCurrentMenuItem]
2014-05-18 18:19:10 +00:00
and a
2015-07-19 03:49:52 +00:00
ld hl, DayCareComeAgainText
jp nz, .done
ld a, [wPartyCount]
2014-05-18 18:19:10 +00:00
dec a
2015-07-19 03:49:52 +00:00
ld hl, DayCareOnlyHaveOneMonText
jp z, .done
ld hl, DayCareWhichMonText
2014-05-18 18:19:10 +00:00
call PrintText
xor a
2014-09-13 07:50:56 +00:00
ld [wUpdateSpritesEnabled], a
ld [wPartyMenuTypeOrMessageID], a
2014-08-09 05:39:13 +00:00
ld [wMenuItemToSwap], a
2014-05-18 18:19:10 +00:00
call DisplayPartyMenu
push af
call GBPalWhiteOutWithDelay3
call RestoreScreenTilesAndReloadTilePatterns
2014-05-18 18:19:10 +00:00
call LoadGBPal
pop af
2015-07-19 03:49:52 +00:00
ld hl, DayCareAllRightThenText
jp c, .done
callfar KnowsHMMove
2015-07-19 03:49:52 +00:00
ld hl, DayCareCantAcceptMonWithHMText
jp c, .done
2014-05-18 18:19:10 +00:00
xor a
2015-07-16 03:04:58 +00:00
ld [wPartyAndBillsPCSavedMenuItem], a
2014-05-18 18:19:10 +00:00
ld a, [wWhichPokemon]
ld hl, wPartyMonNicks
2014-05-18 18:19:10 +00:00
call GetPartyMonName
2015-07-19 03:49:52 +00:00
ld hl, DayCareWillLookAfterMonText
2014-05-18 18:19:10 +00:00
call PrintText
ld a, 1
2015-08-31 02:38:41 +00:00
ld [wDayCareInUse], a
ld a, PARTY_TO_DAYCARE
ld [wMoveMonType], a
2015-07-13 06:00:48 +00:00
call MoveMon
2014-05-18 18:19:10 +00:00
xor a
ld [wRemoveMonFromBox], a
2014-05-18 18:19:10 +00:00
call RemovePokemon
ld a, [wcf91]
2014-05-18 18:19:10 +00:00
call PlayCry
2015-07-19 03:49:52 +00:00
ld hl, DayCareComeSeeMeInAWhileText
jp .done
2014-05-18 18:19:10 +00:00
2015-07-19 03:49:52 +00:00
.daycareInUse
2014-05-18 18:19:10 +00:00
xor a
2015-08-31 02:38:41 +00:00
ld hl, wDayCareMonName
2014-05-18 18:19:10 +00:00
call GetPartyMonName
2015-07-16 03:04:58 +00:00
ld a, DAYCARE_DATA
ld [wMonDataLocation], a
2014-05-18 18:19:10 +00:00
call LoadMonData
callfar CalcLevelFromExperience
2014-05-18 18:19:10 +00:00
ld a, d
cp MAX_LEVEL
2015-07-19 03:49:52 +00:00
jr c, .skipCalcExp
ld d, MAX_LEVEL
callfar CalcExperience
ld hl, wDayCareMonExp
ldh a, [hExperience]
2014-05-18 18:19:10 +00:00
ld [hli], a
ldh a, [hExperience + 1]
2014-05-18 18:19:10 +00:00
ld [hli], a
ldh a, [hExperience + 2]
2014-05-18 18:19:10 +00:00
ld [hl], a
ld d, MAX_LEVEL
2014-05-18 18:19:10 +00:00
2015-07-19 03:49:52 +00:00
.skipCalcExp
2014-05-18 18:19:10 +00:00
xor a
2015-07-19 03:49:52 +00:00
ld [wDayCareNumLevelsGrown], a
ld hl, wDayCareMonBoxLevel
2014-05-18 18:19:10 +00:00
ld a, [hl]
2015-07-19 03:49:52 +00:00
ld [wDayCareStartLevel], a
2014-05-18 18:19:10 +00:00
cp d
ld [hl], d
2015-07-19 03:49:52 +00:00
ld hl, DayCareMonNeedsMoreTimeText
jr z, .next
ld a, [wDayCareStartLevel]
2014-05-18 18:19:10 +00:00
ld b, a
ld a, d
sub b
2015-07-19 03:49:52 +00:00
ld [wDayCareNumLevelsGrown], a
ld hl, DayCareMonHasGrownText
2014-05-18 18:19:10 +00:00
2015-07-19 03:49:52 +00:00
.next
2014-05-18 18:19:10 +00:00
call PrintText
ld a, [wPartyCount]
cp PARTY_LENGTH
2015-07-19 03:49:52 +00:00
ld hl, DayCareNoRoomForMonText
2015-07-23 13:07:12 +00:00
jp z, .leaveMonInDayCare
ld de, wDayCareTotalCost
2014-05-18 18:19:10 +00:00
xor a
ld [de], a
inc de
ld [de], a
2015-07-23 13:07:12 +00:00
ld hl, wDayCarePerLevelCost
2014-05-18 18:19:10 +00:00
ld a, $1
ld [hli], a
ld [hl], $0
2015-07-19 03:49:52 +00:00
ld a, [wDayCareNumLevelsGrown]
2014-05-18 18:19:10 +00:00
inc a
ld b, a
2015-07-23 13:07:12 +00:00
ld c, 2
.calcPriceLoop
2014-05-18 18:19:10 +00:00
push hl
push de
push bc
predef AddBCDPredef
2014-05-18 18:19:10 +00:00
pop bc
pop de
pop hl
dec b
2015-07-23 13:07:12 +00:00
jr nz, .calcPriceLoop
2015-07-19 03:49:52 +00:00
ld hl, DayCareOweMoneyText
2014-05-18 18:19:10 +00:00
call PrintText
2015-07-23 13:07:12 +00:00
ld a, MONEY_BOX
2015-02-07 10:43:08 +00:00
ld [wTextBoxID], a
2014-05-18 18:19:10 +00:00
call DisplayTextBoxID
call YesNoChoice
2015-07-19 03:49:52 +00:00
ld hl, DayCareAllRightThenText
2014-05-18 18:19:10 +00:00
ld a, [wCurrentMenuItem]
and a
2015-07-23 13:07:12 +00:00
jp nz, .leaveMonInDayCare
ld hl, wDayCareTotalCost
ldh [hMoney], a
2014-05-18 18:19:10 +00:00
ld a, [hli]
ldh [hMoney + 1], a
2014-05-18 18:19:10 +00:00
ld a, [hl]
ldh [hMoney + 2], a
2014-05-18 18:19:10 +00:00
call HasEnoughMoney
2015-07-23 13:07:12 +00:00
jr nc, .enoughMoney
2015-07-19 03:49:52 +00:00
ld hl, DayCareNotEnoughMoneyText
2015-07-23 13:07:12 +00:00
jp .leaveMonInDayCare
2014-05-18 18:19:10 +00:00
2015-07-23 13:07:12 +00:00
.enoughMoney
2014-05-18 18:19:10 +00:00
xor a
2015-08-31 02:38:41 +00:00
ld [wDayCareInUse], a
2015-07-19 03:49:52 +00:00
ld hl, wDayCareNumLevelsGrown
2014-05-18 18:19:10 +00:00
ld [hli], a
inc hl
ld de, wPlayerMoney + 2
2014-05-18 18:19:10 +00:00
ld c, $3
predef SubBCDPredef
2015-07-19 08:46:12 +00:00
ld a, SFX_PURCHASE
2014-05-18 18:19:10 +00:00
call PlaySoundWaitForCurrent
2015-07-13 06:00:48 +00:00
ld a, MONEY_BOX
2015-02-07 10:43:08 +00:00
ld [wTextBoxID], a
2014-05-18 18:19:10 +00:00
call DisplayTextBoxID
2015-07-19 03:49:52 +00:00
ld hl, DayCareHeresYourMonText
2014-05-18 18:19:10 +00:00
call PrintText
ld a, DAYCARE_TO_PARTY
ld [wMoveMonType], a
2015-07-13 06:00:48 +00:00
call MoveMon
ld a, [wDayCareMonSpecies]
ld [wcf91], a
ld a, [wPartyCount]
2014-05-18 18:19:10 +00:00
dec a
push af
ld bc, wPartyMon2 - wPartyMon1
2014-05-18 18:19:10 +00:00
push bc
ld hl, wPartyMon1Moves
2014-05-18 18:19:10 +00:00
call AddNTimes
ld d, h
ld e, l
ld a, 1
2015-07-19 03:49:52 +00:00
ld [wLearningMovesFromDayCare], a
predef WriteMonMoves
2014-05-18 18:19:10 +00:00
pop bc
pop af
2015-07-19 03:49:52 +00:00
; set mon's HP to max
ld hl, wPartyMon1HP
2014-05-18 18:19:10 +00:00
call AddNTimes
ld d, h
ld e, l
ld bc, wPartyMon1MaxHP - wPartyMon1HP
2014-05-18 18:19:10 +00:00
add hl, bc
ld a, [hli]
ld [de], a
inc de
ld a, [hl]
ld [de], a
2015-07-19 03:49:52 +00:00
ld a, [wcf91]
2014-05-18 18:19:10 +00:00
call PlayCry
2015-07-19 03:49:52 +00:00
ld hl, DayCareGotMonBackText
jr .done
2014-05-18 18:19:10 +00:00
2015-07-23 13:07:12 +00:00
.leaveMonInDayCare
2015-07-19 03:49:52 +00:00
ld a, [wDayCareStartLevel]
ld [wDayCareMonBoxLevel], a
2014-05-18 18:19:10 +00:00
2015-07-19 03:49:52 +00:00
.done
2014-05-18 18:19:10 +00:00
call PrintText
jp TextScriptEnd
2016-06-12 00:24:04 +00:00
DayCareIntroText:
text_far _DayCareIntroText
text_end
2014-05-18 18:19:10 +00:00
2016-06-12 00:24:04 +00:00
DayCareWhichMonText:
text_far _DayCareWhichMonText
text_end
2014-05-18 18:19:10 +00:00
2016-06-12 00:24:04 +00:00
DayCareWillLookAfterMonText:
text_far _DayCareWillLookAfterMonText
text_end
2014-05-18 18:19:10 +00:00
2016-06-12 00:24:04 +00:00
DayCareComeSeeMeInAWhileText:
text_far _DayCareComeSeeMeInAWhileText
text_end
2014-05-18 18:19:10 +00:00
2016-06-12 00:24:04 +00:00
DayCareMonHasGrownText:
text_far _DayCareMonHasGrownText
text_end
2014-05-18 18:19:10 +00:00
2016-06-12 00:24:04 +00:00
DayCareOweMoneyText:
text_far _DayCareOweMoneyText
text_end
2014-05-18 18:19:10 +00:00
2016-06-12 00:24:04 +00:00
DayCareGotMonBackText:
text_far _DayCareGotMonBackText
text_end
2014-05-18 18:19:10 +00:00
2016-06-12 00:24:04 +00:00
DayCareMonNeedsMoreTimeText:
text_far _DayCareMonNeedsMoreTimeText
text_end
2014-05-18 18:19:10 +00:00
2016-06-12 00:24:04 +00:00
DayCareAllRightThenText:
text_far _DayCareAllRightThenText
2016-06-12 00:24:04 +00:00
DayCareComeAgainText:
text_far _DayCareComeAgainText
text_end
2014-05-18 18:19:10 +00:00
2016-06-12 00:24:04 +00:00
DayCareNoRoomForMonText:
text_far _DayCareNoRoomForMonText
text_end
2014-05-18 18:19:10 +00:00
2016-06-12 00:24:04 +00:00
DayCareOnlyHaveOneMonText:
text_far _DayCareOnlyHaveOneMonText
text_end
2014-05-18 18:19:10 +00:00
2016-06-12 00:24:04 +00:00
DayCareCantAcceptMonWithHMText:
text_far _DayCareCantAcceptMonWithHMText
text_end
2014-05-18 18:19:10 +00:00
2016-06-12 00:24:04 +00:00
DayCareHeresYourMonText:
text_far _DayCareHeresYourMonText
text_end
2014-05-18 18:19:10 +00:00
2016-06-12 00:24:04 +00:00
DayCareNotEnoughMoneyText:
text_far _DayCareNotEnoughMoneyText
text_end