Commit graph

1500 commits

Author SHA1 Message Date
Kurt
fa9a809751
Encapsulate item pouch arrays/etc for finer control (#3860)
* Extract/encapsulate inventory legal arrays to interface+class

Hiding them behind methods allows these to be left as ReadOnlySpan<ushort> and thus never allocate on the heap.
Also refactors out some logic for checking if an item is legal.

End result feels more maintainable and is less bloaty (no more passing in a nullable func)

Batch editing
* Add HasType filter

```
=HasType=11
.HeldItem=Meadow Plate
```

slaps a meadow plate on any pkm with grass type
Use `=PersonalType1=11` for only primary grass types; only-secondary-type grass will not match it.
2023-04-16 12:58:07 -07:00
Kurt
c73264d4f3 Minor minor perf
Small changes to reduce some allocations
2023-04-15 01:58:37 -07:00
sora10pls
e2fd292ffa Add Gavin's Palafin eligible date range 2023-04-14 08:16:52 -04:00
sora10pls
f0a34f68ad Disallow form argument on Gimmighoul
Gimmighoul can't increment its form argument counter, it can only ever be 999 on Gholdengo after evolving.

Also reorder switch cases according to National Dex indexes.
2023-04-13 11:28:05 -04:00
Kurt
ecef31f167 Minor clean 2023-04-13 00:05:10 -07:00
Kurt
4caf749064 Misc tweaks
do things a little more directly

blank ctor: we already have the ctor, just invoke it ourselves instead of having to rediscover it
2023-04-10 01:26:54 -07:00
Kurt
0dfb012e5c Add Ditto distribution raids 👛
Adds a helper method for SCBlock to measure a size from header.
2023-04-06 19:28:10 -07:00
Lusamine
d6e1019233 Add met dates for TCG Lechonk and end date for Fly Pikachu 2023-04-01 09:34:15 -05:00
Kurt
4384cadefc Add more xmldoc 2023-03-31 13:00:34 -07:00
Kurt
0087ccb44f Use span for savefile slot API
No more offset fetch
2023-03-25 23:14:50 -07:00
Kurt
5ce3e734b8
Skip initial cctor alloc on non-byte primitives (#3850)
Runtime/jit repoints these to the dll rather than heap if we're Little Endian (always, otherwise will allocate like before).

Eliminates quite a few static constructors, so even faster startup. Items later.
2023-03-25 17:55:55 -07:00
Kurt
ecbf6c06de Permit pokewalker courses for all languages
Wrong: #3594
Pokewalkers can interact with games they're not paired to (and receive gifts!).

Closes #3837
2023-03-19 12:21:43 -07:00
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
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
f77e605cae Update AreaWeather9.cs 2023-02-08 08:19:38 -08:00
Kurt
fe2cbeac31 Add date restrictions for WC9, pika diff 2023-02-03 20:30:41 -08:00
Kurt
8279615040 Fix bit wrap met location matching
Use ulong bitmask not u32
2023-02-02 15:12:18 -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
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
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
f5ea250975
Show star square for everything in Gen9 (#3689) 2022-12-18 00:16:29 -08:00
Kurt
c776d8db43 Treat level2 yungoos as scripted encounter 2022-12-17 14:54:57 -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
Kurt
650ee8ae40 Don't yield SV version eggs, egg OT gender check 2022-12-06 21:34:14 -08:00
Kurt
9f480dcbe2 Set fixed gender for static9
Closes #3671
2022-12-05 14:10:00 -08:00
sora10pls
046ffae536 Remove commented Gimmighoul encounters
Everything is accounted for
2022-12-03 18:49:44 -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
Kurt
7adf48982c Extract more Tera raid props to common interface 2022-11-26 14:23:32 -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
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
10d0199521 Add EC for slot9 2022-11-25 16:01:40 -08:00