This commit is contained in:
2026-03-30 17:29:01 +08:00
parent 001f33e2e7
commit 36e3c940c7
7 changed files with 158 additions and 22 deletions

Binary file not shown.

View File

@@ -12,6 +12,7 @@
<factionNameMaker>ARA_New_Hive_NamerFaction</factionNameMaker> <factionNameMaker>ARA_New_Hive_NamerFaction</factionNameMaker>
<factionIconPath>World/WorldObjects/Expanding/HoraxCult</factionIconPath> <factionIconPath>World/WorldObjects/Expanding/HoraxCult</factionIconPath>
<displayInFactionSelection>true</displayInFactionSelection> <displayInFactionSelection>true</displayInFactionSelection>
<canGenerateQuestSites>false</canGenerateQuestSites>
<!-- <settlementGenerationWeight>1</settlementGenerationWeight> --> <!-- <settlementGenerationWeight>1</settlementGenerationWeight> -->
<canSiege>false</canSiege> <canSiege>false</canSiege>
<canStageAttacks>false</canStageAttacks> <canStageAttacks>false</canStageAttacks>
@@ -130,7 +131,7 @@
</points> </points>
</raidLootValueFromPointsCurve> </raidLootValueFromPointsCurve>
<humanlikeFaction>true</humanlikeFaction> <humanlikeFaction>true</humanlikeFaction>
<hidden>false</hidden> <hidden>true</hidden>
<autoFlee>false</autoFlee> <autoFlee>false</autoFlee>
<canUseAvoidGrid>false</canUseAvoidGrid> <canUseAvoidGrid>false</canUseAvoidGrid>
<apparelStuffFilter> <apparelStuffFilter>

View File

