Commit graph

4560 commits

Author SHA1 Message Date
Kurt
2560d0eb28 Change safari seed to uint
matches community handling of seeds
2021-11-26 11:31:00 -08:00
Kurt
5d4a8e5328 Add Mystery Gift records for BDSP 2021-11-26 11:08:51 -08:00
Kurt
6fb1634a2f Show internal affixed seal enum name for tostring 2021-11-26 09:35:25 -08:00
Kurt
b50791530c Add ENC_SV_DATA, PLAYER_SAVE_DATA, capsules, UgCountRecord 2021-11-26 01:21:38 -08:00
Kurt
b7c9993bac Add Misc editor form for bdsp
Three clickables so people can stop getting confused about event-bound encounters like Darkrai/Shaymin/Spiritomb
2021-11-25 22:48:09 -08:00
Kurt
54d54a0f39 Restrict Twinkling to require ContestStar as well 2021-11-25 20:51:17 -08:00
Kurt
02dc4dc8a7 Automatically update v1.1 expanded records on TID/SID change
Closes #3305
I think it was actually crashing due to the bad GameClear date record, not this extra record data, but we'll still update the head record

Fix note of ENC_SV_DATA start offset now that we know the real size of Record8b
Add actual maximums for all record entries
2021-11-25 20:05:39 -08:00
Kurt
a761704a34 Split Trainer verifier into TrainerName and TrainerID
verify BDSP legality restrictions

Enforce nonzero TID/SID in Trainer Editor window (can use Block Data editor to set whatever without restriction, idc).

#3305
2021-11-25 19:15:42 -08:00
Kurt
d9012b7d90 Disallow int.MaxValue seed for roamers
nice RNG quirk
2021-11-25 18:09:31 -08:00
Kurt
1a9f9fcfe5 Add more savedata notes 2021-11-25 18:09:05 -08:00
sora10pls
a1fd2bded2 Unban Gold Bottle Cap
Available via Battle Tower rewards. Still can't find EV feathers or Prism Scale anywhere, though.
2021-11-25 19:51:21 -05:00
Kurt
95bdde69a7 Add more savedata abstractions
Array sizes for the top level structures are now noted, should make it easier to determine the shape of them & offsets.
2021-11-25 16:38:58 -08:00
sora10pls
5b04a10fa3 Swap Pioneer and TwinklingStar indexes
silly me
2021-11-25 19:27:02 -05:00
sora10pls
b7e19cf06a Update BDSP item banlist, ban Prism Scale evo for Feebas 2021-11-25 17:24:23 -05:00
Kurt
3f5c01a0b8 Update shiny-type preserving from faketid
Co-Authored-By: Lusamine <30205550+Lusamine@users.noreply.github.com>
2021-11-25 13:34:53 -08:00
Kurt
0fe80edb37 Add bdsp v1.1 to valid save size hashset
Now shows the save file backups from v1.1 in the Folder Browser
2021-11-25 12:57:43 -08:00
Kurt
ae2c5080a5 Set nicknamed flag in GUI depending on encounter
#3311
2021-11-25 12:40:42 -08:00
Kurt
0254ae55b3 Don't set nickname flag for WB8 eggs
Closes #3311
2021-11-25 12:32:46 -08:00
Kurt
9d55fa9d80 Update ribbon legality for BDSP rules
Closes #3307
2021-11-25 12:28:23 -08:00
Kurt
614ae6855b Allow ignored egg moves for v1.0 unpatched games
They didn't reference the TamagoWazaIgnore table until v1.1 lmao

mimic BDSP's index fetching and just grab the array of eggmoves directly to avoid the abstraction method's overhead

set evotree back to private because don't need direct access anymore
2021-11-25 11:24:34 -08:00
Kurt
56c7c8336a Revise roamer shiny xor checking
shininess unrelated to your trainer ID, lol

probably also applies to other predetermined encounters like underground and radar, but those aren't EC-seed regenerated (?)

Remove unused interface declaration
2021-11-25 08:32:36 -08:00
Kurt
039095d75c Revise zero hw checks
fishy by default, opt in
ignore certain encounters
2021-11-24 23:03:30 -08:00
Kurt
203b764829 Add zero height/weight flagging setting
because people couldn't hacc responsibly, I might as well give them a nudge in the right direction.

Doesn't mean I won't check your "random" choices distribution.
2021-11-24 19:29:02 -08:00
Kurt
d79864b049 Add seal list editor
Inject all the stickers you want.
2021-11-24 17:51:12 -08:00
Kurt
a7ab45746c Set both gender flags for genderless species
Nice deviation from mainline logic :)
2021-11-24 17:02:29 -08:00
sora10pls
8a433b4dd4 Label Ramanas Park rebattle flags
Also removes sysflag 1294; the game has a flag reserved for a third captured species in the Soul Room after Latias and Latios but it's never set in scripts... third Lati DLC confirmed??????
2021-11-24 18:58:28 -05:00
Kurt
26c2b8cbbc Add in sublocation text for bdsp met locations
Helps indicate grand underground areas better, but there's still a ton of same-display-name locations that are just different houses and stuff.
2021-11-24 13:12:26 -08:00
Kurt
5d98e41efb Indicate true met location value for debug builds
Adds in the group offset
2021-11-24 13:11:30 -08:00
Kurt
199b695c76 Update bdsp 30000 met locations per v1.1 2021-11-24 13:11:08 -08:00
Kurt
dc0f56e790 Add underground save structure documentation 2021-11-24 00:45:11 -08:00
Kurt
ecee6ae8a1 Fix dropdown suggested green moves from showing swsh moves
Extract the IsLandlocked check to the IsMovesetRestricted which already exists.
2021-11-23 22:58:41 -08:00
Lusamine
f34bc9c3fa Add Slippery Slope static encounter Trevenant
Closes #3287
2021-11-23 10:26:11 -06:00
Kurt
086c6492f2 Add trainer rebattle status block logic 2021-11-22 20:54:12 -08:00
Kurt
0e3d22112d Remove UG_TALK_COUNT work entries
These aren't referenced for the spiritomb encounter; according to the scripts, there's a hardcoded function which reads a byte[] and counts the number of nonzero entries.

