mirror of
https://github.com/kwsch/PKHeX.git
synced 2026-10-25 19:20:05 -05:00
Add optional loop for generating min level
This commit is contained in:
@@ -43,9 +43,18 @@ protected override void SetPINGA(PKM pk, EncounterCriteria criteria)
|
||||
pk.Gender = (int)Gender;
|
||||
|
||||
var para = GetParams();
|
||||
var (_, slotSeed) = Overworld8aRNG.ApplyDetails(pk, criteria, para, HasAlphaMove);
|
||||
if (LevelMin != LevelMax)
|
||||
pk.CurrentLevel = pk.Met_Level = Overworld8aRNG.GetRandomLevel(slotSeed, LevelMin, LevelMax);
|
||||
while (true)
|
||||
{
|
||||
var (_, slotSeed) = Overworld8aRNG.ApplyDetails(pk, criteria, para, HasAlphaMove);
|
||||
if (LevelMin != LevelMax)
|
||||
{
|
||||
var lvl = Overworld8aRNG.GetRandomLevel(slotSeed, LevelMin, LevelMax);
|
||||
if (criteria.ForceMinLevelRange && lvl != LevelMin)
|
||||
continue;
|
||||
pk.CurrentLevel = pk.Met_Level = lvl;
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
protected override void SetEncounterMoves(PKM pk, GameVersion version, int level)
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
using System;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using static PKHeX.Core.AbilityPermission;
|
||||
|
||||
@@ -37,6 +37,11 @@ public sealed record EncounterCriteria
|
||||
public int IV_SPD { get; init; } = RandomIV;
|
||||
public int IV_SPE { get; init; } = RandomIV;
|
||||
|
||||
/// <summary>
|
||||
/// If the Encounter yields variable level ranges (e.g. RNG correlation), force the minimum level instead of yielding first match.
|
||||
/// </summary>
|
||||
public bool ForceMinLevelRange { get; set; }
|
||||
|
||||
// unused
|
||||
public int HPType { get; init; } = -1;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user