Commit graph

660 commits

Author SHA1 Message Date
Archit Date
5bf4fde15c Fix Showdown Import issues (#1878) 2018-03-24 21:47:57 -07:00
Kurt
a6977af19a Pull out Contest Stat logic to interface 2018-03-24 10:36:48 -07:00
Kurt
d58278d170 Pull out stat modification logic 2018-03-22 22:43:56 -07:00
Kurt
0d69e803e1 Add gen4/5 synthetic trade logic
was previously present for gen6 and gen7 only, resulting in eggs in
gen4/5 not getting link trade values applied. that's really all.

https://projectpokemon.org/home/forums/topic/44437-bug-eggs-transfer-for-gen-4-dppt-and-hgss/
2018-03-21 21:10:23 -07:00
Kurt
42f5f9b051 Add smart move[] setter
Closes #1871 (smart-move setting is also done by batch editor)
2018-03-20 08:35:41 -07:00
Kurt
426ef1403c Change pp call
was supposed to be with prior commit
2018-03-19 17:32:45 -07:00
Kurt
e4c2b5d77a Split PPMax & PPCurrent edit methods
As noted in #1866
2018-03-19 16:21:29 -07:00
Kurt
9bb4120ff9 add faster pkm slot presence check
instead of checking if the array is empty, only check PID and species
2018-03-18 16:22:21 -07:00
Kurt
26cc266dd1 Move type sprite fetch remapping to pkmutil
I still don't like it 100%
2018-03-18 11:25:57 -07:00
Kurt
49d92758c5 xd ribbon fix
lol
2018-03-17 10:36:37 -07:00
Kurt
3e9dabf46d Set forced hatch egg friendship
use base friendship, obviously (previously used current egg ctr)
fix force hatch on gen2->gen1 handling with nickname
2018-03-14 22:34:15 -07:00
Kurt
46e1d8a4eb Add ability to replace IV marking method
set the MarkingMethod to a desired func provider (out int markval, int
IVvalue, int IVindex)
#1862
2018-03-12 20:44:16 -07:00
Kurt
b41095bb28 ShowdownSet gender/markings
Closes #1862
2018-03-12 17:40:09 -07:00
Kurt
59c01396ab Add string[] -> showdownset & showdownset[]
remove some unnecessary pre-processing / allocation (ToArray)

pls lmk if there's any sets that break (should really have parsing test
cases)
2018-03-11 11:39:58 -07:00
Kurt
2bd9d99d9e Refactoring
WinForms->Core logic absorbing (CommonEdits)
loading ShowdownSet now applies properties to PKM instead of PKMEditor
Contest/IVs for Static/Trades are no longer set by default (less object
allocations), and are now checked by the encounter generator
2018-03-10 18:03:09 -08:00
Kurt
452ffe2369 Refactoring
relocate location of stuff
2018-03-08 21:18:32 -08:00
Kurt
e4210e2b3e Misc api improvements
extract common nature amp logic
generic ienumerable copyto which now returns count of elements copied
(maybe useful later). prior usages never tried to copy an enumerable
larger than the dest array (now length checked).
2018-02-28 21:50:50 -08:00
Kurt
1411933e27 Relocate pkm stat controls to separate usercontrol
splits the logic up
change hypertrain from ctrl (prevents 30/31 setting) to shift (allows)
2018-02-26 21:22:35 -08:00
Kurt
016b75fe83 Fix necrozma showdown->short names
closes #1848 , had deleted short->showdown conversion

Thanks @architdate !
2018-02-21 20:40:06 -08:00
Kurt
26ca111630 Fix SetHPIVs order
speed IV last -> speed IV first
closes #1844
2018-02-18 09:54:17 -08:00
Kurt
e6a74b0145 Only skip nickname set if currently same
Closes #1842
2018-02-17 17:42:00 -08:00
Kurt
2b49ab0034 Fix return value for forme parsing
false => failed to parse
Closes #1834
2018-02-15 18:59:38 -08:00
Kurt
68c782e661 Handle version mega import/export
Closes #1832
2018-02-12 17:36:15 -08:00
Kurt
dae038d59c Use hidden power spread with most 31IVs w/guessing
#1826 (HP Ice with ATK=0 now prefers flaws in only defense rather than
HP and defense).
2018-02-09 21:27:57 -08:00
Kurt
033d5baa06 Check EC-PID same for gen1/2 transfers
Fix PID->EC on gen<3 transfers

https://projectpokemon.org/home/forums/topic/43779-about-vc-pokemons-pid-and-encryptionconstant/
2018-02-08 18:47:52 -08:00
Kurt
22a2056a91 Fix showdownset IV HPtype export
no need to reshuffle IVs since the pkm->showdownset defines the IVs in
the speed-first order
Closes #1824
2018-02-07 20:59:36 -08:00
Kurt
93fd47a8e5 Rework hidden power IV setting
If the Hidden Power set doesn't match what is required (missing Hyper
Trained IVs), will need to adjust IVs.

Compute the first matching hidden power IV set by permuting flawless IVs
to flawed.

Closes #1821
2018-02-07 18:28:56 -08:00
Kurt
8695666044 Fix showdown set form import off by 1
closes #1811
2018-02-04 09:44:19 -08:00
Kurt
118a213b6c Fix backwards conversion copy order
reflection (now only used for backwards conversion) will use destination
order instead of source order so that the destination can order itself
for quirks

