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.
By layering the prototype tiles without backgrounds over existing tiles, you can make them blend in more effectively. This makes the new post-game island much more seamless.
- 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.
- In the event of a 1/256 miss, the game will now state the Pokemon evaded the attack to signify its occurrence. This is part of an effort to make misses, overall, more transparent.
- Battle Debug now loads some items to assist with testing.
- Misleading Guard Spec message in Celadon has been changed to refer to X Special, which it was actually describing.
- Removed "it can spook the target sometimes" text when getting the TM for Rock Slide, because it's a LIE
- 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.
Imported from Shin Pokered. Required a little bit of refactoring but all in all very straightforward. I changed the WRAM associations to be easier for me to work with should I ever need to.
I am not a 100% fan of the way this works - requiring hold inputs - but I am also not sure how to make it just be something you can easily input...
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.
In RBY, there are extremely minor situations where zero damage can be dealt. These usually involve quad resists and profound level differences.
To quote the disassembly:
; this only occurs if a move that would do 2 or 3 damage is 0.25x effective against the target
However, Psywave is also capable of this.
Thus, a new case has been added for when this occurs, which is triggered through a new WRAM entry. Easiest way to do it without having to restructure how misses are handled.
This is overall minor, but it'll probably make at least one person laugh, and that's all I need.
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.