Commit Graph

10659 Commits

Author SHA1 Message Date
abcboy101
53ddcfb0e4 Update Switch badwords to v20.1.0 (#4502) 2025-05-28 08:54:32 -05:00
Kurt
c4199b26ec Minor startup optimization (resource sizes)
-288 KB (-31%) across lvlmove/eggmove/evolve binaries
redesign the levelup bins:
- be moves_levels rather than the "official" -1 stop of the past era.
- gen1/2 reformatted from byte,byte[] to ^ to skip initialization work
redesign the eggmove bins:
- be simply moves[], rather than the "official" -1 stop of the past era; now is just a struct to keep the array readonly with no further allocation.
- same for gen2 skipping initialization byte[]->ushort[]
- for gen7/8 formtable indexed, just use the personal table indexing style of SV.
added a 16-bit version of BinLinkerAccessor as start/end offsets of <65KB files are always 16bit. Saves a fair bit of space in eggmoves/evo where there's often 0 entries for a species-form.

Obviously binlinker16 is an unofficial format, but there's no need to replicate official serialization formats if we instead use a universal & maintainable alternative. Plus they don't even use BinLinker across all their games.

Adds a debug BinLinkerWriter because I'm tired of digging up the zipping implementation :)
2025-05-25 16:27:05 -05:00
Kurt
1d9fc99413 Misc tweaks
Add Count to IPersonalTable
Revise EncounterOrigin for evo chain search to use Context instead of Version
Use ITrainerID*ReadOnly as pivot for Trainer ID verification skip
Add more xmldoc
Reconfigure pla dex task fetch to be nullable, match fbs field ordering for clarity
2025-05-24 22:59:13 -05:00
abcboy101
4963d11c14 PBR: Fix box names, add play time (#4501)
* Allow empty box names in PBR

Before copying Pokémon from a DS game, all of the box names are zeroed-out. Allow these values to be read/written normally.

* Preserve current slot when cloning PBR save

Certain editors like SAV_BoxLayout clone the save file before editing it. This preserves the selected slot in the clone instead of resetting it to 0.

* Add PBR play time accessors
2025-05-24 08:15:55 -05:00
Kurt
48954533b5 Make mysterygifts memory-backed objects 2025-05-24 00:10:57 -05:00
Kurt
be67b007d5 Misc tweaks 2025-05-24 00:10:02 -05:00
Kurt
2f77b9c2aa Add xmldoc 2025-05-23 20:44:06 -05:00
Kurt
1c03fc3e5b Minor clean 2025-05-23 20:07:03 -05:00
sora10pls
e8ce5c1317 Add latest distribution raid data 🦈🌍 2025-05-22 20:03:44 -04:00
Manu
e72995e898 Standardize IGenerateSeed32 API for gen9 raid encounters (#4497) 2025-05-20 22:53:32 -05:00
abcboy101
09f654fd34 Use correct badwords list (#4498) 2025-05-20 22:35:16 -05:00
Kurt
fb803c6e4d Revise region handling and game version mapping
Updated region handling logic in XK3.cs to treat PAL and NTSC_U as equivalent and adjusted remapping logic accordingly.
Added a check in PKMEditor.cs to map GameVersion.COLO and GameVersion.XD to GameVersion.CXD for consistency in filtered data sources.
2025-05-19 23:37:41 -05:00
Kurt
064e4293a0 Save Language first for gen3pkm
So that Nickname encoding can work as expected. Also fixes mainline int<->jpn changed edits

ty rainbowsunsetwaves on discord

Extend the fix to user-created eggs in Gen3 so that the OT name is converted.
2025-05-19 22:51:47 -05:00
Kurt
072dae8d14 Update InventoryItem9.cs
Closes #4496
2025-05-19 21:54:16 -05:00
Kurt
8c4abe0a50 Update window style flags in PokePreview
Not sure what caused the behavior change, but this ensures the window stops stealing focus, as well as being shown TopMost.
2025-05-19 11:26:10 -05:00
Kurt
0d5f7c758a Fix pla purchased flag regression
ty cerquami for checking
2025-05-18 22:53:17 -05:00
Kurt
533c870ca5 Revise stat abbreviations
Closes #4495

fix german's order (speed last)
2025-05-18 18:13:51 -05:00
Kurt
bf31d9119f Update 25.05.18 25.05.18 2025-05-18 02:37:40 -05:00
Kurt
47bc45d854 GetLevelLearnMove->TryGetLevelLearnMove
As alluded to in 7442e86d65
2025-05-18 01:36:05 -05:00
Kurt
5a3ebec12b Fix characteristic of all-0 IV mons when EC%6!=0
They'll always be HP.
ty Anubis for testing and SirToastyToes for reporting

Changing characteristic is a 1 in (5/6)*(32^6) chance, when no IVs are forced; aka ~1:900million
or just get a colo e-reader mon with 5/6 chance :)

Gen4/HOME(mobile): correct, unaffected
Gen5-Gen9/HOME(switch): bugged
2025-05-17 15:03:42 -05:00
Kurt
7442e86d65 level int -> byte
Might refactor the learnset level get to byte later as a TryGet so -1 is never returned.
2025-05-17 14:45:49 -05:00
Kurt
6b7938fea1 Add mousewheel event to edge Level/EXP
Scroll up Level once to increase level, scroll down EXP to be 1 exp from level up.

Apply the same mousewheel events to Friendship, IVs/EVs/AVs/GVs, with EVs being increments of 4.
I don't think it's worth overriding keypress arrow up and down to do the same.
2025-05-16 17:11:34 -05:00
Kurt
09f0462736 Refactor methods to use Try-pattern and improve code clarity
Refactored several methods across multiple files to use the Try-pattern for better null safety and clarity. Removed unused code, such as the SingleLevelRange record, and improved type handling in BatchEditing and BoxManipUtil. Adjusted constructors and properties for consistency in classes like CustomFolderPath. Minor updates to improve code readability and maintainability.
2025-05-16 16:12:48 -05:00
Kurt
83bc2bf653 Set egg form for gen5-9
Missed this in the PR
gen5 needs form for basculin
2025-05-14 01:35:11 -05:00
Kurt
fa9713a1ad Misc egg tweaks 2025-05-12 21:10:23 -05:00
Kurt
85f5950f28 Split EncounterEgg into derived classes (#4490)
Splits EncounterEgg into derived classes, allowing for fine-tuned control of each generation's egg generation & pattern matching.

Adds an interface to check if the encounter is a bred egg (useful for many scenarios when checking for move inheritance, in general).

Enhances the deferral rating for PIDIV matches in eggs based on global legality check settings.

Adds date/time indicators for Gen3/4 eggs and other Method 1 encounters.
2025-05-11 22:31:36 -05:00
Kurt
b2d70295e9 SV: fix deoxys TM flag check for altforms
ty thedominantspoon on discord
2025-05-11 19:24:07 -05:00
sora10pls
789a410272 Add latest distribution raid data 🪓 2025-05-08 20:02:42 -04:00
Kurt
dc0dbbe340 Update InventoryPouch.cs 2025-05-08 18:42:15 -05:00
Kurt
af8cb884e6 Update InventoryPouch9.cs 2025-05-08 17:31:45 -05:00
Kurt
d0a79acdb4 Update CommonEvent3Checker.cs 2025-05-08 11:22:38 -05:00
Kurt
275f5fb5df Misc tweaks
Seal some classes
Use derived pkm class for template->pk* moves (pk3/pa8)
Revise inventory9 to better handle empty slots
Cache legality for Summary report grid (does this make it faster?? seems to open instantly); add shift-quit to skip prompt
Fix handling for level range on encountercriteria passing level range for gen3/4 encounter slot method1/etc lead checks
2025-05-07 23:06:40 -05:00
hewenhan
61b38d1aa0 Fix: Disable CETCompat to prevent crash with deep InitialDirectory (#4481)
Setting CETCompat to false in the project file resolves ntdll.dll crashes observed on .NET 9 Preview when OpenFileDialog's InitialDirectory points to deep paths like MyDocuments. This allows the application to run without triggering CET violations in this specific scenario.

Temporary merge until .NET 10; CETCompat isn't necessarily required for this application so no harm disabling this feature.
2025-05-05 10:51:06 -05:00
Easy World
b656510939 Update zh-Hans localization (#4488)
* Update zh-Hans localization: improve Pokémon gender terms, AVs translation, and clarify the transfer handler legality message.

* Clarify zh-Hans translation for LTransferHTFlagRequired
2025-05-05 09:24:23 -05:00
santacrab2
d6c484295a gen 4 nature (#4487) 2025-05-04 21:52:12 -05:00
Lusamine
e02564cc08 Remove Sandstorm from weathers for IoA Wailord
It isn't possible to spawn Wailord from any area with Sandstorm and
reach it without despawning it. All of them are too far or require a
path that is out of its spawn radius.
2025-05-04 15:42:47 -05:00
Kurt
a85f919630 ShowdownSet: handling for context-locked forms
Retconned forms like Totems and Cosplay Pikachu that only exist in a specific context now get recognized again
Current-Context has shifted from Gen6->Gen7->Gen8+, so a "get form list for species" won't return these forms.

Not a perfect implementation, but better for now.
2025-05-04 13:19:40 -05:00
Muhammad Kassar
a77e60d8d8 improve fr translation (#4486)
* improve fr translation

* trim down truncated stat names
2025-05-04 13:16:07 -05:00
Kurt
0e0d812d83 Add more xmldoc 2025-05-03 23:55:06 -05:00
Kurt
ae3bb75fe6 ArgumentOutOfRangeException.ThrowIfGreaterThanOrEqual 2025-05-03 23:54:11 -05:00
Kurt
ed67be3498 Keep Summary Previewer form above all other forms
Sometimes the z-order can get messed up when the PC/process is put to sleep by the operating system (or something else happens?) -- either way, just force it to the top since it should always be on top when shown.
2025-05-03 23:53:11 -05:00
Kurt
a7420cb3de Lift stat amp reinterpret to nature adjust
Allows retaining a stat parse amplification tracking result in visual order, unless requested in stored order. Results in slightly less logic being done on un-kept parses/IV parses.
Adds xmldoc
Extract Ability/Nature parse lines to add parse fail indicators on conflicting values.

```
Piplup
[Torrent] @ Oran Berry
Ability: Defiant
```

Will now flag the conflicting ability
2025-05-03 23:52:08 -05:00
Kurt
2514e66331 Fix stat leading zero 2025-05-02 11:04:06 -05:00
Kurt
77f1b637c9 Misc tweaks 2025-05-02 01:34:49 -05:00
Kurt
f730f7d19a Feature: Localization of Battle Templates (Showdown Set) (#4482)
* Localization capability for each language, import & export
* Lines with stat names (IVs/EVs) can be configured to many representations (X/X/X/X/X/X, HABCDS, etc).
* Add nonstandard localizations
* Add token types for Showdown's new set format
* Add new program settings for hover & export styles. Allows users to select which presentation format they want for the hover previews, as well as the set export format.
* Revises preview hover GUI to use new settings
* Revises export events to use new settings
* Moves no longer indicate end of set
* Enhance robustness of stat parsing
* Expand all settings in settings editor on form load
* Extract clipboard -> sets operation to api for maintainability & reusability
2025-05-01 23:16:36 -05:00
abcboy101
63516fc718 Update badwords (#4483) 2025-04-30 17:04:59 -05:00
sora10pls
d4b2b2c75f Add latest distribution outbreak data 🟡 2025-04-29 20:06:04 -04:00
Gengar
8adb7e2dc9 Add Korean Ditto Serial Code Distribution Event (#4480) 2025-04-24 20:57:11 -05:00
Kurt
a6e2e08ecb Add pokepast.es url import
why not
2025-04-21 01:10:57 -05:00
Kurt
87d2f10c7f Misc tweaks
Add date validation for lgpe go park encounters (deferred, now finally remembered to implement?)
2025-04-21 00:57:23 -05:00