The UgSaveData structure stores `byte[] TalkedNPCsID`, as described above.
2021-11-22 20:27:23 -08:00
Kurt
97960d4439 Add placeholder berrytree+poffin blocks 2021-11-22 20:20:57 -08:00
Kurt
1ab895a6c4 Restrict constructor to BDSP save type 2021-11-22 19:31:19 -08:00
Kurt
d81f832a61 Fix Record8b capping first record (uncapped) 2021-11-22 19:30:51 -08:00
Kurt
4b40414b8b Add BattleTower work reader, move BP get/set into it 2021-11-22 19:30:28 -08:00
Synthlight
b32ad02c10
Add/Enable BDSP Battle Tower Points (BP). (#3309) 2021-11-22 18:56:31 -08:00
Kurt
920c9062b8 Fix resource name
Closes #3306
2021-11-22 00:27:43 -08:00
Kurt
cd5c220ddc Show correct HatchCounter value for BDSP traded eggs
Yay abstractions to hide away the quirks.

BDSP traded eggs set HT_Friendship and the CurrentHandler flag, but the HatchCounter is always the OT_Friendship value.

Trades always receive BaseFriendship, instead of a hardcoded 50. Necessary to not hardcode because it's immutable for eggs.

Clicking the hatch counter label now sets it to the legal minimum hatch counter (best), and control clicking sets it to the max (worst). Check the encounter template for the true maximum.
2021-11-21 19:53:13 -08:00
Kurt
1ca1b838c1 Handle traded BDSP eggs & flag HatchCounter=0 2021-11-21 19:29:07 -08:00
Kurt
27e899ffdd Yield SP eggs in encounter db, detect "link trade" correctly 2021-11-21 18:36:36 -08:00
Xzonn
84495de858
Change 晶燦鑽石 to 晶灿钻石 (Simplified Chinese) (#3294)
https://www.pokemon.co.jp/ex/bdsp/sc/
2021-11-21 18:23:08 -08:00
Kurt
a9bc86bb13 Clear deleted item slots
Closes #3304 ty @MewtwoFanz
2021-11-21 17:49:34 -08:00
Kurt
ba9db5ae99 Ban ball inheritance for bdsp fossils 2021-11-21 17:31:45 -08:00
Kurt
9b8f1c8305 Allow multiple diggerdrill 2021-11-21 12:52:16 -08:00
Kurt
32edb660ce BDSP: Add underground item-inventory editor 2021-11-21 11:33:04 -08:00
sora10pls
3db6b69c09 Add Poffin ingredient berries to item arrays
Closes #3301
2021-11-21 08:14:48 -05:00
Kurt
ee567a7d15 Add systemtime, (underground item, poketch, both no GUI)
systemtime to be integrated to trainer info editor later
2021-11-20 23:54:27 -08:00
Kurt
9d5cff5221 Add daycare reader, show playtime in backup filename 2021-11-20 19:10:42 -08:00
Kurt
d56d675868 Add feebas to slot list 2021-11-20 18:34:04 -08:00
Kurt
3e677bf6c0 Add elemental beam type tutors for BDSP 2021-11-20 16:50:44 -08:00
Kurt
6980026ca2 Add BDSP trainer stat records
Continue crawling down the serialized savedata structure :)
2021-11-20 15:40:18 -08:00
Kurt
c355a5f65d Revise form match criteria for Burmy slots - can be any cloak 2021-11-20 09:59:14 -08:00
Kurt
baa7bd52a8 Manually hardcode incompatible conversion cases for P*8 2021-11-20 09:40:38 -08:00
Kurt
921b151aef Add zoneID property 2021-11-20 09:37:40 -08:00
Kurt
d1165fe76c Add fashion unlock flags 2021-11-20 09:37:22 -08:00
Kurt
b26f4db6ab Enforce AffixedRibbon -1
All your hacks are still hacks

Re-expose affixed ribbon in the ribbon editor for PB8
Since there's no way to change it in BDSP, flag anything non-neg1
2021-11-20 09:04:09 -08:00
Kurt
b2fd51ddab Revise roamer locations: source from mvpoke
Route 220 (00485) now valid

now invalid:
Route 224 (00411)
Route 225 (00412)
Route 227 (00414)
Route 228 (00416)
Route 229 (00420)

matt assumed dppt locations were reused, but not entirely :)

Closes #3296
2021-11-20 09:02:24 -08:00
Kurt
721d489402 Fix TM indexes (oops)
I guess none of us really tested TMs to notice

