fix roamer3 not setting IVs
fix usum z items rightmost pixel getting chopped off
use Gen* instead of GenNumber for specific cases (faster)
add WasGiftEgg location case for Gen7
remove some unnecessary array allocations
one large list at static.rodata:005E6860, formatted to look like AO
table with deletions & insertions at the bottom.
bitflags are used in one large set (not 4 chunks of 4 like prior).
haunter caught at level 20, transferred at 24, leveled once as gengar
did not allow gengar in the chain as it is assumed (incorrectly) that
gengar is evolved after transfer.
determine if the lower levels of the next step's evolution rung are
valid, using the same logic as pikachu case but to handle the other side
Closes#1564
(should probably refactor the encounter chain generator to use the base
encounter data if known, but oh well works fine and isn't a cpu hog)
more usum prep
don't allocate empty array on every savefile creation (use linq All
comparison)
add percent seen/caught savefile properties for data analysis purposes
fetch is exclusively done with version already known; there are cases
where version can change for eggs so it's safer this way.
version change reference (gen6+):
212a489335
a level 15/16 magmar has leer/smog twice in its learnset (at level 1 and
at actual levels); returning just the 4 previous learned moves at level
15/16 yields duplicates for Smog. [Smog, Leer, Fire Punch, Smog | Leer,
Ember]. By ignoring moves already added, the true movepool is acquired
also fix TradebackType getting overwritten at the end of the method (in
case of nontradeback like korean/egg)
Restriction happens because Korean can not trade with non-Korean GB era games
- There is no Korean release for gen 1 pokemon, included VC
- With no gen1 pokemon means any Korean gen2 is Gen2_NotTradeback, that means no gen1 origin nor moves are Legal
- Crystal was never released in Korean
- Pokemon Stadium 2 was never released in Korean, that means no move reminder for gen 2 korean pokemon
- Generation 4 can not trade between Korean and not Korean games, but Korean games can use the palpark with any language
Chinese language restrictions
There is no Chinese release for gen 1 and 2 pokemon games, VC Chinese games are in Japanese
* allow gen2 to have evolutions on gen1 when transferred to gen7
(Core.cs)
* handle korean strings on transfer slightly better (pk2.cs)
* auto-set johto location when changing game ID
* auto-detect VC saves (all have extensions with .dat)
Closes#1478 , thanks @NinFanBoyFTW !
Checks for max language ID on transferred pkm (gen5 pkm on gen7 can't
have CHS/CHT etc)
handles edge case for JPN B/W ingame trades
update pk5->pk6 transfer logic to bump langID 0 to 1.
Thanks HaxAras & Britty for providing samples!
WordFilter checking is enabled by default, and is absolutely slow (regex
checking 3,800 patterns for 3 different strings). Utilize a dictionary
to store previously computed values. Seems to alleviate the massive
slow-down.
Closes#1442
Copied binaries from sm, references set up for saving time later
I assume not much will change in terms of structures, so it should just
be a file replacement & filling in static encounter table => 'working'
legality checks
Allows evolution met level check to be skipped
Adds minimum level constraint for evolution chain generating
Closes#1430
also adds deferral to the gen3 encounter generator as encounterstatic
gifts can collide with wild encounters when transferred
personalinfo setup wasn't populating info for form indexes
remove erroneous pid-type mismatch message on gen3/4 non-matching if
there are no deferred encounters
Noticed the egg moves were concatted between games; can only have egg
moves from the origin game
Same for levelup moves in the relearn list; example being Plusle with
Charm (was added to egg moves / learnset in OR/AS for parity with minun
this is such a remote edge case, but may pop up in usum for a different
species ( ͡° ͜ʖ ͡°)
Add some documentation for the high-level encounter finding
Fix encounterstatics not being filtered for the associated game version
(closes#1372)
was a side effect of refactoring this week
Shaymin case reported, deoxys defense at level 100 with zap cannon was
not recognized as legal.
Closes#1355 via provided fix
Closes#1367, did not address Deoxys case
shifts encounter data from Legal's split tables to individual files for
easier maintenance and initialization. Legal Core's init is so much
simpler now.
fix resource name typo