Commit graph

131 commits

Author SHA1 Message Date
Kurt
762b55e957 handle invalid nature stat amps
natures (>25) are invalid and causes IndexOutOfRangeException due to
being greater than the length of the array.
sanity check array length and amped stat prior to applying amplification
Closes #1515
2017-10-06 18:44:14 -07:00
Kurt
ea751e26b1 Convert chinese string only if species name
Resolves charmap duplications in the chinese char tables:
多边兽Z (Porygon-Z)
属性:空 (Type Null)
谜拟Q (Mimikyu)
卡璞・鸣鸣 (Tapu-Koko)

Games cannot have a nickname/OT in chinese as of current date... I
assume this will be fixed down the road
2017-10-03 18:15:15 -07:00
Kurt
ed1b934374 Misc refactoring
expose some useful IEnumerable methods (sorting / bin->pkm / copy) to
simplify some common operations
change some explicit arrays to IList for flexibility
remove old memecrypto bool (no longer necessary as XP is not supported)
rename some methods for more clarity
2017-09-28 22:20:27 -07:00
Kurt
c270479bf9 Show SID7 on hover
Closes #1494
2017-09-26 23:14:29 -07:00
javierhimura
f3743e490b Korean language restrictions
Restriction happens because Korean can not trade with non-Korean GB era games
- There is no Korean release for gen 1 pokemon, included VC
- With no gen1 pokemon means any Korean gen2 is Gen2_NotTradeback, that means no gen1 origin nor moves are Legal
- Crystal was never released in Korean
- Pokemon Stadium 2 was never released in Korean, that means no move reminder for gen 2 korean pokemon

- Generation 4 can not trade between Korean and not Korean games, but Korean games can use the palpark with any language

Chinese language restrictions
There is no Chinese release for gen 1 and 2 pokemon games, VC Chinese games are in Japanese
2017-09-23 20:46:10 +02:00
Kurt
c23cc81212 More usum prep
I think egg hatch location checking is wrong for traded eggs (see gen3
vs future games, origin game shouldn't change but could hatch ORAS egg
on XY at XY location?)
2017-09-19 21:35:30 -07:00
Kurt
ad69420ad9 Update gen5 shiny PID generating
Closes #1460
https://pastebin.com/GgcMjmwd
2017-09-17 14:43:28 -07:00
Kurt
84cc366803 Swap markings in gen3
Closes #1463
2017-09-17 13:07:12 -07:00
Kurt
aa3393e5b2 Misc languageID legality checking update
Checks for max language ID on transferred pkm (gen5 pkm on gen7 can't
have CHS/CHT etc)
handles edge case for JPN B/W ingame trades
update pk5->pk6 transfer logic to bump langID 0 to 1.
Thanks HaxAras & Britty for providing samples!
2017-09-15 17:43:31 -07:00
Kurt
cbda637981 Remove old (GF fixed) shiny correlation
Transporter was updated
2017-09-06 09:12:56 -07:00
Kurt
47ca69f92b Legality edge case fixes
Some incorrect IDs, some additions (unbreedable hidden abilities in
genV)

https://projectpokemon.org/forums/forums/topic/41407-pkhex-legality-errors-on-gen-6-updated/?tab=comments#comment-219459
2017-09-05 18:28:38 -07:00
Kurt
b9a9b6db32 Add gen2 iv reroll for shiny
#1419
2017-08-25 18:57:17 -07:00
Kurt
183164a197 Add batch edit pk1/2 .PID=$shiny
Closes #1419
2017-08-25 17:44:15 -07:00
Kurt
a91764b283 Add hot springs as valid egg location for gen6
split table references, remove per-format calculations as they all
behaved the same as the main method
2017-07-10 18:56:13 -07:00
Kurt
267de164f4 Set pkm Stat Level when transferred to CK3/XK3
Closes #1302
Box structure in CK3/XK3 stores stats AND level, as battle stats are a
part of the box structure. There's no party/box differentiation!
2017-07-06 17:47:38 -07:00
Kurt
fd1c7419b1 Set fateful for xd pkm transferred away
Only way to know if it originated in XD is to check the matched
encounter data

