sora10pls
5c8d1ceeec
Unban BDSP Ver. 1.3.0 locations + Sketch Judgment
2022-03-15 21:36:26 -04:00
Kurt
d95ba482f3
Reduce allocation in methodfinder IV set
2022-03-13 19:39:38 -07:00
Kurt
d5ae6764aa
Stackalloc IVs for template->pkm fill
2022-03-13 19:24:08 -07:00
Kurt
8f8726ac5e
Disallow encstatic1 yield catchrate not tradeback
2022-03-13 18:29:47 -07:00
Kurt
8afc6814eb
Disallow matching BU statics for non-JP
2022-03-13 17:45:01 -07:00
Kurt
69fafcab83
Performance: Slightly reduce allocations in moveset validation ( #3460 )
...
* Reuses move parse result objects for each encounter parsed in a LegalityCheck attempt, instead of creating a new object.
* Ensures the objects are never-null, and makes cleanup easier.
Slightly adjusts some other parts of the moveset validation to reduce allocations.
2022-03-12 17:39:00 -08:00
Kurt
93255efcb8
Disassociate Shiny enum from WC6 PIDType ( #3461 )
...
Have `Shiny.Random` be `0`, so we can skip init on this field for EncounterStatic. Plus makes it a little less brittle for future expansion if shiny qualities change.
2022-03-12 17:38:59 -08:00
Kurt
5359a140a6
Handle fixed ability for 8b RNG
2022-03-08 08:44:55 -08:00
Kurt
4e1276a954
-8 bytes from each encounter template
...
saves about ~1MB RAM savings (>=179,142 objects)
2022-03-06 23:25:47 -08:00
Kurt
462ef70ffb
SlotNumber/MagnetStatic int->byte
...
more size reductions
2022-03-06 22:47:03 -08:00
Kurt
8f9de86347
Span-ify BreedInfo, saves 10bytes heap alloc
...
the Actual result still needs to leave the stack, so that has to be heap allocated.
2022-03-06 13:04:56 -08:00
Kurt
9049ef99fd
Minor allocation reduction
2022-03-06 13:03:39 -08:00
Kurt
e1414a0bea
Move some interfaces to different folder
...
No code changes
2022-03-06 12:06:50 -08:00
Kurt
c51d51d381
More specific primitives for Memories/others
2022-03-06 12:01:47 -08:00
Kurt
41d2dd9294
Update EncounterTrade for Shiny metadata
...
Doesn't need to be stored in most cases
Now permits EncounterTrade1 to be shiny
2022-03-05 21:04:18 -08:00
Kurt
e17483fe46
some linq reduction
2022-03-05 20:03:52 -08:00
Kurt
1b266c1e4b
Handle PLA MMO formarg deferral
...
Can capture formarg evolved stuff directly in wild
2022-03-05 18:54:50 -08:00
Kurt
b20566eb59
Use actual primitive instead of int
...
Some interfaces aren't needed to be exposed as int
2022-03-05 18:30:35 -08:00
Kurt
d0f2b6eeb5
Add .CurrentLevel=$suggest for min legal level
2022-03-04 22:34:11 -08:00
Kurt
50828fa1bb
Change some field types, reduce memory usage
2022-02-28 22:46:59 -08:00
Kurt
85e422c225
Compress PLA wild bin resource
...
Change the data structure so that different locations are tied to the table, rather than separate usages of the table.
This de-bloats from 344KB->85KB and has less runtime memory consumption.
2022-02-27 15:08:53 -08:00
Kurt
c2f7003f38
Update Encounters8a.cs
2022-02-27 14:13:35 -08:00
Kurt
e5e2a3427f
Rename Silver SV->SI
...
SV will likely be the lump for SCarlet and VIolet
2022-02-27 11:16:12 -08:00
Kurt
ff58d1bb68
BDSP Shaymin encounter uncomment
...
Now available via oak's letter
2022-02-27 09:00:11 -08:00
Kurt
ccca8abdad
Remove fixedball for go7, reset h/w/cp
...
Now that we have accurate calcs, let's just generate them with the values.
2022-02-25 13:52:50 -08:00
Kurt
cd043bce04
Extract egg met location
2022-02-24 23:14:40 -08:00
Kurt
ab62e76505
Handle alolan vulpix suggestion scenario
2022-02-24 22:47:48 -08:00
Kurt
65130a9ae1
temp fix for some fixed h/w statics
2022-02-22 23:18:10 -08:00
sora10pls
91d1a91142
Add Pokémon Day distribution raids
2022-02-21 19:05:34 -05:00
Kurt
d5be6254f3
Add logic for PLA wild RNG correlation ( #3443 )
...
Adds structures to read/write saved spawner data such as seeds, counts.
Adds generator and validator to emulate the FixInitSpec builder used by the game logic
Similar to SW/SH raids, validating these in-process is not feasible due to the number crunching required.
This does not handle the encounter slot call or the follow-up level range call. Just the inner FixInitSpec ctor & fill.
level is calc'd:
randFloat(sum) -> slot float
rand.Next() -> gen_seed (for all the details)
rand.NextInt(delta) +min -> level
Co-Authored-By: Lusamine <30205550+Lusamine@users.noreply.github.com>
2022-02-20 17:59:48 -08:00
Kurt
dc3d8e7cec
Minor clean
2022-02-14 21:32:52 -08:00
Kurt
013fe95c8d
Update 22.02.14
2022-02-13 01:18:19 -08:00
Kurt
d17639f956
Add alpha move for encounter slots
...
oops
Closes #3427
2022-02-09 19:21:45 -08:00
Kurt
04856122b7
Simplify landmark alpha move match check
2022-02-09 16:17:44 -08:00
Kurt
988385e450
Add accurate Colo EReader PID generating
...
Closes #3421
Needed to force the locks, since they themselves are nature/gender locked.
2022-02-09 09:26:10 -08:00
Kurt
80eac48a49
Fix no alpha move bypass for alphas
...
https://projectpokemon.org/home/forums/topic/57375-pkhex-new-update-legality-errors-contribution-page/?do=findComment&comment=273294
2022-02-08 23:16:00 -08:00
Kurt
556f711728
Remove random EC set for Trade8b
...
EC is fixed, in the template
2022-02-08 17:37:33 -08:00
Kurt
e12f3004ad
Post-check defer if catchrate disallows tradeback
...
Closes #3412
2022-02-07 18:44:29 -08:00
Kurt
c7ed55ab54
Simplify match rating return value choice
...
Ensure it is ordered Partial->DeferredErrors->Deferred->Match
2022-02-06 16:14:46 -08:00
Kurt
07b3efd14d
Force PID for shiny ponyta
2022-02-05 15:57:34 -08:00
Kurt
3793fd4fd3
Landmark Alphas do not have Alpha Moves
...
nice omission gamefreak
2022-02-05 10:23:00 -08:00
Kurt
69ee363663
Fix EncounterSlot form set order, copy expgrowth for consistency
...
Closes #3387
ty @odin880 !
2022-02-05 00:47:17 -08:00
Kurt
10fff124e5
Minor clean
2022-02-04 22:19:04 -08:00
Kurt
94f2d3ba0b
Fix Flawless IV count comparison
...
lol ty atrius
Closes #3383
2022-02-04 19:31:45 -08:00
Kurt
eed5bb04e3
Merge pull request #3382 from kwsch/pla
...
Update 22.02.04
Individual commits from this PR are not cherry-pickable in a vacuum; these were manually re-committed from a staging repo in order to group together changes for general public viewing. There were over 250 commits on the private development repo for this update.
2022-02-04 18:28:17 -08:00
Kurt
0b32cbf132
Update PKHeX.Core abstractions with latest logic
...
Co-Authored-By: Matt <17801814+sora10pls@users.noreply.github.com>
Co-Authored-By: SciresM <8676005+SciresM@users.noreply.github.com>
Co-Authored-By: Lusamine <30205550+Lusamine@users.noreply.github.com>
2022-02-04 17:35:15 -08:00
Kurt
4c280c4c6d
Add BinLinkerAccessor for better startup perf
...
Read without splitting the arrays by using span instead.
2022-02-04 17:20:56 -08:00
Kurt
66c00e4f8a
Add EC/PID checks for bdsp in-game trades
...
all data stored in the object is pre-computed from the EC xoroshiro (similar to roamers); all have a fixed seed.
2022-01-17 20:22:17 -08:00
Lusamine
96d2ca1dcc
Add Wild8RNG generation method
2022-01-16 01:57:56 -06:00
Kurt
682feab3d4
Return evolution chains with more accurate min-max
...
Closes #3371 ty @Ninjistix !
2022-01-14 00:11:33 -08:00
Lusamine
5dfd7996f7
Uncomment 3 IV static Rotom and Ditto from SWSH
...
https://projectpokemon.org/home/forums/topic/57375-pkhex-new-update-legality-errors-contribution-page/page/10/#comment-272386
Thanks to air6ornepig for reporting.
2022-01-13 13:16:15 -06:00
Kurt
73575624cf
Define specific moveset for Odd Egg / extremespeed mons
...
Closes #3370
2022-01-10 21:27:04 -08:00
Kurt
9cde291595
Enumerate ability permissions in encounter templates, misc updates ( #3368 )
2022-01-08 22:34:04 -08:00
Kurt
75a438ca44
Misc tweaks
2022-01-08 10:33:02 -08:00
Lusamine
522790b8e6
Add Giant's Bed static encounter Trevenant crossover
...
Co-Authored-By: Skadiv <62726360+Skadiv@users.noreply.github.com>
2022-01-07 21:00:44 -06:00
Kurt
f83a9bf833
Expose shiny potential value
...
Not really digging it currently as it doesn't cover multi-state like AlwaysStar-Or-Never, but that single edge case can be handled elsewhere
2022-01-07 17:48:12 -08:00
Kurt
47071b41f3
Refactoring: Span-based value writes and method signatures ( #3361 )
...
Existing `get`/`set` logic is flawed in that it doesn't work on Big Endian operating systems, and it allocates heap objects when it doesn't need to.
`System.Buffers.Binary.BinaryPrimitives` in the `System.Memory` NuGet package provides both Little Endian and Big Endian methods to read and write data; all the `get`/`set` operations have been reworked to use this new API. This removes the need for PKHeX's manual `BigEndian` class, as all functions are already covered by the BinaryPrimitives API.
The `StringConverter` has now been rewritten to accept a Span to read from & write to, no longer requiring a temporary StringBuilder.
Other Fixes included:
- The Super Training UI for Gen6 has been reworked according to the latest block structure additions.
- Cloning a Stadium2 Save File now works correctly (opening from the Folder browser list).
- Checksum & Sanity properties removed from parent PKM class, and is now implemented via interface.
2022-01-02 21:35:59 -08:00
Lusamine
a9896022ed
Allow Ninjask moves on Gen 4 Sport Ball Shedinja
2022-01-02 21:12:46 -06:00
Kurt
bee4a54148
Ignore encounter if bad catch rate
...
Waffling on this, let's just be less lenient in error messages and just outright reject the encounter.
2022-01-02 15:03:04 -08:00
sora10pls
eb71576803
Add New Year's distribution raid data
2021-12-31 19:04:35 -05:00
Kurt
29fd17a6f9
Add friendsafari to HA metadata permission
2021-12-26 23:05:25 -08:00
Kurt
1d0993f852
Remove EvoBase, relocate functions to call sites
...
Utilize FormInfo to remap battle forms into hatch forms so the encounter matches something valid, and is flagged later in FormVerifier
2021-12-26 00:57:40 -08:00
Kurt
b348e38a3e
Don't do DP english->jpn bug for BDSP
2021-12-26 00:06:10 -08:00
Kurt
49a2cd19d0
template=>pk4: Only ENG->JPN if DP, not Pt
...
Language bug was fixed after ENG DP (for other localizations, and Pt)
2021-12-25 23:59:18 -08:00
Kurt
defae6727d
Check bdsp version exclusive hatch locations
...
lol srsly
Co-Authored-By: Matt <17801814+sora10pls@users.noreply.github.com>
2021-12-24 18:39:54 -08:00
Lusamine
8612404f84
Add Slippery Slope Weavile static encounter
2021-12-24 20:06:31 -06:00
sora10pls
260036a90b
Add Holiday 2021 distribution raid data 🎄
2021-12-16 19:04:28 -05:00
Kurt
6b2ea0894e
Bypass encounter slot check for radar slots
...
https://projectpokemon.org/home/forums/topic/57375-pkhex-new-update-legality-errors-contribution-page/?do=findComment&comment=271406
https://discord.com/channels/401014193211441153/679178558597496872/908489378043686944
2021-12-12 13:16:27 -08:00
Kurt
f1fe2f6a8c
Minor clean
2021-12-09 19:30:12 -08:00
Kurt
e84932badd
Remove unnecessary trailing comma
...
nit
2021-12-09 19:10:50 -08:00
Kurt
18469a78aa
Set legal default ball for bdsp bred egg templates
2021-12-09 18:39:03 -08:00
Lusamine
e617beb604
Add Lost Tower to zones where Radar can't be used
2021-12-09 11:02:12 -06:00
Kurt
870a38c607
Use primary constructors for some records
2021-12-09 01:08:46 -08:00
Kurt
51c75dd102
Explicitly implement IFixedAbilityNumber on all templates
2021-12-09 00:46:59 -08:00
Kurt
aa78152856
Implement hidden ability (pokeradar) possibility for slots
...
Co-Authored-By: Matt <17801814+sora10pls@users.noreply.github.com>
2021-12-08 23:41:50 -08:00
Kurt
fcd97d5989
Don't add TR moves as possible for BDSP origin
2021-12-06 00:01:13 -08:00
Kurt
40ed5898af
Merge extended property patterns
2021-12-04 18:37:47 -08:00
Kurt
f55c5bea66
Minor clean
...
no functional change
2021-12-04 17:56:56 -08:00
Kurt
95454246b8
Skip eggs for EncounterTrade check
...
yay reusing Link Trade egg met locations wrong, ty ilca
2021-12-01 10:38:12 -08:00
Kurt
1c82b707f3
Add xmldoc, add egglevel get central location
2021-11-30 17:09:46 -08:00
sora10pls
dfff798855
Label more BDSP flags/work vals
2021-11-27 23:12:29 -05:00
Kurt
66a2046e5a
Fix move search loop
2021-11-26 16:50:30 -08:00
Kurt
614ae6855b
Allow ignored egg moves for v1.0 unpatched games
...
They didn't reference the TamagoWazaIgnore table until v1.1 lmao
mimic BDSP's index fetching and just grab the array of eggmoves directly to avoid the abstraction method's overhead
set evotree back to private because don't need direct access anymore
2021-11-25 11:24:34 -08:00
Kurt
56c7c8336a
Revise roamer shiny xor checking
...
shininess unrelated to your trainer ID, lol
probably also applies to other predetermined encounters like underground and radar, but those aren't EC-seed regenerated (?)
Remove unused interface declaration
2021-11-25 08:32:36 -08:00
Kurt
203b764829
Add zero height/weight flagging setting
...
because people couldn't hacc responsibly, I might as well give them a nudge in the right direction.
Doesn't mean I won't check your "random" choices distribution.
2021-11-24 19:29:02 -08:00
Lusamine
f34bc9c3fa
Add Slippery Slope static encounter Trevenant
...
Closes #3287
2021-11-23 10:26:11 -06:00
Kurt
b2fd51ddab
Revise roamer locations: source from mvpoke
...
Route 220 (00485) now valid
now invalid:
Route 224 (00411)
Route 225 (00412)
Route 227 (00414)
Route 228 (00416)
Route 229 (00420)
matt assumed dppt locations were reused, but not entirely :)
Closes #3296
2021-11-20 09:02:24 -08:00
Kurt
723514e89c
Update 21.11.19 - Brilliant Diamond & Shining Pearl ( #3289 )
...
Big thanks to @SciresM @sora10pls @Lusamine @architdate @ReignOfComputer for testing and contributing code / test cases. Can't add co-authors from the PR menu :(
Builds will fail because azure pipelines not yet updated with net6.
2021-11-19 18:23:49 -08:00
sora10pls
ac9f3941c1
Add new distribution raids 🧬
2021-11-18 19:17:56 -05:00
Kurt
8a48730adf
Lessen severity of Gen1 missing moves if leveled up once
...
Closes #3277
2021-10-29 21:25:48 -07:00
sora10pls
338bc562bb
Add new distribution raids 🦊 👻
2021-10-28 20:05:02 -04:00
Kurt
256b3c66ca
Recognize unhatched crystal eggs, 2F pokecenter location
...
lacking met location data on receipt, can result in 0 for eggs hatched on the second floor of a pokecenter
https://bulbapedia.bulbagarden.net/wiki/List_of_locations_by_index_number_(Generation_II)
Thanks Freezing Dart!
2021-10-19 21:53:22 -07:00
Kurt
4b263bf9bb
Fix pattern matching comparison
...
Wish I had an analyzer to catch this (missing parens) similar to boolean logic
#3271 - resolves the traded egg recognition issue
2021-10-13 20:05:19 -07:00
Matt
b5bc24de35
Unban Pika/vee Dynamax Crystal encounters
2021-10-09 21:40:49 -04:00
Kurt
df34f2b5c4
Disallow downleveled watchtower self hosted shinies
2021-10-09 17:12:54 -07:00
Kurt
dd9b31dbbe
Remove unnecessary property
...
template stores the version; no need to refer to store it separate from the object
Generation being separate is fine for now
2021-10-08 23:30:03 -07:00
Kurt
cb204f335b
Clamp gen1 learning of moves for min move count
...
Hope this doesn't regress for stadium tutoring moves
RB eevee with special 2-move set was being flagged (wanted 4 moves cuz the base 2 aren't the normal levelup moves)
capture references for more concise expressions
2021-10-07 23:55:15 -07:00
Kurt
015afdf369
Hardcode kiribati date shift offset
...
Should have been "UTC+12"
We can just inline the shifting since it'll always add 12 hours to the current UTC time, thus that's the maximum date value possible
2021-10-01 08:35:11 -07:00
Kurt
aa334a55f1
Revise future date clamping to use max current date
...
Transfers use local date rather than UTC date, so we gotta allow dates up to kiribati's current date :)
Co-Authored-By: Matt <17801814+sora10pls@users.noreply.github.com>
2021-09-30 20:15:19 -07:00
Kurt
d4b20b8082
Add nickname checks for WC3, add non-english ageto/colo
...
Closes #3260
Co-Authored-By: FeralFalcon <33670476+FeralFalcon@users.noreply.github.com>
2021-09-30 19:57:52 -07:00