zc
This commit is contained in:
Binary file not shown.
Binary file not shown.
@@ -809,50 +809,98 @@ private void CalculateAutoFlux()
|
||||
// 计算进度百分比
|
||||
float incubationPercent = incubationDuration > 0 ? incubationProgress / incubationDuration : 0f;
|
||||
float qualityPercent = qualityTotal > 0 ? qualityProgress / qualityTotal : 0f;
|
||||
float gap = qualityPercent - incubationPercent; // 正=品质领先,负=品质落后
|
||||
|
||||
switch (fluxMode)
|
||||
{
|
||||
case FluxMode.Quality:
|
||||
// 品质优先:低活性,追求100%品质
|
||||
targetFlux = 0.3f;
|
||||
// 品质已满时加速
|
||||
if (qualityPercent >= 0.95f) targetFlux = 0.8f;
|
||||
// 品质优先:确保品质始终领先于孵化进度
|
||||
// 目标:品质 >= 孵化进度 + 10%
|
||||
if (qualityPercent >= 0.98f)
|
||||
{
|
||||
// 品质已满,全速
|
||||
targetFlux = 1.0f;
|
||||
}
|
||||
else if (gap > 0.2f)
|
||||
{
|
||||
// 品质大幅领先,可以加速
|
||||
targetFlux = 0.6f;
|
||||
}
|
||||
else if (gap > 0.1f)
|
||||
{
|
||||
// 品质小幅领先
|
||||
targetFlux = 0.45f;
|
||||
}
|
||||
else if (gap > 0f)
|
||||
{
|
||||
// 品质略微领先
|
||||
targetFlux = 0.35f;
|
||||
}
|
||||
else
|
||||
{
|
||||
// 品质落后或持平,放慢追品质
|
||||
targetFlux = 0.2f;
|
||||
}
|
||||
break;
|
||||
|
||||
case FluxMode.Speed:
|
||||
// 速度优先:高活性,快速完成
|
||||
targetFlux = 0.9f;
|
||||
// 资源紧张时稍微降低
|
||||
if (FuelComp != null && FuelComp.Fuel < 5f) targetFlux = 0.6f;
|
||||
// 速度优先:尽快完成孵化,允许品质落后
|
||||
// 目标:最大化速度,只在品质太低时稍微降速
|
||||
if (qualityPercent >= 0.95f)
|
||||
{
|
||||
// 品质已满
|
||||
targetFlux = 1.0f;
|
||||
}
|
||||
else if (qualityPercent < 0.3f && incubationPercent > 0.5f)
|
||||
{
|
||||
// 品质太低且孵化过半,稍微降速
|
||||
targetFlux = 0.7f;
|
||||
}
|
||||
else if (qualityPercent < 0.2f && incubationPercent > 0.7f)
|
||||
{
|
||||
// 品质极低且快完成,降速救品质
|
||||
targetFlux = 0.5f;
|
||||
}
|
||||
else
|
||||
{
|
||||
// 正常全速
|
||||
targetFlux = 1.0f;
|
||||
}
|
||||
break;
|
||||
|
||||
case FluxMode.Balance:
|
||||
default:
|
||||
// 平衡模式:动态调整,追求两者同时完成
|
||||
targetFlux = 0.5f;
|
||||
|
||||
if (isIncubating)
|
||||
// 平衡模式:追求品质和孵化同时完成
|
||||
// 目标:gap ≈ 0
|
||||
if (qualityPercent >= 0.95f)
|
||||
{
|
||||
// 品质已满时全速
|
||||
if (qualityPercent >= 0.95f)
|
||||
{
|
||||
targetFlux = 1.0f;
|
||||
}
|
||||
// 孵化快完成但品质不够,降速追品质
|
||||
else if (incubationPercent > 0.8f && qualityPercent < 0.6f)
|
||||
{
|
||||
targetFlux = 0.25f;
|
||||
}
|
||||
// 品质落后,降速
|
||||
else if (qualityPercent < incubationPercent - 0.15f)
|
||||
{
|
||||
targetFlux = 0.35f;
|
||||
}
|
||||
// 品质领先,加速
|
||||
else if (qualityPercent > incubationPercent + 0.1f)
|
||||
{
|
||||
targetFlux = 0.7f;
|
||||
}
|
||||
// 品质已满,全速
|
||||
targetFlux = 1.0f;
|
||||
}
|
||||
else if (gap > 0.15f)
|
||||
{
|
||||
// 品质大幅领先,加速孵化
|
||||
targetFlux = 0.8f;
|
||||
}
|
||||
else if (gap > 0.05f)
|
||||
{
|
||||
// 品质小幅领先
|
||||
targetFlux = 0.6f;
|
||||
}
|
||||
else if (gap > -0.05f)
|
||||
{
|
||||
// 接近平衡
|
||||
targetFlux = 0.5f;
|
||||
}
|
||||
else if (gap > -0.15f)
|
||||
{
|
||||
// 品质小幅落后
|
||||
targetFlux = 0.35f;
|
||||
}
|
||||
else
|
||||
{
|
||||
// 品质大幅落后,降速追品质
|
||||
targetFlux = 0.2f;
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user