From ebe217223da5048f9351f728a6c052514403a772 Mon Sep 17 00:00:00 2001 From: "ProjectKoi-Kalo\\Kalo" Date: Mon, 8 Sep 2025 18:34:28 +0800 Subject: [PATCH] =?UTF-8?q?=E8=A1=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 1.6/1.6/Assemblies/ArachnaeSwarm.dll | Bin 111104 -> 111616 bytes .../CompQueuedInteractiveProducer.cs | 32 ++++++++++++++---- .../DataContracts.cs | 10 +++++- 3 files changed, 34 insertions(+), 8 deletions(-) diff --git a/1.6/1.6/Assemblies/ArachnaeSwarm.dll b/1.6/1.6/Assemblies/ArachnaeSwarm.dll index c2e64a9b8e84b4a6d51aeb2333b17b1edf802d71..9b6b9e8c169f8c17e172a2d80da165204185bda2 100644 GIT binary patch delta 27751 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 Ofc16!38R{J#{UCmQ(uz+ diff --git a/Source/ArachnaeSwarm/ARA_CompInteractiveProducer/CompQueuedInteractiveProducer.cs b/Source/ArachnaeSwarm/ARA_CompInteractiveProducer/CompQueuedInteractiveProducer.cs index b754dbc..a3f5ae9 100644 --- a/Source/ArachnaeSwarm/ARA_CompInteractiveProducer/CompQueuedInteractiveProducer.cs +++ b/Source/ArachnaeSwarm/ARA_CompInteractiveProducer/CompQueuedInteractiveProducer.cs @@ -85,7 +85,7 @@ namespace ArachnaeSwarm } else { - yield return new FloatMenuOption("StartProduction".Translate(process.thingDef.label), () => + yield return new FloatMenuOption("StartProduction".Translate(process.thingDef.label), () => { this.selectedProcess = process; Job job = JobMaker.MakeJob(DefDatabase.GetNamed("ARA_AddProcessToQueueJob"), parent); @@ -170,18 +170,30 @@ namespace ArachnaeSwarm } } - private void FinishProduction(QueuedProcessOrder order) + private (QualityCategory quality, float baseScore, float penalty) GetEstimatedQualityDetails(QueuedProcessOrder order) { - float progress = (float)order.ticksUnderOptimalConditions / order.process.productionTicks; + if (order == null || Props.qualityThresholds.NullOrEmpty()) + { + return (QualityCategory.Normal, 0f, 0f); + } + float progress = (order.process.productionTicks > 0) ? (float)order.ticksUnderOptimalConditions / order.process.productionTicks : 1f; float finalQualityPercent = Mathf.Clamp01(progress - order.temperaturePenaltyPercent); QualityCategory finalQuality = QualityCategory.Awful; - if (!Props.qualityThresholds.NullOrEmpty()) + foreach (var threshold in Props.qualityThresholds.OrderByDescending(q => q.threshold)) { - foreach (var threshold in Props.qualityThresholds.OrderByDescending(q => q.threshold)) + if (finalQualityPercent >= threshold.threshold) { - if (finalQualityPercent >= threshold.threshold) { finalQuality = threshold.quality; break; } + finalQuality = threshold.quality; + break; } } + return (finalQuality, progress, order.temperaturePenaltyPercent); + } + + private void FinishProduction(QueuedProcessOrder order) + { + var qualityDetails = GetEstimatedQualityDetails(order); + QualityCategory finalQuality = qualityDetails.quality; for (int i = 0; i < Props.spawnCount.RandomInRange; i++) { @@ -214,10 +226,16 @@ namespace ArachnaeSwarm foreach (var order in producingNow) { int remainingTicks = order.productionUntilTick - Find.TickManager.TicksGame; - sb.AppendLine($" - {order.process.thingDef.LabelCap}: {remainingTicks.ToStringTicksToPeriod(true, false, true, true)}"); + var qualityDetails = GetEstimatedQualityDetails(order); + sb.AppendLine($" - {order.process.thingDef.LabelCap}: {remainingTicks.ToStringTicksToPeriod(true, false, true, true)} (品质: {qualityDetails.quality.GetLabel()})"); } } + // 添加温度信息 + string tempStr = "CurrentTemperature".Translate(parent.AmbientTemperature.ToStringTemperature("F0")); + tempStr += $" ({"SafeTemperatureRange".Translate()}: {Props.minSafeTemperature.ToStringTemperature("F0")} ~ {Props.maxSafeTemperature.ToStringTemperature("F0")})"; + sb.AppendLine(tempStr); + return sb.ToString().TrimEnd(); } diff --git a/Source/ArachnaeSwarm/ARA_CompInteractiveProducer/DataContracts.cs b/Source/ArachnaeSwarm/ARA_CompInteractiveProducer/DataContracts.cs index f85a990..45cc95d 100644 --- a/Source/ArachnaeSwarm/ARA_CompInteractiveProducer/DataContracts.cs +++ b/Source/ArachnaeSwarm/ARA_CompInteractiveProducer/DataContracts.cs @@ -10,12 +10,20 @@ namespace ArachnaeSwarm public List blacklist; } - public class ProcessDef + public class ProcessDef : IExposable { public ThingDef thingDef; public int productionTicks; public float totalNutritionNeeded; public ResearchProjectDef requiredResearch; + + public void ExposeData() + { + Scribe_Defs.Look(ref thingDef, "thingDef"); + Scribe_Values.Look(ref productionTicks, "productionTicks", 0); + Scribe_Values.Look(ref totalNutritionNeeded, "totalNutritionNeeded", 0f); + Scribe_Defs.Look(ref requiredResearch, "requiredResearch"); + } } public class QualityThreshold