Commit graph

1102 commits

Author SHA1 Message Date
Kurt
bd56999b20 Increase search flexibility
add more version fetch methods, add reset method to reset encounter
priority
#2219
2018-12-30 17:30:57 -08:00
Kurt
2ecd3f1f30 Replace IV3 with FlawlessIVCount
Other games may vary the flawless IV count so best to have consistent
declarations
(the vc transfer encounter has 5 or 3 depending if it's a mew/celebi)
2018-12-30 10:33:00 -08:00
Kurt
82eae79823 Remove cosplay fixed IV
Was added a few months ago
https://github.com/kwsch/PKHeX/pull/2117

Game ignores the fixed IVs and instead does 3 flawless IVs
2018-12-30 01:10:53 -08:00
Kurt
78ff441e8b Update iencounterable api with new criteria arg
rearrange some logic for clearer function (extract some methods)
2018-12-29 22:24:34 -08:00
Kurt
c2422d6927 Misc updates
possibly gonna update the iencounterable api for criteria
check/enforcement, rather than just generating random encounter data.
2018-12-29 22:19:44 -08:00
Kurt
d5a8d29088 Misc updates
reduce some allocs, clearer names/enum usage
2018-12-27 20:24:24 -08:00
Kurt
2d75e93ef0 Move encounter matching logic to iencounterable
generator logic is now clean
2018-12-27 01:00:08 -08:00
Kurt
3481780e06 Add initial sizes
maximum is always 3; sometimes we know the max size so specify.
bcl has default size = 0, which then resizes to 4 on first addition
wow such optimization
2018-12-26 22:13:04 -08:00
Kurt
950d0a8525 Add nature bounds check & legality
expand string array check to cast and check against length; batch editor
Nature>=25 causes problems in hover tooltips. Previous commit fixed for
pb7 stat calcs for invalid natures, pretty sure the actual game is
exploitable for stat calcs and invalid natures (bad access), but isn't
exploitable as it's only used to retrieve an enum to switch against.
2018-12-25 22:59:52 -08:00
Kurt
69a3272036 Remove fossils from key item (count==1) list
Closes #2215
can't depend on 'key item' item flag since the game allows you to get
multiples
2018-12-25 12:31:13 -08:00
Kurt
ff649009ca Misc tweaks
misc perf adjustments
add utility for slot locked check (without box argument, absolute slot
index)
localize dragdrop strings
increase dragdrop file delete delay (dropping files into discord waits
until you confirm; 10s gives enough time to hit confirm)
2018-12-17 11:17:19 -08:00
Kurt
22b9da58e2 Add priority setting for yielding possible encs 2018-12-15 21:34:50 -08:00
Kurt
269524849e Fix crystal-only base move case
Qwilfish has crystal-only move for the encounter, and the encounter is
available on G,S,C. Check both origin games always, better to be
complete & exhaustive than faster & incorrect :)

Thanks Brittany!

https://projectpokemon.org/home/forums/topic/48802-bugemerald-eggs-crystal-learnsets/
2018-12-15 15:10:20 -08:00
Kurt
5d5259ddd2 edge case for egg OT name length
https://projectpokemon.org/home/forums/topic/48802-bugemerald-eggs-crystal-learnsets/
2018-12-14 23:30:21 -08:00
Kurt
eb69e86722 Unban go sandshrew/slash & shiny
https://twitter.com/serebiinet/status/1070583259875237888?s=21
2018-12-06 07:10:39 -08:00
Kurt
20e3da7e5f Add pb7 evo check continuation
oops
Closes #2202
2018-12-05 20:55:57 -08:00
Kurt
06d8b6609b Add outsider evo check for beluga
Closes #2200
2018-12-05 18:38:05 -08:00
Kurt
ec4088b1fe Cleanly lay out hgss swarm data 2018-12-02 14:46:17 -08:00
Kurt
77a4691a58 Add remainder of relicanth swarm data
https://projectpokemon.org/home/forums/topic/48702-bug-ss-relicanth-encounter-error/
Thanks finalevil151!
2018-12-02 14:39:24 -08:00
Kurt
2c2e5f60b3 Fix AV message for go transfers
formatted now
2018-12-02 09:08:42 -08:00
Kurt
d41197828b Misc fixes
apply version after adding (was previously left as Unknown version ID)
add Route 9 to rarespawn flying list (thanks @sora10pls )
2018-11-29 16:06:25 -08:00
Kurt
35a85670b3 Set height/weight dex values
Closes #2167
Based off sub_71001D16A0 with shortcut modifications:
* code marks new entries for evolution processing later using the low
bit (hence the << 1); in save files I can't see any bits set, but I
can't see anywhere in the code that DOESNT set this bit. Thus the
assumption of post-processing.

