Kurt
13ee3745f2
Remove some unecessary setter requirements
2020-08-30 15:44:13 -07:00
Kurt
1bc7994137
Remove usage of linq for duplicate count
...
Check successive move slots after the current index rather than doing a count eq >= 2.
Flag all empty slots prior to a filled move slot, rather than flagging a full slot as invalid because "empty move".
2020-08-30 15:43:29 -07:00
Kurt
81a693bafe
Make Generation property get-only per class
...
don't need to store an int since it's a const-per-class
2020-08-30 15:35:59 -07:00
Kurt
ce5897ff94
Move version value from Slot to Area to reduce member size & value passing
...
Restrict some setters to protected only
2020-08-30 11:08:21 -07:00
Kurt
6ee7a8724b
Offload EncounterSlot loading logic to reduce complexity ( #2980 )
...
* Rework gen1 slot loading
Slot templates are precomputed from ROM data and just loaded straight in, with tight coupling to the encounter area (grouped by slot types).
* Revise fuzzy met check for underleveled wild evos
Example: Level 23 poliwhirl in RBY as a level 50 poliwhirl, will assume the chain is 25-50 for poliwhirl (as poliwag evolves at 25). Instead of revising the origin chain, just ignore the evo min level in the comparison.
Previous commit fixed it for gen1.
* Rework gen2-4 slot loading
Gen4 not finished, Type Encounter data and some edge encounters not recognizing yet...
* Add feebas slots for old/good encounters
* Begin moving properties
Great news! Gen5-7 need to be de-dumbed like Gen1-4.
Then I can remove the bang (!) on the Area accessor and ensure that it's never null!
* Split off XD pokespot slot encounter table type
* Set area in constructor
* Deduplicate g3 roaming encounters
* Deduplicate xd encounter locations (rebattle)
Only difference is met location; no need to create 500 extra encounter objects. A simple contains check is ok (rarely in gen3 format).
* Make all slots have a readonly reference to their parent area
* Minor clean
* Remove "Safari" slot type flag
Can be determined via other means (generation-location), allows us to reduce the size of SlotType member to a byte
Output of slot binaries didn't preserve the Safari flag anyway.
* Update SlotType.cs
* Handle type encounters correctly
* Merge safari area into regular xy area
* Merge dexnav accessor logic
* fix some logic so that tests pass again
rearrange g5 dw init to be done outside of static constructor (initializer instead)
PIDGenerator: friend safari slots now generate with required flawless IV count
* Add cianwood tentacool gift encounter
* Remove unnecessary abstractions
Fake area just returned a slot; since Slots have a non-null reference to the area, we can just return the slot and use the API to grab a list of possible slots for the chain.
Increase restrictiveness of location/type get-set operations
* Minor tweaks, pass parameters
DexNav observed state isn't necessary to use, only need to see if it's possible to dexnav. Now that we have metadata for slots, we can.
* Remove unused legality tables
2020-08-30 10:23:22 -07:00
Kurt
c1bc371d76
Update EncounterGenerator.cs
2020-08-29 23:50:59 -07:00
Kurt
816f35d042
Split file
2020-08-22 11:59:43 -07:00
Kurt
a62324a5a1
Refactoring some IEncounterable-type'd object initialization and original-generation evo chain ( #2974 )
2020-08-21 16:35:49 -07:00
Kurt
adb55c9e7b
Make CanToggleGigantamax have a form argument
...
no more meowth-1/2 and or perrserker
Closes #2973
2020-08-16 23:06:49 -07:00
Kurt
12d9397c8c
Split GO from "GG" gameversion
...
Make Gen7b as the combined ver for that expression
2020-08-06 18:24:20 -07:00
Lusamine
f611d0b780
pika pi ( #2960 )
2020-08-05 19:10:35 -07:00
Kurt
ad6728fb5c
Minor tweaks
...
Check egg encounter for state rather than re-deriving some properties on the fly
Only check memories if memories are exposed
Remove debug assert (not always true?)
2020-08-04 22:56:55 -07:00
Kurt
497639d48e
7/31 distribution raids
2020-07-31 18:13:29 -07:00
Kurt
e84ce77008
Split memories from main pkm class to interface
...
pk6/7/8, not pb7
2020-07-31 17:25:14 -07:00
Kurt
b7211000b0
Split Country/Region/ConsoleRegion from ITrainerInfo
...
Only present in mainline gen6/7 game pairs, so it's not wise to have it for all games
2020-07-31 13:53:42 -07:00
Kurt
36684ab867
Minor clean
...
Simplify some expressions
2020-07-31 11:20:48 -07:00
Kurt
27f15d2f20
Split Country/Region/ConsoleRegion to interface
2020-07-31 11:17:31 -07:00
Kurt
05ac8acb5f
Phenac City Hexagon Brothers rebattle
...
Closes #2951
2020-07-29 13:45:33 -07:00
Kurt
7bd36ca0c8
Minor clean
...
Fix xmldoc, revert ??= because whatever nullable logic plugin I have isn't detecting this right
2020-07-26 08:54:52 -07:00
Matt
3a02bf457f
Update GO minimum Level requirements ( #2953 )
...
GO Fest 2020 made Alolan Marowak available in wild spawns, and further testing has proved that Raid/Research PKM can be downleveled to 15 after trading to low-level accounts.
This'll probably end up being deprecated in the future when we have GO->HOME transfer checks, in addition to IV checking.
2020-07-26 08:27:21 -07:00
Kurt
d3863f9c63
Minor tweaks
...
verify relearn: move split check before method call
movelist: don't capture pkm in local method; meowstic ID
pkm: flip argument for easier understanding
2020-07-19 18:30:46 -05:00
Kurt
a6a3c6eaaa
Refactoring
...
change some expressions for better perf/readability
2020-07-19 17:48:45 -05:00
Kurt
40ce63873d
Reduce gen1 encounter legality startup alloc by 5KB
...
Use precomputed counts to remove the need to store a cache of read values
rename some variables in ReadSlots1FishingYellow
2020-07-19 14:08:56 -05:00
Kurt
eb7ed44b29
Finish splitting gen1/2 encounter types from parent class
...
Results in a little more code, but each path is less tangled
simplify some expressions
remove RBDragonair content in favor of a strict filter for catch rate
Move gen1 trade trainer names to stringconverter, since pk1/pk2 shouldn't refer to legality classes
2020-07-19 13:32:40 -05:00
Kurt
35435b539e
Refactoring
...
move some logic around
2020-07-18 21:51:38 -05:00
Kurt
085889d419
Pass evolution to trade match check
2020-07-18 21:50:28 -05:00
Kurt
705822c965
Abstract some gen1/2 encounter types from their parent class
2020-07-18 15:36:30 -05:00
Kurt
8fae396b76
Inject matching dexlevel for form comparison
2020-07-18 13:29:16 -05:00
Kurt
1ecafd8db3
Update Encounters8NestDist.cs
...
Puts the new encounters in the correct array; the new encounters should now be recognized on the other game version.
2020-07-17 12:18:28 -05:00
Kurt
8c52932bbe
Under da sea
...
did they just give up on version exclusive raids?
get yo shiny wailord
2020-07-16 21:18:37 -05:00
Kurt
ea609d43a5
Move soup to gmax class (extension methods), fix home gmax starters
...
Directly accessing CanEatMaxSoup is now forbidden :)
Fixes home galar starters being flagged when gmax-final evos
2020-07-16 21:04:27 -05:00
Kurt
4d3fd395e1
Add bypass for DP rotom, skip splitbreed if chain doesn't have splitbreed
2020-07-13 22:30:20 -05:00
Kurt
e04b96a9b3
Fix dizzy punch egg recognition & gen2 hatch conter verification
...
Closes #2939
Fixes #2938
Inline some logic where appropriate for egg levels
2020-07-12 20:58:07 -05:00
Kurt
53e2432818
Fix gen2 egg species get
...
feraligatr isn't in gen8 evolution table yet
Closes #2937
2020-07-11 11:40:20 -05:00
Lusamine
fdfa10e881
Add a few static/crossover encounters ( #2932 )
2020-07-08 22:59:08 -05:00
Matt
fa7c8929b1
Update SWSH enc binaries, fix Rotom form/move issues ( #2927 )
...
Some zone names were mislabeled in pkNX -- Staryu are not scripted encounters!
Remove altform specific moves from distro/static Rotom, which would erroneously allow illegal mismatches (e.g. Hydro Pump Rotom-1); thanks Abyzab (Discord)!
2020-07-05 11:45:53 -05:00
Lusamine
39040358c1
Add a Whiscash ( #2921 )
2020-07-03 14:31:19 -05:00
Kurt
e207031920
Shuckle Magic Coat -> Encore
...
Nice typo! Ty sora10pls(matt) & too salty (via discord)
2020-07-03 10:48:31 -05:00
Kurt
0198179133
Add fixed raid news content
...
no change in species/form from the crownite ore one afaik; common for both games???
fix type of rigel encount so it shows up in block editor, with correct name (ty matt)
2020-06-29 21:10:12 -05:00
Kurt
993673f0de
Minor clean
...
no functional change
2020-06-27 23:36:53 -05:00
Kurt
3138fb20c6
Refactor some method signatures
...
vs -> chain (clarity on what it is; an evolution chain, rather than e.v.o.s - vs)
Clamp origin chain for transferred where we can use the max origin level
2020-06-27 22:18:29 -05:00
Kurt
065c1cc6d4
Specify version on all defined wc3
...
rearrange some setters for visual appearances
Closes #2904
2020-06-27 14:21:45 -05:00
Kurt
d2ef98f7d4
Add underground staryu encounters
...
not in any of our dumps, like crabrawler?
why gf
Closes #2913
2020-06-27 13:56:29 -05:00
Kurt
294d861f86
Set StatNature on IEncounterable->PKM
...
Mystery Gift formats already set it appropriately in their individual implementations
Closes #2901
2020-06-27 11:46:23 -05:00
Lusamine
565c9a590e
Add some cross boundary encounters ( #2910 )
2020-06-26 23:31:23 -05:00
Matt
3f09afd4cb
Update TradeGift_R1 ( #2909 )
...
Both games have a pair of version exclusive trades on The Isle of Armor, as noted on Bulbapedia.
2020-06-26 11:00:45 -05:00
Kurt
ce5a09055a
Merge branch 'master' of https://github.com/kwsch/PKHeX
2020-06-24 18:59:30 -05:00
Kurt
1ae9cb7602
Handle pika/meow soup evolutions
...
Can lose gmax flag if its current species is able to eat soup, or its origin species could eat soup
this handles stuff like charmander->charizard, as charmeleon would not pass
hopefully there's never a mid-stage evo that has a gmax form, and its final evo doesn't... (don't get any ideas, gamefreak)
2020-06-24 18:59:26 -05:00
Lusamine
bc1538efa5
Add some IoA cross-boundary encounters ( #2902 )
2020-06-24 07:34:26 -05:00
Archit Date
fd48938c8e
fix encounter criteria ability via number ( #2898 )
2020-06-22 22:41:15 -05:00
Kurt
a2d9f06350
Differentiate AbilityType from AbilityNumber
...
invert ability index favoring so that the first ability index is most favored
ability num:
-1=>0/1/2
0=>0/1,
1=>0
2 =>1
4=>2
Ability Type:
0,1,2=>0,1,2
3=>0/1
4=>0/1/2
Should probably get rid of AbilityNumber definition usage but it's so entwined in the trade/static definitions...
2020-06-22 22:01:42 -05:00
Kurt
93308ca4ae
Account for losing/gaining gmax for comparison
...
Don't defer for static, and don't skip for WC8
skip home gifts with player OT when SID7 not 0 (all home OTs have 6digit TID and 0 SID)
2020-06-22 21:29:21 -05:00
Matt
dcb5c1e936
Update IsMatchLocation to allow Isle of Armor Dens ( #2895 )
2020-06-22 10:07:50 -05:00
Kurt
6fb2ebe039
Minor clean
...
add some xmldoc
2020-06-21 19:46:06 -05:00
Kurt
7e69202669
Use criteria for getting ability
2020-06-21 18:16:34 -05:00
Kurt
fc4ba1df35
Bounds check ability requested
...
no longer exception's on RefreshAbility(negative number)
2020-06-21 18:16:18 -05:00
Abyzab
a797459543
Additional Cross Boundary Edge Cases ( #2891 )
...
* Additional Cross Boundary Edge Cases
The static spawn point right outside Brawlers' cave, all of the pokemon are able to chase the player into the cave and be caught
https://cdn.discordapp.com/attachments/401014193211441161/724112694088695918/a0f06577821f60edf119308675de7894.png
https://cdn.discordapp.com/attachments/401014193211441161/724117077698281502/JPEG_20200621_002242.jpg
Unsure if there were more that spawn in this point that have the same behaviour, but these were the ones I found (w/ Ano0onymouse
for Shield ones)
2020-06-21 09:33:29 -05:00
Kurt
523f101c82
Add barraskewda location
...
Closes #2889
Co-Authored-By: Abyzab <abyzab@users.noreply.github.com>
2020-06-20 20:26:54 -05:00
Kurt
645db23706
Extract EvoBase and MoveList from Core
...
These are really old bloated parts of the original legality checking logic; separating for now to rewrite.
2020-06-20 19:44:05 -05:00
Kurt
4c7c6532bb
Check ability deferral with more scrutiny
2020-06-20 13:14:44 -05:00
Kurt
eedaca8712
Fix mistake
...
oops lol
2020-06-20 12:09:03 -05:00
Kurt
8f24477197
Weezing ingame trade can be any ability
2020-06-20 11:37:37 -05:00
ReignOfComputer
2e584f43fc
Additional Statics ( #2883 )
2020-06-20 07:51:04 -05:00
Kurt
36dd5ece21
Initial Isle of Armor support
...
Co-Authored-By: sciresm <sciresm@users.noreply.github.com>
Co-Authored-By: Matt <sora10pls@users.noreply.github.com>
Co-Authored-By: Archit Date <architdate@gmail.com>
2020-06-19 18:51:15 -05:00
Kurt
2cdb5d26db
Clean up some method signatures
...
rename things to be a little more consistent in naming conventions
2020-06-16 21:46:22 -05:00
Kurt
f7d2101500
Update Encounters8NestDist.cs
2020-06-06 09:53:14 -07:00
Kurt
9b89ee09ec
Fix downlevel comparison
...
(for good? pls)
https://i.redd.it/7g2c4d3kisc41.png
ty anubis
remove GetMinimalLevel override, as it's doing the same thing as LevelMin. When regenerating the pkm, we aren't doing anything downlevel related.
2020-06-06 09:00:52 -07:00
Kurt
3af369c152
★Sgr6879 (Copperajah)
2020-06-05 07:31:40 -07:00
Kurt
321a2d120f
Add new distribution raids
...
Add Copperajah crystal (commented); uncomment when released?
2020-06-02 07:09:49 -07:00
Kurt
16c9865505
Update EncounterStatic8N.cs
2020-06-01 14:07:26 -07:00
Kurt
5c0d6d0f31
Extract downlevel check for reuse; clamp edge moves to max raid lvl
2020-05-31 13:28:14 -07:00
Kurt
3fcb29e68a
Remove some reliance on GenNumber
2020-05-31 12:12:48 -07:00
Kurt
6aab8ca449
Minor renaming/type change of passed args
...
Next commit will have more changes where we remove some reliance on PKM.GenNumber, in favor of the passed encounter's generation
2020-05-31 12:12:07 -07:00
Kurt
afa368823e
Minor clean
...
handle some compiler messages
2020-05-26 16:59:47 -07:00
Matt
9b6190a3e9
Add Gigantamax Meowth Distribution Raids ( #2842 )
2020-05-25 17:39:07 -07:00
Kurt
d8cd75908b
Handle gen2 gift egg collision with low hatch cycle req
...
Closes #2824
ty @KR1dude !
change miscverifier to use OT_Friendship instead of CurrentFriendship.
2020-05-24 10:46:08 -07:00
Kurt
4a5a913142
Handle downleveled cases correctly
...
Downleveled shared nest can't go below 20
Downleveled self nest can only happen for 1 or 3 badges and certain star counts, and the result can't be shiny
2020-05-23 22:17:47 -07:00
Kurt
0cdc225224
Kecleon: Comment out static in favor of dexnav encounterslot
...
Encounter Generator stops yielding if anything was yielded (assumes things that are static encounters can't have anything else that would match).
DexNav boosts the wild level (from 25/27) up to the same level 30 of the static encounter.
Thanks @KR1dude !
Co-Authored-By: KR1dude <kr1dude@users.noreply.github.com>
2020-05-20 18:24:55 -07:00
Kurt
6970c3a5fb
Remove IVersion.set property, as separate interface
...
I don't want people to mutate IEncounterable.Version; it's only intended to be set on-load
2020-05-19 21:46:05 -07:00
Kurt
301350d32b
Make IEncounterable expose IVersion get
2020-05-19 21:07:30 -07:00
Kurt
232a9de32e
Add gmax ev
2020-05-18 17:04:31 -07:00
Kurt
6164884700
Merge IGeneration into IEncounterable
...
all but egg exposed it; now, just make egg expose it and remove the unnecessary interface
we still need to Set generation for non-eggs/mgift, so have a separate Settable interface for internal purposes.
2020-05-17 12:32:28 -07:00
Kurt
1b5292cb04
append shared egg-moves rather than early return
...
dl[0].Species is the same as pk.Species; more clear && array access might be slower
only append shared egg moves if shared egg moves exist
2020-05-15 22:49:11 -07:00
Kurt
c8a141534c
make enc move gen tree fetch non-pkm specific
...
just need to get all evo chains possible
fetching a GO leafeon, need to reverse leafeon->eevee, but the LGPE evo chains don't know about leafeon
works fine now
2020-05-15 21:59:06 -07:00
Kurt
3210ced006
Add new gmax-pikachu distribution details
...
can be shiny
can be any ability
still can't evolve
can't wait for gmax-eevee when this bcat expires ;)
2020-05-11 17:17:27 -07:00
Kurt
67b19f7244
Update Encounters8NestDist.cs
...
Bye bye invalid drilbur, nice meme GF
The first rotom2 in Shield had its moves changed too. Keep that rotom-2 since Discharge can't be learned at that level.
since sw and sh have the same drilbur, it moves from sw -> common.
2020-04-28 11:36:03 -07:00
Kurt
2e390573bc
Add new meta distribution raids
2020-04-27 17:44:36 -07:00
Kurt
913d2773bf
Pass form when form doesn't match encounter
...
This is still a horrible hack, needs to be done similar to encounter slots
handle the galar NFE formchange cases
2020-04-23 20:53:57 -07:00
Kurt
b8814d2448
Split GG into LGPE (GP/GE), GG (LGPE||GO)
...
Update usages
2020-04-16 12:48:18 -07:00
Kurt
a9a748e82d
Update EncounterTradeGenerator.cs
2020-04-16 11:06:54 -07:00
Kurt
ba30f33045
Update EncounterStatic.cs
...
Closes #2810
2020-04-16 09:30:20 -07:00
Kurt
9b56eef821
Add deferral case for shiny type
2020-04-15 18:30:29 -07:00
Kurt
0ada4cbd77
Remove some unnecessary null checks
2020-04-12 13:20:40 -07:00
Kurt
30d21e4532
Extract out showdown set interface
2020-04-12 13:05:29 -07:00
Kurt
a94c754c3f
More shedinja edge cases
...
Don't allow shedinja evolution moves if it wasn't evolved in that generation
2020-04-12 11:28:03 -07:00
Kurt
2e0aba55b2
Add Easter distribution raids
...
No difference in sword exclusives
2020-04-09 23:04:29 -07:00
Kurt
270d984130
Minor clean
...
Remove unnecessary null checks
Mark some methods with nullable type
2020-04-04 19:30:50 -07:00
Matt
f7a83dea2c
Force Ability 1 for SWSH Gift Charmander ( #2800 )
...
As per new findings with latest commit of pkNX: 5016baf9ea
2020-03-27 17:47:13 -07:00
Kurt
d73457a395
Update Encounters8NestDist.cs
2020-03-26 08:40:16 -07:00
Kurt
84abc04d07
3/25 Wild Area News
...
Restrict abilities for crystal raids (corviknight always hidden, everything else can be anything-except-hidden).
2020-03-25 19:02:09 -07:00
Kurt
a7026236cc
Fix order of operations
...
underflow behavior is desired; (uint)(10-15/10) results in zero
2020-03-25 14:37:41 -07:00
Kurt
f4952faa6f
Add zh2 trade localization
...
ye it's different from the zh strings, resulting in different nick/OT
ty @Lusamine !
add another gyarados location while we're here
2020-03-21 10:48:26 -07:00
Kurt
aaf6642d31
Rename Data -> BinLinker
2020-03-20 15:18:59 -07:00
Kurt
799e4852cf
Minor clean
2020-03-20 13:33:15 -07:00
Kurt
dbfcef2efe
Move files to group subfolder
2020-03-20 12:13:37 -07:00
Kurt
61cbf04c2e
Fix comparison to watchtower, not wild area
...
unshuffle the IVs for comparison, oops
2020-03-19 21:04:17 -07:00
Kurt
a188317e84
Add another diggersby location
...
ty @Lusamine
2020-03-19 20:50:58 -07:00
Kurt
093586bb69
Update Encounters8NestDist.cs
2020-03-18 22:23:21 -07:00
Kurt
d06949bdb3
Update min level clamps, actually compare req PID
...
Closes #2787
The commit a couple days ago added the missing minimum level restrictions; community documentation was slightly misleading but we should be good now.
The PID check was nonfunctional (compared A==A or A==A*), rather than actually checking the fixed PID.
Co-Authored-By: feralfalcon <feralfalcon@users.noreply.github.com>
2020-03-18 12:23:09 -07:00
Matt
d004389a3e
Update Gen 4 trade min levels ( #2769 )
...
Eggs hatch at Lv. 1 in Gen 4, and some other Species can be found in the wild at Levels lower than their intended evolution requirement.
Closes #2768
2020-03-16 18:14:22 -07:00
Kurt
94d8125574
Split up Friend Safari checks & generator
...
removes one GetEnumerator call for non-fsafari encounters
2020-03-14 11:32:27 -07:00
Kurt
6a5bf02126
Add min levels for trades
...
Make PIDs readonly for trades
Clone FR/LG Lickitung (different min levels)
2020-03-13 21:39:35 -07:00
Kurt
6f0c3c1205
Add 3 more met locations
...
Co-Authored-By: Lusamine <lusamine@users.noreply.github.com>
2020-03-12 20:36:31 -07:00
Kurt
fbd533092d
Fix misspelling of the word "Received"
...
Closes #2757
Co-Authored-By: pi1024e <pi1024e@users.noreply.github.com>
2020-03-12 15:05:34 -07:00
Kurt
1c2d9cf84c
Add another Lanturn location, level 38 Corviknight
...
Yay using bots to collect encounter data from players around the world :P
Co-Authored-By: Lusamine <lusamine@users.noreply.github.com>
2020-03-11 16:38:04 -07:00
Kurt
093ce2a020
Add ★And337 4-Star Gigantamax Corviknight
2020-03-08 17:20:00 -07:00
Kurt
e2c579fbbc
3/8 - Gengar/Machamp nests
...
New? Dynamax Crystal: ★And337 - 4-Star Gigantamax Corviknight ???
2020-03-08 17:14:20 -07:00
Kurt
ed02f39224
Use another overload
...
Co-Authored-By: Archit Date <architdate@gmail.com>
2020-03-04 22:31:07 -08:00
Kurt
b831d52b79
not capturable
...
gotta drip feed content -- tease ppl to migrate from prior games ($$$)
2020-02-26 17:16:52 -08:00
Kurt
283b7a353b
Add mewtwo raids
...
Mewtwo encounter has been added; awaiting confirmation that it can be captured (assumed yes)
Gen1 starters can be captured in beast ball in gen7 (scan), so nothing changes for ball legality.
2020-02-26 17:03:53 -08:00
Kurt
549e6f616b
allow shared eggmoves on format
2020-02-22 23:27:47 -08:00
Kurt
509e2f1fa3
Handle more evolution/form checks
...
Closes #2726
1. Add variant evolutions to form-match cases
2. Ban LGPE origin alolan raichu
3. Add egg form check for unavailable regional forms
4. Previous commit fixed mew (remove ribbon interface from WB7)
Co-Authored-By: Matt <sora10pls@users.noreply.github.com>
2020-02-20 22:11:48 -08:00
Kurt
15121c2945
Fix shared egg moves for non-galar origin
...
Use the private method; we already know the gen and that the egg moves are permitted
Relocate method to MoveEgg
2020-02-16 19:47:57 -08:00
Kurt
f48a11f013
add 2/17 raids
...
milcery gone, toxel appears
2020-02-16 17:02:53 -08:00
Kurt
87bb4c4138
Add more met locations
...
https: //projectpokemon.org/home/forums/topic/56227-bug-missing-game-encounter-affecting-legality-status/
Co-Authored-By: pp-theslayer <pp-theslayer@users.noreply.github.com>
2020-02-11 20:50:26 -08:00
Kurt
ebf20d927b
More transfer implications
...
Totems are downsized to regular
araquanid, togedemaru, and ribombee totems can't transfer (at the moment)
2020-02-11 20:11:33 -08:00
Kurt
cb5d8186fd
Defer formargument for raids
...
Closes #2693
Account for runerigus too, if they ever have a den for it ;)
Co-Authored-By: crzyc <crzyc@users.noreply.github.com>
2020-02-09 15:04:45 -08:00
Kurt
e9e1e5e166
Fix encounter find for passed egg moves
...
https://projectpokemon.org/home/forums/topic/56188-encounter-database-froslass-error/
2020-02-08 13:36:37 -08:00
Kurt
29258ca501
Add tox nests
2020-02-06 17:11:39 -08:00
Kurt
d3d6225a73
Fix unown ?! order
...
Closes #2683
ty @Kermalis !
2020-02-04 19:03:55 -08:00
Kurt
222d95e742
Add bridge field loc for nest35
...
https://projectpokemon.org/home/forums/topic/56154-illegal-theivul/
2020-02-01 21:45:33 -08:00
Kurt
774dec5123
Add milcery distro nests
2020-01-30 16:44:51 -08:00
Kurt
dd07126d83
Relocate level suggestions to EncounterSuggestion
2020-01-28 16:21:38 -08:00
Kurt
3111a8dc62
Cast the array a little safer
...
bad hacks with invalid future gen evolutions yield no evolution data, which results in empty arrays.
2020-01-26 23:58:14 -08:00
Kurt
ffa70e7626
Move files
...
no functional change, just putting stuff in a more appropriate folder
2020-01-25 17:22:20 -08:00
Kurt
9c28ffacc0
Simplify N's pkm encounter handling
...
Readonly PID; sparkle is True always, so it's a const instead of a mutable property.
2020-01-25 12:31:56 -08:00
Kurt
7a7358d0e5
Flag g4 bad met locations for hatched eggs
...
Traded eggs in gen4 can have from any game (since version isn't updated on hatch).
Use the hashsets, and remove the incorrect array. The incorrect array allowed stuff like Pokéwalker to be a "valid met location", hah.
2020-01-25 12:19:59 -08:00
Kurt
94eee74e5c
Add another rhydon lvl 46 loc
...
Ty @slp32 for reporting in #2633 , && anubis (discord) for finding the actual level without being asked /s
2020-01-24 17:56:42 -08:00
Kurt
5be9c6bcc8
Remove unnecessary null handling
...
objects are no longer null
2020-01-20 23:32:05 -08:00
Egzon
1a3d8b1fab
Fix Seedot and Nuzleaf swarm moves ( #2648 )
2020-01-20 14:31:59 -08:00
Kurt
63ea57436f
Make the template IV/contest stat array readonly
...
See prior commits
no longer need to clone subarrays, they're shared immutable
2020-01-18 19:11:29 -08:00
Kurt
843330a375
Remove unnecessary null checks
...
this is a null free project /s
dont provide null, else u deserve to get an exception
2020-01-18 16:57:25 -08:00
Kurt
8312c52cc1
Make Move[] readonly list
...
contract: don't modify the template movesets
mystery gift now exposes IRelearn, remove unnecessary type checks
2020-01-18 16:46:38 -08:00
Kurt
0cd9c47953
Make Relearn array for encounters readonly
...
No change em
2020-01-18 16:31:24 -08:00
Kurt
aecc08f65c
Remove duplicate electrode encounter
...
3IV requirement isn't required for wild slots that are also at the same level-location
Closes #2636
ty @dstevenson12 !
2020-01-14 18:39:25 -08:00
Kurt
f4162d2dce
Add another corviknight location
...
ty anubis
Closes #2633
2020-01-13 22:36:00 -08:00
Kurt
11978dab4f
Make pgt ranger manaphy IsEgg true
2020-01-12 23:00:32 -08:00
Kurt
81f280f4d1
Update EncounterSuggestion.cs
...
weaken legality check, we only check moves
2020-01-12 20:49:33 -08:00
Kurt
5a20dc707d
Rewrite encounter suggestions
...
Don't clone legality templates, and keep suggested information minimal -- this isn't automod
2020-01-12 19:40:36 -08:00
Kurt
eaeebea923
Remove another method shortcut
...
EncounterSuggestion needs a facelift anyway
2020-01-12 17:00:03 -08:00
Kurt
d5948b9dbe
Add relearn moves to Except comparison
...
Burn Up ho-oh is dumb
2020-01-12 16:09:35 -08:00
Kurt
48fd36a9a2
Handle g4 shedinja learn case too
...
change 291/292 to Shedinja/Ninjask for easy enum reference check
2020-01-12 14:34:29 -08:00
Kurt
61ecb52347
Remove unnecessary allocation
2020-01-12 12:06:33 -08:00
Kurt
0eca1bbd1c
g3 shedinja api usage fix
...
see comments in src for justification
need ninjask moves if gen3; dl.Count is guaranteed to be >= 1
2020-01-11 21:41:24 -08:00
Kurt
51d2fc9d93
Update with slowpoke-1/new raid data
...
TransferVerifier: Revise transfer check to allow slowpoke-1 (slowpoke-0 is flagged via next check)
2020-01-09 18:44:45 -08:00
Kurt
0dd4d1fe7a
Remove unnecessary casts
2020-01-06 17:50:18 -08:00
Kurt
3d581283c2
Minor clean
...
move Text.cs manual Courier new() to the designer, have it dispose when form is disposed. Set it as the numericupdown's font and just reuse that :)
2020-01-05 18:46:30 -08:00
Kurt
68e6644d40
Split off shared nest class, deduplicate logic
...
use generics to have shared logic in one spot
Handle downleveled distribution/crystal(soon?) data
2020-01-04 11:44:16 -08:00
Kurt
308e6fa291
Add temp workaround for version encounter fetch
...
PKX.Generation is 8, which returns SWSH evo tree; evo tree doesn't have
non-galar-native species data, so stuff like Ambipom don't get reversed
properly.
use math.max for tree fetch when appropriate:
- egg generator: pre-evolutions like pichu should be allowed if pk1
- don't fetch format twice, just do math.max
2020-01-04 11:14:25 -08:00
Kurt
15779513f5
Add stubs for raid correlation verifiers/generators
...
Not going to implement this within the base repo as z3 is too large of a
dependency and is platform specific.
If anyone wants to implement as a plugin project, just inject your new
methods via the setters on the static func/action at the top of the 3
classes.
Since z3's searches aren't instant, I'd recommend caching recent results
in a dictionary, as re-parses are common. Something like the Wordfilter
is what you'd be aiming for :)
Closes #2617
2020-01-03 20:03:04 -08:00
Kurt
0788780404
Add bewear motostoke crossover location
...
Closes #2619
2020-01-03 19:14:03 -08:00
Kurt
fe8e5e3fd9
Add more string search methods
...
exposes some common string search operations that can be useful for
parsing user entered data
2020-01-02 12:06:58 -08:00
Kurt
b55dc37e05
Extend some logic
...
make summary more accessible
2020-01-02 10:55:37 -08:00
Kurt
166f8d82e5
Misc clean
...
Refactor out some logic, make "en" literals reference one spot (where
appropriate)
2020-01-01 19:07:21 -08:00
Kurt
7e490b8dcc
Add lanturn/bronzong alt locations
...
Closes #2613
2019-12-31 21:47:28 -08:00
Kurt
14eae5f62d
Add magikarp distribution data
2019-12-30 22:32:12 -08:00
Kurt
3b2b86950f
Ignore symbols (apostrophe) for string matching
...
Farfetch'd vs Farfetch’d
2019-12-30 15:39:13 -08:00
Kurt
84c5f6e914
Add another met location for gastro-1
...
Closes #2612
2019-12-30 15:11:54 -08:00
Kurt
9864f23427
Handle Bridge Field->Stony Wilderness berry tree
...
Closes #2610
2019-12-29 12:48:34 -08:00
Kurt
d6471e2b3b
Add more pelipper & dusclops strong locs
...
ty anubis
2019-12-29 11:28:29 -08:00
Kurt
ce62d63c5a
Fix eggmove fetch for move check
...
Closes #2609
2019-12-29 10:17:07 -08:00
Kurt
bfd9bf6b53
Simplify formchange calls
...
Don't use the dex chain for certain checks, it's unnecessary.
2019-12-28 19:00:01 -08:00
Kurt
3280adcb9f
Add another location for Golurk & Galvantula
...
Closes #2606
2019-12-28 18:03:20 -08:00
Kurt
b294eba181
Fix combee gender check
...
silly convoluted checks
#2603
2019-12-27 19:17:08 -08:00
Kurt
940cdccb6b
Restrict downleveled to lvl % 5 == 0
2019-12-27 00:17:59 -08:00
Kurt
ceae77c677
Add load-line overlap location for Den 27/42
...
The nest is situated right next to the load line, and may be accessed
from either map (across the load line), resulting in a Dusty Bowl
Pumpkaboo-0.
Many thanks to Anubis on Discord for figuring this (very silly) thing
out !
2019-12-26 18:59:02 -08:00
Kurt
bb7c94dadb
Add seismitoad location
...
https://github.com/kwsch/PKHeX/issues/2570#issuecomment-568235086
2019-12-26 13:04:44 -08:00
Kurt
baf0f52f06
Handle downleveled raids
...
Closes #2573
- self-hosted raids can be downleveled too (see cufant), probably only
by 1 rank
- min-rank check now checks for downleveled cases
- Add extra gyarados/ferrothorn locations
2019-12-26 12:59:16 -08:00
Kurt
4740fab5ec
Have separate encounter yielder for gen8
...
the "Strong" static encounters can be near-matches with wild encounter
slots; example is a evolved Cutiefly->Ribombee with Quiver Dance.
Remove unnecessary IsLink/FriendSafari check for this gen8 method
https://github.com/kwsch/PKHeX/issues/2573#issuecomment-569126371
2019-12-26 12:32:48 -08:00
Kurt
0c7d347a29
Add Delibird distribution data, split files
...
ROM nest data definitions are already pretty hefty and won't be revised;
split out the future content
2019-12-25 14:26:49 -08:00
Kurt
e6dcf64abe
Disallow Spiky Ear Pichu eggs
...
sneaky gen4 bad hacks are bad
2019-12-24 13:21:56 -08:00
Kurt
3b2ebbb84f
Add PID check for gen4/5 Combee->Vespiquen evo
...
Closes #2593
2019-12-21 16:52:56 -08:00
NotTsunami
a05b38ab39
Legality: Add Nature and Gender to Gen 8 Trades ( #2591 )
...
Closes #2589
https://bulbapedia.bulbagarden.net/wiki/In-game_trade#Sword_and_Shield
2019-12-20 10:48:46 -08:00
Kurt
108233b45f
Add glalie/skuntank locations
...
#2570
2019-12-10 19:54:26 -08:00
Kurt
fcdd7019d3
Add missing shadow yanma location ID
...
Closes #2577 thanks @HoppyShnell ! -- this looks like the final met
location ID?!
Not sure if Murkrow (locked) is missing one; moved duplicate-location
Heracross and made it use the same locks.
2019-12-10 19:22:46 -08:00
Kurt
9a87647409
Add more static encounter locations
...
Some of these are probably crossovers
#2570
2019-12-09 19:28:57 -08:00
Kurt
0fa25b4c8c
Fix VC transfer evo chain population
...
Move EncounterOriginal to Legal info; needed in order to pass the
correct encounter to the EvoChain fetch.
The EncounterOriginal 'hack' might be unnecessary with the current state
of the legality checker... maybe can see if it can be removed later.
2019-12-09 15:48:54 -08:00
Kurt
8acb336d51
Use enum for species comparisons
...
slightly easier to read with named values
2019-12-08 17:39:19 -08:00
Kurt
475dc02101
Add edge case handling for indeedee shared egg moves
...
#2416
2019-12-08 12:08:21 -08:00
Kurt
861d7b6014
Remove unnecessary parameters for species fetch
...
#2567
2019-12-07 00:00:49 -08:00
Kurt
d24a09f7c9
Make level min/max virtual for nest
...
Closes #2566
be sure to set the correct flawless IV count & dynamax level so that the
encounter matches
2019-12-06 19:17:26 -08:00
Kurt
b2fc99e50a
Update nest dist/crystal location get/check
2019-12-04 19:04:36 -08:00
Kurt
e333f9b441
Add orbeetle 65 loc
...
thanks @sora10pls
2019-12-03 19:59:10 -08:00
Kurt
71318c9bd5
Add clarification/notes
2019-12-03 19:54:06 -08:00
Kurt
ab7cf3252e
Add snorlax raid dist data
2019-12-03 18:25:06 -08:00
Kurt
a844fb5249
Add strong dubwool location
...
https://projectpokemon.org/home/forums/topic/55654-new-pokemon-to-fix-on-pkhex/?tab=comments#comment-251010
2019-12-01 00:02:02 -08:00
Matt
7b7a161ac9
Minor fixes ( #2547 )
...
Fix Sinistea/Polteageist Form names (as per Strategy Guide)
Add Eternamax menu sprite
2019-11-30 13:19:22 -08:00
Matt
bc9be36123
Add more Gen 8 static encounter locations ( #2540 )
...
Also add West Sea Shellos/Gastrodon to transfer form banlist
2019-11-29 10:03:35 -08:00
Kurt
ea2f7f338b
Add weather indication to detailed parse output
2019-11-28 12:56:26 -08:00
Kurt
e8bdc34a18
Tweak gift generator
...
Yield ranger manaphy gift as possible (encmoveset generator)
Move ranger manaphy equals check to PGT
2019-11-28 10:42:24 -08:00
Kurt
5a1bffb2ba
Split wild encounters for crossover & weather
...
Certain Mark values (ribbon) are only obtainable if the encounter was
obtained in some weather (I really hope there's no crossover cases for
this), and non-symbol encounters can't wander to another zone.
I wonder if you can wander from one zone with one exclusive weather, to
another zone, and get an 'unobtainable' mark (with the new zone's
weather) on the crossover mon's weather. yikes lmao
2019-11-27 22:46:14 -08:00
Kurt
a0ee7a3e51
Add route 2 lapras location
...
ty Waves (discord)
https://www.serebii.net/pokearth/galar/route2.shtml#xy-lake
2019-11-27 19:44:14 -08:00
Kurt
5761f03f94
Add OT memory details for gen6 ingame trades
2019-11-27 19:30:28 -08:00
Kurt
c4951f1650
Add strong piloswine location
...
ty wowjinxy
2019-11-27 11:34:20 -08:00
Kurt
4cd358833a
Add corvisquire static enc location
...
https://projectpokemon.org/home/forums/topic/55611-corvisquire-route-3/
thanks ThePunish3D!
2019-11-26 18:20:52 -08:00
Kurt
9cb56be3dd
Add bronzong/galvantula strong loc
...
previous Bronzong location is likely a crossover case
ty wowjinxy
2019-11-26 11:39:17 -08:00
Kurt
445fdee2ba
Add shared memory interface (encounter)
2019-11-26 10:46:16 -08:00
Kurt
e8f5ac8a00
Minor clean
2019-11-25 22:51:07 -08:00
Kurt
c416fc5fa1
Update handling for invalid genNumber
...
all edge case movepool stuff is IGeneration; we're fine just using
IGeneration.Generation
2019-11-25 18:33:38 -08:00
Kurt
c5593470df
Add 2 more static enc locations, swap yield order
...
Private report with 3 specimens, 2 undocumented met locations
The other was a Gigantamax which matched another static encounter,
resulting in a partial match being accepted (the real match came after,
but was never iterated to).
Rather than adding deferrals for Enc8, do nest stuff first since it's
the most restrictive
In the past we didn't really have duplicate static encounters with
slightly different permissions.
Thanks @ReignOfComputer & {reporting user}!
2019-11-25 17:57:25 -08:00
Kurt
b37a0c5bfe
Add downleveled regular raid movepool verification
...
#2416
Not having enough badges pulls the level of the captured mon down
need more info if the other raid types behave similarly
2019-11-25 08:52:03 -08:00
Kurt
5dec94d456
Handle banned form eggs with more flexibility
...
Closes #2519
better to not generate the encounter as opposed to flagging it after
generation
2019-11-25 00:16:16 -08:00
Kurt
c446ff5b51
Fix non-galar egg moves passing
...
Closes #2516
2019-11-24 18:18:26 -08:00
Kurt
e1e7bf321b
Add South Lake Miloch for den 42
...
#2416
2019-11-24 11:07:31 -08:00
Kurt
64d94903ff
Change fixed ability
...
0=abil1
1=abil2
2=abil4
3=abil1/2
4=any
probably same as WC8 etc
doesn't have any impact as there's other encounters that allow Hidden
2019-11-24 06:26:33 -08:00
Kurt
96f6db0e38
Add recognition for distribution raids
...
Closes #2457
2019-11-23 22:23:43 -08:00
Kurt
cccf2a1939
Fix flawless IV count check
...
#2506 trapinch
2019-11-23 14:46:09 -08:00
Archit Date
f96eafa682
grab correct evo stage 1 from evocriteria list ( #2503 )
...
EncounterMovesetGenerator was using the de-evolution order in the passed evocriteria list
2019-11-23 09:01:09 -08:00
Kurt
e70a2f40b8
Add den crossover via online share
...
fix ability deferral for non-HA (eg. A4 mr rime encounter)
2019-11-23 08:27:50 -08:00
Kurt
b29fc5216e
Add shared moveset transfer
...
Closes #2501 for now
2019-11-23 07:27:06 -08:00
Chris
03ee264d0c
Add Vanilluxe Multiple Encounters ( #2499 )
...
* Add Vanilluxe Multiple Encounters
Vanilluxe spawns also on any Lake if its snowing
2019-11-22 21:32:39 -08:00
Kurt
d25f388bf5
Fix dexnav relearn checks
...
Closes #2491
Thanks @NinFanBoyFTW !
2019-11-22 19:59:40 -08:00
Chris
97f156364d
Update Multiple Encounters for Lakes ( #2498 )
...
happens also for:
Drifloon, Wingull, Goldeen, Frillish, Magikarp
but theese aren't listed, feel free to add new encounters.
2019-11-22 18:26:47 -08:00
Chris
e90d2fbc29
Also Seaking have multiple Locations ( #2495 )
...
^
2019-11-22 08:05:46 -08:00
Chris
4c9815c17e
Add Multiple Gyarados Spawns ( #2493 )
...
Gyarados Spawns in Area 1:
North/East/South/West Lake Miloch,
Area 2:
the Lake of Outrage (in a Wild Area)
2019-11-22 08:04:17 -08:00
Chris
8bdc110e2b
Added Multiple Lapras Spawns ( #2492 )
...
Lapras Spawns in Area 1:
North/East/South/West Lake Miloch,
Area 2:
the Lake of Outrage (in a Wild Area)
2019-11-22 08:03:16 -08:00
Kurt
4b3d85d5e6
Add multi-location strong encounter handling
...
#2484
OH BOY REUSED INDEXES
smart to save space, but a small pain for legality
feels pretty bad breaking up abstractions for every minor difference in
verification...
2019-11-21 21:44:41 -08:00
Kurt
5235c9b252
Revert "Add lapras encounter location?"
...
This reverts commit e4e516d1c2
.
2019-11-21 21:14:45 -08:00
Kurt
e4e516d1c2
Add lapras encounter location?
...
#2484
The other lapras encounter was found by @sora10pls and was lv56; we're
assuming this other lapras is the encounter (for now).
2019-11-21 20:59:24 -08:00
Kurt
4c8dd0cb3a
Defer rather than reject
...
#2490
2019-11-21 20:05:20 -08:00
Archit Date
e93bc5e67c
Misc Nest Fixes ( #2490 )
...
* fix A3 and A4 ability values
private > internal so it can be used in Encounter Nest matching
* reject ability number 4 if ability is from A3
2019-11-21 20:03:02 -08:00
Kurt
b9e32c67a0
Add encounter static deferral oop
...
We've already been doing something similar for the deferral check; just
merge the logic into the base object
Closes #2489
2019-11-21 20:02:08 -08:00
Archit Date
93028b3439
modify nest locations based on serebii ( #2483 )
...
https://serebii.net/swordshield/maxraidbattles.shtml
2019-11-20 23:02:54 -08:00
Kurt
f6c6639078
Add online den location
...
There's still the down-leveled issue with high level moves. fun.
2019-11-20 23:02:31 -08:00
Kurt
473afb8377
Initial rough draft of nest location matching
...
nest data doesn't match what's expected, but recognition is ready for
tweaks
2019-11-20 17:07:55 -08:00
Kurt
c6f515c755
Use more performat array join
2019-11-20 17:07:55 -08:00
ReignOfComputer
f19193c66f
Static Locations Update ( #2475 )
...
* Static Locations Update
- Removed version lock on Motostoke Stadium Vulpix (may want to investigate Growlithe)
- Wild Area Updates
- Other Static Updates
* Squeeze in 2 more Statics
* Rhydon Static Location
Last one I promise.
2019-11-20 11:38:25 -08:00
Kurt
8294d77464
Add Carkol static loc
2019-11-19 20:24:12 -08:00
Kurt
2c5a7cd5de
Add linoone strong loc
2019-11-19 19:41:30 -08:00
Kurt
feef1c1122
Add 2 more strong locations
2019-11-19 19:27:57 -08:00
Chris
7ef4fce89e
Add Eevveelutions Spawns for Lake of Outrage ( #2471 )
...
All Eeveelutions spawns at the Lake of Outrage, based on the weather?
2019-11-19 19:21:41 -08:00
Kurt
18b20e09d2
Add leafeon location
2019-11-19 19:03:39 -08:00
Kurt
e6476e943b
Change Gender to OT Gender
...
ty @sora10pls for confirmation
2019-11-19 18:55:03 -08:00
Kurt
0f4598ff66
Update some comparisons
2019-11-19 18:02:57 -08:00
Kurt
85fa6e0273
Add more strong encounter locations
2019-11-19 17:07:11 -08:00
Kurt
fa344208b2
Add crossover location handling
...
Closes #2461 by implementing slightly differently
Dictionary instead of new[] every area
Checks original met location first before attempting the dictionary
lookup (missing in pull request)
Easy path forward if LGPE crossover is needed
Potential issues: Since encounter types aren't marked, shaking trees and
fishing encounters are allowed to cross over. Maybe need to have some
marking for encounter slots or something...
2019-11-19 08:38:18 -08:00
ReignOfComputer
0230dafe2b
Wild Area Updates from RoC's PC ( #2460 )
2019-11-19 08:13:53 -08:00
Kurt
a368b81519
Minor clean
2019-11-18 22:48:03 -08:00
ReignOfComputer
0ef6f024d6
Wild Area Updates from #2416 ( #2459 )
...
https://github.com/kwsch/PKHeX/issues/2416
2019-11-18 22:21:13 -08:00
Kurt
f88388cb70
Add Form (AltForm) to IEncounterable interface
...
All of the encounterable templates have Form anyway; funny that I was
consistent naming them all differently than pkm.AltForm :)
Closes #2452
2019-11-18 22:20:55 -08:00