redo method call (probably breaks someone if they update, maybe pk2pk)
2018-02-03 15:32:45 -08:00
Kurt
886398184f Add pk4/bk4 shared class
reflection no longer used for official transfers
2018-02-03 15:31:35 -08:00
Kurt
c5655166bf Add shared pk3/xk3/ck3 class
standard generation 3 pkm content & interactions
generic inter-converter (more efficient than reflection)

update conversion methods; specific format conversion is now in the
object's src file now.

may be worth doing for gen4 pk4<->bk4
2018-02-03 12:42:06 -08:00
Kurt
84a0381050 Add Italian to gb languages
https://projectpokemon.org/home/forums/topic/43655-pokemon-crystal-egg-mark-as-not-legit/
2018-01-30 20:34:11 -08:00
Kurt
c4865c6c0a Fix kommo-o-totem detection
psim lexing sucks lul
Closes #1796
2018-01-30 16:18:39 -08:00
Kurt
7063ea2971 Remove vc1 pay day mewtwo restriction
Closes #1794
2018-01-30 09:38:45 -08:00
Kurt
d7eae51c1f Use showdown specific gender culture for formID
Closes #1793 , the form was returning -1 because it was expecting ♀ not
F
2018-01-29 17:20:12 -08:00
Kurt
9085dfd950 Allow backwards conversion on hax
works somewhat on drag&drop individual files, not guaranteed to work for
all pkm formats
https://i.imgur.com/v3i3ON9.png

Closes #1792
2018-01-28 22:47:03 -08:00
Kurt
9e7a4d01ab Update blank constructor
first declared constructor is a static constructor, skip that one by
filtering out !static
2018-01-28 21:40:42 -08:00
Kurt
bfe4f3222d Don't update HP IVs if IVs already provided
Closes #1786
2018-01-27 20:18:38 -08:00
Kurt
802105d22d Allow pay day mewtwo, disallow dizzy punch
#1772
transfer pk1->pk2->pk7 for mewtwo knowing dizzy punch, just so we can
keep Pay Day
2018-01-25 19:17:42 -08:00
Kurt
1db5161a59 Add shiny star to pk1 filename export
closes #1770
2018-01-25 08:50:17 -08:00
Kurt
b229a947f2 Fix pt/hgss egg location handling 4->5
Closes #1766
pt/hgss egg location data is lost on transfer, retaining faraway place
only.
2c8e2176e9 fix was incorrect
2018-01-21 11:57:34 -08:00
Kurt
c751c987a9 Add DebutGeneration get
https://projectpokemon.org/home/forums/topic/43378-generation-search-in-pkmdb-andor-batch-editor/

(less than) < and (greater than) > not currently supported (no plan to
add, would need to rewrite value eval logic)
2018-01-10 15:40:33 -08:00
Kurt
8cf97f3761 Add pom-pom edge case
dash was stripped out during conversion
closes #1744
2018-01-06 09:40:30 -08:00
Kurt
6a9e2ed4b9 Refactoring
improve speed for resource fetch, add optional Shiny parameter
(currently unused)
#1735
2018-01-02 16:53:39 -08:00
Kurt
e79a35d387 Fix long OT name length setting
StringLength is the raw buffer size, needs to be offset by 1 as the
string length enforced does not consider the terminator

12char OT name in sav7 loaded to tabs -> load gen1/2 save = exception
(now fixed)
2018-01-01 11:27:45 -08:00
Kurt
14821dfb82 Fix catchrate set auto-fix
https://projectpokemon.org/home/forums/topic/43252-pk1-pokémon-files-arent-holding-items-when-imported-to-gen-2/?tab=comments#comment-225459
2017-12-30 10:40:28 -08:00
Kurt
ca20e78269 pkm crypto Refactoring r2
condense repeated logic, reduce overall operations
removes 1 array alloc for pkm encryption (shuffle clones the array, so
don't clone->clone)
removes 1 array alloc for pkm decryption (mutate encrypted array), be
aware that no current use cases input an encrypted region and expect the
reference to stay encrypted (always was a temp array).
remove duplicate bounds checks (early return & for loop)
2017-12-29 15:29:31 -08:00
Kurt
1d405d63c8 speed up pkm crypt
GetBytes returns an array that is immediately discarded (GC pressure)
reduces overhead when loading large pkm collections from save files
(shaved off a couple seconds from my loading from 200+ bak saves)

could probably go faster with unsafe code to r/w ushort directly
then again im profiling under debug but i'd assume the improvements made
actually do improve speed for release builds
2017-12-28 23:24:12 -08:00
Kurt
dccad6c2f4 Simplify/fix UnSanitizeString
Species and Nicknamed params were never used; foreign always resulted in
true for cases when it actually mattered.

Filter to the non-fullwidth characters, check the char type (latin base
vs jp/zh/ko) in order to determine if the full/half symbols should be
squished

could be faster replacing char instead of string, so change those

add two test cases for half width & full width string
sanitization/unsanitization
2017-12-28 22:50:32 -08:00
Kurt
a1f2f8708a Refactoring
pass identifier on cloning pkm
remove unnecessary ref for passing Data (not modifying array reference)
const some magic numbers
2017-12-27 16:36:24 -08:00