Citrine Mart

This adds Citrine Mart, which is battle-centric. It sells all the "strongest" items and makes Max Revives renewable.

I made a specialised tileset for Citrine Mart, combining the old and new styles to make something that feels right.
This commit is contained in:
Llinos Evans 2023-04-28 03:08:54 +01:00
parent d5708ef12e
commit 583847ae2c
21 changed files with 101 additions and 12 deletions

View file

@ -224,7 +224,7 @@ DEF FIRST_INDOOR_MAP EQU const_value
map_const ROCKET_HIDEOUT_B3F, 15, 14 ; $CA - Currently unused
map_const ROCKET_HIDEOUT_B4F, 15, 12 ; $CB - Currently unused
map_const ROCKET_HIDEOUT_ELEVATOR, 3, 4 ; $CC - Currently unused
map_const UNUSED_MAP_CC, 0, 0 ; $CD - Unused
map_const CITRINE_MART, 4, 4 ; $CD - was UNUSED_MAP_CC
map_const UNUSED_MAP_CD, 0, 0 ; $CE - Unused
map_const UNUSED_MAP_CE, 0, 0 ; $CF - Unused
map_const SILPH_CO_2F, 15, 9 ; $D0

View file

@ -29,4 +29,5 @@
const CITRINE ; 25
const CELESTE ; 26
const ROCKETHOUSE
const BETAMART
DEF NUM_TILESETS EQU const_value

View file

@ -0,0 +1,2 @@
map_header CitrineMart, CITRINE_MART, BETAMART, 0
end_map_header

View file

@ -206,7 +206,7 @@ MapHeaderBanks::
db BANK(RocketHideoutB3F_h)
db BANK(RocketHideoutB4F_h)
db BANK(RocketHideoutElevator_h)
db $01 ; UNUSED_MAP_CC
db BANK(CitrineMart_h) ; was UNUSED_MAP_CC
db $01 ; UNUSED_MAP_CD
db $01 ; UNUSED_MAP_CE
db BANK(SilphCo2F_h)

View file

@ -206,8 +206,8 @@ MapHeaderPointers::
dw RocketHideoutB3F_h
dw RocketHideoutB4F_h
dw RocketHideoutElevator_h
dw RocketHideoutElevator_h ; UNUSED_MAP_CC
dw RocketHideoutElevator_h ; UNUSED_MAP_CD
dw CitrineMart_h ; UNUSED_MAP_CC
dw RocketHideoutElevator_h ; UNUSED_MAP_CD, used hideout elevator
dw RocketHideoutElevator_h ; UNUSED_MAP_CE
dw SilphCo2F_h
dw SilphCo3F_h

View file

@ -5,6 +5,7 @@ CitrineCity_Object:
warp_event 9, 27, CITRINE_ROCKET_HOUSE, 1
warp_event 9, 17, CITRINE_TRADEBACK_HOUSE, 1
warp_event 15, 17, CITRINE_POKECENTER, 1
warp_event 15, 27, CITRINE_MART, 1
def_bg_events

View file

@ -0,0 +1,16 @@
CitrineMart_Object:
db $0e ; border block
def_warp_events
warp_event 2, 7, CITRINE_CITY, 4
warp_event 3, 7, CITRINE_CITY, 4
def_bg_events
def_object_events
object_event 2, 1, SPRITE_CLERK, STAY, RIGHT, 1 ; person
object_event 6, 6, SPRITE_COOLTRAINER_F, STAY, UP, 2 ; person
object_event 7, 6, SPRITE_CAT, STAY, UP, 3 ; person
object_event 1, 1, SPRITE_CLEFAIRY, STAY, DOWN, 4 ; person
def_warps_to CITRINE_MART

View file

