Commit graph

7607 commits

Author SHA1 Message Date
Kurt
46f3b17a67 Replace this[] indirect access with direct table access
The static constructor setup methods don't need to be maxSpecies aware, they always succeed. So just remove the self-imposed-safe bounds checks by accessing & mutating the table directly.
2021-01-01 15:24:11 -08:00
Kurt
04f8efec4f Move more breeding logic to Breeding
Simplify some method signatures, reduce checks for MoveEgg.GetEggMoves

ran legality checks for 100,000 pkm, no more exceptions (Internal Error) -- added a "CanGameGenerateEggs" which filters out unused gameIDs
2021-01-01 15:01:22 -08:00
Kurt
7523e0e200 Make ContestStat fields byte (from int) 2021-01-01 13:39:08 -08:00
Kurt
f6d4d93613 Inline some logic for contest stats 2021-01-01 12:21:46 -08:00
Kurt
d66486ac29 More pkm.form visibility/initialize tweaks
Gen7 started up showing a form=-1 marshadow, initialize the combobox with an empty string since we no longer set formlist if it has none
label/combobox visibility should be managed by gen2 flowlayout case below
2021-01-01 11:29:20 -08:00
Kurt
e2c1a3045a Extract gen2 egg generator, simplify can be egg checks
Optional parameters were never passed; force Min Level to 5 to match egg level.

Tried removing it completely but it still allowed Charizard eggs (no)
2021-01-01 11:27:45 -08:00
Kurt
a4c4a2b231 Make EncounterArea record type
immutable reference types is the goal; the array for the data isn't copied, but both records refer to the same data.
2021-01-01 10:55:33 -08:00
Kurt
4e01e78734 Make Species/Form/Min/Max readonly, not init
Pass them to the abstract class's constructor
2021-01-01 10:53:05 -08:00
Kurt
4cdbb431d8 Fix bad test case data
New legality checks for Transfer Console Region permitted, and removing the inaccessible areas (R1 outskirts rockruff) resulted in these being flagged.

