Commit graph

965 commits

Author SHA1 Message Date
Kurt
f8bf3e400b Misc tweaks
Add bulkstorage SaveFile template
remove unused using
un-virtual box property (don't override behavior)
Split new-USUM island names (unused)
Remove island names from valid egg locations (thanks Davil !)

https://projectpokemon.org/home/forums/topic/43874-bug-met-location/?tab=comments#comment-227684
2018-02-15 17:05:45 -08:00
Kurt
89248b30a9 Re-add rufflet pelago for sn
Thanks @wwwwwwzx !
2018-02-12 17:38:31 -08:00
Kurt
28180687a5 Add transfer2 future evos for legality reuse
https://projectpokemon.org/home/forums/topic/43827-gsc-mismagius-treated-as-illegal/
2018-02-11 20:48:36 -08:00
Kurt
38fb30e847 Remove Punishment from Murkrow USUM eggmoves
Closes #1829

"In Pokémon Ultra Sun and Ultra Moon, Murkrow is programmed to be able
to learn Punishment through breeding, but no other Pokémon in the Flying
Group can pass down Punishment as an Egg Move in those games. Vullaby
and Mandibuzz are the only Flying Egg Group Pokémon that can learn
Punishment, but they cannot pass down the move due to being female-only
species."
2018-02-10 18:56:06 -08:00
wwwwwwzx
9187be8177 Update CHS translation files (#1827)
* Update CHS translation files

* Fix crabrawler outliers

Double check the wild encounters level range again.
2018-02-10 15:29:22 -08:00
Kurt
f289249b2d Add oddball crabrawler berry pile levels
thanks @wwwwwwzx !
2018-02-09 21:26:28 -08:00
Kurt
033d5baa06 Check EC-PID same for gen1/2 transfers
Fix PID->EC on gen<3 transfers

https://projectpokemon.org/home/forums/topic/43779-about-vc-pokemons-pid-and-encryptionconstant/
2018-02-08 18:47:52 -08:00
Kurt
d6fbd0f0d7 Reorder gsc encounters
new string resources have shuckle last
thanks @sora10pls
2018-02-08 17:05:15 -08:00
Kurt
05c4a0f286 partner cap pikachu update
great job gamefreak

allow current handler to be 0, remove static encounter as the data was
sneakily faked as a WC7 in the events gallery.

Closes #1817 ; still needs to update with new pikachu pid method
allowing shinies (next update).
2018-02-07 19:56:02 -08:00
Kurt
9408255bee Add other international (non english) gen2 tradeOTs 2018-02-06 23:09:00 -08:00
Matt
1b2aded412 Allow shiny Partner Cap Pikachu (#1820)
good job Game Freak https://twitter.com/wwwwwwzx/status/961057063198539778
2018-02-06 18:54:45 -08:00
Kurt
05355f3566 Fix gsc shuckle jp name
Closes #1818
strengthen language specific checks (JP or INT, not any)
2018-02-05 20:55:10 -08:00
Kurt
246b9d46a9 Add GSC fishing swarm encounters
Closes #1814
2018-02-04 23:14:12 -08:00
Kurt
2a638a957f Refactoring
compress some ideas
2018-02-04 19:17:44 -08:00
Kurt
e3ca751e2c Add dp/hgss shedinja gender glitch handling
not providing pkmeditor ability since Pt behaves correctly.
Closes #1813 , thanks @ultima-soul & @Lusamine !
2018-02-04 18:12:20 -08:00
Kurt
420a18ea85 Rework shadow lock checking
tested for 2 locks, later commits with legality check implementation
will feature more lengthy lock checks (test case automation).

https://pastebin.com/VdbjWaqL
(species doesn't matter since most are 50/50 ratio)
2018-02-04 16:33:53 -08:00
Kurt
c20f03434f Add FrameCache object
arbitrary access for RNG frame results, only generating frames when the
frame is unavailable. all calculated frames are cached.

to be used in RNG searching where caching seeds is necessary (repeat
checks)
2018-02-04 16:30:50 -08:00
Kurt
35e5dbfb32 Add eterna forest honey tree location
Closes #1812 , thanks @ultima-soul !
2018-02-04 14:03:35 -08:00
Kurt
04888a5c39 Add crabrawler berry pile scripted encounter
https://projectpokemon.org/home/forums/topic/43628-crabawler-bug/
doesn't exist in static encounters, maybe is set up like the swooping
encounters of gen6.
2018-02-04 13:04:45 -08:00
Kurt
9a20734be2 Update lock checks
test case
https://pastebin.com/f4K7uc56
only checked for single locks
2018-02-04 00:06:07 -08:00
Kurt
14fc71a5d2 Fix Zygarde Aura Break formechange detect
original was AltForm != 1, 0 is also invalid so >1 suffices.
remove parameter from method & update usages
2018-02-03 21:12:36 -08:00
Kurt
0a22ccdb2b Disallow invalid pelago levels
simplify pelago slot generation too
linq for now; can be silly and make it a for loop but meh
2018-02-02 20:52:44 -08:00
Kurt
382c94c348 drop sm pelago exclusives back to 1-55 not 37-55
https://projectpokemon.org/home/forums/topic/43711-vullaby-invalid-error/
2018-02-02 20:10:43 -08:00
Kurt
b603bc87b8 Update shedinja ninjask move checks
check level of source moves for any incompatibility in non-bred cases.
Closes #1805
2018-02-01 19:57:02 -08:00
Kurt
999427f484 Update gen2 egg generator
Level = Level is equivalent to Level = 0

update EggInfoSource to use Level instead of LevelMin (LevelMin returns
Level, just be clear on usage)
update VerifyCurrentMoves so that only gen1/2 do the gen1/2 move update
methods. Recently extended all encounters to have a generation property;
we only care about gen1/2 here.

https://projectpokemon.org/home/forums/topic/43655-pokemon-crystal-egg-mark-as-not-legit/
2018-01-30 20:36:22 -08:00
Kurt
84a0381050 Add Italian to gb languages
https://projectpokemon.org/home/forums/topic/43655-pokemon-crystal-egg-mark-as-not-legit/
2018-01-30 20:34:11 -08:00
Kurt
836566004f Use CXD met location string on verbose output
was previously using RSEFRLG locations for CXD encounters
2018-01-30 20:24:45 -08:00
Kurt
7063ea2971 Remove vc1 pay day mewtwo restriction
Closes #1794
2018-01-30 09:38:45 -08:00
Kurt
4ac92b9418 Update nincada->shedinja evo chain check
Thanks @admiral-fish & @Marty-D !
2018-01-29 20:52:05 -08:00
Kurt
74f185591a Fix shiny/nonshiny egg mysterygift link trade checks
thanks @Admiral-Fish for finding this case
2018-01-28 23:40:57 -08:00
Kurt
2365e2394c Add eggcycles override for Odd Eggs
not gonna bother checking for exp < 125 because after transfer these are
indistinguishable from regular eggs.
2018-01-28 09:46:11 -08:00
Kurt
735ff26486 Rework GetEncounterMoves to match games
Closes #1787

Noticed that the search-backwards approach for GetMoves yields Sludge
for muk even though it shouldn't be allowed
im fine with this for now because gen2 never had online checks and any
current-gen checks allow relearning.
2018-01-28 00:09:11 -08:00
Kurt
13e7d8ff85 Fix dragonair ingame trade genders
#1787
2018-01-27 23:23:10 -08:00
Kurt
282676e2f2 Refactoring
reduces mental footprint
2018-01-27 17:49:18 -08:00
Kurt
ca2898d648 Rework gbc celebi detection
disallow outside jp games
2018-01-27 11:46:51 -08:00
Kurt
0e7350ee9e Update korean vc string checks
https://projectpokemon.org/home/forums/topic/43610-legality-about-gen-2/
2018-01-27 09:45:33 -08:00
Kurt
c066df243f Misc fixes/updates
Fix crystal lacking met level<->current level checks
Fix met location loading for gen2 saves (gen7 sav loaded gen1/2 pkm ->
load gen2 sav)
refactor some logic with pattern matching/consistent method names
2018-01-26 09:19:20 -08:00
Kurt
48564d7e30 Fix celebi iv check
update version ID as well
Closes #1775
2018-01-25 20:39:32 -08:00
Kurt
9b7b0b25d4 Flag iv<5 celebi
thanks @sora10pls
2018-01-25 19:34:18 -08:00
Kurt
58e374bcc6 Add celebi / more crystal legality handling
Closes #1772
2018-01-25 19:25:10 -08:00
Kurt
802105d22d Allow pay day mewtwo, disallow dizzy punch
#1772
transfer pk1->pk2->pk7 for mewtwo knowing dizzy punch, just so we can
keep Pay Day
2018-01-25 19:17:42 -08:00
Kurt
5472f869cf Remove some crystal vc checks
now legal
assuming x->kor7 sets the language val based on the cart language,
should be good for the kor crystal checks.
2018-01-25 09:14:25 -08:00
Kurt
b69a6df6e7 Add roamer glitch IV collision detection
M1 is checked before M1R. A M1R PIDIV can also be a M1 PIDIV, so check
that collision.

https://projectpokemon.org/home/forums/topic/43567-gen-3-suicune-unaffected-by-roamers-glitch/
2018-01-24 19:07:03 -08:00
Kurt
713e9ea209 Compress box padding 2018-01-23 17:18:37 -08:00
Kurt
b229a947f2 Fix pt/hgss egg location handling 4->5
Closes #1766
pt/hgss egg location data is lost on transfer, retaining faraway place
only.
2c8e2176e9 fix was incorrect
2018-01-21 11:57:34 -08:00
Kurt
e616b56bfa Remove uncatchable grubbin static encounter
#1763
2018-01-18 14:06:17 -08:00
Kurt
387030e16f Fix 7th gen pikachu altform check
https://projectpokemon.org/home/forums/topic/43498-bug-about-event-pikachu/
2018-01-18 13:50:29 -08:00
Kurt
17e4bdbe3a Add pikachu7 forme nongift check
other branch was unhandled, flag if we have a mismatch
closes #1762
2018-01-15 17:50:33 -08:00
Kurt
029539003b FormChange check: use original form not current form
Closes #1758
noticing the different usage for species (encounter species vs current),
iterating over possible dexlevels (unnecessary?)
2018-01-13 12:10:17 -08:00
Kurt
fb6738f18b Add unown 2->7+ shiny check
closes #1755

also:
fix vc transfer checks not being called (EncounterOriginalGB is no
longer GBEncounterData).
remove usages of GBEncounterData -- class is (as of a ~~month ago) now
never leaked out of the EncounterGenerator -- always returns the actual
encounter data as the wrapper is not needed.
simplify logic flow / references
2018-01-10 16:16:35 -08:00
Kurt
c751c987a9 Add DebutGeneration get
https://projectpokemon.org/home/forums/topic/43378-generation-search-in-pkmdb-andor-batch-editor/

(less than) < and (greater than) > not currently supported (no plan to
add, would need to rewrite value eval logic)
2018-01-10 15:40:33 -08:00
Kurt
701edbc592 Remove KOR language from gen3 selection
add flag for non japanese lang gen3 eggs
Closes #1747
2018-01-06 22:43:48 -08:00
Kurt
63a983749e Don't generate encounter slots for eggs
Closes #1749
2018-01-06 21:51:58 -08:00
Kurt
6a9e2ed4b9 Refactoring
improve speed for resource fetch, add optional Shiny parameter
(currently unused)
#1735
2018-01-02 16:53:39 -08:00
Kurt
0f21fc2217 add location interface for verbose analysis output
indicates met location for transferred mons
most gen1/2 encounters won't show values due to the location not being
stored respective to the string tables (anyone wanna do a location remap
after initial load?)
2018-01-02 12:00:41 -08:00
Kurt
5888898e7d fix gen2 egg met level mod
https://projectpokemon.org/home/forums/topic/43278-gen-2-hitmonlee-and-hitmonchan-flagged-as-illegal-if-location-is-mt-mortar-at-level-10/?tab=comments#comment-225577
2018-01-01 21:51:36 -08:00
Kurt
76385a6b4a Fix gsc pre-evo species chain filtering
simplify gsc check to do only once

https://projectpokemon.org/home/forums/topic/43278-gen-2-hitmonlee-and-hitmonchan-flagged-as-illegal-if-location-is-mt-mortar-at-level-10/
2018-01-01 13:53:28 -08:00
Kurt
cfe78a7a0c Add rby power plant static encounters
https://projectpokemon.org/home/forums/topic/43272-small-electrode-legality-bug/?tab=comments#comment-225537
2018-01-01 10:38:38 -08:00
Kurt
1b409dd327 Ban phione egg in non-pokeball
Thanks Davil!
https://projectpokemon.org/home/forums/topic/43262-bug-phione-ball/
2017-12-31 09:56:27 -08:00
Kurt
0c2b16391f fix spanish ranch gift name check
oops
2017-12-29 13:08:06 -08:00
Kurt
90260187f7 Add light of ruin & plasma fists as invalid sketch
moves not available for sketch without hacking a specimen in

https://projectpokemon.org/home/forums/topic/43244-two-problems/?tab=comments#comment-225421
2017-12-29 12:00:06 -08:00
Kurt
43cb0e8d7d Provide more accurate met level for eggs
Gen6 egg with met level != 1 (ie 98) will use the gen3-4 metlevel
branch.
fuzzed input from #1728 to be hacked (met level = 98)
2017-12-28 10:01:48 -08:00
Kurt
a1f2f8708a Refactoring
pass identifier on cloning pkm
remove unnecessary ref for passing Data (not modifying array reference)
const some magic numbers
2017-12-27 16:36:24 -08:00
sora10pls
c3d5266b89 Add XY gift Lapras ability check 2017-12-23 18:28:00 -05:00
Kurt
ea76d6a899 Misc tweaks
minor perf improvements (don't ToList for encounter slots, store all
slots incrementally); has better performance for legal pkm checks
2017-12-23 11:49:20 -08:00
Kurt
7f21728e84 Add area->location references to remaining slots 2017-12-23 11:48:10 -08:00
Kurt
5e59e20ea1 Store matched encounter generation
previously was only defined for gen1/2, why not all gens
can now query encounters in Core for encounters per generation via
reflection; can help group encounters for data vis or be faster than
getting individual gen numbers
2017-12-18 16:17:21 -08:00
Kurt
80baaea3b7 add b2w2 n's pokemon PIDs
add b2w2 fixed PID encounters (N's Pokemon), move nsparkle to this class
redo static encounter cloning
2017-12-18 15:25:40 -08:00
Kurt
24b5cc48ed Fix gb encounter move comparison
don't calc NoMoveReminder for non-gen2 formats, also fix comparisons
(gen1 || gen2&&noRemind)
Closes #1707
2017-12-17 21:26:31 -08:00
Kurt
47eee3aa98 Add roto powers as held items
not gonna add sprites because these are useless, anyone can submit via
pr (image might need downscaling to <15x15)
Closes #1703

remove useless null checks (throws the exact same exception it would if
it were not there, except without detail)
2017-12-16 19:52:06 -08:00
Kurt
21c1dde3a7 Fix static encounter gift / egg edge case
extract EncounterStatic match determination; in doing so fixes "lvl" by
passing byval.

Pichu encounters (2) come before the Gift level 25 pikachu, causing lvl
to be dropped to 5. When pikachu comes around, it compares 5==25 -> bad;
pulling out the method and passing byval allows it to be 25 at the start
of every new encounterstatic checked.
2017-12-16 18:24:03 -08:00
Kurt
0b58d4ffe9 Add form/nature checks for gen5 trades
altform wasn't checked for EncounterTrade
nature wasn't checked for gen5 origin (decoupled from PID, but forced)
#1702
2017-12-16 14:09:03 -08:00
Kurt
e5aa39a6bb Refactoring
get language list now doesn't return new objects (or re-enumerate)
update rand usage to be inclusive for top bound, extend shuffle to
collections
remove unnecessary location overrides (already overriden in legal fetch)
2017-12-14 20:58:55 -08:00
Kurt
b5640de538 Misc tweaks
reorder some args, reuse some standard methods;
add spanish for gen1/2 egg name case
2017-12-14 16:16:47 -08:00
Kurt
9a39f818f9 Misc fixes
#1700
dp personal: add wormadam/deoxys manual forme count values
generator: bcc handling for pkm present in & out of bcc, and static/wild
duplicates
util: fix incorrect variable reference
2017-12-13 16:17:02 -08:00
Kurt
a9ff74059a Misc perf tweaks
checking untraded should just check for the first character (rather than
creating string object)
hashset for wild6 balls
2017-12-13 16:12:53 -08:00
Kurt
816ebf6b0e Refactoring
no functional change
2017-12-11 16:01:24 -08:00
Kurt
dd21f9375f Misc updates
Disallow sandygast on US
Add 2 more records
thanks @feralfalcon
Closes #1698
2017-12-08 08:54:00 -08:00
Kurt
a43880184a Fix artist ribbon gen6+
having 4 ribbons is sufficient (normal/super/hyper/master = 4, etc)

https://projectpokemon.org/home/forums/topic/42933-2-issues-invalid-ribbons-artist-encounter-level-in-origin-game/
2017-12-07 07:57:07 -08:00
Kurt
f9946368a0 Remove usage of LegalityAnalysis from PK*
CK3<->XK3 transfers to PK3 first now (no direct transfer legally)
2017-12-06 21:28:34 -08:00
Kurt
bd9f7fc7e2 Remove fossils from usum capture list 2017-12-06 21:05:36 -08:00
Kurt
4550f656d0 Update gs vc check female
will be revised when/if vc-c is released
2017-12-05 15:08:02 -08:00
Kurt
88f67ebd36 fix crystal gender flagging
C->GS->Gen7 keeps female OT but gives GS version
also fixes wrong logic path for format2
thanks randomdice101
2017-12-05 14:43:02 -08:00
Kurt
5bc2e6da88 Refactoring
de-linq some areas where direct accessing is possible (list/array)
2017-12-04 20:16:54 -08:00
Kurt
4a63769351 Add voltorb to beast ball permissible table
closes #1694
2017-12-04 16:54:09 -08:00
Kurt
3d7b2a2b29 Misc tweaks
RNG frame mismatch -> fishy (for now)
fix xmldoc copypaste
clean up some resharper warnings
2017-12-04 16:26:26 -08:00
Kurt
1007c5ddb8 don't flag pokespot for frame not matching
#1693
2017-12-04 16:05:21 -08:00
Kurt
a5dbdf91bd Misc tweaks
detect antishiny cxd
remove unused using
don't set caught for seenAll (gen7 dex)
2017-12-04 13:18:28 -08:00
Kurt
6773a2801d update static/magnet slot permutations
using certain slot modifiers (swarm/game pak) causes different
arrangements of slots for different static/magnet pull groups to pull
from

store a list of permuted/different slots and add them to the table at
the end with the rest

move static/magnet pull marking into gen4 methods (only leave for gen3)
move trophy slot generation into gen4dppt area fetch (necessary for
static/magnet permuting)
fix electric off-by-one (yay for curse ??? type shifting everything)
2017-12-03 12:20:53 -08:00
Kurt
f21906ee9a store gen3 origin seed for default frames 2017-12-03 07:13:28 -08:00
Kurt
d301cb5469 Remove ESV rollback for varied level encounters
ESV rand is stored uniquely now via generated frames from FrameFinder,
no need to roll back.
2017-12-02 22:34:54 -08:00
Kurt
133cc22f50 Add bypass for gen4 unown
meh
2017-12-02 19:54:50 -08:00
Kurt
9c32b36709 Don't reuse friend safari message
use the string format variant that has less hints.

https://projectpokemon.org/home/forums/topic/42869-bugg7-ditto/?tab=comments#comment-224365
2017-12-02 18:54:41 -08:00
Kurt
e06b7945ad
Merge pull request #1682 from wwwwwwzx/master
Breeding ball legality fixes
2017-12-02 16:40:42 -08:00
Kurt
15489b8a7c Use dppt specific rand calls 2017-12-02 15:44:44 -08:00
wwwwwwzx
21a31c9fce Breeding ball legality fixes
Unban safari ball Slakoth, Pichu and Igglybuff, beast ball Helioptile.
2017-12-02 15:44:04 -08:00
Kurt
87748e18c9 Continued updates for frame generating
fixes broken test, provide encounter proc call
2017-12-01 22:49:38 -08:00
Kurt
40ec87fc9d Add gen4 lead frame finding variants
can use level call or not at all (fixed slot)
still untested, assumed same call order as gen3.
2017-12-01 21:23:37 -08:00
Kurt
48242109fd Rework lead required to flags 2017-12-01 17:27:09 -08:00
Kurt
15ab0d5aff Add origin seed for frame output
looks like for gen4 I have to yield twice as many frames (for FixedLevel
and non) as level call usage is dependent on encounter
2017-12-01 16:33:03 -08:00
Matt
1fcac7c06b
Fix level check compare 2017-12-01 15:13:03 -05:00
Kurt
4b954cd102 Add static/magnet fail enum value
can fail leading to regular ESV calc
2017-11-30 23:07:11 -08:00
Kurt
5d74096243 Apply static/magnet groups by slot type
only apply for emerald (only game in gen3 that supports it)
2017-11-30 22:34:57 -08:00
Kurt
de25056275 Check SOS hidden ability minimum IVs
Closes #1675
2017-11-30 21:06:11 -08:00
Kurt
2ab805ba98 Add method h safari analogues for ESV->slot 2017-11-30 19:31:38 -08:00
Kurt
8c675793ba Fix gen4 trade nickname/ot check
Closes #1672 by changing length check to check the correct dimension
add handling for DP english trades (localization error).
2017-11-30 18:13:30 -08:00
Kurt
9930e8765a Add frame level checking
still WIP but should be working fairly well
2017-11-29 23:20:49 -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
36894a588d Add FRLG unown frame matching
Turns out there was no documentation anywhere on encounterslot numbers
for the individual forms; some sites had overall rates.
Assuming a human filled out the encounter slots, forms would repeat left
to right until a new form takes over. Below slot numbers match the rates
when summed up.

https://pastebin.com/raw/bQt3ZMbq
2017-11-29 18:28:20 -08:00
Kurt
8f8cf5bc9a Fix tradepair calculation (link trade eggs)
returned invalid pair values for gen7 due to 2 unused game IDs between
the gen6&gen7 pairs
2017-11-29 09:21:17 -08:00
Kurt
dc2ef24fcd Handle fixed lang trade name detection explicitly
edge cases suck
2017-11-28 22:26:31 -08:00
Kurt
dd7684735a Add Frame mismatch illegal message handling
encounter will no longer be ignored as valid, will instead show the RNG
frame mismatch message.
2017-11-28 21:30:53 -08:00
Kurt
c7a59453b1 Fix frlg safari rod slot checks
tfw whole legit boxes of dratini were flagged -> now legal
2017-11-28 20:56:21 -08:00
Kurt
fb4fffffa0 Change rse feebas to swarm slottype
behaves the same as a swarm pkm in terms of proc (50% -> level ->
generate), so have it travel the same code path.
2017-11-28 19:41:29 -08:00
Kurt
0bc2ee0938 Skip scatterbug static encounter forme check
closes #1668
add 2/3 pkms provided as test cases (spewpa can be ignored, close
enough. just want an evo & orig).
2017-11-28 19:29:25 -08:00
Matt
42d6d483f2
Comment out Old Amber Aerodactyl 2017-11-28 19:10:56 -05:00
Kurt
1e0bf7b6ea handle hgss volty pikachu trade lang swap
en<->fr
not sure what FR has for the pikachu language (is it EN? if so the code
here works fine); if not, the OT should be checked for lang detection.
2017-11-27 23:21:19 -08:00
Kurt
c5b7ebf50a Add egg forme check
all other egg formes that are disallowed are checked later; check for
totems here
Closes #1667
2017-11-27 18:13:54 -08:00
Kurt
b2c3884391 Permit 5->6+ forme mismatch keldeo
BW tutor -> transfer up doesn't update the form
thanks @wwwwwwzx !
2017-11-26 22:19:27 -08:00
wwwwwwzx
f70dab1d19 Remove duplicates
oops..
2017-11-26 20:45:27 -08:00
wwwwwwzx
5886b3e609 ban beast ball fossils
- Add G1/G3/G6 fossils to Alolannatives
- Ban all fossils in beast ball
2017-11-26 20:38:52 -08:00
Kurt
be4d30bb6d Add pokeblock slot filtering
since there's 300 calls to rand to shuffle, I wouldn't be surprised if
there are vblanks messing up the frames

judging from my data 6 years ago (wow, still wrong, just look at the
frame offsets)

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

looks like it happens quite erratically. may have to just override this
to return true for all gen3 safari mons as it's entirely unpredictable.
2017-11-26 20:07:38 -08:00
Kurt
187726b4af Use static/magnet pull values
reorganize a little for lead use cases
2017-11-26 16:09:24 -08:00
Kurt
22abce5e16 Update gen3 frame finder 2017-11-26 14:48:55 -08:00
Kurt
0f3529e764 Add gen3 swarm encounter slot call
via pret/pokeemerald (and pokeruby); rate is set at 50%
swarm pokemon have the ability to have 4 fixed moves, so derive from
EncounterSlot to have moves, and remove special handling from
VerifyCurrentMoves (now picked up by IMoveset pattern
2017-11-26 11:00:54 -08:00
Kurt
1162ba5b3d update bcc slot table
https://pastebin.com/Y0VRnJxu
not sure what the 2nd rand value is

still some things to sort out with RoC's PC
2017-11-25 22:28:38 -08:00
Kurt
2be84b6005 Rework encounterslot location fetch
store ref to area instead of location, useful for fetching sibling slots
from the parent.
2017-11-25 18:16:50 -08:00
Kurt
690cbaae79 Unban fossils
except for aerodactyl (old amber not obtainable)

https://projectpokemon.org/home/forums/topic/42761-fossil-legality-issue-usum/
https://www.serebii.net/itemdex/clawfossil.shtml
etc
2017-11-25 15:20:45 -08:00
Kurt
ad5e69550e Add hgss safari slot block priority bypass
allows hgss safari mons regardless of frame call (table is currently all
Slot=0).

may need separate handling down the road:
* switch slot number to an enum for slot codes (>0 = slot number, less
than -> do something else).

not something im interested in right now
2017-11-25 15:03:37 -08:00
Kurt
fbce8582c7 Add encounter slot checking
emerald silly stuff like magnet pull not implemented so some stuff may
be not matched.
2017-11-25 13:53:39 -08:00
Kurt
76903bce9f Fix gen4-6 gen4 origin encounter type defer check
only check etype if appropriate (not gen7+)
2017-11-25 09:48:49 -08:00
Kurt
d1bae13250 Add flagging for crystal transfers
users should know better but best to know
allow gen2 female when from crystal
2017-11-24 18:19:16 -08:00
Kurt
20cd29c088 remove mind blown for sm
off by one
Closes #1658, thanks @Ntonio36
2017-11-24 12:05:08 -08:00
Kurt
3483b4bb91 Clean up vc2 legality/transfer stuff 2017-11-24 10:13:42 -08:00
Kurt
b8a5657d5a misc tweaks
pull out transfer locations to const references
add vc2 & crown beast/celebi met location suggesting
add vc2 crystal sensitive detection
add 2 more usum trainer stats (thanks holla!)
2017-11-22 21:45:30 -08:00
Kurt
4bbe586981 block ash greninja from USUM game origin
should really be part of a 'receivable by game' check; not doing any
more of these edge cases. need card hash -> permit bits for future
cases.
2017-11-22 08:24:54 -08:00
Kurt
d834ae3ccf allow banned pokemon for BattleTreeGreat in USUM
stupid banlist removal case
master still downlevels/bans
2017-11-22 08:23:50 -08:00
Kurt
d5411f1453 Add nickname flag override for encountertrade
closes #1649
2017-11-22 08:11:53 -08:00
Kurt
9806677d5e EncounterType init update
move MarkEncounterTypeData back above the area size reduction so that
the mark-by-locationID special handling will work
prevent slottype from becoming overwritten if already defined by special
case handling

add examples provided to automated test cases
closes #1648
2017-11-22 07:52:17 -08:00
Kurt
f25b4fea9c Add forme range check method to personalinfo
relocates logic to better location
2017-11-21 18:32:27 -08:00
Kurt
b2b6df7808 Shuffle encountertype loading around
add rocksmash type for cianwood
closes #1646
2017-11-21 18:32:26 -08:00
Kurt
05f2968c95 Add wormhole species to AlolanCaptureOffspring
allows apricorn & beast balls
2017-11-20 17:16:16 -08:00
Kurt
8f5fbeb504 allow pupitar hidden ability on 2->7
yay
2017-11-19 19:48:45 -08:00
Kurt
a570d13dc5 Quacklin’ edge case
can't be bothered remapping the input file to match encoding/decoding
tweaks. best to just handle this one case.
2017-11-19 19:37:25 -08:00
Kurt
01dacce214 Add gs transfer met location
30017
2017-11-19 19:19:35 -08:00
Kurt
ef9722153f move evochain fetch outside of location iterator
also relocate gen12 code so it only runs for gen12
2017-11-19 15:26:41 -08:00
Kurt
6d3ee54d44 Reorder case fallthrough
closes #1631
based on
5859daf1d8
any case -> reverse game order
2017-11-19 13:15:32 -08:00
Kurt
1b9d657c2f Remove double encounter slot species filtering
GetValid already filters by species
move some common non-location code out of the method; can be done for
the dexlevel fetching too -- future improvement.
2017-11-19 12:41:23 -08:00
Kurt
5859daf1d8 Add maxspecies checks for gen7
accesses arrays outside the range for the new USUM species
Closes #1631 , add test case
also adds lycanroc test cases for #1630
2017-11-18 21:50:48 -08:00
Kurt
6b281cbefe more rockruff 1 handling
y u do dis gf
Closes #1630
2017-11-18 20:08:11 -08:00
Kurt
3b5e6239de Add usum pelago encounters
nothing exclusive, but different from sm
https://pastebin.com/NhAA1vJn
2017-11-18 13:53:51 -08:00
Kurt
6394dac19f Rework mysterygift pkm sprite generation
don't bother converting to pkm then generating the sprite off that; use
the overload with int/bool

removes sav/pkm dependency for generating gift descriptions, and
standardizes the names a little. maybe a PKMBase interface would be
useful...
2017-11-18 11:34:23 -08:00
Kurt
f7e20a3c43 Misc tweaks
fix roamer3 not setting IVs
fix usum z items rightmost pixel getting chopped off
use Gen* instead of GenNumber for specific cases (faster)
add WasGiftEgg location case for Gen7
remove some unnecessary array allocations
2017-11-17 22:19:23 -08:00
wwwwwwzx
f48e6f711a Unban white/orange Flabebe HA
obtainable from SOS call
2017-11-17 20:19:41 -08:00
Kurt
311e110f6b Block wild dusk rockruff
closes #1627
adds test cases
2017-11-17 20:02:01 -08:00
Kurt
61c0bf5271 Fix italian/german b2w2 yancy/curtis OT swap
https://projectpokemon.org/home/forums/topic/42528-bw2-in-game-trades-yancycurtis-20171117/
2017-11-17 08:38:38 -08:00
Kurt
5ae7c9a5da
Merge pull request #1623 from ReignOfComputer/master
Flip Valid Trade OT Compare Operator
2017-11-17 08:31:30 -08:00
Kamron Batman
d2d04075bc Replaces PCD.pkl with WC4.pkl. Tested and working. 2017-11-17 08:11:49 -08:00
ReignOfComputer
69f11ec3bc Flip Valid Trade OT Compare Operator
Related:
https://projectpokemon.org/home/forums/topic/42528-bw2-in-game-trades-yancycurtis-20171117/
2017-11-17 23:57:55 +08:00
Kurt
55d8f4aa26 Add rockruff event evo edge case
different altform IDs
2017-11-16 21:04:51 -08:00
Kurt
025b8da52c Flag invalid forms on sav compatibility check
closes #1615
2017-11-16 14:30:18 -08:00
Kurt
8958646ae6 Fix game specific pair evolution comparison
US table with SN result in false; just check the even/odd for these (as
they are pair specific).
Closes #1611 , thanks @Ammako !
2017-11-16 14:20:13 -08:00
Kurt
0cfb79a3e2 handle hacked edge case input
gen7 pkm version on format5 -> exception on new int[-X]
normally caught via exception suppression but better to handle the
cause.
2017-11-15 18:13:04 -08:00
Kurt
725d094a0d Add dusk form rockruff check
Repurposes "alolan only form" to specify that the form cannot be
obtained with the current game of origin.
Closes #1611

sorry for butchering any translation
2017-11-15 16:28:47 -08:00
Kurt
5fbf331827
Fix trade evolution check
incorrect behavior; check for milotic case if appropriate first
Closes #1609
2017-11-15 10:11:05 -08:00
Kurt
897ed84933 update milotic specific evolution checks
verifier: return true if detectably traded
check: invert condition to skip out if it is verified traded
2017-11-15 08:36:09 -08:00
Kurt
3832a8afd4 Fix noibat trade gender
closes #1608
2017-11-15 08:23:45 -08:00
Kurt
5e6b2f43c2 Update wild/egg generators for totem cases
so wonky edge cases
2017-11-14 08:43:04 -08:00
Kurt
8b5803781d Add bewear location
All static encounters have been found!
Closes #1577
2017-11-13 20:50:10 -08:00
Kurt
4341dc1775 Add Galactic Key to usum key items permitted
add zygarde cube reconstructs gifts, thanks @sora10pls !
2017-11-12 21:56:08 -08:00
Kurt
9b61c94402 Add ditto5 natures
thanks @wwwwwwzx for pointing this out

remove others that have encounter details forced (for totem battles)
2017-11-12 12:15:08 -08:00
Kurt
55c31cb598 Update encounters
add ability locks for sm gifts
add poipole secondary location
add magearna details
2017-11-12 10:59:23 -08:00
Kurt
54b9fa7c93
Merge pull request #1592 from sora10pls/patch-1
Update USUM static encounter list
2017-11-12 09:18:31 -08:00
Kurt
064d18c13f Add necrozma special forme moves
not present in the levelup movepool like they should be...
2017-11-12 09:17:59 -08:00
Matt
6ecc7f2efb
Update USUM static encounter list 2017-11-12 12:08:48 -05:00
ReignOfComputer
0b95f7d4b8 Porygon/Zygarde/Trainer School Encounters 2017-11-12 22:29:21 +08:00
ReignOfComputer
f1e7c0f759 Hypno Trio Encounter at Hau'oli City PD 2017-11-12 18:33:06 +08:00
Kurt
dea70bf243 Add cosmog & zygarde gift locations
thanks @architdate !
(thanks @bui for the pikachu!)

porygon remains
2017-11-11 17:24:49 -08:00
Kurt
d674ea4f39 Add surf pikachu details
Closes #1589
Thanks @PolarPeridot !
2017-11-11 17:16:31 -08:00
Kurt
e6c68a8fc9 Add heavy ball permissions for USUM
heavy ball now works in USUM
2017-11-11 16:26:22 -08:00
Kurt
5d90e9dc53 Refactoring
check alolan forms for forme matching, break up large method to
something a little more understandable.
2017-11-11 09:35:07 -08:00
Kurt
f5a6f23161 Add more static enc data
clear out unused (highly certain) SM encounters
add solgaleo/lunala locations
add partner form pikachu
2017-11-10 19:43:31 -08:00
sora10pls
6cd2a08238 Fix Type: Null location 2017-11-10 13:19:47 -05:00
sora10pls
1d44c45fe0 Fix indenting 2017-11-10 13:16:43 -05:00
sora10pls
6f58698187 Add more static encounter locations 2017-11-10 13:08:36 -05:00
Kurt
41a60dda78 permit necrozma formes 1&2
and 0.
was eventually reaching the Battle Megas list so insert this abort-early
detection.
2017-11-10 09:22:41 -08:00
Kurt
30f07fc979 Fix wishiwashi handling
totem wishi isn't a gift because it isn't really a totem
2017-11-10 08:42:25 -08:00
Kurt
a3b8b15b4d
Merge pull request #1582 from ReignOfComputer/master
Normal Pokemon @ Ultra Space Wilds / Sandygast @ Route 15
2017-11-10 05:21:35 -08:00
ReignOfComputer
7dd8dd970f Normal Pokemon @ Ultra Space Wilds 2017-11-10 17:29:20 +08:00
Kurt
af91388792 Return empty enumerables for invalid table fetch
shouldn't ever be called but best practice
2017-11-09 22:17:55 -08:00
Kurt
b3436cb791 Add totem forms selection/spritemod and req changes 2017-11-09 21:52:11 -08:00
ReignOfComputer
ec6e485c50 Sandygast @ Route 15 2017-11-10 13:14:18 +08:00
Kurt
23d57f8807 Add ditto5, necrozma
fix tab for oras flag resource
2017-11-09 21:11:19 -08:00
Kurt
38f4f773f3
Merge pull request #1580 from sora10pls/patch-1
Add several Ultra Warp Ride locations
2017-11-09 20:12:39 -08:00
Kurt
139e130b82 evo table / check update
prune froslass/gallade evolution tree pruning by editing the binary like
prior commit for sm

fe66a65464 (diff-e0f20441fd5149efa4e829994c94f683)

revise banlist interaction for usum evos (need to trade to USUM to be
able to undergo these evolutions).

Closes #1570 (evolution table issues), other open issues can catch any
other/unrelated fallout.
2017-11-09 19:47:01 -08:00
Kurt
5e2e4fd6f1 Add usum evo table
repacked garc as mini uu
2017-11-09 19:27:16 -08:00
Kurt
519e21a9bf Permit totem mimikyu forme (not battle forme) 2017-11-09 19:26:47 -08:00
Kurt
104a9d622e Add non-alolan native species for ball tables 2017-11-09 17:56:52 -08:00
Matt
c1de054c7f
Add several Ultra Warp Ride locations
- Cresselia
- Swanna
- Drapion
- Audino
- Medicham
- Magcargo
- Quagsire
2017-11-09 20:27:14 -05:00
Kurt
4deb24cc95 Add gender locks
lots of totems with fixed genders (not capturable), but some other
slightly important ones needing enforcement.
2017-11-09 16:32:09 -08:00
Kurt
55820246cf Misc tweaks
mark SOS slots for usum, only permit varied alolan evos to be forme
changed (blocks totem raticate from being matched to non totem forme
inputs)
2017-11-09 16:18:30 -08:00
Matt
82a7502cf4
Add Poipole location 2017-11-09 19:10:11 -05:00
Matt
273231ad00
Add USUM Pinsir on Exeggutor Island locations 2017-11-09 16:56:10 -05:00
Kurt
ccdb84b851 update for some errors
restore ekans values, re-add antishiny for yungoos set
2017-11-09 07:22:34 -08:00
Kurt
b615ef0057 Update static7 with more data 2017-11-09 07:17:36 -08:00
Kurt
ae0122254a Add abilities & IV3 flags for usum gifts 2017-11-09 06:43:11 -08:00
Matt
800a6b32b8
Merge pull request #1 from kwsch/master
Update from upstream repo kwsch/PKHeX
2017-11-09 02:02:42 -05:00
sora10pls
38cbf160ec Add Totem-Sized gift ability/version checks 2017-11-09 02:01:09 -05:00
Kurt
2af7b152a7 re-enable error suppression
oops
2017-11-08 22:59:18 -08:00
Kurt
665e94b0aa misc cleanup
add german forme names
truncate some forme names
fix nidoran gender symbols

adds null check for invalid (caught error) pkm

disables accessory giving (needs more research)
2017-11-08 22:56:42 -08:00
Kurt
28d15bb06e Permit usum met locations & add new move PP counts 2017-11-08 20:32:23 -08:00
Kurt
ab8faac55d Update legal tables with usum species 2017-11-08 20:23:06 -08:00
Matt
a8000608f2
Add more USUM static encounter locations
Totems @ Heahea Beach, Island Scan.

Grovyle is Akala-Friday @ Route 5, as is Bellsprout in SM; assume locations were unchanged.
2017-11-08 22:56:13 -05:00
Kurt
115c611120 add surf to gift pikachu moveset
only gift pkm with special move
2017-11-08 19:51:04 -08:00
Kurt
93b49928a0 add lvl/egg move tables for usum
add a few met locations for static encounters, recognizes torracat with
double kick correctly!
2017-11-08 19:31:07 -08:00
Kurt
93bd974249 Add EncounterStatic data
sourced from Ultra Moon, location IDs are not known (need manual docs).
Many of these may be unused, like last gen. Will eventually remove
unused ones once crowdsourced effort finishes.
2017-11-08 18:43:55 -08:00
Kurt
0caa0dec72 Group forms with special battle formes check 2017-11-08 16:27:35 -08:00
Kurt
800ba6cf90 encounter additions
add ingame trade data
add placeholder SOS data containers
add refs to all wild encounters (pelago is same as sm)
unmark some todo's
2017-11-08 15:07:04 -08:00
Kurt
cf35adca6f Add roto blank item handling
preserve input data
2017-11-08 14:12:41 -08:00
Kurt
47058d5709 Permit loading of usum met locations to pkmeditor 2017-11-08 13:44:55 -08:00
Kurt
80bedb97c4 Misc tweaks
Adds game names for languages other than english
adds z crystal sprites for held items
temp-fixes chinese pkm names (need manual translation for the new
species)
remove newline at eof
toggle back on legal item lists, add assumed Key Item list
differentiate duplicate item name strings (-arizers)
2017-11-08 13:06:20 -08:00
Michael Scire
78acb8e13b Fix save resigning for USUM, add resources for new pokemon 2017-11-08 11:31:09 -08:00
Kurt
ae773f189b add usum tutor data
one large list at static.rodata:005E6860, formatted to look like AO
table with deletions & insertions at the bottom.
bitflags are used in one large set (not 4 chunks of 4 like prior).
2017-11-08 01:25:10 -08:00
Kurt
ece66e1a02 Misc tweaks
allows loading of species > 720 lol
still nowhere near done (large task is resource acquisition)
2017-11-08 00:51:08 -08:00
Kurt
543736d568 Early rough USUM compatibility
need to dump string resources, sprites, and repoint the form list string
fetch later. tons more to do

no guarantee of any working functions
2017-11-08 00:34:32 -08:00
Kurt
9ef4152736 add more xml docs 2017-11-06 22:44:51 -08:00
Kurt
6df1f97f95 early abort on altforms < 1
prior generations store 0 instead of 1 for some cases

24121553b4 (commitcomment-25445089)
2017-11-06 21:08:39 -08:00
Kurt
24121553b4 Add savegame sensitive pkm legality checking
uses the forme count of the savefile (rather than a futureproofed
same-gen forme count)
Closes #1559
2017-11-06 19:31:24 -08:00
Kurt
9cac3738dc Add handling for mid-chain lowlvl encounter evos
haunter caught at level 20, transferred at 24, leveled once as gengar
did not allow gengar in the chain as it is assumed (incorrectly) that
gengar is evolved after transfer.

determine if the lower levels of the next step's evolution rung are
valid, using the same logic as pikachu case but to handle the other side

Closes #1564

(should probably refactor the encounter chain generator to use the base
encounter data if known, but oh well works fine and isn't a cpu hog)
2017-11-06 18:21:58 -08:00
Kurt
38989b4747 Export correct species name for verbose output
#1564
2017-11-06 18:06:23 -08:00
Kurt
0f69c1116e Add unown gen2 invalid form check
closes #1565
2017-11-06 17:13:16 -08:00
Kurt
f959179e1a add more colo encounter locations
dogs had hypothetical met locations, now fixed (y u so weird cxd)
Closes #1556
2017-11-03 21:33:48 -07:00
Kurt
f48afaf12d Switch slottype to flags
simplifies some logic, adds some documentation, speeds up loading very
slightly
2017-11-03 17:14:18 -07:00
Kurt
d7300ce68f Cleanup
add amoongus route22 encounter
fix typos in comments
resharper suggestions for recent pr
2017-11-02 21:37:28 -07:00
Kurt
495eb26740 Rework colo starter PIDIV detection
force colo starters to be male only
use some c# lang features for EncounterType flags

add edge case PIDIV detection for starter gender/shiny lock scenario

adds a little documentation for those unfamiliar with the NPC PKM
generation quirks.

Colosseum Starters will now be recognized with a different PIDIV type
which is specific to them & them only.
2017-11-01 21:12:44 -07:00
Kurt
60e719a65a Misc refactoring
more usum prep
don't allocate empty array on every savefile creation (use linq All
comparison)
add percent seen/caught savefile properties for data analysis purposes
2017-10-31 09:24:54 -07:00
Kurt
e9cebf933c Fix headbutt encountertype fetch
future improvement can be detecting when "none" is appropriate, but for
now, whatever.
Closes #1502
2017-10-29 20:19:49 -07:00
Kurt
da9e316cd8 Add rock smash encounter type flagging
I don't believe rock smash (EncounterType 1) exists, tests at Route 19
and Vermillion yielded None & City.

Closes #1379
Opens #1502
2017-10-29 19:17:53 -07:00
Kurt
3f533399f2 Simplify slot type loading
instead of 2 similar methods, use params to achieve a flexible method
for both situations

isolate rock smash / headbutt type loading
2017-10-29 18:09:30 -07:00
Kurt
afde4514e2 Add realgam tower / deep colosseum locs
sudowoodo & gsc dogs
closes #1549

fix loading issue for abilities in gen3 format, copy the gen4
sanitization
2017-10-29 10:41:12 -07:00
Kurt
9ada593af9 add gen7 nick ot (trades)
#1249
todo usum table when appropriate
2017-10-28 23:04:02 -07:00
Kurt
d2ebb6340e Add gen5 nick/OT info (trades)
#1249
appears b2w2 is the first game with fixed nature & nonfixed PID (based
on RoC's specimens), so can't filter by PID on those.
2017-10-28 21:43:47 -07:00
Kurt
e4319fd929 Add gen3 nick/OT info
#1249
2017-10-28 19:51:55 -07:00
Kurt
2c73e130af Add gen4 nick/OT info
#1249
2017-10-28 19:02:18 -07:00
Kurt
9d0b153eab Add egg hatch suggestion for b2w2 2017-10-28 14:00:44 -07:00
Kurt
a401db608e Split trade encounter nick/OT verification methods
#1249
2017-10-28 13:15:51 -07:00
Kurt
0e9960909b Refactor encountertype check to bitflags
#1379
need to double check none permissive later
2017-10-27 23:57:21 -07:00
Kurt
00a4c1adf5 Add multilang c/xd ingame gifts
save space by just using a loop
closes #1529 , pokespot proc discussion relocated to associated issue
(as previously noted in comments)
2017-10-25 21:53:55 -07:00
Kurt
a6ef105544 Update gen3/4 encounter generators
revisit for simplification now that EncounterTrade matching is more
precise (PID required to match).

#1249
2017-10-24 22:25:52 -07:00
Kurt
59319a614a Add PID values for Gen3/4 ingame trades
#1249
2017-10-24 22:24:29 -07:00
Kurt
933bfba8e1 Misc cleanup
check gen2 stadium names, use pkm.Japanese when favorable
2017-10-24 18:27:40 -07:00
Kurt
69cf1eaa9c add more pkhex.core xml documentation
adds a bunch of documentation useful for those unfamiliar with the core
library
2017-10-23 23:12:58 -07:00
Kurt
60562fb44e Use empty enumerable when appropriate
no allocation == no pressure for garbage collector
2017-10-23 15:44:01 -07:00
Kurt
a03ac10fc5 Misc refactoring
no functional change
2017-10-22 23:26:37 -07:00
Kurt
515a694afa Add LanguageID enum
no functional change, just less-magic-numbers for easier to understand
src
2017-10-22 21:01:08 -07:00
Kurt
44c80bd722 Exclude light ball pikachu from gen1 species setter
Thanks Dunsparce!

https://projectpokemon.org/home/forums/topic/41880-yellow-version-pikachu-editing-bug/

non-functional change but fix misuse of gameversion checks (used X/Y
instead of YelloW)
2017-10-22 17:11:48 -07:00
Kurt
096f6bbd18 Add RANDY Gen2 ingame trade
closes #1538

rename pid deferral to pidiv deferral for clarity
2017-10-22 10:41:27 -07:00
Kurt
c5b0ed6c35 Move encountertype deferral to main generator
gen4->gen5/6 electrode will match static & wild slots, but deferral only
defers within the same IEncounterable group.
2017-10-22 09:42:15 -07:00
Kurt
528593b59e Disallow crystal tutors if VC 2017-10-21 19:01:23 -07:00
Kurt
39279a7ad4 Add VC transfer checks
checks were previously only performed when finding the encounter, once
found, the GB encounter was validated. the transfer encounter is derived
after all encounter checks, thus remaining unchecked (really, only for
Locations).

Move generating logic to the generator, and double check the locations
are valid.

#1535
Thanks @DJPanda065 !
2017-10-20 21:07:15 -07:00
Kurt
00adfda6e4 Flag Hidden Ability -> other change (hacked)
Closes #1535
2017-10-20 20:10:56 -07:00
Kurt
0e24b5237e cleanup
remove redundant/repetitive match update (updateTypeInfo with Format>=7
already updates the encountermatch just prior to this method call)
2017-10-20 20:10:13 -07:00
Kurt
ae0bf5c75c remove (None) egg gen4 hatch location 2017-10-19 22:00:31 -07:00
Kurt
a75614ed77 Modify eggmove fetch
fetch is exclusively done with version already known; there are cases
where version can change for eggs so it's safer this way.

version change reference (gen6+):

212a489335
2017-10-19 21:20:47 -07:00
Kurt
a561948371 Detect mixed->fixed gender incompatibility
Calculate and compare the original encounter's gender's as well.

exclude azurill gender change (only case where this can happen) by
continuing the if-else.

Add Snorunt-Froslass to FixedGenderFromBiGender.

Thanks Davil !
2017-10-19 20:56:59 -07:00
Matt
4353f39286 Ban Sport Ball 2017-10-19 14:33:39 -04:00
Kurt
a53e8ddb7e Fix grotto mienfoo level range
Thanks paf!
2017-10-18 21:16:52 -07:00
Kurt
5a09cd9122 Add deferral case for gen6 magmar classic ribbon
use "when" for easy src code

Thanks Nessus!
2017-10-18 18:28:17 -07:00
Kurt
cd6dfceb9e Update fateful/shiny lock check gen3 wc3
VerifyFatefulMysteryGift wasn't hitting for WC3's (g.Format == 3);
simplify that branch and reintroduce the shiny check as a separate
method

Thanks Davil!
2017-10-18 18:18:23 -07:00
Kurt
886b2ef632 misc refactoring
simplification / splitting, also more usum prep and other readability
updates
2017-10-17 23:19:34 -07:00
Kurt
0cc60e6006 Change lookup arrays to hashsets
faster checking (slightly negligible but using the correct data
structure for the use case)
2017-10-17 22:06:07 -07:00
Kurt
a9261a1eec Fix starly safari ball species ID
not staravia dawg
Thanks Britty!
2017-10-17 19:23:22 -07:00
Kurt
18aa7fe100 ban more safari/hidden ability pairs
https://projectpokemon.org/home/forums/topic/41840-bug-pokemon-in-ball/?tab=comments#comment-221383
2017-10-17 09:08:48 -07:00
Kurt
4d91aad876 Flag gen2 egg moves when transferred from gen1
move must be removed 2->1 so cannot be permitted as egg move.

remove unreachable code (ParseMovesRelearn only is called for Generation
>= 6, and thus Format != 2).
2017-10-16 17:24:19 -07:00
Kurt
e744dcc340 Add OT too short check
apparently some people can be this oblivious
2017-10-15 18:11:20 -07:00
Kurt
0120263bd3 Cute Charm gender ratio changing edge case
Thanks @Admiral-Fish !
2017-10-12 23:18:43 -07:00
Kurt
02c06d154b Split item cap for usum prep 2017-10-10 19:30:55 -07:00
Kurt
b63e444e15 Add hatch location check for static egg gifts
to match mysterygift check
2017-10-08 14:48:35 -07:00
Kurt
4b135902f3 Allow EV yields for gen1/2 untrained
abusing daycare

https://projectpokemon.org/home/forums/topic/41788-pk2-gets-dinged-for-having-too-many-evs-at-starting-levelxp/
2017-10-07 08:23:05 -07:00
Kurt
c7dfc3d9b0 Cleanup
union / count usages
remove unnecessary stuff
2017-10-06 21:03:23 -07:00
Kurt
a816f4cea6 Misc event egg tweaks
Thanks Kirzi!
2017-10-05 23:13:48 -07:00
Kurt
059451d66e misc tweaks
dictionary species check, max deviation beginnings for USUM
simplification for gen1/2 pokemonlists
2017-10-05 22:37:45 -07:00
Kurt
413cfddb6c Misc tweaks
fix ranch pkm hacks being treated as valid (wrong severity)
fix xml docs relative to recent changes
move kata/hiragana charmapping to be like the Farfetch'd alias
{"'", 0xE0}, // Alias ' to ’ for Farfetch'd
{"’", 0xE0},
2017-10-04 17:21:51 -07:00
wwwwwwzx
384605b127 Misc gen1/gen2 fixes
- G1/G2 only have Hiragana letter he -> fixed Houndoom(ヘルガー) /Heracross (ヘラクロス) default name mismatch
- Fixed Stadium2 Farfetch'd move (Thrash -> Slash)
- Added VC Mew TID check
- Update Chinese legality strings
2017-10-04 00:14:50 -07:00
Kurt
b23658dee1 Misc tweaks
allow cute charm static encounters
ignore user-entry control types
2017-10-01 21:25:23 -07:00
Kurt
44c0b53852 Provide map for Z Crystals KeyItem->HeldItem
allows for loading sprites for the key items (they're smaller than the
key item but better than missingno sprite)
Closes #1504
2017-09-30 20:57:32 -07:00
Kurt
593f31ff02 hashset contains over array contains
faster++, reduces some linq ToArray() allocations
2017-09-30 14:08:35 -07:00
Kurt
3552e6396c Move pidivmatches check outside secondary check
gen3/4 generators auto-defer bad PIDIVs to end, so no need to keep
skipping to the very end
2017-09-30 13:42:57 -07:00
Kurt
1e377c2963 interpolation++
no functional change (assumed)
2017-09-29 22:58:25 -07:00
Kurt
212a489335 Add gen6+ link trade egg edge case
slakoth with play rough with x/y version
why u modify game origin when hatched???
2017-09-28 17:11:30 -07:00
Kurt
a52f88dd5c Add ice punch feraligatr non-relearn link gift move
Thanks cicciochiave!
2017-09-27 08:32:35 -07:00
Kurt
9699cdefae Gen2 egg gift bypass fix
Gen4+ static encounter eggs could slide through the VC case
prevent empty moves from appearing before suggested moves (relearnbase
being empty)
2017-09-26 20:09:18 -07:00
Kurt
ccf9cd2284 Update japanese translation
Thanks smileynation!
2017-09-24 14:44:27 -07:00
Kurt
499126f9a4 Update gen1/2 move fetch
recent commit changed GetEncounterMoves to return 4 always rather than a
variable size array; double check the output for actual movecount
2017-09-24 12:39:12 -07:00
Kurt
1b354624b1 Korean move validation fixes
Korean g/s cannot access gen1 movesets, so pruning gen1 was necessary.
Rather than rebuilding the array (slow), just futureproof the entire
method to not rely on '7' (in case this code is ever used on Gen8).
2017-09-24 10:52:39 -07:00
Kurt
9ef2016d35 Encounter Learnset move duplication fix
a level 15/16 magmar has leer/smog twice in its learnset (at level 1 and
at actual levels); returning just the 4 previous learned moves at level
15/16 yields duplicates for Smog. [Smog, Leer, Fire Punch, Smog | Leer,
Ember]. By ignoring moves already added, the true movepool is acquired

also fix TradebackType getting overwritten at the end of the method (in
case of nontradeback like korean/egg)
2017-09-24 10:36:16 -07:00
Kurt
16341b4d91 Add SPA/ENG Oct16 Diancie collision handling
Card 0525 was accidentally uploaded without the 3 flawless IVs setting;
sometimes when the internal event binary is built, the 3IV card comes
before the 0IV.

Play favorites with the 0IV.
2017-09-23 17:11:19 -07:00
Kurt
d8c2cdb8e3 Use EnumerateFiles over GetFiles in some cases
https://msdn.microsoft.com/en-us/library/07wt70x2.aspx

iterating as an ienumerable (ie not consuming the whole collection) can
be more efficient by not waiting for the whole collection
2017-09-23 17:02:28 -07:00
Kurt
7974943bcf Refactoring
slight simplification related to #1486
2017-09-23 16:24:22 -07:00
javierhimura
ea86032480 Comments and a fix for AllowGen2Crystal function 2017-09-23 21:00:57 +02:00
javierhimura
153206be6c Merge remote-tracking branch 'remotes/kwsch/master' into VC1withVC2tradeback 2017-09-23 20:46:39 +02:00
javierhimura
f3743e490b Korean language restrictions
Restriction happens because Korean can not trade with non-Korean GB era games
- There is no Korean release for gen 1 pokemon, included VC
- With no gen1 pokemon means any Korean gen2 is Gen2_NotTradeback, that means no gen1 origin nor moves are Legal
- Crystal was never released in Korean
- Pokemon Stadium 2 was never released in Korean, that means no move reminder for gen 2 korean pokemon

- Generation 4 can not trade between Korean and not Korean games, but Korean games can use the palpark with any language

Chinese language restrictions
There is no Chinese release for gen 1 and 2 pokemon games, VC Chinese games are in Japanese
2017-09-23 20:46:10 +02:00
Kurt
4a467fcf43 Fix gen5 HA checking for male only species 2017-09-23 07:58:55 -07:00
Kurt
756f9bb8dc Allow gen7 ribbons on gen2 transfers 2017-09-23 07:54:31 -07:00
javierhimura
eda97f4b49 Do not allow gen2 preevolutions for VC1 pokemon in generation 7 2017-09-23 13:16:33 +02:00
javierhimura
f129701ee6 Do not allow gen2 evolutions in generation 2 for VC1 pokemon, gen2 preevolutions are allowed 2017-09-23 13:12:03 +02:00
javierhimura
efc60c3bf8 Change VC1 pokemon tradeback initial status to allow VC2 origin, there is no way to know if the pokemon was traded to gen7 after or before VC2 release
Do not allow gen1 evolutions for VC2 pokemon without gen1 evolutions or preevolutions
2017-09-23 12:58:46 +02:00
Kurt
6e579abfc3 Misc changes
* allow gen2 to have evolutions on gen1 when transferred to gen7
(Core.cs)
* handle korean strings on transfer slightly better (pk2.cs)
* auto-set johto location when changing game ID
* auto-detect VC saves (all have extensions with .dat)

Closes #1478 , thanks @NinFanBoyFTW !
2017-09-22 17:54:43 -07:00
Kurt
a21a70ee4c Fix gen2->7 encounter move args
#1476
suicune water gun
2017-09-22 15:33:33 -07:00
Kurt
496da9e4ab Add ranch ingame trades
debut of the long awaited EncounterTradePID class

gist to generate trades from folder (using LINQPad):
https://gist.github.com/kwsch/d778f1f63e4c393e5440dfb0e14cfcc3

Closes #1458 , although Mew/Phione's PIDIV method is unknown.
2017-09-20 21:28:29 -07:00
Kurt
69e8c071f7 Misc tweaks (apostrophe & vc2 pre)
farfetch'd apostrophe mapping disabled for gen5 and prior
Closes #1474

flag gen2 new moves as not obtainable if transferred from RBY (VC1) as
they must be removed before transferring 2->1.
2017-09-20 16:19:50 -07:00
Kurt
7b6d393b2f Add Hong Kong to Taiwan countries list
Closes #1473
2017-09-20 15:18:33 -07:00
Kurt
1149845db5 Misc database fixes
Initialize move array for WC3 if none are present
Closes #1472
More gracefully handle invalid version pkms in a given format (gen5
origin version pkm on gen4 format no longer throws an exception).
2017-09-20 09:04:30 -07:00
Kurt
b63e53af95 misc tweaks
no functional changes
2017-09-19 23:19:22 -07:00
Kurt
ddb496692d Fix yellow starter pikachu catch rate check
Closes #1470
2017-09-19 22:55:05 -07:00
Kurt
c23cc81212 More usum prep
I think egg hatch location checking is wrong for traded eggs (see gen3
vs future games, origin game shouldn't change but could hatch ORAS egg
on XY at XY location?)
2017-09-19 21:35:30 -07:00
Kurt
772f7d9d87 Add gen3 fateful bypass
no flagging that it's missing (via ingame clearing), implying that it
was traded to RS to hatch.

Thanks @kamronbatman !
Closes #1469
2017-09-19 19:18:13 -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
ad69420ad9 Update gen5 shiny PID generating
Closes #1460
https://pastebin.com/GgcMjmwd
2017-09-17 14:43:28 -07:00
Kurt
eafc28422e Misc gen4 handling updates
Cross-game trading for egg locations (duh)
Volt Tackle AND Fakeout pikachu from yellow forest
Nidoran fullwidth handling in gen4

Thanks Britty!

https://projectpokemon.org/home/forums/topic/41407-pkhex-legality-errors-on-gen-6-updated/?do=findComment&comment=220094

Replicate gen4's string setter for the bigendian variant
2017-09-16 09:58:06 -07:00
Kurt
aa3393e5b2 Misc languageID legality checking update
Checks for max language ID on transferred pkm (gen5 pkm on gen7 can't
have CHS/CHT etc)
handles edge case for JPN B/W ingame trades
update pk5->pk6 transfer logic to bump langID 0 to 1.
Thanks HaxAras & Britty for providing samples!
2017-09-15 17:43:31 -07:00
Kurt
5665481cab Reduce machoke trade minlvl gen1
Thanks Mewtwo!

https://projectpokemon.org/home/forums/topic/41636-ricky-machamp-unable-to-match-encounter
https://bulbapedia.bulbagarden.net/wiki/Kanto_Safari_Zone
2017-09-15 06:42:00 -07:00
Kurt
387d9375c3 Refactor split gender breeding logic
Inherit Levelup moves & hidden ability (gen5) issues addressed
2017-09-14 18:52:34 -07:00
Kurt
c55b3df939 Add nyx antishiny pidiv detection
( ͡° ͜ʖ ͡°)
2017-09-12 00:27:16 -07:00
Kurt
4f9dc69504 misc kor improvements
pk2 objects now detect if they are korean or not
2017-09-10 22:30:41 -07:00
Kurt
1769bcd306 Add no-deferred early break for gen3
c627a86f said it added for both 3 & 4, but was only added for gen4.
2017-09-09 19:27:28 -07:00
Kurt
09bbd57eb7 Fix grammar of new lc strings
thanks @sora10pls !
2017-09-08 09:01:46 -07:00
Kurt
4b83fdbe2c Add preliminary VC2 legality checking
Surprisingly easy to toggle on
If VC, provide possible version the encounter was matched to (to
indicate GS vs RBY).
2017-09-07 23:53:12 -07:00
Kurt
e517b45e51 Add GSC version IDs (supposed)
This is speculation and for preparation purposes only
2017-09-07 23:38:57 -07:00
Kurt
fd2da22d3a Update PKMConverter internals
[insert lenny face here]
2017-09-07 23:18:04 -07:00
Kurt
ddf55ee75a Improve gen1/2 invalid string detection
also spit out recommended TID/SID for c/xd starters
Closes #1443
2017-09-07 21:42:05 -07:00
Kurt
311ea4bc50 Refactoring
relocate memory type detection tables out of MemoryAmie editor
remove casting reference to get text (invalid memories no longer throw
exceptions)
2017-09-07 17:46:21 -07:00
Kurt
c3043b05e3 Staravia->Starly dream ball inheritance
Closes #1445
2017-09-06 21:18:22 -07:00
Kurt
f78e017e47 Fix GSC table loading
Was ignoring G/S slots (only had crystal) thus some special G/S
encounters (underleveled examples being Magmar lvl14) were not
recognized.
Thanks HaxAras!

https://projectpokemon.org/forums/forums/topic/41579-pokemon-silver-under-leveled-pokemon-flagged-as-illegal/
2017-09-06 20:03:36 -07:00
Kurt
423be8b2c0 Add VC1 tradeback shiny check
tradeback implies it was transferred to GS for a bit, thus had to be
transported with the new transporter
2017-09-06 20:02:41 -07:00
Kurt
cbda637981 Remove old (GF fixed) shiny correlation
Transporter was updated
2017-09-06 09:12:56 -07:00
Kurt
d3ebbffb79 Add wordfilter legality checking
WordFilter checking is enabled by default, and is absolutely slow (regex
checking 3,800 patterns for 3 different strings). Utilize a dictionary
to store previously computed values. Seems to alleviate the massive
slow-down.

Closes #1442
2017-09-05 23:31:24 -07:00
Kurt
b948f27646 Add wordfilter
#1442
2017-09-05 22:57:45 -07:00
Kurt
973675b6c4 Handle bad evolution table data edge case
for whatever reason, slowpoke's gen7 data -> slowking didn't clear the
level to 0; so handle the edge case by sanity checking
2017-09-05 22:11:52 -07:00
Kurt
76ff629006 Flag invalid nsparkle
previously would only flag if it was missing on npokemon
also fix gen5 traded egg locations
move egg ribbon verification to the new class
2017-09-05 20:32:07 -07:00
Kurt
47ca69f92b Legality edge case fixes
Some incorrect IDs, some additions (unbreedable hidden abilities in
genV)

https://projectpokemon.org/forums/forums/topic/41407-pkhex-legality-errors-on-gen-6-updated/?tab=comments#comment-219459
2017-09-05 18:28:38 -07:00
Kurt
c98b0ab0b3 Refactoring
Split some large methods into smaller pieces
2017-09-04 18:55:15 -07:00
Kurt
6fe926d1f6 Refactoring
readability++
2017-09-04 13:48:10 -07:00
Kurt
0b4e6a0733 Refactoring
relocate ribbon checks/class to more focused location
reduce amount of GenNumber checks (use stored Generation value instead)
2017-09-03 19:51:29 -07:00
Kurt
9f8cbf3e46 Add more usum prep
Closes #1438 ; SM evo table wasn't being loaded as the gameversion was
changed to USUM.
Will see if there's any evo changes soon!
2017-09-02 08:41:36 -07:00
Kurt
6589869b35 More refactoring
simplify some expressions, reduce repeat operations
2017-09-01 23:45:47 -07:00
Kurt
d1aa02fb31 Refactoring
split up current move parsing a little
2017-09-01 23:15:57 -07:00
Kurt
84c90e973e usum prep
Copied binaries from sm, references set up for saving time later

I assume not much will change in terms of structures, so it should just
be a file replacement & filling in static encounter table => 'working'
legality checks
2017-08-31 22:37:28 -07:00
Kurt
578ab137e2 Refactoring
Flag Korean Ranger Manaphy (never distributed)
extract pk1 catch rate verification
2017-08-30 21:30:07 -07:00
Kurt
4c0a2602eb Simplify greninja gift check
form is already checked in the encounter generator, so the only case
where it has not been thoroughly checked is if it is not a mystery gift.
it will always be the default form (in that case).
2017-08-30 08:14:42 -07:00
Kurt
d5e5a463dc Refactor order of pidiv checks
collision between mgshiny and cutecharm shinies
Closes #1435
2017-08-29 08:32:22 -07:00
Kurt
a314ebfbd3 Add pokewalker early return check
check the middle bits for signs of pokewalker origins
can either be regular or adjusted underflow style

saves a little bit of computation time by not computing compatibility
for obvious non-matches
2017-08-28 23:40:04 -07:00
Kurt
072f1ba83d Refactor level-evolution checks slightly
Allows evolution met level check to be skipped
Adds minimum level constraint for evolution chain generating

Closes #1430

also adds deferral to the gen3 encounter generator as encounterstatic
gifts can collide with wild encounters when transferred
2017-08-28 18:12:57 -07:00
Kurt
c627a86f8c Fix g4 move tutor lookup
personalinfo setup wasn't populating info for form indexes
remove erroneous pid-type mismatch message on gen3/4 non-matching if
there are no deferred encounters
2017-08-27 11:04:31 -07:00
Kurt
a62e2a95ad Invert PCD return value on match
Result of refactoring and manually flipping all the returns
Closes #1421
2017-08-25 17:29:14 -07:00
javierhimura
f889a6ce7f Fix generation 1/2 encounters for pokemon with different initial moves in yellow/crystal than r/b/g/s
The encounter generator was returning always RBY and GSC and that make the ParseMovesGenGB to check only for rb and gs learnset for initial moves, the game returned should be the game for the encounter to make ParseMovesGenGB use the correct learnset table for the initial moves
Closes #1417
2017-08-25 16:25:59 +02:00
Kurt
4f7c19d0cd Refactoring
Extract mystery gift matching criteria into separate method
2017-08-24 10:09:34 -07:00
Kurt
261349c90f Add xk3 fateful check
Closes #1410
2017-08-21 08:59:26 -07:00
Kurt
8e1105e781 Misc fixes
Closes #1409, fr entries weren't tab separated
Closes #1408, editor interface was correct (refer to checkbox order
comment in Pokedex4.cs)
Closes #1407, XY species were copypasted to AO's
2017-08-19 18:43:36 -07:00
Kurt
309ef8bc34 Fix location suggestion
some games don't have location set to the slot, just copy from area
closes #1402
2017-08-18 19:36:16 -07:00
Kurt
cadf3134d9 Misc fixes
fix early-verification (introduced in 9864d84), just invert the
fieldsLoaded check. No longer interrupts the pkm loading routine when
changing game locations
fix stadium check (accidentally inverted in bfdf1c5)
Closes #1398
Closes #1397
2017-08-16 22:12:28 -07:00
Kurt
bfdf1c5b37 Check stadium OT/ID based on pkm language
not really necessary (character table not shared, assuming no transfer)
but easier to understand
2017-08-16 16:57:17 -07:00
Kurt
3743c1d3d4 Add normal box to gsc held item table
https://projectpokemon.org/forums/forums/topic/41438-gsc-normal-box-stadium-pk1-bugs/
2017-08-16 16:28:38 -07:00
Kurt
7fb9ce4131 Misc updates
Add global link mission stats (thanks Holla!)
remove some ToArray() linq in favor of direct copies
Relocate encounter suggestion logic to separate class
Closes #1396, addresses other edge cases like entree-non HA & happiny
egg.
2017-08-15 21:16:47 -07:00
Kurt
9864d84704 Misc fixes/improvements
Reduce memory usage for evo method banlist (static banlist references)
Fix gen6 mega evo flag truncation
simplify QR encode/decode logic a little
Don't apply transparency if transparency is already 100% (skip the loop)
Add gen5 wild pid/tid-sid correlation check
Fix validation value reset (loading gen3-4 pkm without looking at met
tab causes the met location to get reset); fixed by prematurely
validating before setting the value
Fix gen3 pkm with gen4 contest ribbons in gen4/5 getting flagged
incorrectly
2017-08-13 00:21:42 -07:00
Kurt
f3382bbd60 Fix shedinja egg relearn edge case
genderless species from gendered caused returning empty arrays
2017-08-12 14:11:30 -07:00
Kurt
fb326500c1 Misc lc fixes
inheritable apricorn balls for baby-tree pkm
japanese N ot
g5 traded event egg location
2017-08-12 01:30:19 -07:00
Kurt
2340c829ad Defer gen1/2 trades to end
like prior commit, OT checks
Closes #1391
2017-08-10 23:23:02 -07:00
Kurt
de11b8e375 Defer gen2 fixed OT / special events
Toss them to the end of the enumerable as OT checks aren't done in the
generator/finder
Closes #1392
2017-08-10 23:20:03 -07:00
Kurt
47dcb56090 Misc fixes
static-wild encounter g4 collision (abra gift), closes #1390
off by one pokepuff strings
unshuffle bk4 ribbons
pgt bad sanity events now auto-sanitized
2017-08-10 20:51:27 -07:00
sora10pls
1cea2e1c53 Unban Diancite 2017-08-10 02:01:23 -04:00
ReignOfComputer
83ec86424f August Mega Stones 2017-08-10 09:45:13 +08:00
Kurt
340a71a47e Update 17.08.07
Update event binaries with latest from the Event Gallery
2017-08-06 21:50:11 -07:00
Kurt
bbb9e140e6 Add gen2 japanese eggs
Closes #1348
2017-08-05 20:25:20 -07:00
Kurt
deb7ec417e Add feebas slot clone for mt coronet
both mt coronet fish slots are the same, first one is at index 10 of the
slot arrays.
Closes #1318
2017-08-05 14:32:12 -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
3621105e85 Change spiky pichu to pokewalker pid method
#1381
now that pokewalker pid method is finished, pichu is noted to be
generated with it.
2017-08-04 09:21:38 -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
fa44b91511 revise comment
clarity achieved during sleep :)
2017-08-03 09:49:03 -07:00
Kurt
d667fd04ba sync final comments
yeah I inverted the val decrement to increment temporarily to fix my
comment, oops
2017-08-03 01:13:12 -07:00
Kurt
3123f0df2f Drastically speed up rand() pairs -> seed search
Meet in the middle attack trades some RAM (2^16 flag/byte array) to
reduce future searches by a factor of 1:2^8

profiling yielded >100x speed improvements, even a 2x would have been
impressive ;)
knocks the biggest cpu hog (when searching db) out of the race!
2017-08-03 00:59:39 -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
fe6aef3776 Flag relearn moves not possible on current game
Noticed the egg moves were concatted between games; can only have egg
moves from the origin game
Same for levelup moves in the relearn list; example being Plusle with
Charm (was added to egg moves / learnset in OR/AS for parity with minun

this is such a remote edge case, but may pop up in usum for a different
species ( ͡° ͜ʖ ͡°)
2017-08-01 17:55:23 -07:00
Kurt
2a4aa0b79d Refactoring fixes
Fix misc refactoring errors

Don't early abort gen4->5+ encounter generation (need to check ingame
trades for abra/gengar). Can avoid by PID dictionary to check for trades
first, but unimplemented.

Closes #1377 , not fixing Pokewalker PID mismatch as algorithm needs to
be ironed out separately.
2017-08-01 14:55:10 -07:00
sora10pls
31781dd7d7 Fix D/P static encounter fetch 2017-08-01 13:26:11 -04:00
Kurt
80196f75ef Refactoring
split Core.PKX into smaller classes, only StringConverter is exposed for
outside namespaces
2017-07-31 23:03:51 -07:00
Kurt
2344098745 Refactoring
Add more docs, clearer code
Fixes gen2 national park / route 14 swapped strings in EncounterVerifier
2017-07-31 17:09:16 -07:00
Kurt
c15cfdc52d Fix b2w2 reference
yay copypaste
Closes #1373
2017-07-30 15:13:45 -07:00
Kurt
d3a30ebf35 Refactoring +docs
Add some documentation for the high-level encounter finding
Fix encounterstatics not being filtered for the associated game version
(closes #1372)
was a side effect of refactoring this week
2017-07-30 12:31:17 -07:00
wwwwwwzx
5b05330ce8 Add XY Snorlax shiny lock and legends ability lock
From gen6 RNG
2017-07-29 20:54:44 -07:00
Kurt
cb8777f767 Refactoring
now that the logic has become more stable, polish away some complexity
2017-07-29 11:54:52 -07:00
Kurt
ac3d6a296a Add gen4 forme move handling
Shaymin case reported, deoxys defense at level 100 with zap cannon was
not recognized as legal.

Closes #1355 via provided fix
Closes #1367, did not address Deoxys case
2017-07-27 02:24:23 -07:00
Kurt
711661c1ea Switch air cutter for roost (oras tutors)
crowdsourced error, confirmed with pk3DS
314 (air cutter) ->355 (roost)

pad with leading zeroes for cleanliness
closes #1364
2017-07-25 23:30:10 -07:00
Kurt
5f088813a5 Ignore secret sword mismatch in gen5
Closes #1361
2017-07-25 20:39:54 -07:00
Kurt
9b0603df96 Add emerald swarm special move detection
I don't think SlotType.Grass->Swarm changes anything, best to use it for
differentiating vs the default 1% slot.

Closes #1362
2017-07-25 17:35:07 -07:00
Kurt
68aa9aeec9 Relocate encounter data loading to separate files
shifts encounter data from Legal's split tables to individual files for
easier maintenance and initialization. Legal Core's init is so much
simpler now.

fix resource name typo
2017-07-25 00:28:43 -07:00
Kurt
fb9dd6103d Unban daily ribbons for OR/AS
Ribbon Belle at Mauville Hills gives the daily ribbons
Closes #1343
2017-07-21 08:48:35 -07:00
Kurt
dea3fcfab6 Merge pull request #1354 from sora10pls/master
Unban Aggronite
2017-07-21 08:28:44 -07:00
architdate
9a9553f8c0 Fixed Zygarde Legalities from Gen 6 origin (#1353)
* Fixed Zygarde Legalities from Gen 6 origin

* Same functionality, Lesser Lines
2017-07-21 08:28:25 -07:00
sora10pls
ed7cb02dd1 Unban Aggronite 2017-07-21 01:49:56 -04:00
Kurt
30f7345218 Fix goodra gen6 evo check
Remove 31 from argevos, was wiping goodra's evo for whatever reason. No
idea why it isn't 4 sliggoo, but oh well, now works as intended.

Apply a little bit of performance increases for the loading of
evotables.
data length checks unnecessary as the the following iterator will throw
an exception
2017-07-20 19:34:41 -07:00
Kurt
3b8643bc77 Fix gen1 VC legality checking error
GetGenMovesCheckOrder doesn't respect generation restrictions, while
EncounterMoves does; filter afterwards.

Add compiler flags in the Analysis file to toggle try/catch off for
easier debugging. Just uncomment the #define SUPPRESS line.

Closes #1345
2017-07-18 16:21:31 -07:00
Kurt
2d18440445 Fix wurmple evo gen3/4
yeah it was never the lowest 16 bits as every-internet-source claims.

1D9C9130 silcoon => 3716[8] = cascoon (nope)
#1330 was correct!
2017-07-17 15:58:15 -07:00
Kamron Batman
3168a2ae40 Fixes shiny check and adds negai boshi. Adds force-shiny 5th anniv. 2017-07-16 16:07:28 -07:00
Kurt
2b0cfab31a Disallow shiny dream radar/forest shinies
Closes #1340
2017-07-16 10:15:12 -07:00
Kurt
c61c572f35 update channel generation
Thanks @admiral-fish !
2017-07-15 19:59:38 -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
2f3c56e7c5 Update gen4/5 mg generators
PGF for movie victini has OTgender=3; only eggs are supposed to set OT
details from the SAV.

update pattern matchers to abuse this fact.

Thanks @odaxis !
2017-07-14 22:50:12 -07:00
Kurt
dc0a43ae8f Handle link gifts without ribbons
Link gifts had the possibility of having all those ribbons (even
Event3), but none were used.
2017-07-14 20:42:51 -07:00
Kurt
dce42195e5 Add static encounter deferrals
Rarely ever used, the only case where an unfavorable match is returned
first is Emerald Lati@s transferred to a future generation, as there are
2 encounters (one with and one without Fateful).

Closes #1326
Thanks @sora10pls !
2017-07-13 23:12:30 -07:00
Kamron Batman
51ae267cc8 Adds aura mew. Rearranges wondercard events to the right block. Fixes mews. Adds Negaiboshi. 2017-07-13 21:42:55 -07:00
Kurt
f84cab6272 Block bred Ash Greninja
Closes #1329
2017-07-13 21:12:16 -07:00
Kurt
ee29b4a31f Reorder mysterygift 5+ egg generating logic
Closes #1331 where IsEgg was checked before it was set
handle legality cases (set nickname & flag)
2017-07-13 21:05:20 -07:00
Kurt
08ca4dd147 Fix gen3 static encounter eggs
add exclusions for egg data, fixes wynaut and togepi ingame gift eggs.
Closes #1322
2017-07-12 09:02:54 -07:00
Kurt
23c4e81dea Add invalid match alternatives to verbose output
Indicates why another type of encounter to match to was rejected, mostly
useful for diagnosing past gen specimens to figure out what changes need
to be made for that encounter to persist.
2017-07-12 09:02:03 -07:00
Kurt
1d93c5836e Tweak egg detection
Remove hot springs from general egg list, add bypass to static encounter
check
a91764b283
2017-07-10 21:45:37 -07:00
Kurt
a91764b283 Add hot springs as valid egg location for gen6
split table references, remove per-format calculations as they all
behaved the same as the main method
2017-07-10 18:56:13 -07:00
Kurt
851809c585 Add gen2 roamers
Closes #1268
(take 2 skips the suicune encounter for Crystal)

Thanks @greenDarkness !
2017-07-09 09:17:43 -07:00
Kurt
cb76d51e38 Simplify vc transfer checks
supply met level so the static encounter has a level to work with
instead of 0
Closes #1316

in other areas:
level 48 charizard VC1 transfer changed to mewtwo causes minlvl >
maxlevel, handle instead of throwing exception.
2017-07-09 08:47:17 -07:00
Kurt
29914c431e Misc capitalizations 2017-07-07 17:40:27 -07:00
Kamron Batman
152d8e102f Fixes WC3 eggs. 2017-07-07 08:27:16 -07:00
javierhimura
8219bb6716 Fix ChainShiny method, allow outside safari zones instead inside 2017-07-07 14:00:06 +02:00
javierhimura
7b1812f184 Added check for pokeradar shiny grass patch
Not allow cutecharm pid iv method for swarm pokemon
Fix loading time encounter for generation 2 and mark crystal location slots in any gen 2 tables
Typos in tree areas comments
2017-07-07 13:53:21 +02:00
Kurt
60becb6e37 Fix typo
461fb70f90 (commitcomment-22965638)
2017-07-06 22:05:54 -07:00
Kurt
a653363a16 Simplify wc3 checking
all branches did similar checks, so I pulled them out

Added TID bypass for PCNY incremental TID pkm
#1313
2017-07-06 20:22:54 -07:00
Kurt
224544c322 Add missing change 2017-07-06 17:01:53 -07:00
Kurt
ca04abfca6 Refactoring
misc cleanup/breaking up large methods from recent PR
2017-07-06 17:01:29 -07:00
javierhimura
461fb70f90 Generation 1/2 Legal improvements (#1310)
* Added location to encounter slot to make verification againts the location of the encounter when the pokemon has lost met location, like generation 2 heabutt tree, jhoto surfing in route 45 and in the future generation 4 munchlax tree

Added version to generation 1 and 2 encounter locations to filter by catch rate based of the version of the encounter and check initial moves of the encounter only for the game that match the encounter

Filter generation 2 pokemon for crystal who have met location based of the time of day when it was captured

Completed version to static and traded encounters for gen 1 pokemon, to avoid check a red encounter with yellow initial moves, if an encounter is possible in both games with diferent moves it is duplicated (like eevee), if it is possible in both games with the same moves is left as RBY, the encounter will only use red/blue moveset

Verify some invalid gen 2 encounters. Crystall heabutt encounters based on the TID, using the tree selection algorithm of the game to determine if the encounter is possible for the TID (implemented base on https://bulbapedia.bulbagarden.net/wiki/Headbutt_tree#Mechanics). Coordinates of Crystal trees obtained with the programa G2Map

Added checks for fishing encounters for unreacheable water tiles in gen 2, route 14, national park and the beta safari zone.

* Fix gen 1 static encounters and trade encounters filter by version

* Missing strings
2017-07-06 16:03:41 -07:00
Kamron Batman
0a2245b55c Fixes various gen 3 event templates. (#1309)
* Fixes various gen 3 event templates.

* Adds more checks to PokePark 2005 eggs for DS Download Play.

* Fixes various gen 3 event checks. Still missing japanese events, but will add those another time.

* Adds 10 ANIV Celebi.

* Fixes PCJP 2003 eggs. Still doesn't use the exact formula though, but BACD-R is something to start with.
2017-07-06 09:45:41 -07:00
Kurt
e6d9f49fce Handle e-reader PIDIV type
no pidiv type since IVs are frozen at 0
2017-07-05 23:38:28 -07:00
Kurt
502093b8b2 Misc tweaks
fix pcd detection (yield brewk needed to be inside brackets
remove brackets from single line lambda expressions
2017-07-05 23:05:49 -07:00
Kurt
43be0c6e99 Add missing gen4-5 artist ribbon check
allow artist ribbon if any of the gen3 contest ribbons have master rank
2017-07-05 18:42:06 -07:00
Kurt
2ef5b81b15 Add gen4 cutecharm for valid gen4 wild pidivs
encounter is screened for charm validity prior to this type check, so no
further checks are required
2017-07-05 18:40:47 -07:00
Kurt
0c23881f65 Add manaphy egg PIDIV check
slightly different from hatched in that it can't be shiny as an egg as
the ID/SID doesn't change until hatched.

move Ranger check to utility
2017-07-05 17:47:48 -07:00
sora10pls
cad24744ef Manaphy Egg fixes 2017-07-05 15:31:41 -04:00
Matt
2e0f3a9305 Actually fix Old Chateau Encouner Type (#1306) 2017-07-05 10:04:34 -07:00
Kurt
420a07ba54 Fix off-by-one colo/xd met locations
add empty line as first line
shift ingame trade (254) down one to compensate for the offset
closes #1303

fix larvitar encounter speciesnum
2017-07-05 08:34:25 -07:00
sora10pls
fa6f3a745f Unban various Held Items 2017-07-05 00:42:26 -04:00
Kurt
fd1c7419b1 Set fateful for xd pkm transferred away
Only way to know if it originated in XD is to check the matched
encounter data

Closes #1290
2017-07-04 13:24:18 -07:00
Kurt
88731e22ac Merge pull request #1299 from sora10pls/master
Fix Old Chateau encounter type
2017-07-04 11:40:48 -07:00
javierhimura
7f788e4167 Added Froslass to FutureEvolutionsGen3, a gen 3 Froslass will now return true when executing function InhabitedGeneration for generation 3 2017-07-04 20:37:55 +02:00
sora10pls
37d5be14f7 Fix Old Chateau encounter type 2017-07-04 14:33:06 -04:00
Kurt
4e9b6be8e5 Convert console output to debug output
output messages are now no longer in release builds, as they are only
visible when debugging in an IDE.
2017-07-01 19:43:51 -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
5476b86a11 Misc performance tweaks
Switch encounter slot generator to yield style to not require the entire
method to finish iterating
Although the pressure slot may be best-matching, it isn't the typical
match. Defer pressure slot clone to the end (defers the orderby
calculation)

There's probably a better way to do the pre-work (gen 5+ only operate
off one encounterarea... usually. Past Gens end up repeating the same
work for each area tested

slot matching runs slightly faster now due to the deferred execution
2017-06-30 00:37:17 -07:00
Kurt
b71485c0a3 Misc tweaks for encounter generation
reduce 'as' usages for pk1 (cast & check once)
reorder some slot generation checks (early return prior to slot
filtering; not crucial as the linq wasn't evaluated yet).
2017-06-29 23:50:24 -07:00
Kurt
90693a2a76 Don't generate egg encounters if species cant exist
Closes #1286
2017-06-29 20:12:40 -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
2546ddfd8e Misc gen3 related updates
detect gen3 event eggs better
2017-06-28 22:09:26 -07:00
Kurt
e1d0867a51 Misc egg related additions
Closes #1257
Disallow static encounters that aren't eggs or are for eggs (mismatch)
Check egg encounter level for IsWithinRange
Check egg met level while still is egg
2017-06-27 22:08:16 -07:00