diff options
-rw-r--r-- | main.asm | 3 | ||||
-rw-r--r-- | maps/GoldenrodGameCorner.asm | 525 |
2 files changed, 527 insertions, 1 deletions
@@ -1589,8 +1589,9 @@ SECTION "bank56", ROMX, BANK[$56] dr $158000, $15c000 SECTION "bank57", ROMX, BANK[$57] - dr $15c000, $15ef24 + dr $15c000, $15e7a2 +INCLUDE "maps/GoldenrodGameCorner.asm" INCLUDE "maps/IlexForestAzaleaGate.asm" INCLUDE "maps/Route34IlexForestGate.asm" INCLUDE "maps/DayCare.asm" diff --git a/maps/GoldenrodGameCorner.asm b/maps/GoldenrodGameCorner.asm new file mode 100644 index 00000000..11315f09 --- /dev/null +++ b/maps/GoldenrodGameCorner.asm @@ -0,0 +1,525 @@ + const_def 2 ; object constants + const GOLDENRODGAMECORNER_CLERK + const GOLDENRODGAMECORNER_RECEPTIONIST1 + const GOLDENRODGAMECORNER_RECEPTIONIST2 + const GOLDENRODGAMECORNER_PHARMACIST1 + const GOLDENRODGAMECORNER_PHARMACIST2 + const GOLDENRODGAMECORNER_POKEFAN_M1 + const GOLDENRODGAMECORNER_COOLTRAINER_M + const GOLDENRODGAMECORNER_POKEFAN_F + const GOLDENRODGAMECORNER_COOLTRAINER_F + const GOLDENRODGAMECORNER_GENTLEMAN + const GOLDENRODGAMECORNER_POKEFAN_M2 + +GoldenrodGameCorner_MapScripts: + db 0 ; scene scripts + + db 0 ; callbacks + +GoldenrodGameCornerCoinVendorScript: + jumpstd $2c ; gamecornercoinvendor + +GoldenrodGameCornerTMVendorScript: + faceplayer + opentext + writetext GoldenrodGameCornerPrizeVendorIntroText + waitbutton + checkitem COIN_CASE + iffalse GoldenrodGameCornerPrizeVendor_NoCoinCaseScript + writetext GoldenrodGameCornerPrizeVendorWhichPrizeText +GoldenrodGameCornerTMVendor_LoopScript: + special DisplayCoinCaseBalance + loadmenu GoldenrodGameCornerTMVendorMenuHeader + verticalmenu + closewindow + ifequal 1, .Thunder + ifequal 2, .Blizzard + ifequal 3, .FireBlast + jump GoldenrodGameCornerPrizeVendor_CancelPurchaseScript + +.Thunder: + checkcoins 5500 + ifequal HAVE_LESS, GoldenrodGameCornerPrizeVendor_NotEnoughCoinsScript + itemtotext TM_THUNDER, MEM_BUFFER_0 + scall GoldenrodGameCornerPrizeVendor_ConfirmPurchaseScript + iffalse GoldenrodGameCornerPrizeVendor_CancelPurchaseScript + giveitem TM_THUNDER + iffalse GoldenrodGameCornerPrizeMonVendor_NoRoomForPrizeScript + takecoins 5500 + jump GoldenrodGameCornerTMVendor_FinishScript + +.Blizzard: + checkcoins 5500 + ifequal HAVE_LESS, GoldenrodGameCornerPrizeVendor_NotEnoughCoinsScript + itemtotext TM_BLIZZARD, MEM_BUFFER_0 + scall GoldenrodGameCornerPrizeVendor_ConfirmPurchaseScript + iffalse GoldenrodGameCornerPrizeVendor_CancelPurchaseScript + giveitem TM_BLIZZARD + iffalse GoldenrodGameCornerPrizeMonVendor_NoRoomForPrizeScript + takecoins 5500 + jump GoldenrodGameCornerTMVendor_FinishScript + +.FireBlast: + checkcoins 5500 + ifequal HAVE_LESS, GoldenrodGameCornerPrizeVendor_NotEnoughCoinsScript + itemtotext TM_FIRE_BLAST, MEM_BUFFER_0 + scall GoldenrodGameCornerPrizeVendor_ConfirmPurchaseScript + iffalse GoldenrodGameCornerPrizeVendor_CancelPurchaseScript + giveitem TM_FIRE_BLAST + iffalse GoldenrodGameCornerPrizeMonVendor_NoRoomForPrizeScript + takecoins 5500 + jump GoldenrodGameCornerTMVendor_FinishScript + +GoldenrodGameCornerPrizeVendor_ConfirmPurchaseScript: + writetext GoldenrodGameCornerPrizeVendorConfirmPrizeText + yesorno + end + +GoldenrodGameCornerTMVendor_FinishScript: + waitsfx + playsound SFX_TRANSACTION + writetext GoldenrodGameCornerPrizeVendorHereYouGoText + waitbutton + jump GoldenrodGameCornerTMVendor_LoopScript + +GoldenrodGameCornerPrizeVendor_NotEnoughCoinsScript: + writetext GoldenrodGameCornerPrizeVendorNeedMoreCoinsText + waitbutton + closetext + end + +GoldenrodGameCornerPrizeMonVendor_NoRoomForPrizeScript: + writetext GoldenrodGameCornerPrizeVendorNoMoreRoomText + waitbutton + closetext + end + +GoldenrodGameCornerPrizeVendor_CancelPurchaseScript: + writetext GoldenrodGameCornerPrizeVendorQuitText + waitbutton + closetext + end + +GoldenrodGameCornerPrizeVendor_NoCoinCaseScript: + writetext GoldenrodGameCornerPrizeVendorNoCoinCaseText + waitbutton + closetext + end + +GoldenrodGameCornerTMVendorMenuHeader: + 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 "TM25 5500@" + db "TM14 5500@" + db "TM38 5500@" + db "CANCEL@" + +GoldenrodGameCornerPrizeMonVendorScript: + faceplayer + opentext + writetext GoldenrodGameCornerPrizeVendorIntroText + waitbutton + checkitem COIN_CASE + iffalse GoldenrodGameCornerPrizeVendor_NoCoinCaseScript + checkver + iftrue .silver_loop +.gold_loop + writetext GoldenrodGameCornerPrizeVendorWhichPrizeText + special DisplayCoinCaseBalance + loadmenu .gold_MenuHeader + verticalmenu + closewindow + ifequal 1, .gold_abra + ifequal 2, .gold_ekans + ifequal 3, .gold_dratini + jump GoldenrodGameCornerPrizeVendor_CancelPurchaseScript + +.gold_abra + checkcoins 200 + ifequal HAVE_LESS, GoldenrodGameCornerPrizeVendor_NotEnoughCoinsScript + checkcode VAR_PARTYCOUNT + ifequal PARTY_LENGTH, GoldenrodGameCornerPrizeMonVendor_NoRoomForPrizeScript + pokenamemem ABRA, MEM_BUFFER_0 + scall GoldenrodGameCornerPrizeVendor_ConfirmPurchaseScript + iffalse GoldenrodGameCornerPrizeVendor_CancelPurchaseScript + waitsfx + playsound SFX_TRANSACTION + writetext GoldenrodGameCornerPrizeVendorHereYouGoText + waitbutton + writebyte ABRA + special GameCornerPrizeMonCheckDex + givepoke ABRA, 10 + takecoins 200 + jump .gold_loop + +.gold_ekans + checkcoins 700 + ifequal HAVE_LESS, GoldenrodGameCornerPrizeVendor_NotEnoughCoinsScript + checkcode VAR_PARTYCOUNT + ifequal PARTY_LENGTH, GoldenrodGameCornerPrizeMonVendor_NoRoomForPrizeScript + pokenamemem EKANS, MEM_BUFFER_0 + scall GoldenrodGameCornerPrizeVendor_ConfirmPurchaseScript + iffalse GoldenrodGameCornerPrizeVendor_CancelPurchaseScript + waitsfx + playsound SFX_TRANSACTION + writetext GoldenrodGameCornerPrizeVendorHereYouGoText + waitbutton + writebyte EKANS + special GameCornerPrizeMonCheckDex + givepoke EKANS, 10 + takecoins 700 + jump .gold_loop + +.gold_dratini + checkcoins 2100 + ifequal HAVE_LESS, GoldenrodGameCornerPrizeVendor_NotEnoughCoinsScript + checkcode VAR_PARTYCOUNT + ifequal PARTY_LENGTH, GoldenrodGameCornerPrizeMonVendor_NoRoomForPrizeScript + pokenamemem DRATINI, MEM_BUFFER_0 + scall GoldenrodGameCornerPrizeVendor_ConfirmPurchaseScript + iffalse GoldenrodGameCornerPrizeVendor_CancelPurchaseScript + waitsfx + playsound SFX_TRANSACTION + writetext GoldenrodGameCornerPrizeVendorHereYouGoText + waitbutton + writebyte DRATINI + special GameCornerPrizeMonCheckDex + givepoke DRATINI, 10 + takecoins 2100 + jump .gold_loop + +.gold_MenuHeader: + db MENU_BACKUP_TILES ; flags + menu_coords 0, 2, 17, TEXTBOX_Y - 1 + dw .gold_MenuData + db 1 ; default option + +.gold_MenuData: + db STATICMENU_CURSOR ; flags + db 4 ; items + db "ABRA 200@" + db "EKANS 700@" + db "DRATINI 2100@" + db "CANCEL@" + +.silver_loop + writetext GoldenrodGameCornerPrizeVendorWhichPrizeText + special DisplayCoinCaseBalance + loadmenu .silver_MenuHeader + verticalmenu + closewindow + ifequal 1, .silver_abra + ifequal 2, .silver_sandshrew + ifequal 3, .silver_dratini + jump GoldenrodGameCornerPrizeVendor_CancelPurchaseScript + +.silver_abra + checkcoins 200 + ifequal HAVE_LESS, GoldenrodGameCornerPrizeVendor_NotEnoughCoinsScript + checkcode VAR_PARTYCOUNT + ifequal PARTY_LENGTH, GoldenrodGameCornerPrizeMonVendor_NoRoomForPrizeScript + pokenamemem ABRA, MEM_BUFFER_0 + scall GoldenrodGameCornerPrizeVendor_ConfirmPurchaseScript + iffalse GoldenrodGameCornerPrizeVendor_CancelPurchaseScript + waitsfx + playsound SFX_TRANSACTION + writetext GoldenrodGameCornerPrizeVendorHereYouGoText + waitbutton + writebyte ABRA + special GameCornerPrizeMonCheckDex + givepoke ABRA, 10 + takecoins 200 + jump .silver_loop + +.silver_sandshrew + checkcoins 700 + ifequal HAVE_LESS, GoldenrodGameCornerPrizeVendor_NotEnoughCoinsScript + checkcode VAR_PARTYCOUNT + ifequal PARTY_LENGTH, GoldenrodGameCornerPrizeMonVendor_NoRoomForPrizeScript + pokenamemem SANDSHREW, MEM_BUFFER_0 + scall GoldenrodGameCornerPrizeVendor_ConfirmPurchaseScript + iffalse GoldenrodGameCornerPrizeVendor_CancelPurchaseScript + waitsfx + playsound SFX_TRANSACTION + writetext GoldenrodGameCornerPrizeVendorHereYouGoText + waitbutton + writebyte SANDSHREW + special GameCornerPrizeMonCheckDex + givepoke SANDSHREW, 10 + takecoins 700 + jump .silver_loop + +.silver_dratini + checkcoins 2100 + ifequal HAVE_LESS, GoldenrodGameCornerPrizeVendor_NotEnoughCoinsScript + checkcode VAR_PARTYCOUNT + ifequal PARTY_LENGTH, GoldenrodGameCornerPrizeMonVendor_NoRoomForPrizeScript + pokenamemem DRATINI, MEM_BUFFER_0 + scall GoldenrodGameCornerPrizeVendor_ConfirmPurchaseScript + iffalse GoldenrodGameCornerPrizeVendor_CancelPurchaseScript + waitsfx + playsound SFX_TRANSACTION + writetext GoldenrodGameCornerPrizeVendorHereYouGoText + waitbutton + writebyte DRATINI + special GameCornerPrizeMonCheckDex + givepoke DRATINI, 10 + takecoins 2100 + jump .silver_loop + +.silver_MenuHeader: + db MENU_BACKUP_TILES ; flags + menu_coords 0, 2, 17, TEXTBOX_Y - 1 + dw .silver_MenuData + db 1 ; default option + +.silver_MenuData: + db STATICMENU_CURSOR ; flags + db 4 ; items + db "ABRA 200@" + db "SANDSHREW 700@" + db "DRATINI 2100@" + db "CANCEL@" + +GoldenrodGameCornerPharmacistScript: + faceplayer + opentext + writetext GoldenrodGameCornerPharmacistText + waitbutton + closetext + turnobject LAST_TALKED, LEFT + end + +GoldenrodGameCornerPokefanM1Script: + faceplayer + opentext + writetext GoldenrodGameCornerPokefanM1Text + waitbutton + closetext + turnobject GOLDENRODGAMECORNER_POKEFAN_M1, RIGHT + end + +GoldenrodGameCornerCooltrainerMScript: + faceplayer + opentext + writetext GoldenrodGameCornerCooltrainerMText + waitbutton + closetext + turnobject GOLDENRODGAMECORNER_COOLTRAINER_M, LEFT + end + +GoldenrodGameCornerPokefanFScript: + faceplayer + opentext + writetext GoldenrodGameCornerPokefanFText + waitbutton + closetext + turnobject GOLDENRODGAMECORNER_POKEFAN_F, RIGHT + end + +GoldenrodGameCornerCooltrainerFScript: + jumptextfaceplayer GoldenrodGameCornerCooltrainerFText + +GoldenrodGameCornerGentlemanScript: + faceplayer + opentext + writetext GoldenrodGameCornerGentlemanText + waitbutton + closetext + turnobject GOLDENRODGAMECORNER_GENTLEMAN, RIGHT + end + +GoldenrodGameCornerPokefanM2Script: + jumptextfaceplayer GoldenrodGameCornerPokefanM2Text + +GoldenrodGameCornerSlotsMachineScript: + random 6 + ifequal 0, GoldenrodGameCornerLuckySlotsMachineScript + refreshscreen + writebyte FALSE + special SlotMachine + closetext + end + +GoldenrodGameCornerLuckySlotsMachineScript: + refreshscreen + writebyte TRUE + special SlotMachine + closetext + end + +GoldenrodGameCornerCardFlipMachineScript: + refreshscreen + special CardFlip + closetext + end + +GoldenrodGameCornerPrizeVendorIntroText: + text "Welcome!" + + para "We exchange your" + line "game coins for" + cont "fabulous prizes!" + done + +GoldenrodGameCornerPrizeVendorWhichPrizeText: + text "Which prize would" + line "you like?" + done + +GoldenrodGameCornerPrizeVendorConfirmPrizeText: + text_from_ram wStringBuffer3 + text "." + line "Is that right?" + done + +GoldenrodGameCornerPrizeVendorHereYouGoText: + text "Here you go!" + done + +GoldenrodGameCornerPrizeVendorNeedMoreCoinsText: + text "Sorry! You need" + line "more coins." + done + +GoldenrodGameCornerPrizeVendorNoMoreRoomText: + text "Sorry. You can't" + line "carry any more." + done + +GoldenrodGameCornerPrizeVendorQuitText: + text "OK. Please save" + line "your coins and" + cont "come again!" + done + +GoldenrodGameCornerPrizeVendorNoCoinCaseText: + text "Oh? You don't have" + line "a COIN CASE." + done + +GoldenrodGameCornerPharmacistText: + text "I always play this" + line "slot machine. It" + + para "pays out more than" + line "others, I think." + done + +GoldenrodGameCornerPokefanM1Text: + text "I just love this" + line "new slot machine." + + para "It's more of a" + line "challenge than the" + cont "ones in CELADON." + done + +GoldenrodGameCornerCooltrainerMText: + text "Life is a gamble." + line "I'm going to flip" + cont "cards till I drop!" + done + +GoldenrodGameCornerPokefanFText: + text "Card flip…" + + para "I prefer it over" + line "the slots because" + + para "it's easier to" + line "figure the odds." + + para "But the payout is" + line "much lower." + done + +GoldenrodGameCornerCooltrainerFText: + text "I won't quit until" + line "I win!" + done + +GoldenrodGameCornerGentlemanText: + text "I taught BLIZZARD" + line "to my #MON." + + para "It was hard to get" + line "enough coins for" + + para "it, but it was" + line "worth it." + done + +GoldenrodGameCornerPokefanM2Text: + text "I couldn't win at" + line "the slots, and I" + + para "blew it on card" + line "flipping…" + + para "I got so furious," + line "I tossed out my" + + para "COIN CASE in the" + line "UNDERGROUND." + done + +GoldenrodGameCorner_MapEvents: + db 0, 0 ; filler + + db 2 ; warp events + warp_event 2, 13, GOLDENROD_CITY, 11 + warp_event 3, 13, GOLDENROD_CITY, 11 + + db 0 ; coord events + + db 30 ; bg events + bg_event 6, 6, BGEVENT_READ, GoldenrodGameCornerSlotsMachineScript + bg_event 6, 7, BGEVENT_READ, GoldenrodGameCornerSlotsMachineScript + bg_event 6, 8, BGEVENT_READ, GoldenrodGameCornerSlotsMachineScript + bg_event 6, 9, BGEVENT_READ, GoldenrodGameCornerSlotsMachineScript + bg_event 6, 10, BGEVENT_READ, GoldenrodGameCornerSlotsMachineScript + bg_event 6, 11, BGEVENT_RIGHT, GoldenrodGameCornerSlotsMachineScript + bg_event 7, 6, BGEVENT_READ, GoldenrodGameCornerSlotsMachineScript + bg_event 7, 7, BGEVENT_READ, GoldenrodGameCornerLuckySlotsMachineScript + bg_event 7, 8, BGEVENT_READ, GoldenrodGameCornerSlotsMachineScript + bg_event 7, 9, BGEVENT_READ, GoldenrodGameCornerSlotsMachineScript + bg_event 7, 10, BGEVENT_READ, GoldenrodGameCornerSlotsMachineScript + bg_event 7, 11, BGEVENT_LEFT, GoldenrodGameCornerSlotsMachineScript + bg_event 12, 6, BGEVENT_READ, GoldenrodGameCornerSlotsMachineScript + bg_event 12, 7, BGEVENT_READ, GoldenrodGameCornerSlotsMachineScript + bg_event 12, 8, BGEVENT_READ, GoldenrodGameCornerSlotsMachineScript + bg_event 12, 9, BGEVENT_READ, GoldenrodGameCornerSlotsMachineScript + bg_event 12, 10, BGEVENT_READ, GoldenrodGameCornerSlotsMachineScript + bg_event 12, 11, BGEVENT_RIGHT, GoldenrodGameCornerSlotsMachineScript + bg_event 13, 6, BGEVENT_READ, GoldenrodGameCornerCardFlipMachineScript + bg_event 13, 7, BGEVENT_READ, GoldenrodGameCornerCardFlipMachineScript + bg_event 13, 8, BGEVENT_READ, GoldenrodGameCornerCardFlipMachineScript + bg_event 13, 9, BGEVENT_READ, GoldenrodGameCornerCardFlipMachineScript + bg_event 13, 10, BGEVENT_READ, GoldenrodGameCornerCardFlipMachineScript + bg_event 13, 11, BGEVENT_LEFT, GoldenrodGameCornerCardFlipMachineScript + bg_event 18, 6, BGEVENT_READ, GoldenrodGameCornerCardFlipMachineScript + bg_event 18, 7, BGEVENT_READ, GoldenrodGameCornerCardFlipMachineScript + bg_event 18, 8, BGEVENT_READ, GoldenrodGameCornerCardFlipMachineScript + bg_event 18, 9, BGEVENT_READ, GoldenrodGameCornerCardFlipMachineScript + bg_event 18, 10, BGEVENT_READ, GoldenrodGameCornerCardFlipMachineScript + bg_event 18, 11, BGEVENT_RIGHT, GoldenrodGameCornerCardFlipMachineScript + + db 11 ; object events + object_event 3, 2, SPRITE_CLERK, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_RED, OBJECTTYPE_SCRIPT, 0, GoldenrodGameCornerCoinVendorScript, -1 + object_event 16, 2, SPRITE_RECEPTIONIST, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_RED, OBJECTTYPE_SCRIPT, 0, GoldenrodGameCornerTMVendorScript, -1 + object_event 18, 2, SPRITE_RECEPTIONIST, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_RED, OBJECTTYPE_SCRIPT, 0, GoldenrodGameCornerPrizeMonVendorScript, -1 + object_event 8, 7, SPRITE_PHARMACIST, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, NITE, PAL_NPC_BLUE, OBJECTTYPE_SCRIPT, 0, GoldenrodGameCornerPharmacistScript, -1 + object_event 8, 7, SPRITE_PHARMACIST, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, 4, PAL_NPC_BLUE, OBJECTTYPE_SCRIPT, 0, GoldenrodGameCornerPharmacistScript, -1 + object_event 11, 10, SPRITE_POKEFAN_M, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, PAL_NPC_BROWN, OBJECTTYPE_SCRIPT, 0, GoldenrodGameCornerPokefanM1Script, -1 + object_event 14, 8, SPRITE_COOLTRAINER_M, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, PAL_NPC_BLUE, OBJECTTYPE_SCRIPT, 0, GoldenrodGameCornerCooltrainerMScript, -1 + object_event 17, 6, SPRITE_POKEFAN_F, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, PAL_NPC_RED, OBJECTTYPE_SCRIPT, 0, GoldenrodGameCornerPokefanFScript, -1 + object_event 10, 3, SPRITE_COOLTRAINER_F, SPRITEMOVEDATA_WANDER, 2, 1, -1, -1, PAL_NPC_GREEN, OBJECTTYPE_SCRIPT, 0, GoldenrodGameCornerCooltrainerFScript, -1 + object_event 5, 10, SPRITE_GENTLEMAN, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, PAL_NPC_BLUE, OBJECTTYPE_SCRIPT, 0, GoldenrodGameCornerGentlemanScript, -1 + object_event 2, 9, SPRITE_POKEFAN_M, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, PAL_NPC_BROWN, OBJECTTYPE_SCRIPT, 0, GoldenrodGameCornerPokefanM2Script, -1 |