Kurt
5fe9226c62
Ignore fixed language trades for gen4 korean check
...
Closes #2103
Thanks @Narithegreat !
2018-08-22 22:36:56 -07:00
Kurt
7ccaf8783b
Unban bred HA sableye
...
yeah totally genderless
https://projectpokemon.org/home/forums/topic/47101-gen-v-hidden-ability-sableye/
2018-08-20 20:08:42 -07:00
Kurt
d7f39ea343
Extract pkm searching to separate classes
...
search logic can now be reused by core projects
adds option to provide extra filters run at the end (prior to clone
check)
2018-08-16 20:06:40 -07:00
Kurt
eec14645ef
Lessen string length severity on egg encounters
...
Hatched eggs can have mismatched languages<->OT/Nick restrictions
2018-08-15 15:26:42 -07:00
Kurt
5514530dfb
update OT name edge case
...
traded ENG->KOR egg was getting flagged
#2094
2018-08-15 15:19:54 -07:00
Kurt
b6de41bfa7
Add OT name max length checks
...
Closes #2094
2018-08-15 14:58:55 -07:00
Kurt
bc262a7cdf
Remove Plasma Fists from unsketchable
...
Closes #2095
split out unsketchable moves (struggle/chatter) to separate array
remove trailing spaces (auto fixed by my visual studio plugin), add
space before comment //
2018-08-15 14:52:25 -07:00
Kurt
57c6de2825
Add nickname length check for gen>2
...
Closes #2091
2018-08-14 20:13:15 -07:00
Kurt
6edc828cc3
misc style updates
2018-08-12 19:27:11 -07:00
Kurt
6b62dd29ee
Update xy fashion edits
...
different for each gender
2018-08-08 21:27:14 -07:00
Kurt
7403c0f91a
Add more pokewalker moves
...
igglybuff wish, happiny heal bell, and the elemental punches to round
things out even though they can be tutored
https://projectpokemon.org/home/forums/topic/46143-bug-in-last-update/?do=findComment&comment=234991
2018-08-08 17:35:06 -07:00
Kurt
279c9d4665
Fix tradeback detect for gen2->1->2 evolve case
...
https://projectpokemon.org/home/forums/topic/46909-certain-gen-i-moves-are-showing-invalid/
Thanks Raptor385!
2018-08-04 13:36:05 -07:00
Kurt
53857df647
Copy addmoves special case to individual fetch
...
see prior commits
2018-08-04 10:05:47 -07:00
Kurt
0f63b0a0ee
Allow bw movepool except for kyurem
...
workaround provided for kyurem movepool (which is same bw-b2w2) but the
AddMoves logic with form != 0 points to the form == 0 data
Closes #2085
2018-08-03 07:46:53 -07:00
Kurt
30a614484e
Update STADIUM ot checks again
...
jp: 1999 if stadium1, 2000 if stadium2
en: 2000
jp: always same OT
en: lowercase if stadium2, uppercase if stadium1
https://projectpokemon.org/home/forums/topic/46893-pkhex-bug-stadium-ot-issue/
2018-08-03 07:38:29 -07:00
Kurt
1486b7f14a
Misc style & minor tweaks
...
Remove move combobox flicker hack (no longer necessary)
Add more Array.Empty usages
cache mysterygift sizes
seal some classes
no functionality changes
2018-08-02 20:11:42 -07:00
Kurt
19a897923d
Reference original encounter for sensitive checks
...
https://projectpokemon.org/home/forums/topic/46143-bug-in-last-update/?do=findComment&comment=234360
thanks paf!
2018-08-01 20:39:20 -07:00
Kurt
f4bfdb8311
Remove unnecessary empty array allocations
...
yay net 4.6
read more: http://justinvp.com/2015/07/20/array-empty/
2018-08-01 18:30:51 -07:00
Kurt
007ec93d85
Update trade nick check for non-nicknamed
...
Closes #2084
2018-07-31 17:27:28 -07:00
Kurt
cfa3479a4b
Add egg experience check
...
Closes #2083
2018-07-28 18:09:29 -07:00
Kurt
c46924d220
Use wcxfull version/language restriction data
...
some cards may permit being recieved on incorrect games
some wcxfulls permit games they shouldn't (tapu koko flags permit USUM
but games released after the distribution window)
lots of wcx lacking restrictions completely
tested flagging USUM rockruff & zeraora
might be worth discarding MysteryGiftVerifier and instead just using
unused fields for prior formats to supply the data.
2018-07-27 22:26:27 -07:00
Kurt
3d0a2946eb
Allow only one movepool for BW-B2W2 source
...
they're both the same, but bw's pool does not have b2w2 formes
Closes #2078
2018-07-26 21:51:11 -07:00
Kurt
c8563a3737
Respacening
...
Style guidelines, handle a bunch of files
no functional change
2018-07-26 19:34:27 -07:00
Kurt
75801e22e0
Update egg location -> encounter generating checks
...
WasEgg only checks for EncounterEgg valid locations; check for any value
instead.
2018-07-26 14:55:49 -07:00
Kurt
711157f3ea
Refactoring
...
Extract trainer pkm origin check to interface extension
2018-07-25 20:40:57 -07:00
Kurt
f0fc4b0693
remove alias'd properties
2018-07-25 19:43:02 -07:00
Kurt
f0090669bb
Update catch rate related logic
...
#2071
2018-07-24 19:33:42 -07:00
Kurt
3c4ba0d52b
Misc cleanup
2018-07-22 17:26:19 -07:00
Kurt
b97e967304
Misc cleanup
2018-07-22 17:14:22 -07:00
Kurt
c9408e6af4
Misc clean
2018-07-22 12:00:03 -07:00
Kurt
abe6ef1be3
Move ribbon verifiers to appropriate folder
...
no functional change
2018-07-22 11:50:11 -07:00
Kurt
4b0a2d90b9
Add xmldoc
2018-07-20 20:22:46 -07:00
Kurt
c9abeda508
Update stadium check again
...
#2065
2018-07-20 05:57:57 -07:00
Kurt
1ff8ebf777
Misc overload add/use
...
Some values are already computed; pass them in to overloads for quicker
execution
2018-07-19 19:38:44 -07:00
Kurt
614d2629ce
Remove unnecessary ref passing
...
object is already passed byref, don't need to repoint the reference
2018-07-19 18:09:37 -07:00
Kurt
9a91619580
Update vc1 invalid transfer pruning
...
Closes #2065 Thanks @WEERSOQUEER !
Single evo species weren't getting flagged in the evolution verification
as they early returned (species matched), just move the sanity check
before that
2018-07-19 16:42:45 -07:00
Kurt
69e7d49d03
Simplify Stadium OT Check
...
TID is always 2000 : #2065
2018-07-19 15:54:34 -07:00
Kurt
ff4ca47ebe
Remove GBEncounterData boxing
...
Interfaces implement enough detail, so can simplify
extract local methods (likely will be inlined)
less obj allocations = faster!
2018-07-18 16:37:21 -07:00
Kurt
1c75093e27
Specify altform for ranch shellos
...
1 not 0
https://projectpokemon.org/home/files/file/336-shellos/?do=findComment&comment=1290&tab=comments
2018-07-18 07:15:46 -07:00
Kurt
a100488142
add gen12 generator kadabra catch rate case
...
https://projectpokemon.org/home/forums/topic/46259-yellow-kadabra/
Thanks Cloud AC !
update misc verifier for catchrate to better indicate for
any->nontradeback scenarios
2018-07-17 16:54:23 -07:00
Kurt
fe7fea877b
Replace boolean OrderBy with DeferBy
...
orderby consumes the entire input enumerable in 'sorting' the list;
since we don't care about the order besides a yes/no, just manage the
yield order ourselves.
don't bother using this method more than the spot it's in; was a fun
exercise but other spots are set up for easier debugging
(overall flow is where->deferby->yield), could make things easier to
read but meh
2018-07-17 16:28:42 -07:00
Kurt
e4aa16f396
Fill out gen5 hidden ability banlist
...
now flags gen5 contrary serperior ;)
2018-07-16 21:53:46 -07:00
Kurt
bdb5aaee36
Ignore mismatch if explicitly permitted by prior check
...
Closes #2062
2018-07-16 16:12:19 -07:00
Kurt
7ec1cab9a7
Update gen1/2 trade generator to emit gen1 if match
...
Closes #2060
2018-07-16 15:22:40 -07:00
Kurt
0f17445ef4
Update gen3 event pidiv method check for eggs
...
closes #2057
Thanks @kamronbatman !
(nothing currently implemented uses BACD_U_S)
2018-07-14 20:19:13 -07:00
Kurt
625a77589b
Extract geolocation logic to interface
...
mixins would be nice but I guess extensions cover this
2018-07-14 10:34:34 -07:00
Kurt
83e61923f7
Add bw/2 jellicent deferral case
...
https://projectpokemon.org/home/forums/topic/46143-bug-in-last-update/?tab=comments#comment-233860
Thanks paf!
2018-07-13 13:48:27 -07:00
Kurt
e4e5018aa7
Extract some methods
2018-07-11 19:13:09 -07:00
Kurt
6816c2de43
Update OT affection check for 3-5 memories
...
https://projectpokemon.org/home/forums/topic/46180-oras-transfered-pokemon-invalid-ribbon/
Thanks piplupwater!
(there's no other usages of V129)
2018-07-11 17:43:48 -07:00
Kurt
8a83b9bde8
Update manaphy ability check again
...
57250823a8
covered it for format>=6, in 4/5 the abilitynumber is derived from
PIDAbility
Closes #2052
2018-07-10 21:30:13 -07:00
Kurt
f8c43d4a06
Rework gen1 trade OT handling
...
convert all dictionaries to char-byte instead of string (saves 50KB on
compressed dll, lul)
update OT string comparison for pre/post transfer specimens
Showing "TRAINER" for all languages isn't correct, just show a mapped
character
Closes #2049 , thanks @egzonqj & @WEERSOQUEER !
2018-07-10 16:45:24 -07:00
Kurt
027d898f3d
Update Yancy Curtis trade OT checks
...
Thanks paf!
https://projectpokemon.org/home/forums/topic/46143-bug-in-last-update/
2018-07-10 12:37:40 -07:00
Kurt
c8897161b7
Fix gen6 evo tree resize miss
...
https://projectpokemon.org/home/forums/topic/46144-a-couple-of-new-problems-in-the-pkhex-version/
Thanks CreamatedReptile2018 !
2018-07-09 22:51:01 -07:00
Kurt
93876d98eb
Fix CanInhabitGen1 comparison
...
extracted and forgot to double check the boolean comparison when
inverting the return value
https://projectpokemon.org/home/forums/topic/46148-bug-gen-1-moves-and-legendaries-incorrectly-flagged-in-gen-2-game/
Thanks Raptor385!
2018-07-09 21:59:38 -07:00
Kurt
d45a8afef2
Remove erroneous chain trim logic
...
latter half of the method seems to do everything that is required
Closes #2048
2018-07-09 21:26:45 -07:00
Kurt
9a57469ec3
Update shedinja chain handling
...
Closes #2045
4ac92b9418
had added it; assuming to undo lvl-1 => lvl for gen3/4.
Level Up, Learn Nincada Move, Evolve to Ninjask & spawn Shedinja, then
learn any Ninjask Moves. Gen3 reverses the spawn&learnNinjask steps,
which is handled separately
Thanks @XxPhoenix1996xX !
2018-07-09 20:18:31 -07:00
Kurt
57250823a8
Add ranger manaphy ability check
...
PCD != PGT
Closes #2044
2018-07-09 17:33:31 -07:00
Kurt
6bb076aecf
Fix mysterygift hidden ability comparison
...
Closes #2047
2018-07-09 17:08:26 -07:00
Kurt
d70990f9cc
Fix SOS hidden ability <-> flawless IV count
...
3->2
https://projectpokemon.org/home/forums/topic/46142-two-illegal-pokemon/
2018-07-09 17:02:18 -07:00
Kurt
8b1ec36242
fix volbeat/illumise sport comparison
...
#2047
2018-07-09 06:28:29 -07:00
Kamron Batman
5ecd3b1875
Adds distribution for Negai Boshi Jirachi ( #2043 )
...
* Adds distribution for Negai Boshi Jirachi
* Updates negai boshi to have the proper game origins
2018-07-08 16:21:49 -07:00
Kurt
fe82fe8eab
Show language name instead of index
...
prefer to keep the '0' case as zero
2018-07-06 17:22:56 -07:00
Kurt
397de97f3c
Remove excessive references to Util.Rand32()
...
all usages besides fetching a 32bit random value should use rand.next
remove unnecessary do-while loop for calculating random EVs (always
returns 510 in total)
2018-07-04 11:30:43 -07:00
Kurt
326522c76f
Misc simplifications
...
cache splitbreed species as another class
reduce linq usage in evolution validity check
reuse egg hatch method
2018-07-04 09:15:20 -07:00
Kurt
fdc4dd2811
Fix encounter ability comparison
...
-1 is the 'no fixed ability parameters defined'
Closes #2041
(optimize abilitynumber check for early return)
2018-07-03 18:43:11 -07:00
Kurt
8e950e83b3
Rewrite ability verification
...
Closes #2040 , adds test cases:
invalid bulbasaur.wc3: hidden ability
invalid charmander.pcd: hidden ability
valid camerupt: gen3->4 unevolved mismatch
valid leafeon: pcd mismatch -> evolved now matching
should be much easier to maintain; methods are reused with less overall
nesting
2018-07-02 20:34:41 -07:00
Kurt
d11a89d52d
Move relearn required flag to checkmoveresult
...
reduce usage for non gen6+ relearn move cases
save contains result for later usage instead of recomputing the inverse
2018-07-01 21:34:17 -07:00
Kurt
7f6f7a7bad
Misc simplifications
...
reduce nesting (evo.RequiresLevelUp is checked twice, only check once
and handle path)
compact some methods
seal some classes
add a little xmldoc to exposed members
2018-07-01 19:55:23 -07:00
Kurt
c40a284174
Misc simplifications / xmldoc
2018-07-01 19:17:37 -07:00
Kurt
3674a11cfe
Misc simplifications
...
absorb verifier calls into the parsing methods
2018-07-01 17:07:29 -07:00
Kurt
bc6c361746
Reduce linq usage
...
reuse variables instead of re-fetching (pkm.Species)
add overload for HashSet<int> contains vs ICollection
merge BattleOnly to one hashset
2018-07-01 10:49:11 -07:00
Kurt
e5ac193e8e
Remove unused field
...
Encounter used to be used to determine if the original encounter was
valid; we now store the encounter object and checking is fast enough --
we don't really care to short-circuit individual verification steps
anymore.
2018-07-01 10:15:10 -07:00
Kurt
d477e19cf0
Simplify ball/catchrate lineage checks
...
should speed up egg ball checking a bit since we've already computed the
original species
gen1 catch rate, just move the chain fetch there.
2018-07-01 10:15:10 -07:00
Kurt
177604e2cb
Refactoring
...
Simplify some verifier logic
2018-06-30 15:01:16 -07:00
Kurt
aa3b64dc6d
Simplify ball check logic
...
fetch a single result and add it to the analysis
can probably remove the GetLineage call since the encountermatch stores
the original species
2018-06-30 10:34:09 -07:00
Kurt
77aed3ea14
Adjust levelmin on single evochain
...
Early return wasn't adjusting the minimum level; closes #2035
2018-06-27 17:41:53 -07:00
Kurt
3cf78ff3a2
Permit metronome for Pokewalker Cleffa
...
Closes #2033
2018-06-25 19:15:37 -07:00
Kurt
fba8adb32f
Add XY wild undiscovered egg group IV check
...
Closes #2025
add misc updates/simplifications (personal stuff used in pkNX)
2018-06-24 21:55:00 -07:00
Kurt
09c96558ea
Disable gen2 chain clamp
...
not sure of the implications, but fixes #2031
might have to rework this method to clean up the optional params if
things are misbehaving
2018-06-24 08:02:22 -07:00
Kurt
e29cf2a903
Rework secondary check flow
...
Checks.cs initially started out small, but over the years it has grown
to handle multiple types of checks. With all these checks next to
eachother, it's hard to see the overall groups. Splitting them up
(potentially further?) allows for more focused maintenance &
understanding.
Not sure if I'm happy with the overall bandaids used (checks no longer
done within LegalityAnalysis so variable repointing is excessively
used), but I'm happier the way it is now compared to the huge Checks.cs
2018-06-23 22:00:01 -07:00
Kurt
ea6842e5eb
Refactoring
...
improve readability
2018-06-23 12:37:01 -07:00
Kurt
0d3c6eef74
Refactoring
...
Relocate fixed OTs to core (iencounterable & checks now reference same
values)
2018-06-23 09:49:04 -07:00
Kurt
7a0b65e74f
Add low bound range check for species not in chain
...
Closes #2028
Thanks @iiippppk !
2018-06-23 08:23:05 -07:00
Kurt
173c9f7904
Update evo chain trim for transfer
...
Now trims correctly for g3 sneasel -> weavile (gen4 having both) at
level = met level
2018-06-22 23:18:52 -07:00
Kurt
5dd58c7197
Update gen1 evo chain detect
...
Closes #2017
2018-06-22 22:48:10 -07:00
Kurt
b502d11428
Replace evolution check
...
already have evolution obj from parsing moves, use it instead
2018-06-22 21:40:41 -07:00
Kurt
76e52fa2cd
Simplifications
...
Rearrange some logic, track decrement, remove unnecessary checks
2018-06-22 20:16:31 -07:00
Kurt
3000a8d007
Reduce linq usage
...
No longer recreates collections with ToArray/ToList by instead altering
the original chain
2018-06-22 19:40:17 -07:00
Kurt
346c401727
Rework initial evochain trim
...
push unsaved IVTotal/EVTotal stuff from prior commit
rework exposed types for evo chain
initial trim now uses much less linq
can probably redo the get initial chain to provide a species to break
on...
2018-06-22 17:59:02 -07:00
Kurt
7591f54de3
Misc updates
...
Add safari min flawless IVs to reroll (can expand if #2025 is required
for egg group15)
Use EV/IVTotal (faster, not linq array based)
Fix missing pumpkaboo form regression, Closes #2026
Relocate swapbits to appropriate class, unneeded in PKM.cs
2018-06-22 06:24:33 -07:00
Kurt
eb35d71fcc
Flag East Gastrodon from Friend Safari... correctly
...
Closes #2023
2018-06-21 20:26:21 -07:00
Kurt
8387da64fb
Disallow East Gastrodon friendsafari
...
Closes #2023
2018-06-21 20:22:14 -07:00
Kurt
c1f4e2a9ff
Refactoring
...
Relocate & simplify some logic
2018-06-21 20:13:41 -07:00
Kurt
1db41c8b21
Add vc2 evo chain check
...
queue should be checking against none left rather than any left.
Add test cases
2018-06-20 21:43:54 -07:00
Kurt
ce667729f3
More simplifications
...
Can't have species == 0 or invalid gameversion; check for
EncounterInvalid instead.
Egg chain is always valid (since it is not EncounterInvalid) thus always
provide the chain.
Since these 2 are the same, simplify the logic to be shared.
rearrange some parameters for easier flow
2018-06-20 21:38:56 -07:00
Kurt
47d8220915
Evo chain Simplifications
...
Rename "Flag" to "Method"; isn't used besides for indicating the evo
Method.
Remove some unnecessary duplicate checks
- always >=1 in chain at start
- mostEvolved already checked for > maxspeciesgen
2018-06-20 19:42:45 -07:00
Kurt
bfdd7247ba
Rewrite most evolved species check loop
...
Use queue collection rather than rebuilding with .Skip(1).ToArray()
move size checks to dequeue location
2018-06-20 18:25:23 -07:00
Kurt
2ef12f635f
Continued refactoring
...
move sylveon check to requireslevelup
need to make this generic for transfer species gaps
2018-06-20 15:59:57 -07:00
Kurt
c5ea35a1a1
Continued refactoring
...
Move chain prune from Analysis to evochain spawn
2018-06-19 17:50:10 -07:00
Kurt
f10cc183a7
Refactoring
...
Relocate Evolution Chain logic
minor reorg of check arguments for nesting / grouping
2018-06-19 17:14:22 -07:00