@@ -161,7 +161,10 @@
</headOffsetDirectional> </headOffsetDirectional>
</alienPartGenerator> </alienPartGenerator>
<growthAges> <growthAges>
<li>0</li> <li>0.25</li>
<li>0.5</li>
<li>0.75</li>
<li>1</li>
</growthAges> </growthAges>
<!-- 年龄工作效率等的覆盖 --> <!-- 年龄工作效率等的覆盖 -->
<ageStatOverrides> <ageStatOverrides>
@@ -552,6 +555,7 @@
<baseHealthScale>1.5</baseHealthScale> <baseHealthScale>1.5</baseHealthScale>
<!-- 解剖产物 --> <!-- 解剖产物 -->
<leatherDef>ARA_Carapace</leatherDef> <leatherDef>ARA_Carapace</leatherDef>
<lifeExpectancy>80</lifeExpectancy>
<!-- 身体类型 --> <!-- 身体类型 -->
<body>Human</body> <body>Human</body>
<lifeStageWorkSettings MayRequire="Ludeon.RimWorld.Biotech"> <lifeStageWorkSettings MayRequire="Ludeon.RimWorld.Biotech">
@@ -610,7 +614,14 @@
<canFlyInVacuum>false</canFlyInVacuum> <canFlyInVacuum>false</canFlyInVacuum>
<!-- 身形大小,略大于常规人类 --> <!-- 身形大小,略大于常规人类 -->
<baseBodySize>1</baseBodySize> <baseBodySize>1</baseBodySize>
<ageGenerationCurve Inherit="False" IsNull="True"/> <ageGenerationCurve>
<points>
<li MayRequire="Ludeon.RimWorld.Biotech">(0,0)</li>
<li MayRequire="Ludeon.RimWorld.Biotech">(1,0)</li>
<li MayRequire="Ludeon.RimWorld.Biotech">(1.5,1)</li>
<li MayRequire="Ludeon.RimWorld.Biotech">(2,0)</li>
</points>
</ageGenerationCurve>
</race> </race>
<recipes Inherit="False"> <recipes Inherit="False">
@@ -774,7 +785,6 @@
<body>ArachnaeMyrmecocystus_Body</body> <body>ArachnaeMyrmecocystus_Body</body>
<!-- 血量上限 --> <!-- 血量上限 -->
<baseHealthScale>2</baseHealthScale> <baseHealthScale>2</baseHealthScale>
<ageGenerationCurve Inherit="False" IsNull="True"/>
</race> </race>
<comps> <comps>
@@ -928,7 +938,6 @@
<baseBodySize>1.5</baseBodySize> <baseBodySize>1.5</baseBodySize>
<!-- 血量上限 --> <!-- 血量上限 -->
<baseHealthScale>3</baseHealthScale> <baseHealthScale>3</baseHealthScale>
<ageGenerationCurve Inherit="False" IsNull="True"/>
</race> </race>
<comps> <comps>
@@ -1043,7 +1052,6 @@
<body>ArachnaeWeaponSmith_Body</body> <body>ArachnaeWeaponSmith_Body</body>
<baseBodySize>0.8</baseBodySize> <baseBodySize>0.8</baseBodySize>
<baseHealthScale>0.75</baseHealthScale> <baseHealthScale>0.75</baseHealthScale>
<ageGenerationCurve Inherit="False" IsNull="True"/>
</race> </race>
<comps> <comps>
@@ -1190,7 +1198,6 @@
<body>ArachnaeFighter_Body</body> <body>ArachnaeFighter_Body</body>
<baseBodySize>0.7</baseBodySize> <baseBodySize>0.7</baseBodySize>
<baseHealthScale>3</baseHealthScale> <baseHealthScale>3</baseHealthScale>
<ageGenerationCurve Inherit="False" IsNull="True"/>
</race> </race>
<comps> <comps>
@@ -1317,7 +1324,6 @@
<body>ArachnaeFacehugger_Body</body> <body>ArachnaeFacehugger_Body</body>
<baseBodySize>0.5</baseBodySize> <baseBodySize>0.5</baseBodySize>
<baseHealthScale>0.25</baseHealthScale> <baseHealthScale>0.25</baseHealthScale>
<ageGenerationCurve Inherit="False" IsNull="True"/>
</race> </race>
<comps> <comps>
<li Class="ArachnaeSwarm.CompProperties_HediffGiver"> <li Class="ArachnaeSwarm.CompProperties_HediffGiver">
@@ -1399,7 +1405,6 @@
<!-- 身体类型 --> <!-- 身体类型 -->
<body>ArachnaeSmokepop_Body</body> <body>ArachnaeSmokepop_Body</body>
<baseHealthScale>4</baseHealthScale> <baseHealthScale>4</baseHealthScale>
<ageGenerationCurve Inherit="False" IsNull="True"/>
</race> </race>
<comps> <comps>
@@ -1525,7 +1530,6 @@
<flightStartChanceOnJobStart>1.0</flightStartChanceOnJobStart> <flightStartChanceOnJobStart>1.0</flightStartChanceOnJobStart>
<!-- <baseBodySize>0.8</baseBodySize> --> <!-- <baseBodySize>0.8</baseBodySize> -->
<baseHealthScale>2</baseHealthScale> <baseHealthScale>2</baseHealthScale>
<ageGenerationCurve Inherit="False" IsNull="True"/>
</race> </race>
<comps> <comps>
@@ -1742,7 +1746,6 @@
<flightStartChanceOnJobStart>1.0</flightStartChanceOnJobStart> <flightStartChanceOnJobStart>1.0</flightStartChanceOnJobStart>
<baseBodySize>0.8</baseBodySize> <baseBodySize>0.8</baseBodySize>
<baseHealthScale>2</baseHealthScale> <baseHealthScale>2</baseHealthScale>
<ageGenerationCurve Inherit="False" IsNull="True"/>
</race> </race>
<comps> <comps>
@@ -1950,7 +1953,6 @@
<body>ArachnaePraetorian_Body</body> <body>ArachnaePraetorian_Body</body>
<baseBodySize>2</baseBodySize> <baseBodySize>2</baseBodySize>
<baseHealthScale>3</baseHealthScale> <baseHealthScale>3</baseHealthScale>
<ageGenerationCurve Inherit="False" IsNull="True"/>
</race> </race>
<comps> <comps>

View File

