Kurt
03ae3d470c
Simplify value passing
...
buffers are fixed size matching the StringLength anyways; don't bother with confusing max length passing when the buffer is obvious
2021-01-16 13:56:37 -08:00
Kurt
de418e8db2
Simplify string termination handling
...
If 0x50,00.. terminated, treat differently than 0x50.. terminated buffer
2021-01-16 12:43:17 -08:00
Kurt
cc43550357
Simplify more expressions
2021-01-04 17:31:43 -08:00
Kurt
4a52b349ff
Minor clean
2021-01-02 19:11:34 -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
813180453e
Delete duplicate HT bit fetch method
...
Make expression methods
2021-01-01 16:39:33 -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
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