Commit graph

6060 commits

Author SHA1 Message Date
sora10pls
6855c842ca Permit Ranked Ribbon on Legendaries for Regulation G 2024-05-02 20:28:57 -04:00
Kurt
ad0c9b147d SAV6AO: Fix dexnav get/set
Was looking in the wrong segment of save data. Now points to the correct span (pokedex).

Extract a few more save blocks and interactions.
Basically try to get rid of any remaining `SAV.Data` references. Still a few left, but aren't broken.

Closes #4259
2024-05-01 22:58:47 -05:00
Kurt
0f4024952e Minor clean
indexof -> contains
trailing space
some variable reuse
pcdata/boxdata less janky handling
2024-05-01 00:49:43 -05:00
Kurt
78fde1367d Add more per-context settings 2024-04-28 18:19:55 -05:00
Kurt
9231f37be4 Move outbreak iteration after slots
essentially wild slots... can have wild marks like slots
need to check before static encounters (cannot have marks)
2024-04-28 16:44:28 -05:00
902PM
eb273d05a4
Japanese language translation updates (#4255)
Revises gen3/4 japanese strings as well as some program messages.
2024-04-28 10:27:11 -06:00
Kurt
e9de611735 Fix sav2 clone
Regression from the version-detect enhancement where we weren't expecting specific versions to be passed, only the lumped ones.
2024-04-28 11:25:46 -05:00
Kurt
e7f79be41d Minor clean 2024-04-28 00:35:26 -05:00
Kurt
bb6e45db60 Refactor out legality settings, add more settings
Extract PP verifier
Add disabling of wordfilter for formats < 6
Add context-specific bypasses for nickname/handler checks
2024-04-26 14:33:03 -05:00
Kurt
94f93d41c5 Update EvolutionGroup4.cs
Handles arceus-9 in future generations (reads as "not present in current game" via personal info if not stripped).
2024-04-26 08:35:54 -05:00
Kurt
3358038172 Add ball deferral & met level leniency for gen3/4
Fixes some issues reported via discord
2024-04-26 01:33:19 -05:00
Kurt
4e56a2b756 Fix zhs/zht table swap
simplified is the first set, not the second
Closes #4254
2024-04-26 01:27:53 -05:00
sora10pls
9788f007a3 Add latest distribution outbreak data 🐟🚗🦁💩 2024-04-25 20:06:07 -04:00
Kurt
c0e44d6375 PA8: add missing marking interface 2024-04-25 10:24:38 -05:00
Kurt
2296d34df3 Gen1/2: Fix party read
Oopsie false->true ez
Closes #4253
2024-04-24 19:24:49 -05:00
Kurt
9ff94455b9 Add setting to retain met date on 4->5 transfer 2024-04-24 02:11:14 -05:00
Kurt
093264bc24 Add IStringConverter, impl on PKM & SaveFile
use in trash editor to translate strings, from PKM instead of SAV.
Closes #4222
2024-04-23 00:57:17 -05:00
Kurt
1b294f7c97
Refactor: Split Gen1/2 string & pokelist conversion methods (#4251)
* Split Gen1/2 string & pokelist conversion methods

* Refactor pokelist to direct read/write, skip on save if blanked

* Add settings editor for SaveLanguage overrides
2024-04-22 14:42:22 -06:00
902PM
3087519c62
Translated to Japanese. (#4249)
* Update lang_ja.txt

* Update flags_hgss_ja.txt

* Create const_hgss_ja.txt

* Create const_dp_ja.txt

* Create const_pt_ja.txt

* Update lang_ja.txt
2024-04-22 14:40:03 -06:00
Kurt
f93b616ca8 SV: Fix EV yield bit ordering
Closes https://github.com/kwsch/PKHeX/issues/4252

see dcf6b0043b
2024-04-22 13:33:12 -05:00
Kurt
54525da20b Add tradeback wipe of Gen2 initial moves 2024-04-20 14:04:54 -05:00
Kurt
35bf97eaf1 Add status indication & switcher popup
Shows on all tabs to make it clear.
Obviously, status condition is only saved in formats that save status condition in their slot's resting format. Gen3 box mons won't store Burn, etc.
2024-04-17 00:35:42 -05:00
Kurt
b60648627a Add setting to show Gender in Gen1
Default false, current behavior.
Previous commits (years ago) would show Gender, but only current-format properties are shown now.

Fix some form scaling settings that haven't been reported, match other controls.
PKM property copy now checks if src==dest property type; for Gen6<-Gen7 markings, converting ushort -> byte can cause the conversion to fail if more than 8 bits are used. Just ignore copying the marking value, by only copying properties that have the same name AND type.
2024-04-16 21:01:14 -05:00
Kurt
2e62e41ab1 Add gen5 trainer record edits
Refer to src (Record5) for indexes; documented a few.
Closes #4245
2024-04-13 09:06:16 -05:00
ネイ
9caab05aab
Change gen4-gen7 Japanese location names (#4246)
* Fix gen4 Japanese translations

* Add Japanese descriptions where location names are different between games
2024-04-11 22:32:29 -06:00
sora10pls
ce666680f7 PK2: Expose Fast Ship as accessible met location 2024-04-11 10:04:28 -04:00
9Bitdo
8f65874ba4
Add Marco's Iron Hands distribution date (#4238) 2024-04-10 22:01:19 -04:00
ネイ
5794ffd78a
Update text_rsefrlg_00000_ja.txt (#4242)
Translate the remaining untranslated location, from text dump.
2024-04-09 19:31:54 -06:00
ネイ
4972ab469c
Update text_cxd_00000_ja.txt (#4240)
Translate the remaining untranslated location names with reference to text dump
2024-04-09 07:28:46 -06:00
Lusamine
a6868834c8 Add alternate met location for LA static Unown N
Closes #4237
2024-04-06 15:53:59 -05:00
Kurt
0552dcd37c Crystal: Add e-speed-less dragons den dratini
VC has no move relearner so can't unlearn espeed & relearn the level up move to look the same.
Rearrange moves to match how the game gives them.
2024-04-06 09:06:45 -05:00
Kurt
9c1538f503 Disallow HOME move share w/ battleversion & <=Gen7
HOME's SWSH moveset is disqualified from having <=Gen7 moveset permissions if the battle version was applied in SW/SH.
2024-04-05 14:49:46 -05:00
sora10pls
f0b127e13e Add latest distribution raid data 🦕🔮 2024-04-04 20:02:00 -04:00
Kurt
d222d4bb2e CXD location on hover
CXD is a stored version and does not contain others
2024-04-01 17:28:05 -05:00
Kurt
5f4cf2af29 Better guard against bad gender requests
Can infinite loop gen3/4 generators by requesting from an invalid gender (eg Male Blissey) in Gen5+
2024-03-30 17:44:21 -05:00
Kurt
a2f36760e6 EncounterCriteria: ignore genderless gender values
Shedinja (genderless) was filtering when trying to generate gendered nincada
Also fix method2 reattempt & comments while we're here (comments were copypasted from Unown's method)
2024-03-30 11:28:15 -05:00
Kurt
a71d74b1ea Split gen3 memorycard into subfolder 2024-03-30 01:17:18 -05:00
Kurt
8b039ae786 Rework card 0184 deferral 2024-03-30 01:13:52 -05:00
Kurt
8f60ad546c Extract DEntry reading logic 2024-03-28 23:07:13 -05:00
sora10pls
9888479021 Add latest distribution outbreak data 👶 2024-03-28 20:07:13 -04:00
Kurt
d8689e4074 Update EncounterTrade2.cs 2024-03-28 00:41:23 -05:00
Kurt
69f7413387 Revise Gen8 HOME gift 0/0 scale rolling 2024-03-25 23:12:59 -05:00
Kurt
af228b0fec Re-add gsc rock smash
ede3296c31

also sneak in SV Ride legend having trash bytes/HT data
2024-03-25 22:28:51 -05:00
Kurt
fed6b41950 Update EncounterTrade2.cs 2024-03-25 19:27:23 -05:00
Kurt
45444578ab Handle Gen8 ability tradebacks
HOME 3.1.0 change (Teal Mask)
https://www.smogon.com/forums/threads/pokemon-home-update-adds-ability-tradebacks-to-swsh.3727789/

delete all the handling for 3.0.0 tradeback gating since it's no longer correct.
2024-03-25 17:18:44 -05:00
Kurt
bf476f4de5 Update ChannelJirachi.cs 2024-03-25 12:52:59 -05:00
Kurt
c95d56bfd6 Update 24.03.26 2024-03-25 00:46:21 -05:00
Kurt
2b4ecee899 Rename EggEncounter to IsEgg 2024-03-25 00:39:30 -05:00
Kurt
024bd85cc3 Minor tweaks
make PL6 use memory instead of byte[]
make GP1 use memory instead of byte[]
move IEncounterable properties higher to IEncounterTemplate
2024-03-24 20:12:33 -05:00
Kurt
905c80521e Trade2: hard match on nickname, not OT
Webster (RANDY) Spearow in Italian uses the same OT, with different nickname.
2024-03-24 14:46:23 -05:00
Kurt
c6f12515c6 Flag invalid mystry mew seeds, like channel 2024-03-23 21:35:46 -05:00
Kurt
acdb9f12b3 Defragment PersonalInfo backing arrays
resource fetch grabs the big byte[], just reference off that instead of creating another copy object.
2024-03-23 21:34:11 -05:00
Kurt
2ff2815dbe Add Channel Jirachi menu pattern verification
Sitting on my todo-list for far too long
see pokefinder for similar implementation
PKHeX has a forward & reverse implementation available for 100% documentation purposes :)

The seed indicated in hover previews now matches that of the true Origin seed for the encounter (pre menu & accept dialog), similar to Method H/J/K encounters.

Co-Authored-By: Admiral-Fish <24730718+Admiral-Fish@users.noreply.github.com>
2024-03-22 16:12:56 -05:00
902PM
dbed62b314
Update flags_usum_ja.txt (#4231) 2024-03-22 08:04:47 -06:00
902PM
04dda339e5
Update const_usum_ja.txt (#4232) 2024-03-22 08:04:40 -06:00
902PM
1df1101236
Create const_xy_ja.txt (#4233) 2024-03-22 08:04:33 -06:00
902PM
9c9400050f
Update flags_sm_ja.txt (#4234) 2024-03-22 08:04:28 -06:00
902PM
331e08ff2e
Update flags_xy_ja.txt (#4235) 2024-03-22 08:04:11 -06:00
Kurt
84363eb8eb Next seed if activation fails
ty santacrab for pointing this out
2024-03-21 21:22:56 -05:00
sora10pls
1faef958a7 Add latest distribution raid data 🍄👊 2024-03-21 20:48:31 -04:00
9Bitdo
f0f341f6f2
Add Liko's Sprigatito distribution date (#4228) 2024-03-21 07:57:02 -06:00
abcboy101
21a1d5fe6f
Add PBR Poké Coupons accessor (#4230) 2024-03-21 07:56:28 -06:00
Kurt
c1b98025f7 Fix gen3 HoF clamp, reject invalid sector IDs
Closes #4229
2024-03-21 08:55:48 -05:00
Kurt
205e9b433d Set ability bit, precheck for encounter activation 2024-03-21 00:18:16 -05:00
Kurt
f27326cb2e Update PK5.cs
don't count sinnoh champ in battle ribbon sum
2024-03-20 23:31:17 -05:00
Kurt
1291a40e21 sav4 dex 2024-03-20 23:28:19 -05:00
Kurt
f7900ed8b4 Enhance Text trash editor
#4222
SuggestAppend species dropdown
Indicate trash-to-be-applied when hovering on button
Fix ClickOT in pkmEditor applying English on Japanese Gen3 saves
2024-03-20 09:44:20 -05:00
Kurt
95eb008125 Misc tweaks
no functional change
2024-03-20 09:42:28 -05:00
Kurt
dca76f50f7 Catch more uninitialized file call stack paths
Closes #4223
2024-03-18 19:05:22 -05:00
abcboy101
8a3a338c0b
Fix encodings for Gen 3/4/5 transfers (#4220)
Adjust Gen 3/4 encodings to be consistent with Gen 5 Unicode encodings
Gen 3 quotation marks are displayed differently based on the game language
Implement how Pal Park handles invalid characters and corrupts certain accented characters
Implement how Poké Transfer handles invalid characters
Use U+25BA BLACK RIGHT-POINTING POINTER, since this character is used as the pointer in menus/etc., rather than as a bullet or generic shape
2024-03-17 22:34:13 -06:00
Kurt
2b6f153831 Don't remove <=g7 move if swsh context 2024-03-17 17:30:04 -05:00
Kurt
9e7046564c Revise naive ability deferral logic for gen9
Closes #4221

HA->1->2 requires a 2-step check
2024-03-17 14:44:54 -05:00
Kurt
2259551ace Event Diff: move version check closer to init
Sanity Check method checks the objects that expose the flagwork, which no longer is always a save file.
2024-03-17 13:55:27 -05:00
Kurt
bc7118b493 Add specialized PIDIV generator for gen4 slots
extract gen3's to a static class
2024-03-17 13:54:36 -05:00
Kurt
c3c7fac86f stadium: grgs psyduck all languages 2024-03-16 20:21:44 -05:00
Kurt
9352301b65 Add special generator for Gen3 unown
Removes incorrect slots ( see 2bf963009f )
Allow Unown of any form through (unspecified in Possible generator)

Adds SlotRange get method for Gen3/4 methods.
2024-03-15 21:21:34 -05:00
Kurt
d43f0dadc4 Fix SAV4 daycare seed set (save export)
oops, just extract the end-data offset to be more obvious
2024-03-14 03:24:03 -05:00
Kurt
d630160665 Fix import of bv4/5 teams
Need to decrypt state
Handle pk5.Nature on import/export, unsure what the other flags are for.
2024-03-14 03:11:11 -05:00
Kurt
9c6f030861 Fix gen4 mystery gift misalignment
indicate the card type in the preview pane
2024-03-14 02:32:20 -05:00
Kurt
2f08a35a5c Re-add Mt Silver Cave headbutt tile types
https://projectpokemon.org/home/forums/topic/64867-pkhex-marks-as-illegal-some-pok%C3%A9mon/#comment-288729
2024-03-14 01:20:56 -05:00
Sakura
b7f31f335f
Add YOASOBI Pawmot Date (#4218) 2024-03-13 09:51:25 -05:00
Kurt
10e108939b Move fallback pressure check to near end 2024-03-13 00:18:58 -05:00
Kurt
1241e6eff6 Double check some bounds checks
still have some issues with gen4 mystery gifts and some groundtile flagging (to be resolved later)
2024-03-13 00:08:10 -05:00
Kurt
7ac5da37b3 Fix check order for Pressure/Hustle/Vital Spirit
what a silly set of conditions for it to matter -- we need to permit matching of boosted slots, then enforce that the boosting is valid for the slot, and disallow any other lead. If it couldn't be boosted, then ignore the slot.
https://projectpokemon.org/home/forums/topic/57375-pkhex-new-update-legality-errors-contribution-page/?do=findComment&comment=288731
2024-03-12 23:33:47 -05:00
Kurt
5b89b279d1 Update LearnGroupHOME.cs 2024-03-12 08:33:33 -05:00
Kurt
a62e169258 Use precompiled rand for honeytree rand level
Add note that No Guard works the same as Illuminate and Arena Trap.
2024-03-12 00:46:52 -05:00
Kurt
819f6009bf Fix some gen4 fish slot check inaccuracies
Pt doesn't do Sticky Hold/Suction Cups right for fishing (not just D/P)
HGSS has a follower boost that is now implemented
lol at my GetSuperRod comparing range wrong for slot4

For HGSS follower boost, don't bother indicating differently even though it's not entirely transparent. We just assume the most permissive case (+50) even though people looking to replicate in-game might not have >= 250 friendship.
2024-03-12 00:03:09 -05:00
Jonathan Herbert
4435f032a5
Rename Obedience_Level To Match C# Naming Standard (#4215)
Change from Obedience_Level  to ObedienceLevel since it was missed when other properties we changed to match C# naming standard.
2024-03-11 20:39:31 -06:00
Jonathan Herbert
8a29320724
Minor Changes To EpochDateTime (#4214)
- Fix Epoch0000DateTime.DisplayValue  having seconds in the output even though they aren't stored
- Introduce RawYear and RawMonth in EpochDateTime to reduce duplicated logic
2024-03-11 14:07:59 -06:00
Kurt
7122c5c3f5 Fix database search returning empty w/ unfiltered
Closes #4211
Also fix box dump not creating folder and Surprise Trade block optionally existing in SV saves.
2024-03-11 13:00:08 -05:00
Kurt
353c00ef67 Fix HOME-sharing rules allowing initial egg moves
Were originally permitted because Generation == 0; now we properly indicate the origin of all Initial/Encounter/Shared moves and use that to remove anything not from the environment. Invalid/Sketch moves are still permitted to be Gen0 and skipped because their verification is a different branch.

ty notflyy (discord)
2024-03-11 12:50:38 -05:00
Kurt
b6739e5547 Fix Mystery Gift edit form save
Closes #4213
Also fixes XY/AO saves not having the button available when they should
2024-03-11 12:47:10 -05:00
Kurt
5d2c20d449 Fix DexNav max level boost
Closes #4204
flute actually applies in this case
2024-03-11 12:45:43 -05:00
Eelen
66ac64bc85
Update CHS Translations (#4212) 2024-03-11 08:35:19 -05:00
Kurt
9127f6548a Handle fixed-moveset missing move cases
Stadium Eevee has less moves than if populated by initial moves; need to use the encounter moves for moveset mons.

Co-Authored-By: ShadowMario3 <36941677+ShadowMario3@users.noreply.github.com>
2024-03-10 23:22:37 -05:00
Kurt
8e32ab5008 Misc tweaks
Gen1 VC mew OT name set
Gen1 Japanese stadium language get
Tab control edge case index redraw
Home Tracker & EC control ordering now grouped by flowlayout panel
2024-03-10 21:28:50 -05:00
Kurt
c432c56ca5 Update 24.03.10 2024-03-10 18:38:47 -05:00
Jonathan Herbert
c651c6f6cd
Deduplicate Gen 6-8 PlayTime Logic (#4208)
Slightly overengineered but a fun experiment to de-duplicate some logic.
2024-03-10 08:50:32 -06:00
BlackShark
25c7b3cc8c
Expose Gen 2 Palette to Block Editor (#4209) 2024-03-10 08:36:25 -06:00
Kurt
564025ae72 Fix ruins of alph unown form check 2024-03-09 23:10:01 -06:00
Kurt
30d85c95a0 Handle radar slot bypassing / chain shiny 2024-03-09 18:13:09 -06:00
Kurt
90cf6cff84 Fix slot replace indexing for slotNum
see dumper, was giving SlotNumber as absolute index, not the replaced index (keep the original SlotNumber value now)
60668dfc9b
2024-03-09 14:16:26 -06:00
Kurt
6d8504bf82 Misc tweaks for slot4 level check 2024-03-09 13:50:15 -06:00
Jonathan Herbert
78fba23eae
Replace Epoch1900DateTimeValue Duplicate Logic Instances (#4207)
* Replace LastSaved8a With Epoch1900DateTimeValue

Since LastSaved8a basically implemented the same logic, replace it and update Epoch1900DateTimeValue.DisplayValue to not display seconds if they aren't present

* Replace PlayTime8 With PlayTime7b
2024-03-09 00:41:26 -06:00
Kurt
d86469266b Enhance bv5 checksum documentation
add for gen4 so there's no more mystery on that

change span to memory for direct injecting to a bv obj
2024-03-08 21:31:17 -06:00
Kurt
994c063537 Misc tweaks 2024-03-08 21:30:21 -06:00
Jonathan Herbert
0693825f96
Correct SM and USUM GameTime7 Offsets (#4205) 2024-03-08 01:02:15 -06:00
Kurt
6dc785da0c Add gen5 battle video reads 2024-03-08 00:53:35 -06:00
Kurt
df7c25d43f Rename battle video classes, allow bv4 recognition 2024-03-07 00:34:21 -06:00
Kurt
802974a42c Add BV4 reading for SAV4
D/P don't store battle videos, so the SAV4 get will always return null for those games. Still can return null if the extdata blocks aren't present.
2024-03-06 21:02:33 -06:00
Kurt
3e25ed9d32 Show sv surprise trade slots in misc tab 2024-03-05 22:04:13 -06:00
sora10pls
d841a7a4bb Add latest distribution raid data 🐢💧 2024-03-05 19:03:13 -05:00
Kurt
efe0f5e0cf Update WB7Records.cs 2024-03-05 10:04:04 -06:00
Kurt
f32a1ddc7a Misc fixes
event flag editor gen5-7
rs/frlg/dp/hgss enc->pkm version choice
pb7 party stats loading
daycare slot now shows when present
remove unnecessary `GameVersion.Unknown`, use Invalid instead. Might be worth removing Invalid in favor of changing `Any=0` to `None=0`.
2024-03-05 09:42:20 -06:00
Kurt
4e87fd7eca Misc fixes
ty matt & foohyfooh
2024-03-04 23:46:11 -06:00
Kurt
59ad4d749f Add handling for lgpe lumped in Contains/Gen check
ty Oval Lenin (discord)

Co-Authored-By: Ivan <15915901+ivanlonel@users.noreply.github.com>
2024-03-03 23:40:55 -06:00
Kurt
fa80dac2ac
Refactoring: Rework saveblock to be Memory<byte> based (#4200) 2024-03-03 23:13:16 -06:00
Lusamine
2b63c4b013 Fix Project Snorlax Mystery Gift date
End date for the promo is Feb 29th, but the code can be redeemed until March 31st.
This also adjusts some of the event comments to be more descriptive.
2024-03-02 19:57:42 -06:00
Kurt
0f936f88f4 Gen3: Fix jump/berry max 9999->99990 2024-03-02 13:53:00 -06:00
BlackShark
378b28bc07
Fixed national magic for FRLG (#4199) 2024-03-02 13:51:28 -06:00
sora10pls
466b5f5ea9 Add latest distribution raid data 🍃🐸 2024-02-27 19:06:24 -05:00
Sakura
4a6eab1d2f
Add PokéCenter Snorlax Date (#4198) 2024-02-27 10:41:49 -06:00
Kurt
aa841aebe9 Bounds check on invalid encounter
Magmortar from Gen3 in Gen4+ somehow requests learnset; just give it species 0.
2024-02-26 00:02:46 -06:00
Kurt
645d65bf3b Update SaveBlockAccessor7b.cs 2024-02-25 23:51:53 -06:00
Kurt
8b5e4e798b Add NSO save handler for Gen1/2 saves
Closes #3921
Not sure if the RTC handling is correct (always 0x20 length?) but at least we have a non-fixed-sized header handled with some leniency for different builds.
2024-02-24 21:53:21 -06:00
Kurt
88569d1107 RBY: Add bool toggle for silph lapras
Closes #4188
2024-02-24 20:14:04 -06:00
Kurt
5334f1ef78 Fix IsMysteryGiftUnlocked checked
Closes #4106
2024-02-24 19:51:42 -06:00
Kurt
276a1952fb GSC: Add setter for daycare occupied/egg available
Closes #3862
2024-02-24 19:47:46 -06:00
Kurt
b435f8c258 Offload gen1/2 event templates to pickles
Thanks @ShadowMario3 for doing the raw data entry for these templates -- see PKHeX.EncounterSlotDumper for the csv -> pkl conversion logic.

Reduces object size by classifying groups of events with specific features, and reduces the explicitness of defining each single encounter.

Hard-code the span of Gen1 VC mew to not need to grab the resource, and add an overload to iterate a single template (skips an array creation).

Co-Authored-By: ShadowMario3 <36941677+ShadowMario3@users.noreply.github.com>
2024-02-24 17:53:46 -06:00
Kurt
8206427d21 Add display of pla static encounter seeds
Show single shiny roll slots for PLA too

Update MiscVerifier.cs
2024-02-23 22:37:37 -06:00
Kurt
43cd9300fb Display raid seed for valid SW/SH raids
Yay leadslot for making this possible
Sure we do a little bit of extra work (checking seed twice) but it's negligible overall.
2024-02-23 20:54:56 -06:00
Kurt
8da8f34896 Use TimeProvider.System instead of manual impl
Introduced in .NET 8; use it.
Remove unnecessary [Serializable] tags (binary/XML serialization are not used), will eventually be obsoleted by c# ;)
2024-02-23 20:37:29 -06:00
Kurt
1feec26d1a Split StringFontUtil
2700 line file too big; split into context-specific font classes.
2024-02-23 20:05:50 -06:00
Kurt
034658b764 Remove extra Memory forcing
Closes #4133
Refactors most of the `Trade` methods
Fix default egg friendship to 120
Fix Version value exposed for Gen4 saves (and others)
2024-02-23 17:01:36 -06:00
Jonathan Herbert
65d8ab025d
Update PlayerGeoLocation7b To Match Changes To SaveBlock Constructor (#4194) 2024-02-23 14:32:20 -06:00
abcboy101
32e888d871
Check nicknames/OTs against characters in font (#4146)
* Check nicknames/OTs against characters in font

* Update translations

* Do not show warning for Gen4 and earlier

* Use Gen5/7 font for Gen 3-4/1-2 transfers

* Minor style pref

* Remove font legality checks

* Add missing/update Switch fonts
2024-02-23 13:23:50 -06:00
Kurt
4f568b1497 Add slot-set Count update bypass setting 2024-02-23 13:20:59 -06:00
Jonathan Herbert
4974371100
SaveBlock Constructor Changes (#4191)
* SaveBlock Constructor Changes

- Add primary constructor for SaveBlock with default offset
- Update SaveBlock  subclasses to specify offset in contructor rather than as the constructor body

* Fix MyItem Subclasses Using SaveFile Rather Than Specific Classes
2024-02-23 13:20:24 -06:00
Jonathan Herbert
92c964d6fa
Refactor And Deduplicate Some Switch Games Common Logic (#4187)
- Improve Epoch 1900 classes using similar logic from PlayTime7b.
- Move Time Classes into non Gen specific folder since it appears the logic is shared across a few of them.
- Use Epoch1900DateTimeValue for LastSaved in PlayTime7b since the logic is the same.
- Remove TeamIndexes9 since it is a duplicate of TeamIndexes9. Use the similar pattern like Box8 where it is reused in multiple locations.
- Add BlueberryClubRoom9 to ISaveBlock9Main since it wasn't added when the class was introduced.
- Simplify RaidSevenStar9 creation since GetBlockSafe does basically what the if-else block does.
- Change SAV8SWSH Base Raid to RaidGalar to match the same way the SAV9SV does for its Base Raid.
2024-02-23 13:19:17 -06:00
Jonathan Herbert
cf274bba70
Add LGPE Adventure Begin Date (#4189) 2024-02-23 13:19:01 -06:00
Kurt
95fbf66a6e
Refactor: Gen3/4 Lead Encounters, property fixing (#4193)
In addition to the Method 1 (and other sibling PIDIV types) correlation, an encounter can only be triggered if the calls prior land on the Method {1} seed. The RNG community has dubbed these patterns as "Method J" (D/P/Pt), "Method K" (HG/SS), and "Method H" (Gen3, coined by yours truly). The basic gist of these is that they are pre-requisites, like the Shadow locks of Colosseum/XD. 

Rename/re-type a bunch of properties to get the codebase more in line with correct property names & more obvious underlying types.
2024-02-22 21:20:54 -06:00
sora10pls
eb673dcbc5 Add latest distribution raid data 🔥🪨🐧 2024-02-15 19:03:30 -05:00
Jonathan Herbert
247340dff4
Handle SwSh and SV Team Locks (#4186) 2024-02-15 08:33:25 -06:00
Jonathan Herbert
704a7036ea
Determine Scarlet and Violet Save Time (#4183) 2024-02-14 22:56:41 -06:00
Kurt
a93a626dad Add dialog message for empty/FF save files
Users incapable of saving in-game and using save states instead, or emulators not flushing save data on in-game save.
2024-02-11 21:55:37 -06:00
sora10pls
a571c2a3cb Add latest distribution raid data 💘🐟 2024-02-11 19:02:08 -05:00
Kurt
069411d42e Modulo time spent for large gaps
Taking too many seconds to beat the storyline -> overflow on ticks. Since we already shave off the days portion, use the modulo to remove the day portion from the time portion.

Closes #4184
2024-02-10 00:25:22 -06:00
Lusamine
da83f1005a Label SV Surprise Trade storage block 2024-02-09 23:43:43 -06:00
Kurt
10c5adadb8 Misc tweaks
Add more xmldoc
Move files/functions to better spot
Less allocation on hover glow
fix honeytree dppt group/slot/shake rand call (ty real.96)
2024-02-03 14:11:17 -06:00
Sakura
3eb6ff2c9e
Add latest distribution raid data🐧 (#4181) 2024-02-02 19:49:37 -05:00
Kurt
6e9ffe6390 lgpe static encounters: Check specified IVs
https://discord.com/channels/401014193211441153/679178558597496872/1202059598941671434
2024-01-30 19:16:17 -08:00
Kurt
aba7c800b3 Add LCRNG distance calculating method
Solution known for over a decade, finally reminded myself that it'd be nice to have this available. Probably will use this for displaying Method J/K/H frame info when that branch is more mature.
2024-01-30 19:14:04 -08:00
Kurt
f99e4e54f3 Batch Editor: Combine simple & complex EC rand
Just pipe everything to the complicated EC pathway and allow it to select for biases. Swap input preferences to retain a proper EC for dudun/maus.
Closes #4179
2024-01-29 17:41:12 -08:00
Kurt
48b0f0c6a3 Pt: Swap roamer indexes (moltres, articuno)
f3604018fe/include/roaming_pokemon.h (L10-L12)
Closes #4176
2024-01-29 16:14:17 -08:00
Kurt
48646fd001 Batch edit: return error code on exception
#4177
2024-01-29 16:10:25 -08:00
Kurt
5706fb2fb5 Gen6: Add mach & acro to usable key item memories 2024-01-25 18:56:57 -08:00
sora10pls
72cf3c5fb5 Add latest distribution raid/outbreak data 👻🤖🥇 2024-01-25 19:04:59 -05:00
Kurt
ab5fd54079 Narrow Dynamax Level compare for swsh den seeds
https://projectpokemon.org/home/forums/topic/57375-pkhex-new-update-legality-errors-contribution-page/?do=findComment&comment=287889

Adjust Showdown import to only set these values to PK8.
2024-01-22 19:06:38 -08:00
Kurt
26e4bf0a6a Add XY friend safari sawsbuck form bypass too
See previous commit.
AO only has Deerling, so remove Sawsbuck from the Species compare.
2024-01-22 18:58:22 -08:00
Kurt
6d2de333bf Add formarg deferral for wild annihilape/kingambit
Closes #4167
Also add form bypass for Gen6 Deerling slot that changed form in SV.
2024-01-22 18:51:55 -08:00
Kurt
560320e2cc Fix gen4 encoding of ? 2024-01-21 23:44:12 -08:00
Kurt
9aa31e8563 Fix phione ball breed permit (back to poke only) 2024-01-19 06:28:51 -08:00
Jonathan Herbert
a00a6a7308
Label Scarlet and Violet Team Names (#4164) 2024-01-17 20:49:38 -08:00
Kurt
c617aa206d Misc tweaks
Re-dump safari slots for HGSS; the repackaged narc accidentally shuffled files so the wrong water tables were output.
Add error log output on reporting exception fail first to always dump an error log file. Don't trust the popup/form.
Permit TID/OT duplication for in-game trades/N's pokemon.
https://projectpokemon.org/home/forums/topic/57375-pkhex-new-update-legality-errors-contribution-page/?do=findComment&comment=287395
2024-01-16 21:43:10 -08:00
Kurt
513a0d6b7a Update EncounterSlot9.cs 2024-01-16 07:10:57 -08:00
Kurt
2aec7572f8 Fix club board fetch for pre-indigo saves 2024-01-15 23:22:00 -08:00
Kurt
3ea44b5eb0 Allow Gourmand mark on Eggs
Flag it if it's affixed though.
2024-01-15 22:50:37 -08:00
Jonathan Herbert
5a5ce7c273
Scarlet and Violet Blueberry Clubroom Support Board + Style (#4162)
* Scarlet and Violet Blueberry Clubroom Support Board + Style

* Sync to master

* Fix BaseballClub2TwirlingNinja Flags

---------

Co-authored-by: Kurt <kaphotics@gmail.com>
2024-01-15 19:29:39 -08:00
Sakura
fe1a5750dc
Add コロコロ Pokémon Date (#4163) 2024-01-15 18:50:30 -08:00
Jonathan Herbert
690de20687
Add Support For SV Throw Style (#4153)
* Add Support For SV Throw Style
* Change Support Board To Club Room
The block contains more than just the support board so correcting name.
2024-01-15 18:50:17 -08:00
Kurt
13f118fffd Reduce wc3 egg strictness for match (fateful)
Closes #4161
2024-01-15 18:49:24 -08:00
Kurt
00c0aefe00 Add simple alolan evo trim for HOME+ permit
Closes #4159
2024-01-13 21:08:45 -08:00
Kurt
08104179b7 Update 24.01.12 2024-01-12 22:37:01 -08:00
Kurt
f2209ec7fd Add better handling for specific GO transfers
No formarg or bad EC evolution peek -> search for higher species rather than from the bottom.
2024-01-12 18:58:23 -08:00
Kurt
c591e9b809 Misc tweaks
Fix ug editor again
b4aeb1ac7c

make framegenerator info a struct (8 bytes); will be rewritten later anyway
2024-01-11 20:38:11 -08:00
sora10pls
b16e1e8746 Add latest distribution raid data 🐔🪽 2024-01-11 19:02:15 -05:00
Kurt
5272a32d40 re-add safari super rod slots
oops, missed these in the rip and no unit tests caught it :)
2024-01-11 09:30:25 -08:00
sora10pls
a39712e5cd Add Mochi Mayhem related content 2024-01-11 09:16:04 -05:00
Kurt
354721e20d Rip hgss safari slots with computed slot numbers
HGSS pickles lookin' pretty hefty
ty admiral_fish & real96 for their impl in pokefinder
2024-01-10 20:35:22 -08:00
Kurt
0ca20ff096 Reimplement applied Markings individual get/set
Closes #4156
Extracts to an interface, varied implementations in the appropriate PKM classes. No longer an abstract property inherited from the base `PKM` class.
2024-01-09 20:53:31 -08:00
Kurt
c66fc2f3bf Add gen4 headbutt slot numbers
All were zero, update dumper.
Extract some logic from other parts of the codebase
Fix wyrdeer level check if originated from GO
2024-01-09 19:07:32 -08:00
Kurt
671c3564ee Echoes of trash-test
Remove glyph remap for Switch gender symbols (none actually)
Might be wise to convert StringConverter to singletons...
2024-01-08 21:55:07 -08:00
Kurt
f80c2820f9 Misc tweaks
Local event db's don't need to absorb the builtin db.
More aggressive generator filtering for fuzzed PB7's from GO (can't fake a GO8 in PB7)
Fix splitbreed relearn suggestion (chain is reversed for Origin, don't bother truncating or anything)
Only check for filtered VC ot's if transferred (not still gen1/2 format)
Remove unnecessary xmldoc, add more xmldoc
2024-01-08 20:01:19 -08:00
Kurt
96aed1e3c5 Set default version ID for gen3 pkm templates
ur welcome matt
2024-01-08 19:56:51 -08:00
Kurt
d7473db6af Add plugin stub for notifying GUI language change 2024-01-08 19:56:04 -08:00
abcboy101
3ba2e8e376
Gen 1/2 VC filtered OT name legality (#4155) 2024-01-08 12:34:44 -08:00
abcboy101
01131e59f0
Modify G1/G2 character mappings (#4154)
### Treat 'ヘ' as katakana
- For consistency with ベ/ペ/リ which are treated as katakana here and in StringConverter12Transporter.cs, map 0xCD to katakana ヘ instead of hiragana へ.
- Allow input of hiragana べ/ぺ/へ/り, mapping them to katakana ベ/ペ/ヘ/リ. Previously, they would be treated as invalid and mapped to the string terminator.

### Swap mappings for 0xE8/0xF2
- Previously, 0xE8 was mapped to U+002E `.` FULL STOP, while 0xF2 was mapped to the special character U+2024 `․` ONE DOT LEADER. Since 0xF2 is used in user input while 0xE8 is only used in `MR.MIME`, swap these mappings so that normal keyboard input maps to the user-enterable character.
- Modifies SpeciesName.cs to produce U+2024 for Mr. Mime in G1/G2.
2024-01-07 23:27:03 -08:00
Kurt
018694b84f One less allocation
compiler can infer correct string concat size both ways
2024-01-07 13:13:21 -08:00
Samuel Magnan
dbb4df6ddc
Add getter/setter for Sav Gen3/4 Trendy Word, Trainer Hill, Berry Blender, Accessory, Backdrop, Wallpaper (#4152) 2024-01-06 16:44:58 -08:00
Kurt
608f7ebe12 Update Roaming8bRNG.cs 2024-01-05 09:47:53 -08:00
Kurt
a4ac8240b8 Allow replacing VC1/2 default transfer version
Exposed via settings
Conversion settings relocated from Advanced; `AllowIncompatibleConversion` will need to be re-set if you want to deviate from official rules.
2024-01-04 19:57:01 -08:00
sora10pls
5bf43cfc19 Master Rank Ribbon: Regulation F
Also fix Roaring Moon/Iron Valiant WC9 minimum start date (please verify all time zones!)
2024-01-04 10:47:49 -05:00
Kurt
c866bd7044 Extract GetEXP w/ Table
Less magic -1
2024-01-04 01:19:38 -08:00
Kurt
528d927a85 Handle self-form pointer
Logic is much more clear now.
2024-01-04 00:00:34 -08:00
Kurt
8fa951bcd7 Refactoring
Catch_Rate => CatchRate
Make Location* classes public
Extract a few methods, make public
Merge EncounterUtil & EncounterUtil1
add xmldoc
add missing deferral for Nest8 templates
improve binlinker span fetch to a single read (-1)
2024-01-03 23:06:09 -08:00
Kurt
424cbcff21 Misc tweaks
ShowdownSet: Fix indentation, use explicit const
ItemStorage8BDSP: Rename GetAll->GetAllHeld to match others
EncounterLearn: Guard against >4 length enumerables, use explicit versions for S/V
EggMoves: Read u16[] directly rather than manually
SaveFinder: simplify expression
SAV_Database: extract func
SAV_Encounters: use RoM to match Moveset generator
2024-01-02 15:45:35 -08:00
Kurt
d56eb0e3c4 Rely on deferral ability check instead of exact
Closes #4144
2023-12-31 13:13:51 -08:00
Kurt
1b176eec53 Only ChangeType if enum is defined
Allows setting 99 (Stellar) to TeraTypeOverride now
2023-12-31 11:03:04 -08:00
Kurt
c021f893f8 Inject rule bypass logic for SV's level100 lvlup
Closes #4143
2023-12-31 11:02:23 -08:00
Kurt
9d83ce1855 Auto-affix might mark for 7star enc->pkm
Missed this encounter type when changing the behaviors for others (see 5316ad6b37 )
2023-12-30 20:26:47 -08:00
Kurt
d25fab0e87 Change box dump to use a form
Closes #4122
2023-12-30 14:36:33 -08:00
Kurt
a24e6e9cef Misc tweaks
Add notransfer for SV-ride legend
Replace dummy '0' in gen3 chartable to match Bulbapedia -- inaccessible char for entry anyways, and the byte never fetched via IndexOf due to the previous occurrence of '0'.
Enhance file namer interface to tag with a display name
2023-12-30 11:41:45 -08:00
Kurt
581d5158dc Pass ribbon temp struct byref
Quicker than creating defensive copies for each Parse call. Do the same for IV-set passing.
Not worth for binlinker as it's never passed multiple times / deref'd often.
2023-12-30 11:40:10 -08:00
Sakura
581f0e2e1b
Add 윈터페스타 Baxcalibur Date (#4140) 2023-12-29 23:30:38 -08:00
Kurt
d3a48968e0 Revise runtime localization language setter
Closes #4138
ty @fattard
2023-12-29 10:17:50 -08:00
Kurt
9897630b08 Fix off-by-1 for Hidden Power hover preview card 2023-12-29 10:07:37 -08:00
Kurt
50209c4f0d Misc tweaks
Fix ranch save load (index out of range on party stat fetch due to bad truncation)
Folder Browser: Reapply filter if active on column sort
Fix inverted VC1/2 cross-check, add missing derived type and ignore Generation==0 (empty/invalid) moves.
2023-12-28 22:39:42 -08:00
rcyggdra
6b1e967a74
Update text_Forms_zh.txt (#4137) 2023-12-28 22:35:05 -08:00
Kurt
f7a888cc57 Extract some logic to SAV4
Closes #4128
I don't want to decipher to manual interactions to the Battle Frontier structures now. Prints were just work values, and fly flags were event flags.
2023-12-28 00:11:56 -08:00
Kurt
61df1981ce Include Ability in fixed pkl, beldum raid moves
Encode beldum's raid moves manually since it's the only one with empty moves (default -> learnset fetch). See pkNX for associated workarounds in pickle build.
2023-12-27 00:29:16 -08:00
Kurt
572b5e98e0 g9 raid beldum moves, g9 shiny trades, g7 kchart
Beldum: Default moves
Gen9 trades were defaulting to Random, not Never
KChart: >= instead of >
2023-12-26 22:30:40 -08:00
sora10pls
807b9031b1 Add more save block labels, Necrozma fusion move handling 2023-12-26 09:36:13 -05:00
sora10pls
007aed07ae Add latest distribution outbreak data 2023-12-24 19:05:00 -05:00
Kurt
5316ad6b37 Set affixed for encounters w/ Gen9 ribbon/mark
Matches S/V 3.0.0 behavior, better to match
2023-12-21 19:04:58 -08:00
Kurt
6d0b4f77e4 Fix Gen2 quick hidden power calc 2023-12-21 19:04:08 -08:00
Kurt
740da4edde Update FormArgumentVerifier.cs 2023-12-21 18:01:03 -08:00
Kurt
35e46c4c4b Add mark deferral for partial match TimeOfDay 2023-12-21 17:42:11 -08:00
Kurt
9f1ad9f6fc Update EncounterSlot9.cs 2023-12-21 16:50:14 -08:00
Kurt
2a13874aee Rewrite evo move double-check
If (evolved into {species}), must have known {move}
I think Swinub->Mamoswine and Mankey->Annihilape might have evaded the check prior; was the only other 3-stage evo (now +Hydrapple).
2023-12-21 16:20:01 -08:00
Kurt
245f267b03 4.5 surskit quirk
int.TryParse no longer correct; `4.5` is a valid `4` per the game filtering behavior.
Surskit: `1,4.5,7`
2023-12-21 16:06:49 -08:00
sora10pls
52d55101d4 Add latest distribution raid/outbreak data 🐧🤖 2023-12-21 19:02:58 -05:00
Kurt
42f809b216 Update EncounterSlot9.cs 2023-12-21 15:39:50 -08:00
Kurt
6e3598d87b Recompute BDSP allowed hatch location list
Dunno what goofiness caused the original bad table.
Took the original hashsets from git and rewrote the table gen, now we have what should be correct.
2023-12-21 15:29:49 -08:00
Kurt
a45215b00d Update SpeciesCategory.cs
#4126
2023-12-21 12:31:10 -08:00
Kurt
7759596ffd Correct minior out-of-battle form 2023-12-21 11:31:37 -08:00
Jonathan Herbert
24a5b05fcb
Handle Seven Star Raids Change From Teal Mask Update (#4119)
* Handle Seven Star Raids Change From Teal Mask Update

* Refer To RaidSevenStarCaptured9.CountAll Rather Than Recalculate It

* Fix Wrong SevenStarRaid Size Variable Referenced

While they are the same value correcting the mistake so that there isn't confusion while looking at the code.
2023-12-21 10:51:09 -08:00
Kurt
d4eccd92ca Update raid minior-0, fixed spawns (stellar/under) 2023-12-20 23:42:20 -08:00
Kurt
2fe0f24301 Fix broken unit tests (location, item, evo order) 2023-12-20 14:40:13 -08:00
Kurt
fb87e9645a Update IHyperTrain.cs 2023-12-20 14:20:37 -08:00
Kurt
5da1ae4849 Handle Gold Bottle Cap 31IV bugfix
HOME fixes anything with 31IVs flagged. S/V no longer in error. Would be an incredible headache to detect "has visited S/V prior to 3.0.0" so just flag it.
It's up to the checker to know about this.
2023-12-20 11:29:50 -08:00
Jonathan Herbert
54d3f377e9
Make Raid Editors Edit Copies Rather Than Origin Save's Data (#4118)
Use an enum to know which raids to use rather than passing the specific raids so that the save changes copy back operation only happens when a user saves modifications and thus won't flag the save as modified if nothing was changed.
2023-12-19 20:53:10 -08:00
Samuel Magnan
90d000d640
Add villa furniture getter/setter for Platinum (#4120)
* Add VillaFurniture to SAV4Pt
2023-12-19 20:50:32 -08:00
sora10pls
41c830fa2c Add BCAT Milcery outbreaks 2023-12-19 22:34:42 -05:00
Kurt
a89b13027b Update gen9 sketch disallow 2023-12-18 20:27:57 -08:00
Jonathan Herbert
80faf97425
Use Explicit Types Instead Of SaveFile For Forms (#4116) 2023-12-18 20:24:24 -08:00
Kurt
10b158f82b Update EncounterTrade9.cs
Update EncounterTrade9.cs
2023-12-18 10:42:22 -08:00
Kurt
cbc63ef0a0 Handle non-nicknamed partner trades & weight/scale 2023-12-18 10:19:47 -08:00
Kurt
e371e87f1b Restrict cavern & labyrinth to inside 2023-12-18 08:03:50 -08:00
Kurt
9c0e9c31da Add weather marks, rebuild fixed encs
Still a few stragglers, but better overall.
2023-12-18 08:00:21 -08:00
sora10pls
09590a46b4 Update Encounters9.cs 2023-12-18 10:47:05 -05:00
Kurt
d95f424c62 Add another sav size 2023-12-18 00:47:53 -08:00
Kurt
f2419db092 Update PersonalInfo9SV.cs 2023-12-17 21:14:46 -08:00
Kurt
61d958e07a Fix blueberry raids & stellar showdown parse 2023-12-17 19:45:13 -08:00
Kurt
b8d370b661 Fix new tm bitflags, torque move check
ty roc for info
2023-12-17 17:51:55 -08:00
Kurt
c892225a55 Oops 2023-12-17 17:26:38 -08:00
Kurt
10cae1316e Update 23.12.18 2023-12-17 17:06:39 -08:00
Kurt
01c82e472e
Add support for Indigo Disk (#4111) 2023-12-17 16:41:15 -08:00
Sakura
4f56aa27f7
Update WC9 Dates (#4102)
* Add Paldea Gimmighoul Date

* Add コロコロ Roaring Moon and Iron Valiant Date

* Update
2023-12-17 16:39:26 -08:00
abcboy101
69cd3455be
Add Chatter Editor (#4101)
* Add Chatter accessors

* Add Chatter Editor

* Update translations
2023-12-17 16:39:15 -08:00
Eelen
30f3354b94
Update CHS Translations (#4100)
Co-authored-by: Professor Dirty <103500840+wubinwww@users.noreply.github.com>
2023-12-17 16:39:03 -08:00