diff --git a/constants/event_constants.asm b/constants/event_constants.asm index 74555d6f..f585c874 100644 --- a/constants/event_constants.asm +++ b/constants/event_constants.asm @@ -786,6 +786,8 @@ const EVENT_BEAT_CELADON_UNIVERSITY_OUTSIDE_TRAINER_1 const EVENT_BEAT_CELADON_UNIVERSITY_OUTSIDE_TRAINER_2 const EVENT_BEAT_CELADON_UNIVERSITY_OUTSIDE_TRAINER_3 + const EVENT_BOUGHT_CUBONE + const EVENT_BOUGHT_DITTO ; Cinnabar Volcano events const_next $9F0 diff --git a/constants/map_constants.asm b/constants/map_constants.asm index 9c462be1..54a34830 100644 --- a/constants/map_constants.asm +++ b/constants/map_constants.asm @@ -262,7 +262,7 @@ DEF FIRST_INDOOR_MAP EQU const_value mapconst COLOSSEUM, 4, 5 ; $F0 mapconst CELADON_UNIVERSITY_OUTSIDE, 20, 21 ; $F1 - was UNUSED_MAP_F1 mapconst CELADON_UNIVERSITY_INSIDE, 10, 11 ; $F2 - was UNUSED_MAP_F2 - mapconst UNUSED_MAP_F3, 0, 0 ; $F3 + mapconst CELADON_UNIVERSITY_POKECENTER, 4, 7 ; $F3 - was UNUSED_MAP_F3 mapconst UNUSED_MAP_F4, 0, 0 ; $F4 mapconst LORELEIS_ROOM, 6, 5 ; $F5 mapconst BRUNOS_ROOM, 6, 5 ; $F6 diff --git a/constants/sprite_constants.asm b/constants/sprite_constants.asm index 090a2ae6..b4c01552 100644 --- a/constants/sprite_constants.asm +++ b/constants/sprite_constants.asm @@ -51,7 +51,7 @@ const SPRITE_FISHER ; $2f const SPRITE_KOGA ; $30 const SPRITE_GUARD ; $31 - const SPRITE_UNUSED_GUARD ; $32 + const SPRITE_FAKE_TREE ; $32 - fake tree const SPRITE_MOM ; $33 const SPRITE_BALDING_GUY ; $34 const SPRITE_LITTLE_BOY ; $35 diff --git a/data/maps/headers/CeladonUniversityPokecenter.asm b/data/maps/headers/CeladonUniversityPokecenter.asm new file mode 100644 index 00000000..38ed0f0e --- /dev/null +++ b/data/maps/headers/CeladonUniversityPokecenter.asm @@ -0,0 +1,2 @@ + map_header CeladonUniversityPokecenter, CELADON_UNIVERSITY_POKECENTER, POKECENTER, 0 + end_map_header diff --git a/data/maps/map_header_banks.asm b/data/maps/map_header_banks.asm index d4796bf6..774a191c 100644 --- a/data/maps/map_header_banks.asm +++ b/data/maps/map_header_banks.asm @@ -244,7 +244,7 @@ MapHeaderBanks:: db BANK(Colosseum_h) db BANK(CeladonUniversityOutside_h) ; $11 UNUSED_MAP_F1 db BANK(CeladonUniversityInside_h) ; $11 UNUSED_MAP_F2 - db $11 ; UNUSED_MAP_F3 + db BANK(CeladonUniversityPokecenter_h) ; UNUSED_MAP_F3 db $11 ; UNUSED_MAP_F4 db BANK(LoreleisRoom_h) db BANK(BrunosRoom_h) diff --git a/data/maps/map_header_pointers.asm b/data/maps/map_header_pointers.asm index ed1b6e6c..31d67833 100644 --- a/data/maps/map_header_pointers.asm +++ b/data/maps/map_header_pointers.asm @@ -244,7 +244,7 @@ MapHeaderPointers:: dw Colosseum_h dw CeladonUniversityOutside_h ; UNUSED_MAP_F1 dw CeladonUniversityInside_h ; UNUSED_MAP_F2 - dw SilphCo2F_h ; UNUSED_MAP_F3 + dw CeladonUniversityPokecenter_h ; UNUSED_MAP_F3 dw SilphCo2F_h ; UNUSED_MAP_F4 dw LoreleisRoom_h dw BrunosRoom_h diff --git a/data/maps/objects/CeladonUniversityOutside.asm b/data/maps/objects/CeladonUniversityOutside.asm index 3e20a37b..1285b07e 100644 --- a/data/maps/objects/CeladonUniversityOutside.asm +++ b/data/maps/objects/CeladonUniversityOutside.asm @@ -3,12 +3,18 @@ CeladonUniversityOutside_Object: def_warp_events warp_event 20, 13, CELADON_UNIVERSITY_INSIDE, 1 + warp_event 15, 25, CELADON_UNIVERSITY_POKECENTER, 1 def_bg_events def_object_events - object_event 19, 30, SPRITE_COOLTRAINER_F, STAY, RIGHT, 1, OPP_JR_TRAINER_F, 3 - object_event 22, 26, SPRITE_SUPER_NERD, STAY, LEFT, 2, OPP_SUPER_NERD, 6 - object_event 9, 6, SPRITE_BALDING_GUY, STAY, DOWN, 3, OPP_ENGINEER, 1 + object_event 19, 30, SPRITE_COOLTRAINER_F, WALK, RIGHT, 1, OPP_JR_TRAINER_F, 4 + object_event 22, 26, SPRITE_SUPER_NERD, WALK, LEFT, 2, OPP_SUPER_NERD, 6 + object_event 9, 6, SPRITE_GAMBLER, WALK, DOWN, 3, OPP_ENGINEER, 1 + object_event 25, 20, SPRITE_SUPER_NERD, WALK, DOWN, 4, OPP_SUPER_NERD, 7 + object_event 4, 27, SPRITE_ROCKER, WALK, LEFT, 5 + object_event 33, 16, SPRITE_BEAUTY, WALK, DOWN, 6 + object_event 7, 22, SPRITE_SEEL, WALK, RIGHT, 7 + object_event 34, 25, SPRITE_SEEL, WALK, LEFT, 7 def_warps_to CELADON_UNIVERSITY_OUTSIDE \ No newline at end of file diff --git a/data/maps/objects/CeladonUniversityPokecenter.asm b/data/maps/objects/CeladonUniversityPokecenter.asm new file mode 100644 index 00000000..36080fb5 --- /dev/null +++ b/data/maps/objects/CeladonUniversityPokecenter.asm @@ -0,0 +1,16 @@ +CeladonUniversityPokecenter_Object: + db $0 ; border block + + def_warp_events + warp_event 3, 7, CELADON_UNIVERSITY_OUTSIDE, 2 + warp_event 4, 7, CELADON_UNIVERSITY_OUTSIDE, 2 + + def_bg_events + + def_object_events + object_event 3, 1, SPRITE_NURSE, STAY, DOWN, 1 ; person + object_event 8, 3, SPRITE_SCIENTIST, STAY, LEFT_RIGHT, 2 ; person + object_event 10, 5, SPRITE_MIDDLE_AGED_MAN, WALK, ANY_DIR, 3 ; spamton + object_event 11, 2, SPRITE_LINK_RECEPTIONIST, STAY, DOWN, 4 ; person + + def_warps_to CELADON_UNIVERSITY_POKECENTER diff --git a/data/maps/objects/RockTunnelPokecenter.asm b/data/maps/objects/RockTunnelPokecenter.asm index 27c22252..a1daf723 100644 --- a/data/maps/objects/RockTunnelPokecenter.asm +++ b/data/maps/objects/RockTunnelPokecenter.asm @@ -12,5 +12,6 @@ RockTunnelPokecenter_Object: object_event 7, 3, SPRITE_GENTLEMAN, WALK, LEFT_RIGHT, 2 ; person object_event 2, 5, SPRITE_FISHER, STAY, NONE, 3 ; person object_event 11, 2, SPRITE_LINK_RECEPTIONIST, STAY, DOWN, 4 ; person + object_event 9, 6, SPRITE_MIDDLE_AGED_MAN, STAY, DOWN, 5 ; spamton def_warps_to ROCK_TUNNEL_POKECENTER diff --git a/data/maps/songs.asm b/data/maps/songs.asm index 38f408ee..c98ab4ca 100644 --- a/data/maps/songs.asm +++ b/data/maps/songs.asm @@ -243,7 +243,7 @@ MapSongBanks:: db MUSIC_CELADON, BANK(Music_Celadon) ; COLOSSEUM db MUSIC_CELADON, BANK(Music_Celadon) ; UNUSED_MAP_F1 / Celadon University Outside db MUSIC_OAKS_LAB, BANK(Music_OaksLab) ; UNUSED_MAP_F2 / Celadon University Outside - db MUSIC_SILPH_CO, BANK(Music_SilphCo) ; UNUSED_MAP_F3 + db MUSIC_POKECENTER, BANK(Music_Pokecenter) ; UNUSED_MAP_F3 / Celadon University Pokecenter db MUSIC_SILPH_CO, BANK(Music_SilphCo) ; UNUSED_MAP_F4 db MUSIC_GYM, BANK(Music_Gym) ; LORELEIS_ROOM db MUSIC_DUNGEON1, BANK(Music_Dungeon1) ; BRUNOS_ROOM diff --git a/data/maps/sprite_sets.asm b/data/maps/sprite_sets.asm index 755ed2fc..6f988c43 100644 --- a/data/maps/sprite_sets.asm +++ b/data/maps/sprite_sets.asm @@ -93,7 +93,7 @@ DEF SPRITE_SET_LENGTH EQU 9 + 2 db SPRITE_COOLTRAINER_F db SPRITE_COOLTRAINER_M db SPRITE_POKE_BALL - db SPRITE_UNUSED_GAMBLER_ASLEEP_2 + db SPRITE_FAKE_TREE ; fake tree, used to be unused sleeping gambler assert_table_length SPRITE_SET_LENGTH ; sprite set $03 @@ -108,7 +108,7 @@ DEF SPRITE_SET_LENGTH EQU 9 + 2 db SPRITE_COOLTRAINER_M db SPRITE_GUARD db SPRITE_POKE_BALL - db SPRITE_UNUSED_GAMBLER_ASLEEP_2 + db SPRITE_FAKE_TREE ; fake tree, used to be unused sleeping gambler assert_table_length SPRITE_SET_LENGTH ; sprite set $04 @@ -123,7 +123,7 @@ DEF SPRITE_SET_LENGTH EQU 9 + 2 db SPRITE_COOLTRAINER_F db SPRITE_COOLTRAINER_M db SPRITE_POKE_BALL - db SPRITE_UNUSED_GAMBLER_ASLEEP_2 + db SPRITE_FAKE_TREE ; fake tree, used to be unused sleeping gambler assert_table_length SPRITE_SET_LENGTH ; sprite set $05 @@ -153,7 +153,7 @@ DEF SPRITE_SET_LENGTH EQU 9 + 2 db SPRITE_GUARD db SPRITE_GAMBLER db SPRITE_POKE_BALL - db SPRITE_UNUSED_GAMBLER_ASLEEP_2 + db SPRITE_FAKE_TREE ; fake tree, used to be unused sleeping gambler assert_table_length SPRITE_SET_LENGTH ; sprite set $07 @@ -168,7 +168,7 @@ DEF SPRITE_SET_LENGTH EQU 9 + 2 db SPRITE_COOLTRAINER_M db SPRITE_MONSTER db SPRITE_POKE_BALL - db SPRITE_UNUSED_GAMBLER_ASLEEP_2 + db SPRITE_FAKE_TREE ; fake tree, used to be unused sleeping gambler assert_table_length SPRITE_SET_LENGTH ; sprite set $08 diff --git a/data/sprites/sprites.asm b/data/sprites/sprites.asm index 9dd4b254..20c09c1f 100644 --- a/data/sprites/sprites.asm +++ b/data/sprites/sprites.asm @@ -56,7 +56,7 @@ SpriteSheetPointerTable: overworld_sprite FisherSprite, 12 ; SPRITE_FISHER overworld_sprite KogaSprite, 12 ; SPRITE_KOGA overworld_sprite GuardSprite, 12 ; SPRITE_GUARD - overworld_sprite GuardSprite, 12 ; SPRITE_UNUSED_GUARD + overworld_sprite TreeSprite, 4 ; SPRITE_FAKE_TREE - used to be unused guard, now fake tree overworld_sprite MomSprite, 12 ; SPRITE_MOM overworld_sprite BaldingGuySprite, 12 ; SPRITE_BALDING_GUY overworld_sprite LittleBoySprite, 12 ; SPRITE_LITTLE_BOY diff --git a/data/trainers/parties.asm b/data/trainers/parties.asm index fbf93e9e..472c5f10 100644 --- a/data/trainers/parties.asm +++ b/data/trainers/parties.asm @@ -168,7 +168,7 @@ JrTrainerFData: db 16, RATTATA, PIKACHU, 0 db 16, PIDGEY, PIDGEY, PIDGEY, 0 ; Unused - used in celadon university - db 22, BULBASAUR, 0 + db 22, BULBASAUR, CHARMANDER, SQUIRTLE, 0 ; Route 9 db 18, ODDISH, BELLSPROUT, ODDISH, BELLSPROUT, 0 db 23, MEOWTH, 0 @@ -222,8 +222,8 @@ SuperNerdData: db 22, GRIMER, MUK, GRIMER, 0 db 26, KOFFING, 0 ; Unused - db 22, KOFFING, MAGNEMITE, WEEZING, 0 ; - used in celadon university - db 20, MAGNEMITE, MAGNEMITE, KOFFING, MAGNEMITE, 0 + db 30, PORYGON, 0 ; - used in celadon university + db 25, MAGNETITE, ELECTRODE, KABUTO, OMANYTE, 0 ; - used in celadon university db 24, MAGNEMITE, VOLTORB, 0 ; Cinnabar Gym db 36, VULPIX, VULPIX, NINETALES, 0 @@ -303,7 +303,7 @@ BurglarData: EngineerData: ; Unused - used in celadon university - db 21, VOLTORB, MAGNEMITE, 0 + db 36, GOLEM, 0 ; Route 11 db 21, MAGNEMITE, 0 db 18, MAGNEMITE, MAGNEMITE, MAGNETON, 0 @@ -372,7 +372,7 @@ GamblerData: db 18, GROWLITHE, VULPIX, 0 ; Route 8 db 22, POLIWAG, POLIWAG, POLIWHIRL, 0 -; Unused - used in celadon university +; Unused - may be used in celadon university db 22, ONIX, GEODUDE, GRAVELER, 0 ; Route 8 db 24, GROWLITHE, VULPIX, 0 diff --git a/gfx/sprites.asm b/gfx/sprites.asm index 22f2dcf4..accfc7cc 100644 --- a/gfx/sprites.asm +++ b/gfx/sprites.asm @@ -75,3 +75,4 @@ SeelSprite:: INCBIN "gfx/sprites/seel.2bpp" SECTION "NPC Sprites 3", ROMX CatSprite:: INCBIN "gfx/sprites/cat.2bpp" +TreeSprite:: INCBIN "gfx/sprites/fake_tree.2bpp" diff --git a/gfx/sprites/fake_tree.png b/gfx/sprites/fake_tree.png new file mode 100644 index 00000000..9245533c Binary files /dev/null and b/gfx/sprites/fake_tree.png differ diff --git a/maps.asm b/maps.asm index e6dea652..7db76f20 100644 --- a/maps.asm +++ b/maps.asm @@ -1237,3 +1237,8 @@ INCLUDE "data/maps/headers/CinnabarVolcano.asm" INCLUDE "scripts/CinnabarVolcano.asm" INCLUDE "data/maps/objects/CinnabarVolcano.asm" CinnabarVolcano_Blocks: INCBIN "maps/CinnabarVolcano.blk" + +INCLUDE "data/maps/headers/CeladonUniversityPokecenter.asm" +INCLUDE "scripts/CeladonUniversityPokecenter.asm" +INCLUDE "data/maps/objects/CeladonUniversityPokecenter.asm" +CeladonUniversityPokecenter_Blocks: INCBIN "maps/CeladonUniversityPokecenter.blk" \ No newline at end of file diff --git a/maps/CeladonUniversityOutside.blk b/maps/CeladonUniversityOutside.blk index d2a6dd3c..158532d0 100644 Binary files a/maps/CeladonUniversityOutside.blk and b/maps/CeladonUniversityOutside.blk differ diff --git a/maps/CeladonUniversityPokecenter.blk b/maps/CeladonUniversityPokecenter.blk new file mode 100644 index 00000000..9641efe4 --- /dev/null +++ b/maps/CeladonUniversityPokecenter.blk @@ -0,0 +1,2 @@ +  !"# +  \ No newline at end of file diff --git a/ram/wram.asm b/ram/wram.asm index dbd3d423..617f6763 100644 --- a/ram/wram.asm +++ b/ram/wram.asm @@ -2000,6 +2000,7 @@ wPokemonMansion3FCurScript:: db wPokemonMansionB1FCurScript:: db wDiglettsCaveCurScript:: db wCinnabarVolcanoCurScript:: db +wCeladonUniversityOutsideCurScript:: db wVictoryRoad2FCurScript:: db wVictoryRoad3FCurScript:: db ds 1 diff --git a/scripts/CeladonUniversityOutside.asm b/scripts/CeladonUniversityOutside.asm index d6d54d94..35b73687 100644 --- a/scripts/CeladonUniversityOutside.asm +++ b/scripts/CeladonUniversityOutside.asm @@ -1,8 +1,8 @@ CeladonUniversityOutside_Script: - jp EnableAutoTextBoxDrawing + call EnableAutoTextBoxDrawing ld hl, CeladonUniversityOutsideTrainerHeaders ld de, CeladonUniversityOutside_ScriptPointers - ; ld a, [wCeladonUniversityOutsideCurScript] + ; ld a, [wCeladonUniversityOutsideCurScript] these caused the trainers to have lines of sight? ; call ExecuteCurMapScriptInTable ; ld [wCeladonUniversityOutsideCurScript], a ret @@ -14,6 +14,12 @@ CeladonUniversityOutside_ScriptPointers: CeladonUniversityOutside_TextPointers: dw CeladonUniversityOutsideText1 + dw CeladonUniversityOutsideText2 + dw CeladonUniversityOutsideText3 + dw CeladonUniversityOutsideText4 + dw CeladonUniversityOutsideNPC1 + dw CeladonUniversityOutsideNPC2 + dw CeladonMagikarp CeladonUniversityOutsideTrainerHeaders: def_trainers 2 @@ -23,13 +29,97 @@ CeladonUniversityOutsideTrainerHeader1: trainer EVENT_BEAT_CELADON_UNIVERSITY_OUTSIDE_TRAINER_1, 3, CeladonUniversityOutsideBattleText1, CeladonUniversityOutsideEndBattleText1, CeladonUniversityOutsideAfterBattleText1 CeladonUniversityOutsideTrainerHeader2: trainer EVENT_BEAT_CELADON_UNIVERSITY_OUTSIDE_TRAINER_2, 3, CeladonUniversityOutsideBattleText1, CeladonUniversityOutsideEndBattleText1, CeladonUniversityOutsideAfterBattleText1 +CeladonUniversityOutsideTrainerHeader3: + trainer EVENT_BEAT_CELADON_UNIVERSITY_OUTSIDE_TRAINER_3, 3, CeladonUniversityOutsideBattleText1, CeladonUniversityOutsideEndBattleText1, CeladonUniversityOutsideAfterBattleText1 db -1 ; end -CeladonUniversityOutsideText1: ; trainer 0 +CeladonUniversityOutsideText1: ; Starter girl text_asm + ld hl, CeladonUniversityOutsideYesNo1 + call PrintText + call YesNoChoice + ld a, [wCurrentMenuItem] + and a + jr nz, .refused ld hl, CeladonUniversityOutsideTrainerHeader0 call TalkToTrainer jp TextScriptEnd + jr .done + .refused + ld hl, CeladonUniversityRefuse + jr .done + .done + ld hl, CeladonUniversityOutsideAfterBattleText1 + call PrintText + jp TextScriptEnd + +CeladonUniversityOutsideText2: ; Porygon guy + text_asm + ld hl, CeladonUniversityOutsideYesNo2 + call PrintText + call YesNoChoice + ld a, [wCurrentMenuItem] + and a + jr nz, .refused + ld hl, CeladonUniversityOutsideTrainerHeader0 + call TalkToTrainer + jp TextScriptEnd + jr .done + .refused + ld hl, CeladonUniversityRefuse + jr .done + .done + ld hl, CeladonUniversityOutsideAfterBattleText1 + call PrintText + jp TextScriptEnd + +CeladonUniversityOutsideText3: ; Golem guy + text_asm + ld hl, CeladonUniversityOutsideYesNo3 + call PrintText + call YesNoChoice + ld a, [wCurrentMenuItem] + and a + jr nz, .refused + ld hl, CeladonUniversityOutsideTrainerHeader0 + call TalkToTrainer + jp TextScriptEnd + jr .done + .refused + ld hl, CeladonUniversityRefuse + jr .done + .done + ld hl, CeladonUniversityOutsideAfterBattleText1 + call PrintText + jp TextScriptEnd + +CeladonUniversityOutsideText4: ; Mt Moon guy + text_asm + ld hl, CeladonUniversityOutsideYesNo4 + call PrintText + call YesNoChoice + ld a, [wCurrentMenuItem] + and a + jr nz, .refused + ld hl, CeladonUniversityOutsideTrainerHeader0 + call TalkToTrainer + jp TextScriptEnd + jr .done + .refused + ld hl, CeladonUniversityRefuse + jr .done + .done + ld hl, CeladonUniversityOutsideAfterBattleText1 + call PrintText + jp TextScriptEnd + +CeladonUniversityOutsideNPC1: + text_far _CeladonUniversityOutsideNPC1 + text_end + +CeladonUniversityOutsideNPC2: + text_far _CeladonUniversityOutsideNPC2 + text_end CeladonUniversityOutsideBattleText1: text_far _CeladonUniversityOutsideBattleText1 @@ -43,4 +133,32 @@ CeladonUniversityOutsideAfterBattleText1: text_far _CeladonUniversityOutsideAfterBattleText1 text_end +CeladonUniversityOutsideYesNo1: + text_far _CeladonUniversityOutsideYesNo1 + text_end + +CeladonUniversityOutsideYesNo2: + text_far _CeladonUniversityOutsideYesNo2 + text_end + +CeladonUniversityOutsideYesNo3: + text_far _CeladonUniversityOutsideYesNo3 + text_end + +CeladonUniversityOutsideYesNo4: + text_far _CeladonUniversityOutsideYesNo4 + text_end + +CeladonUniversityRefuse: + text_far _CeladonUniversityRefuse + text_end + +CeladonMagikarp: + text_far _CeladonMagikarp + text_asm + ld a, MAGIKARP + call PlayCry + call WaitForSoundToFinish + jp TextScriptEnd + text_end ; unused diff --git a/scripts/CeladonUniversityPokecenter.asm b/scripts/CeladonUniversityPokecenter.asm new file mode 100644 index 00000000..b4fbbad5 --- /dev/null +++ b/scripts/CeladonUniversityPokecenter.asm @@ -0,0 +1,84 @@ +CeladonUniversityPokecenter_Script: + call Serial_TryEstablishingExternallyClockedConnection + jp EnableAutoTextBoxDrawing + +CeladonUniversityPokecenter_TextPointers: + dw CeladonUniversityHealNurseText + dw CeladonUniversityPokecenterText2 + dw CuboneSalesmanText + dw CeladonUniversityTradeNurseText + +CeladonUniversityTradeNurseText: + script_cable_club_receptionist + +CeladonUniversityHealNurseText: + script_pokecenter_nurse + +CeladonUniversityPokecenterText2: + text_far _CeladonUniversityPokecenterText4 + text_end + +CuboneSalesmanText: + text_asm + CheckEvent EVENT_BOUGHT_CUBONE, 1 + jp c, .alreadyBoughtCubone + ld hl, .Text1 + call PrintText + ld a, MONEY_BOX + ld [wTextBoxID], a + call DisplayTextBoxID + call YesNoChoice + ld a, [wCurrentMenuItem] + and a + jp nz, .choseNo + ldh [hMoney], a + ldh [hMoney + 2], a + ld a, $5 + ldh [hMoney + 1], a + call HasEnoughMoney + jr nc, .enoughMoney + ld hl, .NoMoneyText + jr .printText +.enoughMoney + lb bc, CUBONE, 17 + call GivePokemon + jr nc, .done + xor a + ld [wPriceTemp], a + ld [wPriceTemp + 2], a + ld a, $5 + ld [wPriceTemp + 1], a + ld hl, wPriceTemp + 2 + ld de, wPlayerMoney + 2 + ld c, $3 + predef SubBCDPredef + ld a, MONEY_BOX + ld [wTextBoxID], a + call DisplayTextBoxID + SetEvent EVENT_BOUGHT_CUBONE + jr .done +.choseNo + ld hl, .RefuseText + jr .printText +.alreadyBoughtCubone + ld hl, .Text2 +.printText + call PrintText +.done + jp TextScriptEnd + +.Text1 + text_far _CuboneSalesmanText1 + text_end + +.RefuseText + text_far _CuboneSalesmanNoText + text_end + +.NoMoneyText + text_far _CuboneSalesmanNoMoneyText + text_end + +.Text2 + text_far _CuboneSalesmanText2 + text_end diff --git a/scripts/RockTunnelPokecenter.asm b/scripts/RockTunnelPokecenter.asm index 755bb8f8..4ce51d36 100644 --- a/scripts/RockTunnelPokecenter.asm +++ b/scripts/RockTunnelPokecenter.asm @@ -7,6 +7,7 @@ RockTunnelPokecenter_TextPointers: dw RockTunnelPokecenterText2 dw RockTunnelPokecenterText3 dw RockTunnelTradeNurseText + dw DittoSalesmanText RockTunnelHealNurseText: script_pokecenter_nurse @@ -21,3 +22,68 @@ RockTunnelPokecenterText3: RockTunnelTradeNurseText: script_cable_club_receptionist + +DittoSalesmanText: + text_asm + CheckEvent EVENT_BOUGHT_DITTO, 1 + jp c, .alreadyBoughtDitto + ld hl, .Text1 + call PrintText + ld a, MONEY_BOX + ld [wTextBoxID], a + call DisplayTextBoxID + call YesNoChoice + ld a, [wCurrentMenuItem] + and a + jp nz, .choseNo + ldh [hMoney], a + ldh [hMoney + 2], a + ld a, $5 + ldh [hMoney + 1], a + call HasEnoughMoney + jr nc, .enoughMoney + ld hl, .NoMoneyText + jr .printText +.enoughMoney + lb bc, DITTO, 23 + call GivePokemon + jr nc, .done + xor a + ld [wPriceTemp], a + ld [wPriceTemp + 2], a + ld a, $5 + ld [wPriceTemp + 1], a + ld hl, wPriceTemp + 2 + ld de, wPlayerMoney + 2 + ld c, $3 + predef SubBCDPredef + ld a, MONEY_BOX + ld [wTextBoxID], a + call DisplayTextBoxID + SetEvent EVENT_BOUGHT_DITTO + jr .done +.choseNo + ld hl, .RefuseText + jr .printText +.alreadyBoughtDitto + ld hl, .Text2 +.printText + call PrintText +.done + jp TextScriptEnd + +.Text1 + text_far _DittoSalesmanText1 + text_end + +.RefuseText + text_far _DittoSalesmanNoText + text_end + +.NoMoneyText + text_far _DittoSalesmanNoMoneyText + text_end + +.Text2 + text_far _DittoSalesmanText2 + text_end \ No newline at end of file diff --git a/text.asm b/text.asm index d06334fd..ba3a9718 100644 --- a/text.asm +++ b/text.asm @@ -273,6 +273,7 @@ INCLUDE "data/text/text_7.asm" INCLUDE "data/pokemon/new_dex_text.asm" INCLUDE "text/CeladonUniversityOutside.asm" INCLUDE "text/CeladonUniversityInside.asm" +INCLUDE "text/CeladonUniversityPokecenter.asm" INCLUDE "text/CinnabarVolcano.asm" SECTION "Pokédex Text", ROMX diff --git a/text/CeladonUniversityInside.asm b/text/CeladonUniversityInside.asm index a83bf987..4c032572 100644 --- a/text/CeladonUniversityInside.asm +++ b/text/CeladonUniversityInside.asm @@ -7,14 +7,14 @@ _CeladonUniversityInsideText1:: para "My grandfather" line "created the" - cont "#BALL!" + cont "# BALL!" done _CeladonUniversityInsideText2:: text "It's an old letter" line "about selling the" - para "#BALL patent" + para "# BALL patent" line "to SILPH CO." done diff --git a/text/CeladonUniversityOutside.asm b/text/CeladonUniversityOutside.asm index a705a7c3..d71851b9 100644 --- a/text/CeladonUniversityOutside.asm +++ b/text/CeladonUniversityOutside.asm @@ -1,6 +1,6 @@ -_CeladonUniversityOutsideYesNo:: +_CeladonUniversityOutsideYesNo1:: text "I love battles!" - cont "Wanna go?" + line "Wanna go?" done _CeladonUniversityRefuse:: @@ -12,10 +12,66 @@ _CeladonUniversityOutsideBattleText1:: done _CeladonUniversityOutsideEndBattleText1:: - text "Darn! You" - line "beat me again!" + text "Darn!" + line "You beat me!" prompt _CeladonUniversityOutsideAfterBattleText1:: - text "!" - done \ No newline at end of file + text "Aww! Maybe next" + line "time!" + done + +_CeladonUniversityOutsideYesNo2:: + text "I've been working" + line "on a digital" + + para "on a digital" + line "#MON. Want to" + + para "help me test it" + line "for my thesis?" + + done + +_CeladonUniversityOutsideYesNo3:: + text "I had the TRADER" + line "lend me a hand." + + para "I could beat" + line "anyone in the" + cont "UNIVERSITY!" + + para "Try me!" + + done + +_CeladonUniversityOutsideYesNo4:: + text "Hey! I met you" + line "in MT. MOON!" + + para "Want a rematch?" + done + +_CeladonUniversityOutsideNPC1:: + text "I qualified for" + line "this UNIVERSITY" + cont "through a" + cont "magazine." + + done + +_CeladonUniversityOutsideNPC2:: + text "I got referred" + line "after studying" + cont "with ERIKA." + + para "Her GRASS-type" + line "knowledge is" + cont "astounding!" + + done + +_CeladonMagikarp:: + text "MAGIKARP: Blub..." + + done diff --git a/text/CeladonUniversityPokecenter.asm b/text/CeladonUniversityPokecenter.asm new file mode 100644 index 00000000..be91dddd --- /dev/null +++ b/text/CeladonUniversityPokecenter.asm @@ -0,0 +1,48 @@ +_CeladonUniversityPokecenterText4:: + text "I think PORYGON" + line "should be" + cont "improved." + + para "We need more" + line "funding from" + cont "SILPH CO.!" + + done + +_CuboneSalesmanText1:: + text "MAN: Hey there," + line "BIG SHOT TRAINER!" + + para "Have I got the" + line "deal for you!" + + para "Strike fear into" + line "the hearts of" + cont "your foes with" + cont "CUBONE today!" + + para "See that skull" + line "on its face?" + + para "Just ¥500! You" + line "can't refuse" + cont "an offer like" + cont "that!" + + done + +_CuboneSalesmanNoText:: + text "No? It's a" + line "limited time" + cont "offer, pal!" + done + +_CuboneSalesmanNoMoneyText:: + text "You'll need more" + line "money than that!" + done + +_CuboneSalesmanText2:: + text "MAN: As usual, no" + line "refunds!" + done diff --git a/text/RockTunnelPokecenter.asm b/text/RockTunnelPokecenter.asm index 0fc249ff..a1abab8b 100644 --- a/text/RockTunnelPokecenter.asm +++ b/text/RockTunnelPokecenter.asm @@ -11,3 +11,42 @@ _RockTunnelPokecenterText3:: text "I sold a useless" line "NUGGET for ¥5000!" done + +_DittoSalesmanText1:: + text "MAN: Hey there," + line "kid! Nice to" + cont "see you again!" + + para "I have a very" + line "special deal" + cont "for you again!" + + para "For a limited" + line "time, you can" + cont "get access to" + cont "any #MON" + cont "in the world!" + + para "Every single" + line "#MON, for just" + cont "¥500! You can't" + cont "refuse that!" + + done + +_DittoSalesmanNoText:: + text "No? Time's" + line "ticking!" + done + +_DittoSalesmanNoMoneyText:: + text "You'll need more" + line "money than that!" + done + +_DittoSalesmanText2:: + text "MAN: Sold as seen!" + line "You can't get" + cont "every #MON" + cont "at the same time!" + done