mirror of
https://gitlab.com/xCrystal/pokecrystal-board.git
synced 2024-09-09 09:51:34 -07:00
280 lines
6.3 KiB
NASM
280 lines
6.3 KiB
NASM
const_def 2 ; object constants
|
|
const CELADONGAMECORNERPRIZEROOM_GENTLEMAN
|
|
const CELADONGAMECORNERPRIZEROOM_PHARMACIST
|
|
|
|
CeladonGameCornerPrizeRoom_MapScripts:
|
|
db 0 ; scene scripts
|
|
|
|
db 0 ; callbacks
|
|
|
|
CeladonGameCornerPrizeRoomGentlemanScript:
|
|
jumptextfaceplayer CeladonGameCornerPrizeRoomGentlemanText
|
|
|
|
CeladonGameCornerPrizeRoomPharmacistScript:
|
|
jumptextfaceplayer CeladonGameCornerPrizeRoomPharmacistText
|
|
|
|
CeladonGameCornerPrizeRoomTMVendor:
|
|
faceplayer
|
|
opentext
|
|
writetext CeladonPrizeRoom_PrizeVendorIntroText
|
|
waitbutton
|
|
checkitem COIN_CASE
|
|
iffalse CeladonPrizeRoom_NoCoinCase
|
|
writetext CeladonPrizeRoom_AskWhichPrizeText
|
|
CeladonPrizeRoom_tmcounterloop:
|
|
special DisplayCoinCaseBalance
|
|
loadmenuheader CeladonPrizeRoom_TMMenuHeader
|
|
verticalmenu
|
|
closewindow
|
|
if_equal 1, .doubleteam
|
|
if_equal 2, .psychic
|
|
if_equal 3, .hyperbeam
|
|
jump CeladonPrizeRoom_cancel
|
|
|
|
.doubleteam
|
|
checkcoins 1500
|
|
if_equal HAVE_LESS, CeladonPrizeRoom_notenoughcoins
|
|
itemtotext TM_DOUBLE_TEAM, MEM_BUFFER_0
|
|
scall CeladonPrizeRoom_askbuy
|
|
iffalse CeladonPrizeRoom_cancel
|
|
giveitem TM_DOUBLE_TEAM
|
|
iffalse CeladonPrizeRoom_notenoughroom
|
|
takecoins 1500
|
|
jump CeladonPrizeRoom_purchased
|
|
|
|
.psychic
|
|
checkcoins 3500
|
|
if_equal HAVE_LESS, CeladonPrizeRoom_notenoughcoins
|
|
itemtotext TM_PSYCHIC_M, MEM_BUFFER_0
|
|
scall CeladonPrizeRoom_askbuy
|
|
iffalse CeladonPrizeRoom_cancel
|
|
giveitem TM_PSYCHIC_M
|
|
iffalse CeladonPrizeRoom_notenoughroom
|
|
takecoins 3500
|
|
jump CeladonPrizeRoom_purchased
|
|
|
|
.hyperbeam
|
|
checkcoins 7500
|
|
if_equal HAVE_LESS, CeladonPrizeRoom_notenoughcoins
|
|
itemtotext TM_HYPER_BEAM, MEM_BUFFER_0
|
|
scall CeladonPrizeRoom_askbuy
|
|
iffalse CeladonPrizeRoom_cancel
|
|
giveitem TM_HYPER_BEAM
|
|
iffalse CeladonPrizeRoom_notenoughroom
|
|
takecoins 7500
|
|
jump CeladonPrizeRoom_purchased
|
|
|
|
CeladonPrizeRoom_askbuy:
|
|
writetext CeladonPrizeRoom_ConfirmPurchaseText
|
|
yesorno
|
|
end
|
|
|
|
CeladonPrizeRoom_purchased:
|
|
waitsfx
|
|
playsound SFX_TRANSACTION
|
|
writetext CeladonPrizeRoom_HereYouGoText
|
|
waitbutton
|
|
jump CeladonPrizeRoom_tmcounterloop
|
|
|
|
CeladonPrizeRoom_notenoughcoins:
|
|
writetext CeladonPrizeRoom_NotEnoughCoinsText
|
|
waitbutton
|
|
closetext
|
|
end
|
|
|
|
CeladonPrizeRoom_notenoughroom:
|
|
writetext CeladonPrizeRoom_NotEnoughRoomText
|
|
waitbutton
|
|
closetext
|
|
end
|
|
|
|
CeladonPrizeRoom_cancel:
|
|
writetext CeladonPrizeRoom_ComeAgainText
|
|
waitbutton
|
|
closetext
|
|
end
|
|
|
|
CeladonPrizeRoom_NoCoinCase:
|
|
writetext CeladonPrizeRoom_NoCoinCaseText
|
|
waitbutton
|
|
closetext
|
|
end
|
|
|
|
CeladonPrizeRoom_TMMenuHeader:
|
|
db MENU_BACKUP_TILES ; flags
|
|
menu_coords 0, 2, 15, TEXTBOX_Y - 1
|
|
dw .MenuData
|
|
db 1 ; default option
|
|
|
|
.MenuData:
|
|
db STATICMENU_CURSOR ; flags
|
|
db 4 ; items
|
|
db "TM32 1500@"
|
|
db "TM29 3500@"
|
|
db "TM15 7500@"
|
|
db "CANCEL@"
|
|
|
|
CeladonGameCornerPrizeRoomPokemonVendor:
|
|
faceplayer
|
|
opentext
|
|
writetext CeladonPrizeRoom_PrizeVendorIntroText
|
|
waitbutton
|
|
checkitem COIN_CASE
|
|
iffalse CeladonPrizeRoom_NoCoinCase
|
|
.loop
|
|
writetext CeladonPrizeRoom_AskWhichPrizeText
|
|
special DisplayCoinCaseBalance
|
|
loadmenuheader .MenuHeader
|
|
verticalmenu
|
|
closewindow
|
|
if_equal 1, .pikachu
|
|
if_equal 2, .porygon
|
|
if_equal 3, .larvitar
|
|
jump CeladonPrizeRoom_cancel
|
|
|
|
.pikachu
|
|
checkcoins 2222
|
|
if_equal HAVE_LESS, CeladonPrizeRoom_notenoughcoins
|
|
checkcode VAR_PARTYCOUNT
|
|
if_equal PARTY_LENGTH, CeladonPrizeRoom_notenoughroom
|
|
pokenamemem PIKACHU, MEM_BUFFER_0
|
|
scall CeladonPrizeRoom_askbuy
|
|
iffalse CeladonPrizeRoom_cancel
|
|
waitsfx
|
|
playsound SFX_TRANSACTION
|
|
writetext CeladonPrizeRoom_HereYouGoText
|
|
waitbutton
|
|
writebyte PIKACHU
|
|
special GameCornerPrizeMonCheckDex
|
|
givepoke PIKACHU, 25
|
|
takecoins 2222
|
|
jump .loop
|
|
|
|
.porygon
|
|
checkcoins 5555
|
|
if_equal HAVE_LESS, CeladonPrizeRoom_notenoughcoins
|
|
checkcode VAR_PARTYCOUNT
|
|
if_equal PARTY_LENGTH, CeladonPrizeRoom_notenoughroom
|
|
pokenamemem PORYGON, MEM_BUFFER_0
|
|
scall CeladonPrizeRoom_askbuy
|
|
iffalse CeladonPrizeRoom_cancel
|
|
waitsfx
|
|
playsound SFX_TRANSACTION
|
|
writetext CeladonPrizeRoom_HereYouGoText
|
|
waitbutton
|
|
writebyte PORYGON
|
|
special GameCornerPrizeMonCheckDex
|
|
givepoke PORYGON, 15
|
|
takecoins 5555
|
|
jump .loop
|
|
|
|
.larvitar
|
|
checkcoins 8888
|
|
if_equal HAVE_LESS, CeladonPrizeRoom_notenoughcoins
|
|
checkcode VAR_PARTYCOUNT
|
|
if_equal PARTY_LENGTH, CeladonPrizeRoom_notenoughroom
|
|
pokenamemem LARVITAR, MEM_BUFFER_0
|
|
scall CeladonPrizeRoom_askbuy
|
|
iffalse CeladonPrizeRoom_cancel
|
|
waitsfx
|
|
playsound SFX_TRANSACTION
|
|
writetext CeladonPrizeRoom_HereYouGoText
|
|
waitbutton
|
|
writebyte LARVITAR
|
|
special GameCornerPrizeMonCheckDex
|
|
givepoke LARVITAR, 40
|
|
takecoins 8888
|
|
jump .loop
|
|
|
|
.MenuHeader:
|
|
db MENU_BACKUP_TILES ; flags
|
|
menu_coords 0, 2, 17, TEXTBOX_Y - 1
|
|
dw .MenuData
|
|
db 1 ; default option
|
|
|
|
.MenuData:
|
|
db STATICMENU_CURSOR ; flags
|
|
db 4 ; items
|
|
db "PIKACHU 2222@"
|
|
db "PORYGON 5555@"
|
|
db "LARVITAR 8888@"
|
|
db "CANCEL@"
|
|
|
|
CeladonGameCornerPrizeRoomGentlemanText:
|
|
text "I wanted PORYGON,"
|
|
line "but I was short by"
|
|
cont "100 coins…"
|
|
done
|
|
|
|
CeladonGameCornerPrizeRoomPharmacistText:
|
|
text "Whew…"
|
|
|
|
para "I've got to stay"
|
|
line "calm and cool…"
|
|
|
|
para "I can't lose my"
|
|
line "cool, or I'll lose"
|
|
cont "all my money…"
|
|
done
|
|
|
|
CeladonPrizeRoom_PrizeVendorIntroText:
|
|
text "Welcome!"
|
|
|
|
para "We exchange your"
|
|
line "coins for fabulous"
|
|
cont "prizes!"
|
|
done
|
|
|
|
CeladonPrizeRoom_AskWhichPrizeText:
|
|
text "Which prize would"
|
|
line "you like?"
|
|
done
|
|
|
|
CeladonPrizeRoom_ConfirmPurchaseText:
|
|
text "OK, so you wanted"
|
|
line "a @"
|
|
text_from_ram StringBuffer3
|
|
text "?"
|
|
done
|
|
|
|
CeladonPrizeRoom_HereYouGoText:
|
|
text "Here you go!"
|
|
done
|
|
|
|
CeladonPrizeRoom_NotEnoughCoinsText:
|
|
text "You don't have"
|
|
line "enough coins."
|
|
done
|
|
|
|
CeladonPrizeRoom_NotEnoughRoomText:
|
|
text "You have no room"
|
|
line "for it."
|
|
done
|
|
|
|
CeladonPrizeRoom_ComeAgainText:
|
|
text "Oh. Please come"
|
|
line "back with coins!"
|
|
done
|
|
|
|
CeladonPrizeRoom_NoCoinCaseText:
|
|
text "Oh? You don't have"
|
|
line "a COIN CASE."
|
|
done
|
|
|
|
CeladonGameCornerPrizeRoom_MapEvents:
|
|
db 0, 0 ; filler
|
|
|
|
db 2 ; warp events
|
|
warp_event 2, 5, CELADON_CITY, 7
|
|
warp_event 3, 5, CELADON_CITY, 7
|
|
|
|
db 0 ; coord events
|
|
|
|
db 2 ; bg events
|
|
bg_event 2, 1, BGEVENT_READ, CeladonGameCornerPrizeRoomTMVendor
|
|
bg_event 4, 1, BGEVENT_READ, CeladonGameCornerPrizeRoomPokemonVendor
|
|
|
|
db 2 ; object events
|
|
object_event 0, 2, SPRITE_GENTLEMAN, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_RED, OBJECTTYPE_SCRIPT, 0, CeladonGameCornerPrizeRoomGentlemanScript, -1
|
|
object_event 4, 4, SPRITE_PHARMACIST, SPRITEMOVEDATA_WALK_UP_DOWN, 0, 1, -1, -1, PAL_NPC_GREEN, OBJECTTYPE_SCRIPT, 0, CeladonGameCornerPrizeRoomPharmacistScript, -1
|