Commit graph

375 commits

Author SHA1 Message Date
Kurt
5d3bc289b6 seal hunting
Mark things as sealed as they shouldn't be inherited from or overriden in a derived class.
2020-09-07 13:51:13 -07:00
Kurt
cf9e5ec37f Minor refactoring
Change Ability array to IReadOnlyList, add method to check ability index in personal data
Suppress some message warnings
Change EvolutionChain short-circuit for VC to jump from gen6 directly down to gen2. There aren't any notradeback 1 situations, so a notradeback1 will always start with g=1, so no need for the other if-continue.

Simplify pk5 conversion
2020-09-06 10:53:13 -07:00
Kurt
c2ec4d55e4 Minor clean
Add some xmldoc, remove some empty lines, move some small logic pieces to a better spot
2020-09-03 14:28:51 -07:00
Kurt
541c9761df Minor clean
Make flag indexes immutable
Rename some properties for clarity
2020-08-14 20:23:54 -07:00
Kurt
1df2bd444a Remove unused using 2020-08-09 20:02:06 -07:00
Kurt
ad6728fb5c Minor tweaks
Check egg encounter for state rather than re-deriving some properties on the fly
Only check memories if memories are exposed
Remove debug assert (not always true?)
2020-08-04 22:56:55 -07:00
Kurt
4909256414 Split shadow info entry to separate files
#2941
add IV fields
2020-07-29 13:36:33 -07:00
Kurt
e4092e64df Relocate gen3 ereader berry logic 2020-07-18 22:51:55 -05:00
Kurt
a21bb09c37 Perserve & Display Favorite flag for items
Also clamp give all for TMs to 1 instead of whatever the giveall value is, like for prior games' HMs

