Kurt
f9d9bcfb80
XD: Purification is stored differently for jp games
...
A more condensed data structure, 72->60 bytes for each entry instead.
Closes #3255
Related? #2956
2021-09-03 18:16:09 -07:00
CanoeHope
5f0dcfe6af
Correct Gen 2 Snorlax Event Flag ( #3254 )
...
Needs to be the Vanish flag, not the story flag.
2021-09-03 16:03:30 -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
Kurt
20d0fcfab4
More performant trashbyte clearing
2021-08-29 12:02:07 -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
d5c9ea978e
Indicate version metadata for lgpe gifts
...
Just metadata, no functional change
2021-08-26 15:47:44 -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
d3ae5e682f
Shift intensity back down by 1
...
Used to be index2,count7 per 9f1a8d1da1
diff. Needed to delete both blank lines, oops.
2021-08-25 10:47:40 -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
5a53ae85bc
Update WB7.cs
2021-08-24 13:12:14 -07:00
Kurt
9f1a8d1da1
Split memory text string resources
...
Much easier to maintain and reference now
2021-08-23 23:06:51 -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
47914c48c8
Update WB7.cs
...
https: //github.com/kwsch/PKHeX/commit/2a51eb174522754da51a5e1b059163e6a1ed9c6a#diff-8b09a6b11c41760f1242b597508eeb0ea4cde4a14cfd7e7ec1a0a37b146924c8L235-R228
Co-Authored-By: Matt <17801814+sora10pls@users.noreply.github.com>
2021-08-23 16:30:38 -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
6e9f230dee
Add cxd/rsbox event data for mainline sav3
...
Closes #3248
2021-08-22 18:52:29 -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
5b42dc8ae4
Minor clean
2021-08-22 00:05:41 -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
c9b838b492
Inline clone method
...
More obvious what it does
2021-08-21 16:52:06 -07:00
Kurt
8f0fb902d1
ArgumentException -> ArgumentOutOfRangeException
2021-08-21 16:51:50 -07:00
Archit Date
27059268ba
un-trim alcremie form strings (cream vs swirl) ( #3246 )
...
also use proper alcremie forms for showdown
2021-08-21 13:02:37 -07:00
Kurt
8f4f86e88e
Update WC8.cs
2021-08-21 11:50:24 -07:00
Kurt
5da9b4a70a
Force alignment
...
FieldOffset isn't implied, fun.
2021-08-20 22:07:09 -07:00
Kurt
05364212ba
Update Encount5.cs
2021-08-20 20:53:23 -07:00
Kurt
9ef93552c9
Add ability to set swarms for gen3
2021-08-20 20:50:16 -07:00
Kurt
48024f1245
Add Swarm data get/set for gen3-5
...
#3245
2021-08-20 19:52:31 -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
liketolike
8b4730a2ee
Update zh translation ( #3241 )
...
Adds Gen2 zh const/flag name files
Adds Gen7 zh lgpe flag names
Updates GUI translation
Updates gen3,4 const/flag files
2021-08-19 20:19:49 -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
c0d748a975
Add Dream World upload slot indicator
...
Tested & works on bw & b2w2
Thanks Brokemia for the request!
2021-08-16 11:54:03 -07:00
Kurt
a926923a6b
Remove Fullness/Enjoyment from ExtraBytes
...
They show up in the memory editor
2021-08-15 19:32:50 -07:00
Kurt
05d745afe5
Fix inverted format search
2021-08-15 19:32:33 -07: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
e1c8ab8d96
Fix remapped glyph
...
Future updates to glyph remapping to come later
2021-08-13 17:25:20 -07:00
Kurt
44e360f7c7
Add Wolfe coal gift ahead of actual release
2021-08-13 17:24:49 -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
sora10pls
803fe84f04
Add form strings for Eiscue, Morpeko, and Zacian/Zamazenta
...
Ice Face, Full Belly Mode, and Hero of Many Battles (strings trimmed where appropriate)
2021-08-07 13:22:14 -04:00
Kurt
ad8d622443
Rearrange text resources
...
Put legality stuff with legality
2021-08-06 20:20:12 -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
a939a2dbd6
Add pkmdb sorting rules for loaded database set
2021-08-06 10:09:16 -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
0094492bd2
Update 21.08.06
...
Update mgdb with latest
2021-08-06 00:34:31 -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
a1f5c76790
Fix pgl jpeg save
2021-08-05 19:38:47 -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
Kurt
59d480c834
Minor tweaks
...
Discard empty pkm files (species 0) when loading boxes or templates
Add more xmldoc
Simplify some method parameter names for readability
2021-08-05 17:05:39 -07:00
sora10pls
2766c2c900
Add new distribution raids
...
Apparently the theme is summer
2021-08-05 20:03:56 -04:00
Kurt
ebb47867dd
Use FileUtil tryget for pkm from path
...
GetPKMFormatFromExtension is now only used once internally.
2021-08-05 16:29:32 -07: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
sora10pls
bfcf081e5b
Fix XY multiplayer sprite display
...
Reorder enums; Serena before Calem
2021-08-05 16:22:06 -04:00
Kurt
ab3795abaa
Handle enc->pk7 form-random vivillon Island Scan static
2021-08-05 12:36:47 -07:00