Commit graph

1278 commits

Author SHA1 Message Date
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
Ntonio36
0578ec19a9
Light retyping 2017-11-22 01:50:33 +02:00
Kurt
9923dc4a7a Update spanish legality translation text
https://www.diffchecker.com/nKe4LYso
Thanks JoseAbad !
2017-11-21 15:37:48 -08:00
Kurt
05f2968c95 Add wormhole species to AlolanCaptureOffspring
allows apricorn & beast balls
2017-11-20 17:16:16 -08:00
Kurt
1e5fc96e8e fix gs met location errors
override current location if format is GB
update GS transfer location ID
2017-11-20 09:11:37 -08:00
Kurt
8b2ec89c52 Add default value for formecount
https://projectpokemon.org/home/forums/topic/42632-bug-gsc-titles-support-broken-gs-transfers-not-recognized/?do=findComment&comment=223647
2017-11-20 08:08:48 -08:00
Kurt
6534ef1919 Refactoring
Reworks festa facility into a get/set object, simplify some operations
naming convention (PascalCase) for methods/properties
closes #1635
2017-11-19 21:25:46 -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
70ec1fda5e cleanup
wasn't able to view the designer layout so I removed & readded to
project -- works fine now.
uppercase method names
2017-11-19 16:16:44 -08:00
Kurt
a8d5acdd50
Merge pull request #1635 from pokecal/master
add G7 FestivalPlaza Editor
2017-11-19 15:27:13 -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
f5aa3c3b0a Fix form not specified check for totems
Closes #1634
2017-11-19 14:16:28 -08:00
pokecal
3c85b0ead3 add G7 FestivalPlaza Editor
There are too many phrases,
I have no plan to complete all list of phrases.
But I think user can edit phrases of each facility
 by using their phrase settings.
2017-11-20 06:50:39 +09:00
Kurt
237f376354 Add battle style learned flags for usum
thanks @sora10pls
2017-11-19 13:30:17 -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
469587bbbd Add Rotom OT name
"nah lets just store the OT in the save file twice"

