Kurt
24332b6979
Minor tweaks
2020-12-30 13:08:15 -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
ee5349ff98
moar is or
2020-12-25 12:30:26 -08:00
Kurt
43dd390f21
Split IContestStats, mark trades as records
2020-12-24 00:06:40 -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
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
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
7a01b1249c
Minor clean
...
Handle more messages, add more xmldoc
2020-10-18 09:43:41 -07:00
Kurt
ea81bb2c1e
Add swsh items based on DLC1 metadata
2020-10-10 14:14:02 -07:00
Kurt
7132750c9b
Placeholder crown tundra logic
...
To be updated:
- Tables8: magic numbers for maximums
- IGigantamax: any new gigantamax forms?
- FormConverter: any new forms? (calyrex)
2020-10-10 13:14:32 -07:00
Kurt
61dc9a45ae
Revise Shadow state detection
...
Closes #3012
2020-10-06 22:36:27 -07:00
Kurt
d13b893351
Use PKHeX as blanksav language
...
Closes #3009
Make QRPK7 implement IEncounterable and remove hardcoded PKHeX strings
Let force hatching for WC3 eggs try to hatch from the savefile's language, then revert to english if failed to set an OT.
2020-10-04 08:59:33 -07:00
Kurt
a17bc52982
Fix nick/ot set for pk1/2
...
Reverts the logic back to pre-Stadium2 support
2020-10-03 10:01:22 -07:00
Kurt
52a67f2425
Add Stadium2 Support
...
Introducing a new PKM format: SK2
Split ICaughtData2 off of PK2 so it can be shared with SK2 when type-checks occur
Add conversion for PK2<->SK2
Split the split-buffer handling for GBPKM to GBPKML (what a name), so that I can reuse shared accessor logic for SK2.
2020-10-02 18:08:40 -07:00
Kurt
a34434f7cb
Make pkm.Data a readonly field rather than property
2020-09-26 12:09:02 -07:00
Kurt
f10f1fef65
Add metadata for possible version range
...
Closes #2995
2020-09-25 17:15:02 -07:00
Kurt
136ef0f6ae
Add shiny state check
2020-09-24 19:26:21 -07:00
Kurt
7a1c438b74
Minor tweaks
...
add method to randomize AVs from interface extension method
revise stat presence check to check ATK since HP is stored in gen1 format
2020-09-17 18:13:08 -07:00
soopercool101
1a1cfbda4a
Fix Hidden Power Power calculations (and add to UI) ( #2989 )
...
* Fix broken hidden power power calculation
* Fix broken Gen 2 Hidden Power calculation
* Add parentheses
* WIP UI
* Finalize UI, only show on gens 1-5
* Inline some logic to reduce allocations
* Add unit tests for both hidden power calculation cases
Co-authored-by: Kurt <kaphotics@gmail.com>
2020-09-14 20:06:11 -07:00
Kurt
01fb233e48
Minor tweaks
...
Extract some interfaces
Suppress some warning messages with commented reasons if appropriate
2020-09-09 12:47:24 -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
0b8989e4ce
Make EV_SPC a shared property for GBPKM derived classes
...
seal up some properties that aren't overriden in the derived classes; could do more but meh
2020-09-07 10:55:15 -07:00
Kurt
c2ec4d55e4
Minor clean
...
Add some xmldoc, remove some empty lines, move some small logic pieces to a better spot
2020-09-03 14:28:51 -07:00
Kurt
c146e9402f
Reduce visibility of internal legality enum
2020-08-30 15:48:34 -07:00
Kurt
a09bac5976
Prevent gmax cap pika
...
silly stuff indeed
there aren't any other formed-only-mons in the gmax list
2020-08-29 15:09:37 -07:00
Kurt
1ee459a46c
Use language for checking IsNicknamed flag
2020-08-29 10:40:41 -07:00
Kurt
adb55c9e7b
Make CanToggleGigantamax have a form argument
...
no more meowth-1/2 and or perrserker
Closes #2973
2020-08-16 23:06:49 -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
00443dcae4
Minor clean
...
add xmldoc
remove unnecessary array resizes (see 9f20aa2f4f
)
show more extrabytes for gen8; remove unused byte accessor functions
2020-08-02 15:51:22 -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
Kurt
12b8060ec1
Use byte instead of int
2020-07-21 23:43:34 -05:00
Kurt
4cb283981b
Remove linq from list init, manually allocate
...
Add some docs cuz gen1 structures are always spooky
gen1 not being exactly same as gen2, and jp != int => 4 different sizes of spookiness
2020-07-21 20:56:41 -05:00
Kurt
ea609d43a5
Move soup to gmax class (extension methods), fix home gmax starters
...
Directly accessing CanEatMaxSoup is now forbidden :)
Fixes home galar starters being flagged when gmax-final evos
2020-07-16 21:04:27 -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
1ae9cb7602
Handle pika/meow soup evolutions
...
Can lose gmax flag if its current species is able to eat soup, or its origin species could eat soup
this handles stuff like charmander->charizard, as charmeleon would not pass
hopefully there's never a mid-stage evo that has a gmax form, and its final evo doesn't... (don't get any ideas, gamefreak)
2020-06-24 18:59:26 -05:00
Kurt
6fb2ebe039
Minor clean
...
add some xmldoc
2020-06-21 19:46:06 -05:00
Kurt
645db23706
Extract EvoBase and MoveList from Core
...
These are really old bloated parts of the original legality checking logic; separating for now to rewrite.
2020-06-20 19:44:05 -05:00
ReignOfComputer
41aff36d50
Unblock IoA Mons Auto Dynamax ( #2879 )
...
Probably easier to blacklist this way?
2020-06-20 07:52:54 -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
afa368823e
Minor clean
...
handle some compiler messages
2020-05-26 16:59:47 -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
3100471299
Strip out some unnecessary logic
...
notnull => no need to check for null manually
2020-04-16 12:58:48 -07:00
Kurt
6346444db7
Extract home tracker to interface
2020-02-12 18:52:48 -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
467045e95c
Swap rand call order, rename as overload
2020-01-22 19:04:20 -08:00