@@ -2,6 +2,18 @@
"Version": 1, "Version": 1,
"WorkspaceRootPath": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\", "WorkspaceRootPath": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\",
"Documents": [ "Documents": [
{
"AbsoluteMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|d:\\steamlibrary\\steamapps\\common\\rimworld\\mods\\arachnaeswarm\\source\\arachnaeswarm\\harmonypatches\\patch_namegenerator_generatename.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:harmonypatches\\patch_namegenerator_generatename.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
"AbsoluteMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|d:\\steamlibrary\\steamapps\\common\\rimworld\\mods\\arachnaeswarm\\source\\arachnaeswarm\\harmonypatches\\patch_pawn_needstracker_shouldhaveneed.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:harmonypatches\\patch_pawn_needstracker_shouldhaveneed.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
"AbsoluteMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|d:\\steamlibrary\\steamapps\\common\\rimworld\\mods\\arachnaeswarm\\source\\arachnaeswarm\\harmonypatches\\patch_forcetargetable.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:harmonypatches\\patch_forcetargetable.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{ {
"AbsoluteMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|d:\\steamlibrary\\steamapps\\common\\rimworld\\mods\\arachnaeswarm\\source\\arachnaeswarm\\jobs\\jobdriver_feedwithhoney\\thinknode_jobgiver_feedwithhoney.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", "AbsoluteMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|d:\\steamlibrary\\steamapps\\common\\rimworld\\mods\\arachnaeswarm\\source\\arachnaeswarm\\jobs\\jobdriver_feedwithhoney\\thinknode_jobgiver_feedwithhoney.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:jobs\\jobdriver_feedwithhoney\\thinknode_jobgiver_feedwithhoney.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" "RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:jobs\\jobdriver_feedwithhoney\\thinknode_jobgiver_feedwithhoney.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
@@ -46,28 +58,67 @@
"DocumentGroups": [ "DocumentGroups": [
{ {
"DockedWidth": 200, "DockedWidth": 200,
"SelectedChildIndex": 1, "SelectedChildIndex": 3,
"Children": [ "Children": [
{ {
"$type": "Bookmark", "$type": "Bookmark",
"Name": "ST:0:0:{1c4feeaa-4718-4aa9-859d-94ce25d182ba}" "Name": "ST:0:0:{1c4feeaa-4718-4aa9-859d-94ce25d182ba}"
}, },
{
"$type": "Document",
"DocumentIndex": 1,
"Title": "Patch_Pawn_NeedsTracker_ShouldHaveNeed.cs",
"DocumentMoniker": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\HarmonyPatches\\Patch_Pawn_NeedsTracker_ShouldHaveNeed.cs",
"RelativeDocumentMoniker": "HarmonyPatches\\Patch_Pawn_NeedsTracker_ShouldHaveNeed.cs",
"ToolTip": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\HarmonyPatches\\Patch_Pawn_NeedsTracker_ShouldHaveNeed.cs",
"RelativeToolTip": "HarmonyPatches\\Patch_Pawn_NeedsTracker_ShouldHaveNeed.cs",
"ViewState": "AgIAAAAAAAAAAAAAAAAAABUAAAAAAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2026-03-30T08:59:27.329Z",
"EditorCaption": ""
},
{
"$type": "Document",
"DocumentIndex": 2,
"Title": "Patch_ForceTargetable.cs",
"DocumentMoniker": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\HarmonyPatches\\Patch_ForceTargetable.cs",
"RelativeDocumentMoniker": "HarmonyPatches\\Patch_ForceTargetable.cs",
"ToolTip": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\HarmonyPatches\\Patch_ForceTargetable.cs",
"RelativeToolTip": "HarmonyPatches\\Patch_ForceTargetable.cs",
"ViewState": "AgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2026-03-30T08:59:20.658Z",
"EditorCaption": ""
},
{ {
"$type": "Document", "$type": "Document",
"DocumentIndex": 0, "DocumentIndex": 0,
"Title": "Patch_NameGenerator_GenerateName.cs",
"DocumentMoniker": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\HarmonyPatches\\Patch_NameGenerator_GenerateName.cs",
"RelativeDocumentMoniker": "HarmonyPatches\\Patch_NameGenerator_GenerateName.cs",
"ToolTip": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\HarmonyPatches\\Patch_NameGenerator_GenerateName.cs",
"RelativeToolTip": "HarmonyPatches\\Patch_NameGenerator_GenerateName.cs",
"ViewState": "AgIAAAAAAAAAAAAAAAAAABQAAAA4AAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2026-03-30T06:59:38.582Z",
"EditorCaption": ""
},
{
"$type": "Document",
"DocumentIndex": 3,
"Title": "ThinkNode_JobGiver_FeedWithHoney.cs", "Title": "ThinkNode_JobGiver_FeedWithHoney.cs",
"DocumentMoniker": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Jobs\\JobDriver_FeedWithHoney\\ThinkNode_JobGiver_FeedWithHoney.cs", "DocumentMoniker": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Jobs\\JobDriver_FeedWithHoney\\ThinkNode_JobGiver_FeedWithHoney.cs",
"RelativeDocumentMoniker": "Jobs\\JobDriver_FeedWithHoney\\ThinkNode_JobGiver_FeedWithHoney.cs", "RelativeDocumentMoniker": "Jobs\\JobDriver_FeedWithHoney\\ThinkNode_JobGiver_FeedWithHoney.cs",
"ToolTip": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Jobs\\JobDriver_FeedWithHoney\\ThinkNode_JobGiver_FeedWithHoney.cs", "ToolTip": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Jobs\\JobDriver_FeedWithHoney\\ThinkNode_JobGiver_FeedWithHoney.cs",
"RelativeToolTip": "Jobs\\JobDriver_FeedWithHoney\\ThinkNode_JobGiver_FeedWithHoney.cs", "RelativeToolTip": "Jobs\\JobDriver_FeedWithHoney\\ThinkNode_JobGiver_FeedWithHoney.cs",
"ViewState": "AgIAAFIAAAAAAAAAAAAAwGoAAAABAAAAAAAAAA==", "ViewState": "AgIAAAkAAAAAAAAAAAAAAB8AAAAcAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2026-03-29T09:23:09.491Z", "WhenOpened": "2026-03-29T09:23:09.491Z",
"EditorCaption": "" "EditorCaption": ""
}, },
{ {
"$type": "Document", "$type": "Document",
"DocumentIndex": 1, "DocumentIndex": 4,
"Title": "ThinkNode_ConditionalAnimalShouldDoGrowingWork.cs", "Title": "ThinkNode_ConditionalAnimalShouldDoGrowingWork.cs",
"DocumentMoniker": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Jobs\\JobDriver_Plant\\ThinkNode_ConditionalAnimalShouldDoGrowingWork.cs", "DocumentMoniker": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Jobs\\JobDriver_Plant\\ThinkNode_ConditionalAnimalShouldDoGrowingWork.cs",
"RelativeDocumentMoniker": "Jobs\\JobDriver_Plant\\ThinkNode_ConditionalAnimalShouldDoGrowingWork.cs", "RelativeDocumentMoniker": "Jobs\\JobDriver_Plant\\ThinkNode_ConditionalAnimalShouldDoGrowingWork.cs",
@@ -79,7 +130,7 @@
}, },
{ {
"$type": "Document", "$type": "Document",
"DocumentIndex": 2, "DocumentIndex": 5,
"Title": "ThinkNode_ConditionalAnimalShouldDoCleaningWork.cs", "Title": "ThinkNode_ConditionalAnimalShouldDoCleaningWork.cs",
"DocumentMoniker": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Jobs\\JobDriver_Clean\\ThinkNode_ConditionalAnimalShouldDoCleaningWork.cs", "DocumentMoniker": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Jobs\\JobDriver_Clean\\ThinkNode_ConditionalAnimalShouldDoCleaningWork.cs",
"RelativeDocumentMoniker": "Jobs\\JobDriver_Clean\\ThinkNode_ConditionalAnimalShouldDoCleaningWork.cs", "RelativeDocumentMoniker": "Jobs\\JobDriver_Clean\\ThinkNode_ConditionalAnimalShouldDoCleaningWork.cs",
@@ -91,7 +142,7 @@
}, },
{ {
"$type": "Document", "$type": "Document",
"DocumentIndex": 3, "DocumentIndex": 6,
"Title": "HediffComp_Spawner.cs", "Title": "HediffComp_Spawner.cs",
"DocumentMoniker": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Hediffs\\ARA_Spawner\\HediffComp_Spawner.cs", "DocumentMoniker": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Hediffs\\ARA_Spawner\\HediffComp_Spawner.cs",
"RelativeDocumentMoniker": "Hediffs\\ARA_Spawner\\HediffComp_Spawner.cs", "RelativeDocumentMoniker": "Hediffs\\ARA_Spawner\\HediffComp_Spawner.cs",
@@ -103,7 +154,7 @@
}, },
{ {
"$type": "Document", "$type": "Document",
"DocumentIndex": 4, "DocumentIndex": 7,
"Title": "CompAdvancedTraining.cs", "Title": "CompAdvancedTraining.cs",
"DocumentMoniker": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Pawn_Comps\\ARA_TrainingWork\\CompAdvancedTraining.cs", "DocumentMoniker": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Pawn_Comps\\ARA_TrainingWork\\CompAdvancedTraining.cs",
"RelativeDocumentMoniker": "Pawn_Comps\\ARA_TrainingWork\\CompAdvancedTraining.cs", "RelativeDocumentMoniker": "Pawn_Comps\\ARA_TrainingWork\\CompAdvancedTraining.cs",
@@ -115,7 +166,7 @@
}, },
{ {
"$type": "Document", "$type": "Document",
"DocumentIndex": 5, "DocumentIndex": 8,
"Title": "CompAbilityEffect_ShowInteractiveThing.cs", "Title": "CompAbilityEffect_ShowInteractiveThing.cs",
"DocumentMoniker": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Abilities\\ARA_ShowInteractiveThing\\CompAbilityEffect_ShowInteractiveThing.cs", "DocumentMoniker": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Abilities\\ARA_ShowInteractiveThing\\CompAbilityEffect_ShowInteractiveThing.cs",
"RelativeDocumentMoniker": "Abilities\\ARA_ShowInteractiveThing\\CompAbilityEffect_ShowInteractiveThing.cs", "RelativeDocumentMoniker": "Abilities\\ARA_ShowInteractiveThing\\CompAbilityEffect_ShowInteractiveThing.cs",
@@ -127,7 +178,7 @@
}, },
{ {
"$type": "Document", "$type": "Document",
"DocumentIndex": 6, "DocumentIndex": 9,
"Title": "ARA_DefOf.cs", "Title": "ARA_DefOf.cs",
"DocumentMoniker": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\ARA_DefOf.cs", "DocumentMoniker": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\ARA_DefOf.cs",
"RelativeDocumentMoniker": "ARA_DefOf.cs", "RelativeDocumentMoniker": "ARA_DefOf.cs",
@@ -139,7 +190,7 @@
}, },
{ {
"$type": "Document", "$type": "Document",
"DocumentIndex": 8, "DocumentIndex": 11,
"Title": "CompProducedByMechCarrier.cs", "Title": "CompProducedByMechCarrier.cs",
"DocumentMoniker": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Pawn_Comps\\ARA_AutoMechCarrier\\CompProducedByMechCarrier.cs", "DocumentMoniker": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Pawn_Comps\\ARA_AutoMechCarrier\\CompProducedByMechCarrier.cs",
"RelativeDocumentMoniker": "Pawn_Comps\\ARA_AutoMechCarrier\\CompProducedByMechCarrier.cs", "RelativeDocumentMoniker": "Pawn_Comps\\ARA_AutoMechCarrier\\CompProducedByMechCarrier.cs",
@@ -151,7 +202,7 @@
}, },
{ {
"$type": "Document", "$type": "Document",
"DocumentIndex": 7, "DocumentIndex": 10,
"Title": "CompAutoMechCarrier.cs", "Title": "CompAutoMechCarrier.cs",
"DocumentMoniker": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Pawn_Comps\\ARA_AutoMechCarrier\\CompAutoMechCarrier.cs", "DocumentMoniker": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Pawn_Comps\\ARA_AutoMechCarrier\\CompAutoMechCarrier.cs",
"RelativeDocumentMoniker": "Pawn_Comps\\ARA_AutoMechCarrier\\CompAutoMechCarrier.cs", "RelativeDocumentMoniker": "Pawn_Comps\\ARA_AutoMechCarrier\\CompAutoMechCarrier.cs",

View File

@@ -50,6 +50,7 @@
<Compile Include="Damage\DamageDefExtension_TerrainCover.cs" /> <Compile Include="Damage\DamageDefExtension_TerrainCover.cs" />
<Compile Include="Damage\DamageWorker_ExplosionWithTerrain.cs" /> <Compile Include="Damage\DamageWorker_ExplosionWithTerrain.cs" />
<Compile Include="HarmonyPatches\Faction_ShouldHaveLeader_Patch.cs" /> <Compile Include="HarmonyPatches\Faction_ShouldHaveLeader_Patch.cs" />
<Compile Include="HarmonyPatches\Patch_NameGenerator_GenerateName.cs" />
<Compile Include="HarmonyPatches\Patch_Pawn_NeedsTracker_ShouldHaveNeed.cs" /> <Compile Include="HarmonyPatches\Patch_Pawn_NeedsTracker_ShouldHaveNeed.cs" />
<Compile Include="Hediffs\ARA_GestaltNode\CompGestalt.cs" /> <Compile Include="Hediffs\ARA_GestaltNode\CompGestalt.cs" />
<Reference Include="0Harmony"> <Reference Include="0Harmony">

View File

@@ -0,0 +1,81 @@
using System;
using System.Collections.Generic;
using System.Linq;
using HarmonyLib;
using RimWorld;
using Verse;
using Verse.Grammar;
namespace ArachnaeSwarm
{
[HarmonyPatch(typeof(NameGenerator))]
[HarmonyPatch("GenerateName")]
[HarmonyPatch(new Type[]
{
typeof(GrammarRequest),
typeof(Predicate<string>),
typeof(bool),
typeof(string),
typeof(string)
})]
public static class NameGenerator_GenerateName_Patch
{
private const string TargetRulePack = "ARA_Normal_Node_NameMaker";
public static bool Prefix(
ref string __result,
GrammarRequest request,
Predicate<string> validator = null,
bool appendNumberIfNameUsed = false,
string rootKeyword = null,
string untranslatedRootKeyword = null)
{
// 检查是否包含目标规则包
if (!request.Includes.Any(pack => pack?.defName == TargetRulePack))
{
return true; // 继续执行原方法
}
// 复制原方法的逻辑,但不记录错误
if (untranslatedRootKeyword == null)
{
untranslatedRootKeyword = rootKeyword;
}
string text = "ErrorName";
if (appendNumberIfNameUsed)
{
for (int i = 0; i < 100; i++)
{
for (int j = 0; j < 5; j++)
{
text = GenText.CapitalizeAsTitle(GrammarResolver.Resolve(rootKeyword, request, null, forceLog: false, untranslatedRootKeyword));
if (i != 0)
{
text = text + " " + (i + 1);
}
if (validator == null || validator(text))
{
__result = text;
return false; // 跳过原方法
}
}
}
__result = GenText.CapitalizeAsTitle(GrammarResolver.Resolve(rootKeyword, request, null, forceLog: false, untranslatedRootKeyword));
return false; // 跳过原方法
}
for (int k = 0; k < 150; k++)
{
text = GenText.CapitalizeAsTitle(GrammarResolver.Resolve(rootKeyword, request, null, forceLog: false, untranslatedRootKeyword));
if (validator == null || validator(text))
{
__result = text;
return false; // 跳过原方法
}
}
// 修改点:不记录错误日志
__result = text;
return false; // 跳过原方法
}
}
}