Commit graph

236 commits

Author SHA1 Message Date
Kurt
2b7e06e217 Refactoring
Extract some logic, suppress some compiler messages
2020-09-18 22:11:13 -07:00
Kurt
5d3bc289b6 seal hunting
Mark things as sealed as they shouldn't be inherited from or overriden in a derived class.
2020-09-07 13:51:13 -07:00
Kurt
0111c3dd6f Set Max EVs for ShowdownSet`s imported onto GBPKM with unspecified EVs
https://github.com/architdate/PKHeX-Plugins/issues/48
2020-09-07 10:56:25 -07:00
Kurt
9191f023a3 Minor clean
Nullability annotations and some logic simplification
2020-09-06 11:24:54 -07:00
Kurt
cf9e5ec37f Minor refactoring
Change Ability array to IReadOnlyList, add method to check ability index in personal data
Suppress some message warnings
Change EvolutionChain short-circuit for VC to jump from gen6 directly down to gen2. There aren't any notradeback 1 situations, so a notradeback1 will always start with g=1, so no need for the other if-continue.

Simplify pk5 conversion
2020-09-06 10:53:13 -07:00
Brian Fischer
c4e9bbcc45
Changes to suggested hyper training logic (#2968)
- Changed suggested hyper training logic to not hyper train over some possibly intentional unusual speed IVs
- Showdown import will not do any hyper training on pokemon encountered in gen 8, because with Hidden Power removed from the game in gen 8, all specified IVs in the showdown format are guaranteed to be deliberate for stat purposes.
2020-08-14 21:49:01 -07:00
Kurt
32f2703339 Fix entire-box swaps by using correct lengths
Add SIZE_BOXSLOT and update usages
Make SIZE_STORED protected like SIZE_PARTY

probably need to redesign how slot metadata is presented within the savefile...
Closes #2961 ty @Kermalis !
2020-08-07 16:16:10 -07:00
Kurt
85d1b0e7ad Split gen6/7 affection stats to interface
not in future formats, doesn't belong
2020-08-02 11:06:30 -07:00
Kurt
e84ce77008 Split memories from main pkm class to interface
pk6/7/8, not pb7
2020-07-31 17:25:14 -07:00
Kurt
b7211000b0 Split Country/Region/ConsoleRegion from ITrainerInfo
Only present in mainline gen6/7 game pairs, so it's not wise to have it for all games
2020-07-31 13:53:42 -07:00
Kurt
27f15d2f20 Split Country/Region/ConsoleRegion to interface 2020-07-31 11:17:31 -07:00
Archit Date
fa3bdfe5f6
update showdownset parsing for new gmax impl (#2957)
Gigantamax: Yes is now in a new line instead of -Gmax. Have maintained legacy support since showdown is supporting legacy as well. Set the export to the newer format.
2020-07-30 20:16:57 -07:00
Kurt
7bd36ca0c8 Minor clean
Fix xmldoc, revert ??= because whatever nullable logic plugin I have isn't detecting this right
2020-07-26 08:54:52 -07:00
Kurt
705822c965 Abstract some gen1/2 encounter types from their parent class 2020-07-18 15:36:30 -05:00
Kurt
69a0c61406 Heal PP on apply suggested moves
Closes #2919
Sure ya coulda set suggested PP as well as a command, but we'll do it for the user automatically. Not really an upside to keep the old PP values.
2020-07-03 01:17:05 -05:00
Kurt
993673f0de Minor clean
no functional change
2020-06-27 23:36:53 -05:00
Kurt
c565c7ca2c Extract move suggest logic, add battleversion clamp
Closes #2911
2020-06-27 13:06:28 -05:00
Kurt
36dd5ece21 Initial Isle of Armor support
Co-Authored-By: sciresm <sciresm@users.noreply.github.com>
Co-Authored-By: Matt <sora10pls@users.noreply.github.com>
Co-Authored-By: Archit Date <architdate@gmail.com>
2020-06-19 18:51:15 -05:00
Kurt
2cdb5d26db Clean up some method signatures
rename things to be a little more consistent in naming conventions
2020-06-16 21:46:22 -05:00
Kurt
bfef634a1a Set shiny type regardless of format
Don't loop if not required to loop
2020-06-12 11:45:56 -07:00
Kurt
c3215083c2 Update ShowdownSet.cs 2020-06-05 09:55:00 -07:00
Kurt
4f40330af9 Add Dynamax Level = 10 to showdownset if legal
Closes #2835 ; zacian/zamazenta/eternatus can't have a DynamaxLevel other than 0.

Co-Authored-By: Mikewando <mikewando@users.noreply.github.com>
2020-05-16 15:15:41 -07:00
Kurt
8a54e8c7b9 psim behavior update: Preserve "Antique" on tea export
https://github.com/smogon/pokemon-showdown/pull/6429
2020-04-17 11:41:34 -07:00
Kurt
1192ff7307 Case insensitive shiny/suggest
closes #2809 , nothing wrong with existing behavior, just allowing the "suggest" and "shiny" to be any.
2020-04-15 16:23:20 -07:00
Kurt
49bdfa7f9d Add date copy $suggest 2020-04-13 09:23:31 -07:00
Kurt
76e1f70b9e Update ShowdownSet.cs 2020-04-12 20:31:44 -07:00
Kurt
33bdacebe8 Minor tweaks
Handle some compiler/extension suggestions
2020-04-12 16:07:59 -07:00
Kurt
30d21e4532 Extract out showdown set interface 2020-04-12 13:05:29 -07:00
Kurt
270d984130 Minor clean
Remove unnecessary null checks
Mark some methods with nullable type
2020-04-04 19:30:50 -07:00
Kurt
5e32e9203e Add setting to apply nature to statnature on import
Co-Authored-By: toim22 <toim22@users.noreply.github.com>

#2794
2020-03-19 13:47:25 -07:00
Kurt
d21cca7a90 Move gmax strip to top 2020-03-14 12:21:42 -07:00
Kurt
0a39e0a834 Handle gmax tox with latest showdown logic 2020-03-13 17:43:21 -07:00
Kurt
4c226340fe Add shiny sprites, alcremie sprites & big sprites for all
Keeping the 30x40 for now; might change my mind later.
Kept the gmax sprites but they're unused.
2020-03-03 20:22:57 -08:00
Kurt
7919beaddc Filter out duplicate moves 2020-03-03 18:23:00 -08:00
Kurt
5240e67a14 Revert "Loop shiny force regardless of format"
This reverts commit cc8e5d9c32.
2020-02-21 15:02:16 -08:00
Kurt
66efbaf407 Add box manip for heal all slots 2020-02-17 19:28:20 -08:00
Kurt
cc8e5d9c32 Loop shiny force regardless of format
https://github.com/kwsch/PKHeX/issues/2717#issuecomment-586741748
2020-02-16 11:46:06 -08:00
Kurt
48bc4ec8fa Don't yield twice
oops lol
2020-02-07 21:34:05 -08:00
Kurt
6d24905a7d Update hypertrained IVs on export
Don't indicate flawed IVs; just pre-compute the hidden power type.
Remove unnecessary language logic (not needed due to prior commit)

Optimize string concat to a single interpolation, because it's totally a performance improvement!!!1
2020-02-07 17:50:42 -08:00
Kurt
9ffac4382a Replace gender symbols for nidoran with -M/F 2020-02-07 17:42:28 -08:00
Kurt
1cd23e6587 Don't include language name as nickname on set export 2020-02-07 17:42:16 -08:00
Kurt
dd07126d83 Relocate level suggestions to EncounterSuggestion 2020-01-28 16:21:38 -08:00
Kurt
c301ce88ab Update Random to be a bit more thread safe
Random isn't thread safe; users of PKHeX.Core.dll might run multithreaded operations (see PKSM + ALM), so we need to have a thread-specific RNG available.

Thread Local get; to improve performance, save the random object locally whenever it is used more than once in the method.

https://docs.microsoft.com/en-us/dotnet/api/system.threading.threadlocal-1?redirectedfrom=MSDN&view=netframework-4.8
https://stackoverflow.com/questions/18333885/threadstatic-v-s-threadlocalt-is-generic-better-than-attribute/18337158#18337158
2020-01-25 21:49:52 -08:00
Kurt
b5d48bc14f Split up portions of CommonEdits
Cuts out about half the size; there's still a bunch of apply-value logic but it's not really big enough for a separate class.

Rename BallRandomizer->BallApplicator
2020-01-25 16:47:44 -08:00
Kurt
88dcb59798 Extract language initialization to core
Call this method whenever you boot a separate app that needs legality strings to be ready.
2020-01-25 16:27:16 -08:00
Kurt
5be9c6bcc8 Remove unnecessary null handling
objects are no longer null
2020-01-20 23:32:05 -08:00
Archit Date
117bb35621 handle smogon sets with multiple moves (#2647)
sometimes competitive sets have multiple moves in one slot as optional coverage moves. Handle these cases by splitting and trimming over '/'.  Example: https://pastebin.com/raw/jvPziRdC (The dusk mane set)
2020-01-19 22:30:09 -08:00
Kurt
843330a375 Remove unnecessary null checks
this is a null free project /s
dont provide null, else u deserve to get an exception
2020-01-18 16:57:25 -08:00
Kurt
8312c52cc1 Make Move[] readonly list
contract: don't modify the template movesets
mystery gift now exposes IRelearn, remove unnecessary type checks
2020-01-18 16:46:38 -08:00
Kurt
0cd9c47953 Make Relearn array for encounters readonly
No change em
2020-01-18 16:31:24 -08:00