@ -205,7 +205,7 @@ MapSongBanks::
db MUSIC_DUNGEON1, 0 ; ROCKET_HIDEOUT_B3F
db MUSIC_DUNGEON1, 0 ; ROCKET_HIDEOUT_B4F
db MUSIC_DUNGEON1, 0 ; ROCKET_HIDEOUT_ELEVATOR
db MUSIC_DUNGEON1, 0 ; UNUSED_MAP_CC
db MUSIC_POKECENTER, 0 ; CITRINE_MART, was UNUSED_MAP_CC
db MUSIC_DUNGEON1, 0 ; UNUSED_MAP_CD
db MUSIC_DUNGEON1, 0 ; UNUSED_MAP_CE
db MUSIC_SILPH_CO, 0 ; SILPH_CO_2F

View file

@ -26,4 +26,11 @@ BookshelfTileIDs:
bookshelf_tile PREGYM, $57, BookOrSculptureText
bookshelf_tile ROCKETHOUSE, $38, BookOrSculptureText
bookshelf_tile ROCKETHOUSE, $39, BookOrSculptureText
bookshelf_tile BETAMART, $38, PokemonStuffText
bookshelf_tile BETAMART, $39, PokemonStuffText
bookshelf_tile BETAMART, $3B, PokemonStuffText
bookshelf_tile BETAMART, $31, BookOrSculptureText
bookshelf_tile BETAMART, $30, BookOrSculptureText
bookshelf_tile BETAMART, $4E, PokemonStuffText
bookshelf_tile BETAMART, $4F, PokemonStuffText
db -1 ; end

View file

@ -49,8 +49,6 @@ Interior_Coll::
Cavern_Coll::
coll_tiles $05, $15, $18, $1a, $20, $21, $22, $2a, $2d, $30
coll_tiles ; unused
Lobby_Coll::
coll_tiles $14, $17, $1a, $1c, $20, $38, $45
@ -80,3 +78,6 @@ Celeste_Coll::
RocketHouse_Coll::
coll_tiles $13, $31, $01, $53
BetaMart_Coll::
coll_tiles $01, $11, $1C, $1D, $1E, $1F, $0C, $0D, $0E, $0F, $4D, $4C

View file

@ -37,4 +37,5 @@ Tilesets:
tileset Citrine, -1, -1, -1, $3F, TILEANIM_WATER_FLOWER
tileset Celeste, -1, -1, -1, $18, TILEANIM_WATER_FLOWER
tileset RocketHouse, $0A, -1, -1, -1, TILEANIM_NONE
tileset BetaMart, $18, -1, -1, -1, TILEANIM_NONE
assert_table_length NUM_TILESETS

View file

@ -28,6 +28,7 @@ WarpTileIDPointers:
dw .CitrineWarpTileIDs
dw .CelesteWarpTileIDs
dw .RocketHouseWarpTileIDs
dw .BetaMartWarpTileIDs
assert_table_length NUM_TILESETS
MACRO warp_tiles
@ -106,6 +107,9 @@ ENDM
.RocketHouseWarpTileIDs:
warp_tiles $53
.BetaMartWarpTileIDs:
warp_tiles $1C, $1D, $1E, $1F, $0C, $0D, $0E, $0F, $4B, $4C
.ShipPortWarpTileIDs:
.ClubWarpTileIDs:
warp_tiles ; end

BIN
gfx/blocksets/betamart.bst Normal file

Binary file not shown.

View file

@ -74,3 +74,6 @@ Celeste_Block:: INCBIN "gfx/blocksets/celeste.bst"
RocketHouse_GFX:: INCBIN "gfx/tilesets/rockethouse.2bpp"
RocketHouse_Block:: INCBIN "gfx/blocksets/rockethouse.bst"
BetaMart_GFX:: INCBIN "gfx/tilesets/betamart.2bpp"
BetaMart_Block:: INCBIN "gfx/blocksets/betamart.bst"

BIN
gfx/tilesets/betamart.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

View file

