Regex objects aren't cheap, and the RegexCache has DefaultMaxCacheSize = 15.
We're checking 4,000 regexes for each unique string, so just keep the created regexes around instead of cycling new through the cache.
+4MB passive consumption, but each IsFiltered call no longer generates >4MB of discarded objects.
My unit tests run >25% faster now... nice?!
hovering would grab ILocation, which didn't use the flexible met location fetch.
Just repoint stuff and have it as a virtual call, since most of these are fixed values, there's no point increasing the size of the classes besides those for gen4.
Add dragonite to the uncapturable list, removes catchrate comparison for dragonite since it's filtered out.
Skip some linq by doing the loop directly in the method. Replace local methods with captured variables with direct if-returns.
Looks like Mr. Rime case wasn't being handled, so I rewrote it. Better performance, less complexity. No need to double-reference the moves.
Cache a single Valid evolution result; every parse can reuse that object.
More in line with modernizing the codebase with latest c# syntax
improve web-qr decode speed slightly (no linq skiptake)
get money/coin mask without a temporary string (lol performance)
The EncDB doesn't specify form; the encounter methods verify Form.
This is actually a fix; pkm that can change forms aren't really encounter trades, but we shouldn't be strict matching here.
Rotom Bike water upgrade isn't available until you have sufficient progress, so you can't get these dens with the lowest rank.
Co-Authored-By: Lusamine <30205550+Lusamine@users.noreply.github.com>
Nice bug ya got there, gamefreak.
Coulda cleared the AffixedRibbon value instead of copying it on Shedinja creation, and it would have made this unnecessary.
Please ditch the Affixed Ribbon gimmick for future games, thanks!
Distribution raid encounters from before each of the DLC patches can only be captured in existing Wild Area locations.
Store the BCAT index in the encounter details and use it to compare when the BCAT was available.