Kurt
6029c15521
Fix incorrect GameVersion reference
2021-06-09 22:56:19 -07:00
Kurt
f984862f48
Extract catchrate check
2021-06-09 22:54:21 -07:00
Kurt
49b7d4522c
Sync missing change
2021-06-09 18:40:17 -07:00
Kurt
2083201ee1
Add ObjectType custom filter logic
2021-06-08 20:28:13 -07:00
Kurt
2abf95cdf8
Minor clean
...
expand some expressions, extract some methods, add comments
2021-06-08 20:14:55 -07:00
Kurt
f529fd1432
Add xmldoc, split out some operations
2021-06-07 20:03:14 -07:00
Kurt
035584dc7c
Extract templating from EditPKMUtil, rename methods
2021-06-07 20:02:57 -07:00
Kurt
f7423daf7a
Add array sanitization if error was thrown
2021-06-07 19:59:08 -07:00
Kurt
a07549f013
Extract sketch valid check
...
GetCanKnowMove should be checking for Smeargle knowing thousand arrows/waves.
GetNeededMoves should also return 1ka/1kw for needed moves, and then no encounters.
All uses of InvalidSketch are behind that method, so any future Smeargle modifications (like sketching a dummied move) will be checked (yay BDSP considerations).
2021-06-06 23:36:59 -07:00
Kurt
c98717bdc0
Fix namespaces
2021-06-06 23:34:15 -07:00
Lusamine
e66d5eaad5
Remove another duplicated distribution index
...
Index 24 is the same as 26, but they cross epochs from base to DLC1.
Keep the later one since it encompasses all legal Wild Areas.
2021-06-06 21:46:23 -05:00
Kurt
871de4e213
Add more xmldoc
2021-06-06 11:56:54 -07:00
Kurt
bad65dd4ec
Enhance debugging obj->ToString indications for evo checks
2021-06-06 11:49:41 -07:00
Kurt
bf400f27fe
Add optional form param for learn check
2021-06-06 11:49:13 -07:00
Kurt
200bdbd553
Sanity check form prior to yield checks
2021-06-06 11:48:54 -07:00
Alberto Tudela
b173c659d7
Update spanish translations ( #3212 )
2021-06-05 17:21:39 -07:00
Lusamine
72b4975429
Remove inaccessible water nest encounters
2021-06-05 18:11:19 -05:00
Lusamine
aee35cbe81
Clean up duplicated distribution indices
...
Removes duplicates if every encounter in the same index is the same as a
previous index. The following were affected, and only the first index
was retained.
- 5, 7 (Index 2 has 1 move different on 1 mon)
- 3, 4
- 11, 13
- 16, 18
- 27, 28, 30, 32
- 33, 35
- 36, 38
- 42, 44
- 45, 47
- 48, 50, 52
- 53, 55, 57
- 59, 61
2021-06-05 16:33:41 -05:00
Kurt
6ee67e624d
Update gen2/3 setdex's too
2021-06-04 17:29:55 -07:00
Kurt
d30e00ffbe
Clean up SetDex guard clauses
...
add egg checks for gen4-6/8, group species bound checks
2021-06-04 17:26:06 -07:00
Kurt
7ee60d9e98
Update Zukan4.cs
...
Set seen after gender-seen, as we check seen in that method (first or second seen gender).
2021-06-04 17:19:12 -07:00
Kurt
3a1fbc9b88
Don't pass key byref
...
Pass byval and return the result; emits less IL
mark for inlining
2021-06-04 14:19:07 -07:00
Kurt
ad79833420
Update EncounterEvent.cs
2021-06-04 13:53:02 -07:00
Kurt
8222297da8
Remove enumerating when loading event templates
...
Just allocate the parent array and pass it to HashSet; having an ICollection, prevents resizing repeatedly and gc'ing the temp array is cheap.
Actually, only create a hashset if we're adding a gift from external DB. Saves on that allocation, and keeps the final result as an array (fastest iterating).
2021-06-04 13:48:02 -07:00
Kurt
041074f26c
Decrypt sav8 blocks in-place
...
Removes 1.5MB of allocation; we don't need to preserve the encrypted state.
Revise savefile clone operation to use its own constructor, as we need to call the base constructor first (backup file clone...) prior to decrypting.
Expose CryptStaticXorpadBytes as GetDecryptedRawData no longer exists.
2021-06-04 13:16:00 -07:00
Kurt
64039b4070
Force shiny state of raids
...
Co-Authored-By: Matt <17801814+sora10pls@users.noreply.github.com>
2021-06-03 17:50:48 -07:00
Kurt
927ccee613
Cache all created regexes
...
Regex objects aren't cheap, and the RegexCache has DefaultMaxCacheSize = 15.
We're checking 4,000 regexes for each unique string, so just keep the created regexes around instead of cycling new through the cache.
+4MB passive consumption, but each IsFiltered call no longer generates >4MB of discarded objects.
My unit tests run >25% faster now... nice?!
2021-06-03 17:24:45 -07:00
Kurt
8ec25da194
Condense expression
...
single bool branch
2021-06-03 17:08:42 -07:00
sora10pls
a2492eddd9
Add Frog distribution raids
2021-06-03 20:07:07 -04:00
Kurt
066aedfc21
Separate scblock ctor's
...
No longer need to set byte[] twice
Add value-setter checks for bad mutations (size change, bool1<->bool2 only)
2021-06-03 12:35:39 -07:00
Kurt
8c970ec991
Minor tweaks
...
no functional change, readability++
add more xmldoc
2021-06-03 12:04:19 -07:00
Kurt
b81df689e6
Pass gender to moveset dreamworld entries
...
Oops.
ty anubis for notifying me
2021-06-01 13:54:43 -07:00
Kurt
138501da2f
Minor clean
...
Condense some expressions
Use less linq
Rename some fields
2021-05-29 15:31:47 -07:00
Kurt
64dbb9ae74
Abstract filter matching
...
Similar to prior commit adding modifications and suggestions
2021-05-27 14:43:32 -07:00
Kurt
05e37eb073
Extend batch editing to allow for plugins to add new mods
2021-05-27 12:20:00 -07:00
Kurt
236fd2943f
Add hgss pokewalker stored pk4 fetch
...
ty atrius
2021-05-25 10:07:14 -07:00
Exorcism
02605b402d
Update French Translation ( #3209 )
...
* Update language French (Français)
* Update French Translation
* Update MessageStrings_fr.txt
* Update text_EncounterType_fr.txt
* Update text_Ribbons_fr.txt
* Update text_Ribbons_fr.txt
* Update lang_fr.txt
2021-05-24 09:16:07 -07:00
Kurt
9b4e085890
Clamp fullness-byte (Playfulness) at maximum
2021-05-23 22:06:40 -07:00
Kurt
54611032c9
Refine crystal egg checks
...
Disallow crystal eggs if met data is not present
Set crystal met location more fluidly
2021-05-23 12:50:42 -07:00
Kurt
c9499f95be
Add sociability to Memory editor, add legality checks
2021-05-23 11:22:09 -07:00
Kurt
b2e4ca393b
Minor perf improvements
...
GetHexStringFromBytes: don't allocate temp slice array on heap
Tile: Span Slice toarray rather than new+copy
2021-05-23 10:56:25 -07:00
Kurt
15afd6f3bc
Move mail get to sav obj
2021-05-22 09:28:04 -07:00
Kurt
96115916b2
Prevent overflow of memo write
...
Setting too many invalid entries will bloat above 500, so clamp the max.
Preallocate entries size rather than 4 always
2021-05-22 09:27:46 -07:00
Kurt
904ba8787a
Uppercase gamesync ID
...
ok matt
2021-05-21 19:24:30 -07:00
Kurt
2c9b82824a
Check static as-egg locations accurately
...
Thanks @sora10pls
2021-05-21 13:57:07 -07:00
Easy World
6b693b9b7e
Update Chinese translation ( #3208 )
2021-05-20 22:04:32 -07:00
sora10pls
3fb4bd7db2
Add Wooloo distribution raids
...
Nice
2021-05-20 20:16:13 -04:00
Kurt
d41fc571d0
Keep original trashbytes if string isn't changed
...
Similar to nickname setter
2021-05-20 16:54:53 -07:00
Kurt
207680b2f1
Update translatable lists
2021-05-20 15:05:40 -07:00
Alberto Tudela
7d27136bdc
Update spanish translations ( #3207 )
...
* Update spanish translations
* MInor Folder list fixes
* Update spanish translation
2021-05-20 13:21:21 -07:00
Kurt
4b3a3a4afe
Update 21.05.21
2021-05-20 09:37:15 -07:00
Kurt
d83b2331ac
Enhance nullable indication of array
...
Fix off by one unit test
2021-05-20 08:52:47 -07:00
Kurt
04ea271b8b
Update ShowdownSet.cs
2021-05-20 08:24:22 -07:00
Kurt
2655892db1
Choose a gender on unspecified
2021-05-19 17:12:30 -07:00
Kurt
fac7555c50
postfix gender form
...
handle all permutations of Indeedee-M/F (M/F)
if it detects (F), it uses female, otherwise it uses whatever the detected form was (0/1) and sets the values accordingly.
2021-05-19 13:12:18 -07:00
Kurt
fc8f9ebd56
Add first row for subregions, remove header from countries txt
2021-05-19 09:36:20 -07:00
Kurt
d6b8a018e6
Fix 3DS console region indexing
...
mystery gift region ID is not the same indexing as 3DS console region
2021-05-19 09:11:54 -07:00
Kurt
2658c8b89a
Update 21.05.19
2021-05-18 17:49:54 -07:00
Kurt
a03f5dcc9d
Make EncounterTrade met location use inheritance
...
hovering would grab ILocation, which didn't use the flexible met location fetch.
Just repoint stuff and have it as a virtual call, since most of these are fixed values, there's no point increasing the size of the classes besides those for gen4.
2021-05-18 17:14:17 -07:00
Kurt
99f0978630
Extract random date to util
2021-05-18 16:58:53 -07:00
Kurt
53e9d31545
Allow searching encounter db for shiny state
...
random shinies behave like not-shinies
so it only really filters for "always shiny" or "can be nonshiny".
2021-05-18 16:17:57 -07:00
Kurt
74e0cba3b0
Minor tweaks
...
use assert instead of manual exceptions
span
remove some dead logic
2021-05-18 16:16:48 -07:00
Kurt
25fa52e597
Use correct SID
...
lol I had copied from VC->gen7
2021-05-18 13:33:36 -07:00
Kurt
215b1c6e23
Remove whitespace
2021-05-18 13:33:13 -07:00
Kurt
2c820bfbe9
Minor tweaks
2021-05-18 13:29:55 -07:00
Kurt
ae0b2f13ea
Fix erroneous value setters
2021-05-18 13:12:43 -07:00
Kurt
2d8d3e04fc
Move mxyz to subclasses
2021-05-18 13:04:23 -07:00
Kurt
fbba64c0e6
Clean up catch rate comparisons
...
Add dragonite to the uncapturable list, removes catchrate comparison for dragonite since it's filtered out.
Skip some linq by doing the loop directly in the method. Replace local methods with captured variables with direct if-returns.
2021-05-18 10:38:01 -07:00
Kurt
565f161226
Show shiny state of encounter in db
...
Force shiny state for GO encounters
For encounters, this interface property is mainly just for exposing metadata for sprites.
2021-05-18 10:36:45 -07:00
Kurt
4c8772ff14
Update EvolutionRestrictions.cs
2021-05-16 11:12:16 -07:00
Kurt
5a012e85a0
Fix gen8 move threshold evo checks
...
gen7 allows all moves to be reminded; gen8 reverted that.
add greedy minlevel return, and reduce array size allocation by 270 bytes
2021-05-16 00:00:29 -07:00
Kurt
0e2f070510
Clean up know-move-evolution checks
...
Looks like Mr. Rime case wasn't being handled, so I rewrote it. Better performance, less complexity. No need to double-reference the moves.
Cache a single Valid evolution result; every parse can reuse that object.
2021-05-15 21:41:04 -07:00
Kurt
4e12e54028
Replace regex parse with string find
...
Only remaining uses of regex in the sln are wordfilter (required), and unescape for QR replies from web api.
This is slightly faster -- cover all cases if the response json changes (shouldn't).
2021-05-15 12:39:37 -07:00
Kurt
ad4aec3439
Improve resource loading speed by precomputing full manifest lookup
...
no longer needing to compare manifest names with case insensitivity before finding the manifest name.
muh startup speed
2021-05-15 11:56:06 -07:00
Kurt
44affe3caa
Add flag unit tests, more xmldoc
2021-05-15 11:32:25 -07:00
Kurt
ebefa0a918
Update ShowdownSet.cs
2021-05-15 10:20:19 -07:00
Kurt
2b25cd1e18
add notes for oras endscroll data
...
https://projectpokemon.org/home/forums/topic/49356-battle-chateau-help-well-not-really/?do=findComment&comment=266428
2021-05-15 01:46:33 -07:00
Kurt
e31980d15e
Clean up nickname parsing, make Gender an int type
...
Breaking change for anyone using IBattleTemplate (alm)
2021-05-14 23:41:14 -07:00
Kurt
acdbda4e12
Split DateUtil from Util class
2021-05-14 16:46:48 -07:00
Kurt
3ac1882151
Move BinaryCodedDecimal conversions to separate class
...
Add unit tests, clarify names
2021-05-14 16:32:26 -07:00
Kurt
50b15cd740
Use range/index
...
More in line with modernizing the codebase with latest c# syntax
improve web-qr decode speed slightly (no linq skiptake)
get money/coin mask without a temporary string (lol performance)
2021-05-14 15:30:55 -07:00
Kurt
871f9b0627
Convert checksum operations to span-based
...
Fix SAV.Data references in SAV_Misc4 to use the General block instead
2021-05-14 12:30:40 -07:00
Kurt
014835ed14
Add BigEndian span conversions
2021-05-14 12:23:12 -07:00
Kurt
b9d9766674
Fix typos, update block list notes
2021-05-14 12:16:08 -07:00
Kurt
07584a8774
Add chateau score, seaside cycle score
...
Update some other areas too
looks like this fixes the sube pkx fetch method for extraslots, yay.
2021-05-13 23:12:53 -07:00
Kurt
1fe77c004c
Cache transfer location arrays if created once
2021-05-11 23:32:29 -07:00
Kurt
b97b54e5e4
Skip first indexes if requested
...
Fixes partition2 calls
2021-05-11 23:25:36 -07:00
Kurt
013aac602f
Don't clone string resources on fetch
...
Hardcode egg names, don't rely on string resource loading order for SpeciesNames to get an un-mutated copy.
fixes the infrequent race condition for legality unit tests
2021-05-10 18:41:01 -07:00
Kurt
3597eb14ad
Improve gen1-4 species name fetch
...
reduce nesting (separated methods)
handle gen2 french egg name (all caps)
use stringbuilder to replace chars
2021-05-10 16:09:28 -07:00
Kurt
ef4857fa9f
Improve perf of byte->hexstring parse
...
just use a stringbuilder
2021-05-10 16:07:25 -07:00
Kurt
d340642b09
Minor perf improvements
2021-05-10 01:01:45 -07:00
Kurt
8e9953dc0f
Keep festaID separate from nex ID bytes
2021-05-09 23:38:14 -07:00
Kurt
01f75f8441
Add test for hex string (arbitrary length) convert
2021-05-09 23:33:54 -07:00
Kurt
1cad57e35d
Build results in place, no linq
...
O(n) for speed & memory usage, as good as we can get.
Modified method is now less dumb. Array Copy doesn't have to worry about same-array overlapping src/dest regions
2021-05-09 22:48:24 -07:00
Kurt
2a7027ed84
Move files to more accurate subfolders
...
Gen1-3 are disjointed from the gen4+ item name listings, hence the separate folder. Plus, not all languages have localization files created.
2021-05-09 16:25:19 -07:00
Kurt
96d941db69
Preformat csv files, remove header
...
Shaves off a few kb
2021-05-09 15:47:21 -07:00
Kurt
f25ad054ef
Selectively TrimEnd without extra robust logic
...
TrimEnd has some loops and stuff which isn't necessary for single-char, single-time trims
2021-05-09 13:21:59 -07:00
Kurt
43af6322e8
Clean up csproj's
...
no functional change
yay wildcards
2021-05-09 12:57:26 -07:00
Kurt
96ea7f0b39
Fix toxtricity neutral StatNature generating
2021-05-08 08:29:20 -07:00
Kurt
a7f3ce5766
Leak mismatched forms thru the possible check
...
The EncDB doesn't specify form; the encounter methods verify Form.
This is actually a fix; pkm that can change forms aren't really encounter trades, but we shouldn't be strict matching here.
2021-05-08 08:13:27 -07:00
Kurt
ceede68861
Minor tweaks
2021-05-07 22:11:10 -07:00
Kurt
31142ee297
Replace some linq usage with direct logic
2021-05-06 23:26:38 -07:00
Kurt
fa5bc0d634
Set friendship after form set
...
Resolves GO galarian stunfisk, ty matt
2021-05-05 08:43:32 -07:00
Kurt
f063014879
Improve clarity of plugin load failures
2021-05-02 18:27:04 -07:00
sora10pls
6ed6e60840
Add PogoType + Requirements for Strange Egg encounters
...
Rationale behind this is explained in the accompanied commit in PGET: 7c2575d8a8
Co-Authored-By: Lusamine <30205550+Lusamine@users.noreply.github.com>
2021-04-30 21:13:28 -04:00
sora10pls
e330eb5cfc
Add current Meowth Distribution Raids
2021-04-29 20:08:16 -04:00
Kurt
2bfcdaf148
Update LegalityAnalysis.cs
2021-04-28 18:22:39 -07:00
CanoeHope
c1cce9a892
Correct Colosseum/XD Item Quantities ( #3203 )
...
* Update SAV3Colosseum.cs
* Update SAV3XD.cs
2021-04-28 16:55:37 -07:00
CanoeHope
747d6ed6c7
Fix Colosseum/XD Max Money ( #3202 )
...
* Update SAV3Colosseum.cs
* Update SAV3XD.cs
2021-04-28 11:58:26 -07:00
Kurt
91557d0180
Don't defer on hidden ability change
2021-04-25 00:11:15 -07:00
Lusamine
e5867ce512
Add NormalEncountRigel2 block and Pokedex Rec block
2021-04-23 17:41:54 -05:00
Lusamine
eceb498da3
Fix Gen 2 roamer locations
2021-04-23 15:52:54 -05:00
sora10pls
00e88b2abd
Add World Penguin Day distribution Raids
2021-04-23 11:39:20 -04:00
Kurt
e36fdd3cb6
Update EncounterStatic8ND.cs
2021-04-22 22:32:17 -07:00
Kurt
efb3d9aeac
Add inaccessible den-rank checks
...
Rotom Bike water upgrade isn't available until you have sufficient progress, so you can't get these dens with the lowest rank.
Co-Authored-By: Lusamine <30205550+Lusamine@users.noreply.github.com>
2021-04-22 21:47:25 -07:00
Kurt
f66662b8db
More deferral tweaks for non-HA having HA
2021-04-22 13:47:33 -07:00
Kurt
8483dc241d
Update MarkVerifier.cs
2021-04-21 19:12:50 -07:00
Kurt
7256ff0a7f
Check if the Shedinja's encounter can have marks
...
Not all gen8 encounters can have marks (nest, go), so use the regular method.
2021-04-21 18:52:24 -07:00
Kurt
b89c4fb17f
Database load on invalid party counts
2021-04-21 18:33:57 -07:00
Kurt
2aed4c3118
Add shedinja dropped ribbons/marking considerations
...
Nice bug ya got there, gamefreak.
Coulda cleared the AffixedRibbon value instead of copying it on Shedinja creation, and it would have made this unnecessary.
Please ditch the Affixed Ribbon gimmick for future games, thanks!
2021-04-21 15:20:16 -07:00
Kurt
25565e6f07
More pattern matching expressions
...
Shapes are fancy; nested pattern checks
2021-04-20 02:17:28 -07:00
Kurt
9dfa1077ee
Rename internal PKMInfo class to match batch names
2021-04-20 01:50:47 -07:00
Kurt
d9c22b1d74
Move pk1/2 EV maxing to class
2021-04-20 01:50:27 -07:00
Kurt
b64edb751d
More xmldoc
2021-04-20 01:50:04 -07:00
Kurt
2f078e6565
Minor tweaks
...
Make HP IV set use single array fetch, less memory required
add some xmldoc
2021-04-20 01:02:32 -07:00
Kurt
45f12bd924
Update FormVerifier.cs
2021-04-18 21:22:58 -07:00
Kurt
f61108ac4e
Check gen1/2 female OTs a little more thoroughly
...
https://github.com/kwsch/PKHeX/issues/2687#issuecomment-822072999
celebi is a es2e, so just filter on specified TID
Co-Authored-By: FeralFalcon <33670476+FeralFalcon@users.noreply.github.com>
2021-04-18 19:31:22 -07:00
Kurt
c67e01849a
Extract 3ds chinese glyph remapping, only do on 3DS games
...
Optimize some functions within gen7zh for perf (no linq, no allocation)
2021-04-18 18:29:02 -07:00
Kurt
0e4848ad82
minor clean
2021-04-18 18:18:09 -07:00
Kurt
c6d6a52e0b
'->’ stragglers
2021-04-18 14:04:26 -07:00
Lusamine
f2c2a77cfe
Check nest distribution encounters by patch epoch ( #3195 )
...
Distribution raid encounters from before each of the DLC patches can only be captured in existing Wild Area locations.
Store the BCAT index in the encounter details and use it to compare when the BCAT was available.
2021-04-18 11:01:42 -07:00
Kurt
fd8da81b4a
Remove unnecessary setter
2021-04-18 11:00:40 -07:00
Kurt
0719320e33
Eggs: explicitly pass generation instead of calculating
2021-04-17 20:09:02 -07:00
Kurt
9171d7f87e
move property to class that uses it
2021-04-17 20:08:20 -07:00
Kurt
f35a3ce03c
Add overload for Totem check, simplify some flow
2021-04-17 13:24:57 -07:00
Kurt
5635e8f345
Unroll some loops, reduce allocations a little for hacked eggs
2021-04-17 13:13:03 -07:00
Kurt
893f22a664
Extract generation traversal list fetch to static class
2021-04-17 13:09:09 -07:00
Kurt
8e52d2fddb
Xmldoc updates
2021-04-17 13:07:28 -07:00
Kurt
8b180c3122
Fix egg move source indications (were defaulting to gen2)
...
Switch expression had an issue with interpreting the object's type (unboxing, yay)
should probably just return a typed object from the parse, but nah, this is a quick fix.
2021-04-16 17:57:48 -07:00
Kurt
16406d7bba
Allow Strongest Trainer memory on gen6-visitors banned from Maison
...
https://projectpokemon.org/home/forums/topic/57375-pkhex-new-update-legality-errors-contribution-page/?do=findComment&comment=265898
End result is only gen7-origin-in-gen7 are disallowed.
Co-Authored-By: Matt <17801814+sora10pls@users.noreply.github.com>
2021-04-16 08:53:50 -07:00
Kurt
aaae94b739
Fix Gen2 roamer location check
...
https://projectpokemon.org/home/forums/topic/57375-pkhex-new-update-legality-errors-contribution-page/?do=findComment&comment=265885
Location=>pkm.Met_Location
Change the array search for a bitwise and check, for muh efficiency
2021-04-14 13:29:23 -07:00
Kurt
c56ba76601
Expand jp table too
...
6754645a5f
2021-04-12 19:14:23 -07:00
Kurt
6754645a5f
Minor optimization
...
Similar to the index hack done for array shuffling modulo 24 & 1f.
2021-04-12 17:08:57 -07:00
Kurt
758b6e6770
Remove '<->’ aliasing
...
Farfetch’d uses the non-vertical apostrophe, still.
Showdown is consistent with their usage (in/outputting ’), but we'll keep the '->’ for that sanitization just in case other services/users enter the wrong char.
Closes #3185
2021-04-12 17:04:02 -07:00
Kurt
b289c12918
Update Locations.cs
2021-04-12 15:43:21 -07:00
Kurt
7bc733c900
Update SK2 language coercion
...
Closes #3194
Exports are fine, imports with an ambiguous language (can be either JPN or INT) while illegal don't result in the above branches passing it.
Inputs with <=6 chars for OT&Nick will be ambiguous; PKM editor.
2021-04-11 20:50:34 -07:00
Kurt
0d45075d4b
Rewrite settings handling; enhance some user experiences ( #3193 )
...
- Settings now stored as json next to exe
- Settings now exposes all legality checking setttings that can be changed
- Slot hovering now can play cries in MGDB/PKMDB/etc, not just the main boxes.
- Enhanced hover text for mystery gifts and encounters that have movesets
- Show recently loaded save files in ctrl-f browser
- Toggle auto-load savefile setting to be none/detect-latest/last-loaded
- Custom extensions & extra backup paths can now be configured directly in the json settings
- Settings editor now uses propertygrid & tabs.
2021-04-11 18:09:54 -07:00
Kurt
aaa69eac15
Rename Gen3 Champ ribbon to be more accurate
...
been like this since mid 2016
this ribbon can be obtained in either Hoenn or Kanto within Gen3
https://bulbapedia.bulbagarden.net/wiki/List_of_Ribbons_in_the_games#League_Ribbons
2021-04-10 12:09:43 -07:00
Kurt
cfcefca14f
Add splitbreed relearn suggest recursion
2021-04-10 11:03:21 -07:00
Kurt
c7b997865c
Minor clean
2021-04-09 14:52:49 -07:00
Kurt
fb972b9782
Update MoveSetApplicator.cs
...
Closes #3191 , uses a better method
2021-04-09 11:22:10 -07:00
Kurt
a450b56878
Add Gen2 rock smash encounters
...
oops
2021-04-08 20:45:14 -07:00
Kurt
e9c9627ad5
Relearn suggestions + Headbutt Slot Fix ( #3190 )
...
This change revises the logic for an Egg Move's RelearnMoves.
Removes a class that is no longer used
Passes the large value-passing struct byref via in keyword
Revises handling so that early-returned results from the MoveBreed processing are marked with their move source rather than leaving them unvisited.
The moveset processor uses depth search recursion, and returns false if the move that it is processing is not possible for the hatched moveset. If the depth search never reaches the check for base moves, all moves won't be marked for their origins, resulting in the result array not being accurate to use for suggestion purposes.
Yay multi-purpose logic (validation w/early returns & fixing needing fully processed data).
2021-04-08 15:58:09 -07:00
Kurt
3e052987e2
Clean up emerald event info files
...
Closes #3188
Remove tabs from zh
Removes duplicate flag from es
Co-Authored-By: hard <62216646+kamisama6866@users.noreply.github.com>
2021-04-07 22:13:09 -07:00
Kurt
b0700ba281
Extract Gen7 HoF class, extend event flag count
...
4k flags exactly, and probably 4950 for USUM (alignment +1 byte for an even 4960)
The old flag + count (4 bytes total) are just +32 event flags.
2021-04-07 00:20:02 -07:00
Kermalis
0c982a725a
Fix FRLG flags ( #3186 )
2021-04-06 19:17:57 -07:00
Kurt
2f4b754505
Fix incorrect event flag reference
...
Thanks SneakyPeekyFox!
Also fix crash if pressing escape on the save differentiation popup.
2021-04-06 17:26:13 -07:00
Kurt
c05fc854b1
Update 21.04.06
...
Mostly because of Gen3 save editing bugfixes, forcing a new version.
Last version added the PID checks for Gen8; this one adds move ordering checks for eggs. More fun :)
2021-04-05 22:57:05 -07:00
Kurt
223b56d779
Fix gen3 save incorrect destination writes
2021-04-05 22:28:04 -07:00
Kurt
673c0d93a6
Extract event flag/work editing from GUI
...
now <200 lines for editing (ignoring the diff functions), yay
Opening the editor allocates less (no copying save file)
2021-04-05 20:52:49 -07:00
Kurt
d0258fa2f7
Add gs/c resources
2021-04-04 22:14:17 -07:00
Kurt
4579a66a38
Fix deferral for wild slots
...
Base method checks wurmple (not available in swsh), removed.
Hidden ability check returns Partial for any species that cannot be patched, and Deferred for any patched; we don't care, because there aren't any wild species that can't be patched in swsh.
2021-04-04 21:54:24 -07:00
Kurt
63639a1ec8
Add latest distribution raid templates
2021-04-04 20:38:26 -07:00
Kurt
0ad06c6359
Disallow Thousand Arrows/Waves for Format6 Smeargle
...
moves unavailable in that format, same as light of ruin
Closes #3182 ty @DaWoblefet
2021-04-04 19:39:31 -07:00
Kurt
0626b0c29b
Add Breeding move ordering logic, and use in legality analysis ( #3183 )
...
* Initial bred moveset validation logic
Unpeel the inheritance via recursion and permitted moves
* Volt tackle considerations
* Optimize out empty slot skips
* Add tests, fix off-by-one's
* Require all base moves if empty slot in moveset
* Add test to prove failure per Anubis' provided test
* Tweak enum labels for easier debugging
When two enums share the same underlying value, the ToString/name of the value may be either of the two (or the last defined one, in my debugging). Just give it a separate magic value.
* Fix recursion oopsie
Also check for scenario where no-base-moves but not enough moves to push base moves out
* Add Crystal tutor checks
* Add specialized gen2 verification method
Game loops through father's moves and pushes in one iteration, rather than checking by type.
* Add another case with returning base move
* Add push-out requirement for re-added base moves
* Minor tweaks
Condense tests, fix another off-by-one noticed when creating tests
* Disallow inherited parent levelup moves
Disallow volt tackle on Gen2/R/S
* Split MoveBreed into generation specific classes
Gen2 behaves slightly different from Gen3/4, which behaves slightly different from Gen5... and Gen6 behaves differently too.
Add some xmldoc as the api is starting to solidify
* Add method overload that returns the parse
Verify that the parse order is as expected
* Add reordering suggestion logic
Try sorting first, then go nuclear with rebuilding.
* Return base moves if complete fail
* Set base moves when generating eggs, only.
* Use breed logic to check for egg ordering legality
Don't bother helping for split-breed species
2021-04-04 18:30:01 -07:00
Kurt
8c4ca3134a
Fix Gen3 coin get/set
2021-04-04 11:53:55 -07:00
Kurt
ba5bf463e0
Convert static dictionary to switch
...
probably ends up as a jumptable via jit, so better perf?
2021-04-02 16:47:37 -07:00
Kurt
1348f5deec
Allocate smaller buffers for gen3 sav objects
...
n*0xF80 instead of n*0x1000
2021-04-02 14:57:30 -07:00
Lusamine
d3059218c9
Remove gen 8 static encounters from DB if no location ( #3181 )
2021-04-01 15:09:26 -07:00
Kurt
cdc9710869
Fix gen3 record get/set
...
FR and LG are separate version IDs now
2021-04-01 14:15:11 -07:00
Kurt
a92f92e1c5
Fix gen3 TMHM pouch
2021-04-01 14:14:47 -07:00
Kurt
9881beea1e
Update EncounterStaticGenerator.cs
2021-04-01 13:51:00 -07:00
Kurt
1e38f55007
Fix changes not being saved completely
2021-04-01 13:43:06 -07:00
Kurt
4700fdd1e3
Set updated version when resetting personal
...
Closes #3180
Improves handling for corrupt gen3 saves (pokedex cheaters)
2021-04-01 13:37:39 -07:00
Kurt
4cf926f703
Update 21.04.01
...
Latest cumulative update release with mgdb/pget binaries updated.
There aren't any April Fools jokes in this release.
2021-03-31 21:52:15 -07:00
Kurt
69c737b71a
Show Mystery Gift information in hover summary
2021-03-30 20:27:58 -07:00
Kurt
75fb704658
Use already allocated result array
...
All operations overwrite all 4 entries of the result array, so no need to forcibly reallocate the array.
2021-03-30 20:27:40 -07:00
Kurt
5c9ce494cf
Minor perf improvements
...
Defer some value assignments
Pass already known values directly
Pass static references to reduce allocating small duplicate objects
2021-03-30 18:51:53 -07:00
Kurt
645f2b4db5
Revert implicit casting
...
Looks like netstandard2.0 wasn't meant to receive that new c#9 goodie
2021-03-29 00:14:44 -07:00
Kurt
f59d012cda
Add gen3 battle video class
...
Just supports importing dumps (via code), and the GUI supports loading the party data to boxes like the other supported battle video formats.
2021-03-27 23:22:56 -07:00
Kurt
4daf225379
Add location for colo ereader shadows
2021-03-27 20:32:52 -07:00
Kurt
53d3dba74e
Reorder array for ordered search
2021-03-27 20:32:25 -07:00
Kurt
0190098e47
Gen3: Add methods to get/set external event data
2021-03-27 18:58:51 -07:00
Kurt
4bb95e0bd3
Spring raids
2021-03-25 18:28:17 -07:00
Kurt
0c1d13bf4d
Minor tweaks
...
Lift some temporary arrays for more reuse
reuse some temp references
less allocation overall
2021-03-23 23:10:30 -07:00
Kurt
7c926dc09e
More xmldoc
2021-03-23 21:20:02 -07:00
Kurt
3822981590
Rework EncounterCriteria to be ability indexed rather than direct ability ( #3179 )
...
* Exploration: rework ability criteria to ability numbers desired
* Sync remaining changes
* Update EncounterCriteria.cs
* Add xmldoc
* Improve speed of IsDualGender check
* More xmldoc updates
Should be doing this on main but meh, this branch is gonna get merged later
* Fix typo
* Update WC7.cs
* Update PersonalInfo.cs
2021-03-23 17:05:15 -07:00
Kurt
f86291cc1c
Split gen3 encounter listing to have CXD separate
2021-03-21 19:52:48 -07:00
Kurt
5ce3d64996
Disallow lang=2 for dp trades
...
DP English origin are Japanese language; since we 1=>2, we still needed to disallow 2.
2021-03-21 10:34:00 -07:00
Kurt
012f6678ba
Check for dual ability =>evo w/single ability capsule
2021-03-20 17:49:16 -07:00
Kurt
56f24bbe5a
Fix deferral compare
...
neq -> defer
not like it matters for these
2021-03-20 17:47:31 -07:00
Kurt
e547a9cf63
Extract report generation from LegalityAnalysis object functions
...
Can replace the default functionality with your own formatter, I guess.
2021-03-20 13:21:04 -07:00
Kurt
7badb56535
Move strings file to formatting subfolder
2021-03-20 12:47:59 -07:00
Kurt
8d3f990667
Make some properties into consts
2021-03-20 12:47:21 -07:00
Kurt
a71d7d1950
Handle gen3 mismatched ability
...
ty Breil --
https://projectpokemon.org/home/forums/topic/58665-makuhita-in-game-trade-bug-sapphire/
2021-03-20 11:22:56 -07:00
Kurt
8020a44961
Minor simplification
...
All slots are now initialized via constructor, property can now be init!
Optimize some value fetching for gen7b, as the input data has features that can be abused
2021-03-17 22:40:37 -07:00
Kurt
71d355804a
Move enc7b sky encounter fudging to reformatter project
...
50c53d6b33
2021-03-17 21:59:00 -07:00
Kurt
1acefbcf93
Remove sigilyph from g5 breed HA banlist
...
https://projectpokemon.org/home/forums/topic/58657-sigilyph/?do=findComment&comment=265330
2021-03-17 20:20:54 -07:00
Kurt
b4f763f7ef
Move bridge-stony copy logic to pkNX
...
Also trims out empty slots (species=0), less size!
49efb96db9
2021-03-17 18:11:07 -07:00
Kurt
535f464b61
Update EncounterSlot7.cs
...
Closes #3176
2021-03-16 23:49:04 -07:00
Kurt
27cdcb8b0c
Simplify SAV3 loading
...
Remove hardcoded chunk lengths array
Remove cached chunk index array
Handle new-game files correctly (all blocks present check).
Consistently call things sector instead of chunk or block.
Somehow there was a bug with my FRLG save file's box data, which now loads completely?? Neat
2021-03-16 23:32:16 -07:00
Kurt
3b344bd5c3
Add batrev as a blank sav option via code
2021-03-16 18:49:27 -07:00
Kurt
98a80b4bf1
Fix party offset swap
2021-03-16 18:48:33 -07:00
Kurt
33e2c64721
Split SAV3 into version classes
...
Begone are the version-switch cases for value fetching.
2021-03-15 23:51:58 -07:00
Kurt
6bce4eea14
Minor clean
...
Annotations (nullable), some switch cases for readability
2021-03-14 16:16:55 -07:00
Kurt
ac116e0d0b
Add more xmldoc / enum clean
2021-03-14 11:28:46 -07:00
Kurt
649958ee68
Move EReader berry names from tables to settings class
2021-03-14 10:16:09 -07:00
Kurt
b7bb5a0672
Remove unused 0 pp entries at end
...
Array is length checked already
2021-03-14 10:15:45 -07:00
Kurt
7b163147ef
Add case for special headbutt slots
...
Closes #3174
Add more xmldoc for SlotType
Import revised slot-type table, as we've removed "Special" from the regular trees.
ef4b1b2894
2021-03-11 20:52:00 -08:00
Kurt
5cc3322b83
Split RNG class into simple & enhanced
...
ARNG object doesn't need the reversal caches, saves 256KB of memory allocation
Move RNG algorithms & support logic into a subfolder
2021-03-10 22:30:30 -08:00
Kurt
b36aa0ac99
Remove altering cave event tables
...
https://projectpokemon.org/home/forums/topic/58627-altering-cave-alternative-spawn-legality/
2021-03-10 10:10:54 -08:00
Kurt
155e0283ce
Inline some string logic, extract magic values, xmldoc
2021-03-09 21:31:53 -08:00
Kurt
4c45aa99af
Add missing uint cast
2021-03-08 15:33:52 -08:00
Kurt
e32bfcde2e
Minor simplifications
...
Extract RSBOX checksum logic to checksum class
Allocate half as much for gen3 save detect
Simplify some expressions for GC save loading (x - size + offset, when x==size)
2021-03-08 11:39:15 -08:00
Kurt
49541e6073
Rework mainline sav3 to not operate off chunks
...
Previous style was to resize the sav buffer and concat all the storage chunks at the end. Allocated a double save file.
Now, just allocate 3 buffers.
2021-03-07 23:22:07 -08:00
CanoeHope
cb7ee8a64e
Update Gen 6 Event Flags ( #3171 )
...
* Update flags_xy_en.txt
* Update flags_xy_es.txt
* Update flags_xy_ja.txt
* Update flags_xy_ko.txt
* Update flags_xy_zh.txt
* Update flags_oras_en.txt
* Update flags_oras_en.txt
* Update flags_oras_es.txt
* Update flags_oras_fr.txt
* Update flags_oras_ja.txt
* Update flags_oras_ko.txt
* Update flags_oras_zh.txt
* Update flags_oras_en.txt
2021-03-07 18:48:30 -08:00
Kurt
9e4f1d11cc
Show misc encounter details on hover
2021-03-07 12:35:26 -08:00
CanoeHope
b71de0e1d9
Add more Event Flags/Constants ( #3168 )
...
* Update const_c_en.txt
* Update flags_c_en.txt
* Update flags_c_es.txt
* Update flags_c_ja.txt
* Update flags_c_zh.txt
* Update flags_gs_en.txt
* Update flags_gs_es.txt
* Update flags_gs_ja.txt
* Update flags_gs_ko.txt
* Update flags_gs_zh.txt
* Update flags_rs_en.txt
* Update flags_rs_es.txt
* Update flags_rs_zh.txt
* Update flags_e_en.txt
* Update flags_rs_es.txt
* Update flags_rs_zh.txt
* Update flags_e_es.txt
* Update flags_e_zh.txt
* Update flags_e_zh.txt
* Update flags_frlg_en.txt
* Update flags_frlg_es.txt
* Update flags_frlg_zh.txt
* Update flags_dp_en.txt
* Update flags_dp_es.txt
* Update flags_dp_ja.txt
* Update flags_dp_ko.txt
* Update flags_dp_zh.txt
* Update flags_pt_en.txt
* Update flags_pt_es.txt
* Update flags_pt_ja.txt
* Update flags_pt_ko.txt
* Update flags_pt_zh.txt
* Update const_pt_en.txt
* Update const_pt_es.txt
* Update const_pt_ko.txt
* Update const_pt_zh.txt
* Update flags_e_zh.txt
* Update flags_e_en.txt
* Update flags_e_es.txt
* Update flags_e_zh.txt
2021-03-05 18:02:44 -08:00
Kurt
2e10e0757a
Check gen5 egg met location rather than gen6
...
Override the base impl in encstatic, swap const refs
2021-03-03 18:35:26 -08:00
sora10pls
9ee27aaf8f
Update EncounterArea7g/8g
...
Now properly grabs forms for Unown, Arceus, Vivillon, and Silvally.
2021-03-03 17:45:18 -05:00
Easy World
77aefbf20d
Update flags_gs_zh.txt ( #3167 )
2021-03-03 06:59:31 -08:00
Easy World
3c4efd0e29
Update flags_c_zh.txt ( #3166 )
2021-03-03 06:59:12 -08:00
CanoeHope
ef70ad0217
Add Gen 2 Event Constants and Legendary Beasts Flag ( #3163 )
...
* Add GSC Event Constants
* Update flags_c_en.txt
* Update flags_c_es.txt
* Update flags_c_ja.txt
* Update flags_c_zh.txt
* Update flags_gs_en.txt
* Update flags_gs_es.txt
* Update flags_gs_ja.txt
* Update flags_gs_ko.txt
* Update flags_gs_zh.txt
* Update const_c_en.txt
* Update const_gs_en.txt
2021-03-02 22:54:43 -08:00
Kurt
2826049e32
Add boxes unlocked & secret box toggle
...
ty @sora10pls
use box layout editor to change values (0-32 and toggle the flag)
2021-03-02 21:28:53 -08:00
sora10pls
08ecac8cb3
Update upcoming Dynamax Crystal encounters
2021-03-02 11:21:56 -05:00
Kurt
eba704a46b
Add March raid data
...
Wonder if they'll fix the gmax Hattrem ;)
2021-02-28 17:19:17 -08:00
Kurt
c27697c919
Flag contest stats if sheen is present on gen5+ origin
2021-02-27 20:02:18 -08:00
CanoeHope
f9bbf30d50
Update RSE Sealed Chamber Flags ( #3161 )
...
* Update flags_rs_en.txt
* Update flags_rs_es.txt
* Update flags_rs_zh.txt
* Update flags_e_en.txt
* Update flags_e_es.txt
* Update flags_e_zh.txt
2021-02-27 12:39:45 -08:00
Kurt
7afd2ec351
Add Pika 2/25 raids
2021-02-25 16:27:05 -08:00
Kurt
0ba029226c
Add more xmldoc
2021-02-24 18:08:03 -08:00
sora10pls
94597b84e0
Increment Total Battle/Poké Ball usage records on set
...
Closes #3158
2021-02-24 11:12:59 -05:00
Egzon
815da3ff0c
Update spanish translation ( #3160 )
...
* Update LegalityCheckStrings_es.txt
* Update lang_es.txt
2021-02-23 06:27:27 -08:00
Easy World
dcd5f1fce1
update zh translation ( #3159 )
2021-02-22 20:46:02 -08:00
Easy World
4dcd00026b
Update LegalityCheckStrings_zh.txt ( #3156 )
2021-02-21 19:29:12 -08:00
Kurt
89cc722cd2
Add missing met location bypass for pokewalker xfr's
2021-02-21 18:41:42 -08:00
Kurt
b159a43110
Update EncounterArea6XY.cs
2021-02-21 16:50:03 -08:00
CanoeHope
2940a0a47e
Update SM/USUM Event Flags ( #3155 )
...
* Update flags_sm_en.txt
* Update flags_sm_es.txt
* Update flags_sm_ja.txt
* Update flags_sm_ko.txt
* Update flags_sm_zh.txt
* Update flags_usum_en.txt
* Update flags_usum_es.txt
* Update flags_usum_ja.txt
* Update flags_usum_ko.txt
* Update flags_usum_zh.txt
2021-02-21 15:27:08 -08:00
Kurt
32eff161cc
Repopulate translations with latest additions/removals
2021-02-21 15:22:28 -08:00
Kurt
aaa1fd1b4f
Remove obsolete legality checks for safari
...
Hard matches for encounter slot result in these never being executable.
2021-02-21 15:22:10 -08:00
Kurt
c8b12a9ddc
Add safari slots for floette 2/3
...
Move the array into the constructor; let it get garbage collected rather than leaving it as static
2021-02-21 15:18:58 -08:00
Kurt
41096fb56e
Minor xmldoc / usage updates
2021-02-21 15:01:28 -08:00
Kurt
c11cf3d6d4
Extract gen4 pokedex logic
2021-02-21 09:59:10 -08:00
Kurt
f308be38fd
More tweaks
2021-02-19 10:52:26 -08:00
Kurt
d61e646ca9
Minor tweaks
2021-02-18 17:26:06 -08:00
Kurt
83c61a2515
Update EncounterGenerator6.cs
2021-02-17 08:49:32 -08:00
Kurt
31245d0e37
Add mythical table, allow non-mythical legends in latest ruleset (master ribbon)
2021-02-16 21:42:36 -08:00
Kurt
0121028a6b
Furfrou Bank edge cases
...
lmao nice meme
2021-02-16 21:22:20 -08:00
Kurt
165a0f3956
Update EncounterSlot8.cs
2021-02-16 09:54:47 -08:00
Kurt
f5b47f9116
Update EncounterGenerator6.cs
...
Closes #3153
wc6 is the only one with deferred cards that matter
2021-02-16 07:35:55 -08:00
Kurt
f63654d5ae
Force curry mark for generated galar mine hidden slots
2021-02-15 15:21:10 -08:00