mirror of
https://github.com/kwsch/PKHeX.git
synced 2026-09-13 00:45:20 -05:00
Merge pull request #79 from chenzw95/unown-pid
Generate legal PID for Gen III Unown
This commit is contained in:
10
Misc/PKX.cs
10
Misc/PKX.cs
@@ -520,7 +520,7 @@ internal static uint getTSV(uint TID, uint SID)
|
||||
{
|
||||
return (TID ^ SID) >> 4;
|
||||
}
|
||||
internal static uint getRandomPID(int species, int cg, int origin, int nature)
|
||||
internal static uint getRandomPID(int species, int cg, int origin, int nature, int form)
|
||||
{
|
||||
int gt = Personal[species].Gender;
|
||||
while (true) // Loop until we find a suitable PID
|
||||
@@ -535,6 +535,14 @@ internal static uint getRandomPID(int species, int cg, int origin, int nature)
|
||||
if (origin <= 15 && pid%25 != nature)
|
||||
continue;
|
||||
|
||||
// Gen 3 Unown: Letter/form derived from PID
|
||||
if (origin <= 5 && species == 201)
|
||||
{
|
||||
uint pidLetter = ( (pid & 0x3000000) >> 18 | (pid & 0x30000) >> 12 | (pid & 0x300) >> 6 | (pid & 0x3) ) % 28;
|
||||
if (pidLetter != form)
|
||||
continue;
|
||||
}
|
||||
|
||||
// Gen 3/4/5: Gender derived from PID
|
||||
uint gv = pid & 0xFF;
|
||||
if (gt == 255 || gt == 254 || gt == 0) // Set Gender(less)
|
||||
|
||||
@@ -1604,7 +1604,7 @@ private void updateRandomEVs(object sender, EventArgs e)
|
||||
private void updateRandomPID(object sender, EventArgs e)
|
||||
{
|
||||
int origin = Util.getIndex(CB_GameOrigin);
|
||||
uint PID = PKX.getRandomPID(Util.getIndex(CB_Species), PKX.getGender(Label_Gender.Text), origin, Util.getIndex(CB_Nature));
|
||||
uint PID = PKX.getRandomPID(Util.getIndex(CB_Species), PKX.getGender(Label_Gender.Text), origin, Util.getIndex(CB_Nature), CB_Form.SelectedIndex);
|
||||
TB_PID.Text = PID.ToString("X8");
|
||||
getQuickFiller(dragout);
|
||||
if (origin >= 24)
|
||||
|
||||
Reference in New Issue
Block a user