As noted in gameplay, a new capture doesn't set Min and Max; it only
sets it if it is above the usual sizing values.

Megas apparently don't set until seen in battle, so don't worry about
setting the other forme based indexes.
2018-11-27 22:05:36 -08:00
Kurt
76a2e4f527 Add AltForm parameter to exp/level fetch
Starter Pikachu & Eevee have different growth rates than their base
forms (seriously WHY?)

remove old api surface in PKX as a breaking change as adding the
parameter is necessary.
2018-11-26 16:55:16 -08:00
Kurt
5f0d1d423b Disallow volt tackle tutor for pb7 2018-11-25 19:44:19 -08:00
Kurt
71f1e6238a Misc fixes 2018-11-23 10:15:49 -08:00
Kurt
f358c0e4cf Handle all deviating met location string versions 2018-11-22 10:11:51 -08:00
Kurt
58080f36c9 Add WB7 and legality detection logic
Derived from WC7 with minor alterations (dynamic OT/Nickname which is
stored in the Full data). Since the 0x108 is not stored in the save
file, just keep the full data around.
2018-11-21 12:24:41 -08:00
Kurt
0ebfb38717 Add Route 20 to sky encounter rarespawn list
Thanks @ReignOfComputer !
2018-11-20 23:00:16 -08:00
Kurt
7bd3bfc52e Update rarespawn restrictions for birds 2018-11-20 13:38:49 -08:00
Kurt
3e711acd05 Disallow egg moves in suggestions for cxd/gg encs
https://projectpokemon.org/home/forums/topic/48547-remove-eggmoves-from-green-learnables-move-in-lets-go/
2018-11-20 13:38:05 -08:00
Kurt
ba1a7c2bcf Fix broken tests
rework getblank for version specific
2018-11-19 16:14:49 -08:00
Kurt
4022d7fea9 Add check for invalid pgo shiny transfer
Thanks @sora10pls !
2018-11-19 13:07:21 -08:00
Kurt
70fe7f58ee Remove eevee, revert porygon 2018-11-18 20:39:15 -08:00
Kurt
67cc6bdead Account for wild catch combo/lure level boost
Route 4 sandshrew captured at level 13 (12 is max)
+1 for now, not sure if it can go higher
2018-11-18 16:17:39 -08:00
Kurt
b818aff48a Remove evo tree sanitization
Evo data doesn't provide evolution values for these, fortunately.
2018-11-18 15:25:03 -08:00
Kurt
17348c1808 Add bird rare spawns 2018-11-18 10:36:28 -08:00
Kurt
1c0b2488ef Update lapras/porygon gift locationIDs
Thanks Asia81!
2018-11-18 09:41:52 -08:00
Kurt
edce01a857 More strict egg nickname length check
only fishy if it was traded & within bounds
2018-11-17 18:29:05 -08:00
Kurt
029e0e0a08 Manually add rare slot locations
placeholder; hopefully this isn't permanent
2018-11-17 15:12:32 -08:00
Kurt
d3534781db Allow premier ball for captures 2018-11-16 18:59:18 -08:00
Kurt
1c26c7713f Fix starter bypass
lol oops, hotfix inc
2018-11-16 18:17:01 -08:00
Kurt
013bc70ed9 Add more pb7 legality checks
can give nicknames to chinese mons now! Encoding looks the same
@wwwwwwzx :)
2018-11-16 17:42:50 -08:00
Kurt
a2eef9deae Misc fixes
it is version exclusive; fix magikarp speed IV
2018-11-16 16:44:25 -08:00
Kurt
ea4d9861c8 Disallow starter friendship move in learnset
Joycon shake only, never actually in moveset
2018-11-16 14:56:20 -08:00
Kurt
720e04ff91 Allow 7b trades to be shiny
remove the todo, thanks twittersphere

