Switch EncounterGeneric to IEncounterable. A way to tie together all
encounters.
Added a few setters for mystery gifts if the code is ever reused in
other projects for that purpose.
No functional change.
Existing code supported 3-x, wasn't updated for gen1/2.
Allows gens1/2 to override to their own gen format filter, and allows
gen7 to allow finding of pk1 files (not yet converted).
Noticed the backup would overwrite an existing backup; thus we only back
up if the target file exists AND the backup doesn't already exist.
Move fossils check to static encounter
apply small amount of inheritance to all encounter types (including
mystery gifts)
get actual evolution chain to ignore pre-evolution movepools (example
Surf Pikachu event gift cannot devolve to Pichu to get Nasty Plot). #694
A little bit of logic has been moved around, but my 5k pkmdb had no
change in legal/illegal counts. Hopefully no false positives from this
change 👍
with the addition of forme checking, these 'can switch forme' cosplay
pikachu are currently not recognized. just add a skip toggle instead of
duplicating the encounters (variant location and formes)
duosion and luxio weren't devolved to their base species
add budew and azurill too.
reorganize table so that species are listed in their 'modified' groups
(base, base/baby, -1, -2)
* HA Legality Check for Gen 7 Island Scan Pokemon
Sun/Moon Island Scan Pokemon cannot have Hidden Abilities.
* Disable unused controls in Memories for Gen 7
AFAIK those aren't used for Gen 7.
Trainer Editor now only writes back coordinates if they were changed by
the user.
DP coordinate offsets for overworld data fixed.
PokeSAV didn't have Platinum overworld offsets programmed, so I had to
figure those out myself.
Extending 8b274ddbc3
Changes and their reasoning:
- Used a concurrent bag inside Parallel.ForEach to avoid the overhead of lock.
- Removed `RawDB.Where(pk => pk != null)` because the Parallel.ForEach lambda handles this check
- Because LINQ extension methods' execution is deferred, it's best to wait to create a list until it's needed, so the extension methods were changed together without creating intermediate lists.