Kurt
f91a1c1d31
Add gg species / maximum placeholder
...
Will eventually have to fill these in during gg update
pretty sure they've revealed all the new species; total move/item count
still unknown
2018-10-27 09:08:39 -07:00
Kurt
359a529870
Misc updates
...
Move some logic around, fix style warnings
2018-10-27 08:53:09 -07:00
Kurt
e8ad1e227f
Update shadow lock table
...
Thanks @ijuintekka ! Closes #2148
Will check later for commented out tests that should pass.
May end up turning on the first-shadow-lock check feature prior to
release.
2018-10-26 11:14:42 -05:00
Kurt
3d0d8fa649
Add first shadow lock check
...
Currently toggled off, can be optionally toggled on (I'm not sure that
it's perfect? Random save files have stuff flagged since they don't
match the lock; will have to investigate later)
2018-10-21 21:07:33 -05:00
Kurt
8c4a17335f
Add first shadow lock test method
...
Everything should always pass the first lock check; will add shortly to
any cxd encounter checks
2018-10-21 20:55:02 -05:00
Kurt
c0aae6ab78
Add cxd lock check info & begin troubleshooting
...
commented out test calls = not working
will have to debug in more detail later; the first lock is always
working at least.
data sourced from
https://github.com/ijuintekka/Eligor/blob/master/Eligor/Spread.cs , not
sure if it's perfect.
can't cleanly condense deviating team appearances as double-shadow leads
can't be selectively encountered. didn't feel like modding lockfinder's
recursive algo to be smarter.
2018-10-20 21:03:04 -05:00
Kurt
06cca185e4
Add edge case for pidiv kor g4 pichu
...
Closes #2144
미케나 pichu 12179/20300
2018-10-19 22:27:18 -05:00
Kurt
93af3e61b7
Add handling for Mt Battle Ho-Oh (italian) edgecase
...
https://projectpokemon.org/home/forums/topic/47917-colosseum-italian-ho-oh/
there's no shadow ID, so it can have both the short (transferred back)
or full name (never transferred) as CK3 without side effects.
allow 10chars in pkmeditor
2018-10-13 08:07:15 -07:00
Kurt
f7f5d78beb
Misc perf tweaks
...
hopefully resolves the image corruption issue (dont use unsafe?)
remove some linq
2018-10-13 08:02:55 -07:00
Kurt
b7acb7fa1d
Add memory rarity table
2018-10-12 17:45:52 -07:00
Kurt
e8552affca
More gb restriction relocations
2018-10-10 16:32:02 -07:00
Kurt
2db8daa07b
Add specified ability no-hidden check
...
ability=0 allowed abil1/2 but not 4; catch that scenario
2018-10-10 16:31:40 -07:00
Kurt
2ad103dd46
Extract gb specific core logic to separate class
2018-10-09 21:07:13 -07:00
Kurt
0a62506e11
Micro optimization
...
wow such use
length eq to max will always pass
2018-10-09 19:28:18 -07:00
Kurt
b481358e92
Add number count check for OT/nick
...
https://projectpokemon.org/home/forums/topic/47850-legality-issue-names-with-multiple-numbers/
let me know if there's any implications for transferred content (name
reset on 1-3=>n?)
2018-10-08 17:57:34 -07:00
Kurt
47f20b8c0e
Update fixed ability comparison for 6+
...
4aa44c90c1
only updated it for gens 3-5
Closes #2136
2018-10-08 15:26:43 -07:00
Kurt
f65bc2e984
Reduce allocations for gen1 move parse
...
use shared interfaces
2018-10-07 15:36:32 -07:00
Kurt
4aa44c90c1
Update fixed ability comparison
...
ignores <= 0 now
2018-10-07 15:36:04 -07:00
Kurt
fd1009476e
Minor logic simplifications
...
reduce size of encountermoves, split into separate object
only execute gb movedata adjustments for gb
2018-10-06 19:44:50 -07:00
Kurt
4deb5080d1
Misc tweaks
...
rearrange getmove with respect to tutors; verifycurrentmoves was getting
tutor moves in levelup
extract not-found hint fetch
Expose gen5 block objects (so I can play with saves in linqpad)
2018-10-06 18:45:15 -07:00
Kurt
dc839333b7
Add more parse settings
...
allows consumers to tweak debatable settings
2018-10-06 13:43:05 -07:00
Kurt
66faa43e03
Add gen6+ fixed ability hot path
...
Closes #2135
2018-10-06 11:24:46 -07:00
Kurt
f507ab7081
Misc parse settings reorg
...
makes it more centralized for defining parsing settings, maybe can have
flags to change severity of certain preferential checks
2018-10-05 19:58:30 -07:00
Kurt
59af7fef35
Remove unnecessary properties
2018-10-05 19:57:45 -07:00
Kurt
ce9d3abbe4
Misc reorganization
...
Move logical checks using encounter data out of Core.cs
might be possible to excise legality checking objects from
Legal/PKHeX.Core so that a 'slimmer' core can be made
2018-10-04 18:52:00 -07:00
Kurt
03a05364ab
Update colo suicune ++
...
location ID was originally added by:
afde4514e2 (diff-83a32d69355a64376bc77bd07e338a33R446)
I
have another save file that uses met location 110 (like this one) so I
assume it was originally a copypaste error from Sudowoodo.
Change Trade strings to not allocate separate empty arrays.
2018-10-04 08:14:53 -07:00
Kurt
4bbb1f54b9
Change burned tower suicune encounter type
...
was initially set by this commit
0e3815b048
field test resulted in Cave/HoO type
https://projectpokemon.org/home/files/file/2953-burned-tower-suicune/
2018-10-03 16:46:55 -07:00
Kurt
5d6c932353
Spit out move learn generation on verbose
...
helps indicate any restrictions on learn source outside of the current
format
2018-09-30 11:50:08 -07:00
Kurt
db30fea38c
Remove gsc dodrio trade OT trailing space
...
Closes #2126
Rewrite trade OT validation by using the trade's OTs property
2018-09-19 19:09:29 -07:00
Kurt
d5816795bf
Remove split gsc trade levels for tradeevo species
...
#2126
Receiving a lower leveled species from GSC will evolve it away from the
required species, ruling it unavailable.
Receiving a Machoke will evolve it, so can't reuse for Haunter trade
2018-09-19 19:08:10 -07:00
Kurt
65272d460a
stricter mysterygift references
...
results in:
- precomputed GetTable() reference
- no casting when iterating for matches
- no db null checks, as they are initally Array.Empty<T>();
reduces noise a little & slightly faster
2018-09-15 16:22:07 -07:00
Kurt
df321d14b5
Reorder checks
...
most common path is now first
2018-09-15 16:13:17 -07:00
Kurt
b280ffcfef
style updates
...
should be pretty much it
2018-09-14 22:37:47 -07:00
Matt
165757d590
Fix Meteorite/Mega Cuff mixup ( #2120 )
...
Meteorite (2) is legal, Mega Cuff is not.
2018-09-12 22:10:13 -07:00
Kurt
ff25e3cbd0
Remove illegal items from legal key items
2018-09-12 21:52:09 -07:00
Kurt
d511fccdb4
Move basement key item ID to illegal group
...
no functional change, item is unobtainable but still can be 'give all'
and in permitted list
2018-09-12 21:30:24 -07:00
Matt
fc91819410
Add XY Magikarp trade IVs ( #2117 )
...
* Add XY Magikarp trade IVs
* Add Cosplay Pikachu IVs
2018-09-12 11:02:11 -07:00
Kurt
0c02a0cbbc
Add splitbreed mantine to pastgen alolanoffspring
...
thanks kr, beast ball now recognized as legal
2018-09-09 17:19:50 -07:00
Kurt
f444c41ee3
Remove nick req on g5 gigalith trade
...
Closes #2114
2018-09-08 10:45:30 -07:00
Kurt
d02b87a7b2
Expose checkresult properties
...
can now check individual strings / identifiers in a LegalityAnalysis
object by:
var la = new LegalityAnalysis(pkm);
var parse = la.Info.Parse;
if (parse.Any(z => ReferenceEquals(z.Comment, LegalityCheckStrings.X))
...
should be faster than doing string.Contains
2018-09-05 21:27:52 -07:00
Kurt
1750c69b01
Update pcd version distro check
...
some events have fixed version IDs in the gift data
https://projectpokemon.org/home/forums/topic/47365-vgc-shiny-milotic-usa-pkhex/
2018-09-05 16:09:30 -07:00
Kurt
cc20bb38d7
misc updates
...
use arrays instead of list when capacity known
use enums for const decoration
remove unnecessary aliases
2018-09-01 19:55:08 -07:00
Kurt
91c37ab573
Update legality check message string style
...
V### names weren't enjoyable to work with; use similar verbose style as
the program message strings.
updating the translation files with the remapped variable names shortly
remap list: https://pastebin.com/jybkVDAK
2018-09-01 14:11:12 -07:00
Kurt
1fe304e78f
Rework mg nick/lang checks
...
add common interface
https://projectpokemon.org/home/forums/topic/47295-bug-event-golduck-name-not-matching-species/
2018-08-30 18:09:52 -07:00
Kurt
c6e4c39bc5
Fix gen1 single chain for gen2 tradeback scenario
...
invalid mon -> make sure array is big enough for later move parsing
https://projectpokemon.org/home/forums/topic/47283-unhandled-exception-when-importing-set-from-clipboard-after-opening-gen-i-save-file/
2018-08-29 21:58:44 -07:00
Kurt
ebae14e6ad
Add unnicknamed forced languageID wc7 handling
...
https://projectpokemon.org/home/forums/topic/47295-bug-event-golduck-name-not-matching-species/
another edge case
2018-08-29 20:36:32 -07:00
Kurt
f89d9ca323
Split apart headbutt tree logic
...
precompute Index & make readonly when initializing as we use Index at
least once when initializing the treesarea
2018-08-28 15:10:08 -07:00
Kurt
f74c1e321a
no mo go to yo
...
pull goto default into 'when' so other cases continue to default
this is a goto free codebase ( ͡° ͜ʖ ͡°)
2018-08-27 20:48:57 -07:00
Kurt
4dc04cb4b9
Add pelago status value check + etc
...
0, [9,19] are set (didn't see 15), but there's also a switch case which
references all values 0-19.
these values are used by a 80 sbyte array (4*20) in the Resort.cro
remove usages of "goto case"
2018-08-27 20:44:26 -07:00
Kurt
102430ebf5
Update trade nickname check
...
reorder for simplicity, add test
Thanks ThePunish3D!
2018-08-26 18:32:39 -07:00
Kurt
4656909d98
Misc reorg
...
use shared class for pk1/2 setnotnicknamed
fix extendedeurope values (copypaste from extendedAmericas)
move ball out of verifiers, move nature/movetype with ball
2018-08-26 16:29:52 -07:00
Kurt
f7b5a5579d
sync missing content
...
yay rename
2018-08-26 11:29:47 -07:00
Kurt
7f87d43c41
Add enum for ball; use in checks
...
Increases readability instead of using hex IDs
2018-08-26 11:15:32 -07:00
Kurt
6a225ad091
Add mr mime to usum additions for egg balls
2018-08-26 09:43:11 -07:00
Kurt
a9f65a4617
add lock for cross thread dictionary manip
...
could use concurrentdictionary but after reading some perf drawbacks vs
manual locks, just do it manually. regex checking is the real slow part,
whatever
add some comments to describe
2018-08-25 10:48:37 -07:00
Kurt
5fe9226c62
Ignore fixed language trades for gen4 korean check
...
Closes #2103
Thanks @Narithegreat !
2018-08-22 22:36:56 -07:00
Kurt
7ccaf8783b
Unban bred HA sableye
...
yeah totally genderless
https://projectpokemon.org/home/forums/topic/47101-gen-v-hidden-ability-sableye/
2018-08-20 20:08:42 -07:00
Kurt
d7f39ea343
Extract pkm searching to separate classes
...
search logic can now be reused by core projects
adds option to provide extra filters run at the end (prior to clone
check)
2018-08-16 20:06:40 -07:00
Kurt
eec14645ef
Lessen string length severity on egg encounters
...
Hatched eggs can have mismatched languages<->OT/Nick restrictions
2018-08-15 15:26:42 -07:00
Kurt
5514530dfb
update OT name edge case
...
traded ENG->KOR egg was getting flagged
#2094
2018-08-15 15:19:54 -07:00
Kurt
b6de41bfa7
Add OT name max length checks
...
Closes #2094
2018-08-15 14:58:55 -07:00
Kurt
bc262a7cdf
Remove Plasma Fists from unsketchable
...
Closes #2095
split out unsketchable moves (struggle/chatter) to separate array
remove trailing spaces (auto fixed by my visual studio plugin), add
space before comment //
2018-08-15 14:52:25 -07:00
Kurt
57c6de2825
Add nickname length check for gen>2
...
Closes #2091
2018-08-14 20:13:15 -07:00
Kurt
6edc828cc3
misc style updates
2018-08-12 19:27:11 -07:00
Kurt
6b62dd29ee
Update xy fashion edits
...
different for each gender
2018-08-08 21:27:14 -07:00
Kurt
7403c0f91a
Add more pokewalker moves
...
igglybuff wish, happiny heal bell, and the elemental punches to round
things out even though they can be tutored
https://projectpokemon.org/home/forums/topic/46143-bug-in-last-update/?do=findComment&comment=234991
2018-08-08 17:35:06 -07:00
Kurt
279c9d4665
Fix tradeback detect for gen2->1->2 evolve case
...
https://projectpokemon.org/home/forums/topic/46909-certain-gen-i-moves-are-showing-invalid/
Thanks Raptor385!
2018-08-04 13:36:05 -07:00
Kurt
53857df647
Copy addmoves special case to individual fetch
...
see prior commits
2018-08-04 10:05:47 -07:00
Kurt
0f63b0a0ee
Allow bw movepool except for kyurem
...
workaround provided for kyurem movepool (which is same bw-b2w2) but the
AddMoves logic with form != 0 points to the form == 0 data
Closes #2085
2018-08-03 07:46:53 -07:00
Kurt
30a614484e
Update STADIUM ot checks again
...
jp: 1999 if stadium1, 2000 if stadium2
en: 2000
jp: always same OT
en: lowercase if stadium2, uppercase if stadium1
https://projectpokemon.org/home/forums/topic/46893-pkhex-bug-stadium-ot-issue/
2018-08-03 07:38:29 -07:00
Kurt
1486b7f14a
Misc style & minor tweaks
...
Remove move combobox flicker hack (no longer necessary)
Add more Array.Empty usages
cache mysterygift sizes
seal some classes
no functionality changes
2018-08-02 20:11:42 -07:00
Kurt
19a897923d
Reference original encounter for sensitive checks
...
https://projectpokemon.org/home/forums/topic/46143-bug-in-last-update/?do=findComment&comment=234360
thanks paf!
2018-08-01 20:39:20 -07:00
Kurt
f4bfdb8311
Remove unnecessary empty array allocations
...
yay net 4.6
read more: http://justinvp.com/2015/07/20/array-empty/
2018-08-01 18:30:51 -07:00
Kurt
007ec93d85
Update trade nick check for non-nicknamed
...
Closes #2084
2018-07-31 17:27:28 -07:00
Kurt
cfa3479a4b
Add egg experience check
...
Closes #2083
2018-07-28 18:09:29 -07:00
Kurt
c46924d220
Use wcxfull version/language restriction data
...
some cards may permit being recieved on incorrect games
some wcxfulls permit games they shouldn't (tapu koko flags permit USUM
but games released after the distribution window)
lots of wcx lacking restrictions completely
tested flagging USUM rockruff & zeraora
might be worth discarding MysteryGiftVerifier and instead just using
unused fields for prior formats to supply the data.
2018-07-27 22:26:27 -07:00
Kurt
3d0a2946eb
Allow only one movepool for BW-B2W2 source
...
they're both the same, but bw's pool does not have b2w2 formes
Closes #2078
2018-07-26 21:51:11 -07:00
Kurt
c8563a3737
Respacening
...
Style guidelines, handle a bunch of files
no functional change
2018-07-26 19:34:27 -07:00
Kurt
75801e22e0
Update egg location -> encounter generating checks
...
WasEgg only checks for EncounterEgg valid locations; check for any value
instead.
2018-07-26 14:55:49 -07:00
Kurt
711157f3ea
Refactoring
...
Extract trainer pkm origin check to interface extension
2018-07-25 20:40:57 -07:00
Kurt
f0fc4b0693
remove alias'd properties
2018-07-25 19:43:02 -07:00
Kurt
f0090669bb
Update catch rate related logic
...
#2071
2018-07-24 19:33:42 -07:00
Kurt
3c4ba0d52b
Misc cleanup
2018-07-22 17:26:19 -07:00
Kurt
b97e967304
Misc cleanup
2018-07-22 17:14:22 -07:00
Kurt
c9408e6af4
Misc clean
2018-07-22 12:00:03 -07:00
Kurt
abe6ef1be3
Move ribbon verifiers to appropriate folder
...
no functional change
2018-07-22 11:50:11 -07:00
Kurt
4b0a2d90b9
Add xmldoc
2018-07-20 20:22:46 -07:00
Kurt
c9abeda508
Update stadium check again
...
#2065
2018-07-20 05:57:57 -07:00
Kurt
1ff8ebf777
Misc overload add/use
...
Some values are already computed; pass them in to overloads for quicker
execution
2018-07-19 19:38:44 -07:00
Kurt
614d2629ce
Remove unnecessary ref passing
...
object is already passed byref, don't need to repoint the reference
2018-07-19 18:09:37 -07:00
Kurt
9a91619580
Update vc1 invalid transfer pruning
...
Closes #2065 Thanks @WEERSOQUEER !
Single evo species weren't getting flagged in the evolution verification
as they early returned (species matched), just move the sanity check
before that
2018-07-19 16:42:45 -07:00
Kurt
69e7d49d03
Simplify Stadium OT Check
...
TID is always 2000 : #2065
2018-07-19 15:54:34 -07:00
Kurt
ff4ca47ebe
Remove GBEncounterData boxing
...
Interfaces implement enough detail, so can simplify
extract local methods (likely will be inlined)
less obj allocations = faster!
2018-07-18 16:37:21 -07:00
Kurt
1c75093e27
Specify altform for ranch shellos
...
1 not 0
https://projectpokemon.org/home/files/file/336-shellos/?do=findComment&comment=1290&tab=comments
2018-07-18 07:15:46 -07:00
Kurt
a100488142
add gen12 generator kadabra catch rate case
...
https://projectpokemon.org/home/forums/topic/46259-yellow-kadabra/
Thanks Cloud AC !
update misc verifier for catchrate to better indicate for
any->nontradeback scenarios
2018-07-17 16:54:23 -07:00
Kurt
fe7fea877b
Replace boolean OrderBy with DeferBy
...
orderby consumes the entire input enumerable in 'sorting' the list;
since we don't care about the order besides a yes/no, just manage the
yield order ourselves.
don't bother using this method more than the spot it's in; was a fun
exercise but other spots are set up for easier debugging
(overall flow is where->deferby->yield), could make things easier to
read but meh
2018-07-17 16:28:42 -07:00
Kurt
e4aa16f396
Fill out gen5 hidden ability banlist
...
now flags gen5 contrary serperior ;)
2018-07-16 21:53:46 -07:00
Kurt
bdb5aaee36
Ignore mismatch if explicitly permitted by prior check
...
Closes #2062
2018-07-16 16:12:19 -07:00
Kurt
7ec1cab9a7
Update gen1/2 trade generator to emit gen1 if match
...
Closes #2060
2018-07-16 15:22:40 -07:00
Kurt
0f17445ef4
Update gen3 event pidiv method check for eggs
...
closes #2057
Thanks @kamronbatman !
(nothing currently implemented uses BACD_U_S)
2018-07-14 20:19:13 -07:00
Kurt
625a77589b
Extract geolocation logic to interface
...
mixins would be nice but I guess extensions cover this
2018-07-14 10:34:34 -07:00
Kurt
83e61923f7
Add bw/2 jellicent deferral case
...
https://projectpokemon.org/home/forums/topic/46143-bug-in-last-update/?tab=comments#comment-233860
Thanks paf!
2018-07-13 13:48:27 -07:00
Kurt
e4e5018aa7
Extract some methods
2018-07-11 19:13:09 -07:00
Kurt
6816c2de43
Update OT affection check for 3-5 memories
...
https://projectpokemon.org/home/forums/topic/46180-oras-transfered-pokemon-invalid-ribbon/
Thanks piplupwater!
(there's no other usages of V129)
2018-07-11 17:43:48 -07:00
Kurt
8a83b9bde8
Update manaphy ability check again
...
57250823a8
covered it for format>=6, in 4/5 the abilitynumber is derived from
PIDAbility
Closes #2052
2018-07-10 21:30:13 -07:00
Kurt
f8c43d4a06
Rework gen1 trade OT handling
...
convert all dictionaries to char-byte instead of string (saves 50KB on
compressed dll, lul)
update OT string comparison for pre/post transfer specimens
Showing "TRAINER" for all languages isn't correct, just show a mapped
character
Closes #2049 , thanks @egzonqj & @WEERSOQUEER !
2018-07-10 16:45:24 -07:00
Kurt
027d898f3d
Update Yancy Curtis trade OT checks
...
Thanks paf!
https://projectpokemon.org/home/forums/topic/46143-bug-in-last-update/
2018-07-10 12:37:40 -07:00
Kurt
c8897161b7
Fix gen6 evo tree resize miss
...
https://projectpokemon.org/home/forums/topic/46144-a-couple-of-new-problems-in-the-pkhex-version/
Thanks CreamatedReptile2018 !
2018-07-09 22:51:01 -07:00
Kurt
93876d98eb
Fix CanInhabitGen1 comparison
...
extracted and forgot to double check the boolean comparison when
inverting the return value
https://projectpokemon.org/home/forums/topic/46148-bug-gen-1-moves-and-legendaries-incorrectly-flagged-in-gen-2-game/
Thanks Raptor385!
2018-07-09 21:59:38 -07:00
Kurt
d45a8afef2
Remove erroneous chain trim logic
...
latter half of the method seems to do everything that is required
Closes #2048
2018-07-09 21:26:45 -07:00
Kurt
9a57469ec3
Update shedinja chain handling
...
Closes #2045
4ac92b9418
had added it; assuming to undo lvl-1 => lvl for gen3/4.
Level Up, Learn Nincada Move, Evolve to Ninjask & spawn Shedinja, then
learn any Ninjask Moves. Gen3 reverses the spawn&learnNinjask steps,
which is handled separately
Thanks @XxPhoenix1996xX !
2018-07-09 20:18:31 -07:00
Kurt
57250823a8
Add ranger manaphy ability check
...
PCD != PGT
Closes #2044
2018-07-09 17:33:31 -07:00
Kurt
6bb076aecf
Fix mysterygift hidden ability comparison
...
Closes #2047
2018-07-09 17:08:26 -07:00
Kurt
d70990f9cc
Fix SOS hidden ability <-> flawless IV count
...
3->2
https://projectpokemon.org/home/forums/topic/46142-two-illegal-pokemon/
2018-07-09 17:02:18 -07:00
Kurt
8b1ec36242
fix volbeat/illumise sport comparison
...
#2047
2018-07-09 06:28:29 -07:00
Kamron Batman
5ecd3b1875
Adds distribution for Negai Boshi Jirachi ( #2043 )
...
* Adds distribution for Negai Boshi Jirachi
* Updates negai boshi to have the proper game origins
2018-07-08 16:21:49 -07:00
Kurt
fe82fe8eab
Show language name instead of index
...
prefer to keep the '0' case as zero
2018-07-06 17:22:56 -07:00
Kurt
397de97f3c
Remove excessive references to Util.Rand32()
...
all usages besides fetching a 32bit random value should use rand.next
remove unnecessary do-while loop for calculating random EVs (always
returns 510 in total)
2018-07-04 11:30:43 -07:00
Kurt
326522c76f
Misc simplifications
...
cache splitbreed species as another class
reduce linq usage in evolution validity check
reuse egg hatch method
2018-07-04 09:15:20 -07:00
Kurt
fdc4dd2811
Fix encounter ability comparison
...
-1 is the 'no fixed ability parameters defined'
Closes #2041
(optimize abilitynumber check for early return)
2018-07-03 18:43:11 -07:00
Kurt
8e950e83b3
Rewrite ability verification
...
Closes #2040 , adds test cases:
invalid bulbasaur.wc3: hidden ability
invalid charmander.pcd: hidden ability
valid camerupt: gen3->4 unevolved mismatch
valid leafeon: pcd mismatch -> evolved now matching
should be much easier to maintain; methods are reused with less overall
nesting
2018-07-02 20:34:41 -07:00
Kurt
d11a89d52d
Move relearn required flag to checkmoveresult
...
reduce usage for non gen6+ relearn move cases
save contains result for later usage instead of recomputing the inverse
2018-07-01 21:34:17 -07:00
Kurt
7f6f7a7bad
Misc simplifications
...
reduce nesting (evo.RequiresLevelUp is checked twice, only check once
and handle path)
compact some methods
seal some classes
add a little xmldoc to exposed members
2018-07-01 19:55:23 -07:00
Kurt
c40a284174
Misc simplifications / xmldoc
2018-07-01 19:17:37 -07:00
Kurt
3674a11cfe
Misc simplifications
...
absorb verifier calls into the parsing methods
2018-07-01 17:07:29 -07:00
Kurt
bc6c361746
Reduce linq usage
...
reuse variables instead of re-fetching (pkm.Species)
add overload for HashSet<int> contains vs ICollection
merge BattleOnly to one hashset
2018-07-01 10:49:11 -07:00
Kurt
e5ac193e8e
Remove unused field
...
Encounter used to be used to determine if the original encounter was
valid; we now store the encounter object and checking is fast enough --
we don't really care to short-circuit individual verification steps
anymore.
2018-07-01 10:15:10 -07:00
Kurt
d477e19cf0
Simplify ball/catchrate lineage checks
...
should speed up egg ball checking a bit since we've already computed the
original species
gen1 catch rate, just move the chain fetch there.
2018-07-01 10:15:10 -07:00
Kurt
177604e2cb
Refactoring
...
Simplify some verifier logic
2018-06-30 15:01:16 -07:00
Kurt
aa3b64dc6d
Simplify ball check logic
...
fetch a single result and add it to the analysis
can probably remove the GetLineage call since the encountermatch stores
the original species
2018-06-30 10:34:09 -07:00
Kurt
77aed3ea14
Adjust levelmin on single evochain
...
Early return wasn't adjusting the minimum level; closes #2035
2018-06-27 17:41:53 -07:00
Kurt
3cf78ff3a2
Permit metronome for Pokewalker Cleffa
...
Closes #2033
2018-06-25 19:15:37 -07:00
Kurt
fba8adb32f
Add XY wild undiscovered egg group IV check
...
Closes #2025
add misc updates/simplifications (personal stuff used in pkNX)
2018-06-24 21:55:00 -07:00
Kurt
09c96558ea
Disable gen2 chain clamp
...
not sure of the implications, but fixes #2031
might have to rework this method to clean up the optional params if
things are misbehaving
2018-06-24 08:02:22 -07:00
Kurt
e29cf2a903
Rework secondary check flow
...
Checks.cs initially started out small, but over the years it has grown
to handle multiple types of checks. With all these checks next to
eachother, it's hard to see the overall groups. Splitting them up
(potentially further?) allows for more focused maintenance &
understanding.
Not sure if I'm happy with the overall bandaids used (checks no longer
done within LegalityAnalysis so variable repointing is excessively
used), but I'm happier the way it is now compared to the huge Checks.cs
2018-06-23 22:00:01 -07:00
Kurt
ea6842e5eb
Refactoring
...
improve readability
2018-06-23 12:37:01 -07:00
Kurt
0d3c6eef74
Refactoring
...
Relocate fixed OTs to core (iencounterable & checks now reference same
values)
2018-06-23 09:49:04 -07:00
Kurt
7a0b65e74f
Add low bound range check for species not in chain
...
Closes #2028
Thanks @iiippppk !
2018-06-23 08:23:05 -07:00
Kurt
173c9f7904
Update evo chain trim for transfer
...
Now trims correctly for g3 sneasel -> weavile (gen4 having both) at
level = met level
2018-06-22 23:18:52 -07:00
Kurt
5dd58c7197
Update gen1 evo chain detect
...
Closes #2017
2018-06-22 22:48:10 -07:00
Kurt
b502d11428
Replace evolution check
...
already have evolution obj from parsing moves, use it instead
2018-06-22 21:40:41 -07:00
Kurt
76e52fa2cd
Simplifications
...
Rearrange some logic, track decrement, remove unnecessary checks
2018-06-22 20:16:31 -07:00
Kurt
3000a8d007
Reduce linq usage
...
No longer recreates collections with ToArray/ToList by instead altering
the original chain
2018-06-22 19:40:17 -07:00
Kurt
346c401727
Rework initial evochain trim
...
push unsaved IVTotal/EVTotal stuff from prior commit
rework exposed types for evo chain
initial trim now uses much less linq
can probably redo the get initial chain to provide a species to break
on...
2018-06-22 17:59:02 -07:00
Kurt
7591f54de3
Misc updates
...
Add safari min flawless IVs to reroll (can expand if #2025 is required
for egg group15)
Use EV/IVTotal (faster, not linq array based)
Fix missing pumpkaboo form regression, Closes #2026
Relocate swapbits to appropriate class, unneeded in PKM.cs
2018-06-22 06:24:33 -07:00
Kurt
eb35d71fcc
Flag East Gastrodon from Friend Safari... correctly
...
Closes #2023
2018-06-21 20:26:21 -07:00
Kurt
8387da64fb
Disallow East Gastrodon friendsafari
...
Closes #2023
2018-06-21 20:22:14 -07:00
Kurt
c1f4e2a9ff
Refactoring
...
Relocate & simplify some logic
2018-06-21 20:13:41 -07:00
Kurt
1db41c8b21
Add vc2 evo chain check
...
queue should be checking against none left rather than any left.
Add test cases
2018-06-20 21:43:54 -07:00
Kurt
ce667729f3
More simplifications
...
Can't have species == 0 or invalid gameversion; check for
EncounterInvalid instead.
Egg chain is always valid (since it is not EncounterInvalid) thus always
provide the chain.
Since these 2 are the same, simplify the logic to be shared.
rearrange some parameters for easier flow
2018-06-20 21:38:56 -07:00
Kurt
47d8220915
Evo chain Simplifications
...
Rename "Flag" to "Method"; isn't used besides for indicating the evo
Method.
Remove some unnecessary duplicate checks
- always >=1 in chain at start
- mostEvolved already checked for > maxspeciesgen
2018-06-20 19:42:45 -07:00
Kurt
bfdd7247ba
Rewrite most evolved species check loop
...
Use queue collection rather than rebuilding with .Skip(1).ToArray()
move size checks to dequeue location
2018-06-20 18:25:23 -07:00
Kurt
2ef12f635f
Continued refactoring
...
move sylveon check to requireslevelup
need to make this generic for transfer species gaps
2018-06-20 15:59:57 -07:00
Kurt
c5ea35a1a1
Continued refactoring
...
Move chain prune from Analysis to evochain spawn
2018-06-19 17:50:10 -07:00
Kurt
f10cc183a7
Refactoring
...
Relocate Evolution Chain logic
minor reorg of check arguments for nesting / grouping
2018-06-19 17:14:22 -07:00
Kurt
f3ef122214
Refactoring
...
continued simplification
core.cs is pretty much the following:
misc one-off junk
moveset fetch
encounter table fetch
evo chain fetch
might eventually move things around a bit further for cleanliness so
that misc meta junk is the only thing that remains in core.
2018-06-18 21:56:30 -07:00
Kurt
c6e968c77d
Only generate encounter moves if species unmodified
...
Closes #2020
2018-06-18 21:54:32 -07:00
Kurt
0c06506a8d
Refactoring
...
remove some unneeded logic
moves in gen1/2 can be reordered, sequence match should be intersect
(full) contains match.
2018-06-18 19:57:32 -07:00
Kurt
2e1081086d
Refactoring
...
Split evolution data specific DexLevel properties from DexLevel
use IReadOnlyList instead of IList for covariant collection
2018-06-18 19:10:21 -07:00
Kurt
bff5a3cd9a
Add altform permissive checks for gen1/2
...
Should always be zero, but necessary for regional variant evolutions
needing to be excluded
#2018 (not fixed yet)
2018-06-17 21:54:04 -07:00
Kurt
7791020cb4
Check format before trim
...
Closes #2016
2018-06-17 21:01:07 -07:00
Kurt
33eded08d1
Add missing learn/personal references for pairs
...
Closes #2019
2018-06-17 20:49:03 -07:00
Kurt
e91cfeb707
Handle pre-VC2 era tradeback status for suggestions
...
#2015
Can't get a shiny female 1:7 f:m gender ratio transfer after the VC2
bank update; need to respect that when generating random moves for the
pkm by removing any gen2 evo chain data.
2018-06-17 09:55:07 -07:00
Kurt
dd57558e98
Update moveset suggestion for vc origin
...
Closes #2014
2018-06-17 09:39:01 -07:00
Kurt
c3cbb0fc44
Fix gen2 vc1 evo prune
...
https://github.com/kwsch/PKHeX/issues/1999#issuecomment-397818377
evo chain had already pruned tyrogue due to level 20 transfer level
(lvl19 tyrogue not possible), can't just remove last entry. Remove any
entry after the g1 species.
2018-06-16 09:06:12 -07:00
Kurt
f8a1d26694
Fill empty ability values with ability1
...
update handling that checked for this case to instead check for
equivalence to ability1 instead of 0
was generating a PGF with ability[1] = 0, which is not correct. Just fix
the binaries to behave and get rid of all the workarounds since future
tables don't have missing values.
2018-06-15 23:41:07 -07:00
Kurt
49c36e2173
Misc legality gen tweaks
...
bypass savefile language checks if no language set
fix gen2 static gift egg that is really a wild encounter -- egg flag was
set & not cleared -> no wild pkm, bad! Adds test case for this.
(probably isn't a better place to clear, enforces only once per
generation rather than on every yield/end of every static yield)
2018-06-15 18:47:17 -07:00
Kurt
6fc33f4b19
Fix level fetch arg order
2018-06-15 16:53:28 -07:00
Kurt
cb5e1239ae
Refactoring
...
Extract game value limits
Rearrange GameVersion util logic extensions
add better gameversion fetch for generator (equivalent to pkmeditor)
2018-06-15 16:00:28 -07:00
Kurt
e8d5252b8c
Reject moves introduced by gsc in pk1/vc1 cases
...
Closes #2005
(no tutor moves are new moves, just beam moves)
2018-06-14 18:52:43 -07:00
Kurt
f54f90bd4b
Add egg Rotom/Furfrou form check
...
Closes #2002
Thanks @iiippppk !
2018-06-13 22:10:01 -07:00
Kurt
5579c4c80d
Tidy up MoveLevelUp
...
use the Learn objects from prior commits for adding a range of moves
2018-06-13 22:03:58 -07:00
Kurt
39daa6c65d
Split GetIsLevelUp to individual versions
...
static the GameVersion reference as we're excessively using it in the
switch cases, for clearer reading
2018-06-12 22:15:06 -07:00
Kurt
b9652a835d
Weaken gen2 egg species checks for pre-evos in gen1
...
VC can inhabit both gens
Add Tradeback setting setter for legality tests
Add GBCartEra setting setter for legality tests
Thanks @iiippppk !
2018-06-12 18:46:31 -07:00
Kurt
64a64b8ce1
Add special handling for gen1 encounter move fetch
...
Begin splitting of GetMovesLevelUp per-gen into per-version
2018-06-12 18:35:56 -07:00
Kurt
c3314f1b8e
Remove Mirage Island met location from valid gen3
...
Although Pokémon Ruby, Sapphire, and Emerald include a location pointer
for "Mirage Island", any Wynaut caught here will simply display "Met on
Route 130" in their summary. This is because the player is technically
still on Route 130's map.
Can't get anything with that location ID as an egg or as wild
2018-06-12 16:41:44 -07:00
Kurt
5ad8a4e5a4
Return version-sensitive moves for nonspecial fetch
...
Closes #1998 , GetValidMoves returns moves without sensitivity for
current version for pre gen6 moves... can resolve that later.
2018-06-11 20:23:28 -07:00
Kurt
32a83c16f1
Add egg relearn/move sequence match check
...
#1994
2018-06-11 08:13:50 -07:00
Kurt
e5a2e12fa5
Check held items for pk2 eggs
...
Closes #1993
Thanks @iiippppk !
2018-06-11 08:05:15 -07:00
Kurt
242fc295b4
Handle smeargle egg case
...
#1993
Just use precomputed array since it can only know sketch
2018-06-11 08:03:10 -07:00
Kurt
9faba26e90
Add egg base move branch
...
Closes #1991
Thanks @iiippppk !
Improve pk2 version detect to better provide gs vs c egg base moves
2018-06-11 07:23:48 -07:00
Kurt
ca9f21fa49
Fix base move count vs inherit check
...
Closes #1990
Thanks @iiippppk !
2018-06-10 20:26:59 -07:00
Kurt
c9d0811281
Handle evolutions-in-eggs case for past gen (2/3)
...
Closes #1989
Thanks @iiippppk !
(eggs don't always come at level 1, past gen has level 5)
2018-06-10 19:38:06 -07:00
Kurt
c9181963f2
handle pichu array->interface when adding egg list
...
egg fetch returns array, need to add to the collection
force everything as readonly to prevent adds outside of the constructor
Closes #1988
Thanks @iiippppk !
2018-06-10 19:07:55 -07:00
Kurt
e105f2b589
Refactoring
...
fix b2w2 egg base levelup reference (not bw, b2w2!), doesn't really
matter much except for better indication (possibly?)
remove some unnecessary linq ToArray() calls
continue relocating code out of Core
2018-06-10 17:55:03 -07:00
Kurt
d94fc65367
Refactoring
...
continued reduction in Core size, simplify/clean up usages
2018-06-10 14:45:25 -07:00
Kurt
3f1195a2d4
Refactoring
...
Remove duplication of levelup fetch
relocate some stuff to a more appropriate area
2018-06-10 10:44:05 -07:00
Kurt
3b84f33776
Misc changes
...
Revert linq chain
Closes #1987
change encountermatch comparison (never null), add comparison for vc
output
remove unused strings (will get removed from translation files in later
update)
2018-06-10 00:26:33 -07:00
Kurt
021ac7c54f
Refactoring
...
where!contains -> except
relocate special tutor
2018-06-09 16:04:06 -07:00
Kurt
79f0b3665f
Differentiate C/XD cologne IDs
...
https://projectpokemon.org/home/forums/topic/45685-pokémon-xd-and-scent-bag/
Thanks Asia81!
2018-06-09 12:44:30 -07:00
Kurt
f351e9550f
Add contest stat check for VC
...
https://projectpokemon.org/home/forums/topic/45681-virtual-console-pkm-with-beauty-stats-marked-as-legal/
Thanks yologgebolo!
2018-06-09 08:39:16 -07:00
Kurt
ee3fda46f2
fix method name typo
2018-06-09 08:04:40 -07:00
Kurt
3239305ce5
Refactoring
...
GetMoves logic can now be expressed concisely with the prior refactoring
2018-06-08 20:37:35 -07:00
Kurt
a494a6b37a
Don't generate move check order for an invalid ver
2018-06-08 20:36:52 -07:00
Kurt
9b43677bb9
Refactoring
...
pull out some move data fetching to separate class
add methods to quickly fetch if the move is learnable via that method
eventual plan is this:
replace
'fetch all possible moves then look within' move validation
with:
'peek if learnable, and get info how' move validation
advantages:
- returns game the move was learned in and the level (if appropriate)
- infinitely less object creation (garbage collection)
- only looks for a given move, doesn't have to fetch everything before
checking
- faster than full fetch, can be made even faster by optimizing lookups.
subject to change :)
2018-06-08 20:10:41 -07:00
Kurt
b1cd68e3f3
Convert GetLevelLearnMove to use lazy dictionary
...
faster move lookup
2018-06-07 19:05:28 -07:00
Kurt
1202474cd5
Defer & flag VC korean unobtainable encounters
...
Closes #1985
2018-06-06 21:49:30 -07:00
Kurt
dcdeb361f0
Handle meowstic formes
...
Closes #1984
2018-06-06 16:22:14 -07:00
Kurt
e52ae06721
Add version check
...
16 bits for version flags, should be more than enough.
should probably rework it from a packed ushort to a class...
2018-06-05 22:20:30 -07:00
Kurt
323db29374
Handle volt tackle special egg move
...
edge case turns the [] into an ienumerable, better than calling another
to-list.
2018-06-05 21:38:38 -07:00
Kurt
450d40535d
Relocate hypertraining properties to interface
...
lessen temp array creation, speed++
2018-06-05 21:31:42 -07:00
Kurt
75ff28925c
Dummy out pokespot validation
...
needs more research, nobody cares, just mark as todo and anyone can dig
deeper at any time in the future
Closes #1359
2018-06-05 19:08:31 -07:00
Kurt
e7fc30ac7a
Add mysterygift region/language restriction code
...
Closes #1317
Needs the events crew to produce serialized binaries with hash-flag data
for each generation before proceeding any further. I'm not really
interested in doing all the work for events since it doesn't impact
battle legality.
2018-06-05 18:27:08 -07:00
Kurt
ae3b6a7fa1
Simplify IContestStats usage
...
remove new[] creating for checking if any contest stats exist
(HasContestStats)
2018-06-02 21:19:03 -07:00
Kurt
ab393e1f99
Rework set PID-ability checks
...
Closes #1979 , adds test cases.
2018-06-02 13:22:52 -07:00
Kurt
15b5de11c0
Handle hatched wc3 metlevel oddballs
...
Closes #1978
Met Level at 5, when hatched ingame is reset to 0.
2018-06-02 07:50:48 -07:00
Kurt
f237476ccc
Add nickname reset modify
...
nickname reset clears except for encountertrades (some have fixed
nicknames).
remove untraded check for HT memory verification, has to be traded if it
has a HT memory.
2018-05-31 19:49:47 -07:00
Kurt
e82dcdb124
update memory captured check
...
gen5 landorus witnessing another species should use gen6
https://projectpokemon.org/home/forums/topic/45424-landorus-memory-flagged-as-illegal/
2018-05-30 21:50:11 -07:00
Kurt
4b8cb9b8fb
Add entree forest editor & randomizer
...
ezpz
(clear trailing spaces from entree forest comments)
2018-05-28 08:26:52 -07:00
Kurt
2061f23e26
Misc simplifications
...
fixes suggestion requests for invalid gameversion pkms
2018-05-27 17:57:45 -07:00
Kurt
c31ab63a1a
Initialize mgdb for tests that need it initialized
...
don't initialize multiple times
2018-05-27 15:57:28 -07:00
Kurt
a57cdb5f48
Update fateful handling
...
#1970
add files as test cases
2018-05-27 14:38:03 -07:00
Kurt
4c1e014a53
Fix mgdb viewing cxd gifts
...
Closes #1972
2018-05-27 14:16:56 -07:00
Kurt
ae27c10dc2
Misc cxd fixes
...
#1970
2018-05-27 12:18:27 -07:00
Kurt
6a3b422a14
Fix xd fateful gift pkm
...
stored as wc3's, make "Version" from IVersion rather than int so that
"WasXD" recognizes it.
Update handling for fateful encounter trade-away cases.
#1970
2018-05-27 10:11:01 -07:00
Kurt
ec2816379e
Restore unk mystery gift message
...
no match & fateful -> 'hey maybe pkhex doesn't know about this one yet'
2018-05-27 07:01:46 -07:00
Kurt
98895bd365
Ignore fateful as xk3 if not a shadow
...
Duking etc trades
Closes #1970
2018-05-27 07:00:07 -07:00
Kurt
f7a61cf72c
Flag version exclusive trades with incorrect ver
...
Closes #1969
2018-05-27 06:59:27 -07:00
Kurt
e6765d3691
Flag langid=0 when appropriate
...
only jpn bw ingame trades can lack a languageID.
skip language checks for pk1/pk2 as they have no language stored.
2018-05-26 14:40:02 -07:00
Kurt
05e10860ed
Flag gen5 origin footprint ribbon if Δlvl<30
...
Closes #1965
Also fix vc transfers ignoring some restrictions (ie footprint ribbon on
lvl 16 magneton, was incorrectly allowed as gen < 6).
2018-05-26 09:58:01 -07:00
Kurt
565a96db2a
Flag maison banned species having maison ribbons
...
https://projectpokemon.org/home/forums/topic/45410-skillfulexpert-battler-ribbon/
Thanks Davil!
2018-05-25 19:54:25 -07:00
wwwwwwzx
a25c6a4e00
Fix Colo Starter PID Method Check ( #1961 )
...
If SIDf >> 16 != SID then temp won't be assigned.
2018-05-24 06:00:29 -07:00
Kurt
3b635be77f
Flag nonparsed
...
removed parsedvalid/invalid, unnecessary I guess
2018-05-22 18:57:39 -07:00
Kurt
c103220e0c
Handle gen3->4->5 levelup evochain pruning
...
Gen7 weavile can exist in gen4 as sneasel; existing code had pruned it
from gen4. Skip pruning for this case
probably overdid the checks but whatever. works.
Thanks /u/ThrowawayReddNinja for pointing out this false flagged case
with an example!
2018-05-20 10:35:58 -07:00
Kurt
407cca38dd
Update generator to handle link celebi
...
Had relearnmoves defined but no current moves; better for generator to
spit out all moves rather than the special move (hold back)
store current moves for all link gifts
2018-05-20 09:06:32 -07:00
Kurt
cd3b24c122
Handle smeargle generating
...
Needed moves is essentially none (unless you have invalid sketch moves).
2018-05-20 08:19:03 -07:00
Kurt
1f8c72af5a
Handle EncounterTrade without moves specified
...
Similar to EncounterStatic handling
Thanks @architdate for pointing this out
2018-05-19 21:49:26 -07:00
Kurt
a7f9f69b02
Remove Type property
...
verbose summary uses the encountermatch's current type; the "x is y"
check is more than sufficient.
2018-05-19 12:21:16 -07:00
Kurt
b670f525fb
Split up evolution classes
...
Too many classes in the same file, break up.
simplify things a little in EncounterArea (remove passing thru nulls,
should throw excpetion immediately if misconfigured).
2018-05-19 12:07:50 -07:00
Kurt
ca14b43b62
Relocate memory specific data to own file
...
allows easier handling for memory interactions
2018-05-19 10:04:07 -07:00
Kurt
23083317d7
Refactoring
...
pull out GameStrings
add debug output for crystal headbutt trees
fix qrpkm item access
2018-05-18 21:35:57 -07:00
Kurt
95b4d0820d
Minor reorganization
...
amount of pkm obj classes is pretty high, move the static utility
classes to another folder
breaks usage of pkm.ShowdownText; removes a dependency from PKM.
2018-05-18 19:33:11 -07:00
Kurt
0e6db90de2
more minor tweaks
...
add 2 overloads for encounter generator
more simplifications
2018-05-12 18:11:47 -07:00
Kurt
99005d8fc0
Refactoring
...
more discards & simplifications
2018-05-12 12:28:48 -07:00
Kurt
e2f11edc43
Refactoring
...
discards, Array.Find over FirstOrDefault
2018-05-12 08:41:29 -07:00
Kurt
5a3c8f4147
Remove trailing whitespace
2018-05-12 08:41:29 -07:00
wwwwwwzx
997d41b6db
Fix minlevel of Pangoro/Tyrantrum/Aurorus in gen6 ( #1938 )
...
* Fix minlevel of Pangoro/Tyrantrum/Aurorus in gen6
30: level + dark type in the party
32: level + day
33: level + night
34: level + female
Note Meowstic isn't affected due to another entry of level + male (23)
* Minor text usage fix
* Fix xorPID flipping in TransferEC check
2018-05-12 06:57:11 -07:00
Kurt
c2644cc9f0
Flag gendered pkm without gender
...
for lack of a better message
#1936
add some docs & trycatch bad wavs
2018-05-11 21:05:15 -07:00
Kurt
9fb7056837
Add test living dex generator
...
doesn't generate everything due to the evo chain not being 'full'
(instead is unevolved singular pkm), nor does it evolve pkm
2018-05-09 21:02:35 -07:00
Kurt
79b2576c31
add overloads for GetPossible
...
Remove edge case handling for level 2 blissey; updates over the past 2
(yay 2 years of legality checking) can now handle that case without
special handling.
2018-05-09 20:37:11 -07:00
Kurt
9f8e86b2b5
Finish rough generator
...
* handle gen6+ egg case where egg move count < 4 (cannot displace
Levelup lvl1 moves)
* handle minior altform case
generates all species/encounters possible, yielding 144,094 pkm files
(all detected as legal!)
2018-05-09 19:21:44 -07:00
Kurt
16ed4353b2
More generator updates
...
Store 4g giratina held item for enc->pkm legality
revise usages of GetSaneGender
Rearrange some logic
Better handle impossible version encounters (gen4)
gen 1-5 done, stuck on 659 - bunnelby egg...?
2018-05-09 17:50:56 -07:00
Kurt
4913ef9647
More generator updates
...
* B2 has an error in the encounter table for Route 3 Corphish Special
water encounter; GF edited from Basculin-1 to Corphish-1 and forgot to
update the form to 0.
* Ranch Trade egg locations
* Trade gender-PID set correctly
* static roamer glitch does not apply for emerald
* Mirage Island wild Wynaut case now allowed (collision with Gift Wynaut
egg hatched on Mirage Island?)
gen1-3 done; now at 413 (Wormadam) which currently yields an
EncounterEgg AS wormadam, which isn't right...
2018-05-08 21:17:31 -07:00
Kurt
c21f8bf45f
More generator updates
...
Blazing past 251, now stopped at 280 (trade ralts, gender mismatch??)
2018-05-08 20:13:55 -07:00
Kurt
4d60a5a64e
More generator updates
...
* first case of EncounterLink, now works (version, ability, OT memory)
* handle gen2 gb events (not even sure if they pop up, just in case)
* handle gen3 ereader shadow mons
* handle gen4 spiky pichu PID type
* handle gen2 crystal egg met level
2018-05-07 22:53:36 -07:00
Kurt
8902e9662c
Add exclusive encounter handling
...
Handle Faraway Island Mew, handle DP Darkrai/Shaymin & Arceus, handle
not-distributed WC3s.
Now stopping at dex 154 -- one full generation of PKM species IDs can be
completely spawned directly from IEncounterable data!
2018-05-07 22:12:12 -07:00
Kurt
3c31d5798f
Continued pkmgen updates
...
* adds g4 forced shiny seed->pid (Chain Shiny Lake of Rage Gyarados)
* adds cxd starter pid generating handling
* adds g5 forced shiny seed->pid (MG5Shiny Shiny gift Dratini)
* excludes gen4 route45 surf impossible encounters
* actually use ingame trade edge case handler
Up to dragonair (147) yay; yellow dragonair is likely the catch rate
edge case.
2018-05-07 21:16:54 -07:00
Kurt
86bf4201e2
Remove encounterstatic-encounterslot collision case
...
Exeggutor Island has wild & one static with a fixed ability; the fixed
ability is returned first which causes wild lv40 exeggutors with
ability2 (1/2/H) to be flagged as illegal.
2018-05-07 21:12:42 -07:00
Kurt
734edfae20
Remove cutecharm swarm restriction
...
only affects species (can't force gender on a fixed gender swarm slot)
https://github.com/kwsch/PKHeX/pull/1314
https://projectpokemon.org/home/forums/topic/45153-bug-cute-charm-swarming-illegal/
Add swarm cutecharm test cases from thread, thanks @PP-theSLAYER !
2018-05-07 16:14:31 -07:00
Kurt
ea2c6260fa
Prevent providing beta safari zone encounters
...
Fixes Krabby / etc.
Fix genderless encounterstatic gender set (Voltorb)
Now at 103, Exeggutor
pretty cool that over 100 species can have every single encounter
generate a legal pkm ;)
might be useful to add metrics to count how many encounters are
generated in a session
2018-04-29 21:56:12 -07:00
Kurt
ab71ea2d8b
More generator updates
...
Graveler (SM Trade) -> Force applying handling trainer details for
ingame trades
Ponyta (Ranch Trade) Apply correct ability for encountertradePID
Up to 98 : Wild Gen2 Krabby (safari zone impossible location needs to
get filtered from possible encounters)
2018-04-29 21:29:34 -07:00
Kurt
997ca29fe6
More generator updates
...
Checks.cs : fix duplicate analysis result (encountertrade machoke is
legal & illegal), nope, legal.
Core.cs : Add version bypass if none assigned.
EncounterSlot.cs: Handle yellow kadabra
EncounterTrade: Handle must-evolves.
now at 75: graveler (SM trade)
2018-04-29 21:08:49 -07:00
Kurt
1c3a330ab2
Remove clefable from non-obtainable encounters
...
Can be obtained via game corner
update possible games of origin
clear wasegg flag for next iteration
now at species 64: Kadabra.
2018-04-29 20:04:13 -07:00
Kurt
50d390bd4e
Fix gen1 trade version overwrite
...
only noticable when generating from
up to dex 35, clefairy now. I expect things to ramp up soon...
2018-04-29 19:03:55 -07:00
Kurt
daf093879b
More generator updates
...
all the way up to nidorina
extract some reusable methods
exclude invalid headbutt encounters
use built in randomgender
2018-04-29 18:26:36 -07:00
Kurt
b1549837b1
Update gen2 ingame-trade met location handling
2018-04-29 11:46:49 -07:00
Kurt
b353701d3e
More generator updates
...
adds pokewalker handling
now stuck on GSC Trade Spearow (likely not setting OT details as needed)
2018-04-29 11:33:35 -07:00
Kurt
4214b1be7b
More generator fixes/improvements
...
Fix/add missing gameversion references (BU instead of BW,
pokewalker=HGSS)
increase reuse of pidgenerator & add more generating methods.
seems like it's generating pkm fine besides the PID edge cases, which is
nice
2018-04-29 09:31:13 -07:00
Kurt
08603c5664
Fix xd miror b encounters not receiving versionID
...
version was set to Encounter_XD, which did not contain the miror b
encounters.
simplify XD check to be O(1) now that version is stored in the encounter
obj
2018-04-29 08:31:57 -07:00
Kurt
120f5380c9
Rework some more pkm generating logic
...
can get all the way to caterpie
- gen3/4 needs an antishiny,
- gen5 needs shiny&antishiny mech
- else case needs both as well.
2018-04-28 22:56:10 -07:00
Kurt
70992138e2
Misc encounter->pkm generating fixes
...
eggs for Gen1 must be generated in Gen2
gen1 wild encounter initial moves
gen4 abilities have 0 for single ability mons
2018-04-28 16:30:56 -07:00
Kurt
55f0143400
Handle generating gb2 events & eggs
...
restrict the simple encounter provider to not spit out cart era only
gifts.
2018-04-28 15:59:33 -07:00
Kurt
b2c54b7a43
Apply trade memory when changing handlers for pk6
2018-04-28 15:58:53 -07:00
Kurt
ea357cd57a
Add GetRandomFeeling
...
fixes tests & transfers where an explicit range is not legal
2018-04-28 12:59:11 -07:00
Kurt
71faaee31c
Refactor savefile tid/sid to int
...
can now use TrainerID editor control on a savefile... soon?
2018-04-28 11:06:58 -07:00
wwwwwwzx
fc72323c2e
Add general memory intensity/feeling check ( #1916 )
...
* Add general memory intensity/feeling check
Memory setting subroutines: Y: sub_43C1E4 AS: sub_469A94
Memory table RAM address: Y:0x54A4F0 AS: 0x58A134
https://pastebin.com/h1RHL7nR
* Check if egg's OT memory is blank
All empty memory should be checked before common check.
Don't allow eggs to fall through.
2018-04-28 06:26:04 -07:00
Kurt
af8084fd34
Rework cosplay pikachu static encounter population
...
Now IV3, thanks @wwwwwwzx for finding the hard-coded case (Lati@s is
already IV3).
https://projectpokemon.org/home/forums/topic/45011-illegal-cosplay-pikachu/?tab=comments#comment-230318
remove SkipFormCheck, and just have all 6 populated (so that Form0
pikachu doesn't slip through).
2018-04-27 21:53:00 -07:00
Kurt
3f6b1acc93
Add fixed gender checks for non-GBA/NDS games
...
Closes #1912 , genderless ~= fixed gender I guess; shouldn't get these
gender-errors unless it's manually tampered data/ShowdownSet
remove unnecessary code in:
* PKMEditor (>=255 is already covered by == 255 and the fact that gt is
always <= 255)
* VerifyGender (3 <= x <= 5) check is already early-returned via
PIDGender check above
Update IsGenderValid knowing that VC mons have a gennumber <= 2
2018-04-23 19:58:29 -07:00
Kurt
1b4ec11335
Add rebattleable Miror B locations to xd shadows
...
https://projectpokemon.org/home/forums/topic/44957-bug-pokemon-xd-post-game-shadows-flagged-illegal/
if shadow lock sets are ever implemented, would need to update this as
well to 'clone' with the different shadow teams available.
2018-04-23 17:14:52 -07:00
Kurt
0b62ab85a1
Nature -> byte instead of int
2018-04-21 09:18:53 -07:00
Kurt
159928b09b
Remove soaring as valid egg hatch loc
...
hatch ctr doesn't update (steps don't count while soaring)
https://projectpokemon.org/home/forums/topic/44854-is-it-possible-to-hatch-an-egg-while-soaring-in-the-sky/?tab=comments#comment-229931
could probably rename the hashset to indicate that it's only used for
egg hatch locations...
2018-04-18 16:01:12 -07:00
Kurt
c3494c61c1
Fix encountertime comparison for surf mons
...
surf does not have another slot set; so they were all being set to
Morning.
Could have set all 3 time flags, but kept as 'any'.
will update release binaries with this one
2018-04-18 15:58:21 -07:00
Kurt
353978df59
Add fixed ability pcd valid bypass
...
https://projectpokemon.org/home/forums/topic/44834-bugabout-event-evolution/
2018-04-17 20:48:14 -07:00
Kurt
a48c70ccf2
Add evolution minbound check
...
https://projectpokemon.org/home/forums/topic/44834-bugabout-event-evolution/?do=findComment&comment=229887
(espeon at level 50 originating from a level 50 eevee gift is not valid)
2018-04-17 20:06:23 -07:00
Kurt
fef1d6e0dd
de-linq some evolution dexlevel fetch
...
use shared IList interface instead of IEnumerable
2018-04-17 19:56:43 -07:00
Kurt
a34be35d9f
Add commit contents for previous commit
...
removal of some linq, reorders as described by previous commit
2018-04-17 19:50:25 -07:00
Kurt
8250bc58cd
Fix levelup->evo fetching of next levelup move
...
Correctly fixes #1163 (test cases added), eg wooper->quagsire would
learn yawn at 31 before evolving; the getmoves wouldn't provide yawn
(stopped at 30) with the old code; the lvl decrement was removed in the
incorrect commit, providing a legal verdict which was obtained
incorrectly (dexlevels were inaccurate)
2018-04-17 19:49:33 -07:00
Kurt
f767b2db0f
Differentiate WasEgg (any egg location) from bred
...
https://projectpokemon.org/home/forums/topic/44838-buggen5-egg/
WasEgg is used for other encounter based checks, so can't reduce the
logic usage
2018-04-17 18:54:38 -07:00
Kurt
86333c6db6
Flag VC transfer affection
...
contest check only applies for 3->7 not 1/2->7
https://projectpokemon.org/home/forums/topic/44674-bug-about-contests-ribbon/?do=findComment&comment=229785
Thanks Davil!
2018-04-14 21:36:11 -07:00
Kurt
6db0b673db
Handle ??? type gen4 arceus form check
...
interstitial between steel & fire, shift the form value up by 1 if
applicable
https://projectpokemon.org/home/forums/topic/44806-arceus-not-legal/?tab=comments#comment-229774
2018-04-14 18:20:58 -07:00
Kurt
7a77b4524f
Add b2w2 route 23 amoonguss
...
https://projectpokemon.org/home/forums/topic/44798-bug-report-amoonguss-encount-error-b2w2/
Thanks smileynation!
2018-04-14 08:47:02 -07:00
Kurt
8cfd64df63
Add affection contest check for pre gen6 events
...
https://projectpokemon.org/home/forums/topic/44674-bug-about-contests-ribbon/?do=findComment&comment=229739
2018-04-13 18:52:38 -07:00
Kurt
6b387f9037
Handle alolan species transfer form check
...
https://projectpokemon.org/home/forums/topic/44718-bugabout-xd-alola-form/?do=findComment&comment=229735
2018-04-13 18:44:16 -07:00
Kurt
78f533605c
Handle untranslated Italian LeafGreen Jynx trade
...
lul nice translating team u got there, would be a shame if they forget
to translate something ;) /s
Thanks cicciochiave!
2018-04-12 21:22:04 -07:00
Kurt
b8a5ccdf7d
Simplify shedinja evo move check
...
Closes #1895 , re-verified with pkm provided in #1805
there's no shedinja gift, always is an evolution
seal some forms to remove virt call in constructor warning
2018-04-10 17:00:28 -07:00
Kurt
be285917b9
Update ingame trade data
...
https://projectpokemon.org/home/forums/topic/44726-bug-in-game-trader-pokemon-flagged-illegal/
Thanks Jimmy Cerno!
2018-04-07 12:34:06 -07:00
Kurt
caa32c1516
Add alolan evo species check
...
can't change to a local variant form if it was originally obtained as a
non-variant form (no evolutions!)
2018-04-06 21:46:27 -07:00
Kurt
547c799eeb
Handle gen1/2 static encounters
...
levelup starts after initial moves
2018-04-02 17:51:37 -07:00
Kurt
39f1805940
Fix gen2 met data setting
2018-04-01 20:25:40 -07:00
Kurt
d4e38dded0
Refactor time of day check/validate
...
Fixes time of day flitering property reference (met_day is always 0, so
it never reached)
2018-04-01 20:22:10 -07:00
Kurt
867c705597
Fix broken gen2 tests
...
add oddish to the mix
2018-04-01 15:51:55 -07:00
Kurt
d42eb4372f
Fix 4 egg move gen2 oddish
...
egg moves also can be taught in gen1, which causes the learn source to
be locked to a tradeback (removing egg moves that have IDs greater than
RBY's moves). Simplify gen<=2 parse preference ordering with this
addition to force egg moves to be acknowledged.
2018-04-01 15:04:53 -07:00
Kurt
07b2568b1f
Fix g2 caterpie generating
...
has no egg moves -> no moves generated!
2018-04-01 15:02:27 -07:00
Kurt
5e55b916fa
Handle fixed gender statics
...
Seems like a PID/Nature/Gender/Ability smart-setter is necessary for
other encounters
2018-03-31 21:55:59 -07:00
Kurt
ba4c911566
Refactoring & finish eevee test case
...
generates a legal pk* for every possible encounter; there's likely other
scenarios and more roughness to smooth out, but seems legit for now
2018-03-31 20:37:36 -07:00
Kurt
32f9f806db
Add other iencounterable->pkm generators
...
not tested
2018-03-31 00:43:41 -07:00
Kurt
0b4adf9763
Sync missing content
...
fixes tests
2018-03-30 22:11:24 -07:00
Kurt
0597833899
Track version of slots/static/trades
...
I think I set the version at the appropriate times to get all encounter
objects
2018-03-30 21:38:57 -07:00
Kurt
a89c0c3312
Rename egg game->version
...
add more gameversions (soon)
2018-03-30 21:37:01 -07:00
Kurt
b38abc22e2
Refactoring
...
add IVersion interface with common interactions
2018-03-30 16:31:40 -07:00
Kurt
537ad33229
Add encounterlink gen
...
not tested
2018-03-30 01:02:37 -07:00
Kurt
214e684ff8
Add GetEncounterMoves method
...
dictionary mapping common gameversions to their associated obj
2018-03-30 01:02:22 -07:00
Kurt
d03ff147d4
Add template -> pkm method
...
fix signature if no versions are provided (empty params is [0], not
null)
2018-03-29 21:04:05 -07:00
Kurt
2ea1fea5f5
Refactoring
...
add GameVersion to generation
fix generating pk2 eggs
relocate some logic
2018-03-29 21:00:38 -07:00
Kurt
e74e7878cd
Lower dragonair encounter level req for trade
...
https://projectpokemon.org/home/forums/topic/44555-gen2-legality-issue-with-in-game-trade/
Thanks Bumidek !
2018-03-29 08:50:23 -07:00
Kurt
e5ccae906a
misc quality of life improvements
...
set egg friendship
allow SetRandomIVs to use a minimum fixed IV count
2018-03-28 20:56:58 -07:00
Kurt
76b4db1477
Add egg converter & test
...
only tested for gen7 egg->pkm (not to eventual set)
pretty sure a good chunk of the egg generation logic can be pulled out
for reuse in other IEncounterable generators (IEncounterable
extensions?)
2018-03-28 20:40:07 -07:00
Kurt
6333c42cf1
Add more suggestions for eggs
2018-03-28 20:38:21 -07:00
Kurt
1e13220e6e
Add IEncounterable -> pkm interface method
...
egg,slot,static,link,trade need to be implemented later
remove IEncounterable from PL6
2018-03-28 20:38:07 -07:00
Kurt
314a92b67b
Extend core api
...
add copy/fetch new
2018-03-28 20:34:58 -07:00
Kurt
e026a8ab49
Add default trainer info
...
use in pkmeditor and utilize
2018-03-28 18:52:50 -07:00
Kurt
d794e71175
Extend contest-affection check to pre-gen6 transfer
...
Closes #1881
Thanks @ijuintekka !
Thanks @sora10pls !
2018-03-28 16:07:03 -07:00
Kurt
a0eb658ef2
Extract minimum trainer information requirements
...
If one wanted to extend ConvertToPKM to other IEncounterables, this
would be the provided obj containing the receiver's info
allows pkm gen without a savefile, which is nice?
2018-03-28 15:55:19 -07:00
Kurt
78616e1ad5
Add showdownset -> pkm encounter fetch test case
...
Test parsing glaceon, input must equal output
Test generating encounters for a specific version (exists only on Moon)
Test generating encounters for the same version (add handling trainer
data to permit Tutors)
fixes error in VC generations-present fetch which allowed movesets from
generations 3-6 lul
exclude negative/invalid gameversions
2018-03-27 19:45:22 -07:00
Kurt
5b4b6e4158
fix ability comparison
...
a==a obviously, need to check against the current ability
2018-03-27 09:02:56 -07:00
Kurt
a25425a277
Add pcd ability mismatch edge case
...
yay set PID but nah lets force an ability that doesn't agree with the
PID
https://projectpokemon.org/home/forums/topic/43724-gen-4-events-flagged-as-illegal/
2018-03-26 23:23:27 -07:00
Kurt
1ca69965bf
store encountertrade nick/ot within object
...
allows for ot/nick fetch for a given language
2018-03-26 22:23:11 -07:00
Kurt
6abd2a22a4
Add oras contest master ribbon affection check
...
Each contest victory requires a contest participation; each
participation gives 20 OT affection (not current trainer!)
Thanks @WyrXIII , @JusLi, @Cresceda !
2018-03-26 16:42:18 -07:00
Matt
ff675ed6e5
Detect event contest affection boost ( #1880 )
...
* Detect event contest affection boost
* Re-order check
2018-03-26 10:43:42 -07:00
Kurt
4d3877bf7f
Add EncounterMovesetGenerator
...
lack of a better name; generates IEncounterable list.
2018-03-25 22:50:32 -07:00
Kurt
99a4c55579
Relocate some logic to core
...
party stats set when setting a slot to a save file
simplify set/delete slotchange duplicate logic
suggest better met locations beyond VC transfers
hatching a gen6 egg applies memories automatically
2018-03-25 19:05:49 -07:00
Kurt
a24e5aa742
Update personalinfo usages
...
less temp array usages, add methods for cleaner understanding
2018-03-25 13:54:30 -07:00
Kurt
1e708a2102
Simplify default met location fetch
...
now that IGeneration is available, don't call pkm.GenNumber (slower)
2018-03-24 17:28:56 -07:00
Kurt
a6977af19a
Pull out Contest Stat logic to interface
2018-03-24 10:36:48 -07:00
Kurt
d1cfdd782e
Rework ball / frame check passing
...
Two checks are performed for Gen 3 & 4:
A: Encounterability (wurmple, ball, ability)
B: RNG Compatibility (frame)
Original code only checked 'A'
Recent code ordered by 'A', but returned anything that matched 'B'. If
'B was not satisfied, an 'A' match would get deferred, allowing for an
eventual B & !A to be returned before a A & !B being returned.
yay bool logic
we want to prefer a RNGFrameMatch as well as a SlotCompatible match
original code (no RNG checks) retrieves with SlotCompatible just fine
recent adding in framematch resulted in deferring compatible if not RNG
frame, yielding !A matches before A & !B
maintain 3 queues (A & B get yielded immediately) to track A!B, !AB, and
!A!B
not necessary to check unown case anymore as it'll fall into the A!B
group. better performant to skip that check in favor of only adding for
fail.
thanks theSlayer!
2018-03-21 20:19:54 -07:00
Kurt
636736c3fa
Add g3 safari ball wild deferrals
...
Pineco is valid but also can be sourced to altering cave
similar for sandslash
Thanks theSlayer!
2018-03-21 17:30:19 -07:00
Kurt
2c4e3358e4
Fix ninjask evo move comparison
...
https://projectpokemon.org/home/forums/topic/44413-bug-information-about-bug-found-on-the-new-version-180319/
2018-03-18 15:30:19 -07:00
Kurt
f55028c1a0
Fix KChart errors
...
gen1 & gen2 types aren't laid out contiguously (yay bird type and extra
types)
fix gen2 type accessors looking at the wrong byte
type sprites now load correctly, and 3rd ability no longer throws an
error (forced to None).
2018-03-18 11:22:20 -07:00
Kurt
88ce27f26b
Add R/S roamer data offset
...
is different from emerald
Thanks TetsuyaGR!
https://projectpokemon.org/home/forums/topic/44407-bug-rubysapphire-roamer-bug/
(use concatall in encounters4)
2018-03-18 08:37:40 -07:00
Kurt
e9a3b4acf1
Merge PIDType and bool? shiny property
...
Gen5 does not follow the same convention, 0 = non, 1 = rnd, 2 = always;
not gonna bother updating for just that one
bool? occupies 2 bytes; enum:byte is 1 byte.
should probably move validity checking logic into the IEncounterable
objects instead...
2018-03-16 19:35:55 -07:00
Kurt
274d2200a3
Correctly flag hidden7apricorn
...
[0] -> Last()
Thanks Davil!
https://projectpokemon.org/home/forums/topic/44374-bug-about-hidden-apricorn-voltorb-bronzor/
2018-03-15 19:04:14 -07:00
Kurt
2685fe29c2
Ban hidden-apricorn voltorb bronzor
...
Thanks @wwwwwwzx !
2018-03-14 08:10:12 -07:00
Kurt
1cdbe6f4f8
Fix ditto5 IV order
...
closes #1863
2018-03-12 19:34:54 -07:00
Kurt
aa65d88d3d
Cache pressure slot instead of saving all to list
...
faster to do:
null check & comparison for each
vs
collection add (especially if growing collection)
don't evaluate all slots (faster), capturing the dexlevel[] object is
fine until the enumerable is discarded
2018-03-11 11:02:02 -07:00
Kurt
5148fd2c4e
Add minimally filtered encounter generators
...
Filters by species at most, resulting in something that can be scanned
for a preferred encounter.
2018-03-11 00:29:31 -08:00
Kurt
94811d9052
Split up IEncounterable generators
...
Can break the filtering out into smaller methods such that the generator
can return results with less strict filtering
2018-03-10 19:51:09 -08:00
Kurt
84c5decfc0
Comment out unused
...
temp = temp permanent lul
2018-03-10 19:40:57 -08:00
Kurt
2bd9d99d9e
Refactoring
...
WinForms->Core logic absorbing (CommonEdits)
loading ShowdownSet now applies properties to PKM instead of PKMEditor
Contest/IVs for Static/Trades are no longer set by default (less object
allocations), and are now checked by the encounter generator
2018-03-10 18:03:09 -08:00
Kurt
9da1913f1b
Only check static IVs if original IVs still exist
...
https://projectpokemon.org/home/forums/topic/44319-bug-vc-mew/
Thanks Davil!
2018-03-09 20:00:13 -08:00
Kurt
cda2cfcefd
Clean up EncounterLink
...
no new gen6 pkm link gifts, simplify usages
2018-03-09 18:58:00 -08:00
Kurt
452ffe2369
Refactoring
...
relocate location of stuff
2018-03-08 21:18:32 -08:00
ReignOfComputer
8147258e9e
Unban Gen 7 Starters HA ( #1860 )
...
HA Starters Event via Pokemon Bank
2018-03-08 05:55:47 -08:00
Kurt
cbf4038a95
Refactoring
...
relocate gift data storage out of legal.cs
2018-03-05 22:19:56 -08:00
Kurt
21cdf4f642
Reorganization
...
wonder if it's possible to provide a more lightweight core by pulling
out legality stuff to a separate project?
2018-03-05 20:49:45 -08:00
wwwwwwzx
c9a54307c4
Fix WC6/7 IV generation ( #1857 )
...
https://pastebin.com/bbpS6svw
IV lock doesn't work for IV3 case
2018-03-02 16:17:14 -08:00
Kurt
89d3437d0b
prevent blue flabebe apricorn/beast
...
closes #1850
impossible SOS's were already removed from the SOS list (e.g. no slots
in the SOS table with w.Species == 669 && w.Form == 3)
2018-02-24 17:28:07 -08:00
Kurt
e33bd4c327
Add Dialga/Palkia headbutt location
...
turns out route 47 (below route 48) also yields dialgapalkia, which also
has a tall grass patch that can be headbutted from.
Closes #1833
2018-02-15 19:40:42 -08:00
Kurt
f8bf3e400b
Misc tweaks
...
Add bulkstorage SaveFile template
remove unused using
un-virtual box property (don't override behavior)
Split new-USUM island names (unused)
Remove island names from valid egg locations (thanks Davil !)
https://projectpokemon.org/home/forums/topic/43874-bug-met-location/?tab=comments#comment-227684
2018-02-15 17:05:45 -08:00
Kurt
89248b30a9
Re-add rufflet pelago for sn
...
Thanks @wwwwwwzx !
2018-02-12 17:38:31 -08:00
Kurt
28180687a5
Add transfer2 future evos for legality reuse
...
https://projectpokemon.org/home/forums/topic/43827-gsc-mismagius-treated-as-illegal/
2018-02-11 20:48:36 -08:00
Kurt
38fb30e847
Remove Punishment from Murkrow USUM eggmoves
...
Closes #1829
"In Pokémon Ultra Sun and Ultra Moon, Murkrow is programmed to be able
to learn Punishment through breeding, but no other Pokémon in the Flying
Group can pass down Punishment as an Egg Move in those games. Vullaby
and Mandibuzz are the only Flying Egg Group Pokémon that can learn
Punishment, but they cannot pass down the move due to being female-only
species."
2018-02-10 18:56:06 -08:00
wwwwwwzx
9187be8177
Update CHS translation files ( #1827 )
...
* Update CHS translation files
* Fix crabrawler outliers
Double check the wild encounters level range again.
2018-02-10 15:29:22 -08:00
Kurt
f289249b2d
Add oddball crabrawler berry pile levels
...
thanks @wwwwwwzx !
2018-02-09 21:26:28 -08:00
Kurt
033d5baa06
Check EC-PID same for gen1/2 transfers
...
Fix PID->EC on gen<3 transfers
https://projectpokemon.org/home/forums/topic/43779-about-vc-pokemons-pid-and-encryptionconstant/
2018-02-08 18:47:52 -08:00
Kurt
d6fbd0f0d7
Reorder gsc encounters
...
new string resources have shuckle last
thanks @sora10pls
2018-02-08 17:05:15 -08:00
Kurt
05c4a0f286
partner cap pikachu update
...
great job gamefreak
allow current handler to be 0, remove static encounter as the data was
sneakily faked as a WC7 in the events gallery.
Closes #1817 ; still needs to update with new pikachu pid method
allowing shinies (next update).
2018-02-07 19:56:02 -08:00
Kurt
9408255bee
Add other international (non english) gen2 tradeOTs
2018-02-06 23:09:00 -08:00
Matt
1b2aded412
Allow shiny Partner Cap Pikachu ( #1820 )
...
good job Game Freak https://twitter.com/wwwwwwzx/status/961057063198539778
2018-02-06 18:54:45 -08:00
Kurt
05355f3566
Fix gsc shuckle jp name
...
Closes #1818
strengthen language specific checks (JP or INT, not any)
2018-02-05 20:55:10 -08:00
Kurt
246b9d46a9
Add GSC fishing swarm encounters
...
Closes #1814
2018-02-04 23:14:12 -08:00
Kurt
2a638a957f
Refactoring
...
compress some ideas
2018-02-04 19:17:44 -08:00
Kurt
e3ca751e2c
Add dp/hgss shedinja gender glitch handling
...
not providing pkmeditor ability since Pt behaves correctly.
Closes #1813 , thanks @ultima-soul & @Lusamine !
2018-02-04 18:12:20 -08:00
Kurt
420a18ea85
Rework shadow lock checking
...
tested for 2 locks, later commits with legality check implementation
will feature more lengthy lock checks (test case automation).
https://pastebin.com/VdbjWaqL
(species doesn't matter since most are 50/50 ratio)
2018-02-04 16:33:53 -08:00
Kurt
c20f03434f
Add FrameCache object
...
arbitrary access for RNG frame results, only generating frames when the
frame is unavailable. all calculated frames are cached.
to be used in RNG searching where caching seeds is necessary (repeat
checks)
2018-02-04 16:30:50 -08:00
Kurt
35e5dbfb32
Add eterna forest honey tree location
...
Closes #1812 , thanks @ultima-soul !
2018-02-04 14:03:35 -08:00
Kurt
04888a5c39
Add crabrawler berry pile scripted encounter
...
https://projectpokemon.org/home/forums/topic/43628-crabawler-bug/
doesn't exist in static encounters, maybe is set up like the swooping
encounters of gen6.
2018-02-04 13:04:45 -08:00
Kurt
9a20734be2
Update lock checks
...
test case
https://pastebin.com/f4K7uc56
only checked for single locks
2018-02-04 00:06:07 -08:00
Kurt
14fc71a5d2
Fix Zygarde Aura Break formechange detect
...
original was AltForm != 1, 0 is also invalid so >1 suffices.
remove parameter from method & update usages
2018-02-03 21:12:36 -08:00
Kurt
0a22ccdb2b
Disallow invalid pelago levels
...
simplify pelago slot generation too
linq for now; can be silly and make it a for loop but meh
2018-02-02 20:52:44 -08:00
Kurt
382c94c348
drop sm pelago exclusives back to 1-55 not 37-55
...
https://projectpokemon.org/home/forums/topic/43711-vullaby-invalid-error/
2018-02-02 20:10:43 -08:00
Kurt
b603bc87b8
Update shedinja ninjask move checks
...
check level of source moves for any incompatibility in non-bred cases.
Closes #1805
2018-02-01 19:57:02 -08:00
Kurt
999427f484
Update gen2 egg generator
...
Level = Level is equivalent to Level = 0
update EggInfoSource to use Level instead of LevelMin (LevelMin returns
Level, just be clear on usage)
update VerifyCurrentMoves so that only gen1/2 do the gen1/2 move update
methods. Recently extended all encounters to have a generation property;
we only care about gen1/2 here.
https://projectpokemon.org/home/forums/topic/43655-pokemon-crystal-egg-mark-as-not-legit/
2018-01-30 20:36:22 -08:00
Kurt
84a0381050
Add Italian to gb languages
...
https://projectpokemon.org/home/forums/topic/43655-pokemon-crystal-egg-mark-as-not-legit/
2018-01-30 20:34:11 -08:00
Kurt
836566004f
Use CXD met location string on verbose output
...
was previously using RSEFRLG locations for CXD encounters
2018-01-30 20:24:45 -08:00
Kurt
7063ea2971
Remove vc1 pay day mewtwo restriction
...
Closes #1794
2018-01-30 09:38:45 -08:00
Kurt
4ac92b9418
Update nincada->shedinja evo chain check
...
Thanks @admiral-fish & @Marty-D !
2018-01-29 20:52:05 -08:00
Kurt
74f185591a
Fix shiny/nonshiny egg mysterygift link trade checks
...
thanks @Admiral-Fish for finding this case
2018-01-28 23:40:57 -08:00
Kurt
2365e2394c
Add eggcycles override for Odd Eggs
...
not gonna bother checking for exp < 125 because after transfer these are
indistinguishable from regular eggs.
2018-01-28 09:46:11 -08:00
Kurt
735ff26486
Rework GetEncounterMoves to match games
...
Closes #1787
Noticed that the search-backwards approach for GetMoves yields Sludge
for muk even though it shouldn't be allowed
im fine with this for now because gen2 never had online checks and any
current-gen checks allow relearning.
2018-01-28 00:09:11 -08:00
Kurt
13e7d8ff85
Fix dragonair ingame trade genders
...
#1787
2018-01-27 23:23:10 -08:00
Kurt
282676e2f2
Refactoring
...
reduces mental footprint
2018-01-27 17:49:18 -08:00
Kurt
ca2898d648
Rework gbc celebi detection
...
disallow outside jp games
2018-01-27 11:46:51 -08:00
Kurt
0e7350ee9e
Update korean vc string checks
...
https://projectpokemon.org/home/forums/topic/43610-legality-about-gen-2/
2018-01-27 09:45:33 -08:00
Kurt
c066df243f
Misc fixes/updates
...
Fix crystal lacking met level<->current level checks
Fix met location loading for gen2 saves (gen7 sav loaded gen1/2 pkm ->
load gen2 sav)
refactor some logic with pattern matching/consistent method names
2018-01-26 09:19:20 -08:00
Kurt
48564d7e30
Fix celebi iv check
...
update version ID as well
Closes #1775
2018-01-25 20:39:32 -08:00
Kurt
9b7b0b25d4
Flag iv<5 celebi
...
thanks @sora10pls
2018-01-25 19:34:18 -08:00
Kurt
58e374bcc6
Add celebi / more crystal legality handling
...
Closes #1772
2018-01-25 19:25:10 -08:00
Kurt
802105d22d
Allow pay day mewtwo, disallow dizzy punch
...
#1772
transfer pk1->pk2->pk7 for mewtwo knowing dizzy punch, just so we can
keep Pay Day
2018-01-25 19:17:42 -08:00
Kurt
5472f869cf
Remove some crystal vc checks
...
now legal
assuming x->kor7 sets the language val based on the cart language,
should be good for the kor crystal checks.
2018-01-25 09:14:25 -08:00
Kurt
b69a6df6e7
Add roamer glitch IV collision detection
...
M1 is checked before M1R. A M1R PIDIV can also be a M1 PIDIV, so check
that collision.
https://projectpokemon.org/home/forums/topic/43567-gen-3-suicune-unaffected-by-roamers-glitch/
2018-01-24 19:07:03 -08:00
Kurt
713e9ea209
Compress box padding
2018-01-23 17:18:37 -08:00
Kurt
b229a947f2
Fix pt/hgss egg location handling 4->5
...
Closes #1766
pt/hgss egg location data is lost on transfer, retaining faraway place
only.
2c8e2176e9
fix was incorrect
2018-01-21 11:57:34 -08:00
Kurt
e616b56bfa
Remove uncatchable grubbin static encounter
...
#1763
2018-01-18 14:06:17 -08:00
Kurt
387030e16f
Fix 7th gen pikachu altform check
...
https://projectpokemon.org/home/forums/topic/43498-bug-about-event-pikachu/
2018-01-18 13:50:29 -08:00
Kurt
17e4bdbe3a
Add pikachu7 forme nongift check
...
other branch was unhandled, flag if we have a mismatch
closes #1762
2018-01-15 17:50:33 -08:00
Kurt
029539003b
FormChange check: use original form not current form
...
Closes #1758
noticing the different usage for species (encounter species vs current),
iterating over possible dexlevels (unnecessary?)
2018-01-13 12:10:17 -08:00
Kurt
fb6738f18b
Add unown 2->7+ shiny check
...
closes #1755
also:
fix vc transfer checks not being called (EncounterOriginalGB is no
longer GBEncounterData).
remove usages of GBEncounterData -- class is (as of a ~~month ago) now
never leaked out of the EncounterGenerator -- always returns the actual
encounter data as the wrapper is not needed.
simplify logic flow / references
2018-01-10 16:16:35 -08:00
Kurt
c751c987a9
Add DebutGeneration get
...
https://projectpokemon.org/home/forums/topic/43378-generation-search-in-pkmdb-andor-batch-editor/
(less than) < and (greater than) > not currently supported (no plan to
add, would need to rewrite value eval logic)
2018-01-10 15:40:33 -08:00
Kurt
701edbc592
Remove KOR language from gen3 selection
...
add flag for non japanese lang gen3 eggs
Closes #1747
2018-01-06 22:43:48 -08:00
Kurt
63a983749e
Don't generate encounter slots for eggs
...
Closes #1749
2018-01-06 21:51:58 -08:00
Kurt
6a9e2ed4b9
Refactoring
...
improve speed for resource fetch, add optional Shiny parameter
(currently unused)
#1735
2018-01-02 16:53:39 -08:00
Kurt
0f21fc2217
add location interface for verbose analysis output
...
indicates met location for transferred mons
most gen1/2 encounters won't show values due to the location not being
stored respective to the string tables (anyone wanna do a location remap
after initial load?)
2018-01-02 12:00:41 -08:00
Kurt
5888898e7d
fix gen2 egg met level mod
...
https://projectpokemon.org/home/forums/topic/43278-gen-2-hitmonlee-and-hitmonchan-flagged-as-illegal-if-location-is-mt-mortar-at-level-10/?tab=comments#comment-225577
2018-01-01 21:51:36 -08:00
Kurt
76385a6b4a
Fix gsc pre-evo species chain filtering
...
simplify gsc check to do only once
https://projectpokemon.org/home/forums/topic/43278-gen-2-hitmonlee-and-hitmonchan-flagged-as-illegal-if-location-is-mt-mortar-at-level-10/
2018-01-01 13:53:28 -08:00
Kurt
cfe78a7a0c
Add rby power plant static encounters
...
https://projectpokemon.org/home/forums/topic/43272-small-electrode-legality-bug/?tab=comments#comment-225537
2018-01-01 10:38:38 -08:00
Kurt
1b409dd327
Ban phione egg in non-pokeball
...
Thanks Davil!
https://projectpokemon.org/home/forums/topic/43262-bug-phione-ball/
2017-12-31 09:56:27 -08:00
Kurt
0c2b16391f
fix spanish ranch gift name check
...
oops
2017-12-29 13:08:06 -08:00
Kurt
90260187f7
Add light of ruin & plasma fists as invalid sketch
...
moves not available for sketch without hacking a specimen in
https://projectpokemon.org/home/forums/topic/43244-two-problems/?tab=comments#comment-225421
2017-12-29 12:00:06 -08:00
Kurt
43cb0e8d7d
Provide more accurate met level for eggs
...
Gen6 egg with met level != 1 (ie 98) will use the gen3-4 metlevel
branch.
fuzzed input from #1728 to be hacked (met level = 98)
2017-12-28 10:01:48 -08:00
Kurt
a1f2f8708a
Refactoring
...
pass identifier on cloning pkm
remove unnecessary ref for passing Data (not modifying array reference)
const some magic numbers
2017-12-27 16:36:24 -08:00
sora10pls
c3d5266b89
Add XY gift Lapras ability check
2017-12-23 18:28:00 -05:00
Kurt
ea76d6a899
Misc tweaks
...
minor perf improvements (don't ToList for encounter slots, store all
slots incrementally); has better performance for legal pkm checks
2017-12-23 11:49:20 -08:00
Kurt
7f21728e84
Add area->location references to remaining slots
2017-12-23 11:48:10 -08:00
Kurt
5e59e20ea1
Store matched encounter generation
...
previously was only defined for gen1/2, why not all gens
can now query encounters in Core for encounters per generation via
reflection; can help group encounters for data vis or be faster than
getting individual gen numbers
2017-12-18 16:17:21 -08:00
Kurt
80baaea3b7
add b2w2 n's pokemon PIDs
...
add b2w2 fixed PID encounters (N's Pokemon), move nsparkle to this class
redo static encounter cloning
2017-12-18 15:25:40 -08:00
Kurt
24b5cc48ed
Fix gb encounter move comparison
...
don't calc NoMoveReminder for non-gen2 formats, also fix comparisons
(gen1 || gen2&&noRemind)
Closes #1707
2017-12-17 21:26:31 -08:00
Kurt
47eee3aa98
Add roto powers as held items
...
not gonna add sprites because these are useless, anyone can submit via
pr (image might need downscaling to <15x15)
Closes #1703
remove useless null checks (throws the exact same exception it would if
it were not there, except without detail)
2017-12-16 19:52:06 -08:00
Kurt
21c1dde3a7
Fix static encounter gift / egg edge case
...
extract EncounterStatic match determination; in doing so fixes "lvl" by
passing byval.
Pichu encounters (2) come before the Gift level 25 pikachu, causing lvl
to be dropped to 5. When pikachu comes around, it compares 5==25 -> bad;
pulling out the method and passing byval allows it to be 25 at the start
of every new encounterstatic checked.
2017-12-16 18:24:03 -08:00
Kurt
0b58d4ffe9
Add form/nature checks for gen5 trades
...
altform wasn't checked for EncounterTrade
nature wasn't checked for gen5 origin (decoupled from PID, but forced)
#1702
2017-12-16 14:09:03 -08:00
Kurt
e5aa39a6bb
Refactoring
...
get language list now doesn't return new objects (or re-enumerate)
update rand usage to be inclusive for top bound, extend shuffle to
collections
remove unnecessary location overrides (already overriden in legal fetch)
2017-12-14 20:58:55 -08:00
Kurt
b5640de538
Misc tweaks
...
reorder some args, reuse some standard methods;
add spanish for gen1/2 egg name case
2017-12-14 16:16:47 -08:00
Kurt
9a39f818f9
Misc fixes
...
#1700
dp personal: add wormadam/deoxys manual forme count values
generator: bcc handling for pkm present in & out of bcc, and static/wild
duplicates
util: fix incorrect variable reference
2017-12-13 16:17:02 -08:00
Kurt
a9ff74059a
Misc perf tweaks
...
checking untraded should just check for the first character (rather than
creating string object)
hashset for wild6 balls
2017-12-13 16:12:53 -08:00
Kurt
816ebf6b0e
Refactoring
...
no functional change
2017-12-11 16:01:24 -08:00
Kurt
dd21f9375f
Misc updates
...
Disallow sandygast on US
Add 2 more records
thanks @feralfalcon
Closes #1698
2017-12-08 08:54:00 -08:00
Kurt
a43880184a
Fix artist ribbon gen6+
...
having 4 ribbons is sufficient (normal/super/hyper/master = 4, etc)
https://projectpokemon.org/home/forums/topic/42933-2-issues-invalid-ribbons-artist-encounter-level-in-origin-game/
2017-12-07 07:57:07 -08:00
Kurt
f9946368a0
Remove usage of LegalityAnalysis from PK*
...
CK3<->XK3 transfers to PK3 first now (no direct transfer legally)
2017-12-06 21:28:34 -08:00
Kurt
bd9f7fc7e2
Remove fossils from usum capture list
2017-12-06 21:05:36 -08:00
Kurt
4550f656d0
Update gs vc check female
...
will be revised when/if vc-c is released
2017-12-05 15:08:02 -08:00
Kurt
88f67ebd36
fix crystal gender flagging
...
C->GS->Gen7 keeps female OT but gives GS version
also fixes wrong logic path for format2
thanks randomdice101
2017-12-05 14:43:02 -08:00
Kurt
5bc2e6da88
Refactoring
...
de-linq some areas where direct accessing is possible (list/array)
2017-12-04 20:16:54 -08:00
Kurt
4a63769351
Add voltorb to beast ball permissible table
...
closes #1694
2017-12-04 16:54:09 -08:00
Kurt
3d7b2a2b29
Misc tweaks
...
RNG frame mismatch -> fishy (for now)
fix xmldoc copypaste
clean up some resharper warnings
2017-12-04 16:26:26 -08:00
Kurt
1007c5ddb8
don't flag pokespot for frame not matching
...
#1693
2017-12-04 16:05:21 -08:00
Kurt
a5dbdf91bd
Misc tweaks
...
detect antishiny cxd
remove unused using
don't set caught for seenAll (gen7 dex)
2017-12-04 13:18:28 -08:00
Kurt
6773a2801d
update static/magnet slot permutations
...
using certain slot modifiers (swarm/game pak) causes different
arrangements of slots for different static/magnet pull groups to pull
from
store a list of permuted/different slots and add them to the table at
the end with the rest
move static/magnet pull marking into gen4 methods (only leave for gen3)
move trophy slot generation into gen4dppt area fetch (necessary for
static/magnet permuting)
fix electric off-by-one (yay for curse ??? type shifting everything)
2017-12-03 12:20:53 -08:00
Kurt
f21906ee9a
store gen3 origin seed for default frames
2017-12-03 07:13:28 -08:00
Kurt
d301cb5469
Remove ESV rollback for varied level encounters
...
ESV rand is stored uniquely now via generated frames from FrameFinder,
no need to roll back.
2017-12-02 22:34:54 -08:00
Kurt
133cc22f50
Add bypass for gen4 unown
...
meh
2017-12-02 19:54:50 -08:00
Kurt
9c32b36709
Don't reuse friend safari message
...
use the string format variant that has less hints.
https://projectpokemon.org/home/forums/topic/42869-bugg7-ditto/?tab=comments#comment-224365
2017-12-02 18:54:41 -08:00
Kurt
e06b7945ad
Merge pull request #1682 from wwwwwwzx/master
...
Breeding ball legality fixes
2017-12-02 16:40:42 -08:00
Kurt
15489b8a7c
Use dppt specific rand calls
2017-12-02 15:44:44 -08:00
wwwwwwzx
21a31c9fce
Breeding ball legality fixes
...
Unban safari ball Slakoth, Pichu and Igglybuff, beast ball Helioptile.
2017-12-02 15:44:04 -08:00
Kurt
87748e18c9
Continued updates for frame generating
...
fixes broken test, provide encounter proc call
2017-12-01 22:49:38 -08:00
Kurt
40ec87fc9d
Add gen4 lead frame finding variants
...
can use level call or not at all (fixed slot)
still untested, assumed same call order as gen3.
2017-12-01 21:23:37 -08:00
Kurt
48242109fd
Rework lead required to flags
2017-12-01 17:27:09 -08:00
Kurt
15ab0d5aff
Add origin seed for frame output
...
looks like for gen4 I have to yield twice as many frames (for FixedLevel
and non) as level call usage is dependent on encounter
2017-12-01 16:33:03 -08:00
Matt
1fcac7c06b
Fix level check compare
2017-12-01 15:13:03 -05:00
Kurt
4b954cd102
Add static/magnet fail enum value
...
can fail leading to regular ESV calc
2017-11-30 23:07:11 -08:00
Kurt
5d74096243
Apply static/magnet groups by slot type
...
only apply for emerald (only game in gen3 that supports it)
2017-11-30 22:34:57 -08:00
Kurt
de25056275
Check SOS hidden ability minimum IVs
...
Closes #1675
2017-11-30 21:06:11 -08:00
Kurt
2ab805ba98
Add method h safari analogues for ESV->slot
2017-11-30 19:31:38 -08:00
Kurt
8c675793ba
Fix gen4 trade nickname/ot check
...
Closes #1672 by changing length check to check the correct dimension
add handling for DP english trades (localization error).
2017-11-30 18:13:30 -08:00
Kurt
9930e8765a
Add frame level checking
...
still WIP but should be working fairly well
2017-11-29 23:20:49 -08:00
Kurt
d3d7d7d50d
Add slot level / IsEncounterable beginnings
...
dynamic level -> calc level
no sweet scent -> proc available (rock smash/fish)
change frame checking in encountergenerator to save which frame it was
found on (unused but possibly later can capture this for output)
2017-11-29 21:31:52 -08:00
Kurt
36894a588d
Add FRLG unown frame matching
...
Turns out there was no documentation anywhere on encounterslot numbers
for the individual forms; some sites had overall rates.
Assuming a human filled out the encounter slots, forms would repeat left
to right until a new form takes over. Below slot numbers match the rates
when summed up.
https://pastebin.com/raw/bQt3ZMbq
2017-11-29 18:28:20 -08:00
Kurt
8f8cf5bc9a
Fix tradepair calculation (link trade eggs)
...
returned invalid pair values for gen7 due to 2 unused game IDs between
the gen6&gen7 pairs
2017-11-29 09:21:17 -08:00
Kurt
dc2ef24fcd
Handle fixed lang trade name detection explicitly
...
edge cases suck
2017-11-28 22:26:31 -08:00
Kurt
dd7684735a
Add Frame mismatch illegal message handling
...
encounter will no longer be ignored as valid, will instead show the RNG
frame mismatch message.
2017-11-28 21:30:53 -08:00
Kurt
c7a59453b1
Fix frlg safari rod slot checks
...
tfw whole legit boxes of dratini were flagged -> now legal
2017-11-28 20:56:21 -08:00
Kurt
fb4fffffa0
Change rse feebas to swarm slottype
...
behaves the same as a swarm pkm in terms of proc (50% -> level ->
generate), so have it travel the same code path.
2017-11-28 19:41:29 -08:00
Kurt
0bc2ee0938
Skip scatterbug static encounter forme check
...
closes #1668
add 2/3 pkms provided as test cases (spewpa can be ignored, close
enough. just want an evo & orig).
2017-11-28 19:29:25 -08:00
Matt
42d6d483f2
Comment out Old Amber Aerodactyl
2017-11-28 19:10:56 -05:00
Kurt
1e0bf7b6ea
handle hgss volty pikachu trade lang swap
...
en<->fr
not sure what FR has for the pikachu language (is it EN? if so the code
here works fine); if not, the OT should be checked for lang detection.
2017-11-27 23:21:19 -08:00
Kurt
c5b7ebf50a
Add egg forme check
...
all other egg formes that are disallowed are checked later; check for
totems here
Closes #1667
2017-11-27 18:13:54 -08:00
Kurt
b2c3884391
Permit 5->6+ forme mismatch keldeo
...
BW tutor -> transfer up doesn't update the form
thanks @wwwwwwzx !
2017-11-26 22:19:27 -08:00
wwwwwwzx
f70dab1d19
Remove duplicates
...
oops..
2017-11-26 20:45:27 -08:00
wwwwwwzx
5886b3e609
ban beast ball fossils
...
- Add G1/G3/G6 fossils to Alolannatives
- Ban all fossils in beast ball
2017-11-26 20:38:52 -08:00
Kurt
be4d30bb6d
Add pokeblock slot filtering
...
since there's 300 calls to rand to shuffle, I wouldn't be surprised if
there are vblanks messing up the frames
judging from my data 6 years ago (wow, still wrong, just look at the
frame offsets)
http://www.smogon.com/forums/threads/past-gen-rng-research.61090/page-35#post-4021415
looks like it happens quite erratically. may have to just override this
to return true for all gen3 safari mons as it's entirely unpredictable.
2017-11-26 20:07:38 -08:00
Kurt
187726b4af
Use static/magnet pull values
...
reorganize a little for lead use cases
2017-11-26 16:09:24 -08:00
Kurt
22abce5e16
Update gen3 frame finder
2017-11-26 14:48:55 -08:00
Kurt
0f3529e764
Add gen3 swarm encounter slot call
...
via pret/pokeemerald (and pokeruby); rate is set at 50%
swarm pokemon have the ability to have 4 fixed moves, so derive from
EncounterSlot to have moves, and remove special handling from
VerifyCurrentMoves (now picked up by IMoveset pattern
2017-11-26 11:00:54 -08:00
Kurt
1162ba5b3d
update bcc slot table
...
https://pastebin.com/Y0VRnJxu
not sure what the 2nd rand value is
still some things to sort out with RoC's PC
2017-11-25 22:28:38 -08:00
Kurt
2be84b6005
Rework encounterslot location fetch
...
store ref to area instead of location, useful for fetching sibling slots
from the parent.
2017-11-25 18:16:50 -08:00
Kurt
690cbaae79
Unban fossils
...
except for aerodactyl (old amber not obtainable)
https://projectpokemon.org/home/forums/topic/42761-fossil-legality-issue-usum/
https://www.serebii.net/itemdex/clawfossil.shtml
etc
2017-11-25 15:20:45 -08:00
Kurt
ad5e69550e
Add hgss safari slot block priority bypass
...
allows hgss safari mons regardless of frame call (table is currently all
Slot=0).
may need separate handling down the road:
* switch slot number to an enum for slot codes (>0 = slot number, less
than -> do something else).
not something im interested in right now
2017-11-25 15:03:37 -08:00
Kurt
fbce8582c7
Add encounter slot checking
...
emerald silly stuff like magnet pull not implemented so some stuff may
be not matched.
2017-11-25 13:53:39 -08:00
Kurt
76903bce9f
Fix gen4-6 gen4 origin encounter type defer check
...
only check etype if appropriate (not gen7+)
2017-11-25 09:48:49 -08:00
Kurt
d1bae13250
Add flagging for crystal transfers
...
users should know better but best to know
allow gen2 female when from crystal
2017-11-24 18:19:16 -08:00
Kurt
20cd29c088
remove mind blown for sm
...
off by one
Closes #1658 , thanks @Ntonio36
2017-11-24 12:05:08 -08:00
Kurt
3483b4bb91
Clean up vc2 legality/transfer stuff
2017-11-24 10:13:42 -08:00
Kurt
b8a5657d5a
misc tweaks
...
pull out transfer locations to const references
add vc2 & crown beast/celebi met location suggesting
add vc2 crystal sensitive detection
add 2 more usum trainer stats (thanks holla!)
2017-11-22 21:45:30 -08:00
Kurt
4bbe586981
block ash greninja from USUM game origin
...
should really be part of a 'receivable by game' check; not doing any
more of these edge cases. need card hash -> permit bits for future
cases.
2017-11-22 08:24:54 -08:00
Kurt
d834ae3ccf
allow banned pokemon for BattleTreeGreat in USUM
...
stupid banlist removal case
master still downlevels/bans
2017-11-22 08:23:50 -08:00
Kurt
d5411f1453
Add nickname flag override for encountertrade
...
closes #1649
2017-11-22 08:11:53 -08:00
Kurt
9806677d5e
EncounterType init update
...
move MarkEncounterTypeData back above the area size reduction so that
the mark-by-locationID special handling will work
prevent slottype from becoming overwritten if already defined by special
case handling
add examples provided to automated test cases
closes #1648
2017-11-22 07:52:17 -08:00
Kurt
f25b4fea9c
Add forme range check method to personalinfo
...
relocates logic to better location
2017-11-21 18:32:27 -08:00
Kurt
b2b6df7808
Shuffle encountertype loading around
...
add rocksmash type for cianwood
closes #1646
2017-11-21 18:32:26 -08:00
Kurt
05f2968c95
Add wormhole species to AlolanCaptureOffspring
...
allows apricorn & beast balls
2017-11-20 17:16:16 -08:00
Kurt
8f5fbeb504
allow pupitar hidden ability on 2->7
...
yay
2017-11-19 19:48:45 -08:00
Kurt
a570d13dc5
Quacklin’ edge case
...
can't be bothered remapping the input file to match encoding/decoding
tweaks. best to just handle this one case.
2017-11-19 19:37:25 -08:00
Kurt
01dacce214
Add gs transfer met location
...
30017
2017-11-19 19:19:35 -08:00
Kurt
ef9722153f
move evochain fetch outside of location iterator
...
also relocate gen12 code so it only runs for gen12
2017-11-19 15:26:41 -08:00
Kurt
6d3ee54d44
Reorder case fallthrough
...
closes #1631
based on
5859daf1d8
any case -> reverse game order
2017-11-19 13:15:32 -08:00
Kurt
1b9d657c2f
Remove double encounter slot species filtering
...
GetValid already filters by species
move some common non-location code out of the method; can be done for
the dexlevel fetching too -- future improvement.
2017-11-19 12:41:23 -08:00
Kurt
5859daf1d8
Add maxspecies checks for gen7
...
accesses arrays outside the range for the new USUM species
Closes #1631 , add test case
also adds lycanroc test cases for #1630
2017-11-18 21:50:48 -08:00
Kurt
6b281cbefe
more rockruff 1 handling
...
y u do dis gf
Closes #1630
2017-11-18 20:08:11 -08:00
Kurt
3b5e6239de
Add usum pelago encounters
...
nothing exclusive, but different from sm
https://pastebin.com/NhAA1vJn
2017-11-18 13:53:51 -08:00
Kurt
6394dac19f
Rework mysterygift pkm sprite generation
...
don't bother converting to pkm then generating the sprite off that; use
the overload with int/bool
removes sav/pkm dependency for generating gift descriptions, and
standardizes the names a little. maybe a PKMBase interface would be
useful...
2017-11-18 11:34:23 -08:00
Kurt
f7e20a3c43
Misc tweaks
...
fix roamer3 not setting IVs
fix usum z items rightmost pixel getting chopped off
use Gen* instead of GenNumber for specific cases (faster)
add WasGiftEgg location case for Gen7
remove some unnecessary array allocations
2017-11-17 22:19:23 -08:00
wwwwwwzx
f48e6f711a
Unban white/orange Flabebe HA
...
obtainable from SOS call
2017-11-17 20:19:41 -08:00
Kurt
311e110f6b
Block wild dusk rockruff
...
closes #1627
adds test cases
2017-11-17 20:02:01 -08:00
Kurt
61c0bf5271
Fix italian/german b2w2 yancy/curtis OT swap
...
https://projectpokemon.org/home/forums/topic/42528-bw2-in-game-trades-yancycurtis-20171117/
2017-11-17 08:38:38 -08:00
Kurt
5ae7c9a5da
Merge pull request #1623 from ReignOfComputer/master
...
Flip Valid Trade OT Compare Operator
2017-11-17 08:31:30 -08:00
Kamron Batman
d2d04075bc
Replaces PCD.pkl with WC4.pkl. Tested and working.
2017-11-17 08:11:49 -08:00
ReignOfComputer
69f11ec3bc
Flip Valid Trade OT Compare Operator
...
Related:
https://projectpokemon.org/home/forums/topic/42528-bw2-in-game-trades-yancycurtis-20171117/
2017-11-17 23:57:55 +08:00
Kurt
55d8f4aa26
Add rockruff event evo edge case
...
different altform IDs
2017-11-16 21:04:51 -08:00
Kurt
025b8da52c
Flag invalid forms on sav compatibility check
...
closes #1615
2017-11-16 14:30:18 -08:00
Kurt
8958646ae6
Fix game specific pair evolution comparison
...
US table with SN result in false; just check the even/odd for these (as
they are pair specific).
Closes #1611 , thanks @Ammako !
2017-11-16 14:20:13 -08:00
Kurt
0cfb79a3e2
handle hacked edge case input
...
gen7 pkm version on format5 -> exception on new int[-X]
normally caught via exception suppression but better to handle the
cause.
2017-11-15 18:13:04 -08:00
Kurt
725d094a0d
Add dusk form rockruff check
...
Repurposes "alolan only form" to specify that the form cannot be
obtained with the current game of origin.
Closes #1611
sorry for butchering any translation
2017-11-15 16:28:47 -08:00
Kurt
5fbf331827
Fix trade evolution check
...
incorrect behavior; check for milotic case if appropriate first
Closes #1609
2017-11-15 10:11:05 -08:00
Kurt
897ed84933
update milotic specific evolution checks
...
verifier: return true if detectably traded
check: invert condition to skip out if it is verified traded
2017-11-15 08:36:09 -08:00
Kurt
3832a8afd4
Fix noibat trade gender
...
closes #1608
2017-11-15 08:23:45 -08:00
Kurt
5e6b2f43c2
Update wild/egg generators for totem cases
...
so wonky edge cases
2017-11-14 08:43:04 -08:00
Kurt
8b5803781d
Add bewear location
...
All static encounters have been found!
Closes #1577
2017-11-13 20:50:10 -08:00
Kurt
4341dc1775
Add Galactic Key to usum key items permitted
...
add zygarde cube reconstructs gifts, thanks @sora10pls !
2017-11-12 21:56:08 -08:00
Kurt
9b61c94402
Add ditto5 natures
...
thanks @wwwwwwzx for pointing this out
remove others that have encounter details forced (for totem battles)
2017-11-12 12:15:08 -08:00
Kurt
55c31cb598
Update encounters
...
add ability locks for sm gifts
add poipole secondary location
add magearna details
2017-11-12 10:59:23 -08:00
Kurt
54b9fa7c93
Merge pull request #1592 from sora10pls/patch-1
...
Update USUM static encounter list
2017-11-12 09:18:31 -08:00
Kurt
064d18c13f
Add necrozma special forme moves
...
not present in the levelup movepool like they should be...
2017-11-12 09:17:59 -08:00
Matt
6ecc7f2efb
Update USUM static encounter list
2017-11-12 12:08:48 -05:00
ReignOfComputer
0b95f7d4b8
Porygon/Zygarde/Trainer School Encounters
2017-11-12 22:29:21 +08:00
ReignOfComputer
f1e7c0f759
Hypno Trio Encounter at Hau'oli City PD
2017-11-12 18:33:06 +08:00
Kurt
dea70bf243
Add cosmog & zygarde gift locations
...
thanks @architdate !
(thanks @bui for the pikachu!)
porygon remains
2017-11-11 17:24:49 -08:00
Kurt
d674ea4f39
Add surf pikachu details
...
Closes #1589
Thanks @PolarPeridot !
2017-11-11 17:16:31 -08:00
Kurt
e6c68a8fc9
Add heavy ball permissions for USUM
...
heavy ball now works in USUM
2017-11-11 16:26:22 -08:00
Kurt
5d90e9dc53
Refactoring
...
check alolan forms for forme matching, break up large method to
something a little more understandable.
2017-11-11 09:35:07 -08:00
Kurt
f5a6f23161
Add more static enc data
...
clear out unused (highly certain) SM encounters
add solgaleo/lunala locations
add partner form pikachu
2017-11-10 19:43:31 -08:00
sora10pls
6cd2a08238
Fix Type: Null location
2017-11-10 13:19:47 -05:00
sora10pls
1d44c45fe0
Fix indenting
2017-11-10 13:16:43 -05:00
sora10pls
6f58698187
Add more static encounter locations
2017-11-10 13:08:36 -05:00
Kurt
41a60dda78
permit necrozma formes 1&2
...
and 0.
was eventually reaching the Battle Megas list so insert this abort-early
detection.
2017-11-10 09:22:41 -08:00
Kurt
30f07fc979
Fix wishiwashi handling
...
totem wishi isn't a gift because it isn't really a totem
2017-11-10 08:42:25 -08:00
Kurt
a3b8b15b4d
Merge pull request #1582 from ReignOfComputer/master
...
Normal Pokemon @ Ultra Space Wilds / Sandygast @ Route 15
2017-11-10 05:21:35 -08:00
ReignOfComputer
7dd8dd970f
Normal Pokemon @ Ultra Space Wilds
2017-11-10 17:29:20 +08:00
Kurt
af91388792
Return empty enumerables for invalid table fetch
...
shouldn't ever be called but best practice
2017-11-09 22:17:55 -08:00
Kurt
b3436cb791
Add totem forms selection/spritemod and req changes
2017-11-09 21:52:11 -08:00
ReignOfComputer
ec6e485c50
Sandygast @ Route 15
2017-11-10 13:14:18 +08:00
Kurt
23d57f8807
Add ditto5, necrozma
...
fix tab for oras flag resource
2017-11-09 21:11:19 -08:00
Kurt
38f4f773f3
Merge pull request #1580 from sora10pls/patch-1
...
Add several Ultra Warp Ride locations
2017-11-09 20:12:39 -08:00
Kurt
139e130b82
evo table / check update
...
prune froslass/gallade evolution tree pruning by editing the binary like
prior commit for sm
fe66a65464 (diff-e0f20441fd5149efa4e829994c94f683)
revise banlist interaction for usum evos (need to trade to USUM to be
able to undergo these evolutions).
Closes #1570 (evolution table issues), other open issues can catch any
other/unrelated fallout.
2017-11-09 19:47:01 -08:00
Kurt
5e2e4fd6f1
Add usum evo table
...
repacked garc as mini uu
2017-11-09 19:27:16 -08:00
Kurt
519e21a9bf
Permit totem mimikyu forme (not battle forme)
2017-11-09 19:26:47 -08:00
Kurt
104a9d622e
Add non-alolan native species for ball tables
2017-11-09 17:56:52 -08:00
Matt
c1de054c7f
Add several Ultra Warp Ride locations
...
- Cresselia
- Swanna
- Drapion
- Audino
- Medicham
- Magcargo
- Quagsire
2017-11-09 20:27:14 -05:00
Kurt
4deb24cc95
Add gender locks
...
lots of totems with fixed genders (not capturable), but some other
slightly important ones needing enforcement.
2017-11-09 16:32:09 -08:00
Kurt
55820246cf
Misc tweaks
...
mark SOS slots for usum, only permit varied alolan evos to be forme
changed (blocks totem raticate from being matched to non totem forme
inputs)
2017-11-09 16:18:30 -08:00
Matt
82a7502cf4
Add Poipole location
2017-11-09 19:10:11 -05:00
Matt
273231ad00
Add USUM Pinsir on Exeggutor Island locations
2017-11-09 16:56:10 -05:00
Kurt
ccdb84b851
update for some errors
...
restore ekans values, re-add antishiny for yungoos set
2017-11-09 07:22:34 -08:00
Kurt
b615ef0057
Update static7 with more data
2017-11-09 07:17:36 -08:00
Kurt
ae0122254a
Add abilities & IV3 flags for usum gifts
2017-11-09 06:43:11 -08:00
Matt
800a6b32b8
Merge pull request #1 from kwsch/master
...
Update from upstream repo kwsch/PKHeX
2017-11-09 02:02:42 -05:00
sora10pls
38cbf160ec
Add Totem-Sized gift ability/version checks
2017-11-09 02:01:09 -05:00
Kurt
2af7b152a7
re-enable error suppression
...
oops
2017-11-08 22:59:18 -08:00
Kurt
665e94b0aa
misc cleanup
...
add german forme names
truncate some forme names
fix nidoran gender symbols
adds null check for invalid (caught error) pkm
disables accessory giving (needs more research)
2017-11-08 22:56:42 -08:00
Kurt
28d15bb06e
Permit usum met locations & add new move PP counts
2017-11-08 20:32:23 -08:00
Kurt
ab8faac55d
Update legal tables with usum species
2017-11-08 20:23:06 -08:00
Matt
a8000608f2
Add more USUM static encounter locations
...
Totems @ Heahea Beach, Island Scan.
Grovyle is Akala-Friday @ Route 5, as is Bellsprout in SM; assume locations were unchanged.
2017-11-08 22:56:13 -05:00
Kurt
115c611120
add surf to gift pikachu moveset
...
only gift pkm with special move
2017-11-08 19:51:04 -08:00
Kurt
93b49928a0
add lvl/egg move tables for usum
...
add a few met locations for static encounters, recognizes torracat with
double kick correctly!
2017-11-08 19:31:07 -08:00
Kurt
93bd974249
Add EncounterStatic data
...
sourced from Ultra Moon, location IDs are not known (need manual docs).
Many of these may be unused, like last gen. Will eventually remove
unused ones once crowdsourced effort finishes.
2017-11-08 18:43:55 -08:00
Kurt
0caa0dec72
Group forms with special battle formes check
2017-11-08 16:27:35 -08:00
Kurt
800ba6cf90
encounter additions
...
add ingame trade data
add placeholder SOS data containers
add refs to all wild encounters (pelago is same as sm)
unmark some todo's
2017-11-08 15:07:04 -08:00
Kurt
cf35adca6f
Add roto blank item handling
...
preserve input data
2017-11-08 14:12:41 -08:00
Kurt
47058d5709
Permit loading of usum met locations to pkmeditor
2017-11-08 13:44:55 -08:00
Kurt
80bedb97c4
Misc tweaks
...
Adds game names for languages other than english
adds z crystal sprites for held items
temp-fixes chinese pkm names (need manual translation for the new
species)
remove newline at eof
toggle back on legal item lists, add assumed Key Item list
differentiate duplicate item name strings (-arizers)
2017-11-08 13:06:20 -08:00
Michael Scire
78acb8e13b
Fix save resigning for USUM, add resources for new pokemon
2017-11-08 11:31:09 -08:00
Kurt
ae773f189b
add usum tutor data
...
one large list at static.rodata:005E6860, formatted to look like AO
table with deletions & insertions at the bottom.
bitflags are used in one large set (not 4 chunks of 4 like prior).
2017-11-08 01:25:10 -08:00
Kurt
ece66e1a02
Misc tweaks
...
allows loading of species > 720 lol
still nowhere near done (large task is resource acquisition)
2017-11-08 00:51:08 -08:00
Kurt
543736d568
Early rough USUM compatibility
...
need to dump string resources, sprites, and repoint the form list string
fetch later. tons more to do
no guarantee of any working functions
2017-11-08 00:34:32 -08:00
Kurt
9ef4152736
add more xml docs
2017-11-06 22:44:51 -08:00
Kurt
6df1f97f95
early abort on altforms < 1
...
prior generations store 0 instead of 1 for some cases
24121553b4 (commitcomment-25445089)
2017-11-06 21:08:39 -08:00
Kurt
24121553b4
Add savegame sensitive pkm legality checking
...
uses the forme count of the savefile (rather than a futureproofed
same-gen forme count)
Closes #1559
2017-11-06 19:31:24 -08:00
Kurt
9cac3738dc
Add handling for mid-chain lowlvl encounter evos
...
haunter caught at level 20, transferred at 24, leveled once as gengar
did not allow gengar in the chain as it is assumed (incorrectly) that
gengar is evolved after transfer.
determine if the lower levels of the next step's evolution rung are
valid, using the same logic as pikachu case but to handle the other side
Closes #1564
(should probably refactor the encounter chain generator to use the base
encounter data if known, but oh well works fine and isn't a cpu hog)
2017-11-06 18:21:58 -08:00
Kurt
38989b4747
Export correct species name for verbose output
...
#1564
2017-11-06 18:06:23 -08:00
Kurt
0f69c1116e
Add unown gen2 invalid form check
...
closes #1565
2017-11-06 17:13:16 -08:00
Kurt
f959179e1a
add more colo encounter locations
...
dogs had hypothetical met locations, now fixed (y u so weird cxd)
Closes #1556
2017-11-03 21:33:48 -07:00
Kurt
f48afaf12d
Switch slottype to flags
...
simplifies some logic, adds some documentation, speeds up loading very
slightly
2017-11-03 17:14:18 -07:00
Kurt
d7300ce68f
Cleanup
...
add amoongus route22 encounter
fix typos in comments
resharper suggestions for recent pr
2017-11-02 21:37:28 -07:00
Kurt
495eb26740
Rework colo starter PIDIV detection
...
force colo starters to be male only
use some c# lang features for EncounterType flags
add edge case PIDIV detection for starter gender/shiny lock scenario
adds a little documentation for those unfamiliar with the NPC PKM
generation quirks.
Colosseum Starters will now be recognized with a different PIDIV type
which is specific to them & them only.
2017-11-01 21:12:44 -07:00
Kurt
60e719a65a
Misc refactoring
...
more usum prep
don't allocate empty array on every savefile creation (use linq All
comparison)
add percent seen/caught savefile properties for data analysis purposes
2017-10-31 09:24:54 -07:00
Kurt
e9cebf933c
Fix headbutt encountertype fetch
...
future improvement can be detecting when "none" is appropriate, but for
now, whatever.
Closes #1502
2017-10-29 20:19:49 -07:00
Kurt
da9e316cd8
Add rock smash encounter type flagging
...
I don't believe rock smash (EncounterType 1) exists, tests at Route 19
and Vermillion yielded None & City.
Closes #1379
Opens #1502
2017-10-29 19:17:53 -07:00
Kurt
3f533399f2
Simplify slot type loading
...
instead of 2 similar methods, use params to achieve a flexible method
for both situations
isolate rock smash / headbutt type loading
2017-10-29 18:09:30 -07:00
Kurt
afde4514e2
Add realgam tower / deep colosseum locs
...
sudowoodo & gsc dogs
closes #1549
fix loading issue for abilities in gen3 format, copy the gen4
sanitization
2017-10-29 10:41:12 -07:00
Kurt
9ada593af9
add gen7 nick ot (trades)
...
#1249
todo usum table when appropriate
2017-10-28 23:04:02 -07:00
Kurt
d2ebb6340e
Add gen5 nick/OT info (trades)
...
#1249
appears b2w2 is the first game with fixed nature & nonfixed PID (based
on RoC's specimens), so can't filter by PID on those.
2017-10-28 21:43:47 -07:00
Kurt
e4319fd929
Add gen3 nick/OT info
...
#1249
2017-10-28 19:51:55 -07:00
Kurt
2c73e130af
Add gen4 nick/OT info
...
#1249
2017-10-28 19:02:18 -07:00
Kurt
9d0b153eab
Add egg hatch suggestion for b2w2
2017-10-28 14:00:44 -07:00
Kurt
a401db608e
Split trade encounter nick/OT verification methods
...
#1249
2017-10-28 13:15:51 -07:00
Kurt
0e9960909b
Refactor encountertype check to bitflags
...
#1379
need to double check none permissive later
2017-10-27 23:57:21 -07:00
Kurt
00a4c1adf5
Add multilang c/xd ingame gifts
...
save space by just using a loop
closes #1529 , pokespot proc discussion relocated to associated issue
(as previously noted in comments)
2017-10-25 21:53:55 -07:00
Kurt
a6ef105544
Update gen3/4 encounter generators
...
revisit for simplification now that EncounterTrade matching is more
precise (PID required to match).
#1249
2017-10-24 22:25:52 -07:00
Kurt
59319a614a
Add PID values for Gen3/4 ingame trades
...
#1249
2017-10-24 22:24:29 -07:00
Kurt
933bfba8e1
Misc cleanup
...
check gen2 stadium names, use pkm.Japanese when favorable
2017-10-24 18:27:40 -07:00
Kurt
69cf1eaa9c
add more pkhex.core xml documentation
...
adds a bunch of documentation useful for those unfamiliar with the core
library
2017-10-23 23:12:58 -07:00
Kurt
60562fb44e
Use empty enumerable when appropriate
...
no allocation == no pressure for garbage collector
2017-10-23 15:44:01 -07:00
Kurt
a03ac10fc5
Misc refactoring
...
no functional change
2017-10-22 23:26:37 -07:00
Kurt
515a694afa
Add LanguageID enum
...
no functional change, just less-magic-numbers for easier to understand
src
2017-10-22 21:01:08 -07:00
Kurt
44c80bd722
Exclude light ball pikachu from gen1 species setter
...
Thanks Dunsparce!
https://projectpokemon.org/home/forums/topic/41880-yellow-version-pikachu-editing-bug/
non-functional change but fix misuse of gameversion checks (used X/Y
instead of YelloW)
2017-10-22 17:11:48 -07:00
Kurt
096f6bbd18
Add RANDY Gen2 ingame trade
...
closes #1538
rename pid deferral to pidiv deferral for clarity
2017-10-22 10:41:27 -07:00
Kurt
c5b0ed6c35
Move encountertype deferral to main generator
...
gen4->gen5/6 electrode will match static & wild slots, but deferral only
defers within the same IEncounterable group.
2017-10-22 09:42:15 -07:00
Kurt
528593b59e
Disallow crystal tutors if VC
2017-10-21 19:01:23 -07:00
Kurt
39279a7ad4
Add VC transfer checks
...
checks were previously only performed when finding the encounter, once
found, the GB encounter was validated. the transfer encounter is derived
after all encounter checks, thus remaining unchecked (really, only for
Locations).
Move generating logic to the generator, and double check the locations
are valid.
#1535
Thanks @DJPanda065 !
2017-10-20 21:07:15 -07:00
Kurt
00adfda6e4
Flag Hidden Ability -> other change (hacked)
...
Closes #1535
2017-10-20 20:10:56 -07:00
Kurt
0e24b5237e
cleanup
...
remove redundant/repetitive match update (updateTypeInfo with Format>=7
already updates the encountermatch just prior to this method call)
2017-10-20 20:10:13 -07:00
Kurt
ae0bf5c75c
remove (None) egg gen4 hatch location
2017-10-19 22:00:31 -07:00
Kurt
a75614ed77
Modify eggmove fetch
...
fetch is exclusively done with version already known; there are cases
where version can change for eggs so it's safer this way.
version change reference (gen6+):
212a489335
2017-10-19 21:20:47 -07:00
Kurt
a561948371
Detect mixed->fixed gender incompatibility
...
Calculate and compare the original encounter's gender's as well.
exclude azurill gender change (only case where this can happen) by
continuing the if-else.
Add Snorunt-Froslass to FixedGenderFromBiGender.
Thanks Davil !
2017-10-19 20:56:59 -07:00
Matt
4353f39286
Ban Sport Ball
2017-10-19 14:33:39 -04:00
Kurt
a53e8ddb7e
Fix grotto mienfoo level range
...
Thanks paf!
2017-10-18 21:16:52 -07:00
Kurt
5a09cd9122
Add deferral case for gen6 magmar classic ribbon
...
use "when" for easy src code
Thanks Nessus!
2017-10-18 18:28:17 -07:00
Kurt
cd6dfceb9e
Update fateful/shiny lock check gen3 wc3
...
VerifyFatefulMysteryGift wasn't hitting for WC3's (g.Format == 3);
simplify that branch and reintroduce the shiny check as a separate
method
Thanks Davil!
2017-10-18 18:18:23 -07:00
Kurt
886b2ef632
misc refactoring
...
simplification / splitting, also more usum prep and other readability
updates
2017-10-17 23:19:34 -07:00
Kurt
0cc60e6006
Change lookup arrays to hashsets
...
faster checking (slightly negligible but using the correct data
structure for the use case)
2017-10-17 22:06:07 -07:00
Kurt
a9261a1eec
Fix starly safari ball species ID
...
not staravia dawg
Thanks Britty!
2017-10-17 19:23:22 -07:00
Kurt
18aa7fe100
ban more safari/hidden ability pairs
...
https://projectpokemon.org/home/forums/topic/41840-bug-pokemon-in-ball/?tab=comments#comment-221383
2017-10-17 09:08:48 -07:00
Kurt
4d91aad876
Flag gen2 egg moves when transferred from gen1
...
move must be removed 2->1 so cannot be permitted as egg move.
remove unreachable code (ParseMovesRelearn only is called for Generation
>= 6, and thus Format != 2).
2017-10-16 17:24:19 -07:00
Kurt
e744dcc340
Add OT too short check
...
apparently some people can be this oblivious
2017-10-15 18:11:20 -07:00
Kurt
0120263bd3
Cute Charm gender ratio changing edge case
...
Thanks @Admiral-Fish !
2017-10-12 23:18:43 -07:00
Kurt
02c06d154b
Split item cap for usum prep
2017-10-10 19:30:55 -07:00
Kurt
b63e444e15
Add hatch location check for static egg gifts
...
to match mysterygift check
2017-10-08 14:48:35 -07:00
Kurt
4b135902f3
Allow EV yields for gen1/2 untrained
...
abusing daycare
https://projectpokemon.org/home/forums/topic/41788-pk2-gets-dinged-for-having-too-many-evs-at-starting-levelxp/
2017-10-07 08:23:05 -07:00
Kurt
c7dfc3d9b0
Cleanup
...
union / count usages
remove unnecessary stuff
2017-10-06 21:03:23 -07:00
Kurt
a816f4cea6
Misc event egg tweaks
...
Thanks Kirzi!
2017-10-05 23:13:48 -07:00
Kurt
059451d66e
misc tweaks
...
dictionary species check, max deviation beginnings for USUM
simplification for gen1/2 pokemonlists
2017-10-05 22:37:45 -07:00
Kurt
413cfddb6c
Misc tweaks
...
fix ranch pkm hacks being treated as valid (wrong severity)
fix xml docs relative to recent changes
move kata/hiragana charmapping to be like the Farfetch'd alias
{"'", 0xE0}, // Alias ' to ’ for Farfetch'd
{"’", 0xE0},
2017-10-04 17:21:51 -07:00
wwwwwwzx
384605b127
Misc gen1/gen2 fixes
...
- G1/G2 only have Hiragana letter he -> fixed Houndoom(ヘルガー) /Heracross (ヘラクロス) default name mismatch
- Fixed Stadium2 Farfetch'd move (Thrash -> Slash)
- Added VC Mew TID check
- Update Chinese legality strings
2017-10-04 00:14:50 -07:00
Kurt
b23658dee1
Misc tweaks
...
allow cute charm static encounters
ignore user-entry control types
2017-10-01 21:25:23 -07:00
Kurt
44c0b53852
Provide map for Z Crystals KeyItem->HeldItem
...
allows for loading sprites for the key items (they're smaller than the
key item but better than missingno sprite)
Closes #1504
2017-09-30 20:57:32 -07:00
Kurt
593f31ff02
hashset contains over array contains
...
faster++, reduces some linq ToArray() allocations
2017-09-30 14:08:35 -07:00
Kurt
3552e6396c
Move pidivmatches check outside secondary check
...
gen3/4 generators auto-defer bad PIDIVs to end, so no need to keep
skipping to the very end
2017-09-30 13:42:57 -07:00
Kurt
1e377c2963
interpolation++
...
no functional change (assumed)
2017-09-29 22:58:25 -07:00
Kurt
212a489335
Add gen6+ link trade egg edge case
...
slakoth with play rough with x/y version
why u modify game origin when hatched???
2017-09-28 17:11:30 -07:00
Kurt
a52f88dd5c
Add ice punch feraligatr non-relearn link gift move
...
Thanks cicciochiave!
2017-09-27 08:32:35 -07:00
Kurt
9699cdefae
Gen2 egg gift bypass fix
...
Gen4+ static encounter eggs could slide through the VC case
prevent empty moves from appearing before suggested moves (relearnbase
being empty)
2017-09-26 20:09:18 -07:00
Kurt
ccf9cd2284
Update japanese translation
...
Thanks smileynation!
2017-09-24 14:44:27 -07:00
Kurt
499126f9a4
Update gen1/2 move fetch
...
recent commit changed GetEncounterMoves to return 4 always rather than a
variable size array; double check the output for actual movecount
2017-09-24 12:39:12 -07:00
Kurt
1b354624b1
Korean move validation fixes
...
Korean g/s cannot access gen1 movesets, so pruning gen1 was necessary.
Rather than rebuilding the array (slow), just futureproof the entire
method to not rely on '7' (in case this code is ever used on Gen8).
2017-09-24 10:52:39 -07:00
Kurt
9ef2016d35
Encounter Learnset move duplication fix
...
a level 15/16 magmar has leer/smog twice in its learnset (at level 1 and
at actual levels); returning just the 4 previous learned moves at level
15/16 yields duplicates for Smog. [Smog, Leer, Fire Punch, Smog | Leer,
Ember]. By ignoring moves already added, the true movepool is acquired
also fix TradebackType getting overwritten at the end of the method (in
case of nontradeback like korean/egg)
2017-09-24 10:36:16 -07:00
Kurt
16341b4d91
Add SPA/ENG Oct16 Diancie collision handling
...
Card 0525 was accidentally uploaded without the 3 flawless IVs setting;
sometimes when the internal event binary is built, the 3IV card comes
before the 0IV.
Play favorites with the 0IV.
2017-09-23 17:11:19 -07:00
Kurt
d8c2cdb8e3
Use EnumerateFiles over GetFiles in some cases
...
https://msdn.microsoft.com/en-us/library/07wt70x2.aspx
iterating as an ienumerable (ie not consuming the whole collection) can
be more efficient by not waiting for the whole collection
2017-09-23 17:02:28 -07:00
Kurt
7974943bcf
Refactoring
...
slight simplification related to #1486
2017-09-23 16:24:22 -07:00
javierhimura
ea86032480
Comments and a fix for AllowGen2Crystal function
2017-09-23 21:00:57 +02:00
javierhimura
153206be6c
Merge remote-tracking branch 'remotes/kwsch/master' into VC1withVC2tradeback
2017-09-23 20:46:39 +02:00
javierhimura
f3743e490b
Korean language restrictions
...
Restriction happens because Korean can not trade with non-Korean GB era games
- There is no Korean release for gen 1 pokemon, included VC
- With no gen1 pokemon means any Korean gen2 is Gen2_NotTradeback, that means no gen1 origin nor moves are Legal
- Crystal was never released in Korean
- Pokemon Stadium 2 was never released in Korean, that means no move reminder for gen 2 korean pokemon
- Generation 4 can not trade between Korean and not Korean games, but Korean games can use the palpark with any language
Chinese language restrictions
There is no Chinese release for gen 1 and 2 pokemon games, VC Chinese games are in Japanese
2017-09-23 20:46:10 +02:00
Kurt
4a467fcf43
Fix gen5 HA checking for male only species
2017-09-23 07:58:55 -07:00
Kurt
756f9bb8dc
Allow gen7 ribbons on gen2 transfers
2017-09-23 07:54:31 -07:00
javierhimura
eda97f4b49
Do not allow gen2 preevolutions for VC1 pokemon in generation 7
2017-09-23 13:16:33 +02:00
javierhimura
f129701ee6
Do not allow gen2 evolutions in generation 2 for VC1 pokemon, gen2 preevolutions are allowed
2017-09-23 13:12:03 +02:00
javierhimura
efc60c3bf8
Change VC1 pokemon tradeback initial status to allow VC2 origin, there is no way to know if the pokemon was traded to gen7 after or before VC2 release
...
Do not allow gen1 evolutions for VC2 pokemon without gen1 evolutions or preevolutions
2017-09-23 12:58:46 +02:00
Kurt
6e579abfc3
Misc changes
...
* allow gen2 to have evolutions on gen1 when transferred to gen7
(Core.cs)
* handle korean strings on transfer slightly better (pk2.cs)
* auto-set johto location when changing game ID
* auto-detect VC saves (all have extensions with .dat)
Closes #1478 , thanks @NinFanBoyFTW !
2017-09-22 17:54:43 -07:00
Kurt
a21a70ee4c
Fix gen2->7 encounter move args
...
#1476
suicune water gun
2017-09-22 15:33:33 -07:00
Kurt
496da9e4ab
Add ranch ingame trades
...
debut of the long awaited EncounterTradePID class
gist to generate trades from folder (using LINQPad):
https://gist.github.com/kwsch/d778f1f63e4c393e5440dfb0e14cfcc3
Closes #1458 , although Mew/Phione's PIDIV method is unknown.
2017-09-20 21:28:29 -07:00
Kurt
69e8c071f7
Misc tweaks (apostrophe & vc2 pre)
...
farfetch'd apostrophe mapping disabled for gen5 and prior
Closes #1474
flag gen2 new moves as not obtainable if transferred from RBY (VC1) as
they must be removed before transferring 2->1.
2017-09-20 16:19:50 -07:00
Kurt
7b6d393b2f
Add Hong Kong to Taiwan countries list
...
Closes #1473
2017-09-20 15:18:33 -07:00
Kurt
1149845db5
Misc database fixes
...
Initialize move array for WC3 if none are present
Closes #1472
More gracefully handle invalid version pkms in a given format (gen5
origin version pkm on gen4 format no longer throws an exception).
2017-09-20 09:04:30 -07:00
Kurt
b63e53af95
misc tweaks
...
no functional changes
2017-09-19 23:19:22 -07:00
Kurt
ddb496692d
Fix yellow starter pikachu catch rate check
...
Closes #1470
2017-09-19 22:55:05 -07:00
Kurt
c23cc81212
More usum prep
...
I think egg hatch location checking is wrong for traded eggs (see gen3
vs future games, origin game shouldn't change but could hatch ORAS egg
on XY at XY location?)
2017-09-19 21:35:30 -07:00
Kurt
772f7d9d87
Add gen3 fateful bypass
...
no flagging that it's missing (via ingame clearing), implying that it
was traded to RS to hatch.
Thanks @kamronbatman !
Closes #1469
2017-09-19 19:18:13 -07:00
Kurt
6611e874c3
more usum prep
...
species added requires the 'latest personal table' reference to be
USUM's; the other referencs for .SM are fine as there's no possibility
to have a species ID high enough for it to matter.
2017-09-18 22:36:06 -07:00
Kurt
ad69420ad9
Update gen5 shiny PID generating
...
Closes #1460
https://pastebin.com/GgcMjmwd
2017-09-17 14:43:28 -07:00
Kurt
eafc28422e
Misc gen4 handling updates
...
Cross-game trading for egg locations (duh)
Volt Tackle AND Fakeout pikachu from yellow forest
Nidoran fullwidth handling in gen4
Thanks Britty!
https://projectpokemon.org/home/forums/topic/41407-pkhex-legality-errors-on-gen-6-updated/?do=findComment&comment=220094
Replicate gen4's string setter for the bigendian variant
2017-09-16 09:58:06 -07:00
Kurt
aa3393e5b2
Misc languageID legality checking update
...
Checks for max language ID on transferred pkm (gen5 pkm on gen7 can't
have CHS/CHT etc)
handles edge case for JPN B/W ingame trades
update pk5->pk6 transfer logic to bump langID 0 to 1.
Thanks HaxAras & Britty for providing samples!
2017-09-15 17:43:31 -07:00
Kurt
5665481cab
Reduce machoke trade minlvl gen1
...
Thanks Mewtwo!
https://projectpokemon.org/home/forums/topic/41636-ricky-machamp-unable-to-match-encounter
https://bulbapedia.bulbagarden.net/wiki/Kanto_Safari_Zone
2017-09-15 06:42:00 -07:00
Kurt
387d9375c3
Refactor split gender breeding logic
...
Inherit Levelup moves & hidden ability (gen5) issues addressed
2017-09-14 18:52:34 -07:00
Kurt
c55b3df939
Add nyx antishiny pidiv detection
...
( ͡° ͜ʖ ͡°)
2017-09-12 00:27:16 -07:00
Kurt
4f9dc69504
misc kor improvements
...
pk2 objects now detect if they are korean or not
2017-09-10 22:30:41 -07:00
Kurt
1769bcd306
Add no-deferred early break for gen3
...
c627a86f
said it added for both 3 & 4, but was only added for gen4.
2017-09-09 19:27:28 -07:00
Kurt
09bbd57eb7
Fix grammar of new lc strings
...
thanks @sora10pls !
2017-09-08 09:01:46 -07:00
Kurt
4b83fdbe2c
Add preliminary VC2 legality checking
...
Surprisingly easy to toggle on
If VC, provide possible version the encounter was matched to (to
indicate GS vs RBY).
2017-09-07 23:53:12 -07:00
Kurt
e517b45e51
Add GSC version IDs (supposed)
...
This is speculation and for preparation purposes only
2017-09-07 23:38:57 -07:00
Kurt
fd2da22d3a
Update PKMConverter internals
...
[insert lenny face here]
2017-09-07 23:18:04 -07:00
Kurt
ddf55ee75a
Improve gen1/2 invalid string detection
...
also spit out recommended TID/SID for c/xd starters
Closes #1443
2017-09-07 21:42:05 -07:00
Kurt
311ea4bc50
Refactoring
...
relocate memory type detection tables out of MemoryAmie editor
remove casting reference to get text (invalid memories no longer throw
exceptions)
2017-09-07 17:46:21 -07:00
Kurt
c3043b05e3
Staravia->Starly dream ball inheritance
...
Closes #1445
2017-09-06 21:18:22 -07:00
Kurt
f78e017e47
Fix GSC table loading
...
Was ignoring G/S slots (only had crystal) thus some special G/S
encounters (underleveled examples being Magmar lvl14) were not
recognized.
Thanks HaxAras!
https://projectpokemon.org/forums/forums/topic/41579-pokemon-silver-under-leveled-pokemon-flagged-as-illegal/
2017-09-06 20:03:36 -07:00
Kurt
423be8b2c0
Add VC1 tradeback shiny check
...
tradeback implies it was transferred to GS for a bit, thus had to be
transported with the new transporter
2017-09-06 20:02:41 -07:00
Kurt
cbda637981
Remove old (GF fixed) shiny correlation
...
Transporter was updated
2017-09-06 09:12:56 -07:00
Kurt
d3ebbffb79
Add wordfilter legality checking
...
WordFilter checking is enabled by default, and is absolutely slow (regex
checking 3,800 patterns for 3 different strings). Utilize a dictionary
to store previously computed values. Seems to alleviate the massive
slow-down.
Closes #1442
2017-09-05 23:31:24 -07:00
Kurt
b948f27646
Add wordfilter
...
#1442
2017-09-05 22:57:45 -07:00
Kurt
973675b6c4
Handle bad evolution table data edge case
...
for whatever reason, slowpoke's gen7 data -> slowking didn't clear the
level to 0; so handle the edge case by sanity checking
2017-09-05 22:11:52 -07:00
Kurt
76ff629006
Flag invalid nsparkle
...
previously would only flag if it was missing on npokemon
also fix gen5 traded egg locations
move egg ribbon verification to the new class
2017-09-05 20:32:07 -07:00
Kurt
47ca69f92b
Legality edge case fixes
...
Some incorrect IDs, some additions (unbreedable hidden abilities in
genV)
https://projectpokemon.org/forums/forums/topic/41407-pkhex-legality-errors-on-gen-6-updated/?tab=comments#comment-219459
2017-09-05 18:28:38 -07:00
Kurt
c98b0ab0b3
Refactoring
...
Split some large methods into smaller pieces
2017-09-04 18:55:15 -07:00
Kurt
6fe926d1f6
Refactoring
...
readability++
2017-09-04 13:48:10 -07:00
Kurt
0b4e6a0733
Refactoring
...
relocate ribbon checks/class to more focused location
reduce amount of GenNumber checks (use stored Generation value instead)
2017-09-03 19:51:29 -07:00
Kurt
9f8cbf3e46
Add more usum prep
...
Closes #1438 ; SM evo table wasn't being loaded as the gameversion was
changed to USUM.
Will see if there's any evo changes soon!
2017-09-02 08:41:36 -07:00
Kurt
6589869b35
More refactoring
...
simplify some expressions, reduce repeat operations
2017-09-01 23:45:47 -07:00
Kurt
d1aa02fb31
Refactoring
...
split up current move parsing a little
2017-09-01 23:15:57 -07:00
Kurt
84c90e973e
usum prep
...
Copied binaries from sm, references set up for saving time later
I assume not much will change in terms of structures, so it should just
be a file replacement & filling in static encounter table => 'working'
legality checks
2017-08-31 22:37:28 -07:00
Kurt
578ab137e2
Refactoring
...
Flag Korean Ranger Manaphy (never distributed)
extract pk1 catch rate verification
2017-08-30 21:30:07 -07:00
Kurt
4c0a2602eb
Simplify greninja gift check
...
form is already checked in the encounter generator, so the only case
where it has not been thoroughly checked is if it is not a mystery gift.
it will always be the default form (in that case).
2017-08-30 08:14:42 -07:00
Kurt
d5e5a463dc
Refactor order of pidiv checks
...
collision between mgshiny and cutecharm shinies
Closes #1435
2017-08-29 08:32:22 -07:00
Kurt
a314ebfbd3
Add pokewalker early return check
...
check the middle bits for signs of pokewalker origins
can either be regular or adjusted underflow style
saves a little bit of computation time by not computing compatibility
for obvious non-matches
2017-08-28 23:40:04 -07:00
Kurt
072f1ba83d
Refactor level-evolution checks slightly
...
Allows evolution met level check to be skipped
Adds minimum level constraint for evolution chain generating
Closes #1430
also adds deferral to the gen3 encounter generator as encounterstatic
gifts can collide with wild encounters when transferred
2017-08-28 18:12:57 -07:00