diff --git a/1.6/1.6/Assemblies/ArachnaeSwarm.dll b/1.6/1.6/Assemblies/ArachnaeSwarm.dll
index 1126929..cb12f8a 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/AbilityDefs/Abilities_EggSpew.xml b/1.6/1.6/Defs/AbilityDefs/Abilities_EggSpew.xml
index e71af7e..0cfd517 100644
--- a/1.6/1.6/Defs/AbilityDefs/Abilities_EggSpew.xml
+++ b/1.6/1.6/Defs/AbilityDefs/Abilities_EggSpew.xml
@@ -88,136 +88,6 @@
-
-
- ARA_EggSpew
-
- 从卵巢中排出一颗休眠的虫卵,阿拉克涅女皇种可以通过与其交互将其激活,并选择孵化的督虫虫族类型——参阅虫卵的具体信息,了解各个督虫的特点。\n\n该虫卵只能孵化小型虫族。
- ArachnaeSwarm/UI/Abilities/ARA_EggSpew
-
-
- ARA_Proj_EggSac
-
-
- ARA_InteractiveEggSac
- 0级阿拉克涅卵 可孵化的单位
- true
-
-
- ARA_InteractiveEggSac
- 温度要求
- true
-
-
-
-
- ARA_EggSpew_Huge
-
- 从卵巢中排出一颗休眠的大型虫卵,阿拉克涅女皇种可以通过与其交互将其激活,并选择孵化的督虫虫族类型——参阅虫卵的具体信息,了解各个督虫的特点。\n\n该虫卵只能孵化大型虫族。
- ArachnaeSwarm/UI/Abilities/ARA_EggSpew_Huge
-
-
- ARA_Proj_EggSac_Huge
-
-
- ARA_InteractiveEggSac_Huge
- 0级大型阿拉克涅卵 可孵化的单位
- true
-
-
- ARA_InteractiveEggSac_Huge
- 温度要求
- true
-
-
-
-
-
- ARA_EggSpew_1Stage
-
- 从卵巢中排出一颗休眠的虫卵,阿拉克涅女皇种可以通过与其交互将其激活,并选择孵化的督虫虫族类型——参阅虫卵的具体信息,了解各个督虫的特点。\n\n该虫卵只能孵化小型虫族。
- ArachnaeSwarm/UI/Abilities/ARA_EggSpew_1Stage
-
-
- ARA_Proj_EggSac_1Stage
-
-
- ARA_InteractiveEggSac_1Stage
- 1级阿拉克涅卵 可孵化的单位
- true
-
-
- ARA_InteractiveEggSac_1Stage
- 温度要求
- true
-
-
-
-
- ARA_EggSpew_Huge_1Stage
-
- 从卵巢中排出一颗休眠的大型虫卵,阿拉克涅女皇种可以通过与其交互将其激活,并选择孵化的督虫虫族类型——参阅虫卵的具体信息,了解各个督虫的特点。\n\n该虫卵只能孵化大型虫族。
- ArachnaeSwarm/UI/Abilities/ARA_EggSpew_Huge_1Stage
-
-
- ARA_Proj_EggSac_Huge_1Stage
-
-
- ARA_InteractiveEggSac_Huge_1Stage
- 1级大型阿拉克涅卵 可孵化的单位
- true
-
-
- ARA_InteractiveEggSac_Huge_1Stage
- 温度要求
- true
-
-
-
-
-
- ARA_EggSpew_2Stage
-
- 从卵巢中排出一颗休眠的虫卵,阿拉克涅女皇种可以通过与其交互将其激活,并选择孵化的督虫虫族类型——参阅虫卵的具体信息,了解各个督虫的特点。\n\n该虫卵只能孵化小型虫族。
- ArachnaeSwarm/UI/Abilities/ARA_EggSpew_2Stage
-
-
- ARA_Proj_EggSac_2Stage
-
-
- ARA_InteractiveEggSac_2Stage
- 2级阿拉克涅卵 可孵化的单位
- true
-
-
- ARA_InteractiveEggSac_2Stage
- 温度要求
- true
-
-
-
-
- ARA_EggSpew_Huge_2Stage
-
- 从卵巢中排出一颗休眠的大型虫卵,阿拉克涅女皇种可以通过与其交互将其激活,并选择孵化的督虫虫族类型——参阅虫卵的具体信息,了解各个督虫的特点。\n\n该虫卵只能孵化大型虫族。
- ArachnaeSwarm/UI/Abilities/ARA_EggSpew_Huge_2Stage
-
-
- ARA_Proj_EggSac_Huge_2Stage
-
-
- ARA_InteractiveEggSac_Huge_2Stage
- 2级大型阿拉克涅卵 可孵化的单位
- true
-
-
- ARA_InteractiveEggSac_Huge_2Stage
- 温度要求
- true
-
-
-
-
ARA_EggSpew_Techprint
diff --git a/1.6/1.6/Defs/EvolutionDefs/ARA_Evolution.xml b/1.6/1.6/Defs/EvolutionDefs/ARA_Evolution.xml
index dd906cc..e3942d9 100644
--- a/1.6/1.6/Defs/EvolutionDefs/ARA_Evolution.xml
+++ b/1.6/1.6/Defs/EvolutionDefs/ARA_Evolution.xml
@@ -23,8 +23,6 @@
- ARA_EggSpew
- ARA_EggSpew_Huge
ARA_Queen_Upgrade_1_Stage
@@ -87,8 +85,6 @@
- ARA_EggSpew_1Stage
- ARA_EggSpew_Huge_1Stage
ARA_Queen_Upgrade_2_Stage
@@ -151,8 +147,6 @@
- ARA_EggSpew_2Stage
- ARA_EggSpew_Huge_2Stage
diff --git a/1.6/1.6/Defs/NeedDefs/ARA_Needs.xml b/1.6/1.6/Defs/NeedDefs/ARA_Needs.xml
new file mode 100644
index 0000000..5ecb541
--- /dev/null
+++ b/1.6/1.6/Defs/NeedDefs/ARA_Needs.xml
@@ -0,0 +1,19 @@
+
+
+
+ ARA_HoneyProduction
+ ArachnaeSwarm.Need_HoneyProduction
+
+ 代表这个生物储存阿拉克涅虫蜜原浆的多少。当其他虫族饥饿时,会尝试直接从有蜜罐腔的生物身上获取虫蜜,如果蜜罐满溢,则生物会尝试将其提取出来。
+ 800
+ true
+ true
+
+ Wula_Synth
+
+ true
+ Baby, Child, Adult
+ true
+ false
+
+
\ No newline at end of file
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 38ffb73..be181ab 100644
--- a/1.6/1.6/Defs/ThingDef_Races/ARA_RaceBaseSwarm.xml
+++ b/1.6/1.6/Defs/ThingDef_Races/ARA_RaceBaseSwarm.xml
@@ -95,33 +95,12 @@
ArachnaeBase_Race_Scavenger
- 阿拉克涅辅虫之一,智力低下,可以执行种植和收割工作,注定在度过短暂的时光后死亡。
+ 阿拉克涅辅虫之一,智力低下,可以执行种植、收割、搬运和挖掘工作,注定在度过短暂的时光后死亡。
ARA_Sowing
-
-
-
-
-
-
- ARA_Sowing
- true
- true
-
-
- true
-
-
-
-
- ArachnaeBase_Race_HardJaw
-
- 阿拉克涅辅虫之一,智力低下,可以承担挖矿任务,注定在度过短暂的时光后死亡。
-
-
Dig
- AttackTarget
+ ARA_Cleaning
@@ -133,27 +112,10 @@
true
- AttackTarget
+ ARA_Sowing
true
true
-
- true
-
-
-
-
- ArachnaeBase_Race_Maid
-
- 阿拉克涅辅虫之一,智力低下,可以执行清洁和搬运工作,注定在度过短暂的时光后死亡。
-
-
- ARA_Cleaning
-
-
-
-
-
ARA_Cleaning
true
diff --git a/1.6/1.6/Defs/ThingDef_Races/ARA_RaceNodeSwarm.xml b/1.6/1.6/Defs/ThingDef_Races/ARA_RaceNodeSwarm.xml
index a175cd9..9301adb 100644
--- a/1.6/1.6/Defs/ThingDef_Races/ARA_RaceNodeSwarm.xml
+++ b/1.6/1.6/Defs/ThingDef_Races/ARA_RaceNodeSwarm.xml
@@ -699,7 +699,7 @@
ArachnaeNode_Race_Myrmecocystus
- 阿拉克涅大型督虫之一,拥有广泛食谱的大型虫族,可以吞下许多未经处理的生物并将其分解为阿拉克涅虫蜜,以滋养虫群。\n\n她可以进行搬运、烹饪和种植工作,战斗技能非常差。\n\n作为督虫,她可以繁育并监管若干阿拉克涅食腐种辅虫,以协助巢穴进行收割和播种工作。
+ 阿拉克涅大型督虫之一,拥有广泛食谱的大型虫族,可以吞下许多未经处理的生物并将其分解为阿拉克涅虫蜜,以滋养虫群。\n\n她可以进行搬运、烹饪和种植工作,战斗技能非常差。
@@ -780,23 +780,6 @@
1
10
-->
-
- true
- ARA_RaceBaseSwarmProduceSwitchHediff
- ARA_InsectJelly
- 1
- 1
- 999
- 9999
-
-
- ArachnaeBase_Race_Scavenger
- 2
- 1000
-
-
- CocoonDestroyed
-
ARA_Cycle_Suppression_Hediff
ARA_LifespanHediff
@@ -807,7 +790,6 @@
- ARA_RaceBaseSwarmProduceSwitchHediff
ARA_Myrmecocystus_Production_InsectJelly
1.0
@@ -955,17 +937,17 @@
false
- true
+ false
ARA_RaceBaseSwarmProduceSwitchHediff
ARA_InsectJelly
1
1
- 999
+ 1
9999
- ArachnaeBase_Race_HardJaw
- 2
+ ArachnaeBase_Race_Scavenger
+ 4
1000
diff --git a/1.6/1.6/Defs/Thing_building/ARA_Incubator.xml b/1.6/1.6/Defs/Thing_building/ARA_Ootheca.xml
similarity index 87%
rename from 1.6/1.6/Defs/Thing_building/ARA_Incubator.xml
rename to 1.6/1.6/Defs/Thing_building/ARA_Ootheca.xml
index 1e44266..4629030 100644
--- a/1.6/1.6/Defs/Thing_building/ARA_Incubator.xml
+++ b/1.6/1.6/Defs/Thing_building/ARA_Ootheca.xml
@@ -89,7 +89,7 @@
true
10
- 20
+ 150
1
-6
@@ -98,8 +98,8 @@
false
false
- true
- false
+ false
+
ARA_Incubator_Room
@@ -108,7 +108,19 @@
ArachnaeSwarm.ITab_Ootheca_Incubation
+
+ ArachnaeSwarm.PlaceWorker_CustomRadius
+
+
+ 5
+ (0.5, 1, 1)
+ 0
+ true
+
+ 这个卵在孵化过程中的吸收半径,确保这些地格中铺满阿拉克涅营养液,并且没有其他的卵,以获得最佳的孵化速度和孵化质量。
+ false
+
0
@@ -184,6 +196,11 @@
6
(113,141,117,0)
+
+ -10
+ 20
+ 0.015
+
\ No newline at end of file
diff --git a/Source/ArachnaeSwarm/.vs/ArachnaeSwarm/v17/.suo b/Source/ArachnaeSwarm/.vs/ArachnaeSwarm/v17/.suo
index 51cc3d0..cd88601 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 fb5c6e3..20e9236 100644
--- a/Source/ArachnaeSwarm/.vs/ArachnaeSwarm/v17/DocumentLayout.json
+++ b/Source/ArachnaeSwarm/.vs/ArachnaeSwarm/v17/DocumentLayout.json
@@ -1,85 +1,57 @@
{
"Version": 1,
- "WorkspaceRootPath": "E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\",
+ "WorkspaceRootPath": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\",
"Documents": [
{
- "AbsoluteMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|e:\\steamlibrary\\steamapps\\common\\rimworld\\mods\\arachnaeswarm\\source\\arachnaeswarm\\buildings\\building_ootheca\\building_ootheca.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\\buildings\\building_ootheca\\building_ootheca.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:buildings\\building_ootheca\\building_ootheca.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\\buildings\\building_ootheca\\compproperties_incubatordata.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
- "RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:buildings\\building_ootheca\\compproperties_incubatordata.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\\placeworker\\compproperties_customradius.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:placeworker\\compproperties_customradius.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\\buildings\\building_ootheca\\itab_ootheca_incubation.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
- "RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:buildings\\building_ootheca\\itab_ootheca_incubation.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\\buildings\\building_ootheca\\jobdriver_operateincubator.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
- "RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:buildings\\building_ootheca\\jobdriver_operateincubator.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\\buildings\\building_ootheca\\roomroleworker_incubator.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
- "RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:buildings\\building_ootheca\\roomroleworker_incubator.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\\powerarmor\\jobdriver_enterpowerarmor.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
- "RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:powerarmor\\jobdriver_enterpowerarmor.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_hediffdefof.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
- "RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:ara_hediffdefof.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\\powerarmor\\ara_powerarmor.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
- "RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:powerarmor\\ara_powerarmor.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\\buildings\\building_arachnaegravengine.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
- "RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:buildings\\building_arachnaegravengine.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\\flyover\\ara_groundstrafing\\compgroundstrafing.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\\flyover\\ara_groundstrafing\\compgroundstrafing.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:flyover\\ara_groundstrafing\\compgroundstrafing.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\\flyover\\ara_sectorsurveillance\\compsectorsurveillance.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\\flyover\\ara_sectorsurveillance\\compsectorsurveillance.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:flyover\\ara_sectorsurveillance\\compsectorsurveillance.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\\flyover\\thingclassflyover.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\\flyover\\thingclassflyover.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:flyover\\thingclassflyover.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\\flyover\\ara_aircrafthangar\\compabilityeffect_aircraftstrike.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\\flyover\\ara_aircrafthangar\\compabilityeffect_aircraftstrike.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:flyover\\ara_aircrafthangar\\compabilityeffect_aircraftstrike.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\\abilities\\ara_givehediffwithskillduration\\compabilityeffect_givehediffwithskillduration.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\\abilities\\ara_givehediffwithskillduration\\compabilityeffect_givehediffwithskillduration.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:abilities\\ara_givehediffwithskillduration\\compabilityeffect_givehediffwithskillduration.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\\abilities\\ara_showtemperaturerange\\compabilityeffect_abilityshowtemperaturerange.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\\abilities\\ara_showtemperaturerange\\compabilityeffect_abilityshowtemperaturerange.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:abilities\\ara_showtemperaturerange\\compabilityeffect_abilityshowtemperaturerange.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\\abilities\\ara_showspawnablepawnslist\\compabilityeffect_abilityshowspawnablepawns.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\\abilities\\ara_showspawnablepawnslist\\compabilityeffect_abilityshowspawnablepawns.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:abilities\\ara_showspawnablepawnslist\\compabilityeffect_abilityshowspawnablepawns.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\\flyover\\ara_spawnflyover\\compabilityeffect_spawnflyover.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\\flyover\\ara_spawnflyover\\compabilityeffect_spawnflyover.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:flyover\\ara_spawnflyover\\compabilityeffect_spawnflyover.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\\flyover\\ara_aircrafthangar\\compaircrafthangar.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\\flyover\\ara_aircrafthangar\\compaircrafthangar.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:flyover\\ara_aircrafthangar\\compaircrafthangar.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\\flyover\\ara_aircrafthangar\\worldcomponent_aircraftmanager.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\\flyover\\ara_aircrafthangar\\worldcomponent_aircraftmanager.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:flyover\\ara_aircrafthangar\\worldcomponent_aircraftmanager.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\\flyover\\ara_flyoverescort\\compproperties_flyoverescort.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\\flyover\\ara_flyoverescort\\compproperties_flyoverescort.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:flyover\\ara_flyoverescort\\compproperties_flyoverescort.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
}
],
@@ -90,8 +62,21 @@
"DocumentGroups": [
{
"DockedWidth": 200,
- "SelectedChildIndex": 2,
+ "SelectedChildIndex": 0,
"Children": [
+ {
+ "$type": "Document",
+ "DocumentIndex": 0,
+ "Title": "Building_Ootheca.cs",
+ "DocumentMoniker": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Buildings\\Building_Ootheca\\Building_Ootheca.cs",
+ "RelativeDocumentMoniker": "Buildings\\Building_Ootheca\\Building_Ootheca.cs",
+ "ToolTip": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Buildings\\Building_Ootheca\\Building_Ootheca.cs",
+ "RelativeToolTip": "Buildings\\Building_Ootheca\\Building_Ootheca.cs",
+ "ViewState": "AgIAAK8CAAAAAAAAAAA9wPACAAAMAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-12-15T07:28:18.272Z",
+ "EditorCaption": ""
+ },
{
"$type": "Bookmark",
"Name": "ST:0:0:{1c4feeaa-4718-4aa9-859d-94ce25d182ba}"
@@ -99,123 +84,23 @@
{
"$type": "Document",
"DocumentIndex": 1,
- "Title": "CompProperties_IncubatorData.cs",
- "DocumentMoniker": "E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Buildings\\Building_Ootheca\\CompProperties_IncubatorData.cs",
- "RelativeDocumentMoniker": "Buildings\\Building_Ootheca\\CompProperties_IncubatorData.cs",
- "ToolTip": "E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Buildings\\Building_Ootheca\\CompProperties_IncubatorData.cs",
- "RelativeToolTip": "Buildings\\Building_Ootheca\\CompProperties_IncubatorData.cs",
- "ViewState": "AgIAAH0AAAAAAAAAAAAAAK8AAAAJAAAAAAAAAA==",
+ "Title": "CompProperties_CustomRadius.cs",
+ "DocumentMoniker": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Placeworker\\CompProperties_CustomRadius.cs",
+ "RelativeDocumentMoniker": "Placeworker\\CompProperties_CustomRadius.cs",
+ "ToolTip": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Placeworker\\CompProperties_CustomRadius.cs",
+ "RelativeToolTip": "Placeworker\\CompProperties_CustomRadius.cs",
+ "ViewState": "AgIAAAIAAAAAAAAAAAAAACMAAAA/AAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
- "WhenOpened": "2025-12-14T12:41:01.454Z",
- "EditorCaption": ""
- },
- {
- "$type": "Document",
- "DocumentIndex": 0,
- "Title": "Building_Ootheca.cs",
- "DocumentMoniker": "E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Buildings\\Building_Ootheca\\Building_Ootheca.cs",
- "RelativeDocumentMoniker": "Buildings\\Building_Ootheca\\Building_Ootheca.cs",
- "ToolTip": "E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Buildings\\Building_Ootheca\\Building_Ootheca.cs*",
- "RelativeToolTip": "Buildings\\Building_Ootheca\\Building_Ootheca.cs*",
- "ViewState": "AgIAAK4BAAAAAAAAAAAAAOUBAABIAAAAAAAAAA==",
- "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
- "WhenOpened": "2025-12-14T13:27:29.463Z",
- "EditorCaption": ""
- },
- {
- "$type": "Document",
- "DocumentIndex": 2,
- "Title": "ITab_Ootheca_Incubation.cs",
- "DocumentMoniker": "E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Buildings\\Building_Ootheca\\ITab_Ootheca_Incubation.cs",
- "RelativeDocumentMoniker": "Buildings\\Building_Ootheca\\ITab_Ootheca_Incubation.cs",
- "ToolTip": "E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Buildings\\Building_Ootheca\\ITab_Ootheca_Incubation.cs",
- "RelativeToolTip": "Buildings\\Building_Ootheca\\ITab_Ootheca_Incubation.cs",
- "ViewState": "AgIAAKwAAAAAAAAAAADwv+MAAAAAAAAAAAAAAA==",
- "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
- "WhenOpened": "2025-12-14T16:21:37.25Z",
+ "WhenOpened": "2025-12-15T07:21:04.756Z",
"EditorCaption": ""
},
{
"$type": "Document",
"DocumentIndex": 3,
- "Title": "JobDriver_OperateIncubator.cs",
- "DocumentMoniker": "E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Buildings\\Building_Ootheca\\JobDriver_OperateIncubator.cs",
- "RelativeDocumentMoniker": "Buildings\\Building_Ootheca\\JobDriver_OperateIncubator.cs",
- "ToolTip": "E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Buildings\\Building_Ootheca\\JobDriver_OperateIncubator.cs",
- "RelativeToolTip": "Buildings\\Building_Ootheca\\JobDriver_OperateIncubator.cs",
- "ViewState": "AgIAAA4AAAAAAAAAAAAAwC0AAAAgAAAAAAAAAA==",
- "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
- "WhenOpened": "2025-12-14T13:42:44.544Z",
- "EditorCaption": ""
- },
- {
- "$type": "Document",
- "DocumentIndex": 4,
- "Title": "RoomRoleWorker_Incubator.cs",
- "DocumentMoniker": "E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Buildings\\Building_Ootheca\\RoomRoleWorker_Incubator.cs",
- "RelativeDocumentMoniker": "Buildings\\Building_Ootheca\\RoomRoleWorker_Incubator.cs",
- "ToolTip": "E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Buildings\\Building_Ootheca\\RoomRoleWorker_Incubator.cs",
- "RelativeToolTip": "Buildings\\Building_Ootheca\\RoomRoleWorker_Incubator.cs",
- "ViewState": "AgIAAAAAAAAAAAAAAADwvxYAAAA8AAAAAAAAAA==",
- "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
- "WhenOpened": "2025-12-14T16:16:56.635Z",
- "EditorCaption": ""
- },
- {
- "$type": "Document",
- "DocumentIndex": 5,
- "Title": "JobDriver_EnterPowerArmor.cs",
- "DocumentMoniker": "E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\PowerArmor\\JobDriver_EnterPowerArmor.cs",
- "RelativeDocumentMoniker": "PowerArmor\\JobDriver_EnterPowerArmor.cs",
- "ToolTip": "E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\PowerArmor\\JobDriver_EnterPowerArmor.cs",
- "RelativeToolTip": "PowerArmor\\JobDriver_EnterPowerArmor.cs",
- "ViewState": "AgIAAAAAAAAAAAAAAADwvwAAAAAAAAAAAAAAAA==",
- "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
- "WhenOpened": "2025-12-14T13:53:00.443Z"
- },
- {
- "$type": "Document",
- "DocumentIndex": 6,
- "Title": "ARA_HediffDefOf.cs",
- "DocumentMoniker": "E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\ARA_HediffDefOf.cs",
- "RelativeDocumentMoniker": "ARA_HediffDefOf.cs",
- "ToolTip": "E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\ARA_HediffDefOf.cs",
- "RelativeToolTip": "ARA_HediffDefOf.cs",
- "ViewState": "AgIAAAAAAAAAAAAAAADwvxIAAAAkAAAAAAAAAA==",
- "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
- "WhenOpened": "2025-12-14T13:29:05.1Z"
- },
- {
- "$type": "Document",
- "DocumentIndex": 7,
- "Title": "ARA_PowerArmor.cs",
- "DocumentMoniker": "E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\PowerArmor\\ARA_PowerArmor.cs",
- "RelativeDocumentMoniker": "PowerArmor\\ARA_PowerArmor.cs",
- "ToolTip": "E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\PowerArmor\\ARA_PowerArmor.cs",
- "RelativeToolTip": "PowerArmor\\ARA_PowerArmor.cs",
- "ViewState": "AgIAAAAAAAAAAAAAAADwvxAAAABMAAAAAAAAAA==",
- "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
- "WhenOpened": "2025-12-14T12:42:55.951Z"
- },
- {
- "$type": "Document",
- "DocumentIndex": 8,
- "Title": "Building_ArachnaeGravEngine.cs",
- "DocumentMoniker": "E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Buildings\\Building_ArachnaeGravEngine.cs",
- "RelativeDocumentMoniker": "Buildings\\Building_ArachnaeGravEngine.cs",
- "ToolTip": "E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Buildings\\Building_ArachnaeGravEngine.cs",
- "RelativeToolTip": "Buildings\\Building_ArachnaeGravEngine.cs",
- "ViewState": "AgIAAAAAAAAAAAAAAADwvxcAAAAiAAAAAAAAAA==",
- "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
- "WhenOpened": "2025-12-14T12:37:14.137Z"
- },
- {
- "$type": "Document",
- "DocumentIndex": 10,
"Title": "CompSectorSurveillance.cs",
- "DocumentMoniker": "E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Flyover\\ARA_SectorSurveillance\\CompSectorSurveillance.cs",
+ "DocumentMoniker": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Flyover\\ARA_SectorSurveillance\\CompSectorSurveillance.cs",
"RelativeDocumentMoniker": "Flyover\\ARA_SectorSurveillance\\CompSectorSurveillance.cs",
- "ToolTip": "E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Flyover\\ARA_SectorSurveillance\\CompSectorSurveillance.cs",
+ "ToolTip": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Flyover\\ARA_SectorSurveillance\\CompSectorSurveillance.cs",
"RelativeToolTip": "Flyover\\ARA_SectorSurveillance\\CompSectorSurveillance.cs",
"ViewState": "AgIAAPACAAAAAAAAAAAAABEDAAAAAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
@@ -223,23 +108,23 @@
},
{
"$type": "Document",
- "DocumentIndex": 9,
+ "DocumentIndex": 2,
"Title": "CompGroundStrafing.cs",
- "DocumentMoniker": "E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Flyover\\ARA_GroundStrafing\\CompGroundStrafing.cs",
+ "DocumentMoniker": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Flyover\\ARA_GroundStrafing\\CompGroundStrafing.cs",
"RelativeDocumentMoniker": "Flyover\\ARA_GroundStrafing\\CompGroundStrafing.cs",
- "ToolTip": "E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Flyover\\ARA_GroundStrafing\\CompGroundStrafing.cs",
+ "ToolTip": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Flyover\\ARA_GroundStrafing\\CompGroundStrafing.cs",
"RelativeToolTip": "Flyover\\ARA_GroundStrafing\\CompGroundStrafing.cs",
- "ViewState": "AgIAAAAAAAAAAAAAAAAAABsAAAAMAAAAAAAAAA==",
+ "ViewState": "AgIAAGwBAAAAAAAAAAArwIYBAAAFAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2025-10-30T13:00:11.18Z"
},
{
"$type": "Document",
- "DocumentIndex": 13,
+ "DocumentIndex": 6,
"Title": "CompAbilityEffect_GiveHediffWithSkillDuration.cs",
- "DocumentMoniker": "E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Abilities\\ARA_GiveHediffWithSkillDuration\\CompAbilityEffect_GiveHediffWithSkillDuration.cs",
+ "DocumentMoniker": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Abilities\\ARA_GiveHediffWithSkillDuration\\CompAbilityEffect_GiveHediffWithSkillDuration.cs",
"RelativeDocumentMoniker": "Abilities\\ARA_GiveHediffWithSkillDuration\\CompAbilityEffect_GiveHediffWithSkillDuration.cs",
- "ToolTip": "E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Abilities\\ARA_GiveHediffWithSkillDuration\\CompAbilityEffect_GiveHediffWithSkillDuration.cs",
+ "ToolTip": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Abilities\\ARA_GiveHediffWithSkillDuration\\CompAbilityEffect_GiveHediffWithSkillDuration.cs",
"RelativeToolTip": "Abilities\\ARA_GiveHediffWithSkillDuration\\CompAbilityEffect_GiveHediffWithSkillDuration.cs",
"ViewState": "AgIAAEsAAAAAAAAAAAAWwGAAAAAAAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
@@ -247,11 +132,11 @@
},
{
"$type": "Document",
- "DocumentIndex": 14,
+ "DocumentIndex": 7,
"Title": "CompAbilityEffect_AbilityShowTemperatureRange.cs",
- "DocumentMoniker": "E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Abilities\\ARA_ShowTemperatureRange\\CompAbilityEffect_AbilityShowTemperatureRange.cs",
+ "DocumentMoniker": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Abilities\\ARA_ShowTemperatureRange\\CompAbilityEffect_AbilityShowTemperatureRange.cs",
"RelativeDocumentMoniker": "Abilities\\ARA_ShowTemperatureRange\\CompAbilityEffect_AbilityShowTemperatureRange.cs",
- "ToolTip": "E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Abilities\\ARA_ShowTemperatureRange\\CompAbilityEffect_AbilityShowTemperatureRange.cs",
+ "ToolTip": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Abilities\\ARA_ShowTemperatureRange\\CompAbilityEffect_AbilityShowTemperatureRange.cs",
"RelativeToolTip": "Abilities\\ARA_ShowTemperatureRange\\CompAbilityEffect_AbilityShowTemperatureRange.cs",
"ViewState": "AgIAAAAAAAAAAAAAAAAAABcAAAArAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
@@ -259,11 +144,11 @@
},
{
"$type": "Document",
- "DocumentIndex": 12,
+ "DocumentIndex": 5,
"Title": "CompAbilityEffect_AircraftStrike.cs",
- "DocumentMoniker": "E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Flyover\\ARA_AircraftHangar\\CompAbilityEffect_AircraftStrike.cs",
+ "DocumentMoniker": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Flyover\\ARA_AircraftHangar\\CompAbilityEffect_AircraftStrike.cs",
"RelativeDocumentMoniker": "Flyover\\ARA_AircraftHangar\\CompAbilityEffect_AircraftStrike.cs",
- "ToolTip": "E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Flyover\\ARA_AircraftHangar\\CompAbilityEffect_AircraftStrike.cs",
+ "ToolTip": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Flyover\\ARA_AircraftHangar\\CompAbilityEffect_AircraftStrike.cs",
"RelativeToolTip": "Flyover\\ARA_AircraftHangar\\CompAbilityEffect_AircraftStrike.cs",
"ViewState": "AgIAAHYAAAAAAAAAAAAtwJcAAAArAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
@@ -271,11 +156,11 @@
},
{
"$type": "Document",
- "DocumentIndex": 11,
+ "DocumentIndex": 4,
"Title": "ThingclassFlyOver.cs",
- "DocumentMoniker": "E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Flyover\\ThingclassFlyOver.cs",
+ "DocumentMoniker": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Flyover\\ThingclassFlyOver.cs",
"RelativeDocumentMoniker": "Flyover\\ThingclassFlyOver.cs",
- "ToolTip": "E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Flyover\\ThingclassFlyOver.cs",
+ "ToolTip": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Flyover\\ThingclassFlyOver.cs",
"RelativeToolTip": "Flyover\\ThingclassFlyOver.cs",
"ViewState": "AgIAAIkCAAAAAAAAAAAawI8CAAANAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
@@ -283,11 +168,11 @@
},
{
"$type": "Document",
- "DocumentIndex": 15,
+ "DocumentIndex": 8,
"Title": "CompAbilityEffect_AbilityShowSpawnablePawns.cs",
- "DocumentMoniker": "E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Abilities\\ARA_ShowSpawnablePawnsList\\CompAbilityEffect_AbilityShowSpawnablePawns.cs",
+ "DocumentMoniker": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Abilities\\ARA_ShowSpawnablePawnsList\\CompAbilityEffect_AbilityShowSpawnablePawns.cs",
"RelativeDocumentMoniker": "Abilities\\ARA_ShowSpawnablePawnsList\\CompAbilityEffect_AbilityShowSpawnablePawns.cs",
- "ToolTip": "E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Abilities\\ARA_ShowSpawnablePawnsList\\CompAbilityEffect_AbilityShowSpawnablePawns.cs",
+ "ToolTip": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Abilities\\ARA_ShowSpawnablePawnsList\\CompAbilityEffect_AbilityShowSpawnablePawns.cs",
"RelativeToolTip": "Abilities\\ARA_ShowSpawnablePawnsList\\CompAbilityEffect_AbilityShowSpawnablePawns.cs",
"ViewState": "AgIAABYAAAAAAAAAAAAuwBYAAAArAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
@@ -295,11 +180,11 @@
},
{
"$type": "Document",
- "DocumentIndex": 17,
+ "DocumentIndex": 10,
"Title": "CompAircraftHangar.cs",
- "DocumentMoniker": "E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Flyover\\ARA_AircraftHangar\\CompAircraftHangar.cs",
+ "DocumentMoniker": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Flyover\\ARA_AircraftHangar\\CompAircraftHangar.cs",
"RelativeDocumentMoniker": "Flyover\\ARA_AircraftHangar\\CompAircraftHangar.cs",
- "ToolTip": "E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Flyover\\ARA_AircraftHangar\\CompAircraftHangar.cs",
+ "ToolTip": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Flyover\\ARA_AircraftHangar\\CompAircraftHangar.cs",
"RelativeToolTip": "Flyover\\ARA_AircraftHangar\\CompAircraftHangar.cs",
"ViewState": "AgIAABcAAAAAAAAAAAAQwCQAAAAnAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
@@ -307,11 +192,11 @@
},
{
"$type": "Document",
- "DocumentIndex": 16,
+ "DocumentIndex": 9,
"Title": "CompAbilityEffect_SpawnFlyOver.cs",
- "DocumentMoniker": "E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Flyover\\ARA_SpawnFlyOver\\CompAbilityEffect_SpawnFlyOver.cs",
+ "DocumentMoniker": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Flyover\\ARA_SpawnFlyOver\\CompAbilityEffect_SpawnFlyOver.cs",
"RelativeDocumentMoniker": "Flyover\\ARA_SpawnFlyOver\\CompAbilityEffect_SpawnFlyOver.cs",
- "ToolTip": "E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Flyover\\ARA_SpawnFlyOver\\CompAbilityEffect_SpawnFlyOver.cs",
+ "ToolTip": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Flyover\\ARA_SpawnFlyOver\\CompAbilityEffect_SpawnFlyOver.cs",
"RelativeToolTip": "Flyover\\ARA_SpawnFlyOver\\CompAbilityEffect_SpawnFlyOver.cs",
"ViewState": "AgIAAFMDAAAAAAAAAAAawG8DAAAAAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
@@ -319,11 +204,11 @@
},
{
"$type": "Document",
- "DocumentIndex": 18,
+ "DocumentIndex": 11,
"Title": "WorldComponent_AircraftManager.cs",
- "DocumentMoniker": "E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Flyover\\ARA_AircraftHangar\\WorldComponent_AircraftManager.cs",
+ "DocumentMoniker": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Flyover\\ARA_AircraftHangar\\WorldComponent_AircraftManager.cs",
"RelativeDocumentMoniker": "Flyover\\ARA_AircraftHangar\\WorldComponent_AircraftManager.cs",
- "ToolTip": "E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Flyover\\ARA_AircraftHangar\\WorldComponent_AircraftManager.cs",
+ "ToolTip": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Flyover\\ARA_AircraftHangar\\WorldComponent_AircraftManager.cs",
"RelativeToolTip": "Flyover\\ARA_AircraftHangar\\WorldComponent_AircraftManager.cs",
"ViewState": "AgIAAJUAAAAAAAAAAAAowK4AAAAUAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
@@ -331,11 +216,11 @@
},
{
"$type": "Document",
- "DocumentIndex": 19,
+ "DocumentIndex": 12,
"Title": "CompProperties_FlyOverEscort.cs",
- "DocumentMoniker": "E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Flyover\\ARA_FlyOverEscort\\CompProperties_FlyOverEscort.cs",
+ "DocumentMoniker": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Flyover\\ARA_FlyOverEscort\\CompProperties_FlyOverEscort.cs",
"RelativeDocumentMoniker": "Flyover\\ARA_FlyOverEscort\\CompProperties_FlyOverEscort.cs",
- "ToolTip": "E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Flyover\\ARA_FlyOverEscort\\CompProperties_FlyOverEscort.cs",
+ "ToolTip": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Flyover\\ARA_FlyOverEscort\\CompProperties_FlyOverEscort.cs",
"RelativeToolTip": "Flyover\\ARA_FlyOverEscort\\CompProperties_FlyOverEscort.cs",
"ViewState": "AgIAAAAAAAAAAAAAAAAAABAAAAAvAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
diff --git a/Source/ArachnaeSwarm/ArachnaeSwarm.csproj b/Source/ArachnaeSwarm/ArachnaeSwarm.csproj
index 946bce8..716e987 100644
--- a/Source/ArachnaeSwarm/ArachnaeSwarm.csproj
+++ b/Source/ArachnaeSwarm/ArachnaeSwarm.csproj
@@ -168,6 +168,7 @@
+
diff --git a/Source/ArachnaeSwarm/Buildings/Building_Ootheca/Building_Ootheca.cs b/Source/ArachnaeSwarm/Buildings/Building_Ootheca/Building_Ootheca.cs
index f449fc3..79977fb 100644
--- a/Source/ArachnaeSwarm/Buildings/Building_Ootheca/Building_Ootheca.cs
+++ b/Source/ArachnaeSwarm/Buildings/Building_Ootheca/Building_Ootheca.cs
@@ -693,16 +693,16 @@ namespace ArachnaeSwarm
return room.Role != null && room.Role.defName == "ARA_Incubator_Room";
}
- // 计算周围4格内的营养液数量
+ // 计算周围5格内的营养液数量
private int CountNearbyNutrientSolutions()
{
var map = Map;
if (map == null) return 0;
int count = 0;
- int radius = 4; // 4格半径
+ int radius = 5; // 4格半径
- // 检查周围4格范围内的所有单元格
+ // 检查周围5格范围内的所有单元格
for (int x = -radius; x <= radius; x++)
{
for (int y = -radius; y <= radius; y++)
@@ -763,9 +763,9 @@ namespace ArachnaeSwarm
var room = building.GetRoom();
if (room != null)
{
- // 如果在同一个房间,或者距离较近(10格内)
+ // 如果在同一个房间,或者距离较近(5格内)
float distance = building.Position.DistanceTo(this.Position);
- if (room == this.GetRoom() || distance <= 10f)
+ if (room == this.GetRoom() || distance <= 5f)
{
count++;
}
diff --git a/Source/ArachnaeSwarm/Needs/Need_HoneyProduction.cs b/Source/ArachnaeSwarm/Needs/Need_HoneyProduction.cs
new file mode 100644
index 0000000..006c1c8
--- /dev/null
+++ b/Source/ArachnaeSwarm/Needs/Need_HoneyProduction.cs
@@ -0,0 +1,264 @@
+using RimWorld;
+using UnityEngine;
+using Verse;
+
+namespace ArachnaeSwarm
+{
+ public class Need_HoneyProduction : Need
+ {
+ // 基础流失速率(与食物需要对应)
+ private const float BaseHoneyGainPerTick = 2.6666667E-05f * 0.5f; // 食物流失速率的50%
+
+ // 用于存储对食物需要的引用
+ private Need_Food cachedFoodNeed;
+
+ // 当前类别
+ private HoneyProductionCategory curCategoryInt = HoneyProductionCategory.Empty;
+
+ // 上次满的时间点
+ private int lastFullTick = -99999;
+
+ // 蜜罐的最大容量(可能需要调整)
+ public override float MaxLevel => 1f;
+
+ // 当前类别
+ public HoneyProductionCategory CurCategory => curCategoryInt;
+
+ // 是否满仓
+ public bool IsFull => CurCategory == HoneyProductionCategory.Full;
+
+ // 是否为空
+ public bool IsEmpty => CurCategory == HoneyProductionCategory.Empty;
+
+ // 当前类别对应的生产效率
+ public float ProductionEfficiency
+ {
+ get
+ {
+ switch (curCategoryInt)
+ {
+ case HoneyProductionCategory.Full:
+ return 1.0f;
+ case HoneyProductionCategory.High:
+ return 0.8f;
+ case HoneyProductionCategory.Medium:
+ return 0.5f;
+ case HoneyProductionCategory.Low:
+ return 0.3f;
+ case HoneyProductionCategory.Empty:
+ return 0f;
+ default:
+ return 0f;
+ }
+ }
+ }
+
+ // 获取食物需要的引用
+ private Need_Food FoodNeed
+ {
+ get
+ {
+ if (cachedFoodNeed == null || cachedFoodNeed.pawn != pawn)
+ {
+ cachedFoodNeed = pawn.needs?.TryGetNeed();
+ }
+ return cachedFoodNeed;
+ }
+ }
+
+ public Need_HoneyProduction(Pawn newPawn) : base(newPawn)
+ {
+ // 初始化时设置为空
+ curLevelInt = 0f;
+ threshPercents = new System.Collections.Generic.List
+ {
+ 0.25f, // Low -> Medium
+ 0.5f, // Medium -> High
+ 0.75f // High -> Full
+ };
+ }
+
+ public override void ExposeData()
+ {
+ base.ExposeData();
+ Scribe_Values.Look(ref lastFullTick, "lastFullTick", -99999);
+ }
+
+ public override void NeedInterval()
+ {
+ base.NeedInterval();
+
+ // 检查是否需要冻结(与食物需要类似的条件)
+ if (IsFrozen)
+ {
+ return;
+ }
+
+ // 获取食物需要的流失速率
+ float foodFallRate = GetFoodFallRate();
+
+ // 蜜罐的增长速率是食物流失速率的50%
+ float honeyGainRate = foodFallRate * 0.5f;
+
+ // 应用150 ticks的间隔
+ CurLevel += honeyGainRate * 150f;
+
+ // 更新类别
+ UpdateCategory();
+
+ // 记录满的时间
+ if (IsFull)
+ {
+ lastFullTick = Find.TickManager.TicksGame;
+ }
+ }
+
+ // 获取食物流失速率
+ private float GetFoodFallRate()
+ {
+ if (FoodNeed == null)
+ {
+ // 如果没有食物需要,使用默认值
+ return BaseHoneyGainPerTick / 0.5f; // 反向计算基础食物流失速率
+ }
+
+ // 获取当前食物类别对应的流失速率
+ return FoodNeed.FoodFallPerTick;
+ }
+
+ // 更新类别
+ private void UpdateCategory()
+ {
+ float percentage = CurLevelPercentage;
+
+ if (percentage >= 0.75f)
+ curCategoryInt = HoneyProductionCategory.Full;
+ else if (percentage >= 0.5f)
+ curCategoryInt = HoneyProductionCategory.High;
+ else if (percentage >= 0.25f)
+ curCategoryInt = HoneyProductionCategory.Medium;
+ else if (percentage > 0f)
+ curCategoryInt = HoneyProductionCategory.Low;
+ else
+ curCategoryInt = HoneyProductionCategory.Empty;
+ }
+
+ // 提取蜂蜜(减少蜜罐存量)
+ public void ExtractHoney(float amount)
+ {
+ CurLevel -= amount;
+ if (CurLevel < 0f)
+ CurLevel = 0f;
+ UpdateCategory();
+ }
+
+ // 强制清空蜜罐
+ public void EmptyHoney()
+ {
+ CurLevel = 0f;
+ curCategoryInt = HoneyProductionCategory.Empty;
+ }
+
+ // 重置到初始状态
+ public override void SetInitialLevel()
+ {
+ // 初始为空
+ CurLevel = 0f;
+ curCategoryInt = HoneyProductionCategory.Empty;
+ }
+
+ // 获取提示字符串
+ public override string GetTipString()
+ {
+ string text = (LabelCap + ": " + CurLevelPercentage.ToStringPercent()).Colorize(ColoredText.TipSectionTitleColor);
+ text += "\n" + def.description;
+ text += $"\n\n{"AS.HoneyProduction.CurrentLevel".Translate()}: {CurLevel:0.##} / {MaxLevel:0.##}";
+ text += $"\n{"AS.HoneyProduction.Category".Translate()}: {GetCategoryLabel().CapitalizeFirst()}";
+ text += $"\n{"AS.HoneyProduction.Efficiency".Translate()}: {ProductionEfficiency.ToStringPercent()}";
+ text += $"\n{"AS.HoneyProduction.FoodDrainRate".Translate()}: {GetFoodFallRate():0.#####}/tick";
+ text += $"\n{"AS.HoneyProduction.HoneyGainRate".Translate()}: {(GetFoodFallRate() * 0.5f):0.#####}/tick";
+
+ if (IsFull)
+ {
+ text += $"\n\n{"AS.HoneyProduction.FullWarning".Translate()}";
+ }
+
+ return text;
+ }
+
+ // 获取类别标签
+ public string GetCategoryLabel()
+ {
+ switch (curCategoryInt)
+ {
+ case HoneyProductionCategory.Full:
+ return "AS.HoneyProduction.Full".Translate();
+ case HoneyProductionCategory.High:
+ return "AS.HoneyProduction.High".Translate();
+ case HoneyProductionCategory.Medium:
+ return "AS.HoneyProduction.Medium".Translate();
+ case HoneyProductionCategory.Low:
+ return "AS.HoneyProduction.Low".Translate();
+ case HoneyProductionCategory.Empty:
+ return "AS.HoneyProduction.Empty".Translate();
+ default:
+ return "Unknown";
+ }
+ }
+
+ // 在UI上绘制
+ public override void DrawOnGUI(Rect rect, int maxThresholdMarkers = int.MaxValue, float customMargin = -1f, bool drawArrows = true, bool doTooltip = true, Rect? rectForTooltip = null, bool drawLabel = true)
+ {
+ if (threshPercents == null)
+ {
+ threshPercents = new System.Collections.Generic.List
+ {
+ 0.25f, 0.5f, 0.75f
+ };
+ }
+
+ base.DrawOnGUI(rect, maxThresholdMarkers, customMargin, false, doTooltip, rectForTooltip, drawLabel);
+ }
+
+ // 是否冻结
+ protected override bool IsFrozen
+ {
+ get
+ {
+ // 如果基础条件冻结,则蜜罐生产也冻结
+ if (base.IsFrozen)
+ return true;
+
+ // 如果没有食物需要,或者食物需要被冻结,则蜜罐生产也冻结
+ if (FoodNeed == null || FoodNeed.IsFrozen)
+ return true;
+
+ // 如果生物死亡,则冻结
+ if (pawn.Dead)
+ return true;
+
+ return false;
+ }
+ }
+
+ // GUI变化箭头(总是显示增长)
+ public override int GUIChangeArrow => 1;
+
+ // 调试调整百分比
+ protected override void OffsetDebugPercent(float offsetPercent)
+ {
+ base.OffsetDebugPercent(offsetPercent);
+ UpdateCategory();
+ }
+ }
+
+ // 蜜罐生产类别
+ public enum HoneyProductionCategory
+ {
+ Empty, // 空仓
+ Low, // 低存量(0-25%)
+ Medium, // 中存量(25-50%)
+ High, // 高存量(50-75%)
+ Full // 满仓(75-100%)
+ }
+}
diff --git a/Source/ArachnaeSwarm/Placeworker/CompProperties_CustomRadius.cs b/Source/ArachnaeSwarm/Placeworker/CompProperties_CustomRadius.cs
new file mode 100644
index 0000000..0144cc3
--- /dev/null
+++ b/Source/ArachnaeSwarm/Placeworker/CompProperties_CustomRadius.cs
@@ -0,0 +1,292 @@
+using RimWorld;
+using UnityEngine;
+using Verse;
+using System.Collections.Generic;
+using HarmonyLib;
+using RimWorld.Planet;
+
+namespace ArachnaeSwarm
+{
+ // 自定义属性组件,用于存储半径和颜色信息
+ public class CompProperties_CustomRadius : CompProperties
+ {
+ public float radius = 10f;
+ public Color color = new Color(0.8f, 0.8f, 0.4f); // 默认浅黄色
+ public float radiusOffset = -2.1f; // 半径偏移量,与原始保持一致
+ public bool showInGUI = true; // 是否在GUI中显示切换选项
+ public string label = "Show Radius"; // 直接定义标签文本
+ public string description = "Toggle visibility of the custom radius overlay."; // 直接定义描述文本
+ public bool defaultVisible = true; // 默认是否可见
+
+ public CompProperties_CustomRadius()
+ {
+ this.compClass = typeof(CompCustomRadius);
+ }
+ }
+
+ // 实际的组件类
+ public class CompCustomRadius : ThingComp
+ {
+ private bool radiusVisible = true;
+
+ public CompProperties_CustomRadius Props
+ {
+ get
+ {
+ return (CompProperties_CustomRadius)this.props;
+ }
+ }
+
+ public float EffectiveRadius
+ {
+ get
+ {
+ return Props.radius + Props.radiusOffset;
+ }
+ }
+
+ public bool RadiusVisible
+ {
+ get { return radiusVisible && Props.showInGUI; }
+ set { radiusVisible = value; }
+ }
+
+ public override void Initialize(CompProperties props)
+ {
+ base.Initialize(props);
+ radiusVisible = Props.defaultVisible;
+ }
+
+ public override void PostExposeData()
+ {
+ base.PostExposeData();
+ Scribe_Values.Look(ref radiusVisible, "radiusVisible", Props.defaultVisible);
+ }
+
+ // 在检视面板中显示切换选项
+ public override IEnumerable CompGetGizmosExtra()
+ {
+ if (!Props.showInGUI) yield break;
+
+ // 只对玩家所有的物体显示Gizmo
+ if (parent.Faction != Faction.OfPlayer)
+ yield break;
+
+ // 创建切换 gizmo
+ Command_Toggle toggleCommand = new Command_Toggle();
+ toggleCommand.defaultLabel = Props.label;
+ toggleCommand.defaultDesc = Props.description;
+
+ // 尝试加载图标,如果失败则使用默认图标
+ try
+ {
+ toggleCommand.icon = ContentFinder.Get("Wula/UI/Commands/WULA_ShowRadius", false);
+ if (toggleCommand.icon == null)
+ {
+ // 使用一个简单的占位符图标
+ toggleCommand.icon = BaseContent.BadTex;
+ }
+ }
+ catch
+ {
+ toggleCommand.icon = BaseContent.BadTex;
+ }
+
+ toggleCommand.isActive = () => RadiusVisible;
+ toggleCommand.toggleAction = () => RadiusVisible = !RadiusVisible;
+
+ yield return toggleCommand;
+ }
+
+ // 获取绘制颜色(考虑透明度等)
+ public Color GetDrawColor()
+ {
+ return Props.color;
+ }
+
+ // 检查是否应该绘制半径
+ public bool ShouldDrawRadius()
+ {
+ // 只绘制玩家所有的物体
+ if (parent.Faction != Faction.OfPlayer)
+ return false;
+
+ // 检查是否在地图视图中(不在世界地图)
+ if (Find.CurrentMap == null || WorldRendererUtility.WorldRendered)
+ return false;
+
+ return RadiusVisible;
+ }
+ }
+
+ // 自定义放置工作器
+ public class PlaceWorker_CustomRadius : PlaceWorker
+ {
+ public override void DrawGhost(ThingDef def, IntVec3 center, Rot4 rot, Color ghostCol, Thing thing = null)
+ {
+ // 检查是否在地图视图中
+ if (Find.CurrentMap == null || WorldRendererUtility.WorldRendered)
+ return;
+
+ // 如果已经有物体存在,则检查其组件的可见性设置
+ if (thing != null)
+ {
+ CompCustomRadius comp = thing.TryGetComp();
+ if (comp == null || !comp.ShouldDrawRadius())
+ return;
+ }
+
+ // 获取自定义半径组件属性
+ CompProperties_CustomRadius compProperties = def.GetCompProperties();
+ if (compProperties != null && compProperties.showInGUI)
+ {
+ float effectiveRadius = compProperties.radius + compProperties.radiusOffset;
+ if (effectiveRadius > 0f)
+ {
+ // 使用指定的颜色绘制圆环
+ Color drawColor = compProperties.color;
+ if (thing != null)
+ {
+ CompCustomRadius comp = thing.TryGetComp();
+ if (comp != null)
+ {
+ drawColor = comp.GetDrawColor();
+ }
+ }
+ GenDraw.DrawRadiusRing(center, effectiveRadius, drawColor);
+ }
+ }
+ }
+
+ // 可选:在验证放置位置时也考虑半径
+ public override AcceptanceReport AllowsPlacing(BuildableDef checkingDef, IntVec3 loc, Rot4 rot, Map map, Thing thingToIgnore = null, Thing thing = null)
+ {
+ // 这里可以添加额外的放置验证逻辑
+ // 例如检查半径内是否有不允许的建筑等
+
+ return true; // 默认允许放置
+ }
+ }
+
+ // 为已放置的建筑添加绘制支持
+ [StaticConstructorOnStartup]
+ public static class CustomRadiusRenderer
+ {
+ static CustomRadiusRenderer()
+ {
+ try
+ {
+ // 使用Harmony为MapInterface.MapInterfaceUpdate方法添加补丁
+ var harmony = new Harmony("WulaFallenEmpire.CustomRadius");
+
+ // 尝试不同的绘制方法
+ var mapInterfaceMethod = AccessTools.Method(typeof(MapInterface), "MapInterfaceUpdate");
+ if (mapInterfaceMethod != null)
+ {
+ harmony.Patch(mapInterfaceMethod,
+ postfix: new HarmonyMethod(typeof(CustomRadiusRenderer), nameof(Postfix_MapInterfaceUpdate)));
+ }
+ }
+ catch (System.Exception ex)
+ {
+ Log.Warning($"[CustomRadius] Error in static constructor: {ex}");
+ }
+ }
+
+ public static void Postfix_MapInterfaceUpdate()
+ {
+ try
+ {
+ // 检查是否在地图视图中(不在世界地图)
+ if (Find.CurrentMap == null || WorldRendererUtility.WorldRendered)
+ return;
+
+ // 绘制所有带有自定义半径组件的已放置建筑
+ foreach (var thing in Find.CurrentMap.listerThings.AllThings)
+ {
+ // 只绘制玩家所有的物体
+ if (thing.Faction != Faction.OfPlayer)
+ continue;
+
+ if (thing.Spawned && thing.def.HasComp(typeof(CompCustomRadius)))
+ {
+ CompCustomRadius comp = thing.TryGetComp();
+ if (comp != null && comp.ShouldDrawRadius())
+ {
+ float effectiveRadius = comp.EffectiveRadius;
+ if (effectiveRadius > 0f)
+ {
+ GenDraw.DrawRadiusRing(thing.Position, effectiveRadius, comp.GetDrawColor());
+ }
+ }
+ }
+ }
+ }
+ catch (System.Exception)
+ {
+ // 静默处理错误
+ }
+ }
+ }
+
+ // 为建筑选择时添加绘制支持
+ [StaticConstructorOnStartup]
+ public static class CustomRadiusSelectionRenderer
+ {
+ static CustomRadiusSelectionRenderer()
+ {
+ try
+ {
+ var harmony = new Harmony("WulaFallenEmpire.CustomRadiusSelection");
+
+ // 尝试为选择器绘制方法添加补丁
+ var selectionDrawMethod = AccessTools.Method(typeof(SelectionDrawer), "DrawSelectionOverlays");
+ if (selectionDrawMethod != null)
+ {
+ harmony.Patch(selectionDrawMethod,
+ postfix: new HarmonyMethod(typeof(CustomRadiusSelectionRenderer), nameof(Postfix_DrawSelectionOverlays)));
+ }
+ }
+ catch (System.Exception ex)
+ {
+ Log.Warning($"[CustomRadius] Error in static constructor: {ex}");
+ }
+ }
+
+ public static void Postfix_DrawSelectionOverlays()
+ {
+ try
+ {
+ // 检查是否在地图视图中(不在世界地图)
+ if (Find.CurrentMap == null || WorldRendererUtility.WorldRendered)
+ return;
+
+ if (Find.Selector == null) return;
+
+ foreach (object selected in Find.Selector.SelectedObjectsListForReading)
+ {
+ if (selected is Thing thing && thing.Spawned && thing.def.HasComp(typeof(CompCustomRadius)))
+ {
+ // 只绘制玩家所有的物体
+ if (thing.Faction != Faction.OfPlayer)
+ continue;
+
+ CompCustomRadius comp = thing.TryGetComp();
+ if (comp != null && comp.ShouldDrawRadius())
+ {
+ float effectiveRadius = comp.EffectiveRadius;
+ if (effectiveRadius > 0f)
+ {
+ GenDraw.DrawRadiusRing(thing.Position, effectiveRadius, comp.GetDrawColor());
+ }
+ }
+ }
+ }
+ }
+ catch
+ {
+ // 静默处理错误
+ }
+ }
+ }
+}