diff --git a/1.6/1.6/Assemblies/ArachnaeSwarm.dll b/1.6/1.6/Assemblies/ArachnaeSwarm.dll
index 3eceb4e..703d06d 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/ARA_Abilities.xml b/1.6/1.6/Defs/AbilityDefs/ARA_Abilities.xml
index 030fab5..241fdd1 100644
--- a/1.6/1.6/Defs/AbilityDefs/ARA_Abilities.xml
+++ b/1.6/1.6/Defs/AbilityDefs/ARA_Abilities.xml
@@ -370,8 +370,16 @@
+
Bullet_ARA_RW_Basic_Fist_Needle_Gun
12
+
+
+ 1
+ true
+ true
+ false
+ 3
饮食
@@ -1676,8 +1684,16 @@
+
ArachnaeBase_Race_Baneling_Proj
3
+
+
+ 1
+ true
+ true
+ false
+ 3
饮食
diff --git a/1.6/1.6/Defs/AbilityDefs/ARA_Psy_Abilities.xml b/1.6/1.6/Defs/AbilityDefs/ARA_Psy_Abilities.xml
index c15b2b3..b42c019 100644
--- a/1.6/1.6/Defs/AbilityDefs/ARA_Psy_Abilities.xml
+++ b/1.6/1.6/Defs/AbilityDefs/ARA_Psy_Abilities.xml
@@ -137,7 +137,7 @@
2
true
- Psychic Load Cost
+
true
@@ -213,4 +213,45 @@
+
+
+
+ ARA_Toxic_Needle_Fire
+ 毒针连射
+ 阿拉克涅督虫使用可以喷射剧毒尾针的毒针腺对敌方进行一轮射击。
+ True
+ False
+ 6000
+ true
+ ArachnaeSwarm/UI/Abilities/ARA_Toxic_Needle_Fire
+
+ Verb_CastAbility
+ 24
+ 1
+ Heatspikes_Shot
+ Heatspikes_Tail
+ false
+
+ True
+
+
+
+
+
+ Bullet_ARA_RW_Basic_Fist_Needle_Gun
+ 12
+
+
+ 1
+ true
+ true
+ false
+ 3
+
+
+ ARA_Technology_5PAV
+ 需要科技 节点PAV-5"毒刺" 以解锁技能
+
+
+
\ No newline at end of file
diff --git a/1.6/1.6/Defs/JobDefs/ARA_Jobs.xml b/1.6/1.6/Defs/JobDefs/ARA_Jobs.xml
index f9ddfa5..54dfab9 100644
--- a/1.6/1.6/Defs/JobDefs/ARA_Jobs.xml
+++ b/1.6/1.6/Defs/JobDefs/ARA_Jobs.xml
@@ -95,4 +95,16 @@
true
false
+
+
+ ARA_Job_Launch_Proj
+ ArachnaeSwarm.JobDriver_CastAbilityMaintainMultiProjectile
+ 喷射火焰中。
+ true
+ true
+ true
+ false
+
+ false
+
\ No newline at end of file
diff --git a/1.6/1.6/Defs/ResearchProjectDefs/ARA_ResearchProjects.xml b/1.6/1.6/Defs/ResearchProjectDefs/ARA_ResearchProjects.xml
index d0e20b5..82e75bb 100644
--- a/1.6/1.6/Defs/ResearchProjectDefs/ARA_ResearchProjects.xml
+++ b/1.6/1.6/Defs/ResearchProjectDefs/ARA_ResearchProjects.xml
@@ -20,6 +20,12 @@
ARA_New_Hive
+
+ Medieval
+ ARA_ResearchTab
+ ARA_InteractiveEggSac_Techprint
+
+
diff --git a/1.6/1.6/Defs/ResearchProjectDefs/ARA_ResearchProjects_Titan.xml b/1.6/1.6/Defs/ResearchProjectDefs/ARA_ResearchProjects_Titan.xml
new file mode 100644
index 0000000..941fb1c
--- /dev/null
+++ b/1.6/1.6/Defs/ResearchProjectDefs/ARA_ResearchProjects_Titan.xml
@@ -0,0 +1,12 @@
+
+
+
+
+ ARA_Titan_Base_Technology
+ 泰坦触须特异化
+ <color=#915A30><i>阿拉克涅虫群-泰坦触须\n泰坦触须是阿拉克涅虫群的主力军团,包含阿拉克涅虫群中最坚韧、最具有适应力的族群,承担在战场上维持战线的任务。这个分支下的虫群拥有均衡的攻防能力,擅长以硬碰硬的模式消灭对手。</i></color>\n\n解锁阿拉克涅虫群泰坦触须的研究路径。\n\n该科技无法主动研究,在开局时将由阿拉克涅女皇种的类型解锁。
+ 999999
+ 16.00
+ 3.20
+
+
\ No newline at end of file
diff --git a/1.6/1.6/Defs/ThingDef_Races/ARA_RaceQueen.xml b/1.6/1.6/Defs/ThingDef_Races/ARA_RaceQueen.xml
index 2883517..052de80 100644
--- a/1.6/1.6/Defs/ThingDef_Races/ARA_RaceQueen.xml
+++ b/1.6/1.6/Defs/ThingDef_Races/ARA_RaceQueen.xml
@@ -904,6 +904,17 @@
ARA_Psi_FlyEast
ARA_Psi_FlySouth
+
+ true
+ 1.0
+ true
+ false
+ 1.0
+ true
+ ARA_PawnResearch_Completed
+ ARA_PawnResearch_Started
+ ARA_PawnResearch_NoPoints
+
\ No newline at end of file
diff --git a/1.6/1.6/Defs/Thing_building/ARA_Ootheca.xml b/1.6/1.6/Defs/Thing_building/ARA_Ootheca.xml
index 8210c6e..fa8520a 100644
--- a/1.6/1.6/Defs/Thing_building/ARA_Ootheca.xml
+++ b/1.6/1.6/Defs/Thing_building/ARA_Ootheca.xml
@@ -345,6 +345,7 @@
Normal
ARA_Creep
+ ARA_Titan_Base_Technology
ARA_Technology_5ESS
diff --git a/1.6/1.6/Languages/ChineseSimplified (简体中文)/Keyed/Building_ResearchBlueprintReader.xml b/1.6/1.6/Languages/ChineseSimplified (简体中文)/Keyed/Building_ResearchBlueprintReader.xml
index e78ab59..210a1e4 100644
--- a/1.6/1.6/Languages/ChineseSimplified (简体中文)/Keyed/Building_ResearchBlueprintReader.xml
+++ b/1.6/1.6/Languages/ChineseSimplified (简体中文)/Keyed/Building_ResearchBlueprintReader.xml
@@ -33,7 +33,7 @@
缺失的前置科技
成本
所需蓝图数量
- 当前全球进度
+ 当前进度
科技已丢失:{0}
diff --git a/1.6/1.6/Languages/ChineseSimplified (简体中文)/Keyed/GizmoLabels.xml b/1.6/1.6/Languages/ChineseSimplified (简体中文)/Keyed/GizmoLabels.xml
index 8b510f9..3cc2bed 100644
--- a/1.6/1.6/Languages/ChineseSimplified (简体中文)/Keyed/GizmoLabels.xml
+++ b/1.6/1.6/Languages/ChineseSimplified (简体中文)/Keyed/GizmoLabels.xml
@@ -18,7 +18,6 @@
虫群术法 (Lv.{0})
{0}/{1}
{0}/{1}
- Spell
虫群进化点
@@ -26,7 +25,7 @@
虫群进化点
虫群进化点是独属于阿拉克涅灵吸种的特殊资源,灵吸种可以通过吞噬失去行动能力的俘虏以获取进化点,并将其投入至个人能力的升级或研究虫群的特殊科技。
- 神经束负荷
+ 神经负荷
负荷量: {0} / {1}
术法等级
目前的等级: {0}
@@ -56,4 +55,41 @@
剩余时间: {0}秒
冷却结束后,每2秒减少1点负荷
冷却结束后将自动减少神经束负荷
+
+ 虫群特殊项目研究
+ 正在进行的研究:{0}
+ 项目进度:{0} / {1}
+ 研究速度:{0}
+ 不在地图上
+ 手动暂停研究
+ 未选择研究项目
+ 在阿拉克涅虫群中,灵能触须的突破性研究由灵能女皇——灵吸种亲自负责,她们会从倒霉的受害者的脑髓中获取必要的智识以推进研究,完善自己的虫群。
+ 每秒消耗进化点:{0}
+ 无法开始研究
+ 选择研究项目
+ 选择一个虫群特殊研究项目以开始研究\n\n灵吸种完成虫群的特殊研究需要使用进化点,使用技能从俘虏和敌人身上采收进化点以推进研究进程。
+ 停止研究
+ 停止研究当前选择项目
+ 开始研究
+ 恢复科技的研究
+ {0} 已经完成对 {1} 的研究
+ 研究完成
+ {0} 开始研究 {1}
+ {0} 暂停研究 {1}
+ {0} 没有足够的虫群进化点继续推进 {1} 的研究——使用进化点收割技能,从俘虏和敌人身上采收进化点
+ {0} 的前置条件不满足
+ {0} 已经完成
+ 没有研究项目被选择
+ 研究花费
+ 需求进化点
+ 现有进化点
+ 研究速度
+ 预计完成耗时
+ 没有足够的进化点
+
+ 进化点短缺
+ 研究完成
+ 研究中
+ 无法研究
+ 研究暂停
\ No newline at end of file
diff --git a/Source/ArachnaeSwarm/.vs/ArachnaeSwarm/v17/.suo b/Source/ArachnaeSwarm/.vs/ArachnaeSwarm/v17/.suo
index f2f24f8..8a5f045 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 416c581..6b118fc 100644
--- a/Source/ArachnaeSwarm/.vs/ArachnaeSwarm/v17/DocumentLayout.json
+++ b/Source/ArachnaeSwarm/.vs/ArachnaeSwarm/v17/DocumentLayout.json
@@ -3,152 +3,52 @@
"WorkspaceRootPath": "D:\\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\\pawn_comps\\ara_pawnresearchblueprintreader\\comp_pawnresearchblueprintreader.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
- "RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:pawn_comps\\ara_pawnresearchblueprintreader\\comp_pawnresearchblueprintreader.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_launchmultiprojectile\\compproperties_abilitylaunchmultiprojectile.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:abilities\\ara_launchmultiprojectile\\compproperties_abilitylaunchmultiprojectile.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_launchmultiprojectile\\compabilityeffect_launchmultiprojectile.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:abilities\\ara_launchmultiprojectile\\compabilityeffect_launchmultiprojectile.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\\abilities\\ara_launchmultiprojectile\\jobdriver_castabilitymaintainmultiprojectile.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:abilities\\ara_launchmultiprojectile\\jobdriver_castabilitymaintainmultiprojectile.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_morphable\\compabilityeffect_transform.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:abilities\\ara_morphable\\compabilityeffect_transform.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_psychicloadcost\\compabilityeffect_psychicloadcost.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:abilities\\ara_psychicloadcost\\compabilityeffect_psychicloadcost.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_psychicloadcost\\compproperties_abilitypsychicloadcost.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:abilities\\ara_psychicloadcost\\compproperties_abilitypsychicloadcost.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\\pawn_comps\\ara_pawnresearchblueprintreader\\gizmo_pawnresearchprogress.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:pawn_comps\\ara_pawnresearchblueprintreader\\gizmo_pawnresearchprogress.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\\pawn_comps\\ara_pawnresearchblueprintreader\\compproperties_pawnresearchblueprintreader.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
- "RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:pawn_comps\\ara_pawnresearchblueprintreader\\compproperties_pawnresearchblueprintreader.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\\pawn_comps\\ara_pawnresearchblueprintreader\\comp_pawnresearchblueprintreader.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:pawn_comps\\ara_pawnresearchblueprintreader\\comp_pawnresearchblueprintreader.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\\hediffs\\ara_hivemind\\compabilityeffect_binddrone.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
- "RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:hediffs\\ara_hivemind\\compabilityeffect_binddrone.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_researchblueprintreader\\gizmo_researchprogress.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:buildings\\building_researchblueprintreader\\gizmo_researchprogress.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\\pawn_comps\\ara_swarmspellholder\\comp_swarmspellholder.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
- "RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:pawn_comps\\ara_swarmspellholder\\comp_swarmspellholder.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_researchblueprintreader\\building_researchblueprintreader.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
- "RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:buildings\\building_researchblueprintreader\\building_researchblueprintreader.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\\pawn_comps\\ara_comphediffgiver\\comphediffgiver.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
- "RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:pawn_comps\\ara_comphediffgiver\\comphediffgiver.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
- },
- {
- "AbsoluteMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\harmonypatches\\patch_pawn_needstracker_shouldhaveneed.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
- "RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:harmonypatches\\patch_pawn_needstracker_shouldhaveneed.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
- },
- {
- "AbsoluteMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\harmonypatches\\patch_draftableanimals.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
- "RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:harmonypatches\\patch_draftableanimals.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
- },
- {
- "AbsoluteMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\harmonypatches\\projectile_launch_patch.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
- "RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:harmonypatches\\projectile_launch_patch.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
- },
- {
- "AbsoluteMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\harmonypatches\\patch_researchmanager_addremovemethod.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
- "RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:harmonypatches\\patch_researchmanager_addremovemethod.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
- },
- {
- "AbsoluteMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\harmonypatches\\patch_plantpollutionnullcheck.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
- "RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:harmonypatches\\patch_plantpollutionnullcheck.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
- },
- {
- "AbsoluteMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\harmonypatches\\patch_forcetargetable.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
- "RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:harmonypatches\\patch_forcetargetable.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
- },
- {
- "AbsoluteMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\buildings\\wormhole\\travelingwormhole.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
- "RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:buildings\\wormhole\\travelingwormhole.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\\wormhole\\complaunchablewormhole.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
- "RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:buildings\\wormhole\\complaunchablewormhole.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\\pawn_comps\\ara_uniquepawn\\uniquepawnmanager.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
- "RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:pawn_comps\\ara_uniquepawn\\uniquepawnmanager.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\\pawn_comps\\ara_uniquepawn\\compuniquepawn.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
- "RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:pawn_comps\\ara_uniquepawn\\compuniquepawn.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\\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|D:\\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\\needs\\need_chitinarmor.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
- "RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:needs\\need_chitinarmor.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_psychicloaddump\\compabilityeffect_psychicloaddump.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
- "RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:abilities\\ara_psychicloaddump\\compabilityeffect_psychicloaddump.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_psychicloaddump\\compproperties_abilitypsychicloaddump.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
- "RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:abilities\\ara_psychicloaddump\\compproperties_abilitypsychicloaddump.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\\pawn_comps\\ara_swarmspellholder\\gizmo_swarmspellstatus.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
- "RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:pawn_comps\\ara_swarmspellholder\\gizmo_swarmspellstatus.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_psychicloadcost\\compabilityeffect_psychicloadcost.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
- "RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:abilities\\ara_psychicloadcost\\compabilityeffect_psychicloadcost.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_psychicresearchharvest\\compabilityeffect_psychicresearchharvest.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
- "RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:abilities\\ara_psychicresearchharvest\\compabilityeffect_psychicresearchharvest.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_psychicresearchharvest\\compproperties_abilitypsychicresearchharvest.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
- "RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:abilities\\ara_psychicresearchharvest\\compproperties_abilitypsychicresearchharvest.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\\pawn_comps\\ara_fighter_invisible\\compfighterinvisible.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
- "RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:pawn_comps\\ara_fighter_invisible\\compfighterinvisible.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\\pawn_comps\\ara_swarmspellholder\\swarmspellutility.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
- "RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:pawn_comps\\ara_swarmspellholder\\swarmspellutility.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_psychicloadcost\\compproperties_abilitypsychicloadcost.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
- "RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:abilities\\ara_psychicloadcost\\compproperties_abilitypsychicloadcost.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_hediffgacha\\compabilityeffect_hediffgacha.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
- "RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:abilities\\ara_hediffgacha\\compabilityeffect_hediffgacha.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_hediffrestriction\\compabilityeffect_hediffrestriction.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
- "RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:abilities\\ara_hediffrestriction\\compabilityeffect_hediffrestriction.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_hediffgacha\\window_hediffselection.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
- "RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:abilities\\ara_hediffgacha\\window_hediffselection.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\\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|D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\pawncapacityworker\\pawncapacityworker_psychicstange.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
- "RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:pawncapacityworker\\pawncapacityworker_psychicstange.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\\abilities\\psychicbrainburn\\compabilityeffect_psychicbrainburn.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\\psychicbrainburn\\compabilityeffect_psychicbrainburn.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:abilities\\psychicbrainburn\\compabilityeffect_psychicbrainburn.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\\pawn_comps\\ara_automechcarrier\\compautomechcarrier.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
- "RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:pawn_comps\\ara_automechcarrier\\compautomechcarrier.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_researchblueprintreader\\researchblueprintdata.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:buildings\\building_researchblueprintreader\\researchblueprintdata.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
}
],
"DocumentGroupContainers": [
@@ -164,453 +64,161 @@
"$type": "Bookmark",
"Name": "ST:0:0:{1c4feeaa-4718-4aa9-859d-94ce25d182ba}"
},
- {
- "$type": "Document",
- "DocumentIndex": 1,
- "Title": "Gizmo_PawnResearchProgress.cs",
- "DocumentMoniker": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Pawn_Comps\\ARA_PawnResearchBlueprintReader\\Gizmo_PawnResearchProgress.cs",
- "RelativeDocumentMoniker": "Pawn_Comps\\ARA_PawnResearchBlueprintReader\\Gizmo_PawnResearchProgress.cs",
- "ToolTip": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Pawn_Comps\\ARA_PawnResearchBlueprintReader\\Gizmo_PawnResearchProgress.cs*",
- "RelativeToolTip": "Pawn_Comps\\ARA_PawnResearchBlueprintReader\\Gizmo_PawnResearchProgress.cs*",
- "ViewState": "AgIAAMQAAAAAAAAAAAAhwNYAAAAUAAAAAAAAAA==",
- "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
- "WhenOpened": "2026-02-13T03:54:02.036Z",
- "EditorCaption": ""
- },
{
"$type": "Document",
"DocumentIndex": 2,
- "Title": "CompProperties_PawnResearchBlueprintReader.cs",
- "DocumentMoniker": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Pawn_Comps\\ARA_PawnResearchBlueprintReader\\CompProperties_PawnResearchBlueprintReader.cs",
- "RelativeDocumentMoniker": "Pawn_Comps\\ARA_PawnResearchBlueprintReader\\CompProperties_PawnResearchBlueprintReader.cs",
- "ToolTip": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Pawn_Comps\\ARA_PawnResearchBlueprintReader\\CompProperties_PawnResearchBlueprintReader.cs*",
- "RelativeToolTip": "Pawn_Comps\\ARA_PawnResearchBlueprintReader\\CompProperties_PawnResearchBlueprintReader.cs*",
- "ViewState": "AgIAAC0AAAAAAAAAAAAawD8AAAAJAAAAAAAAAA==",
- "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
- "WhenOpened": "2026-02-13T03:54:00.997Z",
- "EditorCaption": ""
- },
- {
- "$type": "Document",
- "DocumentIndex": 0,
- "Title": "Comp_PawnResearchBlueprintReader.cs",
- "DocumentMoniker": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Pawn_Comps\\ARA_PawnResearchBlueprintReader\\Comp_PawnResearchBlueprintReader.cs",
- "RelativeDocumentMoniker": "Pawn_Comps\\ARA_PawnResearchBlueprintReader\\Comp_PawnResearchBlueprintReader.cs",
- "ToolTip": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Pawn_Comps\\ARA_PawnResearchBlueprintReader\\Comp_PawnResearchBlueprintReader.cs*",
- "RelativeToolTip": "Pawn_Comps\\ARA_PawnResearchBlueprintReader\\Comp_PawnResearchBlueprintReader.cs*",
- "ViewState": "AgIAAA8DAAAAAAAAAAAewCIDAAANAAAAAAAAAA==",
- "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
- "WhenOpened": "2026-02-13T03:53:59.347Z",
- "EditorCaption": ""
- },
- {
- "$type": "Document",
- "DocumentIndex": 3,
- "Title": "CompAbilityEffect_BindDrone.cs",
- "DocumentMoniker": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Hediffs\\ARA_HiveMind\\CompAbilityEffect_BindDrone.cs",
- "RelativeDocumentMoniker": "Hediffs\\ARA_HiveMind\\CompAbilityEffect_BindDrone.cs",
- "ToolTip": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Hediffs\\ARA_HiveMind\\CompAbilityEffect_BindDrone.cs",
- "RelativeToolTip": "Hediffs\\ARA_HiveMind\\CompAbilityEffect_BindDrone.cs",
- "ViewState": "AgIAAAAAAAAAAAAAAAAAALYAAAAAAAAAAAAAAA==",
- "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
- "WhenOpened": "2026-02-13T02:39:33.878Z",
- "EditorCaption": ""
- },
- {
- "$type": "Document",
- "DocumentIndex": 5,
- "Title": "Building_ResearchBlueprintReader.cs",
- "DocumentMoniker": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Buildings\\Building_ResearchBlueprintReader\\Building_ResearchBlueprintReader.cs",
- "RelativeDocumentMoniker": "Buildings\\Building_ResearchBlueprintReader\\Building_ResearchBlueprintReader.cs",
- "ToolTip": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Buildings\\Building_ResearchBlueprintReader\\Building_ResearchBlueprintReader.cs",
- "RelativeToolTip": "Buildings\\Building_ResearchBlueprintReader\\Building_ResearchBlueprintReader.cs",
- "ViewState": "AgIAAAAAAAAAAAAAAAAAACIAAAAPAAAAAAAAAA==",
- "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
- "WhenOpened": "2026-02-13T02:24:37.654Z"
- },
- {
- "$type": "Document",
- "DocumentIndex": 6,
- "Title": "CompHediffGiver.cs",
- "DocumentMoniker": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Pawn_Comps\\ARA_CompHediffGiver\\CompHediffGiver.cs",
- "RelativeDocumentMoniker": "Pawn_Comps\\ARA_CompHediffGiver\\CompHediffGiver.cs",
- "ToolTip": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Pawn_Comps\\ARA_CompHediffGiver\\CompHediffGiver.cs",
- "RelativeToolTip": "Pawn_Comps\\ARA_CompHediffGiver\\CompHediffGiver.cs",
- "ViewState": "AgIAAAAAAAAAAAAAAAAAAHoAAAAJAAAAAAAAAA==",
- "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
- "WhenOpened": "2026-02-13T02:14:47.422Z"
- },
- {
- "$type": "Document",
- "DocumentIndex": 10,
- "Title": "Patch_ResearchManager_AddRemoveMethod.cs",
- "DocumentMoniker": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\HarmonyPatches\\Patch_ResearchManager_AddRemoveMethod.cs",
- "RelativeDocumentMoniker": "HarmonyPatches\\Patch_ResearchManager_AddRemoveMethod.cs",
- "ToolTip": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\HarmonyPatches\\Patch_ResearchManager_AddRemoveMethod.cs",
- "RelativeToolTip": "HarmonyPatches\\Patch_ResearchManager_AddRemoveMethod.cs",
- "ViewState": "AgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==",
- "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
- "WhenOpened": "2026-02-11T03:02:58.905Z"
- },
- {
- "$type": "Document",
- "DocumentIndex": 11,
- "Title": "Patch_PlantPollutionNullCheck.cs",
- "DocumentMoniker": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\HarmonyPatches\\Patch_PlantPollutionNullCheck.cs",
- "RelativeDocumentMoniker": "HarmonyPatches\\Patch_PlantPollutionNullCheck.cs",
- "ToolTip": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\HarmonyPatches\\Patch_PlantPollutionNullCheck.cs",
- "RelativeToolTip": "HarmonyPatches\\Patch_PlantPollutionNullCheck.cs",
- "ViewState": "AgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==",
- "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
- "WhenOpened": "2026-02-11T03:02:49.024Z"
- },
- {
- "$type": "Document",
- "DocumentIndex": 12,
- "Title": "Patch_ForceTargetable.cs",
- "DocumentMoniker": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\HarmonyPatches\\Patch_ForceTargetable.cs",
- "RelativeDocumentMoniker": "HarmonyPatches\\Patch_ForceTargetable.cs",
- "ToolTip": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\HarmonyPatches\\Patch_ForceTargetable.cs",
- "RelativeToolTip": "HarmonyPatches\\Patch_ForceTargetable.cs",
- "ViewState": "AgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==",
- "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
- "WhenOpened": "2026-02-11T03:02:45.4Z"
- },
- {
- "$type": "Document",
- "DocumentIndex": 4,
- "Title": "Comp_SwarmSpellHolder.cs",
- "DocumentMoniker": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Pawn_Comps\\ARA_SwarmSpellHolder\\Comp_SwarmSpellHolder.cs",
- "RelativeDocumentMoniker": "Pawn_Comps\\ARA_SwarmSpellHolder\\Comp_SwarmSpellHolder.cs",
- "ToolTip": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Pawn_Comps\\ARA_SwarmSpellHolder\\Comp_SwarmSpellHolder.cs",
- "RelativeToolTip": "Pawn_Comps\\ARA_SwarmSpellHolder\\Comp_SwarmSpellHolder.cs",
- "ViewState": "AgIAAFYCAAAAAAAAAAAAAHADAAAyAAAAAAAAAA==",
- "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
- "WhenOpened": "2026-01-30T07:11:59.797Z"
- },
- {
- "$type": "Document",
- "DocumentIndex": 9,
- "Title": "Projectile_Launch_Patch.cs",
- "DocumentMoniker": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\HarmonyPatches\\Projectile_Launch_Patch.cs",
- "RelativeDocumentMoniker": "HarmonyPatches\\Projectile_Launch_Patch.cs",
- "ToolTip": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\HarmonyPatches\\Projectile_Launch_Patch.cs",
- "RelativeToolTip": "HarmonyPatches\\Projectile_Launch_Patch.cs",
- "ViewState": "AgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==",
- "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
- "WhenOpened": "2026-02-11T03:03:01.656Z"
- },
- {
- "$type": "Document",
- "DocumentIndex": 8,
- "Title": "Patch_DraftableAnimals.cs",
- "DocumentMoniker": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\HarmonyPatches\\Patch_DraftableAnimals.cs",
- "RelativeDocumentMoniker": "HarmonyPatches\\Patch_DraftableAnimals.cs",
- "ToolTip": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\HarmonyPatches\\Patch_DraftableAnimals.cs",
- "RelativeToolTip": "HarmonyPatches\\Patch_DraftableAnimals.cs",
- "ViewState": "AgIAAAAAAAAAAAAAAAAAAA8AAAANAAAAAAAAAA==",
- "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
- "WhenOpened": "2026-02-11T03:01:45.903Z"
- },
- {
- "$type": "Document",
- "DocumentIndex": 7,
- "Title": "Patch_Pawn_NeedsTracker_ShouldHaveNeed.cs",
- "DocumentMoniker": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\HarmonyPatches\\Patch_Pawn_NeedsTracker_ShouldHaveNeed.cs",
- "RelativeDocumentMoniker": "HarmonyPatches\\Patch_Pawn_NeedsTracker_ShouldHaveNeed.cs",
- "ToolTip": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\HarmonyPatches\\Patch_Pawn_NeedsTracker_ShouldHaveNeed.cs",
- "RelativeToolTip": "HarmonyPatches\\Patch_Pawn_NeedsTracker_ShouldHaveNeed.cs",
- "ViewState": "AgIAAA4AAAAAAAAAAAAwwBYAAAAdAAAAAAAAAA==",
- "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
- "WhenOpened": "2026-02-11T02:46:06.897Z"
- },
- {
- "$type": "Document",
- "DocumentIndex": 13,
- "Title": "TravelingWormhole.cs",
- "DocumentMoniker": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Buildings\\Wormhole\\TravelingWormhole.cs",
- "RelativeDocumentMoniker": "Buildings\\Wormhole\\TravelingWormhole.cs",
- "ToolTip": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Buildings\\Wormhole\\TravelingWormhole.cs",
- "RelativeToolTip": "Buildings\\Wormhole\\TravelingWormhole.cs",
- "ViewState": "AgIAADsAAAAAAAAAAAAuwEAAAAANAAAAAAAAAA==",
- "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
- "WhenOpened": "2026-02-07T03:22:07.586Z"
- },
- {
- "$type": "Document",
- "DocumentIndex": 14,
- "Title": "CompLaunchableWormhole.cs",
- "DocumentMoniker": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Buildings\\Wormhole\\CompLaunchableWormhole.cs",
- "RelativeDocumentMoniker": "Buildings\\Wormhole\\CompLaunchableWormhole.cs",
- "ToolTip": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Buildings\\Wormhole\\CompLaunchableWormhole.cs",
- "RelativeToolTip": "Buildings\\Wormhole\\CompLaunchableWormhole.cs",
- "ViewState": "AgIAACEAAAAAAAAAAAAAACEAAABrAAAAAAAAAA==",
- "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
- "WhenOpened": "2026-02-07T03:22:06.34Z"
- },
- {
- "$type": "Document",
- "DocumentIndex": 15,
- "Title": "UniquePawnManager.cs",
- "DocumentMoniker": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Pawn_Comps\\ARA_UniquePawn\\UniquePawnManager.cs",
- "RelativeDocumentMoniker": "Pawn_Comps\\ARA_UniquePawn\\UniquePawnManager.cs",
- "ToolTip": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Pawn_Comps\\ARA_UniquePawn\\UniquePawnManager.cs",
- "RelativeToolTip": "Pawn_Comps\\ARA_UniquePawn\\UniquePawnManager.cs",
- "ViewState": "AgIAAHQAAAAAAAAAAAAiwJEAAAAJAAAAAAAAAA==",
- "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
- "WhenOpened": "2026-02-05T03:36:35.207Z"
- },
- {
- "$type": "Document",
- "DocumentIndex": 16,
- "Title": "CompUniquePawn.cs",
- "DocumentMoniker": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Pawn_Comps\\ARA_UniquePawn\\CompUniquePawn.cs",
- "RelativeDocumentMoniker": "Pawn_Comps\\ARA_UniquePawn\\CompUniquePawn.cs",
- "ToolTip": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Pawn_Comps\\ARA_UniquePawn\\CompUniquePawn.cs",
- "RelativeToolTip": "Pawn_Comps\\ARA_UniquePawn\\CompUniquePawn.cs",
- "ViewState": "AgIAAKgAAAAAAAAAAAAtwLkAAAARAAAAAAAAAA==",
- "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
- "WhenOpened": "2026-02-05T03:36:24.458Z"
- },
- {
- "$type": "Document",
- "DocumentIndex": 18,
- "Title": "JobDriver_ExtractHoney.cs",
- "DocumentMoniker": "D:\\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",
- "RelativeToolTip": "Jobs\\JobDriver_ExtractHoney\\JobDriver_ExtractHoney.cs",
- "ViewState": "AgIAAAQAAAAAAAAAAAAswBMAAAAJAAAAAAAAAA==",
- "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
- "WhenOpened": "2026-02-05T03:32:58.466Z"
- },
- {
- "$type": "Document",
- "DocumentIndex": 17,
- "Title": "Need_HoneyProduction.cs",
- "DocumentMoniker": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Needs\\Need_HoneyProduction.cs",
- "RelativeDocumentMoniker": "Needs\\Need_HoneyProduction.cs",
- "ToolTip": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Needs\\Need_HoneyProduction.cs",
- "RelativeToolTip": "Needs\\Need_HoneyProduction.cs",
- "ViewState": "AgIAAAAAAAAAAAAAAAAAAAoAAAAIAAAAAAAAAA==",
- "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
- "WhenOpened": "2026-02-05T03:21:22.655Z"
- },
- {
- "$type": "Document",
- "DocumentIndex": 19,
- "Title": "Need_ChitinArmor.cs",
- "DocumentMoniker": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Needs\\Need_ChitinArmor.cs",
- "RelativeDocumentMoniker": "Needs\\Need_ChitinArmor.cs",
- "ToolTip": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Needs\\Need_ChitinArmor.cs",
- "RelativeToolTip": "Needs\\Need_ChitinArmor.cs",
- "ViewState": "AgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==",
- "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
- "WhenOpened": "2026-02-05T03:21:22.016Z"
- },
- {
- "$type": "Document",
- "DocumentIndex": 21,
- "Title": "CompProperties_AbilityPsychicLoadDump.cs",
- "DocumentMoniker": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Abilities\\ARA_PsychicLoadDump\\CompProperties_AbilityPsychicLoadDump.cs",
- "RelativeDocumentMoniker": "Abilities\\ARA_PsychicLoadDump\\CompProperties_AbilityPsychicLoadDump.cs",
- "ToolTip": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Abilities\\ARA_PsychicLoadDump\\CompProperties_AbilityPsychicLoadDump.cs",
- "RelativeToolTip": "Abilities\\ARA_PsychicLoadDump\\CompProperties_AbilityPsychicLoadDump.cs",
- "ViewState": "AgIAACIAAAAAAAAAAAApwH0AAAAFAAAAAAAAAA==",
- "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
- "WhenOpened": "2026-02-04T08:36:24.395Z"
- },
- {
- "$type": "Document",
- "DocumentIndex": 20,
- "Title": "CompAbilityEffect_PsychicLoadDump.cs",
- "DocumentMoniker": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Abilities\\ARA_PsychicLoadDump\\CompAbilityEffect_PsychicLoadDump.cs",
- "RelativeDocumentMoniker": "Abilities\\ARA_PsychicLoadDump\\CompAbilityEffect_PsychicLoadDump.cs",
- "ToolTip": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Abilities\\ARA_PsychicLoadDump\\CompAbilityEffect_PsychicLoadDump.cs",
- "RelativeToolTip": "Abilities\\ARA_PsychicLoadDump\\CompAbilityEffect_PsychicLoadDump.cs",
- "ViewState": "AgIAAAgAAAAAAAAAAAAowBIAAAASAAAAAAAAAA==",
- "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
- "WhenOpened": "2026-02-04T08:36:23.647Z"
- },
- {
- "$type": "Document",
- "DocumentIndex": 24,
- "Title": "CompAbilityEffect_PsychicResearchHarvest.cs",
- "DocumentMoniker": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Abilities\\ARA_PsychicResearchHarvest\\CompAbilityEffect_PsychicResearchHarvest.cs",
- "RelativeDocumentMoniker": "Abilities\\ARA_PsychicResearchHarvest\\CompAbilityEffect_PsychicResearchHarvest.cs",
- "ToolTip": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Abilities\\ARA_PsychicResearchHarvest\\CompAbilityEffect_PsychicResearchHarvest.cs",
- "RelativeToolTip": "Abilities\\ARA_PsychicResearchHarvest\\CompAbilityEffect_PsychicResearchHarvest.cs",
- "ViewState": "AgIAAD0AAAAAAAAAAAA7wGkAAAASAAAAAAAAAA==",
- "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
- "WhenOpened": "2026-02-04T03:35:17.441Z"
- },
- {
- "$type": "Document",
- "DocumentIndex": 28,
- "Title": "CompProperties_AbilityPsychicLoadCost.cs",
- "DocumentMoniker": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Abilities\\ARA_PsychicLoadCost\\CompProperties_AbilityPsychicLoadCost.cs",
- "RelativeDocumentMoniker": "Abilities\\ARA_PsychicLoadCost\\CompProperties_AbilityPsychicLoadCost.cs",
- "ToolTip": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Abilities\\ARA_PsychicLoadCost\\CompProperties_AbilityPsychicLoadCost.cs",
- "RelativeToolTip": "Abilities\\ARA_PsychicLoadCost\\CompProperties_AbilityPsychicLoadCost.cs",
- "ViewState": "AgIAAAsAAAAAAAAAAADwvyUAAAAAAAAAAAAAAA==",
- "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
- "WhenOpened": "2026-01-30T08:22:38.845Z"
- },
- {
- "$type": "Document",
- "DocumentIndex": 27,
- "Title": "SwarmSpellUtility.cs",
- "DocumentMoniker": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Pawn_Comps\\ARA_SwarmSpellHolder\\SwarmSpellUtility.cs",
- "RelativeDocumentMoniker": "Pawn_Comps\\ARA_SwarmSpellHolder\\SwarmSpellUtility.cs",
- "ToolTip": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Pawn_Comps\\ARA_SwarmSpellHolder\\SwarmSpellUtility.cs",
- "RelativeToolTip": "Pawn_Comps\\ARA_SwarmSpellHolder\\SwarmSpellUtility.cs",
- "ViewState": "AgIAANEAAAAAAAAAAAAqwPMAAAANAAAAAAAAAA==",
- "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
- "WhenOpened": "2026-01-30T07:25:10.449Z"
- },
- {
- "$type": "Document",
- "DocumentIndex": 23,
- "Title": "CompAbilityEffect_PsychicLoadCost.cs",
- "DocumentMoniker": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Abilities\\ARA_PsychicLoadCost\\CompAbilityEffect_PsychicLoadCost.cs",
- "RelativeDocumentMoniker": "Abilities\\ARA_PsychicLoadCost\\CompAbilityEffect_PsychicLoadCost.cs",
- "ToolTip": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Abilities\\ARA_PsychicLoadCost\\CompAbilityEffect_PsychicLoadCost.cs",
- "RelativeToolTip": "Abilities\\ARA_PsychicLoadCost\\CompAbilityEffect_PsychicLoadCost.cs",
- "ViewState": "AgIAAMwAAAAAAAAAAAAawOcAAABZAAAAAAAAAA==",
- "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
- "WhenOpened": "2026-01-30T08:16:09.317Z"
- },
- {
- "$type": "Document",
- "DocumentIndex": 22,
- "Title": "Gizmo_SwarmSpellStatus.cs",
- "DocumentMoniker": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Pawn_Comps\\ARA_SwarmSpellHolder\\Gizmo_SwarmSpellStatus.cs",
- "RelativeDocumentMoniker": "Pawn_Comps\\ARA_SwarmSpellHolder\\Gizmo_SwarmSpellStatus.cs",
- "ToolTip": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Pawn_Comps\\ARA_SwarmSpellHolder\\Gizmo_SwarmSpellStatus.cs",
- "RelativeToolTip": "Pawn_Comps\\ARA_SwarmSpellHolder\\Gizmo_SwarmSpellStatus.cs",
- "ViewState": "AgIAAIAAAAAAAAAAAAAIwIsAAAATAAAAAAAAAA==",
- "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
- "WhenOpened": "2026-01-30T08:20:07.463Z"
- },
- {
- "$type": "Document",
- "DocumentIndex": 29,
- "Title": "CompAbilityEffect_HediffGacha.cs",
- "DocumentMoniker": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Abilities\\ARA_HediffGacha\\CompAbilityEffect_HediffGacha.cs",
- "RelativeDocumentMoniker": "Abilities\\ARA_HediffGacha\\CompAbilityEffect_HediffGacha.cs",
- "ToolTip": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Abilities\\ARA_HediffGacha\\CompAbilityEffect_HediffGacha.cs",
- "RelativeToolTip": "Abilities\\ARA_HediffGacha\\CompAbilityEffect_HediffGacha.cs",
- "ViewState": "AgIAAAAAAAAAAAAAAAAAAA0AAAAuAAAAAAAAAA==",
- "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
- "WhenOpened": "2026-02-04T02:49:20.179Z"
- },
- {
- "$type": "Document",
- "DocumentIndex": 26,
- "Title": "CompFighterInvisible.cs",
- "DocumentMoniker": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Pawn_Comps\\ARA_Fighter_Invisible\\CompFighterInvisible.cs",
- "RelativeDocumentMoniker": "Pawn_Comps\\ARA_Fighter_Invisible\\CompFighterInvisible.cs",
- "ToolTip": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Pawn_Comps\\ARA_Fighter_Invisible\\CompFighterInvisible.cs",
- "RelativeToolTip": "Pawn_Comps\\ARA_Fighter_Invisible\\CompFighterInvisible.cs",
- "ViewState": "AgIAACsAAAAAAAAAAAAgwC4AAAARAAAAAAAAAA==",
- "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
- "WhenOpened": "2026-02-04T03:24:18.669Z"
- },
- {
- "$type": "Document",
- "DocumentIndex": 25,
- "Title": "CompProperties_AbilityPsychicResearchHarvest.cs",
- "DocumentMoniker": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Abilities\\ARA_PsychicResearchHarvest\\CompProperties_AbilityPsychicResearchHarvest.cs",
- "RelativeDocumentMoniker": "Abilities\\ARA_PsychicResearchHarvest\\CompProperties_AbilityPsychicResearchHarvest.cs",
- "ToolTip": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Abilities\\ARA_PsychicResearchHarvest\\CompProperties_AbilityPsychicResearchHarvest.cs",
- "RelativeToolTip": "Abilities\\ARA_PsychicResearchHarvest\\CompProperties_AbilityPsychicResearchHarvest.cs",
- "ViewState": "AgIAAAoAAAAAAAAAAAArwHsAAAAVAAAAAAAAAA==",
- "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
- "WhenOpened": "2026-02-04T03:35:18.266Z"
- },
- {
- "$type": "Document",
- "DocumentIndex": 30,
- "Title": "CompAbilityEffect_HediffRestriction.cs",
- "DocumentMoniker": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Abilities\\ARA_HediffRestriction\\CompAbilityEffect_HediffRestriction.cs",
- "RelativeDocumentMoniker": "Abilities\\ARA_HediffRestriction\\CompAbilityEffect_HediffRestriction.cs",
- "ToolTip": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Abilities\\ARA_HediffRestriction\\CompAbilityEffect_HediffRestriction.cs",
- "RelativeToolTip": "Abilities\\ARA_HediffRestriction\\CompAbilityEffect_HediffRestriction.cs",
- "ViewState": "AgIAAAAAAAAAAAAAAAAAAAMAAAAXAAAAAAAAAA==",
- "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
- "WhenOpened": "2026-02-04T02:49:22.868Z"
- },
- {
- "$type": "Document",
- "DocumentIndex": 31,
- "Title": "Window_HediffSelection.cs",
- "DocumentMoniker": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Abilities\\ARA_HediffGacha\\Window_HediffSelection.cs",
- "RelativeDocumentMoniker": "Abilities\\ARA_HediffGacha\\Window_HediffSelection.cs",
- "ToolTip": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Abilities\\ARA_HediffGacha\\Window_HediffSelection.cs",
- "RelativeToolTip": "Abilities\\ARA_HediffGacha\\Window_HediffSelection.cs",
- "ViewState": "AgIAAAAAAAAAAAAAAAAAAAsAAAAVAAAAAAAAAA==",
- "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
- "WhenOpened": "2026-02-04T02:49:27.428Z"
- },
- {
- "$type": "Document",
- "DocumentIndex": 32,
- "Title": "ARA_PowerArmor.cs",
- "DocumentMoniker": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\PowerArmor\\ARA_PowerArmor.cs",
- "RelativeDocumentMoniker": "PowerArmor\\ARA_PowerArmor.cs",
- "ToolTip": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\PowerArmor\\ARA_PowerArmor.cs",
- "RelativeToolTip": "PowerArmor\\ARA_PowerArmor.cs",
- "ViewState": "AgIAANsBAAAAAAAAAAAAAOkBAAAWAAAAAAAAAA==",
- "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
- "WhenOpened": "2026-02-04T02:14:33.83Z"
- },
- {
- "$type": "Document",
- "DocumentIndex": 33,
- "Title": "PawnCapacityWorker_PsychicStange.cs",
- "DocumentMoniker": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\PawnCapacityWorker\\PawnCapacityWorker_PsychicStange.cs",
- "RelativeDocumentMoniker": "PawnCapacityWorker\\PawnCapacityWorker_PsychicStange.cs",
- "ToolTip": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\PawnCapacityWorker\\PawnCapacityWorker_PsychicStange.cs",
- "RelativeToolTip": "PawnCapacityWorker\\PawnCapacityWorker_PsychicStange.cs",
- "ViewState": "AgIAAEEBAAAAAAAAAAAiwAgAAAAkAAAAAAAAAA==",
- "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
- "WhenOpened": "2026-02-03T07:42:21.662Z"
- },
- {
- "$type": "Document",
- "DocumentIndex": 35,
- "Title": "CompAbilityEffect_PsychicBrainburn.cs",
- "DocumentMoniker": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Abilities\\PsychicBrainburn\\CompAbilityEffect_PsychicBrainburn.cs",
- "RelativeDocumentMoniker": "Abilities\\PsychicBrainburn\\CompAbilityEffect_PsychicBrainburn.cs",
- "ToolTip": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Abilities\\PsychicBrainburn\\CompAbilityEffect_PsychicBrainburn.cs",
- "RelativeToolTip": "Abilities\\PsychicBrainburn\\CompAbilityEffect_PsychicBrainburn.cs",
- "ViewState": "AgIAAAAAAAAAAAAAAAAAABAAAAANAAAAAAAAAA==",
- "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
- "WhenOpened": "2026-01-30T08:11:40.772Z"
- },
- {
- "$type": "Document",
- "DocumentIndex": 34,
"Title": "ARA_DefOf.cs",
"DocumentMoniker": "D:\\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",
"RelativeToolTip": "ARA_DefOf.cs",
- "ViewState": "AgIAAEgAAAAAAAAAAAA7wF4AAAA7AAAAAAAAAA==",
+ "ViewState": "AgIAAAYAAAAAAAAAAAAAACAAAAAkAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
- "WhenOpened": "2026-01-30T07:47:08.641Z"
+ "WhenOpened": "2026-02-13T08:26:42.851Z",
+ "EditorCaption": ""
},
{
"$type": "Document",
- "DocumentIndex": 36,
- "Title": "CompAutoMechCarrier.cs",
- "DocumentMoniker": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Pawn_Comps\\ARA_AutoMechCarrier\\CompAutoMechCarrier.cs",
- "RelativeDocumentMoniker": "Pawn_Comps\\ARA_AutoMechCarrier\\CompAutoMechCarrier.cs",
- "ToolTip": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Pawn_Comps\\ARA_AutoMechCarrier\\CompAutoMechCarrier.cs",
- "RelativeToolTip": "Pawn_Comps\\ARA_AutoMechCarrier\\CompAutoMechCarrier.cs",
- "ViewState": "AgIAAAwAAAAAAAAAAAAtwE4AAAAVAAAAAAAAAA==",
+ "DocumentIndex": 3,
+ "Title": "JobDriver_CastAbilityMaintainMultiProjectile.cs",
+ "DocumentMoniker": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Abilities\\ARA_LaunchMultiProjectile\\JobDriver_CastAbilityMaintainMultiProjectile.cs",
+ "RelativeDocumentMoniker": "Abilities\\ARA_LaunchMultiProjectile\\JobDriver_CastAbilityMaintainMultiProjectile.cs",
+ "ToolTip": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Abilities\\ARA_LaunchMultiProjectile\\JobDriver_CastAbilityMaintainMultiProjectile.cs",
+ "RelativeToolTip": "Abilities\\ARA_LaunchMultiProjectile\\JobDriver_CastAbilityMaintainMultiProjectile.cs",
+ "ViewState": "AgIAAAAAAAAAAAAAAAAAAAYAAAA9AAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
- "WhenOpened": "2026-01-30T07:25:22.745Z"
+ "WhenOpened": "2026-02-13T08:25:54.467Z",
+ "EditorCaption": ""
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 0,
+ "Title": "CompProperties_AbilityLaunchMultiProjectile.cs",
+ "DocumentMoniker": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Abilities\\ARA_LaunchMultiProjectile\\CompProperties_AbilityLaunchMultiProjectile.cs",
+ "RelativeDocumentMoniker": "Abilities\\ARA_LaunchMultiProjectile\\CompProperties_AbilityLaunchMultiProjectile.cs",
+ "ToolTip": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Abilities\\ARA_LaunchMultiProjectile\\CompProperties_AbilityLaunchMultiProjectile.cs",
+ "RelativeToolTip": "Abilities\\ARA_LaunchMultiProjectile\\CompProperties_AbilityLaunchMultiProjectile.cs",
+ "ViewState": "AgIAAAAAAAAAAAAAAAAAAAYAAAA8AAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2026-02-13T08:25:52.233Z",
+ "EditorCaption": ""
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 4,
+ "Title": "CompAbilityEffect_Transform.cs",
+ "DocumentMoniker": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Abilities\\ARA_Morphable\\CompAbilityEffect_Transform.cs",
+ "RelativeDocumentMoniker": "Abilities\\ARA_Morphable\\CompAbilityEffect_Transform.cs",
+ "ToolTip": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Abilities\\ARA_Morphable\\CompAbilityEffect_Transform.cs",
+ "RelativeToolTip": "Abilities\\ARA_Morphable\\CompAbilityEffect_Transform.cs",
+ "ViewState": "AgIAAAAAAAAAAAAAAAAAAAMAAAAXAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2026-02-13T08:25:48.115Z",
+ "EditorCaption": ""
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 1,
+ "Title": "CompAbilityEffect_LaunchMultiProjectile.cs",
+ "DocumentMoniker": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Abilities\\ARA_LaunchMultiProjectile\\CompAbilityEffect_LaunchMultiProjectile.cs",
+ "RelativeDocumentMoniker": "Abilities\\ARA_LaunchMultiProjectile\\CompAbilityEffect_LaunchMultiProjectile.cs",
+ "ToolTip": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Abilities\\ARA_LaunchMultiProjectile\\CompAbilityEffect_LaunchMultiProjectile.cs",
+ "RelativeToolTip": "Abilities\\ARA_LaunchMultiProjectile\\CompAbilityEffect_LaunchMultiProjectile.cs",
+ "ViewState": "AgIAADEAAAAAAAAAAAASwKgAAAAWAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2026-02-13T08:25:25.05Z",
+ "EditorCaption": ""
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 6,
+ "Title": "CompProperties_AbilityPsychicLoadCost.cs",
+ "DocumentMoniker": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Abilities\\ARA_PsychicLoadCost\\CompProperties_AbilityPsychicLoadCost.cs",
+ "RelativeDocumentMoniker": "Abilities\\ARA_PsychicLoadCost\\CompProperties_AbilityPsychicLoadCost.cs",
+ "ToolTip": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Abilities\\ARA_PsychicLoadCost\\CompProperties_AbilityPsychicLoadCost.cs",
+ "RelativeToolTip": "Abilities\\ARA_PsychicLoadCost\\CompProperties_AbilityPsychicLoadCost.cs",
+ "ViewState": "AgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2026-02-13T07:48:29.02Z",
+ "EditorCaption": ""
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 7,
+ "Title": "Gizmo_PawnResearchProgress.cs",
+ "DocumentMoniker": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Pawn_Comps\\ARA_PawnResearchBlueprintReader\\Gizmo_PawnResearchProgress.cs",
+ "RelativeDocumentMoniker": "Pawn_Comps\\ARA_PawnResearchBlueprintReader\\Gizmo_PawnResearchProgress.cs",
+ "ToolTip": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Pawn_Comps\\ARA_PawnResearchBlueprintReader\\Gizmo_PawnResearchProgress.cs",
+ "RelativeToolTip": "Pawn_Comps\\ARA_PawnResearchBlueprintReader\\Gizmo_PawnResearchProgress.cs",
+ "ViewState": "AgIAAOoAAAAAAAAAAAAAAP8AAAAzAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2026-02-13T07:41:00.755Z",
+ "EditorCaption": ""
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 5,
+ "Title": "CompAbilityEffect_PsychicLoadCost.cs",
+ "DocumentMoniker": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Abilities\\ARA_PsychicLoadCost\\CompAbilityEffect_PsychicLoadCost.cs",
+ "RelativeDocumentMoniker": "Abilities\\ARA_PsychicLoadCost\\CompAbilityEffect_PsychicLoadCost.cs",
+ "ToolTip": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Abilities\\ARA_PsychicLoadCost\\CompAbilityEffect_PsychicLoadCost.cs",
+ "RelativeToolTip": "Abilities\\ARA_PsychicLoadCost\\CompAbilityEffect_PsychicLoadCost.cs",
+ "ViewState": "AgIAAFYAAAAAAAAAAAAcwGQAAAAJAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2026-02-13T07:04:17.954Z",
+ "EditorCaption": ""
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 10,
+ "Title": "CompAbilityEffect_PsychicBrainburn.cs",
+ "DocumentMoniker": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Abilities\\PsychicBrainburn\\CompAbilityEffect_PsychicBrainburn.cs",
+ "RelativeDocumentMoniker": "Abilities\\PsychicBrainburn\\CompAbilityEffect_PsychicBrainburn.cs",
+ "ToolTip": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Abilities\\PsychicBrainburn\\CompAbilityEffect_PsychicBrainburn.cs",
+ "RelativeToolTip": "Abilities\\PsychicBrainburn\\CompAbilityEffect_PsychicBrainburn.cs",
+ "ViewState": "AgIAAAAAAAAAAAAAAAAAAAgAAABTAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2026-02-13T07:04:16.513Z",
+ "EditorCaption": ""
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 9,
+ "Title": "Gizmo_ResearchProgress.cs",
+ "DocumentMoniker": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Buildings\\Building_ResearchBlueprintReader\\Gizmo_ResearchProgress.cs",
+ "RelativeDocumentMoniker": "Buildings\\Building_ResearchBlueprintReader\\Gizmo_ResearchProgress.cs",
+ "ToolTip": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Buildings\\Building_ResearchBlueprintReader\\Gizmo_ResearchProgress.cs",
+ "RelativeToolTip": "Buildings\\Building_ResearchBlueprintReader\\Gizmo_ResearchProgress.cs",
+ "ViewState": "AgIAACIAAAAAAAAAAAAswDAAAAAwAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2026-02-13T07:03:24.516Z",
+ "EditorCaption": ""
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 11,
+ "Title": "ResearchBlueprintData.cs",
+ "DocumentMoniker": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Buildings\\Building_ResearchBlueprintReader\\ResearchBlueprintData.cs",
+ "RelativeDocumentMoniker": "Buildings\\Building_ResearchBlueprintReader\\ResearchBlueprintData.cs",
+ "ToolTip": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Buildings\\Building_ResearchBlueprintReader\\ResearchBlueprintData.cs",
+ "RelativeToolTip": "Buildings\\Building_ResearchBlueprintReader\\ResearchBlueprintData.cs",
+ "ViewState": "AgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2026-02-13T07:03:24.054Z",
+ "EditorCaption": ""
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 8,
+ "Title": "Comp_PawnResearchBlueprintReader.cs",
+ "DocumentMoniker": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Pawn_Comps\\ARA_PawnResearchBlueprintReader\\Comp_PawnResearchBlueprintReader.cs",
+ "RelativeDocumentMoniker": "Pawn_Comps\\ARA_PawnResearchBlueprintReader\\Comp_PawnResearchBlueprintReader.cs",
+ "ToolTip": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Pawn_Comps\\ARA_PawnResearchBlueprintReader\\Comp_PawnResearchBlueprintReader.cs",
+ "RelativeToolTip": "Pawn_Comps\\ARA_PawnResearchBlueprintReader\\Comp_PawnResearchBlueprintReader.cs",
+ "ViewState": "AgIAADEDAAAAAAAAAAAEwAIDAAB4AAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2026-02-13T03:53:59.347Z",
+ "EditorCaption": ""
}
]
}
diff --git a/Source/ArachnaeSwarm/ARA_DefOf.cs b/Source/ArachnaeSwarm/ARA_DefOf.cs
index f3678ca..957b1ba 100644
--- a/Source/ArachnaeSwarm/ARA_DefOf.cs
+++ b/Source/ArachnaeSwarm/ARA_DefOf.cs
@@ -38,6 +38,7 @@ namespace ArachnaeSwarm
public static JobDef ARA_ExtractHoney;
public static JobDef ARA_StripChitin;
public static JobDef ARA_FeedWithHoney;
+ public static JobDef ARA_Job_Launch_Proj;
static ARA_JobDefOf()
{
diff --git a/Source/ArachnaeSwarm/Abilities/ARA_LaunchMultiProjectile/CompAbilityEffect_LaunchMultiProjectile.cs b/Source/ArachnaeSwarm/Abilities/ARA_LaunchMultiProjectile/CompAbilityEffect_LaunchMultiProjectile.cs
new file mode 100644
index 0000000..51766e4
--- /dev/null
+++ b/Source/ArachnaeSwarm/Abilities/ARA_LaunchMultiProjectile/CompAbilityEffect_LaunchMultiProjectile.cs
@@ -0,0 +1,358 @@
+using System.Collections.Generic;
+using Verse;
+using RimWorld;
+using UnityEngine;
+using Verse.AI;
+
+namespace ArachnaeSwarm
+{
+ public class CompAbilityEffect_LaunchMultiProjectile : CompAbilityEffect
+ {
+ private bool isActive;
+ private int startTick;
+ private int nextProjectileTick;
+ private int projectilesFired;
+ private IntVec3? targetCell;
+ private bool parametersInitialized;
+
+ // 缓存当前状态的参数
+ private int currentNumProjectiles;
+ private ThingDef currentProjectileDef;
+ private float currentOffsetRadius;
+ private int currentShotIntervalTicks;
+
+ public new CompProperties_AbilityLaunchMultiProjectile Props => (CompProperties_AbilityLaunchMultiProjectile)props;
+
+ public bool IsActive => isActive;
+ public IntVec3? TargetCell => targetCell;
+
+ public override void Apply(LocalTargetInfo target, LocalTargetInfo dest)
+ {
+ base.Apply(target, dest);
+
+ if (parent.pawn == null || parent.pawn.MapHeld == null || !target.IsValid)
+ {
+ return;
+ }
+
+ // 初始化参数
+ InitializeParameters();
+
+ // 设置目标
+ targetCell = target.Cell.ClampInsideMap(parent.pawn.MapHeld);
+
+ // 开始发射
+ isActive = true;
+ startTick = Find.TickManager.TicksGame;
+ nextProjectileTick = startTick + Mathf.Max(0, Props.startDelayTicks);
+ projectilesFired = 0;
+
+ // 如果是持续模式,需要启动持续Job
+ if (Props.useSustainedJob)
+ {
+ StartSustainedJob(target);
+ }
+ }
+
+ public override void CompTick()
+ {
+ base.CompTick();
+
+ if (!isActive)
+ {
+ return;
+ }
+
+ // 终止条件检查
+ if (parent.pawn == null || parent.pawn.Dead || !parent.pawn.Spawned || parent.pawn.MapHeld == null)
+ {
+ StopMultiProjectile();
+ return;
+ }
+
+ // 检查是否还在持续施法状态
+ if (Props.useSustainedJob && !IsPawnMaintainingJob())
+ {
+ StopMultiProjectile();
+ return;
+ }
+
+ // 检查最大持续时间
+ if (Props.maxSustainTicks > 0 && (Find.TickManager.TicksGame - startTick) >= Props.maxSustainTicks)
+ {
+ StopMultiProjectile();
+ return;
+ }
+
+ // 检查是否已经发射完所有射弹
+ if (projectilesFired >= currentNumProjectiles)
+ {
+ StopMultiProjectile();
+ return;
+ }
+
+ int currentTick = Find.TickManager.TicksGame;
+
+ // 发射下一发
+ if (currentTick >= nextProjectileTick)
+ {
+ if (targetCell.HasValue)
+ {
+ LaunchProjectile(new LocalTargetInfo(targetCell.Value));
+ }
+
+ projectilesFired++;
+
+ // 如果还有剩余射弹,设置下一次发射时间
+ if (projectilesFired < currentNumProjectiles)
+ {
+ nextProjectileTick = currentTick + Mathf.Max(1, currentShotIntervalTicks);
+ }
+ else
+ {
+ // 所有射弹已发射完毕
+ if (!Props.useSustainedJob)
+ {
+ StopMultiProjectile();
+ }
+ }
+ }
+ }
+
+ public override void PostExposeData()
+ {
+ base.PostExposeData();
+
+ Scribe_Values.Look(ref isActive, "isActive", false);
+ Scribe_Values.Look(ref startTick, "startTick", 0);
+ Scribe_Values.Look(ref nextProjectileTick, "nextProjectileTick", 0);
+ Scribe_Values.Look(ref projectilesFired, "projectilesFired", 0);
+
+ if (Scribe.mode == LoadSaveMode.PostLoadInit && isActive)
+ {
+ InitializeParameters();
+ }
+ }
+
+ ///
+ /// 初始化当前参数
+ ///
+ private void InitializeParameters()
+ {
+ if (parametersInitialized)
+ return;
+
+ var state = GetCurrentState();
+
+ currentNumProjectiles = state?.numProjectiles ?? Props.numProjectiles;
+ currentProjectileDef = state?.projectileDef ?? Props.projectileDef;
+ currentOffsetRadius = state?.offsetRadius ?? Props.offsetRadius;
+ currentShotIntervalTicks = state?.shotIntervalTicks ?? Props.shotIntervalTicks;
+
+ parametersInitialized = true;
+ }
+
+ ///
+ /// 启动持续发射Job
+ ///
+ private void StartSustainedJob(LocalTargetInfo target)
+ {
+ // 创建一个持续施法的工作
+ Job job = JobMaker.MakeJob(ARA_JobDefOf.ARA_Job_Launch_Proj, target);
+ job.ability = parent;
+ job.verbToUse = parent.verb;
+ parent.pawn.jobs.StartJob(job, JobCondition.InterruptForced, null, false, true, null, null, false);
+ }
+
+ ///
+ /// 检查pawn是否还在维持发射工作
+ ///
+ private bool IsPawnMaintainingJob()
+ {
+ if (parent.pawn?.jobs?.curJob == null)
+ return false;
+
+ var curJob = parent.pawn.jobs.curJob;
+ return curJob.ability == parent && curJob.def != null && curJob.def.abilityCasting;
+ }
+
+ private void LaunchProjectile(LocalTargetInfo target)
+ {
+ if (currentProjectileDef == null)
+ return;
+
+ Pawn pawn = parent.pawn;
+ LocalTargetInfo finalTarget = target;
+
+ // 如果有偏移范围,计算偏移后的目标
+ if (Props.useRandomOffset && currentOffsetRadius > 0)
+ {
+ finalTarget = GetOffsetTarget(target, currentOffsetRadius);
+ }
+
+ Projectile projectile = (Projectile)GenSpawn.Spawn(currentProjectileDef, pawn.Position, pawn.Map);
+ projectile.Launch(pawn, pawn.DrawPos, finalTarget, finalTarget,
+ ProjectileHitFlags.IntendedTarget, parent.verb.preventFriendlyFire);
+ }
+
+ ///
+ /// 停止多射弹发射
+ ///
+ public void StopMultiProjectile()
+ {
+ isActive = false;
+ startTick = 0;
+ nextProjectileTick = 0;
+ projectilesFired = 0;
+ targetCell = null;
+ parametersInitialized = false;
+ }
+
+ ///
+ /// 获取偏移后的目标点
+ ///
+ private LocalTargetInfo GetOffsetTarget(LocalTargetInfo originalTarget, float offsetRadius)
+ {
+ if (!Props.useRandomOffset || offsetRadius <= 0)
+ return originalTarget;
+
+ Vector3 basePos = originalTarget.Cell.ToVector3Shifted();
+ Map map = parent.pawn.Map;
+
+ // 生成随机偏移
+ Vector3 offset = Vector3.zero;
+
+ if (Props.offsetInLineOnly)
+ {
+ // 只在线条方向偏移(从施法者到目标的方向)
+ Vector3 casterPos = parent.pawn.Position.ToVector3Shifted();
+ Vector3 direction = (basePos - casterPos).normalized;
+
+ // 使用offsetRange或offsetRadius
+ float offsetDistance = Props.offsetRange.RandomInRange;
+ if (Mathf.Abs(offsetDistance) < Props.minOffsetDistance)
+ {
+ offsetDistance = Mathf.Sign(offsetDistance) * Props.minOffsetDistance;
+ }
+
+ offset = direction * offsetDistance;
+ }
+ else if (Props.offsetInCircle)
+ {
+ // 在圆形范围内随机偏移
+ float angle = Rand.Range(0f, 360f);
+ float distance = Rand.Range(0f, offsetRadius);
+
+ // 确保最小距离
+ distance = Mathf.Max(distance, Props.minOffsetDistance);
+
+ offset = new Vector3(
+ Mathf.Cos(angle * Mathf.Deg2Rad) * distance,
+ 0f,
+ Mathf.Sin(angle * Mathf.Deg2Rad) * distance
+ );
+ }
+ else
+ {
+ // 在矩形范围内随机偏移
+ offset = new Vector3(
+ Props.offsetRange.RandomInRange,
+ 0f,
+ Props.offsetRange.RandomInRange
+ );
+
+ // 限制最大偏移距离
+ if (offsetRadius > 0 && offset.magnitude > offsetRadius)
+ {
+ offset = offset.normalized * offsetRadius;
+ }
+ }
+
+ // 计算最终目标点
+ IntVec3 targetCell = (basePos + offset).ToIntVec3();
+ targetCell = targetCell.ClampInsideMap(map);
+
+ return new LocalTargetInfo(targetCell);
+ }
+
+ ///
+ /// 绘制效果预览(显示偏移范围)
+ ///
+ public override void DrawEffectPreview(LocalTargetInfo target)
+ {
+ base.DrawEffectPreview(target);
+
+ float currentRadius = GetCurrentOffsetRadius();
+ if (Props.useRandomOffset && currentRadius > 0)
+ {
+ // 绘制偏移范围
+ GenDraw.DrawRadiusRing(target.Cell, currentRadius);
+ }
+ }
+
+ public override bool AICanTargetNow(LocalTargetInfo target)
+ {
+ return target.Pawn != null;
+ }
+
+ #region 状态获取方法
+
+ ///
+ /// 获取当前状态的射弹数量
+ ///
+ private int GetCurrentNumProjectiles()
+ {
+ var state = GetCurrentState();
+ return state?.numProjectiles ?? Props.numProjectiles;
+ }
+
+ ///
+ /// 获取当前状态的射弹类型
+ ///
+ private ThingDef GetCurrentProjectileDef()
+ {
+ var state = GetCurrentState();
+ return state?.projectileDef ?? Props.projectileDef;
+ }
+
+ ///
+ /// 获取当前状态的偏移半径
+ ///
+ private float GetCurrentOffsetRadius()
+ {
+ var state = GetCurrentState();
+ return state?.offsetRadius ?? Props.offsetRadius;
+ }
+
+ ///
+ /// 获取当前状态的发射间隔
+ ///
+ private int GetCurrentShotIntervalTicks()
+ {
+ var state = GetCurrentState();
+ return state?.shotIntervalTicks ?? Props.shotIntervalTicks;
+ }
+
+ ///
+ /// 获取当前状态(基于施法者的Hediff)
+ ///
+ private ProjectileState GetCurrentState()
+ {
+ if (parent.pawn == null || parent.pawn.health?.hediffSet == null || Props.states == null)
+ return null;
+
+ // 检查施法者是否有匹配的Hediff
+ foreach (var state in Props.states)
+ {
+ if (state.hediffDef != null && parent.pawn.health.hediffSet.HasHediff(state.hediffDef))
+ {
+ return state;
+ }
+ }
+
+ return null;
+ }
+
+ #endregion
+ }
+}
diff --git a/Source/ArachnaeSwarm/Abilities/ARA_LaunchMultiProjectile/CompProperties_AbilityLaunchMultiProjectile.cs b/Source/ArachnaeSwarm/Abilities/ARA_LaunchMultiProjectile/CompProperties_AbilityLaunchMultiProjectile.cs
new file mode 100644
index 0000000..d9fccc5
--- /dev/null
+++ b/Source/ArachnaeSwarm/Abilities/ARA_LaunchMultiProjectile/CompProperties_AbilityLaunchMultiProjectile.cs
@@ -0,0 +1,47 @@
+using Verse;
+using RimWorld;
+using System.Collections.Generic;
+
+namespace ArachnaeSwarm
+{
+ public class CompProperties_AbilityLaunchMultiProjectile : CompProperties_AbilityLaunchProjectile
+ {
+ public int numProjectiles = 1;
+
+ // 发射间隔控制
+ public int shotIntervalTicks = 0; // 每两发射弹的间隔时间(tick)
+ public bool useSustainedJob = false; // 是否使用持续Job
+
+ // 偏移范围
+ public float offsetRadius = 0f;
+ public bool useRandomOffset = false;
+ public FloatRange offsetRange = new FloatRange(-1f, 1f);
+ public bool offsetInLineOnly = false;
+ public bool offsetInCircle = true;
+ public float minOffsetDistance = 0f;
+ public bool avoidOverlap = false;
+ public float minProjectileSpacing = 1f;
+
+ // 持续发射控制
+ public int maxSustainTicks = 180; // 最大持续时间(参考火焰技能)
+ public int startDelayTicks = 10; // 开始发射前的延迟
+
+ // 状态定义
+ public List states;
+
+ public CompProperties_AbilityLaunchMultiProjectile()
+ {
+ compClass = typeof(CompAbilityEffect_LaunchMultiProjectile);
+ }
+ }
+
+ // 射弹状态参数
+ public class ProjectileState
+ {
+ public HediffDef hediffDef; // 触发的hediff
+ public int numProjectiles = 1; // 射弹数量(可选)
+ public ThingDef projectileDef; // 射弹类型(可选)
+ public float offsetRadius = 0f; // 偏移半径(可选)
+ public int shotIntervalTicks = 0; // 发射间隔(可选)
+ }
+}
diff --git a/Source/ArachnaeSwarm/Abilities/ARA_LaunchMultiProjectile/JobDriver_CastAbilityMaintainMultiProjectile.cs b/Source/ArachnaeSwarm/Abilities/ARA_LaunchMultiProjectile/JobDriver_CastAbilityMaintainMultiProjectile.cs
new file mode 100644
index 0000000..3f4c946
--- /dev/null
+++ b/Source/ArachnaeSwarm/Abilities/ARA_LaunchMultiProjectile/JobDriver_CastAbilityMaintainMultiProjectile.cs
@@ -0,0 +1,115 @@
+using System.Collections.Generic;
+using Verse;
+using Verse.AI;
+
+namespace ArachnaeSwarm
+{
+ public class JobDriver_CastAbilityMaintainMultiProjectile : JobDriver_CastAbility
+ {
+ private CompAbilityEffect_LaunchMultiProjectile MultiProjectileComp
+ {
+ get
+ {
+ if (job?.ability?.EffectComps == null)
+ {
+ return null;
+ }
+
+ foreach (var comp in job.ability.EffectComps)
+ {
+ if (comp is CompAbilityEffect_LaunchMultiProjectile multiComp)
+ {
+ return multiComp;
+ }
+ }
+ return null;
+ }
+ }
+
+ protected override IEnumerable MakeNewToils()
+ {
+ this.FailOnDespawnedOrNull(TargetIndex.A);
+ this.FailOn(() => job.ability == null || (!job.ability.CanCast && !job.ability.Casting));
+
+ AddFinishAction(delegate
+ {
+ if (job.ability != null && job.def.abilityCasting)
+ {
+ job.ability.StartCooldown(job.ability.def.cooldownTicksRange.RandomInRange);
+ }
+
+ // 停止多射弹发射
+ MultiProjectileComp?.StopMultiProjectile();
+ });
+
+ // 停止移动
+ Toil stopToil = ToilMaker.MakeToil("StopBeforeMultiProjectileCast");
+ stopToil.initAction = delegate
+ {
+ pawn.pather.StopDead();
+ };
+ stopToil.defaultCompleteMode = ToilCompleteMode.Instant;
+ yield return stopToil;
+
+ // 施法动作
+ Toil castToil = Toils_Combat.CastVerb(TargetIndex.A, TargetIndex.B, canHitNonTargetPawns: false);
+ if (job.ability != null && job.ability.def.showCastingProgressBar && job.verbToUse != null)
+ {
+ castToil.WithProgressBar(TargetIndex.A, () => job.verbToUse.WarmupProgress);
+ }
+ yield return castToil;
+
+ // 持续发射阶段
+ Toil maintainToil = ToilMaker.MakeToil("MaintainMultiProjectile");
+ maintainToil.initAction = delegate
+ {
+ pawn.pather.StopDead();
+ rotateToFace = TargetIndex.A;
+
+ // 如果组件有目标单元格,更新job的目标
+ var multiComp = MultiProjectileComp;
+ if (multiComp != null && multiComp.TargetCell.HasValue)
+ {
+ job.targetA = new LocalTargetInfo(multiComp.TargetCell.Value);
+ }
+ };
+ maintainToil.tickAction = delegate
+ {
+ pawn.pather.StopDead();
+
+ var multiComp = MultiProjectileComp;
+ if (multiComp == null || !multiComp.IsActive)
+ {
+ EndJobWith(JobCondition.Succeeded);
+ return;
+ }
+
+ // 更新目标(如果有必要)- 修正类型转换
+ if (multiComp.TargetCell.HasValue && multiComp.TargetCell.Value.IsValid)
+ {
+ // 将 IntVec3? 转换为 LocalTargetInfo
+ job.targetA = new LocalTargetInfo(multiComp.TargetCell.Value);
+ }
+
+ // 继续发射射弹(通过组件的Tick方法)
+ // 组件会在其CompTick中处理发射逻辑
+ };
+
+
+ maintainToil.FailOn(() => pawn.Dead || pawn.Downed || !pawn.Spawned);
+ maintainToil.handlingFacing = true;
+ maintainToil.defaultCompleteMode = ToilCompleteMode.Never;
+ yield return maintainToil;
+ }
+
+ public override string GetReport()
+ {
+ if (job?.ability != null)
+ {
+ return "UsingVerbNoTarget".Translate(job.verbToUse.ReportLabel);
+ }
+
+ return base.GetReport();
+ }
+ }
+}
diff --git a/Source/ArachnaeSwarm/Abilities/CompAbilityEffect_LaunchMultiProjectile.cs b/Source/ArachnaeSwarm/Abilities/CompAbilityEffect_LaunchMultiProjectile.cs
deleted file mode 100644
index 40c1746..0000000
--- a/Source/ArachnaeSwarm/Abilities/CompAbilityEffect_LaunchMultiProjectile.cs
+++ /dev/null
@@ -1,44 +0,0 @@
-using Verse;
-using RimWorld;
-
-namespace ArachnaeSwarm
-{
- public class CompProperties_AbilityLaunchMultiProjectile : CompProperties_AbilityLaunchProjectile
- {
- public int numProjectiles = 1;
-
- public CompProperties_AbilityLaunchMultiProjectile()
- {
- compClass = typeof(CompAbilityEffect_LaunchMultiProjectile);
- }
- }
-
- public class CompAbilityEffect_LaunchMultiProjectile : CompAbilityEffect
- {
- public new CompProperties_AbilityLaunchMultiProjectile Props => (CompProperties_AbilityLaunchMultiProjectile)props;
-
- public override void Apply(LocalTargetInfo target, LocalTargetInfo dest)
- {
- base.Apply(target, dest);
- for (int i = 0; i < Props.numProjectiles; i++)
- {
- LaunchProjectile(target);
- }
- }
-
- private void LaunchProjectile(LocalTargetInfo target)
- {
- if (Props.projectileDef != null)
- {
- Pawn pawn = parent.pawn;
- Projectile projectile = (Projectile)GenSpawn.Spawn(Props.projectileDef, pawn.Position, pawn.Map);
- projectile.Launch(pawn, pawn.DrawPos, target, target, ProjectileHitFlags.IntendedTarget, parent.verb.preventFriendlyFire);
- }
- }
-
- public override bool AICanTargetNow(LocalTargetInfo target)
- {
- return target.Pawn != null;
- }
- }
-}
\ No newline at end of file
diff --git a/Source/ArachnaeSwarm/ArachnaeSwarm.csproj b/Source/ArachnaeSwarm/ArachnaeSwarm.csproj
index 9bde2e6..433d4c6 100644
--- a/Source/ArachnaeSwarm/ArachnaeSwarm.csproj
+++ b/Source/ArachnaeSwarm/ArachnaeSwarm.csproj
@@ -42,6 +42,9 @@
+
+
+
@@ -129,7 +132,6 @@
-
diff --git a/Source/ArachnaeSwarm/Pawn_Comps/ARA_PawnResearchBlueprintReader/Comp_PawnResearchBlueprintReader.cs b/Source/ArachnaeSwarm/Pawn_Comps/ARA_PawnResearchBlueprintReader/Comp_PawnResearchBlueprintReader.cs
index 7462a18..ad56495 100644
--- a/Source/ArachnaeSwarm/Pawn_Comps/ARA_PawnResearchBlueprintReader/Comp_PawnResearchBlueprintReader.cs
+++ b/Source/ArachnaeSwarm/Pawn_Comps/ARA_PawnResearchBlueprintReader/Comp_PawnResearchBlueprintReader.cs
@@ -559,7 +559,7 @@ namespace ArachnaeSwarm
var startCmd = new Command_Action();
startCmd.defaultLabel = "ARA_PawnResearch_StartResearch".Translate();
startCmd.defaultDesc = "ARA_PawnResearch_StartResearchDesc".Translate();
- startCmd.icon = ContentFinder.Get("UI/Commands/Play", false);
+ startCmd.icon = ContentFinder.Get("ArachnaeSwarm/UI/Abilities/ARA_Ability_Morph", false);
startCmd.action = delegate
{
StartResearching();
@@ -651,9 +651,9 @@ namespace ArachnaeSwarm
{
bool missingHidden = HasMissingHiddenPrerequisites(project);
if (missingHidden)
- label = $"{label} [{"ARA_PawnResearch_HiddenPrerequisite".Translate()}] ";
+ label = $"{label} [{"ResearchBlueprintReader_HiddenPrerequisite".Translate()}] ";
else
- label = $"{label} [{"ARA_PawnResearch_PrerequisitesNeeded".Translate()}] ";
+ label = $"{label} [{"ResearchBlueprintReader_PrerequisitesNeeded".Translate()}] ";
}
else if (!hasEnoughPoints)
{
@@ -694,10 +694,9 @@ namespace ArachnaeSwarm
builder.AppendLine();
builder.AppendLine("ARA_PawnResearch_ProjectCost".Translate() + $": {project.baseCost}");
- builder.AppendLine("ARA_PawnResearch_BlueprintCount".Translate() + $": {project.techprintCount}");
float globalProgress = Find.ResearchManager.GetProgress(project);
- builder.AppendLine("ARA_PawnResearch_CurrentProgress".Translate() + $": {globalProgress:F0}/{project.baseCost:F0}");
+ builder.AppendLine("ResearchBlueprintReader_CurrentProgress".Translate() + $": {globalProgress:F0}/{project.baseCost:F0}");
// 显示所需灵能科研点
if (Props.usePsychicResearchPoints && spellHolder != null)
@@ -748,7 +747,7 @@ namespace ArachnaeSwarm
if (missingPrereqs.Count > 0)
{
builder.AppendLine();
- builder.AppendLine("" + "ARA_PawnResearch_MissingPrerequisites".Translate() + ": ");
+ builder.AppendLine("" + "ResearchBlueprintReader_PrerequisitesNeeded".Translate() + ": ");
foreach (var prereq in missingPrereqs)
{
@@ -757,7 +756,7 @@ namespace ArachnaeSwarm
project.hiddenPrerequisites.Contains(prereq);
if (isHidden)
- builder.AppendLine($" • {label} [{"ARA_PawnResearch_MissingHiddenPrerequisites".Translate()}] ");
+ builder.AppendLine($" • {label} [{"ResearchBlueprintReader_MissingHiddenPrerequisites".Translate()}] ");
else
builder.AppendLine($" • {label}");
}
@@ -770,8 +769,6 @@ namespace ArachnaeSwarm
float requiredPoints = project.baseCost - globalProgress;
builder.AppendLine();
builder.AppendLine("" + "ARA_PawnResearch_InsufficientPoints".Translate() + ": ");
- builder.AppendLine($" • {"ARA_PawnResearch_Required".Translate()}: {requiredPoints:F0}");
- builder.AppendLine($" • {"ARA_PawnResearch_Available".Translate()}: {spellHolder.PsychicResearchPoints:F0}");
}
return builder.ToString();
diff --git a/Source/ArachnaeSwarm/Pawn_Comps/ARA_PawnResearchBlueprintReader/Gizmo_PawnResearchProgress.cs b/Source/ArachnaeSwarm/Pawn_Comps/ARA_PawnResearchBlueprintReader/Gizmo_PawnResearchProgress.cs
index 570d70d..c3bf71b 100644
--- a/Source/ArachnaeSwarm/Pawn_Comps/ARA_PawnResearchBlueprintReader/Gizmo_PawnResearchProgress.cs
+++ b/Source/ArachnaeSwarm/Pawn_Comps/ARA_PawnResearchBlueprintReader/Gizmo_PawnResearchProgress.cs
@@ -58,7 +58,7 @@ namespace ArachnaeSwarm
}
else
{
- title = "ARA_PawnResearch_NoProject".Translate();
+ title = "ARA_PawnResearch_NoProjectSelected".Translate();
}
// 标题可点击
@@ -96,22 +96,22 @@ namespace ArachnaeSwarm
if (currentResearch.IsFinished)
{
GUI.color = new Color(0.3f, 0.9f, 0.3f);
- statusText = "ARA_PawnResearch_Completed".Translate();
+ statusText = "ARA_PawnResearch_Gizmo_Completed".Translate();
}
else if (researchComp.IsResearching && researchComp.CanResearch)
{
GUI.color = new Color(0.5f, 0.8f, 1f);
- statusText = "ARA_PawnResearch_Researching".Translate();
+ statusText = "ARA_PawnResearch_Gizmo_Researching".Translate();
}
else if (!researchComp.CanResearch)
{
GUI.color = new Color(0.8f, 0.2f, 0.2f);
- statusText = "ARA_PawnResearch_CannotResearch".Translate();
+ statusText = "ARA_PawnResearch_Gizmo_CannotResearch".Translate();
}
else
{
GUI.color = new Color(0.9f, 0.7f, 0.2f);
- statusText = "ARA_PawnResearch_Paused".Translate();
+ statusText = "ARA_PawnResearch_Gizmo_Paused".Translate();
}
Widgets.Label(statusRect, statusText);
}
@@ -203,12 +203,11 @@ namespace ArachnaeSwarm
researchComp.CurrentProgress.ToString("F0"),
currentResearch.baseCost.ToString("F0")));
- sb.AppendLine("ARA_PawnResearch_TooltipPercentage".Translate(researchComp.ResearchProgressPercent.ToStringPercent()));
sb.AppendLine();
if (currentResearch.IsFinished)
{
- sb.AppendLine("" + "ARA_PawnResearch_TooltipCompleted".Translate() + " ");
+ sb.AppendLine("" + "ARA_PawnResearch_CompletedShort".Translate() + " ");
}
else if (researchComp.IsResearching && researchComp.CanResearch)
{
@@ -224,7 +223,6 @@ namespace ArachnaeSwarm
else if (!researchComp.CanResearch)
{
sb.AppendLine("" + "ARA_PawnResearch_TooltipCannotResearch".Translate() + " ");
- sb.AppendLine("ARA_PawnResearch_TooltipCannotResearchReason".Translate());
// 检查具体原因
if (researchComp.Pawn != null)
@@ -234,7 +232,7 @@ namespace ArachnaeSwarm
if (researchComp.Pawn.Downed)
sb.AppendLine(" • " + "Downed".Translate());
if (!researchComp.Pawn.Spawned)
- sb.AppendLine(" • " + "NotSpawned".Translate());
+ sb.AppendLine(" • " + "ARA_NotSpawned".Translate());
}
if (researchComp.Props.usePsychicResearchPoints && researchComp.spellHolder != null)
@@ -255,19 +253,6 @@ namespace ArachnaeSwarm
sb.AppendLine("ARA_PawnResearch_TooltipNoProject".Translate());
}
- // 显示Pawn信息
- if (researchComp.Pawn != null)
- {
- sb.AppendLine();
- sb.AppendLine("ARA_PawnResearch_TooltipPawnInfo".Translate());
- sb.AppendLine($" • {"Intellectual".Translate()}: {researchComp.Pawn.skills.GetSkill(SkillDefOf.Intellectual).Level}");
-
- if (researchComp.spellHolder != null)
- {
- sb.AppendLine($" • {"ARA_PawnResearch_PsychicPoints".Translate()}: {researchComp.spellHolder.PsychicResearchPoints:F0}");
- }
- }
-
return sb.ToString().TrimEndNewlines();
}
}
diff --git a/非公开资源/Content/脑虫2.png b/非公开资源/Content/脑虫2.png
new file mode 100644
index 0000000..79fb49c
Binary files /dev/null and b/非公开资源/Content/脑虫2.png differ