diff --git a/1.6/1.6/Assemblies/ArachnaeSwarm.dll b/1.6/1.6/Assemblies/ArachnaeSwarm.dll index 5425d15..8bbdd74 100644 Binary files a/1.6/1.6/Assemblies/ArachnaeSwarm.dll and b/1.6/1.6/Assemblies/ArachnaeSwarm.dll differ diff --git a/1.6/1.6/Assemblies/ArachnaeSwarm.pdb b/1.6/1.6/Assemblies/ArachnaeSwarm.pdb index a4c9347..67a4681 100644 Binary files a/1.6/1.6/Assemblies/ArachnaeSwarm.pdb and b/1.6/1.6/Assemblies/ArachnaeSwarm.pdb differ diff --git a/Source/ArachnaeSwarm/Building_Comps/ARA_CompInteractiveProducer/CompQueuedInteractiveProducerWithFlux.cs b/Source/ArachnaeSwarm/Building_Comps/ARA_CompInteractiveProducer/CompQueuedInteractiveProducerWithFlux.cs index 69820c9..e176a06 100644 --- a/Source/ArachnaeSwarm/Building_Comps/ARA_CompInteractiveProducer/CompQueuedInteractiveProducerWithFlux.cs +++ b/Source/ArachnaeSwarm/Building_Comps/ARA_CompInteractiveProducer/CompQueuedInteractiveProducerWithFlux.cs @@ -294,7 +294,7 @@ namespace ArachnaeSwarm l.CurJobDef.defName != "ARA_OperateIncubator" || l.CurJob?.targetA.Thing != parent); - bool hasFuel = (FuelComp?.Fuel ?? 10f) > 0.01f; + bool hasFuel = (FuelComp?.Fuel ?? 0f) > 0.01f; // 自动模式调节 if (IsAutoMode && parent.IsHashIntervalTick(250) && IsIncubating) diff --git a/Source/ArachnaeSwarm/Building_Comps/ARA_SpawnPawnFromList/CompQueuedPawnSpawnerWithFlux.cs b/Source/ArachnaeSwarm/Building_Comps/ARA_SpawnPawnFromList/CompQueuedPawnSpawnerWithFlux.cs index 3964964..d7c0b78 100644 --- a/Source/ArachnaeSwarm/Building_Comps/ARA_SpawnPawnFromList/CompQueuedPawnSpawnerWithFlux.cs +++ b/Source/ArachnaeSwarm/Building_Comps/ARA_SpawnPawnFromList/CompQueuedPawnSpawnerWithFlux.cs @@ -310,7 +310,7 @@ namespace ArachnaeSwarm l.CurJobDef.defName != "ARA_OperateIncubator" || l.CurJob?.targetA.Thing != parent); - bool hasFuel = (FuelComp?.Fuel ?? 10f) > 0.01f; + bool hasFuel = (FuelComp?.Fuel ?? 0f) > 0.01f; if (IsAutoMode && parent.IsHashIntervalTick(250) && IsIncubating) { diff --git a/Source/ArachnaeSwarm/Buildings/Building_EquipmentOotheca/Building_EquipmentOotheca.cs b/Source/ArachnaeSwarm/Buildings/Building_EquipmentOotheca/Building_EquipmentOotheca.cs index d49c5a0..b48af4d 100644 --- a/Source/ArachnaeSwarm/Buildings/Building_EquipmentOotheca/Building_EquipmentOotheca.cs +++ b/Source/ArachnaeSwarm/Buildings/Building_EquipmentOotheca/Building_EquipmentOotheca.cs @@ -131,8 +131,12 @@ namespace ArachnaeSwarm FuelComp.ConsumeFuel(fuelPerTick); } + // 检查是否休眠(通量过低 或 燃料不足) + bool hasFuel = (FuelComp?.Fuel ?? 0f) > 0.01f; + bool effectivelyDormant = IsDormant || !hasFuel; + // 休眠状态处理 - if (IsDormant) + if (effectivelyDormant) { // 休眠时品质下降(10%/天) float qualityDecay = (qualityTotal * 0.1f) / 60000f; diff --git a/Source/ArachnaeSwarm/Buildings/Building_Ootheca/Building_Ootheca.cs b/Source/ArachnaeSwarm/Buildings/Building_Ootheca/Building_Ootheca.cs index 2ac41b7..d98e7ea 100644 --- a/Source/ArachnaeSwarm/Buildings/Building_Ootheca/Building_Ootheca.cs +++ b/Source/ArachnaeSwarm/Buildings/Building_Ootheca/Building_Ootheca.cs @@ -238,7 +238,11 @@ namespace ArachnaeSwarm FuelComp.ConsumeFuel(fuelPerTick); } - if (IsDormant) + // 检查是否休眠(通量过低 或 燃料不足) + bool hasFuel = (FuelComp?.Fuel ?? 0f) > 0.01f; + bool effectivelyDormant = IsDormant || !hasFuel; + + if (effectivelyDormant) { float qualityDecay = (qualityTotal * 0.1f) / 60000f; qualityProgress = Mathf.Max(0f, qualityProgress - qualityDecay);