This restructures the Fighting Dojo to match the new map, as well as add a few more features and safety mechanisms.
- Koichi, the Karate Master, now plays the Gym Leader theme when fought.
- Hitmontop is now an optional reward.
- Post-Game Rematch is available in addition to the gym scaling to be consistent with other Gym Leaders.
- A safety lock is on the Poke Balls prior to defeating the Karate Master, as the new structure now demands it. Indeed, this is why the reward area in vanilla is like that.
- Architecturally, there is now only one EVENT_GOT_HITMON constant, which is all that was actually needed in the vanilla game. Extreme microoptimisation, as event constants appear to be 16-bit.
- Vermilion Beauty no longer skips text to hand you your Pokemon
- Vermilion City text boxes are fixed
- Cancelling TMs and causing crashes when trying different ones is fixed (thanks to some old code by BlueZangoose, it was a vanilla bug!)
- Minor enhancement to the Candy Jar that seems to make Meltan more stable.
- Fixed a fallthrough error that caused Mewtwo's theme to play for every wild encounter (very cool, but also oops)
This adds the S.S. Anne healer from FRLG that's notorious for gaslighting newer players who just think she's there.
This also adds an extremely early Mewtwo theme. It's far from finished, just happens to be in this commit as I was testing it in debug - thanks to Luci for working on this!
Updated bug list as well with things my friend Crunter found.
This sets up most of the content necessary for Galarian Articuno's event. In SwSh, it has 2 copies, so I'm doing that here too.
Right now, the fight doesn't work properly and the copies don't hide properly. Otherwise, it's roughly how we want it to be.
- Properly adds Brunswick Grotto, as well as Celeste Hill Outside and Celeste Hill Cave
- Citrine City received a minor redesign, putting the path to Brunswick Trail more to the west
- Added complete event for Galarian Zapdos as well as an encounterable, but unfinished Galarian Moltres, so all 3 birds can currently be caught
The warp at the moment is an absolute travesty, something on that tileset needs to change. Either that or we figure out something else.
Everything in the Grotto is done, except for making Galarian Zapdos disappear after being defeated. At least, to my knowledge...
Pokemon Tower 3F is dead until future notice - Martha said she wanted to compress the Diglett's Cave maps, though.
This adds all the required architecture for the new maps to work, as well as Kinchou01 to play when in Celeste Hill itself.
This doesn't add the events, though.
- Fixes a bug where the Game Corner poster would pretend to be an Arbok. Very effective disguise.
- Fixes some text in Celadon University that would simply look odd. I need to use hyphens more, the rest of the game does it!
- Decapitalised the "normal-type" in Viridian Pre-Gym to match the rest of the game.
- Changed some SFX cues to use the level-up sound, but it's clearly crysaudio that causes this. Will talk with Dannye.
This commit adds a large fundamental change to KEP, that being Gym Rematches.
This is achieved alongside a rework to the script that makes those post-game-gating NPCs shift around. If you add a new one, just add its constant to the lists you'll see in the Hall of Fame script.
It also fixes a few bugs:
- Fixed a bug where Cinnabar Gym loaded a fleet of Blaines. This occurred due to the way he is coded at base, and a misunderstanding I had when implementing his scaling. This is now fixed by standardising his gym script instead, while letting the gym trainers still use the old one.
- Fixed a bug where the Up-Grade NPC would not appear after beating Silph Co. 11F. However, Giovanni currently seems to have trouble with his text. This floor needs some re-coding anyway, given we need to add Jessie and James to it.
And some misc. changes:
- Changed the first Moon Stone in Mt. Moon to a Poison Stone for the Nidoking speedrunners
- Debug Mode now has a line of code to set up the post-game easily
- Changed Surge's initial battle text to Yellow's
- Added Sabrina's more accurate LGPE initial battle text, referring to the spoon she bent by accident
This is basically done, but has a few glitches to iron out that I don't have time to do today. So, I'm sending this in as-is with the intent to finish (or someone else can idc) it later.
I initially thought to restrict this to after Vermilion Gym but Persian is really bad and Arcanine doesn't compare to the L30 Dugtrio, so I think it's ok. Just barely balances itself out.
Bugs:
- GiveMonName doesn't work properly for the Vermilion Beauty after receiving the Pokemon, jank ensues.
- Text scrolls immediately when receiving the Pokemon from the Vermilion Beauty.
Minor upgrades in accordance with the recent KEP playtest.
The Mt. Moon Rocket with the Raticate is arguably one of the most iconic NPC trainers in Pokemon history and under no circumstances should it be cut. No matter what Yellow tells you.
Added a nice Arbok NPC to the Game Corner to make more use of the new overworld sprites I did. It's basically a guard for the attendant to its left - need some safety in casinos, y'know? Especially pachinko parlours...
I put the Arbok text in `text_2.asm` since it'll likely be used by other maps down the line. Or not, but it's good for architecture.
- Eevee and Pikachu family's growth rates are changed to Medium Slow. This gives them a much better early-game power spike that tapers off momentarily. They will level up faster until Level 68.
- Yujirou's levels and one pre-gym trainer are slightly nerfed, being easier for players starting out.
- Caterpie and Weedle in Viridian Forest have level deviation, and Pikachu is tapped on the wrist to not make the starter too redundant; change here is pending.
- Debug uses Pikachu and Eevee starters for future starter-based testing.
The Candy Jar is now obtainable in the Indigo Plateau, instead of being an item obtained from Chief. I've removed most Chief-related stuff but expect some instability after you beat him, as I don't believe I completely removed the function to call the text.
The Candy Jar will now not collect candies in the following instances;
- It isn't in the bag.
- The total would go over 40.
Just makes sense and ensures players are engaging with the proper intentions. The 40 total is necessary, as over 40 stops the jar from working. This does mean some candies are "lost", but the players see that.
There's a bug where Meltan will have the moves of the Pokemon it's replacing and I don't know why. I've tried a bunch of fixes in `LoadEnemyMonData` but it didn't seem to want to work.
It was a long shot, but I did it! I added the Mystery Box from Pokemon GO! Very happy with the results here.
So here's how it works: When used, the game will replace Pokemon encountered with Meltan until the player leaves the map. This is sort of how it works in GO, with the player unable to close it and naturally petering out as they play.
Now multiple Meltan can be obtained, and in abundance, just like GO. Technically, someone could use this as a pseudo-Repel to replace hard encounters with easy ones.
Oh, and I'm pretty sure this happens vs static encounters as well, but it's awkward to account for I think that's hilarious, so...
- Attempted to fix the Mt. Moon J&J encounter (did not work, will look at the script file)
- Fixed a few bugged warps relating to Mt. Moon Square/Crater
- Fixed the credits text layout (just need to figure out how to decrease the delay between them, so it still matches the music...)
- Added the Crater guard back
- Changed the silhouettes in the credits to be more prominent Pokemon (Leader and E4 aces, plus some postgame teasers in Omega for the Chief fight, and the legendary wings)
This fixes the issue with Mt Moon Square's NPC text and changes the Battle Tent to a continuous system.
The Battle Tent's new system circumvents the issue with wBTStreakCnt while providing the player with more agency. They'll get constant prize money after each battle and can abandon the challenge at any time. It may feel more grindy but in my opinion works just as well.
I am not sure why the fossils don't show properly at the moment - it isn't related to going past $FF, as the Old Amber shows.
Dome and Wing specifically don't show properly and need fixing down the line.
- Gave nicknames to the Galar Evolution trades, they're a bit different to regional variants n such
- The Throw Rock command now only increases flee chance by 50%. It seems like it may be a little TOO strong though, bit curious.
- Changed a bit of text here and there
- Made CHIKUCHIKU trade accessible, still need MICHELLE
Still need to find out what I want to do with Body Slam, Swords Dance, and Thunder Wave. Slam/SD are on the Sevii Islands, and TWave is on an existing NPC who usually gives Self-Destruct.
Could possibly refactor the item receiving text.
This adds the Mt Moon Square House, faithfully recreated from GSC. I haven't yet sorted out the important details regarding the Crater Guard and such, though.
Making the map involved making a new desk tile and making house tile $36 be considered a counter tile. Hopefully there aren't any adverse consequences but I've never seen anything of that nature.
I noticed there are a ton of Clefairy text bits, so I refactored it to be a single line farcalled from `text_7.asm`. This also involved an interesting thing with the Pokemon Fan Club where the Pikachu fan has a Clefairy, so I fixed that too.
I figured that adding the dance was a little difficult right now, so we have Clefairys walking around instead.
I haven't figured out a good place to add the ladders yet (since there should be two entrances) but we'll figure that out eventually. It's plausible that we just make the Crater the southern warp, but I like how out-of-the-way the current one is.
Oh, and I fixed the Crater warps.
Overall, functional, but not finished.
This adds Victory4 in its original form over Mt. Moon Square's music, which could possibly have the initial jingle removed. I noticed the GSC version was being used, which wasn't ideal.
Mt. Moon Square's map is added, with accessibility where the Crater's originally was (for now). One warp on the south part of the map doesn't go anywhere (actually it's a glitch city). The shop and Clefairy event aren't done yet.
The Mt. Moon Crater Guard has been removed with the pretence of re-adding him on the Square map once it's finished.
I'm trying out having the text in the raw script file without farcalling, which seems to be more optimal than doing it the way the devs originally did it. The Battle Tent does this too.
So it turns out that the code used in Factory Adventure *or* the TPP Anniversary Repository, by all accounts, should not actually work. Like, no, really, it ends up loading 0xFF as code, thus why it would always rst38. It just...doesn't...do anything. My friend Enigami, who figured out the issue, described the function as being "half-finished".
We came up with a solution that results in less functionality - now it needs a free box - but it results in less load times, so maybe it's just better this way. I doubt many people will catch that many Pokemon unless they were shooting for a living dex, which is unfeasible in its current state anyway.
I considered putting Bottle Caps in here, but it felt like making the game too grindy, so I changed it to just be in the Battle Tent shop with a very high price.
This now, technically, works.
However, the Battle Tent was seemingly made with the assumption trainers are Pokemon, which our hack has moved from. I've made it so it can load it as a trainer battle properly, but you will deathwarp. I need to implement a scripted loss system.
This is...most of the stuff necessary for the Battle Tent to work. I've faithfully restored most things so far, including doing a few grammar tweaks.
Main issue is that we get a really strange softlock when the Pokemon selection menu comes up. Not sure why, but point is, it can't progress to the next bit for debugging like this. Committing now to ask for assistance.
- Made Gym Leader levels more consistent
- Updated sprites, including a complete redo of Espeon's (based off the Gold sprite)
- Fixed an issue where Blue would have an incorrect team
- Changed Celadon Gym trainer text to accomodate for being a girl
This commit adds NPCs and signs to Citrine, doing some significant worldbuilding in the process. I considered adding an event where Oak greets you like how the Magma/Aqua Admins do on the ORAS Battle Resort, but it seemed a little too on-the-nose, y'know?
There was an issue where you wouldn't be walked out of doors automatically, which was quite immersion-breaking. That was because the door tile IDs weren't defined - this is fixed too.
Some map elements have been altered to facilitate the new changes, and obviously, some map sprite slots have been filled.
Importing and changing the Battle Tent is most likely my next task.
There are ways this can be improved (SFX, menu message, insta-recalc stats), but this finishes the Hyper Training functionality.
Talk to James, give him a Bottle Cap, he boosts your DVs to max, and then he deducts a Bottle Cap.
Notable that vanilla vitamins don't recalc stats immediately as well, so maybe the recalc bit isn't necessary.
Currently, he doesn't deduct a Bottle Cap and he only fills out Attack and Defence. DVs are stored as a 16-bit address, so I need to find a way to make `a` work with it...
This update does a good few things. Giovanni now uses his unused encounter theme in all pre-fights, which is followed by the regular evil trainer theme when you're about to fight him. This feels very correct. His team has also been minorly altered.
I backported LGPE's pre-fight monologue for Giovanni in Rocket Hideout B4F. Adapted for RB's story, of course, no Cubones here. The original text is very awkward and abrupt, and it also makes the encounter theme feel much more effective in delivery. I think a lot of people can appreciate this.
I also backported Jessie and James for Rocket Hideout B4F while I was at it. I had to change their event script quite a bit for it to fit, and their walking seems...awkward. Regardless, it's functional. The rest will be done with time.
To make future dev door testing easier, I'm keeping all warps I've previously used in comments.
This fixes the rival team selection issue and changes the wild data of Route 25.
The rival pulls data using hex and I put in dec like an idiot. Also, fixed the ordering.
Paras and Skimper make little sense on Route 25 and felt honestly quite immersion-breaking. Paras is a cave mushroom crab thing, it wouldn't be seen on a seaside route like Route 25. Skimper just didn't feel right on a similar basis - just...why would it be there? It's a newt, right? Instead, I added Venonat, a Pokemon seen in Yellow, which needs to be here to benefit from the learnset tweaks that we backported.
With the way KEP is shaping up, the Rocket Hideout can easily stay with little issue. I don't expect it to be a problem at all. Therefore, in the interest of keeping Lavender Tower's progression the same, it's being restored. I do expect some Lavender Tower floors to be nommed, though.
I expect Silph to also be salvageable but I also really hate Silph.
Oh, also, the Game Corner guard has been buffed. He sucks. They call that a guard??