Commit Graph

10819 Commits

Author SHA1 Message Date
Kurt
e1ca2ccdf8 Revise set all valid ribbons for Gen6 training rib 2025-09-05 21:05:07 -05:00
Kurt
d574ce32d1 Add slnx
Try again; delete .sln later.
2025-09-05 17:35:53 -05:00
Kurt
ee02b7c176 Update save file export extension filter get
specific extensions (like dsv/gci) would return a filter of (.gci) rather than (*.gci), leading to user error when they toggle back and forth (removing the extension).

Closes #4555

unrelated: allow folder list manual text entry to anchor to the right side (expands when form is expanded)
2025-09-05 14:54:26 -05:00
abcboy101
355262ba4d Fix IsG2CrystalJPN (#4554) 2025-09-05 08:34:48 -05:00
Kurt
1a07618bbe Misc tweaks
Adds HP to gen3 roamer editor - closes #4553
Revises Gen3 Hall of Fame editor to allow edits (save/load methods were swapped)
Don't append Gift3 PID types if PID type is mismatched
2025-09-04 22:52:18 -05:00
sora10pls
47666d5469 Update Shiny Ting-Lu Wonder Card ID
Chi-Yu is likely 1548, but I'm not going to change it yet, because I know that if I do, then they'll break the current pattern.
2025-09-04 20:02:11 -04:00
Lusamine
6438a74940 Extend WCS Toedscool valid end date
Contrary to what the code cards stated as the end date, they could still be redeemed into August 31st in UTC+14.
Thanks to the user Pikachu from Discord from testing!
2025-09-01 16:30:35 -05:00
Carbonara
293107dbcf Add more info for BW and ORAS flags (#4551)
* Provide more details for TransferMet

Defaulted Japanese, Korean and Chinese (Traditional and Simplified) to the English line due to not knowing well the language and not being easily fixable unlike other European languages (the line was wrong in any case so it needed a retranslation, and nearby lines are also untranslated).

Other languages than English don't seem to have a widespread term for the Crown Beasts, they use something like Legendary Beasts even for those ones, so using this term should be easier to understand.

* Give more details for some ORAS flag lines

- Specify where the Statuette is exhibited (XY and ORAS)
- Specify where the gifts and eggs are, and which Pokémon are in-use for the in-game trades
- Specify that the Diancite and Prison Bottle are part of events ()
- Specify where the Winstrate Family is located
- Add trainer location and title for rematches in English and Spanish (translated), Korean, Chinese Hant (untranslated, English lines). Not sure how to take care of it for the other Chinese translation, and the Japanese translation already mentions the location, so no need to alter it.
- Fix an issue in French where the old hot-springs visitor was partially using the English name instead of the French one

* Add more info for some bw flags
2025-09-01 09:34:17 -05:00
sora10pls
765b0b3680 Latest distribution outbreaks, Reg J ribbon legality 2025-08-31 20:05:54 -04:00
Kurt
ded9d54399 Misc tweaks
fixes legality report not showing localized
fixes pcjp5 seed->table generate
removes eternamax from go_home pkl
waiting for raids before hotfixing exe & pushing nuget
2025-08-31 17:12:20 -05:00
Carbonara
597bbbcf8d Update the French translation (#4550)
* Update legality_fr.json

- Translate the added lines in French
- Fix Œuf (Egg) not having a capital letter for one of the lines

* Update encounter_fr.json

- A space should be present before a ":" character in French, fixed
- Translate Origin Seed (still using the English term Seed for consistency atm, and since this term is more widespread)

* Translate setparse_fr

* Update movesource_fr.json

- Move is supposed to be Capacité in French, not Attaque
- Added a space before ":"
- Changed the order when mentioning a special move to avoid confusion (would have displayed Capacité spéciale otherwise, which is the old term used for Abilities in French, unrelated to this file)

* Update flags_bw_fr.txt

- Translate remaining flags
- Add proper locations for where some of the flags are located
- Give more details for the trades

* Update flags_oras_fr

Translate all untranslated lines to French, specify the gender for legendary Pokémon only available in female, fix Famille Stratège not being accorded.
For the rematch, I added the trainer class and location for all of the lines in French (speaks more than just a name you will not memorise): let me know if you want to have this ported to other languages.

Other:
- Fix a typo where Fallarbor Town was written as Fallabor Town, Verdanturf Town as Vendanturf Town
- Fix an issue where Pikachu Cosplayeur was written as Pikachu Cosplay
- Fixed the origin message

* Update MessageStrings_fr.txt

- Translate new lines
- Fix some wordings
- Fix MsgIndexAbilityGame being duplicated from MsgIndexAbilityRange instead of being its own message

* Update lang_fr.txt

Translate some lines:
- Pass Powers, O-Powers, Gen 7 Throw Styles translated
- Misc lines translated or fixed

May or may not take care of other entries in the future, it depends on when I'm motivated and for what
2025-08-31 17:10:56 -05:00
Kurt
a0584ca5f5 Update MedalVerifier.cs 2025-08-31 01:21:24 -05:00
Kurt
9e8d8ccc62 Update 25.08.30 25.08.30 2025-08-31 00:01:14 -05:00
Kurt
5f5ec65c4a Add training bag effect party stat
ty Anubis
rearrange some of the comments for clarity

Co-Authored-By: Lusamine <30205550+Lusamine@users.noreply.github.com>
2025-08-31 00:01:14 -05:00
Easy World
82fdbbb777 update Chinese translation (#4547) 2025-08-28 22:26:40 -05:00
Kurt
c3b3b611aa Super Training: another look
revise criteria for ribbon
add legality check for training bag values
add localizations for distribution training regimens (never distributed)

Co-Authored-By: Lusamine <30205550+Lusamine@users.noreply.github.com>
2025-08-28 20:19:05 -05:00
Kurt
1056b04d0c Gen1: update sea slots for tentacool<->jynx remap
this area (sea surf) didn't get internal->national in my conversion script years ago... nice.

refer to dumper where they were manually fixed and re-dumped to the binlinker pkl format.
366e035034
2025-08-28 01:04:58 -05:00
Kurt
b9625c75b4 Update GUI translations
includes the splash screen disable setting that was added recently
2025-08-26 12:55:12 -05:00
Kurt
79b3bd4f74 Gen3: revise PCJP internal logic
deduplicates a little; renames the PID type label to something less confusing.
2025-08-26 12:54:53 -05:00
Kurt
ed419c49bd Gen5: Pokestar fame disallowed on ditto
transform in moves, disallow participation (can't copy the opponent!)
https://projectpokemon.org/home/forums/topic/57375-pkhex-new-update-legality-errors-contribution-page/page/33/#comment-296835
2025-08-26 12:53:53 -05:00
Kurt
82744a12ef Update dependencies 2025-08-22 16:33:04 -05:00
Kurt
dd5d6a4e39 Minor tweaks
no functional change
2025-08-22 16:33:04 -05:00
Kurt
5beabb2020 Hide slot change publisher's list, add/remove 2025-08-22 16:33:04 -05:00
Kurt
3f32ee5814 Allow SlotView to wrap a multi-entity file
Not currently used, but can be in the future.
2025-08-22 16:33:04 -05:00
Kurt
5dce5e93e9 Add misc slot legality flag skipping
For BD/SP with partially generated mons, ignore the triangle annoyance.
2025-08-22 16:29:03 -05:00
Kurt
f0423610af Add localization for ShowdownSet parse fail popup 2025-08-22 16:28:03 -05:00
sora10pls
d8853b6de6 Update Shiny Chien-Pao Wonder Card ID 2025-08-21 20:05:10 -04:00
sora10pls
c1211fe84c Add latest distribution outbreak data 🌎 2025-08-17 20:05:16 -04:00
Kurt
ea85d5e6b0 Minor clean 2025-08-16 09:21:16 -05:00
Kurt
e25b2037e2 game->version 2025-08-16 09:21:16 -05:00
Kurt
89cb15b9cd Extract GetBlankSaveFile to static class 2025-08-16 09:13:07 -05:00
9Bitdo
2aa6552312 Add WCS 2025 Toedscool & Luca Ceribelli's Farigiraf date (#4544) 2025-08-15 14:49:40 -05:00
Kurt
c3873165af Add farfetch'd apostrophe 1/2->7
the other ver 1.2 bug that was fixed in 1.3
every other diff noted in https://github.com/kwsch/PKHeX/pull/4545#issuecomment-3192383636 is an inaccessible text entry. Farfetch'd is set by the game on capture, just not enterable via text entry.

Restore 0-9 for both int/jpn as Porygon2 exists. 01[]345... are un-enterable, but whatever. Should be a text entry check rather than a transporter check.
2025-08-15 14:25:45 -05:00
drabu96
3e8c355ef7 Fix pk1/pk2 char conversion to >=pk7 (#4545)
* Fix pk1/pk2 char conversion to >=pk7

Fixed conversion of a gen1/2 "․" to ASCII "." when converting to pk7 or newer.
Added a test that verifies the fix.

Addresses the issue: https://github.com/kwsch/PKHeX/issues/4543

* Update StringTests.cs
2025-08-15 13:30:07 -05:00
Kurt
f0c8b86728 Minor startup tweaks
Allow settings to skip Splash Screen (and just launch the main form without fuss, cuz why not?)
Handle scenario where PKHeX.Core.dll fails to bind during Settings fetch -- handle via static constructor instead of Program.Main() so that errors pipe to the Release error handlers.

Run update check in another thread, after Main is shown, so that offline users don't have to wait 3 extra seconds for it to timeout and show.

Revise the startup animation to just show the Main form rather than minimize->restore. The previous "hack" was designed so that if users clicked anywhere after launching the program (thus losing focus) the Main form would re-capture it. Activate() works fine now (maybe it didn't in the past?)

Removes "dark" startup arg; do via settings. Users really won't have a separate launch config like they might for HaX via .bat
2025-08-14 23:57:20 -05:00
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