Kurt
a98ca2351d
Don't SetValue to block if not exportable
...
blank saves do not have the type metadata for the blocks that are spoofed, nor do they have all blocks spoofed.
I suspect things might get more difficult as more value-blocks are identified, which would throw a wrench into things. We'll figure that out at that time :)
Add a test to ensure that the blank save can be created correctly
Closes #2644
2020-01-19 10:25:40 -08:00
Kurt
4567bba03f
More elegant block read/write
...
Removes TONS of unnecessary allocations, and is more simple
2020-01-19 00:55:10 -08:00
Kurt
0244cc7489
Add more info to exception message
...
Closes #2644
2020-01-18 19:44:34 -08:00
Egzon Qukovci Jusufi
ab5016bf7d
Add Subway Scores edition ( #2643 )
...
* Add Subway Scores edition
* Changing the offsets handling
Simply use the block offset as the base and add them to it. Also allow edition on B2W2.
2020-01-18 19:31:36 -08:00
Kurt
63ea57436f
Make the template IV/contest stat array readonly
...
See prior commits
no longer need to clone subarrays, they're shared immutable
2020-01-18 19:11:29 -08:00
Kurt
643c0c1cc7
null/empty check -> check both
2020-01-18 17:33:19 -08:00
Kurt
843330a375
Remove unnecessary null checks
...
this is a null free project /s
dont provide null, else u deserve to get an exception
2020-01-18 16:57:25 -08:00
Kurt
8312c52cc1
Make Move[] readonly list
...
contract: don't modify the template movesets
mystery gift now exposes IRelearn, remove unnecessary type checks
2020-01-18 16:46:38 -08:00
Kurt
0cd9c47953
Make Relearn array for encounters readonly
...
No change em
2020-01-18 16:31:24 -08:00
Kurt
40c2c483fb
Common1-3 => Bool1-3
...
Blocks that use Bool1/2 toggle to the other state; evident when comparing between two different saves. The key doesn't change, only the Type is toggled.
2020-01-18 14:19:01 -08:00
Kurt
f3a9a9d7c2
Misc nullable handling update for winforms
...
Didn't enable it; there's some side effects from properties that used to be null in PKHeX.Core
there's probably more, but just handling a few.
Closes #2642
2020-01-18 13:27:48 -08:00
Kurt
9b0b0cb1a6
Add misc value r/w for trainer8
...
Closes #2639
casting object to generic T : struct isn't valid, so just cast the get/set appropriately
2020-01-17 23:25:02 -08:00
Kurt
2a7d475b5b
Rearrange key list, add syntax sugar methods
2020-01-17 21:53:51 -08:00
Kurt
e4e1681e1c
Clamp roto rally score to 99_999
...
https://github.com/kwsch/PKHeX/issues/2639#issuecomment-575863541
2020-01-17 21:09:54 -08:00
Kurt
e3cafe5cd6
Relocate getsize to extension method
...
use sizeof for clarity, add test to ensure bool size is 1 byte (which is always true)
https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/operators/sizeof
2020-01-17 21:09:26 -08:00
Kurt
c1428107f9
Show Type/Value of block more cleanly
...
Show Type in DropDown
Show Value in TextLabel
Export Value as filename after Key, helps show value
Import filename ignore content after Key (import accounting for value in export filename)
2020-01-17 19:01:24 -08:00
Kurt
a590d3713b
Refine enum with TypeCode names
...
Add GetValue/SetValue/GetType extension methods
2020-01-17 18:59:45 -08:00
Kurt
ff466826af
Flip hgss trade flag state meaning
...
Closes #2640
2020-01-17 16:39:19 -08:00
Kurt
bd9ec72d98
Misc tweaks
...
Add more direct legality analysis constructors
evo count is >= 1
fix invalid test message
disallow gen2 moves if transferred from gen1
use ^1 instead of len-1 for netcore test project
2020-01-16 23:22:54 -08:00
Kurt
c739af4767
Extract item restrictions to separate class
...
Move similar classes to folder
2020-01-16 19:27:29 -08:00
Kurt
baf46f9a3a
cache form/species/format on first get
...
very minor perf consideration, since those values are immutable (except for cross thread shenanigans)
2020-01-16 19:23:29 -08:00
Kurt
e97970023a
Add swsh battle-only forms
2020-01-16 19:03:47 -08:00
Kurt
8315f740cb
Merge branch 'master' of https://github.com/kwsch/PKHeX
2020-01-16 18:54:11 -08:00
Kurt
857124acf0
Swap zen galar -> galar zen
...
ty showdown for changing your convention over a month ago
a01e2a26bc (diff-58e367765263b7e21df251b3e7619b70L9307)
2020-01-16 18:54:09 -08:00
Egzon Qukovci Jusufi
deece433a5
Add SWSH Legends to the Tables ( #2637 )
2020-01-15 20:49:19 -08:00
Archit Date
22ed59d6a3
sanity check necrozma forms ( #2638 )
...
smogon allows Dusk Mane as well as Dusk-Mane as their form argument
2020-01-15 20:48:53 -08:00
Kurt
41f909c08a
Add Roto Rally score, copy Jersey # to other block
...
Closes #2635
2020-01-15 20:48:19 -08:00
Kurt
f1b1f5e64e
Add dump customization options
...
Option to denote block start more clearly with an ASCII string (BLOCK XXXX)
Option to omit block type info
Option to omit blocks that aren't an array type
#2635
2020-01-14 19:03:04 -08:00
Kurt
aecc08f65c
Remove duplicate electrode encounter
...
3IV requirement isn't required for wild slots that are also at the same level-location
Closes #2636
ty @dstevenson12 !
2020-01-14 18:39:25 -08:00
Kurt
f4162d2dce
Add another corviknight location
...
ty anubis
Closes #2633
2020-01-13 22:36:00 -08:00
Kurt
1ba1597878
Dump decrypted/decompressed content instead of raw
...
more useful for analysis this way
2020-01-13 20:55:58 -08:00
Kurt
726947eaf5
Add HGSS starter const/flags
...
Closes #2634 ty @asterysx !
2020-01-13 20:40:44 -08:00
Kurt
df1d317861
Add block dump/import
...
Can do block swaps with other saves (fashion block is d224f9ac) -- export the block and import it to another save!
2020-01-13 19:04:21 -08:00
Kurt
a6aabcdc96
Split out a method before crypto step
...
Allows for capturing the obtaining the raw decrypted data via the PKHeX.Core api
2020-01-13 19:03:27 -08:00
Kurt
2e16fb058c
Show form arguments in gen6/7
...
Clamp form argument load to current list bounds (used to throw arg range exception if invalid)
2020-01-13 17:09:03 -08:00
Kurt
11978dab4f
Make pgt ranger manaphy IsEgg true
2020-01-12 23:00:32 -08:00
Kurt
81f280f4d1
Update EncounterSuggestion.cs
...
weaken legality check, we only check moves
2020-01-12 20:49:33 -08:00
Kurt
5a20dc707d
Rewrite encounter suggestions
...
Don't clone legality templates, and keep suggested information minimal -- this isn't automod
2020-01-12 19:40:36 -08:00
Kurt
693a630882
Handle nullable field check
...
doesn't like interacting with FluentAssertions for null check, so just throw an exception
move fEntries out of loop, fieldinfo is same for all (EvolutionTree)
2020-01-12 18:12:31 -08:00
Kurt
eaeebea923
Remove another method shortcut
...
EncounterSuggestion needs a facelift anyway
2020-01-12 17:00:03 -08:00
Kurt
3b5c7062ac
Minor perf improvement
...
pass in, don't constantly fetch
helps generated IL code be slightly more efficient
2020-01-12 16:49:12 -08:00
Kurt
a8c28369b6
Add Yamask-1 max hp calc for formArg compare
...
Closes #2632 ty @CanoeHope
2020-01-12 16:22:56 -08:00
Kurt
d5948b9dbe
Add relearn moves to Except comparison
...
Burn Up ho-oh is dumb
2020-01-12 16:09:35 -08:00
Kurt
525095d962
Update dependencies
2020-01-12 14:45:45 -08:00
Kurt
48fd36a9a2
Handle g4 shedinja learn case too
...
change 291/292 to Shedinja/Ninjask for easy enum reference check
2020-01-12 14:34:29 -08:00
Kurt
61ecb52347
Remove unnecessary allocation
2020-01-12 12:06:33 -08:00
Kurt
a305c00ac4
Reorder feebas evo for swsh, patch data
...
Updated comment in #2394 with byte swap info
Forgot to check tests when importing patched data :)
2020-01-12 11:48:42 -08:00
Kurt
82eaf39d45
Remove method alias for init mysterygift db
2020-01-12 11:41:23 -08:00
Kurt
9ed441885a
Remove manual personal info fix
...
Change FDDC from 47 -> 41
SM is 40, as the tutor isn't possible in that game.
2020-01-12 11:39:43 -08:00
Kurt
f6fb54aecc
Move shedinja/egg evo chain short circuit
...
Some routes use the evolutiontree directly instead of this method (with the same name); should probably consolidate but meh
This causes Shedinja to yield the correct evolution chain when called directly (because nothing naturally evolves to shedinja; it's created out of thin air as a clone)
Take the egg short circuit with it to keep things simple
2020-01-11 21:43:58 -08:00