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 incubationPercent = incubationDuration > 0 ? incubationProgress / incubationDuration : 0f;
|
||||||
float qualityPercent = qualityTotal > 0 ? qualityProgress / qualityTotal : 0f;
|
float qualityPercent = qualityTotal > 0 ? qualityProgress / qualityTotal : 0f;
|
||||||
|
float gap = qualityPercent - incubationPercent; // 正=品质领先,负=品质落后
|
||||||
|
|
||||||
switch (fluxMode)
|
switch (fluxMode)
|
||||||
{
|
{
|
||||||
case FluxMode.Quality:
|
case FluxMode.Quality:
|
||||||
// 品质优先:低活性,追求100%品质
|
// 品质优先:确保品质始终领先于孵化进度
|
||||||
targetFlux = 0.3f;
|
// 目标:品质 >= 孵化进度 + 10%
|
||||||
// 品质已满时加速
|
if (qualityPercent >= 0.98f)
|
||||||
if (qualityPercent >= 0.95f) targetFlux = 0.8f;
|
{
|
||||||
|
// 品质已满,全速
|
||||||
|
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;
|
break;
|
||||||
|
|
||||||
case FluxMode.Speed:
|
case FluxMode.Speed:
|
||||||
// 速度优先:高活性,快速完成
|
// 速度优先:尽快完成孵化,允许品质落后
|
||||||
targetFlux = 0.9f;
|
// 目标:最大化速度,只在品质太低时稍微降速
|
||||||
// 资源紧张时稍微降低
|
if (qualityPercent >= 0.95f)
|
||||||
if (FuelComp != null && FuelComp.Fuel < 5f) targetFlux = 0.6f;
|
{
|
||||||
|
// 品质已满
|
||||||
|
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;
|
break;
|
||||||
|
|
||||||
case FluxMode.Balance:
|
case FluxMode.Balance:
|
||||||
default:
|
default:
|
||||||
// 平衡模式:动态调整,追求两者同时完成
|
// 平衡模式:追求品质和孵化同时完成
|
||||||
targetFlux = 0.5f;
|
// 目标:gap ≈ 0
|
||||||
|
if (qualityPercent >= 0.95f)
|
||||||
if (isIncubating)
|
|
||||||
{
|
{
|
||||||
// 品质已满时全速
|
// 品质已满,全速
|
||||||
if (qualityPercent >= 0.95f)
|
targetFlux = 1.0f;
|
||||||
{
|
}
|
||||||
targetFlux = 1.0f;
|
else if (gap > 0.15f)
|
||||||
}
|
{
|
||||||
// 孵化快完成但品质不够,降速追品质
|
// 品质大幅领先,加速孵化
|
||||||
else if (incubationPercent > 0.8f && qualityPercent < 0.6f)
|
targetFlux = 0.8f;
|
||||||
{
|
}
|
||||||
targetFlux = 0.25f;
|
else if (gap > 0.05f)
|
||||||
}
|
{
|
||||||
// 品质落后,降速
|
// 品质小幅领先
|
||||||
else if (qualityPercent < incubationPercent - 0.15f)
|
targetFlux = 0.6f;
|
||||||
{
|
}
|
||||||
targetFlux = 0.35f;
|
else if (gap > -0.05f)
|
||||||
}
|
{
|
||||||
// 品质领先,加速
|
// 接近平衡
|
||||||
else if (qualityPercent > incubationPercent + 0.1f)
|
targetFlux = 0.5f;
|
||||||
{
|
}
|
||||||
targetFlux = 0.7f;
|
else if (gap > -0.15f)
|
||||||
}
|
{
|
||||||
|
// 品质小幅落后
|
||||||
|
targetFlux = 0.35f;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
// 品质大幅落后,降速追品质
|
||||||
|
targetFlux = 0.2f;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user