diff --git a/1.6/1.6/Assemblies/ArachnaeSwarm.dll b/1.6/1.6/Assemblies/ArachnaeSwarm.dll
index a9641fb..356bf02 100644
Binary files a/1.6/1.6/Assemblies/ArachnaeSwarm.dll and b/1.6/1.6/Assemblies/ArachnaeSwarm.dll differ
diff --git a/1.6/1.6/Defs/HediffDefs/ARA_Hediffs_HiveMind.xml b/1.6/1.6/Defs/HediffDefs/ARA_Hediffs_HiveMind.xml
index e290aed..cc01891 100644
--- a/1.6/1.6/Defs/HediffDefs/ARA_Hediffs_HiveMind.xml
+++ b/1.6/1.6/Defs/HediffDefs/ARA_Hediffs_HiveMind.xml
@@ -238,7 +238,6 @@
0
- Food
Rest
@@ -538,7 +537,7 @@
ARA_Scavenger_Production_InsectJelly
- 这只阿拉克涅食腐种正在产出虫蜜,以滋养虫群。
+ 这只阿拉克涅食腐种正在产出虫蜜,以滋养虫群。每只
ARA_InsectJelly
diff --git a/1.6/1.6/Defs/NeedDefs/ARA_Needs.xml b/1.6/1.6/Defs/NeedDefs/ARA_Needs.xml
index 382c74f..a1fd5e2 100644
--- a/1.6/1.6/Defs/NeedDefs/ARA_Needs.xml
+++ b/1.6/1.6/Defs/NeedDefs/ARA_Needs.xml
@@ -8,13 +8,29 @@
800
true
true
+ true
ARA_Myrmecocystus_Production_InsectJelly
true
- Baby, Child, Adult
true
false
+ Animal
+
+
+ ARA_HoneyProduction_Animal
+ ArachnaeSwarm.Need_HoneyProduction
+
+ 代表这个生物储存阿拉克涅虫蜜原浆的多少。如果蜜罐满溢,则生物会尝试将其提取出来。
+ 800
+ true
+ true
+ true
+ Animal
+ false
+
+
+
ARA_ChitinArmor
@@ -24,15 +40,16 @@
800
true
true
+ true
ARA_HiveMindMaster
ARA_HiveMindDrone
ARA_NonPlayer_HiveMindDroneHediff
true
- Baby, Child, Adult
true
false
+ Animal
diff --git a/1.6/1.6/Defs/ThingDef_Races/ARA_RaceBaseSwarm.xml b/1.6/1.6/Defs/ThingDef_Races/ARA_RaceBaseSwarm.xml
index 0967ac8..09adf87 100644
--- a/1.6/1.6/Defs/ThingDef_Races/ARA_RaceBaseSwarm.xml
+++ b/1.6/1.6/Defs/ThingDef_Races/ARA_RaceBaseSwarm.xml
@@ -154,17 +154,14 @@
阿拉克涅辅虫之一,智力低下,可以执行种植、收割、搬运、清洁和挖掘工作,注定在度过短暂的时光后死亡。
- 1.25
+ 3
ARA_Insect_Scavenger_Thinktree
OmnivoreHuman,CarnivoreAnimal,OvivoreAnimal,VegetarianRoughAnimal
1
- AttackTarget
ARA_Sowing
- Dig
- ARA_Cleaning
DeathActionWorker_Vanish
@@ -173,6 +170,7 @@
+
@@ -195,26 +193,11 @@
true
true
-
- AttackTarget
- true
- true
-
-
- Dig
- true
- true
-
ARA_Sowing
true
true
-
- ARA_Cleaning
- true
- true
-
Haul
true
diff --git a/1.6/1.6/Defs/Thing_Misc/ARA_Things_Items.xml b/1.6/1.6/Defs/Thing_Misc/ARA_Things_Items.xml
index 058544b..bee7425 100644
--- a/1.6/1.6/Defs/Thing_Misc/ARA_Things_Items.xml
+++ b/1.6/1.6/Defs/Thing_Misc/ARA_Things_Items.xml
@@ -19,13 +19,14 @@
AnimalProduct
- MealFine
+ RawTasty
0.04
Gluttonous
EatVegetarian
Meal_Eat
true
true
+ -1000
AnimalProductRaw
diff --git a/1.6/1.6/Defs/Thing_building/ARA_Building.xml b/1.6/1.6/Defs/Thing_building/ARA_Building.xml
index 57fd814..3e4a4bc 100644
--- a/1.6/1.6/Defs/Thing_building/ARA_Building.xml
+++ b/1.6/1.6/Defs/Thing_building/ARA_Building.xml
@@ -741,7 +741,7 @@
ARA_SmartThermostat
- 一只只有基础反射反应的阿拉克涅辅虫,它会尝试将通过气体交换,维持尾部所向的房间的温度。必须像制冷器一样安装在墙上。
+ 一只只有基础反射反应的阿拉克涅辅虫,它会尝试将通过气体交换,维持尾部所向的房间的温度。必须像制冷器一样安装在墙上。(尖头朝外,圆头朝内)
ArachnaeSwarm.Building_SmartThermostat
ArachnaeSwarm/Building/ARA_SmartThermostat_south
Rare
diff --git a/1.6/1.6/Defs/ThinkTreeDefs/ARA_ThinkTrees.xml b/1.6/1.6/Defs/ThinkTreeDefs/ARA_ThinkTrees.xml
index 95b0a74..a41b910 100644
--- a/1.6/1.6/Defs/ThinkTreeDefs/ARA_ThinkTrees.xml
+++ b/1.6/1.6/Defs/ThinkTreeDefs/ARA_ThinkTrees.xml
@@ -2050,7 +2050,11 @@
-
+
diff --git a/Source/ArachnaeSwarm/.vs/ArachnaeSwarm/v17/.suo b/Source/ArachnaeSwarm/.vs/ArachnaeSwarm/v17/.suo
index 5adca8c..2d05056 100644
Binary files a/Source/ArachnaeSwarm/.vs/ArachnaeSwarm/v17/.suo and b/Source/ArachnaeSwarm/.vs/ArachnaeSwarm/v17/.suo differ
diff --git a/Source/ArachnaeSwarm/.vs/ArachnaeSwarm/v17/DocumentLayout.json b/Source/ArachnaeSwarm/.vs/ArachnaeSwarm/v17/DocumentLayout.json
index 6edd2e5..08925ff 100644
--- a/Source/ArachnaeSwarm/.vs/ArachnaeSwarm/v17/DocumentLayout.json
+++ b/Source/ArachnaeSwarm/.vs/ArachnaeSwarm/v17/DocumentLayout.json
@@ -1,45 +1,61 @@
{
"Version": 1,
- "WorkspaceRootPath": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\",
+ "WorkspaceRootPath": "E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\",
"Documents": [
{
- "AbsoluteMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|d:\\steamlibrary\\steamapps\\common\\rimworld\\mods\\arachnaeswarm\\source\\arachnaeswarm\\jobs\\jobdriver_clean\\thinknode_conditionalanimalshoulddocleaningwork.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
- "RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:jobs\\jobdriver_clean\\thinknode_conditionalanimalshoulddocleaningwork.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ "AbsoluteMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|e:\\steamlibrary\\steamapps\\common\\rimworld\\mods\\arachnaeswarm\\source\\arachnaeswarm\\jobs\\jobdriver_extracthoney\\thinknode_conditionalshouldextract.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:jobs\\jobdriver_extracthoney\\thinknode_conditionalshouldextract.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_plant\\jobgiver_grower.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
- "RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:jobs\\jobdriver_plant\\jobgiver_grower.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ "AbsoluteMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|e:\\steamlibrary\\steamapps\\common\\rimworld\\mods\\arachnaeswarm\\source\\arachnaeswarm\\jobs\\jobdriver_extracthoney\\jobgiver_extracthoney.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:jobs\\jobdriver_extracthoney\\jobgiver_extracthoney.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_plant\\thinknode_conditionalanimalshoulddogrowingwork.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
- "RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:jobs\\jobdriver_plant\\thinknode_conditionalanimalshoulddogrowingwork.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\\workgivers\\workgiver_arachnaeclean.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
- "RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:workgivers\\workgiver_arachnaeclean.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_clean\\jobgiver_cleaner.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
- "RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:jobs\\jobdriver_clean\\jobgiver_cleaner.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\\ara_defof.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
- "RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:ara_defof.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_extracthoney\\thinknode_jobgiver_extracthoney.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
- "RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:jobs\\jobdriver_extracthoney\\thinknode_jobgiver_extracthoney.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_extracthoney\\jobdriver_extracthoney.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "AbsoluteMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\jobs\\jobdriver_extracthoney\\jobdriver_extracthoney.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:jobs\\jobdriver_extracthoney\\jobdriver_extracthoney.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\\workgivers\\workgiver_extracthoney.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "AbsoluteMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|e:\\steamlibrary\\steamapps\\common\\rimworld\\mods\\arachnaeswarm\\source\\arachnaeswarm\\needs\\need_honeyproduction.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:needs\\need_honeyproduction.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|e:\\steamlibrary\\steamapps\\common\\rimworld\\mods\\arachnaeswarm\\source\\arachnaeswarm\\pawn_comps\\ara_honeyproduction_animal\\comphoneyproduction_animal.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:pawn_comps\\ara_honeyproduction_animal\\comphoneyproduction_animal.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|e:\\steamlibrary\\steamapps\\common\\rimworld\\mods\\arachnaeswarm\\source\\arachnaeswarm\\pawn_comps\\ara_trainingwork\\compadvancedtraining.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:pawn_comps\\ara_trainingwork\\compadvancedtraining.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|e:\\steamlibrary\\steamapps\\common\\rimworld\\mods\\arachnaeswarm\\source\\arachnaeswarm\\jobs\\jobdriver_clean\\thinknode_conditionalanimalshoulddocleaningwork.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:jobs\\jobdriver_clean\\thinknode_conditionalanimalshoulddocleaningwork.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\jobs\\jobdriver_plant\\jobgiver_grower.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:jobs\\jobdriver_plant\\jobgiver_grower.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\jobs\\jobdriver_plant\\thinknode_conditionalanimalshoulddogrowingwork.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:jobs\\jobdriver_plant\\thinknode_conditionalanimalshoulddogrowingwork.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\workgivers\\workgiver_arachnaeclean.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:workgivers\\workgiver_arachnaeclean.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\jobs\\jobdriver_clean\\jobgiver_cleaner.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:jobs\\jobdriver_clean\\jobgiver_cleaner.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\ara_defof.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:ara_defof.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\workgivers\\workgiver_extracthoney.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:workgivers\\workgiver_extracthoney.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\\workgivers\\workgiver_feedwithhoney.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "AbsoluteMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\workgivers\\workgiver_feedwithhoney.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:workgivers\\workgiver_feedwithhoney.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
}
],
@@ -53,90 +69,94 @@
"SelectedChildIndex": 1,
"Children": [
{
- "$type": "Document",
- "DocumentIndex": 3,
- "Title": "WorkGiver_ArachnaeClean.cs",
- "DocumentMoniker": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\WorkGivers\\WorkGiver_ArachnaeClean.cs",
- "RelativeDocumentMoniker": "WorkGivers\\WorkGiver_ArachnaeClean.cs",
- "ToolTip": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\WorkGivers\\WorkGiver_ArachnaeClean.cs",
- "RelativeToolTip": "WorkGivers\\WorkGiver_ArachnaeClean.cs",
- "ViewState": "AgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==",
- "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
- "WhenOpened": "2026-01-21T02:34:01.968Z",
- "EditorCaption": ""
+ "$type": "Bookmark",
+ "Name": "ST:0:0:{1c4feeaa-4718-4aa9-859d-94ce25d182ba}"
},
{
"$type": "Document",
"DocumentIndex": 0,
+ "Title": "ThinkNode_ConditionalShouldExtract.cs",
+ "DocumentMoniker": "E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Jobs\\JobDriver_ExtractHoney\\ThinkNode_ConditionalShouldExtract.cs",
+ "RelativeDocumentMoniker": "Jobs\\JobDriver_ExtractHoney\\ThinkNode_ConditionalShouldExtract.cs",
+ "ToolTip": "E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Jobs\\JobDriver_ExtractHoney\\ThinkNode_ConditionalShouldExtract.cs",
+ "RelativeToolTip": "Jobs\\JobDriver_ExtractHoney\\ThinkNode_ConditionalShouldExtract.cs",
+ "ViewState": "AgIAACMAAAAAAAAAAAAewEwAAAANAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2026-01-21T16:03:09.823Z",
+ "EditorCaption": ""
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 1,
+ "Title": "JobGiver_ExtractHoney.cs",
+ "DocumentMoniker": "E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Jobs\\JobDriver_ExtractHoney\\JobGiver_ExtractHoney.cs",
+ "RelativeDocumentMoniker": "Jobs\\JobDriver_ExtractHoney\\JobGiver_ExtractHoney.cs",
+ "ToolTip": "E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Jobs\\JobDriver_ExtractHoney\\JobGiver_ExtractHoney.cs",
+ "RelativeToolTip": "Jobs\\JobDriver_ExtractHoney\\JobGiver_ExtractHoney.cs",
+ "ViewState": "AgIAAAAAAAAAAAAAAAAAAAgAAAAmAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2026-01-21T16:03:08.689Z",
+ "EditorCaption": ""
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 4,
+ "Title": "CompHoneyProduction_Animal.cs",
+ "DocumentMoniker": "E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Pawn_Comps\\ARA_HoneyProduction_Animal\\CompHoneyProduction_Animal.cs",
+ "RelativeDocumentMoniker": "Pawn_Comps\\ARA_HoneyProduction_Animal\\CompHoneyProduction_Animal.cs",
+ "ToolTip": "E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Pawn_Comps\\ARA_HoneyProduction_Animal\\CompHoneyProduction_Animal.cs",
+ "RelativeToolTip": "Pawn_Comps\\ARA_HoneyProduction_Animal\\CompHoneyProduction_Animal.cs",
+ "ViewState": "AgIAAAAAAAAAAAAAAADwvxEAAAAFAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2026-01-21T15:46:16.654Z",
+ "EditorCaption": ""
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 5,
+ "Title": "CompAdvancedTraining.cs",
+ "DocumentMoniker": "E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Pawn_Comps\\ARA_TrainingWork\\CompAdvancedTraining.cs",
+ "RelativeDocumentMoniker": "Pawn_Comps\\ARA_TrainingWork\\CompAdvancedTraining.cs",
+ "ToolTip": "E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Pawn_Comps\\ARA_TrainingWork\\CompAdvancedTraining.cs",
+ "RelativeToolTip": "Pawn_Comps\\ARA_TrainingWork\\CompAdvancedTraining.cs",
+ "ViewState": "AgIAAAAAAAAAAAAAAAAAABQAAAAJAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2026-01-21T15:39:27.128Z",
+ "EditorCaption": ""
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 3,
+ "Title": "Need_HoneyProduction.cs",
+ "DocumentMoniker": "E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Needs\\Need_HoneyProduction.cs",
+ "RelativeDocumentMoniker": "Needs\\Need_HoneyProduction.cs",
+ "ToolTip": "E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Needs\\Need_HoneyProduction.cs",
+ "RelativeToolTip": "Needs\\Need_HoneyProduction.cs",
+ "ViewState": "AgIAAAAAAAAAAAAAAAAuwAYAAAARAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2026-01-21T09:20:43.405Z",
+ "EditorCaption": ""
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 6,
"Title": "ThinkNode_ConditionalAnimalShouldDoCleaningWork.cs",
- "DocumentMoniker": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Jobs\\JobDriver_Clean\\ThinkNode_ConditionalAnimalShouldDoCleaningWork.cs",
+ "DocumentMoniker": "E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Jobs\\JobDriver_Clean\\ThinkNode_ConditionalAnimalShouldDoCleaningWork.cs",
"RelativeDocumentMoniker": "Jobs\\JobDriver_Clean\\ThinkNode_ConditionalAnimalShouldDoCleaningWork.cs",
- "ToolTip": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Jobs\\JobDriver_Clean\\ThinkNode_ConditionalAnimalShouldDoCleaningWork.cs",
+ "ToolTip": "E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Jobs\\JobDriver_Clean\\ThinkNode_ConditionalAnimalShouldDoCleaningWork.cs",
"RelativeToolTip": "Jobs\\JobDriver_Clean\\ThinkNode_ConditionalAnimalShouldDoCleaningWork.cs",
- "ViewState": "AgIAAAAAAAAAAAAAAAAAAA0AAAANAAAAAAAAAA==",
+ "ViewState": "AgIAAAAAAAAAAAAAAAAAABQAAAABAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2026-01-21T02:34:01.359Z",
"EditorCaption": ""
},
- {
- "$type": "Document",
- "DocumentIndex": 4,
- "Title": "JobGiver_Cleaner.cs",
- "DocumentMoniker": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Jobs\\JobDriver_Clean\\JobGiver_Cleaner.cs",
- "RelativeDocumentMoniker": "Jobs\\JobDriver_Clean\\JobGiver_Cleaner.cs",
- "ToolTip": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Jobs\\JobDriver_Clean\\JobGiver_Cleaner.cs",
- "RelativeToolTip": "Jobs\\JobDriver_Clean\\JobGiver_Cleaner.cs",
- "ViewState": "AgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==",
- "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
- "WhenOpened": "2026-01-21T02:34:00.68Z",
- "EditorCaption": ""
- },
- {
- "$type": "Document",
- "DocumentIndex": 6,
- "Title": "ThinkNode_JobGiver_ExtractHoney.cs",
- "DocumentMoniker": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Jobs\\JobDriver_ExtractHoney\\ThinkNode_JobGiver_ExtractHoney.cs",
- "RelativeDocumentMoniker": "Jobs\\JobDriver_ExtractHoney\\ThinkNode_JobGiver_ExtractHoney.cs",
- "ToolTip": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Jobs\\JobDriver_ExtractHoney\\ThinkNode_JobGiver_ExtractHoney.cs",
- "RelativeToolTip": "Jobs\\JobDriver_ExtractHoney\\ThinkNode_JobGiver_ExtractHoney.cs",
- "ViewState": "AgIAAAAAAAAAAAAAAAAAAAsAAAA8AAAAAAAAAA==",
- "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
- "WhenOpened": "2026-01-21T01:30:10.766Z",
- "EditorCaption": ""
- },
- {
- "$type": "Document",
- "DocumentIndex": 1,
- "Title": "JobGiver_Grower.cs",
- "DocumentMoniker": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Jobs\\JobDriver_Plant\\JobGiver_Grower.cs",
- "RelativeDocumentMoniker": "Jobs\\JobDriver_Plant\\JobGiver_Grower.cs",
- "ToolTip": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Jobs\\JobDriver_Plant\\JobGiver_Grower.cs",
- "RelativeToolTip": "Jobs\\JobDriver_Plant\\JobGiver_Grower.cs",
- "ViewState": "AgIAAF8AAAAAAAAAAAAQwA8AAAAcAAAAAAAAAA==",
- "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
- "WhenOpened": "2026-01-21T01:13:33.373Z",
- "EditorCaption": ""
- },
{
"$type": "Document",
"DocumentIndex": 2,
- "Title": "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",
- "ToolTip": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Jobs\\JobDriver_Plant\\ThinkNode_ConditionalAnimalShouldDoGrowingWork.cs",
- "RelativeToolTip": "Jobs\\JobDriver_Plant\\ThinkNode_ConditionalAnimalShouldDoGrowingWork.cs",
- "ViewState": "AgIAAAAAAAAAAAAAAAAAAAkAAAAFAAAAAAAAAA==",
- "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
- "WhenOpened": "2026-01-21T01:11:35.603Z",
- "EditorCaption": ""
- },
- {
- "$type": "Document",
- "DocumentIndex": 7,
"Title": "JobDriver_ExtractHoney.cs",
- "DocumentMoniker": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Jobs\\JobDriver_ExtractHoney\\JobDriver_ExtractHoney.cs",
+ "DocumentMoniker": "E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Jobs\\JobDriver_ExtractHoney\\JobDriver_ExtractHoney.cs",
"RelativeDocumentMoniker": "Jobs\\JobDriver_ExtractHoney\\JobDriver_ExtractHoney.cs",
- "ToolTip": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Jobs\\JobDriver_ExtractHoney\\JobDriver_ExtractHoney.cs",
+ "ToolTip": "E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Jobs\\JobDriver_ExtractHoney\\JobDriver_ExtractHoney.cs",
"RelativeToolTip": "Jobs\\JobDriver_ExtractHoney\\JobDriver_ExtractHoney.cs",
"ViewState": "AgIAAAAAAAAAAAAAAAAAABIAAABLAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
@@ -145,46 +165,87 @@
},
{
"$type": "Document",
- "DocumentIndex": 8,
- "Title": "WorkGiver_ExtractHoney.cs",
- "DocumentMoniker": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\WorkGivers\\WorkGiver_ExtractHoney.cs",
- "RelativeDocumentMoniker": "WorkGivers\\WorkGiver_ExtractHoney.cs",
- "ToolTip": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\WorkGivers\\WorkGiver_ExtractHoney.cs",
- "RelativeToolTip": "WorkGivers\\WorkGiver_ExtractHoney.cs",
- "ViewState": "AgIAADEAAAAAAAAAAAAUwFIAAABEAAAAAAAAAA==",
+ "DocumentIndex": 10,
+ "Title": "JobGiver_Cleaner.cs",
+ "DocumentMoniker": "E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Jobs\\JobDriver_Clean\\JobGiver_Cleaner.cs",
+ "RelativeDocumentMoniker": "Jobs\\JobDriver_Clean\\JobGiver_Cleaner.cs",
+ "ToolTip": "E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Jobs\\JobDriver_Clean\\JobGiver_Cleaner.cs",
+ "RelativeToolTip": "Jobs\\JobDriver_Clean\\JobGiver_Cleaner.cs",
+ "ViewState": "AgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
- "WhenOpened": "2026-01-21T01:28:50.976Z",
- "EditorCaption": ""
+ "WhenOpened": "2026-01-21T02:34:00.68Z"
},
{
"$type": "Document",
"DocumentIndex": 9,
- "Title": "WorkGiver_FeedWithHoney.cs",
- "DocumentMoniker": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\WorkGivers\\WorkGiver_FeedWithHoney.cs",
- "RelativeDocumentMoniker": "WorkGivers\\WorkGiver_FeedWithHoney.cs",
- "ToolTip": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\WorkGivers\\WorkGiver_FeedWithHoney.cs",
- "RelativeToolTip": "WorkGivers\\WorkGiver_FeedWithHoney.cs",
+ "Title": "WorkGiver_ArachnaeClean.cs",
+ "DocumentMoniker": "E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\WorkGivers\\WorkGiver_ArachnaeClean.cs",
+ "RelativeDocumentMoniker": "WorkGivers\\WorkGiver_ArachnaeClean.cs",
+ "ToolTip": "E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\WorkGivers\\WorkGiver_ArachnaeClean.cs",
+ "RelativeToolTip": "WorkGivers\\WorkGiver_ArachnaeClean.cs",
"ViewState": "AgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
- "WhenOpened": "2026-01-21T01:28:50.336Z",
- "EditorCaption": ""
+ "WhenOpened": "2026-01-21T02:34:01.968Z"
},
{
"$type": "Document",
- "DocumentIndex": 5,
+ "DocumentIndex": 7,
+ "Title": "JobGiver_Grower.cs",
+ "DocumentMoniker": "E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Jobs\\JobDriver_Plant\\JobGiver_Grower.cs",
+ "RelativeDocumentMoniker": "Jobs\\JobDriver_Plant\\JobGiver_Grower.cs",
+ "ToolTip": "E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Jobs\\JobDriver_Plant\\JobGiver_Grower.cs",
+ "RelativeToolTip": "Jobs\\JobDriver_Plant\\JobGiver_Grower.cs",
+ "ViewState": "AgIAAF8AAAAAAAAAAAAQwA8AAAAcAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2026-01-21T01:13:33.373Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 8,
+ "Title": "ThinkNode_ConditionalAnimalShouldDoGrowingWork.cs",
+ "DocumentMoniker": "E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Jobs\\JobDriver_Plant\\ThinkNode_ConditionalAnimalShouldDoGrowingWork.cs",
+ "RelativeDocumentMoniker": "Jobs\\JobDriver_Plant\\ThinkNode_ConditionalAnimalShouldDoGrowingWork.cs",
+ "ToolTip": "E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Jobs\\JobDriver_Plant\\ThinkNode_ConditionalAnimalShouldDoGrowingWork.cs",
+ "RelativeToolTip": "Jobs\\JobDriver_Plant\\ThinkNode_ConditionalAnimalShouldDoGrowingWork.cs",
+ "ViewState": "AgIAAAAAAAAAAAAAAAAAAAkAAAAFAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2026-01-21T01:11:35.603Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 12,
+ "Title": "WorkGiver_ExtractHoney.cs",
+ "DocumentMoniker": "E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\WorkGivers\\WorkGiver_ExtractHoney.cs",
+ "RelativeDocumentMoniker": "WorkGivers\\WorkGiver_ExtractHoney.cs",
+ "ToolTip": "E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\WorkGivers\\WorkGiver_ExtractHoney.cs",
+ "RelativeToolTip": "WorkGivers\\WorkGiver_ExtractHoney.cs",
+ "ViewState": "AgIAADEAAAAAAAAAAAAUwFIAAABEAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2026-01-21T01:28:50.976Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 13,
+ "Title": "WorkGiver_FeedWithHoney.cs",
+ "DocumentMoniker": "E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\WorkGivers\\WorkGiver_FeedWithHoney.cs",
+ "RelativeDocumentMoniker": "WorkGivers\\WorkGiver_FeedWithHoney.cs",
+ "ToolTip": "E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\WorkGivers\\WorkGiver_FeedWithHoney.cs",
+ "RelativeToolTip": "WorkGivers\\WorkGiver_FeedWithHoney.cs",
+ "ViewState": "AgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2026-01-21T01:28:50.336Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 11,
"Title": "ARA_DefOf.cs",
- "DocumentMoniker": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\ARA_DefOf.cs",
+ "DocumentMoniker": "E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\ARA_DefOf.cs",
"RelativeDocumentMoniker": "ARA_DefOf.cs",
- "ToolTip": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\ARA_DefOf.cs",
+ "ToolTip": "E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\ARA_DefOf.cs",
"RelativeToolTip": "ARA_DefOf.cs",
"ViewState": "AgIAAAAAAAAAAAAAAAAAAAcAAAAqAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
- "WhenOpened": "2026-01-21T01:11:53.56Z",
- "EditorCaption": ""
- },
- {
- "$type": "Bookmark",
- "Name": "ST:0:0:{1c4feeaa-4718-4aa9-859d-94ce25d182ba}"
+ "WhenOpened": "2026-01-21T01:11:53.56Z"
}
]
}
diff --git a/Source/ArachnaeSwarm/ArachnaeSwarm.csproj b/Source/ArachnaeSwarm/ArachnaeSwarm.csproj
index ec081e8..f6e6874 100644
--- a/Source/ArachnaeSwarm/ArachnaeSwarm.csproj
+++ b/Source/ArachnaeSwarm/ArachnaeSwarm.csproj
@@ -300,8 +300,9 @@
+
+
-
@@ -343,6 +344,7 @@
+
diff --git a/Source/ArachnaeSwarm/Jobs/JobDriver_ExtractHoney/JobGiver_ExtractHoney.cs b/Source/ArachnaeSwarm/Jobs/JobDriver_ExtractHoney/JobGiver_ExtractHoney.cs
new file mode 100644
index 0000000..6c039b9
--- /dev/null
+++ b/Source/ArachnaeSwarm/Jobs/JobDriver_ExtractHoney/JobGiver_ExtractHoney.cs
@@ -0,0 +1,189 @@
+using RimWorld;
+using Verse;
+using Verse.AI;
+using System.Collections.Generic;
+using UnityEngine;
+
+namespace ArachnaeSwarm
+{
+ public class JobGiver_ExtractHoney : ThinkNode_JobGiver
+ {
+ // 最大搜索半径(对于存储位置),可以在thinktree中配置
+ public float maxStorageSearchRadius = 10f;
+
+ // 检查间隔
+ private const int CheckInterval = 300; // 5秒
+
+ // 上次检查时间缓存
+ private int lastCheckTick = -99999;
+
+ protected override Job TryGiveJob(Pawn pawn)
+ {
+ // 获取ThinkNode条件(如果有的话)
+ ThinkNode_ConditionalShouldExtract conditionNode = GetConditionNode();
+
+ // 检查冷却时间
+ int currentTick = Find.TickManager.TicksGame;
+ if (currentTick - lastCheckTick < CheckInterval)
+ return null;
+ lastCheckTick = currentTick;
+
+ // 确保pawn处于健康状态
+ if (pawn.Downed || pawn.Dead || !pawn.Spawned)
+ return null;
+
+ // 检查蜜罐需求
+ var honeyNeed = pawn.needs?.TryGetNeed();
+ if (honeyNeed == null)
+ return null;
+
+ // 检查是否满足挤出条件
+ if (!CanExtractHoney(honeyNeed))
+ return null;
+
+ // 计算要挤出的虫蜜数量
+ int jellyCount = CalculateJellyCount(honeyNeed);
+ if (jellyCount < 1)
+ return null;
+
+ // 寻找最佳的存放位置
+ IntVec3 storageCell = FindBestStorageCell(pawn, jellyCount);
+ if (!storageCell.IsValid)
+ {
+ // 如果没有合适的存放位置,尝试清理出空间
+ storageCell = pawn.Position; // 暂时放在脚下
+ }
+
+ // 创建挤蜜工作
+ Job job = JobMaker.MakeJob(ARA_JobDefOf.ARA_ExtractHoney, pawn, storageCell);
+ job.count = jellyCount; // 将虫蜜数量存储在job中
+ job.expiryInterval = 1800; // 30秒后过期
+ job.checkOverrideOnExpire = true;
+
+ return job;
+ }
+
+ private ThinkNode_ConditionalShouldExtract GetConditionNode()
+ {
+ // 查找thinktree中的条件节点
+ // 这是一个简化的实现,实际上可能需要更复杂的查找
+ return null;
+ }
+
+ private bool CanExtractHoney(Need_HoneyProduction honeyNeed)
+ {
+ // 根据最大容量决定挤出阈值
+ if (honeyNeed.MaxLevel > 1.5f)
+ {
+ return honeyNeed.CurLevelPercentage > 0.8f;
+ }
+ else
+ {
+ return honeyNeed.CurLevel >= 1.0f;
+ }
+ }
+
+ private int CalculateJellyCount(Need_HoneyProduction honeyNeed)
+ {
+ // 计算要生成的虫蜜数量(蜜罐等级整数部分)
+ int jellyCount = (int)honeyNeed.CurLevel;
+
+ // 确保不超过最大允许数量(防止一次挤出过多)
+ int maxPerExtraction = (int)honeyNeed.MaxLevel;
+ if (jellyCount > maxPerExtraction)
+ jellyCount = maxPerExtraction;
+
+ return jellyCount;
+ }
+
+ private IntVec3 FindBestStorageCell(Pawn pawn, int itemCount)
+ {
+ if (pawn.Map == null)
+ return IntVec3.Invalid;
+
+ // 首先检查pawn当前位置是否合适
+ if (IsValidStorageCell(pawn.Position, pawn.Map, pawn, itemCount))
+ {
+ return pawn.Position;
+ }
+
+ // 搜索附近的储存区或合适的位置
+ CellRect searchRect = CellRect.CenteredOn(pawn.Position, Mathf.CeilToInt(maxStorageSearchRadius));
+ searchRect.ClipInsideMap(pawn.Map);
+
+ // 优先查找已有的储存区
+ foreach (IntVec3 cell in searchRect)
+ {
+ if (!cell.InBounds(pawn.Map) || !cell.Walkable(pawn.Map))
+ continue;
+
+ // 检查是否有储存区
+ SlotGroup slotGroup = pawn.Map.haulDestinationManager.SlotGroupAt(cell);
+ if (slotGroup != null)
+ {
+ // 检查该储存区是否接受虫蜜
+ ThingDef jellyDef = DefDatabase.GetNamed("ARA_InsectJelly");
+ if (slotGroup.Settings.AllowedToAccept(jellyDef))
+ {
+ return cell;
+ }
+ }
+ }
+
+ // 如果没有找到储存区,查找任何可用的位置
+ foreach (IntVec3 cell in searchRect)
+ {
+ if (!cell.InBounds(pawn.Map) || !cell.Walkable(pawn.Map))
+ continue;
+
+ if (IsValidStorageCell(cell, pawn.Map, pawn, itemCount))
+ {
+ return cell;
+ }
+ }
+
+ // 如果没有找到合适的位置,返回无效位置
+ return IntVec3.Invalid;
+ }
+
+ private bool IsValidStorageCell(IntVec3 cell, Map map, Pawn pawn, int itemCount)
+ {
+ if (!cell.InBounds(map) || !cell.Walkable(map))
+ return false;
+
+ // 检查是否有足够的空间
+ List things = map.thingGrid.ThingsListAt(cell);
+ int totalItems = 0;
+
+ foreach (Thing thing in things)
+ {
+ // 如果是虫蜜,检查是否达到堆叠上限
+ if (thing.def == DefDatabase.GetNamed("ARA_InsectJelly"))
+ {
+ totalItems += thing.stackCount;
+
+ // 如果已经达到或超过堆叠上限,该位置不可用
+ if (totalItems + itemCount > thing.def.stackLimit)
+ return false;
+ }
+
+ // 检查是否有阻挡物
+ if (thing.def.passability == Traversability.Impassable)
+ return false;
+
+ // 检查是否有建筑阻挡
+ if (thing is Building && thing.def.blockWind)
+ return false;
+ }
+
+ return true;
+ }
+
+ // 为thinktree提供配置解析
+ public override void ResolveReferences()
+ {
+ base.ResolveReferences();
+ // 可以根据需要在这里初始化字段
+ }
+ }
+}
diff --git a/Source/ArachnaeSwarm/Jobs/JobDriver_ExtractHoney/ThinkNode_ConditionalShouldExtract.cs b/Source/ArachnaeSwarm/Jobs/JobDriver_ExtractHoney/ThinkNode_ConditionalShouldExtract.cs
new file mode 100644
index 0000000..8743358
--- /dev/null
+++ b/Source/ArachnaeSwarm/Jobs/JobDriver_ExtractHoney/ThinkNode_ConditionalShouldExtract.cs
@@ -0,0 +1,153 @@
+using RimWorld;
+using Verse;
+using Verse.AI;
+
+namespace ArachnaeSwarm
+{
+ public class ThinkNode_ConditionalShouldExtract : ThinkNode_Conditional
+ {
+ // 优先级阈值(百分比),蜜罐存量达到此值时才考虑挤出
+ public float extractThresholdPercent = 0.8f;
+
+ // 是否只在空闲时执行挤出工作
+ public bool onlyWhenIdle = true;
+
+ // 最小挤出间隔(ticks),避免连续挤出
+ public int minExtractInterval = 6000; // 100秒
+
+ // 上次挤出时间缓存
+ private int lastExtractTick = -99999;
+
+ protected override bool Satisfied(Pawn pawn)
+ {
+ return ShouldExtractHoney(pawn);
+ }
+
+ public bool ShouldExtractHoney(Pawn pawn)
+ {
+ // 基本检查
+ if (pawn == null || !pawn.Spawned || pawn.Downed || pawn.Dead)
+ return false;
+
+ // 检查是否有蜜罐需求组件
+ var honeyNeed = pawn.needs?.TryGetNeed();
+ if (honeyNeed == null)
+ return false;
+
+ // 检查蜜罐存量是否达到挤出阈值
+ if (!CanExtractBasedOnMaxLevel(honeyNeed))
+ return false;
+
+ // 检查挤出间隔
+ int currentTick = Find.TickManager.TicksGame;
+ if (currentTick - lastExtractTick < minExtractInterval)
+ return false;
+
+ // 检查动物状态
+ if (pawn.InAggroMentalState || pawn.InMentalState)
+ return false;
+
+ // 检查是否在休息或睡眠中
+ if (pawn.CurJob != null && onlyWhenIdle)
+ {
+ // 如果当前有工作且onlyWhenIdle为true,不执行挤出
+ // 但某些低优先级工作可以被中断
+ if (!CanInterruptCurrentJob(pawn.CurJob))
+ return false;
+ }
+
+ // 检查是否有紧急需要(如受伤、饥饿等)
+ if (HasMoreUrgentNeeds(pawn))
+ return false;
+
+ // 检查是否有可用的虫蜜存放位置
+ if (!HasValidStorageLocation(pawn))
+ return false;
+
+ return true;
+ }
+
+ // 根据最大容量决定挤出阈值
+ private bool CanExtractBasedOnMaxLevel(Need_HoneyProduction honeyNeed)
+ {
+ // 如果MaxLevel大于1.5,需要超过80%储量才考虑挤蜜
+ if (honeyNeed.MaxLevel > 1.5f)
+ {
+ return honeyNeed.CurLevelPercentage > extractThresholdPercent;
+ }
+ // 否则在大于1时挤蜜
+ else
+ {
+ return honeyNeed.CurLevel >= 1.0f;
+ }
+ }
+
+ private bool CanInterruptCurrentJob(Job currentJob)
+ {
+ // 定义哪些工作可以被中断
+ if (currentJob.def == JobDefOf.Wait ||
+ currentJob.def == JobDefOf.Goto ||
+ currentJob.def == JobDefOf.GotoWander )
+ {
+ return true;
+ }
+
+ // 其他工作默认不可中断
+ return false;
+ }
+
+ private bool HasMoreUrgentNeeds(Pawn pawn)
+ {
+ // 检查饥饿程度
+ if (pawn.needs.food != null && pawn.needs.food.CurLevelPercentage < 0.2f)
+ return true;
+
+ // 检查休息程度
+ if (pawn.needs.rest != null && pawn.needs.rest.CurLevelPercentage < 0.1f)
+ return true;
+
+ // 检查严重受伤
+ if (pawn.health.summaryHealth.SummaryHealthPercent < 0.3f)
+ return true;
+
+ // 检查温度适应性
+ float ambientTemperature = pawn.AmbientTemperature;
+ FloatRange comfortableTempRange = pawn.ComfortableTemperatureRange();
+ if (ambientTemperature < comfortableTempRange.min - 20f ||
+ ambientTemperature > comfortableTempRange.max + 20f)
+ return true;
+
+ return false;
+ }
+
+ private bool HasValidStorageLocation(Pawn pawn)
+ {
+ // 简单的检查:pawn周围是否有可放置物品的位置
+ // 可以扩展为检查是否有合适的储存区
+ for (int i = 0; i < 8; i++)
+ {
+ IntVec3 cell = pawn.Position + GenAdj.AdjacentCells[i];
+ if (cell.InBounds(pawn.Map) && cell.Walkable(pawn.Map))
+ {
+ return true;
+ }
+ }
+
+ // 如果没有找到,pawn自己的位置也可以
+ return true;
+ }
+
+ // 记录挤出时间(在JobGiver中调用)
+ public void RecordExtraction(Pawn pawn)
+ {
+ lastExtractTick = Find.TickManager.TicksGame;
+ }
+
+ // 为thinktree提供配置解析
+ public override void ResolveReferences()
+ {
+ base.ResolveReferences();
+ // 可以根据需要在这里初始化字段
+ }
+ }
+}
diff --git a/Source/ArachnaeSwarm/Pawn_Comps/ARA_HoneyProduction_Animal/CompHoneyProduction_Animal.cs b/Source/ArachnaeSwarm/Pawn_Comps/ARA_HoneyProduction_Animal/CompHoneyProduction_Animal.cs
new file mode 100644
index 0000000..97f94af
--- /dev/null
+++ b/Source/ArachnaeSwarm/Pawn_Comps/ARA_HoneyProduction_Animal/CompHoneyProduction_Animal.cs
@@ -0,0 +1,19 @@
+using System.Collections.Generic;
+using Verse;
+using RimWorld;
+
+namespace ArachnaeSwarm
+{
+ public class CompProperties_HoneyProduction_Animal : CompProperties
+ {
+ public CompProperties_HoneyProduction_Animal()
+ {
+ this.compClass = typeof(CompHoneyProduction_Animal);
+ }
+ }
+
+ public class CompHoneyProduction_Animal : ThingComp
+ {
+ public CompProperties_HoneyProduction_Animal Props => (CompProperties_HoneyProduction_Animal)this.props;
+ }
+}
\ No newline at end of file