remove version exclusivity for puppycat (can be done on either ver)
2018-11-16 14:20:06 -08:00
Kurt
dae4a0a0ae Add EV/AV verification for pb7 2018-11-16 14:19:24 -08:00
Kurt
7da46623b8 Ignore ball check for invalid encounters
Defaulting to pokeball isn't entirely appropriate
2018-11-15 18:40:08 -08:00
Kurt
ed5abbd686 Add puppycat NPC location
Thanks (twitter) thelostdogg!
2018-11-15 18:39:30 -08:00
Kurt
94b924fdfc Add ingame trade IVs and random AV notes
exclusive maximum, not inclusive
2018-11-15 17:35:34 -08:00
Kurt
93ff395875 Add more succinct go park IV check string 2018-11-15 17:35:11 -08:00
Kurt
43a9d4eb99 Add gg evolution tree
turns out it was totally needed; am glad I didn't do the silly stuff of
past gen evo tables (gen6/7 is just raw evo data)
2018-11-15 17:34:54 -08:00
Kurt
22063d3907 Add ingame trade met locations 2018-11-14 23:04:40 -08:00
Kurt
a64d08e7e9 Add GO transfer IV verification 2018-11-14 18:25:43 -08:00
Kurt
830c2cbb29 Add GO encounter area/slots
Level ranges per species TBD
2018-11-14 17:40:41 -08:00
Kurt
adb6b345be Treat GameVersion.GO like other GG vers 2018-11-14 17:40:11 -08:00
Kurt
0b9b0d5317 Add bulbasaur candy to valid candies
oops
2018-11-14 17:06:13 -08:00
Kurt
24c541eeef Get savefile-context sensitive pkm
Generating a IEncounterable -> SAV for pb7 can't start with pk7
2018-11-13 19:19:20 -08:00
Kurt
28fec9882b Add pkm variant for beluga 2018-11-13 19:10:31 -08:00
Kurt
f11fa8752c Use pkm format specific evolutions, gg deviations
GG has slightly different evos from usum, don't bother adding a new
binary.
2018-11-13 19:04:58 -08:00
Kurt
6495dc41af Add move/enc/loc references 2018-11-11 22:49:17 -08:00
Kurt
5abbe6dceb Add fetching for lgpe encounters (legality checks) 2018-11-11 22:46:03 -08:00
Kurt
101149eb2e Skip eggs for gg (like cxd) 2018-11-11 14:19:02 -08:00
Kurt
9d2be1da9f Add beginnings for 7b encounter asset fetch 2018-11-11 13:12:24 -08:00
Kurt
1827b32d8f Add init function for wc7 gg files
pretty sure these will pop up soon as the pball plus doesn't send the
mew itself
2018-11-11 13:09:04 -08:00
Kurt
f38c46f5ec Misc updates 2018-11-10 21:07:31 -08:00
Kurt
010134f6ff Add references for GG tutoring
Only pikachu/eevee forms so far, probably none else
2018-11-10 21:04:48 -08:00
Kurt
94c8b348c8 Add legal tables for gg
field_pocket.dat ez pouch indexes
2018-11-10 20:58:41 -08:00
Kurt
453f43edd8 Allow shiny xd duking gifts
https://projectpokemon.org/home/forums/topic/48279-issue-with-ribbon-legality-shiny-dukings-and-japanese-text/
2018-11-08 18:58:52 -08:00
Evan Dixon
9c87ad2977 Port tests to .Net Core (#2156)
* Rewrite tests with XUnit and .Net Core
* Add better "because" message
* Skipping test that was not ready & convert the fact to a theory
* Tweak casing
* Convert select date tests to theories
* Make the GetStringList load lock safer
2018-11-06 15:25:35 -08:00
Kurt
d5c22b1e51 Add gen3 wc3 fixed OT egg length case
unhatched egg:
https://projectpokemon.org/home/forums/topic/48226-pichu-event-ilegal/
2018-11-03 12:44:03 -07:00
Kurt
daf41da91b Add more pokewalker moves
Thanks theSlayer!
2018-11-03 12:42:11 -07:00
Admiral-Fish
69b6ea57a3 More nature lock data (#2154)
* Fix lock data

Don't have data on Speal phenac, Spheal post, and Ursaring from colo so can't verify that.

* Fix e-reader data
2018-11-01 22:38:33 -07:00
Kurt
fe989d48fe Misc prep updates
Update comments / xmldoc
Add a savefile storage compressor (ie array[] with empty interstitials
-> list); return true if the compression moved anything (repopulate
views), and the count of occupied slots in the list.
Add saveblock base class; I haven't really liked how SAV6/7 do all the
logic; I'll still expose properties that will then point to a saveblock.
Cuts down clutter.
Add template Dex manipulator, with gen6/7 implementations
Speculate sequential gp/ge gameversion IDs
2018-11-01 15:38:09 -07:00
Admiral-Fish
6a5ee7bf6d Fix Electabuzz data (#2151) 2018-10-31 23:16:13 -07:00
Kurt
8f9cc6cd7e Fix xmldoc ampersands 2018-10-31 13:52:09 -07:00
Kurt
7a021781e0 Add xmldoc, misc fixes
Fix compile error (lol github editing)
Add XD check CPU-PSV for nonshiny.
rename l->current for clearer intent
2018-10-30 17:45:21 -07:00
Kurt
bc788beef0
Fix spelling mistake in var name
Unused after assignment, but if I rework the validation check to return the teamlock result instead of a bool I can spit out the Species-PID generated list as extra info. Helps identify the as-generated conditions if there are multiple teamlocks possible for an encounter (multiple shadow mons, seen vs unseen).
2018-10-30 09:21:32 -07:00
Kurt
908c98b876 Switch lock checks to newer more complete check obj
Now accounts for the shiny locks & associated restrictions, abusing the
recursion by setting & unsetting the required CPU Trainer's shiny value.

Repoint all test methods to use the new obj methods
2018-10-29 22:49:04 -07:00
Kurt
ef16e7037a Add lock check result object
A lot of internal information is nice to have saved; create a copy of
the static class's logic and pepper in some state variables (Required
CPU Shiny Value) to account for the weird edge cases.

Code is essentially the same as the static methods, except for more
fleshed out logic in the AllLock interrupt checking and the eventual
Trainer checks.
2018-10-29 21:28:22 -07:00
Kurt
b124a6e70d Extract seedframe to separate file
soon tm
2018-10-29 21:03:29 -07:00
Kurt
afffaaa43c Enable full shadow lock checks
If you find any edge cases (the code does not account for shiny locks
yet) pls lmk, would be nice to have confirmed tests :) :)
2018-10-29 19:44:30 -07:00
Kurt
35143630a0 Add ereader locks 2018-10-29 19:43:32 -07:00
Kurt
1b57acc6a7 Check all locks for legality checking
Single->All
2018-10-28 20:28:56 -07:00
Kurt
a728e97d40 Fix Butterfree lock
Ninetales is female
2018-10-28 20:28:02 -07:00
Kurt
7c0a74337e Update shadow lock checks
Passes all 3 lock3 cases in addition to some bulk checks
(VerifyPIDResults).
Lock4 has an issue on one; will have to investigate why.
2018-10-28 20:10:35 -07:00
Kurt
4268239c12 Continue work on shadow lock checks
Now gets count=2 tests working

