Kurt
e8d5252b8c
Reject moves introduced by gsc in pk1/vc1 cases
...
Closes #2005
(no tutor moves are new moves, just beam moves)
2018-06-14 18:52:43 -07:00
Kurt
f54f90bd4b
Add egg Rotom/Furfrou form check
...
Closes #2002
Thanks @iiippppk !
2018-06-13 22:10:01 -07:00
Kurt
5579c4c80d
Tidy up MoveLevelUp
...
use the Learn objects from prior commits for adding a range of moves
2018-06-13 22:03:58 -07:00
Kurt
39daa6c65d
Split GetIsLevelUp to individual versions
...
static the GameVersion reference as we're excessively using it in the
switch cases, for clearer reading
2018-06-12 22:15:06 -07:00
Kurt
b9652a835d
Weaken gen2 egg species checks for pre-evos in gen1
...
VC can inhabit both gens
Add Tradeback setting setter for legality tests
Add GBCartEra setting setter for legality tests
Thanks @iiippppk !
2018-06-12 18:46:31 -07:00
Kurt
64a64b8ce1
Add special handling for gen1 encounter move fetch
...
Begin splitting of GetMovesLevelUp per-gen into per-version
2018-06-12 18:35:56 -07:00
Kurt
c3314f1b8e
Remove Mirage Island met location from valid gen3
...
Although Pokémon Ruby, Sapphire, and Emerald include a location pointer
for "Mirage Island", any Wynaut caught here will simply display "Met on
Route 130" in their summary. This is because the player is technically
still on Route 130's map.
Can't get anything with that location ID as an egg or as wild
2018-06-12 16:41:44 -07:00
Kurt
5ad8a4e5a4
Return version-sensitive moves for nonspecial fetch
...
Closes #1998 , GetValidMoves returns moves without sensitivity for
current version for pre gen6 moves... can resolve that later.
2018-06-11 20:23:28 -07:00
Kurt
32a83c16f1
Add egg relearn/move sequence match check
...
#1994
2018-06-11 08:13:50 -07:00
Kurt
e5a2e12fa5
Check held items for pk2 eggs
...
Closes #1993
Thanks @iiippppk !
2018-06-11 08:05:15 -07:00
Kurt
242fc295b4
Handle smeargle egg case
...
#1993
Just use precomputed array since it can only know sketch
2018-06-11 08:03:10 -07:00
Kurt
9faba26e90
Add egg base move branch
...
Closes #1991
Thanks @iiippppk !
Improve pk2 version detect to better provide gs vs c egg base moves
2018-06-11 07:23:48 -07:00
Kurt
ca9f21fa49
Fix base move count vs inherit check
...
Closes #1990
Thanks @iiippppk !
2018-06-10 20:26:59 -07:00
Kurt
c9d0811281
Handle evolutions-in-eggs case for past gen (2/3)
...
Closes #1989
Thanks @iiippppk !
(eggs don't always come at level 1, past gen has level 5)
2018-06-10 19:38:06 -07:00
Kurt
c9181963f2
handle pichu array->interface when adding egg list
...
egg fetch returns array, need to add to the collection
force everything as readonly to prevent adds outside of the constructor
Closes #1988
Thanks @iiippppk !
2018-06-10 19:07:55 -07:00
Kurt
e105f2b589
Refactoring
...
fix b2w2 egg base levelup reference (not bw, b2w2!), doesn't really
matter much except for better indication (possibly?)
remove some unnecessary linq ToArray() calls
continue relocating code out of Core
2018-06-10 17:55:03 -07:00
Kurt
d94fc65367
Refactoring
...
continued reduction in Core size, simplify/clean up usages
2018-06-10 14:45:25 -07:00
Kurt
3f1195a2d4
Refactoring
...
Remove duplication of levelup fetch
relocate some stuff to a more appropriate area
2018-06-10 10:44:05 -07:00
Kurt
3b84f33776
Misc changes
...
Revert linq chain
Closes #1987
change encountermatch comparison (never null), add comparison for vc
output
remove unused strings (will get removed from translation files in later
update)
2018-06-10 00:26:33 -07:00
Kurt
021ac7c54f
Refactoring
...
where!contains -> except
relocate special tutor
2018-06-09 16:04:06 -07:00
Kurt
79f0b3665f
Differentiate C/XD cologne IDs
...
https://projectpokemon.org/home/forums/topic/45685-pokémon-xd-and-scent-bag/
Thanks Asia81!
2018-06-09 12:44:30 -07:00
Kurt
f351e9550f
Add contest stat check for VC
...
https://projectpokemon.org/home/forums/topic/45681-virtual-console-pkm-with-beauty-stats-marked-as-legal/
Thanks yologgebolo!
2018-06-09 08:39:16 -07:00
Kurt
ee3fda46f2
fix method name typo
2018-06-09 08:04:40 -07:00
Kurt
3239305ce5
Refactoring
...
GetMoves logic can now be expressed concisely with the prior refactoring
2018-06-08 20:37:35 -07:00
Kurt
a494a6b37a
Don't generate move check order for an invalid ver
2018-06-08 20:36:52 -07:00
Kurt
9b43677bb9
Refactoring
...
pull out some move data fetching to separate class
add methods to quickly fetch if the move is learnable via that method
eventual plan is this:
replace
'fetch all possible moves then look within' move validation
with:
'peek if learnable, and get info how' move validation
advantages:
- returns game the move was learned in and the level (if appropriate)
- infinitely less object creation (garbage collection)
- only looks for a given move, doesn't have to fetch everything before
checking
- faster than full fetch, can be made even faster by optimizing lookups.
subject to change :)
2018-06-08 20:10:41 -07:00
Kurt
b1cd68e3f3
Convert GetLevelLearnMove to use lazy dictionary
...
faster move lookup
2018-06-07 19:05:28 -07:00
Kurt
1202474cd5
Defer & flag VC korean unobtainable encounters
...
Closes #1985
2018-06-06 21:49:30 -07:00
Kurt
dcdeb361f0
Handle meowstic formes
...
Closes #1984
2018-06-06 16:22:14 -07:00
Kurt
e52ae06721
Add version check
...
16 bits for version flags, should be more than enough.
should probably rework it from a packed ushort to a class...
2018-06-05 22:20:30 -07:00
Kurt
323db29374
Handle volt tackle special egg move
...
edge case turns the [] into an ienumerable, better than calling another
to-list.
2018-06-05 21:38:38 -07:00
Kurt
450d40535d
Relocate hypertraining properties to interface
...
lessen temp array creation, speed++
2018-06-05 21:31:42 -07:00
Kurt
75ff28925c
Dummy out pokespot validation
...
needs more research, nobody cares, just mark as todo and anyone can dig
deeper at any time in the future
Closes #1359
2018-06-05 19:08:31 -07:00
Kurt
e7fc30ac7a
Add mysterygift region/language restriction code
...
Closes #1317
Needs the events crew to produce serialized binaries with hash-flag data
for each generation before proceeding any further. I'm not really
interested in doing all the work for events since it doesn't impact
battle legality.
2018-06-05 18:27:08 -07:00
Kurt
ae3b6a7fa1
Simplify IContestStats usage
...
remove new[] creating for checking if any contest stats exist
(HasContestStats)
2018-06-02 21:19:03 -07:00
Kurt
ab393e1f99
Rework set PID-ability checks
...
Closes #1979 , adds test cases.
2018-06-02 13:22:52 -07:00
Kurt
15b5de11c0
Handle hatched wc3 metlevel oddballs
...
Closes #1978
Met Level at 5, when hatched ingame is reset to 0.
2018-06-02 07:50:48 -07:00
Kurt
f237476ccc
Add nickname reset modify
...
nickname reset clears except for encountertrades (some have fixed
nicknames).
remove untraded check for HT memory verification, has to be traded if it
has a HT memory.
2018-05-31 19:49:47 -07:00
Kurt
e82dcdb124
update memory captured check
...
gen5 landorus witnessing another species should use gen6
https://projectpokemon.org/home/forums/topic/45424-landorus-memory-flagged-as-illegal/
2018-05-30 21:50:11 -07:00
Kurt
4b8cb9b8fb
Add entree forest editor & randomizer
...
ezpz
(clear trailing spaces from entree forest comments)
2018-05-28 08:26:52 -07:00
Kurt
2061f23e26
Misc simplifications
...
fixes suggestion requests for invalid gameversion pkms
2018-05-27 17:57:45 -07:00
Kurt
c31ab63a1a
Initialize mgdb for tests that need it initialized
...
don't initialize multiple times
2018-05-27 15:57:28 -07:00
Kurt
a57cdb5f48
Update fateful handling
...
#1970
add files as test cases
2018-05-27 14:38:03 -07:00
Kurt
4c1e014a53
Fix mgdb viewing cxd gifts
...
Closes #1972
2018-05-27 14:16:56 -07:00
Kurt
ae27c10dc2
Misc cxd fixes
...
#1970
2018-05-27 12:18:27 -07:00
Kurt
6a3b422a14
Fix xd fateful gift pkm
...
stored as wc3's, make "Version" from IVersion rather than int so that
"WasXD" recognizes it.
Update handling for fateful encounter trade-away cases.
#1970
2018-05-27 10:11:01 -07:00
Kurt
ec2816379e
Restore unk mystery gift message
...
no match & fateful -> 'hey maybe pkhex doesn't know about this one yet'
2018-05-27 07:01:46 -07:00
Kurt
98895bd365
Ignore fateful as xk3 if not a shadow
...
Duking etc trades
Closes #1970
2018-05-27 07:00:07 -07:00
Kurt
f7a61cf72c
Flag version exclusive trades with incorrect ver
...
Closes #1969
2018-05-27 06:59:27 -07:00
Kurt
e6765d3691
Flag langid=0 when appropriate
...
only jpn bw ingame trades can lack a languageID.
skip language checks for pk1/pk2 as they have no language stored.
2018-05-26 14:40:02 -07:00