Closes #1290
2017-07-04 13:24:18 -07:00
Kurt
86d39f2c81 Tweak level/origin check for moves
Valid species/movepools are already determined via the dexlevel and
prior methods, no need to check again with current species.

edge case: sing froslass from CXD won't check gen3 moves (ie, sing)
2017-06-26 20:30:44 -07:00
Kurt
9b76d9b214 Next round of ribbon checking
Returned messages are slightly misleading since missing/invalid are
mixed together with the static method.

#1250
~322 lines to check ribbons, on top of the interface abstraction... so
much required... kinda understandable as there's over 100 ribbons to
check.
2017-06-20 21:57:03 -07:00
Kurt
3f38b123a3 Refactoring
mostly renaming things, includes a little bit of added sugar and
splitting methods to simplify the codebase.

all methods are now PascalCase
2017-06-17 18:37:19 -07:00
Kurt
991978dab6 Ensure cleared move pkms have at least 1 move
#1214
user may not be checking legality (bulk transfer)
2017-06-10 08:39:04 -07:00
Kurt
d19b83000d Clear gen2 exclusive moves on pk2->pk1
Closes #1214
2017-06-10 08:31:31 -07:00
Kurt
32deb3879a Simplify Shiny SID creation
calculates a passing SID and applies random bits to not be too
predictable
no need to bruteforce
2017-06-03 08:58:30 -07:00
javierhimura
814e63aa1c Add Control key modifier to set shiny button to change the pokemon SID instead of the PID, that allow the change shiny of gen 3/4 pokemon without turn the pokemon in illegal because PID/IV mistmatch
Added Cherrygrove City to surf headbutt encounter locations, the upper right trees on the map can be reach from the water in route 30
2017-06-03 12:02:22 +02:00
Kurt
b8a799f7ed Fix gender ratio comparison
http://bulbapedia.bulbagarden.net/wiki/Personality_value#Gender
For a Pokémon with a 50/50 male/female gender ratio, there is actually a
129/256 (50.390625%) chance for the Pokémon to be male and 127/256
(49.609375%) chance for the Pokémon to be female.

remove unnecessary parameter passing

#1163
2017-05-23 18:48:16 -07:00
Kurt
11b2dc35d7 Refactor main form into smaller pieces
pkm editor, sav editor, menus, and a manager to glue the storage slots
together
decouples the pkm/sav editors from a static savefile reference.

improves dragdrop/click view/set/delete indication, hides unavailable
contextmenuitems, and fixes a few incorrect references. Box Subviewer
slots now have all the indication/events that the main save editor slots
have.

pls report behavior bugs 👍
2017-05-22 21:55:12 -07:00
Kurt
63b3c8b020 Fix gen1/2 moves with 40 pp given 3 ppups
cap is 61:
http://bulbapedia.bulbagarden.net/wiki/Power_Point#Base_value_alteration

cap forced maximum at 63
2017-05-19 09:22:12 -07:00
Kurt
483998d930 Change gen4 (egg) met location setter
Closes #1135
clear both if zero
set value to dp location if a valid dp location, else set faraway place
set value to pthgss location if originated from pthgss
2017-05-18 22:40:38 -07:00
Kurt
84d901f647 Simplify PID gender checking
don't have multiple locations where comparisons are done, just generate
the gender and compare
only fetch gender once from getter
2017-05-18 19:16:11 -07:00
Kurt
a415ca78df Fix folder location fetch & x/c/bk# extension fetch
Closes #1149
2017-05-17 20:39:10 -07:00
Kurt
a70a4d5e3f Switch to c# 7 get/set expressions
Add gen5 battle box locked flags
no functional change otherwise, just shorter
2017-05-12 20:32:43 -07:00
Evan Dixon
52c4fbbe97 Converted PKHeX.Core to .Net Standard
Refactored and rearranged things as needed to allow the change
2017-05-11 23:34:18 -05:00
Renamed from PKHeX/PKM/PKM.cs (Browse further)