Kurt
824e868efe
Flag non-pokeball GO shedinja (evo'd from nincada)
2022-05-03 20:17:28 -07:00
Kurt
7c8f52cbbf
Minor clean
...
invert nesting, add missing if( space, group OT checks together
2022-05-02 23:48:25 -07:00
Kurt
b51cdfe72f
Flag Marks on BDSP/PLA encounters
...
Note to self: Exclusion lists aren't futureproof; inclusion more resilient :)
2022-05-02 19:27:22 -07:00
Kurt
5132f961cc
Add server date checks for WA8 gifts
2022-05-02 18:52:43 -07:00
Kurt
fa76da56c9
Inline some Rand32 calls
...
No functional change
2022-04-26 20:21:26 -07:00
Kurt
af141581ee
Minor tweaks
...
Single underscore discards (one of the c# language revisions allowed reusing the single underscore discard).
Remove a temporary allocation in BDSP flag editor
2022-04-26 19:48:09 -07:00
Kurt
ecee948107
Add gender sprites for main GUI
...
Might trickle this out to the other editors that have gender toggles.
2022-04-24 20:28:56 -07:00
Kurt
ef3cb34387
Refactor EvoCriteria to be a struct, reduce allocation ( #3483 )
...
* Make EvolutionCriteria struct
8 bytes per object instead of 26
Unify LevelMin/LevelMax to match EncounterTemplate
bubble up precise array type for better iteration
* Inline queue operations, less allocation
* Inline some logic
* Update EvolutionChain.cs
* Improve clarity on duplicate move check
* Search reverse
For a dual stage chain, finds it first iteration rather than second.
2022-04-23 21:33:17 -07:00
Kurt
959b9e998b
Only flag r45 roamer if tile is water
...
Grass Tile is okay.
2022-04-23 21:10:09 -07:00
Lusamine
9d3f61b708
Fix MMO roll count
2022-04-23 00:44:55 -05:00
Kurt
ff2e890e69
Revise Overworld8a application of PIDIV
...
Instantiating from template now follows group seed -> spawn 1 correlation, including alpha move.
Differentiates static encounters that don't follow the ow8a correlation, scrambles EC to disassociate.
Adds rand64 to get initial seeds
Set correct level range to match slotSeed; not respecting the slot roll being valid, but whatever.
2022-04-22 21:11:11 -07:00
Kurt
ad249dbb76
Differentiate MO + MMO slot types
2022-04-22 20:33:12 -07:00
Kurt
841fcde2b2
Enhance Pokerus api functions
...
Fixes #3480 ; (0,0) is a valid state regardless of format.
2022-04-14 14:05:32 -07:00
Kurt
a601180821
Extract Pokerus util logic
...
Simplify some GUI interactions when changing strain. Changing the day selection will update the visibility, no need to manually do it again.
2022-04-09 12:27:16 -07:00
Kurt
e6cf5d0baf
Split PKMConverter into multiple classes
...
EntityFormat -> detects byte[] -> ctor() PKM
EntityConverter -> converts between pkm formats
RecentTrainerCache -> used by other classes (not within EntityConverter!)
EntityBlank -> creates blank PKM objects indirectly
2022-04-09 01:39:34 -07:00
Kurt
647b5a3f87
Remove duplicate home tracker flagging
2022-04-02 17:58:17 -07:00
sora10pls
1a082ecf04
Unban Darkrai, associated Met Locations, Sketch Dark Void
...
Also reformat Encounters8b to be consistent with other games' static encounter defs
2022-04-01 06:18:11 -04:00
sora10pls
1b39222edf
Add April Fool's 2022 distribution raid data 🌲
2022-03-31 20:03:40 -04:00
Kurt
6deaf3cb74
More explicit type checks for Encounter class
...
A little more explicit on what it is actually checking for
2022-03-26 14:53:15 -07:00
Kurt
0dc641453b
Condense some expressions
...
Getting close to weeding out all the easy inefficiencies to make me finally tackle the "stop gathering all moves instead of checking individual moves" allocation issue.
2022-03-20 23:28:18 -07:00
Kurt
3d759e1491
Move location lists to separate classes
2022-03-20 21:26:56 -07:00
Kurt
a4533b62d8
Reduce size of display-able met location arrays
...
shaves 5KB off the core DLL
2022-03-20 19:07:33 -07:00
Kurt
54f1e341f9
Spanify spawner object get
2022-03-20 01:46:24 -07:00
sora10pls
f94c16c40f
Add new distribution raids 🦴
2022-03-17 20:04:14 -04:00
sora10pls
5b9b5e4faa
Update Tables8bs.cs
...
Sweet Heart still unobtainable (why did they give it a sprite if it's not functional ingame?)
Azure Flute is now obtainable
Sacred Ash was never obtainable
2022-03-17 14:40:35 -04:00
Kurt
434f89fa0f
Merge branch 'master' of https://github.com/kwsch/PKHeX
2022-03-15 19:23:20 -07:00
sora10pls
5c8d1ceeec
Unban BDSP Ver. 1.3.0 locations + Sketch Judgment
2022-03-15 21:36:26 -04:00
Kurt
d91d242719
Stackalloc EV/AV checks
2022-03-13 22:33:17 -07: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
4841a01b4e
Update GO pickles, move Shiny.Never before Always
2022-03-12 17:39:01 -08:00
Kurt
801892b59e
potential revisions for gible ( #3462 )
...
ddc6f414df
caused it to be `<=` instead of `<`, but maybe the underlying issue was fixed a different way since all tests still pass with this reversion.
2022-03-12 17:39:01 -08: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
85b7541c9f
Update EncounterArea1.cs
2022-03-10 18:04:39 -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
7911cd6d5c
Seal some classes
2022-03-06 12:16:36 -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
3d9c7dc750
Reduce IAwakened from int->byte
2022-03-05 18:46:03 -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
9696da2eb3
Minor clean
...
Seal ComboItem
Reorder methods for easier reading
Fix BulkGenerator living dex setting CurrentLevel -- needs to be after species,form as EXPGrowth can vary for forms.
2022-03-05 18:13:31 -08:00
Kurt
f3b3f15035
Add exp > lvl100 check
...
stop directly writing EXP values lol
2022-03-05 09:12:43 -08:00
Kurt
d0f2b6eeb5
Add .CurrentLevel=$suggest for min legal level
2022-03-04 22:34:11 -08:00
Kurt
7443db3564
Update some xmldoc
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
2991f62052
Reduce allocation for eggmove loading
2022-02-28 18:24:11 -08:00
Kurt
b0f846ae35
Optimize bdsp eggmove bin
...
Strip out unused entries
Use form-less loader format (nothing has formed eggmoves), just let shellos-1 use shellos-0's table.
2022-02-28 18:24:11 -08:00
Kurt
21a77f2197
Guard against invalid egg move indexing
2022-02-28 16:57:51 -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
Matt
0d96d801ac
Unban Sketch Seed Flare, Oak’s Letter hatch locs
2022-02-27 13:15:01 -05: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
5a71ecc8bb
Minor clean
2022-02-24 23:17:16 -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
32789d5609
Fix WB8 friendship check
...
Similar to WA8 friendship check. Previous personal table repoint didn't work because WB8 have .Version=BDSP.
7b05d0c056
Works fine now.
Closes #3448
2022-02-24 20:17:58 -08:00
Kurt
65130a9ae1
temp fix for some fixed h/w statics
2022-02-22 23:18:10 -08:00
Kurt
2753927942
Ignore empty slots in pre-filter
...
Add Palma property to PK8 per bdsp disassembly
2022-02-22 07:34:43 -08:00
Kurt
75bd26d056
Add new Illegal (clone/glitch abuse) flag + check
2022-02-21 20:13:27 -08:00
Kurt
5b981f2832
Un-secret the bulk PKM validator
...
Now has its own button next to verify checksums.
2022-02-21 17:46:32 -08:00
Kurt
2870163fff
Don't check handler friendship if already invalid
...
prevents generating an unnecessary exception when gen == -1
2022-02-21 17:46:03 -08:00
Kurt
f1264a1a97
Handle struct default ctor 17.1 handling
...
Closes #3445
2022-02-21 16:11:58 -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
7b05d0c056
Fix base friendship check for PLA piplup WA8
2022-02-13 15:25:45 -08:00
Kurt
013fe95c8d
Update 22.02.14
2022-02-13 01:18:19 -08:00
Kurt
2267e1a879
Minor tweaks for api consumers
...
Indicate Shiny.Random on home shiny-possible gifts
More detailed exception message for GetLearnset/GetPersonal
2022-02-12 23:40:28 -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
39e47dbb82
Flag SWSH tutor moves
2022-02-09 15:06:14 -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
9c5955c104
Emulate Height & Weight float calculations matching the game ( #3417 )
...
* Accurately implement height/weight calc
* Handle GUI reads
Having Auto off will read and write the values correctly
F6 will handle all the decimal points possible
* Remove no longer needed tolerance check
2022-02-08 18:56:11 -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
59144ddb0d
Check level for new evo methods
...
Can't learn move below this level
2022-02-07 21:46:05 -08:00
Kurt
e12f3004ad
Post-check defer if catchrate disallows tradeback
...
Closes #3412
2022-02-07 18:44:29 -08:00
Kurt
a7051107ea
Conditionally set PP Ups and Purchase/Mastery flags on set import
2022-02-07 15:40:02 -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
b8394516d2
Flag insufficient flawless IVs for eslot8a
2022-02-06 16:08:03 -08:00
Kurt
420dd32aea
Allow lower sheen threshold for beauty
...
Not really worth checking if it is all in beauty; this is just a simple error checker.
Closes #3401
2022-02-06 00:30:38 -08:00
Kurt
e8903505df
Min move count: ignore purchased moves
2022-02-05 16:47:19 -08:00
Kurt
07b3efd14d
Force PID for shiny ponyta
2022-02-05 15:57:34 -08:00
Kurt
3ca8c4c69f
Add GV legality check
...
GUI already did indicate if a value was legal, but this actually flags the pkm in the legality checking report.
2022-02-05 13:48:34 -08:00
Kurt
3793fd4fd3
Landmark Alphas do not have Alpha Moves
...
nice omission gamefreak
2022-02-05 10:23:00 -08:00
Kurt
b252bc129a
Re-enable legality checking error suppression
...
Forgot to disable it from testing, oops.
2022-02-05 09:31:36 -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