yield return new SeedFrame { FrameID = ctr + (l.Seen ? 5 : 7), PID = pid
};
used to be ctr + 6, needs to alternate even-odd
all 2 lock cases pass, but didn't make lock3's pass. Something else is
still amiss :)

break out some classes for the solidified lock objects
2018-10-28 11:15:40 -07:00
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
f91a1c1d31 Add gg species / maximum placeholder
Will eventually have to fill these in during gg update
pretty sure they've revealed all the new species; total move/item count
still unknown
2018-10-27 09:08:39 -07:00
Kurt
359a529870 Misc updates
Move some logic around, fix style warnings
2018-10-27 08:53:09 -07:00
Kurt
e8ad1e227f Update shadow lock table
Thanks @ijuintekka ! Closes #2148
Will check later for commented out tests that should pass.

May end up turning on the first-shadow-lock check feature prior to
release.
2018-10-26 11:14:42 -05: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
8c4a17335f Add first shadow lock test method
Everything should always pass the first lock check; will add shortly to
any cxd encounter checks
2018-10-21 20:55:02 -05:00
Kurt
c0aae6ab78 Add cxd lock check info & begin troubleshooting
commented out test calls = not working
will have to debug in more detail later; the first lock is always
working at least.

data sourced from
https://github.com/ijuintekka/Eligor/blob/master/Eligor/Spread.cs , not
sure if it's perfect.

