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
Kurt
ca35623124
Remove phantom invisible character, fix de mattle ho-oh
...
#3260 part 1
I searched for more instances of the phantom character, and found the one instance in gen7 zh flags :D
Co-Authored-By: FeralFalcon <33670476+FeralFalcon@users.noreply.github.com>
2021-09-30 19:29:22 -07:00
sora10pls
769021cf77
Add Alolan distribution raids 🏝
2021-09-30 20:04:58 -04:00
Kurt
6a2f778c9a
Allow reload for debug build
2021-09-21 19:42:14 -07:00
Kurt
ea90c9095f
Fix early return bool
...
oops
Probably should be doing this in a branch before pushing :)
2021-09-17 18:15:19 -07:00
Kurt
425f0067c3
Add min level for new gbl types
2021-09-17 17:58:38 -07:00
Kurt
25316fbaef
Add IV ceiling for GBL GO encounters
2021-09-17 17:56:15 -07:00
sora10pls
93cb6de183
Add Solrock/Lunatone distribution raids + new Dynamax Crystals
2021-09-16 20:11:10 -04:00
Kurt
2874f6fc69
Revise pichu volt tackle egg handling
...
Clean up ParseMovesWasEggPreRelearn as only EncounterEgg call into it, and no EncounterEgg has a special moves interface implemented.
2021-09-15 18:43:18 -07:00
Kurt
63580a2835
Minor tweaks
...
For BigEndian we don't have to invert the array access if we just iterate backwards :)
Fix xmldoc for gen1 trades ampersand
Add xmldoc for enc trade classes
No functional change.
2021-09-15 18:13:17 -07:00
Lusamine
a779000097
Include Thunderstorm for Honeycalm Sea Seadra
2021-09-12 16:14:22 -05: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