Closes #3293
2021-11-19 23:31:02 -08:00
Kurt
93aaad6cd4 Revert net6 to net5
would rather have pipeline builds for those keen right now
2021-11-19 23:19:41 -08:00
Kurt
b25a7b621f Update BatchEditing.cs 2021-11-19 22:38:37 -08:00
Kurt
c67565288c Update translatable resources
actually committing to master
2021-11-19 18:51:33 -08:00
Kurt
723514e89c
Update 21.11.19 - Brilliant Diamond & Shining Pearl (#3289)
Big thanks to @SciresM @sora10pls @Lusamine @architdate @ReignOfComputer for testing and contributing code / test cases. Can't add co-authors from the PR menu :(

Builds will fail because azure pipelines not yet updated with net6.
2021-11-19 18:23:49 -08:00
sora10pls
5cff79f382 Update GO legality binaries 🥒 2021-11-18 21:15:19 -05:00
sora10pls
ac9f3941c1 Add new distribution raids 🧬 2021-11-18 19:17:56 -05:00
Kurt
692898fe46 Set metadata for sav on certain paths
Closes #3282
2021-11-07 10:17:03 -08:00
Kurt
8a48730adf Lessen severity of Gen1 missing moves if leveled up once
Closes #3277
2021-10-29 21:25:48 -07:00
sora10pls
338bc562bb Add new distribution raids 🦊👻 2021-10-28 20:05:02 -04:00
Kurt
533526465e Omit exclusions if empty 2021-10-25 20:03:16 -07:00
Lusamine
bf94c1de1f Document both SWSH bike boost save blocks 2021-10-24 20:39:10 -05:00
CanoeHope
aeb1043d4e
Added 2 SWSH blocks (#3276) 2021-10-23 22:15:48 -07:00
sora10pls
aa214524fd Label SWSH event flag save blocks
Static encounters (stationary and Max Lair), gift encounters, and some general purpose flags. Can filter most of these out in PKHeX settings by ignoring `KCaptured` and `KReceived`.
2021-10-23 16:41:07 -04:00
FeralFalcon
3afd51e587
Adding a plethora of event flag data (#3273)
* Add metadata flagging for values

Allows users to set a minimum importance for the list displayed.

Could probably make this checkboxes within the flags UI.

* Add setting to filter out gen8 block names

Allows users to filter out unwanted low-value property names.

Co-authored-by: Kurt <kaphotics@gmail.com>
2021-10-23 11:25:14 -07:00
Kurt
009e37662f
Startup Enhancements, Gen1/2 Save Indication, Export SAV cleaned up (#3275)
* Providing pkm/sav files via command line (dragging files onto exe / associated file launched) will more intelligently source a partner sav/pkm object if not provided.
* Gen1/2 mainline save files now indicate if they are VC era or GB era (legality implications) in the program title bar.
* Fixes loading VC era save backups not being recognized as VC era (`.bak` extension hides `.dat`)
* Export BAK moved to the SAV tab, which allows Export main to be deleted and Export SAV to be used as the single-click for exporting saves. `CTRL-E` is still the hotkey.
2021-10-21 22:13:21 -07:00
Kurt
256b3c66ca Recognize unhatched crystal eggs, 2F pokecenter location
lacking met location data on receipt, can result in 0 for eggs hatched on the second floor of a pokecenter

https://bulbapedia.bulbagarden.net/wiki/List_of_locations_by_index_number_(Generation_II)

Thanks Freezing Dart!
2021-10-19 21:53:22 -07:00
Kurt
93d5f0886a Update Overworld8RNG.cs 2021-10-17 17:40:38 -07:00
Kurt
910f9a651b Fix CuteCharm frame yield off-by-one call index
Closes #3271 , thanks @valthisse !
2021-10-15 18:23:51 -07:00
Kurt
4b263bf9bb Fix pattern matching comparison
Wish I had an analyzer to catch this (missing parens) similar to boolean logic

#3271 - resolves the traded egg recognition issue
2021-10-13 20:05:19 -07:00
LegoFigure11
2661085e65
Add missing period in Characteristics (#3270) 2021-10-13 08:22:01 -07:00
Kurt
6304ef2006 Fix gets for u16 char widths
oops

Only gen1/2 have trash exposed for OT, so I guess I can just leave these.
2021-10-10 17:23:14 -07:00
Kurt
3bf8d2fe07 Add rival string editing for all remaining games
Block Editor for direct edits, no GUI

Co-Authored-By: FeralFalcon <33670476+FeralFalcon@users.noreply.github.com>
2021-10-10 16:11:46 -07:00
Matt
b5bc24de35
Unban Pika/vee Dynamax Crystal encounters 2021-10-09 21:40:49 -04:00
Kurt
df34f2b5c4 Disallow downleveled watchtower self hosted shinies 2021-10-09 17:12:54 -07:00
Kurt
507eef43e7 Move enum to separate file 2021-10-09 16:25:36 -07:00
Kurt
dd9b31dbbe Remove unnecessary property
template stores the version; no need to refer to store it separate from the object
Generation being separate is fine for now
2021-10-08 23:30:03 -07:00
Kurt
92fe440208 Make bitflag get/set span-based
no temp array on write (unused in pkhex anyways)
no length checking on read
2021-10-08 17:48:34 -07:00
Kurt
40031fd94d Fix give all goods for ORAS secret base
was overwriting pokepuffs, oops
2021-10-08 12:43:24 -07:00
Kurt
2ed8056ea4 Trailing commas 2021-10-08 12:42:32 -07:00
sora10pls
7722baa826 Update RibbonVerifier.cs
Series 11 allows restricted Pokémon and runs until January 31st, 2022.
2021-10-08 09:41:57 -04:00
Kurt
97af5a31c1 Rewrite gen1 trade evo check
Closes #3266 ty @CanoeHope !
2021-10-07 23:56:01 -07:00
Kurt
cb204f335b Clamp gen1 learning of moves for min move count
Hope this doesn't regress for stadium tutoring moves

RB eevee with special 2-move set was being flagged (wanted 4 moves cuz the base 2 aren't the normal levelup moves)

capture references for more concise expressions
2021-10-07 23:55:15 -07:00
Kurt
5fe38e1707 Allow wc3 nickname flag due to 3->4 nick detection omission
Co-Authored-By: Lusamine <30205550+Lusamine@users.noreply.github.com>
2021-10-05 22:46:21 -07:00
Kurt
aa5b8c217b Don't update catch rate if it's already zero 2021-10-04 22:55:18 -07:00
Kurt
3e5cf73b78 Update WC7.cs 2021-10-03 19:58:34 -07:00
Kurt
3f438a8169 Min movecount: handle more edge cases with latest api
Still should be rewritten to traverse all possible moveset building actions
2021-10-03 18:10:53 -07:00
Kurt
113cd9be4f Clamp pk5->pk6 feeling set for HT
bank transfers limited to first 10 feelings
2021-10-02 10:42:39 -07:00
Kurt
f53f46c2e4 Revise ability patch/capsule message
Fix PCD logic flow
2021-10-02 10:25:52 -07:00
Kurt
015afdf369 Hardcode kiribati date shift offset
Should have been "UTC+12"
We can just inline the shifting since it'll always add 12 hours to the current UTC time, thus that's the maximum date value possible
2021-10-01 08:35:11 -07:00
Kurt
93f2639de2 Update 21.10.01
Update events & go binaries with latest.
2021-09-30 23:04:02 -07:00
Kurt
51a01a6df5 Update G3PKM.cs 2021-09-30 21:46:13 -07:00
Kurt
f2dc3f1245 Exclude granbull/vibrava/flygon as single abilities
per the personal data in emerald, they are the only species that go from 2 distinct abilities to 1; since the game does not update the abilityNumber on evolution, it has the second ability being the same as the first, instead of the usual [ability,none] for all other single ability species.
2021-09-30 21:42:44 -07:00
Kurt
aa334a55f1 Revise future date clamping to use max current date
Transfers use local date rather than UTC date, so we gotta allow dates up to kiribati's current date :)

Co-Authored-By: Matt <17801814+sora10pls@users.noreply.github.com>
2021-09-30 20:15:19 -07:00
Kurt
d4b20b8082 Add nickname checks for WC3, add non-english ageto/colo
Closes #3260

Co-Authored-By: FeralFalcon <33670476+FeralFalcon@users.noreply.github.com>
2021-09-30 19:57:52 -07:00
Kurt
ca35623124 Remove phantom invisible character, fix de mattle ho-oh
#3260 part 1

I searched for more instances of the phantom character, and found the one instance in gen7 zh flags :D

Co-Authored-By: FeralFalcon <33670476+FeralFalcon@users.noreply.github.com>
2021-09-30 19:29:22 -07:00
sora10pls
c9fed1ce70 Update BallVerifier.cs 2021-09-30 20:12:54 -04:00
sora10pls
9ec879bd99 Allow non-Poké Ball for Alolan starters
thank you game freak
2021-09-30 20:08:27 -04:00
sora10pls
769021cf77 Add Alolan distribution raids 🏝 2021-09-30 20:04:58 -04:00
Kurt
6a2f778c9a Allow reload for debug build 2021-09-21 19:42:14 -07:00
Kurt
08b7d7ebfe
Update Misc5.cs
#3259
2021-09-18 17:52:58 -07:00
Kurt
0c83da7c1b Add Poké Transfer minigame score editing (Gen 5)
Closes #3259

Co-Authored-By: FeralFalcon <33670476+FeralFalcon@users.noreply.github.com>
2021-09-18 16:31:22 -07:00
Kurt
ea90c9095f Fix early return bool
oops
Probably should be doing this in a branch before pushing :)
2021-09-17 18:15:19 -07:00
Kurt
425f0067c3 Add min level for new gbl types 2021-09-17 17:58:38 -07:00
Kurt
25316fbaef Add IV ceiling for GBL GO encounters 2021-09-17 17:56:15 -07:00
sora10pls
ffdd950a71 Disallow all Dynamax Crystals as held items
They cannot be given to a Pokémon to hold in-game. Also label new Pikachu/Eevee Dynamax Crystals.

Co-Authored-By: Lusamine <30205550+Lusamine@users.noreply.github.com>
2021-09-16 20:15:22 -04:00
sora10pls
93cb6de183 Add Solrock/Lunatone distribution raids + new Dynamax Crystals 2021-09-16 20:11:10 -04:00
Kurt
4fb0f96dc4 Add daycare slot view for lgpe
Co-Authored-By: Matt <17801814+sora10pls@users.noreply.github.com>
2021-09-16 14:21:44 -07:00
Kurt
02af45cb30 Add LGPE to block editor
thanks for nobody noticing this yet :)
2021-09-16 14:06:52 -07:00
Kurt
26422bc17c Add Crystal blue card points get/set
Co-Authored-By: FeralFalcon <33670476+FeralFalcon@users.noreply.github.com>

#3258
2021-09-16 13:16:12 -07:00
Kurt
c3051b3002 Fix special beam move order
Differs from gen4 which has frenzy plant last
2021-09-16 12:50:55 -07:00
sora10pls
e166f86027 Update Evolution enums
Tyrogue => Hitmonlee and Tyrogue => Hitmontop were reversed. 5c4475a237
2021-09-16 08:53:14 -04:00
Kurt
2874f6fc69 Revise pichu volt tackle egg handling
Clean up ParseMovesWasEggPreRelearn as only EncounterEgg call into it, and no EncounterEgg has a special moves interface implemented.
2021-09-15 18:43:18 -07:00
Kurt
63580a2835 Minor tweaks
For BigEndian we don't have to invert the array access if we just iterate backwards :)
Fix xmldoc for gen1 trades ampersand
Add xmldoc for enc trade classes

No functional change.
2021-09-15 18:13:17 -07:00
Lusamine
25313ad58d Eternatus can trigger legendary encounter memory 2021-09-15 20:04:09 -05:00
sora10pls
a572eeaa32 Label Ride Pager event flag for SM/USUM
Localization pending.
2021-09-15 20:50:25 -04:00
Kurt
50084eaaee Fix sav3 [uninit, oneSave] primary secondary detection
Closes #3257
2021-09-14 18:38:46 -07:00
Lusamine
a779000097 Include Thunderstorm for Honeycalm Sea Seadra 2021-09-12 16:14:22 -05:00
Lusamine
4e398322b0
More memory legality checks (#3256)
* Add more memory legality checks

Includes the following new memory checks:
- 4: met in link-trade, allows all possible genlocs except dangerous place
- 7: successful fishing, allows fishable species in gen 6 and 8
- 9: paying attention to another mon, allows only available species for gen 8
- 29: encountering legendary Pokémon, only seen on Zacian, Zamazenta, Calyrex so far
- 32: riding a bike, only in genlocs where biking is possible
- 75: taken to Nursery and placed with a mon, allows only available species for gen 8

Unstubs lotto check and applies it to gen 6.

Co-Authored-By: Skadiv <62726360+Skadiv@users.noreply.github.com>
Co-Authored-By: Matt <17801814+sora10pls@users.noreply.github.com>

* Loto-ID only has one t

* Crown Shrine has another genloc outside

* Consistent Loto name for array

Co-authored-by: Skadiv <62726360+Skadiv@users.noreply.github.com>
Co-authored-by: Matt <17801814+sora10pls@users.noreply.github.com>
2021-09-12 12:01:45 -07:00
Kurt
80d1712b72 Mark stuff with enums, remove unused arrays
Fix shuffled comments for FormInfo
Remove unnecessary Reset on ctor, all fields are already the default
2021-09-07 20:57:19 -07:00
Kurt
a9374560ec Don't recurse, jump straight to eventual method for splitbreeds
Don't check splitbreed if generation <= 2, move that check upwards.
2021-09-07 15:40:14 -07:00
Kurt
91c7c28c6f Inline form changeable species lists 2021-09-07 15:35:36 -07:00
Kurt
1d00e17217 Add properties for cleaner interaction 2021-09-07 15:31:54 -07:00
Kurt
d8c5c027ac Emerald: Add walda wallpaper
use block editor
f7a699c686/include/global.h (L1045)
2021-09-06 20:46:41 -07:00
Kurt
2575d73144 Add IFixedAbilityNumber, hide vivillon region flags
tfw can't using static a private class in the file, gotta be explicit.
2021-09-06 18:11:32 -07:00
Kurt
17c32db8b5 Minor fixes
Replace hardcoded move int with enum val
Lillipup->Rockruff
personal_swsh: remove pledge bitflags (missed in CT update)
2021-09-06 18:04:14 -07:00
Kurt
41b1aaeb19 Search mystery gift relearn moves for needed moves
Add to encountertrades searcher, for futureproofing

solves gen8 mg searching volt tackle pikachu
2021-09-06 11:43:42 -07:00
Lusamine
9751a75f59 Free Sgr7121 GMax Duraludon 2021-09-06 13:26:18 -05:00
Kurt
99231b978e Prevent egg generator from yielding unbreedable species-forms
The "IsPresentInGame" will likely have to be refactored out as an interface, as future games (BDSP) will likely have partial national dex content
2021-09-06 10:48:32 -07:00
Lusamine
4cb525aac1 Restrict memory 39 general locations for SWSH 2021-09-06 12:39:08 -05:00
Kurt
5079b4f311 Handle cutecharm ambiguous seed-frames
Iterate over all possible seed frames that yield the IV pattern; nature is right before IV rands (PID is algorithmic from gender ratio and prior nature call).
Split up GetFrames into stepwise methods, clean up parameter passing
2021-09-06 00:35:40 -07:00
Kurt
819b884b19 Update EventWork7b.cs 2021-09-05 13:07:33 -07:00
Kurt
a7ed5b400f Add Trainer Class / Title property for LGPE 2021-09-04 22:04:49 -07:00
Kurt
f9d9bcfb80 XD: Purification is stored differently for jp games
A more condensed data structure, 72->60 bytes for each entry instead.
Closes #3255

Related? #2956
2021-09-03 18:16:09 -07:00
CanoeHope
5f0dcfe6af
Correct Gen 2 Snorlax Event Flag (#3254)
Needs to be the Vanish flag, not the story flag.
2021-09-03 16:03:30 -07:00
sora10pls
9bd0104954 Add new distribution raids 🧹 2021-09-02 20:04:14 -04:00
Lusamine
2f2cb43bd0 Disallow memory 17 from SWSH
It's a 1% memory that is impossible to obtain normally, but was missed earlier since it occurs on the in-game Throh/Sawk trades.
2021-08-29 19:22:09 -05:00
Kurt
adb7466a22 More memory legality additions
probably worthwhile to move the checks into the context, and return an enum -> switch to generate checkresult
2021-08-29 15:56:09 -07:00
Kurt
348fa4c9fa Force Gen2 Red Gyarados to be male only, fixed IVs
Closes #3251

Uses fixed IVs to force shininess (rather than mutating DVs)
1f9e688b76/engine/battle/core.asm (L6103-L6110)

Co-Authored-By: CanoeHope <43196464+CanoeHope@users.noreply.github.com>
2021-08-29 13:23:34 -07:00
Kurt
92d15bdd03 Rename SetTradeMemoryHT, add SetTradeMemoryHT8
Gen6 behaves differently from Gen8.
Fix broken test case [Arrived via link trade, it had fun! (2) -> (3)]
2021-08-29 13:15:45 -07:00
Kurt
2f3e496e6f Change defunct gen8 location memory setting to check 1%
Refer to previous commit, the apply-memory has a 1% chance of failing for 100% memories, resulting in the ability to have 0-memory HT via link trades.

In-game trades caused the previous logic, as those forget to set the HT memory (likely the same logic flaw as skipping the nickname check via game settings).
2021-08-29 13:09:26 -07:00
Kurt
1ac125d335 Add Gen8 memory table data
The middle table in poke_memory.prmb contains the analogue of Gen6's memory table data. All existing memory data is the same, with 20 memories added.

Feeling bitflags are the same as before, but as we've noticed, feeling 0 is not obtainable. All the feelings are value upshifted by 1. This is why the game shows a blank line for Gen6 Feeling-0, as that game was [0,23] not [1,24] for the span of feeling strings.

Memories with 1% chance are actually 0% due to how they if-abort in the game code. Nice bug, GameFreak! @Lusamine had previously committed the unobtainable memories, derived from the community's empirical data.
2021-08-29 13:06:44 -07:00
Kurt
20d0fcfab4 More performant trashbyte clearing 2021-08-29 12:02:07 -07:00
Lusamine
3627ff4104 Disallow specific memories from SWSH
Never observed these in 20k+ memories, and I wasn't able to trigger them myself either.
2021-08-29 10:42:16 -05:00
Skadiv
809557715d
Add Wyndon to the sign memory locations (#3252) 2021-08-29 09:38:15 -05:00
Lusamine
e85a75e796 Add Wyndon as a location for sitting on bench memory 2021-08-29 01:28:42 -05:00
Kurt
02e9d07745 Update EvolutionTree.cs 2021-08-28 14:44:07 -07:00
Lusamine
81f2744af2 Add story raid species for Dynamax memory 2021-08-28 15:55:47 -05:00
Kurt
c65fda5e7d Allow HM moves in gen2-4 eggs
Yay silly inheritance
ty atrius
2021-08-28 13:54:58 -07:00
Kurt
7434af48bf Fix HT know move memory deferral
Checks if it can know the move up until the current format, rather than origin game
2021-08-28 13:44:10 -07:00
Kurt
65b7102d4e Permit gen1/2 format eggs to have eggmoves (GS)
Thanks Psyduck!
https://projectpokemon.org/home/forums/topic/57375-pkhex-new-update-legality-errors-contribution-page/page/10/?tab=comments#comment-268691
2021-08-27 23:11:21 -07:00
LegoFigure11
eeaf19f1c2
Fix incorrect met locations in XD GoD (#3250)
The Hexagon Brothers can be rematched in Phenac City if their shadows aren't snagged at the Cipher Lab, but Seedot, Houndour, Gulpin, and Spheal are all encountered outdoors (Phenac City (XD) [100]). Mareep and Baltoy are both encountered downstairs in the Mayor's House (Phenac City (XD) [096]).

Relevant .xk3 files: https://cdn.discordapp.com/attachments/537784151970021376/880816626176495626/Phenac_Rematches.zip
2021-08-27 07:33:12 -07:00
Kurt
92f30e26cc Add misc memory checks for gen8 memID 42/51/70 args
Closes #3249

Co-Authored-By: Skadiv <62726360+Skadiv@users.noreply.github.com>
2021-08-26 21:20:52 -07:00
Kurt
d5c9ea978e Indicate version metadata for lgpe gifts
Just metadata, no functional change
2021-08-26 15:47:44 -07:00
Kurt
87a268fa7f Clean up memory generation parameter fetching 2021-08-25 19:45:47 -07:00
Kurt
0e2dac3ff6 Minor tweaks
Empty return for invalid species encountertemplate fetch
Expose property for ck3 @ 0xD7
show legal memory context items rather than gen8 always
2021-08-25 19:23:15 -07:00
Kurt
d3ae5e682f Shift intensity back down by 1
Used to be index2,count7 per 9f1a8d1da1 diff. Needed to delete both blank lines, oops.
2021-08-25 10:47:40 -07:00
Kurt
6ea0d9f3bb Handle bank transferred memory feelings 5->6
Apparently they don't use the bit-permission table in Bank to get a random feeling, and instead just do rand(0,10).

Our logic to set a random feeling for bank transfers is still fine, because we set [0,10) within the bit table.
2021-08-25 10:37:53 -07:00
Kurt
c1a7d04c5c Fix ck3 fateful read
Hope 555e81205d was actually incorrect and that this is finally correct
2021-08-24 22:23:45 -07:00
Kurt
ffcd2e96e0 Fateful Mattle Ho-oh on japanese colosseum
must have been an oopsie they reverted for international releases
Thanks @liketolike !

Co-Authored-By: Lusamine <30205550+Lusamine@users.noreply.github.com>
#3242
2021-08-24 19:29:51 -07:00
Kurt
6e3bcd5b66 Encounter visualization: Show ball and differentiate visually 2021-08-24 14:03:20 -07:00
Kurt
5a53ae85bc Update WB7.cs 2021-08-24 13:12:14 -07:00
Kurt
9f1a8d1da1 Split memory text string resources
Much easier to maintain and reference now
2021-08-23 23:06:51 -07:00
Kurt
2e3a6cc719 Fix memory 6 (pokecenter) compare for gen8 2021-08-23 23:06:33 -07:00
Kurt
a3633bb562 Update MemoryContext8.cs 2021-08-23 19:15:39 -07:00
Kurt
d684b9fa14 Disallow starter pika/vee on opposite game storage 2021-08-23 16:46:03 -07:00
Kurt
47914c48c8 Update WB7.cs
https: //github.com/kwsch/PKHeX/commit/2a51eb174522754da51a5e1b059163e6a1ed9c6a#diff-8b09a6b11c41760f1242b597508eeb0ea4cde4a14cfd7e7ec1a0a37b146924c8L235-R228
Co-Authored-By: Matt <17801814+sora10pls@users.noreply.github.com>
2021-08-23 16:30:38 -07:00
Kurt
86fde6d42e Memory 3 updates, revert todo 2021-08-22 23:39:23 -07:00
Kurt
3a8947cc59 Allow battleversion-ambiguous relearn move 2021-08-22 22:23:59 -07:00
Kurt
6e9f230dee Add cxd/rsbox event data for mainline sav3
Closes #3248
2021-08-22 18:52:29 -07:00
Kurt
a631e5cb4e Rearrange how some memory info is checked
Split into different game contexts
2021-08-22 16:41:57 -07:00
Kurt
b099b8d82c More genloc memory refinements
starting to see the flaws in how things are organized
2021-08-22 11:10:29 -07:00
Kurt
40d1249f1e Add genloc checks for gen8 memories 1,2,3
Can definitely be refined as these memories can restrict to capture/hatch/gift encounters. The multi-value arrays can also be restricted for non-hatches too (maybe first element if WasEgg?)

Co-Authored-By: Lusamine <30205550+Lusamine@users.noreply.github.com>
2021-08-22 01:40:08 -07:00
Kurt
28e7473f1a Condense some expressions 2021-08-22 01:26:28 -07:00
Kurt
6112c9c91c Condense into expression, add future-evo case 2021-08-22 00:06:02 -07:00
Kurt
5b42dc8ae4 Minor clean 2021-08-22 00:05:41 -07:00
Kurt
92d1666970 Make PIDIV a readonly struct
Add tests to ensure the optimization remains in effect later
2021-08-21 18:24:38 -07:00
Kurt
65c5890e1f Make NPCLock a readonly struct
Reduces allocation, improves locality of data since the contents take less size than a pointer (can pass byval)
2021-08-21 17:44:43 -07:00
Kurt
ae0ca49628 Arrange CXD Shadow encounters, add ShadowID documentation 2021-08-21 17:01:50 -07:00
Kurt
c9b838b492 Inline clone method
More obvious what it does
2021-08-21 16:52:06 -07:00
Kurt
8f0fb902d1 ArgumentException -> ArgumentOutOfRangeException 2021-08-21 16:51:50 -07:00
Archit Date
27059268ba
un-trim alcremie form strings (cream vs swirl) (#3246)
also use proper alcremie forms for showdown
2021-08-21 13:02:37 -07:00
Kurt
8f4f86e88e Update WC8.cs 2021-08-21 11:50:24 -07:00
Kurt
5da9b4a70a Force alignment
FieldOffset isn't implied, fun.
2021-08-20 22:07:09 -07:00
Kurt
05364212ba Update Encount5.cs 2021-08-20 20:53:23 -07:00
Kurt
9ef93552c9 Add ability to set swarms for gen3 2021-08-20 20:50:16 -07:00
Kurt
48024f1245 Add Swarm data get/set for gen3-5
#3245
2021-08-20 19:52:31 -07:00
Kurt
cd12962a50 Remove Tradeback state caching in PKM data
Since we have more metadata with move learn sourcing, we can check if it was traded to gen2 to get new moves / deleted.

Adjust call sites appropriately
might have some issues, to be ironed out maybe
2021-08-20 15:59:54 -07:00
Kurt
bedc52943e Trailing commas
No functional change
2021-08-20 13:49:20 -07:00
Kurt
c6342a163f Minor clean
variable swaps, simplifications
2021-08-20 13:42:25 -07:00
liketolike
8b4730a2ee
Update zh translation (#3241)
Adds Gen2 zh const/flag name files
Adds Gen7 zh lgpe flag names
Updates GUI translation
Updates gen3,4 const/flag files
2021-08-19 20:19:49 -07:00
Kurt
9f249ef4d6 Add bounds check for API purposes
chris doing things funkily, might as well range check ourselves before blindly accessing the array

Use a const value for vivillon max wild form value
2021-08-19 18:59:24 -07:00
sora10pls
5379bad7ff Add new distribution raids 👻 2021-08-19 21:20:56 -04:00
Kurt
c0d748a975 Add Dream World upload slot indicator
Tested & works on bw & b2w2
Thanks Brokemia for the request!
2021-08-16 11:54:03 -07:00
Kurt
a926923a6b Remove Fullness/Enjoyment from ExtraBytes
They show up in the memory editor
2021-08-15 19:32:50 -07:00
Kurt
05d745afe5 Fix inverted format search 2021-08-15 19:32:33 -07:00
Kurt
934628b077 Pre-filter memory mismatch on moves
All over the place with prior commits; everything should be correct (and more robust) now.
2021-08-15 14:23:15 -07:00
Kurt
31ddaf2bc4 Don't defer on ability mismatch 2021-08-15 11:07:59 -07:00
Kurt
42330eb771 Memories and special moves, bite the bullet
Allocate a list :(
We need to keep all the secondary deferred around, since they have special movepools.
2021-08-15 09:47:31 -07:00
Kurt
7c60363b38 Rework match ranking to have multi levels of deferral 2021-08-15 09:28:47 -07:00
Kurt
24e77e7382 Handle form changing for move memories
Doesn't invalidate any of the statements made today.

ty @Lusamine for identifying these cases.
2021-08-14 20:20:13 -07:00
Kurt
db1cbf8cce Handle raids with specific TR moves tripping memory checks
Defer the ones that have the memory and don't have the move; we'll likely find another match else settle for this one.
2021-08-14 19:47:52 -07:00
Kurt
e1c8ab8d96 Fix remapped glyph
Future updates to glyph remapping to come later
2021-08-13 17:25:20 -07:00
Kurt
44e360f7c7 Add Wolfe coal gift ahead of actual release 2021-08-13 17:24:49 -07:00
Kurt
9793e9f1a0 Minor clean
Slap on interface for EntreeSlot
De-magic some 💯 numbers to indicate what they're doing
Improve perf of move-match-relearn check
Add an "else" as valid is never both values (history verifier)
2021-08-13 15:36:30 -07:00
Kurt
a0bdb1a40e Fix OT->HT memory string output for HT verifier
Use the `memory.Handler string` value rather than recomputing. (lines 51, 64 pf memverify)
2021-08-12 17:33:31 -07:00
Kurt
cad09e68bb Fix source string returns
I blame the goofy "move egg" names confusing me
Reorder some so that the switch case is sequential and can be optimized by jit as a jumptable
2021-08-12 17:32:25 -07:00
sora10pls
803fe84f04 Add form strings for Eiscue, Morpeko, and Zacian/Zamazenta
Ice Face, Full Belly Mode, and Hero of Many Battles (strings trimmed where appropriate)
2021-08-07 13:22:14 -04:00
Kurt
ad8d622443 Rearrange text resources
Put legality stuff with legality
2021-08-06 20:20:12 -07:00
Kurt
89372145b7 Extract legality report (invalids) methods 2021-08-06 16:12:11 -07:00
Kurt
b8e203bdef Remove invalidmatch tracking
The Encounter verifier method rarely rejects as our inner encounter matching methods are all-or-nothing. Don't bother keeping references for this bloat.
Ran the unit tests and nothing hit this logic.
2021-08-06 15:38:39 -07:00
Kurt
9f8642f7d2 Hide Generation/Game setters behind mutation method 2021-08-06 15:35:49 -07:00
Kurt
391c6d4af6 Use Generation property when available 2021-08-06 15:34:28 -07:00
Kurt
69a907c5e7 Pass encounter object to innermost ability verifier
Fixes stuff for format3 CXD encounters as the side-games applied ability bits regardless of a second ability existing.
2021-08-06 15:26:21 -07:00
Kurt
70e10478dd Extract fog boost location check 2021-08-06 14:54:32 -07:00
Kurt
a939a2dbd6 Add pkmdb sorting rules for loaded database set 2021-08-06 10:09:16 -07:00
Kurt
c126cd968a Only boost templates to 60 in wild area
No functional change for legality checks, so should be fine unless you're trying to get tiny edge case stuff.
2021-08-06 09:42:27 -07:00
Kurt
5ec2b12ae5 Handle some warnings for release build
Unused usings; just make PIDType stuff visible.
2021-08-06 09:41:39 -07:00
Kurt
0094492bd2 Update 21.08.06
Update mgdb with latest
2021-08-06 00:34:31 -07:00
Kurt
0f3e5095c5 Replace more linq usage 2021-08-05 22:39:38 -07:00
Kurt
e18c2d8fa4 Replace linq with similar but faster logic 2021-08-05 20:47:32 -07:00
Kurt
5c472a400d Expand shorthand parameters
int i => int index, or whatever the value is representing.
2021-08-05 20:33:25 -07:00
Kurt
a1f5c76790 Fix pgl jpeg save 2021-08-05 19:38:47 -07:00
Kurt
edcf3a9bd6 Remove duplicate no-item for gen6 held item list 2021-08-05 18:54:08 -07:00
Kurt
c409026a69 Merge branch 'master' of https://github.com/kwsch/PKHeX 2021-08-05 17:16:15 -07:00
Kurt
4e669468c3 Pass parse result list to encounter info fetch ctor
Old: when an encounter is found, we copied the contents of the list into our analysis list.
Since we stop when we find a suitable encounter, the old list is useless. By sharing the same list, there's no consequence. Reduces allocation by ~56B each analysis object!

Simplification reduces the amount of method calls by 1
2021-08-05 17:16:13 -07:00
Kurt
59d480c834 Minor tweaks
Discard empty pkm files (species 0) when loading boxes or templates
Add more xmldoc
Simplify some method parameter names for readability
2021-08-05 17:05:39 -07:00
sora10pls
2766c2c900 Add new distribution raids
Apparently the theme is summer
2021-08-05 20:03:56 -04:00
Kurt
ebb47867dd Use FileUtil tryget for pkm from path
GetPKMFormatFromExtension is now only used once internally.
2021-08-05 16:29:32 -07:00
Kurt
2f9a60b5e6 Organize byte resources into subfolders 2021-08-05 15:35:29 -07:00
Kurt
cc0397f087 Misc tweaks
Improved readability
2021-08-05 15:18:43 -07:00
sora10pls
bfcf081e5b Fix XY multiplayer sprite display
Reorder enums; Serena before Calem
2021-08-05 16:22:06 -04:00
Kurt
ab3795abaa Handle enc->pk7 form-random vivillon Island Scan static 2021-08-05 12:36:47 -07:00
Kurt
0a74f6c33d Ignore species for rby if not present
encounter moves not present for those, lol
2021-08-05 12:36:19 -07:00
Kurt
9f4ff5f070 Update SearchSettings.cs 2021-08-05 12:07:40 -07:00
Kurt
d1fb38b9cf Set correlation with unrestricted details if failed 2021-08-04 19:58:25 -07:00
Kurt
616acc8bbd Misc fixes 2021-08-04 19:54:04 -07:00
Kurt
83a72df7cc Include gen1 encounter moves in not-needed list
Might result in some illegal matches as it includes it for all evolutions in the chain, but whatever. Could probably rewrite the generator to only generate for different starting-species, but it's fine now.

Inline the max level calc
2021-08-04 19:07:20 -07:00
Kurt
2f5e2016bc
Only use the TreatWarningsAsErrors for debug build (#3237)
* Update PKHeX.Core.csproj
2021-08-04 00:13:58 -07:00
Lusamine
0f1f0166ce Check for Fishing flag in case of grass spawns
Handles exceptions like Chewtle in high level area of Route 2, which are
in the Normal weather grass slots as well as the fishing slots.
2021-08-03 23:12:09 -05:00