can't cleanly condense deviating team appearances as double-shadow leads
can't be selectively encountered. didn't feel like modding lockfinder's
recursive algo to be smarter.
2018-10-20 21:03:04 -05:00
Kurt
06cca185e4 Add edge case for pidiv kor g4 pichu
Closes #2144
미케나 pichu 12179/20300
2018-10-19 22:27:18 -05:00
Kurt
93af3e61b7 Add handling for Mt Battle Ho-Oh (italian) edgecase
https://projectpokemon.org/home/forums/topic/47917-colosseum-italian-ho-oh/

there's no shadow ID, so it can have both the short (transferred back)
or full name (never transferred) as CK3 without side effects.

allow 10chars in pkmeditor
2018-10-13 08:07:15 -07:00
Kurt
f7f5d78beb Misc perf tweaks
hopefully resolves the image corruption issue (dont use unsafe?)
remove some linq
2018-10-13 08:02:55 -07: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
fd1009476e Minor logic simplifications
reduce size of encountermoves, split into separate object
only execute gb movedata adjustments for gb
2018-10-06 19:44:50 -07:00
Kurt
4deb5080d1 Misc tweaks
rearrange getmove with respect to tutors; verifycurrentmoves was getting
tutor moves in levelup
extract not-found hint fetch
Expose gen5 block objects (so I can play with saves in linqpad)
2018-10-06 18:45:15 -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
03a05364ab Update colo suicune ++
location ID was originally added by:

afde4514e2 (diff-83a32d69355a64376bc77bd07e338a33R446)

I
have another save file that uses met location 110 (like this one) so I
assume it was originally a copypaste error from Sudowoodo.

Change Trade strings to not allocate separate empty arrays.
2018-10-04 08:14:53 -07:00
Kurt
4bbb1f54b9 Change burned tower suicune encounter type
was initially set by this commit

0e3815b048

