I recently learned about targetting multiple frameworks in .Net Standard libraries. The main benefit here si taht PKHeX.WinForms and PKHeX.Tests no longer need to carry around the .Net Core DLLs. While it's now an option, I encourage PKHeX.Core to avoid framework-specific compiler directives.
passing an object with a type from another assembly will have
obj.GetType() return a System.RuntimeType, which is absolutely not what
we want.
supply the pkm derived GetType
why is this so wonky
Closes#1266
multilang support now possible, other language translation files added
from existing form translation file
feel free to submit a pull request to change anything for your native
language :)
Closes#1250
not gonna add the alt sprites/names for pk3's
convert non-egg check to ienumerable iteration too
eventually ribbons will have a separate txt file
(PropertyName\tDisplayName), which will be used for both Legality and
Ribbon Editor.
#1250
english ribbon strings mappings weren't added for the new gen7 ribbons
should probably separate out ribbon internal <-> ribbon display names
for use with legality checking
#1250
Properly check for actual held item
move unhittable check (verifyMisc isnt called when parsing pk1/pk2;
verifyMiscG1 is)
add egg PP check, add common method to be shared between gen1 checks and
GBA+
#1257
Similar to how anything higher than 255 is dropped to 100, setting level
to 0 will overwrite it to 1. Current level is just a derived property
from EXP, so it's just a display property in the editor.
Toggling IsEgg for gen4 won't flag as nicknamed.
#1257
Returned messages are slightly misleading since missing/invalid are
mixed together with the static method.
#1250
~322 lines to check ribbons, on top of the interface abstraction... so
much required... kinda understandable as there's over 100 ribbons to
check.
I also added comments where appropriate, because it took far too long to understand what was going on when reviewing the commit that fixed the original bug.
remove legality check's use of reflection which checked individual
properties; add interfaces to interact with the ribbons of each PKM
type. With this, every ribbon attribute is accessible via its
corresponding interface (cast)
will have to add checks for individual interfaces as per #1250
I didn't feel like adding much documentation, is pretty straightforward.
Cast a pkm object to the desired ribbon set; if not null, can access
ribbons regardless of pkm format.
Rewrote showdown set exporting to be much clearer, added auto-fixing of
relearn moves when importing showdown set (applies suggested relearn
moves)
Simplified main form loading routine (from ~160 to ~25 by extracting
methods)
Closes#1236
pk4/bk4 only, obviously
side note, using static events is no-no, designer auto-removed them.
just manually reapply (as well to others that used it)