Mutate the data so it's now legal with the updated rules.
2021-01-01 10:51:50 -08:00
CanoeHope
45c46d774f
Added a few RS, FRLG and DP Event Flags (#3115)
* Update flags_rs_en.txt

* Update flags_frlg_en.txt

* Update flags_dp_en.txt
2020-12-31 23:36:12 -08:00
Kurt
fb008be6a6 Condense some more expressions 2020-12-31 23:13:27 -08:00
Kurt
080f6f827d Replace pkm.GG references with direct version checks
No longer tied to met location
2020-12-31 17:45:11 -08:00
Kurt
8bf250ff5a Update EncounterEggGenerator.cs 2020-12-31 17:16:28 -08:00
Kurt
2689e72252 Hide field that shouldnt be used by external users
Not to be confused with LegalityAnalysis.Parse
2020-12-31 17:14:39 -08:00
Kurt
b9f0427ccd Add Year of the Dragon distribution raids 2020-12-31 16:07:52 -08:00
Kurt
f631cbbecd Generate gen2 eggs via gen2 method, ignore gen1 versions
For searching, only return versions compatible with the save file
Don't bother filtering out BU for Japanese-only.
2020-12-31 15:51:06 -08:00
Kurt
989c4314ae Hide formarg control when not present for format
Set initial visibility state to false for startup anyways; parent usercontrol should get set invisible by PKMEditor during its setup-format logic.
2020-12-31 15:15:22 -08:00
Kurt
d0d7895fa5 Only refresh localized data sources if needed (generation)
Faster same-type savefile loading
2020-12-31 15:10:37 -08:00
Kurt
4058d44229 Fix inverted check 2020-12-31 12:14:24 -08:00
Kurt
aaad127b99 Condense things a little more 2020-12-31 10:41:55 -08:00
Kurt
f4bf9dd208 Minor clean
add download count to changelog
move 2019 changelog to uncompiled resource (for record)
2020-12-31 10:36:09 -08:00
Kurt
28ec0e91f0 Use specific type when storing reference 2020-12-31 10:33:30 -08:00
Kurt
38e02a53b2 Condense switch cases to switch expressions 2020-12-31 10:33:13 -08:00
Kurt
99292c75f9 Update 20.12.30 2020-12-30 21:16:38 -08:00
Kurt
b7d70e61d3 Update gen7 slot pickles, removes inaccessible areas
Closes #3025 , ty @sora10pls and @Ammako !
2020-12-30 19:08:53 -08:00
Kurt
6a9aa891f1 Validate VC transfer consoleregion-language relationship 2020-12-30 15:30:50 -08:00
Kurt
ef51f53e9a Flag battle-only minior forms 2020-12-30 15:03:55 -08:00
Kurt
24332b6979 Minor tweaks 2020-12-30 13:08:15 -08:00
Kurt
206a05082b Update HistoryVerifier.cs 2020-12-30 09:55:41 -08:00
Kurt
ec4358372a Finish implementing form-argument control behavior 2020-12-30 00:32:17 -08:00
Kurt
6040faed10 Yield gb events in generator
Were recently split off so that the events could be generated last rather than with the rest of static encounters (first)
2020-12-29 21:45:37 -08:00
Kurt
6071834d4f Fix gender ratio comparison for Colo starters
LockFinder:
https://projectpokemon.org/home/forums/topic/57375-pkhex-new-update-legality-errors-contribution-page/?do=findComment&comment=263736

CXDVerifier:
Use a switch expression for a more concise representation of logic
2020-12-29 20:25:05 -08:00
Kurt
b19688b13d Defer go slots with IV sets as there might be other encs
Move the logic to the class
Update go binaries
2020-12-29 16:07:29 -08:00
Kurt
4d1832b124 Move showdown stuff to subfolder 2020-12-29 15:39:24 -08:00
Kurt
2af9e800fb Add RotomAffection and rotoloto1/2 flag editing to GUI 2020-12-29 11:39:19 -08:00
Kurt
d9a4eacaf4 Allow deactivating all raids 2020-12-29 10:53:47 -08:00
Kurt
de840f40d4 Invert some "!is" to "is not" 2020-12-29 00:58:08 -08:00
Kurt
e8c23f6644 Simplify some repeated comparisons with expressions
Less prone for bugs since it uses the same value for all comparisons without re-specifying
2020-12-29 00:37:59 -08:00
Kurt
c119f18af3 spec->species 2020-12-28 22:22:52 -08:00
Kurt
6502c9df33 Condense some expressions, extract static class 2020-12-28 21:42:54 -08:00
Kurt
0a46f45b00 Split MetDataSource from GameDataSource 2020-12-28 21:12:46 -08:00
Kurt
688b636b93 Fix off-by-one and trim trailing tabs of blank rows 2020-12-28 14:45:08 -08:00
Kurt
bb68dcc3cb Move trade->pkm edge case handling to derived classes 2020-12-28 14:42:48 -08:00
Kurt
934316d68d Simplify some expressions for game datasources
Reduce allocations for ball
Use a clean switch expression for version->met list
2020-12-28 13:32:36 -08:00
Kurt
74ee22e66e Make ComboItem a record 2020-12-28 11:57:34 -08:00
Kurt
e44100a9fd Remove unnecessary ComboItem logic 2020-12-28 11:56:00 -08:00
Kurt
a124168e87 Make FormArg editing a complex control
Shows a dropdown for alcremie only, and a number entry for everything else.

See 771086a222 for initial implementation; I don't want the lag anymore lol
2020-12-28 11:51:25 -08:00
Kurt
7298910f04 Simplify some logic
The save editor buttons were originally checked for visibility in order to determine if we should hide the groupbox completely. This didn't work if the groupbox wasn't being displayed (get visibility checks if it is currently rendered, in addition to can be shown). So the "enabled" state was used to determine if it should be shown.

Now that we have the "Blocks" raw editing always being shown, the GroupBox will always be shown. Can just set the visibility directly, rather than doing the workaround.

Make the hall of fame editors slightly less SaveFile_type-specific.
2020-12-28 10:26:08 -08:00
Kurt
c14f2a1dd1 Minor initialization tweaks
GameStrings: 10% of strings are unique; just mark everything. Stop a little early so we don't process the empty & (trade) string.
LearnsetReader: All empty entries are length==0; malformed should throw an exception (never).
EggMoves: Compute ptr inside the array fetch loop; don't use linq.

EggMoves & string shaves off 80ms of startup time according to profiling; some could be attributed to warm-up but yay more efficient.
2020-12-28 10:22:13 -08:00
Lusamine
c46c55f304
Add missing static encounters (#3113) 2020-12-27 11:47:01 -08:00