Commit graph

168 commits

Author SHA1 Message Date
Kurt
3b5c7062ac Minor perf improvement
pass in, don't constantly fetch
helps generated IL code be slightly more efficient
2020-01-12 16:49:12 -08:00
Kurt
a8c28369b6 Add Yamask-1 max hp calc for formArg compare
Closes #2632 ty @CanoeHope
2020-01-12 16:22:56 -08:00
Kurt
d3f6d5935f Add form argument legality checks
Closes #2611 (Alcremie)
Closes #2604 (Runerigus)
2020-01-10 16:33:40 -08:00
Kurt
fdd321dd8c Make memory 6 fishy if textvar present
Closes #2621
2020-01-10 16:08:34 -08:00
Kurt
51d2fc9d93 Update with slowpoke-1/new raid data
TransferVerifier: Revise transfer check to allow slowpoke-1 (slowpoke-0 is flagged via next check)
2020-01-09 18:44:45 -08:00
Kurt
3d581283c2 Minor clean
move Text.cs manual Courier new() to the designer, have it dispose when form is disposed. Set it as the numericupdown's font and just reuse that :)
2020-01-05 18:46:30 -08:00
Kurt
5cb3556eee Add Move PP verification
Eggs already had it, adding now for regular pkm
Closes #2602
2019-12-26 14:28:01 -08:00
Kurt
6c7065fb7b Fix bool compare
oops
https://github.com/kwsch/PKHeX/issues/2600#issuecomment-569134146
ty @slp32 !
2019-12-26 13:12:10 -08:00
Kurt
420307d4bf Make non-exportable saves (fake) act as VC saves
https://github.com/kwsch/PKHeX/issues/2600#issuecomment-569125853
2019-12-26 12:21:35 -08:00
Kurt
7edfe4543f Flag eggs with HT string
Closes #2586
Modify PKM Info already clears it, but if disabled, will be flagged.
2019-12-21 16:01:51 -08:00
Kurt
8309060298 Add more egg verification for statnature/techrecord 2019-12-21 14:51:52 -08:00
Kurt
d7bc68d7a5 Add HT case for capture memory check
#2570
https://github.com/kwsch/PKHeX/issues/2570#issuecomment-568149050
2019-12-20 19:47:40 -08:00
Kurt
506e64186a Rearrange & re-do "CanHaveMemory" value check
Closes #2581
2019-12-11 19:37:57 -08:00
Kurt
281c1ae744 Skip SWSH untraded link trade eggs if trade-memory
just read the comments & code, this one is an annoying oversight
untraded pkm /should/ never have HT memory data, but sometimes it do be
like that

Closes #2571
2019-12-09 16:23:29 -08:00
Kurt
aa2241ba66 Fix unchangeable OT friendship to compare correctly
Closes #2572 ty @sora10pls for confirming that evo chains are necessary
for VC transfer
2019-12-09 15:50:03 -08:00
Kurt
8acb336d51 Use enum for species comparisons
slightly easier to read with named values
2019-12-08 17:39:19 -08:00
Kurt
c6ef2a845d Fix ribbon compare
oops
2019-12-07 23:39:32 -08:00
Kurt
4611146807 Update memory verifier
Adds handling for SW/SH quirks
Closes #2545
2019-12-07 23:36:39 -08:00
Kurt
19b1564eb2 Split history and memory verifiers
Rewrite a bunch of the history verification stuff
Fix a few test cases with incorrect OT Friendship (transferred), and
missing GeoCountry

Need to rewrite memory verification next
(All test cases currently pass)
#2545
2019-12-07 18:12:31 -08:00
Kurt
34452c2818 Add gen8 ribbon verification 2019-12-07 11:58:56 -08:00
Kurt
2b1aee7c38 Gen8: Update rules for having BestFriends ribbon
Closes #2562
ty @iiippppk
2019-12-06 20:22:23 -08:00
Kurt
786d9c8f18 Handle shedinja encounter balls
nincada -> spawn shedinja = pokeball (wild encounter rules if gen3)
shedinja encounter = wild encounter rules
2019-12-05 16:40:14 -08:00
Kurt
d3f7e7bf07 Minor simplifications
format >= 6 is always true (early return in entry)
don't double-flag/check memory presence in OTs from gen5 and below (hist
and OT verifier)

