Commit graph

2905 commits

Author SHA1 Message Date
Kurt
29b3b695bd Pre-allocate some dictionary sizes
Skips the bucket array resizing steps
a 256 key dict will garbage 5KB; StringConverter2KOR wastes 100KB of garbage.

Zukan7b: save 144 bytes and eliminate cctor
2023-03-04 20:00:27 -08:00
Kurt
284dd6d995 Update EncounterEgg.cs 2023-03-04 15:10:34 -08:00
Kurt
81bcd95dc1 Revise Vivillon form sanity check
Previously, slots were hard-matched to 18; now since they're "random", we need to flag out of bounds values.
2023-03-04 14:53:01 -08:00
Kurt
94d5ca491f FormRandom SV Vivillon 2023-03-04 14:48:40 -08:00
Ammako
0a1b4196b1
Fix Wishmaker Jirachi (#3824)
Needs ID32 because Wishmaker Jirachi is a fixed 00000 SID, unlike Channel Jirachi.
2023-03-04 13:21:57 -08:00
Kurt
0f1fba86f7
S/V 1.2.0 Support (#3819) 2023-02-27 19:12:27 -08:00
Manu
5ef3837d3f
Fix Jiseok Garganacl start date (#3815) 2023-02-27 16:18:39 -08:00
Kurt
52f1bf081c Add SizeType9 for fixed range Scale values 2023-02-26 16:14:11 -08:00
Kurt
77cac48d34 Add sanity check for min level eggs
Closes #3797
2023-02-18 23:19:50 -08:00
Lusamine
3e5c31a7b5 Add server dates for Jiseok's Garganacl event 2023-02-17 02:22:39 -06:00
Manu
1d2c8d27ba
Fix MetDate for WC9 templates (#3790)
* fix flabébé wc9 details

* add JumpFesta Gyarados EncounterServerDate

* Fix MetDate when generating from WC9 template
2023-02-16 23:57:03 -08:00
Kurt
39a7007541 Extract Bulk Analysis components 2023-02-08 17:24:47 -08:00
Kurt
f77e605cae Update AreaWeather9.cs 2023-02-08 08:19:38 -08:00
Kurt
ad31ebbbe2 Update TransferVerifier.cs 2023-02-07 22:30:33 -08:00
Kurt
aa430b48ca Disallow LGPE event gift OT handling 2023-02-07 21:56:25 -08:00
Kurt
ad0f604841 Add pokeflute to key XY
Temporary key item
https://gaming.stackexchange.com/questions/179667/how-to-get-the-pokeflute-in-pokemon-x-and-y
2023-02-07 21:52:06 -08:00
Kurt
fe2cbeac31 Add date restrictions for WC9, pika diff 2023-02-03 20:30:41 -08:00
Kurt
60a53b6afa Skip closing other-thread popups on sav load
Plugins may have popups that were created on another thread as diagnostic messages; by trying to close these on our main GUI thread, the program crashes.

Just leave these other-thread forms open when we change save files instead of crashing or closing them on their proper thread.
2023-02-03 12:52:52 -08:00
Kurt
8279615040 Fix bit wrap met location matching
Use ulong bitmask not u32
2023-02-02 15:12:18 -08:00
Kurt
3d29cc5a19 Misc tweaks
- Allow paradox species to receive master rank ribbon
 - Resize & center IV/AV rand button (localizations
were too wide for AVs)
 - Highlight blue the most recently toggled Ribbon
2023-02-01 16:55:38 -08:00
Kurt
9ecb8981a9 Expose criteria optimization for trade/headbutt
If the criteria template is optimized, we will be able to source moves from sibling game pairs that require indications of it being traded (yay strict logic...)

ex: encgenerator now yields X/Y eggs when ORAS tutors requested in moveset and game is X/Y
2023-01-31 23:23:12 -08:00
Kurt
c5ec20ef5d Emit sv scatterbug eggs as form18 2023-01-31 18:31:55 -08:00
Kurt
6bf3d4ce9f More descriptive version indication wc6/wc7
Skip yield if not matching version
Handle defer/partial for gen7
2023-01-30 22:57:18 -08:00
Kurt
93c4abbbd5 Misc tweaks
Un-fix main panel, guess this might help for scaling the GUI via OS settings. Add an overload to rescale ItemSize for the vertical tab control; don't think it is ever called though.

Make EvoChain get method public for archit
2023-01-28 19:23:43 -08:00
Kurt
3572097c96 Update 23.01.26
Hello .NET 7
2023-01-26 21:58:04 -08:00
Kurt
9ddfe3f629 Misc fixes
Allow dragon ascent bitfetch for gen6/7
Fix hidden power type parse/trim
Remove */ from hidden power type calc
allow longer set lines (full EVs specified for Gen2 is 74 chars
allow set lines of length 1-2 to fully support trash sets for all languages
Tweak pb8->pk8 to be more straightforward
2023-01-26 19:03:06 -08:00
Kurt
387ab6d546 Pass species/form as param; toxtricity nature
Need to know the original encounter species rather than current species. Gotta pass this information in.

Closes #3739 ty @javierhimura !
2023-01-26 18:07:27 -08:00
sora10pls
8419ee017d Add latest distribution raid data 🐸🥷☠️ 2023-01-26 19:03:59 -05:00
Kurt
71eeb7072b Fix gen4 set all TMHM bits
oops
make other personalinfo consistent
show legality triangles if previous parse failed (oops)
2023-01-22 14:55:35 -08:00
Kurt
5de825de51 Disallow matching if notradeback loc wiped
Closes #3710
2023-01-21 22:01:50 -08:00
Kurt
88830e0d00
Update from .NET Framework 4.6 to .NET 7 (#3729)
Updates from net46->net7, dropping support for mono in favor of using the latest runtime (along with the performance/API improvements). Releases will be posted as 64bit only for now.

Refactors a good amount of internal API methods to be more performant and more customizable for future updates & fixes.

Adds functionality for Batch Editor commands to `>`, `<` and <=/>=

TID/SID properties renamed to TID16/SID16 for clarity; other properties exposed for Gen7 / display variants.

Main window has a new layout to account for DPI scaling (8 point grid)

Fixed: Tatsugiri and Paldean Tauros now output Showdown form names as Showdown expects
Changed: Gen9 species now interact based on the confirmed National Dex IDs (closes #3724)
Fixed: Pokedex set all no longer clears species with unavailable non-base forms (closes #3720)
Changed: Hyper Training suggestions now apply for level 50 in SV. (closes #3714)
Fixed: B2/W2 hatched egg met locations exclusive to specific versions are now explicitly checked (closes #3691)
Added: Properties for ribbon/mark count (closes #3659)
Fixed: Traded SV eggs are now checked correctly (closes #3692)
2023-01-21 20:02:33 -08:00
Kermalis
5958b4ee73
Fix tera-type typo in Encounter9RNG (#3725) 2023-01-14 01:17:52 -08:00
Kurt
260559c7e6 Update EggStateLegality.cs 2023-01-07 14:17:34 -08:00
sora10pls
67ac1e7378 Add Cinderace raid handling 2022-12-29 19:20:01 -05:00
Kurt
f5ea250975
Show star square for everything in Gen9 (#3689) 2022-12-18 00:16:29 -08:00
Kurt
e3b1a29ad6 Update Core.cs 2022-12-17 23:09:00 -08:00
Kurt
1c980a0434 Fetch form entries for gen4-6 learnsets
Silly Wormadam with different form permissions.
2022-12-17 20:36:44 -08:00
Kurt
c776d8db43 Treat level2 yungoos as scripted encounter 2022-12-17 14:54:57 -08:00
Kurt
ee9f8f0558 Allow click correcting Gender icon 2022-12-17 14:04:22 -08:00
Kurt
1de869f541 Flag pp ups on non-PP up move IDs
Previous logic wouldn't flag "None" move w/ ppup>0
Also now flags sketch & revival blessing.
2022-12-17 13:29:06 -08:00
Kurt
41930dd2bd Handle crossover flying dragonite
Update pkl from pkNX
2022-12-16 22:34:01 -08:00
sora10pls
4eb7858028 Fix former titan Iron Treads moveset
also rearrange to story order
2022-12-12 20:59:09 -05:00
Kurt
3ef12c3ebe
Encounter Crossover/Wander tolerance (30f) (#3683)
* Update encounter_wild_paldea.pkl

* Add weather/time mark checks

* Set tolerance to 30f, swap crabrawler evos
2022-12-10 19:53:59 -08:00
Kurt
07ce14403f Update EncounterFixed9.cs 2022-12-09 07:50:50 -08:00
Kurt
89b10aec7e Min size clamp fixed tera
Co-Authored-By: Lusamine <30205550+Lusamine@users.noreply.github.com>
2022-12-08 23:03:56 -08:00
Kurt
b29d9a65e1 Allow static encounter deerling form change match
Closes #3678
2022-12-07 23:28:47 -08:00
sora10pls
baa21a6f49 Update GameData.cs 2022-12-07 18:15:11 -05:00
Kurt
650ee8ae40 Don't yield SV version eggs, egg OT gender check 2022-12-06 21:34:14 -08:00
Kurt
16595d2af8 Extract PID gen, handle battle&->capture mutations
Co-Authored-By: Lusamine <30205550+Lusamine@users.noreply.github.com>
2022-12-06 20:56:50 -08:00
Kurt
9f480dcbe2 Set fixed gender for static9
Closes #3671
2022-12-05 14:10:00 -08:00
Kurt
f7bcb211b2 Improve ForceHatchPKM when Version=0 (SV)
BoxManipModifyComplex finally used after 3-4 years of wait
2022-12-04 00:43:44 -08:00
Kurt
339132e5dc Move HA egg check back in gen8 format check
51875d27b2
Previous change ^ was short circuiting logic for gen5 eggs (unavailable HA for Serperior)

probably need to rewrite this method or maybe just delete these lines since they should fall through.
2022-12-04 00:10:43 -08:00
Kurt
3f4aa2f9f2 Extract master ribbon check
Check visitation via API method instead of in verifier
2022-12-04 00:09:16 -08:00
Kurt
67c458d321 Only remark HT memory if gen6/swsh origin
Closes #3667
2022-12-04 00:03:47 -08:00
sora10pls
046ffae536 Remove commented Gimmighoul encounters
Everything is accounted for
2022-12-03 18:49:44 -05:00
sora10pls
670b8e3c9f Update Master Rank Ribbon restrictions for SV
All Pokémon in the Paldea Pokédex are eligible, except for Legendaries, Sub-Legendaries, and Paradox.

Currently ineligible foreigners are Charmander/Charmeleon/Charizard, Wooper-0/Quagsire, Meowth-2/Perrserker
2022-12-03 10:53:48 -05:00
Kurt
2e67526db1 Update 22.12.01 2022-12-01 22:40:11 -08:00
Kurt
f10c914eac Swap RSBox pay day skitty moves 1 & 2
Thanks Soniktts & ICanSnake !
https://projectpokemon.org/home/forums/topic/62640-pokemon-box-skitty-egg-illegal/
2022-11-30 18:47:35 -08:00
sora10pls
a4abd94724 Unban Starf Berry
151 rounds in ESP Exercise Knockout
2022-11-29 21:53:34 -05:00
sora10pls
1ffd6872a8 Unban Lansat Berry 2022-11-29 21:47:42 -05:00
Kurt
c790212291 Add Gen9 to pkmdb generation dropdown 2022-11-27 13:40:25 -08:00
Kurt
607cbc5eb6 Check pre-evolution TM flag permit if highest not 2022-11-27 12:51:05 -08:00
Kurt
7e0aa44a9a Update MiscVerifier.cs 2022-11-27 12:38:32 -08:00
Kurt
5f12ba78c9 Update MiscVerifier.cs 2022-11-27 11:30:02 -08:00
Kurt
2fe8b63589 Disallow Avalugg+Lilligant hisui eggs 2022-11-27 10:43:21 -08:00
Kurt
762f7171cc Fix single-chain ability revert check 2022-11-26 22:21:33 -08:00
Kurt
7adf48982c Extract more Tera raid props to common interface 2022-11-26 14:23:32 -08:00
Kurt
51875d27b2 Fix HA possible abilities not being validated w/HA 2022-11-26 14:23:19 -08:00
Kurt
cee97ada26 Minor clean 2022-11-26 14:22:57 -08:00
Kurt
76ec39b75f Strict match encounter slot tera type 2022-11-26 08:31:58 -08:00
Kurt
c550d41630 Fix eevee dist check (missing rand100)
Reorder calls so the runtime can overwrite the xoroshiro registers if needed
2022-11-26 07:27:51 -08:00
Kurt
ccac23bb6d Initial raid eevee checks (wip) 2022-11-26 00:39:32 -08:00
Kurt
5d5d913a0b Handle lgpe base friendship case 2022-11-25 20:54:43 -08:00
Kurt
ccfbae357e Add evolve form predict message for dudu/maus 2022-11-25 20:33:14 -08:00
Kurt
310882f375 Extract toxtricity nature restriction 2022-11-25 19:55:44 -08:00
Kurt
78676a9cbd Ignore insufficient fixed IV matches
Wild vaporeon and glaceon can get mis-recognized with the fixed strong static teras.
2022-11-25 18:25:14 -08:00
Kurt
c1796da94b Ensure override tera is not set while egg 2022-11-25 16:01:54 -08:00
Kurt
10d0199521 Add EC for slot9 2022-11-25 16:01:40 -08:00
Kurt
981001b12e Clamp max obey level to current, slot tera recheck 2022-11-25 15:55:10 -08:00
Kurt
ddef07a4c2 Maus/Dudun 25->100 odds
What a confusing optimization
2022-11-25 14:49:51 -08:00
Kurt
00e174d240 Handle bred Oricorio original tera type eggs 2022-11-25 14:12:19 -08:00
Kurt
d904bfad4c Fix hidden ability patch possible check
Just return true when it is possible
2022-11-25 13:54:14 -08:00
Kurt
5faf861f82 Flag non-pokeball starter eggs 2022-11-25 11:15:40 -08:00
Kurt
459ee3db22 Invert Titan Mark missing/invalid msg
Now matches the Mightiest mark and other "isMissing" state checks.
Also indicate for Alpha marks since the logic check is the same != style.
Closes #3640

ty @Kitcham
2022-11-25 10:42:53 -08:00
Kurt
d2970c6a3a Force rotom default egg to form0
Silly rotom-Heat eggs are not legal :D
2022-11-24 22:06:36 -08:00
Kurt
9009439bb7 Set random personal tera type for egg>pk9 template 2022-11-24 21:39:11 -08:00
Kurt
94e8e0e958 Remove obey:0 for boxlegend, should be 68
Nice encounter spec sheet value (WazaConfirmLevel), gamefreak.
2022-11-24 20:19:40 -08:00
Kurt
1c93d601a4 Fix min egg hatch ctr for pk8/pk9
Oops, 8 instead 9.
2022-11-24 19:15:19 -08:00
Kurt
6993f9d661 Fix pk8 tr flag check (off by 100) 2022-11-24 19:13:34 -08:00
Kurt
140196d9ab Fix formarg check for stantler/bisharp/primeape 2022-11-24 18:07:17 -08:00
Kurt
03182ebd3d Update 22.11.24
Adds support for Scarlet & Violet.

Co-Authored-By: SciresM <8676005+SciresM@users.noreply.github.com>
Co-Authored-By: Matt <17801814+sora10pls@users.noreply.github.com>
Co-Authored-By: Lusamine <30205550+Lusamine@users.noreply.github.com>
2022-11-24 17:42:17 -08:00
sora10pls
313f32a0d0 Add last-ever SWSH distribution raid data
rip 2019-2022
2022-10-31 20:07:05 -04:00
Kurt
49d40d2e26 Enhance traded eggs version sharing check
No longer indicate traded eggs from gen3 as sharing OT details.
2022-10-28 16:18:06 -07:00
Kurt
a88da9ee8d Update RibbonVerifierUnique4.cs
Closes #3618
2022-10-26 09:44:45 -07:00
sora10pls
56d3daa189 Add latest distribution raid data 🐴
good job shiny locking them this time
2022-10-20 20:05:57 -04:00
Kurt
3ab3f6ad53 Sanity check requested gender
Shedinja template in gen3 is gender:2, while the template needs to be gender:0/1

Closes #3612 ty @Kermalis !
2022-10-20 00:14:03 -07:00
Kurt
25b217c53d Skip first iteration check of stop condition
Can unroll the loop, but would look more ugly :)
JIT will probably do it for us.

Fix <= to < for IVs
Inline temp var (start is unused after assigning to low)
2022-10-16 20:10:32 -07:00
Kurt
2a190dd6b3 Improve LCRNG seed reversal speed ~50x
Big thanks to Parzival from the RNG discord community for chiseling the LCRNG search space down to the best performing implementation possible.

50x? Down from O(2^8) -> O(2^3) is 32x, but we no longer need to access two heap arrays (262KB no longer needed!). Everything can be calculated tightly with the stack.

f641f3eab2/RNG/LCG_Reversal.py (L31)

Rainbow tables is the only faster implementation. However, nobody is gonna hog many GB of RAM for O(1) reversals. This is ~O(2^3), down from O(2^8). Much better than the days of O(2^16)!
2022-10-16 18:52:43 -07:00
Kurt
ae6d53af7e Minor tweaks
Reduce allocation in gen8 static encounter init, single class
2022-10-15 01:14:50 -07:00
Kurt
8b0e93b42f Fix GetLowestLevel underflow condition
Check end before decrement

Closes #3605 thanks @InfoManiac742 !
2022-10-14 17:05:19 -07:00