Kurt
373aecdf7c
Merge GO IV checks, behavior is now correct
...
Rename IV1/2/3 to HP/ATK/DEF in gp1 structure
2021-01-05 09:39:50 -08:00
Kurt
6fc8779aaa
Revert "Add vc shiny female gender ratio check"
...
This reverts commit d5a1283585
.
2021-01-04 17:31:56 -08:00
Kurt
cc43550357
Simplify more expressions
2021-01-04 17:31:43 -08:00
Kurt
ad48f4e909
Set languageID if present for sav
...
Lowercase the "SAV" variable too
2021-01-04 16:28:46 -08:00
Kurt
acf811f5c1
Permit all generations prior to requested generation for know move check
2021-01-04 15:38:30 -08:00
Kurt
cbc57dc794
Force sav1 BU to init as japanese
2021-01-04 15:18:16 -08:00
Kurt
99fe3b59b4
Fix contains indexing incorrectly
...
blame apr 17 2017 !
a5b1d72f06 (diff-53c2e8acc19c5af65034cf0460ba82ebc7dc00ba61eb142ef4aa2c0cbc1f7cffR2918)
2021-01-04 15:06:52 -08:00
Kurt
0ab3493335
Skip save sub-type detection if we already it
2021-01-03 18:11:59 -08:00
Kurt
d5a1283585
Add vc shiny female gender ratio check
2021-01-03 18:08:31 -08:00
Kurt
730640decc
Minor clean
2021-01-03 16:53:13 -08:00
Kurt
33ad654be6
Mark encstatic version on init rather than post-init
2021-01-03 16:49:49 -08:00
CanoeHope
916c70341a
Added Bebe's PC Event Flag for DP + Update Gen 3 & 4 translations ( #3116 )
...
* Update flags_dp_en.txt
* Update flags_frlg_es.txt
* Update flags_dp_es.txt
* Update flags_dp_ja.txt
* Update flags_dp_ko.txt
* Update flags_dp_zh.txt
* Update flags_frlg_zh.txt
* Update flags_rs_es.txt
* Update flags_rs_zh.txt
2021-01-02 21:36:42 -08:00
Kurt
e663ffdd35
Fix comparison
2021-01-02 20:52:39 -08:00
Kurt
1f600f3518
Fix Gen2 Shiny ShowdownSet import
...
SetNature loops by changing the PID which doesn't exist; there's no nature or abilities in gen1/2 so just skip these two methods completely.
2021-01-02 19:58:25 -08:00
Kurt
7629d3f887
Bounds check empty permutations
...
If the length is 0 or malformed input, we return empty.
2021-01-02 19:23:39 -08:00
Kurt
1f3d3112d3
Move some future-evolution tables to separate class
2021-01-02 19:11:46 -08:00
Kurt
4a52b349ff
Minor clean
2021-01-02 19:11:34 -08:00
Kurt
77a784a881
Move Stadium static encounter junk to event list
...
Charmander has Leer at level 5, which makes it a special move (can't learn it normally that low).
2021-01-02 14:48:11 -08:00
Kurt
97be69bca1
Use EncounterMatch when EncounterOriginal doesn't matter
2021-01-02 14:47:39 -08:00
Kurt
7a4d8925f2
Update EncounterStaticGenerator.cs
2021-01-02 13:53:25 -08:00
Kurt
f785231692
Fix backup filenaming
2021-01-02 10:34:33 -08:00
Kurt
699a598227
Update NicknameVerifier.cs
...
Nickname AND Trainer Name are verified in that method; we still want to execute it. If it has a fixed nickname, we can skip the wordfilter since it's already been checked.
2021-01-02 01:02:59 -08:00
Kurt
401add520a
Check nickname of non-nicknamed in-game trades
2021-01-02 00:48:58 -08:00
Kurt
c432a15a20
Relocate some tables to a location closer to where they're used
2021-01-02 00:46:09 -08:00
Kurt
a7b9fafb69
Remove unnecessary logic
...
Encounters are thoroughly checked for their origins; don't need to check again if it's possible to have it in an egg.
2021-01-01 19:45:40 -08:00
Kurt
2648560684
Invert breeding method result returns
...
clean:
if (!logical) return;
Existing logic had methods named to return true if fail, now method checks for passing, thus the logic now follows the above pattern.
2021-01-01 19:36:54 -08:00
Kurt
09089da14e
Use more expression return style
...
Reduces indentation & bracketing, a bit more concise
2021-01-01 17:08:49 -08:00
Kurt
1d22b74970
Remove unused block class
...
Copied from Gen7b, swsh is just a key,value list
2021-01-01 16:57:18 -08:00
Kurt
813180453e
Delete duplicate HT bit fetch method
...
Make expression methods
2021-01-01 16:39:33 -08:00
Kurt
11a2a7a318
Condense expression to use bitflags
...
from 2 cmp to just 1
2021-01-01 16:25:48 -08:00
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
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
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
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
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
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
Kurt
b84e2283a7
Add missing snorlax nest encounter (Zeraora event)
...
The event had copies of the current month's raids, but snuck in Snorlax at level 17 (wrong, should have been munchlax?).
ty atrius
fix indentation
2020-12-27 11:32:05 -08:00
CanoeHope
0f5a77f187
Update DPPt Starter event constants ( #3112 )
...
* Update const_dp_en.txt
* Update const_dp_es.txt
* Update const_pt_en.txt
* Update const_pt_es.txt
2020-12-26 12:46:49 -08:00
Kurt
e4c391dc01
Move nest downlevel checks into specific encounter type
...
Distribution nests are checked for 1/3 badge restrictions similar to regular nests; crystal nests are not. Thanks @Lusamine!
2020-12-26 09:31:21 -08:00
Kurt
a4ccca7980
Add battle-only known move memory bypass
2020-12-26 09:27:41 -08:00
Kurt
ee5349ff98
moar is or
2020-12-25 12:30:26 -08:00
Kurt
4a8a495d04
Condense some switch expressions
...
Should be it for now; exhaustively searched for all that made sense to change
2020-12-25 10:58:33 -08:00
Kurt
799d5aea56
Merge branch 'master' of https://github.com/kwsch/PKHeX
2020-12-24 17:15:34 -08:00
Kurt
1d501366cb
Add holiday raids
2020-12-24 17:15:32 -08:00
Kurt
95e3337f2c
More switch expressions
2020-12-24 17:12:08 -08:00
Kurt
4d0108331a
Move LegalityAnalysis derived movesets out of class
...
LegalityAnalysis just does the analysis; no need to do unnecessary suggestion logic inside the object.
2020-12-24 16:36:50 -08:00
Kurt
749fef0ac6
Minor clean
2020-12-24 15:23:38 -08:00
Kurt
ba7ccaf5e6
Make EncounterTrade's version init-only
2020-12-24 15:23:26 -08:00
CanoeHope
3d400675dd
Add running shoes for DP + merge 1 RS event flag ( #3111 )
...
* Add running shoes flag for DP
Platinum & HGSS don't use a flag, sorry!
* Merge an identical RS flag
2020-12-24 13:08:21 -08:00
Kurt
43dd390f21
Split IContestStats, mark trades as records
2020-12-24 00:06:40 -08:00
Kurt
afdd2bd57e
Mark EncounterSlot/Static types as immutable record types
2020-12-23 20:40:59 -08:00
Kurt
0a3f45218f
Add OT gender check for N's Pokemon
...
Closes #3110 ty @FeralFalcon !
2020-12-23 18:03:05 -08:00
Kurt
93910df2c6
Use new switch statements
2020-12-23 17:14:38 -08:00
Kurt
736564be8c
Merge EncounterStatic4 back together
2020-12-23 12:15:49 -08:00
Kurt
324ce9d6ac
Minor clean
2020-12-23 09:34:29 -08:00
Kurt
e34c8df044
Revise some method signatures
2020-12-22 20:50:33 -08:00
Kurt
105e8b3818
Move version forcing for unavailable encounters to es4
2020-12-22 20:15:56 -08:00
sora10pls
dcd20a3649
Update PogoTypes and their respective requirements
...
For more context, see 62e84309d7
2020-12-22 15:20:15 -05:00
Kurt
d288a32ef5
Permit TR flags for "Can Relearn", split branching for TR checks
2020-12-22 09:10:10 -08:00
Kurt
53e0046a48
SWSH has some form entries with different base friendship (stunfisk)
2020-12-22 09:09:49 -08:00
Kurt
2bc7110884
Remove unnecessary overrides
2020-12-21 23:40:58 -08:00
Kurt
997e0751f3
Minor clean
...
Handle remainder of c#9 sugar
Fix some spelling mistakes
2020-12-21 23:37:07 -08:00
Kurt
514b60b447
Merge type check with usage in if statements
...
if x is y with z property true, then :D
2020-12-21 22:33:48 -08:00
Kurt
4890e0e952
Change move source requests from a bunch of bools to bitflag enum
...
little more sane & clear
2020-12-21 21:24:16 -08:00
Kurt
cd76e49388
Strengthen know move check
2020-12-21 19:50:56 -08:00
Kurt
351637900f
Downgrade swsh move memory verification severity
...
Some special encounters don't set the Relearn Moves, so we can't really check the memory-moves unless we somehow late-reject a matching encounter. Not really worth the effort to try and verify cosmetic mismatches; just tag them as Fishy.
2020-12-21 19:20:11 -08:00
Kurt
d225f3391a
Split up DataUtil to separate files
...
ya i know there's already a localizeutil class, whatever
2020-12-21 19:13:18 -08:00
Kurt
594db92ad0
Minor clean
...
Handle some stragglers
2020-12-21 17:48:08 -08:00
Kurt
98be0f6739
Target type'd new
2020-12-21 17:17:56 -08:00
Kurt
0303eada32
this is not that
...
clearer than before, yay
2020-12-21 17:12:39 -08:00
Kurt
1854d172bd
Add missing property set
...
lol oops
2020-12-21 17:12:21 -08:00
Kurt
68ee8cfcc4
Change setters to init only
2020-12-21 17:05:05 -08:00
Kurt
c6b702ae54
Create cosplay pikachu rather than clone
2020-12-21 17:04:37 -08:00
Kurt
133b8e6ba0
Rework Pokewalker/Dream Radar static encounters to own class
2020-12-21 17:04:09 -08:00
Kurt
5729718d68
Simplify ternary byte casts
...
No longer needed to explicitly cast, thanks c#9 !
2020-12-21 16:53:28 -08:00
Kurt
6d030831ab
Bump PKHeX.Core to C#9 language version
...
Add FrameworkUtil.cs which is compiled if the build isn't net5+, needed to support init setters & records
2020-12-21 16:52:11 -08:00
Kurt
b71df7b064
Allow shared moves from daycare as "can know move"
...
See b58f3bbc22
2020-12-21 16:49:42 -08:00
Kurt
8a0e7d90e0
Move Shiny override set to constructor
2020-12-21 14:40:34 -08:00
Kurt
b58f3bbc22
Add memory checks for GO->HOME transfers
...
Also add checks for the new memory types introduced in swsh
2020-12-21 14:22:24 -08:00
Kurt
62018cce1a
Unify concepts with different names
...
AltForm & Form & Forme => Form
GenNumber & Generation => Generation
Extract out SpeciesForm interface, and re-add IGeneration
For those using PKHeX as a dependency, this should be a pretty straightforward manual replacement... GenNumber and AltForm should be quick find-replace`s.
2020-12-10 20:42:30 -08:00
Kurt
7c4c1e0913
Minor prep clean
2020-12-10 19:49:53 -08:00
Kurt
ebc1cec3da
Extract breeding info to separate class
...
Remove splitbreed check in encounteregg2 generator; gen is always 2, never >=3, so the splitbreed check is never executed
2020-12-07 20:54:55 -08:00
Kurt
a13c2c852c
Add some comments, clean a little
2020-12-07 20:14:12 -08:00
Kurt
98ef0299b6
Add xmldoc for save meta/state tracking
...
Move some logic around to the more appropriate spot
2020-12-07 19:49:04 -08:00
Kurt
6f7602f2ad
Change signatures to use readonly if possible
...
Extract get/set team methods for battle video
2020-12-05 06:09:33 -08:00
Kurt
e72c80613e
Extract metadata/state tracking from SaveFile obj
2020-12-05 05:36:23 -08:00
Kurt
44473d1593
Add CHS armor trade OT name
...
Closes #3100 ty @FeralFalcon !
2020-12-03 12:50:07 -08:00
Kurt
9cd6d34f1d
Disregard ability bit checks if was shadow
...
only really pertains to xk3/ck3 and this doesn't really impact legality once transferred
2020-12-02 21:40:35 -08:00
Kurt
3d87070cc8
Require strict match for hidden ability encounters
...
Metagross collision with wild beldum
deferral API is kinda crude, hence these janky workarounds. Was originally intended to hold onto close matches when there's no more possible matches to check.
I think a priority-deferral while only retaining a single encounter bad (instead of a list of retries) may work better than the current setup, but that would require more abstraction
2020-12-02 21:39:45 -08:00
Kurt
d5bd36143e
Add language check for jp-blue gameversion, non-crystal female
...
Closes #3099
Ty @CarlosofKalos !
2020-12-01 16:55:10 -08:00
Kurt
e54e94a734
Don't waste alloc on clearing titlescreen slot
...
Revisiting #3098 #3086
2020-12-01 07:19:21 -08:00
CanoeHope
228042b111
Properly set empty slots to Trainer Card ( #3098 )
...
#3086
Was only partially addressed -- it was only done for Title Screen and not League Card too.
2020-11-30 21:38:15 -08:00
Kurt
c77461808d
Update Encounters8NestDist.cs
2020-11-30 21:38:03 -08:00
Kurt
5e32e64ac8
Handle MANôA and FALCçN SPA->FRE Gen2 Trades
...
Transporter remaps certain locale specific chars depending on the source ROM's version.
Since VC can trade between languages, there are 2 Spanish in-game trades that have glyphs subject to remapping, if it's transferred from a French game.
If the spanish trade is transferred from a french game, it must match the mutated string.
ty @Lusamine & helpers :D
2020-11-29 18:17:15 -08:00
Kurt
4f7e34dd47
Simplify slot init to reduce re-allocation
...
Slap in friend safari at the end during object construction; saves about 1KB of allocation on startup (lol)
Change internal array types to match object types, similar to other encounter-generation definitions.
2020-11-29 15:05:53 -08:00
Kurt
5bc5b611cb
Make RefreshAbility virtual, add overrides for gen3&5
...
Gen5: set HA bit if hidden ability
Gen3: prevent setting AbilityBit if it doesn't have 2 distinct abilities
Failed test now passes; all tests are passing!
2020-11-29 15:02:57 -08:00
Kurt
fefc38bacb
Minor debug optimizations
...
Trees:
- Only retain the objects needed after calculation
- Reduce size of TreeCoordinates and remove allocation penalty (now a struct)
No more warnings for Release compilation :D
2020-11-28 14:55:09 -08:00
Kurt
8778d8c6b7
Update 20.11.28
2020-11-27 21:40:36 -08:00
Kurt
3d6bb0ec00
Ignore bad evolution slots
2020-11-27 21:04:06 -08:00
Kurt
016ebb86ad
Update AbilityVerifier.cs
2020-11-27 20:44:44 -08:00
Kurt
8eb582c997
Move species/move names to parsesettings
2020-11-27 18:45:06 -08:00
Kurt
67b7d44ced
Fix accented-a/i for spanish in-game trade
...
I think this was a PKHeX issue that went unnoticed; originally, we didn't include the Á and Í chars in the dictionary.
I checked the transporter code:
The app maintains the international & japanese character tables, and depending on the ROM language, it may change a char to the language-specific entry. Refer to Bulbapedia's notes on the char tables for different languages:
https://bulbapedia.bulbagarden.net/wiki/Character_encoding_in_Generation_II
However, none of these char-changes are able to be reached with a legal char.
Á and Í (only accessible from the Spanish in-game trades) and the german 0xC0 && z <= 0xC6 chars are already in the international table. Every single difference in the VC1/VC2 table is an un-enterable char.
tl;dr -- all possible char codes are transferred fine with the VC2 table without extra language logic. We just keep out any inaccessible char (replaced with space).
2020-11-27 16:49:06 -08:00
Kurt
e9075436b7
Split off g7 transporter string handling
...
Add katakana / hiragana sensitive transferring
var check = CheckKata("ぐリお") == "ぐりお";
check should be true, dugtrio case !
2020-11-27 15:37:55 -08:00
Kurt
110d25d50e
Add placeholder duplicate relearn move check
2020-11-27 13:05:36 -08:00
Kurt
26d6143325
Indicate static encounters disallowed from marks
...
Includes gifts by default
2020-11-27 12:48:47 -08:00
Kurt
3680048c0a
Add local pickle loading if compiled as debug
...
Same dangers about "what is the root path"
Bump the level cap while we're here.
2020-11-27 12:14:13 -08:00
Kurt
c2867f7899
Move EvoBase to Evolutions folder
2020-11-27 12:06:52 -08:00
Kurt
6ebeb73293
Rename split legality class files
2020-11-27 12:01:30 -08:00
Kurt
fa36b70b29
Split Analysis into two separate classes
...
Will rename in next commit
2020-11-27 12:00:49 -08:00
Kurt
9b178fefe2
Xmldoc, minor tweaks
...
Move form-info logic from FormConverter to AltFormInfo; now FormConverter is entirely form=>string[]
Add a bunch of xmldoc
Make pogo no-end-date cmp agaisnt UTCnow rather than local now.
2020-11-27 11:51:02 -08:00
sora10pls
a437cbb9ca
Update FormConverter.cs
...
Display 0-9999 for Galarian Yamask formarg values.
2020-11-26 18:41:45 -05:00
Kurt
771086a222
Show all valid yamask-1 formarg values
...
from 319 (max HP-1) to 9999 (max saved value).
Causes a little bit of GUI lag when loading 10k items to the combobox; could be a number entry but meh. Lazily allocate the 10k strings; wait until it's requested.
2020-11-24 12:40:56 -08:00