mirror of
https://github.com/kwsch/PKHeX
synced 2025-02-16 13:28:35 +00:00
Slot3/4: Filter met level on generate
This commit is contained in:
parent
c30a335404
commit
8c37d9b4b5
3 changed files with 34 additions and 19 deletions
|
@ -48,7 +48,12 @@ public static class GenerateMethodH
|
|||
if (!criteria.IsGenderSatisfied(gender))
|
||||
break; // try again
|
||||
|
||||
pk.MetLevel = pk.CurrentLevel = (byte)MethodH.GetRandomLevel(enc, lv, LeadRequired.None);
|
||||
{
|
||||
var level = (byte)MethodH.GetRandomLevel(enc, lv, LeadRequired.None);
|
||||
if (criteria.IsSpecifiedLevelRange() && !criteria.IsLevelRangeSatisfied(level))
|
||||
break; // try again
|
||||
pk.MetLevel = pk.CurrentLevel = level;
|
||||
}
|
||||
SetPIDIVSequential(pk, pid, seed);
|
||||
return;
|
||||
}
|
||||
|
@ -128,10 +133,10 @@ public static class GenerateMethodH
|
|||
|
||||
// always level rand
|
||||
{
|
||||
var lv = MethodH.SkipToLevelRand(enc, lead.Seed) >> 16;
|
||||
var actual = MethodH.GetRandomLevel(enc, lv, lead.Lead);
|
||||
if (pk.MetLevel != actual)
|
||||
pk.MetLevel = pk.CurrentLevel = (byte)actual;
|
||||
var rand16 = MethodH.SkipToLevelRand(enc, lead.Seed) >> 16;
|
||||
var level = MethodH.GetRandomLevel(enc, rand16, lead.Lead);
|
||||
if (pk.MetLevel != level)
|
||||
pk.MetLevel = pk.CurrentLevel = (byte)level;
|
||||
}
|
||||
|
||||
pk.PID = pid;
|
||||
|
@ -165,10 +170,10 @@ public static class GenerateMethodH
|
|||
|
||||
// always level rand
|
||||
{
|
||||
var lv = MethodH.SkipToLevelRand(enc, lead.Seed) >> 16;
|
||||
var actual = MethodH.GetRandomLevel(enc, lv, lead.Lead);
|
||||
if (pk.MetLevel != actual)
|
||||
pk.MetLevel = pk.CurrentLevel = (byte)actual;
|
||||
var rand16 = MethodH.SkipToLevelRand(enc, lead.Seed) >> 16;
|
||||
var level = MethodH.GetRandomLevel(enc, rand16, lead.Lead);
|
||||
if (pk.MetLevel != level)
|
||||
pk.MetLevel = pk.CurrentLevel = (byte)level;
|
||||
}
|
||||
|
||||
pk.PID = pid;
|
||||
|
|
|
@ -59,7 +59,12 @@ public static class GenerateMethodJ
|
|||
break; // try again
|
||||
|
||||
if (randLevel)
|
||||
pk.MetLevel = pk.CurrentLevel = (byte)MethodJ.GetRandomLevel(enc, lv, LeadRequired.None);
|
||||
{
|
||||
var level = (byte)MethodJ.GetRandomLevel(enc, lv, LeadRequired.None);
|
||||
if (criteria.IsSpecifiedLevelRange() && !criteria.IsLevelRangeSatisfied(level))
|
||||
break; // try again
|
||||
pk.MetLevel = pk.CurrentLevel = level;
|
||||
}
|
||||
pk.PID = pid;
|
||||
var iv1 = LCRNG.Next16(ref seed);
|
||||
var iv2 = LCRNG.Next16(ref seed);
|
||||
|
@ -110,10 +115,10 @@ public static class GenerateMethodJ
|
|||
|
||||
if (MethodJ.IsLevelRand(enc))
|
||||
{
|
||||
var lv = MethodJ.SkipToLevelRand(enc, lead.Seed) >> 16;
|
||||
var actual = MethodJ.GetRandomLevel(enc, lv, lead.Lead);
|
||||
if (pk.MetLevel != actual)
|
||||
pk.MetLevel = pk.CurrentLevel = (byte)actual;
|
||||
var rand16 = MethodJ.SkipToLevelRand(enc, lead.Seed) >> 16;
|
||||
var level = MethodJ.GetRandomLevel(enc, rand16, lead.Lead);
|
||||
if (pk.MetLevel != level)
|
||||
pk.MetLevel = pk.CurrentLevel = (byte)level;
|
||||
}
|
||||
|
||||
pk.PID = pid;
|
||||
|
|
|
@ -60,7 +60,12 @@ public static class GenerateMethodK
|
|||
break; // try again
|
||||
|
||||
if (randLevel)
|
||||
pk.MetLevel = pk.CurrentLevel = (byte)MethodK.GetRandomLevel(enc, lv, LeadRequired.None);
|
||||
{
|
||||
var level = (byte)MethodK.GetRandomLevel(enc, lv, LeadRequired.None);
|
||||
if (criteria.IsSpecifiedLevelRange() && !criteria.IsLevelRangeSatisfied(level))
|
||||
break; // try again
|
||||
pk.MetLevel = pk.CurrentLevel = level;
|
||||
}
|
||||
pk.PID = pid;
|
||||
var iv1 = LCRNG.Next16(ref seed);
|
||||
var iv2 = LCRNG.Next16(ref seed);
|
||||
|
@ -114,10 +119,10 @@ public static class GenerateMethodK
|
|||
|
||||
if (MethodK.IsLevelRand(enc))
|
||||
{
|
||||
var lv = MethodK.SkipToLevelRand(enc, lead.Seed, lead.Lead) >> 16;
|
||||
var actual = MethodK.GetRandomLevel(enc, lv, lead.Lead);
|
||||
if (pk.MetLevel != actual)
|
||||
pk.MetLevel = pk.CurrentLevel = (byte)actual;
|
||||
var rand16 = MethodK.SkipToLevelRand(enc, lead.Seed, lead.Lead) >> 16;
|
||||
var level = MethodK.GetRandomLevel(enc, rand16, lead.Lead);
|
||||
if (pk.MetLevel != level)
|
||||
pk.MetLevel = pk.CurrentLevel = (byte)level;
|
||||
}
|
||||
|
||||
pk.PID = pid;
|
||||
|
|
Loading…
Add table
Reference in a new issue