Kurt
1bd3ec79cf
Misc tweaks for suggesting moves when IsEgg
...
Closes #3032
Don't suggest tutor moves for current moves if it is an egg
2020-10-14 18:55:30 -07:00
Kurt
945ef24142
Add SK2 to batch editor supported types
...
Could do it via reflection but ehh
2020-10-09 14:44:12 -07:00
Kurt
706618d331
Force Hidden Power IVs for format2 imports
...
Closes #3019
2020-10-09 09:52:29 -07:00
Kurt
bca8a80b39
Minor clean
2020-10-03 17:09:22 -07:00
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
Kurt
8315f740cb
Merge branch 'master' of https://github.com/kwsch/PKHeX
2020-01-16 18:54:11 -08:00
Kurt
857124acf0
Swap zen galar -> galar zen
...
ty showdown for changing your convention over a month ago
a01e2a26bc (diff-58e367765263b7e21df251b3e7619b70L9307)
2020-01-16 18:54:09 -08:00
Archit Date
22ed59d6a3
sanity check necrozma forms ( #2638 )
...
smogon allows Dusk Mane as well as Dusk-Mane as their form argument
2020-01-15 20:48:53 -08:00
Kurt
5a20dc707d
Rewrite encounter suggestions
...
Don't clone legality templates, and keep suggested information minimal -- this isn't automod
2020-01-12 19:40:36 -08:00
Kurt
eaeebea923
Remove another method shortcut
...
EncounterSuggestion needs a facelift anyway
2020-01-12 17:00:03 -08:00
Kurt
7cbf8d0fcf
Set gen3 count ribbons appropriately
...
ty anubis
2020-01-11 15:51:25 -08:00
Kurt
0dd4d1fe7a
Remove unnecessary casts
2020-01-06 17:50:18 -08:00
Kurt
ecabbfff53
Add individual Move#_PP $suggest
...
#2603
add in "secret" heal/healPP actions -- do ".Heal=$suggest" to refresh
all stats like it was healed at the pokecenter. I can't think of a good
way to handle invoking of methods (">", but what about parameters?)
2020-01-03 20:21:02 -08:00
Kurt
350895aba6
Use permissive string search, add indeedee-M case
...
Manually modified showdown sets can contain errors (capitalization,
etc). Use the string search api to permit weaker matches, since there's
not going to be any exact-matches-with-different-caps/spaces.
2020-01-02 15:49:35 -08:00
Kurt
166f8d82e5
Misc clean
...
Refactor out some logic, make "en" literals reference one spot (where
appropriate)
2020-01-01 19:07:21 -08:00
Kurt
be50abcc44
Add SubEventLog block object, etc
...
Adds gym team records, remove from savefile properties
update block list documentation
2019-12-28 21:53:58 -08:00
Kurt
b255937e86
Revise input parameter names
...
pk instead of pkm (consistency)
Lowercase anything that started with uppercase (not static state)
2019-12-26 18:47:31 -08:00
Kurt
8e1fe5e305
Don't apply template fake console data if invalid
...
pkmeditor only for blank data load
2019-12-08 20:09:45 -08:00
Kurt
f54bc7bf6f
Batch editor updates
...
.PID=$shiny0 will do squares
anything else will do stars
.RelearnMoves=$suggestAll will give ALL TR moves, not just the ones for
its current movepool.
.Ribbons=$suggest will give all valid ribbons
.Ribbons=$suggestNone will remove all ribbons (except required ones like
event ribbons)
Closes #2568
2019-12-08 17:52:17 -08:00
Kurt
414cb2d39e
don't apply rib-markings on all
...
legality concerns
2019-12-03 23:41:24 -08:00
Kurt
d70a234552
Add $suggest for PKM.Ball
...
sets a legal ball, with preference for color matching
2019-12-03 20:14:36 -08:00
Kurt
a0f2aded02
Use more optimized index find
2019-12-03 18:24:28 -08:00
Archit Date
3526c37f1e
update forme to showdown strings ( #2558 )
...
* update forme to showdown strings
Galarian is represented as Galar on PS!
Polteageist has no form atall
galarian now called Galar by default to match with Alola as a forme. changed darmanitan forme-strings in form converter. Added sinistea to the forme ignore list when converting to showdown
2019-12-03 16:41:52 -08:00
Kurt
594c44f6c0
Set Gender for template
...
Closes #2548
2019-11-30 23:44:47 -08:00
Kurt
b58ff25741
Use stat nature for showdown set export
...
thanks @sora10pls
2019-11-26 11:36:20 -08:00
Kurt
5435a5d93e
Minor updates
...
Fix mark (ribbon) read for index > 64
Heal party stats on set detail import
Wipe HT Language for eggs/untraded
Extract BST total color logic
2019-11-25 17:32:10 -08:00
Kurt
22a5df5181
Only set permitted record flags for Move[]
...
Closes #2523
2019-11-25 12:02:30 -08:00
Archit Date
a05bed8f18
updated shiny indicator for xor0 ( #2522 )
2019-11-25 09:27:42 -08:00
Kurt
9d02a2c2b1
Simplify comparison
...
never null
2019-11-24 09:48:22 -08:00
Kurt
cf12f7f4bc
Fix type comparison
...
works fine without this, but this is the correct type comparison
2019-11-24 06:43:42 -08:00
Kurt
32d8225023
Fix drag slot equality check
...
prevents deleting party slots if a slot is dragged into its original
slot (X->X); Equals check only checked reference
2019-11-24 06:42:41 -08:00
Kurt
dd51ed707f
Update record flags on default showdown import
...
Closes #2511
2019-11-24 06:06:08 -08:00
Kurt
66ebf7cb60
Add $suggest for techrecord & (stat)nature
2019-11-23 12:02:58 -08:00
Archit Date
915f6a5e42
fix toxtricity parsing ( #2496 )
...
Full amped form has no form string, so does not need fixing. Exporting low key form also adds a hyphen, so that does not need fixing either!
2019-11-22 14:17:52 -08:00
Kurt
a50169d3d2
Add shift-set shinyxor0 pid
...
Display xor value on hover, not gonna do alternate stars/square display
Closes #2482
2019-11-20 20:38:05 -08:00
Kurt
1be9a6f70d
Fix sav4 load for daycare / gts slots
...
Closes #2481
2019-11-20 19:16:25 -08:00
Kurt
2aaa3763ee
Fix record setting logic
...
Thanks @AnalogMan151 ! #2416
Fix method reference lol
2019-11-20 18:18:33 -08:00
Archit Date
686f69484d
set gigantamax flag from showdown set ( #2469 )
2019-11-19 15:57:08 -08:00
Kurt
915c2d52b1
Update handling for non-competitive set import
...
Gen3 item paste -> Gen3 item import => take item ID as is
once parsing moves starts, break if any following lines are not move
lines
Closes #2412 , thanks @The-Fireplace !
2019-11-16 16:34:28 -08:00
Kurt
3e4127b9e1
Track Gigantamax flag for set data
...
Closes #2436
2019-11-16 14:37:33 -08:00
Kurt
d7657f948d
Update documentation for techrecord flag methods
...
Allow an ienumerable of moves rather than a readonly list
2019-11-16 08:18:57 -08:00
Kurt
87bb8f3b3f
Fix record clear
2019-11-16 08:00:58 -08:00
Kurt
981ed9a253
Add technical record flag editor & api
2019-11-15 23:12:28 -08:00
Kurt
cefb56a749
Sword/Shield Update
2019-11-15 17:52:08 -08:00
Kurt
a6b6383538
Handle more messages
...
un-nest some classes, tooltip/menu disposing
2019-10-27 20:39:15 -07:00
Kurt
b8835facd5
Rename public "pkm" properties to non-lowercase
...
lowercase = local variable or private member
2019-10-27 12:57:04 -07:00
Kurt
9401b7a790
More readonly struct tweaks
...
help dat compiler
minor clean elsewhere
2019-10-26 23:18:25 -07:00
Kurt
fcc993784b
Rename abstract pkm inherited class names
...
leading underscore for a class name = pls no
2019-10-26 12:42:33 -07:00
Kurt
e3efa65160
Cleanup
...
handle messages for dirty cleaning :)
2019-10-26 12:33:58 -07:00
Kurt
5dcee4fb9a
Set random moves if GetMoveSet yields invalid set
...
Closes #2406
No clean way to check for these edge scenarios, so just double check the
moveset and return random moves if we fail
2019-10-24 18:11:25 -07:00
Kurt
bb84ec4e89
Handle some vs message suggestions
2019-10-19 20:33:17 -07:00