Commit graph

8254 commits

Author SHA1 Message Date
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
d932be5f75 Default the box slot encounter indicator to off
Don't wanna scare the plebs; it's opt in.
2021-08-24 20:04:14 -07:00
Kurt
de2d3a43be Add toggleable setting for encounter background types
Fine archit and matt, have it whichever way you want :)
2021-08-24 19:52:06 -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
2a9f3585e5 Change background coloring to bottom-stripe 2021-08-24 16:11:48 -07:00
Kurt
e3fecdf1d5 Update translatable GUI text 2021-08-24 14:24:43 -07:00
Kurt
a121f4d617 Add optional box slot coloring, add settings 2021-08-24 14:21:35 -07:00
Kurt
6e3bcd5b66 Encounter visualization: Show ball and differentiate visually 2021-08-24 14:03:20 -07:00
Kurt
302b5d1d90 Update WinFormsUtil.cs 2021-08-24 13:22:29 -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