Commit Graph

10784 Commits

Author SHA1 Message Date
Kurt
d658da44c6 Minor tweaks
Fixes conversion compatibility override being reverted when settings is reloaded by user (via GUI)
2025-08-13 22:05:43 -05:00
Kurt
93a381bfde Startup: load config before Main ctor
Allows specifying Dark mode in settings now.
Extracts reusable settings objects to PKHeX.Core (drawing/GUI stuff kept in WinForms).
Updating settings now refreshes backup paths/mgdb
2025-08-13 20:59:46 -05:00
Carbonara
80487a514d French - Update the legality file (#4542)
Fix a lot of weird translations/inaccuracies, translate untranslated lines.

Notes:
- BallEggCherish & BallEggMaster were missing the mention of normal, which is incorrect (some eggs were distributed in a Cherish Ball in 2017)
- EncStaticPIDShiny was using the term shiny-locked to describe it as if the error could only apply to non-shiny Pokémon set to be shiny, but from the English formulation I understand it as implying the opposite too (e.g. a shiny only Pokémon set to be non-shiny could display the warning), so I renamed it
- FatefulGiftMissing was mentioning the Mystery Gift DB being edited which wasn't the case in the original, edited
- G2OTGender: mention Pokémon Crystal instead of just Crystal since I struggled to understand Crystal meant the game rather than the name
- No clue if the Mood and Spirit stats have an official French name, so a direct translation from the English term was used
- MemoryArgBadItem_H1 was specifying that the Pokémon cannot have held any item rather than a specific item, fixed

- I translated HT (Handling Trainer) as Der. Dres. (Dernier Dresseur, Last Trainer), takes more space but clearer than using DD, or just an abbreviation that wouldn't mean anything out of the box
- TransferMet: no clue what Crown is supposed to mean, I changed it to be more accurate (from what I understand, it's supposed to be for Relocator Pokémon, so legendary beasts and Celebi, so I specified the expected potential encounter locations for them). If this is not correct, feel free to change it or tell me what it's supposed to be.
2025-08-13 20:40:10 -05:00
Kurt
330a6f088c Ball: gen6 roselia allow apricorn inherit (no HA)
budew was correct, somehow the flag for roselia-apricorn wasn't set like the other splitbreed species mirroring.
2025-08-12 01:12:54 -05:00
Kurt
8633344187 Fix vertical alignment of IsEgg checkbox
off by 1 pixel compared to pkrs
rearrange some margins on cosmetic/stats tab to avoid some clipping
2025-08-12 01:11:56 -05:00
Kurt
47efdf8a90 PK5: add pokestar fame edit, update translations
Remove pk4 walking mood from extrabyte list
2025-08-10 23:09:27 -05:00
abcboy101
8f9fec0b13 PBR: Add Battle Pass, Gear, Trainer Info editors (#4540)
* Fix PBR checksums

* Fix PBR desyncs between Data/Container

- CurrentSlot.set reloads Data from Container, so copy other.Data to Data after
- When editing the OT name, use Data if the requested slot is the current slot

* Correct PBR party offset/size

* Add GameVersion.BATREV

* Add Gear Editor

* Add Battle Pass/Trainer Info Editor for PBR

* Minor tweaks

* Fix ResetGear/UpdatePresetIndexes
2025-08-10 22:43:03 -05:00
Kurt
3a4fe49182 PB7: Add Spirit/Mood names, editing, checks
Official Names from guidebook: https://discord.com/channels/497890797115670539/950895799401848852/1285451683945779303
Removing from party (except starter): reset to 100 -- not ALWAYS like the previous logic once did.
Flag any non-party/starter if not 100-100.
Add separate GUI controls (not to confuse with Gen4's Walking Mood)
2025-08-10 02:16:37 -05:00
Kurt
ff0f4727dd Extract logic from SaveUtil
BlankSaveFile -> creation of blank save files
SaveFileType -> listing of all savefile types

Blank save file arg passing is now clearer
Instead of SaveFile? return, use TryGet pattern with nullable annotations to indicate success
2025-08-09 21:55:55 -05:00
Kurt
d4bbb6dd02 Misc tweaks
Ball: all ball IDs are in a sequence +1'd. No need to have an array when we can just increment within the range. Ez removal of static constructor and allocation, and better iteration (and skips index 0!)
Disallow E/FR/LG item deposits of anything besides general pouch (R/S is like G/S/C, any pouch). Confirmed via testing in-game and matches Bulbapedia's testing.
Disallow Gen2 held item being an HM; no longer considered valid as a tradeback catch rate value. Oops that HMs were "allowed" for so long!
Encode Gen2 held items to bitflag array to not need to compute the merged array. Relocate duplicated logic to a single location in ItemConverter.
Fix gender-changing marill edge case comparing the wrong ratio
2025-08-08 23:43:22 -05:00
Kurt
af416dc71a Add gen4 mood to pkm editor (cosmetic) 2025-08-08 00:42:15 -05:00
Kurt
141aa97e2b Merge branch 'master' of https://github.com/kwsch/PKHeX 2025-08-08 00:19:34 -05:00
Kurt
fd3af56ec4 Legality: add date sanity check, shinyleaf/mood
date: If location specified, ensure valid date; if no location, ensure zeroed.
shinyleaf: check bad bits, check crown has all leafs.
mood: rename from pokeathlon, now sbyte. All values possible, only flag outside of party in HG/SS.

Revise HGSS slot setter to wipe mood to match game behavior (and thus not retain mood to be flagged by the legality check).
There's currently no editor for it, but maybe I can add it in a future commit.
2025-08-08 00:19:33 -05:00
Kurt
101aa17a8d Update translations for dex revisions
see previous commits
2025-08-08 00:08:57 -05:00
Kurt
b291378e78 Localizations: better thread safety init
No need for a dictionary, just allocate an array and index in via one of the supported languages.

Updates GameInfo to use the abstraction to prevent some duplicate work on a very-hot startup. Threads repeating the same work vs Thread n++ simply waiting for previous thread to finish init is the ~same amount of time, with less overall CPU usage (so this is a positive improvement).

EnterScope is "safer" than explicit `lock (x)` due to the using syntax releasing the lock even on exception (not expected, but might alleviate issues on developer-initiated feature upgrades).

Co-Authored-By: HexByt3 <80122551+hexbyt3@users.noreply.github.com>
2025-08-07 21:15:32 -05:00
Kurt
4ed1d12859 Widen batch editor GUI
Fiddled with the spacing to be more 4px spaced rather than inconsistent.
Dropdown for property select is now wider, and doesn't cut off long names like OT memory feeling.
2025-08-07 21:15:32 -05:00
sora10pls
cfdc571f9c Update Shiny Wo-Chien Wonder Card ID 2025-08-07 20:05:25 -04:00
Kurt
28e20c4ea3 Enhance gen6 dex interactions
Uses the rewritten Gen5 object as the base rather than the old zukan abstraction
Adds National Dex unlocked flag for editing

probably best to extract an interface as there's no need to have a shared abstract Zukan class across generations.
2025-08-05 09:55:58 -05:00
Kurt
ceff28210a Fix PBR init
Closes #4534
2025-08-05 09:52:03 -05:00
Kurt
031f7f4e6c Update Zukan5.cs 2025-08-04 02:56:57 -05:00
sora10pls
d78aff9e03 Add latest distribution outbreak data ❄️ 2025-08-03 20:15:14 -04:00
Kurt
112086d85b Update SAV_Pokedex5.cs
am i gen 4 or gen 5? why not gen4.5?
2025-08-03 14:34:34 -05:00
Kurt
d732520762 Rewrite Gen5 dex editor & backend
Closes #4533
2025-08-03 14:24:22 -05:00
Kurt
1d57facd22 Minor tweaks
extract max/min level to const
fix max species ID in filtered sources
2025-08-02 21:02:11 -05:00
Kurt
720ac7ead7 Misc tweaks
add localization for ` @ lv{0}` for verbose report
2025-08-02 01:40:18 -05:00
Kurt
0f106c9c82 oops
not actually exclusive
for eggs, assume that ability inheritance flips the bit
2025-07-31 23:12:17 -05:00
Kurt
8d99a7a56d Misc gen5 PID random number updates
Use 64bit RNG for PID creation, mimic how the game generates PIDs with the impossible value quirks
shiny lock the HA eevee in castelia
remove duplicate encounters (no longer needed due to form mutation API being mature)

ty @Lusamine for obtaining some samples and testing the PID generating algo
2025-07-31 22:40:56 -05:00
HexByt3
b1464a0941 Update StartupArguments.cs (#4532)
BallDataSource => VersionDataSource
2025-07-30 15:19:38 -05:00
Kurt
4c0ad92edb Allow bulkanalysis w/o save file
secret constructor that was for tpci, now available for all /s
2025-07-30 01:25:20 -05:00
Kurt
11f33985c4 Move files, xmldoc, simplify
External check can call AddLine. The intent is to not allow it to remove previous parse results.
2025-07-30 01:24:02 -05:00
Kurt
90cfa59102 Misc tweaks
Pass Analysis to external localizer
Cache index for bulk analysis flagged slots
2025-07-29 20:12:41 -05:00
Kurt
223840f943 Revert "Convert sln to slnx"
This reverts commit 5d2ebf4d0a.
2025-07-28 21:51:16 -05:00
Kurt
efefd78caa Update dependencies
pipeline will stay broken until nuget 6.15 releases (it's been 2 month
2025-07-28 21:51:10 -05:00
Kurt
5d2ebf4d0a Convert sln to slnx 2025-07-28 19:07:25 -05:00
Kurt
47092a2df0 Misc tweaks 2025-07-28 18:45:30 -05:00
Kurt
13154d70f8 Split missing/invalid ribbon results
Generating the message is repeat work, but the deferred message is still better in the long run.
1x -> 3x, but that's worst case.
2025-07-28 18:12:14 -05:00
Kurt
c331d97e89 Fix 2 localization mis-mapped
tested 100k, no more thrown Exception's
2025-07-28 02:11:26 -05:00
Kurt
fb814ac878 Add xmldoc 2025-07-28 00:14:33 -05:00
Kurt
904fd2020c Add external legality check functionality 2025-07-27 23:47:45 -05:00
Kurt
b3d3c9e562 Minor fixup on localization resources 2025-07-27 21:49:22 -05:00
Kurt
65420b0878 Actually test the bulk check result formatting 2025-07-27 21:20:34 -05:00
Kurt
d99ec943fe Fix stragglers from dual PR merge 2025-07-27 21:03:19 -05:00
Kurt
44486fdf85 Merge branch 'master' of https://github.com/kwsch/PKHeX 2025-07-27 21:00:38 -05:00
Kurt
f370c0cc39 Memory<byte> Refactoring (#4527)
`SaveFile` and `PKM` classes now use `Memory<byte>` instead of `byte[]` to store their primary backing array data.
2025-07-27 20:57:10 -05:00
Kurt
13a4d472bc Deferred Humanization of LegalityAnalysis (#4531) 2025-07-27 20:54:58 -05:00
Easy World
a5cdb0e27c Update Simplified Chinese translations (#4529)
* Update translation

* Update Simplified Chinese translations

Improves and corrects Simplified Chinese translations in legality check strings, program messages, and WinForms UI. Updates terminology for better localization accuracy and user clarity.

* revert legality check strings

Will be manually updated in future commit by kwsch -- avoiding merge conflicts for now

---------

Co-authored-by: Kurt <kwsch@users.noreply.github.com>
2025-07-27 16:57:16 -05:00
sora10pls
ba2c397cb9 Add placeholder Shiny Treasures of Ruin date ranges
Wonder Card IDs to be determined, 9996-9999 until released
2025-07-27 15:49:49 -04:00
sora10pls
a49f832f3a Add placeholder Shiny Treasures of Ruin date ranges
Wonder Card IDs to be determined, 9999 until released
2025-07-27 10:06:43 -04:00
abcboy101
fef5ff3edb Translate DataGridViewColumn header text (#4528)
* Localization update

* Translate DataGridViewColumn header text

Temporary label hack in SAV_FolderList is no longer needed

* Localization update
2025-07-26 08:43:23 -05:00
Kurt
6fd644069c GUI: swap gen3 marking visual order
https://projectpokemon.org/home/forums/topic/66916-order-of-cosmetic-markings-in-gen-3/#comment-296256
2025-07-24 14:46:59 -05:00