diff --git a/1.6/Assemblies/WulaFallenEmpire.dll b/1.6/Assemblies/WulaFallenEmpire.dll
index 089ff34c..2a0f4132 100644
Binary files a/1.6/Assemblies/WulaFallenEmpire.dll and b/1.6/Assemblies/WulaFallenEmpire.dll differ
diff --git a/1.6/Assemblies/WulaFallenEmpire.pdb b/1.6/Assemblies/WulaFallenEmpire.pdb
index 4b3b205b..eda750d4 100644
Binary files a/1.6/Assemblies/WulaFallenEmpire.pdb and b/1.6/Assemblies/WulaFallenEmpire.pdb differ
diff --git a/1.6/Defs/BackstoryDefs/Solid/Solid_Child_WULA.xml b/1.6/Defs/BackstoryDefs/Solid/Solid_Child_WULA.xml
index 63353813..6cad7ed9 100644
--- a/1.6/Defs/BackstoryDefs/Solid/Solid_Child_WULA.xml
+++ b/1.6/Defs/BackstoryDefs/Solid/Solid_Child_WULA.xml
@@ -22,7 +22,7 @@
5
- Wula_Old_Synth_Backstory_Categories
+ Wula_Backstory_Categories
None
diff --git a/1.6/Defs/HediffDefs/Hediffs_BodyParts_WULA.xml b/1.6/Defs/HediffDefs/Hediffs_BodyParts_WULA.xml
index bb8df85e..48264757 100644
--- a/1.6/Defs/HediffDefs/Hediffs_BodyParts_WULA.xml
+++ b/1.6/Defs/HediffDefs/Hediffs_BodyParts_WULA.xml
@@ -978,4 +978,4 @@
-
\ No newline at end of file
+
diff --git a/1.6/Defs/HediffDefs/Implants_RegenerateBackstory.xml b/1.6/Defs/HediffDefs/Implants_RegenerateBackstory.xml
index e86c7f1f..3a808094 100644
--- a/1.6/Defs/HediffDefs/Implants_RegenerateBackstory.xml
+++ b/1.6/Defs/HediffDefs/Implants_RegenerateBackstory.xml
@@ -1,7 +1,7 @@
-
+
diff --git a/Source/WulaFallenEmpire/.vs/WulaFallenEmpire/v17/.suo b/Source/WulaFallenEmpire/.vs/WulaFallenEmpire/v17/.suo
index 8ae1430b..d0b6ec45 100644
Binary files a/Source/WulaFallenEmpire/.vs/WulaFallenEmpire/v17/.suo and b/Source/WulaFallenEmpire/.vs/WulaFallenEmpire/v17/.suo differ
diff --git a/Source/WulaFallenEmpire/.vs/WulaFallenEmpire/v17/DocumentLayout.json b/Source/WulaFallenEmpire/.vs/WulaFallenEmpire/v17/DocumentLayout.json
index a422ec69..eebf570d 100644
--- a/Source/WulaFallenEmpire/.vs/WulaFallenEmpire/v17/DocumentLayout.json
+++ b/Source/WulaFallenEmpire/.vs/WulaFallenEmpire/v17/DocumentLayout.json
@@ -3,20 +3,20 @@
"WorkspaceRootPath": "C:\\Steam\\steamapps\\common\\RimWorld\\Mods\\3516260226\\Source\\WulaFallenEmpire\\",
"Documents": [
{
- "AbsoluteMoniker": "D:0:0:{F5AE8C3B-0221-4C16-A128-9A62D521A8FF}|WulaFallenEmpire.csproj|c:\\steam\\steamapps\\common\\rimworld\\mods\\3516260226\\source\\wulafallenempire\\mechanitorpatch.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
- "RelativeMoniker": "D:0:0:{F5AE8C3B-0221-4C16-A128-9A62D521A8FF}|WulaFallenEmpire.csproj|solutionrelative:mechanitorpatch.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ "AbsoluteMoniker": "D:0:0:{F5AE8C3B-0221-4C16-A128-9A62D521A8FF}|WulaFallenEmpire.csproj|C:\\Steam\\steamapps\\common\\RimWorld\\Mods\\3516260226\\Source\\WulaFallenEmpire\\wulafallenempiremod.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{F5AE8C3B-0221-4C16-A128-9A62D521A8FF}|WulaFallenEmpire.csproj|solutionrelative:wulafallenempiremod.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
"AbsoluteMoniker": "D:0:0:{F5AE8C3B-0221-4C16-A128-9A62D521A8FF}|WulaFallenEmpire.csproj|C:\\Steam\\steamapps\\common\\RimWorld\\Mods\\3516260226\\Source\\WulaFallenEmpire\\hediffcomp_regeneratebackstory.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{F5AE8C3B-0221-4C16-A128-9A62D521A8FF}|WulaFallenEmpire.csproj|solutionrelative:hediffcomp_regeneratebackstory.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
- {
- "AbsoluteMoniker": "D:0:0:{F5AE8C3B-0221-4C16-A128-9A62D521A8FF}|WulaFallenEmpire.csproj|C:\\Steam\\steamapps\\common\\RimWorld\\Mods\\3516260226\\Source\\WulaFallenEmpire\\wulafallenempiremod.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
- "RelativeMoniker": "D:0:0:{F5AE8C3B-0221-4C16-A128-9A62D521A8FF}|WulaFallenEmpire.csproj|solutionrelative:wulafallenempiremod.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
- },
{
"AbsoluteMoniker": "D:0:0:{F5AE8C3B-0221-4C16-A128-9A62D521A8FF}|WulaFallenEmpire.csproj|C:\\Steam\\steamapps\\common\\RimWorld\\Mods\\3516260226\\Source\\WulaFallenEmpire\\building_wula_darkenergy_engine.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{F5AE8C3B-0221-4C16-A128-9A62D521A8FF}|WulaFallenEmpire.csproj|solutionrelative:building_wula_darkenergy_engine.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{F5AE8C3B-0221-4C16-A128-9A62D521A8FF}|WulaFallenEmpire.csproj|c:\\steam\\steamapps\\common\\rimworld\\mods\\3516260226\\source\\wulafallenempire\\mechanitorpatch.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{F5AE8C3B-0221-4C16-A128-9A62D521A8FF}|WulaFallenEmpire.csproj|solutionrelative:mechanitorpatch.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
}
],
"DocumentGroupContainers": [
@@ -26,7 +26,7 @@
"DocumentGroups": [
{
"DockedWidth": 200,
- "SelectedChildIndex": 3,
+ "SelectedChildIndex": 2,
"Children": [
{
"$type": "Bookmark",
@@ -40,46 +40,49 @@
"RelativeDocumentMoniker": "HediffComp_RegenerateBackstory.cs",
"ToolTip": "C:\\Steam\\steamapps\\common\\RimWorld\\Mods\\3516260226\\Source\\WulaFallenEmpire\\HediffComp_RegenerateBackstory.cs",
"RelativeToolTip": "HediffComp_RegenerateBackstory.cs",
- "ViewState": "AQIAAB4AAAAAAAAAAAAIwHIAAAABAAAA",
+ "ViewState": "AQIAAAAAAAAAAAAAAAAAAHIAAAABAAAA",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
- "WhenOpened": "2025-07-18T11:23:19.064Z"
+ "WhenOpened": "2025-07-18T11:23:19.064Z",
+ "EditorCaption": ""
},
{
"$type": "Document",
- "DocumentIndex": 2,
+ "DocumentIndex": 0,
"Title": "WulaFallenEmpireMod.cs",
"DocumentMoniker": "C:\\Steam\\steamapps\\common\\RimWorld\\Mods\\3516260226\\Source\\WulaFallenEmpire\\WulaFallenEmpireMod.cs",
"RelativeDocumentMoniker": "WulaFallenEmpireMod.cs",
"ToolTip": "C:\\Steam\\steamapps\\common\\RimWorld\\Mods\\3516260226\\Source\\WulaFallenEmpire\\WulaFallenEmpireMod.cs",
"RelativeToolTip": "WulaFallenEmpireMod.cs",
- "ViewState": "AQIAAAAAAAAAAAAAAADwvxQAAAAAAAAA",
+ "ViewState": "AQIAAAAAAAAAAAAAAAAAABQAAAAAAAAA",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
- "WhenOpened": "2025-07-18T10:23:17.898Z"
+ "WhenOpened": "2025-07-18T10:23:17.898Z",
+ "EditorCaption": ""
},
{
"$type": "Document",
- "DocumentIndex": 0,
+ "DocumentIndex": 3,
"Title": "MechanitorPatch.cs",
"DocumentMoniker": "C:\\Steam\\steamapps\\common\\RimWorld\\Mods\\3516260226\\Source\\WulaFallenEmpire\\MechanitorPatch.cs",
"RelativeDocumentMoniker": "MechanitorPatch.cs",
"ToolTip": "C:\\Steam\\steamapps\\common\\RimWorld\\Mods\\3516260226\\Source\\WulaFallenEmpire\\MechanitorPatch.cs",
"RelativeToolTip": "MechanitorPatch.cs",
- "ViewState": "AQIAAAAAAAAAAAAAAAAAABQAAAAsAAAA",
+ "ViewState": "AQIAAAAAAAAAAAAAAAAAACEAAAAJAAAA",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2025-07-18T10:20:31.368Z",
"EditorCaption": ""
},
{
"$type": "Document",
- "DocumentIndex": 3,
+ "DocumentIndex": 2,
"Title": "Building_Wula_DarkEnergy_Engine.cs",
"DocumentMoniker": "C:\\Steam\\steamapps\\common\\RimWorld\\Mods\\3516260226\\Source\\WulaFallenEmpire\\Building_Wula_DarkEnergy_Engine.cs",
"RelativeDocumentMoniker": "Building_Wula_DarkEnergy_Engine.cs",
"ToolTip": "C:\\Steam\\steamapps\\common\\RimWorld\\Mods\\3516260226\\Source\\WulaFallenEmpire\\Building_Wula_DarkEnergy_Engine.cs",
"RelativeToolTip": "Building_Wula_DarkEnergy_Engine.cs",
- "ViewState": "AQIAAAYAAAAAAAAAAADwvwAAAAAAAAAA",
+ "ViewState": "AQIAAAAAAAAAAAAAAAAAAAAAAAAAAAAA",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
- "WhenOpened": "2025-07-14T12:24:18.86Z"
+ "WhenOpened": "2025-07-14T12:24:18.86Z",
+ "EditorCaption": ""
}
]
}
diff --git a/Source/WulaFallenEmpire/MechanitorPatch.cs b/Source/WulaFallenEmpire/MechanitorPatch.cs
index 97a4ab84..6572ec37 100644
--- a/Source/WulaFallenEmpire/MechanitorPatch.cs
+++ b/Source/WulaFallenEmpire/MechanitorPatch.cs
@@ -5,37 +5,51 @@ using RimWorld;
using Verse;
using HarmonyLib; // 引入Harmony库
-// 定义一个新的HediffComp,用于标记可以赋予机械师能力的Hediff
-public class HediffComp_MakesMechanitor : HediffComp
+namespace WulaFallenEmpire
{
- // 这个组件本身不需要任何特殊逻辑,它的存在就是标记
-}
-
-// Harmony Patch类,用于修改MechanitorUtility.ShouldBeMechanitor方法
-[HarmonyPatch(typeof(MechanitorUtility), "ShouldBeMechanitor")]
-public static class MechanitorShouldBeMechanitorPatch
-{
- // Postfix方法将在原始方法执行后运行
- // originalResult 是原始方法的返回值
- // pawn 是原始方法的参数
- public static void Postfix(Pawn pawn, ref bool __result)
+ // 定义一个新的HediffCompProperties,用作标记,以赋予机械师能力
+ public class HediffCompProperties_MakesMechanitor : HediffCompProperties
{
- // 如果原始方法已经返回true,则无需进一步检查
- if (__result)
+ // 这个类本身不需要任何逻辑,它的存在就是为了在XML中被引用作为标记
+ public HediffCompProperties_MakesMechanitor()
{
- return;
+ // compClass必须指向一个有效的HediffComp类。
+ // 由于我们只想用这个Properties作为标记,我们可以指向一个通用的、空的HediffComp。
+ // 但更简洁的方法是直接在补丁里检查Properties本身。
+ // 为了避免运行时错误,我们暂时指向一个基础的HediffComp。
+ // 实际上,在下面的补丁逻辑中,我们不会实例化这个compClass。
+ this.compClass = typeof(HediffComp);
}
+ }
- // 检查Biotech DLC是否激活且Pawn属于玩家安全派系
- if (ModsConfig.BiotechActive && pawn.Faction.IsPlayerSafe())
+
+ // Harmony Patch类,用于修改MechanitorUtility.ShouldBeMechanitor方法
+ [HarmonyPatch(typeof(MechanitorUtility), "ShouldBeMechanitor")]
+ public static class MechanitorShouldBeMechanitorPatch
+ {
+ // Postfix方法将在原始方法执行后运行
+ // originalResult 是原始方法的返回值
+ // pawn 是原始方法的参数
+ public static void Postfix(Pawn pawn, ref bool __result)
{
- // 遍历Pawn的所有Hediff,检查是否存在HediffComp_MakesMechanitor组件
- foreach (Hediff hediff in pawn.health.hediffSet.hediffs)
+ // 如果原始方法已经返回true,则无需进一步检查
+ if (__result)
{
- if (hediff.TryGetComp() != null)
+ return;
+ }
+
+ // 检查Biotech DLC是否激活且Pawn属于玩家安全派系
+ if (ModsConfig.BiotechActive && pawn.Faction.IsPlayerSafe())
+ {
+ // 遍历Pawn的所有Hediff
+ foreach (Hediff hediff in pawn.health.hediffSet.hediffs)
{
- __result = true; // 如果找到,则将结果设置为true
- return;
+ // 检查Hediff的定义中是否包含HediffCompProperties_MakesMechanitor
+ if (hediff.def.comps?.Any(c => c is HediffCompProperties_MakesMechanitor) ?? false)
+ {
+ __result = true; // 如果找到,则将结果设置为true
+ return;
+ }
}
}
}
diff --git a/Source/WulaFallenEmpire/obj/Debug/WulaFallenEmpire.dll b/Source/WulaFallenEmpire/obj/Debug/WulaFallenEmpire.dll
index 089ff34c..2a0f4132 100644
Binary files a/Source/WulaFallenEmpire/obj/Debug/WulaFallenEmpire.dll and b/Source/WulaFallenEmpire/obj/Debug/WulaFallenEmpire.dll differ
diff --git a/Source/WulaFallenEmpire/obj/Debug/WulaFallenEmpire.pdb b/Source/WulaFallenEmpire/obj/Debug/WulaFallenEmpire.pdb
index 4b3b205b..eda750d4 100644
Binary files a/Source/WulaFallenEmpire/obj/Debug/WulaFallenEmpire.pdb and b/Source/WulaFallenEmpire/obj/Debug/WulaFallenEmpire.pdb differ