@ -1340,3 +1340,8 @@ INCLUDE "data/maps/headers/CitrinePokecenter.asm"
INCLUDE "scripts/CitrinePokecenter.asm"
INCLUDE "data/maps/objects/CitrinePokecenter.asm"
CitrinePokecenter_Blocks: INCBIN "maps/CitrinePokecenter.blk"
INCLUDE "data/maps/headers/CitrineMart.asm"
INCLUDE "scripts/CitrineMart.asm"
INCLUDE "data/maps/objects/CitrineMart.asm"
CitrineMart_Blocks: INCBIN "maps/CitrineMart.blk"

BIN
maps/CitrineMart.blk Normal file

Binary file not shown.

View file

@ -1,15 +1,15 @@
Exception: STATUS_ACCESS_VIOLATION at rip=00100401246
rax=FFFFFFF7FFF970C1 rbx=0000000000000209 rcx=0000000800000010
rdx=0000000000000000 rsi=0000000800058C12 rdi=0000000000000000
rax=FFFFFFF7FFF97031 rbx=0000000000000794 rcx=0000000800000010
rdx=0000000000000000 rsi=0000000800058944 rdi=0000000000000000
r8 =00000000FFFFC7C4 r9 =0000000000000000 r10=0000000100000000
r11=0000000100401282 r12=0000000800068F40 r13=0000000100403148
r11=0000000100401282 r12=0000000800068FD0 r13=0000000100403148
r14=0000000000000000 r15=0000000000000001
rbp=0000000100403156 rsp=00000000FFFFCA60
program=C:\cygwin64\home\chipp\kep-hack\tools\scan_includes.exe, pid 2597, thread main
program=C:\cygwin64\home\chipp\kep-hack\tools\scan_includes.exe, pid 3411, thread main
cs=0033 ds=002B es=002B fs=0053 gs=002B ss=002B
Stack trace:
Frame Function Args
00100403156 00100401246 (00800058C12, 00000000022, 00100403166, 000FFFFCB90)
00100403156 00100401246 (00800058944, 00000000022, 00100403166, 000FFFFCB90)
00100403156 00100401409 (00000000000, 00100000001, 00180227860, 00100407000)
00100403178 00100401C87 (00000000020, 00000000000, 00180049B11, 00180048A70)
000FFFFCD30 00180049B7D (00000000000, 00000000000, 00000000000, 00000000000)

32
scripts/CitrineMart.asm Normal file
View file

@ -0,0 +1,32 @@
CitrineMart_Script:
jp EnableAutoTextBoxDrawing
CitrineMart_TextPointers:
dw CitrineCashierText
dw CitrineMartText2
dw CitrineMartText3
dw CitrineMartText4
CitrineMartText2:
text_far _CitrineMartText2
text_end
CitrineMartText3:
text_far _CitrineMartText3
text_asm
ld a, PERSIAN
call PlayCry
call WaitForSoundToFinish
jp TextScriptEnd
CitrineMartText4:
text_far _CitrineMartText4
text_asm
ld a, CLEFAIRY
call PlayCry
call WaitForSoundToFinish
jp TextScriptEnd
; I do want to make a "steroid" item that fixes DVs.
CitrineCashierText::
script_mart ULTRA_BALL, FULL_RESTORE, MAX_REPEL, MAX_REVIVE, ESCAPE_ROPE, HP_UP, PROTEIN, IRON, CARBOS, CALCIUM

View file

@ -289,6 +289,7 @@ INCLUDE "text/SilphGauntlet1F.asm"
INCLUDE "text/SilphGauntlet4F.asm"
INCLUDE "text/SilphGauntlet7F.asm"
INCLUDE "text/CitrinePokecenter.asm"
INCLUDE "text/CitrineMart.asm"
SECTION "Pokédex Text", ROMX

15
text/CitrineMart.asm Normal file
View file

@ -0,0 +1,15 @@
_CitrineMartText2::
text "They have some"
line "strong vitamins"
cont "here. Which do"
cont "you want,"
cont "PERSIAN?"
done
_CitrineMartText3::
text "PERSIAN: Nyaaa!"
done
_CitrineMartText4::
text "CLEFAIRY: Pipii!"
done