reuse the "free space" bool; no real benefit in increasing the amount of abstraction (even though that's my current urge for legality)
2020-07-18 20:15:41 -05:00
CanoeHope
455a787ee4
Add MomSkin to League Card (#2936) 2020-07-11 09:22:19 -05:00
CanoeHope
8027fe30b9
Add ArmorDex complete League Card marker (#2935)
Should work even if you don't have the Expansion Pass. Of course you need the latest update.
2020-07-10 07:42:44 -05:00
Kurt
afdd40bcee Check counter rollover the opposite way
FFFF and 0000 -> prefer 0000
FFFF and 0001 -> prefer 0001
...
FFFF and FFFE -> prefer FFFF

they shouldn't be desync'd (incremental); only the uninitialized case is important to handle.
2020-07-02 17:44:03 -05:00
Kurt
9da5263a52 Handle DLC1 records
Accessible in block editor, not as the usual trainer records.

Closes #2913 , ty @CanoeHope!

Co-Authored-By: canoehope <canoehope@users.noreply.github.com>
2020-06-30 23:00:48 -05:00
Kurt
fec91e4878 Revert "Show new trainer records"
This reverts commit 19ff1f584a.
2020-06-28 13:44:26 -05:00
Kurt
993673f0de Minor clean
no functional change
2020-06-27 23:36:53 -05:00
Kurt
a7ba178005 Remove unreachable/const logic
Earlier compares result in some logic being unnecessary

The Gen7 level up move compare was actually an oversight, so it's a worthwhile fix :)
2020-06-27 22:44:14 -05:00
Kurt
19ff1f584a Show new trainer records
#2913
2020-06-27 13:48:45 -05:00
Kurt
a2d9f06350 Differentiate AbilityType from AbilityNumber
invert ability index favoring so that the first ability index is most favored

ability num:
-1=>0/1/2
0=>0/1,
1=>0
2 =>1
4=>2

Ability Type:
0,1,2=>0,1,2
3=>0/1
4=>0/1/2

Should probably get rid of AbilityNumber definition usage but it's so entwined in the trade/static definitions...
2020-06-22 22:01:42 -05:00
Kurt
4a5abab51f Fix raid dump syntax
Closes #2896
2020-06-22 21:28:02 -05:00
Matt
ed7d32f9bb
Fix Gigantamax1 get/set in Zukan8 (#2897)
Bit 0, not bit 1.
2020-06-22 13:06:25 -05:00
Kurt
b53a29a0af Add flag for urshifu-1 gmax pokedex
ty @sora10pls
2020-06-20 20:00:35 -05:00
Kurt
1ab7c916ce Clear mega slowbro seen 2020-06-20 14:31:47 -05:00
NPC-C83H
64be77f46c
Update legal raid counts (#2878) 2020-06-20 08:16:36 -05:00
Kurt
36dd5ece21 Initial Isle of Armor support
Co-Authored-By: sciresm <sciresm@users.noreply.github.com>
Co-Authored-By: Matt <sora10pls@users.noreply.github.com>
Co-Authored-By: Archit Date <architdate@gmail.com>
2020-06-19 18:51:15 -05:00
Kurt
2cdb5d26db Clean up some method signatures
rename things to be a little more consistent in naming conventions
2020-06-16 21:46:22 -05:00
Kurt
51a4001ce6
Update RaidSpawnList8.cs 2020-05-29 11:20:28 -07:00
Kurt
7f1039d155
Update RaidSpawnList8.cs 2020-05-29 11:19:49 -07:00
Matt
4d47e4ab83
Pretty up GP1 summary/filename (#2846) 2020-05-29 11:13:49 -07:00
Kurt
afa368823e Minor clean
handle some compiler messages
2020-05-26 16:59:47 -07:00
Kurt
46b443903d Fix SM dex form fetch for spewpa
Closes #2826

It doesn't find it in the SM table, but didn't return -1
rework logic flow to return when found, rather than after loop finishes.

Also fix display off-by-1 since we're not using zero indexing for our entry numbers.

Thanks @Ammako !
2020-05-24 20:42:45 -07:00
Kurt
9619306a8f Update BattleTree7.cs 2020-05-24 18:42:08 -07:00
Kurt
09cbe47240 Add battle tree scout edits
Closes #2833
2020-05-24 18:31:52 -07:00
Kurt
053eef2767 Add encount block
Closes #2840 -- access via Block Editor "Encount"
Tons of undecipherable junk in the roamer struct; looks like a mishmash of past gen code repurposed for their pseudo-stationary|roamer encounter.

ORAS has the same structure (same size/block), but the roamer portion isn't used
2020-05-24 17:31:10 -07:00
Kurt
8ce4f64239 Move files to their correct location 2020-05-24 17:11:39 -07:00
Kurt
6cce57d505 Add configsave to accessor
xy battle background makes up the other 5 bits; good to know!

reorder enum to match comments in properties (switch=0)
2020-04-26 15:17:58 -07:00
Kurt
ca48b4e617 Fix nick set
Closes #2817
2020-04-25 17:18:04 -07:00
Kurt
70e7c01896 Add more block-key settings
Co-Authored-By: Matt <sora10pls@users.noreply.github.com>
2020-04-16 13:37:48 -07:00
Kurt
ee1cfa8912 Hanle some compiler messages 2020-04-14 10:52:19 -07:00
Kurt
33bdacebe8 Minor tweaks
Handle some compiler/extension suggestions
2020-04-12 16:07:59 -07:00
Kurt
270d984130 Minor clean
Remove unnecessary null checks
Mark some methods with nullable type
2020-04-04 19:30:50 -07:00
Kurt
d65338557e Add hp stat 2020-03-24 11:44:54 -07:00
Kurt
429a3b1a08 Expose decoration list for editing
Closes #2785 , not making a GUI for this (someone else can do it)

Moves RTC3 to the appropriate folder
2020-03-17 12:14:01 -07:00
Kurt
1c6b99185d Ignore bits above the first 3
Some save files use bits 3-7?
2020-03-15 11:11:55 -07:00
pi1024e
8a1e73e5b3
Change OT_Class to have an expression body (#2759) 2020-03-13 10:28:50 -07:00
Kurt
fbd533092d Fix misspelling of the word "Received"
Closes #2757

Co-Authored-By: pi1024e <pi1024e@users.noreply.github.com>
2020-03-12 15:05:34 -07:00
Kurt
0aa6282d73 Sanity check value types via generic method 2020-03-11 16:31:53 -07:00
Kurt
f9bbeba3ad Add get/set for swsh current box
Closes #2742

Co-Authored-By: Matt <sora10pls@users.noreply.github.com>
2020-03-10 23:18:51 -07:00
Kurt
4fb33413e3 Only set display shiny of not owned
Closes #2740 ; we don't want to set display shiny if it's not shiny

we only want to set display-shiny if (!owned && shiny)

Co-Authored-By: canoehope <canoehope@users.noreply.github.com>
2020-02-28 17:35:50 -08:00
Kurt
d80d1598dc Only set displayed form if not previously owned
Closes #2739
2020-02-28 15:31:26 -08:00
Kurt
0d4cff81c6 Clean 2020-02-15 14:29:23 -08:00
CanoeHope
acb9cc2a9d
Add Gender to Gen 8 Trainer Card (#2694) 2020-02-10 12:02:52 -08:00
Kurt
1bf22467de Add Rental Team (gen8) reader 2020-02-07 17:23:26 -08:00
Kurt
a73f14836d Add HoF time block accessor object
Not gonna add it to the interface
Closes #2691

Co-Authored-By: canoehope <canoehope@users.noreply.github.com>
2020-02-07 15:59:36 -08:00
Kurt
7866958af8 Add dynamax crystal type, exclude from activation
Closes #2690

Co-Authored-By: slp32 <slp32@users.noreply.github.com>
2020-02-07 10:16:27 -08:00
Kurt
cc05a38548 Clear team slots on blank load
Closes #2688
2020-02-06 20:11:58 -08:00
Frank
e5286f3325
RaidSpawnList8 fix DenType and Flags (#2686)
* RaidSpawnList8 use enum RaidType for DenType

fix IsWishingPiece and add WattsHarvested

* Add check between RaidType.Event and IsEvent flag
2020-02-06 17:12:26 -08:00
Kurt
bc45660f99 Update legal raid clamp
https: //github.com/kwsch/PKHeX/issues/2681#issuecomment-582215498
Co-Authored-By: slp32 <slp32@users.noreply.github.com>
2020-02-04 19:06:33 -08:00
Kurt
2e1528b199 Merge branch 'master' of https://github.com/kwsch/PKHeX 2020-02-04 16:55:42 -08:00
Kurt
7e6cae4004 Clamp activating raids to available indexes
Closes #2681
2020-02-04 16:55:40 -08:00
CanoeHope
9b172d2666
Correct Day offset (#2679)
a1ae14325a (commitcomment-37103852)
2020-02-04 07:35:02 -08:00
Kurt
0e1fd49be1 Decrement runtime language if appropriate
Closes #2674
2020-02-03 19:16:30 -08:00
Kurt
a1ae14325a Add more block documentation
Ty @CanoeHope !
Closes #2677

To edit these values, use the Block Data editor and select the *Object Trainer Card

Co-Authored-By: CanoeHope <canoehope@users.noreply.github.com>
2020-02-03 18:56:35 -08:00
Kurt
b31f0428cf Add raidtype docs & wishing piece indication 2020-02-02 10:21:34 -08:00
Kurt
43036e7e94 Add team index recognition
lock by default until we find the location that locks team slots
2020-02-01 18:56:23 -08:00
Kurt
c301ce88ab Update Random to be a bit more thread safe
Random isn't thread safe; users of PKHeX.Core.dll might run multithreaded operations (see PKSM + ALM), so we need to have a thread-specific RNG available.

Thread Local get; to improve performance, save the random object locally whenever it is used more than once in the method.

https://docs.microsoft.com/en-us/dotnet/api/system.threading.threadlocal-1?redirectedfrom=MSDN&view=netframework-4.8
https://stackoverflow.com/questions/18333885/threadstatic-v-s-threadlocalt-is-generic-better-than-attribute/18337158#18337158
2020-01-25 21:49:52 -08:00
Kurt
46156b48c6 Add missing generation to accessor type name
Now matches Interface declaration style (iAccessorGenGame), and is consistently named with the other accessors already using the same naming style
plus they are now ordered in the file tree :)

no functional change
2020-01-23 23:22:54 -08:00
Kurt
2adbca628b Add raw value edits
Not done for Array types or Object types
muh reflection, such spooky

mark Offset as non-browsable so it doesn't show up in propertygrid if the block is being edited by a grid :)

I imagine a struct-type-sensitive array property grid edit could be done via Buffer.BlockCopy to a dest array, but there's so few Array blocks... so meh
2020-01-23 21:30:39 -08:00
Kurt
a88c7c4800 Add more trainer card/status fields & stats
Closes #2658 ty @CanoeHope !
Mostly just serves as documentation; with the amount of fields being editable increasing, hard-coded GUI might not be optimal here. I'm thinking something like a PropertyGrid based on the selected block which will pull up the Block object if the key matches... for fields, something like a dynamically populated list or something.
2020-01-23 18:31:10 -08:00
Kurt
4ea2be250f Add TitleScreen8 and Trainer Card team structs
Closes #2653 , ty @CanoeHope !

Editable from the Trainer Info button, comes with a Copy From Party button for each.
2020-01-21 23:23:27 -08:00
Egzon
9cce65e937 Fix Subway Super checks (#2652)
Oops, it's actually a byte...
2020-01-21 11:00:09 -08:00
Kurt
b84cae9ff5 Fix box name write for sav8swsh
only used via the view-all-boxes popup when switching boxes
ty anubis!
2020-01-20 22:04:52 -08:00
Kurt
6fdc71b2e4 Update tower record set
Record ID const declaration for reuse
Change 255->300 for streak max
Set record as well (ignore currently set value if modified via dropdown)
Closes #2649

Not sure if Money and BP can get a similar record-set treatment.
2020-01-20 18:16:46 -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
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
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
41f909c08a Add Roto Rally score, copy Jersey # to other block
Closes #2635
2020-01-15 20:48:19 -08:00
Kurt
7e6edbaded Remove unnecessary constructor
Make key readonly
2020-01-11 14:18:11 -08:00
Kurt
3fa44361e6 Update block fetch & blank init
blanks: {key,size}
fetch: get block by key (index isnt the same between patches, as blocks with different keys get added). The savefile stores them as a SortedDictionary (by key), hence the shifting.
2020-01-09 08:59:26 -08:00
Kurt
3d581283c2 Minor clean
move Text.cs manual Courier new() to the designer, have it dispose when form is disposed. Set it as the numericupdown's font and just reuse that :)
2020-01-05 18:46:30 -08:00
Kurt
e21d108fb2 Split PokeCrypto from PKX
All logic in PokeCrypto is separate from the rest of the PKHeX.Core
library; makes it easy to just rip this portion out and reuse in other
projects without needing the entirety of PKHeX.Core logic

optimize out the CheckEncrypted to the actual path, separate methods.
Only usages of this method were with hardcoded Format values, so no
impact
2020-01-04 14:48:39 -08:00
Kurt
f4bafe0809 Add extension methods for gym team get/set for all
Closes #2607

SAV6XY/AO had GymTeams get/set, this now makes similar logic accessible
for even SAV5BW/B2W2.
2019-12-28 22:32:45 -08:00
Kurt
be50abcc44 Add SubEventLog block object, etc
Adds gym team records, remove from savefile properties
update block list documentation
2019-12-28 21:53:58 -08:00
Kurt
0ce6254cee Add GymTeam records for Gen5 saves 2019-12-28 21:51:10 -08:00
Kurt
9ee2b08ce5 Update rare flag logic
Closes #2601

Add ComponentModel attributes for properties, add u64 typeconverter for
propertygrid
2019-12-26 13:39:07 -08:00
Kurt
0a8c791e10 Pad with null terminators rather than 0
Can have a single digit (not forced to 3), so null terminate I assume.
2019-12-25 21:31:49 -08:00
Kurt
97c3c6b610 Add raid/den detail browser
Hold alt when hitting activate all to dump instead
I've seen DenType=5 Event=2 for at least one raid so far... not sure if
the event/rare properties are accurate.
2019-12-23 23:30:21 -08:00
Kurt
ce463d057a Add Pikachu Beach Score editing for YW saves
Closes #2585
2019-12-21 15:17:05 -08:00
Kurt
4bf71de621 Minor clean
automatically update total_watt if insufficient
SAV8 is not SAV8SWSH
#2583
2019-12-12 22:58:18 -08:00
Atzgi
d9c59666e0 Add watt in trainer data editor (#2583) 2019-12-12 16:27:01 -08:00
Kurt
8acb336d51 Use enum for species comparisons
slightly easier to read with named values
2019-12-08 17:39:19 -08:00
Kurt
7b6d2bfa48 Fix trainerID trainer card write 2019-12-06 16:59:54 -08:00
Kurt
f45d730faf Add TrainerID for trainer card
Closes #2556
2019-12-03 19:54:34 -08:00
Kurt
e9b9141eda
Fix property name typo
efec331741 (r36246093)

ty @AnalogMan151
2019-12-03 10:39:57 -08:00
Frank
efec331741 add some customization options in MyStatus8 (#2552) 2019-12-02 13:40:09 -08:00
Kurt
89b4bc81b9 Update raid structure unknowns 2019-11-29 18:48:12 -08:00
Kurt
3c4e668d9a Add alcremie formArg gui
Closes #2538
Standardize nomenclature as FormArgument, add interface for those
exposing the property.
2019-11-29 10:44:52 -08:00
Kurt
48a87397ec Split daycare8 to its own file
Add method to fetch daycare seeds from metadata
2019-11-28 21:13:53 -08:00
Kurt
d3bd37a950 tweak last saved string format
ty @sora10pls for testing
2019-11-26 23:10:28 -08:00