diff --git a/.gitignore b/.gitignore index 80f58166..6e3801a8 100644 --- a/.gitignore +++ b/.gitignore @@ -33,3 +33,4 @@ Source/MCP/pid.txt # MCP Knowledge Base Cache and Logs *.log MCP/vector_cache/*.txt +MCP/mcpserver.log diff --git a/1.6/1.6/Assemblies/WulaFallenEmpire.dll b/1.6/1.6/Assemblies/WulaFallenEmpire.dll index cd8fe8b7..5cf2af62 100644 Binary files a/1.6/1.6/Assemblies/WulaFallenEmpire.dll and b/1.6/1.6/Assemblies/WulaFallenEmpire.dll differ diff --git a/1.6/1.6/Defs/ThingDefs_Buildings/Buildings_WULA.xml b/1.6/1.6/Defs/ThingDefs_Buildings/Buildings_WULA.xml index 012f061c..b88d714b 100644 --- a/1.6/1.6/Defs/ThingDefs_Buildings/Buildings_WULA.xml +++ b/1.6/1.6/Defs/ThingDefs_Buildings/Buildings_WULA.xml @@ -793,8 +793,8 @@ true
  • - 180000 - 30000 + 30000 + 150000 500 25 WULA_Maintenance_Neglect diff --git a/1.6/1.6/Languages/ChineseSimplified (简体中文)/Keyed/WULA_Keyed.xml b/1.6/1.6/Languages/ChineseSimplified (简体中文)/Keyed/WULA_Keyed.xml index 90027285..e711aa26 100644 --- a/1.6/1.6/Languages/ChineseSimplified (简体中文)/Keyed/WULA_Keyed.xml +++ b/1.6/1.6/Languages/ChineseSimplified (简体中文)/Keyed/WULA_Keyed.xml @@ -13,6 +13,8 @@ 中止维护并弹出殖民者。 {PAWN_nameDef} 的维护已完成。 维护已取消。 + {PAWN_nameDef} 的所有受损部位都已修复。 + {PAWN_nameDef} 的维护已完成,但{PAWN_nameDef} 没有可修复的受损部位。 没有可用的零部件来搬运。 \ No newline at end of file diff --git a/MCP/mcpserver.log b/MCP/mcpserver.log index 4dbebd4a..fc96aa6c 100644 --- a/MCP/mcpserver.log +++ b/MCP/mcpserver.log @@ -1042,3 +1042,31 @@ requests.exceptions.SSLError: HTTPSConnectionPool(host='dashscope.aliyuncs.com', 2025-08-14 09:32:45,198 - INFO - Processing request of type ListToolsRequest 2025-08-14 09:32:45,199 - INFO - Processing request of type ListResourcesRequest 2025-08-14 09:32:45,201 - INFO - Processing request of type ListResourceTemplatesRequest +2025-08-14 09:32:51,544 - INFO - 成功加载 DASHSCOPE_API_KEY。 +2025-08-14 09:32:51,553 - INFO - RimWorld 向量知识库 (FastMCP版, v2.1-v4-model) 正在启动... +2025-08-14 09:32:51,560 - INFO - Processing request of type ListToolsRequest +2025-08-14 09:32:51,561 - INFO - Processing request of type ListResourcesRequest +2025-08-14 09:32:51,561 - INFO - Processing request of type ListResourceTemplatesRequest +2025-08-14 09:38:03,879 - INFO - Processing request of type CallToolRequest +2025-08-14 09:38:03,879 - INFO - 收到问题: JobDriver for entering cryptosleep casket +2025-08-14 09:38:03,880 - INFO - 找到的潜在关键词: ['JobDriver'] +2025-08-14 09:38:03,880 - INFO - 提取到关键词: ['JobDriver'] +2025-08-14 09:38:03,880 - INFO - 缓存未命中,开始实时搜索: JobDriver +2025-08-14 09:38:05,311 - INFO - 找到 380 个候选文件,开始向量化处理... +2025-08-14 09:38:05,312 - INFO - 文件名精确匹配: C:\Steam\steamapps\common\RimWorld\Data\dll1.6\Verse.AI\JobDriver.txt +2025-08-14 09:38:05,312 - WARNING - 候选文件过多 (379),仅处理前 25 个。 +2025-08-14 09:38:12,339 - INFO - 向量搜索完成。找到了 1 个匹配项并成功提取了代码。 +2025-08-14 09:43:38,598 - INFO - Processing request of type CallToolRequest +2025-08-14 09:43:38,598 - INFO - 收到问题: JobDriver_EnterCryptosleepCasket +2025-08-14 09:43:38,598 - INFO - 找到的潜在关键词: ['JobDriver_EnterCryptosleepCasket'] +2025-08-14 09:43:38,598 - INFO - 提取到关键词: ['JobDriver_EnterCryptosleepCasket'] +2025-08-14 09:43:38,608 - INFO - 缓存命中: 关键词 'JobDriver_EnterCryptosleepCasket' +2025-08-14 10:16:31,150 - INFO - Processing request of type CallToolRequest +2025-08-14 10:16:31,152 - INFO - 收到问题: class DebugSettings +2025-08-14 10:16:31,152 - INFO - 找到的潜在关键词: ['DebugSettings'] +2025-08-14 10:16:31,152 - INFO - 提取到关键词: ['DebugSettings'] +2025-08-14 10:16:31,152 - INFO - 缓存未命中,开始实时搜索: DebugSettings +2025-08-14 10:16:32,933 - INFO - 找到 207 个候选文件,开始向量化处理... +2025-08-14 10:16:32,934 - INFO - 文件名精确匹配: C:\Steam\steamapps\common\RimWorld\Data\dll1.6\Verse\DebugSettings.txt +2025-08-14 10:16:32,934 - WARNING - 候选文件过多 (206),仅处理前 25 个。 +2025-08-14 10:16:40,201 - INFO - 向量搜索完成。找到了 2 个匹配项并成功提取了代码。 diff --git a/Source/WulaFallenEmpire/CompMaintenancePod.cs b/Source/WulaFallenEmpire/CompMaintenancePod.cs index f7865ded..8dcb272e 100644 --- a/Source/WulaFallenEmpire/CompMaintenancePod.cs +++ b/Source/WulaFallenEmpire/CompMaintenancePod.cs @@ -165,6 +165,8 @@ namespace WulaFallenEmpire return; } + // 1. Fix the maintenance hediff + bool maintenanceDone = false; if (Props.hediffToRemove != null) { Hediff hediff = occupant.health.hediffSet.GetFirstHediffOfDef(Props.hediffToRemove); @@ -172,8 +174,34 @@ namespace WulaFallenEmpire { hediff.Severity = Props.hediffSeverityAfterCycle; Messages.Message("WULA_MaintenanceComplete".Translate(occupant.Named("PAWN")), occupant, MessageTypeDefOf.PositiveEvent); + maintenanceDone = true; } } + + // 2. Heal all other injuries + int injuriesHealed = 0; + while (HealthUtility.TryGetWorstHealthCondition(occupant, out var hediffToFix, out var _)) + { + // Ensure we don't try to "heal" the maintenance hediff itself + if (hediffToFix.def == Props.hediffToRemove) + { + break; + } + + HealthUtility.FixWorstHealthCondition(occupant); + injuriesHealed++; + } + + if (injuriesHealed > 0) + { + Messages.Message("WULA_MaintenanceHealedAllWounds".Translate(occupant.Named("PAWN")), occupant, MessageTypeDefOf.PositiveEvent); + } + else if (!maintenanceDone) + { + // If nothing was done at all, give a neutral message + Messages.Message("WULA_MaintenanceNoEffect".Translate(occupant.Named("PAWN")), occupant, MessageTypeDefOf.NeutralEvent); + } + EjectPawn(); } @@ -262,6 +290,21 @@ namespace WulaFallenEmpire }; yield return cancelCommand; } + + // DEV GIZMO + if (DebugSettings.godMode && state == MaintenancePodState.Running) + { + var finishCommand = new Command_Action + { + defaultLabel = "DEV: Finish Cycle", + action = () => + { + Log.Warning("[WulaPodDebug] DEV: Force finishing cycle."); + CycleFinished(); + } + }; + yield return finishCommand; + } } private List GetPawnOptions()