diff --git a/constants/event_flags.asm b/constants/event_flags.asm index dffe309f2..a72c6f302 100644 --- a/constants/event_flags.asm +++ b/constants/event_flags.asm @@ -1740,7 +1740,11 @@ const EVENT_VERMILION_GYM_SWITCH_1 const EVENT_VERMILION_GYM_SWITCH_2 const EVENT_BEAT_RED -; Unused: next 25 events + const EVENT_BEAT_CHAMPION_LANCE_REMATCH + const EVENT_GOT_SILVER_TROPHY + const EVENT_GOT_GOLD_TROPHY + const EVENT_NEW_BARK_TOWN_PACKAGE +; Unused: next 22 events const_next 2048 DEF NUM_EVENTS EQU const_value ; 800 diff --git a/constants/sprite_constants.asm b/constants/sprite_constants.asm index f5f3723e4..02270dbc3 100644 --- a/constants/sprite_constants.asm +++ b/constants/sprite_constants.asm @@ -114,69 +114,71 @@ const SPRITE_CLEFAIRY_MOVE ; 70 const SPRITE_TINYMUSHROOM ; 71 const SPRITE_BIG_MUSHROOM ; 72 + const SPRITE_UNOWN_DOLL ; 73 + const SPRITE_PACKAGE ; 74 DEF NUM_OVERWORLD_SPRITES EQU const_value - 1 ; SpriteMons indexes (see data/sprites/sprite_mons.asm) const_next $80 DEF SPRITE_POKEMON EQU const_value - const SPRITE_UNOWN ; 70 - const SPRITE_GEODUDE ; 71 - const SPRITE_GROWLITHE ; 72 - const SPRITE_WEEDLE ; 73 - const SPRITE_SHELLDER ; 74 - const SPRITE_ODDISH ; 75 - const SPRITE_GENGAR ; 76 - const SPRITE_ZUBAT ; 77 - const SPRITE_MAGIKARP ; 78 - const SPRITE_SQUIRTLE ; 79 - const SPRITE_MEOWTH ; 7a - const SPRITE_BUTTERFREE ; 7b - const SPRITE_DIGLETT ; 7c - const SPRITE_POLIWAG ; 7d - const SPRITE_PIKACHU ; 7e - const SPRITE_CLEFAIRY ; 7f - const SPRITE_CHARMANDER ; 80 - const SPRITE_MEWTWO ; 81 - const SPRITE_STARMIE ; 82 - const SPRITE_BULBASAUR ; 83 - const SPRITE_JIGGLYPUFF ; 84 - const SPRITE_GRIMER ; 85 - const SPRITE_DRATINI ; 86 - const SPRITE_ABRA ; 87 - const SPRITE_TENTACOOL ; 88 - const SPRITE_MILTANK ; 89 - const SPRITE_MACHOP ; 8a - const SPRITE_VOLTORB ; 8b - const SPRITE_LAPRAS ; 8c - const SPRITE_RHYDON ; 8d - const SPRITE_MOLTRES ; 8e - const SPRITE_SNORLAX ; 8f - const SPRITE_GYARADOS ; 90 - const SPRITE_LUGIA ; 91 - const SPRITE_HO_OH ; 92 - const SPRITE_PIDGEY ; 93 - const SPRITE_FARFETCH_D ; 94 - const SPRITE_MACHOKE ; 95 - const SPRITE_PERSIAN ; 96 - const SPRITE_AMPHAROS ; 97 - const SPRITE_ELECTRODE ; 98 - const SPRITE_MURKROW ; 99 - const SPRITE_RATTATA ; 9a - const SPRITE_SPEAROW ; 9b - const SPRITE_NIDORAN_M ; 9c - const SPRITE_KANGASKHAN ; 9d - const SPRITE_SLOWBRO ; 9e - const SPRITE_ZAPDOS ; 9f - const SPRITE_NIDORINO ; a0 - const SPRITE_PSYDUCK ; a1 - const SPRITE_BAYLEEF ; a2 - const SPRITE_POLIWRATH ; a3 - const SPRITE_NIDORAN_F ; a4 - const SPRITE_FEAROW ; a5 - const SPRITE_ARTICUNO ; a6 - const SPRITE_DODRIO ; a6 - const SPRITE_BLISSEY ; a7 - const SPRITE_MEW ; a8 + const SPRITE_UNOWN ; 75 + const SPRITE_GEODUDE ; 76 + const SPRITE_GROWLITHE ; 77 + const SPRITE_WEEDLE ; 78 + const SPRITE_SHELLDER ; 79 + const SPRITE_ODDISH ; 7a + const SPRITE_GENGAR ; 7b + const SPRITE_ZUBAT ; 7c + const SPRITE_MAGIKARP ; 7d + const SPRITE_SQUIRTLE ; 7e + const SPRITE_MEOWTH ; 7f + const SPRITE_BUTTERFREE ; 70 + const SPRITE_DIGLETT ; 71 + const SPRITE_POLIWAG ; 72 + const SPRITE_PIKACHU ; 73 + const SPRITE_CLEFAIRY ; 74 + const SPRITE_CHARMANDER ; 85 + const SPRITE_MEWTWO ; 86 + const SPRITE_STARMIE ; 87 + const SPRITE_BULBASAUR ; 88 + const SPRITE_JIGGLYPUFF ; 89 + const SPRITE_GRIMER ; 8a + const SPRITE_DRATINI ; 8b + const SPRITE_ABRA ; 8c + const SPRITE_TENTACOOL ; 8d + const SPRITE_MILTANK ; 8e + const SPRITE_MACHOP ; 8f + const SPRITE_VOLTORB ; 80 + const SPRITE_LAPRAS ; 81 + const SPRITE_RHYDON ; 82 + const SPRITE_MOLTRES ; 83 + const SPRITE_SNORLAX ; 84 + const SPRITE_GYARADOS ; 95 + const SPRITE_LUGIA ; 96 + const SPRITE_HO_OH ; 97 + const SPRITE_PIDGEY ; 98 + const SPRITE_FARFETCH_D ; 99 + const SPRITE_MACHOKE ; 9a + const SPRITE_PERSIAN ; 9b + const SPRITE_AMPHAROS ; 9c + const SPRITE_ELECTRODE ; 9d + const SPRITE_MURKROW ; 9e + const SPRITE_RATTATA ; 9f + const SPRITE_SPEAROW ; 90 + const SPRITE_NIDORAN_M ; 91 + const SPRITE_KANGASKHAN ; 92 + const SPRITE_SLOWBRO ; 93 + const SPRITE_ZAPDOS ; 94 + const SPRITE_NIDORINO ; a5 + const SPRITE_PSYDUCK ; a6 + const SPRITE_BAYLEEF ; a6 + const SPRITE_POLIWRATH ; a7 + const SPRITE_NIDORAN_F ; a8 + const SPRITE_FEAROW ; a9 + const SPRITE_ARTICUNO ; aa + const SPRITE_DODRIO ; ab + const SPRITE_BLISSEY ; ac + const SPRITE_MEW ; ad DEF NUM_POKEMON_SPRITES EQU const_value - SPRITE_POKEMON ; special GetMonSprite values (see engine/overworld/overworld.asm) diff --git a/data/decorations/attributes.asm b/data/decorations/attributes.asm index b3f949467..6dbd90f25 100644 --- a/data/decorations/attributes.asm +++ b/data/decorations/attributes.asm @@ -55,7 +55,7 @@ DecorationAttributes: decoration DECO_DOLL, GRIMER, SET_UP_DOLL, EVENT_DECO_GRIMER_DOLL, SPRITE_GRIMER decoration DECO_DOLL, VOLTORB, SET_UP_DOLL, EVENT_DECO_VOLTORB_DOLL, SPRITE_VOLTORB decoration DECO_DOLL, WEEDLE, SET_UP_DOLL, EVENT_DECO_WEEDLE_DOLL, SPRITE_WEEDLE - decoration DECO_DOLL, UNOWN, SET_UP_DOLL, EVENT_DECO_UNOWN_DOLL, SPRITE_UNOWN + decoration DECO_DOLL, UNOWN, SET_UP_DOLL, EVENT_DECO_UNOWN_DOLL, SPRITE_UNOWN_DOLL decoration DECO_DOLL, GEODUDE, SET_UP_DOLL, EVENT_DECO_GEODUDE_DOLL, SPRITE_GEODUDE decoration DECO_DOLL, MACHOP, SET_UP_DOLL, EVENT_DECO_MACHOP_DOLL, SPRITE_MACHOP decoration DECO_DOLL, TENTACOOL, SET_UP_DOLL, EVENT_DECO_TENTACOOL_DOLL, SPRITE_TENTACOOL diff --git a/data/maps/scripts.asm b/data/maps/scripts.asm index 8b2593cd6..6a2b0cf03 100644 --- a/data/maps/scripts.asm +++ b/data/maps/scripts.asm @@ -437,7 +437,6 @@ INCLUDE "maps/Route14.asm" SECTION "Map Scripts 23", ROMX -INCLUDE "maps/NewBarkTown.asm" INCLUDE "maps/VioletCity.asm" INCLUDE "maps/OlivineCity.asm" INCLUDE "maps/Route37.asm" @@ -527,5 +526,6 @@ SECTION "Map Scripts 27", ROMX INCLUDE "maps/RuinsOfAlphResearchCenter.asm" INCLUDE "maps/MountMoonB1F.asm" INCLUDE "maps/MountMoonB2F.asm" +INCLUDE "maps/NewBarkTown.asm" ENDSECTION diff --git a/data/sprites/sprites.asm b/data/sprites/sprites.asm index 9a35680e1..69fcae139 100644 --- a/data/sprites/sprites.asm +++ b/data/sprites/sprites.asm @@ -100,7 +100,7 @@ OverworldSprites: overworld_sprite SnesSpriteGFX, 4, STILL_SPRITE, PAL_OW_BLUE overworld_sprite FamicomSpriteGFX, 4, STILL_SPRITE, PAL_OW_RED overworld_sprite BerrySpriteGFX, 4, STILL_SPRITE, PAL_OW_TREE - overworld_sprite GoldTrophySpriteGFX, 4, STILL_SPRITE, PAL_OW_BROWN + overworld_sprite GoldTrophySpriteGFX, 4, STILL_SPRITE, PAL_OW_YELLOW overworld_sprite SilverTrophySpriteGFX, 4, STILL_SPRITE, PAL_OW_EMOTE_GRAY overworld_sprite KrisSpriteGFX, 12, WALKING_SPRITE, PAL_OW_BLUE overworld_sprite KrisBikeSpriteGFX, 12, WALKING_SPRITE, PAL_OW_BLUE @@ -119,4 +119,6 @@ OverworldSprites: overworld_sprite ClefairyMoveSpriteGFX, 12, WALKING_SPRITE, PAL_OW_PINK overworld_sprite TinyMushroomSpriteGFX, 4, STILL_SPRITE, PAL_OW_PINK overworld_sprite BigMushroomSpriteGFX, 4, STILL_SPRITE, PAL_OW_PINK + overworld_sprite UnownDollSpriteGFX, 4, STILL_SPRITE, PAL_OW_RED + overworld_sprite PackageSpriteGFX, 4, STILL_SPRITE, PAL_OW_BROWN assert_table_length NUM_OVERWORLD_SPRITES diff --git a/engine/events/std_scripts.asm b/engine/events/std_scripts.asm index fd7bc8f1e..95bd1eee6 100644 --- a/engine/events/std_scripts.asm +++ b/engine/events/std_scripts.asm @@ -672,6 +672,7 @@ InitializeEventsScript: setevent EVENT_ROUTE_11_SNORLAX_RESPAWN setevent EVENT_POKEMON_MANSION_B1F_MEW setevent EVENT_MT_MOON_OBTAINED_FOSSIL + setevent EVENT_NEW_BARK_TOWN_PACKAGE endcallback AskNumber1MScript: diff --git a/gfx/sprites.asm b/gfx/sprites.asm index cfa36b266..4f511b17e 100644 --- a/gfx/sprites.asm +++ b/gfx/sprites.asm @@ -118,4 +118,6 @@ OldAmberSpriteGFX:: INCBIN "gfx/sprites/old_amber.2bpp" AmphySickSpriteGFX:: INCBIN "gfx/sprites/ampy_sick.2bpp" ClefairyMoveSpriteGFX:: INCBIN "gfx/sprites/clefairy_move.2bpp" TinyMushroomSpriteGFX:: INCBIN "gfx/sprites/tiny_mushroom.2bpp" -BigMushroomSpriteGFX:: INCBIN "gfx/sprites/big_mushroom.2bpp" \ No newline at end of file +BigMushroomSpriteGFX:: INCBIN "gfx/sprites/big_mushroom.2bpp" +UnownDollSpriteGFX:: INCBIN "gfx/sprites/unown_doll.2bpp" +PackageSpriteGFX:: INCBIN "gfx/sprites/package.2bpp" \ No newline at end of file diff --git a/gfx/sprites/package.png b/gfx/sprites/package.png new file mode 100644 index 000000000..8a2713b61 Binary files /dev/null and b/gfx/sprites/package.png differ diff --git a/gfx/sprites/unown_doll.png b/gfx/sprites/unown_doll.png new file mode 100644 index 000000000..aae9d0291 Binary files /dev/null and b/gfx/sprites/unown_doll.png differ diff --git a/maps/LancesRoom.asm b/maps/LancesRoom.asm index d4eef31bf..cd2677ffb 100644 --- a/maps/LancesRoom.asm +++ b/maps/LancesRoom.asm @@ -63,11 +63,23 @@ LancesRoomLanceScript: sjump .battle .rematch loadtrainer CHAMPION, LANCE2 + startbattle + dontrestartmapmusic + reloadmapafterbattle + setevent EVENT_BEAT_CHAMPION_LANCE_REMATCH + checkevent EVENT_GOT_GOLD_TROPHY + iftrue .done + clearevent EVENT_NEW_BARK_TOWN_PACKAGE + sjump .done .battle startbattle dontrestartmapmusic reloadmapafterbattle setevent EVENT_BEAT_CHAMPION_LANCE + checkevent EVENT_GOT_SILVER_TROPHY + iftrue .done + clearevent EVENT_NEW_BARK_TOWN_PACKAGE +.done opentext writetext LanceBattleAfterText waitbutton diff --git a/maps/NewBarkTown.asm b/maps/NewBarkTown.asm index 9fcc1130d..27499a563 100644 --- a/maps/NewBarkTown.asm +++ b/maps/NewBarkTown.asm @@ -2,6 +2,7 @@ const NEWBARKTOWN_TEACHER const NEWBARKTOWN_FISHER const NEWBARKTOWN_RIVAL + const NEWBARKTOWN_PACKAGE NewBarkTown_MapScripts: def_scene_scripts @@ -125,6 +126,35 @@ NewBarkTownRivalScript: applymovement NEWBARKTOWN_RIVAL, NewBarkTown_RivalReturnsToTheShadowsMovement end +NewBarkTownPackageScript: + opentext + writetext NewBarkTownItsAPackageText + waitbutton + checkevent EVENT_BEAT_CHAMPION_LANCE_REMATCH + iffalse .skipGoldTrophy + checkevent EVENT_GOT_GOLD_TROPHY + iftrue .skipGoldTrophy + writetext NewBarkTownPresentWithThisGiftEliteChampText + waitbutton + verbosegiveitem GORGEOUS_BOX, 1 + iffalse .NoRoomInBag + setevent EVENT_GOT_GOLD_TROPHY + checkevent EVENT_GOT_SILVER_TROPHY + iftrue .done + writetext NewBarkTownSomethingElseText + waitbutton +.skipGoldTrophy + writetext NewBarkTownPresentWithThisGiftText + waitbutton + verbosegiveitem NORMAL_BOX, 1 + iffalse .NoRoomInBag + setevent EVENT_GOT_SILVER_TROPHY +.done + disappear NEWBARKTOWN_PACKAGE +.NoRoomInBag + closetext + end + NewBarkTownSign: jumptext NewBarkTownSignText @@ -279,6 +309,47 @@ NewBarkTownElmsHouseSignText: text "ELM'S HOUSE" done +NewBarkTownItsAPackageText: + text "It's a package…" + line "Let's open it!" + done + +NewBarkTownPresentWithThisGiftText: + text "Congratulations" + line "!" + + para "For acquiring the" + line "title of CHAMPION," + + para "we are pleased to" + line "present you with" + cont "this gift!" + + para "-#MON LEAGUE" + line "ADMINISTRATION-" + done + +NewBarkTownPresentWithThisGiftEliteChampText: + text "Congratulations" + line "!" + + para "For acquiring the" + line "grand title of" + cont "ELITE CHAMPION," + + para "we are pleased to" + line "present you with" + cont "this gift!" + + para "-#MON LEAGUE" + line "ADMINISTRATION-" + done + +NewBarkTownSomethingElseText: + text "Oh? There's some-" + line "thing else here…" + done + NewBarkTown_MapEvents: db 0, 0 ; filler @@ -302,3 +373,4 @@ NewBarkTown_MapEvents: object_event 6, 8, SPRITE_TEACHER, SPRITEMOVEDATA_SPINRANDOM_SLOW, 1, 0, -1, -1, 0, OBJECTTYPE_SCRIPT, 0, NewBarkTownTeacherScript, -1 object_event 12, 9, SPRITE_FISHER, SPRITEMOVEDATA_WALK_UP_DOWN, 0, 1, -1, -1, PAL_NPC_GREEN, OBJECTTYPE_SCRIPT, 0, NewBarkTownFisherScript, -1 object_event 3, 2, SPRITE_RIVAL, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, OBJECTTYPE_SCRIPT, 0, NewBarkTownRivalScript, EVENT_RIVAL_NEW_BARK_TOWN + object_event 12, 6, SPRITE_PACKAGE, SPRITEMOVEDATA_STILL, 0, 0, -1, -1, 0, OBJECTTYPE_SCRIPT, 0, NewBarkTownPackageScript, EVENT_NEW_BARK_TOWN_PACKAGE