Kurt
a9374560ec
Don't recurse, jump straight to eventual method for splitbreeds
...
Don't check splitbreed if generation <= 2, move that check upwards.
2021-09-07 15:40:14 -07:00
Kurt
91c7c28c6f
Inline form changeable species lists
2021-09-07 15:35:36 -07:00
Kurt
1d00e17217
Add properties for cleaner interaction
2021-09-07 15:31:54 -07:00
Kurt
2575d73144
Add IFixedAbilityNumber, hide vivillon region flags
...
tfw can't using static a private class in the file, gotta be explicit.
2021-09-06 18:11:32 -07:00
Kurt
17c32db8b5
Minor fixes
...
Replace hardcoded move int with enum val
Lillipup->Rockruff
personal_swsh: remove pledge bitflags (missed in CT update)
2021-09-06 18:04:14 -07:00
Kurt
41b1aaeb19
Search mystery gift relearn moves for needed moves
...
Add to encountertrades searcher, for futureproofing
solves gen8 mg searching volt tackle pikachu
2021-09-06 11:43:42 -07:00
Lusamine
9751a75f59
Free Sgr7121 GMax Duraludon
2021-09-06 13:26:18 -05:00
Kurt
99231b978e
Prevent egg generator from yielding unbreedable species-forms
...
The "IsPresentInGame" will likely have to be refactored out as an interface, as future games (BDSP) will likely have partial national dex content
2021-09-06 10:48:32 -07:00
Lusamine
4cb525aac1
Restrict memory 39 general locations for SWSH
2021-09-06 12:39:08 -05:00
Kurt
5079b4f311
Handle cutecharm ambiguous seed-frames
...
Iterate over all possible seed frames that yield the IV pattern; nature is right before IV rands (PID is algorithmic from gender ratio and prior nature call).
Split up GetFrames into stepwise methods, clean up parameter passing
2021-09-06 00:35:40 -07:00
sora10pls
9bd0104954
Add new distribution raids 🧹
2021-09-02 20:04:14 -04:00
Lusamine
2f2cb43bd0
Disallow memory 17 from SWSH
...
It's a 1% memory that is impossible to obtain normally, but was missed earlier since it occurs on the in-game Throh/Sawk trades.
2021-08-29 19:22:09 -05:00
Kurt
adb7466a22
More memory legality additions
...
probably worthwhile to move the checks into the context, and return an enum -> switch to generate checkresult
2021-08-29 15:56:09 -07:00
Kurt
348fa4c9fa
Force Gen2 Red Gyarados to be male only, fixed IVs
...
Closes #3251
Uses fixed IVs to force shininess (rather than mutating DVs)
1f9e688b76/engine/battle/core.asm (L6103-L6110)
Co-Authored-By: CanoeHope <43196464+CanoeHope@users.noreply.github.com>
2021-08-29 13:23:34 -07:00
Kurt
92d15bdd03
Rename SetTradeMemoryHT, add SetTradeMemoryHT8
...
Gen6 behaves differently from Gen8.
Fix broken test case [Arrived via link trade, it had fun! (2) -> (3)]
2021-08-29 13:15:45 -07:00
Kurt
2f3e496e6f
Change defunct gen8 location memory setting to check 1%
...
Refer to previous commit, the apply-memory has a 1% chance of failing for 100% memories, resulting in the ability to have 0-memory HT via link trades.
In-game trades caused the previous logic, as those forget to set the HT memory (likely the same logic flaw as skipping the nickname check via game settings).
2021-08-29 13:09:26 -07:00
Kurt
1ac125d335
Add Gen8 memory table data
...
The middle table in poke_memory.prmb contains the analogue of Gen6's memory table data. All existing memory data is the same, with 20 memories added.
Feeling bitflags are the same as before, but as we've noticed, feeling 0 is not obtainable. All the feelings are value upshifted by 1. This is why the game shows a blank line for Gen6 Feeling-0, as that game was [0,23] not [1,24] for the span of feeling strings.
Memories with 1% chance are actually 0% due to how they if-abort in the game code. Nice bug, GameFreak! @Lusamine had previously committed the unobtainable memories, derived from the community's empirical data.
2021-08-29 13:06:44 -07:00
Lusamine
3627ff4104
Disallow specific memories from SWSH
...
Never observed these in 20k+ memories, and I wasn't able to trigger them myself either.
2021-08-29 10:42:16 -05:00
Skadiv
809557715d
Add Wyndon to the sign memory locations ( #3252 )
2021-08-29 09:38:15 -05:00
Lusamine
e85a75e796
Add Wyndon as a location for sitting on bench memory
2021-08-29 01:28:42 -05:00
Kurt
02e9d07745
Update EvolutionTree.cs
2021-08-28 14:44:07 -07:00
Lusamine
81f2744af2
Add story raid species for Dynamax memory
2021-08-28 15:55:47 -05:00
Kurt
c65fda5e7d
Allow HM moves in gen2-4 eggs
...
Yay silly inheritance
ty atrius
2021-08-28 13:54:58 -07:00
Kurt
7434af48bf
Fix HT know move memory deferral
...
Checks if it can know the move up until the current format, rather than origin game
2021-08-28 13:44:10 -07:00
Kurt
65b7102d4e
Permit gen1/2 format eggs to have eggmoves (GS)
...
Thanks Psyduck!
https://projectpokemon.org/home/forums/topic/57375-pkhex-new-update-legality-errors-contribution-page/page/10/?tab=comments#comment-268691
2021-08-27 23:11:21 -07:00
LegoFigure11
eeaf19f1c2
Fix incorrect met locations in XD GoD ( #3250 )
...
The Hexagon Brothers can be rematched in Phenac City if their shadows aren't snagged at the Cipher Lab, but Seedot, Houndour, Gulpin, and Spheal are all encountered outdoors (Phenac City (XD) [100]). Mareep and Baltoy are both encountered downstairs in the Mayor's House (Phenac City (XD) [096]).
Relevant .xk3 files: https://cdn.discordapp.com/attachments/537784151970021376/880816626176495626/Phenac_Rematches.zip
2021-08-27 07:33:12 -07:00
Kurt
92f30e26cc
Add misc memory checks for gen8 memID 42/51/70 args
...
Closes #3249
Co-Authored-By: Skadiv <62726360+Skadiv@users.noreply.github.com>
2021-08-26 21:20:52 -07:00
Kurt
87a268fa7f
Clean up memory generation parameter fetching
2021-08-25 19:45:47 -07:00
Kurt
0e2dac3ff6
Minor tweaks
...
Empty return for invalid species encountertemplate fetch
Expose property for ck3 @ 0xD7
show legal memory context items rather than gen8 always
2021-08-25 19:23:15 -07:00
Kurt
6ea0d9f3bb
Handle bank transferred memory feelings 5->6
...
Apparently they don't use the bit-permission table in Bank to get a random feeling, and instead just do rand(0,10).
Our logic to set a random feeling for bank transfers is still fine, because we set [0,10) within the bit table.
2021-08-25 10:37:53 -07:00
Kurt
c1a7d04c5c
Fix ck3 fateful read
...
Hope 555e81205d
was actually incorrect and that this is finally correct
2021-08-24 22:23:45 -07:00
Kurt
ffcd2e96e0
Fateful Mattle Ho-oh on japanese colosseum
...
must have been an oopsie they reverted for international releases
Thanks @liketolike !
Co-Authored-By: Lusamine <30205550+Lusamine@users.noreply.github.com>
#3242
2021-08-24 19:29:51 -07:00
Kurt
6e3bcd5b66
Encounter visualization: Show ball and differentiate visually
2021-08-24 14:03:20 -07:00
Kurt
2e3a6cc719
Fix memory 6 (pokecenter) compare for gen8
2021-08-23 23:06:33 -07:00
Kurt
a3633bb562
Update MemoryContext8.cs
2021-08-23 19:15:39 -07:00
Kurt
d684b9fa14
Disallow starter pika/vee on opposite game storage
2021-08-23 16:46:03 -07:00
Kurt
86fde6d42e
Memory 3 updates, revert todo
2021-08-22 23:39:23 -07:00
Kurt
3a8947cc59
Allow battleversion-ambiguous relearn move
2021-08-22 22:23:59 -07:00
Kurt
a631e5cb4e
Rearrange how some memory info is checked
...
Split into different game contexts
2021-08-22 16:41:57 -07:00
Kurt
b099b8d82c
More genloc memory refinements
...
starting to see the flaws in how things are organized
2021-08-22 11:10:29 -07:00
Kurt
40d1249f1e
Add genloc checks for gen8 memories 1,2,3
...
Can definitely be refined as these memories can restrict to capture/hatch/gift encounters. The multi-value arrays can also be restricted for non-hatches too (maybe first element if WasEgg?)
Co-Authored-By: Lusamine <30205550+Lusamine@users.noreply.github.com>
2021-08-22 01:40:08 -07:00
Kurt
28e7473f1a
Condense some expressions
2021-08-22 01:26:28 -07:00
Kurt
6112c9c91c
Condense into expression, add future-evo case
2021-08-22 00:06:02 -07:00
Kurt
92d1666970
Make PIDIV a readonly struct
...
Add tests to ensure the optimization remains in effect later
2021-08-21 18:24:38 -07:00
Kurt
65c5890e1f
Make NPCLock a readonly struct
...
Reduces allocation, improves locality of data since the contents take less size than a pointer (can pass byval)
2021-08-21 17:44:43 -07:00
Kurt
ae0ca49628
Arrange CXD Shadow encounters, add ShadowID documentation
2021-08-21 17:01:50 -07:00
Kurt
8f0fb902d1
ArgumentException -> ArgumentOutOfRangeException
2021-08-21 16:51:50 -07:00
Kurt
cd12962a50
Remove Tradeback state caching in PKM data
...
Since we have more metadata with move learn sourcing, we can check if it was traded to gen2 to get new moves / deleted.
Adjust call sites appropriately
might have some issues, to be ironed out maybe
2021-08-20 15:59:54 -07:00
Kurt
bedc52943e
Trailing commas
...
No functional change
2021-08-20 13:49:20 -07:00
Kurt
c6342a163f
Minor clean
...
variable swaps, simplifications
2021-08-20 13:42:25 -07:00
Kurt
9f249ef4d6
Add bounds check for API purposes
...
chris doing things funkily, might as well range check ourselves before blindly accessing the array
Use a const value for vivillon max wild form value
2021-08-19 18:59:24 -07:00
sora10pls
5379bad7ff
Add new distribution raids 👻
2021-08-19 21:20:56 -04:00
Kurt
934628b077
Pre-filter memory mismatch on moves
...
All over the place with prior commits; everything should be correct (and more robust) now.
2021-08-15 14:23:15 -07:00
Kurt
31ddaf2bc4
Don't defer on ability mismatch
2021-08-15 11:07:59 -07:00
Kurt
42330eb771
Memories and special moves, bite the bullet
...
Allocate a list :(
We need to keep all the secondary deferred around, since they have special movepools.
2021-08-15 09:47:31 -07:00
Kurt
7c60363b38
Rework match ranking to have multi levels of deferral
2021-08-15 09:28:47 -07:00
Kurt
24e77e7382
Handle form changing for move memories
...
Doesn't invalidate any of the statements made today.
ty @Lusamine for identifying these cases.
2021-08-14 20:20:13 -07:00
Kurt
db1cbf8cce
Handle raids with specific TR moves tripping memory checks
...
Defer the ones that have the memory and don't have the move; we'll likely find another match else settle for this one.
2021-08-14 19:47:52 -07:00
Kurt
9793e9f1a0
Minor clean
...
Slap on interface for EntreeSlot
De-magic some 💯 numbers to indicate what they're doing
Improve perf of move-match-relearn check
Add an "else" as valid is never both values (history verifier)
2021-08-13 15:36:30 -07:00
Kurt
a0bdb1a40e
Fix OT->HT memory string output for HT verifier
...
Use the `memory.Handler string` value rather than recomputing. (lines 51, 64 pf memverify)
2021-08-12 17:33:31 -07:00
Kurt
cad09e68bb
Fix source string returns
...
I blame the goofy "move egg" names confusing me
Reorder some so that the switch case is sequential and can be optimized by jit as a jumptable
2021-08-12 17:32:25 -07:00
Kurt
89372145b7
Extract legality report (invalids) methods
2021-08-06 16:12:11 -07:00
Kurt
b8e203bdef
Remove invalidmatch tracking
...
The Encounter verifier method rarely rejects as our inner encounter matching methods are all-or-nothing. Don't bother keeping references for this bloat.
Ran the unit tests and nothing hit this logic.
2021-08-06 15:38:39 -07:00
Kurt
9f8642f7d2
Hide Generation/Game setters behind mutation method
2021-08-06 15:35:49 -07:00
Kurt
391c6d4af6
Use Generation property when available
2021-08-06 15:34:28 -07:00
Kurt
69a907c5e7
Pass encounter object to innermost ability verifier
...
Fixes stuff for format3 CXD encounters as the side-games applied ability bits regardless of a second ability existing.
2021-08-06 15:26:21 -07:00
Kurt
70e10478dd
Extract fog boost location check
2021-08-06 14:54:32 -07:00
Kurt
c126cd968a
Only boost templates to 60 in wild area
...
No functional change for legality checks, so should be fine unless you're trying to get tiny edge case stuff.
2021-08-06 09:42:27 -07:00
Kurt
5ec2b12ae5
Handle some warnings for release build
...
Unused usings; just make PIDType stuff visible.
2021-08-06 09:41:39 -07:00
Kurt
0f3e5095c5
Replace more linq usage
2021-08-05 22:39:38 -07:00
Kurt
e18c2d8fa4
Replace linq with similar but faster logic
2021-08-05 20:47:32 -07:00
Kurt
5c472a400d
Expand shorthand parameters
...
int i => int index, or whatever the value is representing.
2021-08-05 20:33:25 -07:00
Kurt
edcf3a9bd6
Remove duplicate no-item for gen6 held item list
2021-08-05 18:54:08 -07:00
Kurt
c409026a69
Merge branch 'master' of https://github.com/kwsch/PKHeX
2021-08-05 17:16:15 -07:00
Kurt
4e669468c3
Pass parse result list to encounter info fetch ctor
...
Old: when an encounter is found, we copied the contents of the list into our analysis list.
Since we stop when we find a suitable encounter, the old list is useless. By sharing the same list, there's no consequence. Reduces allocation by ~56B each analysis object!
Simplification reduces the amount of method calls by 1
2021-08-05 17:16:13 -07:00
sora10pls
2766c2c900
Add new distribution raids
...
Apparently the theme is summer
2021-08-05 20:03:56 -04:00
Kurt
2f9a60b5e6
Organize byte resources into subfolders
2021-08-05 15:35:29 -07:00
Kurt
cc0397f087
Misc tweaks
...
Improved readability
2021-08-05 15:18:43 -07:00
Kurt
ab3795abaa
Handle enc->pk7 form-random vivillon Island Scan static
2021-08-05 12:36:47 -07:00
Kurt
0a74f6c33d
Ignore species for rby if not present
...
encounter moves not present for those, lol
2021-08-05 12:36:19 -07:00
Kurt
d1fb38b9cf
Set correlation with unrestricted details if failed
2021-08-04 19:58:25 -07:00
Kurt
616acc8bbd
Misc fixes
2021-08-04 19:54:04 -07:00
Kurt
83a72df7cc
Include gen1 encounter moves in not-needed list
...
Might result in some illegal matches as it includes it for all evolutions in the chain, but whatever. Could probably rewrite the generator to only generate for different starting-species, but it's fine now.
Inline the max level calc
2021-08-04 19:07:20 -07:00
Lusamine
0f1f0166ce
Check for Fishing flag in case of grass spawns
...
Handles exceptions like Chewtle in high level area of Route 2, which are
in the Normal weather grass slots as well as the fishing slots.
2021-08-03 23:12:09 -05:00
Lusamine
2858c6636d
Minor adjustments to area slot extensions
...
Invert check for crossover to disallow hidden (there are more symbol
tables). Galar Mine No. 2 has hidden fishing slots as well as curry.
HiddenMain3 SlotType was never used so it was removed.
Updates pkl to remove HiddenMain3.
2021-08-03 13:03:04 -05:00
Kurt
8a75435dc0
Add crossover from-to stub for anubis
2021-08-02 23:54:44 -07:00
Kurt
277b1b658d
Un-nest 3ds console region bitflags
...
Insert 3DS into the name to indicate that it's for the 3DS
2021-08-02 20:59:40 -07:00
Kurt
66f1b23dc6
Consider the "SkipFormCheck" for gen7 scatterbug static
...
Rework to match the encounter slot form-ambiguous checks
2021-08-02 20:45:52 -07:00
Kurt
140f814f90
Update EncounterMovesetGenerator.cs
2021-08-02 20:25:16 -07:00
Kurt
d0a558a211
Update MoveList.cs
2021-08-02 19:56:09 -07:00
Kurt
1efebe51d3
Simplify Country/Region/ConsoleRegion to byte from int
...
Only exists in gen6/7 games.
2021-08-02 19:43:57 -07:00
Lusamine
928abfac3e
Properly check Vivillon form legality ( #3235 )
...
This uses more current crowdsourced information to update the country
and subregion tables for Vivillon forms. It's possible to change the
country/subregion within a 3DS console region, so only forms that cannot
be obtained for a console region are flagged as illegal. If a form is
not native to the country/subregion, it is marked as Fishy instead.
https://docs.google.com/spreadsheets/d/e/2PACX-1vTVVOEZbXLVQvjIdzGACpZ_IrOWgVDBr_Wa-xULK3191BP9lf1tep-z-PsmcAfaH_aE56j3GHDX_9UO/pubhtml
2021-08-02 08:57:21 -07:00
Kurt
c1f13923c8
Update EncounterSlot7.cs
2021-08-02 08:57:03 -07:00
Matt
f6a652c360
Update RibbonVerifier.cs
...
Official announcement in Pokémon HOME (mobile) states that Series 10 lasts until October 31, not August 31 as mentioned on Serebii.
2021-08-02 10:49:32 -04:00
Kurt
26f7364a9c
Condense more expressions
...
Easier to read as pattern matching
2021-08-01 16:21:30 -07:00
Kurt
846f9506fb
Misc form handling update (EncounterSlots)
...
Mark gen7 Minior slots with 31
Mark gen2 Unown slots with 31
Mark gen4 Unown slots with 31
2021-07-31 22:41:52 -07:00
Kurt
f46bda3f75
Condense some expressions, parameter names
...
Enable warnings as errors, so that future pull requests can't submit nullable warning content
2021-07-31 22:38:04 -07:00
Kurt
1bc5cb1113
Handle special form cases for IsSane
2021-07-31 20:50:29 -07:00
sora10pls
b9291cc061
Update SWSH Ranked met date restrictions
...
Series 10 runs until 8/31/2021 and allows usage of restricted Pokémon.
2021-07-31 12:37:13 -04:00
Kurt
e2db713621
Update EncounterSlot8.cs
2021-07-31 00:01:55 -07:00