Commit graph

36 commits

Author SHA1 Message Date
Kurt
dccad6c2f4 Simplify/fix UnSanitizeString
Species and Nicknamed params were never used; foreign always resulted in
true for cases when it actually mattered.

Filter to the non-fullwidth characters, check the char type (latin base
vs jp/zh/ko) in order to determine if the full/half symbols should be
squished

could be faster replacing char instead of string, so change those

add two test cases for half width & full width string
sanitization/unsanitization
2017-12-28 22:50:32 -08:00
Kurt
d3d7d7d50d Add slot level / IsEncounterable beginnings
dynamic level -> calc level
no sweet scent -> proc available (rock smash/fish)

change frame checking in encountergenerator to save which frame it was
found on (unused but possibly later can capture this for output)
2017-11-29 21:31:52 -08:00
Kurt
c7dfc3d9b0 Cleanup
union / count usages
remove unnecessary stuff
2017-10-06 21:03:23 -07:00
Kurt
6bd0e7ce72 sync remaining
pls revoke my access
2017-10-03 18:20:31 -07:00
Kurt
6611e874c3 more usum prep
species added requires the 'latest personal table' reference to be
USUM's; the other referencs for .SM are fine as there's no possibility
to have a species ID high enough for it to matter.
2017-09-18 22:36:06 -07:00
Kurt
c55b3df939 Add nyx antishiny pidiv detection
( ͡° ͜ʖ ͡°)
2017-09-12 00:27:16 -07:00
Kurt
b078064e08 Improve xdrng seed search speed
refer to stackexchange links, makes XDRNG PID/IV search so quick (2^3
instead of 2^8 or 2^16; as fast as a gen3 shiny pokemon (2^13=8192 times
as fast as last release)

throw in some auto-inlining to eliminate some overhead in repetitive
search calls
2017-08-05 01:51:29 -07:00
Kurt
fe06309134 Add IV framegap search
Only usable for searching Method 4 IV spreads -> seeds;
1,3's search uses the same approach as the 1,2 search
I took the 1,2 search derivation to iterate for the next step, which
allows us to not know anything about the middle rand bits.

optimize a little bit more, move the pre-loop add to the initialization
stage; moving to the precomputed section pays off after 256 calls to the
method
2017-08-03 21:35:41 -07:00
Kurt
4945744599 Update Pokewalker PID checks
wildeep to the rescue 7y ago

http://www.smogon.com/forums/threads/past-gen-rng-research.61090/page-12#post-2661504

test cases need gender specified as gender is stored in a field (not
directly grabbed from PID)

addresses pokewalker pkms provided in #1377, RoC's PC has a bunch of
hacks ;)
2017-08-01 23:48:35 -07:00
Kurt
2a2f5669e4 Add wc3->pk3 conversion
fixes 10ANIV pikachu having Thunderbolt twice
un-duplicates CHANNEL event data
adds seed->PIDIV generator template for M1/2/4, CXD, Channel, and BACD

