Commit Graph

10674 Commits

Author SHA1 Message Date
Kurt
ba2245d7d8 Add more xmldoc
Updated PIDIV tests to use IV32 rather than IV sequence checks. Now marked as Obsolete to prevent myself from reusing PKM.IVs getter :)
2025-06-07 09:41:02 -05:00
9Bitdo
5c77f79d88
Add PTC 2025 홍주영's Porygon2's date (#4508) 2025-06-07 08:12:26 -05:00
sora10pls
f78e929428 Pokémon Scarlet & Violet are finally playable 2025-06-04 20:05:50 -04:00
Kurt
d2594d7867 Misc tweaks
nothing needed for 4.0.0, everything works as-is
2025-06-02 21:01:16 -05:00
Carbonara
c17fc13fd2
GSC - Give proper name for decoration and puzzle flags (#4505)
Also fixes some lines in the French translation.

For the decorations, the formatting is based on the one of the games, but with names not written in ALL CAPS. As I do not have English copies for the names, I've used the formatting present on this page, https://bulbapedia.bulbagarden.net/wiki/List_of_decorations_in_Generation_II, and I've been using the Nintendo Power formatting for the plants.

There was an error of labelling: an entry was named DECO_PLANT_4, but there are only 3 plants available. After checking, this entry is actually the Town Map, that was listed separately as PLAYERS_ROOM_POSTER. As such, the entry named PLAYERS_ROOM_POSTER is incorrect. I have no idea what this is, if it does anything or not (doesn't seem to change anything when enabled or disabled at a first glance), so this would need someone to check that. For now, I removed the entry from the list, but feel free to readd it or cancel that change if it is needed anyways or if you can figure what it is.

On a similar domain, DECO_STARMIE_DOLL is actually a Staryu Doll, though the in-game name on its own is enough to fix the issue.

The zh_hans translation had some lines not translated in the proper order, so I corrected those lines by putting them in the proper order. (checked by combining translation software, wiki page https://wiki.52poke.com/wiki/%E8%A3%85%E9%A5%B0%E7%89%A9%E5%93%81%EF%BC%88%E5%9F%8E%E9%83%BD%EF%BC%89, and manual search of the Pokémon names to ensure everything was correct).

The decoration flags don't necessarily seem to fully work: they work to unlock a decoration, they work to remove it if unlocked through PkHex, but just disabling the switch on a save file that got the decoration through normal play doesn't seem to always work from what I can see, may need to be investigated.

Documenting the changes made for the French translation also.

Some of the decorations have different names between French Gold/Silver/Crystal and French Stadium 2, documenting them here:

French Gold/Silver/Crystal:
- "Lit à Plumes"
- "Lit :Rose"
- "Tapis :Rouge"
- "Tapis :Bleu"
- "Tapis :Jaune"
- "Tapis :Vert"

French Stadium 2:
- "Lit en Plumes"
- "Lit Rose"
- "Tapis Rouge"
- "Tapis Bleu"
- "Tapis Jaune"
- "Tapis Vert"

For the French translation, I'm using "Lit à Plumes", while for the other entries I'm using the names from Stadium 2 (no need for ":" in the names, and the formatting is odd).

I'm also adding a space for "JouetPikachu Surf" to be "Jouet Pikachu Surf" (space lacking due to the lack of space in the original text - Jouet should also normally be Poupée, but was translated as Toy due to the lack of space, but I'm not renaming it to not be confusing).

Fixing other French mistakes while I'm at it.
- Bec Pointu was written as Bec Pointy in the GSC flags
- Made the flag edit warning message be shorter to be able to be fully displayed
For the Entralink lines:
- Translated w/o to sauf, and wrote No in lower letters
- Changed NOUVEAU to NOUV. to fit in the textbox
- Changed Meilleurs records: to Total meilleurs scores to be clearer and not use ":" due to being odd
- Fixed Verrouillé and Déverrouillé being misspelled
- Changed Le plus de participants to Record nbr. joueurs to fix in the textbox and be more concise
- Fixed the line Verify status which wasn't using the same formatting than another similar line, and had several typos

The translations for the Entralink may not be final, it depends on if I revisit the translation of PkHex to complete it in some categories later on or not.
2025-06-02 18:38:20 -05:00
sora10pls
bc8ea34474 Add latest distribution outbreak data 🦆🖥️ 2025-06-01 20:05:14 -04:00
Kurt
602b1b6371 Add more xmldoc 2025-06-01 11:08:07 -05:00
Kurt
675c017a56 Merge branch 'master' of https://github.com/kwsch/PKHeX 2025-05-31 22:51:57 -05:00
Kurt
bf9e53efa1 Misc tweaks
Add more xmldoc
Simplify some expressions
Reduce unnecessary logic
2025-05-31 22:51:55 -05:00
Kurt
75cf9b0934
Use more modern PluginLoader implementation (#4503)
* Use System.Runtime.Loader to load plugins

Can now unload plugins if need be. Load->Update->Unload->Load(new) ?
2025-05-31 21:03:12 -05:00
Kurt
93d9292d83 Minor clean 2025-05-30 17:41:54 -05:00
sora10pls
af92d43650 Add more bugs to Pokémon Scarlet & Violet 2025-05-29 20:06:34 -04:00
Kurt
87d55fc303 revise xd ID check to exclude PAL
ty John_0902 on discord
2025-05-29 10:16:51 -05:00
Kurt
fd766a5506 Filter db search dropdowns for current context
"why can't I find Yveltal in SV?" because it doesn't exist in the game
now matches the dropdowns of the main PKM editor
2025-05-29 10:04:06 -05:00
Kurt
c9b8a5b893 Misc tweaks
No functional change
2025-05-29 10:03:17 -05:00
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 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