Merge branch 'mistress' into renewables

This commit is contained in:
Thorn Avery 2024-01-08 08:35:22 +11:00
commit 5604c332f7
96 changed files with 2805 additions and 498 deletions

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.5 KiB

After

Width:  |  Height:  |  Size: 29 KiB

View file

@ -119,6 +119,8 @@ New Music
- 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.
- Limited static encounters, such as the two sleeping Snorlax, and the restored prototype Omega, also use this theme.
- 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.
- 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.
- Pokemon Yellow's various tracks have been backported, such as Jessie and James's encounter theme.
- Several pieces of unused music, including Digda01, Victory4, Field6, Kincho01, and Giovanni's theme have been implemented.
- A remix of the unused Koukan (trading) music is also used as a town theme. Composed by BGVC.
@ -260,7 +262,8 @@ and more!
Known Bugs
====
- The new AI (possibly bugged?) behaves quite oddly, such as using Recover at full HP, spamming status-inflicting moves like Lovely Kiss, neglecting supereffective moves, setting up multiple Reflects, etc.
- Trying to teach a TM/HM twice in a row may cause a game crash, so it's advised to save when teaching moves.
- Trying to Surf from the overworld on Cycling Road has an invisible textbox stopping you, but just pressing A again lets you regain control.
Evolution Methods for new Pokemon
====
@ -360,11 +363,11 @@ KEP spriters hold the policy of requiring sprites to be used with direct credit
If you use our implementations of anything at all, it is encouraged to submit Pull Requests for bug fixes if you find any issues! We very much appreciate them!
* Plague von Karma - Creator of the Showdown Mod, Director, Developer, Scenarios, Balancing, Dialogue, Pokedex entries, Maps (Mt. Moon Crater, Galarian Bird dungeons, Rock Tunnel, Cinnabar Volcano floors, enhanced Diglett's Cave, Shinjuku Jacky's room, and more), Event scripting, Hyper Training, FRLG Tea, post-game rematches, male/female character selection, Meltan implementation, Yellow backports, and occasional spriter (assisting with Bellignan, Carapthor)
* Martha's Against Humanity - Developer, Pokémon implementation, Pokedex entries, Event scripting, tweaks of Albatross's sprites, Sylveon, Bellignan and Mimmeo sprites, Maps (Citrine City, Cinnabar Volcano, Underwater Tunnel, Silph Gauntlet,), SGB border, new palettes for postgame areas and Game Corner, etc.
* Martha's Against Humanity - Developer, Pokémon implementation, Pokedex entries, event scripting, tweaks of Albatross's sprites, Sylveon, Bellignan, Galarian Slowking, Galarian Slowbro and Mimmeo sprites, Maps (Citrine City, Cinnabar Volcano, Underwater Tunnel, Silph Gauntlet,), Giovanni's battle theme, SGB border, new palettes for postgame areas and Game Corner, etc.
* Ema Skye - Developer, Maps (Silph Co. and Pokemon Tower shortening), Mt. Moon Crater Guard, Showdown Mod assistance.
* BlueZangoose / Vimescarrot - Pokemon box expansion, Instatext option, general assistance.
* Albatross - Many of the new sprites used in the hack (A significant number of post-Gen 1 evolutions, all regional variants, Meltan and Carapthor lines, etc.)
* LuciShrimp - Mewtwo & FireRed/LeafGreen Legendary custom battle music; Area Zero map theme for Mt. Moon Crater.
* LuciShrimp - Mewtwo & FireRed/LeafGreen Legendary custom battle music; Area Zero map theme for Mt. Moon Crater, Team Rocket theme changes and Giovanni's battle theme.
* jojobear13 & Mateo - DV/StatExp display, move deleter, & move relearner functionality from Shin Pokered, followed [this guide](https://github.com/jojobear13/shinpokered/blob/master/how%20to%20guides/how%20to%20add%20the%20move%20relearner%26deleter.txt). Tweaks were made to make it compatible with the pokered version we worked off of. Thanks specifically to Mateo's Red++ for the ferry system! Jojobear also provided bug fixes!
* thornAvery - Various bug fixes, notably to text speed errors, as well as making the Battle Tent a lot more functional.
* LadyMisticus - Bug fixes and minor adjustments, and made a well-documented spreadsheet for the hack that details every Pokemon's stats, movepools and locations, plus more!
@ -396,9 +399,9 @@ If you use our implementations of anything at all, it is encouraged to submit Pu
* Dr. Lava - Translations of some content used in this hack, particularly the 1996 Pokedex book's entries for DYKG.
* Nob Ogasawara - Prototype Pokemon names, produced for DYKG.
Albatross sprites: Articuno-G, Blissey, Dugtrio-A, Electivire, Electrode-H, Espeon (back), Exeggutor-A, Gentlarva, Glaceon, Golem-A, Hitmontop, Iguanarch, Kleavor, Leafeon, Lickilicky, Marowak-A, Melmetal, Meltan, Moltres-G, Mr. Rime, Muk-A, Ninetales-A, Perrserker, Persian-A, Politoed, Porygon-Z, Pupal, Raichu-A, Rapidash-G, Raticate-A, Rhyperior, Sandslash-A, Sandy Shocks, Scizor, Sirfetchd, Slowbro-G, Slowking (back), Slowking-G, Sylveon (back), Tangrowth, Tauros-P (all forms), Toedscool, Toedscruel, Umbreon (back), Weezing-G, Wiglett, Zapdos-G
Albatross sprites: Articuno-G, Blissey, Dugtrio-A, Electivire, Electrode-H, Espeon (back), Exeggutor-A, Gentlarva, Glaceon, Golem-A, Hitmontop, Iguanarch, Kleavor, Leafeon, Lickilicky, Marowak-A, Melmetal, Meltan, Moltres-G, Mr. Rime, Muk-A, Ninetales-A, Perrserker, Persian-A, Politoed, Porygon-Z, Pupal, Raichu-A, Rapidash-G, Raticate-A, Rhyperior, Sandslash-A, Sandy Shocks, Scizor, Sirfetchd, Slowbro-G, Slowking (back), Slowking-G (back), Sylveon (back), Tangrowth, Tauros-P (all forms), Toedscool, Toedscruel, Umbreon (back), Weezing-G, Wiglett, Zapdos-G
Marthas Against Humanity sprites: Bellignan (front, with help from PvK), Mimmeo (front), Sylveon (front, with help from Albatross)
Marthas Against Humanity sprites: Bellignan (front, with help from PvK), Mimmeo (front), Slowking-G (front), Slowbro-G (front, with help from Albatross), Sylveon (front, with help from Albatross)
Albatross sprites refined by either Marthas Against Humanity or PvK: Annihilape, Arcanine-H, Bellossom, Carapthor, Gorillaimo, Kingdra, Magmortar, Magnezone, Ministare, Porygon2, Scream Tail, Squeamata, Tauros-P (all forms), Wugtrio

View file

@ -381,6 +381,8 @@ INCLUDE "crysaudio/music/RBY/kinchou01.asm"
INCLUDE "crysaudio/music/RBY/mewtwo01.asm"
INCLUDE "crysaudio/music/RBY/legendarybattle.asm"
INCLUDE "crysaudio/music/RBY/giovannisroom.asm"
INCLUDE "crysaudio/music/RBY/rocketrby.asm"
INCLUDE "crysaudio/music/RBY/giovannibattle.asm"
SECTION "TCG Songs 1", ROMX

View file

@ -60,6 +60,16 @@ PlayBattleMusic::
jp z, .GymOrElite4Battle
cp OPP_BLAINE
jp z, .GymOrElite4Battle
cp OPP_ROCKET
jr z, .RocketBattle
cp OPP_JESSIE_JAMES
jr z, .RocketBattle
cp OPP_GIOVANNI
jr z, .RocketBattle
cp OPP_LEADER_GIOVANNI
jr z, .Giovanni
cp OPP_CHIEF
jr z, .Giovanni
cp OPP_LORELEI ; elite four now play the gym leader battle theme
jr z, .GymOrElite4Battle
cp OPP_BRUNO
@ -71,9 +81,7 @@ PlayBattleMusic::
cp OPP_PROF_OAK ; could also use the final battle theme, but I think the gym leader/elite 4 theme fits better instead. I'm happy to change this if it isn't well-liked.
jr z, .GymOrElite4Battle
cp OPP_RIVAL3
jr z, .finalBattle
cp OPP_CHIEF
jr z, .finalBattle
jr z, .finalBattle
jr nz, .normalTrainerBattle
.GymOrElite4Battle
ld a, MUSIC_GYM_LEADER_BATTLE
@ -81,6 +89,12 @@ PlayBattleMusic::
.normalTrainerBattle
ld a, MUSIC_TRAINER_BATTLE
jr .playSong
.RocketBattle
ld a, MUSIC_ROCKET_RBY
jr .playSong
.Giovanni
ld a, MUSIC_GIOVANNI_BATTLE
jr .playSong
.finalBattle
ld a, MUSIC_FINAL_BATTLE
jr .playSong

View file

@ -65,6 +65,8 @@
const MUSIC_MEWTWO01
const MUSIC_LEGENDARYBATTLE
const MUSIC_GIOVANNIS_ROOM
const MUSIC_ROCKET_RBY
const MUSIC_GIOVANNI_BATTLE
const NUM_SONGS

View file

@ -67,4 +67,5 @@ ENDM
trainer_const KOICHI
trainer_const JACK
trainer_const JESSIE_JAMES
trainer_const LEADER_GIOVANNI
DEF NUM_TRAINERS EQU const_value - 1

File diff suppressed because it is too large Load diff

View file

@ -1,3 +1,6 @@
; Demake of Stadium Mewtwo's theme by LuciShrimp
; Features space-like sparkles, making use of the Game Boy's sound library.
Music_Mewtwo01:
channel_count 4
channel 1, Music_Mewtwo01_Ch1

File diff suppressed because it is too large Load diff

View file

@ -59,3 +59,5 @@ Music:
dba Music_Mewtwo01
dba Music_LegendaryBattle
dba Music_GiovannisRoom
dba Music_RocketRBY
dba Music_GiovanniBattle

View file

@ -4,12 +4,12 @@ TradeMons:
; give mon, get mon, dialog id, nickname
db POLIWHIRL, JYNX, TRADE_DIALOGSET_CASUAL, "LOLA@@@@@@@" ; Cerulean City
db ABRA, MR_MIME, TRADE_DIALOGSET_CASUAL, "MARCEL@@@@@" ; Route 2
db BUTTERFREE, BEEDRILL, TRADE_DIALOGSET_HAPPY, "CHIKUCHIKU@" ; Route 11-12 gate, will be moved to Viridian Forest gate
db BUTTERFREE, BEEDRILL, TRADE_DIALOGSET_HAPPY, "CHIKUCHIKU@" ; Viridian Forest gate
db RAICHU, KADABRA, TRADE_DIALOGSET_EVOLUTION, "HARRY@@@@@@" ; Citrine City, new trade to complete the 4 main trade evos
db SPEAROW, FARFETCHD, TRADE_DIALOGSET_HAPPY, "DUX@@@@@@@@" ; Vermilion City
db PERSIAN, TAUROS, TRADE_DIALOGSET_CASUAL, "JIMBO@@@@@@" ; Route 17-18 gate, from JP Blue
db MACHOKE, HAUNTER, TRADE_DIALOGSET_EVOLUTION, "MICHELLE@@@" ; Cinnabar Lab, from JP Blue
db KADABRA, GRAVELER, TRADE_DIALOGSET_EVOLUTION, "JENNY@@@@@@" ; Cinnabar Lab, from JP Blue (probably going to move these since you get the Trader here anyway...)
db MACHOKE, HAUNTER, TRADE_DIALOGSET_EVOLUTION, "MICHELLE@@@" ; Route 11 Gate, from JP Blue
db KADABRA, GRAVELER, TRADE_DIALOGSET_EVOLUTION, "JENNY@@@@@@" ; Route 10 Gate
db CUBONE, MACHOKE, TRADE_DIALOGSET_HAPPY, "RICKY@@@@@@" ; Route 5-6 Underground Path, from Yellow
db NO_MON, NO_MON, TRADE_DIALOGSET_SELF, "Unseen@@@@@" ; The Trader
db RATICATE, RATICATE_A, TRADE_DIALOGSET_REGION, "RATICATE@@@" ; Viridian - LGPE trades begin here
@ -29,9 +29,9 @@ TradeMons:
db SLOWBRO, SLOWBRO_G, TRADE_DIALOGSET_REGION, "SLOWBRO@@@@"
db SLOWKING, SLOWKING_G, TRADE_DIALOGSET_REGION, "SLOWKING@@@"
db WEEZING, WEEZING_G, TRADE_DIALOGSET_REGION, "WEEZING@@@@"
db MR_MIME, MR_RIME, TRADE_DIALOGSET_CASUAL, "CHURCHILL@@" ; Winston Churchill, notable "city gent"
db PERSIAN, PERRSERKER, TRADE_DIALOGSET_HAPPY, "ERIK@@@@@@@" ; One of the most famous vikings
db LUXWAN, SIRFETCHD, TRADE_DIALOGSET_HAPPY, "LANCELOT@@@" ; Influential knight of the round table
db ARCANINE, ARCANINE_H, TRADE_DIALOGSET_BILL, "ARCANINE@@@"
db MR_MIME, MR_RIME, TRADE_DIALOGSET_CASUAL, "MR.RIME@@@@"
db PERSIAN, PERRSERKER, TRADE_DIALOGSET_HAPPY, "PERRSERKER@"
db LUXWAN, SIRFETCHD, TRADE_DIALOGSET_HAPPY, "SIRFETCH'D@"
db ARCANINE, ARCANINE_H, TRADE_DIALOGSET_BILL, "ARCANINE@@@"
db ELECTRODE, ELECTRODE_H, TRADE_DIALOGSET_GRAMPS, "ELECTRODE@@"
assert_table_length NUM_NPC_TRADES

View file

@ -9,6 +9,6 @@ BrunswickGrotto_Object:
bg_event 22, 10, 2 ; signage
def_object_events
object_event 5, 5, SPRITE_BIRD, STAY, LEFT, 1, ZAPDOS_G, 70 | OW_POKEMON ; person
object_event 5, 5, SPRITE_BIRD, STAY, LEFT, 1, ZAPDOS_G, 65 | OW_POKEMON ; person
def_warps_to BRUNSWICK_GROTTO

View file

@ -6,11 +6,12 @@ BrunswickTrail_Object:
warp_event 40, 5, BRUNSWICK_GLADE, 1
def_bg_events
bg_event 55, 8, 10 ; sign
def_object_events
object_event 23, 11, SPRITE_FAKE_TREE, STAY, NONE, 1, CACTORMUS, 60 | OW_POKEMON ; person
object_event 40, 21, SPRITE_COOLTRAINER_M, STAY, UP, 2, OPP_BIRD_KEEPER, 12 ; person
object_event 29, 14, SPRITE_BEAUTY, STAY, DOWN, 3, OPP_BEAUTY, 16 ; person
object_event 23, 11, SPRITE_FAKE_TREE, STAY, NONE, 1, CACTORMUS, 50 | OW_POKEMON ; person
object_event 45, 19, SPRITE_COOLTRAINER_M, STAY, UP, 2, OPP_BIRD_KEEPER, 12 ; person
object_event 19, 14, SPRITE_BEAUTY, STAY, DOWN, 3, OPP_BEAUTY, 16 ; person
object_event 25, 21, SPRITE_FISHER, STAY, DOWN, 4, OPP_FISHER, 13 ; person
object_event 10, 10, SPRITE_HIKER, STAY, RIGHT, 5 ; person, Cave guy
object_event 54, 9, SPRITE_BIRD, STAY, UP, 6 ; person, GZap

View file

@ -9,6 +9,6 @@ CelesteHill_Object:
bg_event 10, 12, 2
def_object_events
object_event 11, 6, SPRITE_BIRD, STAY, DOWN, 1, MOLTRES_G, 70 | OW_POKEMON ; person
object_event 11, 6, SPRITE_BIRD, STAY, DOWN, 1, MOLTRES_G, 65 | OW_POKEMON ; person
def_warps_to CELESTE_HILL

View file

@ -12,11 +12,13 @@ CelesteHillOutside_Object:
warp_event 19, 4, CELESTE_HILL, 2
def_bg_events
bg_event 18, 7, 5 ; Sign
def_object_events
object_event 30, 16, SPRITE_BEAUTY, STAY, LEFT, 1, OPP_BEAUTY, 18 ; Selphy reference Trainer
object_event 1, 16, SPRITE_COOLTRAINER_M, STAY, RIGHT, 2, OPP_COOLTRAINER_M, 14 ; Will reference Trainer
object_event 11, 16, SPRITE_GENTLEMAN, STAY, DOWN, 3, OPP_GENTLEMAN, 7; Fan Club Chairman reference Trainer
object_event 18, 28, SPRITE_HIKER, STAY, DOWN, 4 ; person
def_warps_to CELESTE_HILL_OUTSIDE

View file

@ -9,6 +9,5 @@ CinnabarLabFossilRoom_Object:
def_object_events
object_event 5, 2, SPRITE_SCIENTIST, WALK, LEFT_RIGHT, 1 ; person
object_event 7, 6, SPRITE_SCIENTIST, STAY, UP, 2 ; person
def_warps_to CINNABAR_LAB_FOSSIL_ROOM

View file

@ -10,10 +10,12 @@ CitrineRocketHouse_Object:
def_object_events
object_event 4, 1, SPRITE_ROCKET, STAY, DOWN, 1 ; Mart Guy
object_event 5, 1, SPRITE_ROCKET, STAY, DOWN, 2 ; Mart Guy
object_event 1, 6, SPRITE_ROCKET, STAY, RIGHT, 3 ; person
object_event 9, 3, SPRITE_ROCKET, STAY, UP, 4 ; person
object_event 9, 8, SPRITE_CAT, STAY, UP, 5 ; Meowth
object_event 9, 5, SPRITE_JAMES, STAY, DOWN, 6 ; James
object_event 7, 6, SPRITE_JESSIE, STAY, RIGHT, 7 ; Jessie
object_event 6, 1, SPRITE_ROCKET, STAY, DOWN, 3 ; Mart Guy
object_event 7, 1, SPRITE_ROCKET, STAY, DOWN, 4 ; Mart Guy
object_event 1, 6, SPRITE_ROCKET, STAY, RIGHT, 5 ; person
object_event 9, 3, SPRITE_ROCKET, STAY, UP, 6 ; person
object_event 9, 8, SPRITE_CAT, STAY, UP, 7 ; Meowth
object_event 9, 5, SPRITE_JAMES, STAY, DOWN, 8 ; James
object_event 7, 6, SPRITE_JESSIE, STAY, RIGHT, 9 ; Jessie
def_warps_to CITRINE_ROCKET_HOUSE

View file

@ -7,7 +7,7 @@ GarnetCavernB1F_Object:
def_bg_events
def_object_events
object_event 5, 11, SPRITE_BIRD, STAY, RIGHT, 1, ARTICUNO_G, 70 | OW_POKEMON ; person
object_event 5, 11, SPRITE_BIRD, STAY, RIGHT, 1, ARTICUNO_G, 65 | OW_POKEMON ; person
object_event 24, 1, SPRITE_POKE_BALL, STAY, DOWN, 2, MAX_REVIVE
object_event 19, 2, SPRITE_POKE_BALL, STAY, DOWN, 3, ESCAPE_ROPE
object_event 9, 1, SPRITE_BIRD, STAY, DOWN, 4 ; cuno copy 1

View file

@ -3,11 +3,6 @@ RedsHouse2F_Object:
def_warp_events
warp_event 7, 1, REDS_HOUSE_1F, 3
;warp_event 5, 1, SILPH_GAUNTLET_7F, 1 ; - Test Chief
;warp_event 5, 1, SILPH_CO_1F, 1 ; - Go through Gauntlet
;warp_event 5, 1, MT_MOON_SQUARE, 1 ; - Test Shop, NPCs, and Crater
warp_event 5, 1, HALL_OF_FAME, 1 ; Test post-game setup
;warp_event 5, 1, CERULEAN_CAVE_B1F, 1 ; Test Mewtwo theme
def_bg_events

View file

@ -23,7 +23,7 @@ SSAnne1FRooms_Object:
object_event 10, 13, SPRITE_GIRL, STAY, RIGHT, 9 ; person
object_event 12, 15, SPRITE_POKE_BALL, STAY, NONE, 10, TM_BODY_SLAM
object_event 21, 13, SPRITE_GENTLEMAN, WALK, LEFT_RIGHT, 11 ; person
object_event 0, 4, SPRITE_GAMEBOY_KID, STAY, DOWN, 12 ; Perrserker Trader
object_event 20, 14, SPRITE_GAMEBOY_KID, STAY, DOWN, 12 ; Perrserker Trader
object_event 20, 4, SPRITE_GAMEBOY_KID, STAY, DOWN, 13 ; Weezing Trader
object_event 23, 1, SPRITE_NURSE, STAY, LEFT, 14 ; Healer

View file

@ -12,5 +12,6 @@ ViridianForestNorthGate_Object:
def_object_events
object_event 3, 2, SPRITE_SUPER_NERD, STAY, NONE, 1 ; person
object_event 2, 5, SPRITE_GRAMPS, STAY, NONE, 2 ; person
object_event 7, 4, SPRITE_YOUNGSTER, WALK, LEFT_RIGHT, 3 ; person
def_warps_to VIRIDIAN_FOREST_NORTH_GATE

View file

@ -11,7 +11,7 @@ ViridianGym_Object:
def_bg_events
def_object_events
object_event 2, 2, SPRITE_GIOVANNI, STAY, DOWN, 1, OPP_GIOVANNI, 3
object_event 2, 2, SPRITE_GIOVANNI, STAY, DOWN, 1, OPP_LEADER_GIOVANNI, 1
object_event 12, 7, SPRITE_COOLTRAINER_M, STAY, DOWN, 2, OPP_COOLTRAINER_M, 9
object_event 11, 11, SPRITE_HIKER, STAY, UP, 3, OPP_BLACKBELT, 5
object_event 10, 7, SPRITE_ROCKER, STAY, DOWN, 4, OPP_TAMER, 3

View file

@ -171,7 +171,7 @@ MoveNames:: ; 12chr limit
li "IRON DEFENSE"
li "DAZZLE GLEAM"
li "NIGHT SLASH"
li "FEINT ATTACK"
li "FAINT ATTACK"
li "IRON HEAD"
li "BRUTAL SWING"
li "CHARM"

View file

@ -1,6 +1,6 @@
db DEX_MR_RIME ; pokedex id
db 80, 85, 75, 70, 100
db 80, 85, 75, 70, 110
; hp atk def spd spc
db ICE, PSYCHIC_TYPE ; type

View file

@ -2612,41 +2612,42 @@ ArticunoGEvosMoves:
; Evolutions
db 0
; Learnset
db 40, REFLECT
db 45, HYPNOSIS
db 51, PSYBEAM
db 55, AGILITY
db 60, LIGHT_SCREEN
db 65, RECOVER
db 70, DREAM_EATER
db 45, REFLECT
db 50, HYPNOSIS
db 55, PSYBEAM
db 60, AGILITY
db 65, LIGHT_SCREEN
db 70, PSYCHIC_M
db 75, RECOVER
db 80, DREAM_EATER
db 0
ZapdosGEvosMoves:
; Evolutions
db 0
; Learnset
db 40, DOUBLE_KICK
db 45, LIGHT_SCREEN
db 51, LOW_KICK
db 55, AGILITY
db 58, JUMP_KICK
db 62, DRILL_PECK
db 66, ROLLING_KICK
db 70, HI_JUMP_KICK
db 45, DOUBLE_KICK
db 50, LIGHT_SCREEN
db 55, LOW_KICK
db 60, AGILITY
db 65, JUMP_KICK
db 70, DRILL_PECK
db 75, ROLLING_KICK
db 80, HI_JUMP_KICK
db 0
MoltresGEvosMoves:
; Evolutions
db 0
; Learnset
db 40, FAKE_TEARS ; Fake Tears
db 45, WING_ATTACK
db 51, BRUTAL_SWING
db 55, AGILITY
db 58, FEINT_ATTACK
db 62, NASTY_PLOT ; Nasty Plot
db 66, FALSE_SURRENDER ; False Surrender
db 70, SKY_ATTACK
db 45, FAKE_TEARS
db 50, WING_ATTACK
db 55, BRUTAL_SWING
db 60, AGILITY
db 65, FEINT_ATTACK
db 70, NASTY_PLOT
db 75, FALSE_SURRENDER
db 80, SKY_ATTACK
db 0
OddishEvosMoves:

View file

@ -50,7 +50,7 @@ PredefPointers::
add_predef UpdateHPBar
add_predef HPBarLength
add_predef Diploma_TextBoxBorder
; add_predef DoubleOrHalveSelectedStats
add_predef DoubleOrHalveSelectedStats
add_predef ShowPokedexMenu
add_predef EvolutionAfterBattle
add_predef SaveSAVtoSRAM0

View file

@ -155,7 +155,8 @@ _HelixFossilDescription::
prompt
_SecretKeyDescription::
text "Opens doors."
text "Opens the door to"
next "CINNABAR GYM."
prompt
_BikeVoucherDescription::

View file

@ -28,32 +28,33 @@ TrainerAIPointers:
dbw 3, GenericAI
dbw 2, BlackbeltAI ; blackbelt
dbw 3, GenericAI ; rival1
dbw 3, GenericAI
dbw 1, GenericAI ; chief
dbw 2, OakAI
dbw 3, ChiefAI ; chief
dbw 3, GenericAI
dbw 1, GiovanniAI ; giovanni
dbw 3, GenericAI
dbw 2, CooltrainerMAI ; cooltrainerm
dbw 1, CooltrainerFAI ; cooltrainerf
dbw 2, BrunoAI ; bruno
dbw 1, BrunoAI ; bruno
dbw 5, BrockAI ; brock
dbw 1, MistyAI ; misty
dbw 2, MistyAI ; misty
dbw 1, LtSurgeAI ; surge
dbw 1, ErikaAI ; erika
dbw 2, KogaAI ; koga
dbw 2, BlaineAI ; blaine
dbw 1, SabrinaAI ; sabrina
dbw 3, GenericAI
dbw 1, Rival2AI ; rival2
dbw 1, Rival3AI ; rival3
dbw 2, LoreleiAI ; lorelei
dbw 2, Rival2AI ; rival2
dbw 3, Rival3AI ; rival3
dbw 1, LoreleiAI ; lorelei
dbw 3, GenericAI
dbw 2, AgathaAI ; agatha
dbw 1, LanceAI ; lance
dbw 1, AgathaAI ; agatha
dbw 2, LanceAI ; lance
dbw 3, GenericAI ; Yujirou
dbw 3, GenericAI ; Student
dbw 3, GenericAI ; Firefighter
dbw 2, BlackbeltAI ; Koichi
dbw 2, BlackbeltAI ; Jack
dbw 2, GenericAI ; Jessie & James
dbw 3, SabrinaAI
assert_table_length NUM_TRAINERS

View file

@ -21,4 +21,5 @@ EvilTrainerList::
db OPP_CHANNELER
db OPP_AGATHA
db OPP_JESSIE_JAMES
db OPP_LEADER_GIOVANNI
db -1 ; end

View file

@ -9,7 +9,7 @@ ENDM
; move choice modification methods that are applied for each trainer class
TrainerClassMoveChoiceModifications:
list_start TrainerClassMoveChoiceModifications
move_choices ; YOUNGSTER
move_choices 1 ; YOUNGSTER
move_choices 1 ; BUG CATCHER
move_choices 1 ; LASS
move_choices 1, 3 ; SAILOR
@ -20,10 +20,10 @@ TrainerClassMoveChoiceModifications:
move_choices 1 ; HIKER
move_choices 1 ; BIKER
move_choices 1, 3 ; BURGLAR
move_choices 1 ; ENGINEER
move_choices 1, 3 ; ENGINEER
move_choices 1, 3 ; FISHER
move_choices 1, 3 ; SWIMMER
move_choices ; CUE_BALL
move_choices 1 ; CUE_BALL
move_choices 1 ; GAMBLER
move_choices 1, 3 ; BEAUTY
move_choices 1, 2 ; PSYCHIC_TR
@ -33,32 +33,33 @@ TrainerClassMoveChoiceModifications:
move_choices 1 ; BIRD_KEEPER
move_choices 1 ; BLACKBELT
move_choices 1 ; RIVAL1
move_choices 1, 3 ; PROF_OAK
move_choices 1, 2 ; CHIEF
move_choices 1, 2 ; SCIENTIST
move_choices 1, 3 ; GIOVANNI
move_choices 1, 2, 3, 4 ; PROF_OAK
move_choices 1, 2, 3, 4 ; CHIEF
move_choices 1, 2, 4 ; SCIENTIST
move_choices 1, 2, 3 ; GIOVANNI
move_choices 1 ; ROCKET
move_choices 1, 3 ; COOLTRAINER_M
move_choices 1, 3 ; COOLTRAINER_F
move_choices 1 ; BRUNO
move_choices 1 ; BROCK
move_choices 1, 3 ; MISTY
move_choices 1, 3 ; LT_SURGE
move_choices 1, 3 ; ERIKA
move_choices 1, 3 ; KOGA
move_choices 1, 3 ; BLAINE
move_choices 1, 3 ; SABRINA
move_choices 1, 3, 4 ; COOLTRAINER_M
move_choices 1, 3, 4 ; COOLTRAINER_F
move_choices 1, 2, 3 ; BRUNO
move_choices 1, 3 ; BROCK
move_choices 1, 3, 4 ; MISTY
move_choices 1, 2, 3 ; LT_SURGE
move_choices 1, 3, 4 ; ERIKA
move_choices 1, 3, 4 ; KOGA
move_choices 1, 2, 3 ; BLAINE
move_choices 1, 3, 4 ; SABRINA
move_choices 1, 2 ; GENTLEMAN
move_choices 1, 3 ; RIVAL2
move_choices 1, 3 ; RIVAL3
move_choices 1, 2, 3 ; LORELEI
move_choices 1, 2, 3, 4 ; RIVAL3
move_choices 1, 2, 3, 4 ; LORELEI
move_choices 1 ; CHANNELER
move_choices 1 ; AGATHA
move_choices 1, 3 ; LANCE
move_choices 1, 3, ; YUJIROU, was UNUSED_JUGGLER
move_choices 1, 3, ; STUDENT
move_choices 1, 2, 3, 4 ; AGATHA
move_choices 1, 2, 3, 4 ; LANCE
move_choices 1, 3, ; YUJIROU
move_choices 1 ; STUDENT
move_choices 1, 3, ; FIREFIGHTER
move_choices 1, 3, ; KOICHI
move_choices 1, 3, ; JACK
move_choices 1, 2, 3 ; KOICHI
move_choices 1, 2, 3, 4 ; JACK
move_choices 1, 3, ; JESSIE_JAMES
move_choices 1, 2, 3, 4 ; LEADER_GIOVANNI
assert_list_length NUM_TRAINERS

View file

@ -52,4 +52,5 @@ TrainerNames::
li "KOICHI"
li "JACKY" ; Often called Jack, but the only source for that is the file names themselves, which are oft shortened or literal japanese translations; all other context is "Shinjuku Jacky".
li "JESSIE&JAMES"
li "GIOVANNI"
assert_list_length NUM_TRAINERS

View file

@ -52,6 +52,7 @@ TrainerDataPointers:
dw KoichiData
dw JackData
dw JessieJamesData
dw LeaderGiovanniData
assert_table_length NUM_TRAINERS
; if first byte != $FF, then

View file

@ -59,4 +59,5 @@ TrainerPicAndMoneyPointers::
pic_money KoichiPic, 9900
pic_money JackPic, 5000
pic_money JessieJamesPic, 5000
pic_money GiovanniPic2, 9900
assert_table_length NUM_TRAINERS

View file

@ -78,12 +78,13 @@ BlaineData:
db $FF, 47, RAPIDASH, 46, NINETALES, 46, FLAREON, 48, CHARIZARD, 48, ARCANINE, 50, MAGMORTAR, 0 ; 7 (unused)
db $FF, 62, RAPIDASH, 62, ARCANINE, 61, TAUROS_PB, 61, FLAREON, 62, CHARIZARD, 65, MAGMORTAR, 0 ; 8 (postgame)
GiovanniData: ; is not scaled as he is always fought last
GiovanniData:
; Rocket Hideout B4F
db $FF, 28, BEEDRILL, 30, RHYHORN, 30, KANGASKHAN, 32, PERSIAN, 0
; Silph Co. 11F - did you know this team was weaker than the rival in vanilla level-wise?
db $FF, 38, BEEDRILL, 39, RHYDON, 38, KANGASKHAN, 40, NIDOKING, 40, NIDOQUEEN, 42, PERSIAN, 0
; Viridian Gym
LeaderGiovanniData:
db $FF, 47, TRAMPEL, 46, DUGTRIO, 46, GUARDIA, 48, NIDOQUEEN, 48, NIDOKING, 50, RHYPERIOR, 0
LoreleiData:

View file

@ -795,7 +795,7 @@ SpecialTrainerMoves:
db 5, 2, SMOG
db 0
db GIOVANNI, 3 ; Gym Leader Giovanni
db LEADER_GIOVANNI, 1
db 1, 1, BUBBLEBEAM
db 1, 2, EARTHQUAKE
db 2, 1, FISSURE
@ -1157,6 +1157,27 @@ SpecialTrainerMoves:
db 6, 3, BODY_SLAM
db 6, 4, SOLARBEAM
db 0
db COOLTRAINER_M, 11 ; GAME FREAK Morimoto
db 1, 1, BODY_SLAM
db 1, 2, HYPER_BEAM
db 1, 3, EARTHQUAKE
db 1, 4, ICE_PUNCH
db 2, 1, QUICK_ATTACK
db 2, 2, HYPER_BEAM
db 2, 3, GROWTH
db 2, 4, FIRE_BLAST
db 3, 1, QUICK_ATTACK
db 3, 2, BLIZZARD
db 3, 3, GROWTH
db 4, 1, QUICK_ATTACK
db 4, 3, GROWTH
db 5, 1, EARTHQUAKE
db 5, 2, ROCK_SLIDE
db 6, 1, BLIZZARD
db 6, 2, FIRE_BLAST
db 6, 3, THUNDER
db 0
db YUJIROU, 10 ; Yujirou postgame
db 1, 1, BUBBLEBEAM

View file

@ -114,7 +114,7 @@ WildDataPointers:
dw VictoryRoad1FWildMons
dw BrunswickGrottoWildMons
dw Gauntlet5FWildMons
dw Gauntlet6FWildMons
dw NothingWildMons
dw NothingWildMons
dw NothingWildMons
dw NothingWildMons
@ -335,7 +335,6 @@ INCLUDE "data/wild/maps/SilphGauntlet2F.asm"
INCLUDE "data/wild/maps/SilphGauntlet3F.asm"
INCLUDE "data/wild/maps/SilphGauntlet4F.asm"
INCLUDE "data/wild/maps/SilphGauntlet5F.asm"
INCLUDE "data/wild/maps/SilphGauntlet6F.asm"
INCLUDE "data/wild/maps/FarawayIslandInside.asm"
INCLUDE "data/wild/maps/MtMoonCrater.asm"
INCLUDE "data/wild/maps/UnderwaterTunnel.asm"

View file

@ -1,16 +1,16 @@
; Another way to obtain Virdian Forest bugs, which are hard to bring up to speed post-game.
BrunswickGrottoWildMons:
def_grass_wildmons 10 ; encounter rate
db 51, BEEDRILL
db 52, BUTTERFREE
db 52, CARAPTHOR
db 51, MINISTARE
db 53, PARASECT
db 53, PARASECT
db 53, GORILLAIMO
db 54, SCYTHER
db 54, PINSIR
db 55, PINSIR
db 45, BEEDRILL
db 45, BUTTERFREE
db 47, CARAPTHOR
db 45, SQUEAMATA
db 46, PARASECT
db 47, PARASECT
db 50, SCYTHER
db 50, PINSIR
db 48, GORILLAIMO
db 50, MINISTARE
end_grass_wildmons
def_water_wildmons 0 ; encounter rate

View file

@ -2,16 +2,16 @@
; Some of these are Pokemon featured in the Big P Pokemon Race from the anime.
BrunswickTrailMons:
def_grass_wildmons 10 ; encounter rate
db 49, TOEDSCOOL
db 45, TOEDSCOOL
db 47, DODRIO
db 53, TOEDSCOOL
db 52, DODRIO
db 52, RAPIDASH
db 55, TAUROS
db 55, CACTORMUS
db 56, TOEDSCRUEL
db 56, TOEDSCRUEL
db 55, CACTORMUS
db 45, TOEDSCOOL
db 48, DODRIO
db 48, RAPIDASH
db 50, CACTORMUS
db 47, TOEDSCRUEL
db 48, TOEDSCRUEL
db 49, TAUROS
db 50, TAUROS
end_grass_wildmons
def_water_wildmons 0 ; encounter rate

View file

@ -1,15 +1,15 @@
CelesteHillWildMons:
def_grass_wildmons 10 ; encounter rate
db 55, FARFETCHD
db 55, NIDORINO
db 56, FARFETCHD
db 56, NIDORINA
db 57, NIDORINA
db 57, LUXWAN
db 57, BUU
db 57, WIGGLYTUFF
db 56, BALUMBA
db 59, DRAGONAIR
db 47, FARFETCHD
db 47, NIDORINO
db 48, FARFETCHD
db 47, NIDORINA
db 47, NIDORINA
db 49, LUXWAN
db 49, BUU
db 49, WIGGLYTUFF
db 48, BALUMBA
db 50, DRAGONAIR
end_grass_wildmons
def_water_wildmons 0 ; encounter rate

View file

@ -1,15 +1,15 @@
CelesteHillCaveWildMons:
def_grass_wildmons 10 ; encounter rate
db 51, GRAVELER
db 52, BUU
db 52, GRAVELER
db 51, BUU
db 53, CROBAT
db 53, JYNX
db 53, STEELIX
db 54, NIDOREIGN
db 54, CLEFABLE
db 55, CLEFABLE
db 47, GRAVELER
db 48, BUU
db 47, GRAVELER
db 49, BUU
db 49, CROBAT
db 49, JYNX
db 49, STEELIX
db 50, NIDOREIGN
db 50, CLEFABLE
db 50, CLEFABLE
end_grass_wildmons
def_water_wildmons 0 ; encounter rate

View file

@ -1,15 +1,15 @@
CeruleanCave1FWildMons:
def_grass_wildmons 10 ; encounter rate
db 46, GOLBAT
db 46, HYPNO
db 46, MAGNETON
db 49, DODRIO
db 49, VENOMOTH
db 52, ARBOK
db 49, KADABRA
db 52, PARASECT
db 53, RAICHU
db 53, CLEFAIRY
db 60, GRAVELER
db 60, GOLBAT
db 61, ELECTRODE
db 61, DODRIO
db 61, VENOMOTH
db 60, GRAVELER
db 62, KADABRA
db 62, MAGNETON
db 60, DITTO
db 63, CLEFAIRY
end_grass_wildmons
def_water_wildmons 0 ; encounter rate

View file

@ -1,15 +1,15 @@
CeruleanCave2FWildMons:
def_grass_wildmons 15 ; encounter rate
db 51, DODRIO
db 51, VENOMOTH
db 51, WEEPINBELL
db 52, RHYDON
db 52, MAROWAK
db 52, ELECTRODE
db 56, CHANSEY
db 54, WIGGLYTUFF
db 55, LICKITUNG
db 60, RATICATE
db 61, CROBAT
db 61, GLOOM
db 62, RAPIDASH
db 61, WEEPINBELL
db 61, WEEPINBELL
db 63, STEELIX
db 63, WIGGLYTUFF
db 65, DITTO
db 63, LICKITUNG
db 64, SNORLAX
end_grass_wildmons
def_water_wildmons 0 ; encounter rate

View file

@ -1,15 +1,15 @@
CeruleanCaveB1FWildMons:
def_grass_wildmons 25 ; encounter rate
db 55, RHYDON
db 55, MAROWAK
db 55, ELECTRODE
db 64, CHANSEY
db 64, PARASECT
db 62, GRAVELER
db 62, CROBAT
db 63, CLEFAIRY
db 64, LICKITUNG
db 64, KADABRA
db 64, RAICHU
db 57, SANDSLASH
db 65, GLOOM
db 63, RAPIDASH
db 67, DITTO
db 64, CHANSEY
db 65, DITTO
db 65, SNORLAX
db 70, DITTO
end_grass_wildmons
def_water_wildmons 0 ; encounter rate

View file

@ -1,15 +1,15 @@
GarnetCavern1FWildMons:
def_grass_wildmons 10 ; encounter rate
db 52, MR_MIME
db 52, GRAVELER
db 53, MAGNETON
db 51, HYPNO
db 50, CROAKOZUNA
db 55, SLOWBRO
db 54, SLOWBRO
db 55, HAUNTER
db 54, GAVILLAIN
db 55, GAVILLAIN
db 47, MR_MIME
db 47, GRAVELER
db 48, MAGNETON
db 48, HYPNO
db 47, CROAKOZUNA
db 49, SLOWBRO
db 48, SLOWBRO
db 49, HAUNTER
db 49, GAVILLAIN
db 50, GAVILLAIN
end_grass_wildmons
def_water_wildmons 0 ; encounter rate

View file

@ -1,15 +1,15 @@
GarnetCavern2FWildMons:
def_grass_wildmons 10 ; encounter rate
db 52, MR_MIME
db 52, GRAVELER
db 53, MAGNETON
db 51, HYPNO
db 50, CROAKOZUNA
db 55, SLOWBRO
db 54, SLOWBRO
db 55, HAUNTER
db 54, GAVILLAIN
db 55, GAVILLAIN
db 47, MR_MIME
db 47, GRAVELER
db 48, MAGNETON
db 48, HYPNO
db 47, CROAKOZUNA
db 49, SLOWBRO
db 48, SLOWBRO
db 49, HAUNTER
db 49, GAVILLAIN
db 50, GAVILLAIN
end_grass_wildmons
def_water_wildmons 0 ; encounter rate

View file

@ -1,15 +1,15 @@
GarnetCavernB1FWildMons:
def_grass_wildmons 5 ; encounter rate
db 52, MR_MIME
db 52, GRAVELER
db 53, MAGNETON
db 51, HYPNO
db 50, CROAKOZUNA
db 55, SLOWBRO
db 54, SLOWBRO
db 55, HAUNTER
db 54, GAVILLAIN
db 55, GAVILLAIN
db 47, MR_MIME
db 47, GRAVELER
db 48, MAGNETON
db 48, HYPNO
db 47, CROAKOZUNA
db 49, SLOWBRO
db 48, SLOWBRO
db 49, HAUNTER
db 49, GAVILLAIN
db 50, GAVILLAIN
end_grass_wildmons
def_water_wildmons 0 ; encounter rate

View file

@ -1,26 +1,16 @@
MtMoonCraterMons:
def_grass_wildmons 10 ; encounter rate
db 49, DUGTRIO
db 47, VENOMOTH
db 53, RAICHU
db 52, VENOMOTH
db 52, DUGTRIO
db 55, RAICHU
db 55, CHANSEY
db 49, VENOMOTH
db 49, RAICHU
db 50, VENOMOTH
db 50, DUGTRIO
db 50, RAICHU
db 50, CHANSEY
db 50, SANDY_SHOCKS
db 50, SCREAM_TAIL
db 50, SCREAM_TAIL
end_grass_wildmons
def_water_wildmons 10 ; encounter rate
db 52, GOLDUCK
db 54, GOLDUCK
db 50, GOLDUCK
db 52, JABETTA
db 50, JABETTA
db 52, CROAKOZUNA
db 54, CROAKOZUNA
db 50, WUGTRIO
db 51, WUGTRIO
db 52, WUGTRIO
def_water_wildmons 0 ; encounter rate
end_water_wildmons

View file

@ -9,7 +9,7 @@ PokemonTower5FWildMons:
db 25, HAUNTER
db 20, CUBONE
db 22, CUBONE
db 24, VULPIX
db 25, BALUMBA
end_grass_wildmons
def_water_wildmons 0 ; encounter rate

View file

@ -2,12 +2,12 @@ PokemonTower6FWildMons:
def_grass_wildmons 15 ; encounter rate
db 21, GASTLY
db 22, GASTLY
db 23, GASTLY
db 22, CUBONE
db 20, VULPIX
db 23, VULPIX
db 24, CUBONE
db 26, HAUNTER
db 22, CUBONE
db 18, VULPIII
db 27, HAUNTER
db 28, BALUMBA
end_grass_wildmons

View file

@ -13,14 +13,14 @@ Route21WildMons:
end_grass_wildmons
def_water_wildmons 5 ; encounter rate
db 30, TENTACOOL
db 25, TENTACOOL
db 30, TENTACOOL
db 35, BLOTTLE
db 35, BLOTTLE
db 30, TENTACOOL
db 35, BALUMBA
db 30, TENTACOOL
db 30, CHEEP
db 30, CHEEP
db 30, TENTACRUEL
db 35, TENTACRUEL
db 35, PENDRAKEN
db 40, PENDRAKEN
db 35, SHARPOON
end_water_wildmons

View file

@ -1,15 +1,15 @@
SafariZoneCenterWildMons:
def_grass_wildmons 30 ; encounter rate
db 22, EXEGGCUTE
db 25, RHYHORN
db 22, VENONAT
db 24, TANGELA
db 24, CUBONE
db 25, SLOWPOKE
db 21, LICKITUNG
db 23, GORILLAIMO
db 23, CHANSEY
db 23, TRAMPEL
db 25, EXEGGCUTE
db 27, RHYHORN
db 25, VENONAT
db 25, TANGELA
db 26, CUBONE
db 27, DODUO
db 25, LICKITUNG
db 27, GORILLAIMO
db 25, CHANSEY
db 28, TRAMPEL
end_grass_wildmons
def_water_wildmons 0 ; encounter rate

View file

@ -1,15 +1,15 @@
SafariZoneEastWildMons:
def_grass_wildmons 30 ; encounter rate
db 24, EXEGGCUTE
db 26, EXEGGCUTE
db 26, DODUO
db 22, TANGELA
db 25, RHYHORN
db 23, LICKITUNG
db 23, EXEGGCUTE
db 24, TAUROS
db 25, TANGELA
db 26, RHYHORN
db 25, LICKITUNG
db 27, EXEGGCUTE
db 25, TAUROS
db 25, PINSIR
db 24, KANGASKHAN
db 7, CHANSEY
db 27, KANGASKHAN
db 10, CHANSEY
end_grass_wildmons
def_water_wildmons 0 ; encounter rate

View file

@ -1,12 +1,12 @@
SafariZoneNorthWildMons:
def_grass_wildmons 30 ; encounter rate
db 22, EXEGGCUTE
db 25, EXEGGCUTE
db 26, RHYHORN
db 23, EXEGGCUTE
db 26, EXEGGCUTE
db 25, TANGELA
db 30, VENOMOTH
db 27, CUBONE
db 28, DODRIO
db 29, VENOMOTH
db 25, CUBONE
db 29, DODRIO
db 27, TAUROS
db 26, TRAMPEL
db 28, KANGASKHAN

View file

@ -2,14 +2,14 @@ SafariZoneWestWildMons:
def_grass_wildmons 30 ; encounter rate
db 25, EXEGGCUTE
db 26, DODUO
db 23, EXEGGCUTE
db 24, EXEGGCUTE
db 33, VENOMOTH
db 26, EXEGGCUTE
db 25, CUBONE
db 29, VENOMOTH
db 26, CUBONE
db 25, MAROWAK
db 29, MAROWAK
db 25, SCYTHER
db 26, TAUROS
db 7, CHANSEY
db 10, CHANSEY
end_grass_wildmons
def_water_wildmons 0 ; encounter rate

View file

@ -2,7 +2,7 @@ SeafoamIslands1FWildMons:
def_grass_wildmons 15 ; encounter rate
db 35, SEEL
db 35, GOLBAT
db 35, HORSEA
db 35, WEIRDUCK
db 35, KRABBY
db 36, WEIRDUCK
db 33, SEEL

View file

@ -1,13 +1,13 @@
SeafoamIslandsB1FWildMons:
def_grass_wildmons 10 ; encounter rate
db 35, SHELLDER
db 35, WEIRDUCK
db 35, BLASTYKE
db 36, SEEL
db 36, BLASTYKE
db 34, SLOWPOKE
db 35, SEEL
db 35, SLOWPOKE
db 35, SEADRA
db 37, GOLDUCK
db 38, JYNX
db 39, SLOWBRO
end_grass_wildmons

View file

@ -5,11 +5,11 @@ SeafoamIslandsB2FWildMons:
db 36, SEEL
db 36, SLOWPOKE
db 34, WEIRDUCK
db 35, STARYU
db 35, WEIRDUCK
db 35, KRABBY
db 35, BLASTYKE
db 38, JYNX
db 36, KRABBY
db 39, GOLDUCK
db 36, BLASTYKE
db 39, BUU
end_grass_wildmons
def_water_wildmons 0 ; encounter rate

View file

@ -2,15 +2,25 @@ SeafoamIslandsB3FWildMons:
def_grass_wildmons 10 ; encounter rate
db 36, BLASTYKE
db 36, SEEL
db 37, BLASTYKE
db 35, SLOWPOKE
db 37, SEEL
db 35, KRABBY
db 36, STARYU
db 36, WEIRDUCK
db 36, KINGLER
db 38, JYNX
db 39, JYNX
db 39, BLASTOISE
db 39, BUU
db 39, BUU
end_grass_wildmons
def_water_wildmons 0 ; encounter rate
def_water_wildmons 5 ; encounter rate
db 30, TENTACOOL
db 30, TENTACOOL
db 35, SHELLDER
db 35, STARYU
db 35, TENTACOOL
db 35, HORSEA
db 35, STARYU
db 35, HORSEA
db 35, SHARPOON
db 40, LAPRAS
end_water_wildmons

View file

@ -1,9 +1,9 @@
SeafoamIslandsB4FWildMons:
def_grass_wildmons 10 ; encounter rate
db 35, WEIRDUCK
db 35, STARYU
db 35, SHELLDER
db 36, SEADRA
db 35, SEEL
db 35, BLASTYKE
db 36, SEEL
db 36, DEWGONG
db 36, GOLDUCK
db 37, BLASTYKE
@ -12,5 +12,15 @@ SeafoamIslandsB4FWildMons:
db 40, BLASTOISE
end_grass_wildmons
def_water_wildmons 0 ; encounter rate
def_water_wildmons 5 ; encounter rate
db 30, TENTACOOL
db 30, TENTACOOL
db 35, SHELLDER
db 35, STARYU
db 35, TENTACOOL
db 35, HORSEA
db 35, STARYU
db 35, HORSEA
db 35, SHARPOON
db 40, LAPRAS
end_water_wildmons

View file

@ -1,15 +1,15 @@
Gauntlet1FWildMons:
def_grass_wildmons 8 ; encounter rate
db 50, BUTTERFREE
db 50, BEEDRILL
db 51, VENOMOTH
db 51, TANGELA
db 51, BEEDRILL
db 52, VENOMOTH
db 52, CARAPTHOR
db 53, TANGELA
db 53, CARAPTHOR
db 55, GOROTORA
db 45, BUTTERFREE
db 45, BEEDRILL
db 46, VENOMOTH
db 47, PIDGEOT
db 46, BEEDRILL
db 46, BUTTERFREE
db 47, CARAPTHOR
db 48, PIDGEOT
db 48, CARAPTHOR
db 50, GOROTORA
end_grass_wildmons
def_water_wildmons 0 ; encounter rate

View file

@ -1,15 +1,15 @@
Gauntlet2FWildMons:
def_grass_wildmons 10 ; encounter rate
db 51, GRAVELER
db 51, SANDSLASH
db 52, MACHOKE
db 52, PARASECT
db 52, SANDSLASH
db 53, MACHOKE
db 53, CROBAT
db 54, CLEFABLE
db 54, CROBAT
db 56, KLEAVOR
db 46, GRAVELER
db 46, SANDSLASH
db 47, MACHOKE
db 47, PARASECT
db 47, GRAVELER
db 48, MACHOKE
db 48, CROBAT
db 49, CLEFABLE
db 49, CROBAT
db 51, KLEAVOR
end_grass_wildmons
def_water_wildmons 0 ; encounter rate

View file

@ -1,15 +1,15 @@
Gauntlet3FWildMons:
def_grass_wildmons 10 ; encounter rate
db 52, POLIWHIRL
db 52, JABETTA
db 53, KINGLER
db 53, SLOWBRO
db 53, JABETTA
db 54, KINGLER
db 54, GOLDUCK
db 55, BLASTOISE
db 55, GOLDUCK
db 57, LAPRAS
db 47, POLIWHIRL
db 47, JABETTA
db 48, KINGLER
db 48, SLOWBRO
db 48, POLIWHIRL
db 49, KINGLER
db 49, CROAKOZUNA
db 50, BLASTOISE
db 50, CROAKOZUNA
db 52, LAPRAS
end_grass_wildmons
def_water_wildmons 0 ; encounter rate

View file

@ -1,15 +1,15 @@
Gauntlet4FWildMons:
def_grass_wildmons 10 ; encounter rate
db 53, HAUNTER
db 53, GUARDIA
db 54, NINETALES
db 54, BALUMBA
db 54, GUARDIA
db 55, NINETALES
db 55, HYPNO
db 56, KADABRA
db 56, HYPNO
db 58, ANNIHILAPE
db 48, HAUNTER
db 48, MAROWAK
db 49, NINETALES
db 49, BALUMBA
db 49, HAUNTER
db 50, NINETALES
db 50, HYPNO
db 51, KADABRA
db 51, HYPNO
db 53, GENGAR
end_grass_wildmons
def_water_wildmons 0 ; encounter rate

View file

@ -1,15 +1,15 @@
Gauntlet5FWildMons:
def_grass_wildmons 20 ; encounter rate
db 54, DODRIO
db 54, RHYDON
db 55, EXEGGUTOR
db 55, SCYTHER
db 55, PINSIR
db 56, TAUROS
db 56, KANGASKHAN
db 57, TRAMPEL
db 57, CHANSEY
db 59, DRAGONITE
db 49, DODRIO
db 49, RHYDON
db 49, EXEGGUTOR
db 50, SCYTHER
db 50, PINSIR
db 51, TAUROS
db 51, GORILLAIMO
db 52, KANGASKHAN
db 52, TRAMPEL
db 54, CHANSEY
end_grass_wildmons
def_water_wildmons 0 ; encounter rate

View file

@ -1,16 +0,0 @@
Gauntlet6FWildMons: ; the pokemon on this floor represent the 9 gym leaders (including Yujirou!)
def_grass_wildmons 10 ; encounter rate
db 55, STEELIX
db 55, STARMIE
db 56, ELECTABUZZ
db 56, BELLOSSOM
db 56, WEEZING
db 57, MR_MIME
db 57, MAGMAR
db 58, NIDOKING
db 60, LICKILICKY
db 60, LICKILICKY
end_grass_wildmons
def_water_wildmons 0 ; encounter rate
end_water_wildmons

View file

@ -1,15 +1,15 @@
VictoryRoad1FWildMons:
def_grass_wildmons 15 ; encounter rate
db 34, MACHOKE
db 36, STEELIX
db 32, GOLBAT
db 36, SANDSLASH
db 39, MACHOKE
db 38, ONIX
db 39, GOLBAT
db 38, GRAVELER
db 39, SANDSLASH
db 42, GOLBAT
db 41, GAVILLAIN
db 41, RHYDON
db 42, MAROWAK
db 43, HITMONTOP ; LGPE Rare Spawn
db 40, GOLBAT
db 40, GAVILLAIN
db 40, RHYHORN
db 40, MAROWAK
db 42, HITMONTOP ; LGPE Rare Spawn
end_grass_wildmons
def_water_wildmons 0 ; encounter rate

View file

@ -1,15 +1,15 @@
VictoryRoad2FWildMons:
def_grass_wildmons 10 ; encounter rate
db 32, MACHOKE
db 34, STEELIX
db 36, GOLBAT
db 36, SANDSLASH
db 39, MACHOKE
db 38, ONIX
db 39, GOLBAT
db 38, GRAVELER
db 39, SANDSLASH
db 42, MACHOKE
db 41, GAVILLAIN
db 40, RHYDON
db 40, MAROWAK
db 43, HITMONLEE ; LGPE Rare Spawn
db 40, GOLBAT
db 40, GAVILLAIN
db 40, RHYHORN
db 40, VENOMOTH
db 42, HITMONLEE ; LGPE Rare Spawn
end_grass_wildmons
def_water_wildmons 0 ; encounter rate

View file

@ -1,15 +1,15 @@
VictoryRoad3FWildMons:
def_grass_wildmons 15 ; encounter rate
db 34, MACHOKE
db 36, STEELIX
db 32, GOLBAT
db 42, SANDSLASH
db 40, VENOMOTH
db 45, SANDSLASH
db 43, GAVILLAIN
db 45, RHYDON ; LGPE encounters
db 45, MAROWAK
db 45, HITMONCHAN ; LGPE Rare Spawn
db 39, MACHOKE
db 38, ONIX
db 39, GOLBAT
db 38, GRAVELER
db 39, RHYHORN
db 40, GOLBAT
db 40, GAVILLAIN
db 40, SANDSLASH
db 40, PARASECT
db 42, HITMONCHAN ; LGPE Rare Spawn
end_grass_wildmons
def_water_wildmons 0 ; encounter rate

View file

@ -991,6 +991,11 @@ TrainerBattleVictory:
ld hl, wFlags_D733
set 1, [hl]
.notrival
ld a, [wTrainerClass]
cp LEADER_GIOVANNI ; final battle against Giovanni
jr nz, .notrivalorGio
ld b, MUSIC_DEFEATED_GYM_LEADER
.notrivalorGio
ld a, [wLinkState]
cp LINK_STATE_BATTLING
ld a, b

View file

@ -7,6 +7,18 @@ AIEnemyTrainerChooseMoves:
ld [hli], a ; move 2
ld [hli], a ; move 3
ld [hl], a ; move 4
;;;;;;;;;; shinpokerednote: ADDED: make a backup buffer
push hl
ld a, $ff
inc hl
ld [hli], a ;backup 1
ld [hli], a ;backup 2
ld [hli], a ;backup 3
ld [hl], a ;backup 4
pop hl
;;;;;;;;;;
ld a, [wEnemyDisabledMove] ; forbid disabled move (if any)
swap a
and $f
@ -52,6 +64,11 @@ AIEnemyTrainerChooseMoves:
ld de, .nextMoveChoiceModification ; set return address
push de
jp hl ; execute modification function
.loopFindMinimumEntries_backupfirst ;shinpokerednote: ADDED: make a backup of the scores
ld hl, wBuffer ; temp move selection array
ld de, wBuffer + NUM_MOVES ;backup buffer
ld bc, NUM_MOVES
rst _CopyData
.loopFindMinimumEntries ; all entries will be decremented sequentially until one of them is zero
ld hl, wBuffer ; temp move selection array
ld de, wEnemyMonMoves ; enemy moves
@ -466,10 +483,8 @@ AIMoveChoiceModification3:
jr c, .notEffectiveMove
;ld a, [wEnemyMoveEffect]
; check for reasons not to use a super effective move here
dec [hl] ; slightly encourage this super effective move
.checkSpecificEffects ; we'll further encourage certain moves
call EncouragePriorityIfSlow
call EncourageDrainingMoveIfLowHealth
jr .nextMove
.notEffectiveMove ; discourages non-effective moves if better moves are available
@ -479,7 +494,7 @@ AIMoveChoiceModification3:
ld a, [wEnemyMoveType]
ld d, a
ld hl, wEnemyMonMoves ; enemy moves
ld b, NUM_MOVES + 1
ld bc, NUM_MOVES + 1
ld c, $0
.loopMoves
dec b
@ -543,18 +558,6 @@ CompareSpeed:
ret
;;;;;;;;;;
; PureRGBnote: ADDED: encourages priority moves if the enemy's pokemon is slower than the player's and the move is neutral or super effective.
; BUT this effect is only applied after you have the soulbadge to prevent priority moves from being spammed early game.
; Applies to trainers that use AI subroutine 3
EncouragePriorityIfSlow:
ld a, [wObtainedBadges]
bit BIT_SOULBADGE, a
ret z
call CompareSpeed
ret nc
dec [hl] ; encourage the move if it's a priority move and the pokemon is slower
ret
; PureRGBnote: ADDED: if the opponent has less than 1/2 health they will prefer healing moves if they use AI subroutine 3
EncourageDrainingMoveIfLowHealth:
ld a, [wEnemyMoveEffect]
@ -576,11 +579,11 @@ AIMoveChoiceModification4:
ld b, NUM_MOVES + 1
.nextMove
dec b
jr z, .done ; processed all 4 moves
ret z ; processed all 4 moves
inc hl
ld a, [de]
and a
jr z, .done ; no more moves in move set
ret z ; no more moves in move set
inc de
call ReadMove
ld a, [wEnemyMoveEffect]
@ -626,8 +629,7 @@ AIMoveChoiceModification4:
jr z, .nextMove ; if the AI thinks the player IS NOT asleep before they switch, we shouldn't encourage based on the new mon's status
ld a, [wBattleMonStatus]
and SLP_MASK
jr nz, .preferMoveEvenMore ; heavier favor for dream eater if the opponent is asleep
jr .nextMove
jr z, .nextMove
.preferMoveEvenMore
dec [hl]
jr .preferMove
@ -676,9 +678,6 @@ TrainerAI:
ld a, [wIsInBattle]
dec a
ret z ; if not a trainer, we're done here
ld a, [wCurMap]
cp BATTLE_TENT
ret z ; if we are in battle tent, we are done
ld a, [wLinkState]
cp LINK_STATE_BATTLING
ret z ; if in a link battle, we're done as well
@ -726,18 +725,15 @@ JugglerAI:
ret nc
jp AISwitchIfEnoughMons
BlackbeltAI:
cp 13 percent - 1
BlackbeltAI: ; Fun fact! Jacky uses this same AI routine in the proto assets, but only 6% of the time.
cp 25 percent + 1
ret nc
jp AIUseXAttack
GiovanniAI:
cp 20 percent + 1
cp 25 percent + 1
ret nc
ld a, [wEnemyBattleStatus2]
bit GETTING_PUMPED, a
ret nz
jp AIUseDireHit
jp AIUseXAttack ; Used to use a Guard Spec. This will make the item use have a proper impact - healing doesn't feel right for a trainer fixated on strength.
CooltrainerMAI:
cp 20 percent + 1
@ -765,17 +761,20 @@ BrockAI:
jp AIUseFullHeal
MistyAI:
cp 20 percent + 1
cp 25 percent + 1
ret nc
jp AIUseXDefend
ld a, 5
call AICheckIfHPBelowFraction
ret nc
jp AIUsePotion ; Replicates Starmie using Recover. Unlike other trainers that heal, Misty will do this 26% of the time instead of 51%.
LtSurgeAI:
cp 10 percent + 1
cp 20 percent + 1
ret nc
jp AIUseXSpeed
jp AIUseXSpecial
ErikaAI:
cp 50 percent + 1
cp 25 percent + 1
ret nc
ld a, 5
call AICheckIfHPBelowFraction
@ -783,18 +782,20 @@ ErikaAI:
jp AIUseSuperPotion
KogaAI:
cp 10 percent + 1
cp 25 percent + 1
ret nc
jp AIUseXAttack
ld a, 5
call AICheckIfHPBelowFraction
ret nc
jp AIUseSuperPotion ; Koga is weird - I don't think anything fits. X Attack is certainly not the move though...
BlaineAI: ;blaine needs to check HP. this was an oversight
BlaineAI:
cp 40 percent + 1
jr nc, .blainereturn
ld a, 2
call AICheckIfHPBelowFraction
jp c, AIUseSuperPotion
.blainereturn
ret
ret nc
ld a, 5
call AICheckIfHPBelowFraction
ret nc ; this fixes the super potion thing - PvK
jp AIUseHyperPotion ; Instead of a Super Potion though, let's give him this. More impactful for the sixth gym while staying true to the meme that everyone knows Gen 1 Blaine for.
SabrinaAI:
cp 25 percent + 1
@ -805,12 +806,12 @@ SabrinaAI:
jp AIUseHyperPotion
Rival2AI:
cp 13 percent - 1
cp 20 percent - 1
ret nc
ld a, 5
call AICheckIfHPBelowFraction
ret nc
jp AIUseHyperPotion
jp AIUseSuperPotion
Rival3AI:
cp 40 percent - 1
@ -821,43 +822,55 @@ Rival3AI:
jp AIUseFullRestore
LoreleiAI:
cp 50 percent + 1
ret nc
ld a, 5
call AICheckIfHPBelowFraction
ret nc
jp AIUseHyperPotion
BrunoAI:
;cp 10 percent + 1
;ret nc
;jp AIUseXDefend
cp 30 percent + 1
jr nc, .brunoreturn
ld a, 5
call AICheckIfHPBelowFraction
jp c, AIUseHyperPotion
.brunoreturn
ret
AgathaAI:
cp 8 percent
jp c, AISwitchIfEnoughMons
cp 50 percent + 1
ret nc
ld a, 4
call AICheckIfHPBelowFraction
ret nc
jp AIUseHyperPotion
LanceAI:
cp 50 percent + 1
cp 40 percent + 1
ret nc
ld a, 5
call AICheckIfHPBelowFraction
ret nc
jp AIUseFullRestore
BrunoAI:
cp 40 percent + 1
ret nc
ld a, 5
call AICheckIfHPBelowFraction
ret nc
jp AIUseFullRestore
AgathaAI:
cp 10 percent
jp c, AISwitchIfEnoughMons
cp 40 percent + 1
ret nc
ld a, 5
call AICheckIfHPBelowFraction
ret nc
jp AIUseFullRestore
LanceAI:
cp 50 percent + 1
ret nc
ld a, 4
call AICheckIfHPBelowFraction
ret nc
jp AIUseFullRestore
OakAI:
cp 25 percent + 1
ret nc
ld a, 5
call AICheckIfHPBelowFraction
ret nc
jp AIUseFullRestore
ChiefAI:
cp 25 percent + 1
ret nc
ld a, 5
call AICheckIfHPBelowFraction
ret nc
jp AIUseFullRestore ; this was a Dire Hit in the proto assets but we all know how useful that item is in Gen 1
GenericAI:
and a ; clear carry
ret
@ -1087,12 +1100,12 @@ AICureStatus: ;shinpokerednote: CHANGED: modified to be more robust and also und
res BADLY_POISONED, [hl] ;clear toxic bit
ret
;AIUseXAccuracy: ; unused
; call AIPlayRestoringSFX
; ld hl, wEnemyBattleStatus2
; set 0, [hl]
; ld a, X_ACCURACY
; jp AIPrintItemUse
AIUseXAccuracy:
call AIPlayRestoringSFX
ld hl, wEnemyBattleStatus2
set 0, [hl]
ld a, X_ACCURACY
jp AIPrintItemUse
;AIUseGuardSpec: ; PureRGBnote: CHANGED: now unused
; call AIPlayRestoringSFX

View file

@ -1,4 +1,54 @@
; Used by the pureRGB AI
;shinpokerednote: ADDED: doubles the given stat
DoubleSelectedStats:
ldh a, [hWhoseTurn]
and a
ld a, [wPlayerStatsToDouble]
ld hl, wBattleMonAttack
jr z, .notEnemyTurn
ld a, [wEnemyStatsToDouble]
ld hl, wEnemyMonAttack
.notEnemyTurn
ld c, 4
ld b, a
.loop
srl b
call c, .doubleStat
inc hl
inc hl
dec c
ret z
jr .loop
.doubleStat
push bc
ld a, [hli]
ld b, a
ld c, [hl] ; bc holds value of stat to double
;double the stat
sla c
rl b
;cap stat at 999
;b register contains high byte & c register contains low byte
ld a, c ;let's work on low byte first. Note that decimal 999 is $03E7 in hex.
sub 999 % $100 ;a = a - ($03E7 % $100). Gives a = a - $E7. A byte % $100 always gives the lesser nibble.
;Note that if a < $E7 then the carry bit 'c' in the flag register gets set due to overflowing with a negative result.
ld a, b ;now let's work on the high byte
sbc 999 / $100 ;a = a - ($03E7 / $100 + c_flag). Gives a = a - ($03 + c_flag). A byte / $100 always gives the greater nibble.
;Note again that if a < $03 then the carry bit remains set.
;If the bit is already set from the lesser nibble, then its addition here can still make it remain set if a is low enough.
jr c, .donecapping ;jump to next marker if the c_flag is set. This only remains set if BC < the cap of $03E7.
;else let's continue and set the 999 cap
ld a, 999 / $100 ; else load $03 into a
ld b, a ;and store it as the high byte
ld a, 999 % $100 ; else load $E7 into a
ld c, a ;and store it as the low byte
;now registers b & c together contain $03E7 for a capped stat value of 999
.donecapping
ld a, c
ld [hld], a
ld [hl], b
pop bc
ret
;shinpokerednote: ADDED: doubles attack if burned or quadruples speed if paralyzed.
;It's meant to be run right before healing paralysis or burn so as to
;undo the stat changes.
@ -31,35 +81,6 @@ UndoBurnParStats:
ld [de], a ;reset the stat change bits
ret
; Reused for pureRGB AI
DoubleSelectedStats:
ldh a, [hWhoseTurn]
and a
ld a, [wPlayerStatsToDouble]
ld hl, wBattleMonAttack + 1
jr z, .notEnemyTurn
ld a, [wEnemyStatsToDouble]
ld hl, wEnemyMonAttack + 1
.notEnemyTurn
ld c, 4
ld b, a
.loop
srl b
call c, .doubleStat
inc hl
inc hl
dec c
ret z
jr .loop
.doubleStat
ld a, [hl]
add a
ld [hld], a
ld a, [hl]
rl a
ld [hli], a
ret
; does nothing since no stats are ever selected (barring glitches)
;HalveSelectedStats:
; ldh a, [hWhoseTurn]

Binary file not shown.

View file

@ -594,3 +594,4 @@ FirefighterPic:: INCBIN "gfx/trainers/firefighter.pic"
KoichiPic:: INCBIN "gfx/trainers/koichi.pic"
JackPic:: INCBIN "gfx/trainers/jack.pic"
JessieJamesPic:: INCBIN "gfx/trainers/jessiejames.pic"
GiovanniPic2:: INCBIN "gfx/trainers/giovanni2.pic"

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 733 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 791 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 884 B

After

Width:  |  Height:  |  Size: 923 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 863 B

After

Width:  |  Height:  |  Size: 917 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 782 B

After

Width:  |  Height:  |  Size: 937 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 668 B

After

Width:  |  Height:  |  Size: 856 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 842 B

After

Width:  |  Height:  |  Size: 979 B

BIN
gfx/trainers/giovanni2.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 368 B

View file

@ -186,6 +186,8 @@ SECTION "Battle Engine 7", ROMX
INCLUDE "data/moves/moves.asm"
INCLUDE "data/pokemon/cries.asm"
INCLUDE "engine/battle/scroll_draw_trainer_pic.asm"
INCLUDE "engine/battle/trainer_ai.asm"
INCLUDE "engine/battle/unused_stats_functions.asm"
INCLUDE "engine/battle/move_effects/heal.asm"
INCLUDE "engine/battle/move_effects/transform.asm"
@ -249,8 +251,6 @@ INCLUDE "engine/events/hidden_objects/indigo_plateau_hq.asm"
SECTION "Battle Engine 9", ROMX
INCLUDE "engine/battle/scroll_draw_trainer_pic.asm"
INCLUDE "engine/battle/trainer_ai.asm"
INCLUDE "engine/battle/draw_hud_pokeball_gfx.asm"
@ -333,19 +333,19 @@ SECTION "Itemfinder 1", ROMX
INCLUDE "engine/movie/credits.asm"
INCLUDE "engine/pokemon/status_ailments.asm"
INCLUDE "engine/items/itemfinder.asm"
SECTION "Vending Machine", ROMX
INCLUDE "engine/events/vending_machine.asm"
INCLUDE "gfx/fishing.asm"
SECTION "Itemfinder 2", ROMX
INCLUDE "engine/items/itemfinder.asm"
INCLUDE "engine/menus/league_pc.asm"
INCLUDE "engine/events/hidden_items.asm"
INCLUDE "gfx/fishing.asm"
SECTION "bank1E", ROMX

View file

@ -1 +1 @@
  
  

View file

@ -22,6 +22,7 @@ BrunswickTrail_TextPointers:
dw Lover1
dw Lover2
dw PickUpItemText
dw TrailDirections
BrunswickTrailTrainerHeaders:
def_trainers
@ -101,6 +102,10 @@ CaveGuy:
text_far _CaveGuy
text_end
TrailDirections:
text_far _TrailDirections
text_end
FakeTreeNoCut:
text_far _FakeTreeNoCut
text_end

View file

@ -16,6 +16,8 @@ CelesteHillOutside_TextPointers:
dw CelesteHillOutsideTrainer1
dw CelesteHillOutsideTrainer2
dw CelesteHillOutsideTrainer3
dw HikerNPC
dw CelesteSign
CelesteHillOutsideTrainerHeaders:
def_trainers
@ -79,4 +81,12 @@ CelesteHillOutsideEndBattleText3:
CelesteHillOutsideAfterBattleText3:
text_far _CelesteHillOutsideAfterBattleText3
text_end
HikerNPC:
text_far _HikerNPC
text_end
CelesteSign:
text_far _CelesteSign
text_end

View file

@ -276,9 +276,25 @@ ChampionsRoom_TextPointers:
GaryText1:
text_asm
CheckEvent EVENT_BEAT_CHAMPION_RIVAL
jr nz, .championBeaten
ld hl, GaryChampionIntroText
call PrintText
ld a, 5
ld [wMusicFade], a
xor a
ld [wMusicFadeID], a
.waitloop
ld a, [wMusicFade]
and a
jr nz, .waitloop
ld a, SFX_STOP_ALL_MUSIC
call PlaySound
ld hl, GaryChampionIntroTextPart2
jr z, .printText
.championBeaten
ld hl, GaryText_76103
jr z, .printText
.printText
call PrintText
jp TextScriptEnd
@ -287,6 +303,10 @@ GaryChampionIntroText:
text_far _GaryChampionIntroText
text_end
GaryChampionIntroTextPart2:
text_far _GaryChampionIntroTextPart2
text_end
GaryDefeatedText:
text_far _GaryDefeatedText
text_end

View file

@ -3,7 +3,6 @@ CinnabarLabFossilRoom_Script:
CinnabarLabFossilRoom_TextPointers:
dw Lab4Text1
dw Lab4Text2
Lab4Script_GetFossilsInBag:
; construct a list of all fossils in the player's bag
@ -99,12 +98,5 @@ Lab4Text_75dd5:
text_far _Lab4Text_75dd5
text_end
Lab4Text2:
text_asm
ld a, TRADE_FOR_MICHELLE
ld [wWhichTrade], a
predef DoInGameTradeDialogue
jp TextScriptEnd
LoadFossilItemAndMonNameBank1D:
farjp LoadFossilItemAndMonName

View file

@ -4,6 +4,8 @@ CitrineRocketHouse_Script:
CitrineRocketHouse_TextPointers:
dw MartGuy1Text
dw MartGuy2Text
dw MartGuy3Text
dw MartGuy4Text
dw RocketText1
dw RocketText2
dw MeowthText
@ -11,10 +13,16 @@ CitrineRocketHouse_TextPointers:
dw JessieFight
MartGuy1Text:
script_mart TM_SWORDS_DANCE, TM_TOXIC, TM_BODY_SLAM, TM_DOUBLE_EDGE, TM_BUBBLEBEAM, TM_ICE_BEAM, TM_BLIZZARD, TM_PAY_DAY, TM_COUNTER, TM_SEISMIC_TOSS, TM_MEGA_DRAIN, TM_THUNDERBOLT, TM_EARTHQUAKE, TM_DIG,
script_mart TM_SWORDS_DANCE, TM_WHIRLWIND, TM_TOXIC, TM_BODY_SLAM, TM_DOUBLE_EDGE, TM_BUBBLEBEAM, TM_WATER_GUN, TM_ICE_BEAM, TM_BLIZZARD, TM_HYPER_BEAM, TM_PAY_DAY, TM_COUNTER, TM_SEISMIC_TOSS, TM_RAGE
MartGuy2Text:
script_mart TM_PSYCHIC_M, TM_FIRE_BLAST, TM_THUNDER_WAVE, TM_EXPLOSION, TM_ROCK_SLIDE, PROTECTOR, UP_GRADE, DUBIOUS_DISC, METAL_COAT, BLK_AUGURITE, DOME_FOSSIL, HELIX_FOSSIL, WING_FOSSIL, OLD_AMBER
script_mart TM_MEGA_DRAIN, TM_SOLARBEAM, TM_DRAGON_RAGE, TM_THUNDERBOLT, TM_THUNDER, TM_EARTHQUAKE, TM_DIG, TM_PSYCHIC_M, TM_TELEPORT, TM_MIMIC, TM_BIDE, TM_METRONOME, TM_SELFDESTRUCT, TM_FIRE_BLAST
MartGuy3Text:
script_mart TM_SWIFT, TM_SKULL_BASH, TM_SOFTBOILED, TM_DREAM_EATER, TM_SKY_ATTACK, TM_REST, TM_THUNDER_WAVE, TM_PSYWAVE, TM_EXPLOSION, TM_ROCK_SLIDE, TM_TRI_ATTACK, TM_SUBSTITUTE
MartGuy4Text:
script_mart PROTECTOR, UP_GRADE, DUBIOUS_DISC, METAL_COAT, BLK_AUGURITE, DOME_FOSSIL, HELIX_FOSSIL, WING_FOSSIL, OLD_AMBER
RocketText1:
text_far _RocketText1

View file

@ -61,6 +61,7 @@ LanceScript0:
ld a, [wCoordIndex]
cp $3 ; Is player standing next to Lance's sprite?
jr nc, .notStandingNextToLance
call DoFacings
ld a, $1
ldh [hSpriteIndexOrTextID], a
jp DisplayTextID
@ -179,3 +180,19 @@ LanceRematchAfterBattleText:
text_asm
SetEvent EVENT_BEAT_LANCE
jp TextScriptEnd
DoFacings: ; PureRGBnote: ADDED: when about to fight Lance, lance and the player will face each other properly to talk.
ld a, [wYCoord]
cp 1
jr z, .leftOfLance
ld a, PLAYER_DIR_UP
ld [wPlayerMovingDirection], a
ret
.leftOfLance
ld a, PLAYER_DIR_RIGHT
ld [wPlayerMovingDirection], a
ld a, 1
ldh [hSpriteIndex], a
ld a, SPRITE_FACING_LEFT
ldh [hSpriteFacingDirection], a
jp SetSpriteFacingDirection

View file

@ -9,7 +9,7 @@ Route11Gate2F_TextPointers:
Route11GateUpstairsText1:
text_asm
ld a, TRADE_FOR_CHIKUCHIKU
ld a, TRADE_FOR_MICHELLE
ld [wWhichTrade], a
predef DoInGameTradeDialogue
Route11GateUpstairsScriptEnd:

View file

@ -4,6 +4,7 @@ ViridianForestNorthGate_Script:
ViridianForestNorthGate_TextPointers:
dw ViridianForestExitText1
dw ViridianForestExitText2
dw ViridianForestExitText3
ViridianForestExitText1:
text_far _ViridianForestExitText1
@ -12,3 +13,10 @@ ViridianForestExitText1:
ViridianForestExitText2:
text_far _ViridianForestExitText2
text_end
ViridianForestExitText3:
text_asm
ld a, TRADE_FOR_CHIKUCHIKU
ld [wWhichTrade], a
predef DoInGameTradeDialogue
jp TextScriptEnd

View file

@ -15,7 +15,7 @@ ViridianGym_Script:
db "VIRIDIAN CITY@"
.LeaderName:
db "GIOVANNI@"
db "????????@"
ViridianGymDoorCallbackScript:
ld hl, wCurrentMapScriptFlags
@ -263,8 +263,6 @@ GiovanniText:
ld [wSpriteIndex], a
call EngageMapTrainer
call InitBattleEnemyParameters ; giovanni is deliberately not scaled as he is always fought last
ld a, $8
ld [wGymLeaderNo], a
ld a, $3
ld [wViridianGymCurScript], a
.done

View file

@ -124,4 +124,17 @@ _FakeTreeAttack::
line "a rage!"
prompt
; Martha can do the text for her things...
_TrailDirections::
text "BRUNSWICK TRAIL"
para "Go north for"
line "CITRINE CITY!"
para "Follow the path"
line "to reach GARNET"
cont "CAVERN!"
para "Go northwest to"
line "find BRUNSWICK"
cont "GLADE!"
done

View file

@ -19,9 +19,11 @@ _GaryChampionIntroText::
cont "that would beat"
cont "any #MON type!"
para "And now!"
para "And now..."
prompt
para "I'm the #MON"
_GaryChampionIntroTextPart2::
text "I'm the #MON"
line "LEAGUE champion!"
para "<PLAYER>! Do you"

View file

@ -77,11 +77,11 @@ _GiovannisRoomText3::
para "PROTECTOR: ¥3,000" ; Giovanni discovered the Protector's use with Rhyperior.
para "DIRE HIT: ¥5,200" ; Giovanni uses this in battle.
para "X ATTACK: ¥8,000" ; Giovanni uses this in battle.
para "TM27 R&D: ¥15,000" ; Giovanni is confirmed to have created Fissure in vanilla RBY. He also says he made Earthquake in FRLG, but it feels contrived.
para "Business: ¥100,000"
para "Business: ¥250,000"
para "It keeps going..."

View file

@ -111,6 +111,6 @@ _DexRatingText_Own230To249::
_DexRatingText_OwnComplete::
text "Your #DEX is"
line "entirely complete!"
line "fully complete!"
cont "Congratulations!"
done