improve pkm converter to update nickname of hatched eggs. isn't perfect
(farfetch'd) but works better than before
2017-07-15 18:36:55 -07:00
Kurt
b760509fcb Misc gen3 event updates
Add special ribbon detection (for wc3),
speed up seeds from IVs calc (flip top bit of seed to get the result for
other iteration)
Add a bunch of gen3 event data
2017-07-01 16:50:45 -07:00
Kurt
1c4a1af633 Misc updates
Detect channel, only detect Channel PIDIV for RS origin (only really
care about method1/2/4 being used when it shouldn't)
Channel does this weird thing called not setting the met level.

Refactor set suggested met location to a method that can suppress
popups.
2017-06-29 19:32:29 -07:00
Kurt
ac16492daa update abilityflip g5mgshiny checks
Closes #1269
Also adds pokewalker PID check (don't think it works correctly but close
enough for now)
2017-06-24 17:24:36 -07:00
Kurt
3f38b123a3 Refactoring
mostly renaming things, includes a little bit of added sugar and
splitting methods to simplify the codebase.

all methods are now PascalCase
2017-06-17 18:37:19 -07:00
Kurt
11b2dc35d7 Refactor main form into smaller pieces
pkm editor, sav editor, menus, and a manager to glue the storage slots
together
decouples the pkm/sav editors from a static savefile reference.

improves dragdrop/click view/set/delete indication, hides unavailable
contextmenuitems, and fixes a few incorrect references. Box Subviewer
slots now have all the indication/events that the main save editor slots
have.

pls report behavior bugs 👍
2017-05-22 21:55:12 -07:00
Kurt
d29acfb171 Add encounter slot checking
Frame list now can be queried for encounter slot matches
2017-05-14 23:21:34 -07:00
Kurt
6c6b3ae4b6 Refactoring
Add in frametype, rename classes for more coherent structure
2017-05-14 14:42:18 -07:00
Kurt
9380ca25d9 Update current RNG frame detection methods
Still not hooked in or handling every case, but is enough progress for
now.
2017-05-14 12:42:27 -07:00
Kurt
5ec3521d48 More c#7 shorthand
outs & pattern matching, other simplifications
2017-05-13 10:20:25 -07:00
Kurt
a70a4d5e3f Switch to c# 7 get/set expressions
Add gen5 battle box locked flags
no functional change otherwise, just shorter
2017-05-12 20:32:43 -07:00
Kurt
f1db88026b Add frlg unown PIDIV type
The modified form-finding routine generates the PID gen halves in the
reverse order like events. Due to possible collisions with event PIDIVs,
only run it for unown (since that's all it applies to); the analyzing of
PIDIVs to find incorrect usages isn't really feasible (collision) for
this one.
#1103
2017-05-01 08:37:23 -07:00
Kurt
ad6a48b7f1 Add gen3 force shiny event PIDIV detection
matches for berry fix zigzagoon

use correct type comparison for checking if national ribbon is to be set
or not; change XDC to CXD for parity with other references
2017-04-30 22:11:51 -07:00
Kurt
0bad6738d4 Add C/XD specific checks
Pokespot: a given PID will satisfy ~37% of the time, flag pokespot
encounters
I can see hatching eggs being a problem, no idea how this would work
2017-04-30 16:53:54 -07:00
Kurt
2a28019ef3 Add gen3 event pidiv detection
includes antishiny mechanism detection, needed 2 new enum values to tag
those.
handle overflow case
2017-04-29 23:18:36 -07:00
Kurt
e814e7291f Add chain shiny and shinyPGF pidiv detection
delete incorrect legality message entry (used a few lines up for super
training flags), is unused.
fix for transferred 8<=xor<16 PIDs in which case the encryption constant
is used (as it is the unmodified PID)
2017-04-29 20:04:54 -07:00
Kurt
82375ca464 Add PIDIV matching
Includes 1 test for each pkm pidiv type, haven't added absolutely every
method possible but it's enough for now
2017-04-29 16:22:32 -07:00
Kurt
691493cafe String editing refactor
Move all sanitization operations from PK* and SAV* to PKX; add general
method for fetching a generation specific string
Changes the Text subform editor to show trash bytes when appropriate.
Special characters to be shown can be easily inserted in the future.
2017-04-09 14:06:50 -07:00
Kurt
cadd7342c0 Change pkm date properties to public
Allows direct use for randomization via the Batch Editor
2017-02-04 10:43:18 -08:00
Tsunamical
2bfdb72e1b Tests: Use DateTime.UtcNow for test cases
DateTime.UtcNow is considerably faster than DateTime.Now, and since this
value isn't used for actual game purposes, we can take advantage of it.
2017-02-01 10:18:09 -05:00
Kurt
595c7eb4c5 Split winforms to separate project
resources still are associated with winforms, eh
program still runs fine and I've replicated the mono build options. lmk
if this breaks stuff
2017-01-07 23:54:09 -08:00
Kaphotics
d72db5ae72 MarkByte => MarkValue
Includes marking coloring for main form as well
changes type from byte to int
2016-10-30 19:15:48 -07:00
Kaphotics
ed14ab7436 Add personalinfo references per PKM format
Fix possible hang in pk6/pk7 if country/region is unset (continues
loop).

PersonalInfo references are not to be used when calculating stats (use
the savefile table instead)
2016-10-23 22:01:39 -07:00
Kaphotics
edb4928117 Minor cleanup
Unused usings/references
2016-08-10 19:32:57 -07:00
Evan Dixon
35d4edf85d Fixed crash in DateUtil when Year is 0 2016-08-10 19:54:12 -05:00
Evan Dixon
e53fe6e180 Added tests for PKM.EggMetDate 2016-08-10 09:46:38 -05:00
Evan Dixon
17078c8d28 Added test for PKM.MetDate 2016-08-10 09:42:58 -05:00