- 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.
I did these a few days ago and forgot to push the commit lol
- Gives the Game Corner and the prize building a new palette
- Makes encounter levels a bit more consistent in the early game, as well as spreading out species a bit more evenly
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.
This fixes a bug where Meltans would invade Trainer Battles under the effects of the Mystery Box.
I also did some minor groundwork where the Candy Jar check is a function. I intend to change it so that catching a Pokemon would incur it too. I ended up with glitches when doing that, though.
The "ball miss" message is now modular, with a new message being spat out when not in the Safari Zone. The message talks about it being "too strong" and "breaking the ball", making it far more intense and matching some early anime scenes.
After going through the 1996 Pokedex again, as well as FireRed's dex entries, I've updated the majority of dex entries to add more information, be more consistent, or just slightly reword them to make them sound better. Some could still probably be reworked, but I'm mostly satisfied with these now.
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.
- Fixed a bug where the Candy Jar would load `wIsInBattle`'s 01, causing it to zero itself out every time.
- Fixed a bug where the Candy Jar would display `wMysteryBoxActive` due to the way `text_bcd` was being used. Replaced with `text_decimal` so it actually displays properly as well. No hex!!
- Added a test function for the evolution in the debug party because that's cool
This does everything except the incrementation.
If you defeat a Meltan, `wCandyJarCount` increments by 1, capping at 40. This is represented in-game as 10, going up to 400, simply by adding a 0 at the end. This, in effect, replicates the Meltan quest from Pokemon Go.
Once 40/400 is reached, the Candy Jar will become an evolution stone, evolving Meltan. Instead of consuming the Jar, the Candies inside are zeroed out.
Currently, the Candy Jar increments, but only once, thus why this is being committed on a separate branch. The bug appears to be at `engine\battle\core.asm`, line 842-861, likely 854-856. It's possible that it could be due to its position in WRAM, or that it's a `db` instead of a `dw`.
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.
Altered all the 'bird dungeons' to be consistent, as well as changing the encounters themselves a bit. Rhydon being in the volcano is a reference to Blaine's in the anime.
- Changes Bill's Garden to be a more fitting Overworld-tileset map
- Gives Cinnabar Volcano a unique palette, being a slightly less-bright version of the RedMon palette
- A few small changes/improvements to the Rival teams
- Reduced wild encounter levels in Silph Gauntlet a little
- Adds a 100% chance for a Magmar encounter when fishing in the Cinnabar Volcano lava
- Hides more 'secret' areas off the Pokedex area listing, namely Mt. Moon Crater and Faraway Island
- Improves Jabetta's sprite a little
- 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.
Gives the original Eeveelutions their Yellow learnsets (albeit fixing the Haze/Mist glitch that Vaporeon has) to accommodate Eevee being a starter. Also gave Purakkusu and Umbreon some of the moves we added last because I forgot lol
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.
This modifies the credits to have a KEP staff version. It's a little awkward aesthetically! But this should be used and expanded on in the future - people don't read readmes, so the people who've helped should be credited.
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.