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