Merge branch 'main' of https://github.com/Tourswen/WulaFallenEmpireRW
This commit is contained in:
Binary file not shown.
Binary file not shown.
@@ -22,7 +22,7 @@
|
|||||||
<Intellectual>5</Intellectual>
|
<Intellectual>5</Intellectual>
|
||||||
</skillGains>
|
</skillGains>
|
||||||
<spawnCategories>
|
<spawnCategories>
|
||||||
<li>Wula_Old_Synth_Backstory_Categories</li>
|
<li>Wula_Backstory_Categories</li>
|
||||||
</spawnCategories>
|
</spawnCategories>
|
||||||
<requiredWorkTags>None</requiredWorkTags>
|
<requiredWorkTags>None</requiredWorkTags>
|
||||||
<forcedHediffs>
|
<forcedHediffs>
|
||||||
|
|||||||
@@ -978,4 +978,4 @@
|
|||||||
</li>
|
</li>
|
||||||
</stages>
|
</stages>
|
||||||
</HediffDef>
|
</HediffDef>
|
||||||
</Defs>
|
</Defs>
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
<?xml version="1.0" encoding="utf-8" ?>
|
<?xml version="1.0" encoding="utf-8" ?>
|
||||||
<Defs>
|
<Defs>
|
||||||
|
|
||||||
<!-- <ThingDef ParentName="ImplantBase">
|
<ThingDef ParentName="ImplantBase">
|
||||||
<defName>Wula_BackstoryRegeneratorImplant</defName>
|
<defName>Wula_BackstoryRegeneratorImplant</defName>
|
||||||
<label>backstory regenerator</label>
|
<label>backstory regenerator</label>
|
||||||
<thingClass>ThingWithComps</thingClass>
|
<thingClass>ThingWithComps</thingClass>
|
||||||
@@ -64,6 +64,6 @@
|
|||||||
<li>Brain</li>
|
<li>Brain</li>
|
||||||
</appliedOnFixedBodyParts>
|
</appliedOnFixedBodyParts>
|
||||||
<addsHediff>Wula_RegenerateBackstory</addsHediff>
|
<addsHediff>Wula_RegenerateBackstory</addsHediff>
|
||||||
</RecipeDef> -->
|
</RecipeDef>
|
||||||
|
|
||||||
</Defs>
|
</Defs>
|
||||||
|
|||||||
Binary file not shown.
@@ -3,20 +3,20 @@
|
|||||||
"WorkspaceRootPath": "C:\\Steam\\steamapps\\common\\RimWorld\\Mods\\3516260226\\Source\\WulaFallenEmpire\\",
|
"WorkspaceRootPath": "C:\\Steam\\steamapps\\common\\RimWorld\\Mods\\3516260226\\Source\\WulaFallenEmpire\\",
|
||||||
"Documents": [
|
"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}",
|
"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:mechanitorpatch.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}",
|
"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}"
|
"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}",
|
"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}"
|
"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": [
|
"DocumentGroupContainers": [
|
||||||
@@ -26,7 +26,7 @@
|
|||||||
"DocumentGroups": [
|
"DocumentGroups": [
|
||||||
{
|
{
|
||||||
"DockedWidth": 200,
|
"DockedWidth": 200,
|
||||||
"SelectedChildIndex": 3,
|
"SelectedChildIndex": 2,
|
||||||
"Children": [
|
"Children": [
|
||||||
{
|
{
|
||||||
"$type": "Bookmark",
|
"$type": "Bookmark",
|
||||||
@@ -40,46 +40,49 @@
|
|||||||
"RelativeDocumentMoniker": "HediffComp_RegenerateBackstory.cs",
|
"RelativeDocumentMoniker": "HediffComp_RegenerateBackstory.cs",
|
||||||
"ToolTip": "C:\\Steam\\steamapps\\common\\RimWorld\\Mods\\3516260226\\Source\\WulaFallenEmpire\\HediffComp_RegenerateBackstory.cs",
|
"ToolTip": "C:\\Steam\\steamapps\\common\\RimWorld\\Mods\\3516260226\\Source\\WulaFallenEmpire\\HediffComp_RegenerateBackstory.cs",
|
||||||
"RelativeToolTip": "HediffComp_RegenerateBackstory.cs",
|
"RelativeToolTip": "HediffComp_RegenerateBackstory.cs",
|
||||||
"ViewState": "AQIAAB4AAAAAAAAAAAAIwHIAAAABAAAA",
|
"ViewState": "AQIAAAAAAAAAAAAAAAAAAHIAAAABAAAA",
|
||||||
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
|
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
|
||||||
"WhenOpened": "2025-07-18T11:23:19.064Z"
|
"WhenOpened": "2025-07-18T11:23:19.064Z",
|
||||||
|
"EditorCaption": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"$type": "Document",
|
"$type": "Document",
|
||||||
"DocumentIndex": 2,
|
"DocumentIndex": 0,
|
||||||
"Title": "WulaFallenEmpireMod.cs",
|
"Title": "WulaFallenEmpireMod.cs",
|
||||||
"DocumentMoniker": "C:\\Steam\\steamapps\\common\\RimWorld\\Mods\\3516260226\\Source\\WulaFallenEmpire\\WulaFallenEmpireMod.cs",
|
"DocumentMoniker": "C:\\Steam\\steamapps\\common\\RimWorld\\Mods\\3516260226\\Source\\WulaFallenEmpire\\WulaFallenEmpireMod.cs",
|
||||||
"RelativeDocumentMoniker": "WulaFallenEmpireMod.cs",
|
"RelativeDocumentMoniker": "WulaFallenEmpireMod.cs",
|
||||||
"ToolTip": "C:\\Steam\\steamapps\\common\\RimWorld\\Mods\\3516260226\\Source\\WulaFallenEmpire\\WulaFallenEmpireMod.cs",
|
"ToolTip": "C:\\Steam\\steamapps\\common\\RimWorld\\Mods\\3516260226\\Source\\WulaFallenEmpire\\WulaFallenEmpireMod.cs",
|
||||||
"RelativeToolTip": "WulaFallenEmpireMod.cs",
|
"RelativeToolTip": "WulaFallenEmpireMod.cs",
|
||||||
"ViewState": "AQIAAAAAAAAAAAAAAADwvxQAAAAAAAAA",
|
"ViewState": "AQIAAAAAAAAAAAAAAAAAABQAAAAAAAAA",
|
||||||
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
|
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
|
||||||
"WhenOpened": "2025-07-18T10:23:17.898Z"
|
"WhenOpened": "2025-07-18T10:23:17.898Z",
|
||||||
|
"EditorCaption": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"$type": "Document",
|
"$type": "Document",
|
||||||
"DocumentIndex": 0,
|
"DocumentIndex": 3,
|
||||||
"Title": "MechanitorPatch.cs",
|
"Title": "MechanitorPatch.cs",
|
||||||
"DocumentMoniker": "C:\\Steam\\steamapps\\common\\RimWorld\\Mods\\3516260226\\Source\\WulaFallenEmpire\\MechanitorPatch.cs",
|
"DocumentMoniker": "C:\\Steam\\steamapps\\common\\RimWorld\\Mods\\3516260226\\Source\\WulaFallenEmpire\\MechanitorPatch.cs",
|
||||||
"RelativeDocumentMoniker": "MechanitorPatch.cs",
|
"RelativeDocumentMoniker": "MechanitorPatch.cs",
|
||||||
"ToolTip": "C:\\Steam\\steamapps\\common\\RimWorld\\Mods\\3516260226\\Source\\WulaFallenEmpire\\MechanitorPatch.cs",
|
"ToolTip": "C:\\Steam\\steamapps\\common\\RimWorld\\Mods\\3516260226\\Source\\WulaFallenEmpire\\MechanitorPatch.cs",
|
||||||
"RelativeToolTip": "MechanitorPatch.cs",
|
"RelativeToolTip": "MechanitorPatch.cs",
|
||||||
"ViewState": "AQIAAAAAAAAAAAAAAAAAABQAAAAsAAAA",
|
"ViewState": "AQIAAAAAAAAAAAAAAAAAACEAAAAJAAAA",
|
||||||
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
|
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
|
||||||
"WhenOpened": "2025-07-18T10:20:31.368Z",
|
"WhenOpened": "2025-07-18T10:20:31.368Z",
|
||||||
"EditorCaption": ""
|
"EditorCaption": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"$type": "Document",
|
"$type": "Document",
|
||||||
"DocumentIndex": 3,
|
"DocumentIndex": 2,
|
||||||
"Title": "Building_Wula_DarkEnergy_Engine.cs",
|
"Title": "Building_Wula_DarkEnergy_Engine.cs",
|
||||||
"DocumentMoniker": "C:\\Steam\\steamapps\\common\\RimWorld\\Mods\\3516260226\\Source\\WulaFallenEmpire\\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",
|
"RelativeDocumentMoniker": "Building_Wula_DarkEnergy_Engine.cs",
|
||||||
"ToolTip": "C:\\Steam\\steamapps\\common\\RimWorld\\Mods\\3516260226\\Source\\WulaFallenEmpire\\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",
|
"RelativeToolTip": "Building_Wula_DarkEnergy_Engine.cs",
|
||||||
"ViewState": "AQIAAAYAAAAAAAAAAADwvwAAAAAAAAAA",
|
"ViewState": "AQIAAAAAAAAAAAAAAAAAAAAAAAAAAAAA",
|
||||||
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
|
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
|
||||||
"WhenOpened": "2025-07-14T12:24:18.86Z"
|
"WhenOpened": "2025-07-14T12:24:18.86Z",
|
||||||
|
"EditorCaption": ""
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -5,37 +5,51 @@ using RimWorld;
|
|||||||
using Verse;
|
using Verse;
|
||||||
using HarmonyLib; // 引入Harmony库
|
using HarmonyLib; // 引入Harmony库
|
||||||
|
|
||||||
// 定义一个新的HediffComp,用于标记可以赋予机械师能力的Hediff
|
namespace WulaFallenEmpire
|
||||||
public class HediffComp_MakesMechanitor : HediffComp
|
|
||||||
{
|
{
|
||||||
// 这个组件本身不需要任何特殊逻辑,它的存在就是标记
|
// 定义一个新的HediffCompProperties,用作标记,以赋予机械师能力
|
||||||
}
|
public class HediffCompProperties_MakesMechanitor : HediffCompProperties
|
||||||
|
|
||||||
// Harmony Patch类,用于修改MechanitorUtility.ShouldBeMechanitor方法
|
|
||||||
[HarmonyPatch(typeof(MechanitorUtility), "ShouldBeMechanitor")]
|
|
||||||
public static class MechanitorShouldBeMechanitorPatch
|
|
||||||
{
|
|
||||||
// Postfix方法将在原始方法执行后运行
|
|
||||||
// originalResult 是原始方法的返回值
|
|
||||||
// pawn 是原始方法的参数
|
|
||||||
public static void Postfix(Pawn pawn, ref bool __result)
|
|
||||||
{
|
{
|
||||||
// 如果原始方法已经返回true,则无需进一步检查
|
// 这个类本身不需要任何逻辑,它的存在就是为了在XML中被引用作为标记
|
||||||
if (__result)
|
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组件
|
// 如果原始方法已经返回true,则无需进一步检查
|
||||||
foreach (Hediff hediff in pawn.health.hediffSet.hediffs)
|
if (__result)
|
||||||
{
|
{
|
||||||
if (hediff.TryGetComp<HediffComp_MakesMechanitor>() != null)
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 检查Biotech DLC是否激活且Pawn属于玩家安全派系
|
||||||
|
if (ModsConfig.BiotechActive && pawn.Faction.IsPlayerSafe())
|
||||||
|
{
|
||||||
|
// 遍历Pawn的所有Hediff
|
||||||
|
foreach (Hediff hediff in pawn.health.hediffSet.hediffs)
|
||||||
{
|
{
|
||||||
__result = true; // 如果找到,则将结果设置为true
|
// 检查Hediff的定义中是否包含HediffCompProperties_MakesMechanitor
|
||||||
return;
|
if (hediff.def.comps?.Any(c => c is HediffCompProperties_MakesMechanitor) ?? false)
|
||||||
|
{
|
||||||
|
__result = true; // 如果找到,则将结果设置为true
|
||||||
|
return;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Binary file not shown.
Binary file not shown.
Reference in New Issue
Block a user