add a double check if OT != RotOT to remind the user
2017-11-18 22:26:57 -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
f29529d141 Add spanish legality translation
Thanks @BlackPyoVic!
2017-11-18 17:38:06 -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
Kurt
6a033b00fc
Merge pull request #1628 from wwwwwwzx/master
Unban white/orange Flabebe HA
2017-11-17 20:40:30 -08:00
Kurt
b111b9dad4 Add totem showdown export
soontm
https://github.com/kwsch/PKHeX/issues/1626#issuecomment-345417263
2017-11-17 20:38:43 -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
9d1ca22b6d Add usum showdown forme/species i/o
Closes #1626
2017-11-17 19:14:27 -08:00
Kurt
523c03606e Add guard check for out of range gen1 species
Thanks ShadowMario3!
2017-11-17 17:07:12 -08:00
Michael Scire
d56354822c Fix Magearna gift flag, add can-receive flags 2017-11-17 14:27:28 -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
eb635c31de Fixes reference in csproj. 2017-11-17 08:16:57 -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
e4b48b2712 Update 17.11.17
Update event binaries with latest from the Event Gallery
2017-11-16 19:32:58 -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
sora10pls
a977b722db USUM event flag updates 2017-11-16 16:01:06 -05:00
Michael Scire
e8d1d1f521 Add "IsSMCompatible" helper method to PK7.
Translated from official game code (PokeRegulation::CheckNijiCompatible).
Potentially for future use in USUM -> SM transfers?
2017-11-16 12:23:35 -08:00
pokecal
909148a42a add USUM UB flags
Stakataka APPEARABLE means NOT CAPTURED,
I think the latter will get misunderstand as CAPTURED,
so I adopt former.
2017-11-17 02:31:36 +09:00
pokecal
33c37370c3 add UltraRide SlidePad flag
SlidePad will be enabled from the first play.
2017-11-17 00:06:36 +09: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
618c2cc074
Merge pull request #1612 from sora10pls/master
Add more USUM event flags
2017-11-15 16:29:16 -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
sora10pls
431e63d96b Add more USUM event flags 2017-11-15 19:19:02 -05:00
Matt
fecc0771b5 Add Surfing Pikachu event flag (#1610)
* Add Surfing Pikachu event flag
2017-11-15 12:14:43 -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
3e60bcd5dc fix minior dex set clamp
[0],[cores), ignore all other meteor forms
thanks @sora10pls
2017-11-14 21:55:52 -08:00
Kurt
dbf10d1c29 Add surf score editing
trainer7 Ultra tab
Closes #1605
2017-11-14 21:35:28 -08:00
Kurt
c4f8dabd26 rework dex getting
changes iteration to be per-species rather than per list.
uses the internal 'should i set a bitflag' code rather than a banlist.
2017-11-14 19:14:02 -08:00
sora10pls
79e2a5e9ee Add more USUM event flags/constants 2017-11-14 17:54:22 -05: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
953f6939a5 Fix double save export memecrypto issue
Closes #1600 , memecrypto is applied on first export but not cleared
prior to second export, thus resulting in a checksum over garbage data
that is permanently lost when the new memecrypto sig is applied.

Solve this by keeping track of memecrypto application status.
2017-11-13 19:34:50 -08:00
Kurt
97a159c710 Add ultra sun wild encounter details
using pk3DS's dump pkl binaries method
2017-11-13 09:16:29 -08:00
sora10pls
7b379ac428 Fix spaces 2017-11-13 01:42:11 -05:00
sora10pls
8fe32ec007 Update Gen 7 event flags/constants 2017-11-13 01:33:30 -05: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
dbabcb9ef0 Misc updates
fix hall of fame fixed offset
fix ball throw type unlock/learned flags using fixed offset
fix current throw type defaulting to -1 when Nihilist (new USUM style)
by adding in for USUM

add fused slot offset fetching
convert event flag combined byte fetch to use Get/SetEventFlag with
event flag references.

add ZRingUnlocked sav properties & checkbox for toggling

set AlolaTime only if the combobox is enabled (only disabled if not yet
set by game)

Closes #1595
2017-11-12 21:28:34 -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
sora10pls
e1abe0be5e Fix indenting 2017-11-12 01:10:16 -05:00
sora10pls
b0c228174f Add USUM Legendary re-battle flags 2017-11-12 01:08:49 -05:00
Kurt
fbab1cfbe6 Update usum eventflag max
now these event flags are making sense
2017-11-11 18:58:57 -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
d8acdf2aa1 Fix partner pikachu sprite
fix form+1 overflow (cap7 pikachu in sm accesses gumshoos1! bad!)
2017-11-10 19:53:11 -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
Kurt
6127dd7a08 split record maxes
slightly different in USUM, any difference increased the cap:
070  999999->999999999
071  999999->999999999
072  999999->999999999
073  999999->999999999
074  999999->999999999
192  9999->65535
193  9999->65535
194  9999->65535
197  9999->65535

Worth noting that these were undocumented record IDs and likely unused
in Sun/Moon; don't really need to split these tables but good for
documentation purposes.

Trainer7 grabs maxes from the save without specifying version, so add an
overload to default to USUM (even though the unused records will have
bad caps, they're unused in SM so whatever).
2017-11-10 17:37:04 -08:00
Kurt
8ab39cae7b Update dex form handling 2017-11-10 17:08:47 -08:00
Michael Scire
e455aef501 USUM event constants for starter choice/Tapu rebattle 2017-11-10 15:08:20 -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
Kurt
a39f92cac6 Add rockruff forme list items
revert form selection filtering, screwed up scatterbug and other
forced-forme lists. behavior works fine without the list filtering
2017-11-10 04:01:36 -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
6057780b4b Fix blank saves array accessing
old blanks modeled sm saves with fixed offsets; since the conversion to
dynamic block offsets, a few offsets need to be manually defined.
2017-11-09 19:26:31 -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
9f2899617d add ultra moon encounter legality binaries
fix an odd edge case going from a bad FRLG save to gen6+ while we're
pushing code
2017-11-08 21:56:56 -08:00
Kurt
6f99bc5365
Merge pull request #1574 from wwwwwwzx/master
Fix USUM Chinese species names encoding
2017-11-08 20:34:28 -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
wwwwwwzx
9ab2938b84 Fix USUM Chinese species names encoding 2017-11-08 20:20:41 -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
da5dd5ccb3 remove usum early return for dex bit setting
I highly doubt this is causing save corruption; looked through the
disassembly and the offset ptrs are the same relative to sun/moon.
Implementation is flexible for both as gamefreak allocated enough space
in each bit array.

pokedex editor recognizes bools correctly (including for formes).
2017-11-08 19:34:07 -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
97dcd1a845 Add pokedex forme flag correlation table 2017-11-08 13:29:06 -08:00
Kurt
56ca5d02bc re-add newline
now boots, inventory editor now works
2017-11-08 13:12:10 -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
9af0876352 clone cached string resources
don't share object references, need to be passed as new copies as the
array contents can be modified

need to clone on dict return to not pollute dict, and need to clone
after dict add so that the first return doesn't equal the dict copy --
this one could be on the dict add... keep returns same.
2017-11-07 17:12:04 -08:00
Kurt
d08bd25b4f always clear memecrypto sig on load
allows verification & resigning to work as intended
reverts to code prior to refactor

b1641772e6 (diff-1681616e650971296aa4b549afadd0eaL116)

cleanup suggestions for tests
2017-11-07 16:57:18 -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
062684f4a6 Relocate transfer block cases to separate method
#1559
2017-11-06 18:34:35 -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
4a6ea19a31 Cleanup 2017-11-06 17:12:59 -08:00
Kamron Batman
83e06b4436 Adds WC4 support. 2017-11-06 16:26:34 -08:00
Evan Dixon
cf4e31a67d Remove zh file in ko directory 2017-11-06 10:57:42 -06:00
Kurt
f0cfb0df23 cleanup
shuffle / fix xml doc data
2017-11-06 08:01:33 -08:00
Michael Scire
b1641772e6 Refactor Memecrypto API, Add Memecrypto Tests
Refactors the Memecrypto API to improve generalized usage.

Adds unit tests that verify memecrypto works, so that future changes
don't potentially break the code.
2017-11-06 03:24:48 -08:00
Kurt
ff4903ae04 Fix dppt trainer names
were shifted by a lang ID
closes #1558
2017-11-04 18:35:46 -07:00
Kurt
2d6b6f7095 Simplify gen7 checksum operations
don't spit out a new byte array for each block, just check with same
array

unrelated: allow pk2's to be selected from file->open when a sav7 is
open
2017-11-04 15:04:21 -07: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
Evan Dixon
35ed920805 Set build action of new resources
I forgot to check this when merging master into my previous PR
2017-11-02 14:06:32 -05:00
Kurt
a00f3ed894 random IVs with specified count
Closes #1553
removes duplicate logic in batch editor
2017-11-02 09:05:44 -07:00
Kurt
008605c4ff Add Gen5 BP editing to simpletrainer
a little bit hacky but exposes the values well enough.
moves the coins entry to the Badges groupbox, and makes it visible
looking like a BP editor (lol)

thanks @sora10pls for finding the offsets!
(blockinfo array isn't really used, is sorta just there for
documentation...)
2017-11-01 21:26:38 -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
Evan Dixon
7ac1a4c6df Cache resource name => manifest resouce name mapping 2017-11-01 21:47:55 -05:00
Evan Dixon
133a19a468 Fix fallback from unlocalized language file to default language 2017-11-01 21:44:35 -05:00
Evan Dixon
81e87c1a15 Change the concurrent dictionary to a dictionary
It'd be nice to be thread-safe, but I don't really expect multithreaded applications to be calling this method a lot, and I'd imagine the concurrent version has more overhead
2017-11-01 21:42:12 -05:00
Evan Dixon
29ce9a347b Cache retrieved data to improve execution speed 2017-11-01 21:34:01 -05:00
Evan Dixon
b13aae9a57 Merge branch master 2017-11-01 21:08:43 -05: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
021ecbfe47 move pkm load compat check to pkmconverter
closes #1550 , mgdb/pkmdb throw unconverted files which need conversion;
move main file load conversion to a reusable method and have pkmeditor
call it on every load.

add skip argument to ignore the conversion check (ie if the file is
loaded from an undoubtedly same type source).
2017-10-28 14:26:27 -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
52b2fd2778 Add fullwidth 0-9 for kor tables
since _0 and _B are the same, just share a reference instead of separate
tables with same values.

Closes #1548 , thanks @host1126 !
2017-10-27 16:30:02 -07:00
Kurt
f6927e4fe5 Add gen2 KOR localization exceptions
Closes #1547
Thanks @host1126 !
2017-10-26 20:37:11 -07:00
Kurt
c2cf824afd Fix {0xE8, "췄"} - {"츄", 0xF2} KOR swap
that's silly lol
#1547
2017-10-26 20:18:32 -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
8c2dcb2dd3 Use generation specific species name
nickname resetting should use the generation specific value
2017-10-24 20:59:58 -07:00
Kurt
8a84f63fcb Add usum special tutor bitflags
( ͡° ͜ʖ ͡°)
2017-10-24 19:59:46 -07:00
Kurt
c60fee85b2 fix pk2 korean nickname set
closes #1544 , thanks @host1126 !
2017-10-24 18:57:28 -07:00
Kurt
9bbd7c6551 Save all 5 korean OT characters
Closes #1545, thanks @Bl4ckSh4rk !
2017-10-24 18:49:51 -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
a46e56c917 Add xmldoc for mystery gift class names
refactor pattern checking to simpler representation, add null abort when
extension is not provided.
2017-10-23 15:45: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
Evan Dixon
9e980f4a1d Use manifest resources for string lists instead of the resources file 2017-10-23 13:18:44 -05: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
42d1c252ee Enhance gen1/2 language detection
Closes #1540 , check for german only characters (gen1/2 can trade
between resulting in only OT being checkable). May be worth changing the
german check to return an int instead and check for other language
specific values.
2017-10-22 16:52:46 -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
3970b177af Fix kor table 0x5 0x30-3A swaps
pls no more
2017-10-22 09:27:00 -07:00
Kurt
cc2e379880 Fix kor table 0x5 0x10-0x20 swaps
there's still more in the 0x5_30 region
y u rong bulbapedia
2017-10-21 19:05:38 -07:00
Kurt
528593b59e Disallow crystal tutors if VC 2017-10-21 19:01:23 -07:00
Kurt
791a41b1a7 Fix KOR encoding table off by 1
Closes #1534
Thanks @host1126 !
2017-10-21 10:32:08 -07:00
wwwwwwzx
0820059adf Fix Gen3-5 MaxEV per stat 2017-10-21 01:06:25 -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
7c36190661 Expand IdentifierContains feature
now behaves the same as a property filtering
2017-10-20 08:47:31 -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
6e42d01779 calculate 4->5 string dictionaries 2017-10-18 22:16:48 -07:00
Kurt
228b0e84fb Simplify some dex interaction
utilize get/set flag method calls, add xml docs for the two methods
2017-10-18 21:43:42 -07: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
Archit Date
6f5d0489d5 Zygarde 50% Power construct Showdown Import fix 2017-10-19 02:45:45 +08:00
Kurt
f5b22d7873 Update 17.10.17
Update event binaries with latest from the Event Gallery
2017-10-17 23:59:14 -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
c3e0d5339c Fix jp gen2 save detection
simplification commit was dyslexic on JP/EN.
20 <-> 30 (EN 20, JP 30 is the correct count)

https://bulbapedia.bulbagarden.net/wiki/Pokémon_Storage_System#Core_series_games

pk2 structure is smaller for jp (smaller strings), thus has 30 cap.
International has 20.
2017-10-16 17:33:09 -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
f5e595772d Add more sav7 properties 2017-10-14 23:47:16 -07:00
Kurt
331d6ec6a0 Sync missing file
#1523
yeah lol
2017-10-14 16:48:43 -07:00
Kurt
fa310e8c4e Add gen6 map mirror coordinate changing
not sure what they do but the values should match
Closes #1523
2017-10-14 16:32:34 -07:00
Kurt
a11b6f4a60 add recent de strings as resource
now load instead of not at all
2017-10-13 22:40:34 -07:00
Kurt
6f69ce11b5 Merge pull request #1522 from Korados/master
German Translation for Gen1-3 item strings
2017-10-13 21:36:10 -07:00
Korados
ef6a7827bf Create text_ItemsG3_de.txt 2017-10-14 01:34:15 +02:00
Kurt
0120263bd3 Cute Charm gender ratio changing edge case
Thanks @Admiral-Fish !
2017-10-12 23:18:43 -07:00
Korados
8e5299dcae Create text_ItemsG2_de.txt 2017-10-12 23:39:47 +02:00
Kurt
43d1c7740f add event flag localization
rename files for english indication
allow script text retrieval with current language

simplify resource retrieval a little
2017-10-11 20:00:18 -07:00
Kurt
90e8f571b9 move event script resources to separate folder 2017-10-11 19:34:48 -07:00
Kurt
02c06d154b Split item cap for usum prep 2017-10-10 19:30:55 -07:00
Kurt
c3c4336d43 Add gen3 roamer editor
Thanks BlackShark!
2017-10-10 18:48:14 -07:00
Korados
8e10aab76f Create text_ItemsG1_de.txt 2017-10-11 02:40:09 +02:00
Kurt
79ede6a212 Add gen3 roamer r/w 2017-10-09 21:00:36 -07:00
Kurt
78a557c3cd misc tweaks
simplify some linq usage
2017-10-08 22:14:47 -07:00
Kurt
9f2ade5b14 Add japanese gen1-3 ingame translation data
Thanks @smileynation!
2017-10-08 18:07:49 -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
c256786467 Change encountertype ja encoding to Unicode
UTF-8 => Unicode
2017-10-08 13:41:44 -07:00
Kurt
50dfa3603e fix 50/50% male/female gen1/2 7 ATKIV
ma boi nixhex with wrong info at smogon
http://www.smogon.com/ingame/guides/rby_gsc_stats#gender

bulbapedia is right
https://bulbapedia.bulbagarden.net/wiki/Individual_values#Gender

Thanks StarFisherX for bringing this to my attention!
2017-10-07 20:42:51 -07:00
Kurt
bee64b495b Remove gen2 auto resizing jpn saves
introduced in the start of sav2, removing doesn't seem to have any
consequences

a3250a0d56 (diff-c6536dcc6b76e8415f41529d664b75d9R24)

closes #1516
2017-10-07 16:46:09 -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
762b55e957 handle invalid nature stat amps
natures (>25) are invalid and causes IndexOutOfRangeException due to
being greater than the length of the array.
sanity check array length and amped stat prior to applying amplification
Closes #1515
2017-10-06 18:44:14 -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
b5e3b616de nickname edge case
evolved on a foreign language can't rely on stored language ID, have to
detect it
2017-10-03 19:21:17 -07:00
Kurt
6bd0e7ce72 sync remaining
pls revoke my access
2017-10-03 18:20:31 -07:00
Kurt
ea751e26b1 Convert chinese string only if species name
Resolves charmap duplications in the chinese char tables:
多边兽Z (Porygon-Z)
属性:空 (Type Null)
谜拟Q (Mimikyu)
卡璞・鸣鸣 (Tapu-Koko)

Games cannot have a nickname/OT in chinese as of current date... I
assume this will be fixed down the road
2017-10-03 18:15:15 -07:00
Kurt
df287f8fc5 Fix concatbinary load
Closes #1509

I think I had two ideas on how I wanted the method to work and
incorrectly blended the two together.
2017-10-03 16:51:13 -07:00
Kurt
b7b449e65c Add move length check
Closes #1507
2017-10-03 16:44:12 -07:00
Kurt
ec491cdd52 Fix sav2 badge/tmhm clearing
Closes #1505
Thanks @fattard !
2017-10-02 23:17:00 -07:00
Kurt
a9892203c7 Refactoring
extract pkm loading routines to smaller methods
reduce code duplication (rely on empty setters to ignore some calls)

should be much easier to understand the load/save process; the original
setup (pk6) was following the structure from 0x00-end, no point still
doing that as everything is now abstracted.
2017-10-02 23:13:40 -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
3300afdd19 More gen1/2 str encoding updates
Thanks theSlayer!

i blame rhydon
2017-09-30 18:20:23 -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
e6f43ff629 Add 6 gen2 jp characters to encoding list
?!ゥェォ and space
other half-width characters are already present
2017-09-30 11:18:08 -07:00
Kurt
b201ded8e8 Fix エ decapping to ェ
Both characters map back to character 0x83, but 0x83 previously mapped
back to the lowercase variant which was unlike the others.
(オ and ォ -> オ)

Thanks Afepoke & smileynation!
2017-09-30 09:37:09 -07:00
Kurt
32bbd2cee0 old cleanup
revisit comboitem providing, simplify some methods with fancy linq
probably faster as there's no use of dictionaries and Array.IndexOf
after sorting, as the values are kept with the text.
2017-09-30 01:07:30 -07:00
Kurt
1e377c2963 interpolation++
no functional change (assumed)
2017-09-29 22:58:25 -07:00
Kurt
a93a3897b3 Cache pgt/pk4 when read from gift file
speeds up repeat accessing (legality checks and mgdb opening)
2017-09-29 22:40:35 -07:00
Kurt
ce4e5f739e Fix korean Gold/Silver saving
closes #1496
2017-09-29 19:13:03 -07:00
Kurt
ed1b934374 Misc refactoring
expose some useful IEnumerable methods (sorting / bin->pkm / copy) to
simplify some common operations
change some explicit arrays to IList for flexibility
remove old memecrypto bool (no longer necessary as XP is not supported)
rename some methods for more clarity
2017-09-28 22:20:27 -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
14697f47d3 misc simplifications
recognize 01 01 01 00 xd saves
simplify some detection to be easier to follow, less lines is nice too
2017-09-27 23:22:41 -07:00
Kurt
2c8e2176e9 Fix gen4 egg transfer egg location
Egg Location wasn't explicitly kept, only the 'faraway place' was kept.
Closes #1498
2017-09-27 19:39: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
c270479bf9 Show SID7 on hover
Closes #1494
2017-09-26 23:14:29 -07:00
Kurt
8b02f05bd5 Faster crc16 ccitt
insert lenny face here
>4x faster, relative speed is higher for larger input arrays
2017-09-26 23:10:31 -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
8d0af0bd5b Handle all gc remapped languages
good stuff genius sonority
2017-09-26 19:56:08 -07:00
Kurt
532cee406a Add gen1 overworld respawner 2017-09-25 23:06:16 -07:00
SciresM
4272ad56ae We know what Key 9 is for (Cap Pikachu).
Refactor for Memecrypto API incoming in the next few days.

Gonna add a public overload that takes in a memekey, to facilitate Local Wireless memecrypto.
2017-09-25 17:51:17 -07:00
Kurt
bbff1e086a relax RB/Y detection when no starter chosen
value is 0 until a starter is chosen
2017-09-24 16:58:19 -07:00
Kurt
4950909d97 Add Red/Blue vs Yellow savefile detection
use the player's starter choice species value :)
2017-09-24 16:36:51 -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
e166f1eaa9 Show gen3+ berry analogues on gen2
also change "Reset key" to "Reset Password" to be closer to the game's
prompt
2017-09-24 12:05:36 -07:00
Kurt
c0f5166184 Fix rtc reset key generation
money into 3 bytes => sum
psypokes only does the 2 lowest bytes, is missing the high byte
Closes #1490
2017-09-24 10:59:35 -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
e5d7a063af Fix jpn/kor pkm collision
OTname length is 6 in JP games and 11 in kor/eng
Thanks smileynation!

https://projectpokemon.org/home/forums/topic/41689-bug-reporting-japanese-name-of-kin-gin-version-vc-jpn
2017-09-24 08:36:10 -07:00
Kurt
496cc35f97 Fix mew male gender
Closes #1489
2017-09-23 22:44:54 -07:00
Kurt
12187a5128 Expose gen2 RTC resetkey
#1487

also expose gen1 event flags (well, the crappy ones at least)
constants/event_constants.asm
2017-09-23 22:13:48 -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
Kurt
caf25efb46 Add RTC ResetKey calc 2017-09-23 16:04:02 -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
Kurt
89d7d45304 Simplify isnicknamedany
for gen2 korean edge case (use lang 8), and skip lang 0 (same as lang 1)
2017-09-23 06:50:46 -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
76adfd62bf Fix korean nickname detection
extracted the GetNonNicknamedBytes method (used in SetNotNicknamed and
GetIsNicknamed)
korean strings are variable byte width so using max string length is
insufficient
2017-09-22 20:34:29 -07: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
91386e330a Unmark vc2 Johto location
removes " (-)" from the johto location
2017-09-22 16:23:39 -07:00
Kurt
3a90093cb1 Add unown altform 2->7 conversion
Closes #1476
2017-09-22 15:38:17 -07:00
Kurt
a21a70ee4c Fix gen2->7 encounter move args
#1476
suicune water gun
2017-09-22 15:33:33 -07:00
Kurt
561752dd4d Update 17.09.22
Update event binaries with latest from the Event Gallery
2017-09-21 18:04:30 -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
a938a1bd9c Add wordfilter bypass search via database
regex matching takes a lot more time and is a cosmetic / easily fixable
issue (reset to no nickname / default OT).
Add a prompt to temp turn off those checks to drastically speed up
search (no regexes done).

Fix unsanitize for gen6 (should have been >= 6, aka starting with gen6)
2017-09-20 16:46:40 -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
fd8143cae4 Gen<=4 french nickname handling
Fix accented gen1-4 french pkm name retrieval

https://projectpokemon.org/home/forums/topic/41614-bug-2-errors-with-pokemon-platinum/

Thanks Asia81!
2017-09-19 21:27:01 -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
298dc344cf Fix gen3 emerald badge setter
Closes #1452
the bitwise or treated it as an int, which wrote 4 bytes instead of 2,
thus overwriting 16 flyto flags
Thanks @sora10pls & @Tk77185!
2017-09-18 16:06:31 -07:00
Kurt
ad69420ad9 Update gen5 shiny PID generating
Closes #1460
https://pastebin.com/GgcMjmwd
2017-09-17 14:43:28 -07:00
Kurt
84cc366803 Swap markings in gen3
Closes #1463
2017-09-17 13:07:12 -07:00
Kurt
c07a36c333 Fix event flag get set
yay order of operations
also update prompt messages for more guidance
Closes #1464
2017-09-17 10:16:56 -07:00
Kurt
07d37efd67 Fix gen3 wc3 random version get
recently removed gameversion value segregation to 100+; just sanity
check <=CXD
#1460
2017-09-16 14:11:16 -07:00
Kurt
7efd771bf4 Misc refactoring
add docs, move some data fetching to more appropriate class
remove old XP memecrypto support handling, was previously removed due to
net standard/core split
refactor memecrypto to handle multiple save sizes (USUM won't be the
same size save file); placeholder -1 for USUM size
2017-09-16 11:38:58 -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
lilymaniac
9e64f97d51 Update Korean translation 2017-09-16 19:57:18 +09: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
d286fe9731 Extract get/set event flag common SAV method
throw in a little docs
2017-09-13 20:37:18 -07:00
Kurt
73d547b04b Fix gen3 jp OT editing breaking jp detection
Thanks ajxpk!
2017-09-13 18:24:37 -07:00
Kurt
7d8a0e0287 Update kor offsets & r/w operations
Closes #1451 , was caused by empty party writebacks (was reading from
wrong offset
dex caught/owned offset was listed as 0x28AE in the thread, is at 0x2AAE
instead (-0x20 from seen)

should have correct offsets and handling now :)
2017-09-12 19:47:37 -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
4bff4a5e79 Update kor chartable
0x0/0xB had duplicates, and ・・・ doesn't map well (3 chars vs 1)
2017-09-10 21:59:03 -07:00
Kurt
add2fef7a7 Add gen2 korean handling
hypothetical for now, feel free to submit PRs to fix anything that
breaks / was incorrect in the implementation
2017-09-10 19:56:21 -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
f4d8f6e560 Add generic Gen2 jp Emu save file support
+0x30 footer for RTC
2017-09-08 21:53:08 -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
Archit Date
1123c24b0c Fix Gen4 Misc options when no Poketch is obtained. (#1448)
* Fix Gen4 Misc options when no Poketch is obtained.

closes #1447
2017-09-07 12:25:45 -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
13a50fecc0 Update badwords (per ver 11.1.0-34)
3DS Banned Word List - Updated: 09/13/16 (v9217 | FW 11.1.0-34)
Thanks @Bl4ckSh4rk !
2017-09-06 17:15:18 -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
c531f9ae5f Update 17.09.05
Update event binaries with latest from the Event Gallery
this time, ignore any in the "Unreleased" folder!
2017-09-04 22:54:16 -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
cf61333b40 Add gym team history
thanks vg anon (187997971/188004360)
2017-09-03 17:23:20 -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
229d752d7a Update showdown form parsing
Closes #1437 (should have been handled in PKHeX.Core not winforms);
extracted the two sanitization methods and sprinkled in some c#7
2017-09-02 08:26:51 -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
86608f886d Fix incorrect comparison
don't write for gen5, do write for gen1-4.
Closes #1429
2017-08-27 20:39:11 -07:00
Kurt
93f81d554f Misc simplifications
#1417

I'm pretty sure these are trainer stats, so there may be a better way of
presenting these (ie all stats) in the future (if anyone cared). Refer
to gen6/7 trainer stats as reference.
2017-08-27 12:49:05 -07:00
Kurt
b26c670985 Merge remote-tracking branch 'origin/master'
# Conflicts:
#	PKHeX.Core/Saves/SAV4.cs
2017-08-27 12:36:56 -07:00
Kurt
8aa5d9daf0 Add pokewalker initial flags 2017-08-27 12:33:04 -07:00
Egzon Qukovci Jusufi
d0b5ceb8ff Underground Score Editor (help needed) (#1416)
* Underground Score Editor first commit

* not needed space

* changed anchor points

* added dp offsets, ug scores to underground, underground button click code
2017-08-27 12:32:43 -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
c74a519539 Remove (item) from None strings
for fr/de langs
2017-08-26 08:43:00 -07:00
Kurt
b9a9b6db32 Add gen2 iv reroll for shiny
#1419
2017-08-25 18:57:17 -07:00
Kurt
183164a197 Add batch edit pk1/2 .PID=$shiny
Closes #1419
2017-08-25 17:44:15 -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
ccc6357294 Misc updates
Re-enable PKM (abstract class) property searching via Database/MGDB
search
Closes #1412 (can now search or exclude certain formats)

Add auto-detection for all supported saves (rather than gen3+ except
GC/PBR)
2017-08-24 18:49:09 -07:00
Kurt
4f7c19d0cd Refactoring
Extract mystery gift matching criteria into separate method
2017-08-24 10:09:34 -07:00
Kurt
c2124a4bbd Disable catch rate updating on pk1->pk2 xfr
Closes #1414
2017-08-24 10:08:01 -07:00
Kurt
261349c90f Add xk3 fateful check
Closes #1410
2017-08-21 08:59:26 -07:00
Kurt
996a219a13 Gen5 international language bits dex fix
Closes #1395
Gen5 save files do not store multilang dex entries for gen5 species

https://bulbapedia.bulbagarden.net/wiki/Foreign_Pok%C3%A9dex_entries#In_Generation_V
2017-08-20 17:52:10 -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
tnatiuk17piano
e17455b6dd Update flags_oras.txt
Add Eon Ticket flag
2017-08-17 21:13:26 -07:00
Kurt
c8a99ce79a Misc tweaks
split up large Sanitize method into smaller pieces
2017-08-16 22:13:26 -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
d042994d5a Fix kor ingame char table
remove 1024 (invalid char), insert 1039 (connect two sequences)
Closes #1357
2017-08-06 17:29:04 -07:00
Kurt
ebecb21b2e Fix cxd strategymemo/shadowinfo export
Closes #1347
Closes #1296
2017-08-06 17:20:04 -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
4edba19a19 Add platinum wallpaper mapping
dp wallpapers .. pt wallpapers .. hgss wallpapers
contiguous series
24 .. 8 .. 8

Closes #1381
2017-08-05 10:16:55 -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
64919cb8c1 Fix argument order forms fetch
Closes #1378
2017-08-02 10:00:24 -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
Kurt
8e4d236c98 Merge branch 'master' of https://github.com/kwsch/PKHeX 2017-08-01 13:37:46 -07:00
Kurt
75ac795d92 Add missing cast for g7 string conversion
Closes #1374
2017-08-01 13:37:42 -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
wwwwwwzx
5c34e37006 Update Chinese Translation
Replace with in-game texts, mainly ribbon names.
Update legality strings.
Fix Chinese hgss location text (Mt. Silver => Mt. Silver Cave)
2017-07-29 20:49:57 -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
defb05fed4 Add gen5 nidoran name handling
sanitizes to the gen5 case and back,  no half/fullwidth is considered
closes #1370
2017-07-28 18:04:27 -07:00
Kurt
f6df831d1a fix korean set nickname
closes #1369
2017-07-28 09:02:01 -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
9b31202345 Restore bk4 properties
necessary for reflection property transferral (ie language)
indirectly fixes mixed-bit properties (ie altform/gender) as they are
reversed bits relative to pk4.
2017-07-26 18:26:54 -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
85d4c0b4d7 Improve wc3->pk3 creation
Closes #1337
2017-07-15 23:35:32 -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
Kurt
ee57bc49f0 Add gen3 event flag/variable editing
Template files added for e/frlg, no guarantees.
http://i.imgur.com/ER5rRBn.png
(left+select+b when on groudon/kyogre menu screen)

Closes #1328, thanks @rboninsegna !

Added the ability to prefix flag numbers with 0x, and prefix variable
numbers with 0x40__; will be parsed as hex.
2017-07-13 23:05:59 -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
c12eba2186 Add Gen6 mega evolution early-unlock edit
TrainerCard offset is 0x14000
http://i.imgur.com/XtsZLmL.png

via:
33011937 ekx
182491428 hbg
tyvm anon
2017-07-12 20:38:24 -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
4a2dbe4ad2 Add gen4 ribbon names
Closes #1297
fix off by 1 language checking
2017-07-09 14:31:08 -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
04a11ae030 Update gen4 dex seen bitflag setting
now matches general format of SAV_Pokedex4, bit regions were off-by-one.
2017-07-08 19:33:20 -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
267de164f4 Set pkm Stat Level when transferred to CK3/XK3
Closes #1302
Box structure in CK3/XK3 stores stats AND level, as battle stats are a
part of the box structure. There's no party/box differentiation!
2017-07-06 17:47:38 -07:00
Kurt
33dff69fb2 Add dp current poketch offset
Closes #1311
2017-07-06 17:32:26 -07:00
Kurt
45c891e64f Add inventory sorting by index number
Closes #1312
2017-07-06 17:24:40 -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
3b3d31f70b Allow WC3 Egg Met_Level to be overriden from 0
#1309
2017-07-05 23:22:06 -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
sora10pls
951bd6fac4 Fix D/P Mail Item offset 2017-07-05 12:33:04 -04: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
993767f05a Update 17.07.02
Update event binaries with latest from the Event Gallery
2017-07-02 00:14:27 -07: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
e373db99c1 Fix honeytree group get
byte 6 sets 0/1/2/3, which is used for the editor
byte 5 says which sub-table to use (0/1/2) if there is something on the
tree.
Closes #1283
2017-06-29 09:09:59 -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
Kurt
5ebfd10a0a Unban gen6 berries held items
Closes #1278
2017-06-27 08:45:46 -07:00
Kurt
6a054fa7f5 Fix r2 ribbon checks
Closes #1276
if there's any stragglers just report back in that thread
2017-06-26 22:18:42 -07:00
Kurt
dfb7e144b2 Invert language check for VC origin pkm
There's more languages than English/Japanese :)
Closes #1274
2017-06-26 20:32:05 -07:00
Kurt
86d39f2c81 Tweak level/origin check for moves
Valid species/movepools are already determined via the dexlevel and
prior methods, no need to check again with current species.

edge case: sing froslass from CXD won't check gen3 moves (ie, sing)
2017-06-26 20:30:44 -07:00
Kurt
e635755dfd Add SID bypass for cxd random SID gifts
For XD Trade Gifts, the SID matches player's SID (not 0).
2017-06-26 20:29:22 -07:00
Kurt
19bf8de17c Add gen1/2 EV checks 2017-06-26 20:12:49 -07:00
ReignOfComputer
c83a311fd4 Unban Banettite and Cameruptite (#1275) 2017-06-25 20:30:31 -07:00
Kurt
bf6ef284b1 Move contest stat to separate usercontrol
#1272
Smart label now appears for gen 3-5
2017-06-25 10:57:35 -07:00
Kurt
4b1e91677e Fix misc legality issues
Closes #1273
not noted anywhere was encounterstatic pikachu on gen6 (pokewalker->6)
would get flagged.
2017-06-24 17:24:37 -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
Evan Dixon
560f4eab0b Target netstanard1.3 and net46
I recently learned about targetting multiple frameworks in .Net Standard libraries. The main benefit here si taht PKHeX.WinForms and PKHeX.Tests no longer need to carry around the .Net Core DLLs. While it's now an option, I encourage PKHeX.Core to avoid framework-specific compiler directives.
2017-06-24 08:12:35 -05:00
sora10pls
9cd85bf1db Misc4 updates 2017-06-23 15:47:52 -04:00
Kurt
5b5c9d0017 Move ribbon name resources to string dictionary
multilang support now possible, other language translation files added
from existing form translation file

feel free to submit a pull request to change anything for your native
language :)

Closes #1250
not gonna add the alt sprites/names for pk3's
2017-06-22 21:56:41 -07:00
Kurt
86e0374efc Update poketch dropdown/set
#1263
2017-06-22 19:18:14 -07:00
Kurt
5d6ccdedd2 Fix ribbonset comparison check
Closes #1265
2017-06-22 19:01:31 -07:00
Kurt
427eb268e1 Add ribbonresult class to separate invalid/missing
convert non-egg check to ienumerable iteration too

eventually ribbons will have a separate txt file
(PropertyName\tDisplayName), which will be used for both Legality and
Ribbon Editor.

#1250
2017-06-21 23:12:06 -07:00
Kurt
7a8ce986fa Update ribbonset4 iteration
only enforce none from the only 4/5 set; there's 4 ribbons checked by
any which can be received later on.
#1250
2017-06-21 21:46:20 -07:00
Kurt
8e8d43d52f Update ribbon editor language translation
english ribbon strings mappings weren't added for the new gen7 ribbons

should probably separate out ribbon internal <-> ribbon display names
for use with legality checking

#1250
2017-06-21 21:14:31 -07:00
Kurt
1815a7f273 Add current poketch app selection
Closes #1260
2017-06-21 21:07:07 -07:00
Kurt
25b3f2a65a Downgrade g1 required move count check to Fishy
Closes #1258
2017-06-21 21:00:25 -07:00
Kurt
a1b66ab11d Tighten met level check with hasoriginal
#1261
2017-06-21 20:47:07 -07:00
Kurt
3c07f1d0e2 Check if encounter is within level range
Can't rely on met level (or minimum) for a precise met level in most
cases.
#1261
#1259
2017-06-21 20:40:22 -07:00
Kurt
e697a9edc7 Block parties without battleable pkms
#1257
not perfect but less restrictive, probably more obvious.
2017-06-21 20:24:42 -07:00
Kurt
9efd49b0bc More egg related check changes
Properly check for actual held item
move unhittable check (verifyMisc isnt called when parsing pk1/pk2;
verifyMiscG1 is)
add egg PP check, add common method to be shared between gen1 checks and
GBA+
#1257
2017-06-21 09:18:33 -07:00
Kurt
1904700c1e Fetch jp egg name on gen3 species0
#1257
causes a pkm flagged as egg to return the japanese egg name for gen3
only
2017-06-20 22:55:58 -07:00
Kurt
966792713c Add egg held item check
no hold pls
#1257
2017-06-20 22:55:05 -07:00
Kurt
f15333ea6c Update speciesname fetch usages to be gen sensitive 2017-06-20 22:53:39 -07:00
Kurt
ea473ae74f Fix gen3 format evolved ability edge case
closes #1254
2017-06-20 22:33:02 -07:00
Kurt
8cc3a36708 Add manaphy egg sprite
Closes #1256
2017-06-20 22:19:04 -07:00
Kurt
9b76d9b214 Next round of ribbon checking
Returned messages are slightly misleading since missing/invalid are
mixed together with the static method.

#1250
~322 lines to check ribbons, on top of the interface abstraction... so
much required... kinda understandable as there's over 100 ribbons to
check.
2017-06-20 21:57:03 -07:00
Evan Dixon
2636e7ded8 Fixed another potential blank error message
I also added comments where appropriate, because it took far too long to understand what was going on when reviewing the commit that fixed the original bug.
2017-06-20 20:38:33 -05:00
Kurt
1a9da12404 Misc updates
fields->properties, capitalize
fix pkm fields toggle referencing old pkm file, simplify that process
instead of constantly referencing Format
2017-06-20 17:57:23 -07:00
Kurt
6921a2ebee Initial ribbon refactor
remove legality check's use of reflection which checked individual
properties; add interfaces to interact with the ribbons of each PKM
type. With this, every ribbon attribute is accessible via its
corresponding interface (cast)

will have to add checks for individual interfaces as per #1250

I didn't feel like adding much documentation, is pretty straightforward.
Cast a pkm object to the desired ribbon set; if not null, can access
ribbons regardless of pkm format.
2017-06-19 21:43:44 -07:00
Kurt
b4222c756a Refactoring
reduce cross-class chatter, simplifly large methods to smaller pieces
some speed improvements
2017-06-18 22:27:40 -07:00
Kurt
82c8bc01bd Add gen1-4 EV check for untrained pkm
Rework some checks for eggs, closes #1248

GetEggHatchLevel uses Format instead of Generation; should only be used
on IsEgg=true pkm
2017-06-18 21:13:53 -07:00
Kurt
caa46455a8 Add suspicious OT check
Closes #1246
2017-06-18 16:47:23 -07:00
Kurt
b6d266824e Filter crystal statics in matching, not table fetch
Eggs from crystal traded to GS can hatch with no met location; skip
crystal-only encounters unless they are non-eggs

Closes #1245
2017-06-18 16:40:23 -07:00
Kurt
c01aae3156 sav3 Pad OT name with 0xFF
cap length to current language constraint
Closes #1244
2017-06-18 16:19:05 -07:00
Kurt
5b4cedf14b Refactoring
Rewrote showdown set exporting to be much clearer, added auto-fixing of
relearn moves when importing showdown set (applies suggested relearn
moves)
Simplified main form loading routine (from ~160 to ~25 by extracting
methods)
2017-06-18 13:02:02 -07:00
Kurt
a16aa827e4 Add mysterygift version receivability check for PCD
Closes #1242
2017-06-17 23:09:00 -07:00
Kurt
7b2e3c59bf Add gsc goldenrod / fix mania shuckie 2017-06-17 22:44:05 -07:00
Kurt
b5d2db6610 Add shinyleaf/pokeathlon stat legality check
#1236
2017-06-17 22:16:24 -07:00
Kurt
da6f880c16 Add Shiny Leaf editing
Closes #1236
pk4/bk4 only, obviously

side note, using static events is no-no, designer auto-removed them.
just manually reapply (as well to others that used it)
2017-06-17 21:49:14 -07:00
Kurt
3faecaf6d5 Prevent eggs from generating nonstatic encounters
Closes #1239 indirectly; anything gen5+ which was an egg can only be
Daycare or EncounterStatic
2017-06-17 19:08:40 -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
84d3247b75 Add "Can't Tell" recognition for gen2 ingame trades
Fix xatu's IVs, dodrio's gender
why bulba, yes serebii
2017-06-16 23:14:22 -07:00
Kurt
7f318433ed Update gen3 fateful checks
met location FE doesn't propagate to future games, only obedience flag
2017-06-16 21:45:03 -07:00
Kurt
0fd334c999 Fix two evolution edge cases
Evo table was not mutated correctly

clear florges evo table except for base form (for some reason it was
returning spewpa as base species)
gen<6 exeggcute evolves via item:8 (not via levelup:4)

Closes #1234
2017-06-16 18:45:26 -07:00
Kurt
aae6b56422 Show encounter species in EncounterName
Shows up in verbose report
#1234
2017-06-16 18:23:46 -07:00
Kurt
dc8639a31f Reinstate met location constraint for gen2 G/S
via discussion on
2979c4f7ec (comments)

edge case is for shiny egg gifts
2017-06-15 22:48:15 -07:00
Kurt
feaa298263 Add surf maxlevel +4 for gen1/2
Closes #1221 via cumulative changes
2017-06-15 22:42:43 -07:00
Kurt
2064779d91 Add gsc bug catching contest slots
surfing still looks a little wonky, fixed fishing slots
2017-06-15 22:21:02 -07:00
sora10pls
316e50d425 Add Spiky-Eared Pichu nature check 2017-06-15 23:54:47 -04:00
Kurt
9e3ee6eacb Update gen4 gift PIDIV checks
fix method1 PIDIV creation, check for antishiny manaphy gift
2017-06-15 18:34:03 -07:00
Kurt
0cb17ccb42 Add c/xd ingame trades
as wc3 as it's the closest structure without creating a new
encountertrade subtype
2017-06-14 21:57:23 -07:00
Kurt
81534c4645 Update gen3 fateful encounter checks
Closes #1230
Colosseum pokemon do not get fateful encounter, all pkm from XD (except
the starters) are fateful.
Add requirement for National ribbon if shadow CK3 is transferred to XK3
and vice versa; actually check for national ribbon during CK3/XK3
(RibbonSet1 interface)
2017-06-14 21:07:42 -07:00
Kurt
f5a91182b8 Improve milotic evolution check for gen3/4
Closes #1229
2017-06-14 19:04:19 -07:00
Kurt
8f833d8171 Simplify max item count give/modify
999 is true max, set suggested give count to -4 from max (or 1).
Apply giveAll's max value restriction to modifyAll
Prevent giveall/modifyall for PCItems/FreeSpace due to mixed item types.

Closes #1228
Closes #1227
2017-06-14 18:43:28 -07:00
Kurt
b8069184a2 Fix partycount setting for gen5
only update the party count when appropriate
species present=>only update if below
no species present=>only update if above

Closes #1224
2017-06-13 22:14:17 -07:00
Kurt
2979c4f7ec Misc gen2 fixes
still a few problems left:
surf encounters
roamer met locations
national park encounters
lake of rage all-gyarados encounters (?)

#1221
2017-06-12 22:16:20 -07:00
Kurt
7b874757f7 Change gen1/2 encounter preference
Previous approach was 'most likely to find valid', this approach is a
little greedier to try to find a more fitting match. Will result in a
small increase in computation time, but trying out EncounterTrades and
static encounters first is preferred.

Fix Rhydon ingame trade gender. Bulbapedia is wrong, that's a Male
Rhydon with those IVs.
2017-06-12 21:05:04 -07:00
Kurt
8a4c40908b Enforce met location matching for crystal data
Only while format == 2
improve detection for gen1/2 ingame trades
2017-06-12 18:15:26 -07:00
Kurt
3d641ada38 Fix gen2 fishing slots
Correlate mapID to table, thanks @pokecal !
#1217
instead of duplicating quilfish tables, just shift remoraid down one.
2017-06-12 16:54:39 -07:00
Kurt
bb6c5e3dbb Add static encounter egg edge case handling
Closes #1219
reject the eevee case if any relearn moves are present

allow traded eggs to be matched
2017-06-11 18:39:19 -07:00
pokecal
cf4c74ddba convert Crystal locations
I don't know what pkl byte means, I applied a function that convert
mapID to pkm.metlocationID.
This function is used when caught mons.
e.g. route29(18,03): (18-1)<<1=2E, rom[9402E]=4C79, 9*(03-1)=12,
4C79+5+12=4C90, rom[94C90]=02.
2017-06-12 07:38:56 +09:00
Kurt
21ab0296f3 small optimizations
Add ccitt method to checksum an existing array
reduce linq usage (faster save retrieval)

misc4 line endings?
2017-06-11 00:23:04 -07:00
Kurt
43838a5f24 Fix gen7 evo table floette reference
Closes #1216
2017-06-10 17:36:33 -07:00
Kurt
45ff41ca48 Add more gen2 hypothetical handling
won't be active until VC2 release
2017-06-10 15:48:18 -07:00
pokecal
753964c138 fix Gen4 Misc Resources
add missing FlyDst and use MetLocation string.
add TrainerCard flags to FlagEditor.
add Pt resources.

fix HoneyTree, the BlockOffset needed.
2017-06-11 03:20:55 +09:00
Kurt
f054f035c9 Update pokepelago level ranges
Thanks @SciresM !
2017-06-10 11:18:59 -07:00
Kurt
991978dab6 Ensure cleared move pkms have at least 1 move
#1214
user may not be checking legality (bulk transfer)
2017-06-10 08:39:04 -07:00
Kurt
d19b83000d Clear gen2 exclusive moves on pk2->pk1
Closes #1214
2017-06-10 08:31:31 -07:00
Kurt
8a1691eb91 Let pkmdb fetch from save backups
Only if compiled in debug; bumps my searchables to 6 figures lol

bulk legality scan yielded one exception (bad CXD pidiv for starters)
bullk sav fetch yielded one exception (unknown type didn't define
SeenFlagOffsets)
2017-06-09 23:13:41 -07:00
Kurt
1e9f5261b7 Misc pika line fixes
Closes #1213
add default cosplay form at end, add range checks
prevent cosplay/spiky eared pichu from transferring up generations
set pkm to legal info on error (checking legality no longer continues
exceptions).
2017-06-09 21:43:46 -07:00
Kurt
6ca2cb16dc Skip spiky eared pichu pidiv verification
Closes #1199
2017-06-09 21:30:17 -07:00
Kurt
0b0020aa6d Fix florges evolution check
getFormeIndex returns the base species (670 or 671), which duplicates
entries on the chain
the evolution checks use the forme ID but also return 670/671, thus
making this unnecessary

closes #1202
2017-06-09 21:22:33 -07:00
Kurt
3eb55d7171 Merge branch 'master' of https://github.com/kwsch/PKHeX 2017-06-09 17:52:22 -07:00
Kurt
1f479310da Misc fixes
gen5 N pkm already checked, don't flag SID
mystery gift non-eggs already checked, don't flag SID
add used DNA splicers to b2w2 permitted key item list
fix b2w2 new-altform movesets; kyurem is tricky where the form does not
exist in bw's moveset, so both indexes have to be used.

Closes #1211 , thanks @sora10pls !
2017-06-09 17:52:20 -07:00
Matt
39e261c352 Revise several legality check strings (#1208)
* Revise several legality check strings

* Accomodate for text resource
2017-06-09 08:58:45 -07:00
Kurt
dbb7b967ca Merge pull request #1206 from sora10pls/master
Fix more origin game name displays
2017-06-08 20:57:46 -07:00
Kurt
dd5dd63533 Merge branch 'master' of https://github.com/kwsch/PKHeX 2017-06-08 20:57:33 -07:00
Kurt
63b18ff51f Fix misc problems
flag undistributed gen3 events
fix gen3 string writing (resized then expanded yields 00, missing
terminator), closes #1204
fix stackoverflow, fix pkmeditor template loading save prompt, closes
#1207
2017-06-08 20:57:30 -07:00
sora10pls
beda18ccc7 Fix more origin game name displays 2017-06-08 21:50:30 -04:00
Matt
5fc04bd68a Fix Pokémon GO, B2, and W2 origin game names (#1205)
* Fix Pokémon GO origin game name

* Fix Pokémon BW/W2 origin game name
2017-06-08 18:28:46 -07:00
Kurt
b5b5ebd852 Fix null exception for move check
FairyMoves is used as an array entry before it is defined, thus null is
the array entry.
2017-06-08 18:27:43 -07:00
Kurt
3580861b0b Add gen7 encountertrade IV/memory checks
gen6 definitely has memories tho, they're probably varied per pkm.
2017-06-08 18:24:34 -07:00
javierhimura
f8346eb7e1 Fix issue #1200 and added speculation for Gen2 VC without move reminder (#1201)
* Fix issue #1200
Minimum level for evolution moves in generation 7 is 2 thanks to the move reminder, also the evolution could be trigger at the minimum level and not the next level, except when the minimum level is the met level

* Gen 2 VC Speculation, it wont have Move Reminder because the only gen 2 move reminder was in Pokemon Stadium 2

* Missing variable

* Fix update generation 2 level moves
2017-06-07 16:15:13 -07:00
Kurt
ee2a075f52 Merge pull request #1197 from lilymaniac/update-ko
Update Korean legality strings
2017-06-06 22:13:50 -07:00
Kurt
0ae907e4d0 Update unused byte usage knowledge
DistByte is actually 16bits; no point changing the name.
The 32bits afterwards are form duration (Hoopa/Furfrou only), and only
exist while the PKM is in the player's party.

The game sets an initial value with days to exist in the form before
reverting (probably on game restart), checking the delta between days
saved. Either way, just set a base value when writing it to the party,
else clear the value if it is not supposed to be used.

Thanks @SciresM !
2017-06-06 22:13:12 -07:00
Kurt
94a315aa6d Speculation++
As if I would have insider knowledge...
┬┴┬┴┤ ͡° ͜ʖ ͡°)├┬┴┬┴

Prepping core for eventual VC2 support where Crystal data is not
retrievable.
2017-06-06 21:59:29 -07:00
lilymaniac
f9a4b5f6e3 Update Korean legality strings 2017-06-07 13:33:32 +09:00
Kurt
eaf2fd9198 Cleanup
little bit of simplification
2017-06-06 20:52:21 -07:00
javierhimura
0b1fcbbe6d New legallity checks (#1196)
* Add move source to the check result for current moves, it will be used for analysis of evolution with move to determine how many egg moves had the pokemon and determine if the evolution move could be a egg move that was forgotten

* Verify evolution for species that evolved leveling up with an specific move learned, the evolution must be at least one level after the pokemon could legally learn the move or one level after transfer to the first generation where it can evolve

* Check to detect traded unevolved Kadabra based in catch rate and moves exclusive from yellow or red/blue
If pokemon have data exclusive from one version but is in another version that means it should be evolved

* Check no tradeback moves for preevolutions, like Pichu exclusive non tradeback moves for a Pikachu, that Pikachu could not have at the same time Pichu gen 2 moves and gen 1 moves because move reminder do not allow to relearn Pichu moves and gen 2 moves must be forgotten to trade into generation 1 games

* Legallity strings for non tradeback checks

* https://bulbapedia.bulbagarden.net/wiki/Pok%C3%A9mon_breeding#Passing_moves_down
Eggs only inherit a level up move if both parents know the move, that means genderless and male only moves could not have any level up move as an egg except the base egg moves because Ditto is one parent
Nidoran male and Volbeat excluded because they can breed with Nidoran female and Illusime

* Small check to not search for egg moves in genderless pokemon, generation 2 data include egg moves for Starmie

* Fix female only species

* Stomp is not a possible egg moves of Stanee

* Fix Steenee evolution move, it cant be inherited as an egg
2017-06-06 20:10:05 -07:00
Kurt
234a3d2ed8 Simplify egg game generation
All gens that store version number do not change the version ID on
trade/hatch; this info is preserved and can directly imply which game
generated the egg.

the 'version' is ignored anyway, just useful to track for gen2 eggs.
2017-06-06 18:28:21 -07:00
ReignOfComputer
3324ad8e33 Unban Abomasite, Tyranitarite, and Manectite 2017-06-07 00:38:27 +08:00
Kurt
c87b2f10b7 Fix amoonguss static encounter level route11
bulbapedia is wrong, confirmed myself that both encounters are level 43.
fan guide is correct:
http://www.gamerguides.com/pokemon-black-white-2/other-areas/waterfall-required-areas/route-11
2017-06-04 10:58:48 -07:00
Kurt
d730f60dec Fix dexnav relearnmove1 check
species=0 was passed, pass the base species instead
Closes #1192
2017-06-04 09:20:58 -07:00
Kurt
14225bbc2e misc fixes
encounterinvalid isegg no longer throws exceptions when parsing moves
dropping invalid file paths to main window are now ignored (downloads
from chrome can be manually deleted but still dragged from the downloads
bar)
add pidiv case for manaphy gift
2017-06-04 00:12:37 -07:00
Kurt
99fd2dc72d Add PGF forced shiny check
Moved ability forcing to be above shininess forcing as ability bits
shouldn't be set back after a PID has been forced.
2017-06-03 18:40:44 -07:00
Kurt
8dbb82cf88 Add duplicate met location collision fix
Nobunaga's Rayquaza uses this met location; differs from PokeGen as the
illegal one (00002) is appended with " (2)" instead of the event
location; the lesser-used one gets the appending.

Thanks wejhvabewjty!
2017-06-03 18:16:16 -07:00
Kurt
7c4092e1c5 Misc updates
More elegant handling for PKM without nicknames that have another
language species name; use that language ID instead of the pkm's
language ID. Since ToLower is not called, Ho-Oh from 3/4->6 now
transfers correctly.

fix gen3 encounterstatic eggs while still on gen3 games; only check the
egg location if still an egg

tighten up gen3 PIDIV compatibility checks, roamer glitch is fixed on
Emerald, and static encounters can't get method 2, and can only have
method 4 if under software emulation (RS Box) since the emu speed is
faaaaast 🚤 /s
2017-06-03 17:49:37 -07:00
Kurt
a959e31063 Fix roamer PIDIV method detection
http://bulbapedia.bulbagarden.net/wiki/List_of_glitches_in_Generation_III#Roaming_Pok.C3.A9mon_IV_bug
only 8 bits are transferred, not the top 2 IVs (10bits). Add appropriate
constraints
2017-06-03 15:43:41 -07:00
Kurt
4201e10a0e Misc cleanup
Add PCD fixed PID check
improve PID matching for CXD pkm
hide no-pidiv match seed (00000000)
fix matching fateful for wild pokespot pkm
don't generate eggs for c/xd
2017-06-03 15:16:27 -07:00
Kurt
aed6dffce4 Merge pull request #1186 from pokecal/master
add BW2 resources
2017-06-03 14:00:57 -07:00
Kurt
32deb3879a Simplify Shiny SID creation
calculates a passing SID and applies random bits to not be too
predictable
no need to bruteforce
2017-06-03 08:58:30 -07:00
javierhimura
814e63aa1c Add Control key modifier to set shiny button to change the pokemon SID instead of the PID, that allow the change shiny of gen 3/4 pokemon without turn the pokemon in illegal because PID/IV mistmatch
Added Cherrygrove City to surf headbutt encounter locations, the upper right trees on the map can be reach from the water in route 30
2017-06-03 12:02:22 +02:00
Kurt
5823425f42 Add PIDIV checking for encounters
Fixes HGSS egg moves, and improves encounter detail detection.
example: togepi from FRLG transferred up, old detection couldn't
differentiate the gift egg from a regular egg; however, PIDIVs can lend
a hand -- eggs don't have a PIDIV!

fixed shiny BACD spread detection (in regards to antishiny rerolls).
Shiny WISHMKR now detected correctly.
2017-06-03 00:12:05 -07:00
pokecal
c54cd30a3c add EventFlags resources BW2
resources about legendaries
2017-06-03 11:45:24 +09:00
Kurt
03f42ee19c Split gen3/4 encounter generators from default
Add exclusion for gen3/4 balls since met location requires a less
precise match; static encounters will never be in safari/sport balls.

Fix wurmple species ref, isn't smeargle
2017-06-02 16:56:38 -07:00
Kurt
6fee7052af Add box sorting by gender
Closes #1185
2017-06-02 08:54:08 -07:00
Kurt
f70bd02d69 Fix wurmple evo lockup
while loop wasn't checking the modified EC value, thus looping forever
standardize usage across core
2017-06-01 18:41:22 -07:00
ReignOfComputer
8f951211b4 Fix Link Gift Check if not Gen 6 (#1184)
* Skip Link Gift Check if not Gen 6

Prevents NullReferenceException if location is set in other Gen.
Reference:
https://projectpokemon.org/forums/forums/topic/40749-beautifly-and-dustox-re-roll-pidencryption-pkhex-becomes-unresponsive/

* Change Additional Pokemon Link Check

Based on @evandixon's direction :)
2017-06-01 18:10:19 -07:00
Kurt
92ca1e2263 Fix eevee static encounter collision scenario
eevee gen7 egg has no moves; always generate eggs first for gen4+

Closes #1179
Closes #1176 (prior commit)

there's probably a better way to optimize this (don't check wild
encounters if 100% sure it's an egg); best left for future optimization
since it's working fine atm.
2017-05-30 18:42:50 -07:00
Kurt
f60f36081a Fix relearnmove suggestion for set relearn moves 2017-05-30 18:28:06 -07:00
Kurt
2e30878e8b Update 170530
Update event binaries
unban gen3 mega evo stones
fix a lil bit of behaviors
2017-05-29 22:34:45 -07:00
Kurt
c666183e6c Misc fixes
enhance evolution checking
add gen2 game corner static encounters
simplify relearn checking methods that did the same thing
2017-05-29 15:21:39 -07:00
Kurt
550153e3bc Improve gen3 sav detection
better detect RSE collisions
add auto-detection for japanese games
Closes #1172
2017-05-29 10:33:27 -07:00
Kurt
82750de1b8 Add initial gen3 event detection
egg events supported, only some gen3 event distros supported
will eventually flag for PIDIV type mismatching

@kamronbatman
2017-05-29 00:48:25 -07:00
Kurt
9a7dc9998c Misc fixes
Track gen1/2 origin game as well  as generation
fix pk2 gender setting (incorrect bitmask & wasn't set from tabs)
extend female gender check for gen2 to apply to GS encounters -- if met
location is missing, was traded to gen1 which clears gender.
2017-05-28 16:56:51 -07:00
Kurt
e01c8a5786 Misc gen3 related legal check fixes 2017-05-28 15:49:20 -07:00
Kurt
8eed9f84ba Fix pk1 catch rate overwriting
CatchRateIsItem is always false, thus the catch rate was always
overwritten with the base species catch rate regardless of if the base
species was the encounter.
For species like Metapod who have different catch rates from their base
species, this would invalidate any Metapod capture. So all possible
catch rates are checked.

Instead of setting the catch rate to the base species catch rate, set it
to the current species. Allows user to set the exact catch rate by
toggling between a legendary and the target species...
2017-05-28 13:19:48 -07:00
Kurt
cbfa38b131 Rework encounter slot generating
Closes #1171

Calculate rejection scenarios, store rejected slots to spit out at the
end rather than returning them early.
2017-05-28 11:10:01 -07:00
Kurt
178017b104 Relocate female gender checks
Per discussion in #1170

Revise message descriptions
Gen1 err message now used
2017-05-28 10:35:41 -07:00
javierhimura
5cf870d73f Mark OT Female trainer from Gamecube and VC pokemon as invalid.
Gamecube games and generation 1 games do not have female player character.
Generation 2 is not checked because if the pokemon is in format 2 and have met location data stored that means it was caught in crystal where female player is allowed, checks are not included for generation VC2 pokemon
2017-05-28 16:02:57 +02:00
Kurt
61eaa7774d allow insta-hatch eggs
pelago can drain to 0, will hatch immediately on current gen
im sure there's some ways to force-walk to trip to 0 on prior gens, but
this is such a minor check and has no impact for online play

Thanks @Kirzi !
2017-05-27 22:50:10 -07:00
Kurt
74dbeb5cf6 Cleanup
throw in more c#7 lang sugar to checks

flag invalid hatch cycles (over species max || 0); existing wouldn't
flag for non-static encounters.
2017-05-27 22:40:21 -07:00
Kurt
db2d043199 unroll cxd seed completely
re-letter for clearer order of RNG results, don't unroll 3x to roll
forward 2x (just unroll 1,1 then 1).

Put origin seed in RNG Reporter => frame 1 result
Closes #1169
2017-05-27 22:18:04 -07:00
Kurt
2cd1a29b76 Fix platinum turnback giratina
if ko'd in the distortion world, it'll return to turnback cave; uses the
same encountertype as DP.

Closes #1156, Thanks @iKamus !
2017-05-27 21:20:13 -07:00
Kurt
858aa50689 Refactor encounter matching
exercise in deferred execution/state machine, only calculate possible
matches until a sufficiently valid match is obtained. Previous setup
would try to calculate the 'best match' and had band-aid workarounds in
cases where a subsequent check may determine it to be a false match.

There's still more ways to improve speed:
- precalculate relationships for Encounter Slots rather than iterating
over every area
- yielding individual slots instead of an entire area
- group non-egg wondercards by ID in a dict/hashtable for faster
retrieval

reworked some internals:
- EncounterMatch is always an IEncounterable instead of an object, for
easy pattern matching.
- Splitbreed checking is done per encounter and is stored in the
EncounterEgg result
- Encounter validation uses Encounter/Move/RelearnMove/Evolution to
whittle to the final encounter.

As a part of the encounter matching, a lazy peek is used to check if an
invalid encounter should be retained instead of discarded; if another
encounter has not been checked, it'll stop the invalid checks and move
on. If it is the last encounter, no other valid encounters exist so it
will keep the parse for the invalid encounter.

If no encounters are yielded, then there is no encountermatch. An
EncounterInvalid is created to store basic details, and the parse is
carried out.

Breaks some legality checking features for flagging invalid moves in
more detail, but those can be re-added in a separate check (if
splitbreed & any move invalid -> check for other split moves).

Should now be easier to follow the flow & maintain 😄
2017-05-27 21:17:57 -07:00
pokecal
1bb891a8a3 fix BW2 checksum offset
ExportSAV without changes will become export same data.
2017-05-28 11:01:27 +09:00
pokecal
0cae317770 add EventFlags resources BW
I recently noticed that some activation use TID/SID,
I will re-check past resources that have abnormal value(e.g.AzureFlute),
after researching BW2,Pt.
2017-05-26 19:17:28 +09:00
Kurt
113001f280 Temp gen2 met location filter bypass
#978
crystal location data => no location values to compare to
2017-05-23 22:38:21 -07:00
Kurt
be80a6b9da Fix HGSS wallpaper get/set & editing
the special wallpaper values are +0x10 (ie 0x20, 0x21... instead of
0x10, 0x11) from the contiguous sequence of regular box wallpaper IDs
(anti cheat probing?).

Xor tweak allows for single invert method; use this invert with the base
implementation's method.

Range check for setting the box wallpaper (just in case). The underlying
error was fixed; the 255 val was reading from the wrong offset (now
fixed).

Thanks Scarfy!

https://projectpokemon.org/forums/files/file/1-pkhex/?do=findComment&comment=344
2017-05-23 21:38:15 -07:00
Kurt
5f94a2e0f4 Update encountertrade ability legality check
check for encountertrade edge case first, then ability capsule

Closes #1163
2017-05-23 20:10:57 -07:00
Kurt
b8a799f7ed Fix gender ratio comparison
http://bulbapedia.bulbagarden.net/wiki/Personality_value#Gender
For a Pokémon with a 50/50 male/female gender ratio, there is actually a
129/256 (50.390625%) chance for the Pokémon to be male and 127/256
(49.609375%) chance for the Pokémon to be female.

remove unnecessary parameter passing

#1163
2017-05-23 18:48:16 -07:00
Kurt
7e30d863b0 Revert dexlevel evotree fetch + re-implement fix
check requireslevelup during evolution validity check, not during tree
generation as movepool fetch treats the 'level' as the max possible
level it was at (not the level it was encountered).

fix dropping pkm from external source causing exception (final return
false caused it to proceed with regular dragdrop operation from source
slot).

#1163
2017-05-23 18:35:32 -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
wwwwwwzx
13be5201b1 Several minor fixes and update Chinese translation 2017-05-19 22:05:08 -07:00
Kurt
63b3c8b020 Fix gen1/2 moves with 40 pp given 3 ppups
cap is 61:
http://bulbapedia.bulbagarden.net/wiki/Power_Point#Base_value_alteration

cap forced maximum at 63
2017-05-19 09:22:12 -07:00
Kurt
483998d930 Change gen4 (egg) met location setter
Closes #1135
clear both if zero
set value to dp location if a valid dp location, else set faraway place
set value to pthgss location if originated from pthgss
2017-05-18 22:40:38 -07:00