diff --git a/1.6/1.6/Assemblies/ArachnaeSwarm.dll b/1.6/1.6/Assemblies/ArachnaeSwarm.dll index f3920fc..5b2dad4 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 33cca5e..1aabb7c 100644 --- a/1.6/1.6/Defs/AbilityDefs/ARA_Abilities.xml +++ b/1.6/1.6/Defs/AbilityDefs/ARA_Abilities.xml @@ -633,9 +633,10 @@ ArachnaeSwarm.Verb_CastAbilityTrackingCharge + false true - false + true true true false @@ -672,7 +673,7 @@ ARA_Flyer_TrackingCharge ArachnaeSwarm.PawnFlyer_TrackingCharge - 0.5 + 1.5 0 diff --git a/1.6/1.6/Defs/BodyAndPartDefs/ARA_Bodyparts.xml b/1.6/1.6/Defs/BodyAndPartDefs/ARA_Bodyparts.xml index e3ad7ec..a718615 100644 --- a/1.6/1.6/Defs/BodyAndPartDefs/ARA_Bodyparts.xml +++ b/1.6/1.6/Defs/BodyAndPartDefs/ARA_Bodyparts.xml @@ -4197,4 +4197,559 @@ + + + + ArachnaeSlayer_Body + + + Torso + Middle + Outside + +
  • Torso
  • +
    + + +
  • + ARA_Dorsum + 0.14 + +
  • Torso
  • + + + +
  • + ARA_Chitin_Shell + 0.02 + Outside + +
  • Torso
  • + + + +
  • + ARA_Exoskeleton_Dorsum + 0.016 + Inside + +
  • Torso
  • + + +
    + + +
  • + ARA_Sternum + 0.15 + +
  • Torso
  • + + + +
  • + ARA_Exoskeleton_Sternum + 0.015 + Outside + +
  • Torso
  • + + + +
  • + Heart + 0.020 + Inside + +
  • Torso
  • + + + +
  • + Stomach + 0.025 + Inside + +
  • Torso
  • + + + +
  • + Lung + 左肺(其一) + 0.025 + Inside + +
  • Torso
  • + + +
  • + Lung + 左肺(其二) + 0.025 + Inside + +
  • Torso
  • + + +
  • + Lung + 右肺(其一) + 0.025 + Inside + +
  • Torso
  • + + +
  • + Lung + 右肺(其二) + 0.025 + Inside + +
  • Torso
  • + + + +
  • + Kidney + 左肾 + 0.017 + Inside + +
  • Torso
  • + + +
  • + Kidney + 右肾 + 0.017 + Inside + +
  • Torso
  • + + + +
  • + Liver + 0.025 + 肝脏(其一) + Inside + +
  • Torso
  • + + +
  • + Liver + 肝脏(其二) + 0.025 + Inside + +
  • Torso
  • + + +
    + + +
  • + ARA_Tail + Bottom + Inside + 0.15 + +
  • Torso
  • + + + +
  • + ARA_Chitin_Shell + 0.01 + Outside + +
  • Torso
  • + + +
    + + +
  • + Neck + 0.075 + Top + +
  • Neck
  • + + +
  • + Head + 0.80 + +
  • UpperHead
  • +
  • FullHead
  • +
  • HeadAttackTool
  • + + + +
  • + ARA_Chitin_Shell + 0.02 + Outside + +
  • UpperHead
  • + + +
  • + Skull + 0.18 + Inside + +
  • UpperHead
  • +
  • Eyes
  • +
  • FullHead
  • + + +
  • + Brain + 0.8 + +
  • UpperHead
  • +
  • Eyes
  • +
  • FullHead
  • + + +
    + +
  • + Eye + left eye + 0.07 + +
  • FullHead
  • +
  • Eyes
  • + + LeftEye + true + +
  • South
  • +
  • West
  • +
    + +
  • + Eye + right eye + 0.07 + +
  • FullHead
  • +
  • Eyes
  • + + RightEye + +
  • South
  • +
  • East
  • +
    + +
  • + Ear + left ear + 0.07 + true + +
  • UpperHead
  • +
  • FullHead
  • + + +
  • + Ear + right ear + 0.07 + +
  • UpperHead
  • +
  • FullHead
  • + + +
  • + Nose + 0.10 + +
  • FullHead
  • + + +
  • + Jaw + 0.15 + +
  • Teeth
  • +
  • FullHead
  • +
  • Mouth
  • + + +
  • + Tongue + 0.001 + Inside + +
  • FullHead
  • + + +
    + +
    + +
    + + +
  • + Shoulder + 左副肢关节 + 0.12 + LeftShoulder + true + +
  • Shoulders
  • + + +
  • + Clavicle + 左副肢外骨骼 + 0.09 + Top + Outside + true + +
  • Shoulders
  • + + +
  • + Arm + 左副肢 + 0.77 + true + +
  • Arms
  • + + +
  • + Hand + 左鳌钳 + 0.14 + Bottom + true + +
  • Hands
  • +
  • HeadClaw
  • + + +
  • + Finger + 右鳌钳口 + 0.14 + +
  • Hands
  • +
  • LeftHand
  • + + +
    + +
    + +
    + +
  • + Shoulder + 右副肢关节 + 0.12 + LeftShoulder + true + +
  • Shoulders
  • + + +
  • + Clavicle + 右副肢外骨骼 + 0.09 + Top + Outside + true + +
  • Shoulders
  • + + +
  • + Arm + 右副肢 + 0.77 + true + +
  • Arms
  • + + +
  • + Hand + 右鳌钳 + 0.14 + Bottom + true + +
  • Hands
  • +
  • HeadClaw
  • + + +
  • + Finger + 右鳌钳口 + 0.14 + +
  • Hands
  • +
  • RightHand
  • + + +
    + +
    + +
    + + +
  • + Waist + 体节分界 + 0 + Bottom + +
  • Waist
  • + + + +
  • + Leg + 左前腿 + 0.06 + Bottom + +
  • Legs
  • + + LeftLeg + true + + +
  • + ARA_Chitin_Shell + 0.02 + Outside + +
  • Legs
  • + + + +
  • + Femur + 左前腿外骨骼 + 0.1 + Inside + +
  • Legs
  • + + +
    + +
  • + Leg + 右前腿 + 0.06 + Bottom + +
  • Legs
  • + + LeftLeg + true + + +
  • + ARA_Chitin_Shell + 0.02 + Outside + +
  • Legs
  • + + + +
  • + Femur + 右前腿外骨骼 + 0.1 + Inside + +
  • Legs
  • + + +
    + +
  • + Leg + 左后腿 + 0.06 + Bottom + +
  • Legs
  • + + LeftLeg + true + + +
  • + ARA_Chitin_Shell + 0.02 + Outside + +
  • Legs
  • + + + +
  • + Femur + 左后腿外骨骼 + 0.1 + Inside + +
  • Legs
  • + + +
    + +
  • + Leg + 右后腿 + 0.06 + Bottom + +
  • Legs
  • + + LeftLeg + true + + +
  • + ARA_Chitin_Shell + 0.02 + Outside + +
  • Legs
  • + + + +
  • + Femur + 右后腿外骨骼 + 0.1 + Inside + +
  • Legs
  • + + +
    + +
    +
    +
    \ No newline at end of file diff --git a/1.6/1.6/Defs/Effects/ARA_Flecks.xml b/1.6/1.6/Defs/Effects/ARA_Flecks.xml index 003067e..972537b 100644 --- a/1.6/1.6/Defs/Effects/ARA_Flecks.xml +++ b/1.6/1.6/Defs/Effects/ARA_Flecks.xml @@ -1,6 +1,6 @@ - + ARA_Arc_Beam_Fleck MoteOverhead 0.025 @@ -190,7 +190,7 @@ 0.1 - ARA_Double_Melee_Attack_Hit + ARA_Melee_Attack_Pluse_Hit
  • SubEffecter_Random @@ -229,7 +229,7 @@ (170,74,68) 6.5~7.5 0.5 - 180~196 + -25~45 OnSource true
  • @@ -240,7 +240,7 @@ (147,50,28) 6.5~7.5 0.5 - 195~215 + -35~35 OnSource true @@ -252,24 +252,20 @@ ARA_Area_Crush +
  • + SubEffecter_SoundTriggered + ARA_Area_Crush_Sound + OnTarget +
  • SubEffecter_SprayerTriggered Fleck_BlastMechBandShockwave 1 OnSource true + 0.25~0.35 0~0
  • -
  • - SubEffecter_SprayerTriggered - Mote_GiantExplosion - 1~1 -
  • -
  • - SubEffecter_SprayerTriggered - Mote_GiantExplosionInner - 5~5 -
  • diff --git a/1.6/1.6/Defs/EvolutionDefs/ARA_Evolution.xml b/1.6/1.6/Defs/EvolutionDefs/ARA_Evolution.xml index de19d49..4113673 100644 --- a/1.6/1.6/Defs/EvolutionDefs/ARA_Evolution.xml +++ b/1.6/1.6/Defs/EvolutionDefs/ARA_Evolution.xml @@ -1519,4 +1519,31 @@ + + + ARA_Slayer_Base + + 阿拉克涅暴屠种是一种特殊的兽虫,比起它的兄弟姐妹,它的智力等级要低很多,但是它也获得了其他虫族无法比拟的优势——巨大的体型和厚重的甲壳,这使得它可以抵御一切的攻击,并作为重锤击碎敌人的防御阵地。 + HediffWithComps + (0.6, 0.4, 0.8) + false + false + 1.0 + +
  • + 0 + + 0 + 0 + 5 + 0.25 + + + 3 + 3 + 1.5 + +
  • +
    +
    \ No newline at end of file diff --git a/1.6/1.6/Defs/HediffDefs/ARA_Hediffs_HiveMind.xml b/1.6/1.6/Defs/HediffDefs/ARA_Hediffs_HiveMind.xml index ed18012..1e0cc4b 100644 --- a/1.6/1.6/Defs/HediffDefs/ARA_Hediffs_HiveMind.xml +++ b/1.6/1.6/Defs/HediffDefs/ARA_Hediffs_HiveMind.xml @@ -132,7 +132,47 @@ + + ARA_HiveMindBeast + + 阿拉克涅兽虫是对比其他阿拉克涅虫族来说要更加原始的生命体,头脑简单四肢发达,但是不怎么遵循蜂巢的金字塔思维,巢穴内的任何督虫和女皇均可指挥它们。 + HediffWithComps + (0.6, 0.4, 0.8) + false + false + +
  • + 0 +
  • +
    +
    + + ARA_HiveStrength_Pluse + + 这只阿拉克涅虫族的修复细胞已经难以用常理形容,无论是多严重的伤势几乎都无法将其击杀。此外,这种强大的细胞也能给予其抵御酸蚀和阿拉克涅虫酸的伤害。 + HediffWithComps + (0.6, 0.4, 0.8) + false + false + +
  • + 0 + 500 + + 0.1 + 0.1 + +
  • +
    + +
  • + +
  • ARA_Cycle_Suppression_Hediff
  • + + +
    +
    ARA_HiveStrength diff --git a/1.6/1.6/Defs/PawnKindDef/ARA_PawnKinds.xml b/1.6/1.6/Defs/PawnKindDef/ARA_PawnKinds.xml index 9dc0062..57546d8 100644 --- a/1.6/1.6/Defs/PawnKindDef/ARA_PawnKinds.xml +++ b/1.6/1.6/Defs/PawnKindDef/ARA_PawnKinds.xml @@ -593,7 +593,7 @@
  • ArachnaeSwarm/Things/ARA_Slayer/Bodies/Naked_Thin - 4.5 + 6.5 (0.4, 0.5, 0.37) (0,0,-0.15) diff --git a/1.6/1.6/Defs/ResearchProjectDefs/ARA_ResearchProjects.xml b/1.6/1.6/Defs/ResearchProjectDefs/ARA_ResearchProjects.xml index 7e3c684..255d99c 100644 --- a/1.6/1.6/Defs/ResearchProjectDefs/ARA_ResearchProjects.xml +++ b/1.6/1.6/Defs/ResearchProjectDefs/ARA_ResearchProjects.xml @@ -3,6 +3,7 @@ Medieval ARA_ResearchTab + ARA_ResearchBench @@ -11,6 +12,7 @@ 1 0 2500 + ARA_InteractiveEggSac_Techprint
  • ARA_Technology_5ESS
  • @@ -23,7 +25,7 @@ ARA_Base_Technology - <color=#887E78><i>阿拉克涅虫群-主巢触须\n主巢触须的进化路径是包含于每一支虫群中的通用进化路径,它们奠定了虫群在生物学上的优越性。</i></color>\n\n解锁虫群的基础科技,允许孵化基本的辅虫和武装器官。\n\n阿拉克涅虫群所有需要蓝图的科技,其蓝图只能通过女皇种的基因试验卵获取。 + <color=#887E78><i>阿拉克涅虫群-主巢触须\n主巢触须的进化路径是包含于每一支虫群中的通用进化路径,它们奠定了虫群在生物学上的优越性。</i></color>\n\n解锁虫群的基础科技,允许孵化基本的辅虫和武装器官。\n\n阿拉克涅虫群所有需要蓝图的科技,其研究只能通过基因试验卵进行。 100 0.00 3.20 @@ -31,11 +33,10 @@ ARA_Technology_1WMT - <color=#887E78><i>阿拉克涅虫群-主巢触须\n主巢触须的进化路径是包含于每一支虫群中的通用进化路径,它们奠定了虫群在生物学上的优越性。</i></color>\n\n允许女皇种和工艺种进化到下一个阶段。\n\n阿拉克涅虫群所有需要蓝图的科技,其蓝图只能通过女皇种的基因试验卵获取。 + <color=#887E78><i>阿拉克涅虫群-主巢触须\n主巢触须的进化路径是包含于每一支虫群中的通用进化路径,它们奠定了虫群在生物学上的优越性。</i></color>\n\n允许女皇种和工艺种进化到下一个阶段。\n\n阿拉克涅虫群所有需要蓝图的科技,其研究只能通过基因试验卵进行。 3000 4.50 3.20 - ARA_ResearchBench 1 0 1 @@ -49,11 +50,10 @@ ARA_Technology_2WMT - <color=#887E78><i>阿拉克涅虫群-主巢触须\n主巢触须的进化路径是包含于每一支虫群中的通用进化路径,它们奠定了虫群在生物学上的优越性。</i></color>\n\n允许女皇种和工艺种进化到下一个阶段。\n\n阿拉克涅虫群所有需要蓝图的科技,其蓝图只能通过女皇种的基因试验卵获取。 + <color=#887E78><i>阿拉克涅虫群-主巢触须\n主巢触须的进化路径是包含于每一支虫群中的通用进化路径,它们奠定了虫群在生物学上的优越性。</i></color>\n\n允许女皇种和工艺种进化到下一个阶段。\n\n阿拉克涅虫群所有需要蓝图的科技,其研究只能通过基因试验卵进行。 7000 9.00 - 3.20 - ARA_ResearchBench + 3.20
  • ARA_Technology_6KYC
  • ARA_Technology_1BAC
  • @@ -67,7 +67,6 @@ 150 1.00 0.90 - ARA_ResearchBench
  • ARA_Base_Technology
  • @@ -79,7 +78,6 @@ 300 2.00 0.90 - ARA_ResearchBench
  • ARA_Technology_2HAG
  • @@ -94,7 +92,6 @@ 1250 5.50 0.90 - ARA_ResearchBench
  • ARA_Technology_7VXI
  • @@ -108,8 +105,7 @@ <color=#887E78><i>阿拉克涅虫群-主巢触须\n主巢触须的进化路径是包含于每一支虫群中的通用进化路径,它们奠定了虫群在生物学上的优越性。</i></color>\n\n允许工艺种孵化新的武器。 2000 10.00 - 1.50 - ARA_ResearchBench + 1.50
  • ARA_Technology_8VXI
  • @@ -123,8 +119,7 @@ <color=#887E78><i>阿拉克涅虫群-主巢触须\n主巢触须的进化路径是包含于每一支虫群中的通用进化路径,它们奠定了虫群在生物学上的优越性。</i></color>\n\n允许工艺种孵化新的武器。 3000 11.00 - 1.50 - ARA_ResearchBench + 1.50
  • ARA_Technology_9VXI
  • @@ -135,8 +130,7 @@ <color=#887E78><i>阿拉克涅虫群-主巢触须\n主巢触须的进化路径是包含于每一支虫群中的通用进化路径,它们奠定了虫群在生物学上的优越性。</i></color>\n\n允许建造天灾酸烧炮组织,一种强大的防御设施,不仅能解决成片的来犯之敌,也可以跨越地图发起打击。 3000 12.00 - 0.90 - ARA_ResearchBench + 0.90
  • ARA_Technology_10VXI
  • ARA_Technology_1NPT
  • @@ -150,7 +144,6 @@ 2500 7.50 2.70 - ARA_ResearchBench
  • ARA_Technology_6KYC
  • @@ -163,7 +156,6 @@ 150 2.00 4.30 - ARA_ResearchBench
  • ARA_Technology_5ESS
  • @@ -171,11 +163,10 @@ ARA_Technology_1KYC - <color=#887E78><i>阿拉克涅虫群-主巢触须\n主巢触须的进化路径是包含于每一支虫群中的通用进化路径,它们奠定了虫群在生物学上的优越性。</i></color>\n\n允许女皇种孵化新的虫族——战士种。\n\n阿拉克涅虫群所有需要蓝图的科技,其蓝图只能通过女皇种的基因试验卵获取。 + <color=#887E78><i>阿拉克涅虫群-主巢触须\n主巢触须的进化路径是包含于每一支虫群中的通用进化路径,它们奠定了虫群在生物学上的优越性。</i></color>\n\n允许女皇种孵化新的虫族——战士种。\n\n阿拉克涅虫群所有需要蓝图的科技,其研究只能通过基因试验卵进行。 150 3.00 4.80 - ARA_ResearchBench
  • ARA_Technology_2HAG
  • @@ -183,11 +174,10 @@ ARA_Technology_4KYC - <color=#887E78><i>阿拉克涅虫群-主巢触须\n主巢触须的进化路径是包含于每一支虫群中的通用进化路径,它们奠定了虫群在生物学上的优越性。</i></color>\n\n允许女皇种孵化新的虫族——原虫种,一种可以寄生在别的种族身上以控制它们的特殊督虫。\n\n阿拉克涅虫群所有需要蓝图的科技,其蓝图只能通过女皇种的基因试验卵获取。 + <color=#887E78><i>阿拉克涅虫群-主巢触须\n主巢触须的进化路径是包含于每一支虫群中的通用进化路径,它们奠定了虫群在生物学上的优越性。</i></color>\n\n允许女皇种孵化新的虫族——原虫种,一种可以寄生在别的种族身上以控制它们的特殊督虫。\n\n阿拉克涅虫群所有需要蓝图的科技,其研究只能通过基因试验卵进行。 200 3.00 4.30 - ARA_ResearchBench
  • ARA_Technology_2HAG
  • @@ -195,11 +185,10 @@ ARA_Technology_2KYC - <color=#887E78><i>阿拉克涅虫群-主巢触须\n主巢触须的进化路径是包含于每一支虫群中的通用进化路径,它们奠定了虫群在生物学上的优越性。</i></color>\n\n允许女皇种孵化新的虫族——空天种,敏捷而致命的精锐虫族,拥有以飞行姿态穿梭于战场的能力。\n\n阿拉克涅虫群所有需要蓝图的科技,其蓝图只能通过女皇种的基因试验卵获取。 + <color=#887E78><i>阿拉克涅虫群-主巢触须\n主巢触须的进化路径是包含于每一支虫群中的通用进化路径,它们奠定了虫群在生物学上的优越性。</i></color>\n\n允许女皇种孵化新的虫族——空天种,敏捷而致命的精锐虫族,拥有以飞行姿态穿梭于战场的能力。\n\n阿拉克涅虫群所有需要蓝图的科技,其研究只能通过基因试验卵进行。 1600 5.50 4.30 - ARA_ResearchBench
  • ARA_Technology_2HAG
  • @@ -210,11 +199,10 @@ ARA_Technology_5KYC - <color=#887E78><i>阿拉克涅虫群-主巢触须\n主巢触须的进化路径是包含于每一支虫群中的通用进化路径,它们奠定了虫群在生物学上的优越性。</i></color>\n\n允许女皇种孵化新的虫族——迷雾种,一种拥有厚重甲壳的大型督虫,可以释放烟雾、阻燃剂和召唤虫族增援的信息素以协助虫群进行集群冲击。\n\n阿拉克涅虫群所有需要蓝图的科技,其蓝图只能通过女皇种的基因试验卵获取。 + <color=#887E78><i>阿拉克涅虫群-主巢触须\n主巢触须的进化路径是包含于每一支虫群中的通用进化路径,它们奠定了虫群在生物学上的优越性。</i></color>\n\n允许女皇种孵化新的虫族——迷雾种,一种拥有厚重甲壳的大型督虫,可以释放烟雾、阻燃剂和召唤虫族增援的信息素以协助虫群进行集群冲击。\n\n阿拉克涅虫群所有需要蓝图的科技,其研究只能通过基因试验卵进行。 800 5.50 4.80 - ARA_ResearchBench
  • ARA_Technology_2HAG
  • @@ -225,11 +213,10 @@ ARA_Technology_6KYC - <color=#887E78><i>阿拉克涅虫群-主巢触须\n主巢触须的进化路径是包含于每一支虫群中的通用进化路径,它们奠定了虫群在生物学上的优越性。</i></color>\n\n允许女皇种孵化新的虫族——织域种,一种寿命长且拥有强大灵能的特殊虫族,不仅能协助虫群的科研工作,也是一个强大的施法者。\n\n阿拉克涅虫群所有需要蓝图的科技,其蓝图只能通过女皇种的基因试验卵获取。 + <color=#887E78><i>阿拉克涅虫群-主巢触须\n主巢触须的进化路径是包含于每一支虫群中的通用进化路径,它们奠定了虫群在生物学上的优越性。</i></color>\n\n允许女皇种孵化新的虫族——织域种,一种寿命长且拥有强大灵能的特殊虫族,不仅能协助虫群的科研工作,也是一个强大的施法者。\n\n阿拉克涅虫群所有需要蓝图的科技,其研究只能通过基因试验卵进行。 800 6.50 2.70 - ARA_ResearchBench
  • ARA_Technology_2HAG
  • @@ -240,11 +227,10 @@ ARA_Technology_7KYC - <color=#887E78><i>阿拉克涅虫群-主巢触须\n主巢触须的进化路径是包含于每一支虫群中的通用进化路径,它们奠定了虫群在生物学上的优越性。</i></color>\n\n允许女皇种孵化新的虫族——禁卫种,一种寿命较其他虫族更长的精锐虫族,拥有优秀的远程作战能力和社交能力,同时也可以作为指挥官指挥虫群。\n\n阿拉克涅虫群所有需要蓝图的科技,其蓝图只能通过女皇种的基因试验卵获取。 + <color=#887E78><i>阿拉克涅虫群-主巢触须\n主巢触须的进化路径是包含于每一支虫群中的通用进化路径,它们奠定了虫群在生物学上的优越性。</i></color>\n\n允许女皇种孵化新的虫族——禁卫种,一种寿命较其他虫族更长的精锐虫族,拥有优秀的远程作战能力和社交能力,同时也可以作为指挥官指挥虫群。\n\n阿拉克涅虫群所有需要蓝图的科技,其研究只能通过基因试验卵进行。 2800 10.00 3.80 - ARA_ResearchBench
  • ARA_Technology_2HAG
  • @@ -255,11 +241,10 @@ ARA_Technology_6MEN - <color=#887E78><i>阿拉克涅虫群-主巢触须\n主巢触须的进化路径是包含于每一支虫群中的通用进化路径,它们奠定了虫群在生物学上的优越性。</i></color>\n\n允许女皇种孵化新的虫族——拟线体,一种出生时躯体便已经被阿拉克涅拟线种寄生的虫族,便宜廉价并且可以快速得到的炮灰,倒是没什么纪律性就是了。\n\n阿拉克涅虫群所有需要蓝图的科技,其蓝图只能通过女皇种的基因试验卵获取。 + <color=#887E78><i>阿拉克涅虫群-主巢触须\n主巢触须的进化路径是包含于每一支虫群中的通用进化路径,它们奠定了虫群在生物学上的优越性。</i></color>\n\n允许女皇种孵化新的虫族——拟线体,一种出生时躯体便已经被阿拉克涅拟线种寄生的虫族,便宜廉价并且可以快速得到的炮灰,倒是没什么纪律性就是了。\n\n阿拉克涅虫群所有需要蓝图的科技,其研究只能通过基因试验卵进行。 1800 7.50 2.10 - ARA_ResearchBench
  • ARA_Technology_2HAG
  • @@ -275,7 +260,6 @@ 250 1.00 1.50 - ARA_ResearchBench
  • ARA_Technology_2HAG
  • @@ -290,7 +274,6 @@ 600 5.50 3.80 - ARA_ResearchBench
  • ARA_Technology_1WMT
  • @@ -302,7 +285,6 @@ 1200 10.00 4.80 - ARA_ResearchBench
  • ARA_Technology_2WMT
  • @@ -315,7 +297,6 @@ 200 1.00 0.30 - ARA_ResearchBench
  • ARA_Technology_2HAG
  • @@ -330,7 +311,6 @@ 1000 5.50 0.30 - ARA_ResearchBench
  • ARA_Technology_5PAV
  • @@ -344,8 +324,7 @@ <color=#887E78><i>阿拉克涅虫群-主巢触须\n主巢触须的进化路径是包含于每一支虫群中的通用进化路径,它们奠定了虫群在生物学上的优越性。</i></color>\n\n允许工艺种孵化新的武器。 1800 10.00 - 0.30 - ARA_ResearchBench + 0.30
  • ARA_Technology_6PAV
  • @@ -359,8 +338,7 @@ <color=#887E78><i>阿拉克涅虫群-主巢触须\n主巢触须的进化路径是包含于每一支虫群中的通用进化路径,它们奠定了虫群在生物学上的优越性。</i></color>\n\n允许工艺种孵化新的武器。 2000 11.00 - 0.30 - ARA_ResearchBench + 0.30
  • ARA_Technology_7PAV
  • @@ -371,8 +349,7 @@ <color=#887E78><i>阿拉克涅虫群-主巢触须\n主巢触须的进化路径是包含于每一支虫群中的通用进化路径,它们奠定了虫群在生物学上的优越性。</i></color>\n\n允许虫族建造一种强大的防御设施,具有强大的穿甲能力和较高的射速,专擅于对抗重甲目标。 2500 12.00 - 0.30 - ARA_ResearchBench + 0.30
  • ARA_Technology_1NPT
  • ARA_Technology_7XPAV
  • @@ -386,7 +363,6 @@ 600 5.50 2.70 - ARA_ResearchBench
  • ARA_Technology_1WMT
  • @@ -397,8 +373,7 @@ <color=#887E78><i>阿拉克涅虫群-主巢触须\n主巢触须的进化路径是包含于每一支虫群中的通用进化路径,它们奠定了虫群在生物学上的优越性。</i></color>\n\n允许工艺种孵化新的武器。 1200 10.00 - 0.90 - ARA_ResearchBench + 0.90
  • ARA_Technology_2MEL
  • @@ -414,7 +389,6 @@ 150 1.00 4.30 - ARA_ResearchBench
  • ARA_Base_Technology
  • @@ -425,8 +399,7 @@ <color=#887E78><i>阿拉克涅虫群-主巢触须\n主巢触须的进化路径是包含于每一支虫群中的通用进化路径,它们奠定了虫群在生物学上的优越性。</i></color>\n\n允许虫族建造一种特殊的辅虫,可以将物品和虫族以空投的方式送到大地图上的其他地方,不需要燃料。 200 2.00 - 3.80 - ARA_ResearchBench + 3.80
  • ARA_Base_Technology
  • @@ -437,8 +410,7 @@ <color=#887E78><i>阿拉克涅虫群-主巢触须\n主巢触须的进化路径是包含于每一支虫群中的通用进化路径,它们奠定了虫群在生物学上的优越性。</i></color>\n\n允许虫族建造一个中央营养供给设施,它可以自动为链接到的、需要营养的建筑自动补充营养。 1800 11.00 - 0.90 - ARA_ResearchBench + 0.90
  • ARA_Technology_2WMT
  • @@ -450,7 +422,6 @@ 250 1.00 2.10 - ARA_ResearchBench
  • ARA_Base_Technology
  • @@ -462,7 +433,6 @@ 500 1.00 3.80 - ARA_ResearchBench
  • ARA_Base_Technology
  • @@ -473,8 +443,7 @@ <color=#887E78><i>阿拉克涅虫群-主巢触须\n主巢触须的进化路径是包含于每一支虫群中的通用进化路径,它们奠定了虫群在生物学上的优越性。</i></color>\n\n允许虫族建造一种可以通过挖掘地道连接两地的特殊固定辅虫,以在两地间快速传输人员和物资。 2500 10.00 - 2.10 - ARA_ResearchBench + 2.10
  • ARA_Technology_6SPV
  • @@ -488,8 +457,7 @@ <color=#887E78><i>阿拉克涅虫群-主巢触须\n主巢触须的进化路径是包含于每一支虫群中的通用进化路径,它们奠定了虫群在生物学上的优越性。</i></color>\n\n允许虫利用活体钜菌的催化能力,使虫群可以建造一系列产出建筑。 1000 6.50 - 0.90 - ARA_ResearchBench + 0.90
  • ARA_Technology_5ESS
  • @@ -503,8 +471,7 @@ <color=#887E78><i>阿拉克涅虫群-主巢触须\n主巢触须的进化路径是包含于每一支虫群中的通用进化路径,它们奠定了虫群在生物学上的优越性。</i></color>\n\n允许虫族建造用于存放多余虫族的茧,在里面的虫族将沉眠直到虫巢意志再次呼唤。 2000 13.00 - 2.10 - ARA_ResearchBench + 2.10
  • ARA_Technology_1NPT
  • @@ -515,8 +482,7 @@ <color=#887E78><i>阿拉克涅虫群-主巢触须\n主巢触须的进化路径是包含于每一支虫群中的通用进化路径,它们奠定了虫群在生物学上的优越性。</i></color>\n\n允许虫族建造生产阿拉克涅蜜晶糕的巢穴,通过分解虫蜜来生产可食用的蜜晶糕。这种在巢穴内加工过的食物可以帮助虫群抵御冷血动物的影响,并且软糯的口感让非虫族殖民者也能乐在其中。 2000 14.00 - 2.10 - ARA_ResearchBench + 2.10
  • ARA_Technology_2NPT
  • @@ -527,8 +493,7 @@ <color=#887E78><i>阿拉克涅虫群-主巢触须\n主巢触须的进化路径是包含于每一支虫群中的通用进化路径,它们奠定了虫群在生物学上的优越性。</i></color>\n\n允许虫族建造孵化池。一种专用于批量生产虫族的孵化场地。孵化池的孵化效率比孵化茧更高。 1800 12.00 - 2.10 - ARA_ResearchBench + 2.10
  • ARA_Technology_1NPT
  • @@ -541,7 +506,6 @@ 2500 10.00 2.70 - ARA_ResearchBench
  • ARA_Technology_2WMT
  • @@ -553,7 +517,6 @@ 600 6.50 0.30 - ARA_ResearchBench
  • ARA_Technology_6PAV
  • @@ -566,7 +529,6 @@ 800 5.50 1.50 - ARA_ResearchBench
  • ARA_Technology_1WMT
  • @@ -577,8 +539,7 @@ <color=#887E78><i>阿拉克涅虫群-主巢触须\n主巢触须的进化路径是包含于每一支虫群中的通用进化路径,它们奠定了虫群在生物学上的优越性。</i></color>\n\n允许虫族建造一种强大的防御设施,能够向进犯的敌军投射以自杀式袭击为核心的爆裂种辅虫。 2500 12.00 - 1.50 - ARA_ResearchBench + 1.50
  • ARA_Technology_6SPV
  • @@ -595,7 +556,6 @@ 1600 6.50 2.10 - ARA_ResearchBench
  • ARA_Technology_1MED
  • ARA_Technology_6SPV
  • @@ -605,11 +565,10 @@ ARA_Technology_5STL - <color=#887E78><i>阿拉克涅虫群-主巢触须\n主巢触须的进化路径是包含于每一支虫群中的通用进化路径,它们奠定了虫群在生物学上的优越性。</i></color>\n\n允许战士种进行定向进化,抛弃其战斗技能以换取其从殖民者、囚犯和奴隶身上抽取和注入基因的能力。\n\n阿拉克涅虫群所有需要蓝图的科技,其蓝图只能通过女皇种的基因试验卵获取。 + <color=#887E78><i>阿拉克涅虫群-主巢触须\n主巢触须的进化路径是包含于每一支虫群中的通用进化路径,它们奠定了虫群在生物学上的优越性。</i></color>\n\n允许战士种进行定向进化,抛弃其战斗技能以换取其从殖民者、囚犯和奴隶身上抽取和注入基因的能力。\n\n阿拉克涅虫群所有需要蓝图的科技,其研究只能通过基因试验卵进行。 500 4.00 4.80 - ARA_ResearchBench
  • ARA_Technology_1KYC
  • @@ -617,11 +576,10 @@ ARA_Technology_1VTE - <color=#887E78><i>阿拉克涅虫群-主巢触须\n主巢触须的进化路径是包含于每一支虫群中的通用进化路径,它们奠定了虫群在生物学上的优越性。</i></color>\n\n允许盾头种进行定向进化,抛弃其产出甲壳素和建造建筑的能力以换取战斗能力、移动能力和冲撞攻击的技能。\n\n阿拉克涅虫群所有需要蓝图的科技,其蓝图只能通过女皇种的基因试验卵获取。 + <color=#887E78><i>阿拉克涅虫群-主巢触须\n主巢触须的进化路径是包含于每一支虫群中的通用进化路径,它们奠定了虫群在生物学上的优越性。</i></color>\n\n允许盾头种进行定向进化,抛弃其产出甲壳素和建造建筑的能力以换取战斗能力、移动能力和冲撞攻击的技能。\n\n阿拉克涅虫群所有需要蓝图的科技,其研究只能通过基因试验卵进行。 1200 6.50 4.80 - ARA_ResearchBench
  • ARA_Technology_1KYC
  • @@ -632,11 +590,10 @@ ARA_Technology_1MED - <color=#887E78><i>阿拉克涅虫群-主巢触须\n主巢触须的进化路径是包含于每一支虫群中的通用进化路径,它们奠定了虫群在生物学上的优越性。</i></color>\n\n允许蜜罐种进行定向进化,抛弃生产虫蜜的能力,以强化其自身的医疗能力并解锁孵化医药茧的技能。\n\n阿拉克涅虫群所有需要蓝图的科技,其蓝图只能通过女皇种的基因试验卵获取。 + <color=#887E78><i>阿拉克涅虫群-主巢触须\n主巢触须的进化路径是包含于每一支虫群中的通用进化路径,它们奠定了虫群在生物学上的优越性。</i></color>\n\n允许蜜罐种进行定向进化,抛弃生产虫蜜的能力,以强化其自身的医疗能力并解锁孵化医药茧的技能。\n\n阿拉克涅虫群所有需要蓝图的科技,其研究只能通过基因试验卵进行。 1200 5.50 2.10 - ARA_ResearchBench
  • ARA_Technology_1WMT
  • @@ -644,11 +601,10 @@ ARA_Technology_4CLO - <color=#887E78><i>阿拉克涅虫群-主巢触须\n主巢触须的进化路径是包含于每一支虫群中的通用进化路径,它们奠定了虫群在生物学上的优越性。</i></color>\n\n允许战士种进行定向进化,牺牲其使用远程武器的能力以换取强大的近战和永久隐身的能力。\n\n阿拉克涅虫群所有需要蓝图的科技,其蓝图只能通过女皇种的基因试验卵获取。 + <color=#887E78><i>阿拉克涅虫群-主巢触须\n主巢触须的进化路径是包含于每一支虫群中的通用进化路径,它们奠定了虫群在生物学上的优越性。</i></color>\n\n允许战士种进行定向进化,牺牲其使用远程武器的能力以换取强大的近战和永久隐身的能力。\n\n阿拉克涅虫群所有需要蓝图的科技,其研究只能通过基因试验卵进行。 1800 5.50 5.30 - ARA_ResearchBench
  • ARA_Technology_1KYC
  • @@ -659,11 +615,10 @@ ARA_Technology_1BAC - <color=#887E78><i>阿拉克涅虫群-主巢触须\n主巢触须的进化路径是包含于每一支虫群中的通用进化路径,它们奠定了虫群在生物学上的优越性。</i></color>\n\n允许迷雾种进行定向进化,牺牲其护甲和喷射信息素的能力以换成生产虫群所需高级资源"活化钜菌"的能力。\n\n阿拉克涅虫群所有需要蓝图的科技,其蓝图只能通过女皇种的基因试验卵获取。 + <color=#887E78><i>阿拉克涅虫群-主巢触须\n主巢触须的进化路径是包含于每一支虫群中的通用进化路径,它们奠定了虫群在生物学上的优越性。</i></color>\n\n允许迷雾种进行定向进化,牺牲其护甲和喷射信息素的能力以换成生产虫群所需高级资源"活化钜菌"的能力。\n\n阿拉克涅虫群所有需要蓝图的科技,其研究只能通过基因试验卵进行。 1000 7.50 3.80 - ARA_ResearchBench
  • ARA_Technology_1WMT
  • ARA_Technology_5KYC
  • @@ -672,11 +627,10 @@ ARA_Technology_9WID - <color=#887E78><i>阿拉克涅虫群-主巢触须\n主巢触须的进化路径是包含于每一支虫群中的通用进化路径,它们奠定了虫群在生物学上的优越性。</i></color>\n\n允许空天种进行定向进化,以牺牲高速和高空机动的能力换取向敌人投射大量磁暴种的能力,这种虫群可以以自杀性攻击的方式释放EMP以对抗机械族。\n\n阿拉克涅虫群所有需要蓝图的科技,其蓝图只能通过女皇种的基因试验卵获取。 + <color=#887E78><i>阿拉克涅虫群-主巢触须\n主巢触须的进化路径是包含于每一支虫群中的通用进化路径,它们奠定了虫群在生物学上的优越性。</i></color>\n\n允许空天种进行定向进化,以牺牲高速和高空机动的能力换取向敌人投射大量磁暴种的能力,这种虫群可以以自杀性攻击的方式释放EMP以对抗机械族。\n\n阿拉克涅虫群所有需要蓝图的科技,其研究只能通过基因试验卵进行。 1500 7.50 - 1.50 - ARA_ResearchBench + 1.50
  • ARA_Technology_2KYC
  • @@ -687,11 +641,10 @@ ARA_Technology_6LOD - <color=#887E78><i>阿拉克涅虫群-主巢触须\n主巢触须的进化路径是包含于每一支虫群中的通用进化路径,它们奠定了虫群在生物学上的优越性。</i></color>\n\n允许空天种进行定向进化,以牺牲高速和高空机动的能力换取向敌人投射大量天巢种的能力,这种飞行辅虫速度很快,并且在近战中很难缠。\n\n阿拉克涅虫群所有需要蓝图的科技,其蓝图只能通过女皇种的基因试验卵获取。 + <color=#887E78><i>阿拉克涅虫群-主巢触须\n主巢触须的进化路径是包含于每一支虫群中的通用进化路径,它们奠定了虫群在生物学上的优越性。</i></color>\n\n允许空天种进行定向进化,以牺牲高速和高空机动的能力换取向敌人投射大量天巢种的能力,这种飞行辅虫速度很快,并且在近战中很难缠。\n\n阿拉克涅虫群所有需要蓝图的科技,其研究只能通过基因试验卵进行。 3500 10.00 - 5.30 - ARA_ResearchBench + 5.30
  • ARA_Technology_2KYC
  • @@ -702,11 +655,10 @@ ARA_Technology_3CON - <color=#887E78><i>阿拉克涅虫群-主巢触须\n主巢触须的进化路径是包含于每一支虫群中的通用进化路径,它们奠定了虫群在生物学上的优越性。</i></color>\n\n允许盾头种进行定向进化,抛弃其防御能力以换取更强大的甲壳素产出能力和建造建筑的能力。\n\n阿拉克涅虫群所有需要蓝图的科技,其蓝图只能通过女皇种的基因试验卵获取。 + <color=#887E78><i>阿拉克涅虫群-主巢触须\n主巢触须的进化路径是包含于每一支虫群中的通用进化路径,它们奠定了虫群在生物学上的优越性。</i></color>\n\n允许盾头种进行定向进化,抛弃其防御能力以换取更强大的甲壳素产出能力和建造建筑的能力。\n\n阿拉克涅虫群所有需要蓝图的科技,其研究只能通过基因试验卵进行。 300 2.00 2.70 - ARA_ResearchBench
  • ARA_Base_Technology
  • @@ -714,11 +666,10 @@ ARA_Technology_8FEL - <color=#887E78><i>阿拉克涅虫群-主巢触须\n主巢触须的进化路径是包含于每一支虫群中的通用进化路径,它们奠定了虫群在生物学上的优越性。</i></color>\n\n允许蜜罐种进行定向进化,抛弃生产虫蜜的能力,以获得防御力增强、生产化合燃料和喷射火焰的能力。\n\n阿拉克涅虫群所有需要蓝图的科技,其蓝图只能通过女皇种的基因试验卵获取。 + <color=#887E78><i>阿拉克涅虫群-主巢触须\n主巢触须的进化路径是包含于每一支虫群中的通用进化路径,它们奠定了虫群在生物学上的优越性。</i></color>\n\n允许蜜罐种进行定向进化,抛弃生产虫蜜的能力,以获得防御力增强、生产化合燃料和喷射火焰的能力。\n\n阿拉克涅虫群所有需要蓝图的科技,其研究只能通过基因试验卵进行。 300 2.00 2.10 - ARA_ResearchBench
  • ARA_Base_Technology
  • @@ -726,11 +677,10 @@ ARA_Technology_3CRP - <color=#887E78><i>阿拉克涅虫群-主巢触须\n主巢触须的进化路径是包含于每一支虫群中的通用进化路径,它们奠定了虫群在生物学上的优越性。</i></color>\n\n允许迷雾种进行定向进化,抛弃喷射信息素的能力,以获得防御力、移动速度的增强和大规模铺设菌毯的能力。\n\n阿拉克涅虫群所有需要蓝图的科技,其蓝图只能通过女皇种的基因试验卵获取。 + <color=#887E78><i>阿拉克涅虫群-主巢触须\n主巢触须的进化路径是包含于每一支虫群中的通用进化路径,它们奠定了虫群在生物学上的优越性。</i></color>\n\n允许迷雾种进行定向进化,抛弃喷射信息素的能力,以获得防御力、移动速度的增强和大规模铺设菌毯的能力。\n\n阿拉克涅虫群所有需要蓝图的科技,其研究只能通过基因试验卵进行。 1300 7.50 0.90 - ARA_ResearchBench
  • ARA_Technology_5KYC
  • @@ -741,11 +691,10 @@ ARA_Technology_9NAV - <color=#887E78><i>阿拉克涅虫群-主巢触须\n主巢触须的进化路径是包含于每一支虫群中的通用进化路径,它们奠定了虫群在生物学上的优越性。</i></color>\n\n允许禁卫种进行定向进化,抛弃直接战斗能力和指挥地面虫群部队的能力,换取指挥空中兽虫群的能力。\n\n阿拉克涅虫群所有需要蓝图的科技,其蓝图只能通过女皇种的基因试验卵获取。 + <color=#887E78><i>阿拉克涅虫群-主巢触须\n主巢触须的进化路径是包含于每一支虫群中的通用进化路径,它们奠定了虫群在生物学上的优越性。</i></color>\n\n允许禁卫种进行定向进化,抛弃直接战斗能力和指挥地面虫群部队的能力,换取指挥空中兽虫群的能力。\n\n阿拉克涅虫群所有需要蓝图的科技,其研究只能通过基因试验卵进行。 3500 11.00 3.80 - ARA_ResearchBench
  • ARA_Technology_7KYC
  • @@ -758,7 +707,6 @@ 250 2.00 4.80 - ARA_ResearchBench
  • ARA_Technology_5ESS
  • @@ -770,7 +718,6 @@ 1000 6.50 4.30 - ARA_ResearchBench
  • ARA_Technology_5ESS
  • @@ -785,7 +732,6 @@ 1200 6.50 1.50 - ARA_ResearchBench
  • ARA_Technology_5ESS
  • @@ -800,7 +746,6 @@ 1500 7.50 4.30 - ARA_ResearchBench
  • ARA_Technology_5ESS
  • @@ -815,7 +760,6 @@ 1500 6.50 5.30 - ARA_ResearchBench
  • ARA_Technology_5ESS
  • @@ -830,7 +774,6 @@ 1500 7.50 4.80 - ARA_ResearchBench
  • ARA_Technology_5ESS
  • @@ -844,8 +787,7 @@ <color=#887E78><i>阿拉克涅虫群-主巢触须\n主巢触须的进化路径是包含于每一支虫群中的通用进化路径,它们奠定了虫群在生物学上的优越性。</i></color>\n\n允许实行新的阿拉克涅进化手术,允许阿拉克涅虫族在甲壳植入玻璃钢以获得强大防御力。 2500 10.00 - 4.30 - ARA_ResearchBench + 4.30
  • ARA_Technology_5ESS
  • @@ -862,8 +804,7 @@ <color=#887E78><i>阿拉克涅虫群-主巢触须\n主巢触须的进化路径是包含于每一支虫群中的通用进化路径,它们奠定了虫群在生物学上的优越性。</i></color>\n\n允许实行新的阿拉克涅进化手术,允许阿拉克涅虫族以丧失自愈能力为代价摆脱寿命的限制。 4000 11.00 - 2.10 - ARA_ResearchBench + 2.10
  • ARA_Technology_5ESS
  • @@ -877,8 +818,7 @@ <color=#887E78><i>阿拉克涅虫群-主巢触须\n主巢触须的进化路径是包含于每一支虫群中的通用进化路径,它们奠定了虫群在生物学上的优越性。</i></color>\n\n允许实行新的阿拉克涅进化手术,使得阿拉克涅虫族获得更强大的肺部。 1000 7.50 - 5.30 - ARA_ResearchBench + 5.30
  • ARA_Technology_5ESS
  • @@ -893,21 +833,33 @@ <color=#887E78><i>阿拉克涅虫群-主巢触须\n主巢触须的进化路径是包含于每一支虫群中的通用进化路径,它们奠定了虫群在生物学上的优越性。</i></color>\n\n允许阿拉克涅虫族建造特殊的活体建筑——阿拉克涅共生肌群,一种可以和督虫融合的无意识组织体,能为督虫提供强大的战斗力。\n\n霜结体共生肌群可以支持与其融合的阿拉克涅督虫使用多种急冻类武装,可以在控制大范围人群和快速点杀高价值目标间切换。 4000 11.00 - 4.30 - ARA_ResearchBench + 4.30
  • ARA_Technology_8EVO
  • + + ARA_Technology_8SLA + + <color=#887E78><i>阿拉克涅虫群-主巢触须\n主巢触须的进化路径是包含于每一支虫群中的通用进化路径,它们奠定了虫群在生物学上的优越性。</i></color>\n\n允许女皇种孵化新的兽虫——暴屠种。\n\n阿拉克涅虫群所有需要蓝图的科技,其研究只能通过基因试验卵进行。 + 3000 + 10.00 + 5.80 + +
  • ARA_Technology_2HAG
  • +
    + +
  • ARA_Technology_2WMT
  • +
    +
    ARA_Technology_4COV <color=#887E78><i>阿拉克涅虫群-主巢触须\n主巢触须的进化路径是包含于每一支虫群中的通用进化路径,它们奠定了虫群在生物学上的优越性。</i></color>\n\n允许阿拉克涅虫族建造特殊的活体建筑——天巫种兽虫,一种由引航种指挥的半自主个体,能依据指令灵活地从天上袭击敌军,以降下死亡之雨。 3000 12.00 - 3.80 - ARA_ResearchBench + 3.80
  • ARA_Technology_9NAV
  • diff --git a/1.6/1.6/Defs/SoundDefs/ARA_Sounds.xml b/1.6/1.6/Defs/SoundDefs/ARA_Sounds.xml index 2aee4e0..80e4dcc 100644 --- a/1.6/1.6/Defs/SoundDefs/ARA_Sounds.xml +++ b/1.6/1.6/Defs/SoundDefs/ARA_Sounds.xml @@ -15,6 +15,38 @@ + + ARA_Area_Crush_Sound + MapOnly + 2 + +
  • + +
  • + ArachnaeSwarm/ARA_Area_Crush_Sound +
  • + + 65 + 0.9~1.1 + +
    +
    + + ArachnaeBeast_Race_Slayer_Cleave_Hit + MapOnly + 2 + +
  • + +
  • + ArachnaeSwarm/ArachnaeBeast_Race_Slayer_Cleave_Hit +
  • + + 75 + 0.9~1.1 + +
    +
    ARA_RW_Lighting_Cannon_Shootingsound true 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 1fd6dab..91e2bc1 100644 --- a/1.6/1.6/Defs/ThingDef_Races/ARA_RaceBaseSwarm.xml +++ b/1.6/1.6/Defs/ThingDef_Races/ARA_RaceBaseSwarm.xml @@ -15,6 +15,24 @@ 1.1 + +
  • ARA_CureBloodRot
  • +
  • ARA_CureAcid
  • +
  • RemovePorcupineQuill
  • +
  • SurgicalInspection
  • +
  • ARA_Surgery_Install_Plasteel
  • +
  • ARA_Surgery_Install_Carapace_Shell
  • +
  • ARA_Surgery_Install_Huge_Stomach
  • +
  • ARA_Surgery_Install_Cycle_Suppression
  • +
  • ARA_Surgery_Install_Shell_Thorn
  • +
  • ARA_Surgery_Install_Reactive_Shell
  • +
  • ARA_Surgery_Install_Strengthening_Tendon
  • +
  • ARA_Surgery_Install_Slide_Patagium
  • +
  • ARA_Surgery_Install_Acidling_Pouch
  • +
  • ARA_Surgery_Install_Tumor_Pouch
  • +
  • ARA_Surgery_Install_Internal_Circulation_Lung
  • +
    +
  • @@ -61,11 +79,6 @@
  • (0.0, 0, -0.12)
  • (-0.07, 0, 0.08)
  • - - DeathActionWorker_Vanish - Filth_Slime - 1~3 - +
  • + +
  • ARA_HiveMindWorker
  • + + 1.0 + false +
    diff --git a/1.6/1.6/Defs/ThingDef_Races/ARA_RaceBeastSwarm.xml b/1.6/1.6/Defs/ThingDef_Races/ARA_RaceBeastSwarm.xml index da3dc42..ab5a17a 100644 --- a/1.6/1.6/Defs/ThingDef_Races/ARA_RaceBeastSwarm.xml +++ b/1.6/1.6/Defs/ThingDef_Races/ARA_RaceBeastSwarm.xml @@ -3,13 +3,24 @@ ArachnaeBeast_Race_Slayer - 阿拉克涅兽虫之一。 + 阿拉克涅兽虫之一,身形高大,浑身披挂厚重甲壳,硕大的足部无差别地践踏着周围的敌人,并且有一对粗壮的镰爪可以劈倒一群敌人,其存在的意义就是抗下并吸收攻击,粉碎敌人进攻虫群后排的矛头。 + ArachnaeSwarm.BeastUnit + + 5 + + ArachnaeSlayer_Body ARA_Insect_Beast + ARA_Insect_Beast_Constant + + 10 + + 50
  • AttackTarget
  • ARA_Slayer_Ability1_Train
  • +
  • @@ -20,17 +31,28 @@ 65 2 2 + ArachnaeBeast_Race_Slayer_Cleave_Hit + ArachnaeBeast_Race_Slayer_Cleave_Hit
  • +
  • +
  • + ARA_Cycle_Suppression_Hediff + ARA_LifespanHediff + 180 + 寿命 + 即使是四肢发达头脑简单的阿拉克涅兽虫,也最终难逃刻在基因中的命定之死。 + true +
  • - 60 - 6 + 120 + 3 1 false Cut - ARA_Double_Melee_Attack_Hit - ARA_Double_Melee_Attack_Hit + ARA_Melee_Attack_Pluse_Hit + ARA_Melee_Attack_Pluse_Hit true false
  • @@ -70,12 +92,24 @@ true
  • - 4 - 120 + 3 + 180 Crush - 60 + 80 false ARA_Area_Crush + 践踏 + 这只阿拉克涅虫族的身躯是如此巨大,以至于靠近它的敌人会被直接一脚踩死 + ArachnaeSwarm/UI/Abilities/ARA_Area_Crush +
  • +
  • + +
  • ARA_HiveMindBeast
  • +
  • ARA_HiveStrength_Pluse
  • +
  • ARA_Slayer_Base
  • + + 1.0 + false
    diff --git a/1.6/1.6/Defs/ThingDef_Races/ARA_RaceDroneSwarm.xml b/1.6/1.6/Defs/ThingDef_Races/ARA_RaceDroneSwarm.xml index 0bc1066..1a0967c 100644 --- a/1.6/1.6/Defs/ThingDef_Races/ARA_RaceDroneSwarm.xml +++ b/1.6/1.6/Defs/ThingDef_Races/ARA_RaceDroneSwarm.xml @@ -44,6 +44,11 @@ Pawn_Spelopede_Angry + + DeathActionWorker_Vanish + Filth_Slime + 1~3 +
  • 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 6e349d3..9ec811a 100644 --- a/1.6/1.6/Defs/ThingDef_Races/ARA_RaceNodeSwarm.xml +++ b/1.6/1.6/Defs/ThingDef_Races/ARA_RaceNodeSwarm.xml @@ -625,24 +625,6 @@
  • - -
  • ARA_CureBloodRot
  • -
  • ARA_CureAcid
  • -
  • RemovePorcupineQuill
  • -
  • SurgicalInspection
  • -
  • ARA_Surgery_Install_Plasteel
  • -
  • ARA_Surgery_Install_Carapace_Shell
  • -
  • ARA_Surgery_Install_Huge_Stomach
  • -
  • ARA_Surgery_Install_Cycle_Suppression
  • -
  • ARA_Surgery_Install_Shell_Thorn
  • -
  • ARA_Surgery_Install_Reactive_Shell
  • -
  • ARA_Surgery_Install_Strengthening_Tendon
  • -
  • ARA_Surgery_Install_Slide_Patagium
  • -
  • ARA_Surgery_Install_Acidling_Pouch
  • -
  • ARA_Surgery_Install_Tumor_Pouch
  • -
  • ARA_Surgery_Install_Internal_Circulation_Lung
  • -
    -
  • 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 b465cea..7676906 100644 --- a/1.6/1.6/Defs/ThingDef_Races/ARA_RaceQueen.xml +++ b/1.6/1.6/Defs/ThingDef_Races/ARA_RaceQueen.xml @@ -8,8 +8,25 @@ 3000 3 - - + + +
  • ARA_CureBloodRot
  • +
  • ARA_CureAcid
  • +
  • RemovePorcupineQuill
  • +
  • SurgicalInspection
  • +
  • ARA_Surgery_Install_Plasteel
  • +
  • ARA_Surgery_Install_Carapace_Shell
  • +
  • ARA_Surgery_Install_Huge_Stomach
  • +
  • ARA_Surgery_Install_Cycle_Suppression
  • +
  • ARA_Surgery_Install_Shell_Thorn
  • +
  • ARA_Surgery_Install_Reactive_Shell
  • +
  • ARA_Surgery_Install_Strengthening_Tendon
  • +
  • ARA_Surgery_Install_Slide_Patagium
  • +
  • ARA_Surgery_Install_Acidling_Pouch
  • +
  • ARA_Surgery_Install_Tumor_Pouch
  • +
  • ARA_Surgery_Install_Internal_Circulation_Lung
  • + + @@ -718,12 +735,6 @@
    - -
  • RemovePorcupineQuill
  • -
  • ARA_CureBloodRot
  • -
  • ARA_CureAcid
  • -
    -
  • Unique_Arachnae_Queen diff --git a/1.6/1.6/Defs/Thing_building/ARA_Building.xml b/1.6/1.6/Defs/Thing_building/ARA_Building.xml index 2933e92..6147a1a 100644 --- a/1.6/1.6/Defs/Thing_building/ARA_Building.xml +++ b/1.6/1.6/Defs/Thing_building/ARA_Building.xml @@ -626,7 +626,7 @@
  • 100 - 30 + 10 2 0.2 0.5 @@ -692,7 +692,7 @@
  • 100 - 30 + 10 2 0.2 0.5 @@ -764,7 +764,7 @@
  • 100 - 30 + 10 2 0.2 0.5 @@ -831,7 +831,7 @@
  • 100 - 30 + 10 2 0.2 0.5 @@ -902,7 +902,7 @@
  • 100 - 30 + 10 2 0.2 0.5 @@ -979,7 +979,7 @@
  • 100 - 30 + 10 2 0.2 0.5 @@ -1141,7 +1141,7 @@
  • 100 - 30 + 10 2 0.2 0.5 @@ -1193,7 +1193,7 @@
  • 100 - 30 + 10 2 0.2 0.5 diff --git a/1.6/1.6/Defs/Thing_building/ARA_DropPod.xml b/1.6/1.6/Defs/Thing_building/ARA_DropPod.xml index e4140b8..8f27aec 100644 --- a/1.6/1.6/Defs/Thing_building/ARA_DropPod.xml +++ b/1.6/1.6/Defs/Thing_building/ARA_DropPod.xml @@ -48,7 +48,7 @@
  • 100 - 30 + 10 2 0.2 0.5 diff --git a/1.6/1.6/Defs/Thing_building/ARA_NutrientNetworkBuilding.xml b/1.6/1.6/Defs/Thing_building/ARA_NutrientNetworkBuilding.xml index d1a4264..8c2b54d 100644 --- a/1.6/1.6/Defs/Thing_building/ARA_NutrientNetworkBuilding.xml +++ b/1.6/1.6/Defs/Thing_building/ARA_NutrientNetworkBuilding.xml @@ -38,7 +38,7 @@
  • 100 - 30 + 10 2 0.2 0.5 @@ -338,7 +338,7 @@
  • 100 - 30 + 10 2 0.2 0.5 @@ -540,7 +540,7 @@
  • 100 - 30 + 10 2 0.2 0.5 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 b269405..b37a3cb 100644 --- a/1.6/1.6/Defs/Thing_building/ARA_Ootheca.xml +++ b/1.6/1.6/Defs/Thing_building/ARA_Ootheca.xml @@ -65,7 +65,7 @@ ARA_Pawn_Ootheca - 一个脆弱、易燃、黏滑的囊状物,内含哺育一只新督虫所需的营养和遗传物质,一个宽敞、铺满阿拉克涅营养液的孵化间将是它最佳的放置场所。它需要由阿拉克涅幼虫种进入以启动孵化进程。 + 一个脆弱、易燃、黏滑的囊状物,内含哺育一只新督虫或兽虫所需的营养和遗传物质,一个宽敞、铺满阿拉克涅营养液的孵化间将是它最佳的放置场所。它需要由阿拉克涅幼虫种进入以启动孵化进程。 1000 @@ -160,7 +160,7 @@
  • 100 - 30 + 10 2 0.2 0.5 @@ -369,6 +369,21 @@
  • ARA_Incubator_8_Reward_Hediffs
  • +
  • + ArachnaeBeast_Race_Slayer + 16 + ARA_Technology_8SLA + +
  • ARA_Incubator_1_Reward_Hediffs
  • +
  • ARA_Incubator_2_Reward_Hediffs
  • +
  • ARA_Incubator_3_Reward_Hediffs
  • +
  • ARA_Incubator_4_Reward_Hediffs
  • +
  • ARA_Incubator_5_Reward_Hediffs
  • +
  • ARA_Incubator_6_Reward_Hediffs
  • +
  • ARA_Incubator_7_Reward_Hediffs
  • +
  • ARA_Incubator_8_Reward_Hediffs
  • + +
  • @@ -473,7 +488,7 @@
  • 100 - 30 + 10 2 0.2 0.5 @@ -556,7 +571,7 @@
  • 100 - 30 + 10 2 0.2 0.5 diff --git a/1.6/1.6/Defs/Thing_building/ARA_SwarmTurret.xml b/1.6/1.6/Defs/Thing_building/ARA_SwarmTurret.xml index 9f59664..450c3a7 100644 --- a/1.6/1.6/Defs/Thing_building/ARA_SwarmTurret.xml +++ b/1.6/1.6/Defs/Thing_building/ARA_SwarmTurret.xml @@ -290,7 +290,7 @@
  • 100 - 30 + 10 2 0.2 0.5 @@ -435,7 +435,7 @@
  • 100 - 30 + 10 2 0.2 0.5 @@ -603,7 +603,7 @@
  • 100 - 30 + 10 2 0.2 0.5 diff --git a/1.6/1.6/Defs/Thing_building/ARA_Vat.xml b/1.6/1.6/Defs/Thing_building/ARA_Vat.xml index f50d686..88e3c87 100644 --- a/1.6/1.6/Defs/Thing_building/ARA_Vat.xml +++ b/1.6/1.6/Defs/Thing_building/ARA_Vat.xml @@ -62,7 +62,7 @@
  • 100 - 30 + 10 2 0.2 0.5 @@ -145,7 +145,7 @@
  • 100 - 30 + 10 2 0.2 0.5 diff --git a/1.6/1.6/Defs/Thing_building/ARA_WormholeDefs.xml b/1.6/1.6/Defs/Thing_building/ARA_WormholeDefs.xml index b329679..b9ac1c8 100644 --- a/1.6/1.6/Defs/Thing_building/ARA_WormholeDefs.xml +++ b/1.6/1.6/Defs/Thing_building/ARA_WormholeDefs.xml @@ -41,7 +41,7 @@
  • 100 - 30 + 10 2 0.2 0.5 diff --git a/1.6/1.6/Defs/ThinkTreeDefs/ARA_ThinkTrees.xml b/1.6/1.6/Defs/ThinkTreeDefs/ARA_ThinkTrees.xml index 06a3c3a..cd58fb1 100644 --- a/1.6/1.6/Defs/ThinkTreeDefs/ARA_ThinkTrees.xml +++ b/1.6/1.6/Defs/ThinkTreeDefs/ARA_ThinkTrees.xml @@ -158,9 +158,9 @@
  • Downed
  • -
  • +
  • MentalStateCritical
  • @@ -170,6 +170,19 @@
  • + + +
  • + +
  • + DraftedOrder + +
  • +
  • + +
  • + +
  • @@ -479,6 +492,38 @@ + + ARA_Insect_Beast_Constant + + + +
  • + Despawned +
  • + +
  • + + +
  • + JoinAutoJoinableCaravan +
  • + + + + +
  • + +
  • + + +
  • + LordDutyConstant +
  • + + + + + ARA_Insect_WithPlanting diff --git a/1.6/1.6/Defs/TrainableDefs/ARA_Cleaning.xml b/1.6/1.6/Defs/TrainableDefs/ARA_Cleaning.xml deleted file mode 100644 index 8ed9fcc..0000000 --- a/1.6/1.6/Defs/TrainableDefs/ARA_Cleaning.xml +++ /dev/null @@ -1,22 +0,0 @@ - - - - - ARA_Cleaning - - 允许该生物执行清洁任务。 - - true - - - 5 - Advanced - - - 3 - - - 100 - - - \ No newline at end of file diff --git a/1.6/1.6/Defs/TrainableDefs/ARA_Sowing.xml b/1.6/1.6/Defs/TrainableDefs/ARA_TrainableDef.xml similarity index 76% rename from 1.6/1.6/Defs/TrainableDefs/ARA_Sowing.xml rename to 1.6/1.6/Defs/TrainableDefs/ARA_TrainableDef.xml index 5307b0e..a656e00 100644 --- a/1.6/1.6/Defs/TrainableDefs/ARA_Sowing.xml +++ b/1.6/1.6/Defs/TrainableDefs/ARA_TrainableDef.xml @@ -1,6 +1,22 @@ - + + ARA_Cleaning + + 允许该生物执行清洁任务。 + + true + + + 5 + Advanced + + + 3 + + + 100 + ARA_Sowing @@ -35,11 +51,13 @@ 以庞大的身躯冲撞目标,对路径上的一切造成伤害。在冲击中途经的距离越远,伤害越高。 ArachnaeSwarm/UI/Abilities/ARA_Ability_TrackingCharge - 6000 + 600 true + true ArachnaeSwarm.Verb_CastAbilityTrackingCharge + false true true @@ -57,12 +75,12 @@
  • 1.5 - 50 + 100 3 - 6 + 25 Blunt ARA_Flyer_TrackingCharge - 2.5 + 3.5 Pawn_Melee_BigBash_HitPawn true
  • diff --git a/Content/Sounds/ArachnaeSwarm/ARA_Area_Crush_Sound.wav b/Content/Sounds/ArachnaeSwarm/ARA_Area_Crush_Sound.wav new file mode 100644 index 0000000..96cca4a Binary files /dev/null and b/Content/Sounds/ArachnaeSwarm/ARA_Area_Crush_Sound.wav differ diff --git a/Content/Sounds/ArachnaeSwarm/ArachnaeBeast_Race_Slayer_Cleave_Hit.wav b/Content/Sounds/ArachnaeSwarm/ArachnaeBeast_Race_Slayer_Cleave_Hit.wav new file mode 100644 index 0000000..76da0f9 Binary files /dev/null and b/Content/Sounds/ArachnaeSwarm/ArachnaeBeast_Race_Slayer_Cleave_Hit.wav differ diff --git a/Content/Textures/ArachnaeSwarm/Things/ARA_Slayer/Bodies/Naked_Thin_east.png b/Content/Textures/ArachnaeSwarm/Things/ARA_Slayer/Bodies/Naked_Thin_east.png new file mode 100644 index 0000000..32b34c9 Binary files /dev/null and b/Content/Textures/ArachnaeSwarm/Things/ARA_Slayer/Bodies/Naked_Thin_east.png differ diff --git a/Content/Textures/ArachnaeSwarm/Things/ARA_Slayer/Bodies/Naked_Thin_north.png b/Content/Textures/ArachnaeSwarm/Things/ARA_Slayer/Bodies/Naked_Thin_north.png new file mode 100644 index 0000000..4e0a785 Binary files /dev/null and b/Content/Textures/ArachnaeSwarm/Things/ARA_Slayer/Bodies/Naked_Thin_north.png differ diff --git a/Content/Textures/ArachnaeSwarm/UI/Abilities/ARA_Area_Crush.png b/Content/Textures/ArachnaeSwarm/UI/Abilities/ARA_Area_Crush.png new file mode 100644 index 0000000..3225182 Binary files /dev/null and b/Content/Textures/ArachnaeSwarm/UI/Abilities/ARA_Area_Crush.png differ diff --git a/Source/ArachnaeSwarm/.vs/ArachnaeSwarm/v17/.suo b/Source/ArachnaeSwarm/.vs/ArachnaeSwarm/v17/.suo index 430b39f..262a740 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 6f30f13..55627bb 100644 --- a/Source/ArachnaeSwarm/.vs/ArachnaeSwarm/v17/DocumentLayout.json +++ b/Source/ArachnaeSwarm/.vs/ArachnaeSwarm/v17/DocumentLayout.json @@ -1,207 +1,262 @@ { "Version": 1, - "WorkspaceRootPath": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\", + "WorkspaceRootPath": "E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\", "Documents": [ { - "AbsoluteMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|d:\\steamlibrary\\steamapps\\common\\rimworld\\mods\\arachnaeswarm\\source\\arachnaeswarm\\thing_comps\\ara_areaadamage\\compareadamage.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", - "RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:thing_comps\\ara_areaadamage\\compareadamage.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" + "AbsoluteMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|e:\\steamlibrary\\steamapps\\common\\rimworld\\mods\\arachnaeswarm\\source\\arachnaeswarm\\pawn_comps\\ara_preventpartloss\\preventpartlosspatches.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", + "RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:pawn_comps\\ara_preventpartloss\\preventpartlosspatches.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\\thing_comps\\ara_areaadamage\\compproperties_areadamage.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", - "RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:thing_comps\\ara_areaadamage\\compproperties_areadamage.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\\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\\pawn_comps\\ara_swarmmaintainer\\compproperties_swarmmaintainer.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", - "RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:pawn_comps\\ara_swarmmaintainer\\compproperties_swarmmaintainer.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\\hediffs\\ara_hivemind\\hediff_hivemindmaster.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", + "RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:hediffs\\ara_hivemind\\hediff_hivemindmaster.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\\verbs\\pawnbodyweapon\\compproperties_pawnbodyweapon.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", - "RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:verbs\\pawnbodyweapon\\compproperties_pawnbodyweapon.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\\thing_comps\\ara_compextraincubationinfo\\compextraincubationinfo.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", - "RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:thing_comps\\ara_compextraincubationinfo\\compextraincubationinfo.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\\verbs\\pawnbodyweapon\\verb_meleeattack_bodyweapon.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", - "RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:verbs\\pawnbodyweapon\\verb_meleeattack_bodyweapon.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" - }, - { - "AbsoluteMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\workgivers\\workgiver_swarmmaintain.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", - "RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:workgivers\\workgiver_swarmmaintain.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_equipmentootheca\\building_equipmentootheca.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", - "RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:buildings\\building_equipmentootheca\\building_equipmentootheca.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\\verbs\\cleave\\compcleave.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", - "RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:verbs\\cleave\\compcleave.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\\verbs\\cleave\\verb_meleeattack_cleave.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", - "RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:verbs\\cleave\\verb_meleeattack_cleave.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_trainingwork\\jobclean\\thinknode_conditionalanimalshoulddocleaningwork.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", - "RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:pawn_comps\\ara_trainingwork\\jobclean\\thinknode_conditionalanimalshoulddocleaningwork.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_trainingwork\\jobclean\\workgiver_arachnaeclean.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", - "RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:pawn_comps\\ara_trainingwork\\jobclean\\workgiver_arachnaeclean.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" - }, - { - "AbsoluteMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\pawn_comps\\ara_trainingwork\\jobplant\\jobgiver_grower.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", - "RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:pawn_comps\\ara_trainingwork\\jobplant\\jobgiver_grower.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_compskillexperiencegiver\\compproperties_skillexperiencegiver.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", - "RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:pawn_comps\\ara_compskillexperiencegiver\\compproperties_skillexperiencegiver.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\\arachnaeswarmmod.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", - "RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:arachnaeswarmmod.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_configurablemutant\\hediff_configurablemutant.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", - "RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:hediffs\\ara_configurablemutant\\hediff_configurablemutant.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\\thing_comps\\compapparelinterceptor.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", - "RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:thing_comps\\compapparelinterceptor.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\\building_comps\\ara_buildingterrainspawn\\compdelayedterrainspawn.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", - "RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:building_comps\\ara_buildingterrainspawn\\compdelayedterrainspawn.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\\workgivers\\workgiver_feedwithhoney.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", - "RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:workgivers\\workgiver_feedwithhoney.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" - }, - { - "AbsoluteMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|D:\\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|D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\workgivers\\workgiver_refuel_nutrition.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", - "RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:workgivers\\workgiver_refuel_nutrition.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" - }, - { - "AbsoluteMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\jobs\\jobdriver_feedwithhoney\\jobdriver_feedwithhoney.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", - "RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:jobs\\jobdriver_feedwithhoney\\jobdriver_feedwithhoney.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" - }, - { - "AbsoluteMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\workgivers\\workgiver_extracthoney.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", - "RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:workgivers\\workgiver_extracthoney.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" - }, - { - "AbsoluteMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\workgivers\\workgiver_stripchitin.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", - "RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:workgivers\\workgiver_stripchitin.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" - }, - { - "AbsoluteMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\jobs\\jobdriver_feedwithhoney\\jobdriver_extracthoney.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", - "RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:jobs\\jobdriver_feedwithhoney\\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\\jobs\\jobdriver_feedwithhoney\\thinknode_jobgiver_extracthoney.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", - "RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:jobs\\jobdriver_feedwithhoney\\thinknode_jobgiver_extracthoney.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" - }, - { - "AbsoluteMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\jobs\\jobdriver_swarmmaintain\\jobdriver_swarmmaintain.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", - "RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:jobs\\jobdriver_swarmmaintain\\jobdriver_swarmmaintain.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\\building_comps\\ara_swarmmaintenance\\comp_swarmmaintenance.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", - "RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:building_comps\\ara_swarmmaintenance\\comp_swarmmaintenance.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\\buildings\\building_dormancyvat\\building_dormancyvat.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_dormancyvat\\building_dormancyvat.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", "RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:buildings\\building_dormancyvat\\building_dormancyvat.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}", + "AbsoluteMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\workgivers\\workgiver_stripchitin.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", + "RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:workgivers\\workgiver_stripchitin.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" + }, + { + "AbsoluteMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\workgivers\\workgiver_extracthoney.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", + "RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:workgivers\\workgiver_extracthoney.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" + }, + { + "AbsoluteMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|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\\workgivers\\workgiver_feedwithhoney.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", + "RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:workgivers\\workgiver_feedwithhoney.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" + }, + { + "AbsoluteMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|e:\\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|e:\\steamlibrary\\steamapps\\common\\rimworld\\mods\\arachnaeswarm\\source\\arachnaeswarm\\hediffs\\ara_hivemind\\hediffcomp_hiveminddrone.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", + "RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:hediffs\\ara_hivemind\\hediffcomp_hiveminddrone.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\\hediffs\\ara_hivemind\\hediff_hiveminddrone.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", + "RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:hediffs\\ara_hivemind\\hediff_hiveminddrone.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" + }, + { + "AbsoluteMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|e:\\steamlibrary\\steamapps\\common\\rimworld\\mods\\arachnaeswarm\\source\\arachnaeswarm\\pawn_comps\\ara_dratfableanimals\\beastunit.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", + "RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:pawn_comps\\ara_dratfableanimals\\beastunit.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" + }, + { + "AbsoluteMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|e:\\steamlibrary\\steamapps\\common\\rimworld\\mods\\arachnaeswarm\\source\\arachnaeswarm\\pawn_comps\\ara_dratfableanimals\\compdratfableanimals.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", + "RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:pawn_comps\\ara_dratfableanimals\\compdratfableanimals.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\\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|e:\\steamlibrary\\steamapps\\common\\rimworld\\mods\\arachnaeswarm\\source\\arachnaeswarm\\pawn_comps\\ara_dratfableanimals\\compproperties_dratfableanimals.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", + "RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:pawn_comps\\ara_dratfableanimals\\compproperties_dratfableanimals.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\\thing_comps\\ara_compextraincubationinfo\\compproperties_extraincubationinfo.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", + "RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:thing_comps\\ara_compextraincubationinfo\\compproperties_extraincubationinfo.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\\thing_comps\\ara_compextraincubationinfo\\compextraincubationinfo.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", + "RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:thing_comps\\ara_compextraincubationinfo\\compextraincubationinfo.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_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\\roomrole\\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\\verbs\\pawnbodyweapon\\verb_meleeattack_bodyweapon.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", + "RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:verbs\\pawnbodyweapon\\verb_meleeattack_bodyweapon.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_equipmentootheca\\itab_equipmentootheca_incubation.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", + "RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:buildings\\building_equipmentootheca\\itab_equipmentootheca_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\\thing_comps\\ara_areaadamage\\compareadamage.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", + "RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:thing_comps\\ara_areaadamage\\compareadamage.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\\verbs\\cleave\\verb_meleeattack_cleave.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", + "RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:verbs\\cleave\\verb_meleeattack_cleave.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_equipmentootheca\\building_equipmentootheca.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", + "RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:buildings\\building_equipmentootheca\\building_equipmentootheca.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_researchblueprintreader\\researchblueprintreadermanager.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", + "RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:buildings\\building_researchblueprintreader\\researchblueprintreadermanager.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_equipmentootheca\\jobdriver_operateequipmentincubator.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", + "RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:buildings\\building_equipmentootheca\\jobdriver_operateequipmentincubator.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\\thing_comps\\ara_areaadamage\\compproperties_areadamage.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", + "RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:thing_comps\\ara_areaadamage\\compproperties_areadamage.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" + }, + { + "AbsoluteMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\pawn_comps\\ara_swarmmaintainer\\compproperties_swarmmaintainer.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", + "RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:pawn_comps\\ara_swarmmaintainer\\compproperties_swarmmaintainer.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\\verbs\\pawnbodyweapon\\compproperties_pawnbodyweapon.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", + "RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:verbs\\pawnbodyweapon\\compproperties_pawnbodyweapon.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\\verbs\\cleave\\compcleave.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", + "RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:verbs\\cleave\\compcleave.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" + }, + { + "AbsoluteMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\pawn_comps\\ara_trainingwork\\jobclean\\thinknode_conditionalanimalshoulddocleaningwork.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", + "RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:pawn_comps\\ara_trainingwork\\jobclean\\thinknode_conditionalanimalshoulddocleaningwork.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" + }, + { + "AbsoluteMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\pawn_comps\\ara_trainingwork\\jobclean\\workgiver_arachnaeclean.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", + "RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:pawn_comps\\ara_trainingwork\\jobclean\\workgiver_arachnaeclean.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" + }, + { + "AbsoluteMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\pawn_comps\\ara_trainingwork\\jobplant\\jobgiver_grower.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", + "RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:pawn_comps\\ara_trainingwork\\jobplant\\jobgiver_grower.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" + }, + { + "AbsoluteMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\pawn_comps\\ara_compskillexperiencegiver\\compproperties_skillexperiencegiver.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", + "RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:pawn_comps\\ara_compskillexperiencegiver\\compproperties_skillexperiencegiver.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\\arachnaeswarmmod.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", + "RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:arachnaeswarmmod.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\\hediffs\\ara_configurablemutant\\hediff_configurablemutant.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", + "RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:hediffs\\ara_configurablemutant\\hediff_configurablemutant.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\\thing_comps\\compapparelinterceptor.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", + "RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:thing_comps\\compapparelinterceptor.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\\building_comps\\ara_buildingterrainspawn\\compdelayedterrainspawn.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", + "RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:building_comps\\ara_buildingterrainspawn\\compdelayedterrainspawn.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" + }, + { + "AbsoluteMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\needs\\need_honeyproduction.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", + "RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:needs\\need_honeyproduction.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" + }, + { + "AbsoluteMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\workgivers\\workgiver_refuel_nutrition.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", + "RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:workgivers\\workgiver_refuel_nutrition.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" + }, + { + "AbsoluteMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\jobs\\jobdriver_feedwithhoney\\jobdriver_feedwithhoney.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", + "RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:jobs\\jobdriver_feedwithhoney\\jobdriver_feedwithhoney.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" + }, + { + "AbsoluteMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\jobs\\jobdriver_feedwithhoney\\jobdriver_extracthoney.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", + "RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:jobs\\jobdriver_feedwithhoney\\jobdriver_extracthoney.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" + }, + { + "AbsoluteMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\jobs\\jobdriver_feedwithhoney\\thinknode_jobgiver_extracthoney.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", + "RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:jobs\\jobdriver_feedwithhoney\\thinknode_jobgiver_extracthoney.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" + }, + { + "AbsoluteMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\jobs\\jobdriver_swarmmaintain\\jobdriver_swarmmaintain.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", + "RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:jobs\\jobdriver_swarmmaintain\\jobdriver_swarmmaintain.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\\building_comps\\ara_swarmmaintenance\\comp_swarmmaintenance.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", + "RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:building_comps\\ara_swarmmaintenance\\comp_swarmmaintenance.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" + }, + { + "AbsoluteMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\needs\\need_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|E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\roomrole\\roomroleworker_incubator.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", "RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:roomrole\\roomroleworker_incubator.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_stripchitin\\jobdriver_stripchitin.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", + "AbsoluteMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\jobs\\jobdriver_stripchitin\\jobdriver_stripchitin.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", "RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:jobs\\jobdriver_stripchitin\\jobdriver_stripchitin.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_stripchitin\\compproperties_chitinstripping.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", + "AbsoluteMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\jobs\\jobdriver_stripchitin\\compproperties_chitinstripping.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", "RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:jobs\\jobdriver_stripchitin\\compproperties_chitinstripping.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_stripchitin\\comp_chitinstripping.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", + "AbsoluteMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\jobs\\jobdriver_stripchitin\\comp_chitinstripping.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", "RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:jobs\\jobdriver_stripchitin\\comp_chitinstripping.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\\verbs\\verb_shootselfunderfoot.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\\verbs\\verb_shootselfunderfoot.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", "RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:verbs\\verb_shootselfunderfoot.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_hediffcomp_topturret\\hediffcomp_topturret.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\\hediffs\\ara_hediffcomp_topturret\\hediffcomp_topturret.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", "RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:hediffs\\ara_hediffcomp_topturret\\hediffcomp_topturret.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\\building_comps\\ara_compinteractiveproducer\\compresearchproducer.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\\building_comps\\ara_compinteractiveproducer\\compresearchproducer.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", "RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:building_comps\\ara_compinteractiveproducer\\compresearchproducer.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\\building_comps\\ara_corpseconverter\\compcorpseconverter.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\\building_comps\\ara_corpseconverter\\compcorpseconverter.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", "RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:building_comps\\ara_corpseconverter\\compcorpseconverter.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\\building_comps\\ara_corpseconverter\\compproperties_corpseconverter.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\\building_comps\\ara_corpseconverter\\compproperties_corpseconverter.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", "RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:building_comps\\ara_corpseconverter\\compproperties_corpseconverter.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\\building_comps\\ara_terrainchanger\\compterrainchanger.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\\building_comps\\ara_terrainchanger\\compterrainchanger.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", "RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:building_comps\\ara_terrainchanger\\compterrainchanger.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\\building_comps\\ara_terrainchanger\\compproperties_terrainchanger.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\\building_comps\\ara_terrainchanger\\compproperties_terrainchanger.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", "RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:building_comps\\ara_terrainchanger\\compproperties_terrainchanger.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\\building_comps\\wula_mutifuelspawner\\comprefuelablenutrition_withkey.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\\building_comps\\wula_mutifuelspawner\\comprefuelablenutrition_withkey.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", "RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:building_comps\\wula_mutifuelspawner\\comprefuelablenutrition_withkey.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\\compproperties_incubatordata.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\\buildings\\building_ootheca\\oothecaincubatorextension.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\\oothecaincubatorextension.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", "RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:buildings\\building_ootheca\\oothecaincubatorextension.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}", + "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}", "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|D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\buildings\\building_equipmentootheca\\compproperties_equipmentincubatordata.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_equipmentootheca\\compproperties_equipmentincubatordata.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", "RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:buildings\\building_equipmentootheca\\compproperties_equipmentincubatordata.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" }, { - "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Building_Comps\\ARA_Building_RefuelingVat\\Building_RefuelingVat.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" + "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Building_Comps\\ARA_Building_RefuelingVat\\Building_RefuelingVat.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", + "RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:Building_Comps\\ARA_Building_RefuelingVat\\Building_RefuelingVat.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" }, { - "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Pawn_Comps\\ARA_DraftableAnimal\\JobGiver_DraftedAnimal.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" + "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Pawn_Comps\\ARA_DraftableAnimal\\JobGiver_DraftedAnimal.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", + "RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:Pawn_Comps\\ARA_DraftableAnimal\\JobGiver_DraftedAnimal.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" }, { - "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Pawn_Comps\\ARA_DraftableAnimal\\Patch_Pawn_GetGizmos.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" + "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Pawn_Comps\\ARA_DraftableAnimal\\Patch_Pawn_GetGizmos.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", + "RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:Pawn_Comps\\ARA_DraftableAnimal\\Patch_Pawn_GetGizmos.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" } ], "DocumentGroupContainers": [ @@ -213,43 +268,225 @@ "DockedWidth": 200, "SelectedChildIndex": 1, "Children": [ - { - "$type": "Document", - "DocumentIndex": 1, - "Title": "CompProperties_AreaDamage.cs", - "DocumentMoniker": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Thing_Comps\\ARA_AreaaDamage\\CompProperties_AreaDamage.cs", - "RelativeDocumentMoniker": "Thing_Comps\\ARA_AreaaDamage\\CompProperties_AreaDamage.cs", - "ToolTip": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Thing_Comps\\ARA_AreaaDamage\\CompProperties_AreaDamage.cs*", - "RelativeToolTip": "Thing_Comps\\ARA_AreaaDamage\\CompProperties_AreaDamage.cs*", - "ViewState": "AgIAAAAAAAAAAAAAAAAAAAQAAAAXAAAAAAAAAA==", - "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", - "WhenOpened": "2025-12-18T08:30:19.688Z", - "EditorCaption": "" - }, - { - "$type": "Document", - "DocumentIndex": 0, - "Title": "CompAreaDamage.cs", - "DocumentMoniker": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Thing_Comps\\ARA_AreaaDamage\\CompAreaDamage.cs", - "RelativeDocumentMoniker": "Thing_Comps\\ARA_AreaaDamage\\CompAreaDamage.cs", - "ToolTip": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Thing_Comps\\ARA_AreaaDamage\\CompAreaDamage.cs*", - "RelativeToolTip": "Thing_Comps\\ARA_AreaaDamage\\CompAreaDamage.cs*", - "ViewState": "AgIAAAAAAAAAAAAAAAAAAAUAAAASAAAAAAAAAA==", - "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", - "WhenOpened": "2025-12-18T08:30:03.538Z", - "EditorCaption": "" - }, { "$type": "Bookmark", "Name": "ST:0:0:{1c4feeaa-4718-4aa9-859d-94ce25d182ba}" }, + { + "$type": "Document", + "DocumentIndex": 0, + "Title": "PreventPartLossPatches.cs", + "DocumentMoniker": "E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Pawn_Comps\\ARA_PreventPartLoss\\PreventPartLossPatches.cs", + "RelativeDocumentMoniker": "Pawn_Comps\\ARA_PreventPartLoss\\PreventPartLossPatches.cs", + "ToolTip": "E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Pawn_Comps\\ARA_PreventPartLoss\\PreventPartLossPatches.cs*", + "RelativeToolTip": "Pawn_Comps\\ARA_PreventPartLoss\\PreventPartLossPatches.cs*", + "ViewState": "AgIAAAAAAAAAAAAAAAAAAAgAAAAXAAAAAAAAAA==", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", + "WhenOpened": "2025-12-18T18:48:31.584Z", + "EditorCaption": "" + }, + { + "$type": "Document", + "DocumentIndex": 2, + "Title": "Hediff_HiveMindMaster.cs", + "DocumentMoniker": "E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Hediffs\\ARA_HiveMind\\Hediff_HiveMindMaster.cs", + "RelativeDocumentMoniker": "Hediffs\\ARA_HiveMind\\Hediff_HiveMindMaster.cs", + "ToolTip": "E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Hediffs\\ARA_HiveMind\\Hediff_HiveMindMaster.cs", + "RelativeToolTip": "Hediffs\\ARA_HiveMind\\Hediff_HiveMindMaster.cs", + "ViewState": "AgIAAGIAAAAAAAAAAAAgwK0AAABfAAAAAAAAAA==", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", + "WhenOpened": "2025-12-18T17:37:07.383Z", + "EditorCaption": "" + }, + { + "$type": "Document", + "DocumentIndex": 10, + "Title": "Hediff_HiveMindDrone.cs", + "DocumentMoniker": "E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Hediffs\\ARA_HiveMind\\Hediff_HiveMindDrone.cs", + "RelativeDocumentMoniker": "Hediffs\\ARA_HiveMind\\Hediff_HiveMindDrone.cs", + "ToolTip": "E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Hediffs\\ARA_HiveMind\\Hediff_HiveMindDrone.cs", + "RelativeToolTip": "Hediffs\\ARA_HiveMind\\Hediff_HiveMindDrone.cs", + "ViewState": "AgIAABsAAAAAAAAAAAAcwDgAAAByAAAAAAAAAA==", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", + "WhenOpened": "2025-12-18T17:36:08.045Z", + "EditorCaption": "" + }, + { + "$type": "Document", + "DocumentIndex": 9, + "Title": "HediffComp_HiveMindDrone.cs", + "DocumentMoniker": "E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Hediffs\\ARA_HiveMind\\HediffComp_HiveMindDrone.cs", + "RelativeDocumentMoniker": "Hediffs\\ARA_HiveMind\\HediffComp_HiveMindDrone.cs", + "ToolTip": "E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Hediffs\\ARA_HiveMind\\HediffComp_HiveMindDrone.cs", + "RelativeToolTip": "Hediffs\\ARA_HiveMind\\HediffComp_HiveMindDrone.cs", + "ViewState": "AgIAAAYAAAAAAAAAAAAYwCIAAACfAAAAAAAAAA==", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", + "WhenOpened": "2025-12-18T17:35:50.972Z", + "EditorCaption": "" + }, + { + "$type": "Document", + "DocumentIndex": 8, + "Title": "CompAbilityEffect_BindDrone.cs", + "DocumentMoniker": "E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Hediffs\\ARA_HiveMind\\CompAbilityEffect_BindDrone.cs", + "RelativeDocumentMoniker": "Hediffs\\ARA_HiveMind\\CompAbilityEffect_BindDrone.cs", + "ToolTip": "E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Hediffs\\ARA_HiveMind\\CompAbilityEffect_BindDrone.cs", + "RelativeToolTip": "Hediffs\\ARA_HiveMind\\CompAbilityEffect_BindDrone.cs", + "ViewState": "AgIAAC0AAAAAAAAAAAAiwEwAAACEAAAAAAAAAA==", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", + "WhenOpened": "2025-12-18T17:35:39.32Z", + "EditorCaption": "" + }, + { + "$type": "Document", + "DocumentIndex": 11, + "Title": "BeastUnit.cs", + "DocumentMoniker": "E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Pawn_Comps\\ARA_DratfableAnimals\\BeastUnit.cs", + "RelativeDocumentMoniker": "Pawn_Comps\\ARA_DratfableAnimals\\BeastUnit.cs", + "ToolTip": "E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Pawn_Comps\\ARA_DratfableAnimals\\BeastUnit.cs", + "RelativeToolTip": "Pawn_Comps\\ARA_DratfableAnimals\\BeastUnit.cs", + "ViewState": "AgIAAAAAAAAAAAAAAAAAACwAAABvAAAAAAAAAA==", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", + "WhenOpened": "2025-12-18T16:28:07.2Z", + "EditorCaption": "" + }, + { + "$type": "Document", + "DocumentIndex": 7, + "Title": "WorkGiver_FeedWithHoney.cs", + "DocumentMoniker": "E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\WorkGivers\\WorkGiver_FeedWithHoney.cs", + "RelativeDocumentMoniker": "WorkGivers\\WorkGiver_FeedWithHoney.cs", + "ToolTip": "E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\WorkGivers\\WorkGiver_FeedWithHoney.cs", + "RelativeToolTip": "WorkGivers\\WorkGiver_FeedWithHoney.cs", + "ViewState": "AgIAAGkAAAAAAAAAAAAYwIoAAABVAAAAAAAAAA==", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", + "WhenOpened": "2025-12-17T13:59:28.915Z", + "EditorCaption": "" + }, + { + "$type": "Document", + "DocumentIndex": 1, + "Title": "Patch_DraftableAnimals.cs", + "DocumentMoniker": "E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\HarmonyPatches\\Patch_DraftableAnimals.cs", + "RelativeDocumentMoniker": "HarmonyPatches\\Patch_DraftableAnimals.cs", + "ToolTip": "E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\HarmonyPatches\\Patch_DraftableAnimals.cs", + "RelativeToolTip": "HarmonyPatches\\Patch_DraftableAnimals.cs", + "ViewState": "AgIAADQAAAAAAAAAAAAgwCIAAAAmAAAAAAAAAA==", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", + "WhenOpened": "2025-12-18T13:53:44.951Z", + "EditorCaption": "" + }, + { + "$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": "AgIAAAgAAAAAAAAAAAAAAAgAAAAyAAAAAAAAAA==", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", + "WhenOpened": "2025-12-15T17:32:18.493Z", + "EditorCaption": "" + }, + { + "$type": "Document", + "DocumentIndex": 5, + "Title": "WorkGiver_ExtractHoney.cs", + "DocumentMoniker": "E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\WorkGivers\\WorkGiver_ExtractHoney.cs", + "RelativeDocumentMoniker": "WorkGivers\\WorkGiver_ExtractHoney.cs", + "ToolTip": "E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\WorkGivers\\WorkGiver_ExtractHoney.cs", + "RelativeToolTip": "WorkGivers\\WorkGiver_ExtractHoney.cs", + "ViewState": "AgIAAFIAAAAAAAAAAAAqwG8AAABVAAAAAAAAAA==", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", + "WhenOpened": "2025-12-17T13:33:29.75Z", + "EditorCaption": "" + }, { "$type": "Document", "DocumentIndex": 4, + "Title": "WorkGiver_StripChitin.cs", + "DocumentMoniker": "E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\WorkGivers\\WorkGiver_StripChitin.cs", + "RelativeDocumentMoniker": "WorkGivers\\WorkGiver_StripChitin.cs", + "ToolTip": "E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\WorkGivers\\WorkGiver_StripChitin.cs", + "RelativeToolTip": "WorkGivers\\WorkGiver_StripChitin.cs", + "ViewState": "AgIAADsAAAAAAAAAAAAswFkAAABVAAAAAAAAAA==", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", + "WhenOpened": "2025-12-17T13:33:53.307Z", + "EditorCaption": "" + }, + { + "$type": "Document", + "DocumentIndex": 3, + "Title": "Building_DormancyVat.cs", + "DocumentMoniker": "E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Buildings\\Building_DormancyVat\\Building_DormancyVat.cs", + "RelativeDocumentMoniker": "Buildings\\Building_DormancyVat\\Building_DormancyVat.cs", + "ToolTip": "E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Buildings\\Building_DormancyVat\\Building_DormancyVat.cs", + "RelativeToolTip": "Buildings\\Building_DormancyVat\\Building_DormancyVat.cs", + "ViewState": "AgIAAP4AAAAAAAAAAAAAACMBAABSAAAAAAAAAA==", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", + "WhenOpened": "2025-12-17T11:50:41.189Z", + "EditorCaption": "" + }, + { + "$type": "Document", + "DocumentIndex": 12, + "Title": "CompDratfableAnimals.cs", + "DocumentMoniker": "E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Pawn_Comps\\ARA_DratfableAnimals\\CompDratfableAnimals.cs", + "RelativeDocumentMoniker": "Pawn_Comps\\ARA_DratfableAnimals\\CompDratfableAnimals.cs", + "ToolTip": "E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Pawn_Comps\\ARA_DratfableAnimals\\CompDratfableAnimals.cs", + "RelativeToolTip": "Pawn_Comps\\ARA_DratfableAnimals\\CompDratfableAnimals.cs", + "ViewState": "AgIAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAA==", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", + "WhenOpened": "2025-12-18T13:58:03.468Z", + "EditorCaption": "" + }, + { + "$type": "Document", + "DocumentIndex": 13, + "Title": "Patch_ForceTargetable.cs", + "DocumentMoniker": "E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\HarmonyPatches\\Patch_ForceTargetable.cs", + "RelativeDocumentMoniker": "HarmonyPatches\\Patch_ForceTargetable.cs", + "ToolTip": "E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\HarmonyPatches\\Patch_ForceTargetable.cs", + "RelativeToolTip": "HarmonyPatches\\Patch_ForceTargetable.cs", + "ViewState": "AgIAAAAAAAAAAAAAAADwvwAAAAAAAAAAAAAAAA==", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", + "WhenOpened": "2025-12-18T16:20:02.796Z", + "EditorCaption": "" + }, + { + "$type": "Document", + "DocumentIndex": 14, + "Title": "CompProperties_DratfableAnimals.cs", + "DocumentMoniker": "E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Pawn_Comps\\ARA_DratfableAnimals\\CompProperties_DratfableAnimals.cs", + "RelativeDocumentMoniker": "Pawn_Comps\\ARA_DratfableAnimals\\CompProperties_DratfableAnimals.cs", + "ToolTip": "E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Pawn_Comps\\ARA_DratfableAnimals\\CompProperties_DratfableAnimals.cs", + "RelativeToolTip": "Pawn_Comps\\ARA_DratfableAnimals\\CompProperties_DratfableAnimals.cs", + "ViewState": "AgIAAAAAAAAAAAAAAADwvxAAAAABAAAAAAAAAA==", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", + "WhenOpened": "2025-12-18T13:58:14.482Z", + "EditorCaption": "" + }, + { + "$type": "Document", + "DocumentIndex": 15, + "Title": "CompProperties_ExtraIncubationInfo.cs", + "DocumentMoniker": "E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Thing_Comps\\ARA_CompExtraIncubationInfo\\CompProperties_ExtraIncubationInfo.cs", + "RelativeDocumentMoniker": "Thing_Comps\\ARA_CompExtraIncubationInfo\\CompProperties_ExtraIncubationInfo.cs", + "ToolTip": "E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Thing_Comps\\ARA_CompExtraIncubationInfo\\CompProperties_ExtraIncubationInfo.cs", + "RelativeToolTip": "Thing_Comps\\ARA_CompExtraIncubationInfo\\CompProperties_ExtraIncubationInfo.cs", + "ViewState": "AgIAAAAAAAAAAAAAAADwvwAAAAAAAAAAAAAAAA==", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", + "WhenOpened": "2025-12-18T15:25:15.273Z", + "EditorCaption": "" + }, + { + "$type": "Document", + "DocumentIndex": 16, "Title": "CompExtraIncubationInfo.cs", - "DocumentMoniker": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Thing_Comps\\ARA_CompExtraIncubationInfo\\CompExtraIncubationInfo.cs", + "DocumentMoniker": "E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Thing_Comps\\ARA_CompExtraIncubationInfo\\CompExtraIncubationInfo.cs", "RelativeDocumentMoniker": "Thing_Comps\\ARA_CompExtraIncubationInfo\\CompExtraIncubationInfo.cs", - "ToolTip": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Thing_Comps\\ARA_CompExtraIncubationInfo\\CompExtraIncubationInfo.cs", + "ToolTip": "E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Thing_Comps\\ARA_CompExtraIncubationInfo\\CompExtraIncubationInfo.cs", "RelativeToolTip": "Thing_Comps\\ARA_CompExtraIncubationInfo\\CompExtraIncubationInfo.cs", "ViewState": "AgIAAAAAAAAAAAAAAAAAAAQAAAAXAAAAAAAAAA==", "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", @@ -258,50 +495,152 @@ }, { "$type": "Document", - "DocumentIndex": 2, - "Title": "CompProperties_SwarmMaintainer.cs", - "DocumentMoniker": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Pawn_Comps\\ARA_SwarmMaintainer\\CompProperties_SwarmMaintainer.cs", - "RelativeDocumentMoniker": "Pawn_Comps\\ARA_SwarmMaintainer\\CompProperties_SwarmMaintainer.cs", - "ToolTip": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Pawn_Comps\\ARA_SwarmMaintainer\\CompProperties_SwarmMaintainer.cs", - "RelativeToolTip": "Pawn_Comps\\ARA_SwarmMaintainer\\CompProperties_SwarmMaintainer.cs", - "ViewState": "AgIAAAAAAAAAAAAAAAAAAAsAAAAlAAAAAAAAAA==", + "DocumentIndex": 17, + "Title": "Building_ResearchBlueprintReader.cs", + "DocumentMoniker": "E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Buildings\\Building_ResearchBlueprintReader\\Building_ResearchBlueprintReader.cs", + "RelativeDocumentMoniker": "Buildings\\Building_ResearchBlueprintReader\\Building_ResearchBlueprintReader.cs", + "ToolTip": "E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Buildings\\Building_ResearchBlueprintReader\\Building_ResearchBlueprintReader.cs", + "RelativeToolTip": "Buildings\\Building_ResearchBlueprintReader\\Building_ResearchBlueprintReader.cs", + "ViewState": "AgIAAD8AAAAAAAAAAAAmwFcAAAARAAAAAAAAAA==", "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", - "WhenOpened": "2025-12-18T08:19:21.682Z", + "WhenOpened": "2025-12-17T10:38:40.669Z", "EditorCaption": "" }, { "$type": "Document", - "DocumentIndex": 3, - "Title": "CompProperties_PawnBodyWeapon.cs", - "DocumentMoniker": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Verbs\\PawnBodyWeapon\\CompProperties_PawnBodyWeapon.cs", - "RelativeDocumentMoniker": "Verbs\\PawnBodyWeapon\\CompProperties_PawnBodyWeapon.cs", - "ToolTip": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Verbs\\PawnBodyWeapon\\CompProperties_PawnBodyWeapon.cs", - "RelativeToolTip": "Verbs\\PawnBodyWeapon\\CompProperties_PawnBodyWeapon.cs", - "ViewState": "AgIAAAAAAAAAAAAAAAAAAAQAAAAXAAAAAAAAAA==", - "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", - "WhenOpened": "2025-12-18T08:17:52.012Z", - "EditorCaption": "" - }, - { - "$type": "Document", - "DocumentIndex": 5, + "DocumentIndex": 18, "Title": "Verb_MeleeAttack_BodyWeapon.cs", - "DocumentMoniker": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Verbs\\PawnBodyWeapon\\Verb_MeleeAttack_BodyWeapon.cs", + "DocumentMoniker": "E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Verbs\\PawnBodyWeapon\\Verb_MeleeAttack_BodyWeapon.cs", "RelativeDocumentMoniker": "Verbs\\PawnBodyWeapon\\Verb_MeleeAttack_BodyWeapon.cs", - "ToolTip": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Verbs\\PawnBodyWeapon\\Verb_MeleeAttack_BodyWeapon.cs", + "ToolTip": "E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Verbs\\PawnBodyWeapon\\Verb_MeleeAttack_BodyWeapon.cs", "RelativeToolTip": "Verbs\\PawnBodyWeapon\\Verb_MeleeAttack_BodyWeapon.cs", - "ViewState": "AgIAAAAAAAAAAAAAAAAAAAkAAAAsAAAAAAAAAA==", + "ViewState": "AgIAADQAAAAAAAAAAAAuwFMAAAAQAAAAAAAAAA==", "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", "WhenOpened": "2025-12-18T08:17:18.317Z", "EditorCaption": "" }, { "$type": "Document", - "DocumentIndex": 10, + "DocumentIndex": 19, + "Title": "ITab_EquipmentOotheca_Incubation.cs", + "DocumentMoniker": "E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Buildings\\Building_EquipmentOotheca\\ITab_EquipmentOotheca_Incubation.cs", + "RelativeDocumentMoniker": "Buildings\\Building_EquipmentOotheca\\ITab_EquipmentOotheca_Incubation.cs", + "ToolTip": "E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Buildings\\Building_EquipmentOotheca\\ITab_EquipmentOotheca_Incubation.cs", + "RelativeToolTip": "Buildings\\Building_EquipmentOotheca\\ITab_EquipmentOotheca_Incubation.cs", + "ViewState": "AgIAAI0AAAAAAAAAAAAQwKgAAAANAAAAAAAAAA==", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", + "WhenOpened": "2025-12-18T14:16:51.322Z", + "EditorCaption": "" + }, + { + "$type": "Document", + "DocumentIndex": 20, + "Title": "CompAreaDamage.cs", + "DocumentMoniker": "E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Thing_Comps\\ARA_AreaaDamage\\CompAreaDamage.cs", + "RelativeDocumentMoniker": "Thing_Comps\\ARA_AreaaDamage\\CompAreaDamage.cs", + "ToolTip": "E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Thing_Comps\\ARA_AreaaDamage\\CompAreaDamage.cs", + "RelativeToolTip": "Thing_Comps\\ARA_AreaaDamage\\CompAreaDamage.cs", + "ViewState": "AgIAAEEAAAAAAAAAAADwv1UAAAAfAAAAAAAAAA==", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", + "WhenOpened": "2025-12-18T08:30:03.538Z", + "EditorCaption": "" + }, + { + "$type": "Document", + "DocumentIndex": 21, + "Title": "Verb_MeleeAttack_Cleave.cs", + "DocumentMoniker": "E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Verbs\\Cleave\\Verb_MeleeAttack_Cleave.cs", + "RelativeDocumentMoniker": "Verbs\\Cleave\\Verb_MeleeAttack_Cleave.cs", + "ToolTip": "E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Verbs\\Cleave\\Verb_MeleeAttack_Cleave.cs", + "RelativeToolTip": "Verbs\\Cleave\\Verb_MeleeAttack_Cleave.cs", + "ViewState": "AgIAAJEAAAAAAAAAAAAIwKcAAAAjAAAAAAAAAA==", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", + "WhenOpened": "2025-12-18T03:30:20.061Z", + "EditorCaption": "" + }, + { + "$type": "Document", + "DocumentIndex": 22, + "Title": "Building_EquipmentOotheca.cs", + "DocumentMoniker": "E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Buildings\\Building_EquipmentOotheca\\Building_EquipmentOotheca.cs", + "RelativeDocumentMoniker": "Buildings\\Building_EquipmentOotheca\\Building_EquipmentOotheca.cs", + "ToolTip": "E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Buildings\\Building_EquipmentOotheca\\Building_EquipmentOotheca.cs", + "RelativeToolTip": "Buildings\\Building_EquipmentOotheca\\Building_EquipmentOotheca.cs", + "ViewState": "AgIAAFIDAAAAAAAAAAAIwGgDAAAiAAAAAAAAAA==", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", + "WhenOpened": "2025-12-15T18:22:14.171Z", + "EditorCaption": "" + }, + { + "$type": "Document", + "DocumentIndex": 23, + "Title": "ResearchBlueprintReaderManager.cs", + "DocumentMoniker": "E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Buildings\\Building_ResearchBlueprintReader\\ResearchBlueprintReaderManager.cs", + "RelativeDocumentMoniker": "Buildings\\Building_ResearchBlueprintReader\\ResearchBlueprintReaderManager.cs", + "ToolTip": "E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Buildings\\Building_ResearchBlueprintReader\\ResearchBlueprintReaderManager.cs", + "RelativeToolTip": "Buildings\\Building_ResearchBlueprintReader\\ResearchBlueprintReaderManager.cs", + "ViewState": "AgIAAAAAAAAAAAAAAADwvwAAAAAAAAAAAAAAAA==", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", + "WhenOpened": "2025-12-18T14:19:42.259Z", + "EditorCaption": "" + }, + { + "$type": "Document", + "DocumentIndex": 24, + "Title": "JobDriver_OperateEquipmentIncubator.cs", + "DocumentMoniker": "E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Buildings\\Building_EquipmentOotheca\\JobDriver_OperateEquipmentIncubator.cs", + "RelativeDocumentMoniker": "Buildings\\Building_EquipmentOotheca\\JobDriver_OperateEquipmentIncubator.cs", + "ToolTip": "E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Buildings\\Building_EquipmentOotheca\\JobDriver_OperateEquipmentIncubator.cs", + "RelativeToolTip": "Buildings\\Building_EquipmentOotheca\\JobDriver_OperateEquipmentIncubator.cs", + "ViewState": "AgIAAAgAAAAAAAAAAAA7wBkAAABDAAAAAAAAAA==", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", + "WhenOpened": "2025-12-18T14:19:19.134Z", + "EditorCaption": "" + }, + { + "$type": "Document", + "DocumentIndex": 25, + "Title": "CompProperties_AreaDamage.cs", + "DocumentMoniker": "E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Thing_Comps\\ARA_AreaaDamage\\CompProperties_AreaDamage.cs", + "RelativeDocumentMoniker": "Thing_Comps\\ARA_AreaaDamage\\CompProperties_AreaDamage.cs", + "ToolTip": "E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Thing_Comps\\ARA_AreaaDamage\\CompProperties_AreaDamage.cs", + "RelativeToolTip": "Thing_Comps\\ARA_AreaaDamage\\CompProperties_AreaDamage.cs", + "ViewState": "AgIAAAAAAAAAAAAAAAAAAB8AAAAIAAAAAAAAAA==", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", + "WhenOpened": "2025-12-18T08:30:19.688Z", + "EditorCaption": "" + }, + { + "$type": "Document", + "DocumentIndex": 26, + "Title": "CompProperties_SwarmMaintainer.cs", + "DocumentMoniker": "E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Pawn_Comps\\ARA_SwarmMaintainer\\CompProperties_SwarmMaintainer.cs", + "RelativeDocumentMoniker": "Pawn_Comps\\ARA_SwarmMaintainer\\CompProperties_SwarmMaintainer.cs", + "ToolTip": "E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Pawn_Comps\\ARA_SwarmMaintainer\\CompProperties_SwarmMaintainer.cs", + "RelativeToolTip": "Pawn_Comps\\ARA_SwarmMaintainer\\CompProperties_SwarmMaintainer.cs", + "ViewState": "AgIAAAAAAAAAAAAAAAAAAAsAAAAlAAAAAAAAAA==", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", + "WhenOpened": "2025-12-18T08:19:21.682Z" + }, + { + "$type": "Document", + "DocumentIndex": 27, + "Title": "CompProperties_PawnBodyWeapon.cs", + "DocumentMoniker": "E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Verbs\\PawnBodyWeapon\\CompProperties_PawnBodyWeapon.cs", + "RelativeDocumentMoniker": "Verbs\\PawnBodyWeapon\\CompProperties_PawnBodyWeapon.cs", + "ToolTip": "E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Verbs\\PawnBodyWeapon\\CompProperties_PawnBodyWeapon.cs", + "RelativeToolTip": "Verbs\\PawnBodyWeapon\\CompProperties_PawnBodyWeapon.cs", + "ViewState": "AgIAAAAAAAAAAAAAAAAAAAQAAAAXAAAAAAAAAA==", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", + "WhenOpened": "2025-12-18T08:17:52.012Z" + }, + { + "$type": "Document", + "DocumentIndex": 29, "Title": "ThinkNode_ConditionalAnimalShouldDoCleaningWork.cs", - "DocumentMoniker": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Pawn_Comps\\ARA_TrainingWork\\JobClean\\ThinkNode_ConditionalAnimalShouldDoCleaningWork.cs", + "DocumentMoniker": "E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Pawn_Comps\\ARA_TrainingWork\\JobClean\\ThinkNode_ConditionalAnimalShouldDoCleaningWork.cs", "RelativeDocumentMoniker": "Pawn_Comps\\ARA_TrainingWork\\JobClean\\ThinkNode_ConditionalAnimalShouldDoCleaningWork.cs", - "ToolTip": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Pawn_Comps\\ARA_TrainingWork\\JobClean\\ThinkNode_ConditionalAnimalShouldDoCleaningWork.cs", + "ToolTip": "E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Pawn_Comps\\ARA_TrainingWork\\JobClean\\ThinkNode_ConditionalAnimalShouldDoCleaningWork.cs", "RelativeToolTip": "Pawn_Comps\\ARA_TrainingWork\\JobClean\\ThinkNode_ConditionalAnimalShouldDoCleaningWork.cs", "ViewState": "AgIAAAAAAAAAAAAAAAAAAAcAAAAFAAAAAAAAAA==", "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", @@ -309,24 +648,11 @@ }, { "$type": "Document", - "DocumentIndex": 6, - "Title": "WorkGiver_SwarmMaintain.cs", - "DocumentMoniker": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\WorkGivers\\WorkGiver_SwarmMaintain.cs", - "RelativeDocumentMoniker": "WorkGivers\\WorkGiver_SwarmMaintain.cs", - "ToolTip": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\WorkGivers\\WorkGiver_SwarmMaintain.cs", - "RelativeToolTip": "WorkGivers\\WorkGiver_SwarmMaintain.cs", - "ViewState": "AgIAACQAAAAAAAAAAAAowDcAAAAgAAAAAAAAAA==", - "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", - "WhenOpened": "2025-12-17T13:13:35.358Z", - "EditorCaption": "" - }, - { - "$type": "Document", - "DocumentIndex": 11, + "DocumentIndex": 30, "Title": "WorkGiver_ArachnaeClean.cs", - "DocumentMoniker": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Pawn_Comps\\ARA_TrainingWork\\JobClean\\WorkGiver_ArachnaeClean.cs", + "DocumentMoniker": "E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Pawn_Comps\\ARA_TrainingWork\\JobClean\\WorkGiver_ArachnaeClean.cs", "RelativeDocumentMoniker": "Pawn_Comps\\ARA_TrainingWork\\JobClean\\WorkGiver_ArachnaeClean.cs", - "ToolTip": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Pawn_Comps\\ARA_TrainingWork\\JobClean\\WorkGiver_ArachnaeClean.cs", + "ToolTip": "E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Pawn_Comps\\ARA_TrainingWork\\JobClean\\WorkGiver_ArachnaeClean.cs", "RelativeToolTip": "Pawn_Comps\\ARA_TrainingWork\\JobClean\\WorkGiver_ArachnaeClean.cs", "ViewState": "AgIAAFQAAAAAAAAAAAAYwAAAAAAAAAAAAAAAAA==", "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", @@ -334,36 +660,11 @@ }, { "$type": "Document", - "DocumentIndex": 9, - "Title": "Verb_MeleeAttack_Cleave.cs", - "DocumentMoniker": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Verbs\\Cleave\\Verb_MeleeAttack_Cleave.cs", - "RelativeDocumentMoniker": "Verbs\\Cleave\\Verb_MeleeAttack_Cleave.cs", - "ToolTip": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Verbs\\Cleave\\Verb_MeleeAttack_Cleave.cs", - "RelativeToolTip": "Verbs\\Cleave\\Verb_MeleeAttack_Cleave.cs", - "ViewState": "AgIAABIAAAAAAAAAAAAywGsAAAAWAAAAAAAAAA==", - "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", - "WhenOpened": "2025-12-18T03:30:20.061Z" - }, - { - "$type": "Document", - "DocumentIndex": 7, - "Title": "Building_EquipmentOotheca.cs", - "DocumentMoniker": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Buildings\\Building_EquipmentOotheca\\Building_EquipmentOotheca.cs", - "RelativeDocumentMoniker": "Buildings\\Building_EquipmentOotheca\\Building_EquipmentOotheca.cs", - "ToolTip": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Buildings\\Building_EquipmentOotheca\\Building_EquipmentOotheca.cs", - "RelativeToolTip": "Buildings\\Building_EquipmentOotheca\\Building_EquipmentOotheca.cs", - "ViewState": "AgIAAF0AAAAAAAAAAAAAwJAAAAAMAAAAAAAAAA==", - "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", - "WhenOpened": "2025-12-15T18:22:14.171Z", - "EditorCaption": "" - }, - { - "$type": "Document", - "DocumentIndex": 8, + "DocumentIndex": 28, "Title": "CompCleave.cs", - "DocumentMoniker": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Verbs\\Cleave\\CompCleave.cs", + "DocumentMoniker": "E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Verbs\\Cleave\\CompCleave.cs", "RelativeDocumentMoniker": "Verbs\\Cleave\\CompCleave.cs", - "ToolTip": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Verbs\\Cleave\\CompCleave.cs", + "ToolTip": "E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Verbs\\Cleave\\CompCleave.cs", "RelativeToolTip": "Verbs\\Cleave\\CompCleave.cs", "ViewState": "AgIAAAAAAAAAAAAAAAAAAAgAAAAvAAAAAAAAAA==", "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", @@ -371,11 +672,11 @@ }, { "$type": "Document", - "DocumentIndex": 12, + "DocumentIndex": 31, "Title": "JobGiver_Grower.cs", - "DocumentMoniker": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Pawn_Comps\\ARA_TrainingWork\\JobPlant\\JobGiver_Grower.cs", + "DocumentMoniker": "E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Pawn_Comps\\ARA_TrainingWork\\JobPlant\\JobGiver_Grower.cs", "RelativeDocumentMoniker": "Pawn_Comps\\ARA_TrainingWork\\JobPlant\\JobGiver_Grower.cs", - "ToolTip": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Pawn_Comps\\ARA_TrainingWork\\JobPlant\\JobGiver_Grower.cs", + "ToolTip": "E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Pawn_Comps\\ARA_TrainingWork\\JobPlant\\JobGiver_Grower.cs", "RelativeToolTip": "Pawn_Comps\\ARA_TrainingWork\\JobPlant\\JobGiver_Grower.cs", "ViewState": "AgIAAAAAAAAAAAAAAAAAAAkAAAA6AAAAAAAAAA==", "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", @@ -383,11 +684,11 @@ }, { "$type": "Document", - "DocumentIndex": 13, + "DocumentIndex": 32, "Title": "CompProperties_SkillExperienceGiver.cs", - "DocumentMoniker": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Pawn_Comps\\ARA_CompSkillExperienceGiver\\CompProperties_SkillExperienceGiver.cs", + "DocumentMoniker": "E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Pawn_Comps\\ARA_CompSkillExperienceGiver\\CompProperties_SkillExperienceGiver.cs", "RelativeDocumentMoniker": "Pawn_Comps\\ARA_CompSkillExperienceGiver\\CompProperties_SkillExperienceGiver.cs", - "ToolTip": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Pawn_Comps\\ARA_CompSkillExperienceGiver\\CompProperties_SkillExperienceGiver.cs", + "ToolTip": "E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Pawn_Comps\\ARA_CompSkillExperienceGiver\\CompProperties_SkillExperienceGiver.cs", "RelativeToolTip": "Pawn_Comps\\ARA_CompSkillExperienceGiver\\CompProperties_SkillExperienceGiver.cs", "ViewState": "AgIAAAAAAAAAAAAAAAAAABEAAAAAAAAAAAAAAA==", "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", @@ -395,11 +696,11 @@ }, { "$type": "Document", - "DocumentIndex": 14, + "DocumentIndex": 33, "Title": "ArachnaeSwarmMod.cs", - "DocumentMoniker": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\ArachnaeSwarmMod.cs", + "DocumentMoniker": "E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\ArachnaeSwarmMod.cs", "RelativeDocumentMoniker": "ArachnaeSwarmMod.cs", - "ToolTip": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\ArachnaeSwarmMod.cs", + "ToolTip": "E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\ArachnaeSwarmMod.cs", "RelativeToolTip": "ArachnaeSwarmMod.cs", "ViewState": "AgIAAAAAAAAAAAAAAAAAACgAAAAAAAAAAAAAAA==", "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", @@ -407,31 +708,35 @@ }, { "$type": "Document", - "DocumentIndex": 49, + "DocumentIndex": 62, "Title": "JobGiver_DraftedAnimal.cs", "DocumentMoniker": "E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Pawn_Comps\\ARA_DraftableAnimal\\JobGiver_DraftedAnimal.cs", + "RelativeDocumentMoniker": "Pawn_Comps\\ARA_DraftableAnimal\\JobGiver_DraftedAnimal.cs", "ToolTip": "E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Pawn_Comps\\ARA_DraftableAnimal\\JobGiver_DraftedAnimal.cs", + "RelativeToolTip": "Pawn_Comps\\ARA_DraftableAnimal\\JobGiver_DraftedAnimal.cs", "ViewState": "AgIAAAYAAAAAAAAAAADwvxkAAAARAAAAAAAAAA==", "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", "WhenOpened": "2025-12-17T18:21:29.425Z" }, { "$type": "Document", - "DocumentIndex": 50, + "DocumentIndex": 63, "Title": "Patch_Pawn_GetGizmos.cs", "DocumentMoniker": "E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Pawn_Comps\\ARA_DraftableAnimal\\Patch_Pawn_GetGizmos.cs", + "RelativeDocumentMoniker": "Pawn_Comps\\ARA_DraftableAnimal\\Patch_Pawn_GetGizmos.cs", "ToolTip": "E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Pawn_Comps\\ARA_DraftableAnimal\\Patch_Pawn_GetGizmos.cs", + "RelativeToolTip": "Pawn_Comps\\ARA_DraftableAnimal\\Patch_Pawn_GetGizmos.cs", "ViewState": "AgIAAFMAAAAAAAAAAAAmwGEAAAATAAAAAAAAAA==", "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", "WhenOpened": "2025-12-17T18:17:02.281Z" }, { "$type": "Document", - "DocumentIndex": 16, + "DocumentIndex": 35, "Title": "CompApparelInterceptor.cs", - "DocumentMoniker": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Thing_Comps\\CompApparelInterceptor.cs", + "DocumentMoniker": "E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Thing_Comps\\CompApparelInterceptor.cs", "RelativeDocumentMoniker": "Thing_Comps\\CompApparelInterceptor.cs", - "ToolTip": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Thing_Comps\\CompApparelInterceptor.cs", + "ToolTip": "E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Thing_Comps\\CompApparelInterceptor.cs", "RelativeToolTip": "Thing_Comps\\CompApparelInterceptor.cs", "ViewState": "AgIAAFgAAAAAAAAAAAAuwHEAAAAzAAAAAAAAAA==", "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", @@ -439,11 +744,11 @@ }, { "$type": "Document", - "DocumentIndex": 15, + "DocumentIndex": 34, "Title": "Hediff_ConfigurableMutant.cs", - "DocumentMoniker": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Hediffs\\ARA_ConfigurableMutant\\Hediff_ConfigurableMutant.cs", + "DocumentMoniker": "E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Hediffs\\ARA_ConfigurableMutant\\Hediff_ConfigurableMutant.cs", "RelativeDocumentMoniker": "Hediffs\\ARA_ConfigurableMutant\\Hediff_ConfigurableMutant.cs", - "ToolTip": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Hediffs\\ARA_ConfigurableMutant\\Hediff_ConfigurableMutant.cs", + "ToolTip": "E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Hediffs\\ARA_ConfigurableMutant\\Hediff_ConfigurableMutant.cs", "RelativeToolTip": "Hediffs\\ARA_ConfigurableMutant\\Hediff_ConfigurableMutant.cs", "ViewState": "AgIAAIIAAAAAAAAAAAAQwJkAAAAzAAAAAAAAAA==", "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", @@ -451,11 +756,11 @@ }, { "$type": "Document", - "DocumentIndex": 17, + "DocumentIndex": 36, "Title": "CompDelayedTerrainSpawn.cs", - "DocumentMoniker": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Building_Comps\\ARA_BuildingTerrainSpawn\\CompDelayedTerrainSpawn.cs", + "DocumentMoniker": "E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Building_Comps\\ARA_BuildingTerrainSpawn\\CompDelayedTerrainSpawn.cs", "RelativeDocumentMoniker": "Building_Comps\\ARA_BuildingTerrainSpawn\\CompDelayedTerrainSpawn.cs", - "ToolTip": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Building_Comps\\ARA_BuildingTerrainSpawn\\CompDelayedTerrainSpawn.cs", + "ToolTip": "E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Building_Comps\\ARA_BuildingTerrainSpawn\\CompDelayedTerrainSpawn.cs", "RelativeToolTip": "Building_Comps\\ARA_BuildingTerrainSpawn\\CompDelayedTerrainSpawn.cs", "ViewState": "AgIAACMAAAAAAAAAAAAQwCgAAABDAAAAAAAAAA==", "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", @@ -463,11 +768,11 @@ }, { "$type": "Document", - "DocumentIndex": 21, + "DocumentIndex": 38, "Title": "WorkGiver_Refuel_Nutrition.cs", - "DocumentMoniker": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\WorkGivers\\WorkGiver_Refuel_Nutrition.cs", + "DocumentMoniker": "E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\WorkGivers\\WorkGiver_Refuel_Nutrition.cs", "RelativeDocumentMoniker": "WorkGivers\\WorkGiver_Refuel_Nutrition.cs", - "ToolTip": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\WorkGivers\\WorkGiver_Refuel_Nutrition.cs", + "ToolTip": "E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\WorkGivers\\WorkGiver_Refuel_Nutrition.cs", "RelativeToolTip": "WorkGivers\\WorkGiver_Refuel_Nutrition.cs", "ViewState": "AgIAAAAAAAAAAAAAAADwvwAAAAAAAAAAAAAAAA==", "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", @@ -475,59 +780,11 @@ }, { "$type": "Document", - "DocumentIndex": 19, - "Title": "WorkGiver_FeedWithHoney.cs", - "DocumentMoniker": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\WorkGivers\\WorkGiver_FeedWithHoney.cs", - "RelativeDocumentMoniker": "WorkGivers\\WorkGiver_FeedWithHoney.cs", - "ToolTip": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\WorkGivers\\WorkGiver_FeedWithHoney.cs", - "RelativeToolTip": "WorkGivers\\WorkGiver_FeedWithHoney.cs", - "ViewState": "AgIAAB0AAAAAAAAAAAAQwD0AAAAQAAAAAAAAAA==", - "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", - "WhenOpened": "2025-12-17T13:59:28.915Z" - }, - { - "$type": "Document", - "DocumentIndex": 24, - "Title": "WorkGiver_StripChitin.cs", - "DocumentMoniker": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\WorkGivers\\WorkGiver_StripChitin.cs", - "RelativeDocumentMoniker": "WorkGivers\\WorkGiver_StripChitin.cs", - "ToolTip": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\WorkGivers\\WorkGiver_StripChitin.cs", - "RelativeToolTip": "WorkGivers\\WorkGiver_StripChitin.cs", - "ViewState": "AgIAAAAAAAAAAAAAAAAAABMAAAAZAAAAAAAAAA==", - "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", - "WhenOpened": "2025-12-17T13:33:53.307Z" - }, - { - "$type": "Document", - "DocumentIndex": 23, - "Title": "WorkGiver_ExtractHoney.cs", - "DocumentMoniker": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\WorkGivers\\WorkGiver_ExtractHoney.cs", - "RelativeDocumentMoniker": "WorkGivers\\WorkGiver_ExtractHoney.cs", - "ToolTip": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\WorkGivers\\WorkGiver_ExtractHoney.cs", - "RelativeToolTip": "WorkGivers\\WorkGiver_ExtractHoney.cs", - "ViewState": "AgIAAAAAAAAAAAAAAAAgwB0AAAAyAAAAAAAAAA==", - "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", - "WhenOpened": "2025-12-17T13:33:29.75Z" - }, - { - "$type": "Document", - "DocumentIndex": 20, - "Title": "ARA_HediffDefOf.cs", - "DocumentMoniker": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\ARA_HediffDefOf.cs", - "RelativeDocumentMoniker": "ARA_HediffDefOf.cs", - "ToolTip": "D:\\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-15T17:32:18.493Z" - }, - { - "$type": "Document", - "DocumentIndex": 18, + "DocumentIndex": 37, "Title": "Need_HoneyProduction.cs", - "DocumentMoniker": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Needs\\Need_HoneyProduction.cs", + "DocumentMoniker": "E:\\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", + "ToolTip": "E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Needs\\Need_HoneyProduction.cs", "RelativeToolTip": "Needs\\Need_HoneyProduction.cs", "ViewState": "AgIAAGIAAAAAAAAAAAAkwG4AAAAJAAAAAAAAAA==", "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", @@ -535,11 +792,11 @@ }, { "$type": "Document", - "DocumentIndex": 25, + "DocumentIndex": 40, "Title": "JobDriver_ExtractHoney.cs", - "DocumentMoniker": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Jobs\\JobDriver_FeedWithHoney\\JobDriver_ExtractHoney.cs", + "DocumentMoniker": "E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Jobs\\JobDriver_FeedWithHoney\\JobDriver_ExtractHoney.cs", "RelativeDocumentMoniker": "Jobs\\JobDriver_FeedWithHoney\\JobDriver_ExtractHoney.cs", - "ToolTip": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Jobs\\JobDriver_FeedWithHoney\\JobDriver_ExtractHoney.cs", + "ToolTip": "E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Jobs\\JobDriver_FeedWithHoney\\JobDriver_ExtractHoney.cs", "RelativeToolTip": "Jobs\\JobDriver_FeedWithHoney\\JobDriver_ExtractHoney.cs", "ViewState": "AgIAAA8AAAAAAAAAAAAAwCYAAAAlAAAAAAAAAA==", "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", @@ -547,11 +804,11 @@ }, { "$type": "Document", - "DocumentIndex": 26, + "DocumentIndex": 41, "Title": "ThinkNode_JobGiver_ExtractHoney.cs", - "DocumentMoniker": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Jobs\\JobDriver_FeedWithHoney\\ThinkNode_JobGiver_ExtractHoney.cs", + "DocumentMoniker": "E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Jobs\\JobDriver_FeedWithHoney\\ThinkNode_JobGiver_ExtractHoney.cs", "RelativeDocumentMoniker": "Jobs\\JobDriver_FeedWithHoney\\ThinkNode_JobGiver_ExtractHoney.cs", - "ToolTip": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Jobs\\JobDriver_FeedWithHoney\\ThinkNode_JobGiver_ExtractHoney.cs", + "ToolTip": "E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Jobs\\JobDriver_FeedWithHoney\\ThinkNode_JobGiver_ExtractHoney.cs", "RelativeToolTip": "Jobs\\JobDriver_FeedWithHoney\\ThinkNode_JobGiver_ExtractHoney.cs", "ViewState": "AgIAAAAAAAAAAAAAAAAAABQAAAAcAAAAAAAAAA==", "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", @@ -559,11 +816,11 @@ }, { "$type": "Document", - "DocumentIndex": 27, + "DocumentIndex": 42, "Title": "JobDriver_SwarmMaintain.cs", - "DocumentMoniker": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Jobs\\JobDriver_SwarmMaintain\\JobDriver_SwarmMaintain.cs", + "DocumentMoniker": "E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Jobs\\JobDriver_SwarmMaintain\\JobDriver_SwarmMaintain.cs", "RelativeDocumentMoniker": "Jobs\\JobDriver_SwarmMaintain\\JobDriver_SwarmMaintain.cs", - "ToolTip": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Jobs\\JobDriver_SwarmMaintain\\JobDriver_SwarmMaintain.cs", + "ToolTip": "E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Jobs\\JobDriver_SwarmMaintain\\JobDriver_SwarmMaintain.cs", "RelativeToolTip": "Jobs\\JobDriver_SwarmMaintain\\JobDriver_SwarmMaintain.cs", "ViewState": "AgIAAAAAAAAAAAAAAADwvxcAAAAJAAAAAAAAAA==", "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", @@ -571,11 +828,11 @@ }, { "$type": "Document", - "DocumentIndex": 22, + "DocumentIndex": 39, "Title": "JobDriver_FeedWithHoney.cs", - "DocumentMoniker": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Jobs\\JobDriver_FeedWithHoney\\JobDriver_FeedWithHoney.cs", + "DocumentMoniker": "E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Jobs\\JobDriver_FeedWithHoney\\JobDriver_FeedWithHoney.cs", "RelativeDocumentMoniker": "Jobs\\JobDriver_FeedWithHoney\\JobDriver_FeedWithHoney.cs", - "ToolTip": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Jobs\\JobDriver_FeedWithHoney\\JobDriver_FeedWithHoney.cs", + "ToolTip": "E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Jobs\\JobDriver_FeedWithHoney\\JobDriver_FeedWithHoney.cs", "RelativeToolTip": "Jobs\\JobDriver_FeedWithHoney\\JobDriver_FeedWithHoney.cs", "ViewState": "AgIAAAAAAAAAAAAAAAAAAAgAAAAoAAAAAAAAAA==", "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", @@ -583,11 +840,11 @@ }, { "$type": "Document", - "DocumentIndex": 28, + "DocumentIndex": 43, "Title": "Comp_SwarmMaintenance.cs", - "DocumentMoniker": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Building_Comps\\ARA_SwarmMaintenance\\Comp_SwarmMaintenance.cs", + "DocumentMoniker": "E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Building_Comps\\ARA_SwarmMaintenance\\Comp_SwarmMaintenance.cs", "RelativeDocumentMoniker": "Building_Comps\\ARA_SwarmMaintenance\\Comp_SwarmMaintenance.cs", - "ToolTip": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Building_Comps\\ARA_SwarmMaintenance\\Comp_SwarmMaintenance.cs", + "ToolTip": "E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Building_Comps\\ARA_SwarmMaintenance\\Comp_SwarmMaintenance.cs", "RelativeToolTip": "Building_Comps\\ARA_SwarmMaintenance\\Comp_SwarmMaintenance.cs", "ViewState": "AgIAAKYAAAAAAAAAAAAQwH0AAAAQAAAAAAAAAA==", "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", @@ -595,11 +852,11 @@ }, { "$type": "Document", - "DocumentIndex": 29, + "DocumentIndex": 44, "Title": "Need_ChitinArmor.cs", - "DocumentMoniker": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Needs\\Need_ChitinArmor.cs", + "DocumentMoniker": "E:\\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", + "ToolTip": "E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Needs\\Need_ChitinArmor.cs", "RelativeToolTip": "Needs\\Need_ChitinArmor.cs", "ViewState": "AgIAAAMAAAAAAAAAAADwvwAAAAAAAAAAAAAAAA==", "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", @@ -607,35 +864,11 @@ }, { "$type": "Document", - "DocumentIndex": 30, - "Title": "Building_DormancyVat.cs", - "DocumentMoniker": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Buildings\\Building_DormancyVat\\Building_DormancyVat.cs", - "RelativeDocumentMoniker": "Buildings\\Building_DormancyVat\\Building_DormancyVat.cs", - "ToolTip": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Buildings\\Building_DormancyVat\\Building_DormancyVat.cs", - "RelativeToolTip": "Buildings\\Building_DormancyVat\\Building_DormancyVat.cs", - "ViewState": "AgIAAAAAAAAAAAAAAAAAAOcAAAAjAAAAAAAAAA==", - "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", - "WhenOpened": "2025-12-17T11:50:41.189Z" - }, - { - "$type": "Document", - "DocumentIndex": 31, - "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": "AgIAAPQAAAAAAAAAAAAywAoBAABrAAAAAAAAAA==", - "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", - "WhenOpened": "2025-12-17T10:38:40.669Z" - }, - { - "$type": "Document", - "DocumentIndex": 33, + "DocumentIndex": 46, "Title": "JobDriver_StripChitin.cs", - "DocumentMoniker": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Jobs\\JobDriver_StripChitin\\JobDriver_StripChitin.cs", + "DocumentMoniker": "E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Jobs\\JobDriver_StripChitin\\JobDriver_StripChitin.cs", "RelativeDocumentMoniker": "Jobs\\JobDriver_StripChitin\\JobDriver_StripChitin.cs", - "ToolTip": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Jobs\\JobDriver_StripChitin\\JobDriver_StripChitin.cs", + "ToolTip": "E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Jobs\\JobDriver_StripChitin\\JobDriver_StripChitin.cs", "RelativeToolTip": "Jobs\\JobDriver_StripChitin\\JobDriver_StripChitin.cs", "ViewState": "AgIAAD4AAAAAAAAAAAAAAE0AAAAAAAAAAAAAAA==", "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", @@ -643,11 +876,11 @@ }, { "$type": "Document", - "DocumentIndex": 35, + "DocumentIndex": 48, "Title": "Comp_ChitinStripping.cs", - "DocumentMoniker": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Jobs\\JobDriver_StripChitin\\Comp_ChitinStripping.cs", + "DocumentMoniker": "E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Jobs\\JobDriver_StripChitin\\Comp_ChitinStripping.cs", "RelativeDocumentMoniker": "Jobs\\JobDriver_StripChitin\\Comp_ChitinStripping.cs", - "ToolTip": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Jobs\\JobDriver_StripChitin\\Comp_ChitinStripping.cs", + "ToolTip": "E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Jobs\\JobDriver_StripChitin\\Comp_ChitinStripping.cs", "RelativeToolTip": "Jobs\\JobDriver_StripChitin\\Comp_ChitinStripping.cs", "ViewState": "AgIAAAAAAAAAAAAAAAAAAAoAAABWAAAAAAAAAA==", "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", @@ -655,11 +888,11 @@ }, { "$type": "Document", - "DocumentIndex": 36, + "DocumentIndex": 49, "Title": "Verb_ShootSelfUnderfoot.cs", - "DocumentMoniker": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Verbs\\Verb_ShootSelfUnderfoot.cs", + "DocumentMoniker": "E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Verbs\\Verb_ShootSelfUnderfoot.cs", "RelativeDocumentMoniker": "Verbs\\Verb_ShootSelfUnderfoot.cs", - "ToolTip": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Verbs\\Verb_ShootSelfUnderfoot.cs", + "ToolTip": "E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Verbs\\Verb_ShootSelfUnderfoot.cs", "RelativeToolTip": "Verbs\\Verb_ShootSelfUnderfoot.cs", "ViewState": "AgIAAJAAAAAAAAAAAAAcwJwAAAAoAAAAAAAAAA==", "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", @@ -667,11 +900,11 @@ }, { "$type": "Document", - "DocumentIndex": 37, + "DocumentIndex": 50, "Title": "HediffComp_TopTurret.cs", - "DocumentMoniker": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Hediffs\\ARA_HediffComp_TopTurret\\HediffComp_TopTurret.cs", + "DocumentMoniker": "E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Hediffs\\ARA_HediffComp_TopTurret\\HediffComp_TopTurret.cs", "RelativeDocumentMoniker": "Hediffs\\ARA_HediffComp_TopTurret\\HediffComp_TopTurret.cs", - "ToolTip": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Hediffs\\ARA_HediffComp_TopTurret\\HediffComp_TopTurret.cs", + "ToolTip": "E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Hediffs\\ARA_HediffComp_TopTurret\\HediffComp_TopTurret.cs", "RelativeToolTip": "Hediffs\\ARA_HediffComp_TopTurret\\HediffComp_TopTurret.cs", "ViewState": "AgIAACcBAAAAAAAAAAAkwD0BAAAjAAAAAAAAAA==", "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", @@ -679,11 +912,11 @@ }, { "$type": "Document", - "DocumentIndex": 32, + "DocumentIndex": 45, "Title": "RoomRoleWorker_Incubator.cs", - "DocumentMoniker": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\RoomRole\\RoomRoleWorker_Incubator.cs", + "DocumentMoniker": "E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\RoomRole\\RoomRoleWorker_Incubator.cs", "RelativeDocumentMoniker": "RoomRole\\RoomRoleWorker_Incubator.cs", - "ToolTip": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\RoomRole\\RoomRoleWorker_Incubator.cs", + "ToolTip": "E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\RoomRole\\RoomRoleWorker_Incubator.cs", "RelativeToolTip": "RoomRole\\RoomRoleWorker_Incubator.cs", "ViewState": "AgIAAAAAAAAAAAAAAAAAAAUAAAABAAAAAAAAAA==", "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", @@ -691,11 +924,11 @@ }, { "$type": "Document", - "DocumentIndex": 34, + "DocumentIndex": 47, "Title": "CompProperties_ChitinStripping.cs", - "DocumentMoniker": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Jobs\\JobDriver_StripChitin\\CompProperties_ChitinStripping.cs", + "DocumentMoniker": "E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Jobs\\JobDriver_StripChitin\\CompProperties_ChitinStripping.cs", "RelativeDocumentMoniker": "Jobs\\JobDriver_StripChitin\\CompProperties_ChitinStripping.cs", - "ToolTip": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Jobs\\JobDriver_StripChitin\\CompProperties_ChitinStripping.cs", + "ToolTip": "E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Jobs\\JobDriver_StripChitin\\CompProperties_ChitinStripping.cs", "RelativeToolTip": "Jobs\\JobDriver_StripChitin\\CompProperties_ChitinStripping.cs", "ViewState": "AgIAAAAAAAAAAAAAAAAAABcAAAAtAAAAAAAAAA==", "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", @@ -703,11 +936,11 @@ }, { "$type": "Document", - "DocumentIndex": 38, + "DocumentIndex": 51, "Title": "CompResearchProducer.cs", - "DocumentMoniker": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Building_Comps\\ARA_CompInteractiveProducer\\CompResearchProducer.cs", + "DocumentMoniker": "E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Building_Comps\\ARA_CompInteractiveProducer\\CompResearchProducer.cs", "RelativeDocumentMoniker": "Building_Comps\\ARA_CompInteractiveProducer\\CompResearchProducer.cs", - "ToolTip": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Building_Comps\\ARA_CompInteractiveProducer\\CompResearchProducer.cs", + "ToolTip": "E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Building_Comps\\ARA_CompInteractiveProducer\\CompResearchProducer.cs", "RelativeToolTip": "Building_Comps\\ARA_CompInteractiveProducer\\CompResearchProducer.cs", "ViewState": "AgIAAAAAAAAAAAAAAADwvy0AAAAAAAAAAAAAAA==", "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", @@ -715,11 +948,11 @@ }, { "$type": "Document", - "DocumentIndex": 39, + "DocumentIndex": 52, "Title": "CompCorpseConverter.cs", - "DocumentMoniker": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Building_Comps\\ARA_CorpseConverter\\CompCorpseConverter.cs", + "DocumentMoniker": "E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Building_Comps\\ARA_CorpseConverter\\CompCorpseConverter.cs", "RelativeDocumentMoniker": "Building_Comps\\ARA_CorpseConverter\\CompCorpseConverter.cs", - "ToolTip": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Building_Comps\\ARA_CorpseConverter\\CompCorpseConverter.cs", + "ToolTip": "E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Building_Comps\\ARA_CorpseConverter\\CompCorpseConverter.cs", "RelativeToolTip": "Building_Comps\\ARA_CorpseConverter\\CompCorpseConverter.cs", "ViewState": "AgIAABwDAAAAAAAAAAAIwCoDAAARAAAAAAAAAA==", "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", @@ -727,11 +960,11 @@ }, { "$type": "Document", - "DocumentIndex": 40, + "DocumentIndex": 53, "Title": "CompProperties_CorpseConverter.cs", - "DocumentMoniker": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Building_Comps\\ARA_CorpseConverter\\CompProperties_CorpseConverter.cs", + "DocumentMoniker": "E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Building_Comps\\ARA_CorpseConverter\\CompProperties_CorpseConverter.cs", "RelativeDocumentMoniker": "Building_Comps\\ARA_CorpseConverter\\CompProperties_CorpseConverter.cs", - "ToolTip": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Building_Comps\\ARA_CorpseConverter\\CompProperties_CorpseConverter.cs", + "ToolTip": "E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Building_Comps\\ARA_CorpseConverter\\CompProperties_CorpseConverter.cs", "RelativeToolTip": "Building_Comps\\ARA_CorpseConverter\\CompProperties_CorpseConverter.cs", "ViewState": "AgIAAAAAAAAAAAAAAADwvwAAAAAAAAAAAAAAAA==", "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", @@ -739,11 +972,11 @@ }, { "$type": "Document", - "DocumentIndex": 43, + "DocumentIndex": 56, "Title": "CompRefuelableNutrition_WithKey.cs", - "DocumentMoniker": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Building_Comps\\WULA_MutiFuelSpawner\\CompRefuelableNutrition_WithKey.cs", + "DocumentMoniker": "E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Building_Comps\\WULA_MutiFuelSpawner\\CompRefuelableNutrition_WithKey.cs", "RelativeDocumentMoniker": "Building_Comps\\WULA_MutiFuelSpawner\\CompRefuelableNutrition_WithKey.cs", - "ToolTip": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Building_Comps\\WULA_MutiFuelSpawner\\CompRefuelableNutrition_WithKey.cs", + "ToolTip": "E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Building_Comps\\WULA_MutiFuelSpawner\\CompRefuelableNutrition_WithKey.cs", "RelativeToolTip": "Building_Comps\\WULA_MutiFuelSpawner\\CompRefuelableNutrition_WithKey.cs", "ViewState": "AgIAAAAAAAAAAAAAAAAAACUAAABAAAAAAAAAAA==", "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", @@ -751,11 +984,11 @@ }, { "$type": "Document", - "DocumentIndex": 41, + "DocumentIndex": 54, "Title": "CompTerrainChanger.cs", - "DocumentMoniker": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Building_Comps\\ARA_TerrainChanger\\CompTerrainChanger.cs", + "DocumentMoniker": "E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Building_Comps\\ARA_TerrainChanger\\CompTerrainChanger.cs", "RelativeDocumentMoniker": "Building_Comps\\ARA_TerrainChanger\\CompTerrainChanger.cs", - "ToolTip": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Building_Comps\\ARA_TerrainChanger\\CompTerrainChanger.cs", + "ToolTip": "E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Building_Comps\\ARA_TerrainChanger\\CompTerrainChanger.cs", "RelativeToolTip": "Building_Comps\\ARA_TerrainChanger\\CompTerrainChanger.cs", "ViewState": "AgIAAK0CAAAAAAAAAAAcwPYCAAAMAAAAAAAAAA==", "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", @@ -763,11 +996,11 @@ }, { "$type": "Document", - "DocumentIndex": 42, + "DocumentIndex": 55, "Title": "CompProperties_TerrainChanger.cs", - "DocumentMoniker": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Building_Comps\\ARA_TerrainChanger\\CompProperties_TerrainChanger.cs", + "DocumentMoniker": "E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Building_Comps\\ARA_TerrainChanger\\CompProperties_TerrainChanger.cs", "RelativeDocumentMoniker": "Building_Comps\\ARA_TerrainChanger\\CompProperties_TerrainChanger.cs", - "ToolTip": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Building_Comps\\ARA_TerrainChanger\\CompProperties_TerrainChanger.cs", + "ToolTip": "E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Building_Comps\\ARA_TerrainChanger\\CompProperties_TerrainChanger.cs", "RelativeToolTip": "Building_Comps\\ARA_TerrainChanger\\CompProperties_TerrainChanger.cs", "ViewState": "AgIAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAA==", "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", @@ -775,21 +1008,23 @@ }, { "$type": "Document", - "DocumentIndex": 48, + "DocumentIndex": 61, "Title": "Building_RefuelingVat.cs", "DocumentMoniker": "E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Building_Comps\\ARA_Building_RefuelingVat\\Building_RefuelingVat.cs", + "RelativeDocumentMoniker": "Building_Comps\\ARA_Building_RefuelingVat\\Building_RefuelingVat.cs", "ToolTip": "E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Building_Comps\\ARA_Building_RefuelingVat\\Building_RefuelingVat.cs", + "RelativeToolTip": "Building_Comps\\ARA_Building_RefuelingVat\\Building_RefuelingVat.cs", "ViewState": "AgIAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAA==", "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", "WhenOpened": "2025-12-16T10:28:54.756Z" }, { "$type": "Document", - "DocumentIndex": 44, + "DocumentIndex": 57, "Title": "CompProperties_IncubatorData.cs", - "DocumentMoniker": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Buildings\\Building_Ootheca\\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": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\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": "AgIAANcAAAAAAAAAAIA1wPoAAAAxAAAAAAAAAA==", "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", @@ -797,11 +1032,11 @@ }, { "$type": "Document", - "DocumentIndex": 45, + "DocumentIndex": 58, "Title": "OothecaIncubatorExtension.cs", - "DocumentMoniker": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Buildings\\Building_Ootheca\\OothecaIncubatorExtension.cs", + "DocumentMoniker": "E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Buildings\\Building_Ootheca\\OothecaIncubatorExtension.cs", "RelativeDocumentMoniker": "Buildings\\Building_Ootheca\\OothecaIncubatorExtension.cs", - "ToolTip": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Buildings\\Building_Ootheca\\OothecaIncubatorExtension.cs", + "ToolTip": "E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Buildings\\Building_Ootheca\\OothecaIncubatorExtension.cs", "RelativeToolTip": "Buildings\\Building_Ootheca\\OothecaIncubatorExtension.cs", "ViewState": "AgIAAAAAAAAAAAAAAADwvxUAAABBAAAAAAAAAA==", "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", @@ -809,11 +1044,11 @@ }, { "$type": "Document", - "DocumentIndex": 46, + "DocumentIndex": 59, "Title": "Building_Ootheca.cs", - "DocumentMoniker": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Buildings\\Building_Ootheca\\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": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\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": "AgIAALcCAAAAAAAAAAAewNgCAAAVAAAAAAAAAA==", "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", @@ -821,11 +1056,11 @@ }, { "$type": "Document", - "DocumentIndex": 47, + "DocumentIndex": 60, "Title": "CompProperties_EquipmentIncubatorData.cs", - "DocumentMoniker": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Buildings\\Building_EquipmentOotheca\\CompProperties_EquipmentIncubatorData.cs", + "DocumentMoniker": "E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Buildings\\Building_EquipmentOotheca\\CompProperties_EquipmentIncubatorData.cs", "RelativeDocumentMoniker": "Buildings\\Building_EquipmentOotheca\\CompProperties_EquipmentIncubatorData.cs", - "ToolTip": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Buildings\\Building_EquipmentOotheca\\CompProperties_EquipmentIncubatorData.cs", + "ToolTip": "E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Buildings\\Building_EquipmentOotheca\\CompProperties_EquipmentIncubatorData.cs", "RelativeToolTip": "Buildings\\Building_EquipmentOotheca\\CompProperties_EquipmentIncubatorData.cs", "ViewState": "AgIAAA4AAAAAAAAAAADwvyYAAAAaAAAAAAAAAA==", "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", diff --git a/Source/ArachnaeSwarm/ArachnaeSwarm.csproj b/Source/ArachnaeSwarm/ArachnaeSwarm.csproj index 3bbd5e0..b8e098d 100644 --- a/Source/ArachnaeSwarm/ArachnaeSwarm.csproj +++ b/Source/ArachnaeSwarm/ArachnaeSwarm.csproj @@ -132,9 +132,15 @@ + + + + + + diff --git a/Source/ArachnaeSwarm/Buildings/Building_EquipmentOotheca/Building_EquipmentOotheca.cs b/Source/ArachnaeSwarm/Buildings/Building_EquipmentOotheca/Building_EquipmentOotheca.cs index 130a0be..85215d0 100644 --- a/Source/ArachnaeSwarm/Buildings/Building_EquipmentOotheca/Building_EquipmentOotheca.cs +++ b/Source/ArachnaeSwarm/Buildings/Building_EquipmentOotheca/Building_EquipmentOotheca.cs @@ -1,4 +1,3 @@ -// File: Buildings/Building_EquipmentOotheca.cs using RimWorld; using System.Collections.Generic; using System.Text; @@ -34,23 +33,9 @@ namespace ArachnaeSwarm private float qualityProgress = 0f; private float qualityTotal = 0f; - // === 修复后的营养液消耗相关字段 === - private int totalNutrientCost = 0; // 总共需要的营养液地块数量 - private int consumedNutrientCount = 0; // 已消耗的营养液地块数量 - private int lastConsumeCheckTick = -1; // 上次检查消耗的时间 - private const int ConsumeCheckInterval = 250; // 检查间隔(tick) - private List consumedCells = new List(); // 已消耗的单元格记录 - private bool isConsuming = false; // 是否正在消耗营养液 - private int consecutiveFailedConsumptions = 0; // 连续失败的消耗次数 - private const int MaxConsecutiveFailures = 10; // 最大连续失败次数,超过则暂停检查 - private bool nutrientDeficiencyPause = false; // 是否因营养液不足而暂停 - - // === 新增属性 === - public int TotalNutrientCost => totalNutrientCost; - public int ConsumedNutrientCount => consumedNutrientCount; - public float NutrientProgress => totalNutrientCost > 0 ? (float)consumedNutrientCount / totalNutrientCost : 0f; - public bool HasEnoughNutrients => consumedNutrientCount >= totalNutrientCost; - public bool IsConsuming => isConsuming; + // === 简化后的营养液系统:只用于速度加成,不消耗 === + private int totalNutrientCost = 0; // 总共需要的营养液地块数量(仅用于信息显示) + private int currentNutrientCount = 0; // 当前周围存在的营养液数量 // 缓存的ModExtension private OothecaIncubatorExtension cachedExtension; @@ -86,6 +71,10 @@ namespace ArachnaeSwarm public float QualityProgress => qualityProgress; public float QualityPercent => qualityTotal > 0 ? qualityProgress / qualityTotal : 0f; + // 营养液加成属性 + public int CurrentNutrientCount => currentNutrientCount; + public float NutrientSpeedBonus => currentNutrientCount * Ext.nutrientSolutionBonusPerTile; + // 进度百分比 public float AdjustedProgressPercent { @@ -96,288 +85,30 @@ namespace ArachnaeSwarm } } - // === 修复后的初始化营养液消耗方法 === - private void InitializeNutrientConsumption() + // === 简化的初始化营养液方法 === + private void InitializeNutrientInfo() { if (incubatingThingDef == null) return; - // 获取孵化成本统计值 + // 获取孵化成本统计值(仅用于信息显示) var costStat = DefDatabase.GetNamedSilentFail("ARA_IncubationCost"); if (costStat != null) { totalNutrientCost = Mathf.RoundToInt(incubatingThingDef.GetStatValueAbstract(costStat, null)); - Log.Message($"[ARA] 初始化营养液消耗: {incubatingThingDef.defName} 需要 {totalNutrientCost} 个营养液地块"); + Log.Message($"[ARA] 孵化 {incubatingThingDef.defName} 建议有 {totalNutrientCost} 个营养液地块以获得最佳速度"); } else { totalNutrientCost = 0; - Log.Message($"[ARA] 孵化 {incubatingThingDef.defName} 不需要营养液"); + Log.Message($"[ARA] 孵化 {incubatingThingDef.defName} 不需要营养液加成"); } - - consumedNutrientCount = 0; - consumedCells.Clear(); - isConsuming = true; // 立即开始消耗 - consecutiveFailedConsumptions = 0; - nutrientDeficiencyPause = false; - // 立即检查一次营养液 - lastConsumeCheckTick = Find.TickManager.TicksGame - ConsumeCheckInterval; // 强制立即检查 + // 立即更新一次营养液计数 + UpdateNutrientCount(); } - // === 修复后的检查并消耗营养液方法 === - private void CheckAndConsumeNutrients() - { - if (!isIncubating || incubatingThingDef == null) - return; - - // 如果已经满足需求,停止消耗 - if (HasEnoughNutrients) - { - if (isConsuming) - { - Log.Message($"[ARA] 营养液需求已满足: {consumedNutrientCount}/{totalNutrientCost}"); - isConsuming = false; - nutrientDeficiencyPause = false; // 重置暂停标志 - } - return; - } - - // 计算需要消耗的数量(基于当前进度) - float targetProgress = AdjustedProgressPercent; - int targetConsumed = Mathf.RoundToInt(targetProgress * totalNutrientCost); - int toConsume = Mathf.Max(1, targetConsumed - consumedNutrientCount); - - if (toConsume <= 0) - return; - - // 查找可消耗的营养液单元格 - List availableCells = FindNutrientCells(); - - if (availableCells.Count == 0) - { - consecutiveFailedConsumptions++; - nutrientDeficiencyPause = true; // 设置为暂停 - - // 如果没有找到营养液,检查是否应该应用伤害 - if (Ext.nutrientDeficiencyDamageEnabled && toConsume > 0) - { - ApplyNutrientDeficiencyDamage(); - - // 显示消息(频率控制) - if (Find.TickManager.TicksGame % 2000 == 0 && Rand.Chance(0.3f)) - { - Messages.Message("ARA_EquipmentIncubator.NoNutrientsFound".Translate(), - this, MessageTypeDefOf.NegativeEvent); - } - - Log.Warning($"[ARA] 未找到营养液,连续失败次数: {consecutiveFailedConsumptions}"); - } - return; - } - - // 重置失败计数和暂停标志 - consecutiveFailedConsumptions = 0; - nutrientDeficiencyPause = false; // 有营养液可用,取消暂停 - - // 开始消耗 - int consumedThisTick = 0; - for (int i = 0; i < Mathf.Min(toConsume, availableCells.Count); i++) - { - if (ConsumeNutrientCell(availableCells[i])) - { - consumedThisTick++; - consumedNutrientCount++; - consumedCells.Add(availableCells[i]); - - if (HasEnoughNutrients) - break; - } - } - - if (consumedThisTick > 0) - { - Log.Message($"[ARA] 消耗了 {consumedThisTick} 个营养液,总计: {consumedNutrientCount}/{totalNutrientCost}"); - - // 显示消息 - if (consumedThisTick > 0 && Find.TickManager.TicksGame % 1000 == 0) - { - Messages.Message($"ARA_EquipmentIncubator.NutrientConsumed".Translate(consumedThisTick, consumedNutrientCount, totalNutrientCost), - this, MessageTypeDefOf.SilentInput); - } - - // 如果达到需求,显示完成消息 - if (HasEnoughNutrients) - { - Messages.Message("ARA_EquipmentIncubator.NutrientRequirementsMet".Translate(), - this, MessageTypeDefOf.PositiveEvent); - } - } - } - - // === 修复后的应用营养液不足伤害方法 === - private void ApplyNutrientDeficiencyDamage() - { - if (Ext.nutrientDeficiencyDamageAmount <= 0f || Ext.nutrientDamageType == null) - return; - - try - { - // 计算实际伤害量 - float damageAmount = Ext.nutrientDeficiencyDamageAmount; - - // 如果建筑血量已经很低,减少伤害以避免立即摧毁 - float healthPercent = (float)HitPoints / MaxHitPoints; - if (healthPercent < 0.3f) - { - damageAmount *= 0.5f; // 血量低于30%时,伤害减半 - } - - if (healthPercent < 0.1f) - { - damageAmount *= 0.2f; // 血量低于10%时,伤害减为20% - } - - // 应用伤害 - DamageInfo damageInfo = new DamageInfo( - Ext.nutrientDamageType, - damageAmount, - armorPenetration: 0, - angle: -1f, - instigator: null, - hitPart: null, - weapon: null, - category: DamageInfo.SourceCategory.ThingOrUnknown, - intendedTarget: this - ); - - TakeDamage(damageInfo); - - // 显示伤害消息(几率性) - if (Ext.showDamageMessages && Rand.Chance(Ext.damageMessageChance)) - { - Messages.Message("ARA_EquipmentIncubator.NutrientDeficiencyDamage".Translate(damageAmount.ToString("F1")), - this, MessageTypeDefOf.NegativeEvent); - } - - // 更新质量乘数(因为血量变化会影响质量) - UpdateQualityMultiplier(); - } - catch (Exception ex) - { - Log.Error($"Failed to apply nutrient deficiency damage: {ex.Message}"); - } - } - - // === 修复后的查找营养液单元格方法 === - public List FindNutrientCells() - { - List availableCells = new List(); - var map = Map; - if (map == null) - return availableCells; - - // 使用ModExtension中定义的营养液检测半径 - int searchRadius = Ext.NutrientSolutionRadiusInt; - - TerrainDef nutrientDef = DefDatabase.GetNamedSilentFail("ARA_Incubator_Nutrient_Solution"); - if (nutrientDef == null) - { - Log.Error("[ARA] 未找到营养液地形定义: ARA_Incubator_Nutrient_Solution"); - return availableCells; - } - - // 优化搜索:先从内圈开始,逐步扩大 - int minRadius = 1; // 最小搜索半径 - int currentRadius = Mathf.Min(searchRadius, Mathf.Max(minRadius, consecutiveFailedConsumptions + 1)); - - for (int x = -currentRadius; x <= currentRadius; x++) - { - for (int z = -currentRadius; z <= currentRadius; z++) - { - IntVec3 cell = Position + new IntVec3(x, 0, z); - - // 排除自己的位置和已消耗的单元格 - if (cell == Position || consumedCells.Contains(cell)) - continue; - - // 检查是否在边界内 - if (cell.InBounds(map)) - { - TerrainDef terrain = map.terrainGrid.TerrainAt(cell); - if (terrain == nutrientDef) - { - availableCells.Add(cell); - } - } - } - } - - // 随机排序,避免总是从固定位置开始消耗 - if (availableCells.Count > 1) - { - availableCells.Shuffle(); - } - - return availableCells; - } - - // === 修复后的消耗单个营养液单元格方法 === - private bool ConsumeNutrientCell(IntVec3 cell) - { - var map = Map; - if (map == null) - return false; - - // 获取目标地貌定义 - TerrainDef insectCreepDef = DefDatabase.GetNamedSilentFail("ARA_InsectCreep"); - TerrainDef nutrientDef = DefDatabase.GetNamedSilentFail("ARA_Incubator_Nutrient_Solution"); - - if (insectCreepDef == null || nutrientDef == null) - return false; - - // 记录原来的地貌 - TerrainDef originalTerrain = map.terrainGrid.TerrainAt(cell); - - // 转换为昆虫爬行地貌 - map.terrainGrid.SetTerrain(cell, insectCreepDef); - - // 创建营养液蓝图 - try - { - // 使用PlaceBlueprintForBuild方法创建蓝图 - Blueprint_Build blueprint = GenConstruct.PlaceBlueprintForBuild( - nutrientDef, - cell, - map, - Rot4.North, - Faction.OfPlayer, - null - ); - - if (blueprint != null) - { - // 显示转换效果 - if (Find.TickManager.TicksGame % 10 == 0) - { - MoteMaker.ThrowText(cell.ToVector3Shifted(), map, - "ARA_Consumed".Translate(), Color.yellow); - } - return true; - } - } - catch (Exception ex) - { - Log.Error($"Failed to place nutrient solution blueprint at {cell}: {ex.Message}"); - // 如果蓝图放置失败,恢复原貌 - map.terrainGrid.SetTerrain(cell, originalTerrain); - return false; - } - - return false; - } - - // === 修复后的Tick方法 === + // === 简化的Tick方法 === protected override void Tick() { base.Tick(); @@ -396,39 +127,11 @@ namespace ArachnaeSwarm UpdateQualityMultiplier(); } - // 检查营养液消耗 - if (lastConsumeCheckTick < 0 || Find.TickManager.TicksGame - lastConsumeCheckTick >= ConsumeCheckInterval) - { - lastConsumeCheckTick = Find.TickManager.TicksGame; - CheckAndConsumeNutrients(); - } - float currentSpeed = SpeedMultiplier; - // 决定是否应该增加进度 - bool shouldProgress = true; - - // 检查是否因营养液不足而暂停 - if (Ext.stopIncubationWhenNutrientDeficient && - totalNutrientCost > 0 && - !HasEnoughNutrients && - nutrientDeficiencyPause) - { - shouldProgress = false; - - // 显示暂停消息(频率控制) - if (Find.TickManager.TicksGame % 2000 == 0 && Rand.Chance(0.2f)) - { - Messages.Message("ARA_EquipmentIncubator.IncubationPausedNoNutrients".Translate(incubatingThingDef?.LabelCap ?? "Unknown"), - this, MessageTypeDefOf.NeutralEvent); - } - } - - if (shouldProgress) - { - incubationProgress += currentSpeed; - qualityProgress += currentSpeed * QualityMultiplier; - } + // 始终增加进度(不再有营养液不足的暂停) + incubationProgress += currentSpeed; + qualityProgress += currentSpeed * QualityMultiplier; if (incubationProgress >= incubationDuration) { @@ -458,7 +161,7 @@ namespace ArachnaeSwarm int nutrientSolutionCount = CountNearbyNutrientSolutions(); if (nutrientSolutionCount > 0) { - builder.AppendLine("ARA_EquipmentIncubator.NutrientSolutions".Translate( + builder.AppendLine("ARA_EquipmentIncubator.NutrientSolutionsBonus".Translate( nutrientSolutionCount, nutrientSolutionCount * Ext.nutrientSolutionBonusPerTile * 100)); } @@ -522,39 +225,34 @@ namespace ArachnaeSwarm return builder.ToString().TrimEndNewlines(); } - // === 获取营养液消耗描述 === - public string GetNutrientConsumptionDescription() + // === 获取营养液信息描述 === + public string GetNutrientInfoDescription() { var builder = new StringBuilder(); - builder.AppendLine("ARA_EquipmentIncubator.NutrientConsumption".Translate()); + builder.AppendLine("ARA_EquipmentIncubator.NutrientInfo".Translate()); builder.AppendLine(); - if (totalNutrientCost == 0) - { - builder.AppendLine("ARA_EquipmentIncubator.NoNutrientCost".Translate()); - return builder.ToString().TrimEndNewlines(); - } + // 显示当前营养液数量和加成 + builder.AppendLine("ARA_EquipmentIncubator.CurrentNutrientCount".Translate(currentNutrientCount)); + builder.AppendLine("ARA_EquipmentIncubator.NutrientSpeedBonus".Translate(NutrientSpeedBonus.ToStringPercent())); - builder.AppendLine("ARA_EquipmentIncubator.NutrientRequirement".Translate(totalNutrientCost)); - builder.AppendLine("ARA_EquipmentIncubator.NutrientConsumed".Translate(consumedNutrientCount)); - builder.AppendLine("ARA_EquipmentIncubator.NutrientProgress".Translate(NutrientProgress.ToStringPercent())); - - if (HasEnoughNutrients) + // 显示建议的营养液数量 + if (totalNutrientCost > 0 && incubatingThingDef != null) { builder.AppendLine(); - builder.AppendLine("ARA_EquipmentIncubator.NutrientRequirementsMet".Translate()); - } - else if (isConsuming) - { - builder.AppendLine(); - builder.AppendLine("ARA_EquipmentIncubator.ConsumingNutrients".Translate()); - } - - if (nutrientDeficiencyPause) - { - builder.AppendLine(); - builder.AppendLine("ARA_EquipmentIncubator.NutrientDeficiencyPaused".Translate()); + builder.AppendLine("ARA_EquipmentIncubator.RecommendedNutrients".Translate(incubatingThingDef.LabelCap, totalNutrientCost)); + + // 显示加成效果 + if (currentNutrientCount >= totalNutrientCost) + { + builder.AppendLine("ARA_EquipmentIncubator.MaximumBonusActive".Translate()); + } + else + { + int needed = totalNutrientCost - currentNutrientCount; + builder.AppendLine("ARA_EquipmentIncubator.AddMoreNutrients".Translate(needed)); + } } return builder.ToString().TrimEndNewlines(); @@ -684,8 +382,8 @@ namespace ArachnaeSwarm UpdateQualityMultiplier(); UpdateSpeedMultiplier(); - // 初始化营养液消耗 - InitializeNutrientConsumption(); + // 初始化营养液信息(仅用于显示和建议) + InitializeNutrientInfo(); assignedLarva = null; larvaOperateTicksRemaining = 0; @@ -709,8 +407,9 @@ namespace ArachnaeSwarm qualityProgress = 0f; qualityTotal = 0f; - // 重置营养液消耗状态 - ResetNutrientConsumptionState(); + // 重置营养液信息 + totalNutrientCost = 0; + currentNutrientCount = 0; Messages.Message("ARA_EquipmentIncubator.IncubationCancelled".Translate() + " " + "ARA_EquipmentIncubator.ContentsLost".Translate(), MessageTypeDefOf.NeutralEvent); @@ -725,16 +424,6 @@ namespace ArachnaeSwarm float finalQualityPercent = QualityPercent; - // 检查营养液是否满足要求 - if (totalNutrientCost > 0 && consumedNutrientCount < totalNutrientCost) - { - Messages.Message("ARA_EquipmentIncubator.IncubationCompleteNutrientDeficient".Translate(incubatingThingDef.LabelCap), - this, MessageTypeDefOf.NegativeEvent); - - // 生成物品但应用质量惩罚 - finalQualityPercent *= Mathf.Lerp(0.3f, 1.0f, NutrientProgress); - } - // 生成物品 Thing thing = ThingMaker.MakeThing(incubatingThingDef); ApplyQualityEffects(thing, finalQualityPercent); @@ -785,18 +474,6 @@ namespace ArachnaeSwarm } } - // === 重置营养液消耗状态 === - private void ResetNutrientConsumptionState() - { - totalNutrientCost = 0; - consumedNutrientCount = 0; - isConsuming = false; - consumedCells.Clear(); - consecutiveFailedConsumptions = 0; - nutrientDeficiencyPause = false; - lastConsumeCheckTick = -1; - } - // === 重置孵化状态 === private void ResetIncubationState() { @@ -806,9 +483,8 @@ namespace ArachnaeSwarm incubatingThingDef = null; qualityProgress = 0f; qualityTotal = 0f; - - // 重置营养液消耗状态 - ResetNutrientConsumptionState(); + totalNutrientCost = 0; + currentNutrientCount = 0; } // === 获取剩余时间 === @@ -865,34 +541,14 @@ namespace ArachnaeSwarm } builder.Append(timeText); builder.AppendLine(); - builder.Append("ARA_EquipmentIncubator.Speed".Translate() + ": " + SpeedMultiplier.ToStringPercent() + ", " + - "ARA_EquipmentIncubator.Quality".Translate() + ": " + QualityMultiplier.ToStringPercent()); - - // 显示营养液消耗信息 - if (totalNutrientCost > 0) + builder.Append("ARA_EquipmentIncubator.Speed".Translate() + ": " + SpeedMultiplier.ToStringPercent()); + + // 显示营养液加成信息 + if (currentNutrientCount > 0) { builder.AppendLine(); - builder.Append("ARA_EquipmentIncubator.NutrientConsumption".Translate() + ": " + - consumedNutrientCount + " / " + totalNutrientCost + - " (" + NutrientProgress.ToStringPercent() + ")"); - - if (!HasEnoughNutrients) - { - builder.AppendLine(); - builder.Append("ARA_EquipmentIncubator.NutrientDeficient".Translate()); - - if (nutrientDeficiencyPause) - { - builder.AppendLine(); - builder.Append("ARA_EquipmentIncubator.NutrientDeficiencyPaused".Translate()); - } - - if (consecutiveFailedConsumptions > 0) - { - builder.AppendLine(); - builder.Append("ARA_EquipmentIncubator.ConsecutiveFailures".Translate(consecutiveFailedConsumptions)); - } - } + builder.Append("ARA_EquipmentIncubator.NutrientBonusActive".Translate() + ": " + + currentNutrientCount + " tiles (" + NutrientSpeedBonus.ToStringPercent() + ")"); } } else if (assignedLarva != null) @@ -916,19 +572,15 @@ namespace ArachnaeSwarm if (builder.Length > 0) builder.AppendLine(); builder.Append("ARA_EquipmentIncubator.Target".Translate() + ": " + config.thingDef.LabelCap); builder.AppendLine(); - builder.Append("ARA_EquipmentIncubator.SpeedMultiplier".Translate() + ": " + SpeedMultiplier.ToStringPercent() + ", " + - "ARA_EquipmentIncubator.QualityMultiplier".Translate() + ": " + QualityMultiplier.ToStringPercent()); - - // 显示预计的营养液需求 - var costStat = DefDatabase.GetNamedSilentFail("ARA_IncubationCost"); - if (costStat != null) + builder.Append("ARA_EquipmentIncubator.SpeedMultiplier".Translate() + ": " + SpeedMultiplier.ToStringPercent()); + + // 显示当前营养液加成 + UpdateNutrientCount(); + if (currentNutrientCount > 0) { - int estimatedCost = Mathf.RoundToInt(config.thingDef.GetStatValueAbstract(costStat, null)); - if (estimatedCost > 0) - { - builder.AppendLine(); - builder.Append("ARA_EquipmentIncubator.EstimatedNutrientCost".Translate() + ": " + estimatedCost); - } + builder.AppendLine(); + builder.Append("ARA_EquipmentIncubator.CurrentNutrientBonus".Translate() + ": " + + currentNutrientCount + " tiles (" + NutrientSpeedBonus.ToStringPercent() + ")"); } } } @@ -1041,6 +693,18 @@ namespace ArachnaeSwarm { builder.AppendLine("ARA_EquipmentIncubator.NoResearchRequired".Translate()); } + + // 显示营养液建议 + var costStat = DefDatabase.GetNamedSilentFail("ARA_IncubationCost"); + if (costStat != null) + { + int recommendedCost = Mathf.RoundToInt(config.thingDef.GetStatValueAbstract(costStat, null)); + if (recommendedCost > 0) + { + builder.AppendLine(); + builder.AppendLine("ARA_EquipmentIncubator.RecommendedNutrientsForSpeed".Translate(recommendedCost)); + } + } } builder.AppendLine(); @@ -1220,6 +884,12 @@ namespace ArachnaeSwarm return count; } + // === 更新营养液计数 === + private void UpdateNutrientCount() + { + currentNutrientCount = CountNearbyNutrientSolutions(); + } + // === 计算房间质量因子 === private float GetRoomQualityFactor() { @@ -1293,9 +963,11 @@ namespace ArachnaeSwarm multiplier *= Ext.speedPenaltyOutsideIncubator; } - int nutrientSolutionCount = CountNearbyNutrientSolutions(); - float nutrientBonus = 1.0f + (nutrientSolutionCount * Ext.nutrientSolutionBonusPerTile); + // 更新营养液计数 + UpdateNutrientCount(); + // 应用营养液加成 + float nutrientBonus = 1.0f + (currentNutrientCount * Ext.nutrientSolutionBonusPerTile); multiplier *= nutrientBonus; speedMultiplier = multiplier; @@ -1342,28 +1014,8 @@ namespace ArachnaeSwarm Scribe_Values.Look(ref qualityMultiplier, "qualityMultiplier", 1.0f); Scribe_Values.Look(ref qualityProgress, "qualityProgress", 0f); Scribe_Values.Look(ref qualityTotal, "qualityTotal", 0f); - - // 保存营养液消耗状态 Scribe_Values.Look(ref totalNutrientCost, "totalNutrientCost", 0); - Scribe_Values.Look(ref consumedNutrientCount, "consumedNutrientCount", 0); - Scribe_Values.Look(ref lastConsumeCheckTick, "lastConsumeCheckTick", -1); - Scribe_Values.Look(ref isConsuming, "isConsuming", false); - Scribe_Values.Look(ref consecutiveFailedConsumptions, "consecutiveFailedConsumptions", 0); - Scribe_Values.Look(ref nutrientDeficiencyPause, "nutrientDeficiencyPause", false); - Scribe_Collections.Look(ref consumedCells, "consumedCells", LookMode.Value); - - if (Scribe.mode == LoadSaveMode.PostLoadInit) - { - // 确保列表不为null - if (consumedCells == null) - consumedCells = new List(); - - // 确保状态一致性 - if (isIncubating && totalNutrientCost > 0 && !isConsuming) - { - isConsuming = true; // 加载后恢复消耗状态 - } - } + Scribe_Values.Look(ref currentNutrientCount, "currentNutrientCount", 0); } } } diff --git a/Source/ArachnaeSwarm/Buildings/Building_EquipmentOotheca/ITab_EquipmentOotheca_Incubation.cs b/Source/ArachnaeSwarm/Buildings/Building_EquipmentOotheca/ITab_EquipmentOotheca_Incubation.cs index 59ee537..2560f4c 100644 --- a/Source/ArachnaeSwarm/Buildings/Building_EquipmentOotheca/ITab_EquipmentOotheca_Incubation.cs +++ b/Source/ArachnaeSwarm/Buildings/Building_EquipmentOotheca/ITab_EquipmentOotheca_Incubation.cs @@ -1,4 +1,3 @@ -// File: ITabs/ITab_EquipmentOotheca_Incubation.cs using UnityEngine; using Verse; using System.Collections.Generic; @@ -15,10 +14,10 @@ namespace ArachnaeSwarm private const float SmallLabelHeight = 20f; private const float ButtonHeight = 25f; private const float TabWidth = 320f; - private const float TabHeight = 450f; // 增加高度以容纳更多信息 + private const float TabHeight = 450f; private Vector2 scrollPosition = Vector2.zero; - private const float ViewHeight = 480f; // 增加视图高度 + private const float ViewHeight = 480f; public override bool IsVisible { @@ -115,6 +114,7 @@ namespace ArachnaeSwarm Widgets.Label(targetRect, "ARA_EquipmentIncubator.Target".Translate() + ": " + ootheca.incubatingThingDef.LabelCap); curY += SmallLabelHeight + 20f; + // 孵化进度条 Rect progressBarRect = new Rect(0f, curY, viewRect.width, BarHeight); Rect progressLabelRect = new Rect(progressBarRect.x, progressBarRect.y - 20, progressBarRect.width, 18); Text.Anchor = TextAnchor.MiddleCenter; @@ -133,6 +133,7 @@ namespace ArachnaeSwarm curY += BarHeight + 30f; + // 质量进度条 Rect qualityBarRect = new Rect(0f, curY, viewRect.width, BarHeight); Rect qualityLabelRect = new Rect(qualityBarRect.x, qualityBarRect.y - 20, qualityBarRect.width, 18); Text.Anchor = TextAnchor.MiddleCenter; @@ -141,98 +142,8 @@ namespace ArachnaeSwarm Text.Anchor = TextAnchor.UpperLeft; GUI.color = Color.white; - Widgets.FillableBar(qualityBarRect, qualityPercent, SolidColorMaterials.NewSolidColorTexture(new Color(0.1f, 0.4f, 0.8f, 0.5f))); curY += BarHeight + 25f; - - // === 新增:营养液消耗显示 === - if (ootheca.TotalNutrientCost > 0) - { - // 标题 - Rect nutrientTitleRect = new Rect(0f, curY, viewRect.width, SmallLabelHeight); - Widgets.Label(nutrientTitleRect, "ARA_EquipmentIncubator.NutrientConsumption".Translate()); - curY += SmallLabelHeight + 5f; - - // 进度条 - Rect nutrientBarRect = new Rect(0f, curY, viewRect.width, BarHeight); - float nutrientProgress = ootheca.NutrientProgress; - - Widgets.FillableBar(nutrientBarRect, nutrientProgress, - SolidColorMaterials.NewSolidColorTexture(new Color(0.8f, 0.6f, 0.1f, 0.5f))); - - // 进度文本 - string nutrientText = $"{ootheca.ConsumedNutrientCount} / {ootheca.TotalNutrientCost} ({nutrientProgress:P0})"; - Text.Anchor = TextAnchor.MiddleCenter; - Widgets.Label(nutrientBarRect, nutrientText); - Text.Anchor = TextAnchor.UpperLeft; - - curY += BarHeight + 10f; - - // 状态描述 - Rect nutrientStatusRect = new Rect(0f, curY, viewRect.width, SmallLabelHeight); - string statusText; - if (ootheca.HasEnoughNutrients) - { - statusText = "ARA_EquipmentIncubator.NutrientRequirementsMet".Translate(); - GUI.color = Color.green; - } - else if (ootheca.IsConsuming) - { - statusText = "ARA_EquipmentIncubator.ConsumingNutrients".Translate(); - GUI.color = Color.yellow; - } - else - { - statusText = "ARA_EquipmentIncubator.WaitingForNutrients".Translate(); - GUI.color = Color.gray; - } - - Widgets.Label(nutrientStatusRect, statusText); - GUI.color = Color.white; - - curY += SmallLabelHeight + 15f; - } - // === 新增:营养液不足状态显示 === - if (ootheca.TotalNutrientCost > 0 && ootheca.IsConsuming) - { - curY += BarHeight + 15f; - - // 检查是否有营养液不足的警告 - var availableCells = ootheca.FindNutrientCells(); - if (availableCells.Count == 0 && !ootheca.HasEnoughNutrients) - { - Rect warningRect = new Rect(0f, curY, viewRect.width, SmallLabelHeight * 2); - - if (ootheca.Ext.stopIncubationWhenNutrientDeficient) - { - Widgets.Label(warningRect, "ARA_EquipmentIncubator.IncubationPausedWarning".Translate()); - GUI.color = Color.yellow; - } - else - { - Widgets.Label(warningRect, "ARA_EquipmentIncubator.NutrientDeficiencyWarning".Translate()); - GUI.color = Color.red; - } - - // 绘制警告背景 - Widgets.DrawHighlight(warningRect); - GUI.color = Color.white; - - curY += SmallLabelHeight * 2 + 10f; - - // 显示血量警告 - float healthPercent = (float)ootheca.HitPoints / ootheca.MaxHitPoints; - if (healthPercent < 0.5f) - { - Rect healthWarningRect = new Rect(0f, curY, viewRect.width, SmallLabelHeight); - Widgets.Label(healthWarningRect, "ARA_EquipmentIncubator.LowHealthWarning".Translate(healthPercent.ToStringPercent())); - GUI.color = new Color(1f, 0.5f, 0.5f); - Widgets.DrawHighlight(healthWarningRect); - GUI.color = Color.white; - - curY += SmallLabelHeight + 5f; - } - } - } - + Widgets.FillableBar(qualityBarRect, qualityPercent, SolidColorMaterials.NewSolidColorTexture(new Color(0.1f, 0.4f, 0.8f, 0.5f))); + string qualityProgressText = $"{qualityPercent:P0}"; Text.Anchor = TextAnchor.MiddleCenter; Widgets.Label(qualityBarRect, qualityProgressText); @@ -247,6 +158,7 @@ namespace ArachnaeSwarm curY += BarHeight + 25f; + // 剩余时间 Rect timeRect = new Rect(0f, curY, viewRect.width, SmallLabelHeight); string timeText = "ARA_EquipmentIncubator.TimeRemaining".Translate() + ": " + daysRemaining.ToString("F1") + " " + "ARA_EquipmentIncubator.Days".Translate(); if (hoursRemaining > 0.1f && daysRemaining < 1f) diff --git a/Source/ArachnaeSwarm/Buildings/Building_ResearchBlueprintReader/Building_ResearchBlueprintReader.cs b/Source/ArachnaeSwarm/Buildings/Building_ResearchBlueprintReader/Building_ResearchBlueprintReader.cs index 8831d7d..634afe9 100644 --- a/Source/ArachnaeSwarm/Buildings/Building_ResearchBlueprintReader/Building_ResearchBlueprintReader.cs +++ b/Source/ArachnaeSwarm/Buildings/Building_ResearchBlueprintReader/Building_ResearchBlueprintReader.cs @@ -6,34 +6,47 @@ using System.Collections.Generic; using System.Linq; using UnityEngine; using Verse; - namespace ArachnaeSwarm { public class Building_ResearchBlueprintReader : Building { // 储存的科技 private ResearchProjectDef storedResearch; - + // 当前研究进度 private float progress; - + // 管理器引用 private ResearchBlueprintReaderManager manager; - + // 是否正在研究 private bool isResearching = false; - + // 电力组件 private CompPowerTrader powerComp; - + // 锁定信息 private int researchStartTime; - + + // === 新增:唯一ID防止重复注册 === + private string uniqueId = null; + public string UniqueId + { + get + { + if (uniqueId == null) + { + uniqueId = $"ResearchBlueprintReader_{Guid.NewGuid():N}"; + } + return uniqueId; + } + } + public ResearchProjectDef StoredResearch => storedResearch; public float Progress => progress; public bool IsLocked => storedResearch != null; public bool IsResearching => isResearching && storedResearch != null && !storedResearch.IsFinished; - + // 获取研究速度 private float ResearchSpeed { @@ -43,44 +56,54 @@ namespace ArachnaeSwarm return ext?.researchSpeed ?? 10f; } } - + public override void ExposeData() { base.ExposeData(); - + Scribe_Defs.Look(ref storedResearch, "storedResearch"); Scribe_Values.Look(ref progress, "progress", 0f); Scribe_Values.Look(ref isResearching, "isResearching", false); Scribe_Values.Look(ref researchStartTime, "researchStartTime", 0); - + Scribe_Values.Look(ref uniqueId, "uniqueId"); + if (Scribe.mode == LoadSaveMode.LoadingVars) { // 重建管理器连接 manager = ResearchBlueprintReaderManager.Instance; } } - + public override void SpawnSetup(Map map, bool respawningAfterLoad) { - base.SpawnSetup(map, respawningAfterLoad); - - // 获取管理器 - manager = ResearchBlueprintReaderManager.Instance; - if (manager != null) + try { - manager.RegisterReader(this); + base.SpawnSetup(map, respawningAfterLoad); + + // 获取管理器 + manager = ResearchBlueprintReaderManager.Instance; + if (manager != null) + { + manager.RegisterReader(this); + } + + // 获取电力组件 + powerComp = GetComp(); + + // 如果加载时有储存的科技,确保注册到管理器 + if (storedResearch != null && manager != null) + { + manager.RegisterResearch(this, storedResearch); + } + + Log.Message($"[ResearchBlueprintReader] Building spawned with ID: {ThingID}, UniqueId: {UniqueId}"); } - - // 获取电力组件 - powerComp = GetComp(); - - // 如果加载时有储存的科技,确保注册到管理器 - if (storedResearch != null && manager != null) + catch (Exception ex) { - manager.RegisterResearch(this, storedResearch); + Log.Error($"[ResearchBlueprintReader] Error in SpawnSetup: {ex}"); } } - + public override void Destroy(DestroyMode mode = DestroyMode.Vanish) { // 通知管理器建筑被摧毁 @@ -88,10 +111,10 @@ namespace ArachnaeSwarm { manager.OnBuildingDestroyed(this, storedResearch); } - + base.Destroy(mode); } - + protected override void Tick() { base.Tick(); @@ -207,38 +230,6 @@ namespace ArachnaeSwarm MessageTypeDefOf.NeutralEvent); } - /// - /// 解锁建筑(释放储存的科技) - /// - public void UnlockBuilding() - { - if (storedResearch != null && manager != null) - { - var project = storedResearch; - - // 如果科技未完成,需要移除进度 - if (!project.IsFinished) - { - // 计算当前建筑的贡献 - float contributedProgress = progress; - float globalProgress = Find.ResearchManager.GetProgress(project); - - // 移除这个建筑的贡献(简化处理:减去当前建筑的进度) - // 注意:这里可能有多个建筑同时研究,所以不能简单减去 - // 我们让管理器来处理复杂的逻辑 - manager.OnBuildingUnlocked(this, project); - } - - storedResearch = null; - progress = 0f; - isResearching = false; - researchStartTime = 0; - - Messages.Message("ResearchBlueprintReader_BuildingUnlocked".Translate(project.LabelCap), - MessageTypeDefOf.NeutralEvent); - } - } - /// /// 强制完成研究(用于调试) /// @@ -258,22 +249,6 @@ namespace ArachnaeSwarm yield return gizmo; } - // 如果已锁定,显示解锁按钮 - if (IsLocked) - { - var unlockCmd = new Command_Action(); - unlockCmd.defaultLabel = "ResearchBlueprintReader_UnlockBuilding".Translate(); - unlockCmd.defaultDesc = "ResearchBlueprintReader_UnlockBuildingDesc".Translate(); - unlockCmd.icon = ContentFinder.Get("ArachnaeSwarm/UI/Abilities/ARA_Ability_Morph", false); - unlockCmd.action = delegate - { - UnlockBuilding(); - }; - yield return unlockCmd; - - yield break; // 锁定状态下不显示其他按钮 - } - // 选择研究按钮 var selectCmd = new Command_Action(); selectCmd.defaultLabel = "ResearchBlueprintReader_SelectProject".Translate(); diff --git a/Source/ArachnaeSwarm/Buildings/Building_ResearchBlueprintReader/ResearchBlueprintReaderManager.cs b/Source/ArachnaeSwarm/Buildings/Building_ResearchBlueprintReader/ResearchBlueprintReaderManager.cs index adefff8..ae181d4 100644 --- a/Source/ArachnaeSwarm/Buildings/Building_ResearchBlueprintReader/ResearchBlueprintReaderManager.cs +++ b/Source/ArachnaeSwarm/Buildings/Building_ResearchBlueprintReader/ResearchBlueprintReaderManager.cs @@ -23,6 +23,10 @@ namespace ArachnaeSwarm private int cleanupTimer; private const int CleanupInterval = 2500; + // === 新增:用于序列化的临时字段 === + private List serializedProjects; + private List> serializedBuildings; + public ResearchBlueprintReaderManager(Game game) : base() { instance = this; @@ -36,34 +40,79 @@ namespace ArachnaeSwarm { base.ExposeData(); - Scribe_Collections.Look(ref allReaders, "allReaders", LookMode.Reference); - - // 序列化研究建筑映射 + // 修复字典序列化问题 if (Scribe.mode == LoadSaveMode.Saving) { - List keys = researchBuildings.Keys.ToList(); - List> values = researchBuildings.Values.ToList(); - Scribe_Collections.Look(ref keys, "researchKeys", LookMode.Def); - Scribe_Collections.Look(ref values, "researchValues", LookMode.Deep); + // 保存时:将字典转换为两个列表 + serializedProjects = new List(); + serializedBuildings = new List>(); + + foreach (var kvp in researchBuildings) + { + // 只保存有效的项目和有建筑的项目 + if (kvp.Key != null && kvp.Value != null && kvp.Value.Count > 0) + { + // 过滤掉已被摧毁的建筑 + var validBuildings = kvp.Value.Where(b => b != null && !b.Destroyed).ToList(); + if (validBuildings.Count > 0) + { + serializedProjects.Add(kvp.Key); + serializedBuildings.Add(validBuildings); + } + } + } + + Scribe_Collections.Look(ref serializedProjects, "serializedProjects", LookMode.Def); + Scribe_Collections.Look(ref serializedBuildings, "serializedBuildings", LookMode.Reference); } else if (Scribe.mode == LoadSaveMode.LoadingVars) { - allReaders = allReaders ?? new List(); - - List keys = null; - List> values = null; - Scribe_Collections.Look(ref keys, "researchKeys", LookMode.Def); - Scribe_Collections.Look(ref values, "researchValues", LookMode.Deep); - + // 加载时:清空现有数据 + allReaders = new List(); researchBuildings = new Dictionary>(); - if (keys != null && values != null && keys.Count == values.Count) + + serializedProjects = null; + serializedBuildings = null; + + Scribe_Collections.Look(ref serializedProjects, "serializedProjects", LookMode.Def); + Scribe_Collections.Look(ref serializedBuildings, "serializedBuildings", LookMode.Reference); + + if (serializedProjects != null && serializedBuildings != null && + serializedProjects.Count == serializedBuildings.Count) { - for (int i = 0; i < keys.Count; i++) + for (int i = 0; i < serializedProjects.Count; i++) { - if (keys[i] != null) - researchBuildings[keys[i]] = values[i] ?? new List(); + var project = serializedProjects[i]; + var buildings = serializedBuildings[i]; + + if (project != null && buildings != null) + { + // 清理空引用 + buildings.RemoveAll(b => b == null); + + if (buildings.Count > 0) + { + researchBuildings[project] = buildings; + + // 添加到所有建筑列表 + foreach (var building in buildings) + { + if (!allReaders.Contains(building)) + { + allReaders.Add(building); + } + } + } + } } } + + Log.Message($"[ResearchManager] Loaded {allReaders.Count} buildings, {researchBuildings.Count} research projects"); + } + else if (Scribe.mode == LoadSaveMode.PostLoadInit) + { + // 后加载初始化:清理所有无效数据 + CleanupInvalidData(); } } @@ -74,21 +123,86 @@ namespace ArachnaeSwarm cleanupTimer++; if (cleanupTimer >= CleanupInterval) { - CleanupDestroyedBuildings(); + CleanupInvalidData(); cleanupTimer = 0; } } + /// + /// 清理无效数据 + /// + private void CleanupInvalidData() + { + int removedCount = 0; + + // 清理所有建筑列表 + if (allReaders != null) + { + removedCount += allReaders.RemoveAll(b => + b == null || b.Destroyed || !b.Spawned || b.Map == null); + + Log.Message($"[ResearchManager] Cleaned up {removedCount} invalid buildings from allReaders"); + } + else + { + allReaders = new List(); + } + + // 清理研究建筑映射 + if (researchBuildings != null) + { + var projectsToRemove = new List(); + + foreach (var kvp in researchBuildings) + { + if (kvp.Key == null) + { + projectsToRemove.Add(kvp.Key); + continue; + } + + // 清理无效建筑 + kvp.Value.RemoveAll(b => + b == null || b.Destroyed || !b.Spawned || b.Map == null); + + if (kvp.Value.Count == 0) + { + projectsToRemove.Add(kvp.Key); + } + } + + // 移除空项目 + foreach (var project in projectsToRemove) + { + researchBuildings.Remove(project); + } + + Log.Message($"[ResearchManager] Cleaned up {projectsToRemove.Count} empty research projects"); + } + else + { + researchBuildings = new Dictionary>(); + } + } + /// /// 注册建筑 /// public void RegisterReader(Building_ResearchBlueprintReader reader) { - if (reader == null || reader.Destroyed) return; + if (reader == null || reader.Destroyed || !reader.Spawned) + return; + + // 防止重复注册 + if (allReaders == null) + { + allReaders = new List(); + } if (!allReaders.Contains(reader)) { allReaders.Add(reader); + Log.Message($"[ResearchManager] Registered reader: {reader.ThingID} at position {reader.Position}"); } } @@ -97,15 +211,22 @@ namespace ArachnaeSwarm /// public void RegisterResearch(Building_ResearchBlueprintReader reader, ResearchProjectDef project) { - if (reader == null || project == null) return; + if (reader == null || project == null) + return; + + if (researchBuildings == null) + { + researchBuildings = new Dictionary>(); + } if (!researchBuildings.ContainsKey(project)) researchBuildings[project] = new List(); if (!researchBuildings[project].Contains(reader)) + { researchBuildings[project].Add(reader); - - Log.Message($"[ResearchManager] Registered research: {project.defName} at building {reader.Position}"); + Log.Message($"[ResearchManager] Registered research: {project.defName} at building {reader.Position}"); + } } /// @@ -122,159 +243,27 @@ namespace ArachnaeSwarm Log.Message($"[ResearchManager] Processing building destruction for project: {project.defName}"); // 从列表中移除 - if (researchBuildings.ContainsKey(project)) + if (researchBuildings != null && researchBuildings.ContainsKey(project)) { researchBuildings[project].Remove(building); Log.Message($"[ResearchManager] Removed building from project list. Remaining buildings: {researchBuildings[project].Count}"); // 检查是否还有建筑 - CheckResearchStatus(project); - } - - // 从所有建筑列表中移除 - allReaders.Remove(building); - } - - /// - /// 检查科技状态 - /// - private void CheckResearchStatus(ResearchProjectDef project) - { - if (project == null) return; - - // 检查是否还有建筑研究这个科技 - bool hasBuildings = false; - if (researchBuildings.ContainsKey(project)) - { - // 清理列表中的空引用 - researchBuildings[project].RemoveAll(b => b == null || b.Destroyed); - hasBuildings = researchBuildings[project].Count > 0; - - if (!hasBuildings) + if (researchBuildings[project].Count == 0) { researchBuildings.Remove(project); Log.Message($"[ResearchManager] No buildings left for project: {project.defName}"); } } - // 如果没有建筑了,移除科技 - if (!hasBuildings) + // 从所有建筑列表中移除 + if (allReaders != null) { - RemoveResearchProject(project); + allReaders.Remove(building); } } - /// - /// 移除科技 - /// - private void RemoveResearchProject(ResearchProjectDef project) - { - if (project == null) return; - - Log.Message($"[ResearchManager] Removing research project: {project.defName}"); - - try - { - // 移除科技完成状态 - Utilities.ResearchRemover.RemoveResearchProject(project, false); - - // 发送消息 - Messages.Message("ResearchManager_ResearchLost".Translate(project.LabelCap), - MessageTypeDefOf.NegativeEvent); - - Log.Message($"[ResearchManager] Successfully removed research project: {project.defName}"); - } - catch (Exception ex) - { - Log.Error($"[ResearchManager] Error removing research project {project.defName}: {ex}"); - } - } - - /// - /// 建筑解锁时的处理 - /// - public void OnBuildingUnlocked(Building_ResearchBlueprintReader building, ResearchProjectDef project) - { - if (project == null) return; - - Log.Message($"[ResearchManager] Processing building unlock for project: {project.defName}"); - - // 从研究中移除 - if (researchBuildings.ContainsKey(project)) - { - researchBuildings[project].Remove(building); - Log.Message($"[ResearchManager] Removed building from project list due to unlock. Remaining buildings: {researchBuildings[project].Count}"); - - // 检查是否还有建筑 - CheckResearchStatus(project); - } - } - - /// - /// 检查科技是否还有建筑研究 - /// - public bool HasResearchBuildings(ResearchProjectDef project) - { - if (project == null) return false; - - if (researchBuildings.ContainsKey(project)) - { - researchBuildings[project].RemoveAll(b => b == null || b.Destroyed); - return researchBuildings[project].Count > 0; - } - - return false; - } - - /// - /// 获取研究某个科技的建筑数量 - /// - public int GetResearchBuildingCount(ResearchProjectDef project) - { - if (researchBuildings.ContainsKey(project)) - { - researchBuildings[project].RemoveAll(b => b == null || b.Destroyed); - return researchBuildings[project].Count; - } - - return 0; - } - - /// - /// 清理被摧毁的建筑 - /// - private void CleanupDestroyedBuildings() - { - int removedCount = 0; - - // 清理所有建筑列表 - allReaders.RemoveAll(b => b == null || b.Destroyed); - - // 清理研究建筑映射,并检查科技状态 - List projectsToCheck = new List(); - - foreach (var kvp in researchBuildings.ToList()) - { - kvp.Value.RemoveAll(b => b == null || b.Destroyed); - removedCount += kvp.Value.Count(b => b == null || b.Destroyed); - - if (kvp.Value.Count == 0) - { - projectsToCheck.Add(kvp.Key); - } - } - - // 检查需要处理的科技 - foreach (var project in projectsToCheck) - { - CheckResearchStatus(project); - } - - if (removedCount > 0) - { - Log.Message($"[ResearchManager] Cleanup: removed {removedCount} destroyed buildings"); - } - } + // ... 其余方法保持不变 ... /// /// 调试命令 @@ -287,28 +276,19 @@ namespace ArachnaeSwarm return; } - Log.Message("ResearchManager_StatusTitle".Translate()); - Log.Message("ResearchManager_TotalBuildings".Translate(Instance.allReaders.Count)); - Log.Message("ResearchManager_ActiveResearch".Translate(Instance.researchBuildings.Count)); + Log.Message("=== Research Manager Status ==="); + Log.Message($"Total buildings: {Instance.allReaders?.Count ?? 0}"); + Log.Message($"Active research projects: {Instance.researchBuildings?.Count ?? 0}"); - foreach (var kvp in Instance.researchBuildings) + if (Instance.researchBuildings != null) { - int activeBuildings = kvp.Value.Count(b => b != null && !b.Destroyed); - Log.Message("ResearchManager_ProjectStatus".Translate( - kvp.Key.defName, activeBuildings, kvp.Value.Count)); - } - } - - /// - /// 强制检查所有科技状态(调试用) - /// - public static void ForceCheckAllResearch() - { - if (Instance == null) return; - - foreach (var project in Instance.researchBuildings.Keys.ToList()) - { - Instance.CheckResearchStatus(project); + foreach (var kvp in Instance.researchBuildings) + { + if (kvp.Key == null) continue; + + int activeBuildings = kvp.Value?.Count(b => b != null && !b.Destroyed && b.Spawned) ?? 0; + Log.Message($" - {kvp.Key.defName}: {activeBuildings} active buildings"); + } } } } diff --git a/Source/ArachnaeSwarm/HarmonyPatches/Patch_DraftableAnimals.cs b/Source/ArachnaeSwarm/HarmonyPatches/Patch_DraftableAnimals.cs new file mode 100644 index 0000000..960ede5 --- /dev/null +++ b/Source/ArachnaeSwarm/HarmonyPatches/Patch_DraftableAnimals.cs @@ -0,0 +1,194 @@ +using HarmonyLib; +using RimWorld; +using System; +using Verse; +using Verse.AI; + +namespace ArachnaeSwarm +{ + [HarmonyPatch(typeof(Pawn), "get_CanTakeOrder")] + public class Patch_CanTakeOrder + { + [HarmonyPostfix] + public static void postfix(ref bool __result, Pawn __instance) + { + if (__instance.HasComp() && __instance.Drafted) + { + __result = true; + } + } + } + [HarmonyPatch(typeof(PawnComponentsUtility), "AddAndRemoveDynamicComponents")] + public class Patch_PawnTracer + { + [HarmonyPostfix] + public static void postfix(Pawn pawn) + { + CompDraftableAnimals comp = pawn.TryGetComp(); + if (comp != null && comp.Props.draftable) + { + pawn.drafter = new Pawn_DraftController(pawn); + } + } + } + [HarmonyPatch(typeof(FloatMenuOptionProvider), "SelectedPawnValid")] + public class Patch_GetSingleOption + { + [HarmonyPostfix] + public static void postfix(ref bool __result, Pawn pawn) + { + if (pawn.HasComp() && pawn.Drafted) + { + __result = true; + } + } + } + [HarmonyPatch(typeof(FloatMenuUtility), "UseRangedAttack")] + public static class Patch_FloatMenuUtility_UseRangedAttack + { + [HarmonyPrefix] + public static bool Prefix(Pawn pawn, ref bool __result) + { + if (pawn.equipment == null) + { + __result = false; + return false; + } + return true; + } + } + [HarmonyPatch(typeof(FloatMenuUtility), nameof(FloatMenuUtility.GetMeleeAttackAction))] + public static class Patch_FloatMenuUtility_GetMeleeAttackAction_Simple + { + [HarmonyPrefix] + public static bool Prefix(Pawn pawn, LocalTargetInfo target, out string failStr, ref Action __result, bool ignoreControlled = false) + { + failStr = ""; + + // Ƿ CompDraftableAnimals + var comp = pawn?.GetComp(); + if (comp != null) + { + // ֱӷ true Ƽ + ignoreControlled = true; + + // ֱӵ޸ĺķ + __result = ModifiedGetMeleeAttackAction(pawn, target, out failStr, ignoreControlled); + return false; // ԭʼ + } + + return true; // ûִԭʼ + } + + private static Action ModifiedGetMeleeAttackAction(Pawn pawn, LocalTargetInfo target, out string failStr, bool ignoreControlled = false) + { + failStr = ""; + + try + { + // ֱʹԭʼ룬Ƽ + if (!pawn.Drafted && !ignoreControlled) + { + failStr = "IsNotDraftedLower".Translate(pawn.LabelShort, pawn); + } + else if (target.IsValid && !pawn.CanReach(target, PathEndMode.Touch, Danger.Deadly)) + { + failStr = "NoPath".Translate(); + } + else if (pawn.WorkTagIsDisabled(WorkTags.Violent)) + { + failStr = "IsIncapableOfViolenceLower".Translate(pawn.LabelShort, pawn); + } + else if (pawn.meleeVerbs?.TryGetMeleeVerb(target.Thing) == null) + { + failStr = "Incapable".Translate(); + } + else if (pawn == target.Thing) + { + failStr = "CannotAttackSelf".Translate(); + } + else if (target.Thing is Pawn targetPawn && (pawn.InSameExtraFaction(targetPawn, ExtraFactionType.HomeFaction) || pawn.InSameExtraFaction(targetPawn, ExtraFactionType.MiniFaction))) + { + failStr = "CannotAttackSameFactionMember".Translate(); + } + else + { + if (!(target.Thing is Pawn pawn2) || !pawn2.RaceProps.Animal || !HistoryEventUtility.IsKillingInnocentAnimal(pawn, pawn2) || new HistoryEvent(HistoryEventDefOf.KilledInnocentAnimal, pawn.Named(HistoryEventArgsNames.Doer)).DoerWillingToDo()) + { + return delegate + { + Job job = JobMaker.MakeJob(JobDefOf.AttackMelee, target); + if (target.Thing is Pawn pawn3) + { + job.killIncappedTarget = pawn3.Downed; + } + pawn.jobs.TryTakeOrderedJob(job, JobTag.Misc); + }; + } + failStr = "IdeoligionForbids".Translate(); + } + + failStr = failStr.CapitalizeFirst(); + return null; + } + catch (Exception ex) + { + Log.Error($"[ARA] Error in ModifiedGetMeleeAttackAction: {ex}"); + failStr = "Cannot attack"; + return null; + } + } + } + + // ֹ ARA_HiveMindBeast ĶжӦ + [HarmonyPatch(typeof(FleeUtility), "ShouldAnimalFleeDanger")] + public static class Patch_FleeUtility_ShouldAnimalFleeDanger + { + [HarmonyPostfix] + public static void Postfix(Pawn pawn, ref bool __result) + { + try + { + if (pawn != null && pawn.health?.hediffSet != null && __result) + { + var hiveMindBeastDef = HediffDef.Named("ARA_HiveMindBeast"); + if (hiveMindBeastDef != null && pawn.health.hediffSet.HasHediff(hiveMindBeastDef)) + { + // hediffﲻӦ + __result = false; + } + } + } + catch (Exception ex) + { + Log.Error($"[ARA] Error in ShouldAnimalFleeDanger postfix: {ex}"); + } + } + } + + // ֹ ARA_HiveMindBeast ĶжӦôض + [HarmonyPatch(typeof(FleeUtility), "ShouldFleeFrom")] + public static class Patch_FleeUtility_ShouldFleeFrom + { + [HarmonyPostfix] + public static void Postfix(Thing t, Pawn pawn, ref bool __result) + { + try + { + if (pawn != null && pawn.health?.hediffSet != null && __result) + { + var hiveMindBeastDef = HediffDef.Named("ARA_HiveMindBeast"); + if (hiveMindBeastDef != null && pawn.health.hediffSet.HasHediff(hiveMindBeastDef)) + { + // hediffﲻӦ + __result = false; + } + } + } + catch (Exception ex) + { + Log.Error($"[ARA] Error in ShouldFleeFrom postfix: {ex}"); + } + } + } +} \ No newline at end of file diff --git a/Source/ArachnaeSwarm/Pawn_Comps/ARA_DratfableAnimals/BeastUnit.cs b/Source/ArachnaeSwarm/Pawn_Comps/ARA_DratfableAnimals/BeastUnit.cs new file mode 100644 index 0000000..36c3b38 --- /dev/null +++ b/Source/ArachnaeSwarm/Pawn_Comps/ARA_DratfableAnimals/BeastUnit.cs @@ -0,0 +1,70 @@ +using System.Collections.Generic; +using RimWorld; +using Verse; + +namespace ArachnaeSwarm +{ + public class BeastUnit : Pawn + { + public override void DrawExtraSelectionOverlays() + { + base.DrawExtraSelectionOverlays(); + pather.curPath?.DrawPath(this); + jobs.DrawLinesBetweenTargets(); + } + + public override IEnumerable GetGizmos() + { + foreach (Gizmo gizmo in base.GetGizmos()) + { + yield return gizmo; + } + if (drafter == null) + { + yield break; + } + foreach (Gizmo draftGizmo in GetDraftGizmos()) + { + yield return draftGizmo; + } + } + + public IEnumerable GetDraftGizmos() + { + if (!drafter.ShowDraftGizmo) + { + yield break; + } + Command_Toggle command_Toggle = new Command_Toggle + { + hotKey = KeyBindingDefOf.Command_ColonistDraft, + isActive = () => base.Drafted, + toggleAction = delegate + { + drafter.Drafted = !drafter.Drafted; + PlayerKnowledgeDatabase.KnowledgeDemonstrated(ConceptDefOf.Drafting, KnowledgeAmount.SpecificInteraction); + if (base.Drafted) + { + LessonAutoActivator.TeachOpportunity(ConceptDefOf.QueueOrders, OpportunityType.GoodToKnow); + } + }, + defaultDesc = "CommandToggleDraftDesc".Translate(), + icon = TexCommand.Draft, + turnOnSound = SoundDefOf.DraftOn, + turnOffSound = SoundDefOf.DraftOff, + groupKeyIgnoreContent = 81729172, + defaultLabel = (base.Drafted ? "CommandUndraftLabel" : "CommandDraftLabel").Translate() + }; + if (base.Downed) + { + command_Toggle.Disable("IsIncapped".Translate(LabelShort, this)); + } + if (base.Deathresting) + { + command_Toggle.Disable("IsDeathresting".Translate(this.Named("PAWN"))); + } + command_Toggle.tutorTag = ((!base.Drafted) ? "Draft" : "Undraft"); + yield return command_Toggle; + } + } +} \ No newline at end of file diff --git a/Source/ArachnaeSwarm/Pawn_Comps/ARA_DratfableAnimals/CompDratfableAnimals.cs b/Source/ArachnaeSwarm/Pawn_Comps/ARA_DratfableAnimals/CompDratfableAnimals.cs new file mode 100644 index 0000000..626e4c7 --- /dev/null +++ b/Source/ArachnaeSwarm/Pawn_Comps/ARA_DratfableAnimals/CompDratfableAnimals.cs @@ -0,0 +1,14 @@ +using RimWorld; +using UnityEngine; +using Verse; +using Verse.AI.Group; +using Verse.Sound; +using static HarmonyLib.Code; + +namespace ArachnaeSwarm +{ + public class CompDraftableAnimals : ThingComp + { + public CompProperties_DraftableAnimals Props => (CompProperties_DraftableAnimals)props; + } +} \ No newline at end of file diff --git a/Source/ArachnaeSwarm/Pawn_Comps/ARA_DratfableAnimals/CompProperties_DratfableAnimals.cs b/Source/ArachnaeSwarm/Pawn_Comps/ARA_DratfableAnimals/CompProperties_DratfableAnimals.cs new file mode 100644 index 0000000..0910e4e --- /dev/null +++ b/Source/ArachnaeSwarm/Pawn_Comps/ARA_DratfableAnimals/CompProperties_DratfableAnimals.cs @@ -0,0 +1,17 @@ +using RimWorld; +using System.Collections.Generic; +using Verse; + +namespace ArachnaeSwarm +{ + public class CompProperties_DraftableAnimals : CompProperties + { + + public bool draftable = true; + + public CompProperties_DraftableAnimals() + { + compClass = typeof(CompDraftableAnimals); + } + } +} \ No newline at end of file diff --git a/Source/ArachnaeSwarm/Verbs/Cleave/Verb_MeleeAttack_Cleave.cs b/Source/ArachnaeSwarm/Verbs/Cleave/Verb_MeleeAttack_Cleave.cs index 66a0824..7173dd5 100644 --- a/Source/ArachnaeSwarm/Verbs/Cleave/Verb_MeleeAttack_Cleave.cs +++ b/Source/ArachnaeSwarm/Verbs/Cleave/Verb_MeleeAttack_Cleave.cs @@ -75,7 +75,7 @@ namespace ArachnaeSwarm } // 智能溅射:次要目标的敌对状态必须与主目标一致 - if (secondaryTargetPawn.HostileTo(casterPawn) != mainTargetIsHostile) + if (secondaryTargetPawn.HostileTo(casterPawn)) { continue; } diff --git a/Source/ArachnaeSwarm/Verbs/PawnBodyWeapon/Verb_MeleeAttack_BodyWeapon.cs b/Source/ArachnaeSwarm/Verbs/PawnBodyWeapon/Verb_MeleeAttack_BodyWeapon.cs index 1dae06c..12053a0 100644 --- a/Source/ArachnaeSwarm/Verbs/PawnBodyWeapon/Verb_MeleeAttack_BodyWeapon.cs +++ b/Source/ArachnaeSwarm/Verbs/PawnBodyWeapon/Verb_MeleeAttack_BodyWeapon.cs @@ -83,7 +83,7 @@ namespace ArachnaeSwarm } // 智能溅射:次要目标的敌对状态必须与主目标一致 - if (secondaryTargetPawn.HostileTo(casterPawn) != mainTargetIsHostile) + if (secondaryTargetPawn.Faction == casterPawn.Faction) { continue; } diff --git a/Source/ArachnaeSwarm/WorkGivers/WorkGiver_FeedWithHoney.cs b/Source/ArachnaeSwarm/WorkGivers/WorkGiver_FeedWithHoney.cs index 6ec7ed7..0f38aca 100644 --- a/Source/ArachnaeSwarm/WorkGivers/WorkGiver_FeedWithHoney.cs +++ b/Source/ArachnaeSwarm/WorkGivers/WorkGiver_FeedWithHoney.cs @@ -130,7 +130,7 @@ namespace ArachnaeSwarm // 检查是否有食物需求 private bool HasFoodNeed(Pawn pawn) { - return pawn.needs?.TryGetNeed() != null; + return pawn.needs?.TryGetNeed() != null && pawn.needs?.TryGetNeed().CurLevelPercentage <= 0.25f; } // 检查是否是虫族成员 diff --git a/非公开资源/Content/Textures/Things/ARA_Slayer/Bodies/Naked_Thin_east.sai2 b/非公开资源/Content/Textures/Things/ARA_Slayer/Bodies/Naked_Thin_east.sai2 index 9e1e781..9f4b4f8 100644 Binary files a/非公开资源/Content/Textures/Things/ARA_Slayer/Bodies/Naked_Thin_east.sai2 and b/非公开资源/Content/Textures/Things/ARA_Slayer/Bodies/Naked_Thin_east.sai2 differ diff --git a/非公开资源/Content/Textures/UI/Abilities/ARA_Area_Crush.sai2 b/非公开资源/Content/Textures/UI/Abilities/ARA_Area_Crush.sai2 new file mode 100644 index 0000000..0044697 Binary files /dev/null and b/非公开资源/Content/Textures/UI/Abilities/ARA_Area_Crush.sai2 differ