Merge branch 'PlagueVonKarma:master' into master

This commit is contained in:
Misty 2024-09-03 17:44:22 -04:00 committed by GitHub
commit 98cb7fcfe0
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
64 changed files with 3746 additions and 389 deletions

View file

@ -116,8 +116,9 @@ New Areas
New Music New Music
==== ====
- Mewtwo has its own battle theme: A demake of the iconic Stadium track! It features some creative deviations to give it a distinct Game Boy feel while fitting with Mewtwo's mystique. Composed by LuciShrimp. - Mewtwo has its own battle theme: A demake of the iconic Stadium track! It features some creative deviations to give it a distinct Game Boy feel while fitting with Mewtwo's mystique. Composed by LuciShrimp.
- Mew and the Legendary Birds have their own battle theme, a demake of the FireRed/LeafGreen pitch-shifted remix. Not simply pitching it up, percussion elements have been added to give it that rustic FRLG "feel" that distinguishes it from the original games. Composed by LuciShrimp. - Mew and the Kantonian Legendary Birds have their own battle theme, a demake of the FireRed/LeafGreen pitch-shifted remix. Not simply pitching it up, percussion elements have been added to give it that rustic FRLG "feel" that distinguishes it from the original games. Composed by LuciShrimp.
- Limited static encounters, such as the two sleeping Snorlax, and the restored prototype Omega, also use this theme. - Limited static encounters, such as the two sleeping Snorlax, and the restored prototype Omega, also use this theme.
- The Galarian Legendary Birds have a demake of their Sword and Shield battle theme instead! Composed by LuciShrimp.
- Mt. Moon Crater uses a demake of Scarlet and Violet's Area Zero theme! Composed by LuciShrimp. - Mt. Moon Crater uses a demake of Scarlet and Violet's Area Zero theme! Composed by LuciShrimp.
- Team Rocket's battle theme from GSC has been backported with some small changes to give it more of an RBY feel. Plays during Rocket Grunt fights, including Jessie and James, as well as the initial 2 Giovanni battles. Composed by LuciShrimp. - Team Rocket's battle theme from GSC has been backported with some small changes to give it more of an RBY feel. Plays during Rocket Grunt fights, including Jessie and James, as well as the initial 2 Giovanni battles. Composed by LuciShrimp.
- In addition to the aforementioned Team Rocket battle theme, a slower, pitched-down arrangement plays when battling Giovanni in his gym, as well as against a postgame boss. Composed by LuciShrimp and Martha's Against Humanity. - In addition to the aforementioned Team Rocket battle theme, a slower, pitched-down arrangement plays when battling Giovanni in his gym, as well as against a postgame boss. Composed by LuciShrimp and Martha's Against Humanity.
@ -229,7 +230,7 @@ Many non-multiplayer, non-battle related bugs have been fixed. Battle-related bu
- Some grammar tweaks have been made (eg. If a move is disabled, it now has an upper-case D instead of a lower-case one.) - Some grammar tweaks have been made (eg. If a move is disabled, it now has an upper-case D instead of a lower-case one.)
- Blaine is no longer addicted to Super Potions. - Blaine is no longer addicted to Super Potions.
- CoolTrainerF no longer switches a lot. - CoolTrainerF no longer switches a lot.
- Transformed Pokemon aren't presumed to be Dittos! Mew and Animon function correctly with this at play. - Transformed Pokemon aren't presumed to be Dittos! Mew and Mimmeo function correctly with this at play.
- Status curing items don't remove modifiers anymore. - Status curing items don't remove modifiers anymore.
- Learning new moves plays the sound in the correct bank. - Learning new moves plays the sound in the correct bank.
- Falling through a hole on a bike now properly resets the music, as you fall off a bike when going down. - Falling through a hole on a bike now properly resets the music, as you fall off a bike when going down.
@ -311,7 +312,7 @@ Kanto Prototype Pokemon:
- Cheep -> Jabetta | L30 - Cheep -> Jabetta | L30
- Coinpur -> Meowth | L14 - Coinpur -> Meowth | L14
- Decilla -> Gawarhed | L40 - Decilla -> Gawarhed | L40
- Gyopin -> Goldeen | L16 - Orfry -> Goldeen | L16
- Gentlarva -> Pupal | L7 - Gentlarva -> Pupal | L7
- Pupal -> Carapthor | L10 - Pupal -> Carapthor | L10
- Kotora -> Gaotora -> Gorotora | L16, L36 - Kotora -> Gaotora -> Gorotora | L16, L36
@ -380,16 +381,18 @@ If you use our implementations of anything at all, it is encouraged to submit Pu
* erosunica - Assistance with developing Celadon University & Citrine City, plus sources for various subjects. * erosunica - Assistance with developing Celadon University & Citrine City, plus sources for various subjects.
* Chatot4444 - Assisting with gym scaling code. * Chatot4444 - Assisting with gym scaling code.
* Enigami - Reworking the Battle Tent's RestoreTeam code to make it work properly. * Enigami - Reworking the Battle Tent's RestoreTeam code to make it work properly.
* HeadBoiSkye - Helped with writing NPC dialogue and Pokédex entries for new Pokémon such as Orfry. * HunnieBuns (originally HeadBoiSkye) - Helped with writing NPC dialogue and Pokédex entries for new Pokémon such as Orfry.
* ZumiIsawhat? - Restorations of prototype OST. * ZumiIsawhat? - Restorations of prototype OST.
* FrenchOrange - Reconstructions of various overworld prototype sprites. * FrenchOrange - Reconstructions of various overworld prototype sprites.
* Helix Chamber (RacieBeep & Orchid) - Prototype Pokémon sprites. Precise credits are available [here](https://cdn.discordapp.com/attachments/1014321591657709569/1015347305483878521/unknown.png) and below. * Helix Chamber (RacieBeep & Orchid) - Prototype Pokémon sprites. Precise credits are available [here](https://cdn.discordapp.com/attachments/1014321591657709569/1015347305483878521/unknown.png) and below.
* Vortiene/Vortyne - Reused a bit of code from their pureRGB hack, including their Trainer AI, move animations and Pokedex stats page. Assisted in bug fixes. Used their sprite sheet generator. * Vortiene/Vortyne - Reused a bit of code from their pureRGB hack, including their Trainer AI, move animations and Pokedex stats page. Assisted in bug fixes. Used their sprite sheet generator.
* wrulfy - Reused a bit of code from their Carmine Red hack to improve a handful of move animations, most notably Drill Peck and Horn Drill. Technical advice. * wrulfy - Reused a bit of code from their Carmine Red hack to improve a handful of move animations, most notably Drill Peck and Horn Drill. Technical advice.
* TheSmithPlays - Reused a bit of code from their Yellow Legacy hack.
* Pigu-A, RevoSucks, walle303 - Contributors to Pokemon Anniversary Red's repository, where we reused the Green/FemC sprites and the Battle Tent. * Pigu-A, RevoSucks, walle303 - Contributors to Pokemon Anniversary Red's repository, where we reused the Green/FemC sprites and the Battle Tent.
* Rangi - Reused a bit of code from their Red* / Blue* hack to make HMs usable in the overworld, and generally being an amazing individual. * Rangi - Reused a bit of code from their Red* / Blue* hack to make HMs usable in the overworld, and generally being an amazing individual.
* BGVC - Composed the original 4-channel version of the unused Koukan (trading) music. * BGVC - Composed the original 4-channel version of the unused Koukan (trading) music.
* Rainbow Metal Pigeon - Bug fix relating to Gym Leader rematches. * Rainbow Metal Pigeon - Bug fix relating to Gym Leader rematches.
* SoupPotato - Borrowed code to make a functioning EXP bar.
* SatoMew - Technical advice. * SatoMew - Technical advice.
* suloku - Technical advice regarding setting where you spawn after beating the Elite Four, Exp. All modernisation code * suloku - Technical advice regarding setting where you spawn after beating the Elite Four, Exp. All modernisation code
* 大吟醸 (Daiginjo) - Assistance in translating the Tamamushi University Student Book, allowing for an accurate adaptation of the location. * 大吟醸 (Daiginjo) - Assistance in translating the Tamamushi University Student Book, allowing for an accurate adaptation of the location.

View file

@ -386,6 +386,9 @@ INCLUDE "crysaudio/music/RBY/giovannibattle.asm"
INCLUDE "crysaudio/music/RBY/elitefourbattle.asm" INCLUDE "crysaudio/music/RBY/elitefourbattle.asm"
INCLUDE "crysaudio/music/RBY/champrival.asm" INCLUDE "crysaudio/music/RBY/champrival.asm"
SECTION "RBY Songs 5", ROMX
INCLUDE "crysaudio/music/RBY/galarbirds.asm"
SECTION "TCG Songs 1", ROMX SECTION "TCG Songs 1", ROMX
INCLUDE "crysaudio/music/TCG/titlescreen.asm" INCLUDE "crysaudio/music/TCG/titlescreen.asm"

View file

@ -26,6 +26,8 @@ PlayBattleMusic::
jp z, .legendaryBattle jp z, .legendaryBattle
cp OMEGADGE cp OMEGADGE
jp z, .legendaryBattle jp z, .legendaryBattle
cp ARCANINE
jp z, .legendaryBattle
cp SNORLAX ; Just like LGPE. Snorlax is basically a legendary in RBY, so I love this. cp SNORLAX ; Just like LGPE. Snorlax is basically a legendary in RBY, so I love this.
jp z, .legendaryBattle jp z, .legendaryBattle
cp DRATINI ; In the Tajiri lore, the Dratini family is considered legendary. Also, we have a static Dragonite. I think the appearance of Dratini in the Safari Zone with this theme could also add some reeeeeal nice hype to the whole ordeal. cp DRATINI ; In the Tajiri lore, the Dratini family is considered legendary. Also, we have a static Dragonite. I think the appearance of Dratini in the Safari Zone with this theme could also add some reeeeeal nice hype to the whole ordeal.
@ -35,11 +37,11 @@ PlayBattleMusic::
cp DRAGONITE cp DRAGONITE
jp z, .legendaryBattle jp z, .legendaryBattle
cp ARTICUNO_G cp ARTICUNO_G
jp z, .legendaryBattle jp z, .birdsBattle
cp ZAPDOS_G cp ZAPDOS_G
jp z, .legendaryBattle jp z, .birdsBattle
cp MOLTRES_G cp MOLTRES_G
jp z, .legendaryBattle jp z, .birdsBattle
cp OPP_ID_OFFSET cp OPP_ID_OFFSET
jp c, .wildBattle jp c, .wildBattle
cp OPP_YUJIROU cp OPP_YUJIROU
@ -107,6 +109,9 @@ PlayBattleMusic::
.legendaryBattle .legendaryBattle
ld a, MUSIC_LEGENDARYBATTLE ld a, MUSIC_LEGENDARYBATTLE
jr .playSong jr .playSong
.birdsBattle
ld a, MUSIC_GALAR_BIRDS
jr .playSong
.wildBattle .wildBattle
ld a, MUSIC_WILD_BATTLE ld a, MUSIC_WILD_BATTLE
.playSong .playSong

View file

@ -85,25 +85,25 @@ DEF SAFARI_ROCK EQU $16 ; overload
const LIFT_KEY ; $4A const LIFT_KEY ; $4A
const EXP_ALL ; $4B const EXP_ALL ; $4B
const CANDY_JAR ; $4C - was old rod const CANDY_JAR ; $4C - was old rod
const BOTTLE_CAP ; $4D - was good rod const BOTTLE_CAP ; $4D - was good rod
const SUPER_ROD ; $4E const FISHING_ROD ; $4E
const PP_UP ; $4F const PP_UP ; $4F
const ETHER ; $50 const ETHER ; $50
const MAX_ETHER ; $51 const MAX_ETHER ; $51
const ELIXER ; $52 const ELIXER ; $52
const MAX_ELIXER ; $53 const MAX_ELIXER ; $53
const ICE_STONE ; $54 const ICE_STONE ; $54
const PROTECTOR ; $55 const PROTECTOR ; $55
const POISON_STONE ; $56 const POISON_STONE ; $56
const BLK_AUGURITE ; $57 const BLK_AUGURITE ; $57
const DUBIOUS_DISC ; $58 const DUBIOUS_DISC ; $58
const CITRINE_PASS ; $59 const CITRINE_PASS ; $59
const OLD_SEA_MAP ; $5A const OLD_SEA_MAP ; $5A
const UP_GRADE ; $5B const UP_GRADE ; $5B
const METAL_COAT ; $5C const METAL_COAT ; $5C
const MYSTERY_BOX ; $5D const MYSTERY_BOX ; $5D
const TEA ; $5E const TEA ; $5E
const SILPHLETTER ; $5F const SILPHLETTER ; $5F
DEF NUM_ITEMS EQU const_value - 1 DEF NUM_ITEMS EQU const_value - 1
; elevator floors use item IDs ; elevator floors use item IDs

View file

@ -142,7 +142,7 @@ DEF FIRST_INDOOR_MAP EQU const_value
map_const MT_MOON_CRATER, 25, 25 ; $77 - Was UNUSED_MAP_75 map_const MT_MOON_CRATER, 25, 25 ; $77 - Was UNUSED_MAP_75
map_const HALL_OF_FAME, 5, 4 ; $78 map_const HALL_OF_FAME, 5, 4 ; $78
map_const UNDERGROUND_PATH_NORTH_SOUTH, 4, 24 ; $79 ; UndergroundPathNorthSouth.blk is actually 4x23 map_const UNDERGROUND_PATH_NORTH_SOUTH, 4, 24 ; $79 ; UndergroundPathNorthSouth.blk is actually 4x23
map_const CHAMPIONS_ROOM, 4, 4 ; $7A map_const CHAMPIONS_ROOM, 5, 6 ; $7A
map_const UNDERGROUND_PATH_WEST_EAST, 25, 4 ; $7B map_const UNDERGROUND_PATH_WEST_EAST, 25, 4 ; $7B
map_const CELADON_MART_1F, 10, 4 ; $7C map_const CELADON_MART_1F, 10, 4 ; $7C
map_const CELADON_MART_2F, 10, 4 ; $7D map_const CELADON_MART_2F, 10, 4 ; $7D
@ -210,7 +210,7 @@ DEF FIRST_INDOOR_MAP EQU const_value
map_const ROUTE_16_GATE_1F, 4, 7 ; $BB map_const ROUTE_16_GATE_1F, 4, 7 ; $BB
map_const ROUTE_16_GATE_2F, 4, 4 ; $BC map_const ROUTE_16_GATE_2F, 4, 4 ; $BC
map_const ROUTE_16_FLY_HOUSE, 4, 4 ; $BD map_const ROUTE_16_FLY_HOUSE, 4, 4 ; $BD
map_const ROUTE_12_SUPER_ROD_HOUSE, 4, 4 ; $BE map_const FISHING_GURU_HOUSE, 4, 4 ; $BE
map_const ROUTE_18_GATE_1F, 4, 5 ; $BF map_const ROUTE_18_GATE_1F, 4, 5 ; $BF
map_const ROUTE_18_GATE_2F, 4, 4 ; $C0 map_const ROUTE_18_GATE_2F, 4, 4 ; $C0
map_const SEAFOAM_ISLANDS_1F, 15, 9 ; $C1 map_const SEAFOAM_ISLANDS_1F, 15, 9 ; $C1

View file

@ -1,4 +1,4 @@
DEF BAG_ITEM_CAPACITY EQU 30 DEF BAG_ITEM_CAPACITY EQU 50
DEF PC_ITEM_CAPACITY EQU 50 DEF PC_ITEM_CAPACITY EQU 50
; text box IDs ; text box IDs

View file

@ -68,7 +68,8 @@
const MUSIC_ROCKET_RBY const MUSIC_ROCKET_RBY
const MUSIC_GIOVANNI_BATTLE const MUSIC_GIOVANNI_BATTLE
const MUSIC_ELITE_FOUR_BATTLE const MUSIC_ELITE_FOUR_BATTLE
const MUSIC_CHAMP_RIVAL ; const MUSIC_CHAMP_RIVAL
const MUSIC_GALAR_BIRDS
const NUM_SONGS const NUM_SONGS

File diff suppressed because it is too large Load diff

View file

@ -62,4 +62,5 @@ Music:
dba Music_RocketRBY dba Music_RocketRBY
dba Music_GiovanniBattle dba Music_GiovanniBattle
dba Music_EliteFourBattle dba Music_EliteFourBattle
dba Music_ChampRival ; dba Music_ChampRival
dba Music_GalarBirds

View file

@ -90,7 +90,7 @@ CreditsTextPointers:
dw CredDannye dw CredDannye
dw CredEro dw CredEro
dw CredBlueZangoose dw CredBlueZangoose
dw CredSkye dw CredHunnies
dw CredChatot dw CredChatot
dw CredEni dw CredEni
dw CredVort dw CredVort
@ -276,8 +276,8 @@ CredEro:
db -4, "EROSUNICA@" db -4, "EROSUNICA@"
CredBlueZangoose: CredBlueZangoose:
db -5, "BLUEZANGOOSE@" db -5, "BLUEZANGOOSE@"
CredSkye: CredHunnies:
db -5, "HEADBOISKYE@" db -4, "HUNNIEBUNS@"
CredChatot: CredChatot:
db -4, "CHATOT4444@" db -4, "CHATOT4444@"
CredEni: CredEni:

View file

@ -74,10 +74,10 @@ KeyItemFlags:
dbit TRUE ; SILPH_SCOPE dbit TRUE ; SILPH_SCOPE
dbit TRUE ; POKE_FLUTE dbit TRUE ; POKE_FLUTE
dbit TRUE ; LIFT_KEY dbit TRUE ; LIFT_KEY
dbit TRUE ; EXP_ALL - Did you know this wasn't a key item originally? Yeesh, what if someone sold or tossed it?? dbit TRUE ; EXP_ALL - Did you know this wasn't a key item originally? Yeesh, what if someone sold or tossed it??
dbit TRUE ; was TRUE for OLD_ROD, now CANDY_JAR dbit TRUE ; was TRUE for OLD_ROD, now CANDY_JAR
dbit FALSE ; was GOOD_ROD & TRUE, now BOTTLE_CAP dbit FALSE ; was GOOD_ROD & TRUE, now BOTTLE_CAP
dbit TRUE ; SUPER_ROD dbit TRUE ; FISHING_ROD
dbit FALSE ; PP_UP dbit FALSE ; PP_UP
dbit FALSE ; ETHER dbit FALSE ; ETHER
dbit FALSE ; MAX_ETHER dbit FALSE ; MAX_ETHER

View file

@ -3,7 +3,6 @@ UsableItems_CloseMenu:
db ESCAPE_ROPE db ESCAPE_ROPE
db ITEMFINDER db ITEMFINDER
db POKE_FLUTE db POKE_FLUTE
;db OLD_ROD no longer exists db FISHING_ROD
;db GOOD_ROD no longer exists db POCKET_LAPRAS
db SUPER_ROD
db -1 ; end db -1 ; end

View file

@ -0,0 +1,2 @@
map_header FishingGuruHouse, FISHING_GURU_HOUSE, HOUSE, 0
end_map_header

View file

@ -1,2 +0,0 @@
map_header Route12SuperRodHouse, ROUTE_12_SUPER_ROD_HOUSE, HOUSE, 0
end_map_header

View file

@ -192,7 +192,7 @@ MapHeaderBanks::
db BANK(Route16Gate1F_h) db BANK(Route16Gate1F_h)
db BANK(Route16Gate2F_h) db BANK(Route16Gate2F_h)
db BANK(Route16FlyHouse_h) db BANK(Route16FlyHouse_h)
db BANK(Route12SuperRodHouse_h) db BANK(FishingGuruHouse_h)
db BANK(Route18Gate1F_h) db BANK(Route18Gate1F_h)
db BANK(Route18Gate2F_h) db BANK(Route18Gate2F_h)
db BANK(SeafoamIslands1F_h) db BANK(SeafoamIslands1F_h)

View file

@ -192,7 +192,7 @@ MapHeaderPointers::
dw Route16Gate1F_h dw Route16Gate1F_h
dw Route16Gate2F_h dw Route16Gate2F_h
dw Route16FlyHouse_h dw Route16FlyHouse_h
dw Route12SuperRodHouse_h dw FishingGuruHouse_h
dw Route18Gate1F_h dw Route18Gate1F_h
dw Route18Gate2F_h dw Route18Gate2F_h
dw SeafoamIslands1F_h dw SeafoamIslands1F_h

View file

@ -2,8 +2,8 @@ ChampionsRoom_Object:
db $3 ; border block db $3 ; border block
def_warp_events def_warp_events
warp_event 3, 7, LANCES_ROOM, 2 warp_event 4, 11, LANCES_ROOM, 2
warp_event 4, 7, LANCES_ROOM, 3 warp_event 5, 11, LANCES_ROOM, 3
warp_event 3, 0, HALL_OF_FAME, 1 warp_event 3, 0, HALL_OF_FAME, 1
warp_event 4, 0, HALL_OF_FAME, 1 warp_event 4, 0, HALL_OF_FAME, 1
@ -11,6 +11,6 @@ ChampionsRoom_Object:
def_object_events def_object_events
object_event 4, 2, SPRITE_BLUE, STAY, DOWN, 1 ; person object_event 4, 2, SPRITE_BLUE, STAY, DOWN, 1 ; person
object_event 3, 7, SPRITE_OAK, STAY, UP, 2 ; person object_event 3, 8, SPRITE_OAK, STAY, UP, 2 ; person
def_warps_to CHAMPIONS_ROOM def_warps_to CHAMPIONS_ROOM

View file

@ -1,4 +1,4 @@
Route12SuperRodHouse_Object: FishingGuruHouse_Object:
db $a ; border block db $a ; border block
def_warp_events def_warp_events
@ -11,4 +11,4 @@ Route12SuperRodHouse_Object:
object_event 2, 4, SPRITE_FISHING_GURU, STAY, RIGHT, 1 ; person object_event 2, 4, SPRITE_FISHING_GURU, STAY, RIGHT, 1 ; person
object_event 5, 6, SPRITE_YOUNGSTER, WALK, LEFT, 2 ; person object_event 5, 6, SPRITE_YOUNGSTER, WALK, LEFT, 2 ; person
def_warps_to ROUTE_12_SUPER_ROD_HOUSE def_warps_to FISHING_GURU_HOUSE

View file

@ -3,7 +3,7 @@ GiovannisRoom_Object:
def_warp_events def_warp_events
warp_event 5, 4, VIRIDIAN_GYM, 3 warp_event 5, 4, VIRIDIAN_GYM, 3
warp_event 15, 4, VIRIDIAN_CITY, 6 warp_event 17, 4, VIRIDIAN_CITY, 6
def_bg_events def_bg_events
@ -12,7 +12,7 @@ GiovannisRoom_Object:
object_event 17, 8, SPRITE_PAPER, STAY, RIGHT, 2 object_event 17, 8, SPRITE_PAPER, STAY, RIGHT, 2
object_event 17, 15, SPRITE_PAPER, STAY, DOWN, 3 object_event 17, 15, SPRITE_PAPER, STAY, DOWN, 3
object_event 14, 24, SPRITE_PAPER, STAY, RIGHT, 4 object_event 14, 24, SPRITE_PAPER, STAY, RIGHT, 4
object_event 16, 4, SPRITE_POKE_BALL, STAY, NONE, 5, TM_EARTHQUAKE object_event 18, 4, SPRITE_POKE_BALL, STAY, NONE, 5, TM_EARTHQUAKE
object_event 5, 22, SPRITE_POKE_BALL, STAY, NONE, 6, PROTECTOR object_event 5, 22, SPRITE_POKE_BALL, STAY, NONE, 6, PROTECTOR
def_warps_to GIOVANNIS_ROOM def_warps_to GIOVANNIS_ROOM

View file

@ -2,7 +2,7 @@ Route24_Object:
db $2c ; border block db $2c ; border block
def_warp_events def_warp_events
warp_event 5, 5, ROUTE_12_SUPER_ROD_HOUSE, 1 warp_event 5, 5, FISHING_GURU_HOUSE, 1
def_bg_events def_bg_events

View file

@ -111,7 +111,7 @@ InternalMapEntries:
internal_map MR_PSYCHICS_HOUSE, 10, 5, SaffronCityName internal_map MR_PSYCHICS_HOUSE, 10, 5, SaffronCityName
internal_map ROUTE_15_GATE_2F, 9, 13, Route15Name internal_map ROUTE_15_GATE_2F, 9, 13, Route15Name
internal_map ROUTE_16_FLY_HOUSE, 4, 5, Route16Name internal_map ROUTE_16_FLY_HOUSE, 4, 5, Route16Name
internal_map ROUTE_12_SUPER_ROD_HOUSE, 10, 1, Route24Name internal_map FISHING_GURU_HOUSE, 10, 1, Route24Name
internal_map ROUTE_18_GATE_2F, 7, 13, Route18Name internal_map ROUTE_18_GATE_2F, 7, 13, Route18Name
internal_map SEAFOAM_ISLANDS_1F, 5, 15, SeafoamIslandsName internal_map SEAFOAM_ISLANDS_1F, 5, 15, SeafoamIslandsName
internal_map ROUTE_22_GATE, 0, 7, Route22Name internal_map ROUTE_22_GATE, 0, 7, Route22Name

View file

@ -674,7 +674,9 @@ _ViridianBlackboardSleepText::
cont "battles." cont "battles."
para "Use AWAKENING to" para "Use AWAKENING to"
line "wake them up!" line "wake it up, or"
cont "wait for it to"
cont "wake itself up!"
prompt prompt
_ViridianBlackboardPoisonText:: _ViridianBlackboardPoisonText::
@ -695,11 +697,11 @@ _ViridianBlackboardPoisonText::
prompt prompt
_ViridianBlackboardPrlzText:: _ViridianBlackboardPrlzText::
text "Paralysis could" text "Paralysis may"
line "make #MON" line "make a #MON"
cont "moves misfire!" cont "unable to act!"
para "It even lowers" para "It also lowers"
line "their SPEED!" line "their SPEED!"
para "Paralysis remains" para "Paralysis remains"

View file

@ -69,6 +69,11 @@ _SurfingGotOnText::
text "!" text "!"
prompt prompt
_SurfingGotOnLaprasText:: ; i cringed irl doing it this way pls understand i do not like this either - pvk
text "<PLAYER> got on"
line "LAPRAS!"
prompt
_SurfingNoPlaceToGetOffText:: _SurfingNoPlaceToGetOffText::
text "There's no place" text "There's no place"
line "to get off!" line "to get off!"

View file

@ -354,7 +354,7 @@ EngineerData:
; Celadon University ; Celadon University
db 52, GOLEM_A, 0 db 52, GOLEM_A, 0
; Super Rod encounter showcase, basically ; Fishing Rod encounter showcase, basically
FisherData: FisherData:
; SS Anne 2F Rooms ; SS Anne 2F Rooms
db 17, GOLDEEN, TENTACOOL, KRABBY, 0 db 17, GOLDEEN, TENTACOOL, KRABBY, 0

48
data/wild/fishing_rod.asm Normal file
View file

@ -0,0 +1,48 @@
FishingRodSlots::
db PALLET_TOWN, MAGIKARP, 7, ORFRY, 6, MAGIKARP, 8, ORFRY, 7
db VIRIDIAN_CITY, MAGIKARP, 5, ORFRY, 5, MAGIKARP, 7, ORFRY, 7
db ROUTE_22, MAGIKARP, 6, ORFRY, 5, MAGIKARP, 7, ORFRY, 7
db ROUTE_4, MAGIKARP, 12, ORFRY, 12, POLIWAG, 12, PSYDUCK, 13
db CERULEAN_CITY, MAGIKARP, 11, ORFRY, 14, POLIWAG, 13, STARYU, 13
db ROUTE_24, MAGIKARP, 12, ORFRY, 13, POLIWAG, 12, PSYDUCK, 12
db ROUTE_25, MAGIKARP, 11, POLIWAG, 12, ORFRY, 12, CHEEP, 12
db ROUTE_6, MAGIKARP, 12, ORFRY, 12, POLIWAG, 12, PSYDUCK, 12
db VERMILION_CITY, GOLDEEN, 14, SHELLDER, 13, CHEEP, 15, TENTACOOL, 13
db VERMILION_DOCK, MAGIKARP, 15, BLOTTLE, 13, CHEEP, 15, TENTACOOL, 15
db VERMILION_FERRY_DOCK, MAGIKARP, 16, BLOTTLE, 14, CHEEP, 13, TENTACOOL, 14
db ROUTE_11, WIGLETT, 15, KRABBY, 15, CHEEP, 14, TENTACOOL, 13
db DIGLETTS_CAVE, WIGLETT, 18, WIGLETT, 19, WIGLETT, 20, WUGTRIO, 28
db ROUTE_10, POLIWAG, 17, RIBBITO, 17, KRABBY, 19, SLOWPOKE, 18
db ROCK_TUNNEL_1F, POLIWAG, 16, RIBBITO, 16, KRABBY, 17, SLOWPOKE, 17
db ROUTE_12, POLIWAG, 18, RIBBITO, 15, KRABBY, 17, SLOWPOKE, 19
db CELADON_CITY, MAGIKARP, 15, MAGIKARP, 17, GRIMER, 20, MAGIKARP, 20
db CELADON_UNIVERSITY_OUTSIDE, MAGIKARP, 14, MAGIKARP, 18, GRIMER, 21, MAGIKARP, 19
db ROUTE_13, PSYDUCK, 25, KRABBY, 25, HORSEA, 24, POLIWHIRL, 26
db ROUTE_17, CHEEP, 25, KRABBY, 25, HORSEA, 25, POLIWHIRL, 25
db ROUTE_18, CHEEP, 26, KRABBY, 27, HORSEA, 26, POLIWHIRL, 27
db ROUTE_23, SLOWBRO, 23, KINGLER, 24, HORSEA, 22, POLIWHIRL, 25
db FUCHSIA_CITY, GRIMER, 25, KRABBY, 25, HORSEA, 25, GYARADOS, 26
db SAFARI_ZONE_CENTER, SLOWPOKE, 25, KRABBY, 26, DRATINI, 23, DRAGONAIR, 30
db SAFARI_ZONE_EAST, SLOWPOKE, 24, KRABBY, 24, WEIRDUCK, 22, DRATINI, 19
db SAFARI_ZONE_NORTH, SLOWPOKE, 26, KRABBY, 25, WEIRDUCK, 23, DRATINI, 21
db SAFARI_ZONE_WEST, SLOWPOKE, 23, KRABBY, 27, WEIRDUCK, 24, DRATINI, 20
db UNDERWATER_TUNNEL, SHELLDER, 30, STARYU, 29, JABETTA, 33, GOLDUCK, 34
db ROUTE_19, STARYU, 31, HORSEA, 31, SHELLDER, 31, SHARPOON, 32
db ROUTE_20, STARYU, 33, HORSEA, 33, SHELLDER, 33, SHARPOON, 34
db ROUTE_21, STARYU, 31, HORSEA, 32, SHELLDER, 31, SHARPOON, 32
db SEAFOAM_ISLANDS_B3F, KRABBY, 31, SEEL, 31, SHELLDER, 32, STARYU, 33
db SEAFOAM_ISLANDS_B4F, KRABBY, 32, SEEL, 33, SHELLDER, 33, LAPRAS, 35 ; fish for nessie if ur stupid enough - pvk
db CINNABAR_ISLAND, STARYU, 30, HORSEA, 30, SHELLDER, 30, SHARPOON, 30
db CINNABAR_VOLCANO_FLOORS, GROWLITHE, 32, MAGMAR, 35, MAGMAR, 35, MAGMAR, 36
db CINNABAR_VOLCANO, MAGMAR, 35, MAGMAR, 35, MAGMAR, 36, ARCANINE, 38
db BILLS_GARDEN, SQUIRTLE, 52, SQUIRTLE, 51, DRATINI, 50, DRAGONAIR, 53
db MT_MOON_CRATER, KABUTOPS, 49, OMASTAR, 49, SEAKING, 50, GYARADOS, 53
db CITRINE_FERRY_DOCK, PENDRAKEN, 48, TENTACRUEL, 49, KINGLER, 51, SHARPOON, 50
db CITRINE_CITY, PENDRAKEN, 48, TENTACRUEL, 49, KINGLER, 52, SHARPOON, 51
db BRUNSWICK_TRAIL, STARYU, 48, SEADRA, 49, GOLDUCK, 50, POLIWRATH, 50
db GARNET_CAVERN_1F, PENDRAKEN, 50, SEADRA, 49, POLIWRATH, 53, GYARADOS, 54
db GARNET_CAVERN_B1F, PENDRAKEN, 51, SEADRA, 48, POLITOED, 52, GYARADOS, 55
db SILPH_GAUNTLET_5F, SLOWBRO, 50, KINGLER, 51, GOLDUCK, 51, DRAGONAIR, 52
db CERULEAN_CAVE_1F, SHARPOON, 62, SLOWBRO, 64, CROAKOZUNA, 64, GYARADOS, 65
db CERULEAN_CAVE_B1F, SHARPOON, 62, SLOWKING, 64, CROAKOZUNA, 64, GYARADOS, 65
db -1 ; end

View file

@ -1,5 +0,0 @@
; random choice of 2 good rod encounters
GoodRodMons:
; level, species
db 10, GOLDEEN
db 10, POLIWAG

View file

@ -1,7 +1,7 @@
Route13WildMons: Route13WildMons:
def_grass_wildmons 20 ; encounter rate def_grass_wildmons 20 ; encounter rate
db 24, ODDISH db 24, ODDISH
db 25, PIDGEOTTO db 25, FARFETCHD
db 23, BELLSPROUT db 23, BELLSPROUT
db 24, VENONAT db 24, VENONAT
db 24, VENONAT db 24, VENONAT

View file

@ -2,7 +2,7 @@ Route15WildMons:
def_grass_wildmons 15 ; encounter rate def_grass_wildmons 15 ; encounter rate
db 24, BELLSPROUT db 24, BELLSPROUT
db 26, VENONAT db 26, VENONAT
db 25, SPEAROW db 25, FARFETCHD
db 25, DITTO db 25, DITTO
db 22, BELLSPROUT db 22, BELLSPROUT
db 28, ODDISH db 28, ODDISH

View file

@ -7,7 +7,7 @@ VictoryRoad3FWildMons:
db 43, RHYHORN db 43, RHYHORN
db 43, GOLBAT db 43, GOLBAT
db 44, GAVILLAIN db 44, GAVILLAIN
db 44, SANDSLASH db 50, CHANSEY ; Possible to Repel Trick, used for grinding.
db 44, PARASECT db 44, PARASECT
db 45, HITMONCHAN ; LGPE Rare Spawn db 45, HITMONCHAN ; LGPE Rare Spawn
end_grass_wildmons end_grass_wildmons

View file

@ -1,159 +0,0 @@
; super rod encounters
SuperRodData:
; map, fishing group
dbw PALLET_TOWN, .Group1
dbw VIRIDIAN_CITY, .Group1
dbw CERULEAN_CITY, .Group2
dbw VERMILION_CITY, .Group4
dbw CELADON_CITY, .Group13
dbw FUCHSIA_CITY, .Group6
dbw CINNABAR_ISLAND, .Group9
dbw CITRINE_CITY, .Group11
dbw ROUTE_4, .Group2
dbw ROUTE_6, .Group2
dbw ROUTE_10, .Group5
dbw ROUTE_11, .Group4
dbw ROUTE_12, .Group5
dbw ROUTE_13, .Group6
dbw ROUTE_17, .Group6
dbw ROUTE_18, .Group6
dbw ROUTE_19, .Group9
dbw ROUTE_20, .Group9
dbw ROUTE_21, .Group9
dbw ROUTE_22, .Group1
dbw ROUTE_23, .Group6
dbw ROUTE_24, .Group2
dbw ROUTE_25, .Group3
dbw BRUNSWICK_TRAIL, .Group11
dbw VERMILION_DOCK, .Group4
dbw VERMILION_FERRY_DOCK, .Group4
dbw CITRINE_FERRY_DOCK, .Group11
dbw SEAFOAM_ISLANDS_B3F, .Group9
dbw SEAFOAM_ISLANDS_B4F, .Group9
dbw SAFARI_ZONE_EAST, .Group7
dbw SAFARI_ZONE_NORTH, .Group7
dbw SAFARI_ZONE_WEST, .Group7
dbw SAFARI_ZONE_CENTER, .Group7
dbw CERULEAN_CAVE_2F, .Group12
dbw CERULEAN_CAVE_B1F, .Group12
dbw CERULEAN_CAVE_1F, .Group12
dbw SILPH_GAUNTLET_5F, .Group7
dbw ROCK_TUNNEL_1F, .Group5
dbw CELADON_UNIVERSITY_OUTSIDE, .Group13
dbw MT_MOON_CRATER, .Group12
dbw DIGLETTS_CAVE, .Group14
dbw BILLS_GARDEN, .Group8
dbw UNDERWATER_TUNNEL, .Group10
dbw GARNET_CAVERN_1F, .Group11
dbw GARNET_CAVERN_2F, .Group11
dbw GARNET_CAVERN_B1F, .Group11
dbw CINNABAR_VOLCANO_FLOORS, .Group15
dbw CINNABAR_VOLCANO, .Group15
db -1 ; end
; fishing groups
; number of monsters, followed by level/monster pairs
.Group1: ; Pallet, Viridian & Route 22
db 4
db 5, MAGIKARP
db 7, MAGIKARP
db 5, ORFRY
db 7, ORFRY
.Group2: ; Route 4, Cerulean, Route 24, Route 6
db 4
db 12, MAGIKARP
db 12, POLIWAG
db 12, ORFRY
db 12, PSYDUCK
.Group3: ; Route 25
db 4
db 12, MAGIKARP
db 12, POLIWAG
db 12, ORFRY
db 12, CHEEP
.Group4: ; Route 11, Vermilion
db 4
db 15, BLOTTLE
db 15, MAGIKARP
db 15, TENTACOOL
db 15, CHEEP
.Group5: ; Route 10, Route 12, Rock Tunnel
db 4
db 20, RIBBITO
db 20, POLIWAG
db 20, SLOWPOKE
db 20, KRABBY
.Group6: ; Route 13, Route 17, Route 18, Fuchsia, Route 23
db 4
db 25, HORSEA
db 25, POLIWHIRL
db 25, KRABBY
db 25, BLOTTLE
.Group7: ; Safari Zone
db 4
db 15, DRATINI
db 20, SLOWPOKE
db 25, KRABBY
db 25, WEIRDUCK
.Group8: ; Bill's Garden
db 4
db 50, SQUIRTLE
db 50, SQUIRTLE
db 50, DRATINI
db 50, DRATINI
.Group9: ; Cinnabar, Route 19-21, Seafoam Islands
db 4
db 30, STARYU
db 30, HORSEA
db 30, SHELLDER
db 30, GOLDEEN
.Group10: ; Underwater Tunnel
db 4
db 35, SHELLDER
db 35, STARYU
db 35, CROAKOZUNA
db 35, GOLDUCK
.Group11: ; Citrine, Brunswick, Garnet
db 4
db 50, KINGLER
db 50, SEADRA
db 50, PENDRAKEN
db 50, GYARADOS
.Group12: ; Cerulean Cave, Mt Moon Crater
db 4
db 50, SLOWBRO
db 50, SEAKING
db 50, GYARADOS
db 50, CROAKOZUNA
.Group13: ; Celadon
db 4
db 10, MAGIKARP
db 15, MAGIKARP
db 20, MAGIKARP
db 20, GRIMER
.Group14: ; Diglett's Cave
db 4
db 17, WIGLETT
db 18, WIGLETT
db 19, WIGLETT
db 20, WIGLETT
.Group15: ; Cinnabar Volcano
db 3
db 35, MAGMAR
db 37, MAGMAR
db 40, MAGMAR

View file

@ -1936,6 +1936,7 @@ DrawPlayerHUDAndHPBar:
hlcoord 10, 7 hlcoord 10, 7
call CenterMonName call CenterMonName
call PlaceString call PlaceString
call PrintEXPBar
ld hl, wBattleMonSpecies ld hl, wBattleMonSpecies
ld de, wLoadedMon ld de, wLoadedMon
ld bc, wBattleMonDVs - wBattleMonSpecies ld bc, wBattleMonDVs - wBattleMonSpecies
@ -7308,3 +7309,187 @@ MeltanIncrement:
MeltanFullJar: MeltanFullJar:
text_far _MeltanFullJar text_far _MeltanFullJar
text_end text_end
PrintEXPBar:
call CalcEXPBarPixelLength
ld a, [hQuotient + 3] ; pixel length
ld [wEXPBarPixelLength], a
ld b, a
ld c, $08
ld d, $08
coord hl, 17, 11
.loop
ld a, b
sub c
jr nc, .skip
ld c, b
jr .loop
.skip
ld b, a
ld a, $c0
add c
.loop2
ld [hld], a
dec d
ret z
ld a, b
and a
jr nz, .loop
ld a, $c0
jr .loop2
CalcEXPBarPixelLength:
ld hl, wEXPBarKeepFullFlag
bit 0, [hl]
jr z, .start
res 0, [hl]
ld a, $40
ld [hQuotient + 3], a
ret
.start
; get the base exp needed for the current level
ld a, [wPlayerBattleStatus3]
ld hl, wBattleMonSpecies
bit 3, a
jr z, .skip
ld hl, wPartyMon1
call BattleMonPartyAttr
.skip
ld a, [hl]
ld [wd0b5], a
call GetMonHeader
ld a, [wBattleMonLevel]
ld d, a
ld hl, CalcExperience
ld b, BANK(CalcExperience)
call Bankswitch
ld hl, hMultiplicand
ld de, wEXPBarBaseEXP
ld a, [hli]
ld [de], a
inc de
ld a, [hli]
ld [de], a
inc de
ld a, [hl]
ld [de], a
; get the exp needed to gain a level
ld a, [wBattleMonLevel]
ld d, a
inc d
ld hl, CalcExperience
ld b, BANK(CalcExperience)
call Bankswitch
; get the address of the active Pokemon's current experience
ld hl, wPartyMon1Exp
call BattleMonPartyAttr
; current exp - base exp
ld b, h
ld c, l
ld hl, wEXPBarBaseEXP
ld de, wEXPBarCurEXP
call SubThreeByteNum
; exp needed - base exp
ld bc, hMultiplicand
ld hl, wEXPBarBaseEXP
ld de, wEXPBarNeededEXP
call SubThreeByteNum
; make the divisor an 8-bit number
ld hl, wEXPBarNeededEXP
ld de, wEXPBarCurEXP + 1
ld a, [hli]
and a
jr z, .twoBytes
ld a, [hli]
ld [hld], a
dec hl
ld a, [hli]
ld [hld], a
ld a, [de]
inc de
ld [de], a
dec de
dec de
ld a, [de]
inc de
ld [de], a
dec de
xor a
ld [hli], a
ld [de], a
inc de
.twoBytes
ld a, [hl]
and a
jr z, .oneByte
srl a
ld [hli], a
ld a, [hl]
rr a
ld [hld], a
ld a, [de]
srl a
ld [de], a
inc de
ld a, [de]
rr a
ld [de], a
dec de
jr .twoBytes
.oneByte
; current exp * (8 tiles * 8 pixels)
ld hl, hMultiplicand
ld de, wEXPBarCurEXP
ld a, [de]
inc de
ld [hli], a
ld a, [de]
inc de
ld [hli], a
ld a, [de]
ld [hl], a
ld a, $40
ld [hMultiplier], a
call Multiply
; product / needed exp = pixel length
ld a, [wEXPBarNeededEXP + 2]
ld [hDivisor], a
ld b, $04
jp Divide
; calculates the three byte number starting at [bc]
; minus the three byte number starting at [hl]
; and stores it into the three bytes starting at [de]
; assumes that [hl] is smaller than [bc]
SubThreeByteNum:
call .subByte
call .subByte
.subByte
ld a, [bc]
inc bc
sub [hl]
inc hl
ld [de], a
jr nc, .noCarry
dec de
ld a, [de]
dec a
ld [de], a
inc de
.noCarry
inc de
ret
; return the address of the BattleMon's party struct attribute in hl
BattleMonPartyAttr:
ld a, [wPlayerMonNumber]
ld bc, wPartyMon2 - wPartyMon1
jp AddNTimes

View file

@ -804,7 +804,6 @@ ThrashPetalDanceEffect:
inc a inc a
ld [de], a ; set thrash/petal dance counter to 2 or 3 at random ld [de], a ; set thrash/petal dance counter to 2 or 3 at random
ldh a, [hWhoseTurn] ldh a, [hWhoseTurn]
add SHRINKING_SQUARE_ANIM
jp PlayBattleAnimation2 jp PlayBattleAnimation2
SwitchAndTeleportEffect: SwitchAndTeleportEffect:

View file

@ -167,6 +167,7 @@ GainExperience:
xor a ; PLAYER_PARTY_DATA xor a ; PLAYER_PARTY_DATA
ld [wMonDataLocation], a ld [wMonDataLocation], a
call LoadMonData call LoadMonData
call AnimateEXPBar
pop hl pop hl
ld bc, wPartyMon1Level - wPartyMon1Exp ld bc, wPartyMon1Level - wPartyMon1Exp
add hl, bc add hl, bc
@ -177,6 +178,7 @@ GainExperience:
ld [wTempLevel], a ld [wTempLevel], a
cp d cp d
jp z, .nextMon ; if level didn't change, go to next mon jp z, .nextMon ; if level didn't change, go to next mon
call KeepEXPBarFull
ld a, [wCurEnemyLVL] ld a, [wCurEnemyLVL]
push af push af
push hl push hl
@ -399,3 +401,71 @@ GrewLevelText:
text_far _GrewLevelText text_far _GrewLevelText
sound_level_up sound_level_up
text_end text_end
AnimateEXPBarAgain:
call IsCurrentMonBattleMon
ret nz
xor a
ld [wEXPBarPixelLength], a
coord hl, 17, 11
ld a, $c0
ld c, $08
.loop
ld [hld], a
dec c
jr nz, .loop
AnimateEXPBar:
call IsCurrentMonBattleMon
ret nz
ld a, SFX_HEAL_HP
call PlaySoundWaitForCurrent
ld hl, CalcEXPBarPixelLength
ld b, BANK(CalcEXPBarPixelLength)
call Bankswitch
ld hl, wEXPBarPixelLength
ld a, [hl]
ld b, a
ld a, [hQuotient + 3]
ld [hl], a
sub b
jr z, .done
ld b, a
ld c, $08
coord hl, 17, 11
.loop1
ld a, [hl]
cp $c8
jr nz, .loop2
dec hl
dec c
jr z, .done
jr .loop1
.loop2
inc a
ld [hl], a
call DelayFrame
dec b
jr z, .done
jr .loop1
.done
ld bc, $08
coord hl, 10, 11
ld de, wTileMapBackup + 10 + 11 * 20
call CopyData
ld c, $20
jp DelayFrames
KeepEXPBarFull:
call IsCurrentMonBattleMon
ret nz
ld a, [wEXPBarKeepFullFlag]
set 0, a
ld [wEXPBarKeepFullFlag], a
ret
IsCurrentMonBattleMon:
ld a, [wPlayerMonNumber]
ld b, a
ld a, [wWhichPokemon]
cp b
ret

View file

@ -196,7 +196,7 @@ DebugItemsList:
db CARD_KEY, 1 db CARD_KEY, 1
db S_S_TICKET, 1 db S_S_TICKET, 1
db CITRINE_PASS, 1 db CITRINE_PASS, 1
db SUPER_ROD, 1 db FISHING_ROD, 1
db COIN_CASE, 1 db COIN_CASE, 1
db POKE_FLUTE, 1 db POKE_FLUTE, 1
db SILPH_SCOPE, 1 db SILPH_SCOPE, 1

View file

@ -72,7 +72,7 @@ ItemUsePtrTable:
dw ItemUseMedicine ; REVIVE dw ItemUseMedicine ; REVIVE
dw ItemUseMedicine ; MAX_REVIVE dw ItemUseMedicine ; MAX_REVIVE
dw ItemUseGuardSpec ; GUARD_SPEC dw ItemUseGuardSpec ; GUARD_SPEC
dw ItemUseSuperRepel ; SUPER_REPL dw ItemUseSuperRepel ; SUPER_REPEL
dw ItemUseMaxRepel ; MAX_REPEL dw ItemUseMaxRepel ; MAX_REPEL
dw ItemUseDireHit ; DIRE_HIT dw ItemUseDireHit ; DIRE_HIT
dw UnusableItem ; COIN dw UnusableItem ; COIN
@ -92,10 +92,10 @@ ItemUsePtrTable:
dw ItemUsePokeflute ; POKE_FLUTE dw ItemUsePokeflute ; POKE_FLUTE
dw UnusableItem ; LIFT_KEY dw UnusableItem ; LIFT_KEY
dw UnusableItem ; EXP_ALL dw UnusableItem ; EXP_ALL
dw ItemUseCandyJar ; was OLD_ROD, now CANDY_JAR dw ItemUseCandyJar ; was OLD_ROD, now CANDY_JAR
dw UnusableItem ; was GOOD_ROD, now BOTTLE_CAP dw UnusableItem ; was GOOD_ROD, now BOTTLE_CAP
dw ItemUseSuperRod ; SUPER_ROD dw ItemUseFishingRod ; FISHING_ROD
dw ItemUsePPUp ; PP_UP (real one) dw ItemUsePPUp ; PP_UP
dw ItemUsePPRestore ; ETHER dw ItemUsePPRestore ; ETHER
dw ItemUsePPRestore ; MAX_ETHER dw ItemUsePPRestore ; MAX_ETHER
dw ItemUsePPRestore ; ELIXER dw ItemUsePPRestore ; ELIXER
@ -110,11 +110,11 @@ ItemUsePtrTable:
dw ItemUseEvoStone ; UP_GRADE dw ItemUseEvoStone ; UP_GRADE
dw ItemUseEvoStone ; METAL_COAT dw ItemUseEvoStone ; METAL_COAT
dw ItemUseMysteryBox ; MYSTERY_BOX dw ItemUseMysteryBox ; MYSTERY_BOX
dw UnusableItem ; TEA dw UnusableItem ; TEA
dw ItemUseLetter ; SILPHLETTER dw ItemUseLetter ; SILPHLETTER
dw UnusableItem ; FLOOR_B2F dw UnusableItem ; FLOOR_B2F
dw UnusableItem ; FLOOR_B1F dw UnusableItem ; FLOOR_B1F
dw UnusableItem ; FLOOR_1F dw UnusableItem ; FLOOR_1F
dw UnusableItem ; FLOOR_2F dw UnusableItem ; FLOOR_2F
dw UnusableItem ; FLOOR_3F dw UnusableItem ; FLOOR_3F
dw UnusableItem ; FLOOR_4F dw UnusableItem ; FLOOR_4F
@ -782,8 +782,17 @@ ItemUseLapras:
ld a, 2 ld a, 2
ld [wWalkBikeSurfState], a ; change player state to surfing ld [wWalkBikeSurfState], a ; change player state to surfing
call PlayDefaultMusic ; play surfing music call PlayDefaultMusic ; play surfing music
; no jimmy i will NOT make a new item
ld hl, SurfingGotOnLaprasText
ld a, [wSurfMonItemSwitch] ; check if the mon item switch has been set
and a
jr z, .skip
ld hl, SurfingGotOnText ld hl, SurfingGotOnText
.skip ; now shut the fuck up
jp PrintText jp PrintText
.tryToStopSurfing .tryToStopSurfing
xor a xor a
ldh [hSpriteIndexOrTextID], a ldh [hSpriteIndexOrTextID], a
@ -851,6 +860,10 @@ SurfingGotOnText:
text_far _SurfingGotOnText text_far _SurfingGotOnText
text_end text_end
SurfingGotOnLaprasText:
text_far _SurfingGotOnLaprasText
text_end
SurfingNoPlaceToGetOffText: SurfingNoPlaceToGetOffText:
text_far _SurfingNoPlaceToGetOffText text_far _SurfingNoPlaceToGetOffText
text_end text_end
@ -1986,16 +1999,31 @@ CoinCaseNumCoinsText:
;INCLUDE "data/wild/good_rod.asm" ;INCLUDE "data/wild/good_rod.asm"
ItemUseSuperRod: ItemUseFishingRod:
call FishingInit call FishingInit
jp c, ItemUseNotTime jp c, ItemUseNotTime
call ReadSuperRodData call ReadFishingRodData
ld a, e ld c, e
ld b, d
ld a, $2
ld [wRodResponse], a
ld a, c
and a ; are there fish in the map?
jr z, DoNotGenerateFishingEncounter ; if not, do not generate an encounter
ld a, $1
ld [wRodResponse], a
call Random
and $1
jr nz, RodResponse
xor a
ld [wRodResponse], a
jr DoNotGenerateFishingEncounter
RodResponse: RodResponse:
ld [wRodResponse], a ld [wRodResponse], a
dec a ; is there a bite? dec a ; is there a bite?
jr nz, .next jr nz, DoNotGenerateFishingEncounter
; if yes, store level and species data ; if yes, store level and species data
ld a, 1 ld a, 1
ld [wMoveMissed], a ld [wMoveMissed], a
@ -2004,7 +2032,7 @@ RodResponse:
ld a, c ; species ld a, c ; species
ld [wCurOpponent], a ld [wCurOpponent], a
.next DoNotGenerateFishingEncounter:
ld hl, wWalkBikeSurfState ld hl, wWalkBikeSurfState
ld a, [hl] ; store the value in a ld a, [hl] ; store the value in a
push af push af
@ -2029,7 +2057,7 @@ FishingInit:
ret c ret c
ld a, [wWalkBikeSurfState] ld a, [wWalkBikeSurfState]
cp 2 ; Surfing? cp 2 ; Surfing?
jr z, .surfing jr z, .cannotFish
call ItemUseReloadOverworldData call ItemUseReloadOverworldData
ld hl, ItemUseText00 ld hl, ItemUseText00
call PrintText call PrintText
@ -2039,7 +2067,7 @@ FishingInit:
call DelayFrames call DelayFrames
and a and a
ret ret
.surfing .cannotFish
scf ; can't fish when surfing scf ; can't fish when surfing
ret ret
@ -2971,52 +2999,47 @@ IsNextTileShoreOrWater:
INCLUDE "data/tilesets/water_tilesets.asm" INCLUDE "data/tilesets/water_tilesets.asm"
ReadSuperRodData: ReadFishingRodData:
; return e = 2 if no fish on this map
; return e = 1 if a bite, bc = level,species
; return e = 0 if no bite
ld a, [wCurMap] ld a, [wCurMap]
ld de, 3 ; each fishing group is three bytes wide
ld hl, SuperRodData
call IsInArray
jr c, .ReadFishingGroup
ld e, $2 ; $2 if no fishing groups found
ret
.ReadFishingGroup
; hl points to the fishing group entry in the index
inc hl ; skip map id
; read fishing group address
ld a, [hli]
ld h, [hl]
ld l, a
ld b, [hl] ; how many mons in group
inc hl ; point to data
ld e, $0 ; no bite yet
.RandomLoop
call Random
srl a
ret c ; 50% chance of no battle
and %11 ; 2-bit random number
cp b
jr nc, .RandomLoop ; if a is greater than the number of mons, regenerate
; get the mon
add a
ld c, a ld c, a
ld b, $0 ld hl, FishingRodSlots
add hl, bc .loop
ld b, [hl] ; level ld a, [hli]
inc hl cp $ff
ld c, [hl] ; species jr z, .notfound
ld e, $1 ; $1 if there's a bite cp c
jr z, .found
ld de, $8
add hl, de
jr .loop
.found
call GenerateRandomFishingEncounter
ret
.notfound
ld de, $0
ret ret
INCLUDE "data/wild/super_rod.asm" GenerateRandomFishingEncounter:
call Random
cp $66
jr c, .asm_f5ed6
inc hl
inc hl
cp $b2
jr c, .asm_f5ed6
inc hl
inc hl
cp $e5
jr c, .asm_f5ed6
inc hl
inc hl
.asm_f5ed6
ld e, [hl]
inc hl
ld d, [hl]
ret
INCLUDE "data/wild/fishing_rod.asm"
; reloads map view and processes sprite data ; reloads map view and processes sprite data
; for items that cause the overworld to be displayed ; for items that cause the overworld to be displayed

View file

@ -72,6 +72,8 @@ ExitPlayerPC:
call WaitForSoundToFinish call WaitForSoundToFinish
.next .next
ld hl, wFlags_0xcd60 ld hl, wFlags_0xcd60
res 2, [hl]
res 4, [hl]
res 5, [hl] res 5, [hl]
call LoadScreenTilesFromBuffer2 call LoadScreenTilesFromBuffer2
xor a xor a
@ -94,6 +96,9 @@ PlayerPCDeposit:
call PrintText call PrintText
jp PlayerPCMenu jp PlayerPCMenu
.loop .loop
ld hl, wFlags_0xcd60
set 2, [hl]
res 4, [hl]
ld hl, WhatToDepositText ld hl, WhatToDepositText
call PrintText call PrintText
ld hl, wNumBagItems ld hl, wNumBagItems
@ -106,6 +111,7 @@ PlayerPCDeposit:
ld a, ITEMLISTMENU ld a, ITEMLISTMENU
ld [wListMenuID], a ld [wListMenuID], a
call DisplayListMenuID call DisplayListMenuID
jp nz, .sortItems
jp c, PlayerPCMenu jp c, PlayerPCMenu
call IsKeyItem call IsKeyItem
ld a, 1 ld a, 1
@ -120,6 +126,9 @@ PlayerPCDeposit:
cp $ff cp $ff
jp z, .loop jp z, .loop
.next .next
ld hl, wFlags_0xcd60
res 2, [hl]
res 4, [hl]
ld hl, wNumBoxItems ld hl, wNumBoxItems
call AddItemToInventory call AddItemToInventory
jr c, .roomAvailable jr c, .roomAvailable
@ -136,7 +145,9 @@ PlayerPCDeposit:
ld hl, ItemWasStoredText ld hl, ItemWasStoredText
call PrintText call PrintText
jp .loop jp .loop
.sortItems
call SortItems
jp .loop
PlayerPCWithdraw: PlayerPCWithdraw:
xor a xor a
ld [wCurrentMenuItem], a ld [wCurrentMenuItem], a
@ -148,6 +159,9 @@ PlayerPCWithdraw:
call PrintText call PrintText
jp PlayerPCMenu jp PlayerPCMenu
.loop .loop
ld hl, wFlags_0xcd60
set 2, [hl]
set 4, [hl]
ld hl, WhatToWithdrawText ld hl, WhatToWithdrawText
call PrintText call PrintText
ld hl, wNumBoxItems ld hl, wNumBoxItems
@ -160,6 +174,7 @@ PlayerPCWithdraw:
ld a, ITEMLISTMENU ld a, ITEMLISTMENU
ld [wListMenuID], a ld [wListMenuID], a
call DisplayListMenuID call DisplayListMenuID
jp nz, .sortItems
jp c, PlayerPCMenu jp c, PlayerPCMenu
call IsKeyItem call IsKeyItem
ld a, 1 ld a, 1
@ -174,6 +189,9 @@ PlayerPCWithdraw:
cp $ff cp $ff
jp z, .loop jp z, .loop
.next .next
ld hl, wFlags_0xcd60
res 2, [hl]
res 4, [hl]
ld hl, wNumBagItems ld hl, wNumBagItems
call AddItemToInventory call AddItemToInventory
jr c, .roomAvailable jr c, .roomAvailable
@ -190,7 +208,9 @@ PlayerPCWithdraw:
ld hl, WithdrewItemText ld hl, WithdrewItemText
call PrintText call PrintText
jp .loop jp .loop
.sortItems
call SortItems
jp .loop
PlayerPCToss: PlayerPCToss:
xor a xor a
ld [wCurrentMenuItem], a ld [wCurrentMenuItem], a
@ -202,6 +222,9 @@ PlayerPCToss:
call PrintText call PrintText
jp PlayerPCMenu jp PlayerPCMenu
.loop .loop
ld hl, wFlags_0xcd60
set 2, [hl]
set 4, [hl]
ld hl, WhatToTossText ld hl, WhatToTossText
call PrintText call PrintText
ld hl, wNumBoxItems ld hl, wNumBoxItems
@ -216,6 +239,7 @@ PlayerPCToss:
push hl push hl
call DisplayListMenuID call DisplayListMenuID
pop hl pop hl
jp nz, .sortItems
jp c, PlayerPCMenu jp c, PlayerPCMenu
push hl push hl
call IsKeyItem call IsKeyItem
@ -237,8 +261,14 @@ PlayerPCToss:
cp $ff cp $ff
jp z, .loop jp z, .loop
.next .next
ld hl, wFlags_0xcd60
res 2, [hl]
res 4, [hl]
call TossItem ; disallows tossing key items call TossItem ; disallows tossing key items
jp .loop jp .loop
.sortItems
call SortItems
jp .loop
PlayersPCMenuEntries: PlayersPCMenuEntries:
db "WITHDRAW ITEM" db "WITHDRAW ITEM"

View file

@ -165,6 +165,14 @@ StartMenu_Pokemon::
bit 1, [hl] bit 1, [hl]
res 1, [hl] res 1, [hl]
jp z, .loop jp z, .loop
; this makes it so the pokemon shows up instead of pocket lapras
; no visible effect when using surf, it's actually for the item effect later
; it makes it so I don't have to make a craptastic new function that falls through, which would require a new item, which is so unimaginably cringe i would fall off my chair and die
; - pvk
ld a, 1
ld [wSurfMonItemSwitch], a
ld a, POCKET_LAPRAS ld a, POCKET_LAPRAS
ld [wcf91], a ld [wcf91], a
ld [wPseudoItemID], a ld [wPseudoItemID], a
@ -319,6 +327,9 @@ StartMenu_Item::
call PrintText call PrintText
jr .exitMenu jr .exitMenu
.notInCableClubRoom .notInCableClubRoom
ld hl,wFlags_0xcd60
set 2, [hl]
res 4, [hl]
ld bc, wNumBagItems ld bc, wNumBagItems
ld hl, wListPointer ld hl, wListPointer
ld a, c ld a, c
@ -336,6 +347,9 @@ StartMenu_Item::
ld [wBagSavedMenuItem], a ld [wBagSavedMenuItem], a
jr nc, .choseItem jr nc, .choseItem
.exitMenu .exitMenu
ld hl,wFlags_0xcd60
res 2, [hl]
res 4, [hl]
call LoadScreenTilesFromBuffer2 ; restore saved screen call LoadScreenTilesFromBuffer2 ; restore saved screen
call LoadTextBoxTilePatterns call LoadTextBoxTilePatterns
call UpdateSprites call UpdateSprites

View file

@ -179,7 +179,7 @@ SortItems::
ld de, 0 ld de, 0
ld hl, ItemSortList ld hl, ItemSortList
ld b, [hl] ; This is the first item to check for ld b, [hl] ; This is the first item to check for
ld hl, wBagItems call .ldHLbagorbox
ld c, 0 ; Relative to wBagItems, this is where we'd like to begin swapping ld c, 0 ; Relative to wBagItems, this is where we'd like to begin swapping
.loopCurrItemInBag .loopCurrItemInBag
ld a, [hl] ; Load the value of hl to a (which is an item number) and Increments to the quantity ld a, [hl] ; Load the value of hl to a (which is an item number) and Increments to the quantity
@ -196,7 +196,7 @@ SortItems::
ld hl, ItemSortList ld hl, ItemSortList
add hl, de add hl, de
ld b, [hl] ld b, [hl]
ld hl, wBagItems ; Resets hl to start at the beginning of the bag call .ldHLbagorbox ; Resets hl to start at the beginning of the bag
ld a, b ld a, b
cp -1 ; Check if we got through all of the items, to the last one cp -1 ; Check if we got through all of the items, to the last one
jr z, .finishedSwapping jr z, .finishedSwapping
@ -207,7 +207,7 @@ SortItems::
push de push de
ld d, h ld d, h
ld e, l ld e, l
ld hl, wBagItems call .ldHLbagorbox
ld a, b ld a, b
ld b, 0 ld b, 0
add hl, bc ; hl now holds where we'd like to swap to add hl, bc ; hl now holds where we'd like to swap to
@ -240,6 +240,15 @@ SortItems::
pop de pop de
jr .findNextItem jr .findNextItem
;Allow for sorting both the bag and the item PC box
.ldHLbagorbox
ld hl, wBagItems
ld a, [wFlags_0xcd60]
bit 4, a
ret z
ld hl, wBoxItems
ret
SortItemsText:: SortItemsText::
text_far _SortItemsText text_far _SortItemsText
db "@" db "@"
@ -255,7 +264,7 @@ NothingToSort::
ItemSortList:: ItemSortList::
; Used Key Items ; Used Key Items
db BICYCLE db BICYCLE
db SUPER_ROD db FISHING_ROD
db POCKET_LAPRAS db POCKET_LAPRAS
db ITEMFINDER db ITEMFINDER
db TOWN_MAP db TOWN_MAP

View file

@ -129,13 +129,13 @@ DisplayTitleScreen:
call Random call Random
ldh a, [hRandomSub] ldh a, [hRandomSub]
cp 129 cp 129
jr c, .notshocks jr c, .notscreamtail
ld a, SANDY_SHOCKS ld a, SCREAM_TAIL
ld [wTitleMonSpecies], a ld [wTitleMonSpecies], a
call LoadTitleMonSprite call LoadTitleMonSprite
jr .skip jr .skip
.notshocks .notscreamtail
ld a, SCREAM_TAIL ld a, SANDY_SHOCKS
ld [wTitleMonSpecies], a ld [wTitleMonSpecies], a
call LoadTitleMonSprite call LoadTitleMonSprite
.skip .skip

View file

@ -33,10 +33,18 @@ TrySurf:
and a and a
jr nz, .no2 jr nz, .no2
call GetPartyMonName2 call GetPartyMonName2
; pocket lapras illusion maintenance service
ld a, 1
ld [wSurfMonItemSwitch], a
ld a, POCKET_LAPRAS ld a, POCKET_LAPRAS
ld [wcf91], a ld [wcf91], a
ld [wPseudoItemID], a ld [wPseudoItemID], a
call UseItem call UseItem
; pocket lapras stuff
xor a
ld [wSurfMonItemSwitch], a
.yes2 .yes2
call CloseFieldMoveTextBox call CloseFieldMoveTextBox
.yes .yes

View file

@ -69,8 +69,25 @@ UpdatePlayerSprite:
ld a, [hl] ld a, [hl]
inc a inc a
ld [hl], a ld [hl], a
cp 4 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
jr nz, .calcImageIndex ;joenote - If B is being held to go faster and full joypad is enabled (i.e. not in a cutscene),
;Then increase player animation speed by 25%
push bc
ld c, 4
ld b, a
ld a, [wJoyIgnore]
and a
jr nz, .doneSpeed
ld a, [hJoyHeld]
and B_BUTTON
jr z, .doneSpeed
ld c, 3
.doneSpeed
ld a, b
cp c
pop bc
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
jr c, .calcImageIndex ;joenote - prevents interframe counter from increasing forever
xor a xor a
ld [hl], a ld [hl], a
inc hl inc hl

Binary file not shown.

Before

Width:  |  Height:  |  Size: 93 B

After

Width:  |  Height:  |  Size: 185 B

Binary file not shown.

View file

@ -7,6 +7,9 @@ ABTiles: INCBIN "gfx/font/AB.2bpp"
HpBarAndStatusGraphics:: INCBIN "gfx/font/font_battle_extra.2bpp" HpBarAndStatusGraphics:: INCBIN "gfx/font/font_battle_extra.2bpp"
HpBarAndStatusGraphicsEnd:: HpBarAndStatusGraphicsEnd::
EXPBarGraphics:: INCBIN "gfx/font/exp_bar.2bpp"
EXPBarGraphicsEnd::
BattleHudTiles1: INCBIN "gfx/battle/battle_hud_1.1bpp" BattleHudTiles1: INCBIN "gfx/battle/battle_hud_1.1bpp"
BattleHudTiles1End: BattleHudTiles1End:
BattleHudTiles2: INCBIN "gfx/battle/battle_hud_2.1bpp" BattleHudTiles2: INCBIN "gfx/battle/battle_hud_2.1bpp"

BIN
gfx/font/exp_bar.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 199 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 407 B

After

Width:  |  Height:  |  Size: 552 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 522 B

After

Width:  |  Height:  |  Size: 541 B

View file

@ -20,11 +20,6 @@ Plateau_Block:: INCBIN "gfx/blocksets/plateau.bst"
SECTION "Tilesets 2", ROMX SECTION "Tilesets 2", ROMX
Dojo_GFX::
Gym_GFX:: INCBIN "gfx/tilesets/gym.2bpp"
Dojo_Block::
Gym_Block:: INCBIN "gfx/blocksets/gym.bst"
Mart_GFX:: Mart_GFX::
Pokecenter_GFX:: INCBIN "gfx/tilesets/pokecenter.2bpp" Pokecenter_GFX:: INCBIN "gfx/tilesets/pokecenter.2bpp"
Mart_Block:: Mart_Block::
@ -79,6 +74,11 @@ House_Block:: INCBIN "gfx/blocksets/house.bst"
SECTION "Tilesets 5", ROMX SECTION "Tilesets 5", ROMX
Dojo_GFX::
Gym_GFX:: INCBIN "gfx/tilesets/gym.2bpp"
Dojo_Block::
Gym_Block:: INCBIN "gfx/blocksets/gym.bst"
Cavern_GFX:: INCBIN "gfx/tilesets/cavern.2bpp" Cavern_GFX:: INCBIN "gfx/tilesets/cavern.2bpp"
Cavern_Block:: INCBIN "gfx/blocksets/cavern.bst" Cavern_Block:: INCBIN "gfx/blocksets/cavern.bst"

View file

@ -50,7 +50,13 @@ DisplayListMenuID::
ld [wTopMenuItemY], a ld [wTopMenuItemY], a
ld a, 5 ld a, 5
ld [wTopMenuItemX], a ld [wTopMenuItemX], a
ld a, A_BUTTON | B_BUTTON | SELECT | START ld a, [wFlags_0xcd60]
ld b, a
ld a, A_BUTTON | B_BUTTON | SELECT
bit 2, b
jr z, .noSortingOption
or a, START
.noSortingOption
ld [wMenuWatchedKeys], a ld [wMenuWatchedKeys], a
ld c, 10 ld c, 10
call DelayFrames call DelayFrames

View file

@ -39,9 +39,18 @@ LoadHpBarAndStatusTilePatterns::
ld de, vChars2 tile $62 ld de, vChars2 tile $62
ld bc, HpBarAndStatusGraphicsEnd - HpBarAndStatusGraphics ld bc, HpBarAndStatusGraphicsEnd - HpBarAndStatusGraphics
ld a, BANK(HpBarAndStatusGraphics) ld a, BANK(HpBarAndStatusGraphics)
call FarCopyData ; if LCD is off, transfer all at once
ld hl, EXPBarGraphics
ld de, vChars1 tile $40
ld bc, EXPBarGraphicsEnd - EXPBarGraphics
ld a, BANK(EXPBarGraphics)
jp FarCopyData2 ; if LCD is off, transfer all at once jp FarCopyData2 ; if LCD is off, transfer all at once
.on .on
ld de, HpBarAndStatusGraphics ld de, HpBarAndStatusGraphics
ld hl, vChars2 tile $62 ld hl, vChars2 tile $62
lb bc, BANK(HpBarAndStatusGraphics), (HpBarAndStatusGraphicsEnd - HpBarAndStatusGraphics) / $10 lb bc, BANK(HpBarAndStatusGraphics), (HpBarAndStatusGraphicsEnd - HpBarAndStatusGraphics) / $10
call CopyVideoData ; if LCD is on, transfer during V-blank
ld hl, EXPBarGraphics
ld de, vChars1 tile $40
lb bc, BANK(EXPBarGraphics), (EXPBarGraphicsEnd - EXPBarGraphics) / $10
jp CopyVideoData ; if LCD is on, transfer during V-blank jp CopyVideoData ; if LCD is on, transfer during V-blank

View file

@ -689,7 +689,7 @@ INCLUDE "data/maps/headers/Route21.asm"
INCLUDE "data/maps/objects/Route21.asm" INCLUDE "data/maps/objects/Route21.asm"
Route21_Blocks: INCBIN "maps/Route21.blk" Route21_Blocks: INCBIN "maps/Route21.blk"
Route12SuperRodHouse_Blocks: INCBIN "maps/Route12SuperRodHouse.blk" FishingGuruHouse_Blocks: INCBIN "maps/FishingGuruHouse.blk"
Daycare_Blocks: INCBIN "maps/Daycare.blk" Daycare_Blocks: INCBIN "maps/Daycare.blk"
@ -721,9 +721,9 @@ INCLUDE "data/maps/headers/Daycare.asm"
INCLUDE "scripts/Daycare.asm" INCLUDE "scripts/Daycare.asm"
INCLUDE "data/maps/objects/Daycare.asm" INCLUDE "data/maps/objects/Daycare.asm"
INCLUDE "data/maps/headers/Route12SuperRodHouse.asm" INCLUDE "data/maps/headers/FishingGuruHouse.asm"
INCLUDE "scripts/Route12SuperRodHouse.asm" INCLUDE "scripts/FishingGuruHouse.asm"
INCLUDE "data/maps/objects/Route12SuperRodHouse.asm" INCLUDE "data/maps/objects/FishingGuruHouse.asm"
SECTION "Maps 13", ROMX SECTION "Maps 13", ROMX

View file

@ -1 +1 @@
I12JKLKLR12o I1tuKux2uR1vwKuKu

View file

@ -532,7 +532,13 @@ wLowHealthAlarmDisabled:: db
wPlayerMonMinimized:: db wPlayerMonMinimized:: db
ds 13 ds 2
wEXPBarPixelLength:: ds 1
wEXPBarBaseEXP:: ds 3
wEXPBarCurEXP:: ds 3
wEXPBarNeededEXP:: ds 3
wEXPBarKeepFullFlag:: ds 1
; number of hits by enemy in attacks like Double Slap, etc. ; number of hits by enemy in attacks like Double Slap, etc.
wEnemyNumHits:: ; db wEnemyNumHits:: ; db
@ -1459,7 +1465,7 @@ wEndBattleLoseTextPointer:: dw
ds 2 ds 2
wEndBattleTextRomBank:: db wEndBattleTextRomBank:: db
ds 1 wSurfMonItemSwitch:: db ; i cant be fucked making a new item just do it this way - pvk
; the address _of the address_ of the current subanimation entry ; the address _of the address_ of the current subanimation entry
wSubAnimAddrPtr:: dw wSubAnimAddrPtr:: dw

View file

@ -40,8 +40,8 @@ GaryScript1:
ret ret
GaryEntrance_RLEMovement: GaryEntrance_RLEMovement:
db D_UP, 1 db D_UP, 2
db D_RIGHT, 1 db D_UP, 2
db D_UP, 3 db D_UP, 3
db -1 ; end db -1 ; end
@ -159,14 +159,13 @@ OakEntranceAfterVictoryMovement:
db NPC_MOVEMENT_UP db NPC_MOVEMENT_UP
db NPC_MOVEMENT_UP db NPC_MOVEMENT_UP
db NPC_MOVEMENT_UP db NPC_MOVEMENT_UP
db NPC_MOVEMENT_UP
db -1 ; end db -1 ; end
GaryScript5: GaryScript5:
ld a, [wd730] ld a, [wd730]
bit 0, a bit 0, a
ret nz ret nz
ld a, PLAYER_DIR_LEFT
ld [wPlayerMovingDirection], a
ld a, $1 ld a, $1
ldh [hSpriteIndex], a ldh [hSpriteIndex], a
ld a, SPRITE_FACING_LEFT ld a, SPRITE_FACING_LEFT
@ -244,7 +243,7 @@ GaryScript9:
ret ret
WalkToHallOfFame_RLEMovment: WalkToHallOfFame_RLEMovment:
db D_UP, 4 db D_UP, 5
db D_LEFT, 1 db D_LEFT, 1
db -1 ; end db -1 ; end

View file

@ -0,0 +1,62 @@
FishingGuruHouse_Script:
jp EnableAutoTextBoxDrawing
FishingGuruHouse_TextPointers:
dw FishingGuruHouseText1
dw JumpText
FishingGuruHouseText1:
text_asm
ld a, [wd728]
bit 5, a ; received fishing rod?
jr nz, .got_item
ld hl, FishingGuruHouseText_564c0
call PrintText
call YesNoChoice
ld a, [wCurrentMenuItem]
and a
jr nz, .refused
lb bc, FISHING_ROD, 1
call GiveItem
jr nc, .bag_full
ld hl, wd728
set 5, [hl] ; received fishing rod
ld hl, FishingGuruHouseText_564c5
jr .done
.bag_full
ld hl, FishingGuruHouseText_564d9
jr .done
.refused
ld hl, FishingGuruHouseText_564cf
jr .done
.got_item
ld hl, FishingGuruHouseText_564d4
.done
call PrintText
jp TextScriptEnd
FishingGuruHouseText_564c0:
text_far _FishingGuruHouseText_564c0
text_end
FishingGuruHouseText_564c5:
text_far _FishingGuruHouseText_564c5
sound_get_item_1
text_far _FishingGuruHouseText_564ca
text_end
FishingGuruHouseText_564cf:
text_far _FishingGuruHouseText_564cf
text_end
FishingGuruHouseText_564d4:
text_far _FishingGuruHouseText_564d4
text_end
FishingGuruHouseText_564d9:
text_far _FishingGuruHouseText_564d9
text_end
JumpText:
text_far _JumpText
text_end

View file

@ -365,6 +365,8 @@ OaksLabScript9: ; This is where Blue picks up the ball and removes the sprite.
cp $7 cp $7
jr nz, .rivalDidNotChoseBall4 jr nz, .rivalDidNotChoseBall4
ld a, HS_STARTER_BALL_4 ld a, HS_STARTER_BALL_4
ld [wMissableObjectIndex], a
predef HideObject
ld a, HS_DAMIEN ; This makes the starter gifts show up if you and your rival picked Pikachu and Eevee. It used to be coded differently but for some reason they still showed up if you picked Charmander or Squirtle, so I had to change it. ld a, HS_DAMIEN ; This makes the starter gifts show up if you and your rival picked Pikachu and Eevee. It used to be coded differently but for some reason they still showed up if you picked Charmander or Squirtle, so I had to change it.
ld [wMissableObjectIndex], a ld [wMissableObjectIndex], a
predef ShowObject predef ShowObject
@ -374,6 +376,8 @@ OaksLabScript9: ; This is where Blue picks up the ball and removes the sprite.
jr .hideBallAndContinue jr .hideBallAndContinue
.rivalDidNotChoseBall4 .rivalDidNotChoseBall4
ld a, HS_STARTER_BALL_5 ld a, HS_STARTER_BALL_5
ld [wMissableObjectIndex], a
predef HideObject
ld a, HS_DAMIEN ld a, HS_DAMIEN
ld [wMissableObjectIndex], a ld [wMissableObjectIndex], a
predef ShowObject predef ShowObject

View file

@ -1,62 +0,0 @@
Route12SuperRodHouse_Script:
jp EnableAutoTextBoxDrawing
Route12SuperRodHouse_TextPointers:
dw Route12HouseText1
dw JumpText
Route12HouseText1:
text_asm
ld a, [wd728]
bit 5, a ; received super rod?
jr nz, .got_item
ld hl, Route12HouseText_564c0
call PrintText
call YesNoChoice
ld a, [wCurrentMenuItem]
and a
jr nz, .refused
lb bc, SUPER_ROD, 1
call GiveItem
jr nc, .bag_full
ld hl, wd728
set 5, [hl] ; received super rod
ld hl, Route12HouseText_564c5
jr .done
.bag_full
ld hl, Route12HouseText_564d9
jr .done
.refused
ld hl, Route12HouseText_564cf
jr .done
.got_item
ld hl, Route12HouseText_564d4
.done
call PrintText
jp TextScriptEnd
Route12HouseText_564c0:
text_far _Route12HouseText_564c0
text_end
Route12HouseText_564c5:
text_far _Route12HouseText_564c5
sound_get_item_1
text_far _Route12HouseText_564ca
text_end
Route12HouseText_564cf:
text_far _Route12HouseText_564cf
text_end
Route12HouseText_564d4:
text_far _Route12HouseText_564d4
text_end
Route12HouseText_564d9:
text_far _Route12HouseText_564d9
text_end
JumpText:
text_far _JumpText
text_end

View file

@ -107,7 +107,7 @@ ChiefScript4:
ld [wMissableObjectIndex], a ld [wMissableObjectIndex], a
predef HideObject predef HideObject
SetEvent EVENT_MEWTWO_UNLOCKED SetEvent EVENT_MEWTWO_UNLOCKED
ResetEventRange SILPH_GAUNTLET_EVENTS_START, SILPH_GAUNTLET_EVENTS_END, 1 ResetEventRange EVENT_BEAT_GAUNTLET_YOUNGSTER, EVENT_BEAT_GAUNTLET_BLAINE
ld a, $0 ld a, $0
ld [wSilphGauntlet7FCurScript], a ld [wSilphGauntlet7FCurScript], a

View file

@ -92,7 +92,7 @@ INCLUDE "text/Route11Gate2F.asm"
INCLUDE "text/DiglettsCaveRoute11.asm" INCLUDE "text/DiglettsCaveRoute11.asm"
INCLUDE "text/Route12Gate1F.asm" INCLUDE "text/Route12Gate1F.asm"
INCLUDE "text/Route12Gate2F.asm" INCLUDE "text/Route12Gate2F.asm"
INCLUDE "text/Route12SuperRodHouse.asm" INCLUDE "text/FishingGuruHouse.asm"
INCLUDE "text/Route15Gate1F.asm" INCLUDE "text/Route15Gate1F.asm"
INCLUDE "text/Route15Gate2F.asm" INCLUDE "text/Route15Gate2F.asm"
INCLUDE "text/Route16Gate1F.asm" INCLUDE "text/Route16Gate1F.asm"

View file

@ -1,4 +1,4 @@
_Route12HouseText_564c0:: _FishingGuruHouseText_564c0::
text "I'm the FISHING" text "I'm the FISHING"
line "GURU!" line "GURU!"
@ -9,7 +9,7 @@ _Route12HouseText_564c0::
line "fish?" line "fish?"
done done
_Route12HouseText_564c5:: _FishingGuruHouseText_564c5::
text "Grand! I like" text "Grand! I like"
line "your style!" line "your style!"
@ -22,7 +22,7 @@ _Route12HouseText_564c5::
text "!@" text "!@"
text_end text_end
_Route12HouseText_564ca:: _FishingGuruHouseText_564ca::
text_start text_start
para "Fishing is a way" para "Fishing is a way"
@ -34,12 +34,12 @@ _Route12HouseText_564ca::
cont "one!" cont "one!"
done done
_Route12HouseText_564cf:: _FishingGuruHouseText_564cf::
text "Oh... That's so" text "Oh... That's so"
line "disappointing..." line "disappointing..."
done done
_Route12HouseText_564d4:: _FishingGuruHouseText_564d4::
text "Hello there," text "Hello there,"
line "<PLAYER>!" line "<PLAYER>!"
@ -53,7 +53,7 @@ _Route12HouseText_564d4::
line "wherever you can!" line "wherever you can!"
done done
_Route12HouseText_564d9:: _FishingGuruHouseText_564d9::
text "Oh no!" text "Oh no!"
para "I had a gift for" para "I had a gift for"

View file

@ -12,7 +12,7 @@ _KogaPostBattleAdviceText::
_KogaSoulBadgeInfoText:: _KogaSoulBadgeInfoText::
text "Now that you have" text "Now that you have"
line "the SOULBADGE," line "the SOULBADGE,"
cont "the DEFENSE of" cont "the SPEED of"
cont "your #MON" cont "your #MON"
cont "increases!" cont "increases!"

View file

@ -69,7 +69,7 @@ _SilphGauntlet6FBattleText3::
cont "saved me during" cont "saved me during"
cont "the war! They" cont "the war! They"
cont "even powered my" cont "even powered my"
cont "plane!" cont "Thunderchief!" ; Republic F-105 Thunderchief - Vietnam aircraft, referencing the FRLG Fame Checker, but also adding clarity for the player to figure out which war Surge was in.
para "I'll zap you for" para "I'll zap you for"
line "real this time!" line "real this time!"
@ -83,19 +83,37 @@ _SilphGauntlet6FEndBattleText3::
line "a gallon, now!" line "a gallon, now!"
prompt prompt
; Originally, we wanted Surge to talk about being Major.
; But we realised RG Blaine wears a WWII-era Japanese uniform.
; Ergo, Blaine should loathe Surge for manning American war bases.
; The implication is that Surge works at an American war base in Japan. Post-war, these propped up to ensure Japan never does what it did again. In modern-day, these are super controversial. Blaine, being a soldier, would get extremely mad.
; Thus, we give Surge an explanation for being in Kanto at all...
; While also giving a haunting backstory to RG Blaine's design.
; This requires a lot of historical knowledge to get right, but we want to adequately represent Surge and Blaine's war uniforms.
; This would make Surge around 40 years old, and Blaine around 60-70 years old.
_SilphGauntlet6FAfterBattleText3:: _SilphGauntlet6FAfterBattleText3::
text "Huh? BLAINE?" text "Huh? BLAINE? Oh,"
line "Oh, man!" line "man!"
para "He won't tell you" ; Referring to Blaine's original design. para "Ever since I told"
line "this, but he was" line "him where I work,"
cont "my mentor!" cont "he's got his"
cont "pants in a bunch!" ; s/o Megachiroptera for giving the american version of this saying
para "Once, the higher-" ; Commentary on the German, French, and Chinese translations. para "Something about"
line "ups demoted me" line "that war, maybe?" ; World War II
cont "to MAJOR SURGE,"
cont "but BLAINE got" para "C'mon, I wasn't"
cont "me reinstated!" line "even born yet!" ; This explains the age gap. He fought in the Vietnam War, deployed from the Japanese base.
; Old text.
; We wanted to reference the Chinese and German translations.
; But Surge is too young, and American, so the relations wouldn't work.
; para "Once, the higher-"
; line "ups demoted me" ; Old text from before we looked at the context of RG Blaine.
; cont "to MAJOR SURGE,"
; cont "but BLAINE got"
; cont "me reinstated!"
done done

View file

@ -12,8 +12,9 @@ _LTSurgePostBattleAdviceText::
_LTSurgeThunderBadgeInfoText:: _LTSurgeThunderBadgeInfoText::
text "The THUNDERBADGE" text "The THUNDERBADGE"
line "cranks up your" line "cranks up the"
cont "#MON's SPEED!" cont "DEFENSE of your"
cont "#MON!"
para "It also lets your" para "It also lets your"
line "#MON FLY any" line "#MON FLY any"