field test resulted in Cave/HoO type
https://projectpokemon.org/home/files/file/2953-burned-tower-suicune/
2018-10-03 16:46:55 -07:00
Kurt
5d6c932353 Spit out move learn generation on verbose
helps indicate any restrictions on learn source outside of the current
format
2018-09-30 11:50:08 -07:00
Kurt
db30fea38c Remove gsc dodrio trade OT trailing space
Closes #2126
Rewrite trade OT validation by using the trade's OTs property
2018-09-19 19:09:29 -07:00
Kurt
d5816795bf Remove split gsc trade levels for tradeevo species
#2126
Receiving a lower leveled species from GSC will evolve it away from the
required species, ruling it unavailable.
Receiving a Machoke will evolve it, so can't reuse for Haunter trade
2018-09-19 19:08:10 -07:00
Kurt
65272d460a stricter mysterygift references
results in:
- precomputed GetTable() reference
- no casting when iterating for matches
- no db null checks, as they are initally Array.Empty<T>();

reduces noise a little & slightly faster
2018-09-15 16:22:07 -07:00
Kurt
df321d14b5 Reorder checks
most common path is now first
2018-09-15 16:13:17 -07:00
Kurt
b280ffcfef style updates
should be pretty much it
2018-09-14 22:37:47 -07:00
Matt
165757d590 Fix Meteorite/Mega Cuff mixup (#2120)
Meteorite (2) is legal, Mega Cuff is not.
2018-09-12 22:10:13 -07:00
Kurt
ff25e3cbd0 Remove illegal items from legal key items 2018-09-12 21:52:09 -07:00
Kurt
d511fccdb4 Move basement key item ID to illegal group
no functional change, item is unobtainable but still can be 'give all'
and in permitted list
2018-09-12 21:30:24 -07:00
Matt
fc91819410 Add XY Magikarp trade IVs (#2117)
* Add XY Magikarp trade IVs

* Add Cosplay Pikachu IVs
2018-09-12 11:02:11 -07:00
Kurt
0c02a0cbbc Add splitbreed mantine to pastgen alolanoffspring
thanks kr, beast ball now recognized as legal
2018-09-09 17:19:50 -07:00
Kurt
f444c41ee3 Remove nick req on g5 gigalith trade
Closes #2114
2018-09-08 10:45:30 -07:00
Kurt
d02b87a7b2 Expose checkresult properties
can now check individual strings / identifiers in a LegalityAnalysis
object by:

var la = new LegalityAnalysis(pkm);
var parse = la.Info.Parse;
if (parse.Any(z => ReferenceEquals(z.Comment, LegalityCheckStrings.X))
...
should be faster than doing string.Contains
2018-09-05 21:27:52 -07:00
Kurt
1750c69b01 Update pcd version distro check
some events have fixed version IDs in the gift data

https://projectpokemon.org/home/forums/topic/47365-vgc-shiny-milotic-usa-pkhex/
2018-09-05 16:09:30 -07:00
Kurt
cc20bb38d7 misc updates
use arrays instead of list when capacity known
use enums for const decoration
remove unnecessary aliases
2018-09-01 19:55:08 -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
c6e4c39bc5 Fix gen1 single chain for gen2 tradeback scenario
invalid mon -> make sure array is big enough for later move parsing

https://projectpokemon.org/home/forums/topic/47283-unhandled-exception-when-importing-set-from-clipboard-after-opening-gen-i-save-file/
2018-08-29 21:58:44 -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
f89d9ca323 Split apart headbutt tree logic
precompute Index & make readonly when initializing as we use Index at
least once when initializing the treesarea
2018-08-28 15:10:08 -07:00
Kurt
f74c1e321a no mo go to yo
pull goto default into 'when' so other cases continue to default

this is a goto free codebase ( ͡° ͜ʖ ͡°)
2018-08-27 20:48:57 -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
a9f65a4617 add lock for cross thread dictionary manip
could use concurrentdictionary but after reading some perf drawbacks vs
manual locks, just do it manually. regex checking is the real slow part,
whatever
add some comments to describe
2018-08-25 10:48:37 -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
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