PKHeX/Tests/PKHeX.Core.Tests/Legality/Legal/General
Kurt 0626b0c29b
Add Breeding move ordering logic, and use in legality analysis (#3183)
* Initial bred moveset validation logic

Unpeel the inheritance via recursion and permitted moves

* Volt tackle considerations

* Optimize out empty slot skips

* Add tests, fix off-by-one's

* Require all base moves if empty slot in moveset

* Add test to prove failure per Anubis' provided test

* Tweak enum labels for easier debugging

When two enums share the same underlying value, the ToString/name of the value may be either of the two (or the last defined one, in my debugging). Just give it a separate magic value.

* Fix recursion oopsie

Also check for scenario where no-base-moves but not enough moves to push base moves out

* Add Crystal tutor checks

* Add specialized gen2 verification method

Game loops through father's moves and pushes in one iteration, rather than checking by type.

* Add another case with returning base move

* Add push-out requirement for re-added base moves

* Minor tweaks

Condense tests, fix another off-by-one noticed when creating tests

* Disallow inherited parent levelup moves

Disallow volt tackle on Gen2/R/S

* Split MoveBreed into generation specific classes

Gen2 behaves slightly different from Gen3/4, which behaves slightly different from Gen5... and Gen6 behaves differently too.

Add some xmldoc as the api is starting to solidify

* Add method overload that returns the parse

Verify that the parse order is as expected

* Add reordering suggestion logic

Try sorting first, then go nuclear with rebuilding.

* Return base moves if complete fail

* Set base moves when generating eggs, only.

* Use breed logic to check for egg ordering legality

Don't bother helping for split-breed species
2021-04-04 18:30:01 -07:00
..
Ribbons Check Winning/Victory ribbons for gen3 origin based on encounter 2020-09-18 16:23:17 -07:00
004 - CHARMANDER - D5EF.pk1 Port tests to .Net Core (#2156) 2018-11-06 15:25:35 -08:00
124 - ZYNX - 70DF498A2E1D.pk3 Port tests to .Net Core (#2156) 2018-11-06 15:25:35 -08:00
172 - Egg - 7D3CF55CFC10.pk4 Port tests to .Net Core (#2156) 2018-11-06 15:25:35 -08:00
183 - 알 - AA4E3344817C.pk5 Port tests to .Net Core (#2156) 2018-11-06 15:25:35 -08:00
235 - 알 - 10DB.pk2 Port tests to .Net Core (#2156) 2018-11-06 15:25:35 -08:00
236 - Oeuf - 5E05C020CB44.pk4 Update test case for g4 fr egg name 2020-08-26 13:36:13 -07:00
236 - 알 - F55CC3F29788.pk5 Port tests to .Net Core (#2156) 2018-11-06 15:25:35 -08:00
292 - SHEDINJA - 4889A0E852EE.pk3 Port tests to .Net Core (#2156) 2018-11-06 15:25:35 -08:00
300 - Egg - 0673311A3560.pk5 Port tests to .Net Core (#2156) 2018-11-06 15:25:35 -08:00
300 - Uovo - 0C910B68370A.pk4 Port tests to .Net Core (#2156) 2018-11-06 15:25:35 -08:00
343 - 알 - 5871F88A9BCE.pk5 Add Breeding move ordering logic, and use in legality analysis (#3183) 2021-04-04 18:30:01 -07:00
479 - Ei - B7178C463B60.pk4 Port tests to .Net Core (#2156) 2018-11-06 15:25:35 -08:00
479 ★ - 알 - BE0D0000000A.pk5 Port tests to .Net Core (#2156) 2018-11-06 15:25:35 -08:00
610 - キバゴ - 6F91B110EED1.pk5 Port tests to .Net Core (#2156) 2018-11-06 15:25:35 -08:00
645-01 - Landorus - 57BA472C4EB8.pk6 Port tests to .Net Core (#2156) 2018-11-06 15:25:35 -08:00