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