Kurt
39f98a4a94
Misc qol updates
...
Check max case for level first, then iterate upwards (eliminates inner
if)
change wc* nature to sbyte (update comparisons, 0xFF too magic-y)
use Rand.Next(x) instead of (0, x)
2018-10-27 21:59:31 -07:00
Kurt
ed3699fbb4
Update Ho-Oh mattle check
...
More languages than Italian have a rule-breaking name. Rework checks a
bit
Flag eggs more accurately
Update force hatch to move Link Trade met location to Egg Location
fix Ho-oh -> Ho-Oh text strings (correctness is key!)
2018-10-27 16:06:06 -07:00
Kurt
a3e7c4837e
Rewrite trade OT/Nick verification, g4 shuckie
...
Shuckie in HG is not the same as Shuckie in SS.
Use the relatively-recent Nick/OT properties instead of digging through
the encounter table & strings. Ends up being slightly faster.
Thanks theSlayer!
https://projectpokemon.org/home/files/file/3048-kirks-shuckie/?tab=comments#comment-1424
2018-10-27 13:37:03 -07:00
Kurt
ed180f1b5f
Allow traded eggs when checking g6+ receivability
...
As noted in the EncounterEgg generator, Gen6+ update the origin game to
the OT's when hatched.
Thanks Zaskarel!
2018-10-27 09:44:47 -07:00
Kurt
3d0d8fa649
Add first shadow lock check
...
Currently toggled off, can be optionally toggled on (I'm not sure that
it's perfect? Random save files have stuff flagged since they don't
match the lock; will have to investigate later)
2018-10-21 21:07:33 -05:00
Kurt
b7acb7fa1d
Add memory rarity table
2018-10-12 17:45:52 -07:00
Kurt
e8552affca
More gb restriction relocations
2018-10-10 16:32:02 -07:00
Kurt
2db8daa07b
Add specified ability no-hidden check
...
ability=0 allowed abil1/2 but not 4; catch that scenario
2018-10-10 16:31:40 -07:00
Kurt
2ad103dd46
Extract gb specific core logic to separate class
2018-10-09 21:07:13 -07:00
Kurt
0a62506e11
Micro optimization
...
wow such use
length eq to max will always pass
2018-10-09 19:28:18 -07:00
Kurt
b481358e92
Add number count check for OT/nick
...
https://projectpokemon.org/home/forums/topic/47850-legality-issue-names-with-multiple-numbers/
let me know if there's any implications for transferred content (name
reset on 1-3=>n?)
2018-10-08 17:57:34 -07:00
Kurt
47f20b8c0e
Update fixed ability comparison for 6+
...
4aa44c90c1
only updated it for gens 3-5
Closes #2136
2018-10-08 15:26:43 -07:00
Kurt
f65bc2e984
Reduce allocations for gen1 move parse
...
use shared interfaces
2018-10-07 15:36:32 -07:00
Kurt
4aa44c90c1
Update fixed ability comparison
...
ignores <= 0 now
2018-10-07 15:36:04 -07:00
Kurt
dc839333b7
Add more parse settings
...
allows consumers to tweak debatable settings
2018-10-06 13:43:05 -07:00
Kurt
66faa43e03
Add gen6+ fixed ability hot path
...
Closes #2135
2018-10-06 11:24:46 -07:00
Kurt
f507ab7081
Misc parse settings reorg
...
makes it more centralized for defining parsing settings, maybe can have
flags to change severity of certain preferential checks
2018-10-05 19:58:30 -07:00
Kurt
59af7fef35
Remove unnecessary properties
2018-10-05 19:57:45 -07:00
Kurt
ce9d3abbe4
Misc reorganization
...
Move logical checks using encounter data out of Core.cs
might be possible to excise legality checking objects from
Legal/PKHeX.Core so that a 'slimmer' core can be made
2018-10-04 18:52:00 -07:00
Kurt
91c37ab573
Update legality check message string style
...
V### names weren't enjoyable to work with; use similar verbose style as
the program message strings.
updating the translation files with the remapped variable names shortly
remap list: https://pastebin.com/jybkVDAK
2018-09-01 14:11:12 -07:00
Kurt
1fe304e78f
Rework mg nick/lang checks
...
add common interface
https://projectpokemon.org/home/forums/topic/47295-bug-event-golduck-name-not-matching-species/
2018-08-30 18:09:52 -07:00
Kurt
ebae14e6ad
Add unnicknamed forced languageID wc7 handling
...
https://projectpokemon.org/home/forums/topic/47295-bug-event-golduck-name-not-matching-species/
another edge case
2018-08-29 20:36:32 -07:00
Kurt
4dc04cb4b9
Add pelago status value check + etc
...
0, [9,19] are set (didn't see 15), but there's also a switch case which
references all values 0-19.
these values are used by a 80 sbyte array (4*20) in the Resort.cro
remove usages of "goto case"
2018-08-27 20:44:26 -07:00
Kurt
102430ebf5
Update trade nickname check
...
reorder for simplicity, add test
Thanks ThePunish3D!
2018-08-26 18:32:39 -07:00
Kurt
4656909d98
Misc reorg
...
use shared class for pk1/2 setnotnicknamed
fix extendedeurope values (copypaste from extendedAmericas)
move ball out of verifiers, move nature/movetype with ball
2018-08-26 16:29:52 -07:00
Kurt
f7b5a5579d
sync missing content
...
yay rename
2018-08-26 11:29:47 -07:00
Kurt
7f87d43c41
Add enum for ball; use in checks
...
Increases readability instead of using hex IDs
2018-08-26 11:15:32 -07:00
Kurt
6a225ad091
Add mr mime to usum additions for egg balls
2018-08-26 09:43:11 -07:00
Kurt
5fe9226c62
Ignore fixed language trades for gen4 korean check
...
Closes #2103
Thanks @Narithegreat !
2018-08-22 22:36:56 -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
57c6de2825
Add nickname length check for gen>2
...
Closes #2091
2018-08-14 20:13:15 -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
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
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
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
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
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
c9abeda508
Update stadium check again
...
#2065
2018-07-20 05:57:57 -07:00
Kurt
69e7d49d03
Simplify Stadium OT Check
...
TID is always 2000 : #2065
2018-07-19 15:54:34 -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
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
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
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
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
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
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
c40a284174
Misc simplifications / xmldoc
2018-07-01 19:17:37 -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
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
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
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