Commit graph

90 commits

Author SHA1 Message Date
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
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