rename method; I'll probably rework the flow of things for gen6
verification and gen8 verification since the rules are slightly
different
2019-12-02 16:36:53 -08:00
Kurt
2ee6fbb7e9 Only flag bred stuff for no-breed
Closes #2542
2019-11-29 18:54:07 -08:00
Matt
bc9be36123 Add more Gen 8 static encounter locations (#2540)
Also add West Sea Shellos/Gastrodon to transfer form banlist
2019-11-29 10:03:35 -08:00
Matt
faf936bceb Update Gen 8 transfer banlist (#2536)
Alolan Forms can't be obtained yet, same with Hoenn Zigzagoon/Linoone and Unova Stunfisk.
2019-11-28 18:42:22 -08:00
Kurt
2c0b85ef21 Add form banlist for g8
Weezing-0 has no de-evolution path (nothing evolves to it)
Just ban these forms existence in SW/SH
2019-11-28 12:09:55 -08:00
Kurt
f0cf28fbad Flag bred transfer mons
#2416
2019-11-28 11:51:23 -08:00
Kurt
f5307c142b Use format sensitive move knowable check
Closes #2534
2019-11-27 23:07:41 -08:00
Kurt
907f036956 Disregard OT memory values on gen7 origin 2019-11-27 16:01:12 -08:00
Kurt
08e293dadc Add SimpleTrainerInfo constructor
zeroes out console region data if not present in game
2019-11-26 16:55:28 -08:00
Kurt
15ef6555a8 Add WC8 memory & fix fallthrough
ty @sora10pls
2019-11-26 11:22:01 -08:00
Kurt
ef425af835 Add memory / console region checks for pb7/pk8
yeah your initial hacks were hacks

It appears there's a bug (in the game) for link trade memories --
applied to the OT memory instead of HT memory?? Fun!
2019-11-26 11:01:09 -08:00
Kurt
f30a14ebf0 Disallow dynamax level on story legends
ty @sora10pls
2019-11-20 18:15:21 -08:00
Kurt
a368b81519 Minor clean 2019-11-18 22:48:03 -08:00
Kurt
2b76fe148d Fix property reference for Darmanitan-G
lul
Closes #2453
2019-11-18 19:29:05 -08:00
Kurt
f20f6cd4bb Only check east asian script chars on gen7&below
Closes #2437 thanks @iiippppk !
2019-11-16 17:47:26 -08:00
Kurt
31c09c52e8 Add initial nieve check for ball inheritance
Closes #2438
2019-11-16 17:45:51 -08:00
Kurt
451694da28 Flag past gen transfers
not valid yet
2019-11-15 19:37:04 -08:00
Kurt
cefb56a749 Sword/Shield Update 2019-11-15 17:52:08 -08:00
Kurt
e3efa65160 Cleanup
handle messages for dirty cleaning :)
2019-10-26 12:33:58 -07:00
Kurt
02420d3e93
PKHeX.Core Nullable cleanup (#2401)
* Handle some nullable cases

Refactor MysteryGift into a second abstract class (backed by a byte array, or fake data)
Make some classes have explicit constructors instead of { } initialization

* Handle bits more obviously without null

* Make SaveFile.BAK explicitly readonly again

* merge constructor methods to have readonly fields

* Inline some properties

* More nullable handling

* Rearrange box actions

define straightforward classes to not have any null properties

* Make extrabyte reference array immutable

* Move tooltip creation to designer

* Rearrange some logic to reduce nesting

* Cache generated fonts
* Split mystery gift album purpose
* Handle more tooltips
* Disallow null setters
* Don't capture RNG object, only type enum

* Unify learnset objects
Now have readonly properties which are never null
don't new() empty learnsets (>800 Learnset objects no longer created,
total of 2400 objects since we also new() a move & level array)
optimize g1/2 reader for early abort case

* Access rewrite
Initialize blocks in a separate object, and get via that object
removes a couple hundred "might be null" warnings since blocks are now readonly getters
some block references have been relocated, but interfaces should expose all that's needed
put HoF6 controls in a groupbox, and disable

* Readonly personal data
* IVs non nullable for mystery gift
* Explicitly initialize forced encounter moves
* Make shadow objects readonly & non-null
Put murkrow fix in binary data resource, instead of on startup
* Assign dex form fetch on constructor
Fixes legality parsing edge cases
also handle cxd parse for valid; exit before exception is thrown in FrameGenerator

* Remove unnecessary null checks
* Keep empty value until init
SetPouch sets the value to an actual one during load, but whatever

* Readonly team lock data
* Readonly locks
Put locked encounters at bottom (favor unlocked)

* Mail readonly data / offset
Rearrange some call flow and pass defaults
Add fake classes for SaveDataEditor mocking
Always party size, no need to check twice in stat editor
use a fake save file as initial data for savedata editor, and for
gamedata (wow i found a usage)
constrain eventwork editor to struct variable types (uint, int, etc),
thus preventing null assignment errors
2019-10-16 18:47:31 -07:00
Kurt
4baf745af8 Use some c#8 sugar
static local functions
switch expressions
using usings :)

nullable next?
2019-10-07 18:40:09 -07:00
Kurt
87f43a47d8 Bump lang version to 8
some lang upgrades
2019-10-04 20:10:50 -07:00
Kurt
7013d4f0c8 add 7->8 transfer legality check
currently flags anything transferred as illegal, which is the right
thing to do until home is released.
2019-09-24 23:28:05 -07:00
Kurt
ab0b8979e9
Add swsh content placeholders (#2392)
placeholder content until real data is dumped
2019-09-23 16:56:47 -07:00
Kurt
8912f76726 Clean up super training medal checks
Futureproof with transfer considerations
This is just a guess; gen7 didn't update the medal count and if we
assume pk8 overhauls the structure for a new console, they'll drop old
data.

With c#8 later next week, will move SuperTrainingMedalCount() to a
default interface method ez.
2019-09-20 20:55:36 -07:00
Kurt
b41f2a3062 Extract logic from PKX
Extract Species Name logic to SpeciesName
Extract Language logic to Language
Remove FormConverter wrapper for string[] fetch
Rearrange some logic to more appropriate locations, update access
modifiers / types
Move some pkm array methods to arrayutil, make generic

PKX.GetVCLanguage was a dupe of _K12.GuessedLanguage() so just expose
the method

PKX is now back to pkm data manip only
2019-09-18 19:58:23 -07:00
Kurt
62d08d7c30 Misc clean
split some methods with optional parameters=null
add more xmldoc
replace some magic numbers -> enum/const references
consolidate common array operations (span soon maybe?)
2019-09-10 00:21:51 -07:00
Kurt
d153224af1 Add traded egg allowance for nickname
store bool for reuse, not any slower :)
Closes #2320